├── .eslintrc.json ├── .github └── workflows │ └── test.yml ├── .gitignore ├── .travis.yml ├── index.d.ts ├── index.js ├── package-lock.json ├── package.json ├── readme.md ├── tea.yaml └── test.js /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "node": true, 5 | "commonjs": true, 6 | "es6": true 7 | }, 8 | "extends": "eslint:recommended", 9 | "rules": { 10 | "strict": 2, 11 | "indent": 0, 12 | "linebreak-style": 0, 13 | "quotes": 0, 14 | "semi": 0, 15 | "no-cond-assign": 1, 16 | "no-constant-condition": 1, 17 | "no-duplicate-case": 1, 18 | "no-empty": 1, 19 | "no-ex-assign": 1, 20 | "no-extra-boolean-cast": 1, 21 | "no-extra-semi": 1, 22 | "no-fallthrough": 1, 23 | "no-func-assign": 1, 24 | "no-global-assign": 1, 25 | "no-implicit-globals": 2, 26 | "no-inner-declarations": ["error", "functions"], 27 | "no-irregular-whitespace": 2, 28 | "no-loop-func": 1, 29 | "no-multi-str": 1, 30 | "no-mixed-spaces-and-tabs": 1, 31 | "no-proto": 1, 32 | "no-sequences": 1, 33 | "no-throw-literal": 1, 34 | "no-unmodified-loop-condition": 1, 35 | "no-useless-call": 1, 36 | "no-void": 1, 37 | "no-with": 2, 38 | "wrap-iife": 1, 39 | "no-redeclare": 1, 40 | "no-unused-vars": ["error", { "vars": "all", "args": "none" }], 41 | "no-sparse-arrays": 1 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | # This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node 2 | # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs 3 | 4 | name: test 5 | 6 | on: 7 | push: 8 | branches: [ "master" ] 9 | pull_request: 10 | branches: [ "master" ] 11 | 12 | jobs: 13 | build: 14 | 15 | runs-on: ubuntu-latest 16 | 17 | strategy: 18 | matrix: 19 | node-version: [14.x, 16.x, 18.x] 20 | # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ 21 | 22 | steps: 23 | - uses: actions/checkout@v3 24 | - name: Use Node.js ${{ matrix.node-version }} 25 | uses: actions/setup-node@v3 26 | with: 27 | node-version: ${{ matrix.node-version }} 28 | cache: 'npm' 29 | - run: npm ci 30 | - run: npm run build --if-present 31 | - run: npm test 32 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/* 2 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "6" 4 | -------------------------------------------------------------------------------- /index.d.ts: -------------------------------------------------------------------------------- 1 | declare module "svg-path-bounds" { 2 | const content: (path: string) => [number, number, number, number]; 3 | export default content; 4 | } 5 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | var parse = require('parse-svg-path') 4 | var abs = require('abs-svg-path') 5 | var normalize = require('normalize-svg-path') 6 | var isSvgPath = require('is-svg-path') 7 | 8 | module.exports = pathBounds 9 | 10 | 11 | function pathBounds(path) { 12 | // ES6 string tpl call 13 | if (Array.isArray(path) && path.length === 1 && typeof path[0] === 'string') path = path[0] 14 | 15 | // svg path string 16 | if (typeof path === 'string') { 17 | if (!isSvgPath(path)) throw Error('String is not an SVG path.') 18 | path = parse(path) 19 | } 20 | 21 | if (!Array.isArray(path)) throw Error('Argument should be a string or an array of path segments.') 22 | 23 | path = abs(path) 24 | path = normalize(path) 25 | 26 | if (!path.length) return [0, 0, 0, 0] 27 | 28 | var bounds = [Infinity, Infinity, -Infinity, -Infinity] 29 | 30 | for (var i = 0, l = path.length; i < l; i++) { 31 | var points = path[i].slice(1) 32 | 33 | for (var j = 0; j < points.length; j += 2) { 34 | if (points[j + 0] < bounds[0]) bounds[0] = points[j + 0] 35 | if (points[j + 1] < bounds[1]) bounds[1] = points[j + 1] 36 | if (points[j + 0] > bounds[2]) bounds[2] = points[j + 0] 37 | if (points[j + 1] > bounds[3]) bounds[3] = points[j + 1] 38 | } 39 | } 40 | 41 | return bounds 42 | } 43 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "svg-path-bounds", 3 | "version": "1.0.2", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "svg-path-bounds", 9 | "version": "1.0.2", 10 | "license": "MIT", 11 | "dependencies": { 12 | "abs-svg-path": "^0.1.1", 13 | "is-svg-path": "^1.0.1", 14 | "normalize-svg-path": "^1.0.0", 15 | "parse-svg-path": "^0.1.2" 16 | }, 17 | "devDependencies": { 18 | "tape": "^4.7.0" 19 | } 20 | }, 21 | "node_modules/abs-svg-path": { 22 | "version": "0.1.1", 23 | "resolved": "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz", 24 | "integrity": "sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA==" 25 | }, 26 | "node_modules/array-buffer-byte-length": { 27 | "version": "1.0.0", 28 | "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", 29 | "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", 30 | "dev": true, 31 | "dependencies": { 32 | "call-bind": "^1.0.2", 33 | "is-array-buffer": "^3.0.1" 34 | }, 35 | "funding": { 36 | "url": "https://github.com/sponsors/ljharb" 37 | } 38 | }, 39 | "node_modules/available-typed-arrays": { 40 | "version": "1.0.5", 41 | "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", 42 | "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", 43 | "dev": true, 44 | "engines": { 45 | "node": ">= 0.4" 46 | }, 47 | "funding": { 48 | "url": "https://github.com/sponsors/ljharb" 49 | } 50 | }, 51 | "node_modules/balanced-match": { 52 | "version": "1.0.2", 53 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 54 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 55 | "dev": true 56 | }, 57 | "node_modules/brace-expansion": { 58 | "version": "1.1.11", 59 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 60 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 61 | "dev": true, 62 | "dependencies": { 63 | "balanced-match": "^1.0.0", 64 | "concat-map": "0.0.1" 65 | } 66 | }, 67 | "node_modules/call-bind": { 68 | "version": "1.0.2", 69 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 70 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 71 | "dev": true, 72 | "dependencies": { 73 | "function-bind": "^1.1.1", 74 | "get-intrinsic": "^1.0.2" 75 | }, 76 | "funding": { 77 | "url": "https://github.com/sponsors/ljharb" 78 | } 79 | }, 80 | "node_modules/concat-map": { 81 | "version": "0.0.1", 82 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 83 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 84 | "dev": true 85 | }, 86 | "node_modules/deep-equal": { 87 | "version": "1.1.1", 88 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", 89 | "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", 90 | "dev": true, 91 | "dependencies": { 92 | "is-arguments": "^1.0.4", 93 | "is-date-object": "^1.0.1", 94 | "is-regex": "^1.0.4", 95 | "object-is": "^1.0.1", 96 | "object-keys": "^1.1.1", 97 | "regexp.prototype.flags": "^1.2.0" 98 | }, 99 | "funding": { 100 | "url": "https://github.com/sponsors/ljharb" 101 | } 102 | }, 103 | "node_modules/define-properties": { 104 | "version": "1.2.0", 105 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", 106 | "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", 107 | "dev": true, 108 | "dependencies": { 109 | "has-property-descriptors": "^1.0.0", 110 | "object-keys": "^1.1.1" 111 | }, 112 | "engines": { 113 | "node": ">= 0.4" 114 | }, 115 | "funding": { 116 | "url": "https://github.com/sponsors/ljharb" 117 | } 118 | }, 119 | "node_modules/defined": { 120 | "version": "1.0.1", 121 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", 122 | "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", 123 | "dev": true, 124 | "funding": { 125 | "url": "https://github.com/sponsors/ljharb" 126 | } 127 | }, 128 | "node_modules/dotignore": { 129 | "version": "0.1.2", 130 | "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", 131 | "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", 132 | "dev": true, 133 | "dependencies": { 134 | "minimatch": "^3.0.4" 135 | }, 136 | "bin": { 137 | "ignored": "bin/ignored" 138 | } 139 | }, 140 | "node_modules/es-abstract": { 141 | "version": "1.21.2", 142 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", 143 | "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", 144 | "dev": true, 145 | "dependencies": { 146 | "array-buffer-byte-length": "^1.0.0", 147 | "available-typed-arrays": "^1.0.5", 148 | "call-bind": "^1.0.2", 149 | "es-set-tostringtag": "^2.0.1", 150 | "es-to-primitive": "^1.2.1", 151 | "function.prototype.name": "^1.1.5", 152 | "get-intrinsic": "^1.2.0", 153 | "get-symbol-description": "^1.0.0", 154 | "globalthis": "^1.0.3", 155 | "gopd": "^1.0.1", 156 | "has": "^1.0.3", 157 | "has-property-descriptors": "^1.0.0", 158 | "has-proto": "^1.0.1", 159 | "has-symbols": "^1.0.3", 160 | "internal-slot": "^1.0.5", 161 | "is-array-buffer": "^3.0.2", 162 | "is-callable": "^1.2.7", 163 | "is-negative-zero": "^2.0.2", 164 | "is-regex": "^1.1.4", 165 | "is-shared-array-buffer": "^1.0.2", 166 | "is-string": "^1.0.7", 167 | "is-typed-array": "^1.1.10", 168 | "is-weakref": "^1.0.2", 169 | "object-inspect": "^1.12.3", 170 | "object-keys": "^1.1.1", 171 | "object.assign": "^4.1.4", 172 | "regexp.prototype.flags": "^1.4.3", 173 | "safe-regex-test": "^1.0.0", 174 | "string.prototype.trim": "^1.2.7", 175 | "string.prototype.trimend": "^1.0.6", 176 | "string.prototype.trimstart": "^1.0.6", 177 | "typed-array-length": "^1.0.4", 178 | "unbox-primitive": "^1.0.2", 179 | "which-typed-array": "^1.1.9" 180 | }, 181 | "engines": { 182 | "node": ">= 0.4" 183 | }, 184 | "funding": { 185 | "url": "https://github.com/sponsors/ljharb" 186 | } 187 | }, 188 | "node_modules/es-set-tostringtag": { 189 | "version": "2.0.1", 190 | "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", 191 | "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", 192 | "dev": true, 193 | "dependencies": { 194 | "get-intrinsic": "^1.1.3", 195 | "has": "^1.0.3", 196 | "has-tostringtag": "^1.0.0" 197 | }, 198 | "engines": { 199 | "node": ">= 0.4" 200 | } 201 | }, 202 | "node_modules/es-to-primitive": { 203 | "version": "1.2.1", 204 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", 205 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", 206 | "dev": true, 207 | "dependencies": { 208 | "is-callable": "^1.1.4", 209 | "is-date-object": "^1.0.1", 210 | "is-symbol": "^1.0.2" 211 | }, 212 | "engines": { 213 | "node": ">= 0.4" 214 | }, 215 | "funding": { 216 | "url": "https://github.com/sponsors/ljharb" 217 | } 218 | }, 219 | "node_modules/for-each": { 220 | "version": "0.3.3", 221 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", 222 | "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", 223 | "dev": true, 224 | "dependencies": { 225 | "is-callable": "^1.1.3" 226 | } 227 | }, 228 | "node_modules/fs.realpath": { 229 | "version": "1.0.0", 230 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 231 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", 232 | "dev": true 233 | }, 234 | "node_modules/function-bind": { 235 | "version": "1.1.1", 236 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 237 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 238 | "dev": true 239 | }, 240 | "node_modules/function.prototype.name": { 241 | "version": "1.1.5", 242 | "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", 243 | "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", 244 | "dev": true, 245 | "dependencies": { 246 | "call-bind": "^1.0.2", 247 | "define-properties": "^1.1.3", 248 | "es-abstract": "^1.19.0", 249 | "functions-have-names": "^1.2.2" 250 | }, 251 | "engines": { 252 | "node": ">= 0.4" 253 | }, 254 | "funding": { 255 | "url": "https://github.com/sponsors/ljharb" 256 | } 257 | }, 258 | "node_modules/functions-have-names": { 259 | "version": "1.2.3", 260 | "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", 261 | "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", 262 | "dev": true, 263 | "funding": { 264 | "url": "https://github.com/sponsors/ljharb" 265 | } 266 | }, 267 | "node_modules/get-intrinsic": { 268 | "version": "1.2.0", 269 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", 270 | "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", 271 | "dev": true, 272 | "dependencies": { 273 | "function-bind": "^1.1.1", 274 | "has": "^1.0.3", 275 | "has-symbols": "^1.0.3" 276 | }, 277 | "funding": { 278 | "url": "https://github.com/sponsors/ljharb" 279 | } 280 | }, 281 | "node_modules/get-symbol-description": { 282 | "version": "1.0.0", 283 | "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", 284 | "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", 285 | "dev": true, 286 | "dependencies": { 287 | "call-bind": "^1.0.2", 288 | "get-intrinsic": "^1.1.1" 289 | }, 290 | "engines": { 291 | "node": ">= 0.4" 292 | }, 293 | "funding": { 294 | "url": "https://github.com/sponsors/ljharb" 295 | } 296 | }, 297 | "node_modules/glob": { 298 | "version": "7.2.3", 299 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 300 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 301 | "dev": true, 302 | "dependencies": { 303 | "fs.realpath": "^1.0.0", 304 | "inflight": "^1.0.4", 305 | "inherits": "2", 306 | "minimatch": "^3.1.1", 307 | "once": "^1.3.0", 308 | "path-is-absolute": "^1.0.0" 309 | }, 310 | "engines": { 311 | "node": "*" 312 | }, 313 | "funding": { 314 | "url": "https://github.com/sponsors/isaacs" 315 | } 316 | }, 317 | "node_modules/globalthis": { 318 | "version": "1.0.3", 319 | "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", 320 | "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", 321 | "dev": true, 322 | "dependencies": { 323 | "define-properties": "^1.1.3" 324 | }, 325 | "engines": { 326 | "node": ">= 0.4" 327 | }, 328 | "funding": { 329 | "url": "https://github.com/sponsors/ljharb" 330 | } 331 | }, 332 | "node_modules/gopd": { 333 | "version": "1.0.1", 334 | "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", 335 | "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", 336 | "dev": true, 337 | "dependencies": { 338 | "get-intrinsic": "^1.1.3" 339 | }, 340 | "funding": { 341 | "url": "https://github.com/sponsors/ljharb" 342 | } 343 | }, 344 | "node_modules/has": { 345 | "version": "1.0.3", 346 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 347 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 348 | "dev": true, 349 | "dependencies": { 350 | "function-bind": "^1.1.1" 351 | }, 352 | "engines": { 353 | "node": ">= 0.4.0" 354 | } 355 | }, 356 | "node_modules/has-bigints": { 357 | "version": "1.0.2", 358 | "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", 359 | "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", 360 | "dev": true, 361 | "funding": { 362 | "url": "https://github.com/sponsors/ljharb" 363 | } 364 | }, 365 | "node_modules/has-property-descriptors": { 366 | "version": "1.0.0", 367 | "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", 368 | "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", 369 | "dev": true, 370 | "dependencies": { 371 | "get-intrinsic": "^1.1.1" 372 | }, 373 | "funding": { 374 | "url": "https://github.com/sponsors/ljharb" 375 | } 376 | }, 377 | "node_modules/has-proto": { 378 | "version": "1.0.1", 379 | "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", 380 | "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", 381 | "dev": true, 382 | "engines": { 383 | "node": ">= 0.4" 384 | }, 385 | "funding": { 386 | "url": "https://github.com/sponsors/ljharb" 387 | } 388 | }, 389 | "node_modules/has-symbols": { 390 | "version": "1.0.3", 391 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", 392 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", 393 | "dev": true, 394 | "engines": { 395 | "node": ">= 0.4" 396 | }, 397 | "funding": { 398 | "url": "https://github.com/sponsors/ljharb" 399 | } 400 | }, 401 | "node_modules/has-tostringtag": { 402 | "version": "1.0.0", 403 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", 404 | "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", 405 | "dev": true, 406 | "dependencies": { 407 | "has-symbols": "^1.0.2" 408 | }, 409 | "engines": { 410 | "node": ">= 0.4" 411 | }, 412 | "funding": { 413 | "url": "https://github.com/sponsors/ljharb" 414 | } 415 | }, 416 | "node_modules/inflight": { 417 | "version": "1.0.6", 418 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 419 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 420 | "dev": true, 421 | "dependencies": { 422 | "once": "^1.3.0", 423 | "wrappy": "1" 424 | } 425 | }, 426 | "node_modules/inherits": { 427 | "version": "2.0.4", 428 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 429 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 430 | "dev": true 431 | }, 432 | "node_modules/internal-slot": { 433 | "version": "1.0.5", 434 | "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", 435 | "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", 436 | "dev": true, 437 | "dependencies": { 438 | "get-intrinsic": "^1.2.0", 439 | "has": "^1.0.3", 440 | "side-channel": "^1.0.4" 441 | }, 442 | "engines": { 443 | "node": ">= 0.4" 444 | } 445 | }, 446 | "node_modules/is-arguments": { 447 | "version": "1.1.1", 448 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", 449 | "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", 450 | "dev": true, 451 | "dependencies": { 452 | "call-bind": "^1.0.2", 453 | "has-tostringtag": "^1.0.0" 454 | }, 455 | "engines": { 456 | "node": ">= 0.4" 457 | }, 458 | "funding": { 459 | "url": "https://github.com/sponsors/ljharb" 460 | } 461 | }, 462 | "node_modules/is-array-buffer": { 463 | "version": "3.0.2", 464 | "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", 465 | "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", 466 | "dev": true, 467 | "dependencies": { 468 | "call-bind": "^1.0.2", 469 | "get-intrinsic": "^1.2.0", 470 | "is-typed-array": "^1.1.10" 471 | }, 472 | "funding": { 473 | "url": "https://github.com/sponsors/ljharb" 474 | } 475 | }, 476 | "node_modules/is-bigint": { 477 | "version": "1.0.4", 478 | "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", 479 | "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", 480 | "dev": true, 481 | "dependencies": { 482 | "has-bigints": "^1.0.1" 483 | }, 484 | "funding": { 485 | "url": "https://github.com/sponsors/ljharb" 486 | } 487 | }, 488 | "node_modules/is-boolean-object": { 489 | "version": "1.1.2", 490 | "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", 491 | "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", 492 | "dev": true, 493 | "dependencies": { 494 | "call-bind": "^1.0.2", 495 | "has-tostringtag": "^1.0.0" 496 | }, 497 | "engines": { 498 | "node": ">= 0.4" 499 | }, 500 | "funding": { 501 | "url": "https://github.com/sponsors/ljharb" 502 | } 503 | }, 504 | "node_modules/is-callable": { 505 | "version": "1.2.7", 506 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", 507 | "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", 508 | "dev": true, 509 | "engines": { 510 | "node": ">= 0.4" 511 | }, 512 | "funding": { 513 | "url": "https://github.com/sponsors/ljharb" 514 | } 515 | }, 516 | "node_modules/is-core-module": { 517 | "version": "2.12.0", 518 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", 519 | "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", 520 | "dev": true, 521 | "dependencies": { 522 | "has": "^1.0.3" 523 | }, 524 | "funding": { 525 | "url": "https://github.com/sponsors/ljharb" 526 | } 527 | }, 528 | "node_modules/is-date-object": { 529 | "version": "1.0.5", 530 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", 531 | "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", 532 | "dev": true, 533 | "dependencies": { 534 | "has-tostringtag": "^1.0.0" 535 | }, 536 | "engines": { 537 | "node": ">= 0.4" 538 | }, 539 | "funding": { 540 | "url": "https://github.com/sponsors/ljharb" 541 | } 542 | }, 543 | "node_modules/is-negative-zero": { 544 | "version": "2.0.2", 545 | "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", 546 | "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", 547 | "dev": true, 548 | "engines": { 549 | "node": ">= 0.4" 550 | }, 551 | "funding": { 552 | "url": "https://github.com/sponsors/ljharb" 553 | } 554 | }, 555 | "node_modules/is-number-object": { 556 | "version": "1.0.7", 557 | "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", 558 | "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", 559 | "dev": true, 560 | "dependencies": { 561 | "has-tostringtag": "^1.0.0" 562 | }, 563 | "engines": { 564 | "node": ">= 0.4" 565 | }, 566 | "funding": { 567 | "url": "https://github.com/sponsors/ljharb" 568 | } 569 | }, 570 | "node_modules/is-regex": { 571 | "version": "1.1.4", 572 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", 573 | "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", 574 | "dev": true, 575 | "dependencies": { 576 | "call-bind": "^1.0.2", 577 | "has-tostringtag": "^1.0.0" 578 | }, 579 | "engines": { 580 | "node": ">= 0.4" 581 | }, 582 | "funding": { 583 | "url": "https://github.com/sponsors/ljharb" 584 | } 585 | }, 586 | "node_modules/is-shared-array-buffer": { 587 | "version": "1.0.2", 588 | "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", 589 | "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", 590 | "dev": true, 591 | "dependencies": { 592 | "call-bind": "^1.0.2" 593 | }, 594 | "funding": { 595 | "url": "https://github.com/sponsors/ljharb" 596 | } 597 | }, 598 | "node_modules/is-string": { 599 | "version": "1.0.7", 600 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", 601 | "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", 602 | "dev": true, 603 | "dependencies": { 604 | "has-tostringtag": "^1.0.0" 605 | }, 606 | "engines": { 607 | "node": ">= 0.4" 608 | }, 609 | "funding": { 610 | "url": "https://github.com/sponsors/ljharb" 611 | } 612 | }, 613 | "node_modules/is-svg-path": { 614 | "version": "1.0.2", 615 | "resolved": "https://registry.npmjs.org/is-svg-path/-/is-svg-path-1.0.2.tgz", 616 | "integrity": "sha512-Lj4vePmqpPR1ZnRctHv8ltSh1OrSxHkhUkd7wi+VQdcdP15/KvQFyk7LhNuM7ZW0EVbJz8kZLVmL9quLrfq4Kg==" 617 | }, 618 | "node_modules/is-symbol": { 619 | "version": "1.0.4", 620 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", 621 | "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", 622 | "dev": true, 623 | "dependencies": { 624 | "has-symbols": "^1.0.2" 625 | }, 626 | "engines": { 627 | "node": ">= 0.4" 628 | }, 629 | "funding": { 630 | "url": "https://github.com/sponsors/ljharb" 631 | } 632 | }, 633 | "node_modules/is-typed-array": { 634 | "version": "1.1.10", 635 | "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", 636 | "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", 637 | "dev": true, 638 | "dependencies": { 639 | "available-typed-arrays": "^1.0.5", 640 | "call-bind": "^1.0.2", 641 | "for-each": "^0.3.3", 642 | "gopd": "^1.0.1", 643 | "has-tostringtag": "^1.0.0" 644 | }, 645 | "engines": { 646 | "node": ">= 0.4" 647 | }, 648 | "funding": { 649 | "url": "https://github.com/sponsors/ljharb" 650 | } 651 | }, 652 | "node_modules/is-weakref": { 653 | "version": "1.0.2", 654 | "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", 655 | "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", 656 | "dev": true, 657 | "dependencies": { 658 | "call-bind": "^1.0.2" 659 | }, 660 | "funding": { 661 | "url": "https://github.com/sponsors/ljharb" 662 | } 663 | }, 664 | "node_modules/minimatch": { 665 | "version": "3.1.2", 666 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 667 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 668 | "dev": true, 669 | "dependencies": { 670 | "brace-expansion": "^1.1.7" 671 | }, 672 | "engines": { 673 | "node": "*" 674 | } 675 | }, 676 | "node_modules/minimist": { 677 | "version": "1.2.8", 678 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", 679 | "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", 680 | "dev": true, 681 | "funding": { 682 | "url": "https://github.com/sponsors/ljharb" 683 | } 684 | }, 685 | "node_modules/normalize-svg-path": { 686 | "version": "1.1.0", 687 | "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-1.1.0.tgz", 688 | "integrity": "sha512-r9KHKG2UUeB5LoTouwDzBy2VxXlHsiM6fyLQvnJa0S5hrhzqElH/CH7TUGhT1fVvIYBIKf3OpY4YJ4CK+iaqHg==", 689 | "dependencies": { 690 | "svg-arc-to-cubic-bezier": "^3.0.0" 691 | } 692 | }, 693 | "node_modules/object-inspect": { 694 | "version": "1.12.3", 695 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", 696 | "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", 697 | "dev": true, 698 | "funding": { 699 | "url": "https://github.com/sponsors/ljharb" 700 | } 701 | }, 702 | "node_modules/object-is": { 703 | "version": "1.1.5", 704 | "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", 705 | "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", 706 | "dev": true, 707 | "dependencies": { 708 | "call-bind": "^1.0.2", 709 | "define-properties": "^1.1.3" 710 | }, 711 | "engines": { 712 | "node": ">= 0.4" 713 | }, 714 | "funding": { 715 | "url": "https://github.com/sponsors/ljharb" 716 | } 717 | }, 718 | "node_modules/object-keys": { 719 | "version": "1.1.1", 720 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 721 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 722 | "dev": true, 723 | "engines": { 724 | "node": ">= 0.4" 725 | } 726 | }, 727 | "node_modules/object.assign": { 728 | "version": "4.1.4", 729 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", 730 | "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", 731 | "dev": true, 732 | "dependencies": { 733 | "call-bind": "^1.0.2", 734 | "define-properties": "^1.1.4", 735 | "has-symbols": "^1.0.3", 736 | "object-keys": "^1.1.1" 737 | }, 738 | "engines": { 739 | "node": ">= 0.4" 740 | }, 741 | "funding": { 742 | "url": "https://github.com/sponsors/ljharb" 743 | } 744 | }, 745 | "node_modules/once": { 746 | "version": "1.4.0", 747 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 748 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 749 | "dev": true, 750 | "dependencies": { 751 | "wrappy": "1" 752 | } 753 | }, 754 | "node_modules/parse-svg-path": { 755 | "version": "0.1.2", 756 | "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz", 757 | "integrity": "sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==" 758 | }, 759 | "node_modules/path-is-absolute": { 760 | "version": "1.0.1", 761 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 762 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", 763 | "dev": true, 764 | "engines": { 765 | "node": ">=0.10.0" 766 | } 767 | }, 768 | "node_modules/path-parse": { 769 | "version": "1.0.7", 770 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 771 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 772 | "dev": true 773 | }, 774 | "node_modules/regexp.prototype.flags": { 775 | "version": "1.4.3", 776 | "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", 777 | "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", 778 | "dev": true, 779 | "dependencies": { 780 | "call-bind": "^1.0.2", 781 | "define-properties": "^1.1.3", 782 | "functions-have-names": "^1.2.2" 783 | }, 784 | "engines": { 785 | "node": ">= 0.4" 786 | }, 787 | "funding": { 788 | "url": "https://github.com/sponsors/ljharb" 789 | } 790 | }, 791 | "node_modules/resolve": { 792 | "version": "1.22.2", 793 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", 794 | "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", 795 | "dev": true, 796 | "dependencies": { 797 | "is-core-module": "^2.11.0", 798 | "path-parse": "^1.0.7", 799 | "supports-preserve-symlinks-flag": "^1.0.0" 800 | }, 801 | "bin": { 802 | "resolve": "bin/resolve" 803 | }, 804 | "funding": { 805 | "url": "https://github.com/sponsors/ljharb" 806 | } 807 | }, 808 | "node_modules/resumer": { 809 | "version": "0.0.0", 810 | "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", 811 | "integrity": "sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w==", 812 | "dev": true, 813 | "dependencies": { 814 | "through": "~2.3.4" 815 | } 816 | }, 817 | "node_modules/safe-regex-test": { 818 | "version": "1.0.0", 819 | "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", 820 | "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", 821 | "dev": true, 822 | "dependencies": { 823 | "call-bind": "^1.0.2", 824 | "get-intrinsic": "^1.1.3", 825 | "is-regex": "^1.1.4" 826 | }, 827 | "funding": { 828 | "url": "https://github.com/sponsors/ljharb" 829 | } 830 | }, 831 | "node_modules/side-channel": { 832 | "version": "1.0.4", 833 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", 834 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", 835 | "dev": true, 836 | "dependencies": { 837 | "call-bind": "^1.0.0", 838 | "get-intrinsic": "^1.0.2", 839 | "object-inspect": "^1.9.0" 840 | }, 841 | "funding": { 842 | "url": "https://github.com/sponsors/ljharb" 843 | } 844 | }, 845 | "node_modules/string.prototype.trim": { 846 | "version": "1.2.7", 847 | "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", 848 | "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", 849 | "dev": true, 850 | "dependencies": { 851 | "call-bind": "^1.0.2", 852 | "define-properties": "^1.1.4", 853 | "es-abstract": "^1.20.4" 854 | }, 855 | "engines": { 856 | "node": ">= 0.4" 857 | }, 858 | "funding": { 859 | "url": "https://github.com/sponsors/ljharb" 860 | } 861 | }, 862 | "node_modules/string.prototype.trimend": { 863 | "version": "1.0.6", 864 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", 865 | "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", 866 | "dev": true, 867 | "dependencies": { 868 | "call-bind": "^1.0.2", 869 | "define-properties": "^1.1.4", 870 | "es-abstract": "^1.20.4" 871 | }, 872 | "funding": { 873 | "url": "https://github.com/sponsors/ljharb" 874 | } 875 | }, 876 | "node_modules/string.prototype.trimstart": { 877 | "version": "1.0.6", 878 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", 879 | "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", 880 | "dev": true, 881 | "dependencies": { 882 | "call-bind": "^1.0.2", 883 | "define-properties": "^1.1.4", 884 | "es-abstract": "^1.20.4" 885 | }, 886 | "funding": { 887 | "url": "https://github.com/sponsors/ljharb" 888 | } 889 | }, 890 | "node_modules/supports-preserve-symlinks-flag": { 891 | "version": "1.0.0", 892 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 893 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 894 | "dev": true, 895 | "engines": { 896 | "node": ">= 0.4" 897 | }, 898 | "funding": { 899 | "url": "https://github.com/sponsors/ljharb" 900 | } 901 | }, 902 | "node_modules/svg-arc-to-cubic-bezier": { 903 | "version": "3.2.0", 904 | "resolved": "https://registry.npmjs.org/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz", 905 | "integrity": "sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g==" 906 | }, 907 | "node_modules/tape": { 908 | "version": "4.16.2", 909 | "resolved": "https://registry.npmjs.org/tape/-/tape-4.16.2.tgz", 910 | "integrity": "sha512-TUChV+q0GxBBCEbfCYkGLkv8hDJYjMdSWdE0/Lr331sB389dsvFUHNV9ph5iQqKzt8Ss9drzcda/YeexclBFqg==", 911 | "dev": true, 912 | "dependencies": { 913 | "call-bind": "~1.0.2", 914 | "deep-equal": "~1.1.1", 915 | "defined": "~1.0.1", 916 | "dotignore": "~0.1.2", 917 | "for-each": "~0.3.3", 918 | "glob": "~7.2.3", 919 | "has": "~1.0.3", 920 | "inherits": "~2.0.4", 921 | "is-regex": "~1.1.4", 922 | "minimist": "~1.2.7", 923 | "object-inspect": "~1.12.3", 924 | "resolve": "~1.22.1", 925 | "resumer": "~0.0.0", 926 | "string.prototype.trim": "~1.2.7", 927 | "through": "~2.3.8" 928 | }, 929 | "bin": { 930 | "tape": "bin/tape" 931 | }, 932 | "funding": { 933 | "url": "https://github.com/sponsors/ljharb" 934 | } 935 | }, 936 | "node_modules/through": { 937 | "version": "2.3.8", 938 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 939 | "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", 940 | "dev": true 941 | }, 942 | "node_modules/typed-array-length": { 943 | "version": "1.0.4", 944 | "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", 945 | "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", 946 | "dev": true, 947 | "dependencies": { 948 | "call-bind": "^1.0.2", 949 | "for-each": "^0.3.3", 950 | "is-typed-array": "^1.1.9" 951 | }, 952 | "funding": { 953 | "url": "https://github.com/sponsors/ljharb" 954 | } 955 | }, 956 | "node_modules/unbox-primitive": { 957 | "version": "1.0.2", 958 | "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", 959 | "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", 960 | "dev": true, 961 | "dependencies": { 962 | "call-bind": "^1.0.2", 963 | "has-bigints": "^1.0.2", 964 | "has-symbols": "^1.0.3", 965 | "which-boxed-primitive": "^1.0.2" 966 | }, 967 | "funding": { 968 | "url": "https://github.com/sponsors/ljharb" 969 | } 970 | }, 971 | "node_modules/which-boxed-primitive": { 972 | "version": "1.0.2", 973 | "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", 974 | "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", 975 | "dev": true, 976 | "dependencies": { 977 | "is-bigint": "^1.0.1", 978 | "is-boolean-object": "^1.1.0", 979 | "is-number-object": "^1.0.4", 980 | "is-string": "^1.0.5", 981 | "is-symbol": "^1.0.3" 982 | }, 983 | "funding": { 984 | "url": "https://github.com/sponsors/ljharb" 985 | } 986 | }, 987 | "node_modules/which-typed-array": { 988 | "version": "1.1.9", 989 | "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", 990 | "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", 991 | "dev": true, 992 | "dependencies": { 993 | "available-typed-arrays": "^1.0.5", 994 | "call-bind": "^1.0.2", 995 | "for-each": "^0.3.3", 996 | "gopd": "^1.0.1", 997 | "has-tostringtag": "^1.0.0", 998 | "is-typed-array": "^1.1.10" 999 | }, 1000 | "engines": { 1001 | "node": ">= 0.4" 1002 | }, 1003 | "funding": { 1004 | "url": "https://github.com/sponsors/ljharb" 1005 | } 1006 | }, 1007 | "node_modules/wrappy": { 1008 | "version": "1.0.2", 1009 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1010 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", 1011 | "dev": true 1012 | } 1013 | }, 1014 | "dependencies": { 1015 | "abs-svg-path": { 1016 | "version": "0.1.1", 1017 | "resolved": "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz", 1018 | "integrity": "sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA==" 1019 | }, 1020 | "array-buffer-byte-length": { 1021 | "version": "1.0.0", 1022 | "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", 1023 | "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", 1024 | "dev": true, 1025 | "requires": { 1026 | "call-bind": "^1.0.2", 1027 | "is-array-buffer": "^3.0.1" 1028 | } 1029 | }, 1030 | "available-typed-arrays": { 1031 | "version": "1.0.5", 1032 | "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", 1033 | "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", 1034 | "dev": true 1035 | }, 1036 | "balanced-match": { 1037 | "version": "1.0.2", 1038 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 1039 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 1040 | "dev": true 1041 | }, 1042 | "brace-expansion": { 1043 | "version": "1.1.11", 1044 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1045 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1046 | "dev": true, 1047 | "requires": { 1048 | "balanced-match": "^1.0.0", 1049 | "concat-map": "0.0.1" 1050 | } 1051 | }, 1052 | "call-bind": { 1053 | "version": "1.0.2", 1054 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 1055 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 1056 | "dev": true, 1057 | "requires": { 1058 | "function-bind": "^1.1.1", 1059 | "get-intrinsic": "^1.0.2" 1060 | } 1061 | }, 1062 | "concat-map": { 1063 | "version": "0.0.1", 1064 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1065 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 1066 | "dev": true 1067 | }, 1068 | "deep-equal": { 1069 | "version": "1.1.1", 1070 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", 1071 | "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", 1072 | "dev": true, 1073 | "requires": { 1074 | "is-arguments": "^1.0.4", 1075 | "is-date-object": "^1.0.1", 1076 | "is-regex": "^1.0.4", 1077 | "object-is": "^1.0.1", 1078 | "object-keys": "^1.1.1", 1079 | "regexp.prototype.flags": "^1.2.0" 1080 | } 1081 | }, 1082 | "define-properties": { 1083 | "version": "1.2.0", 1084 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", 1085 | "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", 1086 | "dev": true, 1087 | "requires": { 1088 | "has-property-descriptors": "^1.0.0", 1089 | "object-keys": "^1.1.1" 1090 | } 1091 | }, 1092 | "defined": { 1093 | "version": "1.0.1", 1094 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", 1095 | "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", 1096 | "dev": true 1097 | }, 1098 | "dotignore": { 1099 | "version": "0.1.2", 1100 | "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", 1101 | "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", 1102 | "dev": true, 1103 | "requires": { 1104 | "minimatch": "^3.0.4" 1105 | } 1106 | }, 1107 | "es-abstract": { 1108 | "version": "1.21.2", 1109 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", 1110 | "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", 1111 | "dev": true, 1112 | "requires": { 1113 | "array-buffer-byte-length": "^1.0.0", 1114 | "available-typed-arrays": "^1.0.5", 1115 | "call-bind": "^1.0.2", 1116 | "es-set-tostringtag": "^2.0.1", 1117 | "es-to-primitive": "^1.2.1", 1118 | "function.prototype.name": "^1.1.5", 1119 | "get-intrinsic": "^1.2.0", 1120 | "get-symbol-description": "^1.0.0", 1121 | "globalthis": "^1.0.3", 1122 | "gopd": "^1.0.1", 1123 | "has": "^1.0.3", 1124 | "has-property-descriptors": "^1.0.0", 1125 | "has-proto": "^1.0.1", 1126 | "has-symbols": "^1.0.3", 1127 | "internal-slot": "^1.0.5", 1128 | "is-array-buffer": "^3.0.2", 1129 | "is-callable": "^1.2.7", 1130 | "is-negative-zero": "^2.0.2", 1131 | "is-regex": "^1.1.4", 1132 | "is-shared-array-buffer": "^1.0.2", 1133 | "is-string": "^1.0.7", 1134 | "is-typed-array": "^1.1.10", 1135 | "is-weakref": "^1.0.2", 1136 | "object-inspect": "^1.12.3", 1137 | "object-keys": "^1.1.1", 1138 | "object.assign": "^4.1.4", 1139 | "regexp.prototype.flags": "^1.4.3", 1140 | "safe-regex-test": "^1.0.0", 1141 | "string.prototype.trim": "^1.2.7", 1142 | "string.prototype.trimend": "^1.0.6", 1143 | "string.prototype.trimstart": "^1.0.6", 1144 | "typed-array-length": "^1.0.4", 1145 | "unbox-primitive": "^1.0.2", 1146 | "which-typed-array": "^1.1.9" 1147 | } 1148 | }, 1149 | "es-set-tostringtag": { 1150 | "version": "2.0.1", 1151 | "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", 1152 | "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", 1153 | "dev": true, 1154 | "requires": { 1155 | "get-intrinsic": "^1.1.3", 1156 | "has": "^1.0.3", 1157 | "has-tostringtag": "^1.0.0" 1158 | } 1159 | }, 1160 | "es-to-primitive": { 1161 | "version": "1.2.1", 1162 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", 1163 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", 1164 | "dev": true, 1165 | "requires": { 1166 | "is-callable": "^1.1.4", 1167 | "is-date-object": "^1.0.1", 1168 | "is-symbol": "^1.0.2" 1169 | } 1170 | }, 1171 | "for-each": { 1172 | "version": "0.3.3", 1173 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", 1174 | "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", 1175 | "dev": true, 1176 | "requires": { 1177 | "is-callable": "^1.1.3" 1178 | } 1179 | }, 1180 | "fs.realpath": { 1181 | "version": "1.0.0", 1182 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1183 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", 1184 | "dev": true 1185 | }, 1186 | "function-bind": { 1187 | "version": "1.1.1", 1188 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1189 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1190 | "dev": true 1191 | }, 1192 | "function.prototype.name": { 1193 | "version": "1.1.5", 1194 | "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", 1195 | "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", 1196 | "dev": true, 1197 | "requires": { 1198 | "call-bind": "^1.0.2", 1199 | "define-properties": "^1.1.3", 1200 | "es-abstract": "^1.19.0", 1201 | "functions-have-names": "^1.2.2" 1202 | } 1203 | }, 1204 | "functions-have-names": { 1205 | "version": "1.2.3", 1206 | "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", 1207 | "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", 1208 | "dev": true 1209 | }, 1210 | "get-intrinsic": { 1211 | "version": "1.2.0", 1212 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", 1213 | "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", 1214 | "dev": true, 1215 | "requires": { 1216 | "function-bind": "^1.1.1", 1217 | "has": "^1.0.3", 1218 | "has-symbols": "^1.0.3" 1219 | } 1220 | }, 1221 | "get-symbol-description": { 1222 | "version": "1.0.0", 1223 | "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", 1224 | "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", 1225 | "dev": true, 1226 | "requires": { 1227 | "call-bind": "^1.0.2", 1228 | "get-intrinsic": "^1.1.1" 1229 | } 1230 | }, 1231 | "glob": { 1232 | "version": "7.2.3", 1233 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 1234 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 1235 | "dev": true, 1236 | "requires": { 1237 | "fs.realpath": "^1.0.0", 1238 | "inflight": "^1.0.4", 1239 | "inherits": "2", 1240 | "minimatch": "^3.1.1", 1241 | "once": "^1.3.0", 1242 | "path-is-absolute": "^1.0.0" 1243 | } 1244 | }, 1245 | "globalthis": { 1246 | "version": "1.0.3", 1247 | "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", 1248 | "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", 1249 | "dev": true, 1250 | "requires": { 1251 | "define-properties": "^1.1.3" 1252 | } 1253 | }, 1254 | "gopd": { 1255 | "version": "1.0.1", 1256 | "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", 1257 | "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", 1258 | "dev": true, 1259 | "requires": { 1260 | "get-intrinsic": "^1.1.3" 1261 | } 1262 | }, 1263 | "has": { 1264 | "version": "1.0.3", 1265 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1266 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1267 | "dev": true, 1268 | "requires": { 1269 | "function-bind": "^1.1.1" 1270 | } 1271 | }, 1272 | "has-bigints": { 1273 | "version": "1.0.2", 1274 | "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", 1275 | "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", 1276 | "dev": true 1277 | }, 1278 | "has-property-descriptors": { 1279 | "version": "1.0.0", 1280 | "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", 1281 | "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", 1282 | "dev": true, 1283 | "requires": { 1284 | "get-intrinsic": "^1.1.1" 1285 | } 1286 | }, 1287 | "has-proto": { 1288 | "version": "1.0.1", 1289 | "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", 1290 | "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", 1291 | "dev": true 1292 | }, 1293 | "has-symbols": { 1294 | "version": "1.0.3", 1295 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", 1296 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", 1297 | "dev": true 1298 | }, 1299 | "has-tostringtag": { 1300 | "version": "1.0.0", 1301 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", 1302 | "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", 1303 | "dev": true, 1304 | "requires": { 1305 | "has-symbols": "^1.0.2" 1306 | } 1307 | }, 1308 | "inflight": { 1309 | "version": "1.0.6", 1310 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1311 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 1312 | "dev": true, 1313 | "requires": { 1314 | "once": "^1.3.0", 1315 | "wrappy": "1" 1316 | } 1317 | }, 1318 | "inherits": { 1319 | "version": "2.0.4", 1320 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1321 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 1322 | "dev": true 1323 | }, 1324 | "internal-slot": { 1325 | "version": "1.0.5", 1326 | "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", 1327 | "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", 1328 | "dev": true, 1329 | "requires": { 1330 | "get-intrinsic": "^1.2.0", 1331 | "has": "^1.0.3", 1332 | "side-channel": "^1.0.4" 1333 | } 1334 | }, 1335 | "is-arguments": { 1336 | "version": "1.1.1", 1337 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", 1338 | "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", 1339 | "dev": true, 1340 | "requires": { 1341 | "call-bind": "^1.0.2", 1342 | "has-tostringtag": "^1.0.0" 1343 | } 1344 | }, 1345 | "is-array-buffer": { 1346 | "version": "3.0.2", 1347 | "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", 1348 | "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", 1349 | "dev": true, 1350 | "requires": { 1351 | "call-bind": "^1.0.2", 1352 | "get-intrinsic": "^1.2.0", 1353 | "is-typed-array": "^1.1.10" 1354 | } 1355 | }, 1356 | "is-bigint": { 1357 | "version": "1.0.4", 1358 | "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", 1359 | "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", 1360 | "dev": true, 1361 | "requires": { 1362 | "has-bigints": "^1.0.1" 1363 | } 1364 | }, 1365 | "is-boolean-object": { 1366 | "version": "1.1.2", 1367 | "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", 1368 | "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", 1369 | "dev": true, 1370 | "requires": { 1371 | "call-bind": "^1.0.2", 1372 | "has-tostringtag": "^1.0.0" 1373 | } 1374 | }, 1375 | "is-callable": { 1376 | "version": "1.2.7", 1377 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", 1378 | "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", 1379 | "dev": true 1380 | }, 1381 | "is-core-module": { 1382 | "version": "2.12.0", 1383 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", 1384 | "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", 1385 | "dev": true, 1386 | "requires": { 1387 | "has": "^1.0.3" 1388 | } 1389 | }, 1390 | "is-date-object": { 1391 | "version": "1.0.5", 1392 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", 1393 | "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", 1394 | "dev": true, 1395 | "requires": { 1396 | "has-tostringtag": "^1.0.0" 1397 | } 1398 | }, 1399 | "is-negative-zero": { 1400 | "version": "2.0.2", 1401 | "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", 1402 | "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", 1403 | "dev": true 1404 | }, 1405 | "is-number-object": { 1406 | "version": "1.0.7", 1407 | "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", 1408 | "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", 1409 | "dev": true, 1410 | "requires": { 1411 | "has-tostringtag": "^1.0.0" 1412 | } 1413 | }, 1414 | "is-regex": { 1415 | "version": "1.1.4", 1416 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", 1417 | "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", 1418 | "dev": true, 1419 | "requires": { 1420 | "call-bind": "^1.0.2", 1421 | "has-tostringtag": "^1.0.0" 1422 | } 1423 | }, 1424 | "is-shared-array-buffer": { 1425 | "version": "1.0.2", 1426 | "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", 1427 | "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", 1428 | "dev": true, 1429 | "requires": { 1430 | "call-bind": "^1.0.2" 1431 | } 1432 | }, 1433 | "is-string": { 1434 | "version": "1.0.7", 1435 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", 1436 | "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", 1437 | "dev": true, 1438 | "requires": { 1439 | "has-tostringtag": "^1.0.0" 1440 | } 1441 | }, 1442 | "is-svg-path": { 1443 | "version": "1.0.2", 1444 | "resolved": "https://registry.npmjs.org/is-svg-path/-/is-svg-path-1.0.2.tgz", 1445 | "integrity": "sha512-Lj4vePmqpPR1ZnRctHv8ltSh1OrSxHkhUkd7wi+VQdcdP15/KvQFyk7LhNuM7ZW0EVbJz8kZLVmL9quLrfq4Kg==" 1446 | }, 1447 | "is-symbol": { 1448 | "version": "1.0.4", 1449 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", 1450 | "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", 1451 | "dev": true, 1452 | "requires": { 1453 | "has-symbols": "^1.0.2" 1454 | } 1455 | }, 1456 | "is-typed-array": { 1457 | "version": "1.1.10", 1458 | "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", 1459 | "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", 1460 | "dev": true, 1461 | "requires": { 1462 | "available-typed-arrays": "^1.0.5", 1463 | "call-bind": "^1.0.2", 1464 | "for-each": "^0.3.3", 1465 | "gopd": "^1.0.1", 1466 | "has-tostringtag": "^1.0.0" 1467 | } 1468 | }, 1469 | "is-weakref": { 1470 | "version": "1.0.2", 1471 | "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", 1472 | "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", 1473 | "dev": true, 1474 | "requires": { 1475 | "call-bind": "^1.0.2" 1476 | } 1477 | }, 1478 | "minimatch": { 1479 | "version": "3.1.2", 1480 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 1481 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1482 | "dev": true, 1483 | "requires": { 1484 | "brace-expansion": "^1.1.7" 1485 | } 1486 | }, 1487 | "minimist": { 1488 | "version": "1.2.8", 1489 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", 1490 | "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", 1491 | "dev": true 1492 | }, 1493 | "normalize-svg-path": { 1494 | "version": "1.1.0", 1495 | "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-1.1.0.tgz", 1496 | "integrity": "sha512-r9KHKG2UUeB5LoTouwDzBy2VxXlHsiM6fyLQvnJa0S5hrhzqElH/CH7TUGhT1fVvIYBIKf3OpY4YJ4CK+iaqHg==", 1497 | "requires": { 1498 | "svg-arc-to-cubic-bezier": "^3.0.0" 1499 | } 1500 | }, 1501 | "object-inspect": { 1502 | "version": "1.12.3", 1503 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", 1504 | "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", 1505 | "dev": true 1506 | }, 1507 | "object-is": { 1508 | "version": "1.1.5", 1509 | "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", 1510 | "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", 1511 | "dev": true, 1512 | "requires": { 1513 | "call-bind": "^1.0.2", 1514 | "define-properties": "^1.1.3" 1515 | } 1516 | }, 1517 | "object-keys": { 1518 | "version": "1.1.1", 1519 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 1520 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 1521 | "dev": true 1522 | }, 1523 | "object.assign": { 1524 | "version": "4.1.4", 1525 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", 1526 | "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", 1527 | "dev": true, 1528 | "requires": { 1529 | "call-bind": "^1.0.2", 1530 | "define-properties": "^1.1.4", 1531 | "has-symbols": "^1.0.3", 1532 | "object-keys": "^1.1.1" 1533 | } 1534 | }, 1535 | "once": { 1536 | "version": "1.4.0", 1537 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1538 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 1539 | "dev": true, 1540 | "requires": { 1541 | "wrappy": "1" 1542 | } 1543 | }, 1544 | "parse-svg-path": { 1545 | "version": "0.1.2", 1546 | "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz", 1547 | "integrity": "sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==" 1548 | }, 1549 | "path-is-absolute": { 1550 | "version": "1.0.1", 1551 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1552 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", 1553 | "dev": true 1554 | }, 1555 | "path-parse": { 1556 | "version": "1.0.7", 1557 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 1558 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 1559 | "dev": true 1560 | }, 1561 | "regexp.prototype.flags": { 1562 | "version": "1.4.3", 1563 | "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", 1564 | "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", 1565 | "dev": true, 1566 | "requires": { 1567 | "call-bind": "^1.0.2", 1568 | "define-properties": "^1.1.3", 1569 | "functions-have-names": "^1.2.2" 1570 | } 1571 | }, 1572 | "resolve": { 1573 | "version": "1.22.2", 1574 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", 1575 | "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", 1576 | "dev": true, 1577 | "requires": { 1578 | "is-core-module": "^2.11.0", 1579 | "path-parse": "^1.0.7", 1580 | "supports-preserve-symlinks-flag": "^1.0.0" 1581 | } 1582 | }, 1583 | "resumer": { 1584 | "version": "0.0.0", 1585 | "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", 1586 | "integrity": "sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w==", 1587 | "dev": true, 1588 | "requires": { 1589 | "through": "~2.3.4" 1590 | } 1591 | }, 1592 | "safe-regex-test": { 1593 | "version": "1.0.0", 1594 | "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", 1595 | "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", 1596 | "dev": true, 1597 | "requires": { 1598 | "call-bind": "^1.0.2", 1599 | "get-intrinsic": "^1.1.3", 1600 | "is-regex": "^1.1.4" 1601 | } 1602 | }, 1603 | "side-channel": { 1604 | "version": "1.0.4", 1605 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", 1606 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", 1607 | "dev": true, 1608 | "requires": { 1609 | "call-bind": "^1.0.0", 1610 | "get-intrinsic": "^1.0.2", 1611 | "object-inspect": "^1.9.0" 1612 | } 1613 | }, 1614 | "string.prototype.trim": { 1615 | "version": "1.2.7", 1616 | "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", 1617 | "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", 1618 | "dev": true, 1619 | "requires": { 1620 | "call-bind": "^1.0.2", 1621 | "define-properties": "^1.1.4", 1622 | "es-abstract": "^1.20.4" 1623 | } 1624 | }, 1625 | "string.prototype.trimend": { 1626 | "version": "1.0.6", 1627 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", 1628 | "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", 1629 | "dev": true, 1630 | "requires": { 1631 | "call-bind": "^1.0.2", 1632 | "define-properties": "^1.1.4", 1633 | "es-abstract": "^1.20.4" 1634 | } 1635 | }, 1636 | "string.prototype.trimstart": { 1637 | "version": "1.0.6", 1638 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", 1639 | "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", 1640 | "dev": true, 1641 | "requires": { 1642 | "call-bind": "^1.0.2", 1643 | "define-properties": "^1.1.4", 1644 | "es-abstract": "^1.20.4" 1645 | } 1646 | }, 1647 | "supports-preserve-symlinks-flag": { 1648 | "version": "1.0.0", 1649 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 1650 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 1651 | "dev": true 1652 | }, 1653 | "svg-arc-to-cubic-bezier": { 1654 | "version": "3.2.0", 1655 | "resolved": "https://registry.npmjs.org/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz", 1656 | "integrity": "sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g==" 1657 | }, 1658 | "tape": { 1659 | "version": "4.16.2", 1660 | "resolved": "https://registry.npmjs.org/tape/-/tape-4.16.2.tgz", 1661 | "integrity": "sha512-TUChV+q0GxBBCEbfCYkGLkv8hDJYjMdSWdE0/Lr331sB389dsvFUHNV9ph5iQqKzt8Ss9drzcda/YeexclBFqg==", 1662 | "dev": true, 1663 | "requires": { 1664 | "call-bind": "~1.0.2", 1665 | "deep-equal": "~1.1.1", 1666 | "defined": "~1.0.1", 1667 | "dotignore": "~0.1.2", 1668 | "for-each": "~0.3.3", 1669 | "glob": "~7.2.3", 1670 | "has": "~1.0.3", 1671 | "inherits": "~2.0.4", 1672 | "is-regex": "~1.1.4", 1673 | "minimist": "~1.2.7", 1674 | "object-inspect": "~1.12.3", 1675 | "resolve": "~1.22.1", 1676 | "resumer": "~0.0.0", 1677 | "string.prototype.trim": "~1.2.7", 1678 | "through": "~2.3.8" 1679 | } 1680 | }, 1681 | "through": { 1682 | "version": "2.3.8", 1683 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 1684 | "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", 1685 | "dev": true 1686 | }, 1687 | "typed-array-length": { 1688 | "version": "1.0.4", 1689 | "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", 1690 | "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", 1691 | "dev": true, 1692 | "requires": { 1693 | "call-bind": "^1.0.2", 1694 | "for-each": "^0.3.3", 1695 | "is-typed-array": "^1.1.9" 1696 | } 1697 | }, 1698 | "unbox-primitive": { 1699 | "version": "1.0.2", 1700 | "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", 1701 | "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", 1702 | "dev": true, 1703 | "requires": { 1704 | "call-bind": "^1.0.2", 1705 | "has-bigints": "^1.0.2", 1706 | "has-symbols": "^1.0.3", 1707 | "which-boxed-primitive": "^1.0.2" 1708 | } 1709 | }, 1710 | "which-boxed-primitive": { 1711 | "version": "1.0.2", 1712 | "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", 1713 | "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", 1714 | "dev": true, 1715 | "requires": { 1716 | "is-bigint": "^1.0.1", 1717 | "is-boolean-object": "^1.1.0", 1718 | "is-number-object": "^1.0.4", 1719 | "is-string": "^1.0.5", 1720 | "is-symbol": "^1.0.3" 1721 | } 1722 | }, 1723 | "which-typed-array": { 1724 | "version": "1.1.9", 1725 | "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", 1726 | "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", 1727 | "dev": true, 1728 | "requires": { 1729 | "available-typed-arrays": "^1.0.5", 1730 | "call-bind": "^1.0.2", 1731 | "for-each": "^0.3.3", 1732 | "gopd": "^1.0.1", 1733 | "has-tostringtag": "^1.0.0", 1734 | "is-typed-array": "^1.1.10" 1735 | } 1736 | }, 1737 | "wrappy": { 1738 | "version": "1.0.2", 1739 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1740 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", 1741 | "dev": true 1742 | } 1743 | } 1744 | } 1745 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "svg-path-bounds", 3 | "version": "1.0.2", 4 | "description": "Get bounding box of an svg path data", 5 | "main": "index.js", 6 | "types": "index.d.td", 7 | "scripts": { 8 | "test": "node test" 9 | }, 10 | "keywords": [ 11 | "svg", 12 | "boundaries", 13 | "normalize", 14 | "coordinate", 15 | "range", 16 | "clip", 17 | "mask", 18 | "svg path", 19 | "path" 20 | ], 21 | "author": "Dima Yv ", 22 | "license": "MIT", 23 | "dependencies": { 24 | "abs-svg-path": "^0.1.1", 25 | "is-svg-path": "^1.0.1", 26 | "normalize-svg-path": "^1.0.0", 27 | "parse-svg-path": "^0.1.2" 28 | }, 29 | "repository": { 30 | "type": "git", 31 | "url": "git+https://github.com/dfcreative/svg-path-bounds.git" 32 | }, 33 | "bugs": { 34 | "url": "https://github.com/dfcreative/svg-path-bounds/issues" 35 | }, 36 | "homepage": "https://github.com/dfcreative/svg-path-bounds#readme", 37 | "devDependencies": { 38 | "tape": "^4.7.0" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # svg-path-bounds [![test](https://github.com/dy/svg-path-bounds/actions/workflows/test.yml/badge.svg)](https://github.com/dy/svg-path-bounds/actions/workflows/test.yml) 2 | 3 | Retrieve bounding box from svg path data. 4 | 5 | [![npm install svg-path-bounds](https://nodei.co/npm/svg-path-bounds.png?mini=true)](https://npmjs.org/package/svg-path-bounds/) 6 | 7 | ```js 8 | const getBounds = require('svg-path-bounds') 9 | 10 | let [left, top, right, bottom] = getBounds('M0 0L10 10 20 0Z') // [0, 0, 20, 10] 11 | ``` 12 | 13 | ### bounds = getBounds(path|segments) 14 | 15 | Calculate bounding box for [svg path data](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d) string or [parsed path segments](https://www.npmjs.com/package/parse-svg-path) array. The box is detected by controlling points, not the real path. 16 | 17 | ## Related 18 | 19 | * [parse-svg-path](https://npmjs.org/parse-svg-path) - return svg path data segments 20 | * [abs-svg-path](https://npmjs.org/abs-svg-path) - convert svg path to absolute values 21 | * [rel-svg-path](https://npmjs.org/abs-svg-path) - convert svg path to relative values 22 | * [normalize-svg-path](https://npmjs.org/normalize-svg-path) - make path consist of only bezier curve segments 23 | * [draw-svg-path](https://npmjs.org/draw-svg-path) - create canvas shape based on svg path data 24 | * [normalize-svg-coords](https://npmjs.org/normalize-svg-coords) - bring svg path coordinates to any linear range 25 | 26 | ## Similar 27 | 28 | * [svg-boundings](https://www.npmjs.com/package/svg-boundings) 29 | * [svg-path-bounding-box](https://github.com/icons8/svg-path-bounding-box) 30 | 31 | ## License 32 | 33 | MIT © Dmitry Iv. 34 | -------------------------------------------------------------------------------- /tea.yaml: -------------------------------------------------------------------------------- 1 | # https://tea.xyz/what-is-this-file 2 | --- 3 | version: 1.0.0 4 | codeOwners: 5 | - '0x18CEa38f92a0E9b028ea27DD935B36A55Cf83b06' 6 | quorum: 1 7 | -------------------------------------------------------------------------------- /test.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const b = require('./') 4 | const t = require('tape') 5 | 6 | t('a', t => { 7 | t.deepEqual(b`M300,200 h-150 a150,150 0 1,0 150,-150 z`, [150, 50, 450, 350]) 8 | 9 | t.deepEqual(new Float32Array(b`M600,350 l 50,-25 a25,25 -30 0,1 50,-25 l 50,-25 a25,50 -30 0,1 50,-25 l 50,-25 a25,75 -30 0,1 50,-25 l 50,-25 a25,100 -30 0,1 50,-25 l 50,-25 10 | `), new Float32Array([600, 58.73647175569799, 1050, 350])) 11 | 12 | t.deepEqual(b`M100,200 C100,100 250,100 250,200 S400,300 400,200`, [100, 100, 400, 300]) 13 | 14 | t.deepEqual(b`M0 1665q0 38 29 64 27 27 65 27h627q41 0 72.5 30t31.5 73-31.5 74-72.5 31-73-32q-29-26-65-26-38 0-64 25.5t-26 63.5 26 64q85 85 202 85 118 0 201-83.5t83-201.5-83-202-201-84H94q-38 0-66 27.5T0 1665zm0-321q0 35 29 61 27 27 65 27h1170q118 0 201.5-83.5T1549 1147t-83-200-202-82q-121 0-201 81-25 26-25 65t24.5 63.5 63.5 24.5q38 0 66-25 30-30 72-30t72.5 30 30.5 73-30.5 74-72.5 31H94q-38 0-66 27.5T0 1344zm283-251q0 13 18 13h153q11 0 21-15 36-87 111.5-143.5T757 884l56-8q20 0 20-18l7-55q17-173 146-289t304-116q176 0 305.5 115.5T1743 803l7 62q0 19 19 19h174q144 0 245.5 100.5T2290 1227q0 143-101.5 244.5T1943 1573h-736q-20 0-20 19v146q0 18 20 18h736q143 0 264.5-71t192-193 70.5-265q0-118-45-216 121-159 121-353 0-150-75.5-279T2266 174.5 1987 99q-247 0-412 185-128-65-285-65-225 0-398 139.5T672 715q-136 32-240.5 131T286 1080v4q-3 5-3 9zM1155-83q0 37 29 64l65 69q26 26 65 26 40 0 65.5-24.5T1405-13q0-38-24-64l-70-69q-25-28-63-28t-65.5 27-27.5 64zm568 470q115-109 264-109 155 0 267.5 112T2367 658q0 104-55 195-153-153-369-153h-36q-38-173-184-313zm173-559q0 37 26.5 62.5T1987-84t65-25.5 27-62.5v-218q0-38-27-65t-65-27-64.5 27-26.5 65v218zm592 242q0 39 24 64 27 27 65 27.5t61-27.5l156-153q27-27 27-65 0-37-27-64t-65-27-64 26L2512 8q-24 25-24 62zm82 1262q0 37 27 64l68 69q32 26 66 26 31 0 63-26 27-27 27-64 0-35-27-65l-68-69q-26-26-62-26-40 0-67 26.5t-27 64.5zm161-674q0 38 27 63 24 28 61 28h216q38 0 65-27t27-64-27.5-64.5T3035 566h-216q-38 0-63 27t-25 65z`, [0, -482, 3127, 2144]) 15 | 16 | t.deepEqual(b`M0 753q0-150 96.5-267T343 334q36-178 181.5-293.5T857-75q180 0 320.5 110.5T1361 324h30q121 0 226 52t167.5 142.5T1847 715q0 180-138 305 0 56-34.5 128.5T1582 1280t-117 72q-20 99-92 167t-174 91q48 48 48 113 0 79-56 134.5t-135 55.5q-78 0-134-55.5T866 1723q0-9 4.5-28t4.5-29h-9q-94 0-161-67.5T638 1437q0-37 39-113-78-41-125-134H419q-175-15-297-138.5T0 753z`, [0, -75, 1847, 1913]) 17 | 18 | t.deepEqual(b`M0 1226q0 178 106 318t273 187l-68 179q-8 23 15 23h226l-111 447h30l423-600q6-7 1.5-15t-15.5-8H648l264-492q11-23-15-23H583q-14 0-24 15l-114 306q-114-28-188.5-122T182 1226q0-133 89.5-230.5T495 882l57-4q19 0 19-19l8-57q11-113 74-206.5T815.5 449t214.5-53q173 0 303 117t148 289l8 60q0 20 18 20h173q142 0 245.5 102t103.5 242q0 138-96 239.5T1701 1574q-21 0-21 19v143q0 18 21 18 139-4 256-76.5t184-192.5 67-259q0-117-45-214 125-148 125-353 0-113-44.5-216T2124 265t-178-119.5-216-44.5q-247 0-412 185-129-69-288-69-225 0-400 139.5T406 714q-176 41-291 184.5T0 1226zm846 1054q0 26 15.5 49t48.5 33q3 0 8.5 1t10 1.5 8.5.5q67 0 85-64l259-948q10-37-7-68.5t-52-42.5q-37-11-69.5 6.5T1110 1302l-261 949q-3 27-3 29zm442-324q0 64 66 85 27 3 28 3 18 0 37-8 32-14 45-59l175-624q10-37-8-68.5t-54-42.5q-37-11-69 6.5t-42 53.5l-173 628q-5 23-5 26zm178-1568q108-102 264-102 155 0 265 109t110 264q0 101-54 197-154-154-371-154h-34q-45-183-180-314z`, [0, 101, 2288, 2380]) 19 | 20 | t.end() 21 | }) 22 | 23 | --------------------------------------------------------------------------------