Projects
Mega:23.09
nodejs-minimatch
Sign Up
Log In
Username
Password
We truncated the diff of some files because they were too big. If you want to see the full diff for every file,
click here
.
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 2
View file
_service:tar_scm:nodejs-minimatch.spec
Changed
@@ -1,12 +1,13 @@ %{?nodejs_find_provides_and_requires} %global enable_tests 0 Name: nodejs-minimatch -Version: 3.0.4 +Version: 3.1.2 Release: 1 Summary: JavaScript glob matcher License: MIT URL: https://github.com/isaacs/minimatch Source0: https://github.com/isaacs/minimatch/archive/v%{version}/%{name}-%{version}.tar.gz + BuildArch: noarch ExclusiveArch: %{nodejs_arches} noarch BuildRequires: nodejs-packaging @@ -15,7 +16,7 @@ Converts glob expressions to JavaScript "RegExp" objects. %prep -%autosetup -n minimatch-%{version} +%autosetup -n minimatch-%{version} -p1 %build @@ -40,5 +41,8 @@ %{nodejs_sitelib}/minimatch %changelog +* Sat Sep 02 2023 Ge Wang <wang__ge@126.com> - 3.1.2-1 +- Update to 3.1.2 + * Mon Aug 17 2020 wutao <wutao61@huawei.com> - 3.0.4-1 - Package init
View file
_service:tar_scm:nodejs-minimatch-3.1.2.tar.gz/.github
Added
+(directory)
View file
_service:tar_scm:nodejs-minimatch-3.1.2.tar.gz/.github/workflows
Added
+(directory)
View file
_service:tar_scm:nodejs-minimatch-3.1.2.tar.gz/.github/workflows/ci.yml
Added
@@ -0,0 +1,39 @@ +name: CI + +on: push, pull_request + +jobs: + build: + strategy: + matrix: + node-version: 12.x, 14.x, 16.x, 17.x + platform: + - os: ubuntu-latest + shell: bash + - os: macos-latest + shell: bash + - os: windows-latest + shell: bash + - os: windows-latest + shell: powershell + fail-fast: false + + runs-on: ${{ matrix.platform.os }} + defaults: + run: + shell: ${{ matrix.platform.shell }} + + steps: + - name: Checkout Repository + uses: actions/checkout@v1.1.0 + + - name: Use Nodejs ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + + - name: Install dependencies + run: npm install + + - name: Run Tests + run: npm test -- -c -t0
View file
_service:tar_scm:nodejs-minimatch-3.1.2.tar.gz/.github/workflows/commit-if-modified.sh
Added
@@ -0,0 +1,13 @@ +#!/usr/bin/env bash +git config --global user.email "$1" +shift +git config --global user.name "$1" +shift +message="$1" +shift +if $(git status --porcelain "$@" | egrep '^ M' | wc -l) -gt 0 ; then + git add "$@" + git commit -m "$message" + git push || git pull --rebase + git push +fi
View file
_service:tar_scm:nodejs-minimatch-3.1.2.tar.gz/.github/workflows/copyright-year.sh
Added
@@ -0,0 +1,15 @@ +#!/usr/bin/env bash +dir=${1:-$PWD} +dates=($(git log --date=format:%Y --pretty=format:'%ad' --reverse | sort | uniq)) +if "${#dates@}" -eq 1 ; then + datestr="${dates}" +else + datestr="${dates}-${dates${#dates@}-1}" +fi + +stripDate='s/^((.*)Copyright\b(.*?))((?:,\s*)?((0-9{4}\s*-\s*0-9{4})|((0-9{4},\s*)*0-9{4})))(?:,)?\s*(.*)\n$/$1$9\n/g' +addDate='s/^.*Copyright(?:\s*\(c\))? /Copyright \(c\) '$datestr' /g' +for l in $dir/LICENSE*; do + perl -pi -e "$stripDate" $l + perl -pi -e "$addDate" $l +done
View file
_service:tar_scm:nodejs-minimatch-3.1.2.tar.gz/.github/workflows/isaacs-makework.yml
Added
@@ -0,0 +1,37 @@ +name: "various tidying up tasks to silence nagging" + +on: + push: + branches: + - main + workflow_dispatch: + +jobs: + makework: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Use Node.js + uses: actions/setup-node@v2.1.4 + with: + node-version: 16.x + - name: put repo in package.json + run: node .github/workflows/package-json-repo.js + - name: check in package.json if modified + run: | + bash -x .github/workflows/commit-if-modified.sh \ + "package-json-repo-bot@example.com" \ + "package.json Repo Bot" \ + "chore: add repo to package.json" \ + package.json package-lock.json + - name: put all dates in license copyright line + run: bash .github/workflows/copyright-year.sh + - name: check in licenses if modified + run: | + bash .github/workflows/commit-if-modified.sh \ + "license-year-bot@example.com" \ + "License Year Bot" \ + "chore: add copyright year to license" \ + LICENSE*
View file
_service:tar_scm:nodejs-minimatch-3.1.2.tar.gz/.github/workflows/package-json-repo.js
Added
@@ -0,0 +1,16 @@ +#!/usr/bin/env node + +const pf = require.resolve(`${process.cwd()}/package.json`) +const pj = require(pf) + +if (!pj.repository && process.env.GITHUB_REPOSITORY) { + const fs = require('fs') + const server = process.env.GITHUB_SERVER_URL || 'https://github.com' + const repo = `${server}/${process.env.GITHUB_REPOSITORY}` + pj.repository = repo + const json = fs.readFileSync(pf, 'utf8') + const match = json.match(/^\s*\{\r\n+( \t*)"/) + const indent = match1 + const output = JSON.stringify(pj, null, indent || 2) + '\n' + fs.writeFileSync(pf, output) +}
View file
_service:tar_scm:nodejs-minimatch-3.0.4.tar.gz/.travis.yml -> _service:tar_scm:nodejs-minimatch-3.1.2.tar.gz/.travis.yml
Changed
@@ -1,7 +1,9 @@ -sudo: false language: node_js +sudo: false node_js: - - '0.10' - - '0.12' - - '4' - - '5' + - 7 + - 6 + - 4 +cache: + directories: + - $HOME/.npm
View file
_service:tar_scm:nodejs-minimatch-3.0.4.tar.gz/README.md -> _service:tar_scm:nodejs-minimatch-3.1.2.tar.gz/README.md
Changed
@@ -2,7 +2,7 @@ A minimal matching utility. -!Build Status(https://secure.travis-ci.org/isaacs/minimatch.svg)(http://travis-ci.org/isaacs/minimatch) +!Build Status(https://travis-ci.org/isaacs/minimatch.svg?branch=master)(http://travis-ci.org/isaacs/minimatch) This is the matching library used internally by npm. @@ -171,6 +171,27 @@ Returns from negate expressions the same as if they were not negated. (Ie, true on a hit, false on a miss.) +### partial + +Compare a partial path to a pattern. As long as the parts of the path that +are present are not contradicted by the pattern, it will be treated as a +match. This is useful in applications where you're walking through a +folder structure, and don't yet have the full path, but want to ensure that +you do not walk down paths that can never be a match. + +For example, + +```js +minimatch('/a/b', '/a/*/c/d', { partial: true }) // true, might be /a/b/c/d +minimatch('/a/b', '/**/d', { partial: true }) // true, might be /a/b/.../d +minimatch('/x/y/z', '/a/**/z', { partial: true }) // false, because x !== a +``` + +### allowWindowsEscape + +Windows path separator `\` is by default converted to `/`, which +prohibits the usage of `\` as a escape character. This flag skips that +behavior and allows using the escape character. ## Comparisons to other fnmatch/glob implementations
View file
_service:tar_scm:nodejs-minimatch-3.0.4.tar.gz/minimatch.js -> _service:tar_scm:nodejs-minimatch-3.1.2.tar.gz/minimatch.js
Changed
@@ -1,10 +1,10 @@ module.exports = minimatch minimatch.Minimatch = Minimatch -var path = { sep: '/' } -try { - path = require('path') -} catch (er) {} +var path = (function () { try { return require('path') } catch (e) {}}()) || { + sep: '/' +} +minimatch.sep = path.sep var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {} var expand = require('brace-expansion') @@ -56,43 +56,64 @@ } function ext (a, b) { - a = a || {} b = b || {} var t = {} - Object.keys(b).forEach(function (k) { - tk = bk - }) Object.keys(a).forEach(function (k) { tk = ak }) + Object.keys(b).forEach(function (k) { + tk = bk + }) return t } minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return minimatch + if (!def || typeof def !== 'object' || !Object.keys(def).length) { + return minimatch + } var orig = minimatch var m = function minimatch (p, pattern, options) { - return orig.minimatch(p, pattern, ext(def, options)) + return orig(p, pattern, ext(def, options)) } m.Minimatch = function Minimatch (pattern, options) { return new orig.Minimatch(pattern, ext(def, options)) } + m.Minimatch.defaults = function defaults (options) { + return orig.defaults(ext(def, options)).Minimatch + } + + m.filter = function filter (pattern, options) { + return orig.filter(pattern, ext(def, options)) + } + + m.defaults = function defaults (options) { + return orig.defaults(ext(def, options)) + } + + m.makeRe = function makeRe (pattern, options) { + return orig.makeRe(pattern, ext(def, options)) + } + + m.braceExpand = function braceExpand (pattern, options) { + return orig.braceExpand(pattern, ext(def, options)) + } + + m.match = function (list, pattern, options) { + return orig.match(list, pattern, ext(def, options)) + } return m } Minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return Minimatch return minimatch.defaults(def).Minimatch } function minimatch (p, pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } + assertValidPattern(pattern) if (!options) options = {} @@ -101,9 +122,6 @@ return false } - // "" only matches "" - if (pattern.trim() === '') return p === '' - return new Minimatch(pattern, options).match(p) } @@ -112,15 +130,14 @@ return new Minimatch(pattern, options) } - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } + assertValidPattern(pattern) if (!options) options = {} + pattern = pattern.trim() // windows support: need to use /, not \ - if (path.sep !== '/') { + if (!options.allowWindowsEscape && path.sep !== '/') { pattern = pattern.split(path.sep).join('/') } @@ -131,6 +148,7 @@ this.negate = false this.comment = false this.empty = false + this.partial = !!options.partial // make the set of regexps etc. this.make() @@ -140,9 +158,6 @@ Minimatch.prototype.make = make function make () { - // don't do it more than once. - if (this._made) return - var pattern = this.pattern var options = this.options @@ -162,7 +177,7 @@ // step 2: expand braces var set = this.globSet = this.braceExpand() - if (options.debug) this.debug = console.error + if (options.debug) this.debug = function debug() { console.error.apply(console, arguments) } this.debug(this.pattern, set) @@ -242,12 +257,11 @@ pattern = typeof pattern === 'undefined' ? this.pattern : pattern - if (typeof pattern === 'undefined') { - throw new TypeError('undefined pattern') - } + assertValidPattern(pattern) - if (options.nobrace || - !pattern.match(/\{.*\}/)) { + // Thanks to Yeting Li <https://github.com/yetingli> for + // improving this regexp to avoid a ReDOS vulnerability. + if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) { // shortcut. no need to expand. return pattern } @@ -255,6 +269,17 @@ return expand(pattern) } +var MAX_PATTERN_LENGTH = 1024 * 64 +var assertValidPattern = function (pattern) { + if (typeof pattern !== 'string') { + throw new TypeError('invalid pattern') + } + + if (pattern.length > MAX_PATTERN_LENGTH) { + throw new TypeError('pattern is too long') + } +} + // parse a component of the expanded set. // At this point, no pattern may contain "/" in it // so we're going to return a 2d array, where each entry is the full @@ -269,14 +294,17 @@ Minimatch.prototype.parse = parse var SUBPARSE = {} function parse (pattern, isSub) { - if (pattern.length > 1024 * 64) { - throw new TypeError('pattern is too long') - } + assertValidPattern(pattern) var options = this.options // shortcuts - if (!options.noglobstar && pattern === '**') return GLOBSTAR + if (pattern === '**') { + if (!options.noglobstar) + return GLOBSTAR + else + pattern = '*' + }
View file
_service:tar_scm:nodejs-minimatch-3.0.4.tar.gz/package-lock.json -> _service:tar_scm:nodejs-minimatch-3.1.2.tar.gz/package-lock.json
Changed
@@ -1,21 +1,8004 @@ { "name": "minimatch", - "version": "3.0.4", + "version": "3.1.2", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "minimatch", + "version": "3.1.2", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "devDependencies": { + "tap": "^15.1.6" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.0.4.tgz", + "integrity": "sha512-zU3pj3pf//YhaoozRTYKaL20KopXrzuZFc/8Ylc49AuV8grYKH23TTq9JJoR70F8zQbil58KjSchZTWeX+jrIQ==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", + "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.0.tgz", + "integrity": "sha512-x/5Ea+RO5MvF9ize5DeVICJoVrNv0Mi2RnIABrZEKYvPEpldXwauPkgvYA17cKa6WpU3LoYvYbuEMFtSNFsarA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.0.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.0", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helpers": "^7.17.0", + "@babel/parser": "^7.17.0", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.0.tgz", + "integrity": "sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", + "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.16.4", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "dev": true, + "dependencies": { + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", + "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.16.7",
View file
_service:tar_scm:nodejs-minimatch-3.0.4.tar.gz/package.json -> _service:tar_scm:nodejs-minimatch-3.1.2.tar.gz/package.json
Changed
@@ -2,14 +2,17 @@ "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me)", "name": "minimatch", "description": "a glob matcher in javascript", - "version": "3.0.4", + "version": "3.1.2", + "publishConfig": { + "tag": "v3-legacy" + }, "repository": { "type": "git", "url": "git://github.com/isaacs/minimatch.git" }, "main": "minimatch.js", "scripts": { - "test": "tap test/*.js --cov", + "test": "tap", "preversion": "npm test", "postversion": "npm publish", "postpublish": "git push origin --all; git push origin --tags" @@ -21,7 +24,7 @@ "brace-expansion": "^1.1.7" }, "devDependencies": { - "tap": "^10.3.2" + "tap": "^15.1.6" }, "license": "ISC", "files":
View file
_service:tar_scm:nodejs-minimatch-3.0.4.tar.gz/test/basic.js -> _service:tar_scm:nodejs-minimatch-3.1.2.tar.gz/test/basic.js
Changed
@@ -3,14 +3,14 @@ // TODO: Some of these tests do very bad things with backslashes, and will // most likely fail badly on windows. They should probably be skipped. -var tap = require('tap') -var globalBefore = Object.keys(global) -var mm = require('../') -var patterns = require('./patterns.js') -var regexps = patterns.regexps -var re = 0 - -tap.test('basic tests', function (t) { +const t = require('tap') +const globalBefore = Object.keys(global) +const mm = require('../') +const patterns = require('./patterns.js') +const regexps = patterns.regexps +let re = 0 + +t.test('basic tests', function (t) { var start = Date.now() // pattern, matches, MM opts, files, TAP opts @@ -27,10 +27,16 @@ // options.debug = true var m = new mm.Minimatch(pattern, options) var r = m.makeRe() + var r2 = mm.makeRe(pattern, options) + t.equal(String(r), String(r2), 'same results from both makeRe fns') var expectRe = regexpsre++ - expectRe = '/' + expectRe.slice(1, -1).replace(new RegExp('(^\\\\)/', 'g'), '$1\\\/') + '/' - tapOpts.re = String(r) || JSON.stringify(r) - tapOpts.re = '/' + tapOpts.re.slice(1, -1).replace(new RegExp('(^\\\\)/', 'g'), '$1\\\/') + '/' + if (expectRe !== false) { + expectRe = '/' + expectRe.slice(1, -1).replace(new RegExp('(^\\\\)/', 'g'), '$1\\\/') + '/' + tapOpts.re = String(r) || JSON.stringify(r) + tapOpts.re = '/' + tapOpts.re.slice(1, -1).replace(new RegExp('(^\\\\)/', 'g'), '$1\\\/') + '/' + } else { + tapOpts.re = r + } tapOpts.files = JSON.stringify(f) tapOpts.pattern = pattern tapOpts.set = m.set @@ -39,7 +45,7 @@ var actual = mm.match(f, pattern, options) actual.sort(alpha) - t.equivalent( + t.same( actual, expect, JSON.stringify(pattern) + ' ' + JSON.stringify(expect), tapOpts @@ -52,11 +58,115 @@ t.end() }) -tap.test('global leak test', function (t) { +t.test('global leak test', function (t) { var globalAfter = Object.keys(global).filter(function (k) { return (k !== '__coverage__' && k !== '__core-js_shared__') }) - t.equivalent(globalAfter, globalBefore, 'no new globals, please') + t.same(globalAfter, globalBefore, 'no new globals, please') + t.end() +}) + +t.test('invalid patterns', t => { + const toolong = 'x'.repeat(64 * 1024) + 'y' + const expectTooLong = { message: 'pattern is too long' } + t.throws(() => mm.braceExpand(toolong), expectTooLong) + t.throws(() => new mm.Minimatch(toolong), expectTooLong) + t.throws(() => mm('xy', toolong), expectTooLong) + t.throws(() => mm.match('xy', toolong), expectTooLong) + + const invalid = { message: 'invalid pattern' } + const invalids = + null, + 1234, + NaN, + Infinity, + undefined, + {a: 1}, + true, + false, + + for (const i of invalids) { + t.throws(() => mm.braceExpand(i), invalid) + t.throws(() => new mm.Minimatch(i), invalid) + t.throws(() => mm('xy', i), invalid) + t.throws(() => mm.match('xy', i), invalid) + } + + t.end() +}) + +t.test('ctor is generator', t => { + const m = mm.Minimatch('asdf') + t.type(m, mm.Minimatch) + t.equal(m.pattern, 'asdf') + t.end() +}) + +t.test('nocomment matches nothing', t => { + t.equal(mm('#comment', '#comment', { nocomment: false }), false) + t.equal(mm('#comment', '#comment', { nocomment: true }), true) + t.end() +}) + +t.test('filter function', t => { + t.same('a', 'b', 'c'.filter(mm.filter('@(a|b)')), 'a', 'b') + t.end() +}) + +t.test('whitespace handling', t => { + t.equal(mm('x/y', 'y'), false) + t.equal(mm('x/y', 'y', { matchBase: true }), true) + t.equal(mm('x/ ', ' '), false) + t.equal(mm('x/ ', ' ', { matchBase: true }), false) + t.equal(mm('x/', ''), false) + t.equal(mm('x/', '', { matchBase: true }), false) + t.equal(mm('', ''), true) + t.equal(mm(' ', ''), false) + t.equal(mm('', ' '), true) + t.equal(mm(' ', ' '), false) + t.end() +}) + +t.test('mm debug', t => { + const { error } = console + t.teardown(() => console.error = error) + const errs = + console.error = (...msg) => errs.push(msg) + t.equal(mm('a/b/c', 'a/**/@(b|c)/**', { debug: true }), true) + t.not(errs.length, 0) + t.end() +}) + +t.test('makeRe repeated', t => { + const mmRE = mm.makeRe('a/*/*') + const m = new mm.Minimatch('a/*/*') + const mRE = m.makeRe() + const mRE2 = m.makeRe() + t.equal(mRE, mRE2) + t.same(mmRE, mRE) + t.end() +}) + +t.test('in noglobstar mode, ** is equivalent to *', t => { + const re2s = mm.makeRe('**', { noglobstar: true }) + const re1s = mm.makeRe('*', { noglobstar: true }) + t.same(re2s, re1s) + t.end() +}) + +t.test('flipNegate', t => { + t.equal(mm('x', '!x', { flipNegate: true }), true) + t.equal(mm('x', '!!x', { flipNegate: true }), true) + t.equal(mm('x', 'x', { flipNegate: true }), true) + + t.equal(mm('x', '!y', { flipNegate: true }), false) + t.equal(mm('x', '!!y', { flipNegate: true }), false) + t.equal(mm('x', 'y', { flipNegate: true }), false) + t.end() +}) + +t.test('pattern should be trimmed', t => { + t.equal(mm('x', ' x '), true) t.end() })
View file
_service:tar_scm:nodejs-minimatch-3.0.4.tar.gz/test/brace-expand.js -> _service:tar_scm:nodejs-minimatch-3.1.2.tar.gz/test/brace-expand.js
Changed
@@ -66,7 +66,7 @@ patterns.forEach(function (tc) { var p = tc0, expect = tc1 - t.equivalent(minimatch.braceExpand(p), expect, p) + t.same(minimatch.braceExpand(p), expect, p) }) t.end() })
View file
_service:tar_scm:nodejs-minimatch-3.0.4.tar.gz/test/defaults.js -> _service:tar_scm:nodejs-minimatch-3.1.2.tar.gz/test/defaults.js
Changed
@@ -36,7 +36,7 @@ var actual = mm.match(f, pattern, options) actual.sort(alpha) - t.equivalent( + t.same( actual, expect, JSON.stringify(pattern) + ' ' + JSON.stringify(expect), @@ -52,7 +52,38 @@ var globalAfter = Object.keys(global).filter(function (k) { return (k !== '__coverage__') }) - t.equivalent(globalAfter, globalBefore, 'no new globals, please') + t.same(globalAfter, globalBefore, 'no new globals, please') + t.end() +}) + +tap.test('empty defaults obj returns original ctor', t => { + for (const empty of {}, undefined, null, false, 1234, 'xyz') { + const defmm = mm.defaults({}) + t.equal(defmm, mm) + const Class = mm.Minimatch.defaults({}) + t.equal(Class, mm.Minimatch) + } + t.end() +}) + +tap.test('call defaults mm function', t => { + const defmm = mm.defaults({ nocomment: true }) + t.equal(mm('# nocomment', '# nocomment'), false) + t.equal(defmm('# nocomment', '# nocomment'), true) + t.equal(defmm('# nocomment', '# nocomment', { nocomment: false }), false) + const undef = defmm.defaults({ nocomment: false }) + t.equal(undef('# nocomment', '# nocomment'), false) + const unm = new undef.Minimatch('asdf') + t.same(unm.options, { nocomment: false }) + const UndefClass = defmm.Minimatch.defaults({ nocomment: false }) + const unmm = new UndefClass('asfd') + t.same(unmm.options, { nocomment: false }) + + const f = defmm.filter('#nc') + t.same('x','#nc', 'y'.filter(f), '#nc') + t.same(defmm.match('x','#nc', 'y', '#nc'), '#nc') + t.same(defmm.braceExpand('# {a,b}'), '# a', '# b') + t.same(defmm.makeRe('# {a,b}'), /^(?:\#\ a|\#\ b)$/) t.end() })
View file
_service:tar_scm:nodejs-minimatch-3.1.2.tar.gz/test/no-path-module.js
Added
@@ -0,0 +1,3 @@ +const t = require('tap') +const mm = t.mock('../', { path: null }) +t.equal(mm.sep, '/')
View file
_service:tar_scm:nodejs-minimatch-3.1.2.tar.gz/test/partial.js
Added
@@ -0,0 +1,7 @@ +const t = require('tap') +const mm = require('../') +t.equal(mm('/a/b', '/*/b/x/y/z', { partial: true }), true) +t.equal(mm('/a/b/c', '/*/b/x/y/z', { partial: true }), false) +t.equal(mm('/', 'x', { partial: true }), true) +const m = new mm.Minimatch('/*/b/x/y/z') +t.equal(m.match('/a/b', true), true)
View file
_service:tar_scm:nodejs-minimatch-3.0.4.tar.gz/test/patterns.js -> _service:tar_scm:nodejs-minimatch-3.1.2.tar.gz/test/patterns.js
Changed
@@ -259,7 +259,10 @@ 'https://github.com/isaacs/minimatch/issues/59', 'z-a', , 'a/2015-03-10T00:23:08.647Z/z', , - 'a-0a-\u0100', + 'a-0a-\u0100', , + + 'comments match nothing', + '# ignore this', , module.exports.regexps = @@ -358,7 +361,8 @@ '/^(?:(?:(?!(?:\\/|^)\\.).)*?\\/\\.x\\/(?:(?!(?:\\/|^)\\.).)*?)$/', '/^(?:\\z\\-a\\)$/', '/^(?:a\\/\\2015\\-03\\-10T00:23:08\\.647Z\\\\/z)$/', - '/^(?:(?=.)\\a-0\\a-Ā)$/' + '/^(?:(?=.)\\a-0\\a-Ā)$/', + false, Object.defineProperty(module.exports, 'files', {
View file
_service:tar_scm:nodejs-minimatch-3.1.2.tar.gz/test/win-path-sep.js
Added
@@ -0,0 +1,17 @@ +const t = require('tap') +t.test('path separator \\', t => { + const mm = t.mock('../', { path: { sep: '\\' }}) + + t.equal(mm('x\\y\\z', 'x/y/*/z'), false) + t.equal(mm('x\\y\\w\\z', 'x/y/*/z'), true) + t.end() +}) + +// just in case Node every adds Mac OS 9 support 😅 +t.test('path separator :', t => { + const mm = t.mock('../', { path: { sep: ':' }}) + + t.equal(mm('x:y:z', 'x/y/*/z'), false) + t.equal(mm('x:y:w:z', 'x/y/*/z'), true) + t.end() +})
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2