filehound 2.0.0-beta.2 → 2.0.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 +39 -11
- package/dist/arrays.d.ts +1 -0
- package/dist/arrays.js +4 -0
- package/dist/file.d.ts +108 -0
- package/dist/file.js +184 -0
- package/dist/filehound.d.ts +356 -0
- package/dist/filehound.js +498 -0
- package/dist/files.d.ts +4 -0
- package/dist/files.js +37 -0
- package/dist/filetype.d.ts +10 -0
- package/dist/filetype.js +9 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +6 -0
- package/dist/matchers.d.ts +324 -0
- package/dist/matchers.js +419 -0
- package/dist/walker/async.d.ts +4 -0
- package/dist/walker/async.js +237 -0
- package/dist/walker/heap.d.ts +7 -0
- package/dist/walker/heap.js +49 -0
- package/dist/walker/sync.d.ts +4 -0
- package/dist/walker/sync.js +66 -0
- package/dist/walker/walk.d.ts +33 -0
- package/dist/walker/walk.js +80 -0
- package/package.json +45 -48
- package/.github/stale.yml +0 -42
- package/.travis.yml +0 -8
- package/.vscode/launch.json +0 -21
- package/.vscode/settings.json +0 -3
- package/CONTRIBUTING.md +0 -8
- package/_config.yml +0 -1
- package/coverage/coverage.raw.json +0 -1
- package/coverage/lcov-report/arrays.ts.html +0 -98
- package/coverage/lcov-report/base.css +0 -212
- package/coverage/lcov-report/filehound.ts.html +0 -2078
- package/coverage/lcov-report/files.ts.html +0 -260
- package/coverage/lcov-report/functions.ts.html +0 -122
- package/coverage/lcov-report/index.html +0 -132
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -1
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -158
- package/coverage/lcov.info +0 -378
- package/dist/src/arrays.js +0 -15
- package/dist/src/arrays.js.map +0 -1
- package/dist/src/asyncWalker.js +0 -59
- package/dist/src/asyncWalker.js.map +0 -1
- package/dist/src/bind.js +0 -15
- package/dist/src/bind.js.map +0 -1
- package/dist/src/filehound.js +0 -597
- package/dist/src/filehound.js.map +0 -1
- package/dist/src/files.js +0 -60
- package/dist/src/files.js.map +0 -1
- package/dist/src/matcher.js +0 -51
- package/dist/src/matcher.js.map +0 -1
- package/dist/src/syncWalker.js +0 -47
- package/dist/src/syncWalker.js.map +0 -1
- package/dist/src/walkAsync.js +0 -33
- package/dist/src/walkAsync.js.map +0 -1
- package/dist/src/walkSync.js +0 -21
- package/dist/src/walkSync.js.map +0 -1
- package/dist/src/walker/walk.js +0 -68
- package/dist/src/walker/walk.js.map +0 -1
- package/dist/src/walker/walkAsync.js +0 -33
- package/dist/src/walker/walkAsync.js.map +0 -1
- package/dist/src/walker/walkSync.js +0 -21
- package/dist/src/walker/walkSync.js.map +0 -1
- package/dist/test/filehound.js +0 -872
- package/dist/test/filehound.js.map +0 -1
- package/dist/test/files.js +0 -29
- package/dist/test/files.js.map +0 -1
- package/docconfig/jsdoc.json +0 -26
- package/docconfig/template/LICENSE +0 -61
- package/docconfig/template/README.md +0 -86
- package/docconfig/template/package.json +0 -22
- package/docconfig/template/publish.js +0 -676
- package/docconfig/template/static/fonts/OpenSans-Bold-webfont.eot +0 -0
- package/docconfig/template/static/fonts/OpenSans-Bold-webfont.svg +0 -1830
- package/docconfig/template/static/fonts/OpenSans-Bold-webfont.woff +0 -0
- package/docconfig/template/static/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
- package/docconfig/template/static/fonts/OpenSans-BoldItalic-webfont.svg +0 -1830
- package/docconfig/template/static/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
- package/docconfig/template/static/fonts/OpenSans-Italic-webfont.eot +0 -0
- package/docconfig/template/static/fonts/OpenSans-Italic-webfont.svg +0 -1830
- package/docconfig/template/static/fonts/OpenSans-Italic-webfont.woff +0 -0
- package/docconfig/template/static/fonts/OpenSans-Light-webfont.eot +0 -0
- package/docconfig/template/static/fonts/OpenSans-Light-webfont.svg +0 -1831
- package/docconfig/template/static/fonts/OpenSans-Light-webfont.woff +0 -0
- package/docconfig/template/static/fonts/OpenSans-LightItalic-webfont.eot +0 -0
- package/docconfig/template/static/fonts/OpenSans-LightItalic-webfont.svg +0 -1835
- package/docconfig/template/static/fonts/OpenSans-LightItalic-webfont.woff +0 -0
- package/docconfig/template/static/fonts/OpenSans-Regular-webfont.eot +0 -0
- package/docconfig/template/static/fonts/OpenSans-Regular-webfont.svg +0 -1831
- package/docconfig/template/static/fonts/OpenSans-Regular-webfont.woff +0 -0
- package/docconfig/template/static/fonts/OpenSans-Semibold-webfont.eot +0 -0
- package/docconfig/template/static/fonts/OpenSans-Semibold-webfont.svg +0 -1830
- package/docconfig/template/static/fonts/OpenSans-Semibold-webfont.ttf +0 -0
- package/docconfig/template/static/fonts/OpenSans-Semibold-webfont.woff +0 -0
- package/docconfig/template/static/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
- package/docconfig/template/static/fonts/OpenSans-SemiboldItalic-webfont.svg +0 -1830
- package/docconfig/template/static/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
- package/docconfig/template/static/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
- package/docconfig/template/static/scripts/linenumber.js +0 -25
- package/docconfig/template/static/scripts/prettify/Apache-License-2.0.txt +0 -202
- package/docconfig/template/static/scripts/prettify/lang-css.js +0 -2
- package/docconfig/template/static/scripts/prettify/prettify.js +0 -28
- package/docconfig/template/static/styles/jsdoc-default.css +0 -605
- package/docconfig/template/static/styles/prettify-jsdoc.css +0 -111
- package/docconfig/template/static/styles/prettify-tomorrow.css +0 -132
- package/docconfig/template/tmpl/augments.tmpl +0 -10
- package/docconfig/template/tmpl/container.tmpl +0 -183
- package/docconfig/template/tmpl/details.tmpl +0 -143
- package/docconfig/template/tmpl/example.tmpl +0 -2
- package/docconfig/template/tmpl/examples.tmpl +0 -13
- package/docconfig/template/tmpl/exceptions.tmpl +0 -32
- package/docconfig/template/tmpl/layout.tmpl +0 -47
- package/docconfig/template/tmpl/mainpage.tmpl +0 -10
- package/docconfig/template/tmpl/members.tmpl +0 -38
- package/docconfig/template/tmpl/method.tmpl +0 -105
- package/docconfig/template/tmpl/params.tmpl +0 -124
- package/docconfig/template/tmpl/properties.tmpl +0 -108
- package/docconfig/template/tmpl/returns.tmpl +0 -19
- package/docconfig/template/tmpl/source.tmpl +0 -8
- package/docconfig/template/tmpl/tutorial.tmpl +0 -19
- package/docconfig/template/tmpl/type.tmpl +0 -7
- package/docs/FileHound.html +0 -3079
- package/docs/FileHound_modified.html +0 -245
- package/docs/_config.yml +0 -1
- package/docs/filehound.js.html +0 -697
- package/docs/fonts/OpenSans-Bold-webfont.eot +0 -0
- package/docs/fonts/OpenSans-Bold-webfont.svg +0 -1830
- package/docs/fonts/OpenSans-Bold-webfont.woff +0 -0
- package/docs/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
- package/docs/fonts/OpenSans-BoldItalic-webfont.svg +0 -1830
- package/docs/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
- package/docs/fonts/OpenSans-Italic-webfont.eot +0 -0
- package/docs/fonts/OpenSans-Italic-webfont.svg +0 -1830
- package/docs/fonts/OpenSans-Italic-webfont.woff +0 -0
- package/docs/fonts/OpenSans-Light-webfont.eot +0 -0
- package/docs/fonts/OpenSans-Light-webfont.svg +0 -1831
- package/docs/fonts/OpenSans-Light-webfont.woff +0 -0
- package/docs/fonts/OpenSans-LightItalic-webfont.eot +0 -0
- package/docs/fonts/OpenSans-LightItalic-webfont.svg +0 -1835
- package/docs/fonts/OpenSans-LightItalic-webfont.woff +0 -0
- package/docs/fonts/OpenSans-Regular-webfont.eot +0 -0
- package/docs/fonts/OpenSans-Regular-webfont.svg +0 -1831
- package/docs/fonts/OpenSans-Regular-webfont.woff +0 -0
- package/docs/fonts/OpenSans-Semibold-webfont.eot +0 -0
- package/docs/fonts/OpenSans-Semibold-webfont.svg +0 -1830
- package/docs/fonts/OpenSans-Semibold-webfont.ttf +0 -0
- package/docs/fonts/OpenSans-Semibold-webfont.woff +0 -0
- package/docs/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
- package/docs/fonts/OpenSans-SemiboldItalic-webfont.svg +0 -1830
- package/docs/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
- package/docs/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
- package/docs/global.html +0 -288
- package/docs/index.html +0 -154
- package/docs/scripts/linenumber.js +0 -25
- package/docs/scripts/prettify/Apache-License-2.0.txt +0 -202
- package/docs/scripts/prettify/lang-css.js +0 -2
- package/docs/scripts/prettify/prettify.js +0 -28
- package/docs/styles/jsdoc-default.css +0 -605
- package/docs/styles/prettify-jsdoc.css +0 -111
- package/docs/styles/prettify-tomorrow.css +0 -132
- package/docs.md +0 -164
- package/index.js +0 -1
- package/issue_template.md +0 -6
- package/test/filehound.ts +0 -1076
- package/test/files.ts +0 -29
- package/test/fixtures/custom/failed.txt +0 -0
- package/test/fixtures/custom/passed.txt +0 -0
- package/test/fixtures/deeplyNested/c.json +0 -0
- package/test/fixtures/deeplyNested/d.json +0 -0
- package/test/fixtures/deeplyNested/mydir/e.json +0 -0
- package/test/fixtures/deeplyNested/mydir/mydir2/f.json +0 -0
- package/test/fixtures/deeplyNested/mydir/mydir2/mydir3/mydir4/failed.json +0 -0
- package/test/fixtures/deeplyNested/mydir/mydir2/mydir3/z.json +0 -0
- package/test/fixtures/deeplyNested/mydir/mydir2/y.json +0 -0
- package/test/fixtures/deeplyNestedWithHiddenDir/c.json +0 -0
- package/test/fixtures/deeplyNestedWithHiddenDir/d.json +0 -0
- package/test/fixtures/deeplyNestedWithHiddenDir/mydir/e.json +0 -0
- package/test/fixtures/deeplyNestedWithHiddenDir/mydir/mydir2/f.json +0 -0
- package/test/fixtures/deeplyNestedWithHiddenDir/mydir/mydir2/mydir3/mydir4/.mydir5/.keep +0 -0
- package/test/fixtures/deeplyNestedWithHiddenDir/mydir/mydir2/mydir3/mydir4/failed.json +0 -0
- package/test/fixtures/deeplyNestedWithHiddenDir/mydir/mydir2/mydir3/z.json +0 -0
- package/test/fixtures/deeplyNestedWithHiddenDir/mydir/mydir2/y.json +0 -0
- package/test/fixtures/ext/Dummy.java +0 -0
- package/test/fixtures/ext/Dumpy.go +0 -0
- package/test/fixtures/ext/dummy.json +0 -0
- package/test/fixtures/ext/dummy.txt +0 -0
- package/test/fixtures/justFiles/a.json +0 -0
- package/test/fixtures/justFiles/b.json +0 -0
- package/test/fixtures/justFiles/dummy.txt +0 -0
- package/test/fixtures/mixed/a.json +0 -0
- package/test/fixtures/mixed/aabbcc.json +0 -0
- package/test/fixtures/mixed/ab.json +0 -0
- package/test/fixtures/mixed/z.json +0 -0
- package/test/fixtures/nested/.hidden1/bad.txt +0 -0
- package/test/fixtures/nested/c.json +0 -0
- package/test/fixtures/nested/d.json +0 -0
- package/test/fixtures/nested/mydir/e.json +0 -0
- package/test/fixtures/sizes/10b.txt +0 -0
- package/test/fixtures/sizes/1b.txt +0 -0
- package/test/fixtures/sizes/1k.txt +0 -0
- package/test/fixtures/sizes/2k.txt +0 -0
- package/test/fixtures/visibility/.hidden/.hidden.json +0 -0
- package/test/fixtures/visibility/.hidden/visible.json +0 -3
- package/test/fixtures/visibility/.hidden.json +0 -3
- package/test/fixtures/visibility/visible/.hidden.json +0 -3
- package/test/fixtures/visibility/visible.json +0 -3
- package/test/mocha.opts +0 -4
- package/tsconfig.json +0 -16
- package/tslint.json +0 -44
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// A binary min-heap: pop returns the item that comes first by precedes
|
|
2
|
+
export class Heap {
|
|
3
|
+
#items = [];
|
|
4
|
+
#precedes;
|
|
5
|
+
constructor(precedes) {
|
|
6
|
+
this.#precedes = precedes;
|
|
7
|
+
}
|
|
8
|
+
get size() {
|
|
9
|
+
return this.#items.length;
|
|
10
|
+
}
|
|
11
|
+
push(item) {
|
|
12
|
+
const items = this.#items;
|
|
13
|
+
let i = items.push(item) - 1;
|
|
14
|
+
while (i > 0) {
|
|
15
|
+
const parent = (i - 1) >> 1;
|
|
16
|
+
if (!this.#precedes(items[i], items[parent])) {
|
|
17
|
+
break;
|
|
18
|
+
}
|
|
19
|
+
[items[i], items[parent]] = [items[parent], items[i]];
|
|
20
|
+
i = parent;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
pop() {
|
|
24
|
+
const items = this.#items;
|
|
25
|
+
const first = items[0];
|
|
26
|
+
const last = items.pop();
|
|
27
|
+
if (items.length > 0 && last !== undefined) {
|
|
28
|
+
items[0] = last;
|
|
29
|
+
let i = 0;
|
|
30
|
+
for (;;) {
|
|
31
|
+
const left = 2 * i + 1;
|
|
32
|
+
const right = left + 1;
|
|
33
|
+
let next = i;
|
|
34
|
+
if (left < items.length && this.#precedes(items[left], items[next])) {
|
|
35
|
+
next = left;
|
|
36
|
+
}
|
|
37
|
+
if (right < items.length && this.#precedes(items[right], items[next])) {
|
|
38
|
+
next = right;
|
|
39
|
+
}
|
|
40
|
+
if (next === i) {
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
[items[i], items[next]] = [items[next], items[i]];
|
|
44
|
+
i = next;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return first;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import * as fs from 'node:fs';
|
|
2
|
+
import { File, getChildrenSync, getKnownKind } from '../file.js';
|
|
3
|
+
import { ancestorsOf, assertDirectory, byName, createPathError, EntryType, typeOf, Walk } from './walk.js';
|
|
4
|
+
// A linked directory that resolves to one of its own ancestors would be walked forever
|
|
5
|
+
function isCyclicLink(link) {
|
|
6
|
+
const target = fs.realpathSync(link.getName());
|
|
7
|
+
return ancestorsOf(link).some(ancestor => fs.realpathSync(ancestor) === target);
|
|
8
|
+
}
|
|
9
|
+
// Broken links are skipped, as are all links when ignoreSymlinks is set
|
|
10
|
+
function isVisitableLink(link, walk) {
|
|
11
|
+
if (walk.ignoreSymlinks) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
try {
|
|
15
|
+
return !(link.isDirectorySync() && isCyclicLink(link));
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
// Links have no known kind, so need a stat
|
|
22
|
+
function visitUntyped(file, walk, depth, matches) {
|
|
23
|
+
return visitTyped(file, typeOf(file.getStatsSync()), walk, depth, matches);
|
|
24
|
+
}
|
|
25
|
+
function visitLink(link, walk, depth, matches) {
|
|
26
|
+
return isVisitableLink(link, walk) ? visitUntyped(link, walk, depth, matches) : matches;
|
|
27
|
+
}
|
|
28
|
+
// Entries are visited depth first in name order, adding to a single list of matches
|
|
29
|
+
function visitTyped(file, type, walk, depth, matches) {
|
|
30
|
+
if (type === EntryType.DIRECTORY && walk.shouldSkipDirectory(file)) {
|
|
31
|
+
return matches;
|
|
32
|
+
}
|
|
33
|
+
if (walk.isCandidate(file, type) && walk.matcher.testSync(file)) {
|
|
34
|
+
matches.push(file);
|
|
35
|
+
}
|
|
36
|
+
if (type === EntryType.DIRECTORY && walk.canDescend(depth)) {
|
|
37
|
+
visitChildren(file, walk, depth + 1, matches);
|
|
38
|
+
}
|
|
39
|
+
return matches;
|
|
40
|
+
}
|
|
41
|
+
// Children always have a dirent, so only links lack a known kind
|
|
42
|
+
function visitChildren(dir, walk, depth, matches) {
|
|
43
|
+
for (const child of getChildrenSync(dir).sort(byName)) {
|
|
44
|
+
const kind = getKnownKind(child);
|
|
45
|
+
if (kind) {
|
|
46
|
+
visitTyped(child, typeOf(kind), walk, depth, matches);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
visitLink(child, walk, depth, matches);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return matches;
|
|
53
|
+
}
|
|
54
|
+
export function walkSync(dir, matcher, opts) {
|
|
55
|
+
const root = new File(dir);
|
|
56
|
+
let stats;
|
|
57
|
+
try {
|
|
58
|
+
stats = root.getStatsSync();
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
throw createPathError(dir, error);
|
|
62
|
+
}
|
|
63
|
+
assertDirectory(dir, stats);
|
|
64
|
+
// The root is never a match, only the place to search, so the walk starts at its children
|
|
65
|
+
return visitChildren(root, new Walk(matcher, opts), 1, []);
|
|
66
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { File, FileKind } from '../file.js';
|
|
2
|
+
import { FileType } from '../filetype.js';
|
|
3
|
+
import { type FilePredicate } from '../matchers.js';
|
|
4
|
+
export type WalkOptions = {
|
|
5
|
+
maxDepth?: number;
|
|
6
|
+
ignoreHiddenFiles: boolean;
|
|
7
|
+
ignoreHiddenDirectories: boolean;
|
|
8
|
+
ignoreSymlinks: boolean;
|
|
9
|
+
fileTypes: FileType[];
|
|
10
|
+
skipDirectories: readonly string[];
|
|
11
|
+
signal?: AbortSignal;
|
|
12
|
+
};
|
|
13
|
+
export declare const EntryType: {
|
|
14
|
+
readonly OTHER: "other";
|
|
15
|
+
readonly REGULAR: "regular";
|
|
16
|
+
readonly DIRECTORY: "directory";
|
|
17
|
+
};
|
|
18
|
+
export type EntryType = typeof EntryType[keyof typeof EntryType];
|
|
19
|
+
export declare function createPathError(name: string, cause: unknown): Error;
|
|
20
|
+
export declare function assertDirectory(name: string, stats: FileKind): void;
|
|
21
|
+
export declare class Walk {
|
|
22
|
+
#private;
|
|
23
|
+
readonly matcher: FilePredicate;
|
|
24
|
+
readonly isSyncMatcher: boolean;
|
|
25
|
+
constructor(matcher: FilePredicate, opts: WalkOptions);
|
|
26
|
+
get ignoreSymlinks(): boolean;
|
|
27
|
+
isCandidate(file: File, type: EntryType): boolean;
|
|
28
|
+
shouldSkipDirectory(dir: File): boolean;
|
|
29
|
+
canDescend(depth: number): boolean;
|
|
30
|
+
}
|
|
31
|
+
export declare function typeOf(kind: FileKind): EntryType;
|
|
32
|
+
export declare function byName(a: File, b: File): number;
|
|
33
|
+
export declare function ancestorsOf(file: File): string[];
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { basename, dirname, matchesGlob, resolve } from 'node:path';
|
|
2
|
+
import { FileType } from '../filetype.js';
|
|
3
|
+
import { isSyncPredicate } from '../matchers.js';
|
|
4
|
+
// Every entry has one. FileType is the public subset; anything else, such as a
|
|
5
|
+
// socket or FIFO, is OTHER and never matched.
|
|
6
|
+
export const EntryType = { ...FileType, OTHER: 'other' };
|
|
7
|
+
export function createPathError(name, cause) {
|
|
8
|
+
return new Error(`'${name}' is not a valid path`, { cause });
|
|
9
|
+
}
|
|
10
|
+
// Search paths are where to search, so must be directories
|
|
11
|
+
export function assertDirectory(name, stats) {
|
|
12
|
+
if (!stats.isDirectory()) {
|
|
13
|
+
throw new Error(`'${name}' is not a directory`);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
// State shared by a walk. The async and sync walks (async.ts and sync.ts) share
|
|
17
|
+
// everything except the calls that touch the file system, and both return
|
|
18
|
+
// matches in name order.
|
|
19
|
+
export class Walk {
|
|
20
|
+
matcher;
|
|
21
|
+
// Checked once, as combined predicates work it out from their parts
|
|
22
|
+
isSyncMatcher;
|
|
23
|
+
#opts;
|
|
24
|
+
constructor(matcher, opts) {
|
|
25
|
+
this.matcher = matcher;
|
|
26
|
+
this.isSyncMatcher = isSyncPredicate(matcher);
|
|
27
|
+
this.#opts = opts;
|
|
28
|
+
}
|
|
29
|
+
get ignoreSymlinks() {
|
|
30
|
+
return this.#opts.ignoreSymlinks;
|
|
31
|
+
}
|
|
32
|
+
isCandidate(file, type) {
|
|
33
|
+
switch (type) {
|
|
34
|
+
case EntryType.DIRECTORY:
|
|
35
|
+
return this.#typeEnabled(type);
|
|
36
|
+
case EntryType.REGULAR:
|
|
37
|
+
return this.#typeEnabled(type) && !(this.#opts.ignoreHiddenFiles && file.isHiddenSync());
|
|
38
|
+
case EntryType.OTHER:
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// Hidden directories, when ignored, and those named by skipDirectories are
|
|
43
|
+
// neither returned nor walked. Only names are tested, so the async walk
|
|
44
|
+
// can skip a directory before reading it ahead.
|
|
45
|
+
shouldSkipDirectory(dir) {
|
|
46
|
+
return (this.#opts.ignoreHiddenDirectories && dir.isHiddenSync()) || this.#isSkippedName(dir);
|
|
47
|
+
}
|
|
48
|
+
// depth counts levels below the root, which is 0. A directory beyond
|
|
49
|
+
// maxDepth is still returned, like any other entry at its level, but not walked.
|
|
50
|
+
canDescend(depth) {
|
|
51
|
+
return this.#opts.maxDepth === undefined || depth <= this.#opts.maxDepth;
|
|
52
|
+
}
|
|
53
|
+
#isSkippedName(dir) {
|
|
54
|
+
const skip = this.#opts.skipDirectories;
|
|
55
|
+
if (skip.length === 0) {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
const name = basename(dir.getName());
|
|
59
|
+
return skip.some(pattern => matchesGlob(name, pattern));
|
|
60
|
+
}
|
|
61
|
+
#typeEnabled(type) {
|
|
62
|
+
return this.#opts.fileTypes.includes(type);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
export function typeOf(kind) {
|
|
66
|
+
return kind.isDirectory() ? EntryType.DIRECTORY : kind.isFile() ? EntryType.REGULAR : EntryType.OTHER;
|
|
67
|
+
}
|
|
68
|
+
export function byName(a, b) {
|
|
69
|
+
return a.getName() < b.getName() ? -1 : a.getName() > b.getName() ? 1 : 0;
|
|
70
|
+
}
|
|
71
|
+
export function ancestorsOf(file) {
|
|
72
|
+
const ancestors = [];
|
|
73
|
+
let ancestor = dirname(resolve(file.getName()));
|
|
74
|
+
while (dirname(ancestor) !== ancestor) {
|
|
75
|
+
ancestors.push(ancestor);
|
|
76
|
+
ancestor = dirname(ancestor);
|
|
77
|
+
}
|
|
78
|
+
ancestors.push(ancestor);
|
|
79
|
+
return ancestors;
|
|
80
|
+
}
|
package/package.json
CHANGED
|
@@ -1,30 +1,45 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "filehound",
|
|
3
|
-
"version": "2.0.0
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Find files the easy way",
|
|
5
|
-
"
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"default": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist"
|
|
16
|
+
],
|
|
17
|
+
"engines": {
|
|
18
|
+
"node": ">=24"
|
|
19
|
+
},
|
|
6
20
|
"scripts": {
|
|
7
|
-
"
|
|
21
|
+
"docs": "typedoc",
|
|
8
22
|
"build": "tsc",
|
|
23
|
+
"typecheck": "tsc -p tsconfig.test.json",
|
|
9
24
|
"watch": "tsc --watch",
|
|
10
|
-
"clean": "
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"test": "mocha -r ts-node/register test/*.ts",
|
|
25
|
+
"clean": "node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"",
|
|
26
|
+
"prepublishOnly": "npm run clean && npm run build",
|
|
27
|
+
"test": "mocha",
|
|
14
28
|
"posttest": "npm run lint",
|
|
15
|
-
"lint": "
|
|
16
|
-
"coverage": "
|
|
29
|
+
"lint": "eslint src test bench examples scripts",
|
|
30
|
+
"coverage": "c8 mocha",
|
|
31
|
+
"bench": "npm run build && node bench/bench.mjs",
|
|
32
|
+
"examples": "npm run build && node scripts/run-examples.mjs"
|
|
17
33
|
},
|
|
18
34
|
"repository": {
|
|
19
35
|
"type": "git",
|
|
20
|
-
"url": "https://github.com/nspragg/filehound.git"
|
|
36
|
+
"url": "git+https://github.com/nspragg/filehound.git"
|
|
21
37
|
},
|
|
22
38
|
"keywords": [
|
|
23
39
|
"file",
|
|
24
40
|
"recursive",
|
|
25
41
|
"search",
|
|
26
42
|
"filehound",
|
|
27
|
-
"file",
|
|
28
43
|
"hound",
|
|
29
44
|
"lister",
|
|
30
45
|
"find",
|
|
@@ -36,48 +51,30 @@
|
|
|
36
51
|
"fs",
|
|
37
52
|
"file system"
|
|
38
53
|
],
|
|
54
|
+
"author": "nspragg <nspragg@gmail.com>",
|
|
39
55
|
"license": "MIT",
|
|
40
56
|
"bugs": {
|
|
41
57
|
"url": "https://github.com/nspragg/filehound/issues"
|
|
42
58
|
},
|
|
43
59
|
"homepage": "https://github.com/nspragg/filehound",
|
|
44
|
-
"devDependencies": {
|
|
45
|
-
"@types/mocha": "^2.2.43",
|
|
46
|
-
"@types/node": "^8.0.33",
|
|
47
|
-
"@types/typescript": "^2.0.0",
|
|
48
|
-
"eslint-config-iplayer-base": "^1.0.0",
|
|
49
|
-
"chai": "^4.1.2",
|
|
50
|
-
"coveralls": "^2.11.9",
|
|
51
|
-
"eslint": "^3.11.1",
|
|
52
|
-
"istanbul": "1.1.0-alpha.1",
|
|
53
|
-
"jsdoc": "^3.4.3",
|
|
54
|
-
"mocha": "^5.0.5",
|
|
55
|
-
"sinon": "^2.1.0",
|
|
56
|
-
"ts-node": "^3.3.0",
|
|
57
|
-
"tslint": "^5.8.0",
|
|
58
|
-
"tslint-config-airbnb": "^5.3.1",
|
|
59
|
-
"tslint-eslint-rules": "^4.1.1",
|
|
60
|
-
"typescript": "^2.6.1"
|
|
61
|
-
},
|
|
62
|
-
"nyc": {
|
|
63
|
-
"include": [
|
|
64
|
-
"src/**/*.ts"
|
|
65
|
-
],
|
|
66
|
-
"extension": [
|
|
67
|
-
".ts"
|
|
68
|
-
],
|
|
69
|
-
"require": [
|
|
70
|
-
"ts-node/register"
|
|
71
|
-
],
|
|
72
|
-
"sourceMap": true,
|
|
73
|
-
"instrument": true
|
|
74
|
-
},
|
|
75
60
|
"dependencies": {
|
|
76
|
-
"
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"
|
|
61
|
+
"unit-compare": "^2.0.0"
|
|
62
|
+
},
|
|
63
|
+
"devDependencies": {
|
|
64
|
+
"@eslint/js": "^10.0.1",
|
|
65
|
+
"@stylistic/eslint-plugin": "^5.10.0",
|
|
66
|
+
"@types/chai": "^5.2.3",
|
|
67
|
+
"@types/mocha": "^10.0.10",
|
|
68
|
+
"@types/node": "^24.19.2",
|
|
69
|
+
"@types/sinon": "^22.0.2",
|
|
70
|
+
"c8": "^12.0.0",
|
|
71
|
+
"chai": "^6.3.0",
|
|
72
|
+
"eslint": "^10.13.0",
|
|
73
|
+
"mocha": "^12.0.3",
|
|
74
|
+
"sinon": "^22.1.0",
|
|
75
|
+
"tsx": "^4.23.15",
|
|
76
|
+
"typedoc": "^0.28.20",
|
|
77
|
+
"typescript": "~6.0",
|
|
78
|
+
"typescript-eslint": "^8.72.1"
|
|
82
79
|
}
|
|
83
80
|
}
|
package/.github/stale.yml
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# Configuration for probot-stale - https://github.com/probot/stale
|
|
2
|
-
|
|
3
|
-
# Number of days of inactivity before an Issue or Pull Request becomes stale
|
|
4
|
-
daysUntilStale: 5
|
|
5
|
-
# Number of days of inactivity before a stale Issue or Pull Request is closed.
|
|
6
|
-
# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale.
|
|
7
|
-
daysUntilClose: 7
|
|
8
|
-
# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable
|
|
9
|
-
exemptLabels:
|
|
10
|
-
- pinned
|
|
11
|
-
- security
|
|
12
|
-
- "[Status] Maybe Later"
|
|
13
|
-
# Set to true to ignore issues in a project (defaults to false)
|
|
14
|
-
exemptProjects: false
|
|
15
|
-
# Set to true to ignore issues in a milestone (defaults to false)
|
|
16
|
-
exemptMilestones: false
|
|
17
|
-
# Label to use when marking as stale
|
|
18
|
-
staleLabel: wontfix
|
|
19
|
-
# Comment to post when marking as stale. Set to `false` to disable
|
|
20
|
-
markComment: >
|
|
21
|
-
This issue has been automatically marked as stale because it has not had
|
|
22
|
-
recent activity. It will be closed if no further activity occurs. Thank you
|
|
23
|
-
for your contributions.
|
|
24
|
-
# Comment to post when removing the stale label. Set to `false` to disable
|
|
25
|
-
unmarkComment: false
|
|
26
|
-
# Comment to post when closing a stale Issue or Pull Request. Set to `false` to disable
|
|
27
|
-
closeComment: false
|
|
28
|
-
# Limit the number of actions per hour, from 1-30. Default is 30
|
|
29
|
-
limitPerRun: 30
|
|
30
|
-
# Limit to only `issues` or `pulls`
|
|
31
|
-
# only: issues
|
|
32
|
-
#
|
|
33
|
-
# Optionally, specify configuration settings that are specific to just 'issues' or 'pulls':
|
|
34
|
-
# pulls:
|
|
35
|
-
# daysUntilStale: 30
|
|
36
|
-
# markComment: >
|
|
37
|
-
# This pull request has been automatically marked as stale because it has not had
|
|
38
|
-
# recent activity. It will be closed if no further activity occurs. Thank you
|
|
39
|
-
# for your contributions.
|
|
40
|
-
# issues:
|
|
41
|
-
# exemptLabels:
|
|
42
|
-
# - confirmed
|
package/.travis.yml
DELETED
package/.vscode/launch.json
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
// Use IntelliSense to learn about possible Node.js debug attributes.
|
|
3
|
-
// Hover to view descriptions of existing attributes.
|
|
4
|
-
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
|
5
|
-
"version": "0.2.0",
|
|
6
|
-
"configurations": [
|
|
7
|
-
{
|
|
8
|
-
"type": "node",
|
|
9
|
-
"request": "launch",
|
|
10
|
-
"name": "Launch Program",
|
|
11
|
-
"program": "${workspaceRoot}/index.js"
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
"type": "node",
|
|
15
|
-
"request": "attach",
|
|
16
|
-
"name": "Attach to Process",
|
|
17
|
-
"address": "localhost",
|
|
18
|
-
"port": 5858
|
|
19
|
-
}
|
|
20
|
-
]
|
|
21
|
-
}
|
package/.vscode/settings.json
DELETED
package/CONTRIBUTING.md
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
## Contributing
|
|
2
|
-
|
|
3
|
-
* If you're unsure if a feature would make a good addition, you can always [create an issue](https://github.com/nspragg/filehound/issues/new) first.
|
|
4
|
-
* We aim for 100% test coverage. Please write tests for any new functionality or changes.
|
|
5
|
-
* Any API changes should be fully documented.
|
|
6
|
-
* Make sure your code meets our linting standards. Run `npm run lint` to check your code.
|
|
7
|
-
* Maintain the existing coding style. There are some settings in `.jsbeautifyrc` to help.
|
|
8
|
-
* Be mindful of others when making suggestions and/or code reviewing.
|
package/_config.yml
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
theme: jekyll-theme-slate
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"/Users/spragn01/workspace/node/filehound/src/filehound.ts":{"path":"/Users/spragn01/workspace/node/filehound/src/filehound.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":10},"end":{"line":3,"column":27}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":38}},"3":{"start":{"line":5,"column":13},"end":{"line":5,"column":28}},"4":{"start":{"line":6,"column":13},"end":{"line":6,"column":31}},"5":{"start":{"line":7,"column":20},"end":{"line":7,"column":42}},"6":{"start":{"line":8,"column":16},"end":{"line":8,"column":34}},"7":{"start":{"line":9,"column":17},"end":{"line":9,"column":36}},"8":{"start":{"line":10,"column":23},"end":{"line":10,"column":46}},"9":{"start":{"line":11,"column":17},"end":{"line":11,"column":34}},"10":{"start":{"line":13,"column":4},"end":{"line":13,"column":31}},"11":{"start":{"line":16,"column":4},"end":{"line":16,"column":23}},"12":{"start":{"line":19,"column":4},"end":{"line":19,"column":26}},"13":{"start":{"line":22,"column":4},"end":{"line":24,"column":6}},"14":{"start":{"line":23,"column":8},"end":{"line":23,"column":56}},"15":{"start":{"line":27,"column":4},"end":{"line":29,"column":5}},"16":{"start":{"line":28,"column":8},"end":{"line":28,"column":28}},"17":{"start":{"line":30,"column":4},"end":{"line":30,"column":15}},"18":{"start":{"line":35,"column":8},"end":{"line":35,"column":16}},"19":{"start":{"line":36,"column":8},"end":{"line":36,"column":26}},"20":{"start":{"line":37,"column":8},"end":{"line":37,"column":30}},"21":{"start":{"line":38,"column":8},"end":{"line":38,"column":45}},"22":{"start":{"line":39,"column":8},"end":{"line":39,"column":32}},"23":{"start":{"line":40,"column":8},"end":{"line":40,"column":30}},"24":{"start":{"line":41,"column":8},"end":{"line":41,"column":26}},"25":{"start":{"line":42,"column":8},"end":{"line":42,"column":37}},"26":{"start":{"line":58,"column":8},"end":{"line":58,"column":31}},"27":{"start":{"line":75,"column":22},"end":{"line":75,"column":41}},"28":{"start":{"line":76,"column":8},"end":{"line":76,"column":65}},"29":{"start":{"line":96,"column":8},"end":{"line":99,"column":11}},"30":{"start":{"line":97,"column":29},"end":{"line":97,"column":52}},"31":{"start":{"line":98,"column":12},"end":{"line":98,"column":67}},"32":{"start":{"line":100,"column":8},"end":{"line":100,"column":20}},"33":{"start":{"line":120,"column":8},"end":{"line":123,"column":11}},"34":{"start":{"line":121,"column":29},"end":{"line":121,"column":52}},"35":{"start":{"line":122,"column":12},"end":{"line":122,"column":67}},"36":{"start":{"line":124,"column":8},"end":{"line":124,"column":20}},"37":{"start":{"line":145,"column":8},"end":{"line":148,"column":11}},"38":{"start":{"line":146,"column":28},"end":{"line":146,"column":50}},"39":{"start":{"line":147,"column":12},"end":{"line":147,"column":66}},"40":{"start":{"line":149,"column":8},"end":{"line":149,"column":20}},"41":{"start":{"line":169,"column":8},"end":{"line":169,"column":34}},"42":{"start":{"line":170,"column":8},"end":{"line":170,"column":20}},"43":{"start":{"line":191,"column":8},"end":{"line":191,"column":75}},"44":{"start":{"line":192,"column":8},"end":{"line":192,"column":20}},"45":{"start":{"line":213,"column":8},"end":{"line":213,"column":32}},"46":{"start":{"line":234,"column":25},"end":{"line":234,"column":44}},"47":{"start":{"line":235,"column":8},"end":{"line":237,"column":11}},"48":{"start":{"line":236,"column":12},"end":{"line":236,"column":71}},"49":{"start":{"line":238,"column":8},"end":{"line":238,"column":20}},"50":{"start":{"line":273,"column":27},"end":{"line":273,"column":66}},"51":{"start":{"line":274,"column":8},"end":{"line":276,"column":11}},"52":{"start":{"line":275,"column":12},"end":{"line":275,"column":67}},"53":{"start":{"line":277,"column":8},"end":{"line":277,"column":20}},"54":{"start":{"line":298,"column":8},"end":{"line":301,"column":11}},"55":{"start":{"line":299,"column":25},"end":{"line":299,"column":40}},"56":{"start":{"line":300,"column":12},"end":{"line":300,"column":72}},"57":{"start":{"line":302,"column":8},"end":{"line":302,"column":20}},"58":{"start":{"line":323,"column":8},"end":{"line":323,"column":21}},"59":{"start":{"line":324,"column":8},"end":{"line":324,"column":20}},"60":{"start":{"line":345,"column":8},"end":{"line":345,"column":39}},"61":{"start":{"line":352,"column":8},"end":{"line":354,"column":11}},"62":{"start":{"line":353,"column":12},"end":{"line":353,"column":45}},"63":{"start":{"line":355,"column":8},"end":{"line":355,"column":20}},"64":{"start":{"line":377,"column":8},"end":{"line":377,"column":34}},"65":{"start":{"line":378,"column":8},"end":{"line":378,"column":20}},"66":{"start":{"line":398,"column":8},"end":{"line":400,"column":11}},"67":{"start":{"line":399,"column":12},"end":{"line":399,"column":40}},"68":{"start":{"line":401,"column":8},"end":{"line":401,"column":20}},"69":{"start":{"line":421,"column":8},"end":{"line":421,"column":31}},"70":{"start":{"line":422,"column":8},"end":{"line":422,"column":20}},"71":{"start":{"line":442,"column":8},"end":{"line":442,"column":36}},"72":{"start":{"line":443,"column":8},"end":{"line":443,"column":20}},"73":{"start":{"line":463,"column":8},"end":{"line":465,"column":11}},"74":{"start":{"line":464,"column":12},"end":{"line":464,"column":35}},"75":{"start":{"line":466,"column":8},"end":{"line":466,"column":20}},"76":{"start":{"line":487,"column":8},"end":{"line":487,"column":30}},"77":{"start":{"line":488,"column":8},"end":{"line":488,"column":20}},"78":{"start":{"line":517,"column":8},"end":{"line":517,"column":28}},"79":{"start":{"line":518,"column":28},"end":{"line":518,"column":56}},"80":{"start":{"line":519,"column":25},"end":{"line":519,"column":83}},"81":{"start":{"line":520,"column":8},"end":{"line":529,"column":11}},"82":{"start":{"line":524,"column":12},"end":{"line":524,"column":34}},"83":{"start":{"line":525,"column":12},"end":{"line":525,"column":20}},"84":{"start":{"line":528,"column":12},"end":{"line":528,"column":29}},"85":{"start":{"line":548,"column":8},"end":{"line":548,"column":28}},"86":{"start":{"line":549,"column":27},"end":{"line":549,"column":54}},"87":{"start":{"line":550,"column":8},"end":{"line":553,"column":30}},"88":{"start":{"line":556,"column":22},"end":{"line":556,"column":62}},"89":{"start":{"line":557,"column":8},"end":{"line":557,"column":65}},"90":{"start":{"line":560,"column":8},"end":{"line":560,"column":88}},"91":{"start":{"line":563,"column":24},"end":{"line":563,"column":57}},"92":{"start":{"line":564,"column":8},"end":{"line":566,"column":9}},"93":{"start":{"line":565,"column":12},"end":{"line":565,"column":47}},"94":{"start":{"line":567,"column":8},"end":{"line":567,"column":23}},"95":{"start":{"line":570,"column":8},"end":{"line":570,"column":42}},"96":{"start":{"line":573,"column":8},"end":{"line":573,"column":25}},"97":{"start":{"line":574,"column":21},"end":{"line":574,"column":37}},"98":{"start":{"line":575,"column":29},"end":{"line":575,"column":31}},"99":{"start":{"line":576,"column":22},"end":{"line":576,"column":60}},"100":{"start":{"line":577,"column":8},"end":{"line":577,"column":80}},"101":{"start":{"line":580,"column":21},"end":{"line":580,"column":37}},"102":{"start":{"line":581,"column":29},"end":{"line":581,"column":31}},"103":{"start":{"line":582,"column":24},"end":{"line":582,"column":62}},"104":{"start":{"line":583,"column":8},"end":{"line":590,"column":11}},"105":{"start":{"line":584,"column":12},"end":{"line":585,"column":57}},"106":{"start":{"line":585,"column":16},"end":{"line":585,"column":57}},"107":{"start":{"line":586,"column":12},"end":{"line":588,"column":15}},"108":{"start":{"line":587,"column":16},"end":{"line":587,"column":51}},"109":{"start":{"line":589,"column":12},"end":{"line":589,"column":25}},"110":{"start":{"line":593,"column":8},"end":{"line":594,"column":22}},"111":{"start":{"line":594,"column":12},"end":{"line":594,"column":22}},"112":{"start":{"line":595,"column":25},"end":{"line":597,"column":38}},"113":{"start":{"line":598,"column":8},"end":{"line":608,"column":34}},"114":{"start":{"line":600,"column":12},"end":{"line":604,"column":13}},"115":{"start":{"line":601,"column":16},"end":{"line":602,"column":44}},"116":{"start":{"line":602,"column":20},"end":{"line":602,"column":44}},"117":{"start":{"line":603,"column":16},"end":{"line":603,"column":62}},"118":{"start":{"line":605,"column":12},"end":{"line":605,"column":24}},"119":{"start":{"line":611,"column":22},"end":{"line":613,"column":51}},"120":{"start":{"line":614,"column":8},"end":{"line":614,"column":36}},"121":{"start":{"line":617,"column":0},"end":{"line":617,"column":28}}},"fnMap":{"0":{"name":"isDefined","decl":{"start":{"line":12,"column":9},"end":{"line":12,"column":18}},"loc":{"start":{"line":12,"column":26},"end":{"line":14,"column":1}},"line":12},"1":{"name":"flatten","decl":{"start":{"line":15,"column":9},"end":{"line":15,"column":16}},"loc":{"start":{"line":15,"column":23},"end":{"line":17,"column":1}},"line":15},"2":{"name":"getFilename","decl":{"start":{"line":18,"column":9},"end":{"line":18,"column":20}},"loc":{"start":{"line":18,"column":27},"end":{"line":20,"column":1}},"line":18},"3":{"name":"isRegExpMatch","decl":{"start":{"line":21,"column":9},"end":{"line":21,"column":22}},"loc":{"start":{"line":21,"column":32},"end":{"line":25,"column":1}},"line":21},"4":{"name":"(anonymous_4)","decl":{"start":{"line":22,"column":11},"end":{"line":22,"column":12}},"loc":{"start":{"line":22,"column":19},"end":{"line":24,"column":5}},"line":22},"5":{"name":"cleanExtension","decl":{"start":{"line":26,"column":9},"end":{"line":26,"column":23}},"loc":{"start":{"line":26,"column":29},"end":{"line":31,"column":1}},"line":26},"6":{"name":"(anonymous_6)","decl":{"start":{"line":34,"column":4},"end":{"line":34,"column":5}},"loc":{"start":{"line":34,"column":18},"end":{"line":43,"column":5}},"line":34},"7":{"name":"(anonymous_7)","decl":{"start":{"line":57,"column":4},"end":{"line":57,"column":5}},"loc":{"start":{"line":57,"column":20},"end":{"line":59,"column":5}},"line":57},"8":{"name":"(anonymous_8)","decl":{"start":{"line":74,"column":4},"end":{"line":74,"column":5}},"loc":{"start":{"line":74,"column":24},"end":{"line":77,"column":5}},"line":74},"9":{"name":"(anonymous_9)","decl":{"start":{"line":95,"column":4},"end":{"line":95,"column":5}},"loc":{"start":{"line":95,"column":22},"end":{"line":101,"column":5}},"line":95},"10":{"name":"(anonymous_10)","decl":{"start":{"line":96,"column":23},"end":{"line":96,"column":24}},"loc":{"start":{"line":96,"column":31},"end":{"line":99,"column":9}},"line":96},"11":{"name":"(anonymous_11)","decl":{"start":{"line":119,"column":4},"end":{"line":119,"column":5}},"loc":{"start":{"line":119,"column":22},"end":{"line":125,"column":5}},"line":119},"12":{"name":"(anonymous_12)","decl":{"start":{"line":120,"column":23},"end":{"line":120,"column":24}},"loc":{"start":{"line":120,"column":31},"end":{"line":123,"column":9}},"line":120},"13":{"name":"(anonymous_13)","decl":{"start":{"line":144,"column":4},"end":{"line":144,"column":5}},"loc":{"start":{"line":144,"column":21},"end":{"line":150,"column":5}},"line":144},"14":{"name":"(anonymous_14)","decl":{"start":{"line":145,"column":23},"end":{"line":145,"column":24}},"loc":{"start":{"line":145,"column":31},"end":{"line":148,"column":9}},"line":145},"15":{"name":"(anonymous_15)","decl":{"start":{"line":168,"column":4},"end":{"line":168,"column":5}},"loc":{"start":{"line":168,"column":22},"end":{"line":171,"column":5}},"line":168},"16":{"name":"(anonymous_16)","decl":{"start":{"line":190,"column":4},"end":{"line":190,"column":5}},"loc":{"start":{"line":190,"column":19},"end":{"line":193,"column":5}},"line":190},"17":{"name":"(anonymous_17)","decl":{"start":{"line":212,"column":4},"end":{"line":212,"column":5}},"loc":{"start":{"line":212,"column":15},"end":{"line":214,"column":5}},"line":212},"18":{"name":"(anonymous_18)","decl":{"start":{"line":233,"column":4},"end":{"line":233,"column":5}},"loc":{"start":{"line":233,"column":21},"end":{"line":239,"column":5}},"line":233},"19":{"name":"(anonymous_19)","decl":{"start":{"line":235,"column":25},"end":{"line":235,"column":26}},"loc":{"start":{"line":235,"column":36},"end":{"line":237,"column":9}},"line":235},"20":{"name":"(anonymous_20)","decl":{"start":{"line":272,"column":4},"end":{"line":272,"column":5}},"loc":{"start":{"line":272,"column":17},"end":{"line":278,"column":5}},"line":272},"21":{"name":"(anonymous_21)","decl":{"start":{"line":274,"column":23},"end":{"line":274,"column":24}},"loc":{"start":{"line":274,"column":31},"end":{"line":276,"column":9}},"line":274},"22":{"name":"(anonymous_22)","decl":{"start":{"line":297,"column":4},"end":{"line":297,"column":5}},"loc":{"start":{"line":297,"column":25},"end":{"line":303,"column":5}},"line":297},"23":{"name":"(anonymous_23)","decl":{"start":{"line":298,"column":23},"end":{"line":298,"column":24}},"loc":{"start":{"line":298,"column":31},"end":{"line":301,"column":9}},"line":298},"24":{"name":"(anonymous_24)","decl":{"start":{"line":322,"column":4},"end":{"line":322,"column":5}},"loc":{"start":{"line":322,"column":14},"end":{"line":325,"column":5}},"line":322},"25":{"name":"(anonymous_25)","decl":{"start":{"line":344,"column":4},"end":{"line":344,"column":5}},"loc":{"start":{"line":344,"column":22},"end":{"line":346,"column":5}},"line":344},"26":{"name":"(anonymous_26)","decl":{"start":{"line":351,"column":4},"end":{"line":351,"column":5}},"loc":{"start":{"line":351,"column":23},"end":{"line":356,"column":5}},"line":351},"27":{"name":"(anonymous_27)","decl":{"start":{"line":352,"column":23},"end":{"line":352,"column":24}},"loc":{"start":{"line":352,"column":31},"end":{"line":354,"column":9}},"line":352},"28":{"name":"(anonymous_28)","decl":{"start":{"line":376,"column":4},"end":{"line":376,"column":5}},"loc":{"start":{"line":376,"column":10},"end":{"line":379,"column":5}},"line":376},"29":{"name":"(anonymous_29)","decl":{"start":{"line":397,"column":4},"end":{"line":397,"column":5}},"loc":{"start":{"line":397,"column":24},"end":{"line":402,"column":5}},"line":397},"30":{"name":"(anonymous_30)","decl":{"start":{"line":398,"column":23},"end":{"line":398,"column":24}},"loc":{"start":{"line":398,"column":31},"end":{"line":400,"column":9}},"line":398},"31":{"name":"(anonymous_31)","decl":{"start":{"line":420,"column":4},"end":{"line":420,"column":5}},"loc":{"start":{"line":420,"column":30},"end":{"line":423,"column":5}},"line":420},"32":{"name":"(anonymous_32)","decl":{"start":{"line":441,"column":4},"end":{"line":441,"column":5}},"loc":{"start":{"line":441,"column":16},"end":{"line":444,"column":5}},"line":441},"33":{"name":"(anonymous_33)","decl":{"start":{"line":462,"column":4},"end":{"line":462,"column":5}},"loc":{"start":{"line":462,"column":13},"end":{"line":467,"column":5}},"line":462},"34":{"name":"(anonymous_34)","decl":{"start":{"line":463,"column":23},"end":{"line":463,"column":24}},"loc":{"start":{"line":463,"column":31},"end":{"line":465,"column":9}},"line":463},"35":{"name":"(anonymous_35)","decl":{"start":{"line":486,"column":4},"end":{"line":486,"column":5}},"loc":{"start":{"line":486,"column":17},"end":{"line":489,"column":5}},"line":486},"36":{"name":"(anonymous_36)","decl":{"start":{"line":516,"column":4},"end":{"line":516,"column":5}},"loc":{"start":{"line":516,"column":11},"end":{"line":530,"column":5}},"line":516},"37":{"name":"(anonymous_37)","decl":{"start":{"line":523,"column":19},"end":{"line":523,"column":20}},"loc":{"start":{"line":523,"column":24},"end":{"line":526,"column":9}},"line":523},"38":{"name":"(anonymous_38)","decl":{"start":{"line":527,"column":21},"end":{"line":527,"column":22}},"loc":{"start":{"line":527,"column":27},"end":{"line":529,"column":9}},"line":527},"39":{"name":"(anonymous_39)","decl":{"start":{"line":547,"column":4},"end":{"line":547,"column":5}},"loc":{"start":{"line":547,"column":15},"end":{"line":554,"column":5}},"line":547},"40":{"name":"(anonymous_40)","decl":{"start":{"line":555,"column":4},"end":{"line":555,"column":5}},"loc":{"start":{"line":555,"column":27},"end":{"line":558,"column":5}},"line":555},"41":{"name":"(anonymous_41)","decl":{"start":{"line":559,"column":4},"end":{"line":559,"column":5}},"loc":{"start":{"line":559,"column":38},"end":{"line":561,"column":5}},"line":559},"42":{"name":"(anonymous_42)","decl":{"start":{"line":562,"column":4},"end":{"line":562,"column":5}},"loc":{"start":{"line":562,"column":18},"end":{"line":568,"column":5}},"line":562},"43":{"name":"(anonymous_43)","decl":{"start":{"line":569,"column":4},"end":{"line":569,"column":5}},"loc":{"start":{"line":569,"column":19},"end":{"line":571,"column":5}},"line":569},"44":{"name":"(anonymous_44)","decl":{"start":{"line":572,"column":4},"end":{"line":572,"column":5}},"loc":{"start":{"line":572,"column":21},"end":{"line":578,"column":5}},"line":572},"45":{"name":"(anonymous_45)","decl":{"start":{"line":579,"column":4},"end":{"line":579,"column":5}},"loc":{"start":{"line":579,"column":22},"end":{"line":591,"column":5}},"line":579},"46":{"name":"(anonymous_46)","decl":{"start":{"line":583,"column":28},"end":{"line":583,"column":29}},"loc":{"start":{"line":583,"column":37},"end":{"line":590,"column":9}},"line":583},"47":{"name":"(anonymous_47)","decl":{"start":{"line":586,"column":26},"end":{"line":586,"column":27}},"loc":{"start":{"line":586,"column":34},"end":{"line":588,"column":13}},"line":586},"48":{"name":"(anonymous_48)","decl":{"start":{"line":592,"column":4},"end":{"line":592,"column":5}},"loc":{"start":{"line":592,"column":38},"end":{"line":609,"column":5}},"line":592},"49":{"name":"(anonymous_49)","decl":{"start":{"line":599,"column":17},"end":{"line":599,"column":18}},"loc":{"start":{"line":599,"column":25},"end":{"line":606,"column":9}},"line":599},"50":{"name":"(anonymous_50)","decl":{"start":{"line":610,"column":4},"end":{"line":610,"column":5}},"loc":{"start":{"line":610,"column":21},"end":{"line":615,"column":5}},"line":610}},"branchMap":{"0":{"loc":{"start":{"line":27,"column":4},"end":{"line":29,"column":5}},"type":"if","locations":[{"start":{"line":27,"column":4},"end":{"line":29,"column":5}},{"start":{"line":27,"column":4},"end":{"line":29,"column":5}}],"line":27},"1":{"loc":{"start":{"line":557,"column":15},"end":{"line":557,"column":64}},"type":"binary-expr","locations":[{"start":{"line":557,"column":15},"end":{"line":557,"column":39}},{"start":{"line":557,"column":43},"end":{"line":557,"column":64}}],"line":557},"2":{"loc":{"start":{"line":560,"column":16},"end":{"line":560,"column":86}},"type":"binary-expr","locations":[{"start":{"line":560,"column":16},"end":{"line":560,"column":43}},{"start":{"line":560,"column":48},"end":{"line":560,"column":63}},{"start":{"line":560,"column":67},"end":{"line":560,"column":85}}],"line":560},"3":{"loc":{"start":{"line":564,"column":8},"end":{"line":566,"column":9}},"type":"if","locations":[{"start":{"line":564,"column":8},"end":{"line":566,"column":9}},{"start":{"line":564,"column":8},"end":{"line":566,"column":9}}],"line":564},"4":{"loc":{"start":{"line":577,"column":15},"end":{"line":577,"column":79}},"type":"cond-expr","locations":[{"start":{"line":577,"column":38},"end":{"line":577,"column":71}},{"start":{"line":577,"column":74},"end":{"line":577,"column":79}}],"line":577},"5":{"loc":{"start":{"line":584,"column":12},"end":{"line":585,"column":57}},"type":"if","locations":[{"start":{"line":584,"column":12},"end":{"line":585,"column":57}},{"start":{"line":584,"column":12},"end":{"line":585,"column":57}}],"line":584},"6":{"loc":{"start":{"line":593,"column":8},"end":{"line":594,"column":22}},"type":"if","locations":[{"start":{"line":593,"column":8},"end":{"line":594,"column":22}},{"start":{"line":593,"column":8},"end":{"line":594,"column":22}}],"line":593},"7":{"loc":{"start":{"line":595,"column":25},"end":{"line":597,"column":38}},"type":"cond-expr","locations":[{"start":{"line":596,"column":14},"end":{"line":596,"column":42}},{"start":{"line":597,"column":14},"end":{"line":597,"column":38}}],"line":595},"8":{"loc":{"start":{"line":600,"column":12},"end":{"line":604,"column":13}},"type":"if","locations":[{"start":{"line":600,"column":12},"end":{"line":604,"column":13}},{"start":{"line":600,"column":12},"end":{"line":604,"column":13}}],"line":600},"9":{"loc":{"start":{"line":601,"column":16},"end":{"line":602,"column":44}},"type":"if","locations":[{"start":{"line":601,"column":16},"end":{"line":602,"column":44}},{"start":{"line":601,"column":16},"end":{"line":602,"column":44}}],"line":601},"10":{"loc":{"start":{"line":611,"column":22},"end":{"line":613,"column":51}},"type":"cond-expr","locations":[{"start":{"line":612,"column":14},"end":{"line":612,"column":30}},{"start":{"line":613,"column":14},"end":{"line":613,"column":51}}],"line":611}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":197,"11":264,"12":131,"13":8,"14":28,"15":8,"16":3,"17":5,"18":61,"19":61,"20":61,"21":61,"22":61,"23":61,"24":61,"25":61,"26":61,"27":1,"28":1,"29":3,"30":15,"31":15,"32":3,"33":3,"34":15,"35":15,"36":3,"37":3,"38":15,"39":15,"40":3,"41":44,"42":44,"43":61,"44":61,"45":6,"46":6,"47":6,"48":8,"49":6,"50":6,"51":6,"52":20,"53":6,"54":10,"55":37,"56":37,"57":10,"58":1,"59":1,"60":1,"61":7,"62":64,"63":7,"64":4,"65":4,"66":2,"67":9,"68":2,"69":2,"70":2,"71":4,"72":4,"73":1,"74":1,"75":1,"76":4,"77":4,"78":55,"79":55,"80":55,"81":55,"82":2,"83":1,"84":55,"85":3,"86":3,"87":3,"88":137,"89":135,"90":137,"91":58,"92":58,"93":4,"94":54,"95":58,"96":3,"97":3,"98":3,"99":3,"100":3,"101":58,"102":58,"103":58,"104":56,"105":56,"106":3,"107":53,"108":113,"109":53,"110":99,"111":7,"112":90,"113":90,"114":259,"115":38,"116":31,"117":38,"118":221,"119":62,"120":62,"121":1},"f":{"0":197,"1":264,"2":131,"3":8,"4":28,"5":8,"6":61,"7":61,"8":1,"9":3,"10":15,"11":3,"12":15,"13":3,"14":15,"15":44,"16":61,"17":6,"18":6,"19":8,"20":6,"21":20,"22":10,"23":37,"24":1,"25":1,"26":7,"27":64,"28":4,"29":2,"30":9,"31":2,"32":4,"33":1,"34":1,"35":4,"36":55,"37":2,"38":55,"39":3,"40":137,"41":137,"42":58,"43":58,"44":3,"45":58,"46":56,"47":113,"48":99,"49":259,"50":62},"b":{"0":[3,5],"1":[135,23],"2":[137,125,16],"3":[4,54],"4":[1,2],"5":[3,53],"6":[7,90],"7":[7,83],"8":[38,221],"9":[31,7],"10":[4,58]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"52cae3c25abf1fc81f5caf5d54e66ae92c29b1b2"},"/Users/spragn01/workspace/node/filehound/src/functions.ts":{"path":"/Users/spragn01/workspace/node/filehound/src/functions.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":10},"end":{"line":3,"column":27}},"2":{"start":{"line":5,"column":4},"end":{"line":7,"column":6}},"3":{"start":{"line":6,"column":8},"end":{"line":6,"column":25}},"4":{"start":{"line":9,"column":0},"end":{"line":9,"column":24}},"5":{"start":{"line":11,"column":22},"end":{"line":11,"column":71}},"6":{"start":{"line":12,"column":4},"end":{"line":18,"column":6}},"7":{"start":{"line":13,"column":20},"end":{"line":13,"column":24}},"8":{"start":{"line":14,"column":8},"end":{"line":16,"column":9}},"9":{"start":{"line":15,"column":12},"end":{"line":15,"column":48}},"10":{"start":{"line":17,"column":8},"end":{"line":17,"column":21}},"11":{"start":{"line":20,"column":0},"end":{"line":20,"column":26}}},"fnMap":{"0":{"name":"negate","decl":{"start":{"line":4,"column":9},"end":{"line":4,"column":15}},"loc":{"start":{"line":4,"column":20},"end":{"line":8,"column":1}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":5,"column":11},"end":{"line":5,"column":12}},"loc":{"start":{"line":5,"column":27},"end":{"line":7,"column":5}},"line":5},"2":{"name":"compose","decl":{"start":{"line":10,"column":9},"end":{"line":10,"column":16}},"loc":{"start":{"line":10,"column":23},"end":{"line":19,"column":1}},"line":10},"3":{"name":"(anonymous_3)","decl":{"start":{"line":12,"column":11},"end":{"line":12,"column":12}},"loc":{"start":{"line":12,"column":19},"end":{"line":18,"column":5}},"line":12}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":22},"end":{"line":11,"column":71}},"type":"cond-expr","locations":[{"start":{"line":11,"column":43},"end":{"line":11,"column":64}},{"start":{"line":11,"column":67},"end":{"line":11,"column":71}}],"line":11},"1":{"loc":{"start":{"line":15,"column":20},"end":{"line":15,"column":47}},"type":"binary-expr","locations":[{"start":{"line":15,"column":20},"end":{"line":15,"column":25}},{"start":{"line":15,"column":29},"end":{"line":15,"column":47}}],"line":15}},"s":{"0":1,"1":1,"2":12,"3":81,"4":1,"5":58,"6":58,"7":301,"8":301,"9":208,"10":301,"11":1},"f":{"0":12,"1":81,"2":58,"3":301},"b":{"0":[0,58],"1":[208,206]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"51e2abc662f50a320b96a9bb3df8001104e9c307"},"/Users/spragn01/workspace/node/filehound/src/files.ts":{"path":"/Users/spragn01/workspace/node/filehound/src/files.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":10},"end":{"line":3,"column":27}},"2":{"start":{"line":4,"column":13},"end":{"line":4,"column":28}},"3":{"start":{"line":5,"column":11},"end":{"line":5,"column":24}},"4":{"start":{"line":7,"column":4},"end":{"line":7,"column":23}},"5":{"start":{"line":10,"column":17},"end":{"line":10,"column":32}},"6":{"start":{"line":11,"column":4},"end":{"line":11,"column":57}},"7":{"start":{"line":14,"column":4},"end":{"line":14,"column":29}},"8":{"start":{"line":17,"column":4},"end":{"line":19,"column":19}},"9":{"start":{"line":21,"column":0},"end":{"line":21,"column":26}},"10":{"start":{"line":23,"column":4},"end":{"line":25,"column":7}},"11":{"start":{"line":24,"column":8},"end":{"line":24,"column":69}},"12":{"start":{"line":28,"column":4},"end":{"line":32,"column":29}},"13":{"start":{"line":30,"column":8},"end":{"line":30,"column":46}},"14":{"start":{"line":34,"column":0},"end":{"line":34,"column":48}},"15":{"start":{"line":36,"column":4},"end":{"line":38,"column":6}},"16":{"start":{"line":37,"column":8},"end":{"line":37,"column":42}},"17":{"start":{"line":40,"column":0},"end":{"line":40,"column":42}},"18":{"start":{"line":42,"column":17},"end":{"line":42,"column":26}},"19":{"start":{"line":43,"column":4},"end":{"line":48,"column":5}},"20":{"start":{"line":44,"column":8},"end":{"line":46,"column":9}},"21":{"start":{"line":45,"column":12},"end":{"line":45,"column":24}},"22":{"start":{"line":47,"column":8},"end":{"line":47,"column":35}},"23":{"start":{"line":49,"column":4},"end":{"line":49,"column":17}},"24":{"start":{"line":51,"column":0},"end":{"line":51,"column":40}},"25":{"start":{"line":53,"column":4},"end":{"line":55,"column":5}},"26":{"start":{"line":54,"column":8},"end":{"line":54,"column":27}},"27":{"start":{"line":56,"column":20},"end":{"line":56,"column":58}},"28":{"start":{"line":57,"column":4},"end":{"line":57,"column":56}},"29":{"start":{"line":59,"column":0},"end":{"line":59,"column":34}}},"fnMap":{"0":{"name":"flatten","decl":{"start":{"line":6,"column":9},"end":{"line":6,"column":16}},"loc":{"start":{"line":6,"column":23},"end":{"line":8,"column":1}},"line":6},"1":{"name":"hasParent","decl":{"start":{"line":9,"column":9},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":12,"column":1}},"line":9},"2":{"name":"getParent","decl":{"start":{"line":13,"column":9},"end":{"line":13,"column":18}},"loc":{"start":{"line":13,"column":24},"end":{"line":15,"column":1}},"line":13},"3":{"name":"getRoot","decl":{"start":{"line":16,"column":9},"end":{"line":16,"column":16}},"loc":{"start":{"line":16,"column":22},"end":{"line":20,"column":1}},"line":16},"4":{"name":"getSubDirectories","decl":{"start":{"line":22,"column":9},"end":{"line":22,"column":26}},"loc":{"start":{"line":22,"column":43},"end":{"line":26,"column":1}},"line":22},"5":{"name":"(anonymous_5)","decl":{"start":{"line":23,"column":27},"end":{"line":23,"column":28}},"loc":{"start":{"line":23,"column":40},"end":{"line":25,"column":5}},"line":23},"6":{"name":"findSubDirectories","decl":{"start":{"line":27,"column":9},"end":{"line":27,"column":27}},"loc":{"start":{"line":27,"column":35},"end":{"line":33,"column":1}},"line":27},"7":{"name":"(anonymous_7)","decl":{"start":{"line":29,"column":13},"end":{"line":29,"column":14}},"loc":{"start":{"line":29,"column":21},"end":{"line":31,"column":5}},"line":29},"8":{"name":"notSubDirectory","decl":{"start":{"line":35,"column":9},"end":{"line":35,"column":24}},"loc":{"start":{"line":35,"column":34},"end":{"line":39,"column":1}},"line":35},"9":{"name":"(anonymous_9)","decl":{"start":{"line":36,"column":11},"end":{"line":36,"column":12}},"loc":{"start":{"line":36,"column":19},"end":{"line":38,"column":5}},"line":36},"10":{"name":"isSubDirectory","decl":{"start":{"line":41,"column":9},"end":{"line":41,"column":23}},"loc":{"start":{"line":41,"column":41},"end":{"line":50,"column":1}},"line":41},"11":{"name":"reducePaths","decl":{"start":{"line":52,"column":9},"end":{"line":52,"column":20}},"loc":{"start":{"line":52,"column":34},"end":{"line":58,"column":1}},"line":52}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":11},"end":{"line":11,"column":56}},"type":"binary-expr","locations":[{"start":{"line":11,"column":11},"end":{"line":11,"column":17}},{"start":{"line":11,"column":22},"end":{"line":11,"column":37}},{"start":{"line":11,"column":41},"end":{"line":11,"column":55}}],"line":11},"1":{"loc":{"start":{"line":17,"column":11},"end":{"line":19,"column":18}},"type":"cond-expr","locations":[{"start":{"line":18,"column":10},"end":{"line":18,"column":43}},{"start":{"line":19,"column":10},"end":{"line":19,"column":18}}],"line":17},"2":{"loc":{"start":{"line":24,"column":15},"end":{"line":24,"column":68}},"type":"binary-expr","locations":[{"start":{"line":24,"column":15},"end":{"line":24,"column":33}},{"start":{"line":24,"column":37},"end":{"line":24,"column":68}}],"line":24},"3":{"loc":{"start":{"line":44,"column":8},"end":{"line":46,"column":9}},"type":"if","locations":[{"start":{"line":44,"column":8},"end":{"line":46,"column":9}},{"start":{"line":44,"column":8},"end":{"line":46,"column":9}}],"line":44},"4":{"loc":{"start":{"line":53,"column":4},"end":{"line":55,"column":5}},"type":"if","locations":[{"start":{"line":53,"column":4},"end":{"line":55,"column":5}},{"start":{"line":53,"column":4},"end":{"line":55,"column":5}}],"line":53}},"s":{"0":1,"1":1,"2":1,"3":1,"4":14,"5":158,"6":158,"7":130,"8":159,"9":1,"10":14,"11":42,"12":5,"13":14,"14":1,"15":7,"16":16,"17":1,"18":28,"19":28,"20":132,"21":2,"22":130,"23":26,"24":1,"25":58,"26":53,"27":5,"28":5,"29":1},"f":{"0":14,"1":158,"2":130,"3":159,"4":14,"5":42,"6":5,"7":14,"8":7,"9":16,"10":28,"11":58},"b":{"0":[158,158,144],"1":[0,159],"2":[42,28],"3":[2,130],"4":[53,5]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"508d9581314b142d979cd5ce56b62b1780a97d49"},"/Users/spragn01/workspace/node/filehound/src/arrays.ts":{"path":"/Users/spragn01/workspace/node/filehound/src/arrays.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":10},"end":{"line":3,"column":27}},"2":{"start":{"line":5,"column":4},"end":{"line":5,"column":30}},"3":{"start":{"line":7,"column":0},"end":{"line":7,"column":20}},"4":{"start":{"line":9,"column":4},"end":{"line":10,"column":23}},"5":{"start":{"line":10,"column":8},"end":{"line":10,"column":23}},"6":{"start":{"line":11,"column":4},"end":{"line":11,"column":44}},"7":{"start":{"line":13,"column":0},"end":{"line":13,"column":20}}},"fnMap":{"0":{"name":"copy","decl":{"start":{"line":4,"column":9},"end":{"line":4,"column":13}},"loc":{"start":{"line":4,"column":21},"end":{"line":6,"column":1}},"line":4},"1":{"name":"from","decl":{"start":{"line":8,"column":9},"end":{"line":8,"column":13}},"loc":{"start":{"line":8,"column":20},"end":{"line":12,"column":1}},"line":8}},"branchMap":{"0":{"loc":{"start":{"line":9,"column":4},"end":{"line":10,"column":23}},"type":"if","locations":[{"start":{"line":9,"column":4},"end":{"line":10,"column":23}},{"start":{"line":9,"column":4},"end":{"line":10,"column":23}}],"line":9}},"s":{"0":1,"1":1,"2":62,"3":1,"4":74,"5":3,"6":71,"7":1},"f":{"0":62,"1":74},"b":{"0":[3,71]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"06a0013cad6298f216215ed7ac66c2ccc5abe412"}}
|