summaryrefslogtreecommitdiffstats
path: root/node_modules/ignore
diff options
context:
space:
mode:
authorGravatar Piotr Russ <mail@pruss.it> 2020-11-18 23:26:45 +0100
committerGravatar Piotr Russ <mail@pruss.it> 2020-11-18 23:26:45 +0100
commit81ddf9b700bc48a1f8e472209f080f9c1d9a9b09 (patch)
tree8b959d50c5a614cbf9fcb346ed556140374d4b6d /node_modules/ignore
parent1870f3fdf43707a15fda0f609a021f516f45eb63 (diff)
downloadwebsite_creator-81ddf9b700bc48a1f8e472209f080f9c1d9a9b09.tar.gz
website_creator-81ddf9b700bc48a1f8e472209f080f9c1d9a9b09.tar.bz2
website_creator-81ddf9b700bc48a1f8e472209f080f9c1d9a9b09.zip
rm node_modules
Diffstat (limited to 'node_modules/ignore')
-rw-r--r--node_modules/ignore/CHANGELOG.md32
-rw-r--r--node_modules/ignore/LICENSE-MIT21
-rw-r--r--node_modules/ignore/README.md392
-rw-r--r--node_modules/ignore/index.d.ts63
-rw-r--r--node_modules/ignore/index.js597
-rw-r--r--node_modules/ignore/legacy.js495
-rw-r--r--node_modules/ignore/package.json98
7 files changed, 0 insertions, 1698 deletions
diff --git a/node_modules/ignore/CHANGELOG.md b/node_modules/ignore/CHANGELOG.md
deleted file mode 100644
index dc38d63..0000000
--- a/node_modules/ignore/CHANGELOG.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# `node-ignore` 5 ChangeLog
-
-# 5.x
-
-## 2018-08-14, Version 5.0.1
-
-- **PATCH**: fixes for windows.
-- **PATCH**: improves tests for typescript and windows.
-
-## 2018-08-13, Version 5.0.0
-
-- **SEMVER-MAJOR**: [#20](https://github.com/kaelzhang/node-ignore/issues/20): it will throw if an invalid pathname passes into `.ignores(pathname)`, see [Upgrade 4.x -> 5.x](https://github.com/kaelzhang/node-ignore#upgrade-4x---5x).
-- **FEATURE**: [#31](https://github.com/kaelzhang/node-ignore/issues/31): adds a new method [`.test(pathname)`](https://github.com/kaelzhang/node-ignore#testpathname-pathname-since-500).
-- **BENCHMARK**: improves performance by 26%.
-
-# 4.x
-
-## 2018-08-12, Version 4.0.6
-
-- **PATCH**: `Object.prototype` methods will not ruin the result any more.
-
-## ~ 2018-08-09, Version 4.0.1 - 4.0.5
-
-- **PATCH**: updates README.md about frequent asked quesions from github issues.
-
-## 2018-06-22, Version 4.0.0
-
-- **SEMVER-MAJOR**: Drop support for node < 6 by default.
-- **FEATURE**: supports the missing character ranges and sets, such as `*.[a-z]` and `*.[jJ][pP][gG]`
-- **FEATURE**: new option: `ignorecase` to make `ignore` case insensitive.
-- **FEATURE**: supports question mark which matches a single character.
-- **PATCH**: fixes typescript declaration.
diff --git a/node_modules/ignore/LICENSE-MIT b/node_modules/ignore/LICENSE-MIT
deleted file mode 100644
index 825533e..0000000
--- a/node_modules/ignore/LICENSE-MIT
+++ /dev/null
@@ -1,21 +0,0 @@
-Copyright (c) 2013 Kael Zhang <i@kael.me>, contributors
-http://kael.me/
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file
diff --git a/node_modules/ignore/README.md b/node_modules/ignore/README.md
deleted file mode 100644
index 4bdac9d..0000000
--- a/node_modules/ignore/README.md
+++ /dev/null
@@ -1,392 +0,0 @@
-<table><thead>
- <tr>
- <th>Linux</th>
- <th>OS X</th>
- <th>Windows</th>
- <th>Coverage</th>
- <th>Downloads</th>
- </tr>
-</thead><tbody><tr>
- <td colspan="2" align="center">
- <a href="https://travis-ci.org/kaelzhang/node-ignore">
- <img
- src="https://travis-ci.org/kaelzhang/node-ignore.svg?branch=master"
- alt="Build Status" /></a>
- </td>
- <td align="center">
- <a href="https://ci.appveyor.com/project/kaelzhang/node-ignore">
- <img
- src="https://ci.appveyor.com/api/projects/status/github/kaelzhang/node-ignore?branch=master&svg=true"
- alt="Windows Build Status" /></a>
- </td>
- <td align="center">
- <a href="https://codecov.io/gh/kaelzhang/node-ignore">
- <img
- src="https://codecov.io/gh/kaelzhang/node-ignore/branch/master/graph/badge.svg"
- alt="Coverage Status" /></a>
- </td>
- <td align="center">
- <a href="https://www.npmjs.org/package/ignore">
- <img
- src="http://img.shields.io/npm/dm/ignore.svg"
- alt="npm module downloads per month" /></a>
- </td>
-</tr></tbody></table>
-
-# ignore
-
-`ignore` is a manager, filter and parser which implemented in pure JavaScript according to the [.gitignore spec 2.22.1](http://git-scm.com/docs/gitignore).
-
-`ignore` is used by eslint, gitbook and [many others](https://www.npmjs.com/browse/depended/ignore).
-
-Pay **ATTENTION** that [`minimatch`](https://www.npmjs.org/package/minimatch) (which used by `fstream-ignore`) does not follow the gitignore spec.
-
-To filter filenames according to a .gitignore file, I recommend this npm package, `ignore`.
-
-To parse an `.npmignore` file, you should use `minimatch`, because an `.npmignore` file is parsed by npm using `minimatch` and it does not work in the .gitignore way.
-
-### Tested on
-
-`ignore` is fully tested, and has more than **five hundreds** of unit tests.
-
-- Linux + Node: `0.8` - `7.x`
-- Windows + Node: `0.10` - `7.x`, node < `0.10` is not tested due to the lack of support of appveyor.
-
-Actually, `ignore` does not rely on any versions of node specially.
-
-Since `4.0.0`, ignore will no longer support `node < 6` by default, to use in node < 6, `require('ignore/legacy')`. For details, see [CHANGELOG](https://github.com/kaelzhang/node-ignore/blob/master/CHANGELOG.md).
-
-## Table Of Main Contents
-
-- [Usage](#usage)
-- [`Pathname` Conventions](#pathname-conventions)
-- See Also:
- - [`glob-gitignore`](https://www.npmjs.com/package/glob-gitignore) matches files using patterns and filters them according to gitignore rules.
-- [Upgrade Guide](#upgrade-guide)
-
-## Install
-
-```sh
-npm i ignore
-```
-
-## Usage
-
-```js
-import ignore from 'ignore'
-const ig = ignore().add(['.abc/*', '!.abc/d/'])
-```
-
-### Filter the given paths
-
-```js
-const paths = [
- '.abc/a.js', // filtered out
- '.abc/d/e.js' // included
-]
-
-ig.filter(paths) // ['.abc/d/e.js']
-ig.ignores('.abc/a.js') // true
-```
-
-### As the filter function
-
-```js
-paths.filter(ig.createFilter()); // ['.abc/d/e.js']
-```
-
-### Win32 paths will be handled
-
-```js
-ig.filter(['.abc\\a.js', '.abc\\d\\e.js'])
-// if the code above runs on windows, the result will be
-// ['.abc\\d\\e.js']
-```
-
-## Why another ignore?
-
-- `ignore` is a standalone module, and is much simpler so that it could easy work with other programs, unlike [isaacs](https://npmjs.org/~isaacs)'s [fstream-ignore](https://npmjs.org/package/fstream-ignore) which must work with the modules of the fstream family.
-
-- `ignore` only contains utility methods to filter paths according to the specified ignore rules, so
- - `ignore` never try to find out ignore rules by traversing directories or fetching from git configurations.
- - `ignore` don't cares about sub-modules of git projects.
-
-- Exactly according to [gitignore man page](http://git-scm.com/docs/gitignore), fixes some known matching issues of fstream-ignore, such as:
- - '`/*.js`' should only match '`a.js`', but not '`abc/a.js`'.
- - '`**/foo`' should match '`foo`' anywhere.
- - Prevent re-including a file if a parent directory of that file is excluded.
- - Handle trailing whitespaces:
- - `'a '`(one space) should not match `'a '`(two spaces).
- - `'a \ '` matches `'a '`
- - All test cases are verified with the result of `git check-ignore`.
-
-# Methods
-
-## .add(pattern: string | Ignore): this
-## .add(patterns: Array<string | Ignore>): this
-
-- **pattern** `String | Ignore` An ignore pattern string, or the `Ignore` instance
-- **patterns** `Array<String | Ignore>` Array of ignore patterns.
-
-Adds a rule or several rules to the current manager.
-
-Returns `this`
-
-Notice that a line starting with `'#'`(hash) is treated as a comment. Put a backslash (`'\'`) in front of the first hash for patterns that begin with a hash, if you want to ignore a file with a hash at the beginning of the filename.
-
-```js
-ignore().add('#abc').ignores('#abc') // false
-ignore().add('\#abc').ignores('#abc') // true
-```
-
-`pattern` could either be a line of ignore pattern or a string of multiple ignore patterns, which means we could just `ignore().add()` the content of a ignore file:
-
-```js
-ignore()
-.add(fs.readFileSync(filenameOfGitignore).toString())
-.filter(filenames)
-```
-
-`pattern` could also be an `ignore` instance, so that we could easily inherit the rules of another `Ignore` instance.
-
-## <strike>.addIgnoreFile(path)</strike>
-
-REMOVED in `3.x` for now.
-
-To upgrade `ignore@2.x` up to `3.x`, use
-
-```js
-import fs from 'fs'
-
-if (fs.existsSync(filename)) {
- ignore().add(fs.readFileSync(filename).toString())
-}
-```
-
-instead.
-
-## .filter(paths: Array&lt;Pathname&gt;): Array&lt;Pathname&gt;
-
-```ts
-type Pathname = string
-```
-
-Filters the given array of pathnames, and returns the filtered array.
-
-- **paths** `Array.<Pathname>` The array of `pathname`s to be filtered.
-
-### `Pathname` Conventions:
-
-#### 1. `Pathname` should be a `path.relative()`d pathname
-
-`Pathname` should be a string that have been `path.join()`ed, or the return value of `path.relative()` to the current directory,
-
-```js
-// WRONG, an error will be thrown
-ig.ignores('./abc')
-
-// WRONG, for it will never happen, and an error will be thrown
-// If the gitignore rule locates at the root directory,
-// `'/abc'` should be changed to `'abc'`.
-// ```
-// path.relative('/', '/abc') -> 'abc'
-// ```
-ig.ignores('/abc')
-
-// WRONG, that it is an absolute path on Windows, an error will be thrown
-ig.ignores('C:\\abc')
-
-// Right
-ig.ignores('abc')
-
-// Right
-ig.ignores(path.join('./abc')) // path.join('./abc') -> 'abc'
-```
-
-In other words, each `Pathname` here should be a relative path to the directory of the gitignore rules.
-
-Suppose the dir structure is:
-
-```
-/path/to/your/repo
- |-- a
- | |-- a.js
- |
- |-- .b
- |
- |-- .c
- |-- .DS_store
-```
-
-Then the `paths` might be like this:
-
-```js
-[
- 'a/a.js'
- '.b',
- '.c/.DS_store'
-]
-```
-
-#### 2. filenames and dirnames
-
-`node-ignore` does NO `fs.stat` during path matching, so for the example below:
-
-```js
-// First, we add a ignore pattern to ignore a directory
-ig.add('config/')
-
-// `ig` does NOT know if 'config', in the real world,
-// is a normal file, directory or something.
-
-ig.ignores('config')
-// `ig` treats `config` as a file, so it returns `false`
-
-ig.ignores('config/')
-// returns `true`
-```
-
-Specially for people who develop some library based on `node-ignore`, it is important to understand that.
-
-Usually, you could use [`glob`](http://npmjs.org/package/glob) with `option.mark = true` to fetch the structure of the current directory:
-
-```js
-import glob from 'glob'
-
-glob('**', {
- // Adds a / character to directory matches.
- mark: true
-}, (err, files) => {
- if (err) {
- return console.error(err)
- }
-
- let filtered = ignore().add(patterns).filter(files)
- console.log(filtered)
-})
-```
-
-## .ignores(pathname: Pathname): boolean
-
-> new in 3.2.0
-
-Returns `Boolean` whether `pathname` should be ignored.
-
-```js
-ig.ignores('.abc/a.js') // true
-```
-
-## .createFilter()
-
-Creates a filter function which could filter an array of paths with `Array.prototype.filter`.
-
-Returns `function(path)` the filter function.
-
-## .test(pathname: Pathname) since 5.0.0
-
-Returns `TestResult`
-
-```ts
-interface TestResult {
- ignored: boolean
- // true if the `pathname` is finally unignored by some negative pattern
- unignored: boolean
-}
-```
-
-- `{ignored: true, unignored: false}`: the `pathname` is ignored
-- `{ignored: false, unignored: true}`: the `pathname` is unignored
-- `{ignored: false, unignored: false}`: the `pathname` is never matched by any ignore rules.
-
-## `options.ignorecase` since 4.0.0
-
-Similar as the `core.ignorecase` option of [git-config](https://git-scm.com/docs/git-config), `node-ignore` will be case insensitive if `options.ignorecase` is set to `true` (the default value), otherwise case sensitive.
-
-```js
-const ig = ignore({
- ignorecase: false
-})
-
-ig.add('*.png')
-
-ig.ignores('*.PNG') // false
-```
-
-## static `ignore.isPathValid(pathname): boolean` since 5.0.0
-
-Check whether the `pathname` is an valid `path.relative()`d path according to the [convention](#1-pathname-should-be-a-pathrelatived-pathname).
-
-This method is **NOT** used to check if an ignore pattern is valid.
-
-```js
-ignore.isPathValid('./foo') // false
-```
-
-****
-
-# Upgrade Guide
-
-## Upgrade 4.x -> 5.x
-
-Since `5.0.0`, if an invalid `Pathname` passed into `ig.ignores()`, an error will be thrown, while `ignore < 5.0.0` did not make sure what the return value was, as well as
-
-```ts
-.ignores(pathname: Pathname): boolean
-
-.filter(pathnames: Array<Pathname>): Array<Pathname>
-
-.createFilter(): (pathname: Pathname) => boolean
-
-.test(pathname: Pathname): {ignored: boolean, unignored: boolean}
-```
-
-See the convention [here](#1-pathname-should-be-a-pathrelatived-pathname) for details.
-
-If there are invalid pathnames, the conversion and filtration should be done by users.
-
-```js
-import {isPathValid} from 'ignore' // introduced in 5.0.0
-
-const paths = [
- // invalid
- //////////////////
- '',
- false,
- '../foo',
- '.',
- //////////////////
-
- // valid
- 'foo'
-]
-.filter(isValidPath)
-
-ig.filter(paths)
-```
-
-## Upgrade 3.x -> 4.x
-
-Since `4.0.0`, `ignore` will no longer support node < 6, to use `ignore` in node < 6:
-
-```js
-var ignore = require('ignore/legacy')
-```
-
-## Upgrade 2.x -> 3.x
-
-- All `options` of 2.x are unnecessary and removed, so just remove them.
-- `ignore()` instance is no longer an [`EventEmitter`](nodejs.org/api/events.html), and all events are unnecessary and removed.
-- `.addIgnoreFile()` is removed, see the [.addIgnoreFile](#addignorefilepath) section for details.
-
-****
-
-# Collaborators
-
-- [@whitecolor](https://github.com/whitecolor) *Alex*
-- [@SamyPesse](https://github.com/SamyPesse) *Samy Pessé*
-- [@azproduction](https://github.com/azproduction) *Mikhail Davydov*
-- [@TrySound](https://github.com/TrySound) *Bogdan Chadkin*
-- [@JanMattner](https://github.com/JanMattner) *Jan Mattner*
-- [@ntwb](https://github.com/ntwb) *Stephen Edgar*
-- [@kasperisager](https://github.com/kasperisager) *Kasper Isager*
-- [@sandersn](https://github.com/sandersn) *Nathan Shively-Sanders*
diff --git a/node_modules/ignore/index.d.ts b/node_modules/ignore/index.d.ts
deleted file mode 100644
index 66657af..0000000
--- a/node_modules/ignore/index.d.ts
+++ /dev/null
@@ -1,63 +0,0 @@
-type Pathname = string
-
-interface TestResult {
- ignored: boolean
- unignored: boolean
-}
-
-export interface Ignore {
- /**
- * Adds a rule rules to the current manager.
- * @param {string | Ignore} pattern
- * @returns IgnoreBase
- */
- add(pattern: string | Ignore): this
- /**
- * Adds several rules to the current manager.
- * @param {string[]} patterns
- * @returns IgnoreBase
- */
- add(patterns: (string | Ignore)[]): this
-
- /**
- * Filters the given array of pathnames, and returns the filtered array.
- * NOTICE that each path here should be a relative path to the root of your repository.
- * @param paths the array of paths to be filtered.
- * @returns The filtered array of paths
- */
- filter(pathnames: Pathname[]): Pathname[]
- /**
- * Creates a filter function which could filter
- * an array of paths with Array.prototype.filter.
- */
- createFilter(): (pathname: Pathname) => boolean
-
- /**
- * Returns Boolean whether pathname should be ignored.
- * @param {string} pathname a path to check
- * @returns boolean
- */
- ignores(pathname: Pathname): boolean
-
- /**
- * Returns whether pathname should be ignored or unignored
- * @param {string} pathname a path to check
- * @returns TestResult
- */
- test(pathname: Pathname): TestResult
-}
-
-interface Options {
- ignorecase?: boolean
-}
-
-/**
- * Creates new ignore manager.
- */
-declare function ignore(options?: Options): Ignore
-
-declare namespace ignore {
- export function isPathValid (pathname: string): boolean
-}
-
-export default ignore
diff --git a/node_modules/ignore/index.js b/node_modules/ignore/index.js
deleted file mode 100644
index 9dcee20..0000000
--- a/node_modules/ignore/index.js
+++ /dev/null
@@ -1,597 +0,0 @@
-// A simple implementation of make-array
-function makeArray (subject) {
- return Array.isArray(subject)
- ? subject
- : [subject]
-}
-
-const EMPTY = ''
-const SPACE = ' '
-const ESCAPE = '\\'
-const REGEX_TEST_BLANK_LINE = /^\s+$/
-const REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/
-const REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/
-const REGEX_SPLITALL_CRLF = /\r?\n/g
-// /foo,
-// ./foo,
-// ../foo,
-// .
-// ..
-const REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/
-
-const SLASH = '/'
-const KEY_IGNORE = typeof Symbol !== 'undefined'
- ? Symbol.for('node-ignore')
- /* istanbul ignore next */
- : 'node-ignore'
-
-const define = (object, key, value) =>
- Object.defineProperty(object, key, {value})
-
-const REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g
-
-// Sanitize the range of a regular expression
-// The cases are complicated, see test cases for details
-const sanitizeRange = range => range.replace(
- REGEX_REGEXP_RANGE,
- (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0)
- ? match
- // Invalid range (out of order) which is ok for gitignore rules but
- // fatal for JavaScript regular expression, so eliminate it.
- : EMPTY
-)
-
-// See fixtures #59
-const cleanRangeBackSlash = slashes => {
- const {length} = slashes
- return slashes.slice(0, length - length % 2)
-}
-
-// > If the pattern ends with a slash,
-// > it is removed for the purpose of the following description,
-// > but it would only find a match with a directory.
-// > In other words, foo/ will match a directory foo and paths underneath it,
-// > but will not match a regular file or a symbolic link foo
-// > (this is consistent with the way how pathspec works in general in Git).
-// '`foo/`' will not match regular file '`foo`' or symbolic link '`foo`'
-// -> ignore-rules will not deal with it, because it costs extra `fs.stat` call
-// you could use option `mark: true` with `glob`
-
-// '`foo/`' should not continue with the '`..`'
-const REPLACERS = [
-
- // > Trailing spaces are ignored unless they are quoted with backslash ("\")
- [
- // (a\ ) -> (a )
- // (a ) -> (a)
- // (a \ ) -> (a )
- /\\?\s+$/,
- match => match.indexOf('\\') === 0
- ? SPACE
- : EMPTY
- ],
-
- // replace (\ ) with ' '
- [
- /\\\s/g,
- () => SPACE
- ],
-
- // Escape metacharacters
- // which is written down by users but means special for regular expressions.
-
- // > There are 12 characters with special meanings:
- // > - the backslash \,
- // > - the caret ^,
- // > - the dollar sign $,
- // > - the period or dot .,
- // > - the vertical bar or pipe symbol |,
- // > - the question mark ?,
- // > - the asterisk or star *,
- // > - the plus sign +,
- // > - the opening parenthesis (,
- // > - the closing parenthesis ),
- // > - and the opening square bracket [,
- // > - the opening curly brace {,
- // > These special characters are often called "metacharacters".
- [
- /[\\$.|*+(){^]/g,
- match => `\\${match}`
- ],
-
- [
- // > a question mark (?) matches a single character
- /(?!\\)\?/g,
- () => '[^/]'
- ],
-
- // leading slash
- [
-
- // > A leading slash matches the beginning of the pathname.
- // > For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c".
- // A leading slash matches the beginning of the pathname
- /^\//,
- () => '^'
- ],
-
- // replace special metacharacter slash after the leading slash
- [
- /\//g,
- () => '\\/'
- ],
-
- [
- // > A leading "**" followed by a slash means match in all directories.
- // > For example, "**/foo" matches file or directory "foo" anywhere,
- // > the same as pattern "foo".
- // > "**/foo/bar" matches file or directory "bar" anywhere that is directly
- // > under directory "foo".
- // Notice that the '*'s have been replaced as '\\*'
- /^\^*\\\*\\\*\\\//,
-
- // '**/foo' <-> 'foo'
- () => '^(?:.*\\/)?'
- ],
-
- // starting
- [
- // there will be no leading '/'
- // (which has been replaced by section "leading slash")
- // If starts with '**', adding a '^' to the regular expression also works
- /^(?=[^^])/,
- function startingReplacer () {
- // If has a slash `/` at the beginning or middle
- return !/\/(?!$)/.test(this)
- // > Prior to 2.22.1
- // > If the pattern does not contain a slash /,
- // > Git treats it as a shell glob pattern
- // Actually, if there is only a trailing slash,
- // git also treats it as a shell glob pattern
-
- // After 2.22.1 (compatible but clearer)
- // > If there is a separator at the beginning or middle (or both)
- // > of the pattern, then the pattern is relative to the directory
- // > level of the particular .gitignore file itself.
- // > Otherwise the pattern may also match at any level below
- // > the .gitignore level.
- ? '(?:^|\\/)'
-
- // > Otherwise, Git treats the pattern as a shell glob suitable for
- // > consumption by fnmatch(3)
- : '^'
- }
- ],
-
- // two globstars
- [
- // Use lookahead assertions so that we could match more than one `'/**'`
- /\\\/\\\*\\\*(?=\\\/|$)/g,
-
- // Zero, one or several directories
- // should not use '*', or it will be replaced by the next replacer
-
- // Check if it is not the last `'/**'`
- (_, index, str) => index + 6 < str.length
-
- // case: /**/
- // > A slash followed by two consecutive asterisks then a slash matches
- // > zero or more directories.
- // > For example, "a/**/b" matches "a/b", "a/x/b", "a/x/y/b" and so on.
- // '/**/'
- ? '(?:\\/[^\\/]+)*'
-
- // case: /**
- // > A trailing `"/**"` matches everything inside.
-
- // #21: everything inside but it should not include the current folder
- : '\\/.+'
- ],
-
- // intermediate wildcards
- [
- // Never replace escaped '*'
- // ignore rule '\*' will match the path '*'
-
- // 'abc.*/' -> go
- // 'abc.*' -> skip this rule
- /(^|[^\\]+)\\\*(?=.+)/g,
-
- // '*.js' matches '.js'
- // '*.js' doesn't match 'abc'
- (_, p1) => `${p1}[^\\/]*`
- ],
-
- [
- // unescape, revert step 3 except for back slash
- // For example, if a user escape a '\\*',
- // after step 3, the result will be '\\\\\\*'
- /\\\\\\(?=[$.|*+(){^])/g,
- () => ESCAPE
- ],
-
- [
- // '\\\\' -> '\\'
- /\\\\/g,
- () => ESCAPE
- ],
-
- [
- // > The range notation, e.g. [a-zA-Z],
- // > can be used to match one of the characters in a range.
-
- // `\` is escaped by step 3
- /(\\)?\[([^\]/]*?)(\\*)($|\])/g,
- (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE
- // '\\[bar]' -> '\\\\[bar\\]'
- ? `\\[${range}${cleanRangeBackSlash(endEscape)}${close}`
- : close === ']'
- ? endEscape.length % 2 === 0
- // A normal case, and it is a range notation
- // '[bar]'
- // '[bar\\\\]'
- ? `[${sanitizeRange(range)}${endEscape}]`
- // Invalid range notaton
- // '[bar\\]' -> '[bar\\\\]'
- : '[]'
- : '[]'
- ],
-
- // ending
- [
- // 'js' will not match 'js.'
- // 'ab' will not match 'abc'
- /(?:[^*])$/,
-
- // WTF!
- // https://git-scm.com/docs/gitignore
- // changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1)
- // which re-fixes #24, #38
-
- // > If there is a separator at the end of the pattern then the pattern
- // > will only match directories, otherwise the pattern can match both
- // > files and directories.
-
- // 'js*' will not match 'a.js'
- // 'js/' will not match 'a.js'
- // 'js' will match 'a.js' and 'a.js/'
- match => /\/$/.test(match)
- // foo/ will not match 'foo'
- ? `${match}$`
- // foo matches 'foo' and 'foo/'
- : `${match}(?=$|\\/$)`
- ],
-
- // trailing wildcard
- [
- /(\^|\\\/)?\\\*$/,
- (_, p1) => {
- const prefix = p1
- // '\^':
- // '/*' does not match EMPTY
- // '/*' does not match everything
-
- // '\\\/':
- // 'abc/*' does not match 'abc/'
- ? `${p1}[^/]+`
-
- // 'a*' matches 'a'
- // 'a*' matches 'aa'
- : '[^/]*'
-
- return `${prefix}(?=$|\\/$)`
- }
- ],
-]
-
-// A simple cache, because an ignore rule only has only one certain meaning
-const regexCache = Object.create(null)
-
-// @param {pattern}
-const makeRegex = (pattern, negative, ignorecase) => {
- const r = regexCache[pattern]
- if (r) {
- return r
- }
-
- // const replacers = negative
- // ? NEGATIVE_REPLACERS
- // : POSITIVE_REPLACERS
-
- const source = REPLACERS.reduce(
- (prev, current) => prev.replace(current[0], current[1].bind(pattern)),
- pattern
- )
-
- return regexCache[pattern] = ignorecase
- ? new RegExp(source, 'i')
- : new RegExp(source)
-}
-
-const isString = subject => typeof subject === 'string'
-
-// > A blank line matches no files, so it can serve as a separator for readability.
-const checkPattern = pattern => pattern
- && isString(pattern)
- && !REGEX_TEST_BLANK_LINE.test(pattern)
-
- // > A line starting with # serves as a comment.
- && pattern.indexOf('#') !== 0
-
-const splitPattern = pattern => pattern.split(REGEX_SPLITALL_CRLF)
-
-class IgnoreRule {
- constructor (
- origin,
- pattern,
- negative,
- regex
- ) {
- this.origin = origin
- this.pattern = pattern
- this.negative = negative
- this.regex = regex
- }
-}
-
-const createRule = (pattern, ignorecase) => {
- const origin = pattern
- let negative = false
-
- // > An optional prefix "!" which negates the pattern;
- if (pattern.indexOf('!') === 0) {
- negative = true
- pattern = pattern.substr(1)
- }
-
- pattern = pattern
- // > Put a backslash ("\") in front of the first "!" for patterns that
- // > begin with a literal "!", for example, `"\!important!.txt"`.
- .replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, '!')
- // > Put a backslash ("\") in front of the first hash for patterns that
- // > begin with a hash.
- .replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, '#')
-
- const regex = makeRegex(pattern, negative, ignorecase)
-
- return new IgnoreRule(
- origin,
- pattern,
- negative,
- regex
- )
-}
-
-const throwError = (message, Ctor) => {
- throw new Ctor(message)
-}
-
-const checkPath = (path, originalPath, doThrow) => {
- if (!isString(path)) {
- return doThrow(
- `path must be a string, but got \`${originalPath}\``,
- TypeError
- )
- }
-
- // We don't know if we should ignore EMPTY, so throw
- if (!path) {
- return doThrow(`path must not be empty`, TypeError)
- }
-
- // Check if it is a relative path
- if (checkPath.isNotRelative(path)) {
- const r = '`path.relative()`d'
- return doThrow(
- `path should be a ${r} string, but got "${originalPath}"`,
- RangeError
- )
- }
-
- return true
-}
-
-const isNotRelative = path => REGEX_TEST_INVALID_PATH.test(path)
-
-checkPath.isNotRelative = isNotRelative
-checkPath.convert = p => p
-
-class Ignore {
- constructor ({
- ignorecase = true
- } = {}) {
- this._rules = []
- this._ignorecase = ignorecase
- define(this, KEY_IGNORE, true)
- this._initCache()
- }
-
- _initCache () {
- this._ignoreCache = Object.create(null)
- this._testCache = Object.create(null)
- }
-
- _addPattern (pattern) {
- // #32
- if (pattern && pattern[KEY_IGNORE]) {
- this._rules = this._rules.concat(pattern._rules)
- this._added = true
- return
- }
-
- if (checkPattern(pattern)) {
- const rule = createRule(pattern, this._ignorecase)
- this._added = true
- this._rules.push(rule)
- }
- }
-
- // @param {Array<string> | string | Ignore} pattern
- add (pattern) {
- this._added = false
-
- makeArray(
- isString(pattern)
- ? splitPattern(pattern)
- : pattern
- ).forEach(this._addPattern, this)
-
- // Some rules have just added to the ignore,
- // making the behavior changed.
- if (this._added) {
- this._initCache()
- }
-
- return this
- }
-
- // legacy
- addPattern (pattern) {
- return this.add(pattern)
- }
-
- // | ignored : unignored
- // negative | 0:0 | 0:1 | 1:0 | 1:1
- // -------- | ------- | ------- | ------- | --------
- // 0 | TEST | TEST | SKIP | X
- // 1 | TESTIF | SKIP | TEST | X
-
- // - SKIP: always skip
- // - TEST: always test
- // - TESTIF: only test if checkUnignored
- // - X: that never happen
-
- // @param {boolean} whether should check if the path is unignored,
- // setting `checkUnignored` to `false` could reduce additional
- // path matching.
-
- // @returns {TestResult} true if a file is ignored
- _testOne (path, checkUnignored) {
- let ignored = false
- let unignored = false
-
- this._rules.forEach(rule => {
- const {negative} = rule
- if (
- unignored === negative && ignored !== unignored
- || negative && !ignored && !unignored && !checkUnignored
- ) {
- return
- }
-
- const matched = rule.regex.test(path)
-
- if (matched) {
- ignored = !negative
- unignored = negative
- }
- })
-
- return {
- ignored,
- unignored
- }
- }
-
- // @returns {TestResult}
- _test (originalPath, cache, checkUnignored, slices) {
- const path = originalPath
- // Supports nullable path
- && checkPath.convert(originalPath)
-
- checkPath(path, originalPath, throwError)
-
- return this._t(path, cache, checkUnignored, slices)
- }
-
- _t (path, cache, checkUnignored, slices) {
- if (path in cache) {
- return cache[path]
- }
-
- if (!slices) {
- // path/to/a.js
- // ['path', 'to', 'a.js']
- slices = path.split(SLASH)
- }
-
- slices.pop()
-
- // If the path has no parent directory, just test it
- if (!slices.length) {
- return cache[path] = this._testOne(path, checkUnignored)
- }
-
- const parent = this._t(
- slices.join(SLASH) + SLASH,
- cache,
- checkUnignored,
- slices
- )
-
- // If the path contains a parent directory, check the parent first
- return cache[path] = parent.ignored
- // > It is not possible to re-include a file if a parent directory of
- // > that file is excluded.
- ? parent
- : this._testOne(path, checkUnignored)
- }
-
- ignores (path) {
- return this._test(path, this._ignoreCache, false).ignored
- }
-
- createFilter () {
- return path => !this.ignores(path)
- }
-
- filter (paths) {
- return makeArray(paths).filter(this.createFilter())
- }
-
- // @returns {TestResult}
- test (path) {
- return this._test(path, this._testCache, true)
- }
-}
-
-const factory = options => new Ignore(options)
-
-const returnFalse = () => false
-
-const isPathValid = path =>
- checkPath(path && checkPath.convert(path), path, returnFalse)
-
-factory.isPathValid = isPathValid
-
-// Fixes typescript
-factory.default = factory
-
-module.exports = factory
-
-// Windows
-// --------------------------------------------------------------
-/* istanbul ignore if */
-if (
- // Detect `process` so that it can run in browsers.
- typeof process !== 'undefined'
- && (
- process.env && process.env.IGNORE_TEST_WIN32
- || process.platform === 'win32'
- )
-) {
- /* eslint no-control-regex: "off" */
- const makePosix = str => /^\\\\\?\\/.test(str)
- || /["<>|\u0000-\u001F]+/u.test(str)
- ? str
- : str.replace(/\\/g, '/')
-
- checkPath.convert = makePosix
-
- // 'C:\\foo' <- 'C:\\foo' has been converted to 'C:/'
- // 'd:\\foo'
- const REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i
- checkPath.isNotRelative = path =>
- REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path)
- || isNotRelative(path)
-}
diff --git a/node_modules/ignore/legacy.js b/node_modules/ignore/legacy.js
deleted file mode 100644
index 176bf62..0000000
--- a/node_modules/ignore/legacy.js
+++ /dev/null
@@ -1,495 +0,0 @@
-"use strict";
-
-function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
-
-function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-// A simple implementation of make-array
-function makeArray(subject) {
- return Array.isArray(subject) ? subject : [subject];
-}
-
-var EMPTY = '';
-var SPACE = ' ';
-var ESCAPE = '\\';
-var REGEX_TEST_BLANK_LINE = /^\s+$/;
-var REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/;
-var REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/;
-var REGEX_SPLITALL_CRLF = /\r?\n/g; // /foo,
-// ./foo,
-// ../foo,
-// .
-// ..
-
-var REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/;
-var SLASH = '/';
-var KEY_IGNORE = typeof Symbol !== 'undefined' ? Symbol["for"]('node-ignore')
-/* istanbul ignore next */
-: 'node-ignore';
-
-var define = function define(object, key, value) {
- return Object.defineProperty(object, key, {
- value: value
- });
-};
-
-var REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g; // Sanitize the range of a regular expression
-// The cases are complicated, see test cases for details
-
-var sanitizeRange = function sanitizeRange(range) {
- return range.replace(REGEX_REGEXP_RANGE, function (match, from, to) {
- return from.charCodeAt(0) <= to.charCodeAt(0) ? match // Invalid range (out of order) which is ok for gitignore rules but
- // fatal for JavaScript regular expression, so eliminate it.
- : EMPTY;
- });
-}; // See fixtures #59
-
-
-var cleanRangeBackSlash = function cleanRangeBackSlash(slashes) {
- var length = slashes.length;
- return slashes.slice(0, length - length % 2);
-}; // > If the pattern ends with a slash,
-// > it is removed for the purpose of the following description,
-// > but it would only find a match with a directory.
-// > In other words, foo/ will match a directory foo and paths underneath it,
-// > but will not match a regular file or a symbolic link foo
-// > (this is consistent with the way how pathspec works in general in Git).
-// '`foo/`' will not match regular file '`foo`' or symbolic link '`foo`'
-// -> ignore-rules will not deal with it, because it costs extra `fs.stat` call
-// you could use option `mark: true` with `glob`
-// '`foo/`' should not continue with the '`..`'
-
-
-var REPLACERS = [// > Trailing spaces are ignored unless they are quoted with backslash ("\")
-[// (a\ ) -> (a )
-// (a ) -> (a)
-// (a \ ) -> (a )
-/\\?\s+$/, function (match) {
- return match.indexOf('\\') === 0 ? SPACE : EMPTY;
-}], // replace (\ ) with ' '
-[/\\\s/g, function () {
- return SPACE;
-}], // Escape metacharacters
-// which is written down by users but means special for regular expressions.
-// > There are 12 characters with special meanings:
-// > - the backslash \,
-// > - the caret ^,
-// > - the dollar sign $,
-// > - the period or dot .,
-// > - the vertical bar or pipe symbol |,
-// > - the question mark ?,
-// > - the asterisk or star *,
-// > - the plus sign +,
-// > - the opening parenthesis (,
-// > - the closing parenthesis ),
-// > - and the opening square bracket [,
-// > - the opening curly brace {,
-// > These special characters are often called "metacharacters".
-[/[\\$.|*+(){^]/g, function (match) {
- return "\\".concat(match);
-}], [// > a question mark (?) matches a single character
-/(?!\\)\?/g, function () {
- return '[^/]';
-}], // leading slash
-[// > A leading slash matches the beginning of the pathname.
-// > For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c".
-// A leading slash matches the beginning of the pathname
-/^\//, function () {
- return '^';
-}], // replace special metacharacter slash after the leading slash
-[/\//g, function () {
- return '\\/';
-}], [// > A leading "**" followed by a slash means match in all directories.
-// > For example, "**/foo" matches file or directory "foo" anywhere,
-// > the same as pattern "foo".
-// > "**/foo/bar" matches file or directory "bar" anywhere that is directly
-// > under directory "foo".
-// Notice that the '*'s have been replaced as '\\*'
-/^\^*\\\*\\\*\\\//, // '**/foo' <-> 'foo'
-function () {
- return '^(?:.*\\/)?';
-}], // starting
-[// there will be no leading '/'
-// (which has been replaced by section "leading slash")
-// If starts with '**', adding a '^' to the regular expression also works
-/^(?=[^^])/, function startingReplacer() {
- // If has a slash `/` at the beginning or middle
- return !/\/(?!$)/.test(this) // > Prior to 2.22.1
- // > If the pattern does not contain a slash /,
- // > Git treats it as a shell glob pattern
- // Actually, if there is only a trailing slash,
- // git also treats it as a shell glob pattern
- // After 2.22.1 (compatible but clearer)
- // > If there is a separator at the beginning or middle (or both)
- // > of the pattern, then the pattern is relative to the directory
- // > level of the particular .gitignore file itself.
- // > Otherwise the pattern may also match at any level below
- // > the .gitignore level.
- ? '(?:^|\\/)' // > Otherwise, Git treats the pattern as a shell glob suitable for
- // > consumption by fnmatch(3)
- : '^';
-}], // two globstars
-[// Use lookahead assertions so that we could match more than one `'/**'`
-/\\\/\\\*\\\*(?=\\\/|$)/g, // Zero, one or several directories
-// should not use '*', or it will be replaced by the next replacer
-// Check if it is not the last `'/**'`
-function (_, index, str) {
- return index + 6 < str.length // case: /**/
- // > A slash followed by two consecutive asterisks then a slash matches
- // > zero or more directories.
- // > For example, "a/**/b" matches "a/b", "a/x/b", "a/x/y/b" and so on.
- // '/**/'
- ? '(?:\\/[^\\/]+)*' // case: /**
- // > A trailing `"/**"` matches everything inside.
- // #21: everything inside but it should not include the current folder
- : '\\/.+';
-}], // intermediate wildcards
-[// Never replace escaped '*'
-// ignore rule '\*' will match the path '*'
-// 'abc.*/' -> go
-// 'abc.*' -> skip this rule
-/(^|[^\\]+)\\\*(?=.+)/g, // '*.js' matches '.js'
-// '*.js' doesn't match 'abc'
-function (_, p1) {
- return "".concat(p1, "[^\\/]*");
-}], [// unescape, revert step 3 except for back slash
-// For example, if a user escape a '\\*',
-// after step 3, the result will be '\\\\\\*'
-/\\\\\\(?=[$.|*+(){^])/g, function () {
- return ESCAPE;
-}], [// '\\\\' -> '\\'
-/\\\\/g, function () {
- return ESCAPE;
-}], [// > The range notation, e.g. [a-zA-Z],
-// > can be used to match one of the characters in a range.
-// `\` is escaped by step 3
-/(\\)?\[([^\]/]*?)(\\*)($|\])/g, function (match, leadEscape, range, endEscape, close) {
- return leadEscape === ESCAPE // '\\[bar]' -> '\\\\[bar\\]'
- ? "\\[".concat(range).concat(cleanRangeBackSlash(endEscape)).concat(close) : close === ']' ? endEscape.length % 2 === 0 // A normal case, and it is a range notation
- // '[bar]'
- // '[bar\\\\]'
- ? "[".concat(sanitizeRange(range)).concat(endEscape, "]") // Invalid range notaton
- // '[bar\\]' -> '[bar\\\\]'
- : '[]' : '[]';
-}], // ending
-[// 'js' will not match 'js.'
-// 'ab' will not match 'abc'
-/(?:[^*])$/, // WTF!
-// https://git-scm.com/docs/gitignore
-// changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1)
-// which re-fixes #24, #38
-// > If there is a separator at the end of the pattern then the pattern
-// > will only match directories, otherwise the pattern can match both
-// > files and directories.
-// 'js*' will not match 'a.js'
-// 'js/' will not match 'a.js'
-// 'js' will match 'a.js' and 'a.js/'
-function (match) {
- return /\/$/.test(match) // foo/ will not match 'foo'
- ? "".concat(match, "$") // foo matches 'foo' and 'foo/'
- : "".concat(match, "(?=$|\\/$)");
-}], // trailing wildcard
-[/(\^|\\\/)?\\\*$/, function (_, p1) {
- var prefix = p1 // '\^':
- // '/*' does not match EMPTY
- // '/*' does not match everything
- // '\\\/':
- // 'abc/*' does not match 'abc/'
- ? "".concat(p1, "[^/]+") // 'a*' matches 'a'
- // 'a*' matches 'aa'
- : '[^/]*';
- return "".concat(prefix, "(?=$|\\/$)");
-}]]; // A simple cache, because an ignore rule only has only one certain meaning
-
-var regexCache = Object.create(null); // @param {pattern}
-
-var makeRegex = function makeRegex(pattern, negative, ignorecase) {
- var r = regexCache[pattern];
-
- if (r) {
- return r;
- } // const replacers = negative
- // ? NEGATIVE_REPLACERS
- // : POSITIVE_REPLACERS
-
-
- var source = REPLACERS.reduce(function (prev, current) {
- return prev.replace(current[0], current[1].bind(pattern));
- }, pattern);
- return regexCache[pattern] = ignorecase ? new RegExp(source, 'i') : new RegExp(source);
-};
-
-var isString = function isString(subject) {
- return typeof subject === 'string';
-}; // > A blank line matches no files, so it can serve as a separator for readability.
-
-
-var checkPattern = function checkPattern(pattern) {
- return pattern && isString(pattern) && !REGEX_TEST_BLANK_LINE.test(pattern) // > A line starting with # serves as a comment.
- && pattern.indexOf('#') !== 0;
-};
-
-var splitPattern = function splitPattern(pattern) {
- return pattern.split(REGEX_SPLITALL_CRLF);
-};
-
-var IgnoreRule = function IgnoreRule(origin, pattern, negative, regex) {
- _classCallCheck(this, IgnoreRule);
-
- this.origin = origin;
- this.pattern = pattern;
- this.negative = negative;
- this.regex = regex;
-};
-
-var createRule = function createRule(pattern, ignorecase) {
- var origin = pattern;
- var negative = false; // > An optional prefix "!" which negates the pattern;
-
- if (pattern.indexOf('!') === 0) {
- negative = true;
- pattern = pattern.substr(1);
- }
-
- pattern = pattern // > Put a backslash ("\") in front of the first "!" for patterns that
- // > begin with a literal "!", for example, `"\!important!.txt"`.
- .replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, '!') // > Put a backslash ("\") in front of the first hash for patterns that
- // > begin with a hash.
- .replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, '#');
- var regex = makeRegex(pattern, negative, ignorecase);
- return new IgnoreRule(origin, pattern, negative, regex);
-};
-
-var throwError = function throwError(message, Ctor) {
- throw new Ctor(message);
-};
-
-var checkPath = function checkPath(path, originalPath, doThrow) {
- if (!isString(path)) {
- return doThrow("path must be a string, but got `".concat(originalPath, "`"), TypeError);
- } // We don't know if we should ignore EMPTY, so throw
-
-
- if (!path) {
- return doThrow("path must not be empty", TypeError);
- } // Check if it is a relative path
-
-
- if (checkPath.isNotRelative(path)) {
- var r = '`path.relative()`d';
- return doThrow("path should be a ".concat(r, " string, but got \"").concat(originalPath, "\""), RangeError);
- }
-
- return true;
-};
-
-var isNotRelative = function isNotRelative(path) {
- return REGEX_TEST_INVALID_PATH.test(path);
-};
-
-checkPath.isNotRelative = isNotRelative;
-
-checkPath.convert = function (p) {
- return p;
-};
-
-var Ignore = /*#__PURE__*/function () {
- function Ignore() {
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref$ignorecase = _ref.ignorecase,
- ignorecase = _ref$ignorecase === void 0 ? true : _ref$ignorecase;
-
- _classCallCheck(this, Ignore);
-
- this._rules = [];
- this._ignorecase = ignorecase;
- define(this, KEY_IGNORE, true);
-
- this._initCache();
- }
-
- _createClass(Ignore, [{
- key: "_initCache",
- value: function _initCache() {
- this._ignoreCache = Object.create(null);
- this._testCache = Object.create(null);
- }
- }, {
- key: "_addPattern",
- value: function _addPattern(pattern) {
- // #32
- if (pattern && pattern[KEY_IGNORE]) {
- this._rules = this._rules.concat(pattern._rules);
- this._added = true;
- return;
- }
-
- if (checkPattern(pattern)) {
- var rule = createRule(pattern, this._ignorecase);
- this._added = true;
-
- this._rules.push(rule);
- }
- } // @param {Array<string> | string | Ignore} pattern
-
- }, {
- key: "add",
- value: function add(pattern) {
- this._added = false;
- makeArray(isString(pattern) ? splitPattern(pattern) : pattern).forEach(this._addPattern, this); // Some rules have just added to the ignore,
- // making the behavior changed.
-
- if (this._added) {
- this._initCache();
- }
-
- return this;
- } // legacy
-
- }, {
- key: "addPattern",
- value: function addPattern(pattern) {
- return this.add(pattern);
- } // | ignored : unignored
- // negative | 0:0 | 0:1 | 1:0 | 1:1
- // -------- | ------- | ------- | ------- | --------
- // 0 | TEST | TEST | SKIP | X
- // 1 | TESTIF | SKIP | TEST | X
- // - SKIP: always skip
- // - TEST: always test
- // - TESTIF: only test if checkUnignored
- // - X: that never happen
- // @param {boolean} whether should check if the path is unignored,
- // setting `checkUnignored` to `false` could reduce additional
- // path matching.
- // @returns {TestResult} true if a file is ignored
-
- }, {
- key: "_testOne",
- value: function _testOne(path, checkUnignored) {
- var ignored = false;
- var unignored = false;
-
- this._rules.forEach(function (rule) {
- var negative = rule.negative;
-
- if (unignored === negative && ignored !== unignored || negative && !ignored && !unignored && !checkUnignored) {
- return;
- }
-
- var matched = rule.regex.test(path);
-
- if (matched) {
- ignored = !negative;
- unignored = negative;
- }
- });
-
- return {
- ignored: ignored,
- unignored: unignored
- };
- } // @returns {TestResult}
-
- }, {
- key: "_test",
- value: function _test(originalPath, cache, checkUnignored, slices) {
- var path = originalPath // Supports nullable path
- && checkPath.convert(originalPath);
- checkPath(path, originalPath, throwError);
- return this._t(path, cache, checkUnignored, slices);
- }
- }, {
- key: "_t",
- value: function _t(path, cache, checkUnignored, slices) {
- if (path in cache) {
- return cache[path];
- }
-
- if (!slices) {
- // path/to/a.js
- // ['path', 'to', 'a.js']
- slices = path.split(SLASH);
- }
-
- slices.pop(); // If the path has no parent directory, just test it
-
- if (!slices.length) {
- return cache[path] = this._testOne(path, checkUnignored);
- }
-
- var parent = this._t(slices.join(SLASH) + SLASH, cache, checkUnignored, slices); // If the path contains a parent directory, check the parent first
-
-
- return cache[path] = parent.ignored // > It is not possible to re-include a file if a parent directory of
- // > that file is excluded.
- ? parent : this._testOne(path, checkUnignored);
- }
- }, {
- key: "ignores",
- value: function ignores(path) {
- return this._test(path, this._ignoreCache, false).ignored;
- }
- }, {
- key: "createFilter",
- value: function createFilter() {
- var _this = this;
-
- return function (path) {
- return !_this.ignores(path);
- };
- }
- }, {
- key: "filter",
- value: function filter(paths) {
- return makeArray(paths).filter(this.createFilter());
- } // @returns {TestResult}
-
- }, {
- key: "test",
- value: function test(path) {
- return this._test(path, this._testCache, true);
- }
- }]);
-
- return Ignore;
-}();
-
-var factory = function factory(options) {
- return new Ignore(options);
-};
-
-var returnFalse = function returnFalse() {
- return false;
-};
-
-var isPathValid = function isPathValid(path) {
- return checkPath(path && checkPath.convert(path), path, returnFalse);
-};
-
-factory.isPathValid = isPathValid; // Fixes typescript
-
-factory["default"] = factory;
-module.exports = factory; // Windows
-// --------------------------------------------------------------
-
-/* istanbul ignore if */
-
-if ( // Detect `process` so that it can run in browsers.
-typeof process !== 'undefined' && (process.env && process.env.IGNORE_TEST_WIN32 || process.platform === 'win32')) {
- /* eslint no-control-regex: "off" */
- var makePosix = function makePosix(str) {
- return /^\\\\\?\\/.test(str) || /[\0-\x1F"<>\|]+/.test(str) ? str : str.replace(/\\/g, '/');
- };
-
- checkPath.convert = makePosix; // 'C:\\foo' <- 'C:\\foo' has been converted to 'C:/'
- // 'd:\\foo'
-
- var REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i;
-
- checkPath.isNotRelative = function (path) {
- return REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path) || isNotRelative(path);
- };
-}
diff --git a/node_modules/ignore/package.json b/node_modules/ignore/package.json
deleted file mode 100644
index 9654f9b..0000000
--- a/node_modules/ignore/package.json
+++ /dev/null
@@ -1,98 +0,0 @@
-{
- "_from": "ignore@^5.1.4",
- "_id": "ignore@5.1.8",
- "_inBundle": false,
- "_integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==",
- "_location": "/ignore",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "ignore@^5.1.4",
- "name": "ignore",
- "escapedName": "ignore",
- "rawSpec": "^5.1.4",
- "saveSpec": null,
- "fetchSpec": "^5.1.4"
- },
- "_requiredBy": [
- "/globby"
- ],
- "_resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
- "_shasum": "f150a8b50a34289b33e22f5889abd4d8016f0e57",
- "_spec": "ignore@^5.1.4",
- "_where": "/home/pruss/Dev/3-minute-website/node_modules/globby",
- "author": {
- "name": "kael"
- },
- "bugs": {
- "url": "https://github.com/kaelzhang/node-ignore/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Ignore is a manager and filter for .gitignore rules, the one used by eslint, gitbook and many others.",
- "devDependencies": {
- "@babel/cli": "^7.8.4",
- "@babel/core": "^7.9.6",
- "@babel/preset-env": "^7.9.6",
- "codecov": "^3.7.0",
- "debug": "^4.1.1",
- "eslint": "^7.0.0",
- "eslint-config-ostai": "^3.0.0",
- "eslint-plugin-import": "^2.20.2",
- "mkdirp": "^1.0.4",
- "pre-suf": "^1.1.1",
- "rimraf": "^3.0.2",
- "spawn-sync": "^2.0.0",
- "tap": "^14.10.7",
- "tmp": "0.2.1",
- "typescript": "^3.9.3"
- },
- "engines": {
- "node": ">= 4"
- },
- "files": [
- "legacy.js",
- "index.js",
- "index.d.ts",
- "LICENSE-MIT"
- ],
- "homepage": "https://github.com/kaelzhang/node-ignore#readme",
- "keywords": [
- "ignore",
- ".gitignore",
- "gitignore",
- "npmignore",
- "rules",
- "manager",
- "filter",
- "regexp",
- "regex",
- "fnmatch",
- "glob",
- "asterisks",
- "regular-expression"
- ],
- "license": "MIT",
- "name": "ignore",
- "repository": {
- "type": "git",
- "url": "git+ssh://git@github.com/kaelzhang/node-ignore.git"
- },
- "scripts": {
- "build": "babel -o legacy.js index.js",
- "posttest": "tap --coverage-report=html && codecov",
- "prepublishOnly": "npm run build",
- "test": "npm run test:only",
- "test:cases": "tap test/*.js --coverage",
- "test:git": "tap test/git-check-ignore.js",
- "test:ignore": "tap test/ignore.js",
- "test:lint": "eslint .",
- "test:only": "npm run test:lint && npm run test:tsc && npm run test:ts && npm run test:cases",
- "test:others": "tap test/others.js",
- "test:ts": "node ./test/ts/simple.js",
- "test:tsc": "tsc ./test/ts/simple.ts --lib ES6",
- "test:win32": "IGNORE_TEST_WIN32=1 npm run test"
- },
- "version": "5.1.8"
-}