@dbx-tools/path 0.9.154 → 0.9.158

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/index.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  // Hand edits are overwritten on the next watch; this file is read-only.
4
4
 
5
5
  export const PACKAGE_IDENTIFIER = "@dbx-tools/path";
6
- export const PACKAGE_VERSION = "0.9.154";
6
+ export const PACKAGE_VERSION = "0.9.158";
7
7
  export * as find from "./src/find.ts";
8
8
  export * as gitIgnore from "./src/git-ignore.ts";
9
9
  export * as ignore from "./src/ignore.ts";
@@ -11,11 +11,16 @@ export * as match from "./src/match.ts";
11
11
  export * as pattern from "./src/pattern.ts";
12
12
  export * as scan from "./src/scan.ts";
13
13
  export * as watch from "./src/watch.ts";
14
+ export { findFiles, findFilesSync } from "./src/find.ts";
14
15
  export type { FileFindOptions } from "./src/find.ts";
15
16
  export { GitIgnore } from "./src/git-ignore.ts";
16
17
  export type { GitIgnoreLoadOptions } from "./src/git-ignore.ts";
18
+ export { ignorePatterns, ignorePathMatcher } from "./src/ignore.ts";
17
19
  export type { IgnorePatternOptions } from "./src/ignore.ts";
20
+ export { pathMatchTests, toPathMatcher } from "./src/match.ts";
18
21
  export type { PathMatchPredicate, PathMatcher, PathMatchInput } from "./src/match.ts";
22
+ export { directoryNamePattern, fileExtensionPattern } from "./src/pattern.ts";
19
23
  export { FOLLOW_SYMLINKS_DEFAULT } from "./src/scan.ts";
20
24
  export type { FileScanOptions, FileScanIgnoreOptions } from "./src/scan.ts";
25
+ export { watchFiles } from "./src/watch.ts";
21
26
  export type { FileWatchOptions } from "./src/watch.ts";
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export declare const PACKAGE_IDENTIFIER = "@dbx-tools/path";
2
- export declare const PACKAGE_VERSION = "0.9.154";
2
+ export declare const PACKAGE_VERSION = "0.9.158";
3
3
  export * as find from "./src/find.ts";
4
4
  export * as gitIgnore from "./src/git-ignore.ts";
5
5
  export * as ignore from "./src/ignore.ts";
@@ -7,11 +7,16 @@ export * as match from "./src/match.ts";
7
7
  export * as pattern from "./src/pattern.ts";
8
8
  export * as scan from "./src/scan.ts";
9
9
  export * as watch from "./src/watch.ts";
10
+ export { findFiles, findFilesSync } from "./src/find.ts";
10
11
  export type { FileFindOptions } from "./src/find.ts";
11
12
  export { GitIgnore } from "./src/git-ignore.ts";
12
13
  export type { GitIgnoreLoadOptions } from "./src/git-ignore.ts";
14
+ export { ignorePatterns, ignorePathMatcher } from "./src/ignore.ts";
13
15
  export type { IgnorePatternOptions } from "./src/ignore.ts";
16
+ export { pathMatchTests, toPathMatcher } from "./src/match.ts";
14
17
  export type { PathMatchPredicate, PathMatcher, PathMatchInput } from "./src/match.ts";
18
+ export { directoryNamePattern, fileExtensionPattern } from "./src/pattern.ts";
15
19
  export { FOLLOW_SYMLINKS_DEFAULT } from "./src/scan.ts";
16
20
  export type { FileScanOptions, FileScanIgnoreOptions } from "./src/scan.ts";
21
+ export { watchFiles } from "./src/watch.ts";
17
22
  export type { FileWatchOptions } from "./src/watch.ts";
package/lib/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  // Regenerated from the exporting modules in ./src.
3
3
  // Hand edits are overwritten on the next watch; this file is read-only.
4
4
  export const PACKAGE_IDENTIFIER = "@dbx-tools/path";
5
- export const PACKAGE_VERSION = "0.9.154";
5
+ export const PACKAGE_VERSION = "0.9.158";
6
6
  export * as find from "./src/find.js";
7
7
  export * as gitIgnore from "./src/git-ignore.js";
8
8
  export * as ignore from "./src/ignore.js";
@@ -10,6 +10,11 @@ export * as match from "./src/match.js";
10
10
  export * as pattern from "./src/pattern.js";
11
11
  export * as scan from "./src/scan.js";
12
12
  export * as watch from "./src/watch.js";
13
+ export { findFiles, findFilesSync } from "./src/find.js";
13
14
  export { GitIgnore } from "./src/git-ignore.js";
15
+ export { ignorePatterns, ignorePathMatcher } from "./src/ignore.js";
16
+ export { pathMatchTests, toPathMatcher } from "./src/match.js";
17
+ export { directoryNamePattern, fileExtensionPattern } from "./src/pattern.js";
14
18
  export { FOLLOW_SYMLINKS_DEFAULT } from "./src/scan.js";
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxpQkFBaUIsQ0FBQztBQUNwRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxTQUFTLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxLQUFLLElBQUksTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJaEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfSURFTlRJRklFUiA9IFwiQGRieC10b29scy9wYXRoXCI7XG5leHBvcnQgY29uc3QgUEFDS0FHRV9WRVJTSU9OID0gXCIwLjkuMTU0XCI7XG5leHBvcnQgKiBhcyBmaW5kIGZyb20gXCIuL3NyYy9maW5kLnRzXCI7XG5leHBvcnQgKiBhcyBnaXRJZ25vcmUgZnJvbSBcIi4vc3JjL2dpdC1pZ25vcmUudHNcIjtcbmV4cG9ydCAqIGFzIGlnbm9yZSBmcm9tIFwiLi9zcmMvaWdub3JlLnRzXCI7XG5leHBvcnQgKiBhcyBtYXRjaCBmcm9tIFwiLi9zcmMvbWF0Y2gudHNcIjtcbmV4cG9ydCAqIGFzIHBhdHRlcm4gZnJvbSBcIi4vc3JjL3BhdHRlcm4udHNcIjtcbmV4cG9ydCAqIGFzIHNjYW4gZnJvbSBcIi4vc3JjL3NjYW4udHNcIjtcbmV4cG9ydCAqIGFzIHdhdGNoIGZyb20gXCIuL3NyYy93YXRjaC50c1wiO1xuZXhwb3J0IHR5cGUgeyBGaWxlRmluZE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvZmluZC50c1wiO1xuZXhwb3J0IHsgR2l0SWdub3JlIH0gZnJvbSBcIi4vc3JjL2dpdC1pZ25vcmUudHNcIjtcbmV4cG9ydCB0eXBlIHsgR2l0SWdub3JlTG9hZE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvZ2l0LWlnbm9yZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBJZ25vcmVQYXR0ZXJuT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9pZ25vcmUudHNcIjtcbmV4cG9ydCB0eXBlIHsgUGF0aE1hdGNoUHJlZGljYXRlLCBQYXRoTWF0Y2hlciwgUGF0aE1hdGNoSW5wdXQgfSBmcm9tIFwiLi9zcmMvbWF0Y2gudHNcIjtcbmV4cG9ydCB7IEZPTExPV19TWU1MSU5LU19ERUZBVUxUIH0gZnJvbSBcIi4vc3JjL3NjYW4udHNcIjtcbmV4cG9ydCB0eXBlIHsgRmlsZVNjYW5PcHRpb25zLCBGaWxlU2Nhbklnbm9yZU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvc2Nhbi50c1wiO1xuZXhwb3J0IHR5cGUgeyBGaWxlV2F0Y2hPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3dhdGNoLnRzXCI7XG4iXX0=
19
+ export { watchFiles } from "./src/watch.js";
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxpQkFBaUIsQ0FBQztBQUNwRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxTQUFTLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxLQUFLLElBQUksTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdFTkVSQVRFRCBieSBwcm9qZW4gd2F0Y2ggLSBETyBOT1QgRURJVC5cbi8vIFJlZ2VuZXJhdGVkIGZyb20gdGhlIGV4cG9ydGluZyBtb2R1bGVzIGluIC4vc3JjLlxuLy8gSGFuZCBlZGl0cyBhcmUgb3ZlcndyaXR0ZW4gb24gdGhlIG5leHQgd2F0Y2g7IHRoaXMgZmlsZSBpcyByZWFkLW9ubHkuXG5cbmV4cG9ydCBjb25zdCBQQUNLQUdFX0lERU5USUZJRVIgPSBcIkBkYngtdG9vbHMvcGF0aFwiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9IFwiMC45LjE1OFwiO1xuZXhwb3J0ICogYXMgZmluZCBmcm9tIFwiLi9zcmMvZmluZC50c1wiO1xuZXhwb3J0ICogYXMgZ2l0SWdub3JlIGZyb20gXCIuL3NyYy9naXQtaWdub3JlLnRzXCI7XG5leHBvcnQgKiBhcyBpZ25vcmUgZnJvbSBcIi4vc3JjL2lnbm9yZS50c1wiO1xuZXhwb3J0ICogYXMgbWF0Y2ggZnJvbSBcIi4vc3JjL21hdGNoLnRzXCI7XG5leHBvcnQgKiBhcyBwYXR0ZXJuIGZyb20gXCIuL3NyYy9wYXR0ZXJuLnRzXCI7XG5leHBvcnQgKiBhcyBzY2FuIGZyb20gXCIuL3NyYy9zY2FuLnRzXCI7XG5leHBvcnQgKiBhcyB3YXRjaCBmcm9tIFwiLi9zcmMvd2F0Y2gudHNcIjtcbmV4cG9ydCB7IGZpbmRGaWxlcywgZmluZEZpbGVzU3luYyB9IGZyb20gXCIuL3NyYy9maW5kLnRzXCI7XG5leHBvcnQgdHlwZSB7IEZpbGVGaW5kT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9maW5kLnRzXCI7XG5leHBvcnQgeyBHaXRJZ25vcmUgfSBmcm9tIFwiLi9zcmMvZ2l0LWlnbm9yZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBHaXRJZ25vcmVMb2FkT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9naXQtaWdub3JlLnRzXCI7XG5leHBvcnQgeyBpZ25vcmVQYXR0ZXJucywgaWdub3JlUGF0aE1hdGNoZXIgfSBmcm9tIFwiLi9zcmMvaWdub3JlLnRzXCI7XG5leHBvcnQgdHlwZSB7IElnbm9yZVBhdHRlcm5PcHRpb25zIH0gZnJvbSBcIi4vc3JjL2lnbm9yZS50c1wiO1xuZXhwb3J0IHsgcGF0aE1hdGNoVGVzdHMsIHRvUGF0aE1hdGNoZXIgfSBmcm9tIFwiLi9zcmMvbWF0Y2gudHNcIjtcbmV4cG9ydCB0eXBlIHsgUGF0aE1hdGNoUHJlZGljYXRlLCBQYXRoTWF0Y2hlciwgUGF0aE1hdGNoSW5wdXQgfSBmcm9tIFwiLi9zcmMvbWF0Y2gudHNcIjtcbmV4cG9ydCB7IGRpcmVjdG9yeU5hbWVQYXR0ZXJuLCBmaWxlRXh0ZW5zaW9uUGF0dGVybiB9IGZyb20gXCIuL3NyYy9wYXR0ZXJuLnRzXCI7XG5leHBvcnQgeyBGT0xMT1dfU1lNTElOS1NfREVGQVVMVCB9IGZyb20gXCIuL3NyYy9zY2FuLnRzXCI7XG5leHBvcnQgdHlwZSB7IEZpbGVTY2FuT3B0aW9ucywgRmlsZVNjYW5JZ25vcmVPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3NjYW4udHNcIjtcbmV4cG9ydCB7IHdhdGNoRmlsZXMgfSBmcm9tIFwiLi9zcmMvd2F0Y2gudHNcIjtcbmV4cG9ydCB0eXBlIHsgRmlsZVdhdGNoT3B0aW9ucyB9IGZyb20gXCIuL3NyYy93YXRjaC50c1wiO1xuIl19
package/lib/src/find.js CHANGED
@@ -8,7 +8,7 @@
8
8
  *
9
9
  * @module
10
10
  */
11
- import { object } from "@dbx-tools/shared-core";
11
+ import { sequence } from "@dbx-tools/shared-core";
12
12
  import { globIterate, globIterateSync } from "glob";
13
13
  import { GitIgnore } from "./git-ignore.js";
14
14
  import { ignorePathMatcher } from "./ignore.js";
@@ -25,7 +25,7 @@ export async function* findFiles(pattern, options) {
25
25
  }
26
26
  /** Synchronous counterpart to {@link findFiles}. */
27
27
  export function findFilesSync(pattern, options) {
28
- return object.sequence(globIterateSync(pattern, toGlobOptionsSync(options)));
28
+ return sequence(globIterateSync(pattern, toGlobOptionsSync(options)));
29
29
  }
30
30
  async function toGlobOptions(options) {
31
31
  const { cwd, ignoreOptions, followSymlinks } = options ?? {};
@@ -140,4 +140,4 @@ if (import.meta.main) {
140
140
  const elapsed = performance.now() - startTime;
141
141
  console.log(`Elapsed: ${elapsed}ms`);
142
142
  }
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7R0FTRztBQUVILE9BQU8sRUFBRSxNQUFNLEVBQWlCLE1BQU0sd0JBQXdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQWtELE1BQU0sTUFBTSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUErQixjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hGLE9BQU8sRUFBMEMsdUJBQXVCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFlNUY7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQzlCLE9BQTBCLEVBQzFCLE9BQXlCO0lBRXpCLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBRUQsb0RBQW9EO0FBQ3BELE1BQU0sVUFBVSxhQUFhLENBQzNCLE9BQTBCLEVBQzFCLE9BQXlCO0lBRXpCLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvRSxDQUFDO0FBRUQsS0FBSyxVQUFVLGFBQWEsQ0FDMUIsT0FBb0M7SUFFcEMsTUFBTSxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUM3RCxNQUFNLElBQUksR0FBRyxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2xDLE1BQU0sU0FBUyxHQUFHLGFB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QztRQUNmLENBQUM7UUFDRCxHQUFHLENBQUMsTUFBTTtZQUNSLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxQixhQUFhLEdBQUcsYUFBYSxDQUFDLEVBQUUsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzlELENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELHVFQUF1RTtBQUN2RSx5RUFBeUU7QUFDekUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNwQyxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFFaEMsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRTtRQUNoQyxNQUFNLEVBQUUsQ0FBQyxhQUFhLEVBQUUsZUFBZSxFQUFFLFNBQVMsQ0FBQztRQUNuRCxhQUFhLEVBQUU7WUFDYixJQUFJLEVBQUUsSUFBSTtTQUNYO0tBQ0YsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxLQUFLLEVBQUUsTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDL0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBQ0QsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FBQztJQUM5QyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksT0FBTyxJQUFJLENBQUMsQ0FBQztBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXBvc2l0b3J5LWNvbnNpc3RlbnQgZmlsZSBkaXNjb3Zlcnkgb3ZlciBgZ2xvYmAuXG4gKlxuICogUmV1c2Uge0BsaW5rIGZpbmRGaWxlc30gb3Ige0BsaW5rIGZpbmRGaWxlc1N5bmN9IHdoZW4gcGFja2FnZSBkaXNjb3ZlcnksXG4gKiBnZW5lcmF0aW9uLCBjbGVhbnVwLCBvciBkb2NzIHRvb2xpbmcgbXVzdCBob25vciB0aGUgc2FtZSBpZ25vcmUgY2F0YWxvZ3VlIGFuZFxuICogc3ltbGluayBkZWZhdWx0cyBhcyB3YXRjaGVycy4gRGlyZWN0IGBnbG9iYCBjYWxscyBzaG91bGQgYmUgcmVzZXJ2ZWQgZm9yXG4gKiBiZWhhdmlvciB0aGF0IGludGVudGlvbmFsbHkgZGlmZmVycy5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgb2JqZWN0LCB0eXBlIFNlcXVlbmNlIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7IGdsb2JJdGVyYXRlLCBnbG9iSXRlcmF0ZVN5bmMsIElnbm9yZUxpa2UsIHR5cGUgR2xvYk9wdGlvbnNXaXRoRmlsZVR5cGVzVW5zZXQgfSBmcm9tIFwiZ2xvYlwiO1xuaW1wb3J0IHsgR2l0SWdub3JlIH0gZnJvbSBcIi4vZ2l0LWlnbm9yZS50c1wiO1xuaW1wb3J0IHsgaWdub3JlUGF0aE1hdGNoZXIgfSBmcm9tIFwiLi9pZ25vcmUudHNcIjtcbmltcG9ydCB7IFBhdGhNYXRjaGVyLCBQYXRoTWF0Y2hJbnB1dCwgcGF0aE1hdGNoVGVzdHMsIHRvUGF0aE1hdGNoZXIgfSBmcm9tIFwiLi9tYXRjaC50c1wiO1xuaW1wb3J0IHsgRmlsZVNjYW5JZ25vcmVPcHRpb25zLCBGaWxlU2Nhbk9wdGlvbnMsIEZPTExPV19TWU1MSU5LU19ERUZBVUxUIH0gZnJvbSBcIi4vc2Nhbi50c1wiO1xuXG50eXBlIEZpbGVGaW5kSWdub3JlID0gUGF0aE1hdGNoSW5wdXQgfCByZWFkb25seSBQYXRoTWF0Y2hJbnB1dFtdIHwgSWdub3JlTGlrZTtcblxuLyoqIEdsb2IsIHJvb3QsIGlnbm9yZSwgYW5kIHN5bWxpbmsgb3B0aW9ucyBmb3Ige0BsaW5rIGZpbmRGaWxlc30gYW5kIHtAbGluayBmaW5kRmlsZXNTeW5jfS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZUZpbmRPcHRpb25zXG4gIGV4dGVuZHNcbiAgICBPbWl0PFxuICAgICAgR2xvYk9wdGlvbnNXaXRoRmlsZVR5cGVzVW5zZXQsXG4gICAgICBcImlnbm9yZVwiIHwgXCJmb2xsb3dcIiB8IFwiZG90XCIgfCBcImN3ZFwiIHwgXCJpbmNsdWRlQ2hpbGRNYXRjaGVzXCJcbiAgICA+LFxuICAgIE9taXQ8RmlsZVNjYW5PcHRpb25zLCBcImlnbm9yZVwiIHwgXCJjd2RcIj4ge1xuICBjd2Q/OiBzdHJpbmcgfCBVUkw7XG4gIGlnbm9yZT86IEZpbGVGaW5kSWdub3JlO1xufVxuLyoqXG4gKiBSZWN1cnNpdmVseSBsaXN0cyBmaWxlcyBtYXRjaGluZyBgcGF0dGVybmAsIGlnbm9yaW5nIHRoZSBzaGFyZWQgZGVmYXVsdCBncm91cHNcbiAqIHBsdXMgYW55IGNhbGxlciBgaWdub3JlYCBwYXR0ZXJucyAodW5sZXNzIGBpZ25vcmVgIGlzIGEgbG9uZSBwcmVkaWNhdGUgZnVuY3Rpb24sXG4gKiBpbiB3aGljaCBjYXNlIG9ubHkgdGhhdCBwcmVkaWNhdGUgYXBwbGllcykuIFRoZSBpZ25vcmUgbGlzdCBtaXJyb3JzIHdoYXRcbiAqIHtAbGluayB3YXRjaEZpbGVzfSBmZWVkcyB0aHJvdWdoIGl0cyBtYXRjaGVycy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uKiBmaW5kRmlsZXMoXG4gIHBhdHRlcm46IHN0cmluZyB8IHN0cmluZ1tdLFxuICBvcHRpb25zPzogRmlsZUZpbmRPcHRpb25zLFxuKTogQXN5bmNHZW5lcmF0b3I8c3RyaW5nPiB7XG4gIHlpZWxkKiBnbG9iSXRlcmF0ZShwYXR0ZXJuLCBhd2FpdCB0b0dsb2JPcHRpb25zKG9wdGlvbnMpKTtcbn1cblxuLyoqIFN5bmNocm9ub3VzIGNvdW50ZXJwYXJ0IHRvIHtAbGluayBmaW5kRmlsZXN9LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRGaWxlc1N5bmMoXG4gIHBhdHRlcm46IHN0cmluZyB8IHN0cmluZ1tdLFxuICBvcHRpb25zPzogRmlsZUZpbmRPcHRpb25zLFxuKTogU2VxdWVuY2U8c3RyaW5nPiB7XG4gIHJldHVybiBvYmplY3Quc2VxdWVuY2UoZ2xvYkl0ZXJhdGVTeW5jKHBhdHRlcm4sIHRvR2xvYk9wdGlvbnNTeW5jKG9wdGlvbnMpKSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHRvR2xvYk9wdGlvbnMoXG4gIG9wdGlvbnM6IEZpbGVGaW5kT3B0aW9ucyB8IHVuZGVmaW5lZCxcbik6IFByb21pc2U8R2xvYk9wdGlvbnNXaXRoRmlsZVR5cGVzVW5zZXQ+IHtcbiAgY29uc3QgeyBjd2QsIGlnbm9yZU9wdGlvbnMsIGZvbGxvd1N5bWxpbmtzIH0gPSBvcHRpb25zID8/IHt9O1xuICBjb25zdCByb290ID0gY3dkID8/IHByb2Nlc3MuY3dkKCk7XG4gIGNvbnN0IGdpdElnbm9yZSA9IGlnbm9yZU9wdGlvbnM/LmdpdFxuICAgID8gYXdhaXQgR2l0SWdub3JlLmxvYWQocm9vdCwgeyBpZ25vcmVPcHRpb25zLCBmb2xsb3dTeW1saW5rcyB9KVxuICAgIDogdW5kZWZpbmVkO1xuICByZXR1cm4gYnVpbGRHbG9iT3B0aW9ucyhvcHRpb25zLCBnaXRJZ25vcmUpO1xufVxuXG5mdW5jdGlvbiB0b0dsb2JPcHRpb25zU3luYyhvcHRpb25zOiBGaWxlRmluZE9wdGlvbnMgfCB1bmRlZmluZWQpOiBHbG9iT3B0aW9uc1dpdGhGaWxlVHlwZXNVbnNldCB7XG4gIGNvbnN0IHsgY3dkLCBpZ25vcmVPcHRpb25zLCBmb2xsb3dTeW1saW5rcyB9ID0gb3B0aW9ucyA/PyB7fTtcbiAgY29uc3Qgcm9vdCA9IGN3ZCA/PyBwcm9jZXNzLmN3ZCgpO1xuICBjb25zdCBnaXRJZ25vcmUgPSBpZ25vcmVPcHRpb25zPy5naXRcbiAgICA/IEdpdElnbm9yZS5sb2FkU3luYyhyb290LCB7IGlnbm9yZU9wdGlvbnMsIGZvbGxvd1N5bWxpbmtzIH0pXG4gICAgOiB1bmRlZmluZWQ7XG4gIHJldHVybiBidWlsZEdsb2JPcHRpb25zKG9wdGlvbnMsIGdpdElnbm9yZSk7XG59XG5cbmZ1bmN0aW9uIGJ1aWxkR2xvYk9wdGlvbnMoXG4gIG9wdGlvbnM6IEZpbGVGaW5kT3B0aW9ucyB8IHVuZGVmaW5lZCxcbiAgZ2l0SWdub3JlOiBHaXRJZ25vcmUgfCB1bmRlZmluZWQsXG4pOiBHbG9iT3B0aW9uc1dpdGhGaWxlVHlwZXNVbnNldCB7XG4gIGNvbnN0IHsgY3dkLCBpZ25vcmUsIGlnbm9yZU9wdGlvbnMsIGZvbGxvd1N5bWxpbmtzLCAuLi5yZXN0T3B0aW9ucyB9ID0gb3B0aW9ucyA/PyB7fTtcbiAgcmV0dXJuIHtcbiAgICAuLi5yZXN0T3B0aW9ucyxcbiAgICBjd2Q6IGN3ZCA/PyBwcm9jZXNzLmN3ZCgpLFxuICAgIGZvbGxvdzogZm9sbG93U3ltbGlua3MgPz8gRk9MTE9XX1NZTUxJTktTX0RFRkFVTFQsXG4gICAgaWdub3JlOiBub3JtYWxpemVJZ25vcmUoaWdub3JlLCBpZ25vcmVPcHRpb25zLCBnaXRJZ25vcmUpLFxuICB9O1xufVxuXG5jb25zdCBJR05PUkVfTElLRV9GSUVMRFMgPSBbXG4gIFwiaWdub3JlZFwiLFxuICBcImNoaWxkcmVuSWdub3JlZFwiLFxuICBcImFkZFwiLFxuXSBhcyBjb25zdCBzYXRpc2ZpZXMgcmVhZG9ubHkgKGtleW9mIElnbm9yZUxpa2UpW107XG5cbmZ1bmN0aW9uIGlzSWdub3JlTGlrZSh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIElnbm9yZUxpa2Uge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHJldHVybiBmYWxzZTtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgIGZvciAoY29uc3QgZmllbGQgb2YgSUdOT1JFX0xJS0VfRklFTERTKSB7XG4gICAgICBpZiAoZmllbGQgaW4gdmFsdWUgJiYgdHlwZW9mICh2YWx1ZSBhcyBhbnkpW2ZpZWxkXSAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuLyoqXG4gKiBCdWlsZHMgdGhlIHtAbGluayBJZ25vcmVMaWtlfSBvYmplY3QgZmlsZSBkaXNjb3ZlcnkgaGFuZHMgdG8gYGdsb2JgLlxuICpcbiAqIEEgY2FsbGVyLXN1cHBsaWVkIGBJZ25vcmVMaWtlYCAoYW4gb2JqZWN0LCBub3Qgc3RyaW5nL2FycmF5KSBpcyBjb25zdWx0ZWRcbiAqIGZpcnN0IC0gaXRzIGBpZ25vcmVkYC9gY2hpbGRyZW5JZ25vcmVkYCB3aW4gLSBhZnRlciB3aGljaCB0aGUgc2hhcmVkXG4gKiB7QGxpbmsgaWdub3JlUGF0aE1hdGNoZXJ9ICh0aGUgc2FtZSBtYXRjaGVyIHtAbGluayB3YXRjaEZpbGVzfSB1c2VzKSBkZWNpZGVzIGJhc2VkIG9uIHRoZVxuICogcGFja2FnZS1yZWxhdGl2ZSBwYXRoLiBgY2FjaGVEaXJlY3RvcnlTdGF0c2AgaXMgZW5hYmxlZCBiZWNhdXNlIGdsb2IgcHJvYmVzXG4gKiBtYW55IHBhdGhzIHBlciBkaXJlY3RvcnkuIENhbGxlciBzdHJpbmcvYXJyYXkgcGF0dGVybnMgYXJlIG1lcmdlZCBpbnRvIHRoZVxuICogbWF0Y2hlciwgYW5kIGBhZGRgIGZvcndhcmRzIHRvIGJvdGggdGhlIGNhbGxlciBvYmplY3QgYW5kIHRoZSBtYXRjaGVyLlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVJZ25vcmUoXG4gIGlnbm9yZTogRmlsZUZpbmRJZ25vcmUgfCB1bmRlZmluZWQsXG4gIGlnbm9yZU9wdGlvbnM6IEZpbGVTY2FuSWdub3JlT3B0aW9ucyB8IHVuZGVmaW5lZCxcbiAgZ2l0SWdub3JlOiBHaXRJZ25vcmUgfCB1bmRlZmluZWQsXG4pOiBJZ25vcmVMaWtlIHtcbiAgY29uc3QgaWdub3JlTGlrZTogSWdub3JlTGlrZSB8IHVuZGVmaW5lZCA9IGlzSWdub3JlTGlrZShpZ25vcmUpID8gaWdub3JlIDogdW5kZWZpbmVkO1xuICBjb25zdCBpZ25vcmVQYXRoTWF0Y2hlcklucHV0czogUGF0aE1hdGNoSW5wdXRbXSB8IHVuZGVmaW5lZCA9XG4gICAgaWdub3JlID09PSB1bmRlZmluZWQgfHwgaWdub3JlTGlrZSA/IHVuZGVmaW5lZCA6IEFycmF5LmlzQXJyYXkoaWdub3JlKSA/IFsuLi5pZ25vcmVdIDogW2lnbm9yZV07XG5cbiAgY29uc3QgcHJlZGljYXRlT25seSA9XG4gICAgaWdub3JlUGF0aE1hdGNoZXJJbnB1dHM/Lmxlbmd0aCA9PT0gMSAmJiB0eXBlb2YgaWdub3JlUGF0aE1hdGNoZXJJbnB1dHNbMF0gPT09IFwiZnVuY3Rpb25cIjtcblxuICBsZXQgaWdub3JlTWF0Y2hlcjogUGF0aE1hdGNoZXIgPSBwcmVkaWNhdGVPbmx5XG4gICAgPyB0b1BhdGhNYXRjaGVyKGlnbm9yZVBhdGhNYXRjaGVySW5wdXRzWzBdKVxuICAgIDogaWdub3JlUGF0aE1hdGNoZXIoaWdub3JlT3B0aW9ucyk7XG4gIGlmIChpZ25vcmVQYXRoTWF0Y2hlcklucHV0cyAmJiAhcHJlZGljYXRlT25seSkge1xuICAgIGlnbm9yZU1hdGNoZXIgPSBpZ25vcmVNYXRjaGVyLm9yKC4uLnBhdGhNYXRjaFRlc3RzKC4uLmlnbm9yZVBhdGhNYXRjaGVySW5wdXRzKSk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBpZ25vcmVkKHBhdGgpIHtcbiAgICAgIGlmIChpZ25vcmVMaWtlPy5pZ25vcmVkPy4ocGF0aCkpIHJldHVybiB0cnVlO1xuICAgICAgY29uc3QgcGF0aGVSZWxhdGl2ZSA9IHBhdGgucmVsYXRpdmUoKTtcbiAgICAgIGlmIChnaXRJZ25vcmU/Lmlnbm9yZXMocGF0aGVSZWxhdGl2ZSwgcGF0aC5pc0RpcmVjdG9yeSgpKSkgcmV0dXJuIHRydWU7XG4gICAgICBjb25zdCBpZ25vcmUgPSBpZ25vcmVNYXRjaGVyKHBhdGhlUmVsYXRpdmUpO1xuICAgICAgcmV0dXJuIGlnbm9yZTtcbiAgICB9LFxuICAgIGNoaWxkcmVuSWdub3JlZChwYXRoKSB7XG4gICAgICBpZiAoaWdub3JlTGlrZT8uY2hpbGRyZW5JZ25vcmVkPy4ocGF0aCkpIHJldHVybiB0cnVlO1xuICAgICAgY29uc3QgcGF0aGVSZWxhdGl2ZSA9IHBhdGgucmVsYXRpdmUoKTtcbiAgICAgIGlmIChwYXRoZVJlbGF0aXZlKSB7XG4gICAgICAgIGlmIChnaXRJZ25vcmU/Lmlnbm9yZXMocGF0aGVSZWxhdGl2ZSwgdHJ1ZSkpIHJldHVybiB0cnVlO1xuICAgICAgICBpZiAoaWdub3JlTWF0Y2hlcihwYXRoZVJlbGF0aXZlKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKGlnbm9yZU1hdGNoZXIocGF0aGVSZWxhdGl2ZSArIFwiL1wiKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSxcbiAgICBhZGQoaWdub3JlKSB7XG4gICAgICBpZ25vcmVMaWtlPy5hZGQ/LihpZ25vcmUpO1xuICAgICAgaWdub3JlTWF0Y2hlciA9IGlnbm9yZU1hdGNoZXIub3IoLi4ucGF0aE1hdGNoVGVzdHMoaWdub3JlKSk7XG4gICAgfSxcbiAgfTtcbn1cblxuLy8gTWFudWFsIGRlbW86IHJ1biB0aGlzIGZpbGUgZGlyZWN0bHkgKGBidW4gc3JjL2ZpbmQudHNgKSB0byBwcmludCB0aGVcbi8vIGZpbGVzIGZpbmRGaWxlcyBrZWVwcyBmb3IgdGhpcyBwYWNrYWdlIHVuZGVyIHRoZSBnaXZlbiBpZ25vcmUgb3B0aW9ucy5cbmlmIChpbXBvcnQubWV0YS5tYWluKSB7XG4gIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICBjb25zdCBjd2QgPSBwcm9jZXNzLmN3ZCgpO1xuICBjb25zb2xlLmxvZyhgU2Nhbm5pbmc6ICR7Y3dkfWApO1xuXG4gIGNvbnN0IGZpbGVzID0gZmluZEZpbGVzKFwiKiovKi4qXCIsIHtcbiAgICBpZ25vcmU6IFtcIioqL2luZGV4LnRzXCIsIFwiKiovZXhhbXBsZS8qKlwiLCBcIioqLyoubWRcIl0sXG4gICAgaWdub3JlT3B0aW9uczoge1xuICAgICAgdGVzdDogdHJ1ZSxcbiAgICB9LFxuICB9KTtcbiAgZm9yIGF3YWl0IChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgY29uc29sZS5sb2coZmlsZSk7XG4gIH1cbiAgY29uc3QgZWxhcHNlZCA9IHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lO1xuICBjb25zb2xlLmxvZyhgRWxhcHNlZDogJHtlbGFwc2VkfW1zYCk7XG59XG4iXX0=
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7R0FTRztBQUVILE9BQU8sRUFBaUIsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQWtELE1BQU0sTUFBTSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUErQixjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hGLE9BQU8sRUFBMEMsdUJBQXVCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFlNUY7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQzlCLE9BQTBCLEVBQzFCLE9BQXlCO0lBRXpCLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBRUQsb0RBQW9EO0FBQ3BELE1BQU0sVUFBVSxhQUFhLENBQzNCLE9BQTBCLEVBQzFCLE9BQXlCO0lBRXpCLE9BQU8sUUFBUSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hFLENBQUM7QUFFRCxLQUFLLFVBQVUsYUFBYSxDQUMxQixPQUFvQztJQUVwQyxNQUFNLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0lBQzdELE1BQU0sSUFBSSxHQUFHLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDbEMsTUFBTSxTQUFTLEdBQUcsYUFBYSxFQUFFLEdB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QztRQUNELEdBQUcsQ0FBQyxNQUFNO1lBQ1IsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFCLGFBQWEsR0FBRyxhQUFhLENBQUMsRUFBRSxDQUFDLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDOUQsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsdUVBQXVFO0FBQ3ZFLHlFQUF5RTtBQUN6RSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3BDLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUVoQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsUUFBUSxFQUFFO1FBQ2hDLE1BQU0sRUFBRSxDQUFDLGFBQWEsRUFBRSxlQUFlLEVBQUUsU0FBUyxDQUFDO1FBQ25ELGFBQWEsRUFBRTtZQUNiLElBQUksRUFBRSxJQUFJO1NBQ1g7S0FDRixDQUFDLENBQUM7SUFDSCxJQUFJLEtBQUssRUFBRSxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFLEdBQUcsU0FBUyxDQUFDO0lBQzlDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxPQUFPLElBQUksQ0FBQyxDQUFDO0FBQ3ZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlcG9zaXRvcnktY29uc2lzdGVudCBmaWxlIGRpc2NvdmVyeSBvdmVyIGBnbG9iYC5cbiAqXG4gKiBSZXVzZSB7QGxpbmsgZmluZEZpbGVzfSBvciB7QGxpbmsgZmluZEZpbGVzU3luY30gd2hlbiBwYWNrYWdlIGRpc2NvdmVyeSxcbiAqIGdlbmVyYXRpb24sIGNsZWFudXAsIG9yIGRvY3MgdG9vbGluZyBtdXN0IGhvbm9yIHRoZSBzYW1lIGlnbm9yZSBjYXRhbG9ndWUgYW5kXG4gKiBzeW1saW5rIGRlZmF1bHRzIGFzIHdhdGNoZXJzLiBEaXJlY3QgYGdsb2JgIGNhbGxzIHNob3VsZCBiZSByZXNlcnZlZCBmb3JcbiAqIGJlaGF2aW9yIHRoYXQgaW50ZW50aW9uYWxseSBkaWZmZXJzLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyB0eXBlIFNlcXVlbmNlLCBzZXF1ZW5jZSB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyBnbG9iSXRlcmF0ZSwgZ2xvYkl0ZXJhdGVTeW5jLCBJZ25vcmVMaWtlLCB0eXBlIEdsb2JPcHRpb25zV2l0aEZpbGVUeXBlc1Vuc2V0IH0gZnJvbSBcImdsb2JcIjtcbmltcG9ydCB7IEdpdElnbm9yZSB9IGZyb20gXCIuL2dpdC1pZ25vcmUudHNcIjtcbmltcG9ydCB7IGlnbm9yZVBhdGhNYXRjaGVyIH0gZnJvbSBcIi4vaWdub3JlLnRzXCI7XG5pbXBvcnQgeyBQYXRoTWF0Y2hlciwgUGF0aE1hdGNoSW5wdXQsIHBhdGhNYXRjaFRlc3RzLCB0b1BhdGhNYXRjaGVyIH0gZnJvbSBcIi4vbWF0Y2gudHNcIjtcbmltcG9ydCB7IEZpbGVTY2FuSWdub3JlT3B0aW9ucywgRmlsZVNjYW5PcHRpb25zLCBGT0xMT1dfU1lNTElOS1NfREVGQVVMVCB9IGZyb20gXCIuL3NjYW4udHNcIjtcblxudHlwZSBGaWxlRmluZElnbm9yZSA9IFBhdGhNYXRjaElucHV0IHwgcmVhZG9ubHkgUGF0aE1hdGNoSW5wdXRbXSB8IElnbm9yZUxpa2U7XG5cbi8qKiBHbG9iLCByb290LCBpZ25vcmUsIGFuZCBzeW1saW5rIG9wdGlvbnMgZm9yIHtAbGluayBmaW5kRmlsZXN9IGFuZCB7QGxpbmsgZmluZEZpbGVzU3luY30uICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVGaW5kT3B0aW9uc1xuICBleHRlbmRzXG4gICAgT21pdDxcbiAgICAgIEdsb2JPcHRpb25zV2l0aEZpbGVUeXBlc1Vuc2V0LFxuICAgICAgXCJpZ25vcmVcIiB8IFwiZm9sbG93XCIgfCBcImRvdFwiIHwgXCJjd2RcIiB8IFwiaW5jbHVkZUNoaWxkTWF0Y2hlc1wiXG4gICAgPixcbiAgICBPbWl0PEZpbGVTY2FuT3B0aW9ucywgXCJpZ25vcmVcIiB8IFwiY3dkXCI+IHtcbiAgY3dkPzogc3RyaW5nIHwgVVJMO1xuICBpZ25vcmU/OiBGaWxlRmluZElnbm9yZTtcbn1cbi8qKlxuICogUmVjdXJzaXZlbHkgbGlzdHMgZmlsZXMgbWF0Y2hpbmcgYHBhdHRlcm5gLCBpZ25vcmluZyB0aGUgc2hhcmVkIGRlZmF1bHQgZ3JvdXBzXG4gKiBwbHVzIGFueSBjYWxsZXIgYGlnbm9yZWAgcGF0dGVybnMgKHVubGVzcyBgaWdub3JlYCBpcyBhIGxvbmUgcHJlZGljYXRlIGZ1bmN0aW9uLFxuICogaW4gd2hpY2ggY2FzZSBvbmx5IHRoYXQgcHJlZGljYXRlIGFwcGxpZXMpLiBUaGUgaWdub3JlIGxpc3QgbWlycm9ycyB3aGF0XG4gKiB7QGxpbmsgd2F0Y2hGaWxlc30gZmVlZHMgdGhyb3VnaCBpdHMgbWF0Y2hlcnMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiogZmluZEZpbGVzKFxuICBwYXR0ZXJuOiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgb3B0aW9ucz86IEZpbGVGaW5kT3B0aW9ucyxcbik6IEFzeW5jR2VuZXJhdG9yPHN0cmluZz4ge1xuICB5aWVsZCogZ2xvYkl0ZXJhdGUocGF0dGVybiwgYXdhaXQgdG9HbG9iT3B0aW9ucyhvcHRpb25zKSk7XG59XG5cbi8qKiBTeW5jaHJvbm91cyBjb3VudGVycGFydCB0byB7QGxpbmsgZmluZEZpbGVzfS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kRmlsZXNTeW5jKFxuICBwYXR0ZXJuOiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgb3B0aW9ucz86IEZpbGVGaW5kT3B0aW9ucyxcbik6IFNlcXVlbmNlPHN0cmluZz4ge1xuICByZXR1cm4gc2VxdWVuY2UoZ2xvYkl0ZXJhdGVTeW5jKHBhdHRlcm4sIHRvR2xvYk9wdGlvbnNTeW5jKG9wdGlvbnMpKSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHRvR2xvYk9wdGlvbnMoXG4gIG9wdGlvbnM6IEZpbGVGaW5kT3B0aW9ucyB8IHVuZGVmaW5lZCxcbik6IFByb21pc2U8R2xvYk9wdGlvbnNXaXRoRmlsZVR5cGVzVW5zZXQ+IHtcbiAgY29uc3QgeyBjd2QsIGlnbm9yZU9wdGlvbnMsIGZvbGxvd1N5bWxpbmtzIH0gPSBvcHRpb25zID8/IHt9O1xuICBjb25zdCByb290ID0gY3dkID8/IHByb2Nlc3MuY3dkKCk7XG4gIGNvbnN0IGdpdElnbm9yZSA9IGlnbm9yZU9wdGlvbnM/LmdpdFxuICAgID8gYXdhaXQgR2l0SWdub3JlLmxvYWQocm9vdCwgeyBpZ25vcmVPcHRpb25zLCBmb2xsb3dTeW1saW5rcyB9KVxuICAgIDogdW5kZWZpbmVkO1xuICByZXR1cm4gYnVpbGRHbG9iT3B0aW9ucyhvcHRpb25zLCBnaXRJZ25vcmUpO1xufVxuXG5mdW5jdGlvbiB0b0dsb2JPcHRpb25zU3luYyhvcHRpb25zOiBGaWxlRmluZE9wdGlvbnMgfCB1bmRlZmluZWQpOiBHbG9iT3B0aW9uc1dpdGhGaWxlVHlwZXNVbnNldCB7XG4gIGNvbnN0IHsgY3dkLCBpZ25vcmVPcHRpb25zLCBmb2xsb3dTeW1saW5rcyB9ID0gb3B0aW9ucyA/PyB7fTtcbiAgY29uc3Qgcm9vdCA9IGN3ZCA/PyBwcm9jZXNzLmN3ZCgpO1xuICBjb25zdCBnaXRJZ25vcmUgPSBpZ25vcmVPcHRpb25zPy5naXRcbiAgICA/IEdpdElnbm9yZS5sb2FkU3luYyhyb290LCB7IGlnbm9yZU9wdGlvbnMsIGZvbGxvd1N5bWxpbmtzIH0pXG4gICAgOiB1bmRlZmluZWQ7XG4gIHJldHVybiBidWlsZEdsb2JPcHRpb25zKG9wdGlvbnMsIGdpdElnbm9yZSk7XG59XG5cbmZ1bmN0aW9uIGJ1aWxkR2xvYk9wdGlvbnMoXG4gIG9wdGlvbnM6IEZpbGVGaW5kT3B0aW9ucyB8IHVuZGVmaW5lZCxcbiAgZ2l0SWdub3JlOiBHaXRJZ25vcmUgfCB1bmRlZmluZWQsXG4pOiBHbG9iT3B0aW9uc1dpdGhGaWxlVHlwZXNVbnNldCB7XG4gIGNvbnN0IHsgY3dkLCBpZ25vcmUsIGlnbm9yZU9wdGlvbnMsIGZvbGxvd1N5bWxpbmtzLCAuLi5yZXN0T3B0aW9ucyB9ID0gb3B0aW9ucyA/PyB7fTtcbiAgcmV0dXJuIHtcbiAgICAuLi5yZXN0T3B0aW9ucyxcbiAgICBjd2Q6IGN3ZCA/PyBwcm9jZXNzLmN3ZCgpLFxuICAgIGZvbGxvdzogZm9sbG93U3ltbGlua3MgPz8gRk9MTE9XX1NZTUxJTktTX0RFRkFVTFQsXG4gICAgaWdub3JlOiBub3JtYWxpemVJZ25vcmUoaWdub3JlLCBpZ25vcmVPcHRpb25zLCBnaXRJZ25vcmUpLFxuICB9O1xufVxuXG5jb25zdCBJR05PUkVfTElLRV9GSUVMRFMgPSBbXG4gIFwiaWdub3JlZFwiLFxuICBcImNoaWxkcmVuSWdub3JlZFwiLFxuICBcImFkZFwiLFxuXSBhcyBjb25zdCBzYXRpc2ZpZXMgcmVhZG9ubHkgKGtleW9mIElnbm9yZUxpa2UpW107XG5cbmZ1bmN0aW9uIGlzSWdub3JlTGlrZSh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIElnbm9yZUxpa2Uge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHJldHVybiBmYWxzZTtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgIGZvciAoY29uc3QgZmllbGQgb2YgSUdOT1JFX0xJS0VfRklFTERTKSB7XG4gICAgICBpZiAoZmllbGQgaW4gdmFsdWUgJiYgdHlwZW9mICh2YWx1ZSBhcyBhbnkpW2ZpZWxkXSAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuLyoqXG4gKiBCdWlsZHMgdGhlIHtAbGluayBJZ25vcmVMaWtlfSBvYmplY3QgZmlsZSBkaXNjb3ZlcnkgaGFuZHMgdG8gYGdsb2JgLlxuICpcbiAqIEEgY2FsbGVyLXN1cHBsaWVkIGBJZ25vcmVMaWtlYCAoYW4gb2JqZWN0LCBub3Qgc3RyaW5nL2FycmF5KSBpcyBjb25zdWx0ZWRcbiAqIGZpcnN0IC0gaXRzIGBpZ25vcmVkYC9gY2hpbGRyZW5JZ25vcmVkYCB3aW4gLSBhZnRlciB3aGljaCB0aGUgc2hhcmVkXG4gKiB7QGxpbmsgaWdub3JlUGF0aE1hdGNoZXJ9ICh0aGUgc2FtZSBtYXRjaGVyIHtAbGluayB3YXRjaEZpbGVzfSB1c2VzKSBkZWNpZGVzIGJhc2VkIG9uIHRoZVxuICogcGFja2FnZS1yZWxhdGl2ZSBwYXRoLiBgY2FjaGVEaXJlY3RvcnlTdGF0c2AgaXMgZW5hYmxlZCBiZWNhdXNlIGdsb2IgcHJvYmVzXG4gKiBtYW55IHBhdGhzIHBlciBkaXJlY3RvcnkuIENhbGxlciBzdHJpbmcvYXJyYXkgcGF0dGVybnMgYXJlIG1lcmdlZCBpbnRvIHRoZVxuICogbWF0Y2hlciwgYW5kIGBhZGRgIGZvcndhcmRzIHRvIGJvdGggdGhlIGNhbGxlciBvYmplY3QgYW5kIHRoZSBtYXRjaGVyLlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVJZ25vcmUoXG4gIGlnbm9yZTogRmlsZUZpbmRJZ25vcmUgfCB1bmRlZmluZWQsXG4gIGlnbm9yZU9wdGlvbnM6IEZpbGVTY2FuSWdub3JlT3B0aW9ucyB8IHVuZGVmaW5lZCxcbiAgZ2l0SWdub3JlOiBHaXRJZ25vcmUgfCB1bmRlZmluZWQsXG4pOiBJZ25vcmVMaWtlIHtcbiAgY29uc3QgaWdub3JlTGlrZTogSWdub3JlTGlrZSB8IHVuZGVmaW5lZCA9IGlzSWdub3JlTGlrZShpZ25vcmUpID8gaWdub3JlIDogdW5kZWZpbmVkO1xuICBjb25zdCBpZ25vcmVQYXRoTWF0Y2hlcklucHV0czogUGF0aE1hdGNoSW5wdXRbXSB8IHVuZGVmaW5lZCA9XG4gICAgaWdub3JlID09PSB1bmRlZmluZWQgfHwgaWdub3JlTGlrZSA/IHVuZGVmaW5lZCA6IEFycmF5LmlzQXJyYXkoaWdub3JlKSA/IFsuLi5pZ25vcmVdIDogW2lnbm9yZV07XG5cbiAgY29uc3QgcHJlZGljYXRlT25seSA9XG4gICAgaWdub3JlUGF0aE1hdGNoZXJJbnB1dHM/Lmxlbmd0aCA9PT0gMSAmJiB0eXBlb2YgaWdub3JlUGF0aE1hdGNoZXJJbnB1dHNbMF0gPT09IFwiZnVuY3Rpb25cIjtcblxuICBsZXQgaWdub3JlTWF0Y2hlcjogUGF0aE1hdGNoZXIgPSBwcmVkaWNhdGVPbmx5XG4gICAgPyB0b1BhdGhNYXRjaGVyKGlnbm9yZVBhdGhNYXRjaGVySW5wdXRzWzBdKVxuICAgIDogaWdub3JlUGF0aE1hdGNoZXIoaWdub3JlT3B0aW9ucyk7XG4gIGlmIChpZ25vcmVQYXRoTWF0Y2hlcklucHV0cyAmJiAhcHJlZGljYXRlT25seSkge1xuICAgIGlnbm9yZU1hdGNoZXIgPSBpZ25vcmVNYXRjaGVyLm9yKC4uLnBhdGhNYXRjaFRlc3RzKC4uLmlnbm9yZVBhdGhNYXRjaGVySW5wdXRzKSk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBpZ25vcmVkKHBhdGgpIHtcbiAgICAgIGlmIChpZ25vcmVMaWtlPy5pZ25vcmVkPy4ocGF0aCkpIHJldHVybiB0cnVlO1xuICAgICAgY29uc3QgcGF0aGVSZWxhdGl2ZSA9IHBhdGgucmVsYXRpdmUoKTtcbiAgICAgIGlmIChnaXRJZ25vcmU/Lmlnbm9yZXMocGF0aGVSZWxhdGl2ZSwgcGF0aC5pc0RpcmVjdG9yeSgpKSkgcmV0dXJuIHRydWU7XG4gICAgICBjb25zdCBpZ25vcmUgPSBpZ25vcmVNYXRjaGVyKHBhdGhlUmVsYXRpdmUpO1xuICAgICAgcmV0dXJuIGlnbm9yZTtcbiAgICB9LFxuICAgIGNoaWxkcmVuSWdub3JlZChwYXRoKSB7XG4gICAgICBpZiAoaWdub3JlTGlrZT8uY2hpbGRyZW5JZ25vcmVkPy4ocGF0aCkpIHJldHVybiB0cnVlO1xuICAgICAgY29uc3QgcGF0aGVSZWxhdGl2ZSA9IHBhdGgucmVsYXRpdmUoKTtcbiAgICAgIGlmIChwYXRoZVJlbGF0aXZlKSB7XG4gICAgICAgIGlmIChnaXRJZ25vcmU/Lmlnbm9yZXMocGF0aGVSZWxhdGl2ZSwgdHJ1ZSkpIHJldHVybiB0cnVlO1xuICAgICAgICBpZiAoaWdub3JlTWF0Y2hlcihwYXRoZVJlbGF0aXZlKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKGlnbm9yZU1hdGNoZXIocGF0aGVSZWxhdGl2ZSArIFwiL1wiKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSxcbiAgICBhZGQoaWdub3JlKSB7XG4gICAgICBpZ25vcmVMaWtlPy5hZGQ/LihpZ25vcmUpO1xuICAgICAgaWdub3JlTWF0Y2hlciA9IGlnbm9yZU1hdGNoZXIub3IoLi4ucGF0aE1hdGNoVGVzdHMoaWdub3JlKSk7XG4gICAgfSxcbiAgfTtcbn1cblxuLy8gTWFudWFsIGRlbW86IHJ1biB0aGlzIGZpbGUgZGlyZWN0bHkgKGBidW4gc3JjL2ZpbmQudHNgKSB0byBwcmludCB0aGVcbi8vIGZpbGVzIGZpbmRGaWxlcyBrZWVwcyBmb3IgdGhpcyBwYWNrYWdlIHVuZGVyIHRoZSBnaXZlbiBpZ25vcmUgb3B0aW9ucy5cbmlmIChpbXBvcnQubWV0YS5tYWluKSB7XG4gIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICBjb25zdCBjd2QgPSBwcm9jZXNzLmN3ZCgpO1xuICBjb25zb2xlLmxvZyhgU2Nhbm5pbmc6ICR7Y3dkfWApO1xuXG4gIGNvbnN0IGZpbGVzID0gZmluZEZpbGVzKFwiKiovKi4qXCIsIHtcbiAgICBpZ25vcmU6IFtcIioqL2luZGV4LnRzXCIsIFwiKiovZXhhbXBsZS8qKlwiLCBcIioqLyoubWRcIl0sXG4gICAgaWdub3JlT3B0aW9uczoge1xuICAgICAgdGVzdDogdHJ1ZSxcbiAgICB9LFxuICB9KTtcbiAgZm9yIGF3YWl0IChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgY29uc29sZS5sb2coZmlsZSk7XG4gIH1cbiAgY29uc3QgZWxhcHNlZCA9IHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lO1xuICBjb25zb2xlLmxvZyhgRWxhcHNlZDogJHtlbGFwc2VkfW1zYCk7XG59XG4iXX0=
package/lib/src/ignore.js CHANGED
@@ -19,8 +19,8 @@
19
19
  *
20
20
  * @module
21
21
  */
22
- import * as projectUtils from "@dbx-tools/core/project-utils";
23
- import { functionUtils, object } from "@dbx-tools/shared-core";
22
+ import { npmRegistry } from "@dbx-tools/core";
23
+ import { memoize, sequence } from "@dbx-tools/shared-core";
24
24
  import { toPathMatcher } from "./match.js";
25
25
  import { directoryNamePattern, fileExtensionPattern } from "./pattern.js";
26
26
  /** Host of the public npm registry; anything else is treated as private. */
@@ -33,8 +33,8 @@ const PUBLIC_NPM_REGISTRY_HOST = "registry.npmjs.org";
33
33
  * registry - a lockfile produced against a private mirror pins URLs that other
34
34
  * machines cannot reach, so it should not be committed.
35
35
  */
36
- const lockIgnoreMatchersAutoEnabled = functionUtils.memoize(() => {
37
- const registry = projectUtils.npmRegistry();
36
+ const lockIgnoreMatchersAutoEnabled = memoize(() => {
37
+ const registry = npmRegistry();
38
38
  return registry !== undefined && registry.hostname !== PUBLIC_NPM_REGISTRY_HOST;
39
39
  });
40
40
  /** Resolves whether the lockfile ignore group is enabled for the given options. */
@@ -133,7 +133,7 @@ function ignoreMatchPredicates(options) {
133
133
  * @param options - Group toggles; omitted flags default to enabled.
134
134
  */
135
135
  export function ignorePatterns(options) {
136
- return object.sequence(ignoreMatchPredicates(options)).flatMap(Object.keys).distinct();
136
+ return sequence(ignoreMatchPredicates(options)).flatMap(Object.keys).distinct();
137
137
  }
138
138
  /**
139
139
  * Returns a {@link PathMatcher} for paths ignored by the enabled built-in groups.
@@ -148,4 +148,4 @@ export function ignorePathMatcher(options) {
148
148
  const predicates = ignoreMatchPredicates(options).flatMap(Object.values);
149
149
  return toPathMatcher(...predicates);
150
150
  }
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWdub3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2lnbm9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFFSCxPQUFPLEtBQUssWUFBWSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFpQixNQUFNLHdCQUF3QixDQUFDO0FBQzlFLE9BQU8sRUFBbUMsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQTRCMUUsNEVBQTRFO0FBQzVFLE1BQU0sd0JBQXdCLEdBQUcsb0JBQW9CLENBQUM7QUFFdEQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sNkJBQTZCLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7SUFDL0QsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVDLE9BQU8sUUFBUSxLQUFLLFNBQVMsSUFBSSxRQUFRLENBQUMsUUFBUSxLQUFLLHdCQUF3QixDQUFDO0FBQ2xGLENBQUMsQ0FBQyxDQUFDO0FBRUgsbUZBQW1GO0FBQ25GLFNBQVMseUJBQXlCLENBQUMsT0FBOEI7SUFDL0QsTUFBTSxLQUFLLEdBQUcsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFNLENBQUM7SUFDdEMsSUFBSSxLQUFLLEtBQUssTUFBTSxFQUFFLENBQUM7UUFDckIsT0FBTyw2QkFBNkIsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUyxlQUFlLENBQUMsUUFBMkI7SUFDbEQsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLGFB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RSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN2RSxJQUFJLE9BQU8sRUFBRSxHQUFHLElBQUksSUFBSTtRQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JFLElBQUkseUJBQXlCLENBQUMsT0FBTyxDQUFDO1FBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDcEYsT0FBTyxrQkFBa0IsQ0FBQztBQUM1QixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUE4QjtJQUMzRCxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQ3pGLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxPQUE4QjtJQUM5RCxNQUFNLFVBQVUsR0FBRyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pFLE9BQU8sYUFBYSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUM7QUFDdEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnVpbHQtaW4gaWdub3JlIGdsb2IgcGF0dGVybnMgZm9yIGZpbGUgc2Nhbm5pbmcgYW5kIHdhdGNoaW5nLlxuICpcbiAqIFRoaXMgbW9kdWxlIG93bnMgdGhlIHBhdHRlcm4gY2F0YWxvZyBhbmQgb3B0aW9uIHRvZ2dsZXMgb25seS4gRWFjaCBncm91cCBpc1xuICogY29tcGlsZWQgaW50byB7QGxpbmsgUGF0aE1hdGNoUHJlZGljYXRlfSBpbnN0YW5jZXMgdmlhIHtAbGluayB0b1BhdGhNYXRjaGVyfTtcbiAqIGNvbXBvc2l0aW9uIChgYW5kYC9gb3JgL2BuZWdhdGVgKSBsaXZlcyBpbiB7QGxpbmsgLi9tYXRjaH0uXG4gKlxuICogQ29uc3VtZXJzOlxuICogLSB7QGxpbmsgaWdub3JlUGF0dGVybnN9IC0geWllbGRzIHRoZSBlbmFibGVkIGdsb2Igc3RyaW5ncyAoZm9yIHByb2plblxuICogICBwcmV0dGllci9naXRpZ25vcmUpLiBQYXNzIGB7IHRlc3Q6IGZhbHNlIH1gIHRoZXJlOiB0aGUgYHRlc3RgIGdyb3VwIGlzIGZvclxuICogICBmaWxlc3lzdGVtIHNjYW5uaW5nIG9ubHkgKHNraXAgdGVzdCBkaXJzIHdoZW4gZGlzY292ZXJpbmcgcGFja2FnZXMgL1xuICogICB3YXRjaGluZyksIG5vdCBmb3IgVkNTIG9yIGZvcm1hdHRlciBpZ25vcmUgZmlsZXMuXG4gKiAtIHtAbGluayBpZ25vcmVQYXRoTWF0Y2hlcn0gLSByZXR1cm5zIGEgc2luZ2xlIHtAbGluayBQYXRoTWF0Y2hlcn0gZm9yXG4gKiAgIHtAbGluayBmaW5kRmlsZXN9IGFuZCB7QGxpbmsgd2F0Y2hGaWxlc30gKGtlZXBzIGB0ZXN0OiB0cnVlYCBieSBkZWZhdWx0KS5cbiAqXG4gKiBUaGlzIGlzIHRoZSByZXBvc2l0b3J5IG93bmVyIGZvciBnZW5lcmF0ZWQsIGRlcGVuZGVuY3ksIFZDUywgdGVtcG9yYXJ5LCB0ZXN0LFxuICogYW5kIGxvY2tmaWxlIGlnbm9yZSBwb2xpY3kuIEV4dGVuZCB0aGVzZSBncm91cHMgaW5zdGVhZCBvZiBjb3B5aW5nIGlnbm9yZVxuICogbGlzdHMgaW50byBpbmRpdmlkdWFsIGdlbmVyYXRvcnMgb3Igd2F0Y2hlcnMuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCAqIGFzIHByb2plY3RVdGlscyBmcm9tIFwiQGRieC10b29scy9jb3JlL3Byb2plY3QtdXRpbHNcIjtcbmltcG9ydCB7IGZ1bmN0aW9uVXRpbHMsIG9iamVjdCwgdHlwZSBTZXF1ZW5jZSB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyBQYXRoTWF0Y2hlciwgUGF0aE1hdGNoUHJlZGljYXRlLCB0b1BhdGhNYXRjaGVyIH0gZnJvbSBcIi4vbWF0Y2gudHNcIjtcbmltcG9ydCB7IGRpcmVjdG9yeU5hbWVQYXR0ZXJuLCBmaWxlRXh0ZW5zaW9uUGF0dGVybiB9IGZyb20gXCIuL3BhdHRlcm4udHNcIjtcblxuLyoqIFRvZ2dsZXMgZm9yIGVhY2ggYnVpbHQtaW4gaWdub3JlIGdyb3VwOyBvbWl0dGVkIGZsYWdzIGRlZmF1bHQgdG8gYHRydWVgLiAqL1xuZXhwb3J0IHR5cGUgSWdub3JlUGF0dGVybk9wdGlvbnMgPSB7XG4gIC8qKiBCdWlsZCBhcnRpZmFjdHMsIGRlcGVuZGVuY3kgZGlycywgY2FjaGVzLCBsb2dzLCBhbmQgT1MganVuayBmaWxlcy4gKi9cbiAgZGVmYXVsdHM/OiBib29sZWFuO1xuICAvKiogSGlkZGVuIGRvdC1maWxlcyBhbmQgZG90LWRpcmVjdG9yaWVzIChgLmdpdGAsIGAudnNjb2RlYCwgYC5naXRpZ25vcmVgLCBldGMuKS4gKi9cbiAgZG90PzogYm9vbGVhbjtcbiAgLyoqIFRlbXBvcmFyeSBkaXJlY3RvcmllcyAoYHRtcGAsIGAudG1wYCwgYHNjcmF0Y2hgLCBldGMuKS4gKi9cbiAgdGVtcD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUZXN0IGRpcmVjdG9yaWVzIGFuZCBgKi50ZXN0LipgIC8gYCouc3BlYy4qYCBuYW1pbmcgY29udmVudGlvbnMuXG4gICAqIFNjYW5uaW5nL3dhdGNoIGRlZmF1bHQgb247IG9taXQgKGBmYWxzZWApIHdoZW4gZW1pdHRpbmcgYC5naXRpZ25vcmVgIC9cbiAgICogYC5wcmV0dGllcmlnbm9yZWAgc28gdGVzdHMgc3RheSB0cmFja2VkIGFuZCBmb3JtYXRhYmxlLlxuICAgKi9cbiAgdGVzdD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBMb2NrZmlsZSBpZ25vcmUgZ3JvdXAgKGBwYWNrYWdlLWxvY2suanNvbmAsIGBwbnBtLWxvY2sueWFtbGAsIGB5YXJuLmxvY2tgLFxuICAgKiBgYnVuLmxvY2tiYCwgZXRjLikuXG4gICAqXG4gICAqIC0gYHRydWVgIC0gYWx3YXlzIGlnbm9yZSBsb2NrZmlsZXMuXG4gICAqIC0gYGZhbHNlYCAtIG5ldmVyIGlnbm9yZSBsb2NrZmlsZXMuXG4gICAqIC0gYFwiYXV0b1wiYCAoZGVmYXVsdCkgLSBpZ25vcmUgd2hlbiB0aGUgYWN0aXZlIG5wbSByZWdpc3RyeSBpcyBub3QgdGhlIHB1YmxpY1xuICAgKiAgIG5wbSByZWdpc3RyeSAoYHJlZ2lzdHJ5Lm5wbWpzLm9yZ2ApLCBlLmcuIGEgY29tcGFueS1pbnRlcm5hbCByZWdpc3RyeS5cbiAgICovXG4gIGxvY2s/OiBib29sZWFuIHwgXCJhdXRvXCI7XG59O1xuXG4vKiogSG9zdCBvZiB0aGUgcHVibGljIG5wbSByZWdpc3RyeTsgYW55dGhpbmcgZWxzZSBpcyB0cmVhdGVkIGFzIHByaXZhdGUuICovXG5jb25zdCBQVUJMSUNfTlBNX1JFR0lTVFJZX0hPU1QgPSBcInJlZ2lzdHJ5Lm5wbWpzLm9yZ1wiO1xuXG4vKipcbiAqIE1lbW9pemVkIHByb2JlIGZvciB7QGxpbmsgSWdub3JlUGF0dGVybk9wdGlvbnMubG9ja30gYFwiYXV0b1wiYC5cbiAqXG4gKiBSZXNvbHZlcyB0aGUgYWN0aXZlIHJlZ2lzdHJ5IHRocm91Z2ggYEBkYngtdG9vbHMvY29yZWAnc1xuICoge0BsaW5rIHByb2plY3QubnBtUmVnaXN0cnl9IGFuZCByZXR1cm5zIGB0cnVlYCB3aGVuIGl0IGlzIG5vdCB0aGUgcHVibGljIG5wbVxuICogcmVnaXN0cnkgLSBhIGxvY2tmaWxlIHByb2R1Y2VkIGFnYWluc3QgYSBwcml2YXRlIG1pcnJvciBwaW5zIFVSTHMgdGhhdCBvdGhlclxuICogbWFjaGluZXMgY2Fubm90IHJlYWNoLCBzbyBpdCBzaG91bGQgbm90IGJlIGNvbW1pdHRlZC5cbiAqL1xuY29uc3QgbG9ja0lnbm9yZU1hdGNoZXJzQXV0b0VuYWJsZWQgPSBmdW5jdGlvblV0aWxzLm1lbW9pemUoKCkgPT4ge1xuICBjb25zdCByZWdpc3RyeSA9IHByb2plY3RVdGlscy5ucG1SZWdpc3RyeSgpO1xuICByZXR1cm4gcmVnaXN0cnkgIT09IHVuZGVmaW5lZCAmJiByZWdpc3RyeS5ob3N0bmFtZSAhPT0gUFVCTElDX05QTV9SRUdJU1RSWV9IT1NUO1xufSk7XG5cbi8qKiBSZXNvbHZlcyB3aGV0aGVyIHRoZSBsb2NrZmlsZSBpZ25vcmUgZ3JvdXAgaXMgZW5hYmxlZCBmb3IgdGhlIGdpdmVuIG9wdGlvbnMuICovXG5mdW5jdGlvbiBsb2NrSWdub3JlTWF0Y2hlcnNFbmFibGVkKG9wdGlvbnM/OiBJZ25vcmVQYXR0ZXJuT3B0aW9ucyk6IGJvb2xlYW4ge1xuICBjb25zdCB2YWx1ZSA9IG9wdGlvbnM/LmxvY2sgPz8gXCJhdXRvXCI7XG4gIGlmICh2YWx1ZSA9PT0gXCJhdXRvXCIpIHtcbiAgICByZXR1cm4gbG9ja0lnbm9yZU1hdGNoZXJzQXV0b0VuYWJsZWQoKTtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG5cbi8qKlxuICogQ29tcGlsZXMgZ2xvYiBzdHJpbmdzIGludG8gYSBgeyBbZ2xvYl06IFBhdGhNYXRjaFByZWRpY2F0ZSB9YCBtYXAuXG4gKlxuICogS2V5aW5nIGJ5IHRoZSBzb3VyY2UgZ2xvYiBkZS1kdXBlcyBhbmQga2VlcHMgZWFjaCBtYXRjaGVyIGJlc2lkZSBpdHMgcGF0dGVybi5cbiAqL1xuZnVuY3Rpb24gY29tcGlsZU1hdGNoZXJzKHBhdHRlcm5zOiByZWFkb25seSBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFBhdGhNYXRjaFByZWRpY2F0ZT4ge1xuICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKHBhdHRlcm5zLm1hcCgoZ2xvYikgPT4gW2dsb2IsIHRvUGF0aE1hdGNoZXIoZ2xvYildKSk7XG59XG5cbi8qKiBCdWlsZCBhcnRpZmFjdHMsIGRlcGVuZGVuY3kgZGlyZWN0b3JpZXMsIGNhY2hlcywgbG9ncywgYW5kIE9TIGZpbGVzLiAqL1xuY29uc3QgZGVmYXVsdElnbm9yZU1hdGNoZXJzID0gY29tcGlsZU1hdGNoZXJzKFtcbiAgXCIqKi8uRFNfU3RvcmVcIixcbiAgXCIqKi9UaHVtYnMuZGJcIixcbiAgXCIqKi9EZXNrdG9wLmluaVwiLFxuICAuLi5bXCJsb2dcIiwgXCJ0c2J1aWxkaW5mb1wiXS5tYXAoKGV4dCkgPT4gZmlsZUV4dGVuc2lvblBhdHRlcm4oZXh0KSksXG4gIFwiKiovKi1kZWJ1Zy5sb2cqXCIsXG4gIFwiKioveWFybi1lcnJvci5sb2cqXCIsXG4gIC4uLltcbiAgICBcIm5vZGVfbW9kdWxlc1wiLFxuICAgIFwiYm93ZXJfY29tcG9uZW50c1wiLFxuICAgIFwianNwbV9wYWNrYWdlc1wiLFxuICAgIFwiZGlzdFwiLFxuICAgIFwibGliXCIsXG4gICAgXCJidWlsZFwiLFxuICAgIFwib3V0XCIsXG4gICAgXCJjb3ZlcmFnZVwiLFxuICAgIFwiLmNhY2hlXCIsXG4gICAgXCIucGFyY2VsLWNhY2hlXCIsXG4gICAgXCIudHVyYm9cIixcbiAgICBcIi5uZXh0XCIsXG4gICAgXCIubnV4dFwiLFxuICAgIFwiLnN2ZWx0ZS1raXRcIixcbiAgICBcIi5wbnBtLXN0b3JlXCIsXG4gICAgXCIubnljX291dHB1dFwiLFxuICBdLm1hcCgobmFtZSkgPT4gZGlyZWN0b3J5TmFtZVBhdHRlcm4obmFtZSkpLFxuXSk7XG5cbi8qKiBIaWRkZW4gZG90LWZpbGVzIGFuZCBkb3QtZGlyZWN0b3JpZXMgc3VjaCBhcyBgLmdpdGAsIGAudnNjb2RlYCwgYC5pZGVhYCwgZXRjLiAqL1xuY29uc3QgZG90SWdub3JlTWF0Y2hlcnMgPSBjb21waWxlTWF0Y2hlcnMoXG4gIFtcIi4qXCJdLmZsYXRNYXAoKGdsb2IpID0+IFtgKiovJHtnbG9ifWAsIGRpcmVjdG9yeU5hbWVQYXR0ZXJuKGdsb2IsIGZhbHNlKV0pLFxuKTtcblxuLyoqIFRlbXBvcmFyeSBkaXJlY3RvcmllcywgaW5jbHVkaW5nIGhpZGRlbiB2YXJpYW50cyAoYC50bXBgLCBldGMuKS4gKi9cbmNvbnN0IHRlbXBJZ25vcmVNYXRjaGVycyA9IGNvbXBpbGVNYXRjaGVycyhcbiAgW1widGVtcFwiLCBcInRtcFwiLCBcInRlbXBzXCIsIFwic2NyYXRjaFwiXVxuICAgIC5mbGF0TWFwKChuYW1lKSA9PiBbbmFtZSwgYC4ke25hbWV9YF0pXG4gICAgLm1hcCgobmFtZSkgPT4gZGlyZWN0b3J5TmFtZVBhdHRlcm4obmFtZSkpLFxuKTtcblxuLyoqIFRlc3QgZGlyZWN0b3JpZXMgYW5kIGNvbW1vbiB0ZXN0LWZpbGUgbmFtaW5nIGNvbnZlbnRpb25zLiAqL1xuY29uc3QgdGVzdElnbm9yZU1hdGNoZXJzID0gY29tcGlsZU1hdGNoZXJzKFtcbiAgLi4uW1widGVzdFwiLCBcInRlc3RzXCIsIFwiX190ZXN0c19fXCIsIFwiX19zbmFwc2hvdHNfX1wiXVxuICAgIC5mbGF0TWFwKChuYW1lKSA9PiBbbmFtZSwgYC4ke25hbWV9YF0pXG4gICAgLm1hcCgobmFtZSkgPT4gZGlyZWN0b3J5TmFtZVBhdHRlcm4obmFtZSkpLFxuICBcIioqLyoudGVzdC4qXCIsXG4gIFwiKiovKi5zcGVjLipcIixcbiAgXCIqKi90ZXN0LipcIixcbiAgXCIqKi9zcGVjLipcIixcbl0pO1xuXG4vKiogTG9ja2ZpbGVzIChgcGFja2FnZS1sb2NrLmpzb25gLCBgcG5wbS1sb2NrLnlhbWxgLCBgeWFybi5sb2NrYCwgYGJ1bi5sb2NrYmAsIOKApikuICovXG5jb25zdCBsb2NrSWdub3JlTWF0Y2hlcnMgPSBjb21waWxlTWF0Y2hlcnMoW1xuICBcIioqL2J1bi5sb2NrYlwiLFxuICAuLi5bXCJqc29uXCIsIFwieWFtbFwiLCBcInltbFwiXS5tYXAoKGV4dCkgPT4gYCoqLyotbG9jay4ke2V4dH1gKSxcbiAgLi4uW1wibG9ja1wiXS5tYXAoKGV4dCkgPT4gZmlsZUV4dGVuc2lvblBhdHRlcm4oZXh0KSksXG5dKTtcblxuLyoqXG4gKiBDb2xsZWN0cyB0aGUgcHJlLWNvbXBpbGVkIG1hdGNoZXIgbWFwcyBmb3IgZWFjaCBlbmFibGVkIGJ1aWx0LWluIGdyb3VwLlxuICpcbiAqIEdyb3VwIHRvZ2dsZXMgY29tZSBmcm9tIGBvcHRpb25zYDsgdGhlIGxvY2sgZ3JvdXAgYWxzbyByZXNwZWN0c1xuICoge0BsaW5rIGxvY2tJZ25vcmVNYXRjaGVyc0VuYWJsZWR9IChgbG9jazogXCJhdXRvXCJgIHByb2JlcyB0aGUgbnBtIHJlZ2lzdHJ5KS5cbiAqL1xuZnVuY3Rpb24gaWdub3JlTWF0Y2hQcmVkaWNhdGVzKFxuICBvcHRpb25zPzogSWdub3JlUGF0dGVybk9wdGlvbnMsXG4pOiBSZWNvcmQ8c3RyaW5nLCBQYXRoTWF0Y2hQcmVkaWNhdGU+W10ge1xuICBjb25zdCBpZ25vcmVNYXRjaFJlY29yZHM6IFJlY29yZDxzdHJpbmcsIFBhdGhNYXRjaFByZWRpY2F0ZT5bXSA9IFtdO1xuICBpZiAob3B0aW9ucz8uZGVmYXVsdHMgPz8gdHJ1ZSkgaWdub3JlTWF0Y2hSZWNvcmRzLnB1c2goZGVmYXVsdElnbm9yZU1hdGNoZXJzKTtcbiAgaWYgKG9wdGlvbnM/LnRlbXAgPz8gdHJ1ZSkgaWdub3JlTWF0Y2hSZWNvcmRzLnB1c2godGVtcElnbm9yZU1hdGNoZXJzKTtcbiAgaWYgKG9wdGlvbnM/LnRlc3QgPz8gdHJ1ZSkgaWdub3JlTWF0Y2hSZWNvcmRzLnB1c2godGVzdElnbm9yZU1hdGNoZXJzKTtcbiAgaWYgKG9wdGlvbnM/LmRvdCA/PyB0cnVlKSBpZ25vcmVNYXRjaFJlY29yZHMucHVzaChkb3RJZ25vcmVNYXRjaGVycyk7XG4gIGlmIChsb2NrSWdub3JlTWF0Y2hlcnNFbmFibGVkKG9wdGlvbnMpKSBpZ25vcmVNYXRjaFJlY29yZHMucHVzaChsb2NrSWdub3JlTWF0Y2hlcnMpO1xuICByZXR1cm4gaWdub3JlTWF0Y2hSZWNvcmRzO1xufVxuXG4vKipcbiAqIFlpZWxkcyB0aGUgZ2xvYiBzdHJpbmdzIGZvciBlYWNoIGVuYWJsZWQgYnVpbHQtaW4gaWdub3JlIGdyb3VwLlxuICpcbiAqIFVzZWZ1bCB3aGVuIGEgY29uc3VtZXIgbmVlZHMgbGl0ZXJhbCBwYXR0ZXJucyAoZS5nLiBwcm9qZW4gYC5naXRpZ25vcmVgIC9cbiAqIGAucHJldHRpZXJpZ25vcmVgKSByYXRoZXIgdGhhbiBhIGNvbXBpbGVkIHtAbGluayBQYXRoTWF0Y2hlcn0uIEZvciB0aG9zZVxuICogZmlsZSBlbWl0dGVycyBwYXNzIGB7IHRlc3Q6IGZhbHNlIH1gIC0gdGhlIHRlc3QgZ3JvdXAgYmVsb25ncyB0byBzY2FubmluZ1xuICogb25seSAoe0BsaW5rIGlnbm9yZVBhdGhNYXRjaGVyfSksIG5vdCBWQ1MvZm9ybWF0dGVyIGlnbm9yZXMuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBHcm91cCB0b2dnbGVzOyBvbWl0dGVkIGZsYWdzIGRlZmF1bHQgdG8gZW5hYmxlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlnbm9yZVBhdHRlcm5zKG9wdGlvbnM/OiBJZ25vcmVQYXR0ZXJuT3B0aW9ucyk6IFNlcXVlbmNlPHN0cmluZz4ge1xuICByZXR1cm4gb2JqZWN0LnNlcXVlbmNlKGlnbm9yZU1hdGNoUHJlZGljYXRlcyhvcHRpb25zKSkuZmxhdE1hcChPYmplY3Qua2V5cykuZGlzdGluY3QoKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEge0BsaW5rIFBhdGhNYXRjaGVyfSBmb3IgcGF0aHMgaWdub3JlZCBieSB0aGUgZW5hYmxlZCBidWlsdC1pbiBncm91cHMuXG4gKlxuICogTWF0Y2hlcnMgZm9yIGVhY2ggZ3JvdXAgYXJlIGNvbXBpbGVkIG9uY2UgYXQgbW9kdWxlIGxvYWQ7IGBvcHRpb25zYCBvbmx5XG4gKiBzZWxlY3RzIHdoaWNoIGdyb3VwcyBwYXJ0aWNpcGF0ZS4gVGhlIGxvY2sgZ3JvdXAgaXMgaW5jbHVkZWQgd2hlblxuICoge0BsaW5rIGxvY2tJZ25vcmVNYXRjaGVyc0VuYWJsZWR9IHJldHVybnMgYHRydWVgLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gR3JvdXAgdG9nZ2xlczsgb21pdHRlZCBmbGFncyBkZWZhdWx0IHRvIGVuYWJsZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpZ25vcmVQYXRoTWF0Y2hlcihvcHRpb25zPzogSWdub3JlUGF0dGVybk9wdGlvbnMpOiBQYXRoTWF0Y2hlciB7XG4gIGNvbnN0IHByZWRpY2F0ZXMgPSBpZ25vcmVNYXRjaFByZWRpY2F0ZXMob3B0aW9ucykuZmxhdE1hcChPYmplY3QudmFsdWVzKTtcbiAgcmV0dXJuIHRvUGF0aE1hdGNoZXIoLi4ucHJlZGljYXRlcyk7XG59XG4iXX0=
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWdub3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2lnbm9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFFSCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFpQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUUsT0FBTyxFQUFtQyxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBNEIxRSw0RUFBNEU7QUFDNUUsTUFBTSx3QkFBd0IsR0FBRyxvQkFBb0IsQ0FBQztBQUV0RDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSw2QkFBNkIsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFO0lBQ2pELE1BQU0sUUFBUSxHQUFHLFdBQVcsRUFBRSxDQUFDO0lBQy9CLE9BQU8sUUFBUSxLQUFLLFNBQVMsSUFBSSxRQUFRLENBQUMsUUFBUSxLQUFLLHdCQUF3QixDQUFDO0FBQ2xGLENBQUMsQ0FBQyxDQUFDO0FBRUgsbUZBQW1GO0FBQ25GLFNBQVMseUJBQXlCLENBQUMsT0FBOEI7SUFDL0QsTUFBTSxLQUFLLEdBQUcsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFNLENBQUM7SUFDdEMsSUFBSSxLQUFLLEtBQUssTUFBTSxFQUFFLENBQUM7UUFDckIsT0FBTyw2QkFBNkIsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUyxlQUFlLENBQUMsUUFBMkI7SUFDbEQsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENB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QUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN2RSxJQUFJLE9BQU8sRUFBRSxHQUFHLElBQUksSUFBSTtRQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JFLElBQUkseUJBQXlCLENBQUMsT0FBTyxDQUFDO1FBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDcEYsT0FBTyxrQkFBa0IsQ0FBQztBQUM1QixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUE4QjtJQUMzRCxPQUFPLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDbEYsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE9BQThCO0lBQzlELE1BQU0sVUFBVSxHQUFHLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekUsT0FBTyxhQUFhLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQztBQUN0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCdWlsdC1pbiBpZ25vcmUgZ2xvYiBwYXR0ZXJucyBmb3IgZmlsZSBzY2FubmluZyBhbmQgd2F0Y2hpbmcuXG4gKlxuICogVGhpcyBtb2R1bGUgb3ducyB0aGUgcGF0dGVybiBjYXRhbG9nIGFuZCBvcHRpb24gdG9nZ2xlcyBvbmx5LiBFYWNoIGdyb3VwIGlzXG4gKiBjb21waWxlZCBpbnRvIHtAbGluayBQYXRoTWF0Y2hQcmVkaWNhdGV9IGluc3RhbmNlcyB2aWEge0BsaW5rIHRvUGF0aE1hdGNoZXJ9O1xuICogY29tcG9zaXRpb24gKGBhbmRgL2BvcmAvYG5lZ2F0ZWApIGxpdmVzIGluIHtAbGluayAuL21hdGNofS5cbiAqXG4gKiBDb25zdW1lcnM6XG4gKiAtIHtAbGluayBpZ25vcmVQYXR0ZXJuc30gLSB5aWVsZHMgdGhlIGVuYWJsZWQgZ2xvYiBzdHJpbmdzIChmb3IgcHJvamVuXG4gKiAgIHByZXR0aWVyL2dpdGlnbm9yZSkuIFBhc3MgYHsgdGVzdDogZmFsc2UgfWAgdGhlcmU6IHRoZSBgdGVzdGAgZ3JvdXAgaXMgZm9yXG4gKiAgIGZpbGVzeXN0ZW0gc2Nhbm5pbmcgb25seSAoc2tpcCB0ZXN0IGRpcnMgd2hlbiBkaXNjb3ZlcmluZyBwYWNrYWdlcyAvXG4gKiAgIHdhdGNoaW5nKSwgbm90IGZvciBWQ1Mgb3IgZm9ybWF0dGVyIGlnbm9yZSBmaWxlcy5cbiAqIC0ge0BsaW5rIGlnbm9yZVBhdGhNYXRjaGVyfSAtIHJldHVybnMgYSBzaW5nbGUge0BsaW5rIFBhdGhNYXRjaGVyfSBmb3JcbiAqICAge0BsaW5rIGZpbmRGaWxlc30gYW5kIHtAbGluayB3YXRjaEZpbGVzfSAoa2VlcHMgYHRlc3Q6IHRydWVgIGJ5IGRlZmF1bHQpLlxuICpcbiAqIFRoaXMgaXMgdGhlIHJlcG9zaXRvcnkgb3duZXIgZm9yIGdlbmVyYXRlZCwgZGVwZW5kZW5jeSwgVkNTLCB0ZW1wb3JhcnksIHRlc3QsXG4gKiBhbmQgbG9ja2ZpbGUgaWdub3JlIHBvbGljeS4gRXh0ZW5kIHRoZXNlIGdyb3VwcyBpbnN0ZWFkIG9mIGNvcHlpbmcgaWdub3JlXG4gKiBsaXN0cyBpbnRvIGluZGl2aWR1YWwgZ2VuZXJhdG9ycyBvciB3YXRjaGVycy5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgbnBtUmVnaXN0cnkgfSBmcm9tIFwiQGRieC10b29scy9jb3JlXCI7XG5pbXBvcnQgeyB0eXBlIFNlcXVlbmNlLCBtZW1vaXplLCBzZXF1ZW5jZSB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyBQYXRoTWF0Y2hlciwgUGF0aE1hdGNoUHJlZGljYXRlLCB0b1BhdGhNYXRjaGVyIH0gZnJvbSBcIi4vbWF0Y2gudHNcIjtcbmltcG9ydCB7IGRpcmVjdG9yeU5hbWVQYXR0ZXJuLCBmaWxlRXh0ZW5zaW9uUGF0dGVybiB9IGZyb20gXCIuL3BhdHRlcm4udHNcIjtcblxuLyoqIFRvZ2dsZXMgZm9yIGVhY2ggYnVpbHQtaW4gaWdub3JlIGdyb3VwOyBvbWl0dGVkIGZsYWdzIGRlZmF1bHQgdG8gYHRydWVgLiAqL1xuZXhwb3J0IHR5cGUgSWdub3JlUGF0dGVybk9wdGlvbnMgPSB7XG4gIC8qKiBCdWlsZCBhcnRpZmFjdHMsIGRlcGVuZGVuY3kgZGlycywgY2FjaGVzLCBsb2dzLCBhbmQgT1MganVuayBmaWxlcy4gKi9cbiAgZGVmYXVsdHM/OiBib29sZWFuO1xuICAvKiogSGlkZGVuIGRvdC1maWxlcyBhbmQgZG90LWRpcmVjdG9yaWVzIChgLmdpdGAsIGAudnNjb2RlYCwgYC5naXRpZ25vcmVgLCBldGMuKS4gKi9cbiAgZG90PzogYm9vbGVhbjtcbiAgLyoqIFRlbXBvcmFyeSBkaXJlY3RvcmllcyAoYHRtcGAsIGAudG1wYCwgYHNjcmF0Y2hgLCBldGMuKS4gKi9cbiAgdGVtcD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUZXN0IGRpcmVjdG9yaWVzIGFuZCBgKi50ZXN0LipgIC8gYCouc3BlYy4qYCBuYW1pbmcgY29udmVudGlvbnMuXG4gICAqIFNjYW5uaW5nL3dhdGNoIGRlZmF1bHQgb247IG9taXQgKGBmYWxzZWApIHdoZW4gZW1pdHRpbmcgYC5naXRpZ25vcmVgIC9cbiAgICogYC5wcmV0dGllcmlnbm9yZWAgc28gdGVzdHMgc3RheSB0cmFja2VkIGFuZCBmb3JtYXRhYmxlLlxuICAgKi9cbiAgdGVzdD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBMb2NrZmlsZSBpZ25vcmUgZ3JvdXAgKGBwYWNrYWdlLWxvY2suanNvbmAsIGBwbnBtLWxvY2sueWFtbGAsIGB5YXJuLmxvY2tgLFxuICAgKiBgYnVuLmxvY2tiYCwgZXRjLikuXG4gICAqXG4gICAqIC0gYHRydWVgIC0gYWx3YXlzIGlnbm9yZSBsb2NrZmlsZXMuXG4gICAqIC0gYGZhbHNlYCAtIG5ldmVyIGlnbm9yZSBsb2NrZmlsZXMuXG4gICAqIC0gYFwiYXV0b1wiYCAoZGVmYXVsdCkgLSBpZ25vcmUgd2hlbiB0aGUgYWN0aXZlIG5wbSByZWdpc3RyeSBpcyBub3QgdGhlIHB1YmxpY1xuICAgKiAgIG5wbSByZWdpc3RyeSAoYHJlZ2lzdHJ5Lm5wbWpzLm9yZ2ApLCBlLmcuIGEgY29tcGFueS1pbnRlcm5hbCByZWdpc3RyeS5cbiAgICovXG4gIGxvY2s/OiBib29sZWFuIHwgXCJhdXRvXCI7XG59O1xuXG4vKiogSG9zdCBvZiB0aGUgcHVibGljIG5wbSByZWdpc3RyeTsgYW55dGhpbmcgZWxzZSBpcyB0cmVhdGVkIGFzIHByaXZhdGUuICovXG5jb25zdCBQVUJMSUNfTlBNX1JFR0lTVFJZX0hPU1QgPSBcInJlZ2lzdHJ5Lm5wbWpzLm9yZ1wiO1xuXG4vKipcbiAqIE1lbW9pemVkIHByb2JlIGZvciB7QGxpbmsgSWdub3JlUGF0dGVybk9wdGlvbnMubG9ja30gYFwiYXV0b1wiYC5cbiAqXG4gKiBSZXNvbHZlcyB0aGUgYWN0aXZlIHJlZ2lzdHJ5IHRocm91Z2ggYEBkYngtdG9vbHMvY29yZWAnc1xuICoge0BsaW5rIHByb2plY3QubnBtUmVnaXN0cnl9IGFuZCByZXR1cm5zIGB0cnVlYCB3aGVuIGl0IGlzIG5vdCB0aGUgcHVibGljIG5wbVxuICogcmVnaXN0cnkgLSBhIGxvY2tmaWxlIHByb2R1Y2VkIGFnYWluc3QgYSBwcml2YXRlIG1pcnJvciBwaW5zIFVSTHMgdGhhdCBvdGhlclxuICogbWFjaGluZXMgY2Fubm90IHJlYWNoLCBzbyBpdCBzaG91bGQgbm90IGJlIGNvbW1pdHRlZC5cbiAqL1xuY29uc3QgbG9ja0lnbm9yZU1hdGNoZXJzQXV0b0VuYWJsZWQgPSBtZW1vaXplKCgpID0+IHtcbiAgY29uc3QgcmVnaXN0cnkgPSBucG1SZWdpc3RyeSgpO1xuICByZXR1cm4gcmVnaXN0cnkgIT09IHVuZGVmaW5lZCAmJiByZWdpc3RyeS5ob3N0bmFtZSAhPT0gUFVCTElDX05QTV9SRUdJU1RSWV9IT1NUO1xufSk7XG5cbi8qKiBSZXNvbHZlcyB3aGV0aGVyIHRoZSBsb2NrZmlsZSBpZ25vcmUgZ3JvdXAgaXMgZW5hYmxlZCBmb3IgdGhlIGdpdmVuIG9wdGlvbnMuICovXG5mdW5jdGlvbiBsb2NrSWdub3JlTWF0Y2hlcnNFbmFibGVkKG9wdGlvbnM/OiBJZ25vcmVQYXR0ZXJuT3B0aW9ucyk6IGJvb2xlYW4ge1xuICBjb25zdCB2YWx1ZSA9IG9wdGlvbnM/LmxvY2sgPz8gXCJhdXRvXCI7XG4gIGlmICh2YWx1ZSA9PT0gXCJhdXRvXCIpIHtcbiAgICByZXR1cm4gbG9ja0lnbm9yZU1hdGNoZXJzQXV0b0VuYWJsZWQoKTtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG5cbi8qKlxuICogQ29tcGlsZXMgZ2xvYiBzdHJpbmdzIGludG8gYSBgeyBbZ2xvYl06IFBhdGhNYXRjaFByZWRpY2F0ZSB9YCBtYXAuXG4gKlxuICogS2V5aW5nIGJ5IHRoZSBzb3VyY2UgZ2xvYiBkZS1kdXBlcyBhbmQga2VlcHMgZWFjaCBtYXRjaGVyIGJlc2lkZSBpdHMgcGF0dGVybi5cbiAqL1xuZnVuY3Rpb24gY29tcGlsZU1hdGNoZXJzKHBhdHRlcm5zOiByZWFkb25seSBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFBhdGhNYXRjaFByZWRpY2F0ZT4ge1xuICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKHBhdHRlcm5zLm1hcCgoZ2xvYikgPT4gW2dsb2IsIHRvUGF0aE1hdGNoZXIoZ2xvYildKSk7XG59XG5cbi8qKiBCdWlsZCBhcnRpZmFjdHMsIGRlcGVuZGVuY3kgZGlyZWN0b3JpZXMsIGNhY2hlcywgbG9ncywgYW5kIE9TIGZpbGVzLiAqL1xuY29uc3QgZGVmYXVsdElnbm9yZU1hdGNoZXJzID0gY29tcGlsZU1hdGNoZXJzKFtcbiAgXCIqKi8uRFNfU3RvcmVcIixcbiAgXCIqKi9UaHVtYnMuZGJcIixcbiAgXCIqKi9EZXNrdG9wLmluaVwiLFxuICAuLi5bXCJsb2dcIiwgXCJ0c2J1aWxkaW5mb1wiXS5tYXAoKGV4dCkgPT4gZmlsZUV4dGVuc2lvblBhdHRlcm4oZXh0KSksXG4gIFwiKiovKi1kZWJ1Zy5sb2cqXCIsXG4gIFwiKioveWFybi1lcnJvci5sb2cqXCIsXG4gIC4uLltcbiAgICBcIm5vZGVfbW9kdWxlc1wiLFxuICAgIFwiYm93ZXJfY29tcG9uZW50c1wiLFxuICAgIFwianNwbV9wYWNrYWdlc1wiLFxuICAgIFwiZGlzdFwiLFxuICAgIFwibGliXCIsXG4gICAgXCJidWlsZFwiLFxuICAgIFwib3V0XCIsXG4gICAgXCJjb3ZlcmFnZVwiLFxuICAgIFwiLmNhY2hlXCIsXG4gICAgXCIucGFyY2VsLWNhY2hlXCIsXG4gICAgXCIudHVyYm9cIixcbiAgICBcIi5uZXh0XCIsXG4gICAgXCIubnV4dFwiLFxuICAgIFwiLnN2ZWx0ZS1raXRcIixcbiAgICBcIi5wbnBtLXN0b3JlXCIsXG4gICAgXCIubnljX291dHB1dFwiLFxuICBdLm1hcCgobmFtZSkgPT4gZGlyZWN0b3J5TmFtZVBhdHRlcm4obmFtZSkpLFxuXSk7XG5cbi8qKiBIaWRkZW4gZG90LWZpbGVzIGFuZCBkb3QtZGlyZWN0b3JpZXMgc3VjaCBhcyBgLmdpdGAsIGAudnNjb2RlYCwgYC5pZGVhYCwgZXRjLiAqL1xuY29uc3QgZG90SWdub3JlTWF0Y2hlcnMgPSBjb21waWxlTWF0Y2hlcnMoXG4gIFtcIi4qXCJdLmZsYXRNYXAoKGdsb2IpID0+IFtgKiovJHtnbG9ifWAsIGRpcmVjdG9yeU5hbWVQYXR0ZXJuKGdsb2IsIGZhbHNlKV0pLFxuKTtcblxuLyoqIFRlbXBvcmFyeSBkaXJlY3RvcmllcywgaW5jbHVkaW5nIGhpZGRlbiB2YXJpYW50cyAoYC50bXBgLCBldGMuKS4gKi9cbmNvbnN0IHRlbXBJZ25vcmVNYXRjaGVycyA9IGNvbXBpbGVNYXRjaGVycyhcbiAgW1widGVtcFwiLCBcInRtcFwiLCBcInRlbXBzXCIsIFwic2NyYXRjaFwiXVxuICAgIC5mbGF0TWFwKChuYW1lKSA9PiBbbmFtZSwgYC4ke25hbWV9YF0pXG4gICAgLm1hcCgobmFtZSkgPT4gZGlyZWN0b3J5TmFtZVBhdHRlcm4obmFtZSkpLFxuKTtcblxuLyoqIFRlc3QgZGlyZWN0b3JpZXMgYW5kIGNvbW1vbiB0ZXN0LWZpbGUgbmFtaW5nIGNvbnZlbnRpb25zLiAqL1xuY29uc3QgdGVzdElnbm9yZU1hdGNoZXJzID0gY29tcGlsZU1hdGNoZXJzKFtcbiAgLi4uW1widGVzdFwiLCBcInRlc3RzXCIsIFwiX190ZXN0c19fXCIsIFwiX19zbmFwc2hvdHNfX1wiXVxuICAgIC5mbGF0TWFwKChuYW1lKSA9PiBbbmFtZSwgYC4ke25hbWV9YF0pXG4gICAgLm1hcCgobmFtZSkgPT4gZGlyZWN0b3J5TmFtZVBhdHRlcm4obmFtZSkpLFxuICBcIioqLyoudGVzdC4qXCIsXG4gIFwiKiovKi5zcGVjLipcIixcbiAgXCIqKi90ZXN0LipcIixcbiAgXCIqKi9zcGVjLipcIixcbl0pO1xuXG4vKiogTG9ja2ZpbGVzIChgcGFja2FnZS1sb2NrLmpzb25gLCBgcG5wbS1sb2NrLnlhbWxgLCBgeWFybi5sb2NrYCwgYGJ1bi5sb2NrYmAsIOKApikuICovXG5jb25zdCBsb2NrSWdub3JlTWF0Y2hlcnMgPSBjb21waWxlTWF0Y2hlcnMoW1xuICBcIioqL2J1bi5sb2NrYlwiLFxuICAuLi5bXCJqc29uXCIsIFwieWFtbFwiLCBcInltbFwiXS5tYXAoKGV4dCkgPT4gYCoqLyotbG9jay4ke2V4dH1gKSxcbiAgLi4uW1wibG9ja1wiXS5tYXAoKGV4dCkgPT4gZmlsZUV4dGVuc2lvblBhdHRlcm4oZXh0KSksXG5dKTtcblxuLyoqXG4gKiBDb2xsZWN0cyB0aGUgcHJlLWNvbXBpbGVkIG1hdGNoZXIgbWFwcyBmb3IgZWFjaCBlbmFibGVkIGJ1aWx0LWluIGdyb3VwLlxuICpcbiAqIEdyb3VwIHRvZ2dsZXMgY29tZSBmcm9tIGBvcHRpb25zYDsgdGhlIGxvY2sgZ3JvdXAgYWxzbyByZXNwZWN0c1xuICoge0BsaW5rIGxvY2tJZ25vcmVNYXRjaGVyc0VuYWJsZWR9IChgbG9jazogXCJhdXRvXCJgIHByb2JlcyB0aGUgbnBtIHJlZ2lzdHJ5KS5cbiAqL1xuZnVuY3Rpb24gaWdub3JlTWF0Y2hQcmVkaWNhdGVzKFxuICBvcHRpb25zPzogSWdub3JlUGF0dGVybk9wdGlvbnMsXG4pOiBSZWNvcmQ8c3RyaW5nLCBQYXRoTWF0Y2hQcmVkaWNhdGU+W10ge1xuICBjb25zdCBpZ25vcmVNYXRjaFJlY29yZHM6IFJlY29yZDxzdHJpbmcsIFBhdGhNYXRjaFByZWRpY2F0ZT5bXSA9IFtdO1xuICBpZiAob3B0aW9ucz8uZGVmYXVsdHMgPz8gdHJ1ZSkgaWdub3JlTWF0Y2hSZWNvcmRzLnB1c2goZGVmYXVsdElnbm9yZU1hdGNoZXJzKTtcbiAgaWYgKG9wdGlvbnM/LnRlbXAgPz8gdHJ1ZSkgaWdub3JlTWF0Y2hSZWNvcmRzLnB1c2godGVtcElnbm9yZU1hdGNoZXJzKTtcbiAgaWYgKG9wdGlvbnM/LnRlc3QgPz8gdHJ1ZSkgaWdub3JlTWF0Y2hSZWNvcmRzLnB1c2godGVzdElnbm9yZU1hdGNoZXJzKTtcbiAgaWYgKG9wdGlvbnM/LmRvdCA/PyB0cnVlKSBpZ25vcmVNYXRjaFJlY29yZHMucHVzaChkb3RJZ25vcmVNYXRjaGVycyk7XG4gIGlmIChsb2NrSWdub3JlTWF0Y2hlcnNFbmFibGVkKG9wdGlvbnMpKSBpZ25vcmVNYXRjaFJlY29yZHMucHVzaChsb2NrSWdub3JlTWF0Y2hlcnMpO1xuICByZXR1cm4gaWdub3JlTWF0Y2hSZWNvcmRzO1xufVxuXG4vKipcbiAqIFlpZWxkcyB0aGUgZ2xvYiBzdHJpbmdzIGZvciBlYWNoIGVuYWJsZWQgYnVpbHQtaW4gaWdub3JlIGdyb3VwLlxuICpcbiAqIFVzZWZ1bCB3aGVuIGEgY29uc3VtZXIgbmVlZHMgbGl0ZXJhbCBwYXR0ZXJucyAoZS5nLiBwcm9qZW4gYC5naXRpZ25vcmVgIC9cbiAqIGAucHJldHRpZXJpZ25vcmVgKSByYXRoZXIgdGhhbiBhIGNvbXBpbGVkIHtAbGluayBQYXRoTWF0Y2hlcn0uIEZvciB0aG9zZVxuICogZmlsZSBlbWl0dGVycyBwYXNzIGB7IHRlc3Q6IGZhbHNlIH1gIC0gdGhlIHRlc3QgZ3JvdXAgYmVsb25ncyB0byBzY2FubmluZ1xuICogb25seSAoe0BsaW5rIGlnbm9yZVBhdGhNYXRjaGVyfSksIG5vdCBWQ1MvZm9ybWF0dGVyIGlnbm9yZXMuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBHcm91cCB0b2dnbGVzOyBvbWl0dGVkIGZsYWdzIGRlZmF1bHQgdG8gZW5hYmxlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlnbm9yZVBhdHRlcm5zKG9wdGlvbnM/OiBJZ25vcmVQYXR0ZXJuT3B0aW9ucyk6IFNlcXVlbmNlPHN0cmluZz4ge1xuICByZXR1cm4gc2VxdWVuY2UoaWdub3JlTWF0Y2hQcmVkaWNhdGVzKG9wdGlvbnMpKS5mbGF0TWFwKE9iamVjdC5rZXlzKS5kaXN0aW5jdCgpO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSB7QGxpbmsgUGF0aE1hdGNoZXJ9IGZvciBwYXRocyBpZ25vcmVkIGJ5IHRoZSBlbmFibGVkIGJ1aWx0LWluIGdyb3Vwcy5cbiAqXG4gKiBNYXRjaGVycyBmb3IgZWFjaCBncm91cCBhcmUgY29tcGlsZWQgb25jZSBhdCBtb2R1bGUgbG9hZDsgYG9wdGlvbnNgIG9ubHlcbiAqIHNlbGVjdHMgd2hpY2ggZ3JvdXBzIHBhcnRpY2lwYXRlLiBUaGUgbG9jayBncm91cCBpcyBpbmNsdWRlZCB3aGVuXG4gKiB7QGxpbmsgbG9ja0lnbm9yZU1hdGNoZXJzRW5hYmxlZH0gcmV0dXJucyBgdHJ1ZWAuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBHcm91cCB0b2dnbGVzOyBvbWl0dGVkIGZsYWdzIGRlZmF1bHQgdG8gZW5hYmxlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlnbm9yZVBhdGhNYXRjaGVyKG9wdGlvbnM/OiBJZ25vcmVQYXR0ZXJuT3B0aW9ucyk6IFBhdGhNYXRjaGVyIHtcbiAgY29uc3QgcHJlZGljYXRlcyA9IGlnbm9yZU1hdGNoUHJlZGljYXRlcyhvcHRpb25zKS5mbGF0TWFwKE9iamVjdC52YWx1ZXMpO1xuICByZXR1cm4gdG9QYXRoTWF0Y2hlciguLi5wcmVkaWNhdGVzKTtcbn1cbiJdfQ==
package/lib/src/match.js CHANGED
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * @module
9
9
  */
10
- import { object, predicate } from "@dbx-tools/shared-core";
10
+ import { sequence, create } from "@dbx-tools/shared-core";
11
11
  import { Minimatch } from "minimatch";
12
12
  /** Normalizes a {@link PathMatchInput} to a plain path test. */
13
13
  function toTest(pattern) {
@@ -19,7 +19,7 @@ function toTest(pattern) {
19
19
  }
20
20
  /** Compiles path match inputs to predicate functions for `.and()` / `.or()`. */
21
21
  export function pathMatchTests(...inputs) {
22
- return object.sequence(inputs).nonNull().map(toTest).toArray();
22
+ return sequence(inputs).nonNull().map(toTest).toArray();
23
23
  }
24
24
  /**
25
25
  * Combines one or more patterns into a single {@link PathMatcher} (OR'd).
@@ -32,9 +32,7 @@ export function pathMatchTests(...inputs) {
32
32
  export function toPathMatcher(...inputs) {
33
33
  const tests = pathMatchTests(...inputs);
34
34
  if (tests.length === 0)
35
- return predicate.create(() => false);
36
- return tests
37
- .slice(1)
38
- .reduce((acc, test) => acc.or(test), predicate.create(tests[0]));
35
+ return create(() => false);
36
+ return tests.slice(1).reduce((acc, test) => acc.or(test), create(tests[0]));
39
37
  }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0Y2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBMEMsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBY3RDLGdFQUFnRTtBQUNoRSxTQUFTLE1BQU0sQ0FBQyxPQUF1QjtJQUNyQyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sT0FBTyxHQUFHLElBQUksU0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxnRkFBZ0Y7QUFDaEYsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsR0FBRyxNQUFzRDtJQUV6RCxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQ2pFLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsR0FBRyxNQUFzRDtJQUV6RCxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztJQUN4QyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3RCxPQUFPLEtBQUs7U0FDVCxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ1IsTUFBTSxDQUFjLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUUsQ0FBQyxDQUFDLENBQUM7QUFDbkYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUGF0aCBtYXRjaGluZyBhbmQgcHJlZGljYXRlIGNvbXBvc2l0aW9uIGZvciBmaWxlIHNjYW5uaW5nIGFuZCB3YXRjaGluZy5cbiAqXG4gKiB7QGxpbmsgdG9QYXRoTWF0Y2hlcn0gY29tcGlsZXMgZ2xvYnMgaW50byB7QGxpbmsgUHJlZGljYXRlfSB2YWx1ZXMgZnJvbVxuICogc2hhcmVkLWNvcmUgKGBhbmRgIC8gYG9yYCAvIGBuZWdhdGVgKSBmb3IgdXNlIGJ5IHtAbGluayBmaW5kRmlsZXN9IGFuZFxuICoge0BsaW5rIHdhdGNoRmlsZXN9LlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBvYmplY3QsIHByZWRpY2F0ZSwgdHlwZSBQcmVkaWNhdGUsIHR5cGUgUHJlZGljYXRlRnVuY3Rpb24gfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHsgTWluaW1hdGNoIH0gZnJvbSBcIm1pbmltYXRjaFwiO1xuXG4vKiogUGxhaW4gcGF0aCBwcmVkaWNhdGUgYWNjZXB0ZWQgYW55d2hlcmUgYSBnbG9iIHBhdHRlcm4gY2FuIGJlIHN1cHBsaWVkLiAqL1xuZXhwb3J0IHR5cGUgUGF0aE1hdGNoUHJlZGljYXRlID0gUHJlZGljYXRlRnVuY3Rpb248c3RyaW5nPjtcblxuLyoqIEEgY29tcG9zYWJsZSBwYXRoIHRlc3QgKGB0cnVlYCA9PSBtYXRjaCkuICovXG5leHBvcnQgdHlwZSBQYXRoTWF0Y2hlciA9IFByZWRpY2F0ZTxzdHJpbmc+O1xuXG4vKipcbiAqIEFueXRoaW5nIHtAbGluayB0b1BhdGhNYXRjaGVyfSBhY2NlcHRzOiBhIGdsb2Igc3RyaW5nIChjb21waWxlZCB3aXRoXG4gKiBgZG90OiB0cnVlYCksIG9yIGEgY3VzdG9tIGAocGF0aCkgPT4gYm9vbGVhbmAuXG4gKi9cbmV4cG9ydCB0eXBlIFBhdGhNYXRjaElucHV0ID0gUGF0aE1hdGNoUHJlZGljYXRlIHwgc3RyaW5nO1xuXG4vKiogTm9ybWFsaXplcyBhIHtAbGluayBQYXRoTWF0Y2hJbnB1dH0gdG8gYSBwbGFpbiBwYXRoIHRlc3QuICovXG5mdW5jdGlvbiB0b1Rlc3QocGF0dGVybjogUGF0aE1hdGNoSW5wdXQpOiBQYXRoTWF0Y2hQcmVkaWNhdGUge1xuICBpZiAodHlwZW9mIHBhdHRlcm4gPT09IFwic3RyaW5nXCIpIHtcbiAgICBjb25zdCBtYXRjaGVyID0gbmV3IE1pbmltYXRjaChwYXR0ZXJuLCB7IGRvdDogdHJ1ZSB9KTtcbiAgICByZXR1cm4gKHBhdGgpID0+IG1hdGNoZXIubWF0Y2gocGF0aCk7XG4gIH1cbiAgcmV0dXJuIHBhdHRlcm47XG59XG5cbi8qKiBDb21waWxlcyBwYXRoIG1hdGNoIGlucHV0cyB0byBwcmVkaWNhdGUgZnVuY3Rpb25zIGZvciBgLmFuZCgpYCAvIGAub3IoKWAuICovXG5leHBvcnQgZnVuY3Rpb24gcGF0aE1hdGNoVGVzdHMoXG4gIC4uLmlucHV0czogcmVhZG9ubHkgKFBhdGhNYXRjaElucHV0IHwgbnVsbCB8IHVuZGVmaW5lZClbXVxuKTogcmVhZG9ubHkgUGF0aE1hdGNoUHJlZGljYXRlW10ge1xuICByZXR1cm4gb2JqZWN0LnNlcXVlbmNlKGlucHV0cykubm9uTnVsbCgpLm1hcCh0b1Rlc3QpLnRvQXJyYXkoKTtcbn1cblxuLyoqXG4gKiBDb21iaW5lcyBvbmUgb3IgbW9yZSBwYXR0ZXJucyBpbnRvIGEgc2luZ2xlIHtAbGluayBQYXRoTWF0Y2hlcn0gKE9SJ2QpLlxuICogU3RyaW5ncyBhcmUgY29tcGlsZWQgd2l0aCBgZG90OiB0cnVlYDsgcHJlZGljYXRlcyBhcmUgdXNlZCBhcy1pcztcbiAqIGBudWxsYC9gdW5kZWZpbmVkYCBlbnRyaWVzIGFyZSBza2lwcGVkLiBXaXRoIG5vIG1hdGNoaW5nIHBhdHRlcm5zIHRoZSByZXN1bHRcbiAqIGFsd2F5cyByZXR1cm5zIGBmYWxzZWAuXG4gKlxuICogQHBhcmFtIHBhdHRlcm5zIC0gR2xvYnMgYW5kL29yIHByZWRpY2F0ZXMgdG8gT1IgdG9nZXRoZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1BhdGhNYXRjaGVyKFxuICAuLi5pbnB1dHM6IHJlYWRvbmx5IChQYXRoTWF0Y2hJbnB1dCB8IG51bGwgfCB1bmRlZmluZWQpW11cbik6IFBhdGhNYXRjaGVyIHtcbiAgY29uc3QgdGVzdHMgPSBwYXRoTWF0Y2hUZXN0cyguLi5pbnB1dHMpO1xuICBpZiAodGVzdHMubGVuZ3RoID09PSAwKSByZXR1cm4gcHJlZGljYXRlLmNyZWF0ZSgoKSA9PiBmYWxzZSk7XG4gIHJldHVybiB0ZXN0c1xuICAgIC5zbGljZSgxKVxuICAgIC5yZWR1Y2U8UGF0aE1hdGNoZXI+KChhY2MsIHRlc3QpID0+IGFjYy5vcih0ZXN0KSwgcHJlZGljYXRlLmNyZWF0ZSh0ZXN0c1swXSEpKTtcbn1cbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0Y2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQTBDLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBY3RDLGdFQUFnRTtBQUNoRSxTQUFTLE1BQU0sQ0FBQyxPQUF1QjtJQUNyQyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sT0FBTyxHQUFHLElBQUksU0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxnRkFBZ0Y7QUFDaEYsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsR0FBRyxNQUFzRDtJQUV6RCxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDMUQsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUMzQixHQUFHLE1BQXNEO0lBRXpELE1BQU0sS0FBSyxHQUFHLGNBQWMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQUUsT0FBTyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkQsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBYyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUUsQ0FBQyxDQUFDLENBQUM7QUFDNUYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUGF0aCBtYXRjaGluZyBhbmQgcHJlZGljYXRlIGNvbXBvc2l0aW9uIGZvciBmaWxlIHNjYW5uaW5nIGFuZCB3YXRjaGluZy5cbiAqXG4gKiB7QGxpbmsgdG9QYXRoTWF0Y2hlcn0gY29tcGlsZXMgZ2xvYnMgaW50byB7QGxpbmsgUHJlZGljYXRlfSB2YWx1ZXMgZnJvbVxuICogc2hhcmVkLWNvcmUgKGBhbmRgIC8gYG9yYCAvIGBuZWdhdGVgKSBmb3IgdXNlIGJ5IHtAbGluayBmaW5kRmlsZXN9IGFuZFxuICoge0BsaW5rIHdhdGNoRmlsZXN9LlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyB0eXBlIFByZWRpY2F0ZSwgdHlwZSBQcmVkaWNhdGVGdW5jdGlvbiwgc2VxdWVuY2UsIGNyZWF0ZSB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyBNaW5pbWF0Y2ggfSBmcm9tIFwibWluaW1hdGNoXCI7XG5cbi8qKiBQbGFpbiBwYXRoIHByZWRpY2F0ZSBhY2NlcHRlZCBhbnl3aGVyZSBhIGdsb2IgcGF0dGVybiBjYW4gYmUgc3VwcGxpZWQuICovXG5leHBvcnQgdHlwZSBQYXRoTWF0Y2hQcmVkaWNhdGUgPSBQcmVkaWNhdGVGdW5jdGlvbjxzdHJpbmc+O1xuXG4vKiogQSBjb21wb3NhYmxlIHBhdGggdGVzdCAoYHRydWVgID09IG1hdGNoKS4gKi9cbmV4cG9ydCB0eXBlIFBhdGhNYXRjaGVyID0gUHJlZGljYXRlPHN0cmluZz47XG5cbi8qKlxuICogQW55dGhpbmcge0BsaW5rIHRvUGF0aE1hdGNoZXJ9IGFjY2VwdHM6IGEgZ2xvYiBzdHJpbmcgKGNvbXBpbGVkIHdpdGhcbiAqIGBkb3Q6IHRydWVgKSwgb3IgYSBjdXN0b20gYChwYXRoKSA9PiBib29sZWFuYC5cbiAqL1xuZXhwb3J0IHR5cGUgUGF0aE1hdGNoSW5wdXQgPSBQYXRoTWF0Y2hQcmVkaWNhdGUgfCBzdHJpbmc7XG5cbi8qKiBOb3JtYWxpemVzIGEge0BsaW5rIFBhdGhNYXRjaElucHV0fSB0byBhIHBsYWluIHBhdGggdGVzdC4gKi9cbmZ1bmN0aW9uIHRvVGVzdChwYXR0ZXJuOiBQYXRoTWF0Y2hJbnB1dCk6IFBhdGhNYXRjaFByZWRpY2F0ZSB7XG4gIGlmICh0eXBlb2YgcGF0dGVybiA9PT0gXCJzdHJpbmdcIikge1xuICAgIGNvbnN0IG1hdGNoZXIgPSBuZXcgTWluaW1hdGNoKHBhdHRlcm4sIHsgZG90OiB0cnVlIH0pO1xuICAgIHJldHVybiAocGF0aCkgPT4gbWF0Y2hlci5tYXRjaChwYXRoKTtcbiAgfVxuICByZXR1cm4gcGF0dGVybjtcbn1cblxuLyoqIENvbXBpbGVzIHBhdGggbWF0Y2ggaW5wdXRzIHRvIHByZWRpY2F0ZSBmdW5jdGlvbnMgZm9yIGAuYW5kKClgIC8gYC5vcigpYC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXRoTWF0Y2hUZXN0cyhcbiAgLi4uaW5wdXRzOiByZWFkb25seSAoUGF0aE1hdGNoSW5wdXQgfCBudWxsIHwgdW5kZWZpbmVkKVtdXG4pOiByZWFkb25seSBQYXRoTWF0Y2hQcmVkaWNhdGVbXSB7XG4gIHJldHVybiBzZXF1ZW5jZShpbnB1dHMpLm5vbk51bGwoKS5tYXAodG9UZXN0KS50b0FycmF5KCk7XG59XG5cbi8qKlxuICogQ29tYmluZXMgb25lIG9yIG1vcmUgcGF0dGVybnMgaW50byBhIHNpbmdsZSB7QGxpbmsgUGF0aE1hdGNoZXJ9IChPUidkKS5cbiAqIFN0cmluZ3MgYXJlIGNvbXBpbGVkIHdpdGggYGRvdDogdHJ1ZWA7IHByZWRpY2F0ZXMgYXJlIHVzZWQgYXMtaXM7XG4gKiBgbnVsbGAvYHVuZGVmaW5lZGAgZW50cmllcyBhcmUgc2tpcHBlZC4gV2l0aCBubyBtYXRjaGluZyBwYXR0ZXJucyB0aGUgcmVzdWx0XG4gKiBhbHdheXMgcmV0dXJucyBgZmFsc2VgLlxuICpcbiAqIEBwYXJhbSBwYXR0ZXJucyAtIEdsb2JzIGFuZC9vciBwcmVkaWNhdGVzIHRvIE9SIHRvZ2V0aGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9QYXRoTWF0Y2hlcihcbiAgLi4uaW5wdXRzOiByZWFkb25seSAoUGF0aE1hdGNoSW5wdXQgfCBudWxsIHwgdW5kZWZpbmVkKVtdXG4pOiBQYXRoTWF0Y2hlciB7XG4gIGNvbnN0IHRlc3RzID0gcGF0aE1hdGNoVGVzdHMoLi4uaW5wdXRzKTtcbiAgaWYgKHRlc3RzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGNyZWF0ZSgoKSA9PiBmYWxzZSk7XG4gIHJldHVybiB0ZXN0cy5zbGljZSgxKS5yZWR1Y2U8UGF0aE1hdGNoZXI+KChhY2MsIHRlc3QpID0+IGFjYy5vcih0ZXN0KSwgY3JlYXRlKHRlc3RzWzBdISkpO1xufVxuIl19
package/lib/src/watch.js CHANGED
@@ -11,7 +11,7 @@
11
11
  import { once } from "node:events";
12
12
  import { readFileSync } from "node:fs";
13
13
  import { isAbsolute, relative, resolve } from "path";
14
- import { errorUtils, log } from "@dbx-tools/shared-core";
14
+ import { log, toError } from "@dbx-tools/shared-core";
15
15
  import { watch } from "chokidar";
16
16
  import { hasMagic } from "glob";
17
17
  import { findFiles } from "./find.js";
@@ -176,7 +176,7 @@ async function createGitIgnoreControls(gitIgnore, options) {
176
176
  catch (error) {
177
177
  logger.warn("failed to reload .gitignore", {
178
178
  path,
179
- error: errorUtils.toError(error),
179
+ error: toError(error),
180
180
  });
181
181
  }
182
182
  };
@@ -237,4 +237,4 @@ if (import.meta.main) {
237
237
  });
238
238
  console.log("Watcher started");
239
239
  }
240
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2F0Y2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7OztHQVNHO0FBRUgsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNuQyxPQUFPLEVBQUUsWUFBWSxFQUFjLE1BQU0sU0FBUyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBa0MsS0FBSyxFQUFrQixNQUFNLFVBQVUsQ0FBQztBQUNqRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxTQUFTLEVBQXdCLE1BQU0sV0FBVyxDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QyxPQUFPLEVBQTBDLHVCQUF1QixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTVGLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7QUFpQnhDOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFVBQVUsQ0FDOUIsS0FBd0IsRUFDeEIsT0FBMEI7SUFFMUIsTUFBTSxVQUFVLEdBQUcsTUFBTSw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvRCxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLEdBQUcsZUFBZSxFQUFFLEdBQUcsVUFBVSxDQUFDO0lBQ25GLE1BQU0sRUFBRSxLQUFLLEVB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SyxFQUFFLENBQUMsS0FBYSxFQUFFLElBQVksRUFBRSxFQUFFO1FBQ2hELE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDNUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUNqQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXBvc2l0b3J5LWNvbnNpc3RlbnQgZmlsZSB3YXRjaGluZyBvdmVyIENob2tpZGFyLlxuICpcbiAqIFJldXNlIGB3YXRjaEZpbGVzKClgIHdoZW4gbGl2ZSB3b3JrZmxvd3MgbXVzdCBtYXRjaCBgZmluZEZpbGVzKClgXG4gKiBkaXNjb3ZlcnkgYW5kIHRoZSBjZW50cmFsIGlnbm9yZSBjYXRhbG9ndWUuIFRoZSB3cmFwcGVyIGV4cGFuZHMgZ2xvYnMgb25jZSxcbiAqIHBydW5lcyBpZ25vcmVkIGRpcmVjdG9yaWVzIGNvbnNpc3RlbnRseSwgYW5kIHByZXNlcnZlcyBDaG9raWRhcidzIG5hdGl2ZVxuICogd2F0Y2hlciByZXN1bHQgZm9yIGNhbGxlcnMuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IG9uY2UgfSBmcm9tIFwibm9kZTpldmVudHNcIjtcbmltcG9ydCB7IHJlYWRGaWxlU3luYywgdHlwZSBTdGF0cyB9IGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgeyBpc0Fic29sdXRlLCByZWxhdGl2ZSwgcmVzb2x2ZSB9IGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBlcnJvclV0aWxzLCBsb2cgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHsgQ2hva2lkYXJPcHRpb25zLCBNYXRjaEZ1bmN0aW9uLCB3YXRjaCwgdHlwZSBGU1dhdGNoZXIgfSBmcm9tIFwiY2hva2lkYXJcIjtcbmltcG9ydCB7IGhhc01hZ2ljIH0gZnJvbSBcImdsb2JcIjtcbmltcG9ydCB7IGZpbmRGaWxlcywgdHlwZSBGaWxlRmluZE9wdGlvbnMgfSBmcm9tIFwiLi9maW5kLnRzXCI7XG5pbXBvcnQgeyBHaXRJZ25vcmUgfSBmcm9tIFwiLi9naXQtaWdub3JlLnRzXCI7XG5pbXBvcnQgeyBpZ25vcmVQYXRoTWF0Y2hlciB9IGZyb20gXCIuL2lnbm9yZS50c1wiO1xuaW1wb3J0IHsgcGF0aE1hdGNoVGVzdHMgfSBmcm9tIFwiLi9tYXRjaC50c1wiO1xuaW1wb3J0IHsgRmlsZVNjYW5JZ25vcmVPcHRpb25zLCBGaWxlU2Nhbk9wdGlvbnMsIEZPTExPV19TWU1MSU5LU19ERUZBVUxUIH0gZnJvbSBcIi4vc2Nhbi50c1wiO1xuXG5jb25zdCBsb2dnZXIgPSBsb2cubG9nZ2VyKFwicGF0aC93YXRjaFwiKTtcblxuLyoqIENob2tpZGFyIG9wdGlvbnMgZXh0ZW5kZWQgd2l0aCB0aGUgc2hhcmVkIGRieC10b29scyBpZ25vcmUgY29uZmlndXJhdGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVdhdGNoT3B0aW9uc1xuICBleHRlbmRzIE9taXQ8Q2hva2lkYXJPcHRpb25zLCBcImlnbm9yZWRcIj4sIE9taXQ8RmlsZVNjYW5PcHRpb25zLCBcImlnbm9yZVwiPiB7XG4gIGlnbm9yZT86IHN0cmluZyB8IHN0cmluZ1tdIHwgTWF0Y2hGdW5jdGlvbiB8IE1hdGNoRnVuY3Rpb25bXTtcbn1cblxuaW50ZXJmYWNlIE5vcm1hbGl6ZWRGaWxlV2F0Y2hPcHRpb25zIGV4dGVuZHMgT21pdDxGaWxlV2F0Y2hPcHRpb25zLCBcImlnbm9yZVwiIHwgXCJpZ25vcmVPcHRpb25zXCI+IHtcbiAgZ2l0SWdub3JlPzogR2l0SWdub3JlO1xuICBpZ25vcmVkOiBNYXRjaEZ1bmN0aW9uO1xufVxuXG5pbnRlcmZhY2UgR2l0SWdub3JlQ29udHJvbHMge1xuICBhdHRhY2god2F0Y2hlcjogRlNXYXRjaGVyLCB3YXRjaFBhdGhzOiByZWFkb25seSBzdHJpbmdbXSk6IHZvaWQ7XG59XG5cbi8qKlxuICogV2F0Y2hlcyBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgZm9yIHJlYWwtdGltZSBjaGFuZ2VzLCBhcHBseWluZyB0aGUgc2hhcmVkXG4gKiBpZ25vcmUgZ3JvdXBzIHNvIGl0IHBydW5lcyB0aGUgc2FtZSBwYXRocyB7QGxpbmsgZmluZEZpbGVzfSBza2lwcyBmb3IgdGhlXG4gKiBzYW1lIHBhdHRlcm5zLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd2F0Y2hGaWxlcyhcbiAgcGF0aHM6IHN0cmluZyB8IHN0cmluZ1tdLFxuICBvcHRpb25zPzogRmlsZVdhdGNoT3B0aW9ucyxcbik6IFByb21pc2U8RlNXYXRjaGVyPiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBhd2FpdCB0b05vcm1hbGl6ZWRGaWxlV2F0Y2hPcHRpb25zKG9wdGlvbnMpO1xuICBjb25zdCB7IGdpdElnbm9yZSwgaWdub3JlZCwgY3dkLCBmb2xsb3dTeW1saW5rcywgLi4uY2hva2lkYXJPcHRpb25zIH0gPSBub3JtYWxpemVkO1xuICBjb25zdCB7IHBhdGhzOiBsaXRlcmFscywgZ2xvYnMgfSA9IHBhcnRpdGlvblBhdGhzKHBhdGhzKTtcblxuICBsZXQgd2F0Y2hQYXRoczogc3RyaW5nW107XG4gIGlmIChnbG9icy5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgZGlzdGluY3RXYXRjaFBhdGhzID0gbmV3IFNldChsaXRlcmFscyk7XG4gICAgZm9yIGF3YWl0IChjb25zdCBwYXRoIG9mIGZpbmRGaWxlcyhnbG9icywgdG9GaW5kRmlsZXNPcHRpb25zKG5vcm1hbGl6ZWQpKSkge1xuICAgICAgZGlzdGluY3RXYXRjaFBhdGhzLmFkZChwYXRoKTtcbiAgICB9XG4gICAgd2F0Y2hQYXRocyA9IFsuLi5kaXN0aW5jdFdhdGNoUGF0aHNdO1xuICB9IGVsc2Uge1xuICAgIHdhdGNoUGF0aHMgPSBsaXRlcmFscztcbiAgfVxuXG4gIGNvbnN0IGNvbnRyb2xzID0gZ2l0SWdub3JlXG4gICAgPyBhd2FpdCBjcmVhdGVHaXRJZ25vcmVDb250cm9scyhnaXRJZ25vcmUsIHtcbiAgICAgICAgY3dkLFxuICAgICAgICBmb2xsb3dTeW1saW5rcyxcbiAgICAgICAgaWdub3JlT3B0aW9uczogb3B0aW9ucz8uaWdub3JlT3B0aW9ucyxcbiAgICAgICAgcGVyc2lzdGVudDogY2hva2lkYXJPcHRpb25zLnBlcnNpc3RlbnQsXG4gICAgICB9KVxuICAgIDogdW5kZWZpbmVkO1xuICBjb25zdCB3YXRjaGVyID0gd2F0Y2god2F0Y2hQYXRocywge1xuICAgIC4uLmNob2tpZGFyT3B0aW9ucyxcbiAgICBjd2QsXG4gICAgZm9sbG93U3ltbGlua3MsXG4gICAgaWdub3JlZCxcbiAgfSk7XG4gIGNvbnRyb2xzPy5hdHRhY2god2F0Y2hlciwgd2F0Y2hQYXRocyk7XG4gIHJldHVybiB3YXRjaGVyO1xufVxuXG5mdW5jdGlvbiBwYXJ0aXRpb25QYXRocyhwYXRoczogc3RyaW5nIHwgc3RyaW5nW10pOiB7IHBhdGhzOiBzdHJpbmdbXTsgZ2xvYnM6IHN0cmluZ1tdIH0ge1xuICBjb25zdCBnbG9iczogc3RyaW5nW10gPSBbXTtcbiAgY29uc3QgbGl0ZXJhbHM6IHN0cmluZ1tdID0gW107XG4gIGZvciAoY29uc3QgcGF0aCBvZiBBcnJheS5pc0FycmF5KHBhdGhzKSA/IHBhdGhzIDogW3BhdGhzXSkge1xuICAgIChoYXNNYWdpYyhwYXRoKSA/IGdsb2JzIDogbGl0ZXJhbHMpLnB1c2gocGF0aCk7XG4gIH1cbiAgcmV0dXJuIHsgcGF0aHM6IGxpdGVyYWxzLCBnbG9icyB9O1xufVxuXG4vKipcbiAqIEJ1aWxkcyB7QGxpbmsgTm9ybWFsaXplZEZpbGVXYXRjaE9wdGlvbnN9IGZpcnN0OiBhbGwgY2FsbGVyIGlnbm9yZSBpbnB1dHMgYW5kXG4gKiBidWlsdC1pbiBncm91cHMgYXJlIGNvbnNvbGlkYXRlZCBpbnRvIG9uZSBjaG9raWRhciB7QGxpbmsgTWF0Y2hGdW5jdGlvbn0uIFdoZW5cbiAqIGBzdGF0c2AgbWFya3MgYSBkaXJlY3RvcnksIHRoZSBtYXRjaGVyIGFsc28gdGVzdHMgYHBhdGggKyBcIi9cImAgZm9yIHBydW5pbmcuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHRvTm9ybWFsaXplZEZpbGVXYXRjaE9wdGlvbnMob3B0aW9ucz86IEZpbGVXYXRjaE9wdGlvbnMpOiBQcm9taXNlPFxuICBOb3JtYWxpemVkRmlsZVdhdGNoT3B0aW9ucyAmIHtcbiAgICBjd2Q6IHN0cmluZztcbiAgICBmb2xsb3dTeW1saW5rczogYm9vbGVhbjtcbiAgfVxuPiB7XG4gIGNvbnN0IHsgY3dkLCBpZ25vcmUsIGZvbGxvd1N5bWxpbmtzLCBpZ25vcmVPcHRpb25zLCAuLi5jaG9raWRhck9wdGlvbnMgfSA9IG9wdGlvbnMgPz8ge307XG4gIGNvbnN0IHJvb3QgPSBjd2QgPz8gcHJvY2Vzcy5jd2QoKTtcbiAgY29uc3QgZ2l0SWdub3JlID0gaWdub3JlT3B0aW9ucz8uZ2l0XG4gICAgPyBhd2FpdCBHaXRJZ25vcmUubG9hZChyb290LCB7IGlnbm9yZU9wdGlvbnMsIGZvbGxvd1N5bWxpbmtzIH0pXG4gICAgOiB1bmRlZmluZWQ7XG4gIHJldHVybiB7XG4gICAgLi4uY2hva2lkYXJPcHRpb25zLFxuICAgIGN3ZDogcm9vdCxcbiAgICBmb2xsb3dTeW1saW5rczogZm9sbG93U3ltbGlua3MgPz8gRk9MTE9XX1NZTUxJTktTX0RFRkFVTFQsXG4gICAgLi4uKGdpdElnbm9yZSA/IHsgZ2l0SWdub3JlIH0gOiB7fSksXG4gICAgaWdub3JlZDogdG9XYXRjaE1hdGNoRnVuY3Rpb24oaWdub3JlLCBpZ25vcmVPcHRpb25zLCByb290LCBnaXRJZ25vcmUpLFxuICB9O1xufVxuXG4vKiogR2xvYiBleHBhbnNpb24gcmV1c2VzIHRoZSBub3JtYWxpemVkIGlnbm9yZSBtYXRjaGVyIGFzIGEgY3dkLXJlbGF0aXZlIHBhdGggcHJlZGljYXRlLiAqL1xuZnVuY3Rpb24gdG9GaW5kRmlsZXNPcHRpb25zKFxuICBub3JtYWxpemVkOiBOb3JtYWxpemVkRmlsZVdhdGNoT3B0aW9ucyAmIHsgY3dkOiBzdHJpbmc7IGZvbGxvd1N5bWxpbmtzOiBib29sZWFuIH0sXG4pOiBGaWxlRmluZE9wdGlvbnMge1xuICBjb25zdCB7IGlnbm9yZWQsIGN3ZCwgZm9sbG93U3ltbGlua3MgfSA9IG5vcm1hbGl6ZWQ7XG4gIHJldHVybiB7XG4gICAgY3dkLFxuICAgIGZvbGxvd1N5bWxpbmtzLFxuICAgIGlnbm9yZTogKHBhdGgpID0+IGlnbm9yZWQocGF0aCwgdW5kZWZpbmVkKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBDb25zb2xpZGF0ZXMgYnVpbHQtaW4gaWdub3JlIGdyb3VwcywgY2FsbGVyIGdsb2IgcGF0dGVybnMsIGFuZCBjYWxsZXJcbiAqIHtAbGluayBNYXRjaEZ1bmN0aW9ufXMgaW50byBvbmUgaWdub3JlIHRlc3QuIERpcmVjdG9yeSBwcnVuaW5nIHVzZXMgYHN0YXRzYFxuICogd2hlbiBjaG9raWRhciBzdXBwbGllcyBpdDsgZ2xvYiBleHBhbnNpb24gcGFzc2VzIGB1bmRlZmluZWRgLlxuICovXG5mdW5jdGlvbiB0b1dhdGNoTWF0Y2hGdW5jdGlvbihcbiAgaWdub3JlOiBGaWxlV2F0Y2hPcHRpb25zW1wiaWdub3JlXCJdIHwgdW5kZWZpbmVkLFxuICBpZ25vcmVPcHRpb25zOiBGaWxlU2Nhbklnbm9yZU9wdGlvbnMgfCB1bmRlZmluZWQsXG4gIGN3ZDogc3RyaW5nLFxuICBnaXRJZ25vcmU/OiBHaXRJZ25vcmUsXG4pOiBNYXRjaEZ1bmN0aW9uIHtcbiAgY29uc3QgcGF0dGVybnM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IGZ1bmN0aW9uczogTWF0Y2hGdW5jdGlvbltdID0gW107XG5cbiAgaWYgKGlnbm9yZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIEFycmF5LmlzQXJyYXkoaWdub3JlKSA/IGlnbm9yZSA6IFtpZ25vcmVdKSB7XG4gICAgICBpZiAodHlwZW9mIGl0ZW0gPT09IFwic3RyaW5nXCIpIHBhdHRlcm5zLnB1c2goaXRlbSk7XG4gICAgICBlbHNlIGZ1bmN0aW9ucy5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIGxldCBtYXRjaGVyID0gaWdub3JlUGF0aE1hdGNoZXIoaWdub3JlT3B0aW9ucyk7XG4gIGlmIChwYXR0ZXJucy5sZW5ndGggPiAwKSBtYXRjaGVyID0gbWF0Y2hlci5vciguLi5wYXRoTWF0Y2hUZXN0cyguLi5wYXR0ZXJucykpO1xuXG4gIGNvbnN0IG1hdGNoUGF0aCA9IChwYXRoOiBzdHJpbmcsIHN0YXRzPzogU3RhdHMpOiBib29sZWFuID0+IHtcbiAgICBjb25zdCByZWwgPSB0b0N3ZFJlbGF0aXZlUGF0aChwYXRoLCBjd2QpO1xuICAgIGdpdElnbm9yZT8ucmVmcmVzaFBhdGhTeW5jKHJlbCk7XG4gICAgaWYgKGdpdElnbm9yZT8uaWdub3JlcyhyZWwsIHN0YXRzPy5pc0RpcmVjdG9yeSgpID8/IGZhbHNlKSkgcmV0dXJuIHRydWU7XG4gICAgaWYgKG1hdGNoZXIocmVsKSkgcmV0dXJuIHRydWU7XG4gICAgZm9yIChjb25zdCBmbiBvZiBmdW5jdGlvbnMpIHtcbiAgICAgIGlmIChmbihyZWwsIHN0YXRzKSkgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChzdGF0cz8uaXNEaXJlY3RvcnkoKSkge1xuICAgICAgY29uc3QgZGlyZWN0b3J5UGF0aCA9IHJlbCArIFwiL1wiO1xuICAgICAgaWYgKG1hdGNoZXIoZGlyZWN0b3J5UGF0aCkpIHJldHVybiB0cnVlO1xuICAgICAgZm9yIChjb25zdCBmbiBvZiBmdW5jdGlvbnMpIHtcbiAgICAgICAgaWYgKGZuKGRpcmVjdG9yeVBhdGgsIHN0YXRzKSkgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfTtcblxuICByZXR1cm4gbWF0Y2hQYXRoO1xufVxuXG4vKipcbiAqIFN0YXJ0IHRoZSBjb250cm9sLWZpbGUgd2F0Y2hlciBiZWZvcmUgdGhlIHByaW1hcnkgd2F0Y2hlci5cbiAqXG4gKiBXYWl0aW5nIGZvciBpdHMgaW5pdGlhbCBzY2FuIGNsb3NlcyB0aGUgZXZlbnQtbG9zcyB3aW5kb3cgd2hlcmUgYSBuZXdseVxuICogY3JlYXRlZCBgLmdpdGlnbm9yZWAgY291bGQgYmUgbWlzc2VkIHdoaWxlIHRoZSBwcmltYXJ5IHdhdGNoZXIgd2FzIGFscmVhZHlcbiAqIGFjY2VwdGluZyBmaWxlcyB1bmRlciBzdGFsZSBydWxlcy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gY3JlYXRlR2l0SWdub3JlQ29udHJvbHMoXG4gIGdpdElnbm9yZTogR2l0SWdub3JlLFxuICBvcHRpb25zOiB7XG4gICAgY3dkOiBzdHJpbmc7XG4gICAgZm9sbG93U3ltbGlua3M6IGJvb2xlYW47XG4gICAgaWdub3JlT3B0aW9ucz86IEZpbGVTY2FuSWdub3JlT3B0aW9ucztcbiAgICBwZXJzaXN0ZW50PzogYm9vbGVhbjtcbiAgfSxcbik6IFByb21pc2U8R2l0SWdub3JlQ29udHJvbHM+IHtcbiAgY29uc3QgYnVpbHRJbklnbm9yZSA9IGlnbm9yZVBhdGhNYXRjaGVyKG9wdGlvbnMuaWdub3JlT3B0aW9ucyk7XG4gIGNvbnN0IGNvbnRyb2xzID0gd2F0Y2goXCIuXCIsIHtcbiAgICBhdG9taWM6IGZhbHNlLFxuICAgIGN3ZDogb3B0aW9ucy5jd2QsXG4gICAgZm9sbG93U3ltbGlua3M6IG9wdGlvbnMuZm9sbG93U3ltbGlua3MsXG4gICAgLy8gSW5jbHVkZSB0aGUgaW5pdGlhbCBzY2FuIHNvIGEgY29udHJvbCBmaWxlIGNyZWF0ZWQgd2hpbGUgdGhpcyBzZWNvbmRhcnlcbiAgICAvLyB3YXRjaGVyIHN0YXJ0cyBjYW5ub3QgZmFsbCBiZXR3ZWVuIGl0cyBzY2FuIGFuZCBsaXZlIGV2ZW50IHN1YnNjcmlwdGlvbi5cbiAgICBpZ25vcmVJbml0aWFsOiBmYWxzZSxcbiAgICBwZXJzaXN0ZW50OiBvcHRpb25zLnBlcnNpc3RlbnQsXG4gICAgaWdub3JlZChwYXRoLCBzdGF0cykge1xuICAgICAgY29uc3QgcmVsYXRpdmVQYXRoID0gdG9Dd2RSZWxhdGl2ZVBhdGgocGF0aCwgb3B0aW9ucy5jd2QpO1xuICAgICAgaWYgKEdpdElnbm9yZS5pc0ZpbGUocmVsYXRpdmVQYXRoKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgaWYgKGJ1aWx0SW5JZ25vcmUocmVsYXRpdmVQYXRoKSB8fCBidWlsdEluSWdub3JlKGAke3JlbGF0aXZlUGF0aH0vYCkpIHJldHVybiB0cnVlO1xuICAgICAgcmV0dXJuIHN0YXRzID8gIXN0YXRzLmlzRGlyZWN0b3J5KCkgOiBmYWxzZTtcbiAgICB9LFxuICB9KTtcbiAgbGV0IHRhcmdldDogeyB3YXRjaGVyOiBGU1dhdGNoZXI7IHdhdGNoUGF0aHM6IHJlYWRvbmx5IHN0cmluZ1tdIH0gfCB1bmRlZmluZWQ7XG4gIGxldCBwZW5kaW5nRXJyb3I6IHVua25vd247XG4gIGNvbnN0IHJlZnJlc2hUYXJnZXQgPSAoKTogdm9pZCA9PiB7XG4gICAgdGFyZ2V0Py53YXRjaGVyLmFkZChbLi4udGFyZ2V0LndhdGNoUGF0aHNdKTtcbiAgfTtcbiAgY29uc3QgcmVsb2FkID0gKHBhdGg6IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgIHRyeSB7XG4gICAgICBnaXRJZ25vcmUuc2V0KHBhdGgsIHJlYWRGaWxlU3luYyhyZXNvbHZlKG9wdGlvbnMuY3dkLCBwYXRoKSwgXCJ1dGY4XCIpKTtcbiAgICAgIHJlZnJlc2hUYXJnZXQoKTtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhcIi5naXRpZ25vcmUgdXBkYXRlZFwiLCB7IHBhdGggfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci53YXJuKFwiZmFpbGVkIHRvIHJlbG9hZCAuZ2l0aWdub3JlXCIsIHtcbiAgICAgICAgcGF0aCxcbiAgICAgICAgZXJyb3I6IGVycm9yVXRpbHMudG9FcnJvcihlcnJvciksXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG4gIGNvbnRyb2xzLm9uKFwiYWRkXCIsIHJlbG9hZCk7XG4gIGNvbnRyb2xzLm9uKFwiY2hhbmdlXCIsIHJlbG9hZCk7XG4gIGNvbnRyb2xzLm9uKFwidW5saW5rXCIsIChwYXRoKSA9PiB7XG4gICAgZ2l0SWdub3JlLmRlbGV0ZShwYXRoKTtcbiAgICByZWZyZXNoVGFyZ2V0KCk7XG4gICAgbG9nZ2VyLmRlYnVnKFwiLmdpdGlnbm9yZSByZW1vdmVkXCIsIHsgcGF0aCB9KTtcbiAgfSk7XG4gIGNvbnRyb2xzLm9uKFwiZXJyb3JcIiwgKGVycm9yKSA9PiB7XG4gICAgaWYgKHRhcmdldCkgdGFyZ2V0LndhdGNoZXIuZW1pdChcImVycm9yXCIsIGVycm9yKTtcbiAgICBlbHNlIHBlbmRpbmdFcnJvciA9IGVycm9yO1xuICB9KTtcbiAgYXdhaXQgb25jZShjb250cm9scywgXCJyZWFkeVwiKTtcbiAgcmV0dXJuIHtcbiAgICBhdHRhY2god2F0Y2hlciwgd2F0Y2hQYXRocykge1xuICAgICAgdGFyZ2V0ID0geyB3YXRjaGVyLCB3YXRjaFBhdGhzIH07XG4gICAgICBpZiAocGVuZGluZ0Vycm9yKSB7XG4gICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHdhdGNoZXIuZW1pdChcImVycm9yXCIsIHBlbmRpbmdFcnJvcikpO1xuICAgICAgICBwZW5kaW5nRXJyb3IgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBjb25zdCBjbG9zZSA9IHdhdGNoZXIuY2xvc2UuYmluZCh3YXRjaGVyKTtcbiAgICAgIHdhdGNoZXIuY2xvc2UgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFtjbG9zZSgpLCBjb250cm9scy5jbG9zZSgpXSk7XG4gICAgICB9O1xuICAgIH0sXG4gIH07XG59XG5cbi8qKiBBbGlnbnMgY2hva2lkYXIgcGF0aHMgd2l0aCB0aGUgY3dkLXJlbGF0aXZlIGZvcm0ge0BsaW5rIGZpbmRGaWxlc30gdXNlcy4gKi9cbmZ1bmN0aW9uIHRvQ3dkUmVsYXRpdmVQYXRoKHBhdGg6IHN0cmluZywgY3dkOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIWlzQWJzb2x1dGUocGF0aCkpIHJldHVybiBwYXRoO1xuICBjb25zdCByZWwgPSByZWxhdGl2ZShjd2QsIHBhdGgpO1xuICByZXR1cm4gcmVsID09PSBcIlwiID8gXCIuXCIgOiByZWw7XG59XG5cbi8vIE1hbnVhbCBkZW1vOiBydW4gdGhpcyBmaWxlIGRpcmVjdGx5IChgYnVuIHNyYy93YXRjaC50cyBbZGlyXWApIHRvIHdhdGNoIGEgdHJlZVxuLy8gYW5kIGxvZyBldmVyeSBmaWxlIGV2ZW50IGFzIGl0IGhhcHBlbnMuIERlZmF1bHRzIHRvIHRoaXMgcGFja2FnZS5cbmlmIChpbXBvcnQubWV0YS5tYWluKSB7XG4gIGNvbnN0IGN3ZCA9IHJlc29sdmUocHJvY2Vzcy5hcmd2WzJdID8/IHJlc29sdmUoaW1wb3J0Lm1ldGEuZGlybmFtZSwgXCIuLlwiKSk7XG4gIGNvbnNvbGUubG9nKFwiLS0tIFN0YXJ0aW5nIEZpbGUgV2F0Y2hlciAtLS1cIik7XG4gIGNvbnNvbGUubG9nKGBXb3JraW5nIERpcmVjdG9yeTogJHtjd2R9YCk7XG5cbiAgY29uc3Qgd2F0Y2hlciA9IGF3YWl0IHdhdGNoRmlsZXMoXCIqKi9zcmMvKipcIiwge1xuICAgIGN3ZCxcbiAgICBpZ25vcmVJbml0aWFsOiBmYWxzZSxcbiAgICBpZ25vcmU6IFtcIioqL2luZGV4LnRzXCIsIFwiKiovY29yZS8qKlwiXSxcbiAgICBpZ25vcmVPcHRpb25zOiB7XG4gICAgICB0ZW1wOiBmYWxzZSxcbiAgICB9LFxuICB9KTtcbiAgd2F0Y2hlci5vbihcImFsbFwiLCAoZXZlbnQ6IHN0cmluZywgcGF0aDogc3RyaW5nKSA9PiB7XG4gICAgY29uc29sZS5sb2coYFske2V2ZW50LnRvVXBwZXJDYXNlKCl9XSAke3BhdGh9YCk7XG4gIH0pO1xuICB3YXRjaGVyLm9uKFwiZXJyb3JcIiwgKGVycm9yKSA9PiB7XG4gICAgY29uc29sZS5lcnJvcihcIldhdGNoZXIgZXJyb3I6XCIsIGVycm9yKTtcbiAgfSk7XG4gIGNvbnNvbGUubG9nKFwiV2F0Y2hlciBzdGFydGVkXCIpO1xufVxuIl19
240
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2F0Y2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7OztHQVNHO0FBRUgsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNuQyxPQUFPLEVBQUUsWUFBWSxFQUFjLE1BQU0sU0FBUyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBa0MsS0FBSyxFQUFrQixNQUFNLFVBQVUsQ0FBQztBQUNqRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxTQUFTLEVBQXdCLE1BQU0sV0FBVyxDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QyxPQUFPLEVBQTBDLHVCQUF1QixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTVGLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7QUFpQnhDOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFVBQVUsQ0FDOUIsS0FBd0IsRUFDeEIsT0FBMEI7SUFFMUIsTUFBTSxVQUFVLEdBQUcsTUFBTSw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvRCxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLEdBQUcsZUFBZSxFQUFFLEdBQUcsVUFBVSxDQUFDO0lBQ25GLE1BQU0sRUFBRSxLQUFLLEVB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QyxLQUFhLEVBQUUsSUFBWSxFQUFFLEVBQUU7UUFDaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlcG9zaXRvcnktY29uc2lzdGVudCBmaWxlIHdhdGNoaW5nIG92ZXIgQ2hva2lkYXIuXG4gKlxuICogUmV1c2UgYHdhdGNoRmlsZXMoKWAgd2hlbiBsaXZlIHdvcmtmbG93cyBtdXN0IG1hdGNoIGBmaW5kRmlsZXMoKWBcbiAqIGRpc2NvdmVyeSBhbmQgdGhlIGNlbnRyYWwgaWdub3JlIGNhdGFsb2d1ZS4gVGhlIHdyYXBwZXIgZXhwYW5kcyBnbG9icyBvbmNlLFxuICogcHJ1bmVzIGlnbm9yZWQgZGlyZWN0b3JpZXMgY29uc2lzdGVudGx5LCBhbmQgcHJlc2VydmVzIENob2tpZGFyJ3MgbmF0aXZlXG4gKiB3YXRjaGVyIHJlc3VsdCBmb3IgY2FsbGVycy5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgb25jZSB9IGZyb20gXCJub2RlOmV2ZW50c1wiO1xuaW1wb3J0IHsgcmVhZEZpbGVTeW5jLCB0eXBlIFN0YXRzIH0gZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCB7IGlzQWJzb2x1dGUsIHJlbGF0aXZlLCByZXNvbHZlIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IGxvZywgdG9FcnJvciB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyBDaG9raWRhck9wdGlvbnMsIE1hdGNoRnVuY3Rpb24sIHdhdGNoLCB0eXBlIEZTV2F0Y2hlciB9IGZyb20gXCJjaG9raWRhclwiO1xuaW1wb3J0IHsgaGFzTWFnaWMgfSBmcm9tIFwiZ2xvYlwiO1xuaW1wb3J0IHsgZmluZEZpbGVzLCB0eXBlIEZpbGVGaW5kT3B0aW9ucyB9IGZyb20gXCIuL2ZpbmQudHNcIjtcbmltcG9ydCB7IEdpdElnbm9yZSB9IGZyb20gXCIuL2dpdC1pZ25vcmUudHNcIjtcbmltcG9ydCB7IGlnbm9yZVBhdGhNYXRjaGVyIH0gZnJvbSBcIi4vaWdub3JlLnRzXCI7XG5pbXBvcnQgeyBwYXRoTWF0Y2hUZXN0cyB9IGZyb20gXCIuL21hdGNoLnRzXCI7XG5pbXBvcnQgeyBGaWxlU2Nhbklnbm9yZU9wdGlvbnMsIEZpbGVTY2FuT3B0aW9ucywgRk9MTE9XX1NZTUxJTktTX0RFRkFVTFQgfSBmcm9tIFwiLi9zY2FuLnRzXCI7XG5cbmNvbnN0IGxvZ2dlciA9IGxvZy5sb2dnZXIoXCJwYXRoL3dhdGNoXCIpO1xuXG4vKiogQ2hva2lkYXIgb3B0aW9ucyBleHRlbmRlZCB3aXRoIHRoZSBzaGFyZWQgZGJ4LXRvb2xzIGlnbm9yZSBjb25maWd1cmF0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWxlV2F0Y2hPcHRpb25zXG4gIGV4dGVuZHMgT21pdDxDaG9raWRhck9wdGlvbnMsIFwiaWdub3JlZFwiPiwgT21pdDxGaWxlU2Nhbk9wdGlvbnMsIFwiaWdub3JlXCI+IHtcbiAgaWdub3JlPzogc3RyaW5nIHwgc3RyaW5nW10gfCBNYXRjaEZ1bmN0aW9uIHwgTWF0Y2hGdW5jdGlvbltdO1xufVxuXG5pbnRlcmZhY2UgTm9ybWFsaXplZEZpbGVXYXRjaE9wdGlvbnMgZXh0ZW5kcyBPbWl0PEZpbGVXYXRjaE9wdGlvbnMsIFwiaWdub3JlXCIgfCBcImlnbm9yZU9wdGlvbnNcIj4ge1xuICBnaXRJZ25vcmU/OiBHaXRJZ25vcmU7XG4gIGlnbm9yZWQ6IE1hdGNoRnVuY3Rpb247XG59XG5cbmludGVyZmFjZSBHaXRJZ25vcmVDb250cm9scyB7XG4gIGF0dGFjaCh3YXRjaGVyOiBGU1dhdGNoZXIsIHdhdGNoUGF0aHM6IHJlYWRvbmx5IHN0cmluZ1tdKTogdm9pZDtcbn1cblxuLyoqXG4gKiBXYXRjaGVzIGZpbGVzIGFuZCBkaXJlY3RvcmllcyBmb3IgcmVhbC10aW1lIGNoYW5nZXMsIGFwcGx5aW5nIHRoZSBzaGFyZWRcbiAqIGlnbm9yZSBncm91cHMgc28gaXQgcHJ1bmVzIHRoZSBzYW1lIHBhdGhzIHtAbGluayBmaW5kRmlsZXN9IHNraXBzIGZvciB0aGVcbiAqIHNhbWUgcGF0dGVybnMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3YXRjaEZpbGVzKFxuICBwYXRoczogc3RyaW5nIHwgc3RyaW5nW10sXG4gIG9wdGlvbnM/OiBGaWxlV2F0Y2hPcHRpb25zLFxuKTogUHJvbWlzZTxGU1dhdGNoZXI+IHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IGF3YWl0IHRvTm9ybWFsaXplZEZpbGVXYXRjaE9wdGlvbnMob3B0aW9ucyk7XG4gIGNvbnN0IHsgZ2l0SWdub3JlLCBpZ25vcmVkLCBjd2QsIGZvbGxvd1N5bWxpbmtzLCAuLi5jaG9raWRhck9wdGlvbnMgfSA9IG5vcm1hbGl6ZWQ7XG4gIGNvbnN0IHsgcGF0aHM6IGxpdGVyYWxzLCBnbG9icyB9ID0gcGFydGl0aW9uUGF0aHMocGF0aHMpO1xuXG4gIGxldCB3YXRjaFBhdGhzOiBzdHJpbmdbXTtcbiAgaWYgKGdsb2JzLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBkaXN0aW5jdFdhdGNoUGF0aHMgPSBuZXcgU2V0KGxpdGVyYWxzKTtcbiAgICBmb3IgYXdhaXQgKGNvbnN0IHBhdGggb2YgZmluZEZpbGVzKGdsb2JzLCB0b0ZpbmRGaWxlc09wdGlvbnMobm9ybWFsaXplZCkpKSB7XG4gICAgICBkaXN0aW5jdFdhdGNoUGF0aHMuYWRkKHBhdGgpO1xuICAgIH1cbiAgICB3YXRjaFBhdGhzID0gWy4uLmRpc3RpbmN0V2F0Y2hQYXRoc107XG4gIH0gZWxzZSB7XG4gICAgd2F0Y2hQYXRocyA9IGxpdGVyYWxzO1xuICB9XG5cbiAgY29uc3QgY29udHJvbHMgPSBnaXRJZ25vcmVcbiAgICA/IGF3YWl0IGNyZWF0ZUdpdElnbm9yZUNvbnRyb2xzKGdpdElnbm9yZSwge1xuICAgICAgICBjd2QsXG4gICAgICAgIGZvbGxvd1N5bWxpbmtzLFxuICAgICAgICBpZ25vcmVPcHRpb25zOiBvcHRpb25zPy5pZ25vcmVPcHRpb25zLFxuICAgICAgICBwZXJzaXN0ZW50OiBjaG9raWRhck9wdGlvbnMucGVyc2lzdGVudCxcbiAgICAgIH0pXG4gICAgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IHdhdGNoZXIgPSB3YXRjaCh3YXRjaFBhdGhzLCB7XG4gICAgLi4uY2hva2lkYXJPcHRpb25zLFxuICAgIGN3ZCxcbiAgICBmb2xsb3dTeW1saW5rcyxcbiAgICBpZ25vcmVkLFxuICB9KTtcbiAgY29udHJvbHM/LmF0dGFjaCh3YXRjaGVyLCB3YXRjaFBhdGhzKTtcbiAgcmV0dXJuIHdhdGNoZXI7XG59XG5cbmZ1bmN0aW9uIHBhcnRpdGlvblBhdGhzKHBhdGhzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHsgcGF0aHM6IHN0cmluZ1tdOyBnbG9iczogc3RyaW5nW10gfSB7XG4gIGNvbnN0IGdsb2JzOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCBsaXRlcmFsczogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCBwYXRoIG9mIEFycmF5LmlzQXJyYXkocGF0aHMpID8gcGF0aHMgOiBbcGF0aHNdKSB7XG4gICAgKGhhc01hZ2ljKHBhdGgpID8gZ2xvYnMgOiBsaXRlcmFscykucHVzaChwYXRoKTtcbiAgfVxuICByZXR1cm4geyBwYXRoczogbGl0ZXJhbHMsIGdsb2JzIH07XG59XG5cbi8qKlxuICogQnVpbGRzIHtAbGluayBOb3JtYWxpemVkRmlsZVdhdGNoT3B0aW9uc30gZmlyc3Q6IGFsbCBjYWxsZXIgaWdub3JlIGlucHV0cyBhbmRcbiAqIGJ1aWx0LWluIGdyb3VwcyBhcmUgY29uc29saWRhdGVkIGludG8gb25lIGNob2tpZGFyIHtAbGluayBNYXRjaEZ1bmN0aW9ufS4gV2hlblxuICogYHN0YXRzYCBtYXJrcyBhIGRpcmVjdG9yeSwgdGhlIG1hdGNoZXIgYWxzbyB0ZXN0cyBgcGF0aCArIFwiL1wiYCBmb3IgcHJ1bmluZy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gdG9Ob3JtYWxpemVkRmlsZVdhdGNoT3B0aW9ucyhvcHRpb25zPzogRmlsZVdhdGNoT3B0aW9ucyk6IFByb21pc2U8XG4gIE5vcm1hbGl6ZWRGaWxlV2F0Y2hPcHRpb25zICYge1xuICAgIGN3ZDogc3RyaW5nO1xuICAgIGZvbGxvd1N5bWxpbmtzOiBib29sZWFuO1xuICB9XG4+IHtcbiAgY29uc3QgeyBjd2QsIGlnbm9yZSwgZm9sbG93U3ltbGlua3MsIGlnbm9yZU9wdGlvbnMsIC4uLmNob2tpZGFyT3B0aW9ucyB9ID0gb3B0aW9ucyA/PyB7fTtcbiAgY29uc3Qgcm9vdCA9IGN3ZCA/PyBwcm9jZXNzLmN3ZCgpO1xuICBjb25zdCBnaXRJZ25vcmUgPSBpZ25vcmVPcHRpb25zPy5naXRcbiAgICA/IGF3YWl0IEdpdElnbm9yZS5sb2FkKHJvb3QsIHsgaWdub3JlT3B0aW9ucywgZm9sbG93U3ltbGlua3MgfSlcbiAgICA6IHVuZGVmaW5lZDtcbiAgcmV0dXJuIHtcbiAgICAuLi5jaG9raWRhck9wdGlvbnMsXG4gICAgY3dkOiByb290LFxuICAgIGZvbGxvd1N5bWxpbmtzOiBmb2xsb3dTeW1saW5rcyA/PyBGT0xMT1dfU1lNTElOS1NfREVGQVVMVCxcbiAgICAuLi4oZ2l0SWdub3JlID8geyBnaXRJZ25vcmUgfSA6IHt9KSxcbiAgICBpZ25vcmVkOiB0b1dhdGNoTWF0Y2hGdW5jdGlvbihpZ25vcmUsIGlnbm9yZU9wdGlvbnMsIHJvb3QsIGdpdElnbm9yZSksXG4gIH07XG59XG5cbi8qKiBHbG9iIGV4cGFuc2lvbiByZXVzZXMgdGhlIG5vcm1hbGl6ZWQgaWdub3JlIG1hdGNoZXIgYXMgYSBjd2QtcmVsYXRpdmUgcGF0aCBwcmVkaWNhdGUuICovXG5mdW5jdGlvbiB0b0ZpbmRGaWxlc09wdGlvbnMoXG4gIG5vcm1hbGl6ZWQ6IE5vcm1hbGl6ZWRGaWxlV2F0Y2hPcHRpb25zICYgeyBjd2Q6IHN0cmluZzsgZm9sbG93U3ltbGlua3M6IGJvb2xlYW4gfSxcbik6IEZpbGVGaW5kT3B0aW9ucyB7XG4gIGNvbnN0IHsgaWdub3JlZCwgY3dkLCBmb2xsb3dTeW1saW5rcyB9ID0gbm9ybWFsaXplZDtcbiAgcmV0dXJuIHtcbiAgICBjd2QsXG4gICAgZm9sbG93U3ltbGlua3MsXG4gICAgaWdub3JlOiAocGF0aCkgPT4gaWdub3JlZChwYXRoLCB1bmRlZmluZWQpLFxuICB9O1xufVxuXG4vKipcbiAqIENvbnNvbGlkYXRlcyBidWlsdC1pbiBpZ25vcmUgZ3JvdXBzLCBjYWxsZXIgZ2xvYiBwYXR0ZXJucywgYW5kIGNhbGxlclxuICoge0BsaW5rIE1hdGNoRnVuY3Rpb259cyBpbnRvIG9uZSBpZ25vcmUgdGVzdC4gRGlyZWN0b3J5IHBydW5pbmcgdXNlcyBgc3RhdHNgXG4gKiB3aGVuIGNob2tpZGFyIHN1cHBsaWVzIGl0OyBnbG9iIGV4cGFuc2lvbiBwYXNzZXMgYHVuZGVmaW5lZGAuXG4gKi9cbmZ1bmN0aW9uIHRvV2F0Y2hNYXRjaEZ1bmN0aW9uKFxuICBpZ25vcmU6IEZpbGVXYXRjaE9wdGlvbnNbXCJpZ25vcmVcIl0gfCB1bmRlZmluZWQsXG4gIGlnbm9yZU9wdGlvbnM6IEZpbGVTY2FuSWdub3JlT3B0aW9ucyB8IHVuZGVmaW5lZCxcbiAgY3dkOiBzdHJpbmcsXG4gIGdpdElnbm9yZT86IEdpdElnbm9yZSxcbik6IE1hdGNoRnVuY3Rpb24ge1xuICBjb25zdCBwYXR0ZXJuczogc3RyaW5nW10gPSBbXTtcbiAgY29uc3QgZnVuY3Rpb25zOiBNYXRjaEZ1bmN0aW9uW10gPSBbXTtcblxuICBpZiAoaWdub3JlICE9PSB1bmRlZmluZWQpIHtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgQXJyYXkuaXNBcnJheShpZ25vcmUpID8gaWdub3JlIDogW2lnbm9yZV0pIHtcbiAgICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gXCJzdHJpbmdcIikgcGF0dGVybnMucHVzaChpdGVtKTtcbiAgICAgIGVsc2UgZnVuY3Rpb25zLnB1c2goaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgbGV0IG1hdGNoZXIgPSBpZ25vcmVQYXRoTWF0Y2hlcihpZ25vcmVPcHRpb25zKTtcbiAgaWYgKHBhdHRlcm5zLmxlbmd0aCA+IDApIG1hdGNoZXIgPSBtYXRjaGVyLm9yKC4uLnBhdGhNYXRjaFRlc3RzKC4uLnBhdHRlcm5zKSk7XG5cbiAgY29uc3QgbWF0Y2hQYXRoID0gKHBhdGg6IHN0cmluZywgc3RhdHM/OiBTdGF0cyk6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IHJlbCA9IHRvQ3dkUmVsYXRpdmVQYXRoKHBhdGgsIGN3ZCk7XG4gICAgZ2l0SWdub3JlPy5yZWZyZXNoUGF0aFN5bmMocmVsKTtcbiAgICBpZiAoZ2l0SWdub3JlPy5pZ25vcmVzKHJlbCwgc3RhdHM/LmlzRGlyZWN0b3J5KCkgPz8gZmFsc2UpKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAobWF0Y2hlcihyZWwpKSByZXR1cm4gdHJ1ZTtcbiAgICBmb3IgKGNvbnN0IGZuIG9mIGZ1bmN0aW9ucykge1xuICAgICAgaWYgKGZuKHJlbCwgc3RhdHMpKSByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHN0YXRzPy5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICBjb25zdCBkaXJlY3RvcnlQYXRoID0gcmVsICsgXCIvXCI7XG4gICAgICBpZiAobWF0Y2hlcihkaXJlY3RvcnlQYXRoKSkgcmV0dXJuIHRydWU7XG4gICAgICBmb3IgKGNvbnN0IGZuIG9mIGZ1bmN0aW9ucykge1xuICAgICAgICBpZiAoZm4oZGlyZWN0b3J5UGF0aCwgc3RhdHMpKSByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9O1xuXG4gIHJldHVybiBtYXRjaFBhdGg7XG59XG5cbi8qKlxuICogU3RhcnQgdGhlIGNvbnRyb2wtZmlsZSB3YXRjaGVyIGJlZm9yZSB0aGUgcHJpbWFyeSB3YXRjaGVyLlxuICpcbiAqIFdhaXRpbmcgZm9yIGl0cyBpbml0aWFsIHNjYW4gY2xvc2VzIHRoZSBldmVudC1sb3NzIHdpbmRvdyB3aGVyZSBhIG5ld2x5XG4gKiBjcmVhdGVkIGAuZ2l0aWdub3JlYCBjb3VsZCBiZSBtaXNzZWQgd2hpbGUgdGhlIHByaW1hcnkgd2F0Y2hlciB3YXMgYWxyZWFkeVxuICogYWNjZXB0aW5nIGZpbGVzIHVuZGVyIHN0YWxlIHJ1bGVzLlxuICovXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVHaXRJZ25vcmVDb250cm9scyhcbiAgZ2l0SWdub3JlOiBHaXRJZ25vcmUsXG4gIG9wdGlvbnM6IHtcbiAgICBjd2Q6IHN0cmluZztcbiAgICBmb2xsb3dTeW1saW5rczogYm9vbGVhbjtcbiAgICBpZ25vcmVPcHRpb25zPzogRmlsZVNjYW5JZ25vcmVPcHRpb25zO1xuICAgIHBlcnNpc3RlbnQ/OiBib29sZWFuO1xuICB9LFxuKTogUHJvbWlzZTxHaXRJZ25vcmVDb250cm9scz4ge1xuICBjb25zdCBidWlsdEluSWdub3JlID0gaWdub3JlUGF0aE1hdGNoZXIob3B0aW9ucy5pZ25vcmVPcHRpb25zKTtcbiAgY29uc3QgY29udHJvbHMgPSB3YXRjaChcIi5cIiwge1xuICAgIGF0b21pYzogZmFsc2UsXG4gICAgY3dkOiBvcHRpb25zLmN3ZCxcbiAgICBmb2xsb3dTeW1saW5rczogb3B0aW9ucy5mb2xsb3dTeW1saW5rcyxcbiAgICAvLyBJbmNsdWRlIHRoZSBpbml0aWFsIHNjYW4gc28gYSBjb250cm9sIGZpbGUgY3JlYXRlZCB3aGlsZSB0aGlzIHNlY29uZGFyeVxuICAgIC8vIHdhdGNoZXIgc3RhcnRzIGNhbm5vdCBmYWxsIGJldHdlZW4gaXRzIHNjYW4gYW5kIGxpdmUgZXZlbnQgc3Vic2NyaXB0aW9uLlxuICAgIGlnbm9yZUluaXRpYWw6IGZhbHNlLFxuICAgIHBlcnNpc3RlbnQ6IG9wdGlvbnMucGVyc2lzdGVudCxcbiAgICBpZ25vcmVkKHBhdGgsIHN0YXRzKSB7XG4gICAgICBjb25zdCByZWxhdGl2ZVBhdGggPSB0b0N3ZFJlbGF0aXZlUGF0aChwYXRoLCBvcHRpb25zLmN3ZCk7XG4gICAgICBpZiAoR2l0SWdub3JlLmlzRmlsZShyZWxhdGl2ZVBhdGgpKSByZXR1cm4gZmFsc2U7XG4gICAgICBpZiAoYnVpbHRJbklnbm9yZShyZWxhdGl2ZVBhdGgpIHx8IGJ1aWx0SW5JZ25vcmUoYCR7cmVsYXRpdmVQYXRofS9gKSkgcmV0dXJuIHRydWU7XG4gICAgICByZXR1cm4gc3RhdHMgPyAhc3RhdHMuaXNEaXJlY3RvcnkoKSA6IGZhbHNlO1xuICAgIH0sXG4gIH0pO1xuICBsZXQgdGFyZ2V0OiB7IHdhdGNoZXI6IEZTV2F0Y2hlcjsgd2F0Y2hQYXRoczogcmVhZG9ubHkgc3RyaW5nW10gfSB8IHVuZGVmaW5lZDtcbiAgbGV0IHBlbmRpbmdFcnJvcjogdW5rbm93bjtcbiAgY29uc3QgcmVmcmVzaFRhcmdldCA9ICgpOiB2b2lkID0+IHtcbiAgICB0YXJnZXQ/LndhdGNoZXIuYWRkKFsuLi50YXJnZXQud2F0Y2hQYXRoc10pO1xuICB9O1xuICBjb25zdCByZWxvYWQgPSAocGF0aDogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGdpdElnbm9yZS5zZXQocGF0aCwgcmVhZEZpbGVTeW5jKHJlc29sdmUob3B0aW9ucy5jd2QsIHBhdGgpLCBcInV0ZjhcIikpO1xuICAgICAgcmVmcmVzaFRhcmdldCgpO1xuICAgICAgbG9nZ2VyLmRlYnVnKFwiLmdpdGlnbm9yZSB1cGRhdGVkXCIsIHsgcGF0aCB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbG9nZ2VyLndhcm4oXCJmYWlsZWQgdG8gcmVsb2FkIC5naXRpZ25vcmVcIiwge1xuICAgICAgICBwYXRoLFxuICAgICAgICBlcnJvcjogdG9FcnJvcihlcnJvciksXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG4gIGNvbnRyb2xzLm9uKFwiYWRkXCIsIHJlbG9hZCk7XG4gIGNvbnRyb2xzLm9uKFwiY2hhbmdlXCIsIHJlbG9hZCk7XG4gIGNvbnRyb2xzLm9uKFwidW5saW5rXCIsIChwYXRoKSA9PiB7XG4gICAgZ2l0SWdub3JlLmRlbGV0ZShwYXRoKTtcbiAgICByZWZyZXNoVGFyZ2V0KCk7XG4gICAgbG9nZ2VyLmRlYnVnKFwiLmdpdGlnbm9yZSByZW1vdmVkXCIsIHsgcGF0aCB9KTtcbiAgfSk7XG4gIGNvbnRyb2xzLm9uKFwiZXJyb3JcIiwgKGVycm9yKSA9PiB7XG4gICAgaWYgKHRhcmdldCkgdGFyZ2V0LndhdGNoZXIuZW1pdChcImVycm9yXCIsIGVycm9yKTtcbiAgICBlbHNlIHBlbmRpbmdFcnJvciA9IGVycm9yO1xuICB9KTtcbiAgYXdhaXQgb25jZShjb250cm9scywgXCJyZWFkeVwiKTtcbiAgcmV0dXJuIHtcbiAgICBhdHRhY2god2F0Y2hlciwgd2F0Y2hQYXRocykge1xuICAgICAgdGFyZ2V0ID0geyB3YXRjaGVyLCB3YXRjaFBhdGhzIH07XG4gICAgICBpZiAocGVuZGluZ0Vycm9yKSB7XG4gICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHdhdGNoZXIuZW1pdChcImVycm9yXCIsIHBlbmRpbmdFcnJvcikpO1xuICAgICAgICBwZW5kaW5nRXJyb3IgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBjb25zdCBjbG9zZSA9IHdhdGNoZXIuY2xvc2UuYmluZCh3YXRjaGVyKTtcbiAgICAgIHdhdGNoZXIuY2xvc2UgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFtjbG9zZSgpLCBjb250cm9scy5jbG9zZSgpXSk7XG4gICAgICB9O1xuICAgIH0sXG4gIH07XG59XG5cbi8qKiBBbGlnbnMgY2hva2lkYXIgcGF0aHMgd2l0aCB0aGUgY3dkLXJlbGF0aXZlIGZvcm0ge0BsaW5rIGZpbmRGaWxlc30gdXNlcy4gKi9cbmZ1bmN0aW9uIHRvQ3dkUmVsYXRpdmVQYXRoKHBhdGg6IHN0cmluZywgY3dkOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIWlzQWJzb2x1dGUocGF0aCkpIHJldHVybiBwYXRoO1xuICBjb25zdCByZWwgPSByZWxhdGl2ZShjd2QsIHBhdGgpO1xuICByZXR1cm4gcmVsID09PSBcIlwiID8gXCIuXCIgOiByZWw7XG59XG5cbi8vIE1hbnVhbCBkZW1vOiBydW4gdGhpcyBmaWxlIGRpcmVjdGx5IChgYnVuIHNyYy93YXRjaC50cyBbZGlyXWApIHRvIHdhdGNoIGEgdHJlZVxuLy8gYW5kIGxvZyBldmVyeSBmaWxlIGV2ZW50IGFzIGl0IGhhcHBlbnMuIERlZmF1bHRzIHRvIHRoaXMgcGFja2FnZS5cbmlmIChpbXBvcnQubWV0YS5tYWluKSB7XG4gIGNvbnN0IGN3ZCA9IHJlc29sdmUocHJvY2Vzcy5hcmd2WzJdID8/IHJlc29sdmUoaW1wb3J0Lm1ldGEuZGlybmFtZSwgXCIuLlwiKSk7XG4gIGNvbnNvbGUubG9nKFwiLS0tIFN0YXJ0aW5nIEZpbGUgV2F0Y2hlciAtLS1cIik7XG4gIGNvbnNvbGUubG9nKGBXb3JraW5nIERpcmVjdG9yeTogJHtjd2R9YCk7XG5cbiAgY29uc3Qgd2F0Y2hlciA9IGF3YWl0IHdhdGNoRmlsZXMoXCIqKi9zcmMvKipcIiwge1xuICAgIGN3ZCxcbiAgICBpZ25vcmVJbml0aWFsOiBmYWxzZSxcbiAgICBpZ25vcmU6IFtcIioqL2luZGV4LnRzXCIsIFwiKiovY29yZS8qKlwiXSxcbiAgICBpZ25vcmVPcHRpb25zOiB7XG4gICAgICB0ZW1wOiBmYWxzZSxcbiAgICB9LFxuICB9KTtcbiAgd2F0Y2hlci5vbihcImFsbFwiLCAoZXZlbnQ6IHN0cmluZywgcGF0aDogc3RyaW5nKSA9PiB7XG4gICAgY29uc29sZS5sb2coYFske2V2ZW50LnRvVXBwZXJDYXNlKCl9XSAke3BhdGh9YCk7XG4gIH0pO1xuICB3YXRjaGVyLm9uKFwiZXJyb3JcIiwgKGVycm9yKSA9PiB7XG4gICAgY29uc29sZS5lcnJvcihcIldhdGNoZXIgZXJyb3I6XCIsIGVycm9yKTtcbiAgfSk7XG4gIGNvbnNvbGUubG9nKFwiV2F0Y2hlciBzdGFydGVkXCIpO1xufVxuIl19
package/package.json CHANGED
@@ -23,8 +23,8 @@
23
23
  "typescript": "^5.9.3"
24
24
  },
25
25
  "dependencies": {
26
- "@dbx-tools/core": "^0.9.154",
27
- "@dbx-tools/shared-core": "^0.9.154",
26
+ "@dbx-tools/core": "^0.9.158",
27
+ "@dbx-tools/shared-core": "^0.9.158",
28
28
  "chokidar": "^4.0.3",
29
29
  "glob": "^13.0.0",
30
30
  "ignore": "^7.0.12",
@@ -41,42 +41,10 @@
41
41
  "types": "./lib/index.d.ts",
42
42
  "default": "./lib/index.js"
43
43
  },
44
- "./find": {
45
- "types": "./lib/src/find.d.ts",
46
- "default": "./lib/src/find.js"
47
- },
48
- "./git-ignore": {
49
- "types": "./lib/src/git-ignore.d.ts",
50
- "default": "./lib/src/git-ignore.js"
51
- },
52
- "./ignore": {
53
- "types": "./lib/src/ignore.d.ts",
54
- "default": "./lib/src/ignore.js"
55
- },
56
- "./match": {
57
- "types": "./lib/src/match.d.ts",
58
- "default": "./lib/src/match.js"
59
- },
60
- "./pattern": {
61
- "types": "./lib/src/pattern.d.ts",
62
- "default": "./lib/src/pattern.js"
63
- },
64
- "./scan": {
65
- "types": "./lib/src/scan.d.ts",
66
- "default": "./lib/src/scan.js"
67
- },
68
- "./watch": {
69
- "types": "./lib/src/watch.d.ts",
70
- "default": "./lib/src/watch.js"
71
- },
72
- "./*": {
73
- "types": "./lib/src/*/index.d.ts",
74
- "default": "./lib/src/*/index.js"
75
- },
76
44
  "./package.json": "./package.json"
77
45
  }
78
46
  },
79
- "version": "0.9.154",
47
+ "version": "0.9.158",
80
48
  "types": "./lib/index.d.ts",
81
49
  "dbxToolsConfig": {
82
50
  "tags": [
@@ -89,42 +57,10 @@
89
57
  "types": "./lib/index.d.ts",
90
58
  "default": "./lib/index.js"
91
59
  },
92
- "./find": {
93
- "types": "./lib/src/find.d.ts",
94
- "default": "./lib/src/find.js"
95
- },
96
- "./git-ignore": {
97
- "types": "./lib/src/git-ignore.d.ts",
98
- "default": "./lib/src/git-ignore.js"
99
- },
100
- "./ignore": {
101
- "types": "./lib/src/ignore.d.ts",
102
- "default": "./lib/src/ignore.js"
103
- },
104
- "./match": {
105
- "types": "./lib/src/match.d.ts",
106
- "default": "./lib/src/match.js"
107
- },
108
- "./pattern": {
109
- "types": "./lib/src/pattern.d.ts",
110
- "default": "./lib/src/pattern.js"
111
- },
112
- "./scan": {
113
- "types": "./lib/src/scan.d.ts",
114
- "default": "./lib/src/scan.js"
115
- },
116
- "./watch": {
117
- "types": "./lib/src/watch.d.ts",
118
- "default": "./lib/src/watch.js"
119
- },
120
- "./*": {
121
- "types": "./lib/src/*/index.d.ts",
122
- "default": "./lib/src/*/index.js"
123
- },
124
60
  "./package.json": "./package.json"
125
61
  },
126
62
  "files": [
127
- "index.ts",
63
+ "index*.ts",
128
64
  "src",
129
65
  "lib"
130
66
  ],
package/src/find.ts CHANGED
@@ -9,7 +9,7 @@
9
9
  * @module
10
10
  */
11
11
 
12
- import { object, type Sequence } from "@dbx-tools/shared-core";
12
+ import { type Sequence, sequence } from "@dbx-tools/shared-core";
13
13
  import { globIterate, globIterateSync, IgnoreLike, type GlobOptionsWithFileTypesUnset } from "glob";
14
14
  import { GitIgnore } from "./git-ignore.ts";
15
15
  import { ignorePathMatcher } from "./ignore.ts";
@@ -47,7 +47,7 @@ export function findFilesSync(
47
47
  pattern: string | string[],
48
48
  options?: FileFindOptions,
49
49
  ): Sequence<string> {
50
- return object.sequence(globIterateSync(pattern, toGlobOptionsSync(options)));
50
+ return sequence(globIterateSync(pattern, toGlobOptionsSync(options)));
51
51
  }
52
52
 
53
53
  async function toGlobOptions(
package/src/ignore.ts CHANGED
@@ -20,8 +20,8 @@
20
20
  * @module
21
21
  */
22
22
 
23
- import * as projectUtils from "@dbx-tools/core/project-utils";
24
- import { functionUtils, object, type Sequence } from "@dbx-tools/shared-core";
23
+ import { npmRegistry } from "@dbx-tools/core";
24
+ import { type Sequence, memoize, sequence } from "@dbx-tools/shared-core";
25
25
  import { PathMatcher, PathMatchPredicate, toPathMatcher } from "./match.ts";
26
26
  import { directoryNamePattern, fileExtensionPattern } from "./pattern.ts";
27
27
 
@@ -62,8 +62,8 @@ const PUBLIC_NPM_REGISTRY_HOST = "registry.npmjs.org";
62
62
  * registry - a lockfile produced against a private mirror pins URLs that other
63
63
  * machines cannot reach, so it should not be committed.
64
64
  */
65
- const lockIgnoreMatchersAutoEnabled = functionUtils.memoize(() => {
66
- const registry = projectUtils.npmRegistry();
65
+ const lockIgnoreMatchersAutoEnabled = memoize(() => {
66
+ const registry = npmRegistry();
67
67
  return registry !== undefined && registry.hostname !== PUBLIC_NPM_REGISTRY_HOST;
68
68
  });
69
69
 
@@ -172,7 +172,7 @@ function ignoreMatchPredicates(
172
172
  * @param options - Group toggles; omitted flags default to enabled.
173
173
  */
174
174
  export function ignorePatterns(options?: IgnorePatternOptions): Sequence<string> {
175
- return object.sequence(ignoreMatchPredicates(options)).flatMap(Object.keys).distinct();
175
+ return sequence(ignoreMatchPredicates(options)).flatMap(Object.keys).distinct();
176
176
  }
177
177
 
178
178
  /**
package/src/match.ts CHANGED
@@ -8,7 +8,7 @@
8
8
  * @module
9
9
  */
10
10
 
11
- import { object, predicate, type Predicate, type PredicateFunction } from "@dbx-tools/shared-core";
11
+ import { type Predicate, type PredicateFunction, sequence, create } from "@dbx-tools/shared-core";
12
12
  import { Minimatch } from "minimatch";
13
13
 
14
14
  /** Plain path predicate accepted anywhere a glob pattern can be supplied. */
@@ -36,7 +36,7 @@ function toTest(pattern: PathMatchInput): PathMatchPredicate {
36
36
  export function pathMatchTests(
37
37
  ...inputs: readonly (PathMatchInput | null | undefined)[]
38
38
  ): readonly PathMatchPredicate[] {
39
- return object.sequence(inputs).nonNull().map(toTest).toArray();
39
+ return sequence(inputs).nonNull().map(toTest).toArray();
40
40
  }
41
41
 
42
42
  /**
@@ -51,8 +51,6 @@ export function toPathMatcher(
51
51
  ...inputs: readonly (PathMatchInput | null | undefined)[]
52
52
  ): PathMatcher {
53
53
  const tests = pathMatchTests(...inputs);
54
- if (tests.length === 0) return predicate.create(() => false);
55
- return tests
56
- .slice(1)
57
- .reduce<PathMatcher>((acc, test) => acc.or(test), predicate.create(tests[0]!));
54
+ if (tests.length === 0) return create(() => false);
55
+ return tests.slice(1).reduce<PathMatcher>((acc, test) => acc.or(test), create(tests[0]!));
58
56
  }
package/src/watch.ts CHANGED
@@ -12,7 +12,7 @@
12
12
  import { once } from "node:events";
13
13
  import { readFileSync, type Stats } from "node:fs";
14
14
  import { isAbsolute, relative, resolve } from "path";
15
- import { errorUtils, log } from "@dbx-tools/shared-core";
15
+ import { log, toError } from "@dbx-tools/shared-core";
16
16
  import { ChokidarOptions, MatchFunction, watch, type FSWatcher } from "chokidar";
17
17
  import { hasMagic } from "glob";
18
18
  import { findFiles, type FileFindOptions } from "./find.ts";
@@ -216,7 +216,7 @@ async function createGitIgnoreControls(
216
216
  } catch (error) {
217
217
  logger.warn("failed to reload .gitignore", {
218
218
  path,
219
- error: errorUtils.toError(error),
219
+ error: toError(error),
220
220
  });
221
221
  }
222
222
  };