├── .gitignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── index.cjs ├── index.js ├── package-lock.json ├── package.json ├── rollup.config.js └── test ├── fixtures ├── assets │ └── style.css ├── index.html └── main.js └── index.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | coverage 3 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | All notable changes to this project will be documented in this file. 4 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 6 | 7 | ## [1.0.1] - 2021-03-31 8 | 9 | Smaller package. 10 | 11 | ### Improved 12 | 13 | - Remove unnecessary files from npm package. 14 | 15 | ## [1.0.0] - 2021-03-31 16 | 17 | Initial release. 18 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2020-present Aral Balkan, Small Technology Foundation 2 | 3 | Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. 4 | 5 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # @small-tech/vite-plugin-sri 2 | 3 | [Subresource integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity) (SRI) plugin for [Vite](https://vitejs.dev/). 4 | 5 | Adds subresource integrity hashes to script and stylesheet imports from your _index.html_ file at build time. 6 | 7 | ## Install 8 | 9 | ```shell 10 | npm i --save-dev @small-tech/vite-plugin-sri 11 | ``` 12 | 13 | ## Use 14 | 15 | In your `vite.config.js` file: 16 | 17 | ```js 18 | import { defineConfig } from 'vite' 19 | import sri from '@small-tech/vite-plugin-sri' 20 | 21 | export default defineConfig({ 22 | // … 23 | plugins: [sri()] 24 | }) 25 | ``` 26 | 27 | Then: 28 | 29 | ```shell 30 | npx vite build 31 | ``` 32 | 33 | ## Test and coverage 34 | 35 | Run `npm test` to test, `npm run coverage` to run coverage. 36 | 37 | ## Build 38 | 39 | Run `npm run build` 40 | 41 | This will generate legacy CommonJS version of the module for compatibility with older Node projects. 42 | 43 | ## See also 44 | 45 | If you’re looking for a generic Rollup plugin that does the same thing, see [rollup-plugin-sri](https://github.com/JonasKruckenberg/rollup-plugin-sri) by [Jonas Kruckenberg](https://github.com/JonasKruckenberg) that this one was inspired by. 46 | 47 | ## Like this? Fund us! 48 | 49 | [Small Technology Foundation](https://small-tech.org) is a tiny, independent not-for-profit. 50 | 51 | We exist in part thanks to patronage by people like you. If you share [our vision](https://small-tech.org/about/#small-technology) and want to support our work, please [become a patron or donate to us](https://small-tech.org/fund-us) today and help us continue to exist. 52 | 53 | ## Copyright 54 | 55 | Copyright © 2021-present [Aral Balkan](https://ar.al), [Small Technology Foundation](https://small-tech.org). 56 | 57 | ## License 58 | 59 | [ISC](./LICENSE). 60 | -------------------------------------------------------------------------------- /index.cjs: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // @small-tech/vite-plugin-sri 4 | // 5 | // Subresource integrity (SRI) plugin for Vite (https://vitejs.dev/) 6 | // 7 | // Adds subresource integrity hashes to script and stylesheet 8 | // imports from your index.html file at build time. 9 | // 10 | // If you’re looking for a generic Rollup plugin that does the same thing, 11 | // see rollup-plugin-sri by Jonas Kruckenberg that this one was inspired by: 12 | // https://github.com/JonasKruckenberg/rollup-plugin-sri 13 | // 14 | // Like this? Fund us! 15 | // https://small-tech.org/fund-us 16 | // 17 | // Copyright ⓒ 2021-present Aral Balkan, Small Technology Foundation 18 | // License: ISC. 19 | // 20 | //////////////////////////////////////////////////////////////////////////////// 21 | 'use strict'; 22 | 23 | const crypto = require('crypto'); 24 | const cheerio = require('cheerio'); 25 | const fetch = require('node-fetch'); 26 | 27 | //////////////////////////////////////////////////////////////////////////////// 28 | 29 | function sri () { 30 | return { 31 | name: 'vite-plugin-sri', 32 | enforce: 'post', 33 | apply: 'build', 34 | 35 | async transformIndexHtml(html, context) { 36 | const bundle = context.bundle; 37 | 38 | const calculateIntegrityHashes = async (element) => { 39 | let source; 40 | let attributeName = element.attribs.src ? 'src' : 'href'; 41 | const resourcePath = element.attribs[attributeName]; 42 | if (resourcePath.startsWith('http')) { 43 | // Load remote source from URL. 44 | source = await (await fetch(resourcePath)).buffer(); 45 | } else { 46 | // Load local source from bundle. 47 | const resourcePathWithoutLeadingSlash = element.attribs[attributeName].slice(1); 48 | const bundleItem = bundle[resourcePathWithoutLeadingSlash]; 49 | source = bundleItem.code || bundleItem.source; 50 | } 51 | element.attribs.integrity = `sha384-${crypto.createHash('sha384').update(source).digest().toString('base64')}`; 52 | }; 53 | 54 | const $ = cheerio.load(html); 55 | $.prototype.asyncForEach = async function (callback) { 56 | for (let index = 0; index < this.length; index++) { 57 | await callback(this[index], index, this); 58 | } 59 | }; 60 | 61 | // Implement SRI for scripts and stylesheets. 62 | const scripts = $('script').filter('[src]'); 63 | const stylesheets = $('link[rel=stylesheet]').filter('[href]'); 64 | 65 | await scripts.asyncForEach(calculateIntegrityHashes); 66 | await stylesheets.asyncForEach(calculateIntegrityHashes); 67 | 68 | return $.html() 69 | } 70 | } 71 | } 72 | 73 | module.exports = sri; 74 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // @small-tech/vite-plugin-sri 4 | // 5 | // Subresource integrity (SRI) plugin for Vite (https://vitejs.dev/) 6 | // 7 | // Adds subresource integrity hashes to script and stylesheet 8 | // imports from your index.html file at build time. 9 | // 10 | // If you’re looking for a generic Rollup plugin that does the same thing, 11 | // see rollup-plugin-sri by Jonas Kruckenberg that this one was inspired by: 12 | // https://github.com/JonasKruckenberg/rollup-plugin-sri 13 | // 14 | // Like this? Fund us! 15 | // https://small-tech.org/fund-us 16 | // 17 | // Copyright ⓒ 2021-present Aral Balkan, Small Technology Foundation 18 | // License: ISC. 19 | // 20 | //////////////////////////////////////////////////////////////////////////////// 21 | 22 | import { createHash } from 'crypto' 23 | import cheerio from 'cheerio' 24 | import fetch from 'node-fetch' 25 | 26 | export default function sri () { 27 | return { 28 | name: 'vite-plugin-sri', 29 | enforce: 'post', 30 | apply: 'build', 31 | 32 | async transformIndexHtml(html, context) { 33 | const bundle = context.bundle 34 | 35 | const calculateIntegrityHashes = async (element) => { 36 | let source 37 | let attributeName = element.attribs.src ? 'src' : 'href' 38 | const resourcePath = element.attribs[attributeName] 39 | if (resourcePath.startsWith('http')) { 40 | // Load remote source from URL. 41 | source = await (await fetch(resourcePath)).buffer() 42 | } else { 43 | // Load local source from bundle. 44 | const resourcePathWithoutLeadingSlash = element.attribs[attributeName].slice(1) 45 | const bundleItem = bundle[resourcePathWithoutLeadingSlash] 46 | source = bundleItem.code || bundleItem.source 47 | } 48 | element.attribs.integrity = `sha384-${createHash('sha384').update(source).digest().toString('base64')}` 49 | } 50 | 51 | const $ = cheerio.load(html) 52 | $.prototype.asyncForEach = async function (callback) { 53 | for (let index = 0; index < this.length; index++) { 54 | await callback(this[index], index, this); 55 | } 56 | } 57 | 58 | // Implement SRI for scripts and stylesheets. 59 | const scripts = $('script').filter('[src]') 60 | const stylesheets = $('link[rel=stylesheet]').filter('[href]') 61 | 62 | await scripts.asyncForEach(calculateIntegrityHashes) 63 | await stylesheets.asyncForEach(calculateIntegrityHashes) 64 | 65 | return $.html() 66 | } 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@small-tech/vite-plugin-sri", 3 | "version": "1.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "@small-tech/vite-plugin-sri", 9 | "version": "1.0.0", 10 | "license": "ISC", 11 | "dependencies": { 12 | "cheerio": "^1.0.0-rc.5", 13 | "node-fetch": "^2.6.1" 14 | }, 15 | "devDependencies": { 16 | "c8": "^7.7.0", 17 | "rollup": "^2.51.0", 18 | "tape": "^5.2.2" 19 | }, 20 | "funding": { 21 | "type": "foundation", 22 | "url": "https://small-tech.org/fund-us/" 23 | } 24 | }, 25 | "node_modules/@bcoe/v8-coverage": { 26 | "version": "0.2.3", 27 | "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", 28 | "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", 29 | "dev": true 30 | }, 31 | "node_modules/@istanbuljs/schema": { 32 | "version": "0.1.3", 33 | "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", 34 | "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", 35 | "dev": true, 36 | "engines": { 37 | "node": ">=8" 38 | } 39 | }, 40 | "node_modules/@types/is-windows": { 41 | "version": "1.0.0", 42 | "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-1.0.0.tgz", 43 | "integrity": "sha512-tJ1rq04tGKuIJoWIH0Gyuwv4RQ3+tIu7wQrC0MV47raQ44kIzXSSFKfrxFUOWVRvesoF7mrTqigXmqoZJsXwTg==", 44 | "dev": true 45 | }, 46 | "node_modules/@types/istanbul-lib-coverage": { 47 | "version": "2.0.3", 48 | "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", 49 | "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", 50 | "dev": true 51 | }, 52 | "node_modules/ansi-regex": { 53 | "version": "5.0.0", 54 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", 55 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", 56 | "dev": true, 57 | "engines": { 58 | "node": ">=8" 59 | } 60 | }, 61 | "node_modules/ansi-styles": { 62 | "version": "4.3.0", 63 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 64 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 65 | "dev": true, 66 | "dependencies": { 67 | "color-convert": "^2.0.1" 68 | }, 69 | "engines": { 70 | "node": ">=8" 71 | }, 72 | "funding": { 73 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 74 | } 75 | }, 76 | "node_modules/array-filter": { 77 | "version": "1.0.0", 78 | "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", 79 | "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=", 80 | "dev": true 81 | }, 82 | "node_modules/available-typed-arrays": { 83 | "version": "1.0.2", 84 | "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz", 85 | "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==", 86 | "dev": true, 87 | "dependencies": { 88 | "array-filter": "^1.0.0" 89 | }, 90 | "engines": { 91 | "node": ">= 0.4" 92 | }, 93 | "funding": { 94 | "url": "https://github.com/sponsors/ljharb" 95 | } 96 | }, 97 | "node_modules/balanced-match": { 98 | "version": "1.0.0", 99 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 100 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 101 | "dev": true 102 | }, 103 | "node_modules/boolbase": { 104 | "version": "1.0.0", 105 | "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", 106 | "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" 107 | }, 108 | "node_modules/brace-expansion": { 109 | "version": "1.1.11", 110 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 111 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 112 | "dev": true, 113 | "dependencies": { 114 | "balanced-match": "^1.0.0", 115 | "concat-map": "0.0.1" 116 | } 117 | }, 118 | "node_modules/c8": { 119 | "version": "7.7.0", 120 | "resolved": "https://registry.npmjs.org/c8/-/c8-7.7.0.tgz", 121 | "integrity": "sha512-9OoBQBa5FPs7NNcjaH52SfQpLCXsDRwJKPOeQ9K1MyYoMlnfazMx3XHp+inFPxMA5BV6VMWw1uFrV9sao1oBqA==", 122 | "dev": true, 123 | "dependencies": { 124 | "@bcoe/v8-coverage": "^0.2.3", 125 | "@istanbuljs/schema": "^0.1.2", 126 | "find-up": "^5.0.0", 127 | "foreground-child": "^2.0.0", 128 | "furi": "^2.0.0", 129 | "istanbul-lib-coverage": "^3.0.0", 130 | "istanbul-lib-report": "^3.0.0", 131 | "istanbul-reports": "^3.0.2", 132 | "rimraf": "^3.0.0", 133 | "test-exclude": "^6.0.0", 134 | "v8-to-istanbul": "^7.1.0", 135 | "yargs": "^16.2.0", 136 | "yargs-parser": "^20.2.7" 137 | }, 138 | "bin": { 139 | "c8": "bin/c8.js" 140 | }, 141 | "engines": { 142 | "node": ">=10.12.0" 143 | } 144 | }, 145 | "node_modules/call-bind": { 146 | "version": "1.0.2", 147 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 148 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 149 | "dev": true, 150 | "dependencies": { 151 | "function-bind": "^1.1.1", 152 | "get-intrinsic": "^1.0.2" 153 | }, 154 | "funding": { 155 | "url": "https://github.com/sponsors/ljharb" 156 | } 157 | }, 158 | "node_modules/cheerio": { 159 | "version": "1.0.0-rc.5", 160 | "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.5.tgz", 161 | "integrity": "sha512-yoqps/VCaZgN4pfXtenwHROTp8NG6/Hlt4Jpz2FEP0ZJQ+ZUkVDd0hAPDNKhj3nakpfPt/CNs57yEtxD1bXQiw==", 162 | "dependencies": { 163 | "cheerio-select-tmp": "^0.1.0", 164 | "dom-serializer": "~1.2.0", 165 | "domhandler": "^4.0.0", 166 | "entities": "~2.1.0", 167 | "htmlparser2": "^6.0.0", 168 | "parse5": "^6.0.0", 169 | "parse5-htmlparser2-tree-adapter": "^6.0.0" 170 | }, 171 | "engines": { 172 | "node": ">= 0.12" 173 | } 174 | }, 175 | "node_modules/cheerio-select-tmp": { 176 | "version": "0.1.1", 177 | "resolved": "https://registry.npmjs.org/cheerio-select-tmp/-/cheerio-select-tmp-0.1.1.tgz", 178 | "integrity": "sha512-YYs5JvbpU19VYJyj+F7oYrIE2BOll1/hRU7rEy/5+v9BzkSo3bK81iAeeQEMI92vRIxz677m72UmJUiVwwgjfQ==", 179 | "deprecated": "Use cheerio-select instead", 180 | "dependencies": { 181 | "css-select": "^3.1.2", 182 | "css-what": "^4.0.0", 183 | "domelementtype": "^2.1.0", 184 | "domhandler": "^4.0.0", 185 | "domutils": "^2.4.4" 186 | }, 187 | "funding": { 188 | "url": "https://github.com/sponsors/fb55" 189 | } 190 | }, 191 | "node_modules/cliui": { 192 | "version": "7.0.4", 193 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", 194 | "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", 195 | "dev": true, 196 | "dependencies": { 197 | "string-width": "^4.2.0", 198 | "strip-ansi": "^6.0.0", 199 | "wrap-ansi": "^7.0.0" 200 | } 201 | }, 202 | "node_modules/color-convert": { 203 | "version": "2.0.1", 204 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 205 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 206 | "dev": true, 207 | "dependencies": { 208 | "color-name": "~1.1.4" 209 | }, 210 | "engines": { 211 | "node": ">=7.0.0" 212 | } 213 | }, 214 | "node_modules/color-name": { 215 | "version": "1.1.4", 216 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 217 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 218 | "dev": true 219 | }, 220 | "node_modules/concat-map": { 221 | "version": "0.0.1", 222 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 223 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 224 | "dev": true 225 | }, 226 | "node_modules/convert-source-map": { 227 | "version": "1.7.0", 228 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", 229 | "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", 230 | "dev": true, 231 | "dependencies": { 232 | "safe-buffer": "~5.1.1" 233 | } 234 | }, 235 | "node_modules/cross-spawn": { 236 | "version": "7.0.3", 237 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 238 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 239 | "dev": true, 240 | "dependencies": { 241 | "path-key": "^3.1.0", 242 | "shebang-command": "^2.0.0", 243 | "which": "^2.0.1" 244 | }, 245 | "engines": { 246 | "node": ">= 8" 247 | } 248 | }, 249 | "node_modules/css-select": { 250 | "version": "3.1.2", 251 | "resolved": "https://registry.npmjs.org/css-select/-/css-select-3.1.2.tgz", 252 | "integrity": "sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA==", 253 | "dependencies": { 254 | "boolbase": "^1.0.0", 255 | "css-what": "^4.0.0", 256 | "domhandler": "^4.0.0", 257 | "domutils": "^2.4.3", 258 | "nth-check": "^2.0.0" 259 | }, 260 | "funding": { 261 | "url": "https://github.com/sponsors/fb55" 262 | } 263 | }, 264 | "node_modules/css-what": { 265 | "version": "4.0.0", 266 | "resolved": "https://registry.npmjs.org/css-what/-/css-what-4.0.0.tgz", 267 | "integrity": "sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A==", 268 | "engines": { 269 | "node": ">= 6" 270 | }, 271 | "funding": { 272 | "url": "https://github.com/sponsors/fb55" 273 | } 274 | }, 275 | "node_modules/deep-equal": { 276 | "version": "2.0.5", 277 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz", 278 | "integrity": "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==", 279 | "dev": true, 280 | "dependencies": { 281 | "call-bind": "^1.0.0", 282 | "es-get-iterator": "^1.1.1", 283 | "get-intrinsic": "^1.0.1", 284 | "is-arguments": "^1.0.4", 285 | "is-date-object": "^1.0.2", 286 | "is-regex": "^1.1.1", 287 | "isarray": "^2.0.5", 288 | "object-is": "^1.1.4", 289 | "object-keys": "^1.1.1", 290 | "object.assign": "^4.1.2", 291 | "regexp.prototype.flags": "^1.3.0", 292 | "side-channel": "^1.0.3", 293 | "which-boxed-primitive": "^1.0.1", 294 | "which-collection": "^1.0.1", 295 | "which-typed-array": "^1.1.2" 296 | }, 297 | "funding": { 298 | "url": "https://github.com/sponsors/ljharb" 299 | } 300 | }, 301 | "node_modules/define-properties": { 302 | "version": "1.1.3", 303 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", 304 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", 305 | "dev": true, 306 | "dependencies": { 307 | "object-keys": "^1.0.12" 308 | }, 309 | "engines": { 310 | "node": ">= 0.4" 311 | } 312 | }, 313 | "node_modules/defined": { 314 | "version": "1.0.0", 315 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", 316 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", 317 | "dev": true 318 | }, 319 | "node_modules/dom-serializer": { 320 | "version": "1.2.0", 321 | "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz", 322 | "integrity": "sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA==", 323 | "dependencies": { 324 | "domelementtype": "^2.0.1", 325 | "domhandler": "^4.0.0", 326 | "entities": "^2.0.0" 327 | }, 328 | "funding": { 329 | "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" 330 | } 331 | }, 332 | "node_modules/domelementtype": { 333 | "version": "2.1.0", 334 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", 335 | "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==", 336 | "funding": [ 337 | { 338 | "type": "github", 339 | "url": "https://github.com/sponsors/fb55" 340 | } 341 | ] 342 | }, 343 | "node_modules/domhandler": { 344 | "version": "4.0.0", 345 | "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz", 346 | "integrity": "sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA==", 347 | "dependencies": { 348 | "domelementtype": "^2.1.0" 349 | }, 350 | "engines": { 351 | "node": ">= 4" 352 | }, 353 | "funding": { 354 | "url": "https://github.com/fb55/domhandler?sponsor=1" 355 | } 356 | }, 357 | "node_modules/domutils": { 358 | "version": "2.5.0", 359 | "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.5.0.tgz", 360 | "integrity": "sha512-Ho16rzNMOFk2fPwChGh3D2D9OEHAfG19HgmRR2l+WLSsIstNsAYBzePH412bL0y5T44ejABIVfTHQ8nqi/tBCg==", 361 | "dependencies": { 362 | "dom-serializer": "^1.0.1", 363 | "domelementtype": "^2.0.1", 364 | "domhandler": "^4.0.0" 365 | }, 366 | "funding": { 367 | "url": "https://github.com/fb55/domutils?sponsor=1" 368 | } 369 | }, 370 | "node_modules/dotignore": { 371 | "version": "0.1.2", 372 | "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", 373 | "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", 374 | "dev": true, 375 | "dependencies": { 376 | "minimatch": "^3.0.4" 377 | }, 378 | "bin": { 379 | "ignored": "bin/ignored" 380 | } 381 | }, 382 | "node_modules/emoji-regex": { 383 | "version": "8.0.0", 384 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 385 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 386 | "dev": true 387 | }, 388 | "node_modules/entities": { 389 | "version": "2.1.0", 390 | "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", 391 | "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", 392 | "funding": { 393 | "url": "https://github.com/fb55/entities?sponsor=1" 394 | } 395 | }, 396 | "node_modules/es-abstract": { 397 | "version": "1.18.0", 398 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", 399 | "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", 400 | "dev": true, 401 | "dependencies": { 402 | "call-bind": "^1.0.2", 403 | "es-to-primitive": "^1.2.1", 404 | "function-bind": "^1.1.1", 405 | "get-intrinsic": "^1.1.1", 406 | "has": "^1.0.3", 407 | "has-symbols": "^1.0.2", 408 | "is-callable": "^1.2.3", 409 | "is-negative-zero": "^2.0.1", 410 | "is-regex": "^1.1.2", 411 | "is-string": "^1.0.5", 412 | "object-inspect": "^1.9.0", 413 | "object-keys": "^1.1.1", 414 | "object.assign": "^4.1.2", 415 | "string.prototype.trimend": "^1.0.4", 416 | "string.prototype.trimstart": "^1.0.4", 417 | "unbox-primitive": "^1.0.0" 418 | }, 419 | "engines": { 420 | "node": ">= 0.4" 421 | }, 422 | "funding": { 423 | "url": "https://github.com/sponsors/ljharb" 424 | } 425 | }, 426 | "node_modules/es-get-iterator": { 427 | "version": "1.1.2", 428 | "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", 429 | "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", 430 | "dev": true, 431 | "dependencies": { 432 | "call-bind": "^1.0.2", 433 | "get-intrinsic": "^1.1.0", 434 | "has-symbols": "^1.0.1", 435 | "is-arguments": "^1.1.0", 436 | "is-map": "^2.0.2", 437 | "is-set": "^2.0.2", 438 | "is-string": "^1.0.5", 439 | "isarray": "^2.0.5" 440 | }, 441 | "funding": { 442 | "url": "https://github.com/sponsors/ljharb" 443 | } 444 | }, 445 | "node_modules/es-to-primitive": { 446 | "version": "1.2.1", 447 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", 448 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", 449 | "dev": true, 450 | "dependencies": { 451 | "is-callable": "^1.1.4", 452 | "is-date-object": "^1.0.1", 453 | "is-symbol": "^1.0.2" 454 | }, 455 | "engines": { 456 | "node": ">= 0.4" 457 | }, 458 | "funding": { 459 | "url": "https://github.com/sponsors/ljharb" 460 | } 461 | }, 462 | "node_modules/escalade": { 463 | "version": "3.1.1", 464 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 465 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 466 | "dev": true, 467 | "engines": { 468 | "node": ">=6" 469 | } 470 | }, 471 | "node_modules/find-up": { 472 | "version": "5.0.0", 473 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 474 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 475 | "dev": true, 476 | "dependencies": { 477 | "locate-path": "^6.0.0", 478 | "path-exists": "^4.0.0" 479 | }, 480 | "engines": { 481 | "node": ">=10" 482 | }, 483 | "funding": { 484 | "url": "https://github.com/sponsors/sindresorhus" 485 | } 486 | }, 487 | "node_modules/for-each": { 488 | "version": "0.3.3", 489 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", 490 | "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", 491 | "dev": true, 492 | "dependencies": { 493 | "is-callable": "^1.1.3" 494 | } 495 | }, 496 | "node_modules/foreach": { 497 | "version": "2.0.5", 498 | "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", 499 | "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", 500 | "dev": true 501 | }, 502 | "node_modules/foreground-child": { 503 | "version": "2.0.0", 504 | "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", 505 | "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", 506 | "dev": true, 507 | "dependencies": { 508 | "cross-spawn": "^7.0.0", 509 | "signal-exit": "^3.0.2" 510 | }, 511 | "engines": { 512 | "node": ">=8.0.0" 513 | } 514 | }, 515 | "node_modules/fs.realpath": { 516 | "version": "1.0.0", 517 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 518 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 519 | "dev": true 520 | }, 521 | "node_modules/fsevents": { 522 | "version": "2.3.2", 523 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 524 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 525 | "dev": true, 526 | "hasInstallScript": true, 527 | "optional": true, 528 | "os": [ 529 | "darwin" 530 | ], 531 | "engines": { 532 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 533 | } 534 | }, 535 | "node_modules/function-bind": { 536 | "version": "1.1.1", 537 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 538 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 539 | "dev": true 540 | }, 541 | "node_modules/furi": { 542 | "version": "2.0.0", 543 | "resolved": "https://registry.npmjs.org/furi/-/furi-2.0.0.tgz", 544 | "integrity": "sha512-uKuNsaU0WVaK/vmvj23wW1bicOFfyqSsAIH71bRZx8kA4Xj+YCHin7CJKJJjkIsmxYaPFLk9ljmjEyB7xF7WvQ==", 545 | "dev": true, 546 | "dependencies": { 547 | "@types/is-windows": "^1.0.0", 548 | "is-windows": "^1.0.2" 549 | } 550 | }, 551 | "node_modules/get-caller-file": { 552 | "version": "2.0.5", 553 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 554 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", 555 | "dev": true, 556 | "engines": { 557 | "node": "6.* || 8.* || >= 10.*" 558 | } 559 | }, 560 | "node_modules/get-intrinsic": { 561 | "version": "1.1.1", 562 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", 563 | "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", 564 | "dev": true, 565 | "dependencies": { 566 | "function-bind": "^1.1.1", 567 | "has": "^1.0.3", 568 | "has-symbols": "^1.0.1" 569 | }, 570 | "funding": { 571 | "url": "https://github.com/sponsors/ljharb" 572 | } 573 | }, 574 | "node_modules/glob": { 575 | "version": "7.1.6", 576 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 577 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 578 | "dev": true, 579 | "dependencies": { 580 | "fs.realpath": "^1.0.0", 581 | "inflight": "^1.0.4", 582 | "inherits": "2", 583 | "minimatch": "^3.0.4", 584 | "once": "^1.3.0", 585 | "path-is-absolute": "^1.0.0" 586 | }, 587 | "engines": { 588 | "node": "*" 589 | }, 590 | "funding": { 591 | "url": "https://github.com/sponsors/isaacs" 592 | } 593 | }, 594 | "node_modules/has": { 595 | "version": "1.0.3", 596 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 597 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 598 | "dev": true, 599 | "dependencies": { 600 | "function-bind": "^1.1.1" 601 | }, 602 | "engines": { 603 | "node": ">= 0.4.0" 604 | } 605 | }, 606 | "node_modules/has-bigints": { 607 | "version": "1.0.1", 608 | "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", 609 | "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", 610 | "dev": true, 611 | "funding": { 612 | "url": "https://github.com/sponsors/ljharb" 613 | } 614 | }, 615 | "node_modules/has-flag": { 616 | "version": "4.0.0", 617 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 618 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 619 | "dev": true, 620 | "engines": { 621 | "node": ">=8" 622 | } 623 | }, 624 | "node_modules/has-symbols": { 625 | "version": "1.0.2", 626 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", 627 | "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", 628 | "dev": true, 629 | "engines": { 630 | "node": ">= 0.4" 631 | }, 632 | "funding": { 633 | "url": "https://github.com/sponsors/ljharb" 634 | } 635 | }, 636 | "node_modules/html-escaper": { 637 | "version": "2.0.2", 638 | "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", 639 | "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", 640 | "dev": true 641 | }, 642 | "node_modules/htmlparser2": { 643 | "version": "6.0.1", 644 | "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.0.1.tgz", 645 | "integrity": "sha512-GDKPd+vk4jvSuvCbyuzx/unmXkk090Azec7LovXP8as1Hn8q9p3hbjmDGbUqqhknw0ajwit6LiiWqfiTUPMK7w==", 646 | "funding": [ 647 | "https://github.com/fb55/htmlparser2?sponsor=1", 648 | { 649 | "type": "github", 650 | "url": "https://github.com/sponsors/fb55" 651 | } 652 | ], 653 | "dependencies": { 654 | "domelementtype": "^2.0.1", 655 | "domhandler": "^4.0.0", 656 | "domutils": "^2.4.4", 657 | "entities": "^2.0.0" 658 | } 659 | }, 660 | "node_modules/inflight": { 661 | "version": "1.0.6", 662 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 663 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 664 | "dev": true, 665 | "dependencies": { 666 | "once": "^1.3.0", 667 | "wrappy": "1" 668 | } 669 | }, 670 | "node_modules/inherits": { 671 | "version": "2.0.4", 672 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 673 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 674 | "dev": true 675 | }, 676 | "node_modules/is-arguments": { 677 | "version": "1.1.0", 678 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", 679 | "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", 680 | "dev": true, 681 | "dependencies": { 682 | "call-bind": "^1.0.0" 683 | }, 684 | "engines": { 685 | "node": ">= 0.4" 686 | }, 687 | "funding": { 688 | "url": "https://github.com/sponsors/ljharb" 689 | } 690 | }, 691 | "node_modules/is-bigint": { 692 | "version": "1.0.1", 693 | "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", 694 | "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==", 695 | "dev": true, 696 | "funding": { 697 | "url": "https://github.com/sponsors/ljharb" 698 | } 699 | }, 700 | "node_modules/is-boolean-object": { 701 | "version": "1.1.0", 702 | "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", 703 | "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", 704 | "dev": true, 705 | "dependencies": { 706 | "call-bind": "^1.0.0" 707 | }, 708 | "engines": { 709 | "node": ">= 0.4" 710 | }, 711 | "funding": { 712 | "url": "https://github.com/sponsors/ljharb" 713 | } 714 | }, 715 | "node_modules/is-callable": { 716 | "version": "1.2.3", 717 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", 718 | "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", 719 | "dev": true, 720 | "engines": { 721 | "node": ">= 0.4" 722 | }, 723 | "funding": { 724 | "url": "https://github.com/sponsors/ljharb" 725 | } 726 | }, 727 | "node_modules/is-core-module": { 728 | "version": "2.2.0", 729 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", 730 | "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", 731 | "dev": true, 732 | "dependencies": { 733 | "has": "^1.0.3" 734 | }, 735 | "funding": { 736 | "url": "https://github.com/sponsors/ljharb" 737 | } 738 | }, 739 | "node_modules/is-date-object": { 740 | "version": "1.0.2", 741 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", 742 | "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", 743 | "dev": true, 744 | "engines": { 745 | "node": ">= 0.4" 746 | }, 747 | "funding": { 748 | "url": "https://github.com/sponsors/ljharb" 749 | } 750 | }, 751 | "node_modules/is-fullwidth-code-point": { 752 | "version": "3.0.0", 753 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 754 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 755 | "dev": true, 756 | "engines": { 757 | "node": ">=8" 758 | } 759 | }, 760 | "node_modules/is-map": { 761 | "version": "2.0.2", 762 | "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", 763 | "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", 764 | "dev": true, 765 | "funding": { 766 | "url": "https://github.com/sponsors/ljharb" 767 | } 768 | }, 769 | "node_modules/is-negative-zero": { 770 | "version": "2.0.1", 771 | "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", 772 | "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", 773 | "dev": true, 774 | "engines": { 775 | "node": ">= 0.4" 776 | }, 777 | "funding": { 778 | "url": "https://github.com/sponsors/ljharb" 779 | } 780 | }, 781 | "node_modules/is-number-object": { 782 | "version": "1.0.4", 783 | "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", 784 | "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", 785 | "dev": true, 786 | "engines": { 787 | "node": ">= 0.4" 788 | }, 789 | "funding": { 790 | "url": "https://github.com/sponsors/ljharb" 791 | } 792 | }, 793 | "node_modules/is-regex": { 794 | "version": "1.1.2", 795 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", 796 | "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", 797 | "dev": true, 798 | "dependencies": { 799 | "call-bind": "^1.0.2", 800 | "has-symbols": "^1.0.1" 801 | }, 802 | "engines": { 803 | "node": ">= 0.4" 804 | }, 805 | "funding": { 806 | "url": "https://github.com/sponsors/ljharb" 807 | } 808 | }, 809 | "node_modules/is-set": { 810 | "version": "2.0.2", 811 | "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", 812 | "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", 813 | "dev": true, 814 | "funding": { 815 | "url": "https://github.com/sponsors/ljharb" 816 | } 817 | }, 818 | "node_modules/is-string": { 819 | "version": "1.0.5", 820 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", 821 | "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", 822 | "dev": true, 823 | "engines": { 824 | "node": ">= 0.4" 825 | }, 826 | "funding": { 827 | "url": "https://github.com/sponsors/ljharb" 828 | } 829 | }, 830 | "node_modules/is-symbol": { 831 | "version": "1.0.3", 832 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", 833 | "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", 834 | "dev": true, 835 | "dependencies": { 836 | "has-symbols": "^1.0.1" 837 | }, 838 | "engines": { 839 | "node": ">= 0.4" 840 | }, 841 | "funding": { 842 | "url": "https://github.com/sponsors/ljharb" 843 | } 844 | }, 845 | "node_modules/is-typed-array": { 846 | "version": "1.1.5", 847 | "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz", 848 | "integrity": "sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==", 849 | "dev": true, 850 | "dependencies": { 851 | "available-typed-arrays": "^1.0.2", 852 | "call-bind": "^1.0.2", 853 | "es-abstract": "^1.18.0-next.2", 854 | "foreach": "^2.0.5", 855 | "has-symbols": "^1.0.1" 856 | }, 857 | "engines": { 858 | "node": ">= 0.4" 859 | }, 860 | "funding": { 861 | "url": "https://github.com/sponsors/ljharb" 862 | } 863 | }, 864 | "node_modules/is-weakmap": { 865 | "version": "2.0.1", 866 | "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", 867 | "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", 868 | "dev": true, 869 | "funding": { 870 | "url": "https://github.com/sponsors/ljharb" 871 | } 872 | }, 873 | "node_modules/is-weakset": { 874 | "version": "2.0.1", 875 | "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.1.tgz", 876 | "integrity": "sha512-pi4vhbhVHGLxohUw7PhGsueT4vRGFoXhP7+RGN0jKIv9+8PWYCQTqtADngrxOm2g46hoH0+g8uZZBzMrvVGDmw==", 877 | "dev": true, 878 | "funding": { 879 | "url": "https://github.com/sponsors/ljharb" 880 | } 881 | }, 882 | "node_modules/is-windows": { 883 | "version": "1.0.2", 884 | "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", 885 | "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", 886 | "dev": true, 887 | "engines": { 888 | "node": ">=0.10.0" 889 | } 890 | }, 891 | "node_modules/isarray": { 892 | "version": "2.0.5", 893 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", 894 | "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", 895 | "dev": true 896 | }, 897 | "node_modules/isexe": { 898 | "version": "2.0.0", 899 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 900 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 901 | "dev": true 902 | }, 903 | "node_modules/istanbul-lib-coverage": { 904 | "version": "3.0.0", 905 | "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", 906 | "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", 907 | "dev": true, 908 | "engines": { 909 | "node": ">=8" 910 | } 911 | }, 912 | "node_modules/istanbul-lib-report": { 913 | "version": "3.0.0", 914 | "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", 915 | "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", 916 | "dev": true, 917 | "dependencies": { 918 | "istanbul-lib-coverage": "^3.0.0", 919 | "make-dir": "^3.0.0", 920 | "supports-color": "^7.1.0" 921 | }, 922 | "engines": { 923 | "node": ">=8" 924 | } 925 | }, 926 | "node_modules/istanbul-reports": { 927 | "version": "3.0.2", 928 | "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", 929 | "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", 930 | "dev": true, 931 | "dependencies": { 932 | "html-escaper": "^2.0.0", 933 | "istanbul-lib-report": "^3.0.0" 934 | }, 935 | "engines": { 936 | "node": ">=8" 937 | } 938 | }, 939 | "node_modules/locate-path": { 940 | "version": "6.0.0", 941 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 942 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 943 | "dev": true, 944 | "dependencies": { 945 | "p-locate": "^5.0.0" 946 | }, 947 | "engines": { 948 | "node": ">=10" 949 | }, 950 | "funding": { 951 | "url": "https://github.com/sponsors/sindresorhus" 952 | } 953 | }, 954 | "node_modules/make-dir": { 955 | "version": "3.1.0", 956 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", 957 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", 958 | "dev": true, 959 | "dependencies": { 960 | "semver": "^6.0.0" 961 | }, 962 | "engines": { 963 | "node": ">=8" 964 | }, 965 | "funding": { 966 | "url": "https://github.com/sponsors/sindresorhus" 967 | } 968 | }, 969 | "node_modules/minimatch": { 970 | "version": "3.0.4", 971 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 972 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 973 | "dev": true, 974 | "dependencies": { 975 | "brace-expansion": "^1.1.7" 976 | }, 977 | "engines": { 978 | "node": "*" 979 | } 980 | }, 981 | "node_modules/minimist": { 982 | "version": "1.2.5", 983 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 984 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", 985 | "dev": true 986 | }, 987 | "node_modules/node-fetch": { 988 | "version": "2.6.1", 989 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", 990 | "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", 991 | "engines": { 992 | "node": "4.x || >=6.0.0" 993 | } 994 | }, 995 | "node_modules/nth-check": { 996 | "version": "2.0.0", 997 | "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz", 998 | "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==", 999 | "dependencies": { 1000 | "boolbase": "^1.0.0" 1001 | }, 1002 | "funding": { 1003 | "url": "https://github.com/fb55/nth-check?sponsor=1" 1004 | } 1005 | }, 1006 | "node_modules/object-inspect": { 1007 | "version": "1.9.0", 1008 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", 1009 | "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", 1010 | "dev": true, 1011 | "funding": { 1012 | "url": "https://github.com/sponsors/ljharb" 1013 | } 1014 | }, 1015 | "node_modules/object-is": { 1016 | "version": "1.1.5", 1017 | "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", 1018 | "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", 1019 | "dev": true, 1020 | "dependencies": { 1021 | "call-bind": "^1.0.2", 1022 | "define-properties": "^1.1.3" 1023 | }, 1024 | "engines": { 1025 | "node": ">= 0.4" 1026 | }, 1027 | "funding": { 1028 | "url": "https://github.com/sponsors/ljharb" 1029 | } 1030 | }, 1031 | "node_modules/object-keys": { 1032 | "version": "1.1.1", 1033 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 1034 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 1035 | "dev": true, 1036 | "engines": { 1037 | "node": ">= 0.4" 1038 | } 1039 | }, 1040 | "node_modules/object.assign": { 1041 | "version": "4.1.2", 1042 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", 1043 | "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", 1044 | "dev": true, 1045 | "dependencies": { 1046 | "call-bind": "^1.0.0", 1047 | "define-properties": "^1.1.3", 1048 | "has-symbols": "^1.0.1", 1049 | "object-keys": "^1.1.1" 1050 | }, 1051 | "engines": { 1052 | "node": ">= 0.4" 1053 | }, 1054 | "funding": { 1055 | "url": "https://github.com/sponsors/ljharb" 1056 | } 1057 | }, 1058 | "node_modules/once": { 1059 | "version": "1.4.0", 1060 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1061 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1062 | "dev": true, 1063 | "dependencies": { 1064 | "wrappy": "1" 1065 | } 1066 | }, 1067 | "node_modules/p-limit": { 1068 | "version": "3.1.0", 1069 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 1070 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 1071 | "dev": true, 1072 | "dependencies": { 1073 | "yocto-queue": "^0.1.0" 1074 | }, 1075 | "engines": { 1076 | "node": ">=10" 1077 | }, 1078 | "funding": { 1079 | "url": "https://github.com/sponsors/sindresorhus" 1080 | } 1081 | }, 1082 | "node_modules/p-locate": { 1083 | "version": "5.0.0", 1084 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 1085 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 1086 | "dev": true, 1087 | "dependencies": { 1088 | "p-limit": "^3.0.2" 1089 | }, 1090 | "engines": { 1091 | "node": ">=10" 1092 | }, 1093 | "funding": { 1094 | "url": "https://github.com/sponsors/sindresorhus" 1095 | } 1096 | }, 1097 | "node_modules/parse5": { 1098 | "version": "6.0.1", 1099 | "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", 1100 | "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" 1101 | }, 1102 | "node_modules/parse5-htmlparser2-tree-adapter": { 1103 | "version": "6.0.1", 1104 | "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", 1105 | "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", 1106 | "dependencies": { 1107 | "parse5": "^6.0.1" 1108 | } 1109 | }, 1110 | "node_modules/path-exists": { 1111 | "version": "4.0.0", 1112 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 1113 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 1114 | "dev": true, 1115 | "engines": { 1116 | "node": ">=8" 1117 | } 1118 | }, 1119 | "node_modules/path-is-absolute": { 1120 | "version": "1.0.1", 1121 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1122 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1123 | "dev": true, 1124 | "engines": { 1125 | "node": ">=0.10.0" 1126 | } 1127 | }, 1128 | "node_modules/path-key": { 1129 | "version": "3.1.1", 1130 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 1131 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 1132 | "dev": true, 1133 | "engines": { 1134 | "node": ">=8" 1135 | } 1136 | }, 1137 | "node_modules/path-parse": { 1138 | "version": "1.0.6", 1139 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", 1140 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", 1141 | "dev": true 1142 | }, 1143 | "node_modules/regexp.prototype.flags": { 1144 | "version": "1.3.1", 1145 | "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", 1146 | "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", 1147 | "dev": true, 1148 | "dependencies": { 1149 | "call-bind": "^1.0.2", 1150 | "define-properties": "^1.1.3" 1151 | }, 1152 | "engines": { 1153 | "node": ">= 0.4" 1154 | }, 1155 | "funding": { 1156 | "url": "https://github.com/sponsors/ljharb" 1157 | } 1158 | }, 1159 | "node_modules/require-directory": { 1160 | "version": "2.1.1", 1161 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 1162 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", 1163 | "dev": true, 1164 | "engines": { 1165 | "node": ">=0.10.0" 1166 | } 1167 | }, 1168 | "node_modules/resolve": { 1169 | "version": "2.0.0-next.3", 1170 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", 1171 | "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", 1172 | "dev": true, 1173 | "dependencies": { 1174 | "is-core-module": "^2.2.0", 1175 | "path-parse": "^1.0.6" 1176 | }, 1177 | "funding": { 1178 | "url": "https://github.com/sponsors/ljharb" 1179 | } 1180 | }, 1181 | "node_modules/resumer": { 1182 | "version": "0.0.0", 1183 | "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", 1184 | "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", 1185 | "dev": true, 1186 | "dependencies": { 1187 | "through": "~2.3.4" 1188 | } 1189 | }, 1190 | "node_modules/rimraf": { 1191 | "version": "3.0.2", 1192 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 1193 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 1194 | "dev": true, 1195 | "dependencies": { 1196 | "glob": "^7.1.3" 1197 | }, 1198 | "bin": { 1199 | "rimraf": "bin.js" 1200 | }, 1201 | "funding": { 1202 | "url": "https://github.com/sponsors/isaacs" 1203 | } 1204 | }, 1205 | "node_modules/rollup": { 1206 | "version": "2.51.0", 1207 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.51.0.tgz", 1208 | "integrity": "sha512-ITLt9sScNCBVspSHauw/W49lEZ0vjN8LyCzSNsNaqT67vTss2lYEfOyxltX8hjrhr1l/rQwmZ2wazzEqhZ/fUg==", 1209 | "dev": true, 1210 | "bin": { 1211 | "rollup": "dist/bin/rollup" 1212 | }, 1213 | "engines": { 1214 | "node": ">=10.0.0" 1215 | }, 1216 | "optionalDependencies": { 1217 | "fsevents": "~2.3.1" 1218 | } 1219 | }, 1220 | "node_modules/safe-buffer": { 1221 | "version": "5.1.2", 1222 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1223 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 1224 | "dev": true 1225 | }, 1226 | "node_modules/semver": { 1227 | "version": "6.3.0", 1228 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 1229 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 1230 | "dev": true, 1231 | "bin": { 1232 | "semver": "bin/semver.js" 1233 | } 1234 | }, 1235 | "node_modules/shebang-command": { 1236 | "version": "2.0.0", 1237 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 1238 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 1239 | "dev": true, 1240 | "dependencies": { 1241 | "shebang-regex": "^3.0.0" 1242 | }, 1243 | "engines": { 1244 | "node": ">=8" 1245 | } 1246 | }, 1247 | "node_modules/shebang-regex": { 1248 | "version": "3.0.0", 1249 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 1250 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 1251 | "dev": true, 1252 | "engines": { 1253 | "node": ">=8" 1254 | } 1255 | }, 1256 | "node_modules/side-channel": { 1257 | "version": "1.0.4", 1258 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", 1259 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", 1260 | "dev": true, 1261 | "dependencies": { 1262 | "call-bind": "^1.0.0", 1263 | "get-intrinsic": "^1.0.2", 1264 | "object-inspect": "^1.9.0" 1265 | }, 1266 | "funding": { 1267 | "url": "https://github.com/sponsors/ljharb" 1268 | } 1269 | }, 1270 | "node_modules/signal-exit": { 1271 | "version": "3.0.3", 1272 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 1273 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", 1274 | "dev": true 1275 | }, 1276 | "node_modules/source-map": { 1277 | "version": "0.7.3", 1278 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", 1279 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", 1280 | "dev": true, 1281 | "engines": { 1282 | "node": ">= 8" 1283 | } 1284 | }, 1285 | "node_modules/string-width": { 1286 | "version": "4.2.2", 1287 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", 1288 | "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", 1289 | "dev": true, 1290 | "dependencies": { 1291 | "emoji-regex": "^8.0.0", 1292 | "is-fullwidth-code-point": "^3.0.0", 1293 | "strip-ansi": "^6.0.0" 1294 | }, 1295 | "engines": { 1296 | "node": ">=8" 1297 | } 1298 | }, 1299 | "node_modules/string.prototype.trim": { 1300 | "version": "1.2.4", 1301 | "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.4.tgz", 1302 | "integrity": "sha512-hWCk/iqf7lp0/AgTF7/ddO1IWtSNPASjlzCicV5irAVdE1grjsneK26YG6xACMBEdCvO8fUST0UzDMh/2Qy+9Q==", 1303 | "dev": true, 1304 | "dependencies": { 1305 | "call-bind": "^1.0.2", 1306 | "define-properties": "^1.1.3", 1307 | "es-abstract": "^1.18.0-next.2" 1308 | }, 1309 | "engines": { 1310 | "node": ">= 0.4" 1311 | }, 1312 | "funding": { 1313 | "url": "https://github.com/sponsors/ljharb" 1314 | } 1315 | }, 1316 | "node_modules/string.prototype.trimend": { 1317 | "version": "1.0.4", 1318 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", 1319 | "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", 1320 | "dev": true, 1321 | "dependencies": { 1322 | "call-bind": "^1.0.2", 1323 | "define-properties": "^1.1.3" 1324 | }, 1325 | "funding": { 1326 | "url": "https://github.com/sponsors/ljharb" 1327 | } 1328 | }, 1329 | "node_modules/string.prototype.trimstart": { 1330 | "version": "1.0.4", 1331 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", 1332 | "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", 1333 | "dev": true, 1334 | "dependencies": { 1335 | "call-bind": "^1.0.2", 1336 | "define-properties": "^1.1.3" 1337 | }, 1338 | "funding": { 1339 | "url": "https://github.com/sponsors/ljharb" 1340 | } 1341 | }, 1342 | "node_modules/strip-ansi": { 1343 | "version": "6.0.0", 1344 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 1345 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 1346 | "dev": true, 1347 | "dependencies": { 1348 | "ansi-regex": "^5.0.0" 1349 | }, 1350 | "engines": { 1351 | "node": ">=8" 1352 | } 1353 | }, 1354 | "node_modules/supports-color": { 1355 | "version": "7.2.0", 1356 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 1357 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 1358 | "dev": true, 1359 | "dependencies": { 1360 | "has-flag": "^4.0.0" 1361 | }, 1362 | "engines": { 1363 | "node": ">=8" 1364 | } 1365 | }, 1366 | "node_modules/tape": { 1367 | "version": "5.2.2", 1368 | "resolved": "https://registry.npmjs.org/tape/-/tape-5.2.2.tgz", 1369 | "integrity": "sha512-grXrzPC1ly2kyTMKdqxh5GiLpb0BpNctCuecTB0psHX4Gu0nc+uxWR4xKjTh/4CfQlH4zhvTM2/EXmHXp6v/uA==", 1370 | "dev": true, 1371 | "dependencies": { 1372 | "call-bind": "^1.0.2", 1373 | "deep-equal": "^2.0.5", 1374 | "defined": "^1.0.0", 1375 | "dotignore": "^0.1.2", 1376 | "for-each": "^0.3.3", 1377 | "glob": "^7.1.6", 1378 | "has": "^1.0.3", 1379 | "inherits": "^2.0.4", 1380 | "is-regex": "^1.1.2", 1381 | "minimist": "^1.2.5", 1382 | "object-inspect": "^1.9.0", 1383 | "object-is": "^1.1.5", 1384 | "object.assign": "^4.1.2", 1385 | "resolve": "^2.0.0-next.3", 1386 | "resumer": "^0.0.0", 1387 | "string.prototype.trim": "^1.2.4", 1388 | "through": "^2.3.8" 1389 | }, 1390 | "bin": { 1391 | "tape": "bin/tape" 1392 | } 1393 | }, 1394 | "node_modules/test-exclude": { 1395 | "version": "6.0.0", 1396 | "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", 1397 | "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", 1398 | "dev": true, 1399 | "dependencies": { 1400 | "@istanbuljs/schema": "^0.1.2", 1401 | "glob": "^7.1.4", 1402 | "minimatch": "^3.0.4" 1403 | }, 1404 | "engines": { 1405 | "node": ">=8" 1406 | } 1407 | }, 1408 | "node_modules/through": { 1409 | "version": "2.3.8", 1410 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 1411 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 1412 | "dev": true 1413 | }, 1414 | "node_modules/unbox-primitive": { 1415 | "version": "1.0.1", 1416 | "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", 1417 | "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", 1418 | "dev": true, 1419 | "dependencies": { 1420 | "function-bind": "^1.1.1", 1421 | "has-bigints": "^1.0.1", 1422 | "has-symbols": "^1.0.2", 1423 | "which-boxed-primitive": "^1.0.2" 1424 | }, 1425 | "funding": { 1426 | "url": "https://github.com/sponsors/ljharb" 1427 | } 1428 | }, 1429 | "node_modules/v8-to-istanbul": { 1430 | "version": "7.1.1", 1431 | "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.1.tgz", 1432 | "integrity": "sha512-p0BB09E5FRjx0ELN6RgusIPsSPhtgexSRcKETybEs6IGOTXJSZqfwxp7r//55nnu0f1AxltY5VvdVqy2vZf9AA==", 1433 | "dev": true, 1434 | "dependencies": { 1435 | "@types/istanbul-lib-coverage": "^2.0.1", 1436 | "convert-source-map": "^1.6.0", 1437 | "source-map": "^0.7.3" 1438 | }, 1439 | "engines": { 1440 | "node": ">=10.10.0" 1441 | } 1442 | }, 1443 | "node_modules/which": { 1444 | "version": "2.0.2", 1445 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 1446 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 1447 | "dev": true, 1448 | "dependencies": { 1449 | "isexe": "^2.0.0" 1450 | }, 1451 | "bin": { 1452 | "node-which": "bin/node-which" 1453 | }, 1454 | "engines": { 1455 | "node": ">= 8" 1456 | } 1457 | }, 1458 | "node_modules/which-boxed-primitive": { 1459 | "version": "1.0.2", 1460 | "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", 1461 | "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", 1462 | "dev": true, 1463 | "dependencies": { 1464 | "is-bigint": "^1.0.1", 1465 | "is-boolean-object": "^1.1.0", 1466 | "is-number-object": "^1.0.4", 1467 | "is-string": "^1.0.5", 1468 | "is-symbol": "^1.0.3" 1469 | }, 1470 | "funding": { 1471 | "url": "https://github.com/sponsors/ljharb" 1472 | } 1473 | }, 1474 | "node_modules/which-collection": { 1475 | "version": "1.0.1", 1476 | "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", 1477 | "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", 1478 | "dev": true, 1479 | "dependencies": { 1480 | "is-map": "^2.0.1", 1481 | "is-set": "^2.0.1", 1482 | "is-weakmap": "^2.0.1", 1483 | "is-weakset": "^2.0.1" 1484 | }, 1485 | "funding": { 1486 | "url": "https://github.com/sponsors/ljharb" 1487 | } 1488 | }, 1489 | "node_modules/which-typed-array": { 1490 | "version": "1.1.4", 1491 | "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz", 1492 | "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==", 1493 | "dev": true, 1494 | "dependencies": { 1495 | "available-typed-arrays": "^1.0.2", 1496 | "call-bind": "^1.0.0", 1497 | "es-abstract": "^1.18.0-next.1", 1498 | "foreach": "^2.0.5", 1499 | "function-bind": "^1.1.1", 1500 | "has-symbols": "^1.0.1", 1501 | "is-typed-array": "^1.1.3" 1502 | }, 1503 | "engines": { 1504 | "node": ">= 0.4" 1505 | }, 1506 | "funding": { 1507 | "url": "https://github.com/sponsors/ljharb" 1508 | } 1509 | }, 1510 | "node_modules/wrap-ansi": { 1511 | "version": "7.0.0", 1512 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 1513 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 1514 | "dev": true, 1515 | "dependencies": { 1516 | "ansi-styles": "^4.0.0", 1517 | "string-width": "^4.1.0", 1518 | "strip-ansi": "^6.0.0" 1519 | }, 1520 | "engines": { 1521 | "node": ">=10" 1522 | }, 1523 | "funding": { 1524 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 1525 | } 1526 | }, 1527 | "node_modules/wrappy": { 1528 | "version": "1.0.2", 1529 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1530 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 1531 | "dev": true 1532 | }, 1533 | "node_modules/y18n": { 1534 | "version": "5.0.5", 1535 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", 1536 | "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", 1537 | "dev": true, 1538 | "engines": { 1539 | "node": ">=10" 1540 | } 1541 | }, 1542 | "node_modules/yargs": { 1543 | "version": "16.2.0", 1544 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", 1545 | "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", 1546 | "dev": true, 1547 | "dependencies": { 1548 | "cliui": "^7.0.2", 1549 | "escalade": "^3.1.1", 1550 | "get-caller-file": "^2.0.5", 1551 | "require-directory": "^2.1.1", 1552 | "string-width": "^4.2.0", 1553 | "y18n": "^5.0.5", 1554 | "yargs-parser": "^20.2.2" 1555 | }, 1556 | "engines": { 1557 | "node": ">=10" 1558 | } 1559 | }, 1560 | "node_modules/yargs-parser": { 1561 | "version": "20.2.7", 1562 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", 1563 | "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", 1564 | "dev": true, 1565 | "engines": { 1566 | "node": ">=10" 1567 | } 1568 | }, 1569 | "node_modules/yocto-queue": { 1570 | "version": "0.1.0", 1571 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 1572 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 1573 | "dev": true, 1574 | "engines": { 1575 | "node": ">=10" 1576 | }, 1577 | "funding": { 1578 | "url": "https://github.com/sponsors/sindresorhus" 1579 | } 1580 | } 1581 | }, 1582 | "dependencies": { 1583 | "@bcoe/v8-coverage": { 1584 | "version": "0.2.3", 1585 | "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", 1586 | "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", 1587 | "dev": true 1588 | }, 1589 | "@istanbuljs/schema": { 1590 | "version": "0.1.3", 1591 | "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", 1592 | "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", 1593 | "dev": true 1594 | }, 1595 | "@types/is-windows": { 1596 | "version": "1.0.0", 1597 | "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-1.0.0.tgz", 1598 | "integrity": "sha512-tJ1rq04tGKuIJoWIH0Gyuwv4RQ3+tIu7wQrC0MV47raQ44kIzXSSFKfrxFUOWVRvesoF7mrTqigXmqoZJsXwTg==", 1599 | "dev": true 1600 | }, 1601 | "@types/istanbul-lib-coverage": { 1602 | "version": "2.0.3", 1603 | "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", 1604 | "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", 1605 | "dev": true 1606 | }, 1607 | "ansi-regex": { 1608 | "version": "5.0.0", 1609 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", 1610 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", 1611 | "dev": true 1612 | }, 1613 | "ansi-styles": { 1614 | "version": "4.3.0", 1615 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 1616 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 1617 | "dev": true, 1618 | "requires": { 1619 | "color-convert": "^2.0.1" 1620 | } 1621 | }, 1622 | "array-filter": { 1623 | "version": "1.0.0", 1624 | "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", 1625 | "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=", 1626 | "dev": true 1627 | }, 1628 | "available-typed-arrays": { 1629 | "version": "1.0.2", 1630 | "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz", 1631 | "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==", 1632 | "dev": true, 1633 | "requires": { 1634 | "array-filter": "^1.0.0" 1635 | } 1636 | }, 1637 | "balanced-match": { 1638 | "version": "1.0.0", 1639 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 1640 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 1641 | "dev": true 1642 | }, 1643 | "boolbase": { 1644 | "version": "1.0.0", 1645 | "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", 1646 | "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" 1647 | }, 1648 | "brace-expansion": { 1649 | "version": "1.1.11", 1650 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1651 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1652 | "dev": true, 1653 | "requires": { 1654 | "balanced-match": "^1.0.0", 1655 | "concat-map": "0.0.1" 1656 | } 1657 | }, 1658 | "c8": { 1659 | "version": "7.7.0", 1660 | "resolved": "https://registry.npmjs.org/c8/-/c8-7.7.0.tgz", 1661 | "integrity": "sha512-9OoBQBa5FPs7NNcjaH52SfQpLCXsDRwJKPOeQ9K1MyYoMlnfazMx3XHp+inFPxMA5BV6VMWw1uFrV9sao1oBqA==", 1662 | "dev": true, 1663 | "requires": { 1664 | "@bcoe/v8-coverage": "^0.2.3", 1665 | "@istanbuljs/schema": "^0.1.2", 1666 | "find-up": "^5.0.0", 1667 | "foreground-child": "^2.0.0", 1668 | "furi": "^2.0.0", 1669 | "istanbul-lib-coverage": "^3.0.0", 1670 | "istanbul-lib-report": "^3.0.0", 1671 | "istanbul-reports": "^3.0.2", 1672 | "rimraf": "^3.0.0", 1673 | "test-exclude": "^6.0.0", 1674 | "v8-to-istanbul": "^7.1.0", 1675 | "yargs": "^16.2.0", 1676 | "yargs-parser": "^20.2.7" 1677 | } 1678 | }, 1679 | "call-bind": { 1680 | "version": "1.0.2", 1681 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 1682 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 1683 | "dev": true, 1684 | "requires": { 1685 | "function-bind": "^1.1.1", 1686 | "get-intrinsic": "^1.0.2" 1687 | } 1688 | }, 1689 | "cheerio": { 1690 | "version": "1.0.0-rc.5", 1691 | "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.5.tgz", 1692 | "integrity": "sha512-yoqps/VCaZgN4pfXtenwHROTp8NG6/Hlt4Jpz2FEP0ZJQ+ZUkVDd0hAPDNKhj3nakpfPt/CNs57yEtxD1bXQiw==", 1693 | "requires": { 1694 | "cheerio-select-tmp": "^0.1.0", 1695 | "dom-serializer": "~1.2.0", 1696 | "domhandler": "^4.0.0", 1697 | "entities": "~2.1.0", 1698 | "htmlparser2": "^6.0.0", 1699 | "parse5": "^6.0.0", 1700 | "parse5-htmlparser2-tree-adapter": "^6.0.0" 1701 | } 1702 | }, 1703 | "cheerio-select-tmp": { 1704 | "version": "0.1.1", 1705 | "resolved": "https://registry.npmjs.org/cheerio-select-tmp/-/cheerio-select-tmp-0.1.1.tgz", 1706 | "integrity": "sha512-YYs5JvbpU19VYJyj+F7oYrIE2BOll1/hRU7rEy/5+v9BzkSo3bK81iAeeQEMI92vRIxz677m72UmJUiVwwgjfQ==", 1707 | "requires": { 1708 | "css-select": "^3.1.2", 1709 | "css-what": "^4.0.0", 1710 | "domelementtype": "^2.1.0", 1711 | "domhandler": "^4.0.0", 1712 | "domutils": "^2.4.4" 1713 | } 1714 | }, 1715 | "cliui": { 1716 | "version": "7.0.4", 1717 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", 1718 | "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", 1719 | "dev": true, 1720 | "requires": { 1721 | "string-width": "^4.2.0", 1722 | "strip-ansi": "^6.0.0", 1723 | "wrap-ansi": "^7.0.0" 1724 | } 1725 | }, 1726 | "color-convert": { 1727 | "version": "2.0.1", 1728 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 1729 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 1730 | "dev": true, 1731 | "requires": { 1732 | "color-name": "~1.1.4" 1733 | } 1734 | }, 1735 | "color-name": { 1736 | "version": "1.1.4", 1737 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 1738 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 1739 | "dev": true 1740 | }, 1741 | "concat-map": { 1742 | "version": "0.0.1", 1743 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1744 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 1745 | "dev": true 1746 | }, 1747 | "convert-source-map": { 1748 | "version": "1.7.0", 1749 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", 1750 | "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", 1751 | "dev": true, 1752 | "requires": { 1753 | "safe-buffer": "~5.1.1" 1754 | } 1755 | }, 1756 | "cross-spawn": { 1757 | "version": "7.0.3", 1758 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 1759 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 1760 | "dev": true, 1761 | "requires": { 1762 | "path-key": "^3.1.0", 1763 | "shebang-command": "^2.0.0", 1764 | "which": "^2.0.1" 1765 | } 1766 | }, 1767 | "css-select": { 1768 | "version": "3.1.2", 1769 | "resolved": "https://registry.npmjs.org/css-select/-/css-select-3.1.2.tgz", 1770 | "integrity": "sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA==", 1771 | "requires": { 1772 | "boolbase": "^1.0.0", 1773 | "css-what": "^4.0.0", 1774 | "domhandler": "^4.0.0", 1775 | "domutils": "^2.4.3", 1776 | "nth-check": "^2.0.0" 1777 | } 1778 | }, 1779 | "css-what": { 1780 | "version": "4.0.0", 1781 | "resolved": "https://registry.npmjs.org/css-what/-/css-what-4.0.0.tgz", 1782 | "integrity": "sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A==" 1783 | }, 1784 | "deep-equal": { 1785 | "version": "2.0.5", 1786 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz", 1787 | "integrity": "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==", 1788 | "dev": true, 1789 | "requires": { 1790 | "call-bind": "^1.0.0", 1791 | "es-get-iterator": "^1.1.1", 1792 | "get-intrinsic": "^1.0.1", 1793 | "is-arguments": "^1.0.4", 1794 | "is-date-object": "^1.0.2", 1795 | "is-regex": "^1.1.1", 1796 | "isarray": "^2.0.5", 1797 | "object-is": "^1.1.4", 1798 | "object-keys": "^1.1.1", 1799 | "object.assign": "^4.1.2", 1800 | "regexp.prototype.flags": "^1.3.0", 1801 | "side-channel": "^1.0.3", 1802 | "which-boxed-primitive": "^1.0.1", 1803 | "which-collection": "^1.0.1", 1804 | "which-typed-array": "^1.1.2" 1805 | } 1806 | }, 1807 | "define-properties": { 1808 | "version": "1.1.3", 1809 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", 1810 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", 1811 | "dev": true, 1812 | "requires": { 1813 | "object-keys": "^1.0.12" 1814 | } 1815 | }, 1816 | "defined": { 1817 | "version": "1.0.0", 1818 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", 1819 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", 1820 | "dev": true 1821 | }, 1822 | "dom-serializer": { 1823 | "version": "1.2.0", 1824 | "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz", 1825 | "integrity": "sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA==", 1826 | "requires": { 1827 | "domelementtype": "^2.0.1", 1828 | "domhandler": "^4.0.0", 1829 | "entities": "^2.0.0" 1830 | } 1831 | }, 1832 | "domelementtype": { 1833 | "version": "2.1.0", 1834 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", 1835 | "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==" 1836 | }, 1837 | "domhandler": { 1838 | "version": "4.0.0", 1839 | "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz", 1840 | "integrity": "sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA==", 1841 | "requires": { 1842 | "domelementtype": "^2.1.0" 1843 | } 1844 | }, 1845 | "domutils": { 1846 | "version": "2.5.0", 1847 | "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.5.0.tgz", 1848 | "integrity": "sha512-Ho16rzNMOFk2fPwChGh3D2D9OEHAfG19HgmRR2l+WLSsIstNsAYBzePH412bL0y5T44ejABIVfTHQ8nqi/tBCg==", 1849 | "requires": { 1850 | "dom-serializer": "^1.0.1", 1851 | "domelementtype": "^2.0.1", 1852 | "domhandler": "^4.0.0" 1853 | } 1854 | }, 1855 | "dotignore": { 1856 | "version": "0.1.2", 1857 | "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", 1858 | "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", 1859 | "dev": true, 1860 | "requires": { 1861 | "minimatch": "^3.0.4" 1862 | } 1863 | }, 1864 | "emoji-regex": { 1865 | "version": "8.0.0", 1866 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 1867 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 1868 | "dev": true 1869 | }, 1870 | "entities": { 1871 | "version": "2.1.0", 1872 | "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", 1873 | "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==" 1874 | }, 1875 | "es-abstract": { 1876 | "version": "1.18.0", 1877 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", 1878 | "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", 1879 | "dev": true, 1880 | "requires": { 1881 | "call-bind": "^1.0.2", 1882 | "es-to-primitive": "^1.2.1", 1883 | "function-bind": "^1.1.1", 1884 | "get-intrinsic": "^1.1.1", 1885 | "has": "^1.0.3", 1886 | "has-symbols": "^1.0.2", 1887 | "is-callable": "^1.2.3", 1888 | "is-negative-zero": "^2.0.1", 1889 | "is-regex": "^1.1.2", 1890 | "is-string": "^1.0.5", 1891 | "object-inspect": "^1.9.0", 1892 | "object-keys": "^1.1.1", 1893 | "object.assign": "^4.1.2", 1894 | "string.prototype.trimend": "^1.0.4", 1895 | "string.prototype.trimstart": "^1.0.4", 1896 | "unbox-primitive": "^1.0.0" 1897 | } 1898 | }, 1899 | "es-get-iterator": { 1900 | "version": "1.1.2", 1901 | "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", 1902 | "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", 1903 | "dev": true, 1904 | "requires": { 1905 | "call-bind": "^1.0.2", 1906 | "get-intrinsic": "^1.1.0", 1907 | "has-symbols": "^1.0.1", 1908 | "is-arguments": "^1.1.0", 1909 | "is-map": "^2.0.2", 1910 | "is-set": "^2.0.2", 1911 | "is-string": "^1.0.5", 1912 | "isarray": "^2.0.5" 1913 | } 1914 | }, 1915 | "es-to-primitive": { 1916 | "version": "1.2.1", 1917 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", 1918 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", 1919 | "dev": true, 1920 | "requires": { 1921 | "is-callable": "^1.1.4", 1922 | "is-date-object": "^1.0.1", 1923 | "is-symbol": "^1.0.2" 1924 | } 1925 | }, 1926 | "escalade": { 1927 | "version": "3.1.1", 1928 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 1929 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 1930 | "dev": true 1931 | }, 1932 | "find-up": { 1933 | "version": "5.0.0", 1934 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 1935 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 1936 | "dev": true, 1937 | "requires": { 1938 | "locate-path": "^6.0.0", 1939 | "path-exists": "^4.0.0" 1940 | } 1941 | }, 1942 | "for-each": { 1943 | "version": "0.3.3", 1944 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", 1945 | "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", 1946 | "dev": true, 1947 | "requires": { 1948 | "is-callable": "^1.1.3" 1949 | } 1950 | }, 1951 | "foreach": { 1952 | "version": "2.0.5", 1953 | "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", 1954 | "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", 1955 | "dev": true 1956 | }, 1957 | "foreground-child": { 1958 | "version": "2.0.0", 1959 | "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", 1960 | "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", 1961 | "dev": true, 1962 | "requires": { 1963 | "cross-spawn": "^7.0.0", 1964 | "signal-exit": "^3.0.2" 1965 | } 1966 | }, 1967 | "fs.realpath": { 1968 | "version": "1.0.0", 1969 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1970 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1971 | "dev": true 1972 | }, 1973 | "fsevents": { 1974 | "version": "2.3.2", 1975 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 1976 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 1977 | "dev": true, 1978 | "optional": true 1979 | }, 1980 | "function-bind": { 1981 | "version": "1.1.1", 1982 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1983 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1984 | "dev": true 1985 | }, 1986 | "furi": { 1987 | "version": "2.0.0", 1988 | "resolved": "https://registry.npmjs.org/furi/-/furi-2.0.0.tgz", 1989 | "integrity": "sha512-uKuNsaU0WVaK/vmvj23wW1bicOFfyqSsAIH71bRZx8kA4Xj+YCHin7CJKJJjkIsmxYaPFLk9ljmjEyB7xF7WvQ==", 1990 | "dev": true, 1991 | "requires": { 1992 | "@types/is-windows": "^1.0.0", 1993 | "is-windows": "^1.0.2" 1994 | } 1995 | }, 1996 | "get-caller-file": { 1997 | "version": "2.0.5", 1998 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 1999 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", 2000 | "dev": true 2001 | }, 2002 | "get-intrinsic": { 2003 | "version": "1.1.1", 2004 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", 2005 | "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", 2006 | "dev": true, 2007 | "requires": { 2008 | "function-bind": "^1.1.1", 2009 | "has": "^1.0.3", 2010 | "has-symbols": "^1.0.1" 2011 | } 2012 | }, 2013 | "glob": { 2014 | "version": "7.1.6", 2015 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 2016 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 2017 | "dev": true, 2018 | "requires": { 2019 | "fs.realpath": "^1.0.0", 2020 | "inflight": "^1.0.4", 2021 | "inherits": "2", 2022 | "minimatch": "^3.0.4", 2023 | "once": "^1.3.0", 2024 | "path-is-absolute": "^1.0.0" 2025 | } 2026 | }, 2027 | "has": { 2028 | "version": "1.0.3", 2029 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 2030 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 2031 | "dev": true, 2032 | "requires": { 2033 | "function-bind": "^1.1.1" 2034 | } 2035 | }, 2036 | "has-bigints": { 2037 | "version": "1.0.1", 2038 | "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", 2039 | "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", 2040 | "dev": true 2041 | }, 2042 | "has-flag": { 2043 | "version": "4.0.0", 2044 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 2045 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 2046 | "dev": true 2047 | }, 2048 | "has-symbols": { 2049 | "version": "1.0.2", 2050 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", 2051 | "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", 2052 | "dev": true 2053 | }, 2054 | "html-escaper": { 2055 | "version": "2.0.2", 2056 | "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", 2057 | "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", 2058 | "dev": true 2059 | }, 2060 | "htmlparser2": { 2061 | "version": "6.0.1", 2062 | "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.0.1.tgz", 2063 | "integrity": "sha512-GDKPd+vk4jvSuvCbyuzx/unmXkk090Azec7LovXP8as1Hn8q9p3hbjmDGbUqqhknw0ajwit6LiiWqfiTUPMK7w==", 2064 | "requires": { 2065 | "domelementtype": "^2.0.1", 2066 | "domhandler": "^4.0.0", 2067 | "domutils": "^2.4.4", 2068 | "entities": "^2.0.0" 2069 | } 2070 | }, 2071 | "inflight": { 2072 | "version": "1.0.6", 2073 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 2074 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 2075 | "dev": true, 2076 | "requires": { 2077 | "once": "^1.3.0", 2078 | "wrappy": "1" 2079 | } 2080 | }, 2081 | "inherits": { 2082 | "version": "2.0.4", 2083 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 2084 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 2085 | "dev": true 2086 | }, 2087 | "is-arguments": { 2088 | "version": "1.1.0", 2089 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", 2090 | "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", 2091 | "dev": true, 2092 | "requires": { 2093 | "call-bind": "^1.0.0" 2094 | } 2095 | }, 2096 | "is-bigint": { 2097 | "version": "1.0.1", 2098 | "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", 2099 | "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==", 2100 | "dev": true 2101 | }, 2102 | "is-boolean-object": { 2103 | "version": "1.1.0", 2104 | "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", 2105 | "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", 2106 | "dev": true, 2107 | "requires": { 2108 | "call-bind": "^1.0.0" 2109 | } 2110 | }, 2111 | "is-callable": { 2112 | "version": "1.2.3", 2113 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", 2114 | "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", 2115 | "dev": true 2116 | }, 2117 | "is-core-module": { 2118 | "version": "2.2.0", 2119 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", 2120 | "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", 2121 | "dev": true, 2122 | "requires": { 2123 | "has": "^1.0.3" 2124 | } 2125 | }, 2126 | "is-date-object": { 2127 | "version": "1.0.2", 2128 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", 2129 | "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", 2130 | "dev": true 2131 | }, 2132 | "is-fullwidth-code-point": { 2133 | "version": "3.0.0", 2134 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 2135 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 2136 | "dev": true 2137 | }, 2138 | "is-map": { 2139 | "version": "2.0.2", 2140 | "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", 2141 | "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", 2142 | "dev": true 2143 | }, 2144 | "is-negative-zero": { 2145 | "version": "2.0.1", 2146 | "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", 2147 | "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", 2148 | "dev": true 2149 | }, 2150 | "is-number-object": { 2151 | "version": "1.0.4", 2152 | "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", 2153 | "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", 2154 | "dev": true 2155 | }, 2156 | "is-regex": { 2157 | "version": "1.1.2", 2158 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", 2159 | "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", 2160 | "dev": true, 2161 | "requires": { 2162 | "call-bind": "^1.0.2", 2163 | "has-symbols": "^1.0.1" 2164 | } 2165 | }, 2166 | "is-set": { 2167 | "version": "2.0.2", 2168 | "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", 2169 | "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", 2170 | "dev": true 2171 | }, 2172 | "is-string": { 2173 | "version": "1.0.5", 2174 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", 2175 | "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", 2176 | "dev": true 2177 | }, 2178 | "is-symbol": { 2179 | "version": "1.0.3", 2180 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", 2181 | "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", 2182 | "dev": true, 2183 | "requires": { 2184 | "has-symbols": "^1.0.1" 2185 | } 2186 | }, 2187 | "is-typed-array": { 2188 | "version": "1.1.5", 2189 | "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz", 2190 | "integrity": "sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==", 2191 | "dev": true, 2192 | "requires": { 2193 | "available-typed-arrays": "^1.0.2", 2194 | "call-bind": "^1.0.2", 2195 | "es-abstract": "^1.18.0-next.2", 2196 | "foreach": "^2.0.5", 2197 | "has-symbols": "^1.0.1" 2198 | } 2199 | }, 2200 | "is-weakmap": { 2201 | "version": "2.0.1", 2202 | "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", 2203 | "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", 2204 | "dev": true 2205 | }, 2206 | "is-weakset": { 2207 | "version": "2.0.1", 2208 | "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.1.tgz", 2209 | "integrity": "sha512-pi4vhbhVHGLxohUw7PhGsueT4vRGFoXhP7+RGN0jKIv9+8PWYCQTqtADngrxOm2g46hoH0+g8uZZBzMrvVGDmw==", 2210 | "dev": true 2211 | }, 2212 | "is-windows": { 2213 | "version": "1.0.2", 2214 | "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", 2215 | "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", 2216 | "dev": true 2217 | }, 2218 | "isarray": { 2219 | "version": "2.0.5", 2220 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", 2221 | "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", 2222 | "dev": true 2223 | }, 2224 | "isexe": { 2225 | "version": "2.0.0", 2226 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2227 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 2228 | "dev": true 2229 | }, 2230 | "istanbul-lib-coverage": { 2231 | "version": "3.0.0", 2232 | "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", 2233 | "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", 2234 | "dev": true 2235 | }, 2236 | "istanbul-lib-report": { 2237 | "version": "3.0.0", 2238 | "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", 2239 | "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", 2240 | "dev": true, 2241 | "requires": { 2242 | "istanbul-lib-coverage": "^3.0.0", 2243 | "make-dir": "^3.0.0", 2244 | "supports-color": "^7.1.0" 2245 | } 2246 | }, 2247 | "istanbul-reports": { 2248 | "version": "3.0.2", 2249 | "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", 2250 | "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", 2251 | "dev": true, 2252 | "requires": { 2253 | "html-escaper": "^2.0.0", 2254 | "istanbul-lib-report": "^3.0.0" 2255 | } 2256 | }, 2257 | "locate-path": { 2258 | "version": "6.0.0", 2259 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 2260 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 2261 | "dev": true, 2262 | "requires": { 2263 | "p-locate": "^5.0.0" 2264 | } 2265 | }, 2266 | "make-dir": { 2267 | "version": "3.1.0", 2268 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", 2269 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", 2270 | "dev": true, 2271 | "requires": { 2272 | "semver": "^6.0.0" 2273 | } 2274 | }, 2275 | "minimatch": { 2276 | "version": "3.0.4", 2277 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 2278 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 2279 | "dev": true, 2280 | "requires": { 2281 | "brace-expansion": "^1.1.7" 2282 | } 2283 | }, 2284 | "minimist": { 2285 | "version": "1.2.5", 2286 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 2287 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", 2288 | "dev": true 2289 | }, 2290 | "node-fetch": { 2291 | "version": "2.6.1", 2292 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", 2293 | "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" 2294 | }, 2295 | "nth-check": { 2296 | "version": "2.0.0", 2297 | "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz", 2298 | "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==", 2299 | "requires": { 2300 | "boolbase": "^1.0.0" 2301 | } 2302 | }, 2303 | "object-inspect": { 2304 | "version": "1.9.0", 2305 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", 2306 | "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", 2307 | "dev": true 2308 | }, 2309 | "object-is": { 2310 | "version": "1.1.5", 2311 | "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", 2312 | "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", 2313 | "dev": true, 2314 | "requires": { 2315 | "call-bind": "^1.0.2", 2316 | "define-properties": "^1.1.3" 2317 | } 2318 | }, 2319 | "object-keys": { 2320 | "version": "1.1.1", 2321 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 2322 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 2323 | "dev": true 2324 | }, 2325 | "object.assign": { 2326 | "version": "4.1.2", 2327 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", 2328 | "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", 2329 | "dev": true, 2330 | "requires": { 2331 | "call-bind": "^1.0.0", 2332 | "define-properties": "^1.1.3", 2333 | "has-symbols": "^1.0.1", 2334 | "object-keys": "^1.1.1" 2335 | } 2336 | }, 2337 | "once": { 2338 | "version": "1.4.0", 2339 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2340 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 2341 | "dev": true, 2342 | "requires": { 2343 | "wrappy": "1" 2344 | } 2345 | }, 2346 | "p-limit": { 2347 | "version": "3.1.0", 2348 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 2349 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 2350 | "dev": true, 2351 | "requires": { 2352 | "yocto-queue": "^0.1.0" 2353 | } 2354 | }, 2355 | "p-locate": { 2356 | "version": "5.0.0", 2357 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 2358 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 2359 | "dev": true, 2360 | "requires": { 2361 | "p-limit": "^3.0.2" 2362 | } 2363 | }, 2364 | "parse5": { 2365 | "version": "6.0.1", 2366 | "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", 2367 | "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" 2368 | }, 2369 | "parse5-htmlparser2-tree-adapter": { 2370 | "version": "6.0.1", 2371 | "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", 2372 | "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", 2373 | "requires": { 2374 | "parse5": "^6.0.1" 2375 | } 2376 | }, 2377 | "path-exists": { 2378 | "version": "4.0.0", 2379 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 2380 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 2381 | "dev": true 2382 | }, 2383 | "path-is-absolute": { 2384 | "version": "1.0.1", 2385 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2386 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 2387 | "dev": true 2388 | }, 2389 | "path-key": { 2390 | "version": "3.1.1", 2391 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 2392 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 2393 | "dev": true 2394 | }, 2395 | "path-parse": { 2396 | "version": "1.0.6", 2397 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", 2398 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", 2399 | "dev": true 2400 | }, 2401 | "regexp.prototype.flags": { 2402 | "version": "1.3.1", 2403 | "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", 2404 | "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", 2405 | "dev": true, 2406 | "requires": { 2407 | "call-bind": "^1.0.2", 2408 | "define-properties": "^1.1.3" 2409 | } 2410 | }, 2411 | "require-directory": { 2412 | "version": "2.1.1", 2413 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 2414 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", 2415 | "dev": true 2416 | }, 2417 | "resolve": { 2418 | "version": "2.0.0-next.3", 2419 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", 2420 | "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", 2421 | "dev": true, 2422 | "requires": { 2423 | "is-core-module": "^2.2.0", 2424 | "path-parse": "^1.0.6" 2425 | } 2426 | }, 2427 | "resumer": { 2428 | "version": "0.0.0", 2429 | "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", 2430 | "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", 2431 | "dev": true, 2432 | "requires": { 2433 | "through": "~2.3.4" 2434 | } 2435 | }, 2436 | "rimraf": { 2437 | "version": "3.0.2", 2438 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 2439 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 2440 | "dev": true, 2441 | "requires": { 2442 | "glob": "^7.1.3" 2443 | } 2444 | }, 2445 | "rollup": { 2446 | "version": "2.51.0", 2447 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.51.0.tgz", 2448 | "integrity": "sha512-ITLt9sScNCBVspSHauw/W49lEZ0vjN8LyCzSNsNaqT67vTss2lYEfOyxltX8hjrhr1l/rQwmZ2wazzEqhZ/fUg==", 2449 | "dev": true, 2450 | "requires": { 2451 | "fsevents": "~2.3.1" 2452 | } 2453 | }, 2454 | "safe-buffer": { 2455 | "version": "5.1.2", 2456 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 2457 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 2458 | "dev": true 2459 | }, 2460 | "semver": { 2461 | "version": "6.3.0", 2462 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 2463 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 2464 | "dev": true 2465 | }, 2466 | "shebang-command": { 2467 | "version": "2.0.0", 2468 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 2469 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 2470 | "dev": true, 2471 | "requires": { 2472 | "shebang-regex": "^3.0.0" 2473 | } 2474 | }, 2475 | "shebang-regex": { 2476 | "version": "3.0.0", 2477 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 2478 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 2479 | "dev": true 2480 | }, 2481 | "side-channel": { 2482 | "version": "1.0.4", 2483 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", 2484 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", 2485 | "dev": true, 2486 | "requires": { 2487 | "call-bind": "^1.0.0", 2488 | "get-intrinsic": "^1.0.2", 2489 | "object-inspect": "^1.9.0" 2490 | } 2491 | }, 2492 | "signal-exit": { 2493 | "version": "3.0.3", 2494 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 2495 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", 2496 | "dev": true 2497 | }, 2498 | "source-map": { 2499 | "version": "0.7.3", 2500 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", 2501 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", 2502 | "dev": true 2503 | }, 2504 | "string-width": { 2505 | "version": "4.2.2", 2506 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", 2507 | "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", 2508 | "dev": true, 2509 | "requires": { 2510 | "emoji-regex": "^8.0.0", 2511 | "is-fullwidth-code-point": "^3.0.0", 2512 | "strip-ansi": "^6.0.0" 2513 | } 2514 | }, 2515 | "string.prototype.trim": { 2516 | "version": "1.2.4", 2517 | "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.4.tgz", 2518 | "integrity": "sha512-hWCk/iqf7lp0/AgTF7/ddO1IWtSNPASjlzCicV5irAVdE1grjsneK26YG6xACMBEdCvO8fUST0UzDMh/2Qy+9Q==", 2519 | "dev": true, 2520 | "requires": { 2521 | "call-bind": "^1.0.2", 2522 | "define-properties": "^1.1.3", 2523 | "es-abstract": "^1.18.0-next.2" 2524 | } 2525 | }, 2526 | "string.prototype.trimend": { 2527 | "version": "1.0.4", 2528 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", 2529 | "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", 2530 | "dev": true, 2531 | "requires": { 2532 | "call-bind": "^1.0.2", 2533 | "define-properties": "^1.1.3" 2534 | } 2535 | }, 2536 | "string.prototype.trimstart": { 2537 | "version": "1.0.4", 2538 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", 2539 | "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", 2540 | "dev": true, 2541 | "requires": { 2542 | "call-bind": "^1.0.2", 2543 | "define-properties": "^1.1.3" 2544 | } 2545 | }, 2546 | "strip-ansi": { 2547 | "version": "6.0.0", 2548 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 2549 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 2550 | "dev": true, 2551 | "requires": { 2552 | "ansi-regex": "^5.0.0" 2553 | } 2554 | }, 2555 | "supports-color": { 2556 | "version": "7.2.0", 2557 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 2558 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 2559 | "dev": true, 2560 | "requires": { 2561 | "has-flag": "^4.0.0" 2562 | } 2563 | }, 2564 | "tape": { 2565 | "version": "5.2.2", 2566 | "resolved": "https://registry.npmjs.org/tape/-/tape-5.2.2.tgz", 2567 | "integrity": "sha512-grXrzPC1ly2kyTMKdqxh5GiLpb0BpNctCuecTB0psHX4Gu0nc+uxWR4xKjTh/4CfQlH4zhvTM2/EXmHXp6v/uA==", 2568 | "dev": true, 2569 | "requires": { 2570 | "call-bind": "^1.0.2", 2571 | "deep-equal": "^2.0.5", 2572 | "defined": "^1.0.0", 2573 | "dotignore": "^0.1.2", 2574 | "for-each": "^0.3.3", 2575 | "glob": "^7.1.6", 2576 | "has": "^1.0.3", 2577 | "inherits": "^2.0.4", 2578 | "is-regex": "^1.1.2", 2579 | "minimist": "^1.2.5", 2580 | "object-inspect": "^1.9.0", 2581 | "object-is": "^1.1.5", 2582 | "object.assign": "^4.1.2", 2583 | "resolve": "^2.0.0-next.3", 2584 | "resumer": "^0.0.0", 2585 | "string.prototype.trim": "^1.2.4", 2586 | "through": "^2.3.8" 2587 | } 2588 | }, 2589 | "test-exclude": { 2590 | "version": "6.0.0", 2591 | "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", 2592 | "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", 2593 | "dev": true, 2594 | "requires": { 2595 | "@istanbuljs/schema": "^0.1.2", 2596 | "glob": "^7.1.4", 2597 | "minimatch": "^3.0.4" 2598 | } 2599 | }, 2600 | "through": { 2601 | "version": "2.3.8", 2602 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 2603 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 2604 | "dev": true 2605 | }, 2606 | "unbox-primitive": { 2607 | "version": "1.0.1", 2608 | "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", 2609 | "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", 2610 | "dev": true, 2611 | "requires": { 2612 | "function-bind": "^1.1.1", 2613 | "has-bigints": "^1.0.1", 2614 | "has-symbols": "^1.0.2", 2615 | "which-boxed-primitive": "^1.0.2" 2616 | } 2617 | }, 2618 | "v8-to-istanbul": { 2619 | "version": "7.1.1", 2620 | "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.1.tgz", 2621 | "integrity": "sha512-p0BB09E5FRjx0ELN6RgusIPsSPhtgexSRcKETybEs6IGOTXJSZqfwxp7r//55nnu0f1AxltY5VvdVqy2vZf9AA==", 2622 | "dev": true, 2623 | "requires": { 2624 | "@types/istanbul-lib-coverage": "^2.0.1", 2625 | "convert-source-map": "^1.6.0", 2626 | "source-map": "^0.7.3" 2627 | } 2628 | }, 2629 | "which": { 2630 | "version": "2.0.2", 2631 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 2632 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 2633 | "dev": true, 2634 | "requires": { 2635 | "isexe": "^2.0.0" 2636 | } 2637 | }, 2638 | "which-boxed-primitive": { 2639 | "version": "1.0.2", 2640 | "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", 2641 | "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", 2642 | "dev": true, 2643 | "requires": { 2644 | "is-bigint": "^1.0.1", 2645 | "is-boolean-object": "^1.1.0", 2646 | "is-number-object": "^1.0.4", 2647 | "is-string": "^1.0.5", 2648 | "is-symbol": "^1.0.3" 2649 | } 2650 | }, 2651 | "which-collection": { 2652 | "version": "1.0.1", 2653 | "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", 2654 | "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", 2655 | "dev": true, 2656 | "requires": { 2657 | "is-map": "^2.0.1", 2658 | "is-set": "^2.0.1", 2659 | "is-weakmap": "^2.0.1", 2660 | "is-weakset": "^2.0.1" 2661 | } 2662 | }, 2663 | "which-typed-array": { 2664 | "version": "1.1.4", 2665 | "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz", 2666 | "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==", 2667 | "dev": true, 2668 | "requires": { 2669 | "available-typed-arrays": "^1.0.2", 2670 | "call-bind": "^1.0.0", 2671 | "es-abstract": "^1.18.0-next.1", 2672 | "foreach": "^2.0.5", 2673 | "function-bind": "^1.1.1", 2674 | "has-symbols": "^1.0.1", 2675 | "is-typed-array": "^1.1.3" 2676 | } 2677 | }, 2678 | "wrap-ansi": { 2679 | "version": "7.0.0", 2680 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 2681 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 2682 | "dev": true, 2683 | "requires": { 2684 | "ansi-styles": "^4.0.0", 2685 | "string-width": "^4.1.0", 2686 | "strip-ansi": "^6.0.0" 2687 | } 2688 | }, 2689 | "wrappy": { 2690 | "version": "1.0.2", 2691 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2692 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 2693 | "dev": true 2694 | }, 2695 | "y18n": { 2696 | "version": "5.0.5", 2697 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", 2698 | "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", 2699 | "dev": true 2700 | }, 2701 | "yargs": { 2702 | "version": "16.2.0", 2703 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", 2704 | "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", 2705 | "dev": true, 2706 | "requires": { 2707 | "cliui": "^7.0.2", 2708 | "escalade": "^3.1.1", 2709 | "get-caller-file": "^2.0.5", 2710 | "require-directory": "^2.1.1", 2711 | "string-width": "^4.2.0", 2712 | "y18n": "^5.0.5", 2713 | "yargs-parser": "^20.2.2" 2714 | } 2715 | }, 2716 | "yargs-parser": { 2717 | "version": "20.2.7", 2718 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", 2719 | "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", 2720 | "dev": true 2721 | }, 2722 | "yocto-queue": { 2723 | "version": "0.1.0", 2724 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 2725 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 2726 | "dev": true 2727 | } 2728 | } 2729 | } 2730 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@small-tech/vite-plugin-sri", 3 | "version": "1.0.1", 4 | "description": "A Vite plugin that adds subresource integrity hashes to your index.html file at build time.", 5 | "type": "module", 6 | "main": "index.cjs", 7 | "exports": { 8 | "import": "./index.js", 9 | "require": "./index.cjs" 10 | }, 11 | "scripts": { 12 | "build": "rollup -c", 13 | "test": "node test/index.js", 14 | "coverage": "c8 node test/index.js" 15 | }, 16 | "homepage": "https://github.com/small-tech/vite-plugin-sri#readme", 17 | "bugs": { 18 | "url": "https://github.com/small-tech/vite-plugin-sri/issues" 19 | }, 20 | "repository": { 21 | "type": "git", 22 | "url": "git+https://github.com/small-tech/vite-plugin-sri.git" 23 | }, 24 | "files": ["index.js"], 25 | "keywords": [ 26 | "Vite", 27 | "Subresource", 28 | "Integrity", 29 | "SRI", 30 | "plugin" 31 | ], 32 | "author": { 33 | "name": "Aral Balkan", 34 | "email": "aral@small-tech.org", 35 | "url": "https://ar.al" 36 | }, 37 | "funding": { 38 | "type": "foundation", 39 | "url": "https://small-tech.org/fund-us/" 40 | }, 41 | "license": "ISC", 42 | "devDependencies": { 43 | "c8": "^7.7.0", 44 | "rollup": "^2.51.0", 45 | "tape": "^5.2.2" 46 | }, 47 | "dependencies": { 48 | "cheerio": "^1.0.0-rc.5", 49 | "node-fetch": "^2.6.1" 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | import { readFileSync } from 'fs' 2 | 3 | export default { 4 | input: 'index.js', 5 | output: { 6 | file: 'index.cjs', 7 | format: 'cjs', 8 | exports: 'default', 9 | preferConst: true, 10 | 11 | // https://nodejs.org/api/esm.html#esm_commonjs_namespaces 12 | interop: 'default', 13 | 14 | // Extract license header 15 | banner: () => readFileSync('index.js', 'utf8').match(/^\/{4,}[^]+?\/{4,}/)[0] 16 | }, 17 | external: () => true 18 | } 19 | -------------------------------------------------------------------------------- /test/fixtures/assets/style.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/small-tech/vite-plugin-sri/f8a53c314111a61618b2b866810901fdd14ea6c7/test/fixtures/assets/style.css -------------------------------------------------------------------------------- /test/fixtures/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 12 | 18 |