Set up comprehensive frontend testing infrastructure
- Install Jest for unit testing with React Testing Library - Install Playwright for end-to-end testing - Configure Jest with proper TypeScript support and module mapping - Create test setup files and utilities for both unit and e2e tests Components: * Jest configuration with coverage thresholds * Playwright configuration with browser automation * Unit tests for LoginForm, AuthContext, and useSocketIO hook * E2E tests for authentication, dashboard, and agents workflows * GitHub Actions workflow for automated testing * Mock data and API utilities for consistent testing * Test documentation with best practices Testing features: - Unit tests with 70% coverage threshold - E2E tests with API mocking and user journey testing - CI/CD integration for automated test runs - Cross-browser testing support with Playwright - Authentication system testing end-to-end 🚀 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
		
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/.bin/glob
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/.bin/glob
									
									
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | ||||
| ../glob/dist/esm/bin.mjs | ||||
							
								
								
									
										15
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| The ISC License | ||||
|  | ||||
| Copyright (c) 2009-2023 Isaac Z. Schlueter and Contributors | ||||
|  | ||||
| Permission to use, copy, modify, and/or distribute this software for any | ||||
| purpose with or without fee is hereby granted, provided that the above | ||||
| copyright notice and this permission notice appear in all copies. | ||||
|  | ||||
| THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||||
| WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||||
| MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||||
| ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||||
| WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||||
| ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR | ||||
| IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||||
							
								
								
									
										1265
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1265
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										388
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/glob.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										388
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/glob.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,388 @@ | ||||
| import { Minimatch } from 'minimatch'; | ||||
| import { Minipass } from 'minipass'; | ||||
| import { FSOption, Path, PathScurry } from 'path-scurry'; | ||||
| import { IgnoreLike } from './ignore.js'; | ||||
| import { Pattern } from './pattern.js'; | ||||
| export type MatchSet = Minimatch['set']; | ||||
| export type GlobParts = Exclude<Minimatch['globParts'], undefined>; | ||||
| /** | ||||
|  * A `GlobOptions` object may be provided to any of the exported methods, and | ||||
|  * must be provided to the `Glob` constructor. | ||||
|  * | ||||
|  * All options are optional, boolean, and false by default, unless otherwise | ||||
|  * noted. | ||||
|  * | ||||
|  * All resolved options are added to the Glob object as properties. | ||||
|  * | ||||
|  * If you are running many `glob` operations, you can pass a Glob object as the | ||||
|  * `options` argument to a subsequent operation to share the previously loaded | ||||
|  * cache. | ||||
|  */ | ||||
| export interface GlobOptions { | ||||
|     /** | ||||
|      * Set to `true` to always receive absolute paths for | ||||
|      * matched files. Set to `false` to always return relative paths. | ||||
|      * | ||||
|      * When this option is not set, absolute paths are returned for patterns | ||||
|      * that are absolute, and otherwise paths are returned that are relative | ||||
|      * to the `cwd` setting. | ||||
|      * | ||||
|      * This does _not_ make an extra system call to get | ||||
|      * the realpath, it only does string path resolution. | ||||
|      * | ||||
|      * Conflicts with {@link withFileTypes} | ||||
|      */ | ||||
|     absolute?: boolean; | ||||
|     /** | ||||
|      * Set to false to enable {@link windowsPathsNoEscape} | ||||
|      * | ||||
|      * @deprecated | ||||
|      */ | ||||
|     allowWindowsEscape?: boolean; | ||||
|     /** | ||||
|      * The current working directory in which to search. Defaults to | ||||
|      * `process.cwd()`. | ||||
|      * | ||||
|      * May be eiher a string path or a `file://` URL object or string. | ||||
|      */ | ||||
|     cwd?: string | URL; | ||||
|     /** | ||||
|      * Include `.dot` files in normal matches and `globstar` | ||||
|      * matches. Note that an explicit dot in a portion of the pattern | ||||
|      * will always match dot files. | ||||
|      */ | ||||
|     dot?: boolean; | ||||
|     /** | ||||
|      * Prepend all relative path strings with `./` (or `.\` on Windows). | ||||
|      * | ||||
|      * Without this option, returned relative paths are "bare", so instead of | ||||
|      * returning `'./foo/bar'`, they are returned as `'foo/bar'`. | ||||
|      * | ||||
|      * Relative patterns starting with `'../'` are not prepended with `./`, even | ||||
|      * if this option is set. | ||||
|      */ | ||||
|     dotRelative?: boolean; | ||||
|     /** | ||||
|      * Follow symlinked directories when expanding `**` | ||||
|      * patterns. This can result in a lot of duplicate references in | ||||
|      * the presence of cyclic links, and make performance quite bad. | ||||
|      * | ||||
|      * By default, a `**` in a pattern will follow 1 symbolic link if | ||||
|      * it is not the first item in the pattern, or none if it is the | ||||
|      * first item in the pattern, following the same behavior as Bash. | ||||
|      */ | ||||
|     follow?: boolean; | ||||
|     /** | ||||
|      * string or string[], or an object with `ignore` and `ignoreChildren` | ||||
|      * methods. | ||||
|      * | ||||
|      * If a string or string[] is provided, then this is treated as a glob | ||||
|      * pattern or array of glob patterns to exclude from matches. To ignore all | ||||
|      * children within a directory, as well as the entry itself, append `'/**'` | ||||
|      * to the ignore pattern. | ||||
|      * | ||||
|      * **Note** `ignore` patterns are _always_ in `dot:true` mode, regardless of | ||||
|      * any other settings. | ||||
|      * | ||||
|      * If an object is provided that has `ignored(path)` and/or | ||||
|      * `childrenIgnored(path)` methods, then these methods will be called to | ||||
|      * determine whether any Path is a match or if its children should be | ||||
|      * traversed, respectively. | ||||
|      */ | ||||
|     ignore?: string | string[] | IgnoreLike; | ||||
|     /** | ||||
|      * Treat brace expansion like `{a,b}` as a "magic" pattern. Has no | ||||
|      * effect if {@link nobrace} is set. | ||||
|      * | ||||
|      * Only has effect on the {@link hasMagic} function. | ||||
|      */ | ||||
|     magicalBraces?: boolean; | ||||
|     /** | ||||
|      * Add a `/` character to directory matches. Note that this requires | ||||
|      * additional stat calls in some cases. | ||||
|      */ | ||||
|     mark?: boolean; | ||||
|     /** | ||||
|      * Perform a basename-only match if the pattern does not contain any slash | ||||
|      * characters. That is, `*.js` would be treated as equivalent to | ||||
|      * `**\/*.js`, matching all js files in all directories. | ||||
|      */ | ||||
|     matchBase?: boolean; | ||||
|     /** | ||||
|      * Limit the directory traversal to a given depth below the cwd. | ||||
|      * Note that this does NOT prevent traversal to sibling folders, | ||||
|      * root patterns, and so on. It only limits the maximum folder depth | ||||
|      * that the walk will descend, relative to the cwd. | ||||
|      */ | ||||
|     maxDepth?: number; | ||||
|     /** | ||||
|      * Do not expand `{a,b}` and `{1..3}` brace sets. | ||||
|      */ | ||||
|     nobrace?: boolean; | ||||
|     /** | ||||
|      * Perform a case-insensitive match. This defaults to `true` on macOS and | ||||
|      * Windows systems, and `false` on all others. | ||||
|      * | ||||
|      * **Note** `nocase` should only be explicitly set when it is | ||||
|      * known that the filesystem's case sensitivity differs from the | ||||
|      * platform default. If set `true` on case-sensitive file | ||||
|      * systems, or `false` on case-insensitive file systems, then the | ||||
|      * walk may return more or less results than expected. | ||||
|      */ | ||||
|     nocase?: boolean; | ||||
|     /** | ||||
|      * Do not match directories, only files. (Note: to match | ||||
|      * _only_ directories, put a `/` at the end of the pattern.) | ||||
|      */ | ||||
|     nodir?: boolean; | ||||
|     /** | ||||
|      * Do not match "extglob" patterns such as `+(a|b)`. | ||||
|      */ | ||||
|     noext?: boolean; | ||||
|     /** | ||||
|      * Do not match `**` against multiple filenames. (Ie, treat it as a normal | ||||
|      * `*` instead.) | ||||
|      * | ||||
|      * Conflicts with {@link matchBase} | ||||
|      */ | ||||
|     noglobstar?: boolean; | ||||
|     /** | ||||
|      * Defaults to value of `process.platform` if available, or `'linux'` if | ||||
|      * not. Setting `platform:'win32'` on non-Windows systems may cause strange | ||||
|      * behavior. | ||||
|      */ | ||||
|     platform?: NodeJS.Platform; | ||||
|     /** | ||||
|      * Set to true to call `fs.realpath` on all of the | ||||
|      * results. In the case of an entry that cannot be resolved, the | ||||
|      * entry is omitted. This incurs a slight performance penalty, of | ||||
|      * course, because of the added system calls. | ||||
|      */ | ||||
|     realpath?: boolean; | ||||
|     /** | ||||
|      * | ||||
|      * A string path resolved against the `cwd` option, which | ||||
|      * is used as the starting point for absolute patterns that start | ||||
|      * with `/`, (but not drive letters or UNC paths on Windows). | ||||
|      * | ||||
|      * Note that this _doesn't_ necessarily limit the walk to the | ||||
|      * `root` directory, and doesn't affect the cwd starting point for | ||||
|      * non-absolute patterns. A pattern containing `..` will still be | ||||
|      * able to traverse out of the root directory, if it is not an | ||||
|      * actual root directory on the filesystem, and any non-absolute | ||||
|      * patterns will be matched in the `cwd`. For example, the | ||||
|      * pattern `/../*` with `{root:'/some/path'}` will return all | ||||
|      * files in `/some`, not all files in `/some/path`. The pattern | ||||
|      * `*` with `{root:'/some/path'}` will return all the entries in | ||||
|      * the cwd, not the entries in `/some/path`. | ||||
|      * | ||||
|      * To start absolute and non-absolute patterns in the same | ||||
|      * path, you can use `{root:''}`. However, be aware that on | ||||
|      * Windows systems, a pattern like `x:/*` or `//host/share/*` will | ||||
|      * _always_ start in the `x:/` or `//host/share` directory, | ||||
|      * regardless of the `root` setting. | ||||
|      */ | ||||
|     root?: string; | ||||
|     /** | ||||
|      * A [PathScurry](http://npm.im/path-scurry) object used | ||||
|      * to traverse the file system. If the `nocase` option is set | ||||
|      * explicitly, then any provided `scurry` object must match this | ||||
|      * setting. | ||||
|      */ | ||||
|     scurry?: PathScurry; | ||||
|     /** | ||||
|      * Call `lstat()` on all entries, whether required or not to determine | ||||
|      * if it's a valid match. When used with {@link withFileTypes}, this means | ||||
|      * that matches will include data such as modified time, permissions, and | ||||
|      * so on.  Note that this will incur a performance cost due to the added | ||||
|      * system calls. | ||||
|      */ | ||||
|     stat?: boolean; | ||||
|     /** | ||||
|      * An AbortSignal which will cancel the Glob walk when | ||||
|      * triggered. | ||||
|      */ | ||||
|     signal?: AbortSignal; | ||||
|     /** | ||||
|      * Use `\\` as a path separator _only_, and | ||||
|      *  _never_ as an escape character. If set, all `\\` characters are | ||||
|      *  replaced with `/` in the pattern. | ||||
|      * | ||||
|      *  Note that this makes it **impossible** to match against paths | ||||
|      *  containing literal glob pattern characters, but allows matching | ||||
|      *  with patterns constructed using `path.join()` and | ||||
|      *  `path.resolve()` on Windows platforms, mimicking the (buggy!) | ||||
|      *  behavior of Glob v7 and before on Windows. Please use with | ||||
|      *  caution, and be mindful of [the caveat below about Windows | ||||
|      *  paths](#windows). (For legacy reasons, this is also set if | ||||
|      *  `allowWindowsEscape` is set to the exact value `false`.) | ||||
|      */ | ||||
|     windowsPathsNoEscape?: boolean; | ||||
|     /** | ||||
|      * Return [PathScurry](http://npm.im/path-scurry) | ||||
|      * `Path` objects instead of strings. These are similar to a | ||||
|      * NodeJS `Dirent` object, but with additional methods and | ||||
|      * properties. | ||||
|      * | ||||
|      * Conflicts with {@link absolute} | ||||
|      */ | ||||
|     withFileTypes?: boolean; | ||||
|     /** | ||||
|      * An fs implementation to override some or all of the defaults.  See | ||||
|      * http://npm.im/path-scurry for details about what can be overridden. | ||||
|      */ | ||||
|     fs?: FSOption; | ||||
|     /** | ||||
|      * Just passed along to Minimatch.  Note that this makes all pattern | ||||
|      * matching operations slower and *extremely* noisy. | ||||
|      */ | ||||
|     debug?: boolean; | ||||
|     /** | ||||
|      * Return `/` delimited paths, even on Windows. | ||||
|      * | ||||
|      * On posix systems, this has no effect.  But, on Windows, it means that | ||||
|      * paths will be `/` delimited, and absolute paths will be their full | ||||
|      * resolved UNC forms, eg instead of `'C:\\foo\\bar'`, it would return | ||||
|      * `'//?/C:/foo/bar'` | ||||
|      */ | ||||
|     posix?: boolean; | ||||
|     /** | ||||
|      * Do not match any children of any matches. For example, the pattern | ||||
|      * `**\/foo` would match `a/foo`, but not `a/foo/b/foo` in this mode. | ||||
|      * | ||||
|      * This is especially useful for cases like "find all `node_modules` | ||||
|      * folders, but not the ones in `node_modules`". | ||||
|      * | ||||
|      * In order to support this, the `Ignore` implementation must support an | ||||
|      * `add(pattern: string)` method. If using the default `Ignore` class, then | ||||
|      * this is fine, but if this is set to `false`, and a custom `Ignore` is | ||||
|      * provided that does not have an `add()` method, then it will throw an | ||||
|      * error. | ||||
|      * | ||||
|      * **Caveat** It *only* ignores matches that would be a descendant of a | ||||
|      * previous match, and only if that descendant is matched *after* the | ||||
|      * ancestor is encountered. Since the file system walk happens in | ||||
|      * indeterminate order, it's possible that a match will already be added | ||||
|      * before its ancestor, if multiple or braced patterns are used. | ||||
|      * | ||||
|      * For example: | ||||
|      * | ||||
|      * ```ts | ||||
|      * const results = await glob([ | ||||
|      *   // likely to match first, since it's just a stat | ||||
|      *   'a/b/c/d/e/f', | ||||
|      * | ||||
|      *   // this pattern is more complicated! It must to various readdir() | ||||
|      *   // calls and test the results against a regular expression, and that | ||||
|      *   // is certainly going to take a little bit longer. | ||||
|      *   // | ||||
|      *   // So, later on, it encounters a match at 'a/b/c/d/e', but it's too | ||||
|      *   // late to ignore a/b/c/d/e/f, because it's already been emitted. | ||||
|      *   'a/[bdf]/?/[a-z]/*', | ||||
|      * ], { includeChildMatches: false }) | ||||
|      * ``` | ||||
|      * | ||||
|      * It's best to only set this to `false` if you can be reasonably sure that | ||||
|      * no components of the pattern will potentially match one another's file | ||||
|      * system descendants, or if the occasional included child entry will not | ||||
|      * cause problems. | ||||
|      * | ||||
|      * @default true | ||||
|      */ | ||||
|     includeChildMatches?: boolean; | ||||
| } | ||||
| export type GlobOptionsWithFileTypesTrue = GlobOptions & { | ||||
|     withFileTypes: true; | ||||
|     absolute?: undefined; | ||||
|     mark?: undefined; | ||||
|     posix?: undefined; | ||||
| }; | ||||
| export type GlobOptionsWithFileTypesFalse = GlobOptions & { | ||||
|     withFileTypes?: false; | ||||
| }; | ||||
| export type GlobOptionsWithFileTypesUnset = GlobOptions & { | ||||
|     withFileTypes?: undefined; | ||||
| }; | ||||
| export type Result<Opts> = Opts extends GlobOptionsWithFileTypesTrue ? Path : Opts extends GlobOptionsWithFileTypesFalse ? string : Opts extends GlobOptionsWithFileTypesUnset ? string : string | Path; | ||||
| export type Results<Opts> = Result<Opts>[]; | ||||
| export type FileTypes<Opts> = Opts extends GlobOptionsWithFileTypesTrue ? true : Opts extends GlobOptionsWithFileTypesFalse ? false : Opts extends GlobOptionsWithFileTypesUnset ? false : boolean; | ||||
| /** | ||||
|  * An object that can perform glob pattern traversals. | ||||
|  */ | ||||
| export declare class Glob<Opts extends GlobOptions> implements GlobOptions { | ||||
|     absolute?: boolean; | ||||
|     cwd: string; | ||||
|     root?: string; | ||||
|     dot: boolean; | ||||
|     dotRelative: boolean; | ||||
|     follow: boolean; | ||||
|     ignore?: string | string[] | IgnoreLike; | ||||
|     magicalBraces: boolean; | ||||
|     mark?: boolean; | ||||
|     matchBase: boolean; | ||||
|     maxDepth: number; | ||||
|     nobrace: boolean; | ||||
|     nocase: boolean; | ||||
|     nodir: boolean; | ||||
|     noext: boolean; | ||||
|     noglobstar: boolean; | ||||
|     pattern: string[]; | ||||
|     platform: NodeJS.Platform; | ||||
|     realpath: boolean; | ||||
|     scurry: PathScurry; | ||||
|     stat: boolean; | ||||
|     signal?: AbortSignal; | ||||
|     windowsPathsNoEscape: boolean; | ||||
|     withFileTypes: FileTypes<Opts>; | ||||
|     includeChildMatches: boolean; | ||||
|     /** | ||||
|      * The options provided to the constructor. | ||||
|      */ | ||||
|     opts: Opts; | ||||
|     /** | ||||
|      * An array of parsed immutable {@link Pattern} objects. | ||||
|      */ | ||||
|     patterns: Pattern[]; | ||||
|     /** | ||||
|      * All options are stored as properties on the `Glob` object. | ||||
|      * | ||||
|      * See {@link GlobOptions} for full options descriptions. | ||||
|      * | ||||
|      * Note that a previous `Glob` object can be passed as the | ||||
|      * `GlobOptions` to another `Glob` instantiation to re-use settings | ||||
|      * and caches with a new pattern. | ||||
|      * | ||||
|      * Traversal functions can be called multiple times to run the walk | ||||
|      * again. | ||||
|      */ | ||||
|     constructor(pattern: string | string[], opts: Opts); | ||||
|     /** | ||||
|      * Returns a Promise that resolves to the results array. | ||||
|      */ | ||||
|     walk(): Promise<Results<Opts>>; | ||||
|     /** | ||||
|      * synchronous {@link Glob.walk} | ||||
|      */ | ||||
|     walkSync(): Results<Opts>; | ||||
|     /** | ||||
|      * Stream results asynchronously. | ||||
|      */ | ||||
|     stream(): Minipass<Result<Opts>, Result<Opts>>; | ||||
|     /** | ||||
|      * Stream results synchronously. | ||||
|      */ | ||||
|     streamSync(): Minipass<Result<Opts>, Result<Opts>>; | ||||
|     /** | ||||
|      * Default sync iteration function. Returns a Generator that | ||||
|      * iterates over the results. | ||||
|      */ | ||||
|     iterateSync(): Generator<Result<Opts>, void, void>; | ||||
|     [Symbol.iterator](): Generator<Result<Opts>, void, void>; | ||||
|     /** | ||||
|      * Default async iteration function. Returns an AsyncGenerator that | ||||
|      * iterates over the results. | ||||
|      */ | ||||
|     iterate(): AsyncGenerator<Result<Opts>, void, void>; | ||||
|     [Symbol.asyncIterator](): AsyncGenerator<Result<Opts>, void, void>; | ||||
| } | ||||
| //# sourceMappingURL=glob.d.ts.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/glob.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/glob.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../src/glob.ts"],"names":[],"mappings":"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"} | ||||
							
								
								
									
										247
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/glob.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										247
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/glob.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,247 @@ | ||||
| "use strict"; | ||||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| exports.Glob = void 0; | ||||
| const minimatch_1 = require("minimatch"); | ||||
| const node_url_1 = require("node:url"); | ||||
| const path_scurry_1 = require("path-scurry"); | ||||
| const pattern_js_1 = require("./pattern.js"); | ||||
| const walker_js_1 = require("./walker.js"); | ||||
| // if no process global, just call it linux. | ||||
| // so we default to case-sensitive, / separators | ||||
| const defaultPlatform = (typeof process === 'object' && | ||||
|     process && | ||||
|     typeof process.platform === 'string') ? | ||||
|     process.platform | ||||
|     : 'linux'; | ||||
| /** | ||||
|  * An object that can perform glob pattern traversals. | ||||
|  */ | ||||
| class Glob { | ||||
|     absolute; | ||||
|     cwd; | ||||
|     root; | ||||
|     dot; | ||||
|     dotRelative; | ||||
|     follow; | ||||
|     ignore; | ||||
|     magicalBraces; | ||||
|     mark; | ||||
|     matchBase; | ||||
|     maxDepth; | ||||
|     nobrace; | ||||
|     nocase; | ||||
|     nodir; | ||||
|     noext; | ||||
|     noglobstar; | ||||
|     pattern; | ||||
|     platform; | ||||
|     realpath; | ||||
|     scurry; | ||||
|     stat; | ||||
|     signal; | ||||
|     windowsPathsNoEscape; | ||||
|     withFileTypes; | ||||
|     includeChildMatches; | ||||
|     /** | ||||
|      * The options provided to the constructor. | ||||
|      */ | ||||
|     opts; | ||||
|     /** | ||||
|      * An array of parsed immutable {@link Pattern} objects. | ||||
|      */ | ||||
|     patterns; | ||||
|     /** | ||||
|      * All options are stored as properties on the `Glob` object. | ||||
|      * | ||||
|      * See {@link GlobOptions} for full options descriptions. | ||||
|      * | ||||
|      * Note that a previous `Glob` object can be passed as the | ||||
|      * `GlobOptions` to another `Glob` instantiation to re-use settings | ||||
|      * and caches with a new pattern. | ||||
|      * | ||||
|      * Traversal functions can be called multiple times to run the walk | ||||
|      * again. | ||||
|      */ | ||||
|     constructor(pattern, opts) { | ||||
|         /* c8 ignore start */ | ||||
|         if (!opts) | ||||
|             throw new TypeError('glob options required'); | ||||
|         /* c8 ignore stop */ | ||||
|         this.withFileTypes = !!opts.withFileTypes; | ||||
|         this.signal = opts.signal; | ||||
|         this.follow = !!opts.follow; | ||||
|         this.dot = !!opts.dot; | ||||
|         this.dotRelative = !!opts.dotRelative; | ||||
|         this.nodir = !!opts.nodir; | ||||
|         this.mark = !!opts.mark; | ||||
|         if (!opts.cwd) { | ||||
|             this.cwd = ''; | ||||
|         } | ||||
|         else if (opts.cwd instanceof URL || opts.cwd.startsWith('file://')) { | ||||
|             opts.cwd = (0, node_url_1.fileURLToPath)(opts.cwd); | ||||
|         } | ||||
|         this.cwd = opts.cwd || ''; | ||||
|         this.root = opts.root; | ||||
|         this.magicalBraces = !!opts.magicalBraces; | ||||
|         this.nobrace = !!opts.nobrace; | ||||
|         this.noext = !!opts.noext; | ||||
|         this.realpath = !!opts.realpath; | ||||
|         this.absolute = opts.absolute; | ||||
|         this.includeChildMatches = opts.includeChildMatches !== false; | ||||
|         this.noglobstar = !!opts.noglobstar; | ||||
|         this.matchBase = !!opts.matchBase; | ||||
|         this.maxDepth = | ||||
|             typeof opts.maxDepth === 'number' ? opts.maxDepth : Infinity; | ||||
|         this.stat = !!opts.stat; | ||||
|         this.ignore = opts.ignore; | ||||
|         if (this.withFileTypes && this.absolute !== undefined) { | ||||
|             throw new Error('cannot set absolute and withFileTypes:true'); | ||||
|         } | ||||
|         if (typeof pattern === 'string') { | ||||
|             pattern = [pattern]; | ||||
|         } | ||||
|         this.windowsPathsNoEscape = | ||||
|             !!opts.windowsPathsNoEscape || | ||||
|                 opts.allowWindowsEscape === | ||||
|                     false; | ||||
|         if (this.windowsPathsNoEscape) { | ||||
|             pattern = pattern.map(p => p.replace(/\\/g, '/')); | ||||
|         } | ||||
|         if (this.matchBase) { | ||||
|             if (opts.noglobstar) { | ||||
|                 throw new TypeError('base matching requires globstar'); | ||||
|             } | ||||
|             pattern = pattern.map(p => (p.includes('/') ? p : `./**/${p}`)); | ||||
|         } | ||||
|         this.pattern = pattern; | ||||
|         this.platform = opts.platform || defaultPlatform; | ||||
|         this.opts = { ...opts, platform: this.platform }; | ||||
|         if (opts.scurry) { | ||||
|             this.scurry = opts.scurry; | ||||
|             if (opts.nocase !== undefined && | ||||
|                 opts.nocase !== opts.scurry.nocase) { | ||||
|                 throw new Error('nocase option contradicts provided scurry option'); | ||||
|             } | ||||
|         } | ||||
|         else { | ||||
|             const Scurry = opts.platform === 'win32' ? path_scurry_1.PathScurryWin32 | ||||
|                 : opts.platform === 'darwin' ? path_scurry_1.PathScurryDarwin | ||||
|                     : opts.platform ? path_scurry_1.PathScurryPosix | ||||
|                         : path_scurry_1.PathScurry; | ||||
|             this.scurry = new Scurry(this.cwd, { | ||||
|                 nocase: opts.nocase, | ||||
|                 fs: opts.fs, | ||||
|             }); | ||||
|         } | ||||
|         this.nocase = this.scurry.nocase; | ||||
|         // If you do nocase:true on a case-sensitive file system, then | ||||
|         // we need to use regexps instead of strings for non-magic | ||||
|         // path portions, because statting `aBc` won't return results | ||||
|         // for the file `AbC` for example. | ||||
|         const nocaseMagicOnly = this.platform === 'darwin' || this.platform === 'win32'; | ||||
|         const mmo = { | ||||
|             // default nocase based on platform | ||||
|             ...opts, | ||||
|             dot: this.dot, | ||||
|             matchBase: this.matchBase, | ||||
|             nobrace: this.nobrace, | ||||
|             nocase: this.nocase, | ||||
|             nocaseMagicOnly, | ||||
|             nocomment: true, | ||||
|             noext: this.noext, | ||||
|             nonegate: true, | ||||
|             optimizationLevel: 2, | ||||
|             platform: this.platform, | ||||
|             windowsPathsNoEscape: this.windowsPathsNoEscape, | ||||
|             debug: !!this.opts.debug, | ||||
|         }; | ||||
|         const mms = this.pattern.map(p => new minimatch_1.Minimatch(p, mmo)); | ||||
|         const [matchSet, globParts] = mms.reduce((set, m) => { | ||||
|             set[0].push(...m.set); | ||||
|             set[1].push(...m.globParts); | ||||
|             return set; | ||||
|         }, [[], []]); | ||||
|         this.patterns = matchSet.map((set, i) => { | ||||
|             const g = globParts[i]; | ||||
|             /* c8 ignore start */ | ||||
|             if (!g) | ||||
|                 throw new Error('invalid pattern object'); | ||||
|             /* c8 ignore stop */ | ||||
|             return new pattern_js_1.Pattern(set, g, 0, this.platform); | ||||
|         }); | ||||
|     } | ||||
|     async walk() { | ||||
|         // Walkers always return array of Path objects, so we just have to | ||||
|         // coerce them into the right shape.  It will have already called | ||||
|         // realpath() if the option was set to do so, so we know that's cached. | ||||
|         // start out knowing the cwd, at least | ||||
|         return [ | ||||
|             ...(await new walker_js_1.GlobWalker(this.patterns, this.scurry.cwd, { | ||||
|                 ...this.opts, | ||||
|                 maxDepth: this.maxDepth !== Infinity ? | ||||
|                     this.maxDepth + this.scurry.cwd.depth() | ||||
|                     : Infinity, | ||||
|                 platform: this.platform, | ||||
|                 nocase: this.nocase, | ||||
|                 includeChildMatches: this.includeChildMatches, | ||||
|             }).walk()), | ||||
|         ]; | ||||
|     } | ||||
|     walkSync() { | ||||
|         return [ | ||||
|             ...new walker_js_1.GlobWalker(this.patterns, this.scurry.cwd, { | ||||
|                 ...this.opts, | ||||
|                 maxDepth: this.maxDepth !== Infinity ? | ||||
|                     this.maxDepth + this.scurry.cwd.depth() | ||||
|                     : Infinity, | ||||
|                 platform: this.platform, | ||||
|                 nocase: this.nocase, | ||||
|                 includeChildMatches: this.includeChildMatches, | ||||
|             }).walkSync(), | ||||
|         ]; | ||||
|     } | ||||
|     stream() { | ||||
|         return new walker_js_1.GlobStream(this.patterns, this.scurry.cwd, { | ||||
|             ...this.opts, | ||||
|             maxDepth: this.maxDepth !== Infinity ? | ||||
|                 this.maxDepth + this.scurry.cwd.depth() | ||||
|                 : Infinity, | ||||
|             platform: this.platform, | ||||
|             nocase: this.nocase, | ||||
|             includeChildMatches: this.includeChildMatches, | ||||
|         }).stream(); | ||||
|     } | ||||
|     streamSync() { | ||||
|         return new walker_js_1.GlobStream(this.patterns, this.scurry.cwd, { | ||||
|             ...this.opts, | ||||
|             maxDepth: this.maxDepth !== Infinity ? | ||||
|                 this.maxDepth + this.scurry.cwd.depth() | ||||
|                 : Infinity, | ||||
|             platform: this.platform, | ||||
|             nocase: this.nocase, | ||||
|             includeChildMatches: this.includeChildMatches, | ||||
|         }).streamSync(); | ||||
|     } | ||||
|     /** | ||||
|      * Default sync iteration function. Returns a Generator that | ||||
|      * iterates over the results. | ||||
|      */ | ||||
|     iterateSync() { | ||||
|         return this.streamSync()[Symbol.iterator](); | ||||
|     } | ||||
|     [Symbol.iterator]() { | ||||
|         return this.iterateSync(); | ||||
|     } | ||||
|     /** | ||||
|      * Default async iteration function. Returns an AsyncGenerator that | ||||
|      * iterates over the results. | ||||
|      */ | ||||
|     iterate() { | ||||
|         return this.stream()[Symbol.asyncIterator](); | ||||
|     } | ||||
|     [Symbol.asyncIterator]() { | ||||
|         return this.iterate(); | ||||
|     } | ||||
| } | ||||
| exports.Glob = Glob; | ||||
| //# sourceMappingURL=glob.js.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/glob.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/glob.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										14
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/has-magic.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/has-magic.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| import { GlobOptions } from './glob.js'; | ||||
| /** | ||||
|  * Return true if the patterns provided contain any magic glob characters, | ||||
|  * given the options provided. | ||||
|  * | ||||
|  * Brace expansion is not considered "magic" unless the `magicalBraces` option | ||||
|  * is set, as brace expansion just turns one string into an array of strings. | ||||
|  * So a pattern like `'x{a,b}y'` would return `false`, because `'xay'` and | ||||
|  * `'xby'` both do not contain any magic glob characters, and it's treated the | ||||
|  * same as if you had called it on `['xay', 'xby']`. When `magicalBraces:true` | ||||
|  * is in the options, brace expansion _is_ treated as a pattern having magic. | ||||
|  */ | ||||
| export declare const hasMagic: (pattern: string | string[], options?: GlobOptions) => boolean; | ||||
| //# sourceMappingURL=has-magic.d.ts.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/has-magic.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/has-magic.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"has-magic.d.ts","sourceRoot":"","sources":["../../src/has-magic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEvC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,YACV,MAAM,GAAG,MAAM,EAAE,YACjB,WAAW,KACnB,OAQF,CAAA"} | ||||
							
								
								
									
										27
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/has-magic.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/has-magic.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| "use strict"; | ||||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| exports.hasMagic = void 0; | ||||
| const minimatch_1 = require("minimatch"); | ||||
| /** | ||||
|  * Return true if the patterns provided contain any magic glob characters, | ||||
|  * given the options provided. | ||||
|  * | ||||
|  * Brace expansion is not considered "magic" unless the `magicalBraces` option | ||||
|  * is set, as brace expansion just turns one string into an array of strings. | ||||
|  * So a pattern like `'x{a,b}y'` would return `false`, because `'xay'` and | ||||
|  * `'xby'` both do not contain any magic glob characters, and it's treated the | ||||
|  * same as if you had called it on `['xay', 'xby']`. When `magicalBraces:true` | ||||
|  * is in the options, brace expansion _is_ treated as a pattern having magic. | ||||
|  */ | ||||
| const hasMagic = (pattern, options = {}) => { | ||||
|     if (!Array.isArray(pattern)) { | ||||
|         pattern = [pattern]; | ||||
|     } | ||||
|     for (const p of pattern) { | ||||
|         if (new minimatch_1.Minimatch(p, options).hasMagic()) | ||||
|             return true; | ||||
|     } | ||||
|     return false; | ||||
| }; | ||||
| exports.hasMagic = hasMagic; | ||||
| //# sourceMappingURL=has-magic.js.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/has-magic.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/has-magic.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"has-magic.js","sourceRoot":"","sources":["../../src/has-magic.ts"],"names":[],"mappings":";;;AAAA,yCAAqC;AAGrC;;;;;;;;;;GAUG;AACI,MAAM,QAAQ,GAAG,CACtB,OAA0B,EAC1B,UAAuB,EAAE,EAChB,EAAE;IACX,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAA;IACrB,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,IAAI,qBAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE;YAAE,OAAO,IAAI,CAAA;IACvD,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAXY,QAAA,QAAQ,YAWpB","sourcesContent":["import { Minimatch } from 'minimatch'\nimport { GlobOptions } from './glob.js'\n\n/**\n * Return true if the patterns provided contain any magic glob characters,\n * given the options provided.\n *\n * Brace expansion is not considered \"magic\" unless the `magicalBraces` option\n * is set, as brace expansion just turns one string into an array of strings.\n * So a pattern like `'x{a,b}y'` would return `false`, because `'xay'` and\n * `'xby'` both do not contain any magic glob characters, and it's treated the\n * same as if you had called it on `['xay', 'xby']`. When `magicalBraces:true`\n * is in the options, brace expansion _is_ treated as a pattern having magic.\n */\nexport const hasMagic = (\n  pattern: string | string[],\n  options: GlobOptions = {},\n): boolean => {\n  if (!Array.isArray(pattern)) {\n    pattern = [pattern]\n  }\n  for (const p of pattern) {\n    if (new Minimatch(p, options).hasMagic()) return true\n  }\n  return false\n}\n"]} | ||||
							
								
								
									
										24
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/ignore.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/ignore.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| import { Minimatch, MinimatchOptions } from 'minimatch'; | ||||
| import { Path } from 'path-scurry'; | ||||
| import { GlobWalkerOpts } from './walker.js'; | ||||
| export interface IgnoreLike { | ||||
|     ignored?: (p: Path) => boolean; | ||||
|     childrenIgnored?: (p: Path) => boolean; | ||||
|     add?: (ignore: string) => void; | ||||
| } | ||||
| /** | ||||
|  * Class used to process ignored patterns | ||||
|  */ | ||||
| export declare class Ignore implements IgnoreLike { | ||||
|     relative: Minimatch[]; | ||||
|     relativeChildren: Minimatch[]; | ||||
|     absolute: Minimatch[]; | ||||
|     absoluteChildren: Minimatch[]; | ||||
|     platform: NodeJS.Platform; | ||||
|     mmopts: MinimatchOptions; | ||||
|     constructor(ignored: string[], { nobrace, nocase, noext, noglobstar, platform, }: GlobWalkerOpts); | ||||
|     add(ign: string): void; | ||||
|     ignored(p: Path): boolean; | ||||
|     childrenIgnored(p: Path): boolean; | ||||
| } | ||||
| //# sourceMappingURL=ignore.d.ts.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/ignore.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/ignore.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"ignore.d.ts","sourceRoot":"","sources":["../../src/ignore.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAA;IAC9B,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAA;IACtC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CAC/B;AAWD;;GAEG;AACH,qBAAa,MAAO,YAAW,UAAU;IACvC,QAAQ,EAAE,SAAS,EAAE,CAAA;IACrB,gBAAgB,EAAE,SAAS,EAAE,CAAA;IAC7B,QAAQ,EAAE,SAAS,EAAE,CAAA;IACrB,gBAAgB,EAAE,SAAS,EAAE,CAAA;IAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAA;IACzB,MAAM,EAAE,gBAAgB,CAAA;gBAGtB,OAAO,EAAE,MAAM,EAAE,EACjB,EACE,OAAO,EACP,MAAM,EACN,KAAK,EACL,UAAU,EACV,QAA0B,GAC3B,EAAE,cAAc;IAqBnB,GAAG,CAAC,GAAG,EAAE,MAAM;IAyCf,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO;IAczB,eAAe,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO;CAWlC"} | ||||
							
								
								
									
										119
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/ignore.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										119
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/ignore.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,119 @@ | ||||
| "use strict"; | ||||
| // give it a pattern, and it'll be able to tell you if | ||||
| // a given path should be ignored. | ||||
| // Ignoring a path ignores its children if the pattern ends in /** | ||||
| // Ignores are always parsed in dot:true mode | ||||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| exports.Ignore = void 0; | ||||
| const minimatch_1 = require("minimatch"); | ||||
| const pattern_js_1 = require("./pattern.js"); | ||||
| const defaultPlatform = (typeof process === 'object' && | ||||
|     process && | ||||
|     typeof process.platform === 'string') ? | ||||
|     process.platform | ||||
|     : 'linux'; | ||||
| /** | ||||
|  * Class used to process ignored patterns | ||||
|  */ | ||||
| class Ignore { | ||||
|     relative; | ||||
|     relativeChildren; | ||||
|     absolute; | ||||
|     absoluteChildren; | ||||
|     platform; | ||||
|     mmopts; | ||||
|     constructor(ignored, { nobrace, nocase, noext, noglobstar, platform = defaultPlatform, }) { | ||||
|         this.relative = []; | ||||
|         this.absolute = []; | ||||
|         this.relativeChildren = []; | ||||
|         this.absoluteChildren = []; | ||||
|         this.platform = platform; | ||||
|         this.mmopts = { | ||||
|             dot: true, | ||||
|             nobrace, | ||||
|             nocase, | ||||
|             noext, | ||||
|             noglobstar, | ||||
|             optimizationLevel: 2, | ||||
|             platform, | ||||
|             nocomment: true, | ||||
|             nonegate: true, | ||||
|         }; | ||||
|         for (const ign of ignored) | ||||
|             this.add(ign); | ||||
|     } | ||||
|     add(ign) { | ||||
|         // this is a little weird, but it gives us a clean set of optimized | ||||
|         // minimatch matchers, without getting tripped up if one of them | ||||
|         // ends in /** inside a brace section, and it's only inefficient at | ||||
|         // the start of the walk, not along it. | ||||
|         // It'd be nice if the Pattern class just had a .test() method, but | ||||
|         // handling globstars is a bit of a pita, and that code already lives | ||||
|         // in minimatch anyway. | ||||
|         // Another way would be if maybe Minimatch could take its set/globParts | ||||
|         // as an option, and then we could at least just use Pattern to test | ||||
|         // for absolute-ness. | ||||
|         // Yet another way, Minimatch could take an array of glob strings, and | ||||
|         // a cwd option, and do the right thing. | ||||
|         const mm = new minimatch_1.Minimatch(ign, this.mmopts); | ||||
|         for (let i = 0; i < mm.set.length; i++) { | ||||
|             const parsed = mm.set[i]; | ||||
|             const globParts = mm.globParts[i]; | ||||
|             /* c8 ignore start */ | ||||
|             if (!parsed || !globParts) { | ||||
|                 throw new Error('invalid pattern object'); | ||||
|             } | ||||
|             // strip off leading ./ portions | ||||
|             // https://github.com/isaacs/node-glob/issues/570 | ||||
|             while (parsed[0] === '.' && globParts[0] === '.') { | ||||
|                 parsed.shift(); | ||||
|                 globParts.shift(); | ||||
|             } | ||||
|             /* c8 ignore stop */ | ||||
|             const p = new pattern_js_1.Pattern(parsed, globParts, 0, this.platform); | ||||
|             const m = new minimatch_1.Minimatch(p.globString(), this.mmopts); | ||||
|             const children = globParts[globParts.length - 1] === '**'; | ||||
|             const absolute = p.isAbsolute(); | ||||
|             if (absolute) | ||||
|                 this.absolute.push(m); | ||||
|             else | ||||
|                 this.relative.push(m); | ||||
|             if (children) { | ||||
|                 if (absolute) | ||||
|                     this.absoluteChildren.push(m); | ||||
|                 else | ||||
|                     this.relativeChildren.push(m); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     ignored(p) { | ||||
|         const fullpath = p.fullpath(); | ||||
|         const fullpaths = `${fullpath}/`; | ||||
|         const relative = p.relative() || '.'; | ||||
|         const relatives = `${relative}/`; | ||||
|         for (const m of this.relative) { | ||||
|             if (m.match(relative) || m.match(relatives)) | ||||
|                 return true; | ||||
|         } | ||||
|         for (const m of this.absolute) { | ||||
|             if (m.match(fullpath) || m.match(fullpaths)) | ||||
|                 return true; | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
|     childrenIgnored(p) { | ||||
|         const fullpath = p.fullpath() + '/'; | ||||
|         const relative = (p.relative() || '.') + '/'; | ||||
|         for (const m of this.relativeChildren) { | ||||
|             if (m.match(relative)) | ||||
|                 return true; | ||||
|         } | ||||
|         for (const m of this.absoluteChildren) { | ||||
|             if (m.match(fullpath)) | ||||
|                 return true; | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
| } | ||||
| exports.Ignore = Ignore; | ||||
| //# sourceMappingURL=ignore.js.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/ignore.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/ignore.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										97
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/index.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/index.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,97 @@ | ||||
| import { Minipass } from 'minipass'; | ||||
| import { Path } from 'path-scurry'; | ||||
| import type { GlobOptions, GlobOptionsWithFileTypesFalse, GlobOptionsWithFileTypesTrue, GlobOptionsWithFileTypesUnset } from './glob.js'; | ||||
| import { Glob } from './glob.js'; | ||||
| export { escape, unescape } from 'minimatch'; | ||||
| export type { FSOption, Path, WalkOptions, WalkOptionsWithFileTypesTrue, WalkOptionsWithFileTypesUnset, } from 'path-scurry'; | ||||
| export { Glob } from './glob.js'; | ||||
| export type { GlobOptions, GlobOptionsWithFileTypesFalse, GlobOptionsWithFileTypesTrue, GlobOptionsWithFileTypesUnset, } from './glob.js'; | ||||
| export { hasMagic } from './has-magic.js'; | ||||
| export { Ignore } from './ignore.js'; | ||||
| export type { IgnoreLike } from './ignore.js'; | ||||
| export type { MatchStream } from './walker.js'; | ||||
| /** | ||||
|  * Syncronous form of {@link globStream}. Will read all the matches as fast as | ||||
|  * you consume them, even all in a single tick if you consume them immediately, | ||||
|  * but will still respond to backpressure if they're not consumed immediately. | ||||
|  */ | ||||
| export declare function globStreamSync(pattern: string | string[], options: GlobOptionsWithFileTypesTrue): Minipass<Path, Path>; | ||||
| export declare function globStreamSync(pattern: string | string[], options: GlobOptionsWithFileTypesFalse): Minipass<string, string>; | ||||
| export declare function globStreamSync(pattern: string | string[], options: GlobOptionsWithFileTypesUnset): Minipass<string, string>; | ||||
| export declare function globStreamSync(pattern: string | string[], options: GlobOptions): Minipass<Path, Path> | Minipass<string, string>; | ||||
| /** | ||||
|  * Return a stream that emits all the strings or `Path` objects and | ||||
|  * then emits `end` when completed. | ||||
|  */ | ||||
| export declare function globStream(pattern: string | string[], options: GlobOptionsWithFileTypesFalse): Minipass<string, string>; | ||||
| export declare function globStream(pattern: string | string[], options: GlobOptionsWithFileTypesTrue): Minipass<Path, Path>; | ||||
| export declare function globStream(pattern: string | string[], options?: GlobOptionsWithFileTypesUnset | undefined): Minipass<string, string>; | ||||
| export declare function globStream(pattern: string | string[], options: GlobOptions): Minipass<Path, Path> | Minipass<string, string>; | ||||
| /** | ||||
|  * Synchronous form of {@link glob} | ||||
|  */ | ||||
| export declare function globSync(pattern: string | string[], options: GlobOptionsWithFileTypesFalse): string[]; | ||||
| export declare function globSync(pattern: string | string[], options: GlobOptionsWithFileTypesTrue): Path[]; | ||||
| export declare function globSync(pattern: string | string[], options?: GlobOptionsWithFileTypesUnset | undefined): string[]; | ||||
| export declare function globSync(pattern: string | string[], options: GlobOptions): Path[] | string[]; | ||||
| /** | ||||
|  * Perform an asynchronous glob search for the pattern(s) specified. Returns | ||||
|  * [Path](https://isaacs.github.io/path-scurry/classes/PathBase) objects if the | ||||
|  * {@link withFileTypes} option is set to `true`. See {@link GlobOptions} for | ||||
|  * full option descriptions. | ||||
|  */ | ||||
| declare function glob_(pattern: string | string[], options?: GlobOptionsWithFileTypesUnset | undefined): Promise<string[]>; | ||||
| declare function glob_(pattern: string | string[], options: GlobOptionsWithFileTypesTrue): Promise<Path[]>; | ||||
| declare function glob_(pattern: string | string[], options: GlobOptionsWithFileTypesFalse): Promise<string[]>; | ||||
| declare function glob_(pattern: string | string[], options: GlobOptions): Promise<Path[] | string[]>; | ||||
| /** | ||||
|  * Return a sync iterator for walking glob pattern matches. | ||||
|  */ | ||||
| export declare function globIterateSync(pattern: string | string[], options?: GlobOptionsWithFileTypesUnset | undefined): Generator<string, void, void>; | ||||
| export declare function globIterateSync(pattern: string | string[], options: GlobOptionsWithFileTypesTrue): Generator<Path, void, void>; | ||||
| export declare function globIterateSync(pattern: string | string[], options: GlobOptionsWithFileTypesFalse): Generator<string, void, void>; | ||||
| export declare function globIterateSync(pattern: string | string[], options: GlobOptions): Generator<Path, void, void> | Generator<string, void, void>; | ||||
| /** | ||||
|  * Return an async iterator for walking glob pattern matches. | ||||
|  */ | ||||
| export declare function globIterate(pattern: string | string[], options?: GlobOptionsWithFileTypesUnset | undefined): AsyncGenerator<string, void, void>; | ||||
| export declare function globIterate(pattern: string | string[], options: GlobOptionsWithFileTypesTrue): AsyncGenerator<Path, void, void>; | ||||
| export declare function globIterate(pattern: string | string[], options: GlobOptionsWithFileTypesFalse): AsyncGenerator<string, void, void>; | ||||
| export declare function globIterate(pattern: string | string[], options: GlobOptions): AsyncGenerator<Path, void, void> | AsyncGenerator<string, void, void>; | ||||
| export declare const streamSync: typeof globStreamSync; | ||||
| export declare const stream: typeof globStream & { | ||||
|     sync: typeof globStreamSync; | ||||
| }; | ||||
| export declare const iterateSync: typeof globIterateSync; | ||||
| export declare const iterate: typeof globIterate & { | ||||
|     sync: typeof globIterateSync; | ||||
| }; | ||||
| export declare const sync: typeof globSync & { | ||||
|     stream: typeof globStreamSync; | ||||
|     iterate: typeof globIterateSync; | ||||
| }; | ||||
| export declare const glob: typeof glob_ & { | ||||
|     glob: typeof glob_; | ||||
|     globSync: typeof globSync; | ||||
|     sync: typeof globSync & { | ||||
|         stream: typeof globStreamSync; | ||||
|         iterate: typeof globIterateSync; | ||||
|     }; | ||||
|     globStream: typeof globStream; | ||||
|     stream: typeof globStream & { | ||||
|         sync: typeof globStreamSync; | ||||
|     }; | ||||
|     globStreamSync: typeof globStreamSync; | ||||
|     streamSync: typeof globStreamSync; | ||||
|     globIterate: typeof globIterate; | ||||
|     iterate: typeof globIterate & { | ||||
|         sync: typeof globIterateSync; | ||||
|     }; | ||||
|     globIterateSync: typeof globIterateSync; | ||||
|     iterateSync: typeof globIterateSync; | ||||
|     Glob: typeof Glob; | ||||
|     hasMagic: (pattern: string | string[], options?: GlobOptions) => boolean; | ||||
|     escape: (s: string, { windowsPathsNoEscape, }?: Pick<import("minimatch").MinimatchOptions, "windowsPathsNoEscape">) => string; | ||||
|     unescape: (s: string, { windowsPathsNoEscape, }?: Pick<import("minimatch").MinimatchOptions, "windowsPathsNoEscape">) => string; | ||||
| }; | ||||
| //# sourceMappingURL=index.d.ts.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/index.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/index.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"} | ||||
							
								
								
									
										68
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,68 @@ | ||||
| "use strict"; | ||||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| exports.glob = exports.sync = exports.iterate = exports.iterateSync = exports.stream = exports.streamSync = exports.Ignore = exports.hasMagic = exports.Glob = exports.unescape = exports.escape = void 0; | ||||
| exports.globStreamSync = globStreamSync; | ||||
| exports.globStream = globStream; | ||||
| exports.globSync = globSync; | ||||
| exports.globIterateSync = globIterateSync; | ||||
| exports.globIterate = globIterate; | ||||
| const minimatch_1 = require("minimatch"); | ||||
| const glob_js_1 = require("./glob.js"); | ||||
| const has_magic_js_1 = require("./has-magic.js"); | ||||
| var minimatch_2 = require("minimatch"); | ||||
| Object.defineProperty(exports, "escape", { enumerable: true, get: function () { return minimatch_2.escape; } }); | ||||
| Object.defineProperty(exports, "unescape", { enumerable: true, get: function () { return minimatch_2.unescape; } }); | ||||
| var glob_js_2 = require("./glob.js"); | ||||
| Object.defineProperty(exports, "Glob", { enumerable: true, get: function () { return glob_js_2.Glob; } }); | ||||
| var has_magic_js_2 = require("./has-magic.js"); | ||||
| Object.defineProperty(exports, "hasMagic", { enumerable: true, get: function () { return has_magic_js_2.hasMagic; } }); | ||||
| var ignore_js_1 = require("./ignore.js"); | ||||
| Object.defineProperty(exports, "Ignore", { enumerable: true, get: function () { return ignore_js_1.Ignore; } }); | ||||
| function globStreamSync(pattern, options = {}) { | ||||
|     return new glob_js_1.Glob(pattern, options).streamSync(); | ||||
| } | ||||
| function globStream(pattern, options = {}) { | ||||
|     return new glob_js_1.Glob(pattern, options).stream(); | ||||
| } | ||||
| function globSync(pattern, options = {}) { | ||||
|     return new glob_js_1.Glob(pattern, options).walkSync(); | ||||
| } | ||||
| async function glob_(pattern, options = {}) { | ||||
|     return new glob_js_1.Glob(pattern, options).walk(); | ||||
| } | ||||
| function globIterateSync(pattern, options = {}) { | ||||
|     return new glob_js_1.Glob(pattern, options).iterateSync(); | ||||
| } | ||||
| function globIterate(pattern, options = {}) { | ||||
|     return new glob_js_1.Glob(pattern, options).iterate(); | ||||
| } | ||||
| // aliases: glob.sync.stream() glob.stream.sync() glob.sync() etc | ||||
| exports.streamSync = globStreamSync; | ||||
| exports.stream = Object.assign(globStream, { sync: globStreamSync }); | ||||
| exports.iterateSync = globIterateSync; | ||||
| exports.iterate = Object.assign(globIterate, { | ||||
|     sync: globIterateSync, | ||||
| }); | ||||
| exports.sync = Object.assign(globSync, { | ||||
|     stream: globStreamSync, | ||||
|     iterate: globIterateSync, | ||||
| }); | ||||
| exports.glob = Object.assign(glob_, { | ||||
|     glob: glob_, | ||||
|     globSync, | ||||
|     sync: exports.sync, | ||||
|     globStream, | ||||
|     stream: exports.stream, | ||||
|     globStreamSync, | ||||
|     streamSync: exports.streamSync, | ||||
|     globIterate, | ||||
|     iterate: exports.iterate, | ||||
|     globIterateSync, | ||||
|     iterateSync: exports.iterateSync, | ||||
|     Glob: glob_js_1.Glob, | ||||
|     hasMagic: has_magic_js_1.hasMagic, | ||||
|     escape: minimatch_1.escape, | ||||
|     unescape: minimatch_1.unescape, | ||||
| }); | ||||
| exports.glob.glob = exports.glob; | ||||
| //# sourceMappingURL=index.js.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/index.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/index.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										3
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| { | ||||
|   "type": "commonjs" | ||||
| } | ||||
							
								
								
									
										76
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/pattern.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/pattern.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,76 @@ | ||||
| import { GLOBSTAR } from 'minimatch'; | ||||
| export type MMPattern = string | RegExp | typeof GLOBSTAR; | ||||
| export type PatternList = [p: MMPattern, ...rest: MMPattern[]]; | ||||
| export type UNCPatternList = [ | ||||
|     p0: '', | ||||
|     p1: '', | ||||
|     p2: string, | ||||
|     p3: string, | ||||
|     ...rest: MMPattern[] | ||||
| ]; | ||||
| export type DrivePatternList = [p0: string, ...rest: MMPattern[]]; | ||||
| export type AbsolutePatternList = [p0: '', ...rest: MMPattern[]]; | ||||
| export type GlobList = [p: string, ...rest: string[]]; | ||||
| /** | ||||
|  * An immutable-ish view on an array of glob parts and their parsed | ||||
|  * results | ||||
|  */ | ||||
| export declare class Pattern { | ||||
|     #private; | ||||
|     readonly length: number; | ||||
|     constructor(patternList: MMPattern[], globList: string[], index: number, platform: NodeJS.Platform); | ||||
|     /** | ||||
|      * The first entry in the parsed list of patterns | ||||
|      */ | ||||
|     pattern(): MMPattern; | ||||
|     /** | ||||
|      * true of if pattern() returns a string | ||||
|      */ | ||||
|     isString(): boolean; | ||||
|     /** | ||||
|      * true of if pattern() returns GLOBSTAR | ||||
|      */ | ||||
|     isGlobstar(): boolean; | ||||
|     /** | ||||
|      * true if pattern() returns a regexp | ||||
|      */ | ||||
|     isRegExp(): boolean; | ||||
|     /** | ||||
|      * The /-joined set of glob parts that make up this pattern | ||||
|      */ | ||||
|     globString(): string; | ||||
|     /** | ||||
|      * true if there are more pattern parts after this one | ||||
|      */ | ||||
|     hasMore(): boolean; | ||||
|     /** | ||||
|      * The rest of the pattern after this part, or null if this is the end | ||||
|      */ | ||||
|     rest(): Pattern | null; | ||||
|     /** | ||||
|      * true if the pattern represents a //unc/path/ on windows | ||||
|      */ | ||||
|     isUNC(): boolean; | ||||
|     /** | ||||
|      * True if the pattern starts with a drive letter on Windows | ||||
|      */ | ||||
|     isDrive(): boolean; | ||||
|     /** | ||||
|      * True if the pattern is rooted on an absolute path | ||||
|      */ | ||||
|     isAbsolute(): boolean; | ||||
|     /** | ||||
|      * consume the root of the pattern, and return it | ||||
|      */ | ||||
|     root(): string; | ||||
|     /** | ||||
|      * Check to see if the current globstar pattern is allowed to follow | ||||
|      * a symbolic link. | ||||
|      */ | ||||
|     checkFollowGlobstar(): boolean; | ||||
|     /** | ||||
|      * Mark that the current globstar pattern is following a symbolic link | ||||
|      */ | ||||
|     markFollowGlobstar(): boolean; | ||||
| } | ||||
| //# sourceMappingURL=pattern.d.ts.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/pattern.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/pattern.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"pattern.d.ts","sourceRoot":"","sources":["../../src/pattern.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,QAAQ,CAAA;AAGzD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AAC9D,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,GAAG,IAAI,EAAE,SAAS,EAAE;CACrB,CAAA;AACD,MAAM,MAAM,gBAAgB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AACjE,MAAM,MAAM,mBAAmB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AAChE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;AAMrD;;;GAGG;AACH,qBAAa,OAAO;;IAIlB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;gBAUrB,WAAW,EAAE,SAAS,EAAE,EACxB,QAAQ,EAAE,MAAM,EAAE,EAClB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;IA6D3B;;OAEG;IACH,OAAO,IAAI,SAAS;IAIpB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAGnB;;OAEG;IACH,UAAU,IAAI,OAAO;IAGrB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,UAAU,IAAI,MAAM;IAUpB;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,IAAI,IAAI,OAAO,GAAG,IAAI;IAetB;;OAEG;IACH,KAAK,IAAI,OAAO;IAoBhB;;OAEG;IACH,OAAO,IAAI,OAAO;IAelB;;OAEG;IACH,UAAU,IAAI,OAAO;IAUrB;;OAEG;IACH,IAAI,IAAI,MAAM;IASd;;;OAGG;IACH,mBAAmB,IAAI,OAAO;IAQ9B;;OAEG;IACH,kBAAkB,IAAI,OAAO;CAM9B"} | ||||
							
								
								
									
										219
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/pattern.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										219
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/pattern.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,219 @@ | ||||
| "use strict"; | ||||
| // this is just a very light wrapper around 2 arrays with an offset index | ||||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| exports.Pattern = void 0; | ||||
| const minimatch_1 = require("minimatch"); | ||||
| const isPatternList = (pl) => pl.length >= 1; | ||||
| const isGlobList = (gl) => gl.length >= 1; | ||||
| /** | ||||
|  * An immutable-ish view on an array of glob parts and their parsed | ||||
|  * results | ||||
|  */ | ||||
| class Pattern { | ||||
|     #patternList; | ||||
|     #globList; | ||||
|     #index; | ||||
|     length; | ||||
|     #platform; | ||||
|     #rest; | ||||
|     #globString; | ||||
|     #isDrive; | ||||
|     #isUNC; | ||||
|     #isAbsolute; | ||||
|     #followGlobstar = true; | ||||
|     constructor(patternList, globList, index, platform) { | ||||
|         if (!isPatternList(patternList)) { | ||||
|             throw new TypeError('empty pattern list'); | ||||
|         } | ||||
|         if (!isGlobList(globList)) { | ||||
|             throw new TypeError('empty glob list'); | ||||
|         } | ||||
|         if (globList.length !== patternList.length) { | ||||
|             throw new TypeError('mismatched pattern list and glob list lengths'); | ||||
|         } | ||||
|         this.length = patternList.length; | ||||
|         if (index < 0 || index >= this.length) { | ||||
|             throw new TypeError('index out of range'); | ||||
|         } | ||||
|         this.#patternList = patternList; | ||||
|         this.#globList = globList; | ||||
|         this.#index = index; | ||||
|         this.#platform = platform; | ||||
|         // normalize root entries of absolute patterns on initial creation. | ||||
|         if (this.#index === 0) { | ||||
|             // c: => ['c:/'] | ||||
|             // C:/ => ['C:/'] | ||||
|             // C:/x => ['C:/', 'x'] | ||||
|             // //host/share => ['//host/share/'] | ||||
|             // //host/share/ => ['//host/share/'] | ||||
|             // //host/share/x => ['//host/share/', 'x'] | ||||
|             // /etc => ['/', 'etc'] | ||||
|             // / => ['/'] | ||||
|             if (this.isUNC()) { | ||||
|                 // '' / '' / 'host' / 'share' | ||||
|                 const [p0, p1, p2, p3, ...prest] = this.#patternList; | ||||
|                 const [g0, g1, g2, g3, ...grest] = this.#globList; | ||||
|                 if (prest[0] === '') { | ||||
|                     // ends in / | ||||
|                     prest.shift(); | ||||
|                     grest.shift(); | ||||
|                 } | ||||
|                 const p = [p0, p1, p2, p3, ''].join('/'); | ||||
|                 const g = [g0, g1, g2, g3, ''].join('/'); | ||||
|                 this.#patternList = [p, ...prest]; | ||||
|                 this.#globList = [g, ...grest]; | ||||
|                 this.length = this.#patternList.length; | ||||
|             } | ||||
|             else if (this.isDrive() || this.isAbsolute()) { | ||||
|                 const [p1, ...prest] = this.#patternList; | ||||
|                 const [g1, ...grest] = this.#globList; | ||||
|                 if (prest[0] === '') { | ||||
|                     // ends in / | ||||
|                     prest.shift(); | ||||
|                     grest.shift(); | ||||
|                 } | ||||
|                 const p = p1 + '/'; | ||||
|                 const g = g1 + '/'; | ||||
|                 this.#patternList = [p, ...prest]; | ||||
|                 this.#globList = [g, ...grest]; | ||||
|                 this.length = this.#patternList.length; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     /** | ||||
|      * The first entry in the parsed list of patterns | ||||
|      */ | ||||
|     pattern() { | ||||
|         return this.#patternList[this.#index]; | ||||
|     } | ||||
|     /** | ||||
|      * true of if pattern() returns a string | ||||
|      */ | ||||
|     isString() { | ||||
|         return typeof this.#patternList[this.#index] === 'string'; | ||||
|     } | ||||
|     /** | ||||
|      * true of if pattern() returns GLOBSTAR | ||||
|      */ | ||||
|     isGlobstar() { | ||||
|         return this.#patternList[this.#index] === minimatch_1.GLOBSTAR; | ||||
|     } | ||||
|     /** | ||||
|      * true if pattern() returns a regexp | ||||
|      */ | ||||
|     isRegExp() { | ||||
|         return this.#patternList[this.#index] instanceof RegExp; | ||||
|     } | ||||
|     /** | ||||
|      * The /-joined set of glob parts that make up this pattern | ||||
|      */ | ||||
|     globString() { | ||||
|         return (this.#globString = | ||||
|             this.#globString || | ||||
|                 (this.#index === 0 ? | ||||
|                     this.isAbsolute() ? | ||||
|                         this.#globList[0] + this.#globList.slice(1).join('/') | ||||
|                         : this.#globList.join('/') | ||||
|                     : this.#globList.slice(this.#index).join('/'))); | ||||
|     } | ||||
|     /** | ||||
|      * true if there are more pattern parts after this one | ||||
|      */ | ||||
|     hasMore() { | ||||
|         return this.length > this.#index + 1; | ||||
|     } | ||||
|     /** | ||||
|      * The rest of the pattern after this part, or null if this is the end | ||||
|      */ | ||||
|     rest() { | ||||
|         if (this.#rest !== undefined) | ||||
|             return this.#rest; | ||||
|         if (!this.hasMore()) | ||||
|             return (this.#rest = null); | ||||
|         this.#rest = new Pattern(this.#patternList, this.#globList, this.#index + 1, this.#platform); | ||||
|         this.#rest.#isAbsolute = this.#isAbsolute; | ||||
|         this.#rest.#isUNC = this.#isUNC; | ||||
|         this.#rest.#isDrive = this.#isDrive; | ||||
|         return this.#rest; | ||||
|     } | ||||
|     /** | ||||
|      * true if the pattern represents a //unc/path/ on windows | ||||
|      */ | ||||
|     isUNC() { | ||||
|         const pl = this.#patternList; | ||||
|         return this.#isUNC !== undefined ? | ||||
|             this.#isUNC | ||||
|             : (this.#isUNC = | ||||
|                 this.#platform === 'win32' && | ||||
|                     this.#index === 0 && | ||||
|                     pl[0] === '' && | ||||
|                     pl[1] === '' && | ||||
|                     typeof pl[2] === 'string' && | ||||
|                     !!pl[2] && | ||||
|                     typeof pl[3] === 'string' && | ||||
|                     !!pl[3]); | ||||
|     } | ||||
|     // pattern like C:/... | ||||
|     // split = ['C:', ...] | ||||
|     // XXX: would be nice to handle patterns like `c:*` to test the cwd | ||||
|     // in c: for *, but I don't know of a way to even figure out what that | ||||
|     // cwd is without actually chdir'ing into it? | ||||
|     /** | ||||
|      * True if the pattern starts with a drive letter on Windows | ||||
|      */ | ||||
|     isDrive() { | ||||
|         const pl = this.#patternList; | ||||
|         return this.#isDrive !== undefined ? | ||||
|             this.#isDrive | ||||
|             : (this.#isDrive = | ||||
|                 this.#platform === 'win32' && | ||||
|                     this.#index === 0 && | ||||
|                     this.length > 1 && | ||||
|                     typeof pl[0] === 'string' && | ||||
|                     /^[a-z]:$/i.test(pl[0])); | ||||
|     } | ||||
|     // pattern = '/' or '/...' or '/x/...' | ||||
|     // split = ['', ''] or ['', ...] or ['', 'x', ...] | ||||
|     // Drive and UNC both considered absolute on windows | ||||
|     /** | ||||
|      * True if the pattern is rooted on an absolute path | ||||
|      */ | ||||
|     isAbsolute() { | ||||
|         const pl = this.#patternList; | ||||
|         return this.#isAbsolute !== undefined ? | ||||
|             this.#isAbsolute | ||||
|             : (this.#isAbsolute = | ||||
|                 (pl[0] === '' && pl.length > 1) || | ||||
|                     this.isDrive() || | ||||
|                     this.isUNC()); | ||||
|     } | ||||
|     /** | ||||
|      * consume the root of the pattern, and return it | ||||
|      */ | ||||
|     root() { | ||||
|         const p = this.#patternList[0]; | ||||
|         return (typeof p === 'string' && this.isAbsolute() && this.#index === 0) ? | ||||
|             p | ||||
|             : ''; | ||||
|     } | ||||
|     /** | ||||
|      * Check to see if the current globstar pattern is allowed to follow | ||||
|      * a symbolic link. | ||||
|      */ | ||||
|     checkFollowGlobstar() { | ||||
|         return !(this.#index === 0 || | ||||
|             !this.isGlobstar() || | ||||
|             !this.#followGlobstar); | ||||
|     } | ||||
|     /** | ||||
|      * Mark that the current globstar pattern is following a symbolic link | ||||
|      */ | ||||
|     markFollowGlobstar() { | ||||
|         if (this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar) | ||||
|             return false; | ||||
|         this.#followGlobstar = false; | ||||
|         return true; | ||||
|     } | ||||
| } | ||||
| exports.Pattern = Pattern; | ||||
| //# sourceMappingURL=pattern.js.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/pattern.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/pattern.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										59
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/processor.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/processor.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,59 @@ | ||||
| import { MMRegExp } from 'minimatch'; | ||||
| import { Path } from 'path-scurry'; | ||||
| import { Pattern } from './pattern.js'; | ||||
| import { GlobWalkerOpts } from './walker.js'; | ||||
| /** | ||||
|  * A cache of which patterns have been processed for a given Path | ||||
|  */ | ||||
| export declare class HasWalkedCache { | ||||
|     store: Map<string, Set<string>>; | ||||
|     constructor(store?: Map<string, Set<string>>); | ||||
|     copy(): HasWalkedCache; | ||||
|     hasWalked(target: Path, pattern: Pattern): boolean | undefined; | ||||
|     storeWalked(target: Path, pattern: Pattern): void; | ||||
| } | ||||
| /** | ||||
|  * A record of which paths have been matched in a given walk step, | ||||
|  * and whether they only are considered a match if they are a directory, | ||||
|  * and whether their absolute or relative path should be returned. | ||||
|  */ | ||||
| export declare class MatchRecord { | ||||
|     store: Map<Path, number>; | ||||
|     add(target: Path, absolute: boolean, ifDir: boolean): void; | ||||
|     entries(): [Path, boolean, boolean][]; | ||||
| } | ||||
| /** | ||||
|  * A collection of patterns that must be processed in a subsequent step | ||||
|  * for a given path. | ||||
|  */ | ||||
| export declare class SubWalks { | ||||
|     store: Map<Path, Pattern[]>; | ||||
|     add(target: Path, pattern: Pattern): void; | ||||
|     get(target: Path): Pattern[]; | ||||
|     entries(): [Path, Pattern[]][]; | ||||
|     keys(): Path[]; | ||||
| } | ||||
| /** | ||||
|  * The class that processes patterns for a given path. | ||||
|  * | ||||
|  * Handles child entry filtering, and determining whether a path's | ||||
|  * directory contents must be read. | ||||
|  */ | ||||
| export declare class Processor { | ||||
|     hasWalkedCache: HasWalkedCache; | ||||
|     matches: MatchRecord; | ||||
|     subwalks: SubWalks; | ||||
|     patterns?: Pattern[]; | ||||
|     follow: boolean; | ||||
|     dot: boolean; | ||||
|     opts: GlobWalkerOpts; | ||||
|     constructor(opts: GlobWalkerOpts, hasWalkedCache?: HasWalkedCache); | ||||
|     processPatterns(target: Path, patterns: Pattern[]): this; | ||||
|     subwalkTargets(): Path[]; | ||||
|     child(): Processor; | ||||
|     filterEntries(parent: Path, entries: Path[]): Processor; | ||||
|     testGlobstar(e: Path, pattern: Pattern, rest: Pattern | null, absolute: boolean): void; | ||||
|     testRegExp(e: Path, p: MMRegExp, rest: Pattern | null, absolute: boolean): void; | ||||
|     testString(e: Path, p: string, rest: Pattern | null, absolute: boolean): void; | ||||
| } | ||||
| //# sourceMappingURL=processor.d.ts.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/processor.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/processor.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../src/processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,QAAQ,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAa,OAAO,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C;;GAEG;AACH,qBAAa,cAAc;IACzB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;gBACnB,KAAK,GAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IAGvD,IAAI;IAGJ,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;IAGxC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;CAM3C;AAED;;;;GAIG;AACH,qBAAa,WAAW;IACtB,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAY;IACpC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;IAMnD,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;CAOtC;AAED;;;GAGG;AACH,qBAAa,QAAQ;IACnB,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAY;IACvC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;IAWlC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,EAAE;IAS5B,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;IAG9B,IAAI,IAAI,IAAI,EAAE;CAGf;AAED;;;;;GAKG;AACH,qBAAa,SAAS;IACpB,cAAc,EAAE,cAAc,CAAA;IAC9B,OAAO,cAAoB;IAC3B,QAAQ,WAAiB;IACzB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB,MAAM,EAAE,OAAO,CAAA;IACf,GAAG,EAAE,OAAO,CAAA;IACZ,IAAI,EAAE,cAAc,CAAA;gBAER,IAAI,EAAE,cAAc,EAAE,cAAc,CAAC,EAAE,cAAc;IAQjE,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;IAmGjD,cAAc,IAAI,IAAI,EAAE;IAIxB,KAAK;IAQL,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,SAAS;IAqBvD,YAAY,CACV,CAAC,EAAE,IAAI,EACP,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,GAAG,IAAI,EACpB,QAAQ,EAAE,OAAO;IA8CnB,UAAU,CACR,CAAC,EAAE,IAAI,EACP,CAAC,EAAE,QAAQ,EACX,IAAI,EAAE,OAAO,GAAG,IAAI,EACpB,QAAQ,EAAE,OAAO;IAUnB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO;CASvE"} | ||||
							
								
								
									
										301
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/processor.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										301
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/processor.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,301 @@ | ||||
| "use strict"; | ||||
| // synchronous utility for filtering entries and calculating subwalks | ||||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| exports.Processor = exports.SubWalks = exports.MatchRecord = exports.HasWalkedCache = void 0; | ||||
| const minimatch_1 = require("minimatch"); | ||||
| /** | ||||
|  * A cache of which patterns have been processed for a given Path | ||||
|  */ | ||||
| class HasWalkedCache { | ||||
|     store; | ||||
|     constructor(store = new Map()) { | ||||
|         this.store = store; | ||||
|     } | ||||
|     copy() { | ||||
|         return new HasWalkedCache(new Map(this.store)); | ||||
|     } | ||||
|     hasWalked(target, pattern) { | ||||
|         return this.store.get(target.fullpath())?.has(pattern.globString()); | ||||
|     } | ||||
|     storeWalked(target, pattern) { | ||||
|         const fullpath = target.fullpath(); | ||||
|         const cached = this.store.get(fullpath); | ||||
|         if (cached) | ||||
|             cached.add(pattern.globString()); | ||||
|         else | ||||
|             this.store.set(fullpath, new Set([pattern.globString()])); | ||||
|     } | ||||
| } | ||||
| exports.HasWalkedCache = HasWalkedCache; | ||||
| /** | ||||
|  * A record of which paths have been matched in a given walk step, | ||||
|  * and whether they only are considered a match if they are a directory, | ||||
|  * and whether their absolute or relative path should be returned. | ||||
|  */ | ||||
| class MatchRecord { | ||||
|     store = new Map(); | ||||
|     add(target, absolute, ifDir) { | ||||
|         const n = (absolute ? 2 : 0) | (ifDir ? 1 : 0); | ||||
|         const current = this.store.get(target); | ||||
|         this.store.set(target, current === undefined ? n : n & current); | ||||
|     } | ||||
|     // match, absolute, ifdir | ||||
|     entries() { | ||||
|         return [...this.store.entries()].map(([path, n]) => [ | ||||
|             path, | ||||
|             !!(n & 2), | ||||
|             !!(n & 1), | ||||
|         ]); | ||||
|     } | ||||
| } | ||||
| exports.MatchRecord = MatchRecord; | ||||
| /** | ||||
|  * A collection of patterns that must be processed in a subsequent step | ||||
|  * for a given path. | ||||
|  */ | ||||
| class SubWalks { | ||||
|     store = new Map(); | ||||
|     add(target, pattern) { | ||||
|         if (!target.canReaddir()) { | ||||
|             return; | ||||
|         } | ||||
|         const subs = this.store.get(target); | ||||
|         if (subs) { | ||||
|             if (!subs.find(p => p.globString() === pattern.globString())) { | ||||
|                 subs.push(pattern); | ||||
|             } | ||||
|         } | ||||
|         else | ||||
|             this.store.set(target, [pattern]); | ||||
|     } | ||||
|     get(target) { | ||||
|         const subs = this.store.get(target); | ||||
|         /* c8 ignore start */ | ||||
|         if (!subs) { | ||||
|             throw new Error('attempting to walk unknown path'); | ||||
|         } | ||||
|         /* c8 ignore stop */ | ||||
|         return subs; | ||||
|     } | ||||
|     entries() { | ||||
|         return this.keys().map(k => [k, this.store.get(k)]); | ||||
|     } | ||||
|     keys() { | ||||
|         return [...this.store.keys()].filter(t => t.canReaddir()); | ||||
|     } | ||||
| } | ||||
| exports.SubWalks = SubWalks; | ||||
| /** | ||||
|  * The class that processes patterns for a given path. | ||||
|  * | ||||
|  * Handles child entry filtering, and determining whether a path's | ||||
|  * directory contents must be read. | ||||
|  */ | ||||
| class Processor { | ||||
|     hasWalkedCache; | ||||
|     matches = new MatchRecord(); | ||||
|     subwalks = new SubWalks(); | ||||
|     patterns; | ||||
|     follow; | ||||
|     dot; | ||||
|     opts; | ||||
|     constructor(opts, hasWalkedCache) { | ||||
|         this.opts = opts; | ||||
|         this.follow = !!opts.follow; | ||||
|         this.dot = !!opts.dot; | ||||
|         this.hasWalkedCache = | ||||
|             hasWalkedCache ? hasWalkedCache.copy() : new HasWalkedCache(); | ||||
|     } | ||||
|     processPatterns(target, patterns) { | ||||
|         this.patterns = patterns; | ||||
|         const processingSet = patterns.map(p => [target, p]); | ||||
|         // map of paths to the magic-starting subwalks they need to walk | ||||
|         // first item in patterns is the filter | ||||
|         for (let [t, pattern] of processingSet) { | ||||
|             this.hasWalkedCache.storeWalked(t, pattern); | ||||
|             const root = pattern.root(); | ||||
|             const absolute = pattern.isAbsolute() && this.opts.absolute !== false; | ||||
|             // start absolute patterns at root | ||||
|             if (root) { | ||||
|                 t = t.resolve(root === '/' && this.opts.root !== undefined ? | ||||
|                     this.opts.root | ||||
|                     : root); | ||||
|                 const rest = pattern.rest(); | ||||
|                 if (!rest) { | ||||
|                     this.matches.add(t, true, false); | ||||
|                     continue; | ||||
|                 } | ||||
|                 else { | ||||
|                     pattern = rest; | ||||
|                 } | ||||
|             } | ||||
|             if (t.isENOENT()) | ||||
|                 continue; | ||||
|             let p; | ||||
|             let rest; | ||||
|             let changed = false; | ||||
|             while (typeof (p = pattern.pattern()) === 'string' && | ||||
|                 (rest = pattern.rest())) { | ||||
|                 const c = t.resolve(p); | ||||
|                 t = c; | ||||
|                 pattern = rest; | ||||
|                 changed = true; | ||||
|             } | ||||
|             p = pattern.pattern(); | ||||
|             rest = pattern.rest(); | ||||
|             if (changed) { | ||||
|                 if (this.hasWalkedCache.hasWalked(t, pattern)) | ||||
|                     continue; | ||||
|                 this.hasWalkedCache.storeWalked(t, pattern); | ||||
|             } | ||||
|             // now we have either a final string for a known entry, | ||||
|             // more strings for an unknown entry, | ||||
|             // or a pattern starting with magic, mounted on t. | ||||
|             if (typeof p === 'string') { | ||||
|                 // must not be final entry, otherwise we would have | ||||
|                 // concatenated it earlier. | ||||
|                 const ifDir = p === '..' || p === '' || p === '.'; | ||||
|                 this.matches.add(t.resolve(p), absolute, ifDir); | ||||
|                 continue; | ||||
|             } | ||||
|             else if (p === minimatch_1.GLOBSTAR) { | ||||
|                 // if no rest, match and subwalk pattern | ||||
|                 // if rest, process rest and subwalk pattern | ||||
|                 // if it's a symlink, but we didn't get here by way of a | ||||
|                 // globstar match (meaning it's the first time THIS globstar | ||||
|                 // has traversed a symlink), then we follow it. Otherwise, stop. | ||||
|                 if (!t.isSymbolicLink() || | ||||
|                     this.follow || | ||||
|                     pattern.checkFollowGlobstar()) { | ||||
|                     this.subwalks.add(t, pattern); | ||||
|                 } | ||||
|                 const rp = rest?.pattern(); | ||||
|                 const rrest = rest?.rest(); | ||||
|                 if (!rest || ((rp === '' || rp === '.') && !rrest)) { | ||||
|                     // only HAS to be a dir if it ends in **/ or **/. | ||||
|                     // but ending in ** will match files as well. | ||||
|                     this.matches.add(t, absolute, rp === '' || rp === '.'); | ||||
|                 } | ||||
|                 else { | ||||
|                     if (rp === '..') { | ||||
|                         // this would mean you're matching **/.. at the fs root, | ||||
|                         // and no thanks, I'm not gonna test that specific case. | ||||
|                         /* c8 ignore start */ | ||||
|                         const tp = t.parent || t; | ||||
|                         /* c8 ignore stop */ | ||||
|                         if (!rrest) | ||||
|                             this.matches.add(tp, absolute, true); | ||||
|                         else if (!this.hasWalkedCache.hasWalked(tp, rrest)) { | ||||
|                             this.subwalks.add(tp, rrest); | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             else if (p instanceof RegExp) { | ||||
|                 this.subwalks.add(t, pattern); | ||||
|             } | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|     subwalkTargets() { | ||||
|         return this.subwalks.keys(); | ||||
|     } | ||||
|     child() { | ||||
|         return new Processor(this.opts, this.hasWalkedCache); | ||||
|     } | ||||
|     // return a new Processor containing the subwalks for each | ||||
|     // child entry, and a set of matches, and | ||||
|     // a hasWalkedCache that's a copy of this one | ||||
|     // then we're going to call | ||||
|     filterEntries(parent, entries) { | ||||
|         const patterns = this.subwalks.get(parent); | ||||
|         // put matches and entry walks into the results processor | ||||
|         const results = this.child(); | ||||
|         for (const e of entries) { | ||||
|             for (const pattern of patterns) { | ||||
|                 const absolute = pattern.isAbsolute(); | ||||
|                 const p = pattern.pattern(); | ||||
|                 const rest = pattern.rest(); | ||||
|                 if (p === minimatch_1.GLOBSTAR) { | ||||
|                     results.testGlobstar(e, pattern, rest, absolute); | ||||
|                 } | ||||
|                 else if (p instanceof RegExp) { | ||||
|                     results.testRegExp(e, p, rest, absolute); | ||||
|                 } | ||||
|                 else { | ||||
|                     results.testString(e, p, rest, absolute); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         return results; | ||||
|     } | ||||
|     testGlobstar(e, pattern, rest, absolute) { | ||||
|         if (this.dot || !e.name.startsWith('.')) { | ||||
|             if (!pattern.hasMore()) { | ||||
|                 this.matches.add(e, absolute, false); | ||||
|             } | ||||
|             if (e.canReaddir()) { | ||||
|                 // if we're in follow mode or it's not a symlink, just keep | ||||
|                 // testing the same pattern. If there's more after the globstar, | ||||
|                 // then this symlink consumes the globstar. If not, then we can | ||||
|                 // follow at most ONE symlink along the way, so we mark it, which | ||||
|                 // also checks to ensure that it wasn't already marked. | ||||
|                 if (this.follow || !e.isSymbolicLink()) { | ||||
|                     this.subwalks.add(e, pattern); | ||||
|                 } | ||||
|                 else if (e.isSymbolicLink()) { | ||||
|                     if (rest && pattern.checkFollowGlobstar()) { | ||||
|                         this.subwalks.add(e, rest); | ||||
|                     } | ||||
|                     else if (pattern.markFollowGlobstar()) { | ||||
|                         this.subwalks.add(e, pattern); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         // if the NEXT thing matches this entry, then also add | ||||
|         // the rest. | ||||
|         if (rest) { | ||||
|             const rp = rest.pattern(); | ||||
|             if (typeof rp === 'string' && | ||||
|                 // dots and empty were handled already | ||||
|                 rp !== '..' && | ||||
|                 rp !== '' && | ||||
|                 rp !== '.') { | ||||
|                 this.testString(e, rp, rest.rest(), absolute); | ||||
|             } | ||||
|             else if (rp === '..') { | ||||
|                 /* c8 ignore start */ | ||||
|                 const ep = e.parent || e; | ||||
|                 /* c8 ignore stop */ | ||||
|                 this.subwalks.add(ep, rest); | ||||
|             } | ||||
|             else if (rp instanceof RegExp) { | ||||
|                 this.testRegExp(e, rp, rest.rest(), absolute); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     testRegExp(e, p, rest, absolute) { | ||||
|         if (!p.test(e.name)) | ||||
|             return; | ||||
|         if (!rest) { | ||||
|             this.matches.add(e, absolute, false); | ||||
|         } | ||||
|         else { | ||||
|             this.subwalks.add(e, rest); | ||||
|         } | ||||
|     } | ||||
|     testString(e, p, rest, absolute) { | ||||
|         // should never happen? | ||||
|         if (!e.isNamed(p)) | ||||
|             return; | ||||
|         if (!rest) { | ||||
|             this.matches.add(e, absolute, false); | ||||
|         } | ||||
|         else { | ||||
|             this.subwalks.add(e, rest); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| exports.Processor = Processor; | ||||
| //# sourceMappingURL=processor.js.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/processor.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/processor.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										97
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/walker.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/walker.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,97 @@ | ||||
| /** | ||||
|  * Single-use utility classes to provide functionality to the {@link Glob} | ||||
|  * methods. | ||||
|  * | ||||
|  * @module | ||||
|  */ | ||||
| import { Minipass } from 'minipass'; | ||||
| import { Path } from 'path-scurry'; | ||||
| import { IgnoreLike } from './ignore.js'; | ||||
| import { Pattern } from './pattern.js'; | ||||
| import { Processor } from './processor.js'; | ||||
| export interface GlobWalkerOpts { | ||||
|     absolute?: boolean; | ||||
|     allowWindowsEscape?: boolean; | ||||
|     cwd?: string | URL; | ||||
|     dot?: boolean; | ||||
|     dotRelative?: boolean; | ||||
|     follow?: boolean; | ||||
|     ignore?: string | string[] | IgnoreLike; | ||||
|     mark?: boolean; | ||||
|     matchBase?: boolean; | ||||
|     maxDepth?: number; | ||||
|     nobrace?: boolean; | ||||
|     nocase?: boolean; | ||||
|     nodir?: boolean; | ||||
|     noext?: boolean; | ||||
|     noglobstar?: boolean; | ||||
|     platform?: NodeJS.Platform; | ||||
|     posix?: boolean; | ||||
|     realpath?: boolean; | ||||
|     root?: string; | ||||
|     stat?: boolean; | ||||
|     signal?: AbortSignal; | ||||
|     windowsPathsNoEscape?: boolean; | ||||
|     withFileTypes?: boolean; | ||||
|     includeChildMatches?: boolean; | ||||
| } | ||||
| export type GWOFileTypesTrue = GlobWalkerOpts & { | ||||
|     withFileTypes: true; | ||||
| }; | ||||
| export type GWOFileTypesFalse = GlobWalkerOpts & { | ||||
|     withFileTypes: false; | ||||
| }; | ||||
| export type GWOFileTypesUnset = GlobWalkerOpts & { | ||||
|     withFileTypes?: undefined; | ||||
| }; | ||||
| export type Result<O extends GlobWalkerOpts> = O extends GWOFileTypesTrue ? Path : O extends GWOFileTypesFalse ? string : O extends GWOFileTypesUnset ? string : Path | string; | ||||
| export type Matches<O extends GlobWalkerOpts> = O extends GWOFileTypesTrue ? Set<Path> : O extends GWOFileTypesFalse ? Set<string> : O extends GWOFileTypesUnset ? Set<string> : Set<Path | string>; | ||||
| export type MatchStream<O extends GlobWalkerOpts> = Minipass<Result<O>, Result<O>>; | ||||
| /** | ||||
|  * basic walking utilities that all the glob walker types use | ||||
|  */ | ||||
| export declare abstract class GlobUtil<O extends GlobWalkerOpts = GlobWalkerOpts> { | ||||
|     #private; | ||||
|     path: Path; | ||||
|     patterns: Pattern[]; | ||||
|     opts: O; | ||||
|     seen: Set<Path>; | ||||
|     paused: boolean; | ||||
|     aborted: boolean; | ||||
|     signal?: AbortSignal; | ||||
|     maxDepth: number; | ||||
|     includeChildMatches: boolean; | ||||
|     constructor(patterns: Pattern[], path: Path, opts: O); | ||||
|     pause(): void; | ||||
|     resume(): void; | ||||
|     onResume(fn: () => any): void; | ||||
|     matchCheck(e: Path, ifDir: boolean): Promise<Path | undefined>; | ||||
|     matchCheckTest(e: Path | undefined, ifDir: boolean): Path | undefined; | ||||
|     matchCheckSync(e: Path, ifDir: boolean): Path | undefined; | ||||
|     abstract matchEmit(p: Result<O>): void; | ||||
|     abstract matchEmit(p: string | Path): void; | ||||
|     matchFinish(e: Path, absolute: boolean): void; | ||||
|     match(e: Path, absolute: boolean, ifDir: boolean): Promise<void>; | ||||
|     matchSync(e: Path, absolute: boolean, ifDir: boolean): void; | ||||
|     walkCB(target: Path, patterns: Pattern[], cb: () => any): void; | ||||
|     walkCB2(target: Path, patterns: Pattern[], processor: Processor, cb: () => any): any; | ||||
|     walkCB3(target: Path, entries: Path[], processor: Processor, cb: () => any): void; | ||||
|     walkCBSync(target: Path, patterns: Pattern[], cb: () => any): void; | ||||
|     walkCB2Sync(target: Path, patterns: Pattern[], processor: Processor, cb: () => any): any; | ||||
|     walkCB3Sync(target: Path, entries: Path[], processor: Processor, cb: () => any): void; | ||||
| } | ||||
| export declare class GlobWalker<O extends GlobWalkerOpts = GlobWalkerOpts> extends GlobUtil<O> { | ||||
|     matches: Set<Result<O>>; | ||||
|     constructor(patterns: Pattern[], path: Path, opts: O); | ||||
|     matchEmit(e: Result<O>): void; | ||||
|     walk(): Promise<Set<Result<O>>>; | ||||
|     walkSync(): Set<Result<O>>; | ||||
| } | ||||
| export declare class GlobStream<O extends GlobWalkerOpts = GlobWalkerOpts> extends GlobUtil<O> { | ||||
|     results: Minipass<Result<O>, Result<O>>; | ||||
|     constructor(patterns: Pattern[], path: Path, opts: O); | ||||
|     matchEmit(e: Result<O>): void; | ||||
|     stream(): MatchStream<O>; | ||||
|     streamSync(): MatchStream<O>; | ||||
| } | ||||
| //# sourceMappingURL=walker.d.ts.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/walker.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/walker.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"walker.d.ts","sourceRoot":"","sources":["../../src/walker.ts"],"names":[],"mappings":"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"} | ||||
							
								
								
									
										387
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/walker.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										387
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/walker.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,387 @@ | ||||
| "use strict"; | ||||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| exports.GlobStream = exports.GlobWalker = exports.GlobUtil = void 0; | ||||
| /** | ||||
|  * Single-use utility classes to provide functionality to the {@link Glob} | ||||
|  * methods. | ||||
|  * | ||||
|  * @module | ||||
|  */ | ||||
| const minipass_1 = require("minipass"); | ||||
| const ignore_js_1 = require("./ignore.js"); | ||||
| const processor_js_1 = require("./processor.js"); | ||||
| const makeIgnore = (ignore, opts) => typeof ignore === 'string' ? new ignore_js_1.Ignore([ignore], opts) | ||||
|     : Array.isArray(ignore) ? new ignore_js_1.Ignore(ignore, opts) | ||||
|         : ignore; | ||||
| /** | ||||
|  * basic walking utilities that all the glob walker types use | ||||
|  */ | ||||
| class GlobUtil { | ||||
|     path; | ||||
|     patterns; | ||||
|     opts; | ||||
|     seen = new Set(); | ||||
|     paused = false; | ||||
|     aborted = false; | ||||
|     #onResume = []; | ||||
|     #ignore; | ||||
|     #sep; | ||||
|     signal; | ||||
|     maxDepth; | ||||
|     includeChildMatches; | ||||
|     constructor(patterns, path, opts) { | ||||
|         this.patterns = patterns; | ||||
|         this.path = path; | ||||
|         this.opts = opts; | ||||
|         this.#sep = !opts.posix && opts.platform === 'win32' ? '\\' : '/'; | ||||
|         this.includeChildMatches = opts.includeChildMatches !== false; | ||||
|         if (opts.ignore || !this.includeChildMatches) { | ||||
|             this.#ignore = makeIgnore(opts.ignore ?? [], opts); | ||||
|             if (!this.includeChildMatches && | ||||
|                 typeof this.#ignore.add !== 'function') { | ||||
|                 const m = 'cannot ignore child matches, ignore lacks add() method.'; | ||||
|                 throw new Error(m); | ||||
|             } | ||||
|         } | ||||
|         // ignore, always set with maxDepth, but it's optional on the | ||||
|         // GlobOptions type | ||||
|         /* c8 ignore start */ | ||||
|         this.maxDepth = opts.maxDepth || Infinity; | ||||
|         /* c8 ignore stop */ | ||||
|         if (opts.signal) { | ||||
|             this.signal = opts.signal; | ||||
|             this.signal.addEventListener('abort', () => { | ||||
|                 this.#onResume.length = 0; | ||||
|             }); | ||||
|         } | ||||
|     } | ||||
|     #ignored(path) { | ||||
|         return this.seen.has(path) || !!this.#ignore?.ignored?.(path); | ||||
|     } | ||||
|     #childrenIgnored(path) { | ||||
|         return !!this.#ignore?.childrenIgnored?.(path); | ||||
|     } | ||||
|     // backpressure mechanism | ||||
|     pause() { | ||||
|         this.paused = true; | ||||
|     } | ||||
|     resume() { | ||||
|         /* c8 ignore start */ | ||||
|         if (this.signal?.aborted) | ||||
|             return; | ||||
|         /* c8 ignore stop */ | ||||
|         this.paused = false; | ||||
|         let fn = undefined; | ||||
|         while (!this.paused && (fn = this.#onResume.shift())) { | ||||
|             fn(); | ||||
|         } | ||||
|     } | ||||
|     onResume(fn) { | ||||
|         if (this.signal?.aborted) | ||||
|             return; | ||||
|         /* c8 ignore start */ | ||||
|         if (!this.paused) { | ||||
|             fn(); | ||||
|         } | ||||
|         else { | ||||
|             /* c8 ignore stop */ | ||||
|             this.#onResume.push(fn); | ||||
|         } | ||||
|     } | ||||
|     // do the requisite realpath/stat checking, and return the path | ||||
|     // to add or undefined to filter it out. | ||||
|     async matchCheck(e, ifDir) { | ||||
|         if (ifDir && this.opts.nodir) | ||||
|             return undefined; | ||||
|         let rpc; | ||||
|         if (this.opts.realpath) { | ||||
|             rpc = e.realpathCached() || (await e.realpath()); | ||||
|             if (!rpc) | ||||
|                 return undefined; | ||||
|             e = rpc; | ||||
|         } | ||||
|         const needStat = e.isUnknown() || this.opts.stat; | ||||
|         const s = needStat ? await e.lstat() : e; | ||||
|         if (this.opts.follow && this.opts.nodir && s?.isSymbolicLink()) { | ||||
|             const target = await s.realpath(); | ||||
|             /* c8 ignore start */ | ||||
|             if (target && (target.isUnknown() || this.opts.stat)) { | ||||
|                 await target.lstat(); | ||||
|             } | ||||
|             /* c8 ignore stop */ | ||||
|         } | ||||
|         return this.matchCheckTest(s, ifDir); | ||||
|     } | ||||
|     matchCheckTest(e, ifDir) { | ||||
|         return (e && | ||||
|             (this.maxDepth === Infinity || e.depth() <= this.maxDepth) && | ||||
|             (!ifDir || e.canReaddir()) && | ||||
|             (!this.opts.nodir || !e.isDirectory()) && | ||||
|             (!this.opts.nodir || | ||||
|                 !this.opts.follow || | ||||
|                 !e.isSymbolicLink() || | ||||
|                 !e.realpathCached()?.isDirectory()) && | ||||
|             !this.#ignored(e)) ? | ||||
|             e | ||||
|             : undefined; | ||||
|     } | ||||
|     matchCheckSync(e, ifDir) { | ||||
|         if (ifDir && this.opts.nodir) | ||||
|             return undefined; | ||||
|         let rpc; | ||||
|         if (this.opts.realpath) { | ||||
|             rpc = e.realpathCached() || e.realpathSync(); | ||||
|             if (!rpc) | ||||
|                 return undefined; | ||||
|             e = rpc; | ||||
|         } | ||||
|         const needStat = e.isUnknown() || this.opts.stat; | ||||
|         const s = needStat ? e.lstatSync() : e; | ||||
|         if (this.opts.follow && this.opts.nodir && s?.isSymbolicLink()) { | ||||
|             const target = s.realpathSync(); | ||||
|             if (target && (target?.isUnknown() || this.opts.stat)) { | ||||
|                 target.lstatSync(); | ||||
|             } | ||||
|         } | ||||
|         return this.matchCheckTest(s, ifDir); | ||||
|     } | ||||
|     matchFinish(e, absolute) { | ||||
|         if (this.#ignored(e)) | ||||
|             return; | ||||
|         // we know we have an ignore if this is false, but TS doesn't | ||||
|         if (!this.includeChildMatches && this.#ignore?.add) { | ||||
|             const ign = `${e.relativePosix()}/**`; | ||||
|             this.#ignore.add(ign); | ||||
|         } | ||||
|         const abs = this.opts.absolute === undefined ? absolute : this.opts.absolute; | ||||
|         this.seen.add(e); | ||||
|         const mark = this.opts.mark && e.isDirectory() ? this.#sep : ''; | ||||
|         // ok, we have what we need! | ||||
|         if (this.opts.withFileTypes) { | ||||
|             this.matchEmit(e); | ||||
|         } | ||||
|         else if (abs) { | ||||
|             const abs = this.opts.posix ? e.fullpathPosix() : e.fullpath(); | ||||
|             this.matchEmit(abs + mark); | ||||
|         } | ||||
|         else { | ||||
|             const rel = this.opts.posix ? e.relativePosix() : e.relative(); | ||||
|             const pre = this.opts.dotRelative && !rel.startsWith('..' + this.#sep) ? | ||||
|                 '.' + this.#sep | ||||
|                 : ''; | ||||
|             this.matchEmit(!rel ? '.' + mark : pre + rel + mark); | ||||
|         } | ||||
|     } | ||||
|     async match(e, absolute, ifDir) { | ||||
|         const p = await this.matchCheck(e, ifDir); | ||||
|         if (p) | ||||
|             this.matchFinish(p, absolute); | ||||
|     } | ||||
|     matchSync(e, absolute, ifDir) { | ||||
|         const p = this.matchCheckSync(e, ifDir); | ||||
|         if (p) | ||||
|             this.matchFinish(p, absolute); | ||||
|     } | ||||
|     walkCB(target, patterns, cb) { | ||||
|         /* c8 ignore start */ | ||||
|         if (this.signal?.aborted) | ||||
|             cb(); | ||||
|         /* c8 ignore stop */ | ||||
|         this.walkCB2(target, patterns, new processor_js_1.Processor(this.opts), cb); | ||||
|     } | ||||
|     walkCB2(target, patterns, processor, cb) { | ||||
|         if (this.#childrenIgnored(target)) | ||||
|             return cb(); | ||||
|         if (this.signal?.aborted) | ||||
|             cb(); | ||||
|         if (this.paused) { | ||||
|             this.onResume(() => this.walkCB2(target, patterns, processor, cb)); | ||||
|             return; | ||||
|         } | ||||
|         processor.processPatterns(target, patterns); | ||||
|         // done processing.  all of the above is sync, can be abstracted out. | ||||
|         // subwalks is a map of paths to the entry filters they need | ||||
|         // matches is a map of paths to [absolute, ifDir] tuples. | ||||
|         let tasks = 1; | ||||
|         const next = () => { | ||||
|             if (--tasks === 0) | ||||
|                 cb(); | ||||
|         }; | ||||
|         for (const [m, absolute, ifDir] of processor.matches.entries()) { | ||||
|             if (this.#ignored(m)) | ||||
|                 continue; | ||||
|             tasks++; | ||||
|             this.match(m, absolute, ifDir).then(() => next()); | ||||
|         } | ||||
|         for (const t of processor.subwalkTargets()) { | ||||
|             if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) { | ||||
|                 continue; | ||||
|             } | ||||
|             tasks++; | ||||
|             const childrenCached = t.readdirCached(); | ||||
|             if (t.calledReaddir()) | ||||
|                 this.walkCB3(t, childrenCached, processor, next); | ||||
|             else { | ||||
|                 t.readdirCB((_, entries) => this.walkCB3(t, entries, processor, next), true); | ||||
|             } | ||||
|         } | ||||
|         next(); | ||||
|     } | ||||
|     walkCB3(target, entries, processor, cb) { | ||||
|         processor = processor.filterEntries(target, entries); | ||||
|         let tasks = 1; | ||||
|         const next = () => { | ||||
|             if (--tasks === 0) | ||||
|                 cb(); | ||||
|         }; | ||||
|         for (const [m, absolute, ifDir] of processor.matches.entries()) { | ||||
|             if (this.#ignored(m)) | ||||
|                 continue; | ||||
|             tasks++; | ||||
|             this.match(m, absolute, ifDir).then(() => next()); | ||||
|         } | ||||
|         for (const [target, patterns] of processor.subwalks.entries()) { | ||||
|             tasks++; | ||||
|             this.walkCB2(target, patterns, processor.child(), next); | ||||
|         } | ||||
|         next(); | ||||
|     } | ||||
|     walkCBSync(target, patterns, cb) { | ||||
|         /* c8 ignore start */ | ||||
|         if (this.signal?.aborted) | ||||
|             cb(); | ||||
|         /* c8 ignore stop */ | ||||
|         this.walkCB2Sync(target, patterns, new processor_js_1.Processor(this.opts), cb); | ||||
|     } | ||||
|     walkCB2Sync(target, patterns, processor, cb) { | ||||
|         if (this.#childrenIgnored(target)) | ||||
|             return cb(); | ||||
|         if (this.signal?.aborted) | ||||
|             cb(); | ||||
|         if (this.paused) { | ||||
|             this.onResume(() => this.walkCB2Sync(target, patterns, processor, cb)); | ||||
|             return; | ||||
|         } | ||||
|         processor.processPatterns(target, patterns); | ||||
|         // done processing.  all of the above is sync, can be abstracted out. | ||||
|         // subwalks is a map of paths to the entry filters they need | ||||
|         // matches is a map of paths to [absolute, ifDir] tuples. | ||||
|         let tasks = 1; | ||||
|         const next = () => { | ||||
|             if (--tasks === 0) | ||||
|                 cb(); | ||||
|         }; | ||||
|         for (const [m, absolute, ifDir] of processor.matches.entries()) { | ||||
|             if (this.#ignored(m)) | ||||
|                 continue; | ||||
|             this.matchSync(m, absolute, ifDir); | ||||
|         } | ||||
|         for (const t of processor.subwalkTargets()) { | ||||
|             if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) { | ||||
|                 continue; | ||||
|             } | ||||
|             tasks++; | ||||
|             const children = t.readdirSync(); | ||||
|             this.walkCB3Sync(t, children, processor, next); | ||||
|         } | ||||
|         next(); | ||||
|     } | ||||
|     walkCB3Sync(target, entries, processor, cb) { | ||||
|         processor = processor.filterEntries(target, entries); | ||||
|         let tasks = 1; | ||||
|         const next = () => { | ||||
|             if (--tasks === 0) | ||||
|                 cb(); | ||||
|         }; | ||||
|         for (const [m, absolute, ifDir] of processor.matches.entries()) { | ||||
|             if (this.#ignored(m)) | ||||
|                 continue; | ||||
|             this.matchSync(m, absolute, ifDir); | ||||
|         } | ||||
|         for (const [target, patterns] of processor.subwalks.entries()) { | ||||
|             tasks++; | ||||
|             this.walkCB2Sync(target, patterns, processor.child(), next); | ||||
|         } | ||||
|         next(); | ||||
|     } | ||||
| } | ||||
| exports.GlobUtil = GlobUtil; | ||||
| class GlobWalker extends GlobUtil { | ||||
|     matches = new Set(); | ||||
|     constructor(patterns, path, opts) { | ||||
|         super(patterns, path, opts); | ||||
|     } | ||||
|     matchEmit(e) { | ||||
|         this.matches.add(e); | ||||
|     } | ||||
|     async walk() { | ||||
|         if (this.signal?.aborted) | ||||
|             throw this.signal.reason; | ||||
|         if (this.path.isUnknown()) { | ||||
|             await this.path.lstat(); | ||||
|         } | ||||
|         await new Promise((res, rej) => { | ||||
|             this.walkCB(this.path, this.patterns, () => { | ||||
|                 if (this.signal?.aborted) { | ||||
|                     rej(this.signal.reason); | ||||
|                 } | ||||
|                 else { | ||||
|                     res(this.matches); | ||||
|                 } | ||||
|             }); | ||||
|         }); | ||||
|         return this.matches; | ||||
|     } | ||||
|     walkSync() { | ||||
|         if (this.signal?.aborted) | ||||
|             throw this.signal.reason; | ||||
|         if (this.path.isUnknown()) { | ||||
|             this.path.lstatSync(); | ||||
|         } | ||||
|         // nothing for the callback to do, because this never pauses | ||||
|         this.walkCBSync(this.path, this.patterns, () => { | ||||
|             if (this.signal?.aborted) | ||||
|                 throw this.signal.reason; | ||||
|         }); | ||||
|         return this.matches; | ||||
|     } | ||||
| } | ||||
| exports.GlobWalker = GlobWalker; | ||||
| class GlobStream extends GlobUtil { | ||||
|     results; | ||||
|     constructor(patterns, path, opts) { | ||||
|         super(patterns, path, opts); | ||||
|         this.results = new minipass_1.Minipass({ | ||||
|             signal: this.signal, | ||||
|             objectMode: true, | ||||
|         }); | ||||
|         this.results.on('drain', () => this.resume()); | ||||
|         this.results.on('resume', () => this.resume()); | ||||
|     } | ||||
|     matchEmit(e) { | ||||
|         this.results.write(e); | ||||
|         if (!this.results.flowing) | ||||
|             this.pause(); | ||||
|     } | ||||
|     stream() { | ||||
|         const target = this.path; | ||||
|         if (target.isUnknown()) { | ||||
|             target.lstat().then(() => { | ||||
|                 this.walkCB(target, this.patterns, () => this.results.end()); | ||||
|             }); | ||||
|         } | ||||
|         else { | ||||
|             this.walkCB(target, this.patterns, () => this.results.end()); | ||||
|         } | ||||
|         return this.results; | ||||
|     } | ||||
|     streamSync() { | ||||
|         if (this.path.isUnknown()) { | ||||
|             this.path.lstatSync(); | ||||
|         } | ||||
|         this.walkCBSync(this.path, this.patterns, () => this.results.end()); | ||||
|         return this.results; | ||||
|     } | ||||
| } | ||||
| exports.GlobStream = GlobStream; | ||||
| //# sourceMappingURL=walker.js.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/walker.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/commonjs/walker.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										3
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/bin.d.mts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/bin.d.mts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| #!/usr/bin/env node | ||||
| export {}; | ||||
| //# sourceMappingURL=bin.d.mts.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/bin.d.mts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/bin.d.mts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"bin.d.mts","sourceRoot":"","sources":["../../src/bin.mts"],"names":[],"mappings":""} | ||||
							
								
								
									
										270
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/bin.mjs
									
									
									
										generated
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										270
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/bin.mjs
									
									
									
										generated
									
									
										vendored
									
									
										Executable file
									
								
							| @@ -0,0 +1,270 @@ | ||||
| #!/usr/bin/env node | ||||
| import { foregroundChild } from 'foreground-child'; | ||||
| import { existsSync } from 'fs'; | ||||
| import { jack } from 'jackspeak'; | ||||
| import { loadPackageJson } from 'package-json-from-dist'; | ||||
| import { join } from 'path'; | ||||
| import { globStream } from './index.js'; | ||||
| const { version } = loadPackageJson(import.meta.url, '../package.json'); | ||||
| const j = jack({ | ||||
|     usage: 'glob [options] [<pattern> [<pattern> ...]]', | ||||
| }) | ||||
|     .description(` | ||||
|     Glob v${version} | ||||
|  | ||||
|     Expand the positional glob expression arguments into any matching file | ||||
|     system paths found. | ||||
|   `) | ||||
|     .opt({ | ||||
|     cmd: { | ||||
|         short: 'c', | ||||
|         hint: 'command', | ||||
|         description: `Run the command provided, passing the glob expression | ||||
|                     matches as arguments.`, | ||||
|     }, | ||||
| }) | ||||
|     .opt({ | ||||
|     default: { | ||||
|         short: 'p', | ||||
|         hint: 'pattern', | ||||
|         description: `If no positional arguments are provided, glob will use | ||||
|                     this pattern`, | ||||
|     }, | ||||
| }) | ||||
|     .flag({ | ||||
|     all: { | ||||
|         short: 'A', | ||||
|         description: `By default, the glob cli command will not expand any | ||||
|                     arguments that are an exact match to a file on disk. | ||||
|  | ||||
|                     This prevents double-expanding, in case the shell expands | ||||
|                     an argument whose filename is a glob expression. | ||||
|  | ||||
|                     For example, if 'app/*.ts' would match 'app/[id].ts', then | ||||
|                     on Windows powershell or cmd.exe, 'glob app/*.ts' will | ||||
|                     expand to 'app/[id].ts', as expected. However, in posix | ||||
|                     shells such as bash or zsh, the shell will first expand | ||||
|                     'app/*.ts' to a list of filenames. Then glob will look | ||||
|                     for a file matching 'app/[id].ts' (ie, 'app/i.ts' or | ||||
|                     'app/d.ts'), which is unexpected. | ||||
|  | ||||
|                     Setting '--all' prevents this behavior, causing glob | ||||
|                     to treat ALL patterns as glob expressions to be expanded, | ||||
|                     even if they are an exact match to a file on disk. | ||||
|  | ||||
|                     When setting this option, be sure to enquote arguments | ||||
|                     so that the shell will not expand them prior to passing | ||||
|                     them to the glob command process. | ||||
|       `, | ||||
|     }, | ||||
|     absolute: { | ||||
|         short: 'a', | ||||
|         description: 'Expand to absolute paths', | ||||
|     }, | ||||
|     'dot-relative': { | ||||
|         short: 'd', | ||||
|         description: `Prepend './' on relative matches`, | ||||
|     }, | ||||
|     mark: { | ||||
|         short: 'm', | ||||
|         description: `Append a / on any directories matched`, | ||||
|     }, | ||||
|     posix: { | ||||
|         short: 'x', | ||||
|         description: `Always resolve to posix style paths, using '/' as the | ||||
|                     directory separator, even on Windows. Drive letter | ||||
|                     absolute matches on Windows will be expanded to their | ||||
|                     full resolved UNC maths, eg instead of 'C:\\foo\\bar', | ||||
|                     it will expand to '//?/C:/foo/bar'. | ||||
|       `, | ||||
|     }, | ||||
|     follow: { | ||||
|         short: 'f', | ||||
|         description: `Follow symlinked directories when expanding '**'`, | ||||
|     }, | ||||
|     realpath: { | ||||
|         short: 'R', | ||||
|         description: `Call 'fs.realpath' on all of the results. In the case | ||||
|                     of an entry that cannot be resolved, the entry is | ||||
|                     omitted. This incurs a slight performance penalty, of | ||||
|                     course, because of the added system calls.`, | ||||
|     }, | ||||
|     stat: { | ||||
|         short: 's', | ||||
|         description: `Call 'fs.lstat' on all entries, whether required or not | ||||
|                     to determine if it's a valid match.`, | ||||
|     }, | ||||
|     'match-base': { | ||||
|         short: 'b', | ||||
|         description: `Perform a basename-only match if the pattern does not | ||||
|                     contain any slash characters. That is, '*.js' would be | ||||
|                     treated as equivalent to '**/*.js', matching js files | ||||
|                     in all directories. | ||||
|       `, | ||||
|     }, | ||||
|     dot: { | ||||
|         description: `Allow patterns to match files/directories that start | ||||
|                     with '.', even if the pattern does not start with '.' | ||||
|       `, | ||||
|     }, | ||||
|     nobrace: { | ||||
|         description: 'Do not expand {...} patterns', | ||||
|     }, | ||||
|     nocase: { | ||||
|         description: `Perform a case-insensitive match. This defaults to | ||||
|                     'true' on macOS and Windows platforms, and false on | ||||
|                     all others. | ||||
|  | ||||
|                     Note: 'nocase' should only be explicitly set when it is | ||||
|                     known that the filesystem's case sensitivity differs | ||||
|                     from the platform default. If set 'true' on | ||||
|                     case-insensitive file systems, then the walk may return | ||||
|                     more or less results than expected. | ||||
|       `, | ||||
|     }, | ||||
|     nodir: { | ||||
|         description: `Do not match directories, only files. | ||||
|  | ||||
|                     Note: to *only* match directories, append a '/' at the | ||||
|                     end of the pattern. | ||||
|       `, | ||||
|     }, | ||||
|     noext: { | ||||
|         description: `Do not expand extglob patterns, such as '+(a|b)'`, | ||||
|     }, | ||||
|     noglobstar: { | ||||
|         description: `Do not expand '**' against multiple path portions. | ||||
|                     Ie, treat it as a normal '*' instead.`, | ||||
|     }, | ||||
|     'windows-path-no-escape': { | ||||
|         description: `Use '\\' as a path separator *only*, and *never* as an | ||||
|                     escape character. If set, all '\\' characters are | ||||
|                     replaced with '/' in the pattern.`, | ||||
|     }, | ||||
| }) | ||||
|     .num({ | ||||
|     'max-depth': { | ||||
|         short: 'D', | ||||
|         description: `Maximum depth to traverse from the current | ||||
|                     working directory`, | ||||
|     }, | ||||
| }) | ||||
|     .opt({ | ||||
|     cwd: { | ||||
|         short: 'C', | ||||
|         description: 'Current working directory to execute/match in', | ||||
|         default: process.cwd(), | ||||
|     }, | ||||
|     root: { | ||||
|         short: 'r', | ||||
|         description: `A string path resolved against the 'cwd', which is | ||||
|                     used as the starting point for absolute patterns that | ||||
|                     start with '/' (but not drive letters or UNC paths | ||||
|                     on Windows). | ||||
|  | ||||
|                     Note that this *doesn't* necessarily limit the walk to | ||||
|                     the 'root' directory, and doesn't affect the cwd | ||||
|                     starting point for non-absolute patterns. A pattern | ||||
|                     containing '..' will still be able to traverse out of | ||||
|                     the root directory, if it is not an actual root directory | ||||
|                     on the filesystem, and any non-absolute patterns will | ||||
|                     still be matched in the 'cwd'. | ||||
|  | ||||
|                     To start absolute and non-absolute patterns in the same | ||||
|                     path, you can use '--root=' to set it to the empty | ||||
|                     string. However, be aware that on Windows systems, a | ||||
|                     pattern like 'x:/*' or '//host/share/*' will *always* | ||||
|                     start in the 'x:/' or '//host/share/' directory, | ||||
|                     regardless of the --root setting. | ||||
|       `, | ||||
|     }, | ||||
|     platform: { | ||||
|         description: `Defaults to the value of 'process.platform' if | ||||
|                     available, or 'linux' if not. Setting --platform=win32 | ||||
|                     on non-Windows systems may cause strange behavior!`, | ||||
|         validOptions: [ | ||||
|             'aix', | ||||
|             'android', | ||||
|             'darwin', | ||||
|             'freebsd', | ||||
|             'haiku', | ||||
|             'linux', | ||||
|             'openbsd', | ||||
|             'sunos', | ||||
|             'win32', | ||||
|             'cygwin', | ||||
|             'netbsd', | ||||
|         ], | ||||
|     }, | ||||
| }) | ||||
|     .optList({ | ||||
|     ignore: { | ||||
|         short: 'i', | ||||
|         description: `Glob patterns to ignore`, | ||||
|     }, | ||||
| }) | ||||
|     .flag({ | ||||
|     debug: { | ||||
|         short: 'v', | ||||
|         description: `Output a huge amount of noisy debug information about | ||||
|                     patterns as they are parsed and used to match files.`, | ||||
|     }, | ||||
| }) | ||||
|     .flag({ | ||||
|     help: { | ||||
|         short: 'h', | ||||
|         description: 'Show this usage information', | ||||
|     }, | ||||
| }); | ||||
| try { | ||||
|     const { positionals, values } = j.parse(); | ||||
|     if (values.help) { | ||||
|         console.log(j.usage()); | ||||
|         process.exit(0); | ||||
|     } | ||||
|     if (positionals.length === 0 && !values.default) | ||||
|         throw 'No patterns provided'; | ||||
|     if (positionals.length === 0 && values.default) | ||||
|         positionals.push(values.default); | ||||
|     const patterns = values.all ? positionals : positionals.filter(p => !existsSync(p)); | ||||
|     const matches = values.all ? | ||||
|         [] | ||||
|         : positionals.filter(p => existsSync(p)).map(p => join(p)); | ||||
|     const stream = globStream(patterns, { | ||||
|         absolute: values.absolute, | ||||
|         cwd: values.cwd, | ||||
|         dot: values.dot, | ||||
|         dotRelative: values['dot-relative'], | ||||
|         follow: values.follow, | ||||
|         ignore: values.ignore, | ||||
|         mark: values.mark, | ||||
|         matchBase: values['match-base'], | ||||
|         maxDepth: values['max-depth'], | ||||
|         nobrace: values.nobrace, | ||||
|         nocase: values.nocase, | ||||
|         nodir: values.nodir, | ||||
|         noext: values.noext, | ||||
|         noglobstar: values.noglobstar, | ||||
|         platform: values.platform, | ||||
|         realpath: values.realpath, | ||||
|         root: values.root, | ||||
|         stat: values.stat, | ||||
|         debug: values.debug, | ||||
|         posix: values.posix, | ||||
|     }); | ||||
|     const cmd = values.cmd; | ||||
|     if (!cmd) { | ||||
|         matches.forEach(m => console.log(m)); | ||||
|         stream.on('data', f => console.log(f)); | ||||
|     } | ||||
|     else { | ||||
|         stream.on('data', f => matches.push(f)); | ||||
|         stream.on('end', () => foregroundChild(cmd, matches, { shell: true })); | ||||
|     } | ||||
| } | ||||
| catch (e) { | ||||
|     console.error(j.usage()); | ||||
|     console.error(e instanceof Error ? e.message : String(e)); | ||||
|     process.exit(1); | ||||
| } | ||||
| //# sourceMappingURL=bin.mjs.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/bin.mjs.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/bin.mjs.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										388
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/glob.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										388
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/glob.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,388 @@ | ||||
| import { Minimatch } from 'minimatch'; | ||||
| import { Minipass } from 'minipass'; | ||||
| import { FSOption, Path, PathScurry } from 'path-scurry'; | ||||
| import { IgnoreLike } from './ignore.js'; | ||||
| import { Pattern } from './pattern.js'; | ||||
| export type MatchSet = Minimatch['set']; | ||||
| export type GlobParts = Exclude<Minimatch['globParts'], undefined>; | ||||
| /** | ||||
|  * A `GlobOptions` object may be provided to any of the exported methods, and | ||||
|  * must be provided to the `Glob` constructor. | ||||
|  * | ||||
|  * All options are optional, boolean, and false by default, unless otherwise | ||||
|  * noted. | ||||
|  * | ||||
|  * All resolved options are added to the Glob object as properties. | ||||
|  * | ||||
|  * If you are running many `glob` operations, you can pass a Glob object as the | ||||
|  * `options` argument to a subsequent operation to share the previously loaded | ||||
|  * cache. | ||||
|  */ | ||||
| export interface GlobOptions { | ||||
|     /** | ||||
|      * Set to `true` to always receive absolute paths for | ||||
|      * matched files. Set to `false` to always return relative paths. | ||||
|      * | ||||
|      * When this option is not set, absolute paths are returned for patterns | ||||
|      * that are absolute, and otherwise paths are returned that are relative | ||||
|      * to the `cwd` setting. | ||||
|      * | ||||
|      * This does _not_ make an extra system call to get | ||||
|      * the realpath, it only does string path resolution. | ||||
|      * | ||||
|      * Conflicts with {@link withFileTypes} | ||||
|      */ | ||||
|     absolute?: boolean; | ||||
|     /** | ||||
|      * Set to false to enable {@link windowsPathsNoEscape} | ||||
|      * | ||||
|      * @deprecated | ||||
|      */ | ||||
|     allowWindowsEscape?: boolean; | ||||
|     /** | ||||
|      * The current working directory in which to search. Defaults to | ||||
|      * `process.cwd()`. | ||||
|      * | ||||
|      * May be eiher a string path or a `file://` URL object or string. | ||||
|      */ | ||||
|     cwd?: string | URL; | ||||
|     /** | ||||
|      * Include `.dot` files in normal matches and `globstar` | ||||
|      * matches. Note that an explicit dot in a portion of the pattern | ||||
|      * will always match dot files. | ||||
|      */ | ||||
|     dot?: boolean; | ||||
|     /** | ||||
|      * Prepend all relative path strings with `./` (or `.\` on Windows). | ||||
|      * | ||||
|      * Without this option, returned relative paths are "bare", so instead of | ||||
|      * returning `'./foo/bar'`, they are returned as `'foo/bar'`. | ||||
|      * | ||||
|      * Relative patterns starting with `'../'` are not prepended with `./`, even | ||||
|      * if this option is set. | ||||
|      */ | ||||
|     dotRelative?: boolean; | ||||
|     /** | ||||
|      * Follow symlinked directories when expanding `**` | ||||
|      * patterns. This can result in a lot of duplicate references in | ||||
|      * the presence of cyclic links, and make performance quite bad. | ||||
|      * | ||||
|      * By default, a `**` in a pattern will follow 1 symbolic link if | ||||
|      * it is not the first item in the pattern, or none if it is the | ||||
|      * first item in the pattern, following the same behavior as Bash. | ||||
|      */ | ||||
|     follow?: boolean; | ||||
|     /** | ||||
|      * string or string[], or an object with `ignore` and `ignoreChildren` | ||||
|      * methods. | ||||
|      * | ||||
|      * If a string or string[] is provided, then this is treated as a glob | ||||
|      * pattern or array of glob patterns to exclude from matches. To ignore all | ||||
|      * children within a directory, as well as the entry itself, append `'/**'` | ||||
|      * to the ignore pattern. | ||||
|      * | ||||
|      * **Note** `ignore` patterns are _always_ in `dot:true` mode, regardless of | ||||
|      * any other settings. | ||||
|      * | ||||
|      * If an object is provided that has `ignored(path)` and/or | ||||
|      * `childrenIgnored(path)` methods, then these methods will be called to | ||||
|      * determine whether any Path is a match or if its children should be | ||||
|      * traversed, respectively. | ||||
|      */ | ||||
|     ignore?: string | string[] | IgnoreLike; | ||||
|     /** | ||||
|      * Treat brace expansion like `{a,b}` as a "magic" pattern. Has no | ||||
|      * effect if {@link nobrace} is set. | ||||
|      * | ||||
|      * Only has effect on the {@link hasMagic} function. | ||||
|      */ | ||||
|     magicalBraces?: boolean; | ||||
|     /** | ||||
|      * Add a `/` character to directory matches. Note that this requires | ||||
|      * additional stat calls in some cases. | ||||
|      */ | ||||
|     mark?: boolean; | ||||
|     /** | ||||
|      * Perform a basename-only match if the pattern does not contain any slash | ||||
|      * characters. That is, `*.js` would be treated as equivalent to | ||||
|      * `**\/*.js`, matching all js files in all directories. | ||||
|      */ | ||||
|     matchBase?: boolean; | ||||
|     /** | ||||
|      * Limit the directory traversal to a given depth below the cwd. | ||||
|      * Note that this does NOT prevent traversal to sibling folders, | ||||
|      * root patterns, and so on. It only limits the maximum folder depth | ||||
|      * that the walk will descend, relative to the cwd. | ||||
|      */ | ||||
|     maxDepth?: number; | ||||
|     /** | ||||
|      * Do not expand `{a,b}` and `{1..3}` brace sets. | ||||
|      */ | ||||
|     nobrace?: boolean; | ||||
|     /** | ||||
|      * Perform a case-insensitive match. This defaults to `true` on macOS and | ||||
|      * Windows systems, and `false` on all others. | ||||
|      * | ||||
|      * **Note** `nocase` should only be explicitly set when it is | ||||
|      * known that the filesystem's case sensitivity differs from the | ||||
|      * platform default. If set `true` on case-sensitive file | ||||
|      * systems, or `false` on case-insensitive file systems, then the | ||||
|      * walk may return more or less results than expected. | ||||
|      */ | ||||
|     nocase?: boolean; | ||||
|     /** | ||||
|      * Do not match directories, only files. (Note: to match | ||||
|      * _only_ directories, put a `/` at the end of the pattern.) | ||||
|      */ | ||||
|     nodir?: boolean; | ||||
|     /** | ||||
|      * Do not match "extglob" patterns such as `+(a|b)`. | ||||
|      */ | ||||
|     noext?: boolean; | ||||
|     /** | ||||
|      * Do not match `**` against multiple filenames. (Ie, treat it as a normal | ||||
|      * `*` instead.) | ||||
|      * | ||||
|      * Conflicts with {@link matchBase} | ||||
|      */ | ||||
|     noglobstar?: boolean; | ||||
|     /** | ||||
|      * Defaults to value of `process.platform` if available, or `'linux'` if | ||||
|      * not. Setting `platform:'win32'` on non-Windows systems may cause strange | ||||
|      * behavior. | ||||
|      */ | ||||
|     platform?: NodeJS.Platform; | ||||
|     /** | ||||
|      * Set to true to call `fs.realpath` on all of the | ||||
|      * results. In the case of an entry that cannot be resolved, the | ||||
|      * entry is omitted. This incurs a slight performance penalty, of | ||||
|      * course, because of the added system calls. | ||||
|      */ | ||||
|     realpath?: boolean; | ||||
|     /** | ||||
|      * | ||||
|      * A string path resolved against the `cwd` option, which | ||||
|      * is used as the starting point for absolute patterns that start | ||||
|      * with `/`, (but not drive letters or UNC paths on Windows). | ||||
|      * | ||||
|      * Note that this _doesn't_ necessarily limit the walk to the | ||||
|      * `root` directory, and doesn't affect the cwd starting point for | ||||
|      * non-absolute patterns. A pattern containing `..` will still be | ||||
|      * able to traverse out of the root directory, if it is not an | ||||
|      * actual root directory on the filesystem, and any non-absolute | ||||
|      * patterns will be matched in the `cwd`. For example, the | ||||
|      * pattern `/../*` with `{root:'/some/path'}` will return all | ||||
|      * files in `/some`, not all files in `/some/path`. The pattern | ||||
|      * `*` with `{root:'/some/path'}` will return all the entries in | ||||
|      * the cwd, not the entries in `/some/path`. | ||||
|      * | ||||
|      * To start absolute and non-absolute patterns in the same | ||||
|      * path, you can use `{root:''}`. However, be aware that on | ||||
|      * Windows systems, a pattern like `x:/*` or `//host/share/*` will | ||||
|      * _always_ start in the `x:/` or `//host/share` directory, | ||||
|      * regardless of the `root` setting. | ||||
|      */ | ||||
|     root?: string; | ||||
|     /** | ||||
|      * A [PathScurry](http://npm.im/path-scurry) object used | ||||
|      * to traverse the file system. If the `nocase` option is set | ||||
|      * explicitly, then any provided `scurry` object must match this | ||||
|      * setting. | ||||
|      */ | ||||
|     scurry?: PathScurry; | ||||
|     /** | ||||
|      * Call `lstat()` on all entries, whether required or not to determine | ||||
|      * if it's a valid match. When used with {@link withFileTypes}, this means | ||||
|      * that matches will include data such as modified time, permissions, and | ||||
|      * so on.  Note that this will incur a performance cost due to the added | ||||
|      * system calls. | ||||
|      */ | ||||
|     stat?: boolean; | ||||
|     /** | ||||
|      * An AbortSignal which will cancel the Glob walk when | ||||
|      * triggered. | ||||
|      */ | ||||
|     signal?: AbortSignal; | ||||
|     /** | ||||
|      * Use `\\` as a path separator _only_, and | ||||
|      *  _never_ as an escape character. If set, all `\\` characters are | ||||
|      *  replaced with `/` in the pattern. | ||||
|      * | ||||
|      *  Note that this makes it **impossible** to match against paths | ||||
|      *  containing literal glob pattern characters, but allows matching | ||||
|      *  with patterns constructed using `path.join()` and | ||||
|      *  `path.resolve()` on Windows platforms, mimicking the (buggy!) | ||||
|      *  behavior of Glob v7 and before on Windows. Please use with | ||||
|      *  caution, and be mindful of [the caveat below about Windows | ||||
|      *  paths](#windows). (For legacy reasons, this is also set if | ||||
|      *  `allowWindowsEscape` is set to the exact value `false`.) | ||||
|      */ | ||||
|     windowsPathsNoEscape?: boolean; | ||||
|     /** | ||||
|      * Return [PathScurry](http://npm.im/path-scurry) | ||||
|      * `Path` objects instead of strings. These are similar to a | ||||
|      * NodeJS `Dirent` object, but with additional methods and | ||||
|      * properties. | ||||
|      * | ||||
|      * Conflicts with {@link absolute} | ||||
|      */ | ||||
|     withFileTypes?: boolean; | ||||
|     /** | ||||
|      * An fs implementation to override some or all of the defaults.  See | ||||
|      * http://npm.im/path-scurry for details about what can be overridden. | ||||
|      */ | ||||
|     fs?: FSOption; | ||||
|     /** | ||||
|      * Just passed along to Minimatch.  Note that this makes all pattern | ||||
|      * matching operations slower and *extremely* noisy. | ||||
|      */ | ||||
|     debug?: boolean; | ||||
|     /** | ||||
|      * Return `/` delimited paths, even on Windows. | ||||
|      * | ||||
|      * On posix systems, this has no effect.  But, on Windows, it means that | ||||
|      * paths will be `/` delimited, and absolute paths will be their full | ||||
|      * resolved UNC forms, eg instead of `'C:\\foo\\bar'`, it would return | ||||
|      * `'//?/C:/foo/bar'` | ||||
|      */ | ||||
|     posix?: boolean; | ||||
|     /** | ||||
|      * Do not match any children of any matches. For example, the pattern | ||||
|      * `**\/foo` would match `a/foo`, but not `a/foo/b/foo` in this mode. | ||||
|      * | ||||
|      * This is especially useful for cases like "find all `node_modules` | ||||
|      * folders, but not the ones in `node_modules`". | ||||
|      * | ||||
|      * In order to support this, the `Ignore` implementation must support an | ||||
|      * `add(pattern: string)` method. If using the default `Ignore` class, then | ||||
|      * this is fine, but if this is set to `false`, and a custom `Ignore` is | ||||
|      * provided that does not have an `add()` method, then it will throw an | ||||
|      * error. | ||||
|      * | ||||
|      * **Caveat** It *only* ignores matches that would be a descendant of a | ||||
|      * previous match, and only if that descendant is matched *after* the | ||||
|      * ancestor is encountered. Since the file system walk happens in | ||||
|      * indeterminate order, it's possible that a match will already be added | ||||
|      * before its ancestor, if multiple or braced patterns are used. | ||||
|      * | ||||
|      * For example: | ||||
|      * | ||||
|      * ```ts | ||||
|      * const results = await glob([ | ||||
|      *   // likely to match first, since it's just a stat | ||||
|      *   'a/b/c/d/e/f', | ||||
|      * | ||||
|      *   // this pattern is more complicated! It must to various readdir() | ||||
|      *   // calls and test the results against a regular expression, and that | ||||
|      *   // is certainly going to take a little bit longer. | ||||
|      *   // | ||||
|      *   // So, later on, it encounters a match at 'a/b/c/d/e', but it's too | ||||
|      *   // late to ignore a/b/c/d/e/f, because it's already been emitted. | ||||
|      *   'a/[bdf]/?/[a-z]/*', | ||||
|      * ], { includeChildMatches: false }) | ||||
|      * ``` | ||||
|      * | ||||
|      * It's best to only set this to `false` if you can be reasonably sure that | ||||
|      * no components of the pattern will potentially match one another's file | ||||
|      * system descendants, or if the occasional included child entry will not | ||||
|      * cause problems. | ||||
|      * | ||||
|      * @default true | ||||
|      */ | ||||
|     includeChildMatches?: boolean; | ||||
| } | ||||
| export type GlobOptionsWithFileTypesTrue = GlobOptions & { | ||||
|     withFileTypes: true; | ||||
|     absolute?: undefined; | ||||
|     mark?: undefined; | ||||
|     posix?: undefined; | ||||
| }; | ||||
| export type GlobOptionsWithFileTypesFalse = GlobOptions & { | ||||
|     withFileTypes?: false; | ||||
| }; | ||||
| export type GlobOptionsWithFileTypesUnset = GlobOptions & { | ||||
|     withFileTypes?: undefined; | ||||
| }; | ||||
| export type Result<Opts> = Opts extends GlobOptionsWithFileTypesTrue ? Path : Opts extends GlobOptionsWithFileTypesFalse ? string : Opts extends GlobOptionsWithFileTypesUnset ? string : string | Path; | ||||
| export type Results<Opts> = Result<Opts>[]; | ||||
| export type FileTypes<Opts> = Opts extends GlobOptionsWithFileTypesTrue ? true : Opts extends GlobOptionsWithFileTypesFalse ? false : Opts extends GlobOptionsWithFileTypesUnset ? false : boolean; | ||||
| /** | ||||
|  * An object that can perform glob pattern traversals. | ||||
|  */ | ||||
| export declare class Glob<Opts extends GlobOptions> implements GlobOptions { | ||||
|     absolute?: boolean; | ||||
|     cwd: string; | ||||
|     root?: string; | ||||
|     dot: boolean; | ||||
|     dotRelative: boolean; | ||||
|     follow: boolean; | ||||
|     ignore?: string | string[] | IgnoreLike; | ||||
|     magicalBraces: boolean; | ||||
|     mark?: boolean; | ||||
|     matchBase: boolean; | ||||
|     maxDepth: number; | ||||
|     nobrace: boolean; | ||||
|     nocase: boolean; | ||||
|     nodir: boolean; | ||||
|     noext: boolean; | ||||
|     noglobstar: boolean; | ||||
|     pattern: string[]; | ||||
|     platform: NodeJS.Platform; | ||||
|     realpath: boolean; | ||||
|     scurry: PathScurry; | ||||
|     stat: boolean; | ||||
|     signal?: AbortSignal; | ||||
|     windowsPathsNoEscape: boolean; | ||||
|     withFileTypes: FileTypes<Opts>; | ||||
|     includeChildMatches: boolean; | ||||
|     /** | ||||
|      * The options provided to the constructor. | ||||
|      */ | ||||
|     opts: Opts; | ||||
|     /** | ||||
|      * An array of parsed immutable {@link Pattern} objects. | ||||
|      */ | ||||
|     patterns: Pattern[]; | ||||
|     /** | ||||
|      * All options are stored as properties on the `Glob` object. | ||||
|      * | ||||
|      * See {@link GlobOptions} for full options descriptions. | ||||
|      * | ||||
|      * Note that a previous `Glob` object can be passed as the | ||||
|      * `GlobOptions` to another `Glob` instantiation to re-use settings | ||||
|      * and caches with a new pattern. | ||||
|      * | ||||
|      * Traversal functions can be called multiple times to run the walk | ||||
|      * again. | ||||
|      */ | ||||
|     constructor(pattern: string | string[], opts: Opts); | ||||
|     /** | ||||
|      * Returns a Promise that resolves to the results array. | ||||
|      */ | ||||
|     walk(): Promise<Results<Opts>>; | ||||
|     /** | ||||
|      * synchronous {@link Glob.walk} | ||||
|      */ | ||||
|     walkSync(): Results<Opts>; | ||||
|     /** | ||||
|      * Stream results asynchronously. | ||||
|      */ | ||||
|     stream(): Minipass<Result<Opts>, Result<Opts>>; | ||||
|     /** | ||||
|      * Stream results synchronously. | ||||
|      */ | ||||
|     streamSync(): Minipass<Result<Opts>, Result<Opts>>; | ||||
|     /** | ||||
|      * Default sync iteration function. Returns a Generator that | ||||
|      * iterates over the results. | ||||
|      */ | ||||
|     iterateSync(): Generator<Result<Opts>, void, void>; | ||||
|     [Symbol.iterator](): Generator<Result<Opts>, void, void>; | ||||
|     /** | ||||
|      * Default async iteration function. Returns an AsyncGenerator that | ||||
|      * iterates over the results. | ||||
|      */ | ||||
|     iterate(): AsyncGenerator<Result<Opts>, void, void>; | ||||
|     [Symbol.asyncIterator](): AsyncGenerator<Result<Opts>, void, void>; | ||||
| } | ||||
| //# sourceMappingURL=glob.d.ts.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/glob.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/glob.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../src/glob.ts"],"names":[],"mappings":"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"} | ||||
							
								
								
									
										243
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/glob.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										243
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/glob.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,243 @@ | ||||
| import { Minimatch } from 'minimatch'; | ||||
| import { fileURLToPath } from 'node:url'; | ||||
| import { PathScurry, PathScurryDarwin, PathScurryPosix, PathScurryWin32, } from 'path-scurry'; | ||||
| import { Pattern } from './pattern.js'; | ||||
| import { GlobStream, GlobWalker } from './walker.js'; | ||||
| // if no process global, just call it linux. | ||||
| // so we default to case-sensitive, / separators | ||||
| const defaultPlatform = (typeof process === 'object' && | ||||
|     process && | ||||
|     typeof process.platform === 'string') ? | ||||
|     process.platform | ||||
|     : 'linux'; | ||||
| /** | ||||
|  * An object that can perform glob pattern traversals. | ||||
|  */ | ||||
| export class Glob { | ||||
|     absolute; | ||||
|     cwd; | ||||
|     root; | ||||
|     dot; | ||||
|     dotRelative; | ||||
|     follow; | ||||
|     ignore; | ||||
|     magicalBraces; | ||||
|     mark; | ||||
|     matchBase; | ||||
|     maxDepth; | ||||
|     nobrace; | ||||
|     nocase; | ||||
|     nodir; | ||||
|     noext; | ||||
|     noglobstar; | ||||
|     pattern; | ||||
|     platform; | ||||
|     realpath; | ||||
|     scurry; | ||||
|     stat; | ||||
|     signal; | ||||
|     windowsPathsNoEscape; | ||||
|     withFileTypes; | ||||
|     includeChildMatches; | ||||
|     /** | ||||
|      * The options provided to the constructor. | ||||
|      */ | ||||
|     opts; | ||||
|     /** | ||||
|      * An array of parsed immutable {@link Pattern} objects. | ||||
|      */ | ||||
|     patterns; | ||||
|     /** | ||||
|      * All options are stored as properties on the `Glob` object. | ||||
|      * | ||||
|      * See {@link GlobOptions} for full options descriptions. | ||||
|      * | ||||
|      * Note that a previous `Glob` object can be passed as the | ||||
|      * `GlobOptions` to another `Glob` instantiation to re-use settings | ||||
|      * and caches with a new pattern. | ||||
|      * | ||||
|      * Traversal functions can be called multiple times to run the walk | ||||
|      * again. | ||||
|      */ | ||||
|     constructor(pattern, opts) { | ||||
|         /* c8 ignore start */ | ||||
|         if (!opts) | ||||
|             throw new TypeError('glob options required'); | ||||
|         /* c8 ignore stop */ | ||||
|         this.withFileTypes = !!opts.withFileTypes; | ||||
|         this.signal = opts.signal; | ||||
|         this.follow = !!opts.follow; | ||||
|         this.dot = !!opts.dot; | ||||
|         this.dotRelative = !!opts.dotRelative; | ||||
|         this.nodir = !!opts.nodir; | ||||
|         this.mark = !!opts.mark; | ||||
|         if (!opts.cwd) { | ||||
|             this.cwd = ''; | ||||
|         } | ||||
|         else if (opts.cwd instanceof URL || opts.cwd.startsWith('file://')) { | ||||
|             opts.cwd = fileURLToPath(opts.cwd); | ||||
|         } | ||||
|         this.cwd = opts.cwd || ''; | ||||
|         this.root = opts.root; | ||||
|         this.magicalBraces = !!opts.magicalBraces; | ||||
|         this.nobrace = !!opts.nobrace; | ||||
|         this.noext = !!opts.noext; | ||||
|         this.realpath = !!opts.realpath; | ||||
|         this.absolute = opts.absolute; | ||||
|         this.includeChildMatches = opts.includeChildMatches !== false; | ||||
|         this.noglobstar = !!opts.noglobstar; | ||||
|         this.matchBase = !!opts.matchBase; | ||||
|         this.maxDepth = | ||||
|             typeof opts.maxDepth === 'number' ? opts.maxDepth : Infinity; | ||||
|         this.stat = !!opts.stat; | ||||
|         this.ignore = opts.ignore; | ||||
|         if (this.withFileTypes && this.absolute !== undefined) { | ||||
|             throw new Error('cannot set absolute and withFileTypes:true'); | ||||
|         } | ||||
|         if (typeof pattern === 'string') { | ||||
|             pattern = [pattern]; | ||||
|         } | ||||
|         this.windowsPathsNoEscape = | ||||
|             !!opts.windowsPathsNoEscape || | ||||
|                 opts.allowWindowsEscape === | ||||
|                     false; | ||||
|         if (this.windowsPathsNoEscape) { | ||||
|             pattern = pattern.map(p => p.replace(/\\/g, '/')); | ||||
|         } | ||||
|         if (this.matchBase) { | ||||
|             if (opts.noglobstar) { | ||||
|                 throw new TypeError('base matching requires globstar'); | ||||
|             } | ||||
|             pattern = pattern.map(p => (p.includes('/') ? p : `./**/${p}`)); | ||||
|         } | ||||
|         this.pattern = pattern; | ||||
|         this.platform = opts.platform || defaultPlatform; | ||||
|         this.opts = { ...opts, platform: this.platform }; | ||||
|         if (opts.scurry) { | ||||
|             this.scurry = opts.scurry; | ||||
|             if (opts.nocase !== undefined && | ||||
|                 opts.nocase !== opts.scurry.nocase) { | ||||
|                 throw new Error('nocase option contradicts provided scurry option'); | ||||
|             } | ||||
|         } | ||||
|         else { | ||||
|             const Scurry = opts.platform === 'win32' ? PathScurryWin32 | ||||
|                 : opts.platform === 'darwin' ? PathScurryDarwin | ||||
|                     : opts.platform ? PathScurryPosix | ||||
|                         : PathScurry; | ||||
|             this.scurry = new Scurry(this.cwd, { | ||||
|                 nocase: opts.nocase, | ||||
|                 fs: opts.fs, | ||||
|             }); | ||||
|         } | ||||
|         this.nocase = this.scurry.nocase; | ||||
|         // If you do nocase:true on a case-sensitive file system, then | ||||
|         // we need to use regexps instead of strings for non-magic | ||||
|         // path portions, because statting `aBc` won't return results | ||||
|         // for the file `AbC` for example. | ||||
|         const nocaseMagicOnly = this.platform === 'darwin' || this.platform === 'win32'; | ||||
|         const mmo = { | ||||
|             // default nocase based on platform | ||||
|             ...opts, | ||||
|             dot: this.dot, | ||||
|             matchBase: this.matchBase, | ||||
|             nobrace: this.nobrace, | ||||
|             nocase: this.nocase, | ||||
|             nocaseMagicOnly, | ||||
|             nocomment: true, | ||||
|             noext: this.noext, | ||||
|             nonegate: true, | ||||
|             optimizationLevel: 2, | ||||
|             platform: this.platform, | ||||
|             windowsPathsNoEscape: this.windowsPathsNoEscape, | ||||
|             debug: !!this.opts.debug, | ||||
|         }; | ||||
|         const mms = this.pattern.map(p => new Minimatch(p, mmo)); | ||||
|         const [matchSet, globParts] = mms.reduce((set, m) => { | ||||
|             set[0].push(...m.set); | ||||
|             set[1].push(...m.globParts); | ||||
|             return set; | ||||
|         }, [[], []]); | ||||
|         this.patterns = matchSet.map((set, i) => { | ||||
|             const g = globParts[i]; | ||||
|             /* c8 ignore start */ | ||||
|             if (!g) | ||||
|                 throw new Error('invalid pattern object'); | ||||
|             /* c8 ignore stop */ | ||||
|             return new Pattern(set, g, 0, this.platform); | ||||
|         }); | ||||
|     } | ||||
|     async walk() { | ||||
|         // Walkers always return array of Path objects, so we just have to | ||||
|         // coerce them into the right shape.  It will have already called | ||||
|         // realpath() if the option was set to do so, so we know that's cached. | ||||
|         // start out knowing the cwd, at least | ||||
|         return [ | ||||
|             ...(await new GlobWalker(this.patterns, this.scurry.cwd, { | ||||
|                 ...this.opts, | ||||
|                 maxDepth: this.maxDepth !== Infinity ? | ||||
|                     this.maxDepth + this.scurry.cwd.depth() | ||||
|                     : Infinity, | ||||
|                 platform: this.platform, | ||||
|                 nocase: this.nocase, | ||||
|                 includeChildMatches: this.includeChildMatches, | ||||
|             }).walk()), | ||||
|         ]; | ||||
|     } | ||||
|     walkSync() { | ||||
|         return [ | ||||
|             ...new GlobWalker(this.patterns, this.scurry.cwd, { | ||||
|                 ...this.opts, | ||||
|                 maxDepth: this.maxDepth !== Infinity ? | ||||
|                     this.maxDepth + this.scurry.cwd.depth() | ||||
|                     : Infinity, | ||||
|                 platform: this.platform, | ||||
|                 nocase: this.nocase, | ||||
|                 includeChildMatches: this.includeChildMatches, | ||||
|             }).walkSync(), | ||||
|         ]; | ||||
|     } | ||||
|     stream() { | ||||
|         return new GlobStream(this.patterns, this.scurry.cwd, { | ||||
|             ...this.opts, | ||||
|             maxDepth: this.maxDepth !== Infinity ? | ||||
|                 this.maxDepth + this.scurry.cwd.depth() | ||||
|                 : Infinity, | ||||
|             platform: this.platform, | ||||
|             nocase: this.nocase, | ||||
|             includeChildMatches: this.includeChildMatches, | ||||
|         }).stream(); | ||||
|     } | ||||
|     streamSync() { | ||||
|         return new GlobStream(this.patterns, this.scurry.cwd, { | ||||
|             ...this.opts, | ||||
|             maxDepth: this.maxDepth !== Infinity ? | ||||
|                 this.maxDepth + this.scurry.cwd.depth() | ||||
|                 : Infinity, | ||||
|             platform: this.platform, | ||||
|             nocase: this.nocase, | ||||
|             includeChildMatches: this.includeChildMatches, | ||||
|         }).streamSync(); | ||||
|     } | ||||
|     /** | ||||
|      * Default sync iteration function. Returns a Generator that | ||||
|      * iterates over the results. | ||||
|      */ | ||||
|     iterateSync() { | ||||
|         return this.streamSync()[Symbol.iterator](); | ||||
|     } | ||||
|     [Symbol.iterator]() { | ||||
|         return this.iterateSync(); | ||||
|     } | ||||
|     /** | ||||
|      * Default async iteration function. Returns an AsyncGenerator that | ||||
|      * iterates over the results. | ||||
|      */ | ||||
|     iterate() { | ||||
|         return this.stream()[Symbol.asyncIterator](); | ||||
|     } | ||||
|     [Symbol.asyncIterator]() { | ||||
|         return this.iterate(); | ||||
|     } | ||||
| } | ||||
| //# sourceMappingURL=glob.js.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/glob.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/glob.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										14
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/has-magic.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/has-magic.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| import { GlobOptions } from './glob.js'; | ||||
| /** | ||||
|  * Return true if the patterns provided contain any magic glob characters, | ||||
|  * given the options provided. | ||||
|  * | ||||
|  * Brace expansion is not considered "magic" unless the `magicalBraces` option | ||||
|  * is set, as brace expansion just turns one string into an array of strings. | ||||
|  * So a pattern like `'x{a,b}y'` would return `false`, because `'xay'` and | ||||
|  * `'xby'` both do not contain any magic glob characters, and it's treated the | ||||
|  * same as if you had called it on `['xay', 'xby']`. When `magicalBraces:true` | ||||
|  * is in the options, brace expansion _is_ treated as a pattern having magic. | ||||
|  */ | ||||
| export declare const hasMagic: (pattern: string | string[], options?: GlobOptions) => boolean; | ||||
| //# sourceMappingURL=has-magic.d.ts.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/has-magic.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/has-magic.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"has-magic.d.ts","sourceRoot":"","sources":["../../src/has-magic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEvC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,YACV,MAAM,GAAG,MAAM,EAAE,YACjB,WAAW,KACnB,OAQF,CAAA"} | ||||
							
								
								
									
										23
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/has-magic.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/has-magic.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| import { Minimatch } from 'minimatch'; | ||||
| /** | ||||
|  * Return true if the patterns provided contain any magic glob characters, | ||||
|  * given the options provided. | ||||
|  * | ||||
|  * Brace expansion is not considered "magic" unless the `magicalBraces` option | ||||
|  * is set, as brace expansion just turns one string into an array of strings. | ||||
|  * So a pattern like `'x{a,b}y'` would return `false`, because `'xay'` and | ||||
|  * `'xby'` both do not contain any magic glob characters, and it's treated the | ||||
|  * same as if you had called it on `['xay', 'xby']`. When `magicalBraces:true` | ||||
|  * is in the options, brace expansion _is_ treated as a pattern having magic. | ||||
|  */ | ||||
| export const hasMagic = (pattern, options = {}) => { | ||||
|     if (!Array.isArray(pattern)) { | ||||
|         pattern = [pattern]; | ||||
|     } | ||||
|     for (const p of pattern) { | ||||
|         if (new Minimatch(p, options).hasMagic()) | ||||
|             return true; | ||||
|     } | ||||
|     return false; | ||||
| }; | ||||
| //# sourceMappingURL=has-magic.js.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/has-magic.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/has-magic.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"has-magic.js","sourceRoot":"","sources":["../../src/has-magic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAGrC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,OAA0B,EAC1B,UAAuB,EAAE,EAChB,EAAE;IACX,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAA;IACrB,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,IAAI,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE;YAAE,OAAO,IAAI,CAAA;IACvD,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA","sourcesContent":["import { Minimatch } from 'minimatch'\nimport { GlobOptions } from './glob.js'\n\n/**\n * Return true if the patterns provided contain any magic glob characters,\n * given the options provided.\n *\n * Brace expansion is not considered \"magic\" unless the `magicalBraces` option\n * is set, as brace expansion just turns one string into an array of strings.\n * So a pattern like `'x{a,b}y'` would return `false`, because `'xay'` and\n * `'xby'` both do not contain any magic glob characters, and it's treated the\n * same as if you had called it on `['xay', 'xby']`. When `magicalBraces:true`\n * is in the options, brace expansion _is_ treated as a pattern having magic.\n */\nexport const hasMagic = (\n  pattern: string | string[],\n  options: GlobOptions = {},\n): boolean => {\n  if (!Array.isArray(pattern)) {\n    pattern = [pattern]\n  }\n  for (const p of pattern) {\n    if (new Minimatch(p, options).hasMagic()) return true\n  }\n  return false\n}\n"]} | ||||
							
								
								
									
										24
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/ignore.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/ignore.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| import { Minimatch, MinimatchOptions } from 'minimatch'; | ||||
| import { Path } from 'path-scurry'; | ||||
| import { GlobWalkerOpts } from './walker.js'; | ||||
| export interface IgnoreLike { | ||||
|     ignored?: (p: Path) => boolean; | ||||
|     childrenIgnored?: (p: Path) => boolean; | ||||
|     add?: (ignore: string) => void; | ||||
| } | ||||
| /** | ||||
|  * Class used to process ignored patterns | ||||
|  */ | ||||
| export declare class Ignore implements IgnoreLike { | ||||
|     relative: Minimatch[]; | ||||
|     relativeChildren: Minimatch[]; | ||||
|     absolute: Minimatch[]; | ||||
|     absoluteChildren: Minimatch[]; | ||||
|     platform: NodeJS.Platform; | ||||
|     mmopts: MinimatchOptions; | ||||
|     constructor(ignored: string[], { nobrace, nocase, noext, noglobstar, platform, }: GlobWalkerOpts); | ||||
|     add(ign: string): void; | ||||
|     ignored(p: Path): boolean; | ||||
|     childrenIgnored(p: Path): boolean; | ||||
| } | ||||
| //# sourceMappingURL=ignore.d.ts.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/ignore.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/ignore.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"ignore.d.ts","sourceRoot":"","sources":["../../src/ignore.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAA;IAC9B,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAA;IACtC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CAC/B;AAWD;;GAEG;AACH,qBAAa,MAAO,YAAW,UAAU;IACvC,QAAQ,EAAE,SAAS,EAAE,CAAA;IACrB,gBAAgB,EAAE,SAAS,EAAE,CAAA;IAC7B,QAAQ,EAAE,SAAS,EAAE,CAAA;IACrB,gBAAgB,EAAE,SAAS,EAAE,CAAA;IAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAA;IACzB,MAAM,EAAE,gBAAgB,CAAA;gBAGtB,OAAO,EAAE,MAAM,EAAE,EACjB,EACE,OAAO,EACP,MAAM,EACN,KAAK,EACL,UAAU,EACV,QAA0B,GAC3B,EAAE,cAAc;IAqBnB,GAAG,CAAC,GAAG,EAAE,MAAM;IAyCf,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO;IAczB,eAAe,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO;CAWlC"} | ||||
							
								
								
									
										115
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/ignore.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										115
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/ignore.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,115 @@ | ||||
| // give it a pattern, and it'll be able to tell you if | ||||
| // a given path should be ignored. | ||||
| // Ignoring a path ignores its children if the pattern ends in /** | ||||
| // Ignores are always parsed in dot:true mode | ||||
| import { Minimatch } from 'minimatch'; | ||||
| import { Pattern } from './pattern.js'; | ||||
| const defaultPlatform = (typeof process === 'object' && | ||||
|     process && | ||||
|     typeof process.platform === 'string') ? | ||||
|     process.platform | ||||
|     : 'linux'; | ||||
| /** | ||||
|  * Class used to process ignored patterns | ||||
|  */ | ||||
| export class Ignore { | ||||
|     relative; | ||||
|     relativeChildren; | ||||
|     absolute; | ||||
|     absoluteChildren; | ||||
|     platform; | ||||
|     mmopts; | ||||
|     constructor(ignored, { nobrace, nocase, noext, noglobstar, platform = defaultPlatform, }) { | ||||
|         this.relative = []; | ||||
|         this.absolute = []; | ||||
|         this.relativeChildren = []; | ||||
|         this.absoluteChildren = []; | ||||
|         this.platform = platform; | ||||
|         this.mmopts = { | ||||
|             dot: true, | ||||
|             nobrace, | ||||
|             nocase, | ||||
|             noext, | ||||
|             noglobstar, | ||||
|             optimizationLevel: 2, | ||||
|             platform, | ||||
|             nocomment: true, | ||||
|             nonegate: true, | ||||
|         }; | ||||
|         for (const ign of ignored) | ||||
|             this.add(ign); | ||||
|     } | ||||
|     add(ign) { | ||||
|         // this is a little weird, but it gives us a clean set of optimized | ||||
|         // minimatch matchers, without getting tripped up if one of them | ||||
|         // ends in /** inside a brace section, and it's only inefficient at | ||||
|         // the start of the walk, not along it. | ||||
|         // It'd be nice if the Pattern class just had a .test() method, but | ||||
|         // handling globstars is a bit of a pita, and that code already lives | ||||
|         // in minimatch anyway. | ||||
|         // Another way would be if maybe Minimatch could take its set/globParts | ||||
|         // as an option, and then we could at least just use Pattern to test | ||||
|         // for absolute-ness. | ||||
|         // Yet another way, Minimatch could take an array of glob strings, and | ||||
|         // a cwd option, and do the right thing. | ||||
|         const mm = new Minimatch(ign, this.mmopts); | ||||
|         for (let i = 0; i < mm.set.length; i++) { | ||||
|             const parsed = mm.set[i]; | ||||
|             const globParts = mm.globParts[i]; | ||||
|             /* c8 ignore start */ | ||||
|             if (!parsed || !globParts) { | ||||
|                 throw new Error('invalid pattern object'); | ||||
|             } | ||||
|             // strip off leading ./ portions | ||||
|             // https://github.com/isaacs/node-glob/issues/570 | ||||
|             while (parsed[0] === '.' && globParts[0] === '.') { | ||||
|                 parsed.shift(); | ||||
|                 globParts.shift(); | ||||
|             } | ||||
|             /* c8 ignore stop */ | ||||
|             const p = new Pattern(parsed, globParts, 0, this.platform); | ||||
|             const m = new Minimatch(p.globString(), this.mmopts); | ||||
|             const children = globParts[globParts.length - 1] === '**'; | ||||
|             const absolute = p.isAbsolute(); | ||||
|             if (absolute) | ||||
|                 this.absolute.push(m); | ||||
|             else | ||||
|                 this.relative.push(m); | ||||
|             if (children) { | ||||
|                 if (absolute) | ||||
|                     this.absoluteChildren.push(m); | ||||
|                 else | ||||
|                     this.relativeChildren.push(m); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     ignored(p) { | ||||
|         const fullpath = p.fullpath(); | ||||
|         const fullpaths = `${fullpath}/`; | ||||
|         const relative = p.relative() || '.'; | ||||
|         const relatives = `${relative}/`; | ||||
|         for (const m of this.relative) { | ||||
|             if (m.match(relative) || m.match(relatives)) | ||||
|                 return true; | ||||
|         } | ||||
|         for (const m of this.absolute) { | ||||
|             if (m.match(fullpath) || m.match(fullpaths)) | ||||
|                 return true; | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
|     childrenIgnored(p) { | ||||
|         const fullpath = p.fullpath() + '/'; | ||||
|         const relative = (p.relative() || '.') + '/'; | ||||
|         for (const m of this.relativeChildren) { | ||||
|             if (m.match(relative)) | ||||
|                 return true; | ||||
|         } | ||||
|         for (const m of this.absoluteChildren) { | ||||
|             if (m.match(fullpath)) | ||||
|                 return true; | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
| } | ||||
| //# sourceMappingURL=ignore.js.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/ignore.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/ignore.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										97
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/index.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/index.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,97 @@ | ||||
| import { Minipass } from 'minipass'; | ||||
| import { Path } from 'path-scurry'; | ||||
| import type { GlobOptions, GlobOptionsWithFileTypesFalse, GlobOptionsWithFileTypesTrue, GlobOptionsWithFileTypesUnset } from './glob.js'; | ||||
| import { Glob } from './glob.js'; | ||||
| export { escape, unescape } from 'minimatch'; | ||||
| export type { FSOption, Path, WalkOptions, WalkOptionsWithFileTypesTrue, WalkOptionsWithFileTypesUnset, } from 'path-scurry'; | ||||
| export { Glob } from './glob.js'; | ||||
| export type { GlobOptions, GlobOptionsWithFileTypesFalse, GlobOptionsWithFileTypesTrue, GlobOptionsWithFileTypesUnset, } from './glob.js'; | ||||
| export { hasMagic } from './has-magic.js'; | ||||
| export { Ignore } from './ignore.js'; | ||||
| export type { IgnoreLike } from './ignore.js'; | ||||
| export type { MatchStream } from './walker.js'; | ||||
| /** | ||||
|  * Syncronous form of {@link globStream}. Will read all the matches as fast as | ||||
|  * you consume them, even all in a single tick if you consume them immediately, | ||||
|  * but will still respond to backpressure if they're not consumed immediately. | ||||
|  */ | ||||
| export declare function globStreamSync(pattern: string | string[], options: GlobOptionsWithFileTypesTrue): Minipass<Path, Path>; | ||||
| export declare function globStreamSync(pattern: string | string[], options: GlobOptionsWithFileTypesFalse): Minipass<string, string>; | ||||
| export declare function globStreamSync(pattern: string | string[], options: GlobOptionsWithFileTypesUnset): Minipass<string, string>; | ||||
| export declare function globStreamSync(pattern: string | string[], options: GlobOptions): Minipass<Path, Path> | Minipass<string, string>; | ||||
| /** | ||||
|  * Return a stream that emits all the strings or `Path` objects and | ||||
|  * then emits `end` when completed. | ||||
|  */ | ||||
| export declare function globStream(pattern: string | string[], options: GlobOptionsWithFileTypesFalse): Minipass<string, string>; | ||||
| export declare function globStream(pattern: string | string[], options: GlobOptionsWithFileTypesTrue): Minipass<Path, Path>; | ||||
| export declare function globStream(pattern: string | string[], options?: GlobOptionsWithFileTypesUnset | undefined): Minipass<string, string>; | ||||
| export declare function globStream(pattern: string | string[], options: GlobOptions): Minipass<Path, Path> | Minipass<string, string>; | ||||
| /** | ||||
|  * Synchronous form of {@link glob} | ||||
|  */ | ||||
| export declare function globSync(pattern: string | string[], options: GlobOptionsWithFileTypesFalse): string[]; | ||||
| export declare function globSync(pattern: string | string[], options: GlobOptionsWithFileTypesTrue): Path[]; | ||||
| export declare function globSync(pattern: string | string[], options?: GlobOptionsWithFileTypesUnset | undefined): string[]; | ||||
| export declare function globSync(pattern: string | string[], options: GlobOptions): Path[] | string[]; | ||||
| /** | ||||
|  * Perform an asynchronous glob search for the pattern(s) specified. Returns | ||||
|  * [Path](https://isaacs.github.io/path-scurry/classes/PathBase) objects if the | ||||
|  * {@link withFileTypes} option is set to `true`. See {@link GlobOptions} for | ||||
|  * full option descriptions. | ||||
|  */ | ||||
| declare function glob_(pattern: string | string[], options?: GlobOptionsWithFileTypesUnset | undefined): Promise<string[]>; | ||||
| declare function glob_(pattern: string | string[], options: GlobOptionsWithFileTypesTrue): Promise<Path[]>; | ||||
| declare function glob_(pattern: string | string[], options: GlobOptionsWithFileTypesFalse): Promise<string[]>; | ||||
| declare function glob_(pattern: string | string[], options: GlobOptions): Promise<Path[] | string[]>; | ||||
| /** | ||||
|  * Return a sync iterator for walking glob pattern matches. | ||||
|  */ | ||||
| export declare function globIterateSync(pattern: string | string[], options?: GlobOptionsWithFileTypesUnset | undefined): Generator<string, void, void>; | ||||
| export declare function globIterateSync(pattern: string | string[], options: GlobOptionsWithFileTypesTrue): Generator<Path, void, void>; | ||||
| export declare function globIterateSync(pattern: string | string[], options: GlobOptionsWithFileTypesFalse): Generator<string, void, void>; | ||||
| export declare function globIterateSync(pattern: string | string[], options: GlobOptions): Generator<Path, void, void> | Generator<string, void, void>; | ||||
| /** | ||||
|  * Return an async iterator for walking glob pattern matches. | ||||
|  */ | ||||
| export declare function globIterate(pattern: string | string[], options?: GlobOptionsWithFileTypesUnset | undefined): AsyncGenerator<string, void, void>; | ||||
| export declare function globIterate(pattern: string | string[], options: GlobOptionsWithFileTypesTrue): AsyncGenerator<Path, void, void>; | ||||
| export declare function globIterate(pattern: string | string[], options: GlobOptionsWithFileTypesFalse): AsyncGenerator<string, void, void>; | ||||
| export declare function globIterate(pattern: string | string[], options: GlobOptions): AsyncGenerator<Path, void, void> | AsyncGenerator<string, void, void>; | ||||
| export declare const streamSync: typeof globStreamSync; | ||||
| export declare const stream: typeof globStream & { | ||||
|     sync: typeof globStreamSync; | ||||
| }; | ||||
| export declare const iterateSync: typeof globIterateSync; | ||||
| export declare const iterate: typeof globIterate & { | ||||
|     sync: typeof globIterateSync; | ||||
| }; | ||||
| export declare const sync: typeof globSync & { | ||||
|     stream: typeof globStreamSync; | ||||
|     iterate: typeof globIterateSync; | ||||
| }; | ||||
| export declare const glob: typeof glob_ & { | ||||
|     glob: typeof glob_; | ||||
|     globSync: typeof globSync; | ||||
|     sync: typeof globSync & { | ||||
|         stream: typeof globStreamSync; | ||||
|         iterate: typeof globIterateSync; | ||||
|     }; | ||||
|     globStream: typeof globStream; | ||||
|     stream: typeof globStream & { | ||||
|         sync: typeof globStreamSync; | ||||
|     }; | ||||
|     globStreamSync: typeof globStreamSync; | ||||
|     streamSync: typeof globStreamSync; | ||||
|     globIterate: typeof globIterate; | ||||
|     iterate: typeof globIterate & { | ||||
|         sync: typeof globIterateSync; | ||||
|     }; | ||||
|     globIterateSync: typeof globIterateSync; | ||||
|     iterateSync: typeof globIterateSync; | ||||
|     Glob: typeof Glob; | ||||
|     hasMagic: (pattern: string | string[], options?: GlobOptions) => boolean; | ||||
|     escape: (s: string, { windowsPathsNoEscape, }?: Pick<import("minimatch").MinimatchOptions, "windowsPathsNoEscape">) => string; | ||||
|     unescape: (s: string, { windowsPathsNoEscape, }?: Pick<import("minimatch").MinimatchOptions, "windowsPathsNoEscape">) => string; | ||||
| }; | ||||
| //# sourceMappingURL=index.d.ts.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/index.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/index.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"} | ||||
							
								
								
									
										55
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | ||||
| import { escape, unescape } from 'minimatch'; | ||||
| import { Glob } from './glob.js'; | ||||
| import { hasMagic } from './has-magic.js'; | ||||
| export { escape, unescape } from 'minimatch'; | ||||
| export { Glob } from './glob.js'; | ||||
| export { hasMagic } from './has-magic.js'; | ||||
| export { Ignore } from './ignore.js'; | ||||
| export function globStreamSync(pattern, options = {}) { | ||||
|     return new Glob(pattern, options).streamSync(); | ||||
| } | ||||
| export function globStream(pattern, options = {}) { | ||||
|     return new Glob(pattern, options).stream(); | ||||
| } | ||||
| export function globSync(pattern, options = {}) { | ||||
|     return new Glob(pattern, options).walkSync(); | ||||
| } | ||||
| async function glob_(pattern, options = {}) { | ||||
|     return new Glob(pattern, options).walk(); | ||||
| } | ||||
| export function globIterateSync(pattern, options = {}) { | ||||
|     return new Glob(pattern, options).iterateSync(); | ||||
| } | ||||
| export function globIterate(pattern, options = {}) { | ||||
|     return new Glob(pattern, options).iterate(); | ||||
| } | ||||
| // aliases: glob.sync.stream() glob.stream.sync() glob.sync() etc | ||||
| export const streamSync = globStreamSync; | ||||
| export const stream = Object.assign(globStream, { sync: globStreamSync }); | ||||
| export const iterateSync = globIterateSync; | ||||
| export const iterate = Object.assign(globIterate, { | ||||
|     sync: globIterateSync, | ||||
| }); | ||||
| export const sync = Object.assign(globSync, { | ||||
|     stream: globStreamSync, | ||||
|     iterate: globIterateSync, | ||||
| }); | ||||
| export const glob = Object.assign(glob_, { | ||||
|     glob: glob_, | ||||
|     globSync, | ||||
|     sync, | ||||
|     globStream, | ||||
|     stream, | ||||
|     globStreamSync, | ||||
|     streamSync, | ||||
|     globIterate, | ||||
|     iterate, | ||||
|     globIterateSync, | ||||
|     iterateSync, | ||||
|     Glob, | ||||
|     hasMagic, | ||||
|     escape, | ||||
|     unescape, | ||||
| }); | ||||
| glob.glob = glob; | ||||
| //# sourceMappingURL=index.js.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/index.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/index.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										3
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| { | ||||
|   "type": "module" | ||||
| } | ||||
							
								
								
									
										76
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/pattern.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/pattern.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,76 @@ | ||||
| import { GLOBSTAR } from 'minimatch'; | ||||
| export type MMPattern = string | RegExp | typeof GLOBSTAR; | ||||
| export type PatternList = [p: MMPattern, ...rest: MMPattern[]]; | ||||
| export type UNCPatternList = [ | ||||
|     p0: '', | ||||
|     p1: '', | ||||
|     p2: string, | ||||
|     p3: string, | ||||
|     ...rest: MMPattern[] | ||||
| ]; | ||||
| export type DrivePatternList = [p0: string, ...rest: MMPattern[]]; | ||||
| export type AbsolutePatternList = [p0: '', ...rest: MMPattern[]]; | ||||
| export type GlobList = [p: string, ...rest: string[]]; | ||||
| /** | ||||
|  * An immutable-ish view on an array of glob parts and their parsed | ||||
|  * results | ||||
|  */ | ||||
| export declare class Pattern { | ||||
|     #private; | ||||
|     readonly length: number; | ||||
|     constructor(patternList: MMPattern[], globList: string[], index: number, platform: NodeJS.Platform); | ||||
|     /** | ||||
|      * The first entry in the parsed list of patterns | ||||
|      */ | ||||
|     pattern(): MMPattern; | ||||
|     /** | ||||
|      * true of if pattern() returns a string | ||||
|      */ | ||||
|     isString(): boolean; | ||||
|     /** | ||||
|      * true of if pattern() returns GLOBSTAR | ||||
|      */ | ||||
|     isGlobstar(): boolean; | ||||
|     /** | ||||
|      * true if pattern() returns a regexp | ||||
|      */ | ||||
|     isRegExp(): boolean; | ||||
|     /** | ||||
|      * The /-joined set of glob parts that make up this pattern | ||||
|      */ | ||||
|     globString(): string; | ||||
|     /** | ||||
|      * true if there are more pattern parts after this one | ||||
|      */ | ||||
|     hasMore(): boolean; | ||||
|     /** | ||||
|      * The rest of the pattern after this part, or null if this is the end | ||||
|      */ | ||||
|     rest(): Pattern | null; | ||||
|     /** | ||||
|      * true if the pattern represents a //unc/path/ on windows | ||||
|      */ | ||||
|     isUNC(): boolean; | ||||
|     /** | ||||
|      * True if the pattern starts with a drive letter on Windows | ||||
|      */ | ||||
|     isDrive(): boolean; | ||||
|     /** | ||||
|      * True if the pattern is rooted on an absolute path | ||||
|      */ | ||||
|     isAbsolute(): boolean; | ||||
|     /** | ||||
|      * consume the root of the pattern, and return it | ||||
|      */ | ||||
|     root(): string; | ||||
|     /** | ||||
|      * Check to see if the current globstar pattern is allowed to follow | ||||
|      * a symbolic link. | ||||
|      */ | ||||
|     checkFollowGlobstar(): boolean; | ||||
|     /** | ||||
|      * Mark that the current globstar pattern is following a symbolic link | ||||
|      */ | ||||
|     markFollowGlobstar(): boolean; | ||||
| } | ||||
| //# sourceMappingURL=pattern.d.ts.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/pattern.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/pattern.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"pattern.d.ts","sourceRoot":"","sources":["../../src/pattern.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,QAAQ,CAAA;AAGzD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AAC9D,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,GAAG,IAAI,EAAE,SAAS,EAAE;CACrB,CAAA;AACD,MAAM,MAAM,gBAAgB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AACjE,MAAM,MAAM,mBAAmB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AAChE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;AAMrD;;;GAGG;AACH,qBAAa,OAAO;;IAIlB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;gBAUrB,WAAW,EAAE,SAAS,EAAE,EACxB,QAAQ,EAAE,MAAM,EAAE,EAClB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;IA6D3B;;OAEG;IACH,OAAO,IAAI,SAAS;IAIpB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAGnB;;OAEG;IACH,UAAU,IAAI,OAAO;IAGrB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,UAAU,IAAI,MAAM;IAUpB;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,IAAI,IAAI,OAAO,GAAG,IAAI;IAetB;;OAEG;IACH,KAAK,IAAI,OAAO;IAoBhB;;OAEG;IACH,OAAO,IAAI,OAAO;IAelB;;OAEG;IACH,UAAU,IAAI,OAAO;IAUrB;;OAEG;IACH,IAAI,IAAI,MAAM;IASd;;;OAGG;IACH,mBAAmB,IAAI,OAAO;IAQ9B;;OAEG;IACH,kBAAkB,IAAI,OAAO;CAM9B"} | ||||
							
								
								
									
										215
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/pattern.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										215
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/pattern.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,215 @@ | ||||
| // this is just a very light wrapper around 2 arrays with an offset index | ||||
| import { GLOBSTAR } from 'minimatch'; | ||||
| const isPatternList = (pl) => pl.length >= 1; | ||||
| const isGlobList = (gl) => gl.length >= 1; | ||||
| /** | ||||
|  * An immutable-ish view on an array of glob parts and their parsed | ||||
|  * results | ||||
|  */ | ||||
| export class Pattern { | ||||
|     #patternList; | ||||
|     #globList; | ||||
|     #index; | ||||
|     length; | ||||
|     #platform; | ||||
|     #rest; | ||||
|     #globString; | ||||
|     #isDrive; | ||||
|     #isUNC; | ||||
|     #isAbsolute; | ||||
|     #followGlobstar = true; | ||||
|     constructor(patternList, globList, index, platform) { | ||||
|         if (!isPatternList(patternList)) { | ||||
|             throw new TypeError('empty pattern list'); | ||||
|         } | ||||
|         if (!isGlobList(globList)) { | ||||
|             throw new TypeError('empty glob list'); | ||||
|         } | ||||
|         if (globList.length !== patternList.length) { | ||||
|             throw new TypeError('mismatched pattern list and glob list lengths'); | ||||
|         } | ||||
|         this.length = patternList.length; | ||||
|         if (index < 0 || index >= this.length) { | ||||
|             throw new TypeError('index out of range'); | ||||
|         } | ||||
|         this.#patternList = patternList; | ||||
|         this.#globList = globList; | ||||
|         this.#index = index; | ||||
|         this.#platform = platform; | ||||
|         // normalize root entries of absolute patterns on initial creation. | ||||
|         if (this.#index === 0) { | ||||
|             // c: => ['c:/'] | ||||
|             // C:/ => ['C:/'] | ||||
|             // C:/x => ['C:/', 'x'] | ||||
|             // //host/share => ['//host/share/'] | ||||
|             // //host/share/ => ['//host/share/'] | ||||
|             // //host/share/x => ['//host/share/', 'x'] | ||||
|             // /etc => ['/', 'etc'] | ||||
|             // / => ['/'] | ||||
|             if (this.isUNC()) { | ||||
|                 // '' / '' / 'host' / 'share' | ||||
|                 const [p0, p1, p2, p3, ...prest] = this.#patternList; | ||||
|                 const [g0, g1, g2, g3, ...grest] = this.#globList; | ||||
|                 if (prest[0] === '') { | ||||
|                     // ends in / | ||||
|                     prest.shift(); | ||||
|                     grest.shift(); | ||||
|                 } | ||||
|                 const p = [p0, p1, p2, p3, ''].join('/'); | ||||
|                 const g = [g0, g1, g2, g3, ''].join('/'); | ||||
|                 this.#patternList = [p, ...prest]; | ||||
|                 this.#globList = [g, ...grest]; | ||||
|                 this.length = this.#patternList.length; | ||||
|             } | ||||
|             else if (this.isDrive() || this.isAbsolute()) { | ||||
|                 const [p1, ...prest] = this.#patternList; | ||||
|                 const [g1, ...grest] = this.#globList; | ||||
|                 if (prest[0] === '') { | ||||
|                     // ends in / | ||||
|                     prest.shift(); | ||||
|                     grest.shift(); | ||||
|                 } | ||||
|                 const p = p1 + '/'; | ||||
|                 const g = g1 + '/'; | ||||
|                 this.#patternList = [p, ...prest]; | ||||
|                 this.#globList = [g, ...grest]; | ||||
|                 this.length = this.#patternList.length; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     /** | ||||
|      * The first entry in the parsed list of patterns | ||||
|      */ | ||||
|     pattern() { | ||||
|         return this.#patternList[this.#index]; | ||||
|     } | ||||
|     /** | ||||
|      * true of if pattern() returns a string | ||||
|      */ | ||||
|     isString() { | ||||
|         return typeof this.#patternList[this.#index] === 'string'; | ||||
|     } | ||||
|     /** | ||||
|      * true of if pattern() returns GLOBSTAR | ||||
|      */ | ||||
|     isGlobstar() { | ||||
|         return this.#patternList[this.#index] === GLOBSTAR; | ||||
|     } | ||||
|     /** | ||||
|      * true if pattern() returns a regexp | ||||
|      */ | ||||
|     isRegExp() { | ||||
|         return this.#patternList[this.#index] instanceof RegExp; | ||||
|     } | ||||
|     /** | ||||
|      * The /-joined set of glob parts that make up this pattern | ||||
|      */ | ||||
|     globString() { | ||||
|         return (this.#globString = | ||||
|             this.#globString || | ||||
|                 (this.#index === 0 ? | ||||
|                     this.isAbsolute() ? | ||||
|                         this.#globList[0] + this.#globList.slice(1).join('/') | ||||
|                         : this.#globList.join('/') | ||||
|                     : this.#globList.slice(this.#index).join('/'))); | ||||
|     } | ||||
|     /** | ||||
|      * true if there are more pattern parts after this one | ||||
|      */ | ||||
|     hasMore() { | ||||
|         return this.length > this.#index + 1; | ||||
|     } | ||||
|     /** | ||||
|      * The rest of the pattern after this part, or null if this is the end | ||||
|      */ | ||||
|     rest() { | ||||
|         if (this.#rest !== undefined) | ||||
|             return this.#rest; | ||||
|         if (!this.hasMore()) | ||||
|             return (this.#rest = null); | ||||
|         this.#rest = new Pattern(this.#patternList, this.#globList, this.#index + 1, this.#platform); | ||||
|         this.#rest.#isAbsolute = this.#isAbsolute; | ||||
|         this.#rest.#isUNC = this.#isUNC; | ||||
|         this.#rest.#isDrive = this.#isDrive; | ||||
|         return this.#rest; | ||||
|     } | ||||
|     /** | ||||
|      * true if the pattern represents a //unc/path/ on windows | ||||
|      */ | ||||
|     isUNC() { | ||||
|         const pl = this.#patternList; | ||||
|         return this.#isUNC !== undefined ? | ||||
|             this.#isUNC | ||||
|             : (this.#isUNC = | ||||
|                 this.#platform === 'win32' && | ||||
|                     this.#index === 0 && | ||||
|                     pl[0] === '' && | ||||
|                     pl[1] === '' && | ||||
|                     typeof pl[2] === 'string' && | ||||
|                     !!pl[2] && | ||||
|                     typeof pl[3] === 'string' && | ||||
|                     !!pl[3]); | ||||
|     } | ||||
|     // pattern like C:/... | ||||
|     // split = ['C:', ...] | ||||
|     // XXX: would be nice to handle patterns like `c:*` to test the cwd | ||||
|     // in c: for *, but I don't know of a way to even figure out what that | ||||
|     // cwd is without actually chdir'ing into it? | ||||
|     /** | ||||
|      * True if the pattern starts with a drive letter on Windows | ||||
|      */ | ||||
|     isDrive() { | ||||
|         const pl = this.#patternList; | ||||
|         return this.#isDrive !== undefined ? | ||||
|             this.#isDrive | ||||
|             : (this.#isDrive = | ||||
|                 this.#platform === 'win32' && | ||||
|                     this.#index === 0 && | ||||
|                     this.length > 1 && | ||||
|                     typeof pl[0] === 'string' && | ||||
|                     /^[a-z]:$/i.test(pl[0])); | ||||
|     } | ||||
|     // pattern = '/' or '/...' or '/x/...' | ||||
|     // split = ['', ''] or ['', ...] or ['', 'x', ...] | ||||
|     // Drive and UNC both considered absolute on windows | ||||
|     /** | ||||
|      * True if the pattern is rooted on an absolute path | ||||
|      */ | ||||
|     isAbsolute() { | ||||
|         const pl = this.#patternList; | ||||
|         return this.#isAbsolute !== undefined ? | ||||
|             this.#isAbsolute | ||||
|             : (this.#isAbsolute = | ||||
|                 (pl[0] === '' && pl.length > 1) || | ||||
|                     this.isDrive() || | ||||
|                     this.isUNC()); | ||||
|     } | ||||
|     /** | ||||
|      * consume the root of the pattern, and return it | ||||
|      */ | ||||
|     root() { | ||||
|         const p = this.#patternList[0]; | ||||
|         return (typeof p === 'string' && this.isAbsolute() && this.#index === 0) ? | ||||
|             p | ||||
|             : ''; | ||||
|     } | ||||
|     /** | ||||
|      * Check to see if the current globstar pattern is allowed to follow | ||||
|      * a symbolic link. | ||||
|      */ | ||||
|     checkFollowGlobstar() { | ||||
|         return !(this.#index === 0 || | ||||
|             !this.isGlobstar() || | ||||
|             !this.#followGlobstar); | ||||
|     } | ||||
|     /** | ||||
|      * Mark that the current globstar pattern is following a symbolic link | ||||
|      */ | ||||
|     markFollowGlobstar() { | ||||
|         if (this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar) | ||||
|             return false; | ||||
|         this.#followGlobstar = false; | ||||
|         return true; | ||||
|     } | ||||
| } | ||||
| //# sourceMappingURL=pattern.js.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/pattern.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/pattern.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										59
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/processor.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/processor.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,59 @@ | ||||
| import { MMRegExp } from 'minimatch'; | ||||
| import { Path } from 'path-scurry'; | ||||
| import { Pattern } from './pattern.js'; | ||||
| import { GlobWalkerOpts } from './walker.js'; | ||||
| /** | ||||
|  * A cache of which patterns have been processed for a given Path | ||||
|  */ | ||||
| export declare class HasWalkedCache { | ||||
|     store: Map<string, Set<string>>; | ||||
|     constructor(store?: Map<string, Set<string>>); | ||||
|     copy(): HasWalkedCache; | ||||
|     hasWalked(target: Path, pattern: Pattern): boolean | undefined; | ||||
|     storeWalked(target: Path, pattern: Pattern): void; | ||||
| } | ||||
| /** | ||||
|  * A record of which paths have been matched in a given walk step, | ||||
|  * and whether they only are considered a match if they are a directory, | ||||
|  * and whether their absolute or relative path should be returned. | ||||
|  */ | ||||
| export declare class MatchRecord { | ||||
|     store: Map<Path, number>; | ||||
|     add(target: Path, absolute: boolean, ifDir: boolean): void; | ||||
|     entries(): [Path, boolean, boolean][]; | ||||
| } | ||||
| /** | ||||
|  * A collection of patterns that must be processed in a subsequent step | ||||
|  * for a given path. | ||||
|  */ | ||||
| export declare class SubWalks { | ||||
|     store: Map<Path, Pattern[]>; | ||||
|     add(target: Path, pattern: Pattern): void; | ||||
|     get(target: Path): Pattern[]; | ||||
|     entries(): [Path, Pattern[]][]; | ||||
|     keys(): Path[]; | ||||
| } | ||||
| /** | ||||
|  * The class that processes patterns for a given path. | ||||
|  * | ||||
|  * Handles child entry filtering, and determining whether a path's | ||||
|  * directory contents must be read. | ||||
|  */ | ||||
| export declare class Processor { | ||||
|     hasWalkedCache: HasWalkedCache; | ||||
|     matches: MatchRecord; | ||||
|     subwalks: SubWalks; | ||||
|     patterns?: Pattern[]; | ||||
|     follow: boolean; | ||||
|     dot: boolean; | ||||
|     opts: GlobWalkerOpts; | ||||
|     constructor(opts: GlobWalkerOpts, hasWalkedCache?: HasWalkedCache); | ||||
|     processPatterns(target: Path, patterns: Pattern[]): this; | ||||
|     subwalkTargets(): Path[]; | ||||
|     child(): Processor; | ||||
|     filterEntries(parent: Path, entries: Path[]): Processor; | ||||
|     testGlobstar(e: Path, pattern: Pattern, rest: Pattern | null, absolute: boolean): void; | ||||
|     testRegExp(e: Path, p: MMRegExp, rest: Pattern | null, absolute: boolean): void; | ||||
|     testString(e: Path, p: string, rest: Pattern | null, absolute: boolean): void; | ||||
| } | ||||
| //# sourceMappingURL=processor.d.ts.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/processor.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/processor.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../src/processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,QAAQ,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAa,OAAO,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C;;GAEG;AACH,qBAAa,cAAc;IACzB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;gBACnB,KAAK,GAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IAGvD,IAAI;IAGJ,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;IAGxC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;CAM3C;AAED;;;;GAIG;AACH,qBAAa,WAAW;IACtB,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAY;IACpC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;IAMnD,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;CAOtC;AAED;;;GAGG;AACH,qBAAa,QAAQ;IACnB,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAY;IACvC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;IAWlC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,EAAE;IAS5B,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;IAG9B,IAAI,IAAI,IAAI,EAAE;CAGf;AAED;;;;;GAKG;AACH,qBAAa,SAAS;IACpB,cAAc,EAAE,cAAc,CAAA;IAC9B,OAAO,cAAoB;IAC3B,QAAQ,WAAiB;IACzB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB,MAAM,EAAE,OAAO,CAAA;IACf,GAAG,EAAE,OAAO,CAAA;IACZ,IAAI,EAAE,cAAc,CAAA;gBAER,IAAI,EAAE,cAAc,EAAE,cAAc,CAAC,EAAE,cAAc;IAQjE,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;IAmGjD,cAAc,IAAI,IAAI,EAAE;IAIxB,KAAK;IAQL,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,SAAS;IAqBvD,YAAY,CACV,CAAC,EAAE,IAAI,EACP,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,GAAG,IAAI,EACpB,QAAQ,EAAE,OAAO;IA8CnB,UAAU,CACR,CAAC,EAAE,IAAI,EACP,CAAC,EAAE,QAAQ,EACX,IAAI,EAAE,OAAO,GAAG,IAAI,EACpB,QAAQ,EAAE,OAAO;IAUnB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO;CASvE"} | ||||
							
								
								
									
										294
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/processor.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										294
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/processor.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,294 @@ | ||||
| // synchronous utility for filtering entries and calculating subwalks | ||||
| import { GLOBSTAR } from 'minimatch'; | ||||
| /** | ||||
|  * A cache of which patterns have been processed for a given Path | ||||
|  */ | ||||
| export class HasWalkedCache { | ||||
|     store; | ||||
|     constructor(store = new Map()) { | ||||
|         this.store = store; | ||||
|     } | ||||
|     copy() { | ||||
|         return new HasWalkedCache(new Map(this.store)); | ||||
|     } | ||||
|     hasWalked(target, pattern) { | ||||
|         return this.store.get(target.fullpath())?.has(pattern.globString()); | ||||
|     } | ||||
|     storeWalked(target, pattern) { | ||||
|         const fullpath = target.fullpath(); | ||||
|         const cached = this.store.get(fullpath); | ||||
|         if (cached) | ||||
|             cached.add(pattern.globString()); | ||||
|         else | ||||
|             this.store.set(fullpath, new Set([pattern.globString()])); | ||||
|     } | ||||
| } | ||||
| /** | ||||
|  * A record of which paths have been matched in a given walk step, | ||||
|  * and whether they only are considered a match if they are a directory, | ||||
|  * and whether their absolute or relative path should be returned. | ||||
|  */ | ||||
| export class MatchRecord { | ||||
|     store = new Map(); | ||||
|     add(target, absolute, ifDir) { | ||||
|         const n = (absolute ? 2 : 0) | (ifDir ? 1 : 0); | ||||
|         const current = this.store.get(target); | ||||
|         this.store.set(target, current === undefined ? n : n & current); | ||||
|     } | ||||
|     // match, absolute, ifdir | ||||
|     entries() { | ||||
|         return [...this.store.entries()].map(([path, n]) => [ | ||||
|             path, | ||||
|             !!(n & 2), | ||||
|             !!(n & 1), | ||||
|         ]); | ||||
|     } | ||||
| } | ||||
| /** | ||||
|  * A collection of patterns that must be processed in a subsequent step | ||||
|  * for a given path. | ||||
|  */ | ||||
| export class SubWalks { | ||||
|     store = new Map(); | ||||
|     add(target, pattern) { | ||||
|         if (!target.canReaddir()) { | ||||
|             return; | ||||
|         } | ||||
|         const subs = this.store.get(target); | ||||
|         if (subs) { | ||||
|             if (!subs.find(p => p.globString() === pattern.globString())) { | ||||
|                 subs.push(pattern); | ||||
|             } | ||||
|         } | ||||
|         else | ||||
|             this.store.set(target, [pattern]); | ||||
|     } | ||||
|     get(target) { | ||||
|         const subs = this.store.get(target); | ||||
|         /* c8 ignore start */ | ||||
|         if (!subs) { | ||||
|             throw new Error('attempting to walk unknown path'); | ||||
|         } | ||||
|         /* c8 ignore stop */ | ||||
|         return subs; | ||||
|     } | ||||
|     entries() { | ||||
|         return this.keys().map(k => [k, this.store.get(k)]); | ||||
|     } | ||||
|     keys() { | ||||
|         return [...this.store.keys()].filter(t => t.canReaddir()); | ||||
|     } | ||||
| } | ||||
| /** | ||||
|  * The class that processes patterns for a given path. | ||||
|  * | ||||
|  * Handles child entry filtering, and determining whether a path's | ||||
|  * directory contents must be read. | ||||
|  */ | ||||
| export class Processor { | ||||
|     hasWalkedCache; | ||||
|     matches = new MatchRecord(); | ||||
|     subwalks = new SubWalks(); | ||||
|     patterns; | ||||
|     follow; | ||||
|     dot; | ||||
|     opts; | ||||
|     constructor(opts, hasWalkedCache) { | ||||
|         this.opts = opts; | ||||
|         this.follow = !!opts.follow; | ||||
|         this.dot = !!opts.dot; | ||||
|         this.hasWalkedCache = | ||||
|             hasWalkedCache ? hasWalkedCache.copy() : new HasWalkedCache(); | ||||
|     } | ||||
|     processPatterns(target, patterns) { | ||||
|         this.patterns = patterns; | ||||
|         const processingSet = patterns.map(p => [target, p]); | ||||
|         // map of paths to the magic-starting subwalks they need to walk | ||||
|         // first item in patterns is the filter | ||||
|         for (let [t, pattern] of processingSet) { | ||||
|             this.hasWalkedCache.storeWalked(t, pattern); | ||||
|             const root = pattern.root(); | ||||
|             const absolute = pattern.isAbsolute() && this.opts.absolute !== false; | ||||
|             // start absolute patterns at root | ||||
|             if (root) { | ||||
|                 t = t.resolve(root === '/' && this.opts.root !== undefined ? | ||||
|                     this.opts.root | ||||
|                     : root); | ||||
|                 const rest = pattern.rest(); | ||||
|                 if (!rest) { | ||||
|                     this.matches.add(t, true, false); | ||||
|                     continue; | ||||
|                 } | ||||
|                 else { | ||||
|                     pattern = rest; | ||||
|                 } | ||||
|             } | ||||
|             if (t.isENOENT()) | ||||
|                 continue; | ||||
|             let p; | ||||
|             let rest; | ||||
|             let changed = false; | ||||
|             while (typeof (p = pattern.pattern()) === 'string' && | ||||
|                 (rest = pattern.rest())) { | ||||
|                 const c = t.resolve(p); | ||||
|                 t = c; | ||||
|                 pattern = rest; | ||||
|                 changed = true; | ||||
|             } | ||||
|             p = pattern.pattern(); | ||||
|             rest = pattern.rest(); | ||||
|             if (changed) { | ||||
|                 if (this.hasWalkedCache.hasWalked(t, pattern)) | ||||
|                     continue; | ||||
|                 this.hasWalkedCache.storeWalked(t, pattern); | ||||
|             } | ||||
|             // now we have either a final string for a known entry, | ||||
|             // more strings for an unknown entry, | ||||
|             // or a pattern starting with magic, mounted on t. | ||||
|             if (typeof p === 'string') { | ||||
|                 // must not be final entry, otherwise we would have | ||||
|                 // concatenated it earlier. | ||||
|                 const ifDir = p === '..' || p === '' || p === '.'; | ||||
|                 this.matches.add(t.resolve(p), absolute, ifDir); | ||||
|                 continue; | ||||
|             } | ||||
|             else if (p === GLOBSTAR) { | ||||
|                 // if no rest, match and subwalk pattern | ||||
|                 // if rest, process rest and subwalk pattern | ||||
|                 // if it's a symlink, but we didn't get here by way of a | ||||
|                 // globstar match (meaning it's the first time THIS globstar | ||||
|                 // has traversed a symlink), then we follow it. Otherwise, stop. | ||||
|                 if (!t.isSymbolicLink() || | ||||
|                     this.follow || | ||||
|                     pattern.checkFollowGlobstar()) { | ||||
|                     this.subwalks.add(t, pattern); | ||||
|                 } | ||||
|                 const rp = rest?.pattern(); | ||||
|                 const rrest = rest?.rest(); | ||||
|                 if (!rest || ((rp === '' || rp === '.') && !rrest)) { | ||||
|                     // only HAS to be a dir if it ends in **/ or **/. | ||||
|                     // but ending in ** will match files as well. | ||||
|                     this.matches.add(t, absolute, rp === '' || rp === '.'); | ||||
|                 } | ||||
|                 else { | ||||
|                     if (rp === '..') { | ||||
|                         // this would mean you're matching **/.. at the fs root, | ||||
|                         // and no thanks, I'm not gonna test that specific case. | ||||
|                         /* c8 ignore start */ | ||||
|                         const tp = t.parent || t; | ||||
|                         /* c8 ignore stop */ | ||||
|                         if (!rrest) | ||||
|                             this.matches.add(tp, absolute, true); | ||||
|                         else if (!this.hasWalkedCache.hasWalked(tp, rrest)) { | ||||
|                             this.subwalks.add(tp, rrest); | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             else if (p instanceof RegExp) { | ||||
|                 this.subwalks.add(t, pattern); | ||||
|             } | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|     subwalkTargets() { | ||||
|         return this.subwalks.keys(); | ||||
|     } | ||||
|     child() { | ||||
|         return new Processor(this.opts, this.hasWalkedCache); | ||||
|     } | ||||
|     // return a new Processor containing the subwalks for each | ||||
|     // child entry, and a set of matches, and | ||||
|     // a hasWalkedCache that's a copy of this one | ||||
|     // then we're going to call | ||||
|     filterEntries(parent, entries) { | ||||
|         const patterns = this.subwalks.get(parent); | ||||
|         // put matches and entry walks into the results processor | ||||
|         const results = this.child(); | ||||
|         for (const e of entries) { | ||||
|             for (const pattern of patterns) { | ||||
|                 const absolute = pattern.isAbsolute(); | ||||
|                 const p = pattern.pattern(); | ||||
|                 const rest = pattern.rest(); | ||||
|                 if (p === GLOBSTAR) { | ||||
|                     results.testGlobstar(e, pattern, rest, absolute); | ||||
|                 } | ||||
|                 else if (p instanceof RegExp) { | ||||
|                     results.testRegExp(e, p, rest, absolute); | ||||
|                 } | ||||
|                 else { | ||||
|                     results.testString(e, p, rest, absolute); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         return results; | ||||
|     } | ||||
|     testGlobstar(e, pattern, rest, absolute) { | ||||
|         if (this.dot || !e.name.startsWith('.')) { | ||||
|             if (!pattern.hasMore()) { | ||||
|                 this.matches.add(e, absolute, false); | ||||
|             } | ||||
|             if (e.canReaddir()) { | ||||
|                 // if we're in follow mode or it's not a symlink, just keep | ||||
|                 // testing the same pattern. If there's more after the globstar, | ||||
|                 // then this symlink consumes the globstar. If not, then we can | ||||
|                 // follow at most ONE symlink along the way, so we mark it, which | ||||
|                 // also checks to ensure that it wasn't already marked. | ||||
|                 if (this.follow || !e.isSymbolicLink()) { | ||||
|                     this.subwalks.add(e, pattern); | ||||
|                 } | ||||
|                 else if (e.isSymbolicLink()) { | ||||
|                     if (rest && pattern.checkFollowGlobstar()) { | ||||
|                         this.subwalks.add(e, rest); | ||||
|                     } | ||||
|                     else if (pattern.markFollowGlobstar()) { | ||||
|                         this.subwalks.add(e, pattern); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         // if the NEXT thing matches this entry, then also add | ||||
|         // the rest. | ||||
|         if (rest) { | ||||
|             const rp = rest.pattern(); | ||||
|             if (typeof rp === 'string' && | ||||
|                 // dots and empty were handled already | ||||
|                 rp !== '..' && | ||||
|                 rp !== '' && | ||||
|                 rp !== '.') { | ||||
|                 this.testString(e, rp, rest.rest(), absolute); | ||||
|             } | ||||
|             else if (rp === '..') { | ||||
|                 /* c8 ignore start */ | ||||
|                 const ep = e.parent || e; | ||||
|                 /* c8 ignore stop */ | ||||
|                 this.subwalks.add(ep, rest); | ||||
|             } | ||||
|             else if (rp instanceof RegExp) { | ||||
|                 this.testRegExp(e, rp, rest.rest(), absolute); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     testRegExp(e, p, rest, absolute) { | ||||
|         if (!p.test(e.name)) | ||||
|             return; | ||||
|         if (!rest) { | ||||
|             this.matches.add(e, absolute, false); | ||||
|         } | ||||
|         else { | ||||
|             this.subwalks.add(e, rest); | ||||
|         } | ||||
|     } | ||||
|     testString(e, p, rest, absolute) { | ||||
|         // should never happen? | ||||
|         if (!e.isNamed(p)) | ||||
|             return; | ||||
|         if (!rest) { | ||||
|             this.matches.add(e, absolute, false); | ||||
|         } | ||||
|         else { | ||||
|             this.subwalks.add(e, rest); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| //# sourceMappingURL=processor.js.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/processor.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/processor.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										97
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/walker.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/walker.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,97 @@ | ||||
| /** | ||||
|  * Single-use utility classes to provide functionality to the {@link Glob} | ||||
|  * methods. | ||||
|  * | ||||
|  * @module | ||||
|  */ | ||||
| import { Minipass } from 'minipass'; | ||||
| import { Path } from 'path-scurry'; | ||||
| import { IgnoreLike } from './ignore.js'; | ||||
| import { Pattern } from './pattern.js'; | ||||
| import { Processor } from './processor.js'; | ||||
| export interface GlobWalkerOpts { | ||||
|     absolute?: boolean; | ||||
|     allowWindowsEscape?: boolean; | ||||
|     cwd?: string | URL; | ||||
|     dot?: boolean; | ||||
|     dotRelative?: boolean; | ||||
|     follow?: boolean; | ||||
|     ignore?: string | string[] | IgnoreLike; | ||||
|     mark?: boolean; | ||||
|     matchBase?: boolean; | ||||
|     maxDepth?: number; | ||||
|     nobrace?: boolean; | ||||
|     nocase?: boolean; | ||||
|     nodir?: boolean; | ||||
|     noext?: boolean; | ||||
|     noglobstar?: boolean; | ||||
|     platform?: NodeJS.Platform; | ||||
|     posix?: boolean; | ||||
|     realpath?: boolean; | ||||
|     root?: string; | ||||
|     stat?: boolean; | ||||
|     signal?: AbortSignal; | ||||
|     windowsPathsNoEscape?: boolean; | ||||
|     withFileTypes?: boolean; | ||||
|     includeChildMatches?: boolean; | ||||
| } | ||||
| export type GWOFileTypesTrue = GlobWalkerOpts & { | ||||
|     withFileTypes: true; | ||||
| }; | ||||
| export type GWOFileTypesFalse = GlobWalkerOpts & { | ||||
|     withFileTypes: false; | ||||
| }; | ||||
| export type GWOFileTypesUnset = GlobWalkerOpts & { | ||||
|     withFileTypes?: undefined; | ||||
| }; | ||||
| export type Result<O extends GlobWalkerOpts> = O extends GWOFileTypesTrue ? Path : O extends GWOFileTypesFalse ? string : O extends GWOFileTypesUnset ? string : Path | string; | ||||
| export type Matches<O extends GlobWalkerOpts> = O extends GWOFileTypesTrue ? Set<Path> : O extends GWOFileTypesFalse ? Set<string> : O extends GWOFileTypesUnset ? Set<string> : Set<Path | string>; | ||||
| export type MatchStream<O extends GlobWalkerOpts> = Minipass<Result<O>, Result<O>>; | ||||
| /** | ||||
|  * basic walking utilities that all the glob walker types use | ||||
|  */ | ||||
| export declare abstract class GlobUtil<O extends GlobWalkerOpts = GlobWalkerOpts> { | ||||
|     #private; | ||||
|     path: Path; | ||||
|     patterns: Pattern[]; | ||||
|     opts: O; | ||||
|     seen: Set<Path>; | ||||
|     paused: boolean; | ||||
|     aborted: boolean; | ||||
|     signal?: AbortSignal; | ||||
|     maxDepth: number; | ||||
|     includeChildMatches: boolean; | ||||
|     constructor(patterns: Pattern[], path: Path, opts: O); | ||||
|     pause(): void; | ||||
|     resume(): void; | ||||
|     onResume(fn: () => any): void; | ||||
|     matchCheck(e: Path, ifDir: boolean): Promise<Path | undefined>; | ||||
|     matchCheckTest(e: Path | undefined, ifDir: boolean): Path | undefined; | ||||
|     matchCheckSync(e: Path, ifDir: boolean): Path | undefined; | ||||
|     abstract matchEmit(p: Result<O>): void; | ||||
|     abstract matchEmit(p: string | Path): void; | ||||
|     matchFinish(e: Path, absolute: boolean): void; | ||||
|     match(e: Path, absolute: boolean, ifDir: boolean): Promise<void>; | ||||
|     matchSync(e: Path, absolute: boolean, ifDir: boolean): void; | ||||
|     walkCB(target: Path, patterns: Pattern[], cb: () => any): void; | ||||
|     walkCB2(target: Path, patterns: Pattern[], processor: Processor, cb: () => any): any; | ||||
|     walkCB3(target: Path, entries: Path[], processor: Processor, cb: () => any): void; | ||||
|     walkCBSync(target: Path, patterns: Pattern[], cb: () => any): void; | ||||
|     walkCB2Sync(target: Path, patterns: Pattern[], processor: Processor, cb: () => any): any; | ||||
|     walkCB3Sync(target: Path, entries: Path[], processor: Processor, cb: () => any): void; | ||||
| } | ||||
| export declare class GlobWalker<O extends GlobWalkerOpts = GlobWalkerOpts> extends GlobUtil<O> { | ||||
|     matches: Set<Result<O>>; | ||||
|     constructor(patterns: Pattern[], path: Path, opts: O); | ||||
|     matchEmit(e: Result<O>): void; | ||||
|     walk(): Promise<Set<Result<O>>>; | ||||
|     walkSync(): Set<Result<O>>; | ||||
| } | ||||
| export declare class GlobStream<O extends GlobWalkerOpts = GlobWalkerOpts> extends GlobUtil<O> { | ||||
|     results: Minipass<Result<O>, Result<O>>; | ||||
|     constructor(patterns: Pattern[], path: Path, opts: O); | ||||
|     matchEmit(e: Result<O>): void; | ||||
|     stream(): MatchStream<O>; | ||||
|     streamSync(): MatchStream<O>; | ||||
| } | ||||
| //# sourceMappingURL=walker.d.ts.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/walker.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/walker.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"walker.d.ts","sourceRoot":"","sources":["../../src/walker.ts"],"names":[],"mappings":"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"} | ||||
							
								
								
									
										381
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/walker.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										381
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/walker.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,381 @@ | ||||
| /** | ||||
|  * Single-use utility classes to provide functionality to the {@link Glob} | ||||
|  * methods. | ||||
|  * | ||||
|  * @module | ||||
|  */ | ||||
| import { Minipass } from 'minipass'; | ||||
| import { Ignore } from './ignore.js'; | ||||
| import { Processor } from './processor.js'; | ||||
| const makeIgnore = (ignore, opts) => typeof ignore === 'string' ? new Ignore([ignore], opts) | ||||
|     : Array.isArray(ignore) ? new Ignore(ignore, opts) | ||||
|         : ignore; | ||||
| /** | ||||
|  * basic walking utilities that all the glob walker types use | ||||
|  */ | ||||
| export class GlobUtil { | ||||
|     path; | ||||
|     patterns; | ||||
|     opts; | ||||
|     seen = new Set(); | ||||
|     paused = false; | ||||
|     aborted = false; | ||||
|     #onResume = []; | ||||
|     #ignore; | ||||
|     #sep; | ||||
|     signal; | ||||
|     maxDepth; | ||||
|     includeChildMatches; | ||||
|     constructor(patterns, path, opts) { | ||||
|         this.patterns = patterns; | ||||
|         this.path = path; | ||||
|         this.opts = opts; | ||||
|         this.#sep = !opts.posix && opts.platform === 'win32' ? '\\' : '/'; | ||||
|         this.includeChildMatches = opts.includeChildMatches !== false; | ||||
|         if (opts.ignore || !this.includeChildMatches) { | ||||
|             this.#ignore = makeIgnore(opts.ignore ?? [], opts); | ||||
|             if (!this.includeChildMatches && | ||||
|                 typeof this.#ignore.add !== 'function') { | ||||
|                 const m = 'cannot ignore child matches, ignore lacks add() method.'; | ||||
|                 throw new Error(m); | ||||
|             } | ||||
|         } | ||||
|         // ignore, always set with maxDepth, but it's optional on the | ||||
|         // GlobOptions type | ||||
|         /* c8 ignore start */ | ||||
|         this.maxDepth = opts.maxDepth || Infinity; | ||||
|         /* c8 ignore stop */ | ||||
|         if (opts.signal) { | ||||
|             this.signal = opts.signal; | ||||
|             this.signal.addEventListener('abort', () => { | ||||
|                 this.#onResume.length = 0; | ||||
|             }); | ||||
|         } | ||||
|     } | ||||
|     #ignored(path) { | ||||
|         return this.seen.has(path) || !!this.#ignore?.ignored?.(path); | ||||
|     } | ||||
|     #childrenIgnored(path) { | ||||
|         return !!this.#ignore?.childrenIgnored?.(path); | ||||
|     } | ||||
|     // backpressure mechanism | ||||
|     pause() { | ||||
|         this.paused = true; | ||||
|     } | ||||
|     resume() { | ||||
|         /* c8 ignore start */ | ||||
|         if (this.signal?.aborted) | ||||
|             return; | ||||
|         /* c8 ignore stop */ | ||||
|         this.paused = false; | ||||
|         let fn = undefined; | ||||
|         while (!this.paused && (fn = this.#onResume.shift())) { | ||||
|             fn(); | ||||
|         } | ||||
|     } | ||||
|     onResume(fn) { | ||||
|         if (this.signal?.aborted) | ||||
|             return; | ||||
|         /* c8 ignore start */ | ||||
|         if (!this.paused) { | ||||
|             fn(); | ||||
|         } | ||||
|         else { | ||||
|             /* c8 ignore stop */ | ||||
|             this.#onResume.push(fn); | ||||
|         } | ||||
|     } | ||||
|     // do the requisite realpath/stat checking, and return the path | ||||
|     // to add or undefined to filter it out. | ||||
|     async matchCheck(e, ifDir) { | ||||
|         if (ifDir && this.opts.nodir) | ||||
|             return undefined; | ||||
|         let rpc; | ||||
|         if (this.opts.realpath) { | ||||
|             rpc = e.realpathCached() || (await e.realpath()); | ||||
|             if (!rpc) | ||||
|                 return undefined; | ||||
|             e = rpc; | ||||
|         } | ||||
|         const needStat = e.isUnknown() || this.opts.stat; | ||||
|         const s = needStat ? await e.lstat() : e; | ||||
|         if (this.opts.follow && this.opts.nodir && s?.isSymbolicLink()) { | ||||
|             const target = await s.realpath(); | ||||
|             /* c8 ignore start */ | ||||
|             if (target && (target.isUnknown() || this.opts.stat)) { | ||||
|                 await target.lstat(); | ||||
|             } | ||||
|             /* c8 ignore stop */ | ||||
|         } | ||||
|         return this.matchCheckTest(s, ifDir); | ||||
|     } | ||||
|     matchCheckTest(e, ifDir) { | ||||
|         return (e && | ||||
|             (this.maxDepth === Infinity || e.depth() <= this.maxDepth) && | ||||
|             (!ifDir || e.canReaddir()) && | ||||
|             (!this.opts.nodir || !e.isDirectory()) && | ||||
|             (!this.opts.nodir || | ||||
|                 !this.opts.follow || | ||||
|                 !e.isSymbolicLink() || | ||||
|                 !e.realpathCached()?.isDirectory()) && | ||||
|             !this.#ignored(e)) ? | ||||
|             e | ||||
|             : undefined; | ||||
|     } | ||||
|     matchCheckSync(e, ifDir) { | ||||
|         if (ifDir && this.opts.nodir) | ||||
|             return undefined; | ||||
|         let rpc; | ||||
|         if (this.opts.realpath) { | ||||
|             rpc = e.realpathCached() || e.realpathSync(); | ||||
|             if (!rpc) | ||||
|                 return undefined; | ||||
|             e = rpc; | ||||
|         } | ||||
|         const needStat = e.isUnknown() || this.opts.stat; | ||||
|         const s = needStat ? e.lstatSync() : e; | ||||
|         if (this.opts.follow && this.opts.nodir && s?.isSymbolicLink()) { | ||||
|             const target = s.realpathSync(); | ||||
|             if (target && (target?.isUnknown() || this.opts.stat)) { | ||||
|                 target.lstatSync(); | ||||
|             } | ||||
|         } | ||||
|         return this.matchCheckTest(s, ifDir); | ||||
|     } | ||||
|     matchFinish(e, absolute) { | ||||
|         if (this.#ignored(e)) | ||||
|             return; | ||||
|         // we know we have an ignore if this is false, but TS doesn't | ||||
|         if (!this.includeChildMatches && this.#ignore?.add) { | ||||
|             const ign = `${e.relativePosix()}/**`; | ||||
|             this.#ignore.add(ign); | ||||
|         } | ||||
|         const abs = this.opts.absolute === undefined ? absolute : this.opts.absolute; | ||||
|         this.seen.add(e); | ||||
|         const mark = this.opts.mark && e.isDirectory() ? this.#sep : ''; | ||||
|         // ok, we have what we need! | ||||
|         if (this.opts.withFileTypes) { | ||||
|             this.matchEmit(e); | ||||
|         } | ||||
|         else if (abs) { | ||||
|             const abs = this.opts.posix ? e.fullpathPosix() : e.fullpath(); | ||||
|             this.matchEmit(abs + mark); | ||||
|         } | ||||
|         else { | ||||
|             const rel = this.opts.posix ? e.relativePosix() : e.relative(); | ||||
|             const pre = this.opts.dotRelative && !rel.startsWith('..' + this.#sep) ? | ||||
|                 '.' + this.#sep | ||||
|                 : ''; | ||||
|             this.matchEmit(!rel ? '.' + mark : pre + rel + mark); | ||||
|         } | ||||
|     } | ||||
|     async match(e, absolute, ifDir) { | ||||
|         const p = await this.matchCheck(e, ifDir); | ||||
|         if (p) | ||||
|             this.matchFinish(p, absolute); | ||||
|     } | ||||
|     matchSync(e, absolute, ifDir) { | ||||
|         const p = this.matchCheckSync(e, ifDir); | ||||
|         if (p) | ||||
|             this.matchFinish(p, absolute); | ||||
|     } | ||||
|     walkCB(target, patterns, cb) { | ||||
|         /* c8 ignore start */ | ||||
|         if (this.signal?.aborted) | ||||
|             cb(); | ||||
|         /* c8 ignore stop */ | ||||
|         this.walkCB2(target, patterns, new Processor(this.opts), cb); | ||||
|     } | ||||
|     walkCB2(target, patterns, processor, cb) { | ||||
|         if (this.#childrenIgnored(target)) | ||||
|             return cb(); | ||||
|         if (this.signal?.aborted) | ||||
|             cb(); | ||||
|         if (this.paused) { | ||||
|             this.onResume(() => this.walkCB2(target, patterns, processor, cb)); | ||||
|             return; | ||||
|         } | ||||
|         processor.processPatterns(target, patterns); | ||||
|         // done processing.  all of the above is sync, can be abstracted out. | ||||
|         // subwalks is a map of paths to the entry filters they need | ||||
|         // matches is a map of paths to [absolute, ifDir] tuples. | ||||
|         let tasks = 1; | ||||
|         const next = () => { | ||||
|             if (--tasks === 0) | ||||
|                 cb(); | ||||
|         }; | ||||
|         for (const [m, absolute, ifDir] of processor.matches.entries()) { | ||||
|             if (this.#ignored(m)) | ||||
|                 continue; | ||||
|             tasks++; | ||||
|             this.match(m, absolute, ifDir).then(() => next()); | ||||
|         } | ||||
|         for (const t of processor.subwalkTargets()) { | ||||
|             if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) { | ||||
|                 continue; | ||||
|             } | ||||
|             tasks++; | ||||
|             const childrenCached = t.readdirCached(); | ||||
|             if (t.calledReaddir()) | ||||
|                 this.walkCB3(t, childrenCached, processor, next); | ||||
|             else { | ||||
|                 t.readdirCB((_, entries) => this.walkCB3(t, entries, processor, next), true); | ||||
|             } | ||||
|         } | ||||
|         next(); | ||||
|     } | ||||
|     walkCB3(target, entries, processor, cb) { | ||||
|         processor = processor.filterEntries(target, entries); | ||||
|         let tasks = 1; | ||||
|         const next = () => { | ||||
|             if (--tasks === 0) | ||||
|                 cb(); | ||||
|         }; | ||||
|         for (const [m, absolute, ifDir] of processor.matches.entries()) { | ||||
|             if (this.#ignored(m)) | ||||
|                 continue; | ||||
|             tasks++; | ||||
|             this.match(m, absolute, ifDir).then(() => next()); | ||||
|         } | ||||
|         for (const [target, patterns] of processor.subwalks.entries()) { | ||||
|             tasks++; | ||||
|             this.walkCB2(target, patterns, processor.child(), next); | ||||
|         } | ||||
|         next(); | ||||
|     } | ||||
|     walkCBSync(target, patterns, cb) { | ||||
|         /* c8 ignore start */ | ||||
|         if (this.signal?.aborted) | ||||
|             cb(); | ||||
|         /* c8 ignore stop */ | ||||
|         this.walkCB2Sync(target, patterns, new Processor(this.opts), cb); | ||||
|     } | ||||
|     walkCB2Sync(target, patterns, processor, cb) { | ||||
|         if (this.#childrenIgnored(target)) | ||||
|             return cb(); | ||||
|         if (this.signal?.aborted) | ||||
|             cb(); | ||||
|         if (this.paused) { | ||||
|             this.onResume(() => this.walkCB2Sync(target, patterns, processor, cb)); | ||||
|             return; | ||||
|         } | ||||
|         processor.processPatterns(target, patterns); | ||||
|         // done processing.  all of the above is sync, can be abstracted out. | ||||
|         // subwalks is a map of paths to the entry filters they need | ||||
|         // matches is a map of paths to [absolute, ifDir] tuples. | ||||
|         let tasks = 1; | ||||
|         const next = () => { | ||||
|             if (--tasks === 0) | ||||
|                 cb(); | ||||
|         }; | ||||
|         for (const [m, absolute, ifDir] of processor.matches.entries()) { | ||||
|             if (this.#ignored(m)) | ||||
|                 continue; | ||||
|             this.matchSync(m, absolute, ifDir); | ||||
|         } | ||||
|         for (const t of processor.subwalkTargets()) { | ||||
|             if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) { | ||||
|                 continue; | ||||
|             } | ||||
|             tasks++; | ||||
|             const children = t.readdirSync(); | ||||
|             this.walkCB3Sync(t, children, processor, next); | ||||
|         } | ||||
|         next(); | ||||
|     } | ||||
|     walkCB3Sync(target, entries, processor, cb) { | ||||
|         processor = processor.filterEntries(target, entries); | ||||
|         let tasks = 1; | ||||
|         const next = () => { | ||||
|             if (--tasks === 0) | ||||
|                 cb(); | ||||
|         }; | ||||
|         for (const [m, absolute, ifDir] of processor.matches.entries()) { | ||||
|             if (this.#ignored(m)) | ||||
|                 continue; | ||||
|             this.matchSync(m, absolute, ifDir); | ||||
|         } | ||||
|         for (const [target, patterns] of processor.subwalks.entries()) { | ||||
|             tasks++; | ||||
|             this.walkCB2Sync(target, patterns, processor.child(), next); | ||||
|         } | ||||
|         next(); | ||||
|     } | ||||
| } | ||||
| export class GlobWalker extends GlobUtil { | ||||
|     matches = new Set(); | ||||
|     constructor(patterns, path, opts) { | ||||
|         super(patterns, path, opts); | ||||
|     } | ||||
|     matchEmit(e) { | ||||
|         this.matches.add(e); | ||||
|     } | ||||
|     async walk() { | ||||
|         if (this.signal?.aborted) | ||||
|             throw this.signal.reason; | ||||
|         if (this.path.isUnknown()) { | ||||
|             await this.path.lstat(); | ||||
|         } | ||||
|         await new Promise((res, rej) => { | ||||
|             this.walkCB(this.path, this.patterns, () => { | ||||
|                 if (this.signal?.aborted) { | ||||
|                     rej(this.signal.reason); | ||||
|                 } | ||||
|                 else { | ||||
|                     res(this.matches); | ||||
|                 } | ||||
|             }); | ||||
|         }); | ||||
|         return this.matches; | ||||
|     } | ||||
|     walkSync() { | ||||
|         if (this.signal?.aborted) | ||||
|             throw this.signal.reason; | ||||
|         if (this.path.isUnknown()) { | ||||
|             this.path.lstatSync(); | ||||
|         } | ||||
|         // nothing for the callback to do, because this never pauses | ||||
|         this.walkCBSync(this.path, this.patterns, () => { | ||||
|             if (this.signal?.aborted) | ||||
|                 throw this.signal.reason; | ||||
|         }); | ||||
|         return this.matches; | ||||
|     } | ||||
| } | ||||
| export class GlobStream extends GlobUtil { | ||||
|     results; | ||||
|     constructor(patterns, path, opts) { | ||||
|         super(patterns, path, opts); | ||||
|         this.results = new Minipass({ | ||||
|             signal: this.signal, | ||||
|             objectMode: true, | ||||
|         }); | ||||
|         this.results.on('drain', () => this.resume()); | ||||
|         this.results.on('resume', () => this.resume()); | ||||
|     } | ||||
|     matchEmit(e) { | ||||
|         this.results.write(e); | ||||
|         if (!this.results.flowing) | ||||
|             this.pause(); | ||||
|     } | ||||
|     stream() { | ||||
|         const target = this.path; | ||||
|         if (target.isUnknown()) { | ||||
|             target.lstat().then(() => { | ||||
|                 this.walkCB(target, this.patterns, () => this.results.end()); | ||||
|             }); | ||||
|         } | ||||
|         else { | ||||
|             this.walkCB(target, this.patterns, () => this.results.end()); | ||||
|         } | ||||
|         return this.results; | ||||
|     } | ||||
|     streamSync() { | ||||
|         if (this.path.isUnknown()) { | ||||
|             this.path.lstatSync(); | ||||
|         } | ||||
|         this.walkCBSync(this.path, this.patterns, () => this.results.end()); | ||||
|         return this.results; | ||||
|     } | ||||
| } | ||||
| //# sourceMappingURL=walker.js.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/walker.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/dist/esm/walker.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										99
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								frontend/node_modules/@jest/reporters/node_modules/glob/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,99 @@ | ||||
| { | ||||
|   "author": "Isaac Z. Schlueter <i@izs.me> (https://blog.izs.me/)", | ||||
|   "publishConfig": { | ||||
|     "tag": "legacy-v10" | ||||
|   }, | ||||
|   "name": "glob", | ||||
|   "description": "the most correct and second fastest glob implementation in JavaScript", | ||||
|   "version": "10.4.5", | ||||
|   "type": "module", | ||||
|   "tshy": { | ||||
|     "main": true, | ||||
|     "exports": { | ||||
|       "./package.json": "./package.json", | ||||
|       ".": "./src/index.ts" | ||||
|     } | ||||
|   }, | ||||
|   "bin": "./dist/esm/bin.mjs", | ||||
|   "main": "./dist/commonjs/index.js", | ||||
|   "types": "./dist/commonjs/index.d.ts", | ||||
|   "exports": { | ||||
|     "./package.json": "./package.json", | ||||
|     ".": { | ||||
|       "import": { | ||||
|         "types": "./dist/esm/index.d.ts", | ||||
|         "default": "./dist/esm/index.js" | ||||
|       }, | ||||
|       "require": { | ||||
|         "types": "./dist/commonjs/index.d.ts", | ||||
|         "default": "./dist/commonjs/index.js" | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   "repository": { | ||||
|     "type": "git", | ||||
|     "url": "git://github.com/isaacs/node-glob.git" | ||||
|   }, | ||||
|   "files": [ | ||||
|     "dist" | ||||
|   ], | ||||
|   "scripts": { | ||||
|     "preversion": "npm test", | ||||
|     "postversion": "npm publish", | ||||
|     "prepublishOnly": "git push origin --follow-tags", | ||||
|     "prepare": "tshy", | ||||
|     "pretest": "npm run prepare", | ||||
|     "presnap": "npm run prepare", | ||||
|     "test": "tap", | ||||
|     "snap": "tap", | ||||
|     "format": "prettier --write . --log-level warn", | ||||
|     "typedoc": "typedoc --tsconfig .tshy/esm.json ./src/*.ts", | ||||
|     "prepublish": "npm run benchclean", | ||||
|     "profclean": "rm -f v8.log profile.txt", | ||||
|     "test-regen": "npm run profclean && TEST_REGEN=1 node --no-warnings --loader ts-node/esm test/00-setup.ts", | ||||
|     "prebench": "npm run prepare", | ||||
|     "bench": "bash benchmark.sh", | ||||
|     "preprof": "npm run prepare", | ||||
|     "prof": "bash prof.sh", | ||||
|     "benchclean": "node benchclean.cjs" | ||||
|   }, | ||||
|   "prettier": { | ||||
|     "experimentalTernaries": true, | ||||
|     "semi": false, | ||||
|     "printWidth": 75, | ||||
|     "tabWidth": 2, | ||||
|     "useTabs": false, | ||||
|     "singleQuote": true, | ||||
|     "jsxSingleQuote": false, | ||||
|     "bracketSameLine": true, | ||||
|     "arrowParens": "avoid", | ||||
|     "endOfLine": "lf" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "foreground-child": "^3.1.0", | ||||
|     "jackspeak": "^3.1.2", | ||||
|     "minimatch": "^9.0.4", | ||||
|     "minipass": "^7.1.2", | ||||
|     "package-json-from-dist": "^1.0.0", | ||||
|     "path-scurry": "^1.11.1" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@types/node": "^20.11.30", | ||||
|     "memfs": "^3.4.13", | ||||
|     "mkdirp": "^3.0.1", | ||||
|     "prettier": "^3.2.5", | ||||
|     "rimraf": "^5.0.7", | ||||
|     "sync-content": "^1.0.2", | ||||
|     "tap": "^19.0.0", | ||||
|     "tshy": "^1.14.0", | ||||
|     "typedoc": "^0.25.12" | ||||
|   }, | ||||
|   "tap": { | ||||
|     "before": "test/00-setup.ts" | ||||
|   }, | ||||
|   "license": "ISC", | ||||
|   "funding": { | ||||
|     "url": "https://github.com/sponsors/isaacs" | ||||
|   }, | ||||
|   "module": "./dist/esm/index.js" | ||||
| } | ||||
							
								
								
									
										15
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| The ISC License | ||||
|  | ||||
| Copyright (c) 2011-2023 Isaac Z. Schlueter and Contributors | ||||
|  | ||||
| Permission to use, copy, modify, and/or distribute this software for any | ||||
| purpose with or without fee is hereby granted, provided that the above | ||||
| copyright notice and this permission notice appear in all copies. | ||||
|  | ||||
| THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||||
| WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||||
| MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||||
| ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||||
| WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||||
| ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR | ||||
| IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||||
							
								
								
									
										454
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										454
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,454 @@ | ||||
| # minimatch | ||||
|  | ||||
| A minimal matching utility. | ||||
|  | ||||
| This is the matching library used internally by npm. | ||||
|  | ||||
| It works by converting glob expressions into JavaScript `RegExp` | ||||
| objects. | ||||
|  | ||||
| ## Usage | ||||
|  | ||||
| ```js | ||||
| // hybrid module, load with require() or import | ||||
| import { minimatch } from 'minimatch' | ||||
| // or: | ||||
| const { minimatch } = require('minimatch') | ||||
|  | ||||
| minimatch('bar.foo', '*.foo') // true! | ||||
| minimatch('bar.foo', '*.bar') // false! | ||||
| minimatch('bar.foo', '*.+(bar|foo)', { debug: true }) // true, and noisy! | ||||
| ``` | ||||
|  | ||||
| ## Features | ||||
|  | ||||
| Supports these glob features: | ||||
|  | ||||
| - Brace Expansion | ||||
| - Extended glob matching | ||||
| - "Globstar" `**` matching | ||||
| - [Posix character | ||||
|   classes](https://www.gnu.org/software/bash/manual/html_node/Pattern-Matching.html), | ||||
|   like `[[:alpha:]]`, supporting the full range of Unicode | ||||
|   characters. For example, `[[:alpha:]]` will match against | ||||
|   `'é'`, though `[a-zA-Z]` will not. Collating symbol and set | ||||
|   matching is not supported, so `[[=e=]]` will _not_ match `'é'` | ||||
|   and `[[.ch.]]` will not match `'ch'` in locales where `ch` is | ||||
|   considered a single character. | ||||
|  | ||||
| See: | ||||
|  | ||||
| - `man sh` | ||||
| - `man bash` [Pattern | ||||
|   Matching](https://www.gnu.org/software/bash/manual/html_node/Pattern-Matching.html) | ||||
| - `man 3 fnmatch` | ||||
| - `man 5 gitignore` | ||||
|  | ||||
| ## Windows | ||||
|  | ||||
| **Please only use forward-slashes in glob expressions.** | ||||
|  | ||||
| Though windows uses either `/` or `\` as its path separator, only `/` | ||||
| characters are used by this glob implementation. You must use | ||||
| forward-slashes **only** in glob expressions. Back-slashes in patterns | ||||
| will always be interpreted as escape characters, not path separators. | ||||
|  | ||||
| Note that `\` or `/` _will_ be interpreted as path separators in paths on | ||||
| Windows, and will match against `/` in glob expressions. | ||||
|  | ||||
| So just always use `/` in patterns. | ||||
|  | ||||
| ### UNC Paths | ||||
|  | ||||
| On Windows, UNC paths like `//?/c:/...` or | ||||
| `//ComputerName/Share/...` are handled specially. | ||||
|  | ||||
| - Patterns starting with a double-slash followed by some | ||||
|   non-slash characters will preserve their double-slash. As a | ||||
|   result, a pattern like `//*` will match `//x`, but not `/x`. | ||||
| - Patterns staring with `//?/<drive letter>:` will _not_ treat | ||||
|   the `?` as a wildcard character. Instead, it will be treated | ||||
|   as a normal string. | ||||
| - Patterns starting with `//?/<drive letter>:/...` will match | ||||
|   file paths starting with `<drive letter>:/...`, and vice versa, | ||||
|   as if the `//?/` was not present. This behavior only is | ||||
|   present when the drive letters are a case-insensitive match to | ||||
|   one another. The remaining portions of the path/pattern are | ||||
|   compared case sensitively, unless `nocase:true` is set. | ||||
|  | ||||
| Note that specifying a UNC path using `\` characters as path | ||||
| separators is always allowed in the file path argument, but only | ||||
| allowed in the pattern argument when `windowsPathsNoEscape: true` | ||||
| is set in the options. | ||||
|  | ||||
| ## Minimatch Class | ||||
|  | ||||
| Create a minimatch object by instantiating the `minimatch.Minimatch` class. | ||||
|  | ||||
| ```javascript | ||||
| var Minimatch = require('minimatch').Minimatch | ||||
| var mm = new Minimatch(pattern, options) | ||||
| ``` | ||||
|  | ||||
| ### Properties | ||||
|  | ||||
| - `pattern` The original pattern the minimatch object represents. | ||||
| - `options` The options supplied to the constructor. | ||||
| - `set` A 2-dimensional array of regexp or string expressions. | ||||
|   Each row in the | ||||
|   array corresponds to a brace-expanded pattern. Each item in the row | ||||
|   corresponds to a single path-part. For example, the pattern | ||||
|   `{a,b/c}/d` would expand to a set of patterns like: | ||||
|  | ||||
|         [ [ a, d ] | ||||
|         , [ b, c, d ] ] | ||||
|  | ||||
|   If a portion of the pattern doesn't have any "magic" in it | ||||
|   (that is, it's something like `"foo"` rather than `fo*o?`), then it | ||||
|   will be left as a string rather than converted to a regular | ||||
|   expression. | ||||
|  | ||||
| - `regexp` Created by the `makeRe` method. A single regular expression | ||||
|   expressing the entire pattern. This is useful in cases where you wish | ||||
|   to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled. | ||||
| - `negate` True if the pattern is negated. | ||||
| - `comment` True if the pattern is a comment. | ||||
| - `empty` True if the pattern is `""`. | ||||
|  | ||||
| ### Methods | ||||
|  | ||||
| - `makeRe()` Generate the `regexp` member if necessary, and return it. | ||||
|   Will return `false` if the pattern is invalid. | ||||
| - `match(fname)` Return true if the filename matches the pattern, or | ||||
|   false otherwise. | ||||
| - `matchOne(fileArray, patternArray, partial)` Take a `/`-split | ||||
|   filename, and match it against a single row in the `regExpSet`. This | ||||
|   method is mainly for internal use, but is exposed so that it can be | ||||
|   used by a glob-walker that needs to avoid excessive filesystem calls. | ||||
| - `hasMagic()` Returns true if the parsed pattern contains any | ||||
|   magic characters. Returns false if all comparator parts are | ||||
|   string literals. If the `magicalBraces` option is set on the | ||||
|   constructor, then it will consider brace expansions which are | ||||
|   not otherwise magical to be magic. If not set, then a pattern | ||||
|   like `a{b,c}d` will return `false`, because neither `abd` nor | ||||
|   `acd` contain any special glob characters. | ||||
|  | ||||
|   This does **not** mean that the pattern string can be used as a | ||||
|   literal filename, as it may contain magic glob characters that | ||||
|   are escaped. For example, the pattern `\\*` or `[*]` would not | ||||
|   be considered to have magic, as the matching portion parses to | ||||
|   the literal string `'*'` and would match a path named `'*'`, | ||||
|   not `'\\*'` or `'[*]'`. The `minimatch.unescape()` method may | ||||
|   be used to remove escape characters. | ||||
|  | ||||
| All other methods are internal, and will be called as necessary. | ||||
|  | ||||
| ### minimatch(path, pattern, options) | ||||
|  | ||||
| Main export. Tests a path against the pattern using the options. | ||||
|  | ||||
| ```javascript | ||||
| var isJS = minimatch(file, '*.js', { matchBase: true }) | ||||
| ``` | ||||
|  | ||||
| ### minimatch.filter(pattern, options) | ||||
|  | ||||
| Returns a function that tests its | ||||
| supplied argument, suitable for use with `Array.filter`. Example: | ||||
|  | ||||
| ```javascript | ||||
| var javascripts = fileList.filter(minimatch.filter('*.js', { matchBase: true })) | ||||
| ``` | ||||
|  | ||||
| ### minimatch.escape(pattern, options = {}) | ||||
|  | ||||
| Escape all magic characters in a glob pattern, so that it will | ||||
| only ever match literal strings | ||||
|  | ||||
| If the `windowsPathsNoEscape` option is used, then characters are | ||||
| escaped by wrapping in `[]`, because a magic character wrapped in | ||||
| a character class can only be satisfied by that exact character. | ||||
|  | ||||
| Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot | ||||
| be escaped or unescaped. | ||||
|  | ||||
| ### minimatch.unescape(pattern, options = {}) | ||||
|  | ||||
| Un-escape a glob string that may contain some escaped characters. | ||||
|  | ||||
| If the `windowsPathsNoEscape` option is used, then square-brace | ||||
| escapes are removed, but not backslash escapes. For example, it | ||||
| will turn the string `'[*]'` into `*`, but it will not turn | ||||
| `'\\*'` into `'*'`, because `\` is a path separator in | ||||
| `windowsPathsNoEscape` mode. | ||||
|  | ||||
| When `windowsPathsNoEscape` is not set, then both brace escapes | ||||
| and backslash escapes are removed. | ||||
|  | ||||
| Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot | ||||
| be escaped or unescaped. | ||||
|  | ||||
| ### minimatch.match(list, pattern, options) | ||||
|  | ||||
| Match against the list of | ||||
| files, in the style of fnmatch or glob. If nothing is matched, and | ||||
| options.nonull is set, then return a list containing the pattern itself. | ||||
|  | ||||
| ```javascript | ||||
| var javascripts = minimatch.match(fileList, '*.js', { matchBase: true }) | ||||
| ``` | ||||
|  | ||||
| ### minimatch.makeRe(pattern, options) | ||||
|  | ||||
| Make a regular expression object from the pattern. | ||||
|  | ||||
| ## Options | ||||
|  | ||||
| All options are `false` by default. | ||||
|  | ||||
| ### debug | ||||
|  | ||||
| Dump a ton of stuff to stderr. | ||||
|  | ||||
| ### nobrace | ||||
|  | ||||
| Do not expand `{a,b}` and `{1..3}` brace sets. | ||||
|  | ||||
| ### noglobstar | ||||
|  | ||||
| Disable `**` matching against multiple folder names. | ||||
|  | ||||
| ### dot | ||||
|  | ||||
| Allow patterns to match filenames starting with a period, even if | ||||
| the pattern does not explicitly have a period in that spot. | ||||
|  | ||||
| Note that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot` | ||||
| is set. | ||||
|  | ||||
| ### noext | ||||
|  | ||||
| Disable "extglob" style patterns like `+(a|b)`. | ||||
|  | ||||
| ### nocase | ||||
|  | ||||
| Perform a case-insensitive match. | ||||
|  | ||||
| ### nocaseMagicOnly | ||||
|  | ||||
| When used with `{nocase: true}`, create regular expressions that | ||||
| are case-insensitive, but leave string match portions untouched. | ||||
| Has no effect when used without `{nocase: true}` | ||||
|  | ||||
| Useful when some other form of case-insensitive matching is used, | ||||
| or if the original string representation is useful in some other | ||||
| way. | ||||
|  | ||||
| ### nonull | ||||
|  | ||||
| When a match is not found by `minimatch.match`, return a list containing | ||||
| the pattern itself if this option is set. When not set, an empty list | ||||
| is returned if there are no matches. | ||||
|  | ||||
| ### magicalBraces | ||||
|  | ||||
| This only affects the results of the `Minimatch.hasMagic` method. | ||||
|  | ||||
| If the pattern contains brace expansions, such as `a{b,c}d`, but | ||||
| no other magic characters, then the `Minimatch.hasMagic()` method | ||||
| will return `false` by default. When this option set, it will | ||||
| return `true` for brace expansion as well as other magic glob | ||||
| characters. | ||||
|  | ||||
| ### matchBase | ||||
|  | ||||
| If set, then patterns without slashes will be matched | ||||
| against the basename of the path if it contains slashes. For example, | ||||
| `a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`. | ||||
|  | ||||
| ### nocomment | ||||
|  | ||||
| Suppress the behavior of treating `#` at the start of a pattern as a | ||||
| comment. | ||||
|  | ||||
| ### nonegate | ||||
|  | ||||
| Suppress the behavior of treating a leading `!` character as negation. | ||||
|  | ||||
| ### flipNegate | ||||
|  | ||||
| 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 | ||||
| ``` | ||||
|  | ||||
| ### windowsPathsNoEscape | ||||
|  | ||||
| Use `\\` as a path separator _only_, and _never_ as an escape | ||||
| character. If set, all `\\` characters are replaced with `/` in | ||||
| the pattern. Note that this makes it **impossible** to match | ||||
| against paths containing literal glob pattern characters, but | ||||
| allows matching with patterns constructed using `path.join()` and | ||||
| `path.resolve()` on Windows platforms, mimicking the (buggy!) | ||||
| behavior of earlier versions on Windows. Please use with | ||||
| caution, and be mindful of [the caveat about Windows | ||||
| paths](#windows). | ||||
|  | ||||
| For legacy reasons, this is also set if | ||||
| `options.allowWindowsEscape` is set to the exact value `false`. | ||||
|  | ||||
| ### windowsNoMagicRoot | ||||
|  | ||||
| When a pattern starts with a UNC path or drive letter, and in | ||||
| `nocase:true` mode, do not convert the root portions of the | ||||
| pattern into a case-insensitive regular expression, and instead | ||||
| leave them as strings. | ||||
|  | ||||
| This is the default when the platform is `win32` and | ||||
| `nocase:true` is set. | ||||
|  | ||||
| ### preserveMultipleSlashes | ||||
|  | ||||
| By default, multiple `/` characters (other than the leading `//` | ||||
| in a UNC path, see "UNC Paths" above) are treated as a single | ||||
| `/`. | ||||
|  | ||||
| That is, a pattern like `a///b` will match the file path `a/b`. | ||||
|  | ||||
| Set `preserveMultipleSlashes: true` to suppress this behavior. | ||||
|  | ||||
| ### optimizationLevel | ||||
|  | ||||
| A number indicating the level of optimization that should be done | ||||
| to the pattern prior to parsing and using it for matches. | ||||
|  | ||||
| Globstar parts `**` are always converted to `*` when `noglobstar` | ||||
| is set, and multiple adjacent `**` parts are converted into a | ||||
| single `**` (ie, `a/**/**/b` will be treated as `a/**/b`, as this | ||||
| is equivalent in all cases). | ||||
|  | ||||
| - `0` - Make no further changes. In this mode, `.` and `..` are | ||||
|   maintained in the pattern, meaning that they must also appear | ||||
|   in the same position in the test path string. Eg, a pattern | ||||
|   like `a/*/../c` will match the string `a/b/../c` but not the | ||||
|   string `a/c`. | ||||
| - `1` - (default) Remove cases where a double-dot `..` follows a | ||||
|   pattern portion that is not `**`, `.`, `..`, or empty `''`. For | ||||
|   example, the pattern `./a/b/../*` is converted to `./a/*`, and | ||||
|   so it will match the path string `./a/c`, but not the path | ||||
|   string `./a/b/../c`. Dots and empty path portions in the | ||||
|   pattern are preserved. | ||||
| - `2` (or higher) - Much more aggressive optimizations, suitable | ||||
|   for use with file-walking cases: | ||||
|  | ||||
|   - Remove cases where a double-dot `..` follows a pattern | ||||
|     portion that is not `**`, `.`, or empty `''`. Remove empty | ||||
|     and `.` portions of the pattern, where safe to do so (ie, | ||||
|     anywhere other than the last position, the first position, or | ||||
|     the second position in a pattern starting with `/`, as this | ||||
|     may indicate a UNC path on Windows). | ||||
|   - Convert patterns containing `<pre>/**/../<p>/<rest>` into the | ||||
|     equivalent `<pre>/{..,**}/<p>/<rest>`, where `<p>` is a | ||||
|     a pattern portion other than `.`, `..`, `**`, or empty | ||||
|     `''`. | ||||
|   - Dedupe patterns where a `**` portion is present in one and | ||||
|     omitted in another, and it is not the final path portion, and | ||||
|     they are otherwise equivalent. So `{a/**/b,a/b}` becomes | ||||
|     `a/**/b`, because `**` matches against an empty path portion. | ||||
|   - Dedupe patterns where a `*` portion is present in one, and a | ||||
|     non-dot pattern other than `**`, `.`, `..`, or `''` is in the | ||||
|     same position in the other. So `a/{*,x}/b` becomes `a/*/b`, | ||||
|     because `*` can match against `x`. | ||||
|  | ||||
|   While these optimizations improve the performance of | ||||
|   file-walking use cases such as [glob](http://npm.im/glob) (ie, | ||||
|   the reason this module exists), there are cases where it will | ||||
|   fail to match a literal string that would have been matched in | ||||
|   optimization level 1 or 0. | ||||
|  | ||||
|   Specifically, while the `Minimatch.match()` method will | ||||
|   optimize the file path string in the same ways, resulting in | ||||
|   the same matches, it will fail when tested with the regular | ||||
|   expression provided by `Minimatch.makeRe()`, unless the path | ||||
|   string is first processed with | ||||
|   `minimatch.levelTwoFileOptimize()` or similar. | ||||
|  | ||||
| ### platform | ||||
|  | ||||
| When set to `win32`, this will trigger all windows-specific | ||||
| behaviors (special handling for UNC paths, and treating `\` as | ||||
| separators in file paths for comparison.) | ||||
|  | ||||
| Defaults to the value of `process.platform`. | ||||
|  | ||||
| ## Comparisons to other fnmatch/glob implementations | ||||
|  | ||||
| While strict compliance with the existing standards is a | ||||
| worthwhile goal, some discrepancies exist between minimatch and | ||||
| other implementations. Some are intentional, and some are | ||||
| unavoidable. | ||||
|  | ||||
| If the pattern starts with a `!` character, then it is negated. Set the | ||||
| `nonegate` flag to suppress this behavior, and treat leading `!` | ||||
| characters normally. This is perhaps relevant if you wish to start the | ||||
| pattern with a negative extglob pattern like `!(a|B)`. Multiple `!` | ||||
| characters at the start of a pattern will negate the pattern multiple | ||||
| times. | ||||
|  | ||||
| If a pattern starts with `#`, then it is treated as a comment, and | ||||
| will not match anything. Use `\#` to match a literal `#` at the | ||||
| start of a line, or set the `nocomment` flag to suppress this behavior. | ||||
|  | ||||
| The double-star character `**` is supported by default, unless the | ||||
| `noglobstar` flag is set. This is supported in the manner of bsdglob | ||||
| and bash 4.1, where `**` only has special significance if it is the only | ||||
| thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but | ||||
| `a/**b` will not. | ||||
|  | ||||
| If an escaped pattern has no matches, and the `nonull` flag is set, | ||||
| then minimatch.match returns the pattern as-provided, rather than | ||||
| interpreting the character escapes. For example, | ||||
| `minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than | ||||
| `"*a?"`. This is akin to setting the `nullglob` option in bash, except | ||||
| that it does not resolve escaped pattern characters. | ||||
|  | ||||
| If brace expansion is not disabled, then it is performed before any | ||||
| other interpretation of the glob pattern. Thus, a pattern like | ||||
| `+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded | ||||
| **first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are | ||||
| checked for validity. Since those two are valid, matching proceeds. | ||||
|  | ||||
| Negated extglob patterns are handled as closely as possible to | ||||
| Bash semantics, but there are some cases with negative extglobs | ||||
| which are exceedingly difficult to express in a JavaScript | ||||
| regular expression. In particular the negated pattern | ||||
| `<start>!(<pattern>*|)*` will in bash match anything that does | ||||
| not start with `<start><pattern>`. However, | ||||
| `<start>!(<pattern>*)*` _will_ match paths starting with | ||||
| `<start><pattern>`, because the empty string can match against | ||||
| the negated portion. In this library, `<start>!(<pattern>*|)*` | ||||
| will _not_ match any pattern starting with `<start>`, due to a | ||||
| difference in precisely which patterns are considered "greedy" in | ||||
| Regular Expressions vs bash path expansion. This may be fixable, | ||||
| but not without incurring some complexity and performance costs, | ||||
| and the trade-off seems to not be worth pursuing. | ||||
|  | ||||
| Note that `fnmatch(3)` in libc is an extremely naive string comparison | ||||
| matcher, which does not do anything special for slashes. This library is | ||||
| designed to be used in glob searching and file walkers, and so it does do | ||||
| special things with `/`. Thus, `foo*` will not match `foo/bar` in this | ||||
| library, even though it would in `fnmatch(3)`. | ||||
							
								
								
									
										2
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| export declare const assertValidPattern: (pattern: any) => void; | ||||
| //# sourceMappingURL=assert-valid-pattern.d.ts.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"assert-valid-pattern.d.ts","sourceRoot":"","sources":["../../src/assert-valid-pattern.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,kBAAkB,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAUlD,CAAA"} | ||||
							
								
								
									
										14
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| "use strict"; | ||||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| exports.assertValidPattern = void 0; | ||||
| const MAX_PATTERN_LENGTH = 1024 * 64; | ||||
| const assertValidPattern = (pattern) => { | ||||
|     if (typeof pattern !== 'string') { | ||||
|         throw new TypeError('invalid pattern'); | ||||
|     } | ||||
|     if (pattern.length > MAX_PATTERN_LENGTH) { | ||||
|         throw new TypeError('pattern is too long'); | ||||
|     } | ||||
| }; | ||||
| exports.assertValidPattern = assertValidPattern; | ||||
| //# sourceMappingURL=assert-valid-pattern.js.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"assert-valid-pattern.js","sourceRoot":"","sources":["../../src/assert-valid-pattern.ts"],"names":[],"mappings":";;;AAAA,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAA;AAC7B,MAAM,kBAAkB,GAA2B,CACxD,OAAY,EACe,EAAE;IAC7B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,MAAM,IAAI,SAAS,CAAC,iBAAiB,CAAC,CAAA;KACvC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,kBAAkB,EAAE;QACvC,MAAM,IAAI,SAAS,CAAC,qBAAqB,CAAC,CAAA;KAC3C;AACH,CAAC,CAAA;AAVY,QAAA,kBAAkB,sBAU9B","sourcesContent":["const MAX_PATTERN_LENGTH = 1024 * 64\nexport const assertValidPattern: (pattern: any) => void = (\n  pattern: any\n): asserts pattern is string => {\n  if (typeof pattern !== 'string') {\n    throw new TypeError('invalid pattern')\n  }\n\n  if (pattern.length > MAX_PATTERN_LENGTH) {\n    throw new TypeError('pattern is too long')\n  }\n}\n"]} | ||||
							
								
								
									
										20
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/ast.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/ast.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| import { MinimatchOptions, MMRegExp } from './index.js'; | ||||
| export type ExtglobType = '!' | '?' | '+' | '*' | '@'; | ||||
| export declare class AST { | ||||
|     #private; | ||||
|     type: ExtglobType | null; | ||||
|     constructor(type: ExtglobType | null, parent?: AST, options?: MinimatchOptions); | ||||
|     get hasMagic(): boolean | undefined; | ||||
|     toString(): string; | ||||
|     push(...parts: (string | AST)[]): void; | ||||
|     toJSON(): any[]; | ||||
|     isStart(): boolean; | ||||
|     isEnd(): boolean; | ||||
|     copyIn(part: AST | string): void; | ||||
|     clone(parent: AST): AST; | ||||
|     static fromGlob(pattern: string, options?: MinimatchOptions): AST; | ||||
|     toMMPattern(): MMRegExp | string; | ||||
|     get options(): MinimatchOptions; | ||||
|     toRegExpSource(allowDot?: boolean): [re: string, body: string, hasMagic: boolean, uflag: boolean]; | ||||
| } | ||||
| //# sourceMappingURL=ast.d.ts.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/ast.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/ast.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/ast.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAwCvD,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAkCrD,qBAAa,GAAG;;IACd,IAAI,EAAE,WAAW,GAAG,IAAI,CAAA;gBAiBtB,IAAI,EAAE,WAAW,GAAG,IAAI,EACxB,MAAM,CAAC,EAAE,GAAG,EACZ,OAAO,GAAE,gBAAqB;IAahC,IAAI,QAAQ,IAAI,OAAO,GAAG,SAAS,CAUlC;IAGD,QAAQ,IAAI,MAAM;IA+ClB,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE;IAY/B,MAAM;IAgBN,OAAO,IAAI,OAAO;IAgBlB,KAAK,IAAI,OAAO;IAYhB,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM;IAKzB,KAAK,CAAC,MAAM,EAAE,GAAG;IAsIjB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB;IAQ/D,WAAW,IAAI,QAAQ,GAAG,MAAM;IA2BhC,IAAI,OAAO,qBAEV;IAuED,cAAc,CACZ,QAAQ,CAAC,EAAE,OAAO,GACjB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC;CAiMjE"} | ||||
							
								
								
									
										592
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/ast.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										592
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/ast.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,592 @@ | ||||
| "use strict"; | ||||
| // parse a single path portion | ||||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| exports.AST = void 0; | ||||
| const brace_expressions_js_1 = require("./brace-expressions.js"); | ||||
| const unescape_js_1 = require("./unescape.js"); | ||||
| const types = new Set(['!', '?', '+', '*', '@']); | ||||
| const isExtglobType = (c) => types.has(c); | ||||
| // Patterns that get prepended to bind to the start of either the | ||||
| // entire string, or just a single path portion, to prevent dots | ||||
| // and/or traversal patterns, when needed. | ||||
| // Exts don't need the ^ or / bit, because the root binds that already. | ||||
| const startNoTraversal = '(?!(?:^|/)\\.\\.?(?:$|/))'; | ||||
| const startNoDot = '(?!\\.)'; | ||||
| // characters that indicate a start of pattern needs the "no dots" bit, | ||||
| // because a dot *might* be matched. ( is not in the list, because in | ||||
| // the case of a child extglob, it will handle the prevention itself. | ||||
| const addPatternStart = new Set(['[', '.']); | ||||
| // cases where traversal is A-OK, no dot prevention needed | ||||
| const justDots = new Set(['..', '.']); | ||||
| const reSpecials = new Set('().*{}+?[]^$\\!'); | ||||
| const regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'); | ||||
| // any single thing other than / | ||||
| const qmark = '[^/]'; | ||||
| // * => any number of characters | ||||
| const star = qmark + '*?'; | ||||
| // use + when we need to ensure that *something* matches, because the * is | ||||
| // the only thing in the path portion. | ||||
| const starNoEmpty = qmark + '+?'; | ||||
| // remove the \ chars that we added if we end up doing a nonmagic compare | ||||
| // const deslash = (s: string) => s.replace(/\\(.)/g, '$1') | ||||
| class AST { | ||||
|     type; | ||||
|     #root; | ||||
|     #hasMagic; | ||||
|     #uflag = false; | ||||
|     #parts = []; | ||||
|     #parent; | ||||
|     #parentIndex; | ||||
|     #negs; | ||||
|     #filledNegs = false; | ||||
|     #options; | ||||
|     #toString; | ||||
|     // set to true if it's an extglob with no children | ||||
|     // (which really means one child of '') | ||||
|     #emptyExt = false; | ||||
|     constructor(type, parent, options = {}) { | ||||
|         this.type = type; | ||||
|         // extglobs are inherently magical | ||||
|         if (type) | ||||
|             this.#hasMagic = true; | ||||
|         this.#parent = parent; | ||||
|         this.#root = this.#parent ? this.#parent.#root : this; | ||||
|         this.#options = this.#root === this ? options : this.#root.#options; | ||||
|         this.#negs = this.#root === this ? [] : this.#root.#negs; | ||||
|         if (type === '!' && !this.#root.#filledNegs) | ||||
|             this.#negs.push(this); | ||||
|         this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0; | ||||
|     } | ||||
|     get hasMagic() { | ||||
|         /* c8 ignore start */ | ||||
|         if (this.#hasMagic !== undefined) | ||||
|             return this.#hasMagic; | ||||
|         /* c8 ignore stop */ | ||||
|         for (const p of this.#parts) { | ||||
|             if (typeof p === 'string') | ||||
|                 continue; | ||||
|             if (p.type || p.hasMagic) | ||||
|                 return (this.#hasMagic = true); | ||||
|         } | ||||
|         // note: will be undefined until we generate the regexp src and find out | ||||
|         return this.#hasMagic; | ||||
|     } | ||||
|     // reconstructs the pattern | ||||
|     toString() { | ||||
|         if (this.#toString !== undefined) | ||||
|             return this.#toString; | ||||
|         if (!this.type) { | ||||
|             return (this.#toString = this.#parts.map(p => String(p)).join('')); | ||||
|         } | ||||
|         else { | ||||
|             return (this.#toString = | ||||
|                 this.type + '(' + this.#parts.map(p => String(p)).join('|') + ')'); | ||||
|         } | ||||
|     } | ||||
|     #fillNegs() { | ||||
|         /* c8 ignore start */ | ||||
|         if (this !== this.#root) | ||||
|             throw new Error('should only call on root'); | ||||
|         if (this.#filledNegs) | ||||
|             return this; | ||||
|         /* c8 ignore stop */ | ||||
|         // call toString() once to fill this out | ||||
|         this.toString(); | ||||
|         this.#filledNegs = true; | ||||
|         let n; | ||||
|         while ((n = this.#negs.pop())) { | ||||
|             if (n.type !== '!') | ||||
|                 continue; | ||||
|             // walk up the tree, appending everthing that comes AFTER parentIndex | ||||
|             let p = n; | ||||
|             let pp = p.#parent; | ||||
|             while (pp) { | ||||
|                 for (let i = p.#parentIndex + 1; !pp.type && i < pp.#parts.length; i++) { | ||||
|                     for (const part of n.#parts) { | ||||
|                         /* c8 ignore start */ | ||||
|                         if (typeof part === 'string') { | ||||
|                             throw new Error('string part in extglob AST??'); | ||||
|                         } | ||||
|                         /* c8 ignore stop */ | ||||
|                         part.copyIn(pp.#parts[i]); | ||||
|                     } | ||||
|                 } | ||||
|                 p = pp; | ||||
|                 pp = p.#parent; | ||||
|             } | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|     push(...parts) { | ||||
|         for (const p of parts) { | ||||
|             if (p === '') | ||||
|                 continue; | ||||
|             /* c8 ignore start */ | ||||
|             if (typeof p !== 'string' && !(p instanceof AST && p.#parent === this)) { | ||||
|                 throw new Error('invalid part: ' + p); | ||||
|             } | ||||
|             /* c8 ignore stop */ | ||||
|             this.#parts.push(p); | ||||
|         } | ||||
|     } | ||||
|     toJSON() { | ||||
|         const ret = this.type === null | ||||
|             ? this.#parts.slice().map(p => (typeof p === 'string' ? p : p.toJSON())) | ||||
|             : [this.type, ...this.#parts.map(p => p.toJSON())]; | ||||
|         if (this.isStart() && !this.type) | ||||
|             ret.unshift([]); | ||||
|         if (this.isEnd() && | ||||
|             (this === this.#root || | ||||
|                 (this.#root.#filledNegs && this.#parent?.type === '!'))) { | ||||
|             ret.push({}); | ||||
|         } | ||||
|         return ret; | ||||
|     } | ||||
|     isStart() { | ||||
|         if (this.#root === this) | ||||
|             return true; | ||||
|         // if (this.type) return !!this.#parent?.isStart() | ||||
|         if (!this.#parent?.isStart()) | ||||
|             return false; | ||||
|         if (this.#parentIndex === 0) | ||||
|             return true; | ||||
|         // if everything AHEAD of this is a negation, then it's still the "start" | ||||
|         const p = this.#parent; | ||||
|         for (let i = 0; i < this.#parentIndex; i++) { | ||||
|             const pp = p.#parts[i]; | ||||
|             if (!(pp instanceof AST && pp.type === '!')) { | ||||
|                 return false; | ||||
|             } | ||||
|         } | ||||
|         return true; | ||||
|     } | ||||
|     isEnd() { | ||||
|         if (this.#root === this) | ||||
|             return true; | ||||
|         if (this.#parent?.type === '!') | ||||
|             return true; | ||||
|         if (!this.#parent?.isEnd()) | ||||
|             return false; | ||||
|         if (!this.type) | ||||
|             return this.#parent?.isEnd(); | ||||
|         // if not root, it'll always have a parent | ||||
|         /* c8 ignore start */ | ||||
|         const pl = this.#parent ? this.#parent.#parts.length : 0; | ||||
|         /* c8 ignore stop */ | ||||
|         return this.#parentIndex === pl - 1; | ||||
|     } | ||||
|     copyIn(part) { | ||||
|         if (typeof part === 'string') | ||||
|             this.push(part); | ||||
|         else | ||||
|             this.push(part.clone(this)); | ||||
|     } | ||||
|     clone(parent) { | ||||
|         const c = new AST(this.type, parent); | ||||
|         for (const p of this.#parts) { | ||||
|             c.copyIn(p); | ||||
|         } | ||||
|         return c; | ||||
|     } | ||||
|     static #parseAST(str, ast, pos, opt) { | ||||
|         let escaping = false; | ||||
|         let inBrace = false; | ||||
|         let braceStart = -1; | ||||
|         let braceNeg = false; | ||||
|         if (ast.type === null) { | ||||
|             // outside of a extglob, append until we find a start | ||||
|             let i = pos; | ||||
|             let acc = ''; | ||||
|             while (i < str.length) { | ||||
|                 const c = str.charAt(i++); | ||||
|                 // still accumulate escapes at this point, but we do ignore | ||||
|                 // starts that are escaped | ||||
|                 if (escaping || c === '\\') { | ||||
|                     escaping = !escaping; | ||||
|                     acc += c; | ||||
|                     continue; | ||||
|                 } | ||||
|                 if (inBrace) { | ||||
|                     if (i === braceStart + 1) { | ||||
|                         if (c === '^' || c === '!') { | ||||
|                             braceNeg = true; | ||||
|                         } | ||||
|                     } | ||||
|                     else if (c === ']' && !(i === braceStart + 2 && braceNeg)) { | ||||
|                         inBrace = false; | ||||
|                     } | ||||
|                     acc += c; | ||||
|                     continue; | ||||
|                 } | ||||
|                 else if (c === '[') { | ||||
|                     inBrace = true; | ||||
|                     braceStart = i; | ||||
|                     braceNeg = false; | ||||
|                     acc += c; | ||||
|                     continue; | ||||
|                 } | ||||
|                 if (!opt.noext && isExtglobType(c) && str.charAt(i) === '(') { | ||||
|                     ast.push(acc); | ||||
|                     acc = ''; | ||||
|                     const ext = new AST(c, ast); | ||||
|                     i = AST.#parseAST(str, ext, i, opt); | ||||
|                     ast.push(ext); | ||||
|                     continue; | ||||
|                 } | ||||
|                 acc += c; | ||||
|             } | ||||
|             ast.push(acc); | ||||
|             return i; | ||||
|         } | ||||
|         // some kind of extglob, pos is at the ( | ||||
|         // find the next | or ) | ||||
|         let i = pos + 1; | ||||
|         let part = new AST(null, ast); | ||||
|         const parts = []; | ||||
|         let acc = ''; | ||||
|         while (i < str.length) { | ||||
|             const c = str.charAt(i++); | ||||
|             // still accumulate escapes at this point, but we do ignore | ||||
|             // starts that are escaped | ||||
|             if (escaping || c === '\\') { | ||||
|                 escaping = !escaping; | ||||
|                 acc += c; | ||||
|                 continue; | ||||
|             } | ||||
|             if (inBrace) { | ||||
|                 if (i === braceStart + 1) { | ||||
|                     if (c === '^' || c === '!') { | ||||
|                         braceNeg = true; | ||||
|                     } | ||||
|                 } | ||||
|                 else if (c === ']' && !(i === braceStart + 2 && braceNeg)) { | ||||
|                     inBrace = false; | ||||
|                 } | ||||
|                 acc += c; | ||||
|                 continue; | ||||
|             } | ||||
|             else if (c === '[') { | ||||
|                 inBrace = true; | ||||
|                 braceStart = i; | ||||
|                 braceNeg = false; | ||||
|                 acc += c; | ||||
|                 continue; | ||||
|             } | ||||
|             if (isExtglobType(c) && str.charAt(i) === '(') { | ||||
|                 part.push(acc); | ||||
|                 acc = ''; | ||||
|                 const ext = new AST(c, part); | ||||
|                 part.push(ext); | ||||
|                 i = AST.#parseAST(str, ext, i, opt); | ||||
|                 continue; | ||||
|             } | ||||
|             if (c === '|') { | ||||
|                 part.push(acc); | ||||
|                 acc = ''; | ||||
|                 parts.push(part); | ||||
|                 part = new AST(null, ast); | ||||
|                 continue; | ||||
|             } | ||||
|             if (c === ')') { | ||||
|                 if (acc === '' && ast.#parts.length === 0) { | ||||
|                     ast.#emptyExt = true; | ||||
|                 } | ||||
|                 part.push(acc); | ||||
|                 acc = ''; | ||||
|                 ast.push(...parts, part); | ||||
|                 return i; | ||||
|             } | ||||
|             acc += c; | ||||
|         } | ||||
|         // unfinished extglob | ||||
|         // if we got here, it was a malformed extglob! not an extglob, but | ||||
|         // maybe something else in there. | ||||
|         ast.type = null; | ||||
|         ast.#hasMagic = undefined; | ||||
|         ast.#parts = [str.substring(pos - 1)]; | ||||
|         return i; | ||||
|     } | ||||
|     static fromGlob(pattern, options = {}) { | ||||
|         const ast = new AST(null, undefined, options); | ||||
|         AST.#parseAST(pattern, ast, 0, options); | ||||
|         return ast; | ||||
|     } | ||||
|     // returns the regular expression if there's magic, or the unescaped | ||||
|     // string if not. | ||||
|     toMMPattern() { | ||||
|         // should only be called on root | ||||
|         /* c8 ignore start */ | ||||
|         if (this !== this.#root) | ||||
|             return this.#root.toMMPattern(); | ||||
|         /* c8 ignore stop */ | ||||
|         const glob = this.toString(); | ||||
|         const [re, body, hasMagic, uflag] = this.toRegExpSource(); | ||||
|         // if we're in nocase mode, and not nocaseMagicOnly, then we do | ||||
|         // still need a regular expression if we have to case-insensitively | ||||
|         // match capital/lowercase characters. | ||||
|         const anyMagic = hasMagic || | ||||
|             this.#hasMagic || | ||||
|             (this.#options.nocase && | ||||
|                 !this.#options.nocaseMagicOnly && | ||||
|                 glob.toUpperCase() !== glob.toLowerCase()); | ||||
|         if (!anyMagic) { | ||||
|             return body; | ||||
|         } | ||||
|         const flags = (this.#options.nocase ? 'i' : '') + (uflag ? 'u' : ''); | ||||
|         return Object.assign(new RegExp(`^${re}$`, flags), { | ||||
|             _src: re, | ||||
|             _glob: glob, | ||||
|         }); | ||||
|     } | ||||
|     get options() { | ||||
|         return this.#options; | ||||
|     } | ||||
|     // returns the string match, the regexp source, whether there's magic | ||||
|     // in the regexp (so a regular expression is required) and whether or | ||||
|     // not the uflag is needed for the regular expression (for posix classes) | ||||
|     // TODO: instead of injecting the start/end at this point, just return | ||||
|     // the BODY of the regexp, along with the start/end portions suitable | ||||
|     // for binding the start/end in either a joined full-path makeRe context | ||||
|     // (where we bind to (^|/), or a standalone matchPart context (where | ||||
|     // we bind to ^, and not /).  Otherwise slashes get duped! | ||||
|     // | ||||
|     // In part-matching mode, the start is: | ||||
|     // - if not isStart: nothing | ||||
|     // - if traversal possible, but not allowed: ^(?!\.\.?$) | ||||
|     // - if dots allowed or not possible: ^ | ||||
|     // - if dots possible and not allowed: ^(?!\.) | ||||
|     // end is: | ||||
|     // - if not isEnd(): nothing | ||||
|     // - else: $ | ||||
|     // | ||||
|     // In full-path matching mode, we put the slash at the START of the | ||||
|     // pattern, so start is: | ||||
|     // - if first pattern: same as part-matching mode | ||||
|     // - if not isStart(): nothing | ||||
|     // - if traversal possible, but not allowed: /(?!\.\.?(?:$|/)) | ||||
|     // - if dots allowed or not possible: / | ||||
|     // - if dots possible and not allowed: /(?!\.) | ||||
|     // end is: | ||||
|     // - if last pattern, same as part-matching mode | ||||
|     // - else nothing | ||||
|     // | ||||
|     // Always put the (?:$|/) on negated tails, though, because that has to be | ||||
|     // there to bind the end of the negated pattern portion, and it's easier to | ||||
|     // just stick it in now rather than try to inject it later in the middle of | ||||
|     // the pattern. | ||||
|     // | ||||
|     // We can just always return the same end, and leave it up to the caller | ||||
|     // to know whether it's going to be used joined or in parts. | ||||
|     // And, if the start is adjusted slightly, can do the same there: | ||||
|     // - if not isStart: nothing | ||||
|     // - if traversal possible, but not allowed: (?:/|^)(?!\.\.?$) | ||||
|     // - if dots allowed or not possible: (?:/|^) | ||||
|     // - if dots possible and not allowed: (?:/|^)(?!\.) | ||||
|     // | ||||
|     // But it's better to have a simpler binding without a conditional, for | ||||
|     // performance, so probably better to return both start options. | ||||
|     // | ||||
|     // Then the caller just ignores the end if it's not the first pattern, | ||||
|     // and the start always gets applied. | ||||
|     // | ||||
|     // But that's always going to be $ if it's the ending pattern, or nothing, | ||||
|     // so the caller can just attach $ at the end of the pattern when building. | ||||
|     // | ||||
|     // So the todo is: | ||||
|     // - better detect what kind of start is needed | ||||
|     // - return both flavors of starting pattern | ||||
|     // - attach $ at the end of the pattern when creating the actual RegExp | ||||
|     // | ||||
|     // Ah, but wait, no, that all only applies to the root when the first pattern | ||||
|     // is not an extglob. If the first pattern IS an extglob, then we need all | ||||
|     // that dot prevention biz to live in the extglob portions, because eg | ||||
|     // +(*|.x*) can match .xy but not .yx. | ||||
|     // | ||||
|     // So, return the two flavors if it's #root and the first child is not an | ||||
|     // AST, otherwise leave it to the child AST to handle it, and there, | ||||
|     // use the (?:^|/) style of start binding. | ||||
|     // | ||||
|     // Even simplified further: | ||||
|     // - Since the start for a join is eg /(?!\.) and the start for a part | ||||
|     // is ^(?!\.), we can just prepend (?!\.) to the pattern (either root | ||||
|     // or start or whatever) and prepend ^ or / at the Regexp construction. | ||||
|     toRegExpSource(allowDot) { | ||||
|         const dot = allowDot ?? !!this.#options.dot; | ||||
|         if (this.#root === this) | ||||
|             this.#fillNegs(); | ||||
|         if (!this.type) { | ||||
|             const noEmpty = this.isStart() && this.isEnd(); | ||||
|             const src = this.#parts | ||||
|                 .map(p => { | ||||
|                 const [re, _, hasMagic, uflag] = typeof p === 'string' | ||||
|                     ? AST.#parseGlob(p, this.#hasMagic, noEmpty) | ||||
|                     : p.toRegExpSource(allowDot); | ||||
|                 this.#hasMagic = this.#hasMagic || hasMagic; | ||||
|                 this.#uflag = this.#uflag || uflag; | ||||
|                 return re; | ||||
|             }) | ||||
|                 .join(''); | ||||
|             let start = ''; | ||||
|             if (this.isStart()) { | ||||
|                 if (typeof this.#parts[0] === 'string') { | ||||
|                     // this is the string that will match the start of the pattern, | ||||
|                     // so we need to protect against dots and such. | ||||
|                     // '.' and '..' cannot match unless the pattern is that exactly, | ||||
|                     // even if it starts with . or dot:true is set. | ||||
|                     const dotTravAllowed = this.#parts.length === 1 && justDots.has(this.#parts[0]); | ||||
|                     if (!dotTravAllowed) { | ||||
|                         const aps = addPatternStart; | ||||
|                         // check if we have a possibility of matching . or .., | ||||
|                         // and prevent that. | ||||
|                         const needNoTrav =  | ||||
|                         // dots are allowed, and the pattern starts with [ or . | ||||
|                         (dot && aps.has(src.charAt(0))) || | ||||
|                             // the pattern starts with \., and then [ or . | ||||
|                             (src.startsWith('\\.') && aps.has(src.charAt(2))) || | ||||
|                             // the pattern starts with \.\., and then [ or . | ||||
|                             (src.startsWith('\\.\\.') && aps.has(src.charAt(4))); | ||||
|                         // no need to prevent dots if it can't match a dot, or if a | ||||
|                         // sub-pattern will be preventing it anyway. | ||||
|                         const needNoDot = !dot && !allowDot && aps.has(src.charAt(0)); | ||||
|                         start = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : ''; | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             // append the "end of path portion" pattern to negation tails | ||||
|             let end = ''; | ||||
|             if (this.isEnd() && | ||||
|                 this.#root.#filledNegs && | ||||
|                 this.#parent?.type === '!') { | ||||
|                 end = '(?:$|\\/)'; | ||||
|             } | ||||
|             const final = start + src + end; | ||||
|             return [ | ||||
|                 final, | ||||
|                 (0, unescape_js_1.unescape)(src), | ||||
|                 (this.#hasMagic = !!this.#hasMagic), | ||||
|                 this.#uflag, | ||||
|             ]; | ||||
|         } | ||||
|         // We need to calculate the body *twice* if it's a repeat pattern | ||||
|         // at the start, once in nodot mode, then again in dot mode, so a | ||||
|         // pattern like *(?) can match 'x.y' | ||||
|         const repeated = this.type === '*' || this.type === '+'; | ||||
|         // some kind of extglob | ||||
|         const start = this.type === '!' ? '(?:(?!(?:' : '(?:'; | ||||
|         let body = this.#partsToRegExp(dot); | ||||
|         if (this.isStart() && this.isEnd() && !body && this.type !== '!') { | ||||
|             // invalid extglob, has to at least be *something* present, if it's | ||||
|             // the entire path portion. | ||||
|             const s = this.toString(); | ||||
|             this.#parts = [s]; | ||||
|             this.type = null; | ||||
|             this.#hasMagic = undefined; | ||||
|             return [s, (0, unescape_js_1.unescape)(this.toString()), false, false]; | ||||
|         } | ||||
|         // XXX abstract out this map method | ||||
|         let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot | ||||
|             ? '' | ||||
|             : this.#partsToRegExp(true); | ||||
|         if (bodyDotAllowed === body) { | ||||
|             bodyDotAllowed = ''; | ||||
|         } | ||||
|         if (bodyDotAllowed) { | ||||
|             body = `(?:${body})(?:${bodyDotAllowed})*?`; | ||||
|         } | ||||
|         // an empty !() is exactly equivalent to a starNoEmpty | ||||
|         let final = ''; | ||||
|         if (this.type === '!' && this.#emptyExt) { | ||||
|             final = (this.isStart() && !dot ? startNoDot : '') + starNoEmpty; | ||||
|         } | ||||
|         else { | ||||
|             const close = this.type === '!' | ||||
|                 ? // !() must match something,but !(x) can match '' | ||||
|                     '))' + | ||||
|                         (this.isStart() && !dot && !allowDot ? startNoDot : '') + | ||||
|                         star + | ||||
|                         ')' | ||||
|                 : this.type === '@' | ||||
|                     ? ')' | ||||
|                     : this.type === '?' | ||||
|                         ? ')?' | ||||
|                         : this.type === '+' && bodyDotAllowed | ||||
|                             ? ')' | ||||
|                             : this.type === '*' && bodyDotAllowed | ||||
|                                 ? `)?` | ||||
|                                 : `)${this.type}`; | ||||
|             final = start + body + close; | ||||
|         } | ||||
|         return [ | ||||
|             final, | ||||
|             (0, unescape_js_1.unescape)(body), | ||||
|             (this.#hasMagic = !!this.#hasMagic), | ||||
|             this.#uflag, | ||||
|         ]; | ||||
|     } | ||||
|     #partsToRegExp(dot) { | ||||
|         return this.#parts | ||||
|             .map(p => { | ||||
|             // extglob ASTs should only contain parent ASTs | ||||
|             /* c8 ignore start */ | ||||
|             if (typeof p === 'string') { | ||||
|                 throw new Error('string type in extglob ast??'); | ||||
|             } | ||||
|             /* c8 ignore stop */ | ||||
|             // can ignore hasMagic, because extglobs are already always magic | ||||
|             const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot); | ||||
|             this.#uflag = this.#uflag || uflag; | ||||
|             return re; | ||||
|         }) | ||||
|             .filter(p => !(this.isStart() && this.isEnd()) || !!p) | ||||
|             .join('|'); | ||||
|     } | ||||
|     static #parseGlob(glob, hasMagic, noEmpty = false) { | ||||
|         let escaping = false; | ||||
|         let re = ''; | ||||
|         let uflag = false; | ||||
|         for (let i = 0; i < glob.length; i++) { | ||||
|             const c = glob.charAt(i); | ||||
|             if (escaping) { | ||||
|                 escaping = false; | ||||
|                 re += (reSpecials.has(c) ? '\\' : '') + c; | ||||
|                 continue; | ||||
|             } | ||||
|             if (c === '\\') { | ||||
|                 if (i === glob.length - 1) { | ||||
|                     re += '\\\\'; | ||||
|                 } | ||||
|                 else { | ||||
|                     escaping = true; | ||||
|                 } | ||||
|                 continue; | ||||
|             } | ||||
|             if (c === '[') { | ||||
|                 const [src, needUflag, consumed, magic] = (0, brace_expressions_js_1.parseClass)(glob, i); | ||||
|                 if (consumed) { | ||||
|                     re += src; | ||||
|                     uflag = uflag || needUflag; | ||||
|                     i += consumed - 1; | ||||
|                     hasMagic = hasMagic || magic; | ||||
|                     continue; | ||||
|                 } | ||||
|             } | ||||
|             if (c === '*') { | ||||
|                 if (noEmpty && glob === '*') | ||||
|                     re += starNoEmpty; | ||||
|                 else | ||||
|                     re += star; | ||||
|                 hasMagic = true; | ||||
|                 continue; | ||||
|             } | ||||
|             if (c === '?') { | ||||
|                 re += qmark; | ||||
|                 hasMagic = true; | ||||
|                 continue; | ||||
|             } | ||||
|             re += regExpEscape(c); | ||||
|         } | ||||
|         return [re, (0, unescape_js_1.unescape)(glob), !!hasMagic, uflag]; | ||||
|     } | ||||
| } | ||||
| exports.AST = AST; | ||||
| //# sourceMappingURL=ast.js.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/ast.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/ast.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										8
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| export type ParseClassResult = [ | ||||
|     src: string, | ||||
|     uFlag: boolean, | ||||
|     consumed: number, | ||||
|     hasMagic: boolean | ||||
| ]; | ||||
| export declare const parseClass: (glob: string, position: number) => ParseClassResult; | ||||
| //# sourceMappingURL=brace-expressions.d.ts.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"brace-expressions.d.ts","sourceRoot":"","sources":["../../src/brace-expressions.ts"],"names":[],"mappings":"AA+BA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,MAAM;IACX,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,OAAO;CAClB,CAAA;AAQD,eAAO,MAAM,UAAU,SACf,MAAM,YACF,MAAM,qBA8HjB,CAAA"} | ||||
							
								
								
									
										152
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/brace-expressions.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										152
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/brace-expressions.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,152 @@ | ||||
| "use strict"; | ||||
| // translate the various posix character classes into unicode properties | ||||
| // this works across all unicode locales | ||||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| exports.parseClass = void 0; | ||||
| // { <posix class>: [<translation>, /u flag required, negated] | ||||
| const posixClasses = { | ||||
|     '[:alnum:]': ['\\p{L}\\p{Nl}\\p{Nd}', true], | ||||
|     '[:alpha:]': ['\\p{L}\\p{Nl}', true], | ||||
|     '[:ascii:]': ['\\x' + '00-\\x' + '7f', false], | ||||
|     '[:blank:]': ['\\p{Zs}\\t', true], | ||||
|     '[:cntrl:]': ['\\p{Cc}', true], | ||||
|     '[:digit:]': ['\\p{Nd}', true], | ||||
|     '[:graph:]': ['\\p{Z}\\p{C}', true, true], | ||||
|     '[:lower:]': ['\\p{Ll}', true], | ||||
|     '[:print:]': ['\\p{C}', true], | ||||
|     '[:punct:]': ['\\p{P}', true], | ||||
|     '[:space:]': ['\\p{Z}\\t\\r\\n\\v\\f', true], | ||||
|     '[:upper:]': ['\\p{Lu}', true], | ||||
|     '[:word:]': ['\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}', true], | ||||
|     '[:xdigit:]': ['A-Fa-f0-9', false], | ||||
| }; | ||||
| // only need to escape a few things inside of brace expressions | ||||
| // escapes: [ \ ] - | ||||
| const braceEscape = (s) => s.replace(/[[\]\\-]/g, '\\$&'); | ||||
| // escape all regexp magic characters | ||||
| const regexpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'); | ||||
| // everything has already been escaped, we just have to join | ||||
| const rangesToString = (ranges) => ranges.join(''); | ||||
| // takes a glob string at a posix brace expression, and returns | ||||
| // an equivalent regular expression source, and boolean indicating | ||||
| // whether the /u flag needs to be applied, and the number of chars | ||||
| // consumed to parse the character class. | ||||
| // This also removes out of order ranges, and returns ($.) if the | ||||
| // entire class just no good. | ||||
| const parseClass = (glob, position) => { | ||||
|     const pos = position; | ||||
|     /* c8 ignore start */ | ||||
|     if (glob.charAt(pos) !== '[') { | ||||
|         throw new Error('not in a brace expression'); | ||||
|     } | ||||
|     /* c8 ignore stop */ | ||||
|     const ranges = []; | ||||
|     const negs = []; | ||||
|     let i = pos + 1; | ||||
|     let sawStart = false; | ||||
|     let uflag = false; | ||||
|     let escaping = false; | ||||
|     let negate = false; | ||||
|     let endPos = pos; | ||||
|     let rangeStart = ''; | ||||
|     WHILE: while (i < glob.length) { | ||||
|         const c = glob.charAt(i); | ||||
|         if ((c === '!' || c === '^') && i === pos + 1) { | ||||
|             negate = true; | ||||
|             i++; | ||||
|             continue; | ||||
|         } | ||||
|         if (c === ']' && sawStart && !escaping) { | ||||
|             endPos = i + 1; | ||||
|             break; | ||||
|         } | ||||
|         sawStart = true; | ||||
|         if (c === '\\') { | ||||
|             if (!escaping) { | ||||
|                 escaping = true; | ||||
|                 i++; | ||||
|                 continue; | ||||
|             } | ||||
|             // escaped \ char, fall through and treat like normal char | ||||
|         } | ||||
|         if (c === '[' && !escaping) { | ||||
|             // either a posix class, a collation equivalent, or just a [ | ||||
|             for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) { | ||||
|                 if (glob.startsWith(cls, i)) { | ||||
|                     // invalid, [a-[] is fine, but not [a-[:alpha]] | ||||
|                     if (rangeStart) { | ||||
|                         return ['$.', false, glob.length - pos, true]; | ||||
|                     } | ||||
|                     i += cls.length; | ||||
|                     if (neg) | ||||
|                         negs.push(unip); | ||||
|                     else | ||||
|                         ranges.push(unip); | ||||
|                     uflag = uflag || u; | ||||
|                     continue WHILE; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         // now it's just a normal character, effectively | ||||
|         escaping = false; | ||||
|         if (rangeStart) { | ||||
|             // throw this range away if it's not valid, but others | ||||
|             // can still match. | ||||
|             if (c > rangeStart) { | ||||
|                 ranges.push(braceEscape(rangeStart) + '-' + braceEscape(c)); | ||||
|             } | ||||
|             else if (c === rangeStart) { | ||||
|                 ranges.push(braceEscape(c)); | ||||
|             } | ||||
|             rangeStart = ''; | ||||
|             i++; | ||||
|             continue; | ||||
|         } | ||||
|         // now might be the start of a range. | ||||
|         // can be either c-d or c-] or c<more...>] or c] at this point | ||||
|         if (glob.startsWith('-]', i + 1)) { | ||||
|             ranges.push(braceEscape(c + '-')); | ||||
|             i += 2; | ||||
|             continue; | ||||
|         } | ||||
|         if (glob.startsWith('-', i + 1)) { | ||||
|             rangeStart = c; | ||||
|             i += 2; | ||||
|             continue; | ||||
|         } | ||||
|         // not the start of a range, just a single character | ||||
|         ranges.push(braceEscape(c)); | ||||
|         i++; | ||||
|     } | ||||
|     if (endPos < i) { | ||||
|         // didn't see the end of the class, not a valid class, | ||||
|         // but might still be valid as a literal match. | ||||
|         return ['', false, 0, false]; | ||||
|     } | ||||
|     // if we got no ranges and no negates, then we have a range that | ||||
|     // cannot possibly match anything, and that poisons the whole glob | ||||
|     if (!ranges.length && !negs.length) { | ||||
|         return ['$.', false, glob.length - pos, true]; | ||||
|     } | ||||
|     // if we got one positive range, and it's a single character, then that's | ||||
|     // not actually a magic pattern, it's just that one literal character. | ||||
|     // we should not treat that as "magic", we should just return the literal | ||||
|     // character. [_] is a perfectly valid way to escape glob magic chars. | ||||
|     if (negs.length === 0 && | ||||
|         ranges.length === 1 && | ||||
|         /^\\?.$/.test(ranges[0]) && | ||||
|         !negate) { | ||||
|         const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0]; | ||||
|         return [regexpEscape(r), false, endPos - pos, false]; | ||||
|     } | ||||
|     const sranges = '[' + (negate ? '^' : '') + rangesToString(ranges) + ']'; | ||||
|     const snegs = '[' + (negate ? '' : '^') + rangesToString(negs) + ']'; | ||||
|     const comb = ranges.length && negs.length | ||||
|         ? '(' + sranges + '|' + snegs + ')' | ||||
|         : ranges.length | ||||
|             ? sranges | ||||
|             : snegs; | ||||
|     return [comb, uflag, endPos - pos, true]; | ||||
| }; | ||||
| exports.parseClass = parseClass; | ||||
| //# sourceMappingURL=brace-expressions.js.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/brace-expressions.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/brace-expressions.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										12
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/escape.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/escape.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | ||||
| import { MinimatchOptions } from './index.js'; | ||||
| /** | ||||
|  * Escape all magic characters in a glob pattern. | ||||
|  * | ||||
|  * If the {@link windowsPathsNoEscape | GlobOptions.windowsPathsNoEscape} | ||||
|  * option is used, then characters are escaped by wrapping in `[]`, because | ||||
|  * a magic character wrapped in a character class can only be satisfied by | ||||
|  * that exact character.  In this mode, `\` is _not_ escaped, because it is | ||||
|  * not interpreted as a magic character, but instead as a path separator. | ||||
|  */ | ||||
| export declare const escape: (s: string, { windowsPathsNoEscape, }?: Pick<MinimatchOptions, 'windowsPathsNoEscape'>) => string; | ||||
| //# sourceMappingURL=escape.d.ts.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/escape.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/escape.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"escape.d.ts","sourceRoot":"","sources":["../../src/escape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,MACd,MAAM,8BAGN,KAAK,gBAAgB,EAAE,sBAAsB,CAAC,WAQlD,CAAA"} | ||||
							
								
								
									
										22
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/escape.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/escape.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| "use strict"; | ||||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| exports.escape = void 0; | ||||
| /** | ||||
|  * Escape all magic characters in a glob pattern. | ||||
|  * | ||||
|  * If the {@link windowsPathsNoEscape | GlobOptions.windowsPathsNoEscape} | ||||
|  * option is used, then characters are escaped by wrapping in `[]`, because | ||||
|  * a magic character wrapped in a character class can only be satisfied by | ||||
|  * that exact character.  In this mode, `\` is _not_ escaped, because it is | ||||
|  * not interpreted as a magic character, but instead as a path separator. | ||||
|  */ | ||||
| const escape = (s, { windowsPathsNoEscape = false, } = {}) => { | ||||
|     // don't need to escape +@! because we escape the parens | ||||
|     // that make those magic, and escaping ! as [!] isn't valid, | ||||
|     // because [!]] is a valid glob class meaning not ']'. | ||||
|     return windowsPathsNoEscape | ||||
|         ? s.replace(/[?*()[\]]/g, '[$&]') | ||||
|         : s.replace(/[?*()[\]\\]/g, '\\$&'); | ||||
| }; | ||||
| exports.escape = escape; | ||||
| //# sourceMappingURL=escape.js.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/escape.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/escape.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"escape.js","sourceRoot":"","sources":["../../src/escape.ts"],"names":[],"mappings":";;;AACA;;;;;;;;GAQG;AACI,MAAM,MAAM,GAAG,CACpB,CAAS,EACT,EACE,oBAAoB,GAAG,KAAK,MACsB,EAAE,EACtD,EAAE;IACF,wDAAwD;IACxD,4DAA4D;IAC5D,sDAAsD;IACtD,OAAO,oBAAoB;QACzB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;QACjC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;AACvC,CAAC,CAAA;AAZY,QAAA,MAAM,UAYlB","sourcesContent":["import { MinimatchOptions } from './index.js'\n/**\n * Escape all magic characters in a glob pattern.\n *\n * If the {@link windowsPathsNoEscape | GlobOptions.windowsPathsNoEscape}\n * option is used, then characters are escaped by wrapping in `[]`, because\n * a magic character wrapped in a character class can only be satisfied by\n * that exact character.  In this mode, `\\` is _not_ escaped, because it is\n * not interpreted as a magic character, but instead as a path separator.\n */\nexport const escape = (\n  s: string,\n  {\n    windowsPathsNoEscape = false,\n  }: Pick<MinimatchOptions, 'windowsPathsNoEscape'> = {}\n) => {\n  // don't need to escape +@! because we escape the parens\n  // that make those magic, and escaping ! as [!] isn't valid,\n  // because [!]] is a valid glob class meaning not ']'.\n  return windowsPathsNoEscape\n    ? s.replace(/[?*()[\\]]/g, '[$&]')\n    : s.replace(/[?*()[\\]\\\\]/g, '\\\\$&')\n}\n"]} | ||||
							
								
								
									
										94
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/index.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/index.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,94 @@ | ||||
| import { AST } from './ast.js'; | ||||
| type Platform = 'aix' | 'android' | 'darwin' | 'freebsd' | 'haiku' | 'linux' | 'openbsd' | 'sunos' | 'win32' | 'cygwin' | 'netbsd'; | ||||
| export interface MinimatchOptions { | ||||
|     nobrace?: boolean; | ||||
|     nocomment?: boolean; | ||||
|     nonegate?: boolean; | ||||
|     debug?: boolean; | ||||
|     noglobstar?: boolean; | ||||
|     noext?: boolean; | ||||
|     nonull?: boolean; | ||||
|     windowsPathsNoEscape?: boolean; | ||||
|     allowWindowsEscape?: boolean; | ||||
|     partial?: boolean; | ||||
|     dot?: boolean; | ||||
|     nocase?: boolean; | ||||
|     nocaseMagicOnly?: boolean; | ||||
|     magicalBraces?: boolean; | ||||
|     matchBase?: boolean; | ||||
|     flipNegate?: boolean; | ||||
|     preserveMultipleSlashes?: boolean; | ||||
|     optimizationLevel?: number; | ||||
|     platform?: Platform; | ||||
|     windowsNoMagicRoot?: boolean; | ||||
| } | ||||
| export declare const minimatch: { | ||||
|     (p: string, pattern: string, options?: MinimatchOptions): boolean; | ||||
|     sep: Sep; | ||||
|     GLOBSTAR: typeof GLOBSTAR; | ||||
|     filter: (pattern: string, options?: MinimatchOptions) => (p: string) => boolean; | ||||
|     defaults: (def: MinimatchOptions) => typeof minimatch; | ||||
|     braceExpand: (pattern: string, options?: MinimatchOptions) => string[]; | ||||
|     makeRe: (pattern: string, options?: MinimatchOptions) => false | MMRegExp; | ||||
|     match: (list: string[], pattern: string, options?: MinimatchOptions) => string[]; | ||||
|     AST: typeof AST; | ||||
|     Minimatch: typeof Minimatch; | ||||
|     escape: (s: string, { windowsPathsNoEscape, }?: Pick<MinimatchOptions, "windowsPathsNoEscape">) => string; | ||||
|     unescape: (s: string, { windowsPathsNoEscape, }?: Pick<MinimatchOptions, "windowsPathsNoEscape">) => string; | ||||
| }; | ||||
| type Sep = '\\' | '/'; | ||||
| export declare const sep: Sep; | ||||
| export declare const GLOBSTAR: unique symbol; | ||||
| export declare const filter: (pattern: string, options?: MinimatchOptions) => (p: string) => boolean; | ||||
| export declare const defaults: (def: MinimatchOptions) => typeof minimatch; | ||||
| export declare const braceExpand: (pattern: string, options?: MinimatchOptions) => string[]; | ||||
| export declare const makeRe: (pattern: string, options?: MinimatchOptions) => false | MMRegExp; | ||||
| export declare const match: (list: string[], pattern: string, options?: MinimatchOptions) => string[]; | ||||
| export type MMRegExp = RegExp & { | ||||
|     _src?: string; | ||||
|     _glob?: string; | ||||
| }; | ||||
| export type ParseReturnFiltered = string | MMRegExp | typeof GLOBSTAR; | ||||
| export type ParseReturn = ParseReturnFiltered | false; | ||||
| export declare class Minimatch { | ||||
|     options: MinimatchOptions; | ||||
|     set: ParseReturnFiltered[][]; | ||||
|     pattern: string; | ||||
|     windowsPathsNoEscape: boolean; | ||||
|     nonegate: boolean; | ||||
|     negate: boolean; | ||||
|     comment: boolean; | ||||
|     empty: boolean; | ||||
|     preserveMultipleSlashes: boolean; | ||||
|     partial: boolean; | ||||
|     globSet: string[]; | ||||
|     globParts: string[][]; | ||||
|     nocase: boolean; | ||||
|     isWindows: boolean; | ||||
|     platform: Platform; | ||||
|     windowsNoMagicRoot: boolean; | ||||
|     regexp: false | null | MMRegExp; | ||||
|     constructor(pattern: string, options?: MinimatchOptions); | ||||
|     hasMagic(): boolean; | ||||
|     debug(..._: any[]): void; | ||||
|     make(): void; | ||||
|     preprocess(globParts: string[][]): string[][]; | ||||
|     adjascentGlobstarOptimize(globParts: string[][]): string[][]; | ||||
|     levelOneOptimize(globParts: string[][]): string[][]; | ||||
|     levelTwoFileOptimize(parts: string | string[]): string[]; | ||||
|     firstPhasePreProcess(globParts: string[][]): string[][]; | ||||
|     secondPhasePreProcess(globParts: string[][]): string[][]; | ||||
|     partsMatch(a: string[], b: string[], emptyGSMatch?: boolean): false | string[]; | ||||
|     parseNegate(): void; | ||||
|     matchOne(file: string[], pattern: ParseReturn[], partial?: boolean): boolean; | ||||
|     braceExpand(): string[]; | ||||
|     parse(pattern: string): ParseReturn; | ||||
|     makeRe(): false | MMRegExp; | ||||
|     slashSplit(p: string): string[]; | ||||
|     match(f: string, partial?: boolean): boolean; | ||||
|     static defaults(def: MinimatchOptions): typeof Minimatch; | ||||
| } | ||||
| export { AST } from './ast.js'; | ||||
| export { escape } from './escape.js'; | ||||
| export { unescape } from './unescape.js'; | ||||
| //# sourceMappingURL=index.d.ts.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/index.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/index.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"} | ||||
							
								
								
									
										1017
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1017
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/index.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/index.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										3
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| { | ||||
|   "type": "commonjs" | ||||
| } | ||||
							
								
								
									
										17
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/unescape.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/unescape.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| import { MinimatchOptions } from './index.js'; | ||||
| /** | ||||
|  * Un-escape a string that has been escaped with {@link escape}. | ||||
|  * | ||||
|  * If the {@link windowsPathsNoEscape} option is used, then square-brace | ||||
|  * escapes are removed, but not backslash escapes.  For example, it will turn | ||||
|  * the string `'[*]'` into `*`, but it will not turn `'\\*'` into `'*'`, | ||||
|  * becuase `\` is a path separator in `windowsPathsNoEscape` mode. | ||||
|  * | ||||
|  * When `windowsPathsNoEscape` is not set, then both brace escapes and | ||||
|  * backslash escapes are removed. | ||||
|  * | ||||
|  * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped | ||||
|  * or unescaped. | ||||
|  */ | ||||
| export declare const unescape: (s: string, { windowsPathsNoEscape, }?: Pick<MinimatchOptions, 'windowsPathsNoEscape'>) => string; | ||||
| //# sourceMappingURL=unescape.d.ts.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/unescape.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/unescape.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"unescape.d.ts","sourceRoot":"","sources":["../../src/unescape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,QAAQ,MAChB,MAAM,8BAGN,KAAK,gBAAgB,EAAE,sBAAsB,CAAC,WAKlD,CAAA"} | ||||
							
								
								
									
										24
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/unescape.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/unescape.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| "use strict"; | ||||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| exports.unescape = void 0; | ||||
| /** | ||||
|  * Un-escape a string that has been escaped with {@link escape}. | ||||
|  * | ||||
|  * If the {@link windowsPathsNoEscape} option is used, then square-brace | ||||
|  * escapes are removed, but not backslash escapes.  For example, it will turn | ||||
|  * the string `'[*]'` into `*`, but it will not turn `'\\*'` into `'*'`, | ||||
|  * becuase `\` is a path separator in `windowsPathsNoEscape` mode. | ||||
|  * | ||||
|  * When `windowsPathsNoEscape` is not set, then both brace escapes and | ||||
|  * backslash escapes are removed. | ||||
|  * | ||||
|  * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped | ||||
|  * or unescaped. | ||||
|  */ | ||||
| const unescape = (s, { windowsPathsNoEscape = false, } = {}) => { | ||||
|     return windowsPathsNoEscape | ||||
|         ? s.replace(/\[([^\/\\])\]/g, '$1') | ||||
|         : s.replace(/((?!\\).|^)\[([^\/\\])\]/g, '$1$2').replace(/\\([^\/])/g, '$1'); | ||||
| }; | ||||
| exports.unescape = unescape; | ||||
| //# sourceMappingURL=unescape.js.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/unescape.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/commonjs/unescape.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"unescape.js","sourceRoot":"","sources":["../../src/unescape.ts"],"names":[],"mappings":";;;AACA;;;;;;;;;;;;;GAaG;AACI,MAAM,QAAQ,GAAG,CACtB,CAAS,EACT,EACE,oBAAoB,GAAG,KAAK,MACsB,EAAE,EACtD,EAAE;IACF,OAAO,oBAAoB;QACzB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;AAChF,CAAC,CAAA;AATY,QAAA,QAAQ,YASpB","sourcesContent":["import { MinimatchOptions } from './index.js'\n/**\n * Un-escape a string that has been escaped with {@link escape}.\n *\n * If the {@link windowsPathsNoEscape} option is used, then square-brace\n * escapes are removed, but not backslash escapes.  For example, it will turn\n * the string `'[*]'` into `*`, but it will not turn `'\\\\*'` into `'*'`,\n * becuase `\\` is a path separator in `windowsPathsNoEscape` mode.\n *\n * When `windowsPathsNoEscape` is not set, then both brace escapes and\n * backslash escapes are removed.\n *\n * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped\n * or unescaped.\n */\nexport const unescape = (\n  s: string,\n  {\n    windowsPathsNoEscape = false,\n  }: Pick<MinimatchOptions, 'windowsPathsNoEscape'> = {}\n) => {\n  return windowsPathsNoEscape\n    ? s.replace(/\\[([^\\/\\\\])\\]/g, '$1')\n    : s.replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g, '$1$2').replace(/\\\\([^\\/])/g, '$1')\n}\n"]} | ||||
							
								
								
									
										2
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| export declare const assertValidPattern: (pattern: any) => void; | ||||
| //# sourceMappingURL=assert-valid-pattern.d.ts.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"assert-valid-pattern.d.ts","sourceRoot":"","sources":["../../src/assert-valid-pattern.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,kBAAkB,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAUlD,CAAA"} | ||||
							
								
								
									
										10
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/esm/assert-valid-pattern.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/esm/assert-valid-pattern.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| const MAX_PATTERN_LENGTH = 1024 * 64; | ||||
| export const assertValidPattern = (pattern) => { | ||||
|     if (typeof pattern !== 'string') { | ||||
|         throw new TypeError('invalid pattern'); | ||||
|     } | ||||
|     if (pattern.length > MAX_PATTERN_LENGTH) { | ||||
|         throw new TypeError('pattern is too long'); | ||||
|     } | ||||
| }; | ||||
| //# sourceMappingURL=assert-valid-pattern.js.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/esm/assert-valid-pattern.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/esm/assert-valid-pattern.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"assert-valid-pattern.js","sourceRoot":"","sources":["../../src/assert-valid-pattern.ts"],"names":[],"mappings":"AAAA,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAA;AACpC,MAAM,CAAC,MAAM,kBAAkB,GAA2B,CACxD,OAAY,EACe,EAAE;IAC7B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,MAAM,IAAI,SAAS,CAAC,iBAAiB,CAAC,CAAA;KACvC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,kBAAkB,EAAE;QACvC,MAAM,IAAI,SAAS,CAAC,qBAAqB,CAAC,CAAA;KAC3C;AACH,CAAC,CAAA","sourcesContent":["const MAX_PATTERN_LENGTH = 1024 * 64\nexport const assertValidPattern: (pattern: any) => void = (\n  pattern: any\n): asserts pattern is string => {\n  if (typeof pattern !== 'string') {\n    throw new TypeError('invalid pattern')\n  }\n\n  if (pattern.length > MAX_PATTERN_LENGTH) {\n    throw new TypeError('pattern is too long')\n  }\n}\n"]} | ||||
							
								
								
									
										20
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/esm/ast.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/esm/ast.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| import { MinimatchOptions, MMRegExp } from './index.js'; | ||||
| export type ExtglobType = '!' | '?' | '+' | '*' | '@'; | ||||
| export declare class AST { | ||||
|     #private; | ||||
|     type: ExtglobType | null; | ||||
|     constructor(type: ExtglobType | null, parent?: AST, options?: MinimatchOptions); | ||||
|     get hasMagic(): boolean | undefined; | ||||
|     toString(): string; | ||||
|     push(...parts: (string | AST)[]): void; | ||||
|     toJSON(): any[]; | ||||
|     isStart(): boolean; | ||||
|     isEnd(): boolean; | ||||
|     copyIn(part: AST | string): void; | ||||
|     clone(parent: AST): AST; | ||||
|     static fromGlob(pattern: string, options?: MinimatchOptions): AST; | ||||
|     toMMPattern(): MMRegExp | string; | ||||
|     get options(): MinimatchOptions; | ||||
|     toRegExpSource(allowDot?: boolean): [re: string, body: string, hasMagic: boolean, uflag: boolean]; | ||||
| } | ||||
| //# sourceMappingURL=ast.d.ts.map | ||||
							
								
								
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/esm/ast.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/esm/ast.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/ast.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAwCvD,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAkCrD,qBAAa,GAAG;;IACd,IAAI,EAAE,WAAW,GAAG,IAAI,CAAA;gBAiBtB,IAAI,EAAE,WAAW,GAAG,IAAI,EACxB,MAAM,CAAC,EAAE,GAAG,EACZ,OAAO,GAAE,gBAAqB;IAahC,IAAI,QAAQ,IAAI,OAAO,GAAG,SAAS,CAUlC;IAGD,QAAQ,IAAI,MAAM;IA+ClB,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE;IAY/B,MAAM;IAgBN,OAAO,IAAI,OAAO;IAgBlB,KAAK,IAAI,OAAO;IAYhB,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM;IAKzB,KAAK,CAAC,MAAM,EAAE,GAAG;IAsIjB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB;IAQ/D,WAAW,IAAI,QAAQ,GAAG,MAAM;IA2BhC,IAAI,OAAO,qBAEV;IAuED,cAAc,CACZ,QAAQ,CAAC,EAAE,OAAO,GACjB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC;CAiMjE"} | ||||
							
								
								
									
										588
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/esm/ast.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										588
									
								
								frontend/node_modules/@jest/reporters/node_modules/minimatch/dist/esm/ast.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,588 @@ | ||||
| // parse a single path portion | ||||
| import { parseClass } from './brace-expressions.js'; | ||||
| import { unescape } from './unescape.js'; | ||||
| const types = new Set(['!', '?', '+', '*', '@']); | ||||
| const isExtglobType = (c) => types.has(c); | ||||
| // Patterns that get prepended to bind to the start of either the | ||||
| // entire string, or just a single path portion, to prevent dots | ||||
| // and/or traversal patterns, when needed. | ||||
| // Exts don't need the ^ or / bit, because the root binds that already. | ||||
| const startNoTraversal = '(?!(?:^|/)\\.\\.?(?:$|/))'; | ||||
| const startNoDot = '(?!\\.)'; | ||||
| // characters that indicate a start of pattern needs the "no dots" bit, | ||||
| // because a dot *might* be matched. ( is not in the list, because in | ||||
| // the case of a child extglob, it will handle the prevention itself. | ||||
| const addPatternStart = new Set(['[', '.']); | ||||
| // cases where traversal is A-OK, no dot prevention needed | ||||
| const justDots = new Set(['..', '.']); | ||||
| const reSpecials = new Set('().*{}+?[]^$\\!'); | ||||
| const regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'); | ||||
| // any single thing other than / | ||||
| const qmark = '[^/]'; | ||||
| // * => any number of characters | ||||
| const star = qmark + '*?'; | ||||
| // use + when we need to ensure that *something* matches, because the * is | ||||
| // the only thing in the path portion. | ||||
| const starNoEmpty = qmark + '+?'; | ||||
| // remove the \ chars that we added if we end up doing a nonmagic compare | ||||
| // const deslash = (s: string) => s.replace(/\\(.)/g, '$1') | ||||
| export class AST { | ||||
|     type; | ||||
|     #root; | ||||
|     #hasMagic; | ||||
|     #uflag = false; | ||||
|     #parts = []; | ||||
|     #parent; | ||||
|     #parentIndex; | ||||
|     #negs; | ||||
|     #filledNegs = false; | ||||
|     #options; | ||||
|     #toString; | ||||
|     // set to true if it's an extglob with no children | ||||
|     // (which really means one child of '') | ||||
|     #emptyExt = false; | ||||
|     constructor(type, parent, options = {}) { | ||||
|         this.type = type; | ||||
|         // extglobs are inherently magical | ||||
|         if (type) | ||||
|             this.#hasMagic = true; | ||||
|         this.#parent = parent; | ||||
|         this.#root = this.#parent ? this.#parent.#root : this; | ||||
|         this.#options = this.#root === this ? options : this.#root.#options; | ||||
|         this.#negs = this.#root === this ? [] : this.#root.#negs; | ||||
|         if (type === '!' && !this.#root.#filledNegs) | ||||
|             this.#negs.push(this); | ||||
|         this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0; | ||||
|     } | ||||
|     get hasMagic() { | ||||
|         /* c8 ignore start */ | ||||
|         if (this.#hasMagic !== undefined) | ||||
|             return this.#hasMagic; | ||||
|         /* c8 ignore stop */ | ||||
|         for (const p of this.#parts) { | ||||
|             if (typeof p === 'string') | ||||
|                 continue; | ||||
|             if (p.type || p.hasMagic) | ||||
|                 return (this.#hasMagic = true); | ||||
|         } | ||||
|         // note: will be undefined until we generate the regexp src and find out | ||||
|         return this.#hasMagic; | ||||
|     } | ||||
|     // reconstructs the pattern | ||||
|     toString() { | ||||
|         if (this.#toString !== undefined) | ||||
|             return this.#toString; | ||||
|         if (!this.type) { | ||||
|             return (this.#toString = this.#parts.map(p => String(p)).join('')); | ||||
|         } | ||||
|         else { | ||||
|             return (this.#toString = | ||||
|                 this.type + '(' + this.#parts.map(p => String(p)).join('|') + ')'); | ||||
|         } | ||||
|     } | ||||
|     #fillNegs() { | ||||
|         /* c8 ignore start */ | ||||
|         if (this !== this.#root) | ||||
|             throw new Error('should only call on root'); | ||||
|         if (this.#filledNegs) | ||||
|             return this; | ||||
|         /* c8 ignore stop */ | ||||
|         // call toString() once to fill this out | ||||
|         this.toString(); | ||||
|         this.#filledNegs = true; | ||||
|         let n; | ||||
|         while ((n = this.#negs.pop())) { | ||||
|             if (n.type !== '!') | ||||
|                 continue; | ||||
|             // walk up the tree, appending everthing that comes AFTER parentIndex | ||||
|             let p = n; | ||||
|             let pp = p.#parent; | ||||
|             while (pp) { | ||||
|                 for (let i = p.#parentIndex + 1; !pp.type && i < pp.#parts.length; i++) { | ||||
|                     for (const part of n.#parts) { | ||||
|                         /* c8 ignore start */ | ||||
|                         if (typeof part === 'string') { | ||||
|                             throw new Error('string part in extglob AST??'); | ||||
|                         } | ||||
|                         /* c8 ignore stop */ | ||||
|                         part.copyIn(pp.#parts[i]); | ||||
|                     } | ||||
|                 } | ||||
|                 p = pp; | ||||
|                 pp = p.#parent; | ||||
|             } | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|     push(...parts) { | ||||
|         for (const p of parts) { | ||||
|             if (p === '') | ||||
|                 continue; | ||||
|             /* c8 ignore start */ | ||||
|             if (typeof p !== 'string' && !(p instanceof AST && p.#parent === this)) { | ||||
|                 throw new Error('invalid part: ' + p); | ||||
|             } | ||||
|             /* c8 ignore stop */ | ||||
|             this.#parts.push(p); | ||||
|         } | ||||
|     } | ||||
|     toJSON() { | ||||
|         const ret = this.type === null | ||||
|             ? this.#parts.slice().map(p => (typeof p === 'string' ? p : p.toJSON())) | ||||
|             : [this.type, ...this.#parts.map(p => p.toJSON())]; | ||||
|         if (this.isStart() && !this.type) | ||||
|             ret.unshift([]); | ||||
|         if (this.isEnd() && | ||||
|             (this === this.#root || | ||||
|                 (this.#root.#filledNegs && this.#parent?.type === '!'))) { | ||||
|             ret.push({}); | ||||
|         } | ||||
|         return ret; | ||||
|     } | ||||
|     isStart() { | ||||
|         if (this.#root === this) | ||||
|             return true; | ||||
|         // if (this.type) return !!this.#parent?.isStart() | ||||
|         if (!this.#parent?.isStart()) | ||||
|             return false; | ||||
|         if (this.#parentIndex === 0) | ||||
|             return true; | ||||
|         // if everything AHEAD of this is a negation, then it's still the "start" | ||||
|         const p = this.#parent; | ||||
|         for (let i = 0; i < this.#parentIndex; i++) { | ||||
|             const pp = p.#parts[i]; | ||||
|             if (!(pp instanceof AST && pp.type === '!')) { | ||||
|                 return false; | ||||
|             } | ||||
|         } | ||||
|         return true; | ||||
|     } | ||||
|     isEnd() { | ||||
|         if (this.#root === this) | ||||
|             return true; | ||||
|         if (this.#parent?.type === '!') | ||||
|             return true; | ||||
|         if (!this.#parent?.isEnd()) | ||||
|             return false; | ||||
|         if (!this.type) | ||||
|             return this.#parent?.isEnd(); | ||||
|         // if not root, it'll always have a parent | ||||
|         /* c8 ignore start */ | ||||
|         const pl = this.#parent ? this.#parent.#parts.length : 0; | ||||
|         /* c8 ignore stop */ | ||||
|         return this.#parentIndex === pl - 1; | ||||
|     } | ||||
|     copyIn(part) { | ||||
|         if (typeof part === 'string') | ||||
|             this.push(part); | ||||
|         else | ||||
|             this.push(part.clone(this)); | ||||
|     } | ||||
|     clone(parent) { | ||||
|         const c = new AST(this.type, parent); | ||||
|         for (const p of this.#parts) { | ||||
|             c.copyIn(p); | ||||
|         } | ||||
|         return c; | ||||
|     } | ||||
|     static #parseAST(str, ast, pos, opt) { | ||||
|         let escaping = false; | ||||
|         let inBrace = false; | ||||
|         let braceStart = -1; | ||||
|         let braceNeg = false; | ||||
|         if (ast.type === null) { | ||||
|             // outside of a extglob, append until we find a start | ||||
|             let i = pos; | ||||
|             let acc = ''; | ||||
|             while (i < str.length) { | ||||
|                 const c = str.charAt(i++); | ||||
|                 // still accumulate escapes at this point, but we do ignore | ||||
|                 // starts that are escaped | ||||
|                 if (escaping || c === '\\') { | ||||
|                     escaping = !escaping; | ||||
|                     acc += c; | ||||
|                     continue; | ||||
|                 } | ||||
|                 if (inBrace) { | ||||
|                     if (i === braceStart + 1) { | ||||
|                         if (c === '^' || c === '!') { | ||||
|                             braceNeg = true; | ||||
|                         } | ||||
|                     } | ||||
|                     else if (c === ']' && !(i === braceStart + 2 && braceNeg)) { | ||||
|                         inBrace = false; | ||||
|                     } | ||||
|                     acc += c; | ||||
|                     continue; | ||||
|                 } | ||||
|                 else if (c === '[') { | ||||
|                     inBrace = true; | ||||
|                     braceStart = i; | ||||
|                     braceNeg = false; | ||||
|                     acc += c; | ||||
|                     continue; | ||||
|                 } | ||||
|                 if (!opt.noext && isExtglobType(c) && str.charAt(i) === '(') { | ||||
|                     ast.push(acc); | ||||
|                     acc = ''; | ||||
|                     const ext = new AST(c, ast); | ||||
|                     i = AST.#parseAST(str, ext, i, opt); | ||||
|                     ast.push(ext); | ||||
|                     continue; | ||||
|                 } | ||||
|                 acc += c; | ||||
|             } | ||||
|             ast.push(acc); | ||||
|             return i; | ||||
|         } | ||||
|         // some kind of extglob, pos is at the ( | ||||
|         // find the next | or ) | ||||
|         let i = pos + 1; | ||||
|         let part = new AST(null, ast); | ||||
|         const parts = []; | ||||
|         let acc = ''; | ||||
|         while (i < str.length) { | ||||
|             const c = str.charAt(i++); | ||||
|             // still accumulate escapes at this point, but we do ignore | ||||
|             // starts that are escaped | ||||
|             if (escaping || c === '\\') { | ||||
|                 escaping = !escaping; | ||||
|                 acc += c; | ||||
|                 continue; | ||||
|             } | ||||
|             if (inBrace) { | ||||
|                 if (i === braceStart + 1) { | ||||
|                     if (c === '^' || c === '!') { | ||||
|                         braceNeg = true; | ||||
|                     } | ||||
|                 } | ||||
|                 else if (c === ']' && !(i === braceStart + 2 && braceNeg)) { | ||||
|                     inBrace = false; | ||||
|                 } | ||||
|                 acc += c; | ||||
|                 continue; | ||||
|             } | ||||
|             else if (c === '[') { | ||||
|                 inBrace = true; | ||||
|                 braceStart = i; | ||||
|                 braceNeg = false; | ||||
|                 acc += c; | ||||
|                 continue; | ||||
|             } | ||||
|             if (isExtglobType(c) && str.charAt(i) === '(') { | ||||
|                 part.push(acc); | ||||
|                 acc = ''; | ||||
|                 const ext = new AST(c, part); | ||||
|                 part.push(ext); | ||||
|                 i = AST.#parseAST(str, ext, i, opt); | ||||
|                 continue; | ||||
|             } | ||||
|             if (c === '|') { | ||||
|                 part.push(acc); | ||||
|                 acc = ''; | ||||
|                 parts.push(part); | ||||
|                 part = new AST(null, ast); | ||||
|                 continue; | ||||
|             } | ||||
|             if (c === ')') { | ||||
|                 if (acc === '' && ast.#parts.length === 0) { | ||||
|                     ast.#emptyExt = true; | ||||
|                 } | ||||
|                 part.push(acc); | ||||
|                 acc = ''; | ||||
|                 ast.push(...parts, part); | ||||
|                 return i; | ||||
|             } | ||||
|             acc += c; | ||||
|         } | ||||
|         // unfinished extglob | ||||
|         // if we got here, it was a malformed extglob! not an extglob, but | ||||
|         // maybe something else in there. | ||||
|         ast.type = null; | ||||
|         ast.#hasMagic = undefined; | ||||
|         ast.#parts = [str.substring(pos - 1)]; | ||||
|         return i; | ||||
|     } | ||||
|     static fromGlob(pattern, options = {}) { | ||||
|         const ast = new AST(null, undefined, options); | ||||
|         AST.#parseAST(pattern, ast, 0, options); | ||||
|         return ast; | ||||
|     } | ||||
|     // returns the regular expression if there's magic, or the unescaped | ||||
|     // string if not. | ||||
|     toMMPattern() { | ||||
|         // should only be called on root | ||||
|         /* c8 ignore start */ | ||||
|         if (this !== this.#root) | ||||
|             return this.#root.toMMPattern(); | ||||
|         /* c8 ignore stop */ | ||||
|         const glob = this.toString(); | ||||
|         const [re, body, hasMagic, uflag] = this.toRegExpSource(); | ||||
|         // if we're in nocase mode, and not nocaseMagicOnly, then we do | ||||
|         // still need a regular expression if we have to case-insensitively | ||||
|         // match capital/lowercase characters. | ||||
|         const anyMagic = hasMagic || | ||||
|             this.#hasMagic || | ||||
|             (this.#options.nocase && | ||||
|                 !this.#options.nocaseMagicOnly && | ||||
|                 glob.toUpperCase() !== glob.toLowerCase()); | ||||
|         if (!anyMagic) { | ||||
|             return body; | ||||
|         } | ||||
|         const flags = (this.#options.nocase ? 'i' : '') + (uflag ? 'u' : ''); | ||||
|         return Object.assign(new RegExp(`^${re}$`, flags), { | ||||
|             _src: re, | ||||
|             _glob: glob, | ||||
|         }); | ||||
|     } | ||||
|     get options() { | ||||
|         return this.#options; | ||||
|     } | ||||
|     // returns the string match, the regexp source, whether there's magic | ||||
|     // in the regexp (so a regular expression is required) and whether or | ||||
|     // not the uflag is needed for the regular expression (for posix classes) | ||||
|     // TODO: instead of injecting the start/end at this point, just return | ||||
|     // the BODY of the regexp, along with the start/end portions suitable | ||||
|     // for binding the start/end in either a joined full-path makeRe context | ||||
|     // (where we bind to (^|/), or a standalone matchPart context (where | ||||
|     // we bind to ^, and not /).  Otherwise slashes get duped! | ||||
|     // | ||||
|     // In part-matching mode, the start is: | ||||
|     // - if not isStart: nothing | ||||
|     // - if traversal possible, but not allowed: ^(?!\.\.?$) | ||||
|     // - if dots allowed or not possible: ^ | ||||
|     // - if dots possible and not allowed: ^(?!\.) | ||||
|     // end is: | ||||
|     // - if not isEnd(): nothing | ||||
|     // - else: $ | ||||
|     // | ||||
|     // In full-path matching mode, we put the slash at the START of the | ||||
|     // pattern, so start is: | ||||
|     // - if first pattern: same as part-matching mode | ||||
|     // - if not isStart(): nothing | ||||
|     // - if traversal possible, but not allowed: /(?!\.\.?(?:$|/)) | ||||
|     // - if dots allowed or not possible: / | ||||
|     // - if dots possible and not allowed: /(?!\.) | ||||
|     // end is: | ||||
|     // - if last pattern, same as part-matching mode | ||||
|     // - else nothing | ||||
|     // | ||||
|     // Always put the (?:$|/) on negated tails, though, because that has to be | ||||
|     // there to bind the end of the negated pattern portion, and it's easier to | ||||
|     // just stick it in now rather than try to inject it later in the middle of | ||||
|     // the pattern. | ||||
|     // | ||||
|     // We can just always return the same end, and leave it up to the caller | ||||
|     // to know whether it's going to be used joined or in parts. | ||||
|     // And, if the start is adjusted slightly, can do the same there: | ||||
|     // - if not isStart: nothing | ||||
|     // - if traversal possible, but not allowed: (?:/|^)(?!\.\.?$) | ||||
|     // - if dots allowed or not possible: (?:/|^) | ||||
|     // - if dots possible and not allowed: (?:/|^)(?!\.) | ||||
|     // | ||||
|     // But it's better to have a simpler binding without a conditional, for | ||||
|     // performance, so probably better to return both start options. | ||||
|     // | ||||
|     // Then the caller just ignores the end if it's not the first pattern, | ||||
|     // and the start always gets applied. | ||||
|     // | ||||
|     // But that's always going to be $ if it's the ending pattern, or nothing, | ||||
|     // so the caller can just attach $ at the end of the pattern when building. | ||||
|     // | ||||
|     // So the todo is: | ||||
|     // - better detect what kind of start is needed | ||||
|     // - return both flavors of starting pattern | ||||
|     // - attach $ at the end of the pattern when creating the actual RegExp | ||||
|     // | ||||
|     // Ah, but wait, no, that all only applies to the root when the first pattern | ||||
|     // is not an extglob. If the first pattern IS an extglob, then we need all | ||||
|     // that dot prevention biz to live in the extglob portions, because eg | ||||
|     // +(*|.x*) can match .xy but not .yx. | ||||
|     // | ||||
|     // So, return the two flavors if it's #root and the first child is not an | ||||
|     // AST, otherwise leave it to the child AST to handle it, and there, | ||||
|     // use the (?:^|/) style of start binding. | ||||
|     // | ||||
|     // Even simplified further: | ||||
|     // - Since the start for a join is eg /(?!\.) and the start for a part | ||||
|     // is ^(?!\.), we can just prepend (?!\.) to the pattern (either root | ||||
|     // or start or whatever) and prepend ^ or / at the Regexp construction. | ||||
|     toRegExpSource(allowDot) { | ||||
|         const dot = allowDot ?? !!this.#options.dot; | ||||
|         if (this.#root === this) | ||||
|             this.#fillNegs(); | ||||
|         if (!this.type) { | ||||
|             const noEmpty = this.isStart() && this.isEnd(); | ||||
|             const src = this.#parts | ||||
|                 .map(p => { | ||||
|                 const [re, _, hasMagic, uflag] = typeof p === 'string' | ||||
|                     ? AST.#parseGlob(p, this.#hasMagic, noEmpty) | ||||
|                     : p.toRegExpSource(allowDot); | ||||
|                 this.#hasMagic = this.#hasMagic || hasMagic; | ||||
|                 this.#uflag = this.#uflag || uflag; | ||||
|                 return re; | ||||
|             }) | ||||
|                 .join(''); | ||||
|             let start = ''; | ||||
|             if (this.isStart()) { | ||||
|                 if (typeof this.#parts[0] === 'string') { | ||||
|                     // this is the string that will match the start of the pattern, | ||||
|                     // so we need to protect against dots and such. | ||||
|                     // '.' and '..' cannot match unless the pattern is that exactly, | ||||
|                     // even if it starts with . or dot:true is set. | ||||
|                     const dotTravAllowed = this.#parts.length === 1 && justDots.has(this.#parts[0]); | ||||
|                     if (!dotTravAllowed) { | ||||
|                         const aps = addPatternStart; | ||||
|                         // check if we have a possibility of matching . or .., | ||||
|                         // and prevent that. | ||||
|                         const needNoTrav =  | ||||
|                         // dots are allowed, and the pattern starts with [ or . | ||||
|                         (dot && aps.has(src.charAt(0))) || | ||||
|                             // the pattern starts with \., and then [ or . | ||||
|                             (src.startsWith('\\.') && aps.has(src.charAt(2))) || | ||||
|                             // the pattern starts with \.\., and then [ or . | ||||
|                             (src.startsWith('\\.\\.') && aps.has(src.charAt(4))); | ||||
|                         // no need to prevent dots if it can't match a dot, or if a | ||||
|                         // sub-pattern will be preventing it anyway. | ||||
|                         const needNoDot = !dot && !allowDot && aps.has(src.charAt(0)); | ||||
|                         start = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : ''; | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             // append the "end of path portion" pattern to negation tails | ||||
|             let end = ''; | ||||
|             if (this.isEnd() && | ||||
|                 this.#root.#filledNegs && | ||||
|                 this.#parent?.type === '!') { | ||||
|                 end = '(?:$|\\/)'; | ||||
|             } | ||||
|             const final = start + src + end; | ||||
|             return [ | ||||
|                 final, | ||||
|                 unescape(src), | ||||
|                 (this.#hasMagic = !!this.#hasMagic), | ||||
|                 this.#uflag, | ||||
|             ]; | ||||
|         } | ||||
|         // We need to calculate the body *twice* if it's a repeat pattern | ||||
|         // at the start, once in nodot mode, then again in dot mode, so a | ||||
|         // pattern like *(?) can match 'x.y' | ||||
|         const repeated = this.type === '*' || this.type === '+'; | ||||
|         // some kind of extglob | ||||
|         const start = this.type === '!' ? '(?:(?!(?:' : '(?:'; | ||||
|         let body = this.#partsToRegExp(dot); | ||||
|         if (this.isStart() && this.isEnd() && !body && this.type !== '!') { | ||||
|             // invalid extglob, has to at least be *something* present, if it's | ||||
|             // the entire path portion. | ||||
|             const s = this.toString(); | ||||
|             this.#parts = [s]; | ||||
|             this.type = null; | ||||
|             this.#hasMagic = undefined; | ||||
|             return [s, unescape(this.toString()), false, false]; | ||||
|         } | ||||
|         // XXX abstract out this map method | ||||
|         let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot | ||||
|             ? '' | ||||
|             : this.#partsToRegExp(true); | ||||
|         if (bodyDotAllowed === body) { | ||||
|             bodyDotAllowed = ''; | ||||
|         } | ||||
|         if (bodyDotAllowed) { | ||||
|             body = `(?:${body})(?:${bodyDotAllowed})*?`; | ||||
|         } | ||||
|         // an empty !() is exactly equivalent to a starNoEmpty | ||||
|         let final = ''; | ||||
|         if (this.type === '!' && this.#emptyExt) { | ||||
|             final = (this.isStart() && !dot ? startNoDot : '') + starNoEmpty; | ||||
|         } | ||||
|         else { | ||||
|             const close = this.type === '!' | ||||
|                 ? // !() must match something,but !(x) can match '' | ||||
|                     '))' + | ||||
|                         (this.isStart() && !dot && !allowDot ? startNoDot : '') + | ||||
|                         star + | ||||
|                         ')' | ||||
|                 : this.type === '@' | ||||
|                     ? ')' | ||||
|                     : this.type === '?' | ||||
|                         ? ')?' | ||||
|                         : this.type === '+' && bodyDotAllowed | ||||
|                             ? ')' | ||||
|                             : this.type === '*' && bodyDotAllowed | ||||
|                                 ? `)?` | ||||
|                                 : `)${this.type}`; | ||||
|             final = start + body + close; | ||||
|         } | ||||
|         return [ | ||||
|             final, | ||||
|             unescape(body), | ||||
|             (this.#hasMagic = !!this.#hasMagic), | ||||
|             this.#uflag, | ||||
|         ]; | ||||
|     } | ||||
|     #partsToRegExp(dot) { | ||||
|         return this.#parts | ||||
|             .map(p => { | ||||
|             // extglob ASTs should only contain parent ASTs | ||||
|             /* c8 ignore start */ | ||||
|             if (typeof p === 'string') { | ||||
|                 throw new Error('string type in extglob ast??'); | ||||
|             } | ||||
|             /* c8 ignore stop */ | ||||
|             // can ignore hasMagic, because extglobs are already always magic | ||||
|             const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot); | ||||
|             this.#uflag = this.#uflag || uflag; | ||||
|             return re; | ||||
|         }) | ||||
|             .filter(p => !(this.isStart() && this.isEnd()) || !!p) | ||||
|             .join('|'); | ||||
|     } | ||||
|     static #parseGlob(glob, hasMagic, noEmpty = false) { | ||||
|         let escaping = false; | ||||
|         let re = ''; | ||||
|         let uflag = false; | ||||
|         for (let i = 0; i < glob.length; i++) { | ||||
|             const c = glob.charAt(i); | ||||
|             if (escaping) { | ||||
|                 escaping = false; | ||||
|                 re += (reSpecials.has(c) ? '\\' : '') + c; | ||||
|                 continue; | ||||
|             } | ||||
|             if (c === '\\') { | ||||
|                 if (i === glob.length - 1) { | ||||
|                     re += '\\\\'; | ||||
|                 } | ||||
|                 else { | ||||
|                     escaping = true; | ||||
|                 } | ||||
|                 continue; | ||||
|             } | ||||
|             if (c === '[') { | ||||
|                 const [src, needUflag, consumed, magic] = parseClass(glob, i); | ||||
|                 if (consumed) { | ||||
|                     re += src; | ||||
|                     uflag = uflag || needUflag; | ||||
|                     i += consumed - 1; | ||||
|                     hasMagic = hasMagic || magic; | ||||
|                     continue; | ||||
|                 } | ||||
|             } | ||||
|             if (c === '*') { | ||||
|                 if (noEmpty && glob === '*') | ||||
|                     re += starNoEmpty; | ||||
|                 else | ||||
|                     re += star; | ||||
|                 hasMagic = true; | ||||
|                 continue; | ||||
|             } | ||||
|             if (c === '?') { | ||||
|                 re += qmark; | ||||
|                 hasMagic = true; | ||||
|                 continue; | ||||
|             } | ||||
|             re += regExpEscape(c); | ||||
|         } | ||||
|         return [re, unescape(glob), !!hasMagic, uflag]; | ||||
|     } | ||||
| } | ||||
| //# sourceMappingURL=ast.js.map | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user
	 anthonyrawlins
					anthonyrawlins