├── .github └── workflows │ ├── release.yml │ └── tests.yml ├── .gitignore ├── .npmignore ├── README.md ├── bin └── glob-all ├── example ├── async.js ├── events.js ├── files │ ├── a.txt │ ├── b.txt │ ├── c.txt │ └── x │ │ ├── y.txt │ │ └── z.txt ├── order.js ├── perf.js └── sync.js ├── glob-all.js ├── package-lock.json ├── package.json └── test └── test.js /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: npm publish 2 | on: 3 | release: 4 | types: [created] 5 | jobs: 6 | build: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - name: Checkout 10 | uses: actions/checkout@v2 11 | - name: Setup Node 12 | uses: actions/setup-node@v2 13 | with: 14 | node-version: '16.x' 15 | registry-url: 'https://registry.npmjs.org' 16 | - name: Install dependencies and test 🔧 17 | run: npm ci && npm run test 18 | - name: Publish package on NPM 📦 19 | run: npm publish 20 | env: 21 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} -------------------------------------------------------------------------------- /.github/workflows/tests.yml: -------------------------------------------------------------------------------- 1 | name: npm test 2 | on: 3 | workflow_dispatch: 4 | pull_request: 5 | jobs: 6 | run-tests: 7 | runs-on: ubuntu-latest 8 | strategy: 9 | matrix: 10 | node-version: [16.x] 11 | steps: 12 | - uses: actions/checkout@v2 13 | - name: Use Node.js ${{ matrix.node-version }} 14 | uses: actions/setup-node@v2 15 | with: 16 | node-version: ${{ matrix.node-version }} 17 | cache: 'npm' 18 | - name: Run tests 19 | run: | 20 | npm ci 21 | npm test 22 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | tmp 4 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | src -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # glob-all 2 | 3 | Provides a similar API to [glob](https://github.com/isaacs/node-glob), however instead of a single pattern, you may also use arrays of patterns. 4 | 5 | [![Version](https://img.shields.io/npm/v/glob-all.svg)](https://www.npmjs.com/package/glob-all) [![Downloads](https://img.shields.io/npm/dm/glob-all.svg)](https://www.npmjs.com/package/glob-all) [![CircleCI](https://circleci.com/gh/jpillora/node-glob-all.svg?style=shield)](https://circleci.com/gh/jpillora/node-glob-all) 6 | 7 | ### Install 8 | 9 | ``` 10 | npm install --save glob-all 11 | ``` 12 | 13 | ### Usage 14 | 15 | Given files: 16 | ``` 17 | files 18 | ├── a.txt 19 | ├── b.txt 20 | ├── c.txt 21 | └── x 22 | ├── y.txt 23 | └── z.txt 24 | ``` 25 | 26 | We can: 27 | ``` js 28 | var glob = require('glob-all'); 29 | 30 | var files = glob.sync([ 31 | 'files/**', //include all files/ 32 | '!files/x/**', //then, exclude files/x/ 33 | 'files/x/z.txt' //then, reinclude files/x/z.txt 34 | ]); 35 | 36 | console.log(files); 37 | ``` 38 | 39 | Resulting in: 40 | ``` 41 | [ 'files', 42 | 'files/a.txt', 43 | 'files/b.txt', 44 | 'files/c.txt', 45 | 'files/x/z.txt' ] 46 | ``` 47 | 48 | ### CLI Usage 49 | 50 | `npm install -g glob-all` 51 | 52 | List all JavaScript files in `example/` 53 | 54 | ``` 55 | $ glob-all 'example/**/*.js' 56 | example/async.js 57 | example/events.js 58 | example/order.js 59 | example/perf.js 60 | example/sync.js 61 | ``` 62 | 63 | Or list all JavaScript files but ignore 3rd-party modules: 64 | 65 | ``` 66 | $ glob-all '**/*.js' '!node_modules/**/*' 67 | ``` 68 | 69 | ### API 70 | 71 | * Async - `glob(patterns[, options], callback)` 72 | * Returns a `GlobAll` instance which emits: 73 | * `match` 74 | * `error` 75 | * `end` 76 | 77 | * Sync - `glob.sync(patterns[, options])` 78 | * Returns `[String]` or `null` 79 | 80 | See [node-glob](https://github.com/isaacs/node-glob) 81 | 82 | ### Notes 83 | 84 | #### Exclude Pattern 85 | 86 | Since [node-glob](https://github.com/isaacs/node-glob) only allows one pattern, there is no such thing as an exclude pattern (like in Grunt and Gulp). However, in `node-glob-all` we allow exclusion of the results of an entire pattern by prefixing the pattern with `!`. 87 | 88 | [node-glob](https://github.com/isaacs/node-glob) exclusions (`!` inside the pattern) to exclude a portion of the path will still work as expected. 89 | 90 | #### File Order 91 | 92 | If a file occurs in more than once in the set, the one with the **more precise pattern** will be used and the other will be thrown away. So, if you'd like a file be in a certain position, you could do: 93 | 94 | ``` js 95 | var glob = require('glob-all'); 96 | 97 | var files = glob.sync([ 98 | 'files/x/y.txt', 99 | 'files/**' 100 | ]); 101 | 102 | console.log(files); 103 | ``` 104 | 105 | Which will bring `files/x/y.txt` to the top: 106 | 107 | ``` 108 | [ 'files/x/y.txt', 109 | 'files', 110 | 'files/a.txt', 111 | 'files/b.txt', 112 | 'files/c.txt', 113 | 'files/x', 114 | 'files/x/z.txt' ] 115 | ``` 116 | 117 | #### Filtering out directories 118 | 119 | You can use the `mark` option to mark directories with a `/`, then you can: 120 | ``` js 121 | files.filter(function(f) { return !/\/$/.test(f); }); 122 | ``` 123 | 124 | #### Performance 125 | 126 | Internally, `glob-all` uses the `statCache` option to prevent repeat lookups across multiple patterns. 127 | 128 | #### Todo 129 | 130 | * Implement `abort()` 131 | * Add tests 132 | 133 | #### Contributing 134 | 135 | * edit `glob-all.js` 136 | * `npm test` 137 | 138 | #### MIT License 139 | 140 | Copyright © 2014 Jaime Pillora <dev@jpillora.com> 141 | 142 | Permission is hereby granted, free of charge, to any person obtaining 143 | a copy of this software and associated documentation files (the 144 | 'Software'), to deal in the Software without restriction, including 145 | without limitation the rights to use, copy, modify, merge, publish, 146 | distribute, sublicense, and/or sell copies of the Software, and to 147 | permit persons to whom the Software is furnished to do so, subject to 148 | the following conditions: 149 | 150 | The above copyright notice and this permission notice shall be 151 | included in all copies or substantial portions of the Software. 152 | 153 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 154 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 155 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 156 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 157 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 158 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 159 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 160 | -------------------------------------------------------------------------------- /bin/glob-all: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | /** 4 | * Find files that match one or more patterns 5 | */ 6 | 7 | var glob = require('..'); 8 | var argv = require('yargs') 9 | .usage('Usage: $0 [pattern1..patternN]') 10 | .demand(1) 11 | .argv; 12 | 13 | var patterns = argv._; 14 | if (patterns.length === 1) { patterns = patterns[0].split('\n'); } 15 | 16 | glob.sync(patterns).forEach(function (file) { 17 | process.stdout.write(file + '\n'); 18 | }); 19 | -------------------------------------------------------------------------------- /example/async.js: -------------------------------------------------------------------------------- 1 | var glob = require('../'); 2 | 3 | glob([ 4 | 'files/**', 5 | '!files/x/**', 6 | 'files/x/z.txt' 7 | ], { 8 | mark: true 9 | }, function(err, files) { 10 | console.log(err || files); 11 | }); 12 | -------------------------------------------------------------------------------- /example/events.js: -------------------------------------------------------------------------------- 1 | var glob = require('../'); 2 | 3 | var g = glob([ 4 | 'files/**', 5 | '!files/x/**', 6 | 'files/x/z.txt' 7 | ], function(err, files) { 8 | console.log(err || files); 9 | }); 10 | 11 | g.on('match', function(f) { 12 | console.log('glob match: %s', f); 13 | }); 14 | 15 | g.on('end', function() { 16 | console.log('globbing complete'); 17 | }); -------------------------------------------------------------------------------- /example/files/a.txt: -------------------------------------------------------------------------------- 1 | a.txt -------------------------------------------------------------------------------- /example/files/b.txt: -------------------------------------------------------------------------------- 1 | a.txt -------------------------------------------------------------------------------- /example/files/c.txt: -------------------------------------------------------------------------------- 1 | a.txt -------------------------------------------------------------------------------- /example/files/x/y.txt: -------------------------------------------------------------------------------- 1 | y.txt 2 | -------------------------------------------------------------------------------- /example/files/x/z.txt: -------------------------------------------------------------------------------- 1 | y.txt 2 | -------------------------------------------------------------------------------- /example/order.js: -------------------------------------------------------------------------------- 1 | var glob = require('../'); 2 | 3 | var files = glob.sync([ 4 | 'files/x/y.txt', 5 | 'files/**' 6 | ]); 7 | 8 | console.log(files); 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/perf.js: -------------------------------------------------------------------------------- 1 | var glob = require('../'); 2 | 3 | var t = Date.now(); 4 | glob([ 5 | '**', 6 | '!**/*.js' 7 | ], { 8 | cwd: '/Users/jpillora/Code/Node/', /* folder with many files */ 9 | }, function(err, files) { 10 | console.log('found %s files in %sms', files.length, Date.now()-t); 11 | }); 12 | -------------------------------------------------------------------------------- /example/sync.js: -------------------------------------------------------------------------------- 1 | var glob = require('../'); 2 | 3 | var files = glob.sync([ 4 | 'files/**', 5 | '!files/x/**', 6 | 'files/x/z.txt' 7 | ]); 8 | 9 | console.log(files); 10 | 11 | 12 | -------------------------------------------------------------------------------- /glob-all.js: -------------------------------------------------------------------------------- 1 | var util = require("util"); 2 | var Glob = require("glob").Glob; 3 | var EventEmitter = require("events").EventEmitter; 4 | 5 | // helper class to store and compare glob results 6 | function File(pattern1, patternId1, path1, fileId1) { 7 | this.pattern = pattern1; 8 | this.patternId = patternId1; 9 | this.path = path1; 10 | this.fileId = fileId1; 11 | this.include = true; 12 | while (this.pattern.charAt(0) === "!") { 13 | this.include = !this.include; 14 | this.pattern = this.pattern.substr(1); 15 | } 16 | } 17 | 18 | File.prototype.stars = /((\/\*\*)?\/\*)?\.(\w+)$/; 19 | 20 | // strip stars and compare pattern length 21 | // longest length wins 22 | File.prototype.compare = function(other) { 23 | var p1 = this.pattern.replace(this.stars, ""); 24 | var p2 = other.pattern.replace(this.stars, ""); 25 | if (p1.length > p2.length) { 26 | return this; 27 | } else { 28 | return other; 29 | } 30 | }; 31 | 32 | File.prototype.toString = function() { 33 | return this.path + " (" + this.patternId + ": " + this.fileId + ": " + this.pattern + ")"; 34 | }; 35 | 36 | // using standard node inheritance 37 | util.inherits(GlobAll, EventEmitter); 38 | 39 | // allows the use arrays with "node-glob" 40 | // interatively combines the resulting arrays 41 | // api is exactly the same 42 | function GlobAll(sync, patterns, opts, callback) { 43 | if (opts == null) { 44 | opts = {}; 45 | } 46 | EventEmitter.call(this); 47 | // init array 48 | if (typeof patterns === "string") { 49 | patterns = [patterns]; 50 | } 51 | if (!(patterns instanceof Array)) { 52 | return (typeof callback === "function") ? callback("Invalid input") : null; 53 | } 54 | // use copy of array 55 | this.patterns = patterns.slice(); 56 | // no opts provided 57 | if (typeof opts === "function") { 58 | callback = opts; 59 | opts = {}; 60 | } 61 | // allow sync+nocallback or async+callback 62 | if (sync !== (typeof callback !== "function")) { 63 | throw new Error("should" + (sync ? " not" : "") + " have callback"); 64 | } 65 | // all globs share the same stat cache 66 | this.statCache = opts.statCache = opts.statCache || {}; 67 | opts.sync = sync; 68 | this.opts = opts; 69 | this.set = {}; 70 | this.results = null; 71 | this.globs = []; 72 | this.callback = callback; 73 | // bound functions 74 | this.globbedOne = this.globbedOne.bind(this); 75 | } 76 | 77 | GlobAll.prototype.run = function() { 78 | this.globNext(); 79 | return this.results; 80 | }; 81 | 82 | GlobAll.prototype.globNext = function() { 83 | var g, pattern, include = true; 84 | if (this.patterns.length === 0) { 85 | return this.globbedAll(); 86 | } 87 | pattern = this.patterns[0]; // peek! 88 | // check whether this is an exclude pattern and 89 | // strip the leading ! if it is 90 | if (pattern.charAt(0) === "!") { 91 | include = false; 92 | pattern = pattern.substr(1); 93 | } 94 | // run 95 | if (this.opts.sync) { 96 | // sync - callback straight away 97 | g = new Glob(pattern, this.opts); 98 | this.globs.push(g); 99 | this.globbedOne(null, include, g.found); 100 | } else { 101 | // async 102 | var self = this; 103 | g = new Glob(pattern, this.opts, function(err, files) { 104 | self.globbedOne(err, include, files); 105 | }); 106 | this.globs.push(g); 107 | } 108 | }; 109 | 110 | // collect results 111 | GlobAll.prototype.globbedOne = function(err, include, files) { 112 | // handle callback error early 113 | if (err) { 114 | if (!this.callback) { 115 | this.emit("error", err); 116 | } 117 | this.removeAllListeners(); 118 | if (this.callback) { 119 | this.callback(err); 120 | } 121 | return; 122 | } 123 | var patternId = this.patterns.length; 124 | var pattern = this.patterns.shift(); 125 | // insert each into the results set 126 | for (var fileId = 0; fileId < files.length; fileId++) { 127 | // convert to file instance 128 | var path = files[fileId]; 129 | var f = new File(pattern, patternId, path, fileId); 130 | var existing = this.set[path]; 131 | // new item 132 | if (!existing) { 133 | if (include) { 134 | this.set[path] = f; 135 | this.emit("match", path); 136 | } 137 | continue; 138 | } 139 | // compare or delete 140 | if (include) { 141 | this.set[path] = f.compare(existing); 142 | } else { 143 | delete this.set[path]; 144 | } 145 | } 146 | // run next 147 | this.globNext(); 148 | }; 149 | 150 | GlobAll.prototype.globbedAll = function() { 151 | // map result set into an array 152 | var files = []; 153 | for (var k in this.set) { 154 | files.push(this.set[k]); 155 | } 156 | // sort files by index 157 | files.sort(function(a, b) { 158 | if (a.patternId < b.patternId) { 159 | return 1; 160 | } 161 | if (a.patternId > b.patternId) { 162 | return -1; 163 | } 164 | if (a.fileId >= b.fileId) { 165 | return 1; 166 | } else { 167 | return -1; 168 | } 169 | }); 170 | // finally, convert back into a path string 171 | this.results = files.map(function(f) { 172 | return f.path; 173 | }); 174 | this.emit("end"); 175 | this.removeAllListeners(); 176 | // return string paths 177 | if (!this.opts.sync) { 178 | this.callback(null, this.results); 179 | } 180 | return this.results; 181 | }; 182 | 183 | // expose 184 | var globAll = function(array, opts, callback) { 185 | var g = new GlobAll(false, array, opts, callback); 186 | g.run(); //async, so results are empty 187 | return g; 188 | }; 189 | 190 | // sync is actually the same function :) 191 | globAll.sync = function(array, opts) { 192 | return new GlobAll(true, array, opts).run(); 193 | }; 194 | 195 | module.exports = globAll; 196 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "glob-all", 3 | "version": "3.3.1", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "glob-all", 9 | "version": "3.3.1", 10 | "license": "MIT", 11 | "dependencies": { 12 | "glob": "^7.2.3", 13 | "yargs": "^15.3.1" 14 | }, 15 | "bin": { 16 | "glob-all": "bin/glob-all" 17 | }, 18 | "devDependencies": { 19 | "tape": "^4.16.1" 20 | } 21 | }, 22 | "node_modules/@types/color-name": { 23 | "version": "1.1.1", 24 | "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", 25 | "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" 26 | }, 27 | "node_modules/ansi-regex": { 28 | "version": "5.0.1", 29 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 30 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 31 | "engines": { 32 | "node": ">=8" 33 | } 34 | }, 35 | "node_modules/ansi-styles": { 36 | "version": "4.2.1", 37 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", 38 | "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", 39 | "dependencies": { 40 | "@types/color-name": "^1.1.1", 41 | "color-convert": "^2.0.1" 42 | }, 43 | "engines": { 44 | "node": ">=8" 45 | }, 46 | "funding": { 47 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 48 | } 49 | }, 50 | "node_modules/balanced-match": { 51 | "version": "1.0.2", 52 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 53 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" 54 | }, 55 | "node_modules/brace-expansion": { 56 | "version": "1.1.11", 57 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 58 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 59 | "dependencies": { 60 | "balanced-match": "^1.0.0", 61 | "concat-map": "0.0.1" 62 | } 63 | }, 64 | "node_modules/call-bind": { 65 | "version": "1.0.2", 66 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 67 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 68 | "dev": true, 69 | "dependencies": { 70 | "function-bind": "^1.1.1", 71 | "get-intrinsic": "^1.0.2" 72 | }, 73 | "funding": { 74 | "url": "https://github.com/sponsors/ljharb" 75 | } 76 | }, 77 | "node_modules/camelcase": { 78 | "version": "5.3.1", 79 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", 80 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", 81 | "engines": { 82 | "node": ">=6" 83 | } 84 | }, 85 | "node_modules/cliui": { 86 | "version": "6.0.0", 87 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", 88 | "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", 89 | "dependencies": { 90 | "string-width": "^4.2.0", 91 | "strip-ansi": "^6.0.0", 92 | "wrap-ansi": "^6.2.0" 93 | } 94 | }, 95 | "node_modules/color-convert": { 96 | "version": "2.0.1", 97 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 98 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 99 | "dependencies": { 100 | "color-name": "~1.1.4" 101 | }, 102 | "engines": { 103 | "node": ">=7.0.0" 104 | } 105 | }, 106 | "node_modules/color-name": { 107 | "version": "1.1.4", 108 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 109 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 110 | }, 111 | "node_modules/concat-map": { 112 | "version": "0.0.1", 113 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 114 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" 115 | }, 116 | "node_modules/decamelize": { 117 | "version": "1.2.0", 118 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 119 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 120 | "engines": { 121 | "node": ">=0.10.0" 122 | } 123 | }, 124 | "node_modules/deep-equal": { 125 | "version": "1.1.1", 126 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", 127 | "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", 128 | "dev": true, 129 | "dependencies": { 130 | "is-arguments": "^1.0.4", 131 | "is-date-object": "^1.0.1", 132 | "is-regex": "^1.0.4", 133 | "object-is": "^1.0.1", 134 | "object-keys": "^1.1.1", 135 | "regexp.prototype.flags": "^1.2.0" 136 | }, 137 | "funding": { 138 | "url": "https://github.com/sponsors/ljharb" 139 | } 140 | }, 141 | "node_modules/define-properties": { 142 | "version": "1.1.4", 143 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", 144 | "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", 145 | "dev": true, 146 | "dependencies": { 147 | "has-property-descriptors": "^1.0.0", 148 | "object-keys": "^1.1.1" 149 | }, 150 | "engines": { 151 | "node": ">= 0.4" 152 | }, 153 | "funding": { 154 | "url": "https://github.com/sponsors/ljharb" 155 | } 156 | }, 157 | "node_modules/defined": { 158 | "version": "1.0.0", 159 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", 160 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", 161 | "dev": true 162 | }, 163 | "node_modules/dotignore": { 164 | "version": "0.1.2", 165 | "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", 166 | "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", 167 | "dev": true, 168 | "dependencies": { 169 | "minimatch": "^3.0.4" 170 | }, 171 | "bin": { 172 | "ignored": "bin/ignored" 173 | } 174 | }, 175 | "node_modules/emoji-regex": { 176 | "version": "8.0.0", 177 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 178 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 179 | }, 180 | "node_modules/es-abstract": { 181 | "version": "1.20.4", 182 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", 183 | "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", 184 | "dev": true, 185 | "dependencies": { 186 | "call-bind": "^1.0.2", 187 | "es-to-primitive": "^1.2.1", 188 | "function-bind": "^1.1.1", 189 | "function.prototype.name": "^1.1.5", 190 | "get-intrinsic": "^1.1.3", 191 | "get-symbol-description": "^1.0.0", 192 | "has": "^1.0.3", 193 | "has-property-descriptors": "^1.0.0", 194 | "has-symbols": "^1.0.3", 195 | "internal-slot": "^1.0.3", 196 | "is-callable": "^1.2.7", 197 | "is-negative-zero": "^2.0.2", 198 | "is-regex": "^1.1.4", 199 | "is-shared-array-buffer": "^1.0.2", 200 | "is-string": "^1.0.7", 201 | "is-weakref": "^1.0.2", 202 | "object-inspect": "^1.12.2", 203 | "object-keys": "^1.1.1", 204 | "object.assign": "^4.1.4", 205 | "regexp.prototype.flags": "^1.4.3", 206 | "safe-regex-test": "^1.0.0", 207 | "string.prototype.trimend": "^1.0.5", 208 | "string.prototype.trimstart": "^1.0.5", 209 | "unbox-primitive": "^1.0.2" 210 | }, 211 | "engines": { 212 | "node": ">= 0.4" 213 | }, 214 | "funding": { 215 | "url": "https://github.com/sponsors/ljharb" 216 | } 217 | }, 218 | "node_modules/es-to-primitive": { 219 | "version": "1.2.1", 220 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", 221 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", 222 | "dev": true, 223 | "dependencies": { 224 | "is-callable": "^1.1.4", 225 | "is-date-object": "^1.0.1", 226 | "is-symbol": "^1.0.2" 227 | }, 228 | "engines": { 229 | "node": ">= 0.4" 230 | }, 231 | "funding": { 232 | "url": "https://github.com/sponsors/ljharb" 233 | } 234 | }, 235 | "node_modules/find-up": { 236 | "version": "4.1.0", 237 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", 238 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", 239 | "dependencies": { 240 | "locate-path": "^5.0.0", 241 | "path-exists": "^4.0.0" 242 | }, 243 | "engines": { 244 | "node": ">=8" 245 | } 246 | }, 247 | "node_modules/for-each": { 248 | "version": "0.3.3", 249 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", 250 | "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", 251 | "dev": true, 252 | "dependencies": { 253 | "is-callable": "^1.1.3" 254 | } 255 | }, 256 | "node_modules/fs.realpath": { 257 | "version": "1.0.0", 258 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 259 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 260 | }, 261 | "node_modules/function-bind": { 262 | "version": "1.1.1", 263 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 264 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 265 | "dev": true 266 | }, 267 | "node_modules/function.prototype.name": { 268 | "version": "1.1.5", 269 | "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", 270 | "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", 271 | "dev": true, 272 | "dependencies": { 273 | "call-bind": "^1.0.2", 274 | "define-properties": "^1.1.3", 275 | "es-abstract": "^1.19.0", 276 | "functions-have-names": "^1.2.2" 277 | }, 278 | "engines": { 279 | "node": ">= 0.4" 280 | }, 281 | "funding": { 282 | "url": "https://github.com/sponsors/ljharb" 283 | } 284 | }, 285 | "node_modules/functions-have-names": { 286 | "version": "1.2.3", 287 | "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", 288 | "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", 289 | "dev": true, 290 | "funding": { 291 | "url": "https://github.com/sponsors/ljharb" 292 | } 293 | }, 294 | "node_modules/get-caller-file": { 295 | "version": "2.0.5", 296 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 297 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", 298 | "engines": { 299 | "node": "6.* || 8.* || >= 10.*" 300 | } 301 | }, 302 | "node_modules/get-intrinsic": { 303 | "version": "1.1.3", 304 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", 305 | "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", 306 | "dev": true, 307 | "dependencies": { 308 | "function-bind": "^1.1.1", 309 | "has": "^1.0.3", 310 | "has-symbols": "^1.0.3" 311 | }, 312 | "funding": { 313 | "url": "https://github.com/sponsors/ljharb" 314 | } 315 | }, 316 | "node_modules/get-symbol-description": { 317 | "version": "1.0.0", 318 | "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", 319 | "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", 320 | "dev": true, 321 | "dependencies": { 322 | "call-bind": "^1.0.2", 323 | "get-intrinsic": "^1.1.1" 324 | }, 325 | "engines": { 326 | "node": ">= 0.4" 327 | }, 328 | "funding": { 329 | "url": "https://github.com/sponsors/ljharb" 330 | } 331 | }, 332 | "node_modules/glob": { 333 | "version": "7.2.3", 334 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 335 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 336 | "dependencies": { 337 | "fs.realpath": "^1.0.0", 338 | "inflight": "^1.0.4", 339 | "inherits": "2", 340 | "minimatch": "^3.1.1", 341 | "once": "^1.3.0", 342 | "path-is-absolute": "^1.0.0" 343 | }, 344 | "engines": { 345 | "node": "*" 346 | }, 347 | "funding": { 348 | "url": "https://github.com/sponsors/isaacs" 349 | } 350 | }, 351 | "node_modules/has": { 352 | "version": "1.0.3", 353 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 354 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 355 | "dev": true, 356 | "dependencies": { 357 | "function-bind": "^1.1.1" 358 | }, 359 | "engines": { 360 | "node": ">= 0.4.0" 361 | } 362 | }, 363 | "node_modules/has-bigints": { 364 | "version": "1.0.2", 365 | "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", 366 | "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", 367 | "dev": true, 368 | "funding": { 369 | "url": "https://github.com/sponsors/ljharb" 370 | } 371 | }, 372 | "node_modules/has-property-descriptors": { 373 | "version": "1.0.0", 374 | "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", 375 | "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", 376 | "dev": true, 377 | "dependencies": { 378 | "get-intrinsic": "^1.1.1" 379 | }, 380 | "funding": { 381 | "url": "https://github.com/sponsors/ljharb" 382 | } 383 | }, 384 | "node_modules/has-symbols": { 385 | "version": "1.0.3", 386 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", 387 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", 388 | "dev": true, 389 | "engines": { 390 | "node": ">= 0.4" 391 | }, 392 | "funding": { 393 | "url": "https://github.com/sponsors/ljharb" 394 | } 395 | }, 396 | "node_modules/has-tostringtag": { 397 | "version": "1.0.0", 398 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", 399 | "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", 400 | "dev": true, 401 | "dependencies": { 402 | "has-symbols": "^1.0.2" 403 | }, 404 | "engines": { 405 | "node": ">= 0.4" 406 | }, 407 | "funding": { 408 | "url": "https://github.com/sponsors/ljharb" 409 | } 410 | }, 411 | "node_modules/inflight": { 412 | "version": "1.0.6", 413 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 414 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 415 | "dependencies": { 416 | "once": "^1.3.0", 417 | "wrappy": "1" 418 | } 419 | }, 420 | "node_modules/inherits": { 421 | "version": "2.0.4", 422 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 423 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 424 | }, 425 | "node_modules/internal-slot": { 426 | "version": "1.0.3", 427 | "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", 428 | "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", 429 | "dev": true, 430 | "dependencies": { 431 | "get-intrinsic": "^1.1.0", 432 | "has": "^1.0.3", 433 | "side-channel": "^1.0.4" 434 | }, 435 | "engines": { 436 | "node": ">= 0.4" 437 | } 438 | }, 439 | "node_modules/is-arguments": { 440 | "version": "1.1.1", 441 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", 442 | "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", 443 | "dev": true, 444 | "dependencies": { 445 | "call-bind": "^1.0.2", 446 | "has-tostringtag": "^1.0.0" 447 | }, 448 | "engines": { 449 | "node": ">= 0.4" 450 | }, 451 | "funding": { 452 | "url": "https://github.com/sponsors/ljharb" 453 | } 454 | }, 455 | "node_modules/is-bigint": { 456 | "version": "1.0.4", 457 | "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", 458 | "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", 459 | "dev": true, 460 | "dependencies": { 461 | "has-bigints": "^1.0.1" 462 | }, 463 | "funding": { 464 | "url": "https://github.com/sponsors/ljharb" 465 | } 466 | }, 467 | "node_modules/is-boolean-object": { 468 | "version": "1.1.2", 469 | "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", 470 | "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", 471 | "dev": true, 472 | "dependencies": { 473 | "call-bind": "^1.0.2", 474 | "has-tostringtag": "^1.0.0" 475 | }, 476 | "engines": { 477 | "node": ">= 0.4" 478 | }, 479 | "funding": { 480 | "url": "https://github.com/sponsors/ljharb" 481 | } 482 | }, 483 | "node_modules/is-callable": { 484 | "version": "1.2.7", 485 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", 486 | "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", 487 | "dev": true, 488 | "engines": { 489 | "node": ">= 0.4" 490 | }, 491 | "funding": { 492 | "url": "https://github.com/sponsors/ljharb" 493 | } 494 | }, 495 | "node_modules/is-core-module": { 496 | "version": "2.11.0", 497 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", 498 | "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", 499 | "dev": true, 500 | "dependencies": { 501 | "has": "^1.0.3" 502 | }, 503 | "funding": { 504 | "url": "https://github.com/sponsors/ljharb" 505 | } 506 | }, 507 | "node_modules/is-date-object": { 508 | "version": "1.0.5", 509 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", 510 | "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", 511 | "dev": true, 512 | "dependencies": { 513 | "has-tostringtag": "^1.0.0" 514 | }, 515 | "engines": { 516 | "node": ">= 0.4" 517 | }, 518 | "funding": { 519 | "url": "https://github.com/sponsors/ljharb" 520 | } 521 | }, 522 | "node_modules/is-fullwidth-code-point": { 523 | "version": "3.0.0", 524 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 525 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 526 | "engines": { 527 | "node": ">=8" 528 | } 529 | }, 530 | "node_modules/is-negative-zero": { 531 | "version": "2.0.2", 532 | "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", 533 | "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", 534 | "dev": true, 535 | "engines": { 536 | "node": ">= 0.4" 537 | }, 538 | "funding": { 539 | "url": "https://github.com/sponsors/ljharb" 540 | } 541 | }, 542 | "node_modules/is-number-object": { 543 | "version": "1.0.7", 544 | "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", 545 | "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", 546 | "dev": true, 547 | "dependencies": { 548 | "has-tostringtag": "^1.0.0" 549 | }, 550 | "engines": { 551 | "node": ">= 0.4" 552 | }, 553 | "funding": { 554 | "url": "https://github.com/sponsors/ljharb" 555 | } 556 | }, 557 | "node_modules/is-regex": { 558 | "version": "1.1.4", 559 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", 560 | "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", 561 | "dev": true, 562 | "dependencies": { 563 | "call-bind": "^1.0.2", 564 | "has-tostringtag": "^1.0.0" 565 | }, 566 | "engines": { 567 | "node": ">= 0.4" 568 | }, 569 | "funding": { 570 | "url": "https://github.com/sponsors/ljharb" 571 | } 572 | }, 573 | "node_modules/is-shared-array-buffer": { 574 | "version": "1.0.2", 575 | "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", 576 | "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", 577 | "dev": true, 578 | "dependencies": { 579 | "call-bind": "^1.0.2" 580 | }, 581 | "funding": { 582 | "url": "https://github.com/sponsors/ljharb" 583 | } 584 | }, 585 | "node_modules/is-string": { 586 | "version": "1.0.7", 587 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", 588 | "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", 589 | "dev": true, 590 | "dependencies": { 591 | "has-tostringtag": "^1.0.0" 592 | }, 593 | "engines": { 594 | "node": ">= 0.4" 595 | }, 596 | "funding": { 597 | "url": "https://github.com/sponsors/ljharb" 598 | } 599 | }, 600 | "node_modules/is-symbol": { 601 | "version": "1.0.4", 602 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", 603 | "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", 604 | "dev": true, 605 | "dependencies": { 606 | "has-symbols": "^1.0.2" 607 | }, 608 | "engines": { 609 | "node": ">= 0.4" 610 | }, 611 | "funding": { 612 | "url": "https://github.com/sponsors/ljharb" 613 | } 614 | }, 615 | "node_modules/is-weakref": { 616 | "version": "1.0.2", 617 | "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", 618 | "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", 619 | "dev": true, 620 | "dependencies": { 621 | "call-bind": "^1.0.2" 622 | }, 623 | "funding": { 624 | "url": "https://github.com/sponsors/ljharb" 625 | } 626 | }, 627 | "node_modules/locate-path": { 628 | "version": "5.0.0", 629 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", 630 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", 631 | "dependencies": { 632 | "p-locate": "^4.1.0" 633 | }, 634 | "engines": { 635 | "node": ">=8" 636 | } 637 | }, 638 | "node_modules/minimatch": { 639 | "version": "3.1.2", 640 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 641 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 642 | "dependencies": { 643 | "brace-expansion": "^1.1.7" 644 | }, 645 | "engines": { 646 | "node": "*" 647 | } 648 | }, 649 | "node_modules/minimist": { 650 | "version": "1.2.7", 651 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", 652 | "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", 653 | "dev": true, 654 | "funding": { 655 | "url": "https://github.com/sponsors/ljharb" 656 | } 657 | }, 658 | "node_modules/object-inspect": { 659 | "version": "1.12.2", 660 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", 661 | "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", 662 | "dev": true, 663 | "funding": { 664 | "url": "https://github.com/sponsors/ljharb" 665 | } 666 | }, 667 | "node_modules/object-is": { 668 | "version": "1.1.5", 669 | "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", 670 | "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", 671 | "dev": true, 672 | "dependencies": { 673 | "call-bind": "^1.0.2", 674 | "define-properties": "^1.1.3" 675 | }, 676 | "engines": { 677 | "node": ">= 0.4" 678 | }, 679 | "funding": { 680 | "url": "https://github.com/sponsors/ljharb" 681 | } 682 | }, 683 | "node_modules/object-keys": { 684 | "version": "1.1.1", 685 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 686 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 687 | "dev": true, 688 | "engines": { 689 | "node": ">= 0.4" 690 | } 691 | }, 692 | "node_modules/object.assign": { 693 | "version": "4.1.4", 694 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", 695 | "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", 696 | "dev": true, 697 | "dependencies": { 698 | "call-bind": "^1.0.2", 699 | "define-properties": "^1.1.4", 700 | "has-symbols": "^1.0.3", 701 | "object-keys": "^1.1.1" 702 | }, 703 | "engines": { 704 | "node": ">= 0.4" 705 | }, 706 | "funding": { 707 | "url": "https://github.com/sponsors/ljharb" 708 | } 709 | }, 710 | "node_modules/once": { 711 | "version": "1.4.0", 712 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 713 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 714 | "dependencies": { 715 | "wrappy": "1" 716 | } 717 | }, 718 | "node_modules/p-limit": { 719 | "version": "2.2.2", 720 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", 721 | "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", 722 | "dependencies": { 723 | "p-try": "^2.0.0" 724 | }, 725 | "engines": { 726 | "node": ">=6" 727 | }, 728 | "funding": { 729 | "url": "https://github.com/sponsors/sindresorhus" 730 | } 731 | }, 732 | "node_modules/p-locate": { 733 | "version": "4.1.0", 734 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", 735 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", 736 | "dependencies": { 737 | "p-limit": "^2.2.0" 738 | }, 739 | "engines": { 740 | "node": ">=8" 741 | } 742 | }, 743 | "node_modules/p-try": { 744 | "version": "2.2.0", 745 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 746 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 747 | "engines": { 748 | "node": ">=6" 749 | } 750 | }, 751 | "node_modules/path-exists": { 752 | "version": "4.0.0", 753 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 754 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 755 | "engines": { 756 | "node": ">=8" 757 | } 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": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 763 | "engines": { 764 | "node": ">=0.10.0" 765 | } 766 | }, 767 | "node_modules/path-parse": { 768 | "version": "1.0.7", 769 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 770 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 771 | "dev": true 772 | }, 773 | "node_modules/regexp.prototype.flags": { 774 | "version": "1.4.3", 775 | "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", 776 | "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", 777 | "dev": true, 778 | "dependencies": { 779 | "call-bind": "^1.0.2", 780 | "define-properties": "^1.1.3", 781 | "functions-have-names": "^1.2.2" 782 | }, 783 | "engines": { 784 | "node": ">= 0.4" 785 | }, 786 | "funding": { 787 | "url": "https://github.com/sponsors/ljharb" 788 | } 789 | }, 790 | "node_modules/require-directory": { 791 | "version": "2.1.1", 792 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 793 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", 794 | "engines": { 795 | "node": ">=0.10.0" 796 | } 797 | }, 798 | "node_modules/require-main-filename": { 799 | "version": "2.0.0", 800 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", 801 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" 802 | }, 803 | "node_modules/resolve": { 804 | "version": "1.22.1", 805 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", 806 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", 807 | "dev": true, 808 | "dependencies": { 809 | "is-core-module": "^2.9.0", 810 | "path-parse": "^1.0.7", 811 | "supports-preserve-symlinks-flag": "^1.0.0" 812 | }, 813 | "bin": { 814 | "resolve": "bin/resolve" 815 | }, 816 | "funding": { 817 | "url": "https://github.com/sponsors/ljharb" 818 | } 819 | }, 820 | "node_modules/resumer": { 821 | "version": "0.0.0", 822 | "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", 823 | "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", 824 | "dev": true, 825 | "dependencies": { 826 | "through": "~2.3.4" 827 | } 828 | }, 829 | "node_modules/safe-regex-test": { 830 | "version": "1.0.0", 831 | "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", 832 | "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", 833 | "dev": true, 834 | "dependencies": { 835 | "call-bind": "^1.0.2", 836 | "get-intrinsic": "^1.1.3", 837 | "is-regex": "^1.1.4" 838 | }, 839 | "funding": { 840 | "url": "https://github.com/sponsors/ljharb" 841 | } 842 | }, 843 | "node_modules/set-blocking": { 844 | "version": "2.0.0", 845 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 846 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" 847 | }, 848 | "node_modules/side-channel": { 849 | "version": "1.0.4", 850 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", 851 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", 852 | "dev": true, 853 | "dependencies": { 854 | "call-bind": "^1.0.0", 855 | "get-intrinsic": "^1.0.2", 856 | "object-inspect": "^1.9.0" 857 | }, 858 | "funding": { 859 | "url": "https://github.com/sponsors/ljharb" 860 | } 861 | }, 862 | "node_modules/string-width": { 863 | "version": "4.2.0", 864 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", 865 | "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", 866 | "dependencies": { 867 | "emoji-regex": "^8.0.0", 868 | "is-fullwidth-code-point": "^3.0.0", 869 | "strip-ansi": "^6.0.0" 870 | }, 871 | "engines": { 872 | "node": ">=8" 873 | } 874 | }, 875 | "node_modules/string.prototype.trim": { 876 | "version": "1.2.6", 877 | "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.6.tgz", 878 | "integrity": "sha512-8lMR2m+U0VJTPp6JjvJTtGyc4FIGq9CdRt7O9p6T0e6K4vjU+OP+SQJpbe/SBmRcCUIvNUnjsbmY6lnMp8MhsQ==", 879 | "dev": true, 880 | "dependencies": { 881 | "call-bind": "^1.0.2", 882 | "define-properties": "^1.1.4", 883 | "es-abstract": "^1.19.5" 884 | }, 885 | "engines": { 886 | "node": ">= 0.4" 887 | }, 888 | "funding": { 889 | "url": "https://github.com/sponsors/ljharb" 890 | } 891 | }, 892 | "node_modules/string.prototype.trimend": { 893 | "version": "1.0.5", 894 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", 895 | "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", 896 | "dev": true, 897 | "dependencies": { 898 | "call-bind": "^1.0.2", 899 | "define-properties": "^1.1.4", 900 | "es-abstract": "^1.19.5" 901 | }, 902 | "funding": { 903 | "url": "https://github.com/sponsors/ljharb" 904 | } 905 | }, 906 | "node_modules/string.prototype.trimstart": { 907 | "version": "1.0.5", 908 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", 909 | "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", 910 | "dev": true, 911 | "dependencies": { 912 | "call-bind": "^1.0.2", 913 | "define-properties": "^1.1.4", 914 | "es-abstract": "^1.19.5" 915 | }, 916 | "funding": { 917 | "url": "https://github.com/sponsors/ljharb" 918 | } 919 | }, 920 | "node_modules/strip-ansi": { 921 | "version": "6.0.0", 922 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 923 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 924 | "dependencies": { 925 | "ansi-regex": "^5.0.0" 926 | }, 927 | "engines": { 928 | "node": ">=8" 929 | } 930 | }, 931 | "node_modules/supports-preserve-symlinks-flag": { 932 | "version": "1.0.0", 933 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 934 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 935 | "dev": true, 936 | "engines": { 937 | "node": ">= 0.4" 938 | }, 939 | "funding": { 940 | "url": "https://github.com/sponsors/ljharb" 941 | } 942 | }, 943 | "node_modules/tape": { 944 | "version": "4.16.1", 945 | "resolved": "https://registry.npmjs.org/tape/-/tape-4.16.1.tgz", 946 | "integrity": "sha512-U4DWOikL5gBYUrlzx+J0oaRedm2vKLFbtA/+BRAXboGWpXO7bMP8ddxlq3Cse2bvXFQ0jZMOj6kk3546mvCdFg==", 947 | "dev": true, 948 | "dependencies": { 949 | "call-bind": "~1.0.2", 950 | "deep-equal": "~1.1.1", 951 | "defined": "~1.0.0", 952 | "dotignore": "~0.1.2", 953 | "for-each": "~0.3.3", 954 | "glob": "~7.2.3", 955 | "has": "~1.0.3", 956 | "inherits": "~2.0.4", 957 | "is-regex": "~1.1.4", 958 | "minimist": "~1.2.6", 959 | "object-inspect": "~1.12.2", 960 | "resolve": "~1.22.1", 961 | "resumer": "~0.0.0", 962 | "string.prototype.trim": "~1.2.6", 963 | "through": "~2.3.8" 964 | }, 965 | "bin": { 966 | "tape": "bin/tape" 967 | }, 968 | "funding": { 969 | "url": "https://github.com/sponsors/ljharb" 970 | } 971 | }, 972 | "node_modules/through": { 973 | "version": "2.3.8", 974 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 975 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 976 | "dev": true 977 | }, 978 | "node_modules/unbox-primitive": { 979 | "version": "1.0.2", 980 | "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", 981 | "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", 982 | "dev": true, 983 | "dependencies": { 984 | "call-bind": "^1.0.2", 985 | "has-bigints": "^1.0.2", 986 | "has-symbols": "^1.0.3", 987 | "which-boxed-primitive": "^1.0.2" 988 | }, 989 | "funding": { 990 | "url": "https://github.com/sponsors/ljharb" 991 | } 992 | }, 993 | "node_modules/which-boxed-primitive": { 994 | "version": "1.0.2", 995 | "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", 996 | "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", 997 | "dev": true, 998 | "dependencies": { 999 | "is-bigint": "^1.0.1", 1000 | "is-boolean-object": "^1.1.0", 1001 | "is-number-object": "^1.0.4", 1002 | "is-string": "^1.0.5", 1003 | "is-symbol": "^1.0.3" 1004 | }, 1005 | "funding": { 1006 | "url": "https://github.com/sponsors/ljharb" 1007 | } 1008 | }, 1009 | "node_modules/which-module": { 1010 | "version": "2.0.0", 1011 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", 1012 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" 1013 | }, 1014 | "node_modules/wrap-ansi": { 1015 | "version": "6.2.0", 1016 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", 1017 | "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", 1018 | "dependencies": { 1019 | "ansi-styles": "^4.0.0", 1020 | "string-width": "^4.1.0", 1021 | "strip-ansi": "^6.0.0" 1022 | }, 1023 | "engines": { 1024 | "node": ">=8" 1025 | } 1026 | }, 1027 | "node_modules/wrappy": { 1028 | "version": "1.0.2", 1029 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1030 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 1031 | }, 1032 | "node_modules/y18n": { 1033 | "version": "4.0.1", 1034 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", 1035 | "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==" 1036 | }, 1037 | "node_modules/yargs": { 1038 | "version": "15.3.1", 1039 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", 1040 | "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", 1041 | "dependencies": { 1042 | "cliui": "^6.0.0", 1043 | "decamelize": "^1.2.0", 1044 | "find-up": "^4.1.0", 1045 | "get-caller-file": "^2.0.1", 1046 | "require-directory": "^2.1.1", 1047 | "require-main-filename": "^2.0.0", 1048 | "set-blocking": "^2.0.0", 1049 | "string-width": "^4.2.0", 1050 | "which-module": "^2.0.0", 1051 | "y18n": "^4.0.0", 1052 | "yargs-parser": "^18.1.1" 1053 | }, 1054 | "engines": { 1055 | "node": ">=8" 1056 | } 1057 | }, 1058 | "node_modules/yargs-parser": { 1059 | "version": "18.1.3", 1060 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", 1061 | "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", 1062 | "dependencies": { 1063 | "camelcase": "^5.0.0", 1064 | "decamelize": "^1.2.0" 1065 | }, 1066 | "engines": { 1067 | "node": ">=6" 1068 | } 1069 | } 1070 | }, 1071 | "dependencies": { 1072 | "@types/color-name": { 1073 | "version": "1.1.1", 1074 | "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", 1075 | "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" 1076 | }, 1077 | "ansi-regex": { 1078 | "version": "5.0.1", 1079 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 1080 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" 1081 | }, 1082 | "ansi-styles": { 1083 | "version": "4.2.1", 1084 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", 1085 | "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", 1086 | "requires": { 1087 | "@types/color-name": "^1.1.1", 1088 | "color-convert": "^2.0.1" 1089 | } 1090 | }, 1091 | "balanced-match": { 1092 | "version": "1.0.2", 1093 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 1094 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" 1095 | }, 1096 | "brace-expansion": { 1097 | "version": "1.1.11", 1098 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1099 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1100 | "requires": { 1101 | "balanced-match": "^1.0.0", 1102 | "concat-map": "0.0.1" 1103 | } 1104 | }, 1105 | "call-bind": { 1106 | "version": "1.0.2", 1107 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 1108 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 1109 | "dev": true, 1110 | "requires": { 1111 | "function-bind": "^1.1.1", 1112 | "get-intrinsic": "^1.0.2" 1113 | } 1114 | }, 1115 | "camelcase": { 1116 | "version": "5.3.1", 1117 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", 1118 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" 1119 | }, 1120 | "cliui": { 1121 | "version": "6.0.0", 1122 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", 1123 | "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", 1124 | "requires": { 1125 | "string-width": "^4.2.0", 1126 | "strip-ansi": "^6.0.0", 1127 | "wrap-ansi": "^6.2.0" 1128 | } 1129 | }, 1130 | "color-convert": { 1131 | "version": "2.0.1", 1132 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 1133 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 1134 | "requires": { 1135 | "color-name": "~1.1.4" 1136 | } 1137 | }, 1138 | "color-name": { 1139 | "version": "1.1.4", 1140 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 1141 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 1142 | }, 1143 | "concat-map": { 1144 | "version": "0.0.1", 1145 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1146 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" 1147 | }, 1148 | "decamelize": { 1149 | "version": "1.2.0", 1150 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 1151 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" 1152 | }, 1153 | "deep-equal": { 1154 | "version": "1.1.1", 1155 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", 1156 | "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", 1157 | "dev": true, 1158 | "requires": { 1159 | "is-arguments": "^1.0.4", 1160 | "is-date-object": "^1.0.1", 1161 | "is-regex": "^1.0.4", 1162 | "object-is": "^1.0.1", 1163 | "object-keys": "^1.1.1", 1164 | "regexp.prototype.flags": "^1.2.0" 1165 | } 1166 | }, 1167 | "define-properties": { 1168 | "version": "1.1.4", 1169 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", 1170 | "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", 1171 | "dev": true, 1172 | "requires": { 1173 | "has-property-descriptors": "^1.0.0", 1174 | "object-keys": "^1.1.1" 1175 | } 1176 | }, 1177 | "defined": { 1178 | "version": "1.0.0", 1179 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", 1180 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", 1181 | "dev": true 1182 | }, 1183 | "dotignore": { 1184 | "version": "0.1.2", 1185 | "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", 1186 | "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", 1187 | "dev": true, 1188 | "requires": { 1189 | "minimatch": "^3.0.4" 1190 | } 1191 | }, 1192 | "emoji-regex": { 1193 | "version": "8.0.0", 1194 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 1195 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 1196 | }, 1197 | "es-abstract": { 1198 | "version": "1.20.4", 1199 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", 1200 | "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", 1201 | "dev": true, 1202 | "requires": { 1203 | "call-bind": "^1.0.2", 1204 | "es-to-primitive": "^1.2.1", 1205 | "function-bind": "^1.1.1", 1206 | "function.prototype.name": "^1.1.5", 1207 | "get-intrinsic": "^1.1.3", 1208 | "get-symbol-description": "^1.0.0", 1209 | "has": "^1.0.3", 1210 | "has-property-descriptors": "^1.0.0", 1211 | "has-symbols": "^1.0.3", 1212 | "internal-slot": "^1.0.3", 1213 | "is-callable": "^1.2.7", 1214 | "is-negative-zero": "^2.0.2", 1215 | "is-regex": "^1.1.4", 1216 | "is-shared-array-buffer": "^1.0.2", 1217 | "is-string": "^1.0.7", 1218 | "is-weakref": "^1.0.2", 1219 | "object-inspect": "^1.12.2", 1220 | "object-keys": "^1.1.1", 1221 | "object.assign": "^4.1.4", 1222 | "regexp.prototype.flags": "^1.4.3", 1223 | "safe-regex-test": "^1.0.0", 1224 | "string.prototype.trimend": "^1.0.5", 1225 | "string.prototype.trimstart": "^1.0.5", 1226 | "unbox-primitive": "^1.0.2" 1227 | } 1228 | }, 1229 | "es-to-primitive": { 1230 | "version": "1.2.1", 1231 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", 1232 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", 1233 | "dev": true, 1234 | "requires": { 1235 | "is-callable": "^1.1.4", 1236 | "is-date-object": "^1.0.1", 1237 | "is-symbol": "^1.0.2" 1238 | } 1239 | }, 1240 | "find-up": { 1241 | "version": "4.1.0", 1242 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", 1243 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", 1244 | "requires": { 1245 | "locate-path": "^5.0.0", 1246 | "path-exists": "^4.0.0" 1247 | } 1248 | }, 1249 | "for-each": { 1250 | "version": "0.3.3", 1251 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", 1252 | "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", 1253 | "dev": true, 1254 | "requires": { 1255 | "is-callable": "^1.1.3" 1256 | } 1257 | }, 1258 | "fs.realpath": { 1259 | "version": "1.0.0", 1260 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1261 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 1262 | }, 1263 | "function-bind": { 1264 | "version": "1.1.1", 1265 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1266 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1267 | "dev": true 1268 | }, 1269 | "function.prototype.name": { 1270 | "version": "1.1.5", 1271 | "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", 1272 | "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", 1273 | "dev": true, 1274 | "requires": { 1275 | "call-bind": "^1.0.2", 1276 | "define-properties": "^1.1.3", 1277 | "es-abstract": "^1.19.0", 1278 | "functions-have-names": "^1.2.2" 1279 | } 1280 | }, 1281 | "functions-have-names": { 1282 | "version": "1.2.3", 1283 | "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", 1284 | "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", 1285 | "dev": true 1286 | }, 1287 | "get-caller-file": { 1288 | "version": "2.0.5", 1289 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 1290 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" 1291 | }, 1292 | "get-intrinsic": { 1293 | "version": "1.1.3", 1294 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", 1295 | "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", 1296 | "dev": true, 1297 | "requires": { 1298 | "function-bind": "^1.1.1", 1299 | "has": "^1.0.3", 1300 | "has-symbols": "^1.0.3" 1301 | } 1302 | }, 1303 | "get-symbol-description": { 1304 | "version": "1.0.0", 1305 | "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", 1306 | "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", 1307 | "dev": true, 1308 | "requires": { 1309 | "call-bind": "^1.0.2", 1310 | "get-intrinsic": "^1.1.1" 1311 | } 1312 | }, 1313 | "glob": { 1314 | "version": "7.2.3", 1315 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 1316 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 1317 | "requires": { 1318 | "fs.realpath": "^1.0.0", 1319 | "inflight": "^1.0.4", 1320 | "inherits": "2", 1321 | "minimatch": "^3.1.1", 1322 | "once": "^1.3.0", 1323 | "path-is-absolute": "^1.0.0" 1324 | } 1325 | }, 1326 | "has": { 1327 | "version": "1.0.3", 1328 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1329 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1330 | "dev": true, 1331 | "requires": { 1332 | "function-bind": "^1.1.1" 1333 | } 1334 | }, 1335 | "has-bigints": { 1336 | "version": "1.0.2", 1337 | "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", 1338 | "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", 1339 | "dev": true 1340 | }, 1341 | "has-property-descriptors": { 1342 | "version": "1.0.0", 1343 | "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", 1344 | "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", 1345 | "dev": true, 1346 | "requires": { 1347 | "get-intrinsic": "^1.1.1" 1348 | } 1349 | }, 1350 | "has-symbols": { 1351 | "version": "1.0.3", 1352 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", 1353 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", 1354 | "dev": true 1355 | }, 1356 | "has-tostringtag": { 1357 | "version": "1.0.0", 1358 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", 1359 | "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", 1360 | "dev": true, 1361 | "requires": { 1362 | "has-symbols": "^1.0.2" 1363 | } 1364 | }, 1365 | "inflight": { 1366 | "version": "1.0.6", 1367 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1368 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1369 | "requires": { 1370 | "once": "^1.3.0", 1371 | "wrappy": "1" 1372 | } 1373 | }, 1374 | "inherits": { 1375 | "version": "2.0.4", 1376 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1377 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 1378 | }, 1379 | "internal-slot": { 1380 | "version": "1.0.3", 1381 | "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", 1382 | "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", 1383 | "dev": true, 1384 | "requires": { 1385 | "get-intrinsic": "^1.1.0", 1386 | "has": "^1.0.3", 1387 | "side-channel": "^1.0.4" 1388 | } 1389 | }, 1390 | "is-arguments": { 1391 | "version": "1.1.1", 1392 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", 1393 | "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", 1394 | "dev": true, 1395 | "requires": { 1396 | "call-bind": "^1.0.2", 1397 | "has-tostringtag": "^1.0.0" 1398 | } 1399 | }, 1400 | "is-bigint": { 1401 | "version": "1.0.4", 1402 | "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", 1403 | "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", 1404 | "dev": true, 1405 | "requires": { 1406 | "has-bigints": "^1.0.1" 1407 | } 1408 | }, 1409 | "is-boolean-object": { 1410 | "version": "1.1.2", 1411 | "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", 1412 | "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", 1413 | "dev": true, 1414 | "requires": { 1415 | "call-bind": "^1.0.2", 1416 | "has-tostringtag": "^1.0.0" 1417 | } 1418 | }, 1419 | "is-callable": { 1420 | "version": "1.2.7", 1421 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", 1422 | "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", 1423 | "dev": true 1424 | }, 1425 | "is-core-module": { 1426 | "version": "2.11.0", 1427 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", 1428 | "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", 1429 | "dev": true, 1430 | "requires": { 1431 | "has": "^1.0.3" 1432 | } 1433 | }, 1434 | "is-date-object": { 1435 | "version": "1.0.5", 1436 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", 1437 | "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", 1438 | "dev": true, 1439 | "requires": { 1440 | "has-tostringtag": "^1.0.0" 1441 | } 1442 | }, 1443 | "is-fullwidth-code-point": { 1444 | "version": "3.0.0", 1445 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 1446 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" 1447 | }, 1448 | "is-negative-zero": { 1449 | "version": "2.0.2", 1450 | "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", 1451 | "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", 1452 | "dev": true 1453 | }, 1454 | "is-number-object": { 1455 | "version": "1.0.7", 1456 | "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", 1457 | "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", 1458 | "dev": true, 1459 | "requires": { 1460 | "has-tostringtag": "^1.0.0" 1461 | } 1462 | }, 1463 | "is-regex": { 1464 | "version": "1.1.4", 1465 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", 1466 | "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", 1467 | "dev": true, 1468 | "requires": { 1469 | "call-bind": "^1.0.2", 1470 | "has-tostringtag": "^1.0.0" 1471 | } 1472 | }, 1473 | "is-shared-array-buffer": { 1474 | "version": "1.0.2", 1475 | "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", 1476 | "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", 1477 | "dev": true, 1478 | "requires": { 1479 | "call-bind": "^1.0.2" 1480 | } 1481 | }, 1482 | "is-string": { 1483 | "version": "1.0.7", 1484 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", 1485 | "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", 1486 | "dev": true, 1487 | "requires": { 1488 | "has-tostringtag": "^1.0.0" 1489 | } 1490 | }, 1491 | "is-symbol": { 1492 | "version": "1.0.4", 1493 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", 1494 | "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", 1495 | "dev": true, 1496 | "requires": { 1497 | "has-symbols": "^1.0.2" 1498 | } 1499 | }, 1500 | "is-weakref": { 1501 | "version": "1.0.2", 1502 | "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", 1503 | "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", 1504 | "dev": true, 1505 | "requires": { 1506 | "call-bind": "^1.0.2" 1507 | } 1508 | }, 1509 | "locate-path": { 1510 | "version": "5.0.0", 1511 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", 1512 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", 1513 | "requires": { 1514 | "p-locate": "^4.1.0" 1515 | } 1516 | }, 1517 | "minimatch": { 1518 | "version": "3.1.2", 1519 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 1520 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1521 | "requires": { 1522 | "brace-expansion": "^1.1.7" 1523 | } 1524 | }, 1525 | "minimist": { 1526 | "version": "1.2.7", 1527 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", 1528 | "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", 1529 | "dev": true 1530 | }, 1531 | "object-inspect": { 1532 | "version": "1.12.2", 1533 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", 1534 | "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", 1535 | "dev": true 1536 | }, 1537 | "object-is": { 1538 | "version": "1.1.5", 1539 | "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", 1540 | "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", 1541 | "dev": true, 1542 | "requires": { 1543 | "call-bind": "^1.0.2", 1544 | "define-properties": "^1.1.3" 1545 | } 1546 | }, 1547 | "object-keys": { 1548 | "version": "1.1.1", 1549 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 1550 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 1551 | "dev": true 1552 | }, 1553 | "object.assign": { 1554 | "version": "4.1.4", 1555 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", 1556 | "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", 1557 | "dev": true, 1558 | "requires": { 1559 | "call-bind": "^1.0.2", 1560 | "define-properties": "^1.1.4", 1561 | "has-symbols": "^1.0.3", 1562 | "object-keys": "^1.1.1" 1563 | } 1564 | }, 1565 | "once": { 1566 | "version": "1.4.0", 1567 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1568 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1569 | "requires": { 1570 | "wrappy": "1" 1571 | } 1572 | }, 1573 | "p-limit": { 1574 | "version": "2.2.2", 1575 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", 1576 | "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", 1577 | "requires": { 1578 | "p-try": "^2.0.0" 1579 | } 1580 | }, 1581 | "p-locate": { 1582 | "version": "4.1.0", 1583 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", 1584 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", 1585 | "requires": { 1586 | "p-limit": "^2.2.0" 1587 | } 1588 | }, 1589 | "p-try": { 1590 | "version": "2.2.0", 1591 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 1592 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" 1593 | }, 1594 | "path-exists": { 1595 | "version": "4.0.0", 1596 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 1597 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" 1598 | }, 1599 | "path-is-absolute": { 1600 | "version": "1.0.1", 1601 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1602 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 1603 | }, 1604 | "path-parse": { 1605 | "version": "1.0.7", 1606 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 1607 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 1608 | "dev": true 1609 | }, 1610 | "regexp.prototype.flags": { 1611 | "version": "1.4.3", 1612 | "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", 1613 | "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", 1614 | "dev": true, 1615 | "requires": { 1616 | "call-bind": "^1.0.2", 1617 | "define-properties": "^1.1.3", 1618 | "functions-have-names": "^1.2.2" 1619 | } 1620 | }, 1621 | "require-directory": { 1622 | "version": "2.1.1", 1623 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 1624 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" 1625 | }, 1626 | "require-main-filename": { 1627 | "version": "2.0.0", 1628 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", 1629 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" 1630 | }, 1631 | "resolve": { 1632 | "version": "1.22.1", 1633 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", 1634 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", 1635 | "dev": true, 1636 | "requires": { 1637 | "is-core-module": "^2.9.0", 1638 | "path-parse": "^1.0.7", 1639 | "supports-preserve-symlinks-flag": "^1.0.0" 1640 | } 1641 | }, 1642 | "resumer": { 1643 | "version": "0.0.0", 1644 | "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", 1645 | "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", 1646 | "dev": true, 1647 | "requires": { 1648 | "through": "~2.3.4" 1649 | } 1650 | }, 1651 | "safe-regex-test": { 1652 | "version": "1.0.0", 1653 | "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", 1654 | "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", 1655 | "dev": true, 1656 | "requires": { 1657 | "call-bind": "^1.0.2", 1658 | "get-intrinsic": "^1.1.3", 1659 | "is-regex": "^1.1.4" 1660 | } 1661 | }, 1662 | "set-blocking": { 1663 | "version": "2.0.0", 1664 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 1665 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" 1666 | }, 1667 | "side-channel": { 1668 | "version": "1.0.4", 1669 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", 1670 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", 1671 | "dev": true, 1672 | "requires": { 1673 | "call-bind": "^1.0.0", 1674 | "get-intrinsic": "^1.0.2", 1675 | "object-inspect": "^1.9.0" 1676 | } 1677 | }, 1678 | "string-width": { 1679 | "version": "4.2.0", 1680 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", 1681 | "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", 1682 | "requires": { 1683 | "emoji-regex": "^8.0.0", 1684 | "is-fullwidth-code-point": "^3.0.0", 1685 | "strip-ansi": "^6.0.0" 1686 | } 1687 | }, 1688 | "string.prototype.trim": { 1689 | "version": "1.2.6", 1690 | "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.6.tgz", 1691 | "integrity": "sha512-8lMR2m+U0VJTPp6JjvJTtGyc4FIGq9CdRt7O9p6T0e6K4vjU+OP+SQJpbe/SBmRcCUIvNUnjsbmY6lnMp8MhsQ==", 1692 | "dev": true, 1693 | "requires": { 1694 | "call-bind": "^1.0.2", 1695 | "define-properties": "^1.1.4", 1696 | "es-abstract": "^1.19.5" 1697 | } 1698 | }, 1699 | "string.prototype.trimend": { 1700 | "version": "1.0.5", 1701 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", 1702 | "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", 1703 | "dev": true, 1704 | "requires": { 1705 | "call-bind": "^1.0.2", 1706 | "define-properties": "^1.1.4", 1707 | "es-abstract": "^1.19.5" 1708 | } 1709 | }, 1710 | "string.prototype.trimstart": { 1711 | "version": "1.0.5", 1712 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", 1713 | "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", 1714 | "dev": true, 1715 | "requires": { 1716 | "call-bind": "^1.0.2", 1717 | "define-properties": "^1.1.4", 1718 | "es-abstract": "^1.19.5" 1719 | } 1720 | }, 1721 | "strip-ansi": { 1722 | "version": "6.0.0", 1723 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 1724 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 1725 | "requires": { 1726 | "ansi-regex": "^5.0.0" 1727 | } 1728 | }, 1729 | "supports-preserve-symlinks-flag": { 1730 | "version": "1.0.0", 1731 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 1732 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 1733 | "dev": true 1734 | }, 1735 | "tape": { 1736 | "version": "4.16.1", 1737 | "resolved": "https://registry.npmjs.org/tape/-/tape-4.16.1.tgz", 1738 | "integrity": "sha512-U4DWOikL5gBYUrlzx+J0oaRedm2vKLFbtA/+BRAXboGWpXO7bMP8ddxlq3Cse2bvXFQ0jZMOj6kk3546mvCdFg==", 1739 | "dev": true, 1740 | "requires": { 1741 | "call-bind": "~1.0.2", 1742 | "deep-equal": "~1.1.1", 1743 | "defined": "~1.0.0", 1744 | "dotignore": "~0.1.2", 1745 | "for-each": "~0.3.3", 1746 | "glob": "~7.2.3", 1747 | "has": "~1.0.3", 1748 | "inherits": "~2.0.4", 1749 | "is-regex": "~1.1.4", 1750 | "minimist": "~1.2.6", 1751 | "object-inspect": "~1.12.2", 1752 | "resolve": "~1.22.1", 1753 | "resumer": "~0.0.0", 1754 | "string.prototype.trim": "~1.2.6", 1755 | "through": "~2.3.8" 1756 | } 1757 | }, 1758 | "through": { 1759 | "version": "2.3.8", 1760 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 1761 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 1762 | "dev": true 1763 | }, 1764 | "unbox-primitive": { 1765 | "version": "1.0.2", 1766 | "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", 1767 | "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", 1768 | "dev": true, 1769 | "requires": { 1770 | "call-bind": "^1.0.2", 1771 | "has-bigints": "^1.0.2", 1772 | "has-symbols": "^1.0.3", 1773 | "which-boxed-primitive": "^1.0.2" 1774 | } 1775 | }, 1776 | "which-boxed-primitive": { 1777 | "version": "1.0.2", 1778 | "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", 1779 | "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", 1780 | "dev": true, 1781 | "requires": { 1782 | "is-bigint": "^1.0.1", 1783 | "is-boolean-object": "^1.1.0", 1784 | "is-number-object": "^1.0.4", 1785 | "is-string": "^1.0.5", 1786 | "is-symbol": "^1.0.3" 1787 | } 1788 | }, 1789 | "which-module": { 1790 | "version": "2.0.0", 1791 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", 1792 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" 1793 | }, 1794 | "wrap-ansi": { 1795 | "version": "6.2.0", 1796 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", 1797 | "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", 1798 | "requires": { 1799 | "ansi-styles": "^4.0.0", 1800 | "string-width": "^4.1.0", 1801 | "strip-ansi": "^6.0.0" 1802 | } 1803 | }, 1804 | "wrappy": { 1805 | "version": "1.0.2", 1806 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1807 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 1808 | }, 1809 | "y18n": { 1810 | "version": "4.0.1", 1811 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", 1812 | "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==" 1813 | }, 1814 | "yargs": { 1815 | "version": "15.3.1", 1816 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", 1817 | "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", 1818 | "requires": { 1819 | "cliui": "^6.0.0", 1820 | "decamelize": "^1.2.0", 1821 | "find-up": "^4.1.0", 1822 | "get-caller-file": "^2.0.1", 1823 | "require-directory": "^2.1.1", 1824 | "require-main-filename": "^2.0.0", 1825 | "set-blocking": "^2.0.0", 1826 | "string-width": "^4.2.0", 1827 | "which-module": "^2.0.0", 1828 | "y18n": "^4.0.0", 1829 | "yargs-parser": "^18.1.1" 1830 | } 1831 | }, 1832 | "yargs-parser": { 1833 | "version": "18.1.3", 1834 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", 1835 | "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", 1836 | "requires": { 1837 | "camelcase": "^5.0.0", 1838 | "decamelize": "^1.2.0" 1839 | } 1840 | } 1841 | } 1842 | } 1843 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "glob-all", 3 | "version": "3.3.1", 4 | "description": "Provide multiple patterns to node-glob", 5 | "main": "glob-all.js", 6 | "bin": { 7 | "glob-all": "./bin/glob-all" 8 | }, 9 | "scripts": { 10 | "test": "node test/test.js" 11 | }, 12 | "repository": { 13 | "type": "git", 14 | "url": "https://github.com/jpillora/node-glob-all.git" 15 | }, 16 | "dependencies": { 17 | "glob": "^7.2.3", 18 | "yargs": "^15.3.1" 19 | }, 20 | "devDependencies": { 21 | "tape": "^4.16.1" 22 | }, 23 | "keywords": [ 24 | "glob", 25 | "multi", 26 | "all", 27 | "manifest", 28 | "generation", 29 | "file" 30 | ], 31 | "author": "Jaime Pillora", 32 | "license": "MIT" 33 | } 34 | -------------------------------------------------------------------------------- /test/test.js: -------------------------------------------------------------------------------- 1 | var test = require('tape'); 2 | var glob = require('../'); 3 | 4 | process.chdir('example/'); 5 | 6 | test('basic', function (t) { 7 | //set total 8 | t.plan(2); 9 | //1 10 | glob([ 11 | 'files/**', 12 | '!files/x/**', 13 | 'files/x/z.txt' 14 | ], { 15 | mark: true 16 | }, function(err, files) { 17 | t.deepEqual(files, [ 'files/', 18 | 'files/a.txt', 19 | 'files/b.txt', 20 | 'files/c.txt', 21 | 'files/x/z.txt' 22 | ]); 23 | }); 24 | //2 25 | var files = glob.sync([ 26 | 'files/**', 27 | '!files/x/**', 28 | 'files/x/z.txt' 29 | ]); 30 | t.deepEqual(files, [ 31 | 'files', 32 | 'files/a.txt', 33 | 'files/b.txt', 34 | 'files/c.txt', 35 | 'files/x/z.txt' 36 | ]); 37 | }); 38 | --------------------------------------------------------------------------------