Bump minimatch from 3.1.2 to 3.1.5 (#705)

* Bump minimatch from 3.1.2 to 3.1.5

Bumps [minimatch](https://github.com/isaacs/minimatch) from 3.1.2 to 3.1.5.
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v3.1.2...v3.1.5)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 3.1.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* check failure fix

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: gowridurgad <gowridurgad@gmail.com>
pull/316/merge^2 v5
dependabot[bot] 3 weeks ago committed by GitHub
parent 02574b18e2
commit c2fa09f4bd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -1,9 +1,9 @@
--- ---
name: minimatch name: minimatch
version: 3.1.2 version: 3.1.5
type: npm type: npm
summary: a glob matcher in javascript summary: a glob matcher in javascript
homepage: homepage:
license: isc license: isc
licenses: licenses:
- sources: LICENSE - sources: LICENSE

@ -20510,6 +20510,8 @@ function Minimatch (pattern, options) {
} }
this.options = options this.options = options
this.maxGlobstarRecursion = options.maxGlobstarRecursion !== undefined
? options.maxGlobstarRecursion : 200
this.set = [] this.set = []
this.pattern = pattern this.pattern = pattern
this.regexp = null this.regexp = null
@ -20758,6 +20760,9 @@ function parse (pattern, isSub) {
continue continue
} }
// coalesce consecutive non-globstar * characters
if (c === '*' && stateChar === '*') continue
// if we already have a stateChar, then it means // if we already have a stateChar, then it means
// that there was something like ** or +? in there. // that there was something like ** or +? in there.
// Handle the stateChar, then proceed with this one. // Handle the stateChar, then proceed with this one.
@ -21152,109 +21157,173 @@ Minimatch.prototype.match = function match (f, partial) {
// out of pattern, then that's fine, as long as all // out of pattern, then that's fine, as long as all
// the parts match. // the parts match.
Minimatch.prototype.matchOne = function (file, pattern, partial) { Minimatch.prototype.matchOne = function (file, pattern, partial) {
var options = this.options if (pattern.indexOf(GLOBSTAR) !== -1) {
return this._matchGlobstar(file, pattern, partial, 0, 0)
}
return this._matchOne(file, pattern, partial, 0, 0)
}
this.debug('matchOne', Minimatch.prototype._matchGlobstar = function (file, pattern, partial, fileIndex, patternIndex) {
{ 'this': this, file: file, pattern: pattern }) var i
this.debug('matchOne', file.length, pattern.length) // find first globstar from patternIndex
var firstgs = -1
for (i = patternIndex; i < pattern.length; i++) {
if (pattern[i] === GLOBSTAR) { firstgs = i; break }
}
for (var fi = 0, // find last globstar
pi = 0, var lastgs = -1
fl = file.length, for (i = pattern.length - 1; i >= 0; i--) {
pl = pattern.length if (pattern[i] === GLOBSTAR) { lastgs = i; break }
; (fi < fl) && (pi < pl) }
; fi++, pi++) {
this.debug('matchOne loop')
var p = pattern[pi]
var f = file[fi]
this.debug(pattern, p, f) var head = pattern.slice(patternIndex, firstgs)
var body = partial ? pattern.slice(firstgs + 1) : pattern.slice(firstgs + 1, lastgs)
var tail = partial ? [] : pattern.slice(lastgs + 1)
// should be impossible. // check the head
// some invalid regexp stuff in the set. if (head.length) {
/* istanbul ignore if */ var fileHead = file.slice(fileIndex, fileIndex + head.length)
if (p === false) return false if (!this._matchOne(fileHead, head, partial, 0, 0)) {
return false
if (p === GLOBSTAR) { }
this.debug('GLOBSTAR', [pattern, p, f]) fileIndex += head.length
}
// "**"
// a/**/b/**/c would match the following: // check the tail
// a/b/x/y/z/c var fileTailMatch = 0
// a/x/y/z/b/c if (tail.length) {
// a/b/x/b/x/c if (tail.length + fileIndex > file.length) return false
// a/b/c
// To do this, take the rest of the pattern after var tailStart = file.length - tail.length
// the **, and see if it would match the file remainder. if (this._matchOne(file, tail, partial, tailStart, 0)) {
// If so, return success. fileTailMatch = tail.length
// If not, the ** "swallows" a segment, and try again. } else {
// This is recursively awful. // affordance for stuff like a/**/* matching a/b/
// if (file[file.length - 1] !== '' ||
// a/**/b/**/c matching a/b/x/y/z/c fileIndex + tail.length === file.length) {
// - a matches a return false
// - doublestar }
// - matchOne(b/x/y/z/c, b/**/c) tailStart--
// - b matches b if (!this._matchOne(file, tail, partial, tailStart, 0)) {
// - doublestar return false
// - matchOne(x/y/z/c, c) -> no
// - matchOne(y/z/c, c) -> no
// - matchOne(z/c, c) -> no
// - matchOne(c, c) yes, hit
var fr = fi
var pr = pi + 1
if (pr === pl) {
this.debug('** at the end')
// a ** at the end will just swallow the rest.
// We have found a match.
// however, it will not swallow /.x, unless
// options.dot is set.
// . and .. are *never* matched by **, for explosively
// exponential reasons.
for (; fi < fl; fi++) {
if (file[fi] === '.' || file[fi] === '..' ||
(!options.dot && file[fi].charAt(0) === '.')) return false
}
return true
} }
fileTailMatch = tail.length + 1
}
}
// ok, let's see if we can swallow whatever we can. // if body is empty (single ** between head and tail)
while (fr < fl) { if (!body.length) {
var swallowee = file[fr] var sawSome = !!fileTailMatch
for (i = fileIndex; i < file.length - fileTailMatch; i++) {
var f = String(file[i])
sawSome = true
if (f === '.' || f === '..' ||
(!this.options.dot && f.charAt(0) === '.')) {
return false
}
}
return partial || sawSome
}
this.debug('\nglobstar while', file, fr, pattern, pr, swallowee) // split body into segments at each GLOBSTAR
var bodySegments = [[[], 0]]
var currentBody = bodySegments[0]
var nonGsParts = 0
var nonGsPartsSums = [0]
for (var bi = 0; bi < body.length; bi++) {
var b = body[bi]
if (b === GLOBSTAR) {
nonGsPartsSums.push(nonGsParts)
currentBody = [[], 0]
bodySegments.push(currentBody)
} else {
currentBody[0].push(b)
nonGsParts++
}
}
// XXX remove this slice. Just pass the start index. var idx = bodySegments.length - 1
if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { var fileLength = file.length - fileTailMatch
this.debug('globstar found match!', fr, fl, swallowee) for (var si = 0; si < bodySegments.length; si++) {
// found a match. bodySegments[si][1] = fileLength -
return true (nonGsPartsSums[idx--] + bodySegments[si][0].length)
} else { }
// can't swallow "." or ".." ever.
// can only swallow ".foo" when explicitly asked.
if (swallowee === '.' || swallowee === '..' ||
(!options.dot && swallowee.charAt(0) === '.')) {
this.debug('dot detected!', file, fr, pattern, pr)
break
}
// ** swallows a segment, and continue. return !!this._matchGlobStarBodySections(
this.debug('globstar swallow a segment, and continue') file, bodySegments, fileIndex, 0, partial, 0, !!fileTailMatch
fr++ )
} }
// return false for "nope, not matching"
// return null for "not matching, cannot keep trying"
Minimatch.prototype._matchGlobStarBodySections = function (
file, bodySegments, fileIndex, bodyIndex, partial, globStarDepth, sawTail
) {
var bs = bodySegments[bodyIndex]
if (!bs) {
// just make sure there are no bad dots
for (var i = fileIndex; i < file.length; i++) {
sawTail = true
var f = file[i]
if (f === '.' || f === '..' ||
(!this.options.dot && f.charAt(0) === '.')) {
return false
} }
}
return sawTail
}
// no match was found. var body = bs[0]
// However, in partial mode, we can't say this is necessarily over. var after = bs[1]
// If there's more *pattern* left, then while (fileIndex <= after) {
/* istanbul ignore if */ var m = this._matchOne(
if (partial) { file.slice(0, fileIndex + body.length),
// ran out of file body,
this.debug('\n>>> no match, partial?', file, fr, pattern, pr) partial,
if (fr === fl) return true fileIndex,
0
)
// if limit exceeded, no match. intentional false negative,
// acceptable break in correctness for security.
if (m && globStarDepth < this.maxGlobstarRecursion) {
var sub = this._matchGlobStarBodySections(
file, bodySegments,
fileIndex + body.length, bodyIndex + 1,
partial, globStarDepth + 1, sawTail
)
if (sub !== false) {
return sub
} }
}
var f = file[fileIndex]
if (f === '.' || f === '..' ||
(!this.options.dot && f.charAt(0) === '.')) {
return false return false
} }
fileIndex++
}
return partial || null
}
Minimatch.prototype._matchOne = function (file, pattern, partial, fileIndex, patternIndex) {
var fi, pi, fl, pl
for (
fi = fileIndex, pi = patternIndex, fl = file.length, pl = pattern.length
; (fi < fl) && (pi < pl)
; fi++, pi++
) {
this.debug('matchOne loop')
var p = pattern[pi]
var f = file[fi]
this.debug(pattern, p, f)
// should be impossible.
// some invalid regexp stuff in the set.
/* istanbul ignore if */
if (p === false || p === GLOBSTAR) return false
// something other than ** // something other than **
// non-magic patterns just have to match exactly // non-magic patterns just have to match exactly
@ -21271,17 +21340,6 @@ Minimatch.prototype.matchOne = function (file, pattern, partial) {
if (!hit) return false if (!hit) return false
} }
// Note: ending in / means that we'll get a final ""
// at the end of the pattern. This can only match a
// corresponding "" at the end of the file.
// If the file ends in /, then it can only match a
// a pattern that ends in /, unless the pattern just
// doesn't have any more for it. But, a/b/ should *not*
// match "a/b/*", even though "" matches against the
// [^/]*? pattern, except in partial mode, where it might
// simply not be reached yet.
// However, a/b/ should still satisfy a/*
// now either we fell off the end of the pattern, or we're done. // now either we fell off the end of the pattern, or we're done.
if (fi === fl && pi === pl) { if (fi === fl && pi === pl) {
// ran out of pattern and filename at the same time. // ran out of pattern and filename at the same time.

256
dist/setup/index.js vendored

@ -26827,6 +26827,8 @@ function Minimatch (pattern, options) {
} }
this.options = options this.options = options
this.maxGlobstarRecursion = options.maxGlobstarRecursion !== undefined
? options.maxGlobstarRecursion : 200
this.set = [] this.set = []
this.pattern = pattern this.pattern = pattern
this.regexp = null this.regexp = null
@ -27075,6 +27077,9 @@ function parse (pattern, isSub) {
continue continue
} }
// coalesce consecutive non-globstar * characters
if (c === '*' && stateChar === '*') continue
// if we already have a stateChar, then it means // if we already have a stateChar, then it means
// that there was something like ** or +? in there. // that there was something like ** or +? in there.
// Handle the stateChar, then proceed with this one. // Handle the stateChar, then proceed with this one.
@ -27469,109 +27474,173 @@ Minimatch.prototype.match = function match (f, partial) {
// out of pattern, then that's fine, as long as all // out of pattern, then that's fine, as long as all
// the parts match. // the parts match.
Minimatch.prototype.matchOne = function (file, pattern, partial) { Minimatch.prototype.matchOne = function (file, pattern, partial) {
var options = this.options if (pattern.indexOf(GLOBSTAR) !== -1) {
return this._matchGlobstar(file, pattern, partial, 0, 0)
}
return this._matchOne(file, pattern, partial, 0, 0)
}
this.debug('matchOne', Minimatch.prototype._matchGlobstar = function (file, pattern, partial, fileIndex, patternIndex) {
{ 'this': this, file: file, pattern: pattern }) var i
this.debug('matchOne', file.length, pattern.length) // find first globstar from patternIndex
var firstgs = -1
for (i = patternIndex; i < pattern.length; i++) {
if (pattern[i] === GLOBSTAR) { firstgs = i; break }
}
for (var fi = 0, // find last globstar
pi = 0, var lastgs = -1
fl = file.length, for (i = pattern.length - 1; i >= 0; i--) {
pl = pattern.length if (pattern[i] === GLOBSTAR) { lastgs = i; break }
; (fi < fl) && (pi < pl) }
; fi++, pi++) {
this.debug('matchOne loop')
var p = pattern[pi]
var f = file[fi]
this.debug(pattern, p, f) var head = pattern.slice(patternIndex, firstgs)
var body = partial ? pattern.slice(firstgs + 1) : pattern.slice(firstgs + 1, lastgs)
var tail = partial ? [] : pattern.slice(lastgs + 1)
// should be impossible. // check the head
// some invalid regexp stuff in the set. if (head.length) {
/* istanbul ignore if */ var fileHead = file.slice(fileIndex, fileIndex + head.length)
if (p === false) return false if (!this._matchOne(fileHead, head, partial, 0, 0)) {
return false
if (p === GLOBSTAR) { }
this.debug('GLOBSTAR', [pattern, p, f]) fileIndex += head.length
}
// "**"
// a/**/b/**/c would match the following: // check the tail
// a/b/x/y/z/c var fileTailMatch = 0
// a/x/y/z/b/c if (tail.length) {
// a/b/x/b/x/c if (tail.length + fileIndex > file.length) return false
// a/b/c
// To do this, take the rest of the pattern after var tailStart = file.length - tail.length
// the **, and see if it would match the file remainder. if (this._matchOne(file, tail, partial, tailStart, 0)) {
// If so, return success. fileTailMatch = tail.length
// If not, the ** "swallows" a segment, and try again. } else {
// This is recursively awful. // affordance for stuff like a/**/* matching a/b/
// if (file[file.length - 1] !== '' ||
// a/**/b/**/c matching a/b/x/y/z/c fileIndex + tail.length === file.length) {
// - a matches a return false
// - doublestar }
// - matchOne(b/x/y/z/c, b/**/c) tailStart--
// - b matches b if (!this._matchOne(file, tail, partial, tailStart, 0)) {
// - doublestar return false
// - matchOne(x/y/z/c, c) -> no }
// - matchOne(y/z/c, c) -> no fileTailMatch = tail.length + 1
// - matchOne(z/c, c) -> no }
// - matchOne(c, c) yes, hit }
var fr = fi
var pr = pi + 1 // if body is empty (single ** between head and tail)
if (pr === pl) { if (!body.length) {
this.debug('** at the end') var sawSome = !!fileTailMatch
// a ** at the end will just swallow the rest. for (i = fileIndex; i < file.length - fileTailMatch; i++) {
// We have found a match. var f = String(file[i])
// however, it will not swallow /.x, unless sawSome = true
// options.dot is set. if (f === '.' || f === '..' ||
// . and .. are *never* matched by **, for explosively (!this.options.dot && f.charAt(0) === '.')) {
// exponential reasons. return false
for (; fi < fl; fi++) {
if (file[fi] === '.' || file[fi] === '..' ||
(!options.dot && file[fi].charAt(0) === '.')) return false
}
return true
} }
}
return partial || sawSome
}
// ok, let's see if we can swallow whatever we can. // split body into segments at each GLOBSTAR
while (fr < fl) { var bodySegments = [[[], 0]]
var swallowee = file[fr] var currentBody = bodySegments[0]
var nonGsParts = 0
var nonGsPartsSums = [0]
for (var bi = 0; bi < body.length; bi++) {
var b = body[bi]
if (b === GLOBSTAR) {
nonGsPartsSums.push(nonGsParts)
currentBody = [[], 0]
bodySegments.push(currentBody)
} else {
currentBody[0].push(b)
nonGsParts++
}
}
this.debug('\nglobstar while', file, fr, pattern, pr, swallowee) var idx = bodySegments.length - 1
var fileLength = file.length - fileTailMatch
for (var si = 0; si < bodySegments.length; si++) {
bodySegments[si][1] = fileLength -
(nonGsPartsSums[idx--] + bodySegments[si][0].length)
}
// XXX remove this slice. Just pass the start index. return !!this._matchGlobStarBodySections(
if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { file, bodySegments, fileIndex, 0, partial, 0, !!fileTailMatch
this.debug('globstar found match!', fr, fl, swallowee) )
// found a match. }
return true
} else {
// can't swallow "." or ".." ever.
// can only swallow ".foo" when explicitly asked.
if (swallowee === '.' || swallowee === '..' ||
(!options.dot && swallowee.charAt(0) === '.')) {
this.debug('dot detected!', file, fr, pattern, pr)
break
}
// ** swallows a segment, and continue. // return false for "nope, not matching"
this.debug('globstar swallow a segment, and continue') // return null for "not matching, cannot keep trying"
fr++ Minimatch.prototype._matchGlobStarBodySections = function (
} file, bodySegments, fileIndex, bodyIndex, partial, globStarDepth, sawTail
) {
var bs = bodySegments[bodyIndex]
if (!bs) {
// just make sure there are no bad dots
for (var i = fileIndex; i < file.length; i++) {
sawTail = true
var f = file[i]
if (f === '.' || f === '..' ||
(!this.options.dot && f.charAt(0) === '.')) {
return false
} }
}
return sawTail
}
// no match was found. var body = bs[0]
// However, in partial mode, we can't say this is necessarily over. var after = bs[1]
// If there's more *pattern* left, then while (fileIndex <= after) {
/* istanbul ignore if */ var m = this._matchOne(
if (partial) { file.slice(0, fileIndex + body.length),
// ran out of file body,
this.debug('\n>>> no match, partial?', file, fr, pattern, pr) partial,
if (fr === fl) return true fileIndex,
0
)
// if limit exceeded, no match. intentional false negative,
// acceptable break in correctness for security.
if (m && globStarDepth < this.maxGlobstarRecursion) {
var sub = this._matchGlobStarBodySections(
file, bodySegments,
fileIndex + body.length, bodyIndex + 1,
partial, globStarDepth + 1, sawTail
)
if (sub !== false) {
return sub
} }
}
var f = file[fileIndex]
if (f === '.' || f === '..' ||
(!this.options.dot && f.charAt(0) === '.')) {
return false return false
} }
fileIndex++
}
return partial || null
}
Minimatch.prototype._matchOne = function (file, pattern, partial, fileIndex, patternIndex) {
var fi, pi, fl, pl
for (
fi = fileIndex, pi = patternIndex, fl = file.length, pl = pattern.length
; (fi < fl) && (pi < pl)
; fi++, pi++
) {
this.debug('matchOne loop')
var p = pattern[pi]
var f = file[fi]
this.debug(pattern, p, f)
// should be impossible.
// some invalid regexp stuff in the set.
/* istanbul ignore if */
if (p === false || p === GLOBSTAR) return false
// something other than ** // something other than **
// non-magic patterns just have to match exactly // non-magic patterns just have to match exactly
@ -27588,17 +27657,6 @@ Minimatch.prototype.matchOne = function (file, pattern, partial) {
if (!hit) return false if (!hit) return false
} }
// Note: ending in / means that we'll get a final ""
// at the end of the pattern. This can only match a
// corresponding "" at the end of the file.
// If the file ends in /, then it can only match a
// a pattern that ends in /, unless the pattern just
// doesn't have any more for it. But, a/b/ should *not*
// match "a/b/*", even though "" matches against the
// [^/]*? pattern, except in partial mode, where it might
// simply not be reached yet.
// However, a/b/ should still satisfy a/*
// now either we fell off the end of the pattern, or we're done. // now either we fell off the end of the pattern, or we're done.
if (fi === fl && pi === pl) { if (fi === fl && pi === pl) {
// ran out of pattern and filename at the same time. // ran out of pattern and filename at the same time.

123
package-lock.json generated

@ -2030,24 +2030,37 @@
"url": "https://opencollective.com/typescript-eslint" "url": "https://opencollective.com/typescript-eslint"
} }
}, },
"node_modules/@typescript-eslint/eslint-plugin/node_modules/balanced-match": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
"integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
"dev": true,
"license": "MIT",
"engines": {
"node": "18 || 20 || >=22"
}
},
"node_modules/@typescript-eslint/eslint-plugin/node_modules/brace-expansion": { "node_modules/@typescript-eslint/eslint-plugin/node_modules/brace-expansion": {
"version": "2.0.2", "version": "5.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"balanced-match": "^1.0.0" "balanced-match": "^4.0.2"
},
"engines": {
"node": "18 || 20 || >=22"
} }
}, },
"node_modules/@typescript-eslint/eslint-plugin/node_modules/minimatch": { "node_modules/@typescript-eslint/eslint-plugin/node_modules/minimatch": {
"version": "9.0.5", "version": "9.0.8",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.8.tgz",
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "integrity": "sha512-reYkDYtj/b19TeqbNZCV4q9t+Yxylf/rYBsLb42SXJatTv4/ylq5lEiAmhA/IToxO7NI2UzNMghHoHuaqDkAjw==",
"dev": true, "dev": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"brace-expansion": "^2.0.1" "brace-expansion": "^5.0.2"
}, },
"engines": { "engines": {
"node": ">=16 || 14 >=14.17" "node": ">=16 || 14 >=14.17"
@ -2164,24 +2177,37 @@
"url": "https://opencollective.com/typescript-eslint" "url": "https://opencollective.com/typescript-eslint"
} }
}, },
"node_modules/@typescript-eslint/parser/node_modules/balanced-match": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
"integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
"dev": true,
"license": "MIT",
"engines": {
"node": "18 || 20 || >=22"
}
},
"node_modules/@typescript-eslint/parser/node_modules/brace-expansion": { "node_modules/@typescript-eslint/parser/node_modules/brace-expansion": {
"version": "2.0.2", "version": "5.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"balanced-match": "^1.0.0" "balanced-match": "^4.0.2"
},
"engines": {
"node": "18 || 20 || >=22"
} }
}, },
"node_modules/@typescript-eslint/parser/node_modules/minimatch": { "node_modules/@typescript-eslint/parser/node_modules/minimatch": {
"version": "9.0.5", "version": "9.0.8",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.8.tgz",
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "integrity": "sha512-reYkDYtj/b19TeqbNZCV4q9t+Yxylf/rYBsLb42SXJatTv4/ylq5lEiAmhA/IToxO7NI2UzNMghHoHuaqDkAjw==",
"dev": true, "dev": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"brace-expansion": "^2.0.1" "brace-expansion": "^5.0.2"
}, },
"engines": { "engines": {
"node": ">=16 || 14 >=14.17" "node": ">=16 || 14 >=14.17"
@ -2374,24 +2400,37 @@
"url": "https://opencollective.com/typescript-eslint" "url": "https://opencollective.com/typescript-eslint"
} }
}, },
"node_modules/@typescript-eslint/type-utils/node_modules/balanced-match": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
"integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
"dev": true,
"license": "MIT",
"engines": {
"node": "18 || 20 || >=22"
}
},
"node_modules/@typescript-eslint/type-utils/node_modules/brace-expansion": { "node_modules/@typescript-eslint/type-utils/node_modules/brace-expansion": {
"version": "2.0.2", "version": "5.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"balanced-match": "^1.0.0" "balanced-match": "^4.0.2"
},
"engines": {
"node": "18 || 20 || >=22"
} }
}, },
"node_modules/@typescript-eslint/type-utils/node_modules/minimatch": { "node_modules/@typescript-eslint/type-utils/node_modules/minimatch": {
"version": "9.0.5", "version": "9.0.8",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.8.tgz",
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "integrity": "sha512-reYkDYtj/b19TeqbNZCV4q9t+Yxylf/rYBsLb42SXJatTv4/ylq5lEiAmhA/IToxO7NI2UzNMghHoHuaqDkAjw==",
"dev": true, "dev": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"brace-expansion": "^2.0.1" "brace-expansion": "^5.0.2"
}, },
"engines": { "engines": {
"node": ">=16 || 14 >=14.17" "node": ">=16 || 14 >=14.17"
@ -2443,24 +2482,37 @@
"typescript": ">=4.8.4 <6.0.0" "typescript": ">=4.8.4 <6.0.0"
} }
}, },
"node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
"integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
"dev": true,
"license": "MIT",
"engines": {
"node": "18 || 20 || >=22"
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
"version": "2.0.2", "version": "5.0.3",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"balanced-match": "^1.0.0" "balanced-match": "^4.0.2"
},
"engines": {
"node": "18 || 20 || >=22"
} }
}, },
"node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
"version": "9.0.5", "version": "9.0.8",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.8.tgz",
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "integrity": "sha512-reYkDYtj/b19TeqbNZCV4q9t+Yxylf/rYBsLb42SXJatTv4/ylq5lEiAmhA/IToxO7NI2UzNMghHoHuaqDkAjw==",
"dev": true, "dev": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"brace-expansion": "^2.0.1" "brace-expansion": "^5.0.2"
}, },
"engines": { "engines": {
"node": ">=16 || 14 >=14.17" "node": ">=16 || 14 >=14.17"
@ -4934,9 +4986,10 @@
} }
}, },
"node_modules/minimatch": { "node_modules/minimatch": {
"version": "3.1.2", "version": "3.1.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"license": "ISC",
"dependencies": { "dependencies": {
"brace-expansion": "^1.1.7" "brace-expansion": "^1.1.7"
}, },

Loading…
Cancel
Save