view-ignored 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -18
- package/out/browser_scan.js +5 -5
- package/out/opendir.d.ts +1 -1
- package/out/opendir.js +15 -11
- package/out/patterns/extractor.d.ts +1 -8
- package/out/patterns/gitignore.d.ts +3 -3
- package/out/patterns/gitignore.js +8 -8
- package/out/patterns/ignores.d.ts +3 -3
- package/out/patterns/index.d.ts +3 -4
- package/out/patterns/index.js +3 -4
- package/out/patterns/initState.d.ts +7 -0
- package/out/patterns/jsrjson.d.ts +2 -2
- package/out/patterns/jsrjson.js +25 -15
- package/out/patterns/matcherContext.d.ts +2 -2
- package/out/patterns/matcherContextPatch.js +7 -6
- package/out/patterns/matcherStream.d.ts +2 -2
- package/out/patterns/matcherStream.js +5 -5
- package/out/patterns/packagejson.d.ts +2 -2
- package/out/patterns/packagejson.js +7 -7
- package/out/patterns/patternCompile.d.ts +22 -0
- package/out/patterns/{stringCompile.js → patternCompile.js} +2 -2
- package/out/patterns/{pattern.d.ts → patternList.d.ts} +11 -11
- package/out/patterns/patternList.js +21 -0
- package/out/patterns/resolveSources.d.ts +5 -5
- package/out/patterns/resolveSources.js +20 -27
- package/out/patterns/rule.d.ts +115 -0
- package/out/patterns/rule.js +97 -0
- package/out/patterns/source.d.ts +9 -8
- package/out/patterns/source.js +5 -2
- package/out/targets/bun.js +8 -13
- package/out/targets/deno.js +6 -11
- package/out/targets/git.js +6 -11
- package/out/targets/jsr.js +6 -11
- package/out/targets/npm.js +8 -13
- package/out/targets/target.d.ts +14 -0
- package/out/targets/vsce.js +6 -11
- package/out/targets/yarn.js +8 -13
- package/out/targets/yarnClassic.js +7 -12
- package/out/unixify.js +7 -5
- package/out/walk.js +2 -2
- package/package.json +3 -3
- package/out/patterns/pattern.js +0 -21
- package/out/patterns/patternMatcher.d.ts +0 -23
- package/out/patterns/patternMatcher.js +0 -1
- package/out/patterns/signedPattern.d.ts +0 -97
- package/out/patterns/signedPattern.js +0 -102
- package/out/patterns/stringCompile.d.ts +0 -22
package/out/targets/yarn.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type } from "arktype";
|
|
2
|
-
import {
|
|
2
|
+
import { ruleTest, ruleCompile, extractPackageJsonNocase, extractGitignoreNocase, } from "../patterns/index.js";
|
|
3
3
|
import { join, unixify } from "../unixify.js";
|
|
4
4
|
import { npmManifestParse } from "./npmManifest.js";
|
|
5
5
|
const extractors = [
|
|
@@ -23,7 +23,7 @@ const internalInclude = {
|
|
|
23
23
|
};
|
|
24
24
|
const internal = [
|
|
25
25
|
internalInclude,
|
|
26
|
-
|
|
26
|
+
ruleCompile({
|
|
27
27
|
excludes: true,
|
|
28
28
|
pattern: [
|
|
29
29
|
// https://github.com/yarnpkg/berry/blob/master/packages/plugin-pack/sources/packUtils.ts#L26
|
|
@@ -39,7 +39,7 @@ const internal = [
|
|
|
39
39
|
],
|
|
40
40
|
compiled: null,
|
|
41
41
|
}),
|
|
42
|
-
|
|
42
|
+
ruleCompile({
|
|
43
43
|
excludes: false,
|
|
44
44
|
pattern: [
|
|
45
45
|
// https://github.com/yarnpkg/berry/blob/master/packages/plugin-pack/sources/packUtils.ts#L10
|
|
@@ -58,6 +58,9 @@ const internal = [
|
|
|
58
58
|
* @since 0.6.0
|
|
59
59
|
*/
|
|
60
60
|
export const Yarn = {
|
|
61
|
+
internalRules: internal,
|
|
62
|
+
extractors,
|
|
63
|
+
root: ".",
|
|
61
64
|
async init({ fs, cwd }) {
|
|
62
65
|
let content;
|
|
63
66
|
const normalCwd = unixify(cwd);
|
|
@@ -90,15 +93,7 @@ export const Yarn = {
|
|
|
90
93
|
Object.values(dist.bin).forEach((binPath) => set.add(normal(binPath)));
|
|
91
94
|
}
|
|
92
95
|
internalInclude.pattern = Array.from(set);
|
|
93
|
-
|
|
94
|
-
},
|
|
95
|
-
extractors,
|
|
96
|
-
ignores(o) {
|
|
97
|
-
return signedPatternIgnores({
|
|
98
|
-
...o,
|
|
99
|
-
internal,
|
|
100
|
-
root: ".",
|
|
101
|
-
target: Yarn,
|
|
102
|
-
});
|
|
96
|
+
ruleCompile(internalInclude, { nocase: true });
|
|
103
97
|
},
|
|
98
|
+
ignores: ruleTest,
|
|
104
99
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type } from "arktype";
|
|
2
|
-
import {
|
|
2
|
+
import { ruleTest, ruleCompile, extractPackageJsonNocase, extractGitignoreNocase, } from "../patterns/index.js";
|
|
3
3
|
import { unixify } from "../unixify.js";
|
|
4
4
|
import { npmManifestParse } from "./npmManifest.js";
|
|
5
5
|
const extractors = [
|
|
@@ -21,7 +21,7 @@ const extractors = [
|
|
|
21
21
|
},
|
|
22
22
|
];
|
|
23
23
|
const internal = [
|
|
24
|
-
|
|
24
|
+
ruleCompile({
|
|
25
25
|
excludes: true,
|
|
26
26
|
pattern: [
|
|
27
27
|
// https://github.com/yarnpkg/berry/blob/master/packages/plugin-pack/sources/packUtils.ts#L26
|
|
@@ -55,7 +55,7 @@ const internal = [
|
|
|
55
55
|
],
|
|
56
56
|
compiled: null,
|
|
57
57
|
}, { nocase: true }),
|
|
58
|
-
|
|
58
|
+
ruleCompile({
|
|
59
59
|
excludes: false,
|
|
60
60
|
pattern: [
|
|
61
61
|
// https://github.com/yarnpkg/berry/blob/master/packages/plugin-pack/sources/packUtils.ts#L10
|
|
@@ -74,6 +74,9 @@ const internal = [
|
|
|
74
74
|
* @since 0.8.0
|
|
75
75
|
*/
|
|
76
76
|
export const YarnClassic = {
|
|
77
|
+
internalRules: internal,
|
|
78
|
+
extractors,
|
|
79
|
+
root: ".",
|
|
77
80
|
async init({ fs, cwd }) {
|
|
78
81
|
let content;
|
|
79
82
|
const normalCwd = unixify(cwd);
|
|
@@ -88,13 +91,5 @@ export const YarnClassic = {
|
|
|
88
91
|
throw new Error("Invalid 'package.json': " + dist.summary, { cause: dist });
|
|
89
92
|
}
|
|
90
93
|
},
|
|
91
|
-
|
|
92
|
-
ignores(o) {
|
|
93
|
-
return signedPatternIgnores({
|
|
94
|
-
...o,
|
|
95
|
-
internal,
|
|
96
|
-
root: ".",
|
|
97
|
-
target: YarnClassic,
|
|
98
|
-
});
|
|
99
|
-
},
|
|
94
|
+
ignores: ruleTest,
|
|
100
95
|
};
|
package/out/unixify.js
CHANGED
|
@@ -13,12 +13,14 @@ export function join(from, p2) {
|
|
|
13
13
|
if (p2 === "." || p2 === "./") {
|
|
14
14
|
return from;
|
|
15
15
|
}
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
let start = 0;
|
|
17
|
+
if (p2.startsWith("./")) {
|
|
18
|
+
start = 2;
|
|
18
19
|
}
|
|
19
|
-
|
|
20
|
-
from += "/"
|
|
20
|
+
if (!from.endsWith("/")) {
|
|
21
|
+
from += "/";
|
|
21
22
|
}
|
|
23
|
+
from += p2.substring(start);
|
|
22
24
|
return from;
|
|
23
25
|
}
|
|
24
26
|
export function relative(base, to) {
|
|
@@ -32,5 +34,5 @@ export function base(path) {
|
|
|
32
34
|
return path.substring(path.lastIndexOf("/") + 1);
|
|
33
35
|
}
|
|
34
36
|
function strip(path) {
|
|
35
|
-
return path.replaceAll("\\", "/").replace(
|
|
37
|
+
return path.replaceAll("\\", "/").replace(/^[a-zA-Z]:/, "");
|
|
36
38
|
}
|
package/out/walk.js
CHANGED
|
@@ -17,7 +17,7 @@ export async function walkIncludes(options) {
|
|
|
17
17
|
const { depth, depthSlash } = getDepth(path, maxDepth);
|
|
18
18
|
if (depth > maxDepth) {
|
|
19
19
|
const failedPrev = ctx.failed.length;
|
|
20
|
-
let match = await target.ignores({ fs, cwd, entry: path, ctx, signal });
|
|
20
|
+
let match = await target.ignores({ fs, cwd, entry: path, ctx, signal, target });
|
|
21
21
|
if (invert) {
|
|
22
22
|
match.ignored = !match.ignored;
|
|
23
23
|
}
|
|
@@ -45,7 +45,7 @@ export async function walkIncludes(options) {
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
const failedPrev = ctx.failed.length;
|
|
48
|
-
let match = await target.ignores({ fs, cwd, entry: path, ctx, signal });
|
|
48
|
+
let match = await target.ignores({ fs, cwd, entry: path, ctx, signal, target });
|
|
49
49
|
if (invert) {
|
|
50
50
|
match.ignored = !match.ignored;
|
|
51
51
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "view-ignored",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "Retrieve list of files ignored/included by Git, NPM, Yarn, JSR, VSCE or other tools.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
".gitignore",
|
|
@@ -78,8 +78,8 @@
|
|
|
78
78
|
"scripts": {
|
|
79
79
|
"prerelease": "bun run test && bun run prod && bun run lint && bun run fmt --check && bun publint --pack bun --strict",
|
|
80
80
|
"cpu": "bun run cpu:igw; bun run cpu:me",
|
|
81
|
-
"cpu:igw": "bun run --cpu-prof-md --cpu-prof-name CPU.igw
|
|
82
|
-
"cpu:me": "bun run --cpu-prof-md --cpu-prof-name CPU.me
|
|
81
|
+
"cpu:igw": "bun run --expose-gc --cpu-prof --cpu-prof-md --cpu-prof-name CPU.igw scripts/ignoreWalk.js",
|
|
82
|
+
"cpu:me": "bun run --expose-gc --cpu-prof --cpu-prof-md --cpu-prof-name CPU.me scripts/scan.js --fastInternal",
|
|
83
83
|
"test": "bun test src",
|
|
84
84
|
"test:patterns": "bun test src/patterns",
|
|
85
85
|
"test:targets": "bun test src/targets",
|
package/out/patterns/pattern.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { stringCompile } from "./stringCompile.js";
|
|
2
|
-
/**
|
|
3
|
-
* Safely calls RegExp.test.
|
|
4
|
-
*
|
|
5
|
-
* @since 0.6.0
|
|
6
|
-
*/
|
|
7
|
-
export function patternMinimatchTest(pattern, path) {
|
|
8
|
-
pattern.re.lastIndex = 0;
|
|
9
|
-
return pattern.re.test(path);
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Compiles the {@link Pattern}.
|
|
13
|
-
*
|
|
14
|
-
* @see {@link stringCompile}
|
|
15
|
-
* @see {@link signedPatternCompile}
|
|
16
|
-
*
|
|
17
|
-
* @since 0.6.0
|
|
18
|
-
*/
|
|
19
|
-
export function patternCompile(pattern, options) {
|
|
20
|
-
return pattern.map((p, _, pattern) => stringCompile(p, pattern, options));
|
|
21
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { SignedPattern } from "./signedPattern.js";
|
|
2
|
-
/**
|
|
3
|
-
* Combined internal and external patterns for matching.
|
|
4
|
-
*
|
|
5
|
-
* @see {@link signedPatternIgnores}
|
|
6
|
-
*
|
|
7
|
-
* @since 0.6.0
|
|
8
|
-
*/
|
|
9
|
-
export type PatternMatcher = {
|
|
10
|
-
/**
|
|
11
|
-
* Internal patterns are provided by the target.
|
|
12
|
-
* Almost always they are predefined.
|
|
13
|
-
*
|
|
14
|
-
* @since 0.6.0
|
|
15
|
-
*/
|
|
16
|
-
internal: SignedPattern[];
|
|
17
|
-
/**
|
|
18
|
-
* External patterns are sourced from existing project files at runtime.
|
|
19
|
-
*
|
|
20
|
-
* @since 0.6.0
|
|
21
|
-
*/
|
|
22
|
-
external: SignedPattern[];
|
|
23
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import type { PatternFinderOptions } from "./extractor.js";
|
|
2
|
-
import type { Source } from "./source.js";
|
|
3
|
-
import { type Pattern, type PatternMinimatch } from "./pattern.js";
|
|
4
|
-
/**
|
|
5
|
-
* Represents a set of include and exclude patterns.
|
|
6
|
-
* These patterns are positive minimatch patterns.
|
|
7
|
-
*
|
|
8
|
-
* @see {@link PatternMatcher} uses it.
|
|
9
|
-
* @see {@link signedPatternIgnores} provides the ignoring algorithm.
|
|
10
|
-
* @see {@link signedPatternCompile} compiles the signed pattern.
|
|
11
|
-
* Use this or an extractor's method to compile.
|
|
12
|
-
*
|
|
13
|
-
* @since 0.6.0
|
|
14
|
-
*/
|
|
15
|
-
export type SignedPattern = {
|
|
16
|
-
/**
|
|
17
|
-
* Provides ignored or included file and directory patterns.
|
|
18
|
-
*
|
|
19
|
-
* @see {@link signedPatternIgnores} provides the ignoring algorithm.
|
|
20
|
-
*
|
|
21
|
-
* @since 0.9.0
|
|
22
|
-
*/
|
|
23
|
-
pattern: Pattern;
|
|
24
|
-
/**
|
|
25
|
-
* If `true`, pattern "test" will exclude file named "test".
|
|
26
|
-
*
|
|
27
|
-
* @see {@link signedPatternIgnores} provides the ignoring algorithm.
|
|
28
|
-
*
|
|
29
|
-
* @since 0.9.0
|
|
30
|
-
*/
|
|
31
|
-
excludes: boolean;
|
|
32
|
-
/**
|
|
33
|
-
* Provides compiled ignored or included file and directory patterns.
|
|
34
|
-
*
|
|
35
|
-
* @see {@link signedPatternIgnores} provides the ignoring algorithm.
|
|
36
|
-
*
|
|
37
|
-
* @since 0.6.0
|
|
38
|
-
*/
|
|
39
|
-
compiled: null | PatternMinimatch[];
|
|
40
|
-
};
|
|
41
|
-
/**
|
|
42
|
-
* @see {@link signedPatternIgnores}
|
|
43
|
-
*
|
|
44
|
-
* @since 0.6.0
|
|
45
|
-
*/
|
|
46
|
-
export type SignedPatternMatch = {
|
|
47
|
-
kind: "none" | "missing-source";
|
|
48
|
-
ignored: boolean;
|
|
49
|
-
} | {
|
|
50
|
-
kind: "no-match" | "broken-source" | "invalid-pattern";
|
|
51
|
-
ignored: boolean;
|
|
52
|
-
source: Source;
|
|
53
|
-
} | {
|
|
54
|
-
kind: "invalid-internal-pattern";
|
|
55
|
-
pattern: string;
|
|
56
|
-
error: Error;
|
|
57
|
-
ignored: boolean;
|
|
58
|
-
} | {
|
|
59
|
-
kind: "internal";
|
|
60
|
-
pattern: string;
|
|
61
|
-
ignored: boolean;
|
|
62
|
-
} | {
|
|
63
|
-
kind: "external";
|
|
64
|
-
pattern: string;
|
|
65
|
-
source: Source;
|
|
66
|
-
ignored: boolean;
|
|
67
|
-
};
|
|
68
|
-
/**
|
|
69
|
-
* @see {@link signedPatternIgnores}
|
|
70
|
-
*
|
|
71
|
-
* @since 0.6.0
|
|
72
|
-
*/
|
|
73
|
-
export interface SignedPatternIgnoresOptions extends PatternFinderOptions {
|
|
74
|
-
/**
|
|
75
|
-
* Relative entry path.
|
|
76
|
-
*
|
|
77
|
-
* @example
|
|
78
|
-
* "dir/subdir"
|
|
79
|
-
* "dir/subdir/index.js"
|
|
80
|
-
*
|
|
81
|
-
* @since 0.6.0
|
|
82
|
-
*/
|
|
83
|
-
entry: string;
|
|
84
|
-
/**
|
|
85
|
-
* The internal pattern. Should be compiled.
|
|
86
|
-
*
|
|
87
|
-
* @since 0.6.0
|
|
88
|
-
*/
|
|
89
|
-
internal: SignedPattern[];
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Checks whether a given entry should be ignored based on internal and external patterns.
|
|
93
|
-
* Populates unknown sources using {@link resolveSources}.
|
|
94
|
-
*
|
|
95
|
-
* @since 0.6.0
|
|
96
|
-
*/
|
|
97
|
-
export declare function signedPatternIgnores(options: SignedPatternIgnoresOptions): Promise<SignedPatternMatch>;
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { dirname } from "node:path/posix";
|
|
2
|
-
import { patternMinimatchTest } from "./pattern.js";
|
|
3
|
-
import { resolveSources } from "./resolveSources.js";
|
|
4
|
-
function patternRegExpTest(path, rs) {
|
|
5
|
-
for (const r of rs) {
|
|
6
|
-
try {
|
|
7
|
-
if (patternMinimatchTest(r, path)) {
|
|
8
|
-
return [r.pattern, undefined];
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
catch (err) {
|
|
12
|
-
return [r.pattern, err];
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
return ["", undefined];
|
|
16
|
-
}
|
|
17
|
-
function signedPatternCompiledMatchInternal(options, path) {
|
|
18
|
-
let patternMatch = "";
|
|
19
|
-
let err;
|
|
20
|
-
const kind = "internal";
|
|
21
|
-
const signedPattern = options.internal;
|
|
22
|
-
try {
|
|
23
|
-
for (const si of signedPattern) {
|
|
24
|
-
const compiled = si.compiled;
|
|
25
|
-
if (compiled === null) {
|
|
26
|
-
continue;
|
|
27
|
-
}
|
|
28
|
-
;
|
|
29
|
-
[patternMatch, err] = patternRegExpTest(path, compiled);
|
|
30
|
-
if (err) {
|
|
31
|
-
throw err;
|
|
32
|
-
}
|
|
33
|
-
if (patternMatch) {
|
|
34
|
-
// return true
|
|
35
|
-
return { kind, pattern: patternMatch, ignored: si.excludes };
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
catch (error) {
|
|
40
|
-
return {
|
|
41
|
-
kind: "invalid-internal-pattern",
|
|
42
|
-
pattern: patternMatch,
|
|
43
|
-
error: error,
|
|
44
|
-
ignored: false,
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
return null;
|
|
48
|
-
}
|
|
49
|
-
function signedPatternCompiledMatchExternal(options, path, source) {
|
|
50
|
-
let patternMatch = "";
|
|
51
|
-
let err;
|
|
52
|
-
const kind = "external";
|
|
53
|
-
try {
|
|
54
|
-
for (const si of source.pattern) {
|
|
55
|
-
const compiled = si.compiled;
|
|
56
|
-
if (compiled === null) {
|
|
57
|
-
continue;
|
|
58
|
-
}
|
|
59
|
-
;
|
|
60
|
-
[patternMatch, err] = patternRegExpTest(path, compiled);
|
|
61
|
-
if (err) {
|
|
62
|
-
throw err;
|
|
63
|
-
}
|
|
64
|
-
if (patternMatch) {
|
|
65
|
-
// return true
|
|
66
|
-
return { kind, pattern: patternMatch, ignored: si.excludes, source };
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
catch (err) {
|
|
71
|
-
source.error = err;
|
|
72
|
-
options.ctx?.failed.push(source);
|
|
73
|
-
return { kind: "invalid-pattern", ignored: false, source };
|
|
74
|
-
}
|
|
75
|
-
return { kind: "no-match", ignored: source.inverted, source };
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Checks whether a given entry should be ignored based on internal and external patterns.
|
|
79
|
-
* Populates unknown sources using {@link resolveSources}.
|
|
80
|
-
*
|
|
81
|
-
* @since 0.6.0
|
|
82
|
-
*/
|
|
83
|
-
export async function signedPatternIgnores(options) {
|
|
84
|
-
const parent = dirname(options.entry);
|
|
85
|
-
let source = options.ctx?.external.get(parent);
|
|
86
|
-
if (source === undefined) {
|
|
87
|
-
await resolveSources({ ...options, dir: parent, root: options.root });
|
|
88
|
-
source = options.ctx.external.get(parent);
|
|
89
|
-
}
|
|
90
|
-
if (source === undefined || source === "none") {
|
|
91
|
-
return { kind: "missing-source", ignored: false };
|
|
92
|
-
}
|
|
93
|
-
if (typeof source === "object" && source.error) {
|
|
94
|
-
return { kind: "broken-source", ignored: true, source };
|
|
95
|
-
}
|
|
96
|
-
let internalMatch = signedPatternCompiledMatchInternal(options, options.entry);
|
|
97
|
-
if (internalMatch !== null) {
|
|
98
|
-
return internalMatch;
|
|
99
|
-
}
|
|
100
|
-
const externalMatch = signedPatternCompiledMatchExternal(options, options.entry, source);
|
|
101
|
-
return externalMatch;
|
|
102
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { PatternMinimatch, Pattern } from "./pattern.js";
|
|
2
|
-
/**
|
|
3
|
-
* @since 0.8.0
|
|
4
|
-
*/
|
|
5
|
-
export type StringCompileOptions = {
|
|
6
|
-
/**
|
|
7
|
-
* Disables case sensitivity.
|
|
8
|
-
*
|
|
9
|
-
* @default false
|
|
10
|
-
*
|
|
11
|
-
* @since 0.8.0
|
|
12
|
-
*/
|
|
13
|
-
nocase?: boolean;
|
|
14
|
-
};
|
|
15
|
-
/**
|
|
16
|
-
* Compiles a string of the {@link Pattern}.
|
|
17
|
-
*
|
|
18
|
-
* @see {@link patternCompile}
|
|
19
|
-
*
|
|
20
|
-
* @since 0.8.0
|
|
21
|
-
*/
|
|
22
|
-
export declare function stringCompile(pattern: string, context?: Pattern, options?: StringCompileOptions): PatternMinimatch;
|