@dbx-tools/path 0.9.121 → 0.9.123

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.121";
6
+ export const PACKAGE_VERSION = "0.9.123";
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";
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.121";
2
+ export declare const PACKAGE_VERSION = "0.9.123";
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";
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.121";
5
+ export const PACKAGE_VERSION = "0.9.123";
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";
@@ -12,4 +12,4 @@ export * as scan from "./src/scan.js";
12
12
  export * as watch from "./src/watch.js";
13
13
  export { GitIgnore } from "./src/git-ignore.js";
14
14
  export { FOLLOW_SYMLINKS_DEFAULT } from "./src/scan.js";
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxpQkFBaUIsQ0FBQztBQUNwRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxTQUFTLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxLQUFLLElBQUksTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJaEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfSURFTlRJRklFUiA9IFwiQGRieC10b29scy9wYXRoXCI7XG5leHBvcnQgY29uc3QgUEFDS0FHRV9WRVJTSU9OID0gXCIwLjkuMTIxXCI7XG5leHBvcnQgKiBhcyBmaW5kIGZyb20gXCIuL3NyYy9maW5kLnRzXCI7XG5leHBvcnQgKiBhcyBnaXRJZ25vcmUgZnJvbSBcIi4vc3JjL2dpdC1pZ25vcmUudHNcIjtcbmV4cG9ydCAqIGFzIGlnbm9yZSBmcm9tIFwiLi9zcmMvaWdub3JlLnRzXCI7XG5leHBvcnQgKiBhcyBtYXRjaCBmcm9tIFwiLi9zcmMvbWF0Y2gudHNcIjtcbmV4cG9ydCAqIGFzIHBhdHRlcm4gZnJvbSBcIi4vc3JjL3BhdHRlcm4udHNcIjtcbmV4cG9ydCAqIGFzIHNjYW4gZnJvbSBcIi4vc3JjL3NjYW4udHNcIjtcbmV4cG9ydCAqIGFzIHdhdGNoIGZyb20gXCIuL3NyYy93YXRjaC50c1wiO1xuZXhwb3J0IHR5cGUgeyBGaWxlRmluZE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvZmluZC50c1wiO1xuZXhwb3J0IHsgR2l0SWdub3JlIH0gZnJvbSBcIi4vc3JjL2dpdC1pZ25vcmUudHNcIjtcbmV4cG9ydCB0eXBlIHsgR2l0SWdub3JlTG9hZE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvZ2l0LWlnbm9yZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBJZ25vcmVQYXR0ZXJuT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9pZ25vcmUudHNcIjtcbmV4cG9ydCB0eXBlIHsgUGF0aE1hdGNoUHJlZGljYXRlLCBQYXRoTWF0Y2hlciwgUGF0aE1hdGNoSW5wdXQgfSBmcm9tIFwiLi9zcmMvbWF0Y2gudHNcIjtcbmV4cG9ydCB7IEZPTExPV19TWU1MSU5LU19ERUZBVUxUIH0gZnJvbSBcIi4vc3JjL3NjYW4udHNcIjtcbmV4cG9ydCB0eXBlIHsgRmlsZVNjYW5PcHRpb25zLCBGaWxlU2Nhbklnbm9yZU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvc2Nhbi50c1wiO1xuZXhwb3J0IHR5cGUgeyBGaWxlV2F0Y2hPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3dhdGNoLnRzXCI7XG4iXX0=
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxpQkFBaUIsQ0FBQztBQUNwRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxTQUFTLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxLQUFLLElBQUksTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJaEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfSURFTlRJRklFUiA9IFwiQGRieC10b29scy9wYXRoXCI7XG5leHBvcnQgY29uc3QgUEFDS0FHRV9WRVJTSU9OID0gXCIwLjkuMTIzXCI7XG5leHBvcnQgKiBhcyBmaW5kIGZyb20gXCIuL3NyYy9maW5kLnRzXCI7XG5leHBvcnQgKiBhcyBnaXRJZ25vcmUgZnJvbSBcIi4vc3JjL2dpdC1pZ25vcmUudHNcIjtcbmV4cG9ydCAqIGFzIGlnbm9yZSBmcm9tIFwiLi9zcmMvaWdub3JlLnRzXCI7XG5leHBvcnQgKiBhcyBtYXRjaCBmcm9tIFwiLi9zcmMvbWF0Y2gudHNcIjtcbmV4cG9ydCAqIGFzIHBhdHRlcm4gZnJvbSBcIi4vc3JjL3BhdHRlcm4udHNcIjtcbmV4cG9ydCAqIGFzIHNjYW4gZnJvbSBcIi4vc3JjL3NjYW4udHNcIjtcbmV4cG9ydCAqIGFzIHdhdGNoIGZyb20gXCIuL3NyYy93YXRjaC50c1wiO1xuZXhwb3J0IHR5cGUgeyBGaWxlRmluZE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvZmluZC50c1wiO1xuZXhwb3J0IHsgR2l0SWdub3JlIH0gZnJvbSBcIi4vc3JjL2dpdC1pZ25vcmUudHNcIjtcbmV4cG9ydCB0eXBlIHsgR2l0SWdub3JlTG9hZE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvZ2l0LWlnbm9yZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBJZ25vcmVQYXR0ZXJuT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9pZ25vcmUudHNcIjtcbmV4cG9ydCB0eXBlIHsgUGF0aE1hdGNoUHJlZGljYXRlLCBQYXRoTWF0Y2hlciwgUGF0aE1hdGNoSW5wdXQgfSBmcm9tIFwiLi9zcmMvbWF0Y2gudHNcIjtcbmV4cG9ydCB7IEZPTExPV19TWU1MSU5LU19ERUZBVUxUIH0gZnJvbSBcIi4vc3JjL3NjYW4udHNcIjtcbmV4cG9ydCB0eXBlIHsgRmlsZVNjYW5PcHRpb25zLCBGaWxlU2Nhbklnbm9yZU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvc2Nhbi50c1wiO1xuZXhwb3J0IHR5cGUgeyBGaWxlV2F0Y2hPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3dhdGNoLnRzXCI7XG4iXX0=
package/lib/src/find.js CHANGED
@@ -9,7 +9,7 @@
9
9
  * @module
10
10
  */
11
11
  import { object } from "@dbx-tools/shared-core";
12
- import { globIterate, globIterateSync, } from "glob";
12
+ import { globIterate, globIterateSync } from "glob";
13
13
  import { GitIgnore } from "./git-ignore.js";
14
14
  import { ignorePathMatcher } from "./ignore.js";
15
15
  import { pathMatchTests, toPathMatcher } from "./match.js";
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7R0FTRztBQUVILE9BQU8sRUFBRSxNQUFNLEVBQWlCLE1BQU0sd0JBQXdCLENBQUM7QUFDL0QsT0FBTyxFQUNMLFdBQVcsRUFDWCxlQUFlLEdBR2hCLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQStCLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEYsT0FBTyxFQUEwQyx1QkFBdUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQWU1Rjs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FDOUIsT0FBMEIsRUFDMUIsT0FBeUI7SUFFekIsS0FBSyxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFFRCxvREFBb0Q7QUFDcEQsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsT0FBMEIsRUFDMUIsT0FBeUI7SUFFekIsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9FLENBQUM7QUFFRCxLQUFLLFVBQVUsYUFBYSxDQUMxQixPQUFvQztJQUVwQyxNQUFNLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0lBQzdELE1BQU0sSUFBSSxHQUFHLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDbEMsTUFBTSxTQUFTLEdBQUcsYUFB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O1FBQ2YsQ0FBQztRQUNELEdBQUcsQ0FBQyxNQUFNO1lBQ1IsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFCLGFBQWEsR0FBRyxhQUFhLENBQUMsRUFBRSxDQUFDLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDOUQsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsdUVBQXVFO0FBQ3ZFLHlFQUF5RTtBQUN6RSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3BDLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUVoQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsUUFBUSxFQUFFO1FBQ2hDLE1BQU0sRUFBRSxDQUFDLGFBQWEsRUFBRSxlQUFlLEVBQUUsU0FBUyxDQUFDO1FBQ25ELGFBQWEsRUFBRTtZQUNiLElBQUksRUFBRSxJQUFJO1NBQ1g7S0FDRixDQUFDLENBQUM7SUFDSCxJQUFJLEtBQUssRUFBRSxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFLEdBQUcsU0FBUyxDQUFDO0lBQzlDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxPQUFPLElBQUksQ0FBQyxDQUFDO0FBQ3ZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlcG9zaXRvcnktY29uc2lzdGVudCBmaWxlIGRpc2NvdmVyeSBvdmVyIGBnbG9iYC5cbiAqXG4gKiBSZXVzZSB7QGxpbmsgZmluZEZpbGVzfSBvciB7QGxpbmsgZmluZEZpbGVzU3luY30gd2hlbiBwYWNrYWdlIGRpc2NvdmVyeSxcbiAqIGdlbmVyYXRpb24sIGNsZWFudXAsIG9yIGRvY3MgdG9vbGluZyBtdXN0IGhvbm9yIHRoZSBzYW1lIGlnbm9yZSBjYXRhbG9ndWUgYW5kXG4gKiBzeW1saW5rIGRlZmF1bHRzIGFzIHdhdGNoZXJzLiBEaXJlY3QgYGdsb2JgIGNhbGxzIHNob3VsZCBiZSByZXNlcnZlZCBmb3JcbiAqIGJlaGF2aW9yIHRoYXQgaW50ZW50aW9uYWxseSBkaWZmZXJzLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBvYmplY3QsIHR5cGUgU2VxdWVuY2UgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHtcbiAgZ2xvYkl0ZXJhdGUsXG4gIGdsb2JJdGVyYXRlU3luYyxcbiAgSWdub3JlTGlrZSxcbiAgdHlwZSBHbG9iT3B0aW9uc1dpdGhGaWxlVHlwZXNVbnNldCxcbn0gZnJvbSBcImdsb2JcIjtcbmltcG9ydCB7IEdpdElnbm9yZSB9IGZyb20gXCIuL2dpdC1pZ25vcmUudHNcIjtcbmltcG9ydCB7IGlnbm9yZVBhdGhNYXRjaGVyIH0gZnJvbSBcIi4vaWdub3JlLnRzXCI7XG5pbXBvcnQgeyBQYXRoTWF0Y2hlciwgUGF0aE1hdGNoSW5wdXQsIHBhdGhNYXRjaFRlc3RzLCB0b1BhdGhNYXRjaGVyIH0gZnJvbSBcIi4vbWF0Y2gudHNcIjtcbmltcG9ydCB7IEZpbGVTY2FuSWdub3JlT3B0aW9ucywgRmlsZVNjYW5PcHRpb25zLCBGT0xMT1dfU1lNTElOS1NfREVGQVVMVCB9IGZyb20gXCIuL3NjYW4udHNcIjtcblxudHlwZSBGaWxlRmluZElnbm9yZSA9IFBhdGhNYXRjaElucHV0IHwgcmVhZG9ubHkgUGF0aE1hdGNoSW5wdXRbXSB8IElnbm9yZUxpa2U7XG5cbi8qKiBHbG9iLCByb290LCBpZ25vcmUsIGFuZCBzeW1saW5rIG9wdGlvbnMgZm9yIHtAbGluayBmaW5kRmlsZXN9IGFuZCB7QGxpbmsgZmluZEZpbGVzU3luY30uICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVGaW5kT3B0aW9uc1xuICBleHRlbmRzXG4gICAgT21pdDxcbiAgICAgIEdsb2JPcHRpb25zV2l0aEZpbGVUeXBlc1Vuc2V0LFxuICAgICAgXCJpZ25vcmVcIiB8IFwiZm9sbG93XCIgfCBcImRvdFwiIHwgXCJjd2RcIiB8IFwiaW5jbHVkZUNoaWxkTWF0Y2hlc1wiXG4gICAgPixcbiAgICBPbWl0PEZpbGVTY2FuT3B0aW9ucywgXCJpZ25vcmVcIiB8IFwiY3dkXCI+IHtcbiAgY3dkPzogc3RyaW5nIHwgVVJMO1xuICBpZ25vcmU/OiBGaWxlRmluZElnbm9yZTtcbn1cbi8qKlxuICogUmVjdXJzaXZlbHkgbGlzdHMgZmlsZXMgbWF0Y2hpbmcgYHBhdHRlcm5gLCBpZ25vcmluZyB0aGUgc2hhcmVkIGRlZmF1bHQgZ3JvdXBzXG4gKiBwbHVzIGFueSBjYWxsZXIgYGlnbm9yZWAgcGF0dGVybnMgKHVubGVzcyBgaWdub3JlYCBpcyBhIGxvbmUgcHJlZGljYXRlIGZ1bmN0aW9uLFxuICogaW4gd2hpY2ggY2FzZSBvbmx5IHRoYXQgcHJlZGljYXRlIGFwcGxpZXMpLiBUaGUgaWdub3JlIGxpc3QgbWlycm9ycyB3aGF0XG4gKiB7QGxpbmsgd2F0Y2hGaWxlc30gZmVlZHMgdGhyb3VnaCBpdHMgbWF0Y2hlcnMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiogZmluZEZpbGVzKFxuICBwYXR0ZXJuOiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgb3B0aW9ucz86IEZpbGVGaW5kT3B0aW9ucyxcbik6IEFzeW5jR2VuZXJhdG9yPHN0cmluZz4ge1xuICB5aWVsZCogZ2xvYkl0ZXJhdGUocGF0dGVybiwgYXdhaXQgdG9HbG9iT3B0aW9ucyhvcHRpb25zKSk7XG59XG5cbi8qKiBTeW5jaHJvbm91cyBjb3VudGVycGFydCB0byB7QGxpbmsgZmluZEZpbGVzfS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kRmlsZXNTeW5jKFxuICBwYXR0ZXJuOiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgb3B0aW9ucz86IEZpbGVGaW5kT3B0aW9ucyxcbik6IFNlcXVlbmNlPHN0cmluZz4ge1xuICByZXR1cm4gb2JqZWN0LnNlcXVlbmNlKGdsb2JJdGVyYXRlU3luYyhwYXR0ZXJuLCB0b0dsb2JPcHRpb25zU3luYyhvcHRpb25zKSkpO1xufVxuXG5hc3luYyBmdW5jdGlvbiB0b0dsb2JPcHRpb25zKFxuICBvcHRpb25zOiBGaWxlRmluZE9wdGlvbnMgfCB1bmRlZmluZWQsXG4pOiBQcm9taXNlPEdsb2JPcHRpb25zV2l0aEZpbGVUeXBlc1Vuc2V0PiB7XG4gIGNvbnN0IHsgY3dkLCBpZ25vcmVPcHRpb25zLCBmb2xsb3dTeW1saW5rcyB9ID0gb3B0aW9ucyA/PyB7fTtcbiAgY29uc3Qgcm9vdCA9IGN3ZCA/PyBwcm9jZXNzLmN3ZCgpO1xuICBjb25zdCBnaXRJZ25vcmUgPSBpZ25vcmVPcHRpb25zPy5naXRcbiAgICA/IGF3YWl0IEdpdElnbm9yZS5sb2FkKHJvb3QsIHsgaWdub3JlT3B0aW9ucywgZm9sbG93U3ltbGlua3MgfSlcbiAgICA6IHVuZGVmaW5lZDtcbiAgcmV0dXJuIGJ1aWxkR2xvYk9wdGlvbnMob3B0aW9ucywgZ2l0SWdub3JlKTtcbn1cblxuZnVuY3Rpb24gdG9HbG9iT3B0aW9uc1N5bmMob3B0aW9uczogRmlsZUZpbmRPcHRpb25zIHwgdW5kZWZpbmVkKTogR2xvYk9wdGlvbnNXaXRoRmlsZVR5cGVzVW5zZXQge1xuICBjb25zdCB7IGN3ZCwgaWdub3JlT3B0aW9ucywgZm9sbG93U3ltbGlua3MgfSA9IG9wdGlvbnMgPz8ge307XG4gIGNvbnN0IHJvb3QgPSBjd2QgPz8gcHJvY2Vzcy5jd2QoKTtcbiAgY29uc3QgZ2l0SWdub3JlID0gaWdub3JlT3B0aW9ucz8uZ2l0XG4gICAgPyBHaXRJZ25vcmUubG9hZFN5bmMocm9vdCwgeyBpZ25vcmVPcHRpb25zLCBmb2xsb3dTeW1saW5rcyB9KVxuICAgIDogdW5kZWZpbmVkO1xuICByZXR1cm4gYnVpbGRHbG9iT3B0aW9ucyhvcHRpb25zLCBnaXRJZ25vcmUpO1xufVxuXG5mdW5jdGlvbiBidWlsZEdsb2JPcHRpb25zKFxuICBvcHRpb25zOiBGaWxlRmluZE9wdGlvbnMgfCB1bmRlZmluZWQsXG4gIGdpdElnbm9yZTogR2l0SWdub3JlIHwgdW5kZWZpbmVkLFxuKTogR2xvYk9wdGlvbnNXaXRoRmlsZVR5cGVzVW5zZXQge1xuICBjb25zdCB7IGN3ZCwgaWdub3JlLCBpZ25vcmVPcHRpb25zLCBmb2xsb3dTeW1saW5rcywgLi4ucmVzdE9wdGlvbnMgfSA9IG9wdGlvbnMgPz8ge307XG4gIHJldHVybiB7XG4gICAgLi4ucmVzdE9wdGlvbnMsXG4gICAgY3dkOiBjd2QgPz8gcHJvY2Vzcy5jd2QoKSxcbiAgICBmb2xsb3c6IGZvbGxvd1N5bWxpbmtzID8/IEZPTExPV19TWU1MSU5LU19ERUZBVUxULFxuICAgIGlnbm9yZTogbm9ybWFsaXplSWdub3JlKGlnbm9yZSwgaWdub3JlT3B0aW9ucywgZ2l0SWdub3JlKSxcbiAgfTtcbn1cblxuY29uc3QgSUdOT1JFX0xJS0VfRklFTERTID0gW1xuICBcImlnbm9yZWRcIixcbiAgXCJjaGlsZHJlbklnbm9yZWRcIixcbiAgXCJhZGRcIixcbl0gYXMgY29uc3Qgc2F0aXNmaWVzIHJlYWRvbmx5IChrZXlvZiBJZ25vcmVMaWtlKVtdO1xuXG5mdW5jdGlvbiBpc0lnbm9yZUxpa2UodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBJZ25vcmVMaWtlIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSByZXR1cm4gZmFsc2U7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIElHTk9SRV9MSUtFX0ZJRUxEUykge1xuICAgICAgaWYgKGZpZWxkIGluIHZhbHVlICYmIHR5cGVvZiAodmFsdWUgYXMgYW55KVtmaWVsZF0gIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cbi8qKlxuICogQnVpbGRzIHRoZSB7QGxpbmsgSWdub3JlTGlrZX0gb2JqZWN0IGZpbGUgZGlzY292ZXJ5IGhhbmRzIHRvIGBnbG9iYC5cbiAqXG4gKiBBIGNhbGxlci1zdXBwbGllZCBgSWdub3JlTGlrZWAgKGFuIG9iamVjdCwgbm90IHN0cmluZy9hcnJheSkgaXMgY29uc3VsdGVkXG4gKiBmaXJzdCAtIGl0cyBgaWdub3JlZGAvYGNoaWxkcmVuSWdub3JlZGAgd2luIC0gYWZ0ZXIgd2hpY2ggdGhlIHNoYXJlZFxuICoge0BsaW5rIGlnbm9yZVBhdGhNYXRjaGVyfSAodGhlIHNhbWUgbWF0Y2hlciB7QGxpbmsgd2F0Y2hGaWxlc30gdXNlcykgZGVjaWRlcyBiYXNlZCBvbiB0aGVcbiAqIHBhY2thZ2UtcmVsYXRpdmUgcGF0aC4gYGNhY2hlRGlyZWN0b3J5U3RhdHNgIGlzIGVuYWJsZWQgYmVjYXVzZSBnbG9iIHByb2Jlc1xuICogbWFueSBwYXRocyBwZXIgZGlyZWN0b3J5LiBDYWxsZXIgc3RyaW5nL2FycmF5IHBhdHRlcm5zIGFyZSBtZXJnZWQgaW50byB0aGVcbiAqIG1hdGNoZXIsIGFuZCBgYWRkYCBmb3J3YXJkcyB0byBib3RoIHRoZSBjYWxsZXIgb2JqZWN0IGFuZCB0aGUgbWF0Y2hlci5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplSWdub3JlKFxuICBpZ25vcmU6IEZpbGVGaW5kSWdub3JlIHwgdW5kZWZpbmVkLFxuICBpZ25vcmVPcHRpb25zOiBGaWxlU2Nhbklnbm9yZU9wdGlvbnMgfCB1bmRlZmluZWQsXG4gIGdpdElnbm9yZTogR2l0SWdub3JlIHwgdW5kZWZpbmVkLFxuKTogSWdub3JlTGlrZSB7XG4gIGNvbnN0IGlnbm9yZUxpa2U6IElnbm9yZUxpa2UgfCB1bmRlZmluZWQgPSBpc0lnbm9yZUxpa2UoaWdub3JlKSA/IGlnbm9yZSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgaWdub3JlUGF0aE1hdGNoZXJJbnB1dHM6IFBhdGhNYXRjaElucHV0W10gfCB1bmRlZmluZWQgPVxuICAgIGlnbm9yZSA9PT0gdW5kZWZpbmVkIHx8IGlnbm9yZUxpa2UgPyB1bmRlZmluZWQgOiBBcnJheS5pc0FycmF5KGlnbm9yZSkgPyBbLi4uaWdub3JlXSA6IFtpZ25vcmVdO1xuXG4gIGNvbnN0IHByZWRpY2F0ZU9ubHkgPVxuICAgIGlnbm9yZVBhdGhNYXRjaGVySW5wdXRzPy5sZW5ndGggPT09IDEgJiYgdHlwZW9mIGlnbm9yZVBhdGhNYXRjaGVySW5wdXRzWzBdID09PSBcImZ1bmN0aW9uXCI7XG5cbiAgbGV0IGlnbm9yZU1hdGNoZXI6IFBhdGhNYXRjaGVyID0gcHJlZGljYXRlT25seVxuICAgID8gdG9QYXRoTWF0Y2hlcihpZ25vcmVQYXRoTWF0Y2hlcklucHV0c1swXSlcbiAgICA6IGlnbm9yZVBhdGhNYXRjaGVyKGlnbm9yZU9wdGlvbnMpO1xuICBpZiAoaWdub3JlUGF0aE1hdGNoZXJJbnB1dHMgJiYgIXByZWRpY2F0ZU9ubHkpIHtcbiAgICBpZ25vcmVNYXRjaGVyID0gaWdub3JlTWF0Y2hlci5vciguLi5wYXRoTWF0Y2hUZXN0cyguLi5pZ25vcmVQYXRoTWF0Y2hlcklucHV0cykpO1xuICB9XG4gIHJldHVybiB7XG4gICAgaWdub3JlZChwYXRoKSB7XG4gICAgICBpZiAoaWdub3JlTGlrZT8uaWdub3JlZD8uKHBhdGgpKSByZXR1cm4gdHJ1ZTtcbiAgICAgIGNvbnN0IHBhdGhlUmVsYXRpdmUgPSBwYXRoLnJlbGF0aXZlKCk7XG4gICAgICBpZiAoZ2l0SWdub3JlPy5pZ25vcmVzKHBhdGhlUmVsYXRpdmUsIHBhdGguaXNEaXJlY3RvcnkoKSkpIHJldHVybiB0cnVlO1xuICAgICAgY29uc3QgaWdub3JlID0gaWdub3JlTWF0Y2hlcihwYXRoZVJlbGF0aXZlKTtcbiAgICAgIHJldHVybiBpZ25vcmU7XG4gICAgfSxcbiAgICBjaGlsZHJlbklnbm9yZWQocGF0aCkge1xuICAgICAgaWYgKGlnbm9yZUxpa2U/LmNoaWxkcmVuSWdub3JlZD8uKHBhdGgpKSByZXR1cm4gdHJ1ZTtcbiAgICAgIGNvbnN0IHBhdGhlUmVsYXRpdmUgPSBwYXRoLnJlbGF0aXZlKCk7XG4gICAgICBpZiAocGF0aGVSZWxhdGl2ZSkge1xuICAgICAgICBpZiAoZ2l0SWdub3JlPy5pZ25vcmVzKHBhdGhlUmVsYXRpdmUsIHRydWUpKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgaWYgKGlnbm9yZU1hdGNoZXIocGF0aGVSZWxhdGl2ZSkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChpZ25vcmVNYXRjaGVyKHBhdGhlUmVsYXRpdmUgKyBcIi9cIikpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0sXG4gICAgYWRkKGlnbm9yZSkge1xuICAgICAgaWdub3JlTGlrZT8uYWRkPy4oaWdub3JlKTtcbiAgICAgIGlnbm9yZU1hdGNoZXIgPSBpZ25vcmVNYXRjaGVyLm9yKC4uLnBhdGhNYXRjaFRlc3RzKGlnbm9yZSkpO1xuICAgIH0sXG4gIH07XG59XG5cbi8vIE1hbnVhbCBkZW1vOiBydW4gdGhpcyBmaWxlIGRpcmVjdGx5IChgYnVuIHNyYy9maW5kLnRzYCkgdG8gcHJpbnQgdGhlXG4vLyBmaWxlcyBmaW5kRmlsZXMga2VlcHMgZm9yIHRoaXMgcGFja2FnZSB1bmRlciB0aGUgZ2l2ZW4gaWdub3JlIG9wdGlvbnMuXG5pZiAoaW1wb3J0Lm1ldGEubWFpbikge1xuICBjb25zdCBzdGFydFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgY29uc3QgY3dkID0gcHJvY2Vzcy5jd2QoKTtcbiAgY29uc29sZS5sb2coYFNjYW5uaW5nOiAke2N3ZH1gKTtcblxuICBjb25zdCBmaWxlcyA9IGZpbmRGaWxlcyhcIioqLyouKlwiLCB7XG4gICAgaWdub3JlOiBbXCIqKi9pbmRleC50c1wiLCBcIioqL2V4YW1wbGUvKipcIiwgXCIqKi8qLm1kXCJdLFxuICAgIGlnbm9yZU9wdGlvbnM6IHtcbiAgICAgIHRlc3Q6IHRydWUsXG4gICAgfSxcbiAgfSk7XG4gIGZvciBhd2FpdCAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgIGNvbnNvbGUubG9nKGZpbGUpO1xuICB9XG4gIGNvbnN0IGVsYXBzZWQgPSBwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0VGltZTtcbiAgY29uc29sZS5sb2coYEVsYXBzZWQ6ICR7ZWxhcHNlZH1tc2ApO1xufVxuIl19
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=
@@ -158,4 +158,4 @@ function trimSlash(path) {
158
158
  function toPosix(path) {
159
159
  return path.split(sep).join("/");
160
160
  }
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0LWlnbm9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9naXQtaWdub3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekMsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQW1CLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBb0IsTUFBTSxZQUFZLENBQUM7QUFpQjdELCtFQUErRTtBQUMvRSxNQUFNLE9BQU8sU0FBUztJQUNYLElBQUksQ0FBUztJQUN0QiwwR0FBMEc7SUFDakcsT0FBTyxHQUFnQixhQUFhLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUUzRCxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQTRCLENBQUM7SUFDckQsS0FBSyxHQUF1QixFQUFFLENBQUM7SUFFdkMsWUFBWSxJQUFrQjtRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCwrREFBK0Q7SUFDL0QsTUFBTSxD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LENBQUM7SUFDNUIsSUFBSSxJQUFJLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ2xDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3pGLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxJQUFZO0lBQzdCLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxJQUFZO0lBQzdCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVELFNBQVMsT0FBTyxDQUFDLElBQVk7SUFDM0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBNdXRhYmxlLCBHaXQtY29tcGF0aWJsZSBgLmdpdGlnbm9yZWAgcGF0aCBtYXRjaGluZy5cbiAqXG4gKiBSdWxlIHN5bnRheCBpcyBvd25lZCBieSB0aGUgYGlnbm9yZWAgcGFja2FnZSwgd2hvc2UgY29tcGF0aWJpbGl0eSBzdWl0ZVxuICogY29tcGFyZXMgYmVoYXZpb3Igd2l0aCBgZ2l0IGNoZWNrLWlnbm9yZWAuIFRoaXMgbW9kdWxlIGFkZHMgcmVwb3NpdG9yeSBhbmRcbiAqIG5lc3RlZC1maWxlIHNjb3BpbmcgcGx1cyBpbi1tZW1vcnkgYWRkLCB1cGRhdGUsIGFuZCByZW1vdmFsLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyByZWFkRmlsZVN5bmMgfSBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHsgcmVhZEZpbGUgfSBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgYmFzZW5hbWUsIGRpcm5hbWUsIGlzQWJzb2x1dGUsIHJlbGF0aXZlLCByZXNvbHZlLCBzZXAgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoIH0gZnJvbSBcIm5vZGU6dXJsXCI7XG5pbXBvcnQgeyBnbG9iLCBnbG9iU3luYywgdHlwZSBJZ25vcmVMaWtlIH0gZnJvbSBcImdsb2JcIjtcbmltcG9ydCBpZ25vcmUgZnJvbSBcImlnbm9yZVwiO1xuaW1wb3J0IHR5cGUgeyBJZ25vcmVQYXR0ZXJuT3B0aW9ucyB9IGZyb20gXCIuL2lnbm9yZS50c1wiO1xuaW1wb3J0IHsgaWdub3JlUGF0aE1hdGNoZXIgfSBmcm9tIFwiLi9pZ25vcmUudHNcIjtcbmltcG9ydCB7IHRvUGF0aE1hdGNoZXIsIHR5cGUgUGF0aE1hdGNoZXIgfSBmcm9tIFwiLi9tYXRjaC50c1wiO1xuXG5pbnRlcmZhY2UgR2l0SWdub3JlUnVsZVNldCB7XG4gIGNvbnRlbnQ6IHN0cmluZztcbiAgZGlyZWN0b3J5OiBzdHJpbmc7XG4gIG1hdGNoZXI6IFJldHVyblR5cGU8dHlwZW9mIGlnbm9yZT47XG4gIHBhdGg6IHN0cmluZztcbn1cblxuLyoqIE9wdGlvbnMgdXNlZCB3aGlsZSBkaXNjb3ZlcmluZyBgLmdpdGlnbm9yZWAgZmlsZXMgYmVuZWF0aCBhIHJvb3QuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdElnbm9yZUxvYWRPcHRpb25zIHtcbiAgLyoqIEJ1aWx0LWluIGRpcmVjdG9yeSBncm91cHMgcHJ1bmVkIHdoaWxlIGxvb2tpbmcgZm9yIGlnbm9yZSBmaWxlcy4gKi9cbiAgaWdub3JlT3B0aW9ucz86IElnbm9yZVBhdHRlcm5PcHRpb25zO1xuICAvKiogRm9sbG93IHN5bWxpbmtlZCBkaXJlY3RvcmllcyBkdXJpbmcgZGlzY292ZXJ5LiBEZWZhdWx0cyB0byBmYWxzZS4gKi9cbiAgZm9sbG93U3ltbGlua3M/OiBib29sZWFuO1xufVxuXG4vKiogTXV0YWJsZSBwYXRoIHByZWRpY2F0ZSBjb21wb3NlZCBmcm9tIHJvb3QgYW5kIG5lc3RlZCBgLmdpdGlnbm9yZWAgZmlsZXMuICovXG5leHBvcnQgY2xhc3MgR2l0SWdub3JlIHtcbiAgcmVhZG9ubHkgcm9vdDogc3RyaW5nO1xuICAvKiogU3RhYmxlIGNvbXBvc2FibGUgbWF0Y2hlciB0aGF0IG9ic2VydmVzIGxhdGVyIHtAbGluayBzZXR9LCB7QGxpbmsgZGVsZXRlfSwgYW5kIHtAbGluayBjbGVhcn0gY2FsbHMuICovXG4gIHJlYWRvbmx5IG1hdGNoZXI6IFBhdGhNYXRjaGVyID0gdG9QYXRoTWF0Y2hlcigocGF0aCkgPT4gdGhpcy5pZ25vcmVzKHBhdGgpKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGZpbGVzID0gbmV3IE1hcDxzdHJpbmcsIEdpdElnbm9yZVJ1bGVTZXQ+KCk7XG4gIHByaXZhdGUgcnVsZXM6IEdpdElnbm9yZVJ1bGVTZXRbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHJvb3Q6IHN0cmluZyB8IFVSTCkge1xuICAgIHRoaXMucm9vdCA9IHJlc29sdmUocm9vdCBpbnN0YW5jZW9mIFVSTCA/IGZpbGVVUkxUb1BhdGgocm9vdCkgOiByb290KTtcbiAgfVxuXG4gIC8qKiBMb2FkIGV2ZXJ5IGFwcGxpY2FibGUgYC5naXRpZ25vcmVgIGJlbmVhdGgge0BsaW5rIHJvb3R9LiAqL1xuICBzdGF0aWMgYXN5bmMgbG9hZChcbiAgICByb290OiBzdHJpbmcgfCBVUkwsXG4gICAgb3B0aW9uczogR2l0SWdub3JlTG9hZE9wdGlvbnMgPSB7fSxcbiAgKTogUHJvbWlzZTxHaXRJZ25vcmU+IHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgR2l0SWdub3JlKHJvb3QpO1xuICAgIGZvciAoY29uc3QgcGF0aCBvZiBhd2FpdCBnbG9iKFwiKiovLmdpdGlnbm9yZVwiLCBkaXNjb3ZlcnlPcHRpb25zKHJlc3VsdC5yb290LCBvcHRpb25zKSkpIHtcbiAgICAgIHJlc3VsdC5zZXQocGF0aCwgYXdhaXQgcmVhZEZpbGUocmVzb2x2ZShyZXN1bHQucm9vdCwgcGF0aCksIFwidXRmOFwiKSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKiogU3luY2hyb25vdXMgY291bnRlcnBhcnQgdG8ge0BsaW5rIEdpdElnbm9yZS5sb2FkfS4gKi9cbiAgc3RhdGljIGxvYWRTeW5jKHJvb3Q6IHN0cmluZyB8IFVSTCwgb3B0aW9uczogR2l0SWdub3JlTG9hZE9wdGlvbnMgPSB7fSk6IEdpdElnbm9yZSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IEdpdElnbm9yZShyb290KTtcbiAgICBmb3IgKGNvbnN0IHBhdGggb2YgZ2xvYlN5bmMoXCIqKi8uZ2l0aWdub3JlXCIsIGRpc2NvdmVyeU9wdGlvbnMocmVzdWx0LnJvb3QsIG9wdGlvbnMpKSkge1xuICAgICAgcmVzdWx0LnNldChwYXRoLCByZWFkRmlsZVN5bmMocmVzb2x2ZShyZXN1bHQucm9vdCwgcGF0aCksIFwidXRmOFwiKSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKiogV2hldGhlciBgcGF0aGAgbmFtZXMgYSBgLmdpdGlnbm9yZWAgY29udHJvbCBmaWxlLiAqL1xuICBzdGF0aWMgaXNGaWxlKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBiYXNlbmFtZShwYXRoKSA9PT0gXCIuZ2l0aWdub3JlXCI7XG4gIH1cblxuICAvKiogQWRkIG9yIHJlcGxhY2Ugb25lIGAuZ2l0aWdub3JlYCBmaWxlIGFuZCBpdHMgaW4tbWVtb3J5IGNvbnRlbnQuICovXG4gIHNldChwYXRoOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHRoaXMucmVsYXRpdmVQYXRoKHBhdGgpO1xuICAgIGlmICghcmVsYXRpdmVQYXRoIHx8ICFHaXRJZ25vcmUuaXNGaWxlKHJlbGF0aXZlUGF0aCkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYEdpdCBpZ25vcmUgcGF0aCBtdXN0IG5hbWUgYSAuZ2l0aWdub3JlIHVuZGVyICR7dGhpcy5yb290fTogJHtwYXRofWApO1xuICAgIH1cbiAgICB0aGlzLmZpbGVzLnNldChyZWxhdGl2ZVBhdGgsIHtcbiAgICAgIGNvbnRlbnQsXG4gICAgICBkaXJlY3Rvcnk6IHRvUG9zaXgoZGlybmFtZShyZWxhdGl2ZVBhdGgpKSA9PT0gXCIuXCIgPyBcIlwiIDogdG9Qb3NpeChkaXJuYW1lKHJlbGF0aXZlUGF0aCkpLFxuICAgICAgbWF0Y2hlcjogaWdub3JlKCkuYWRkKGNvbnRlbnQpLFxuICAgICAgcGF0aDogcmVsYXRpdmVQYXRoLFxuICAgIH0pO1xuICAgIHRoaXMucmVmcmVzaFJ1bGVzKCk7XG4gIH1cblxuICAvKiogUmVtb3ZlIG9uZSBgLmdpdGlnbm9yZWAgZmlsZS4gUmV0dXJucyB3aGV0aGVyIGl0IHdhcyByZWdpc3RlcmVkLiAqL1xuICBkZWxldGUocGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVsYXRpdmVQYXRoID0gdGhpcy5yZWxhdGl2ZVBhdGgocGF0aCk7XG4gICAgaWYgKCFyZWxhdGl2ZVBhdGgpIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBkZWxldGVkID0gdGhpcy5maWxlcy5kZWxldGUocmVsYXRpdmVQYXRoKTtcbiAgICBpZiAoZGVsZXRlZCkgdGhpcy5yZWZyZXNoUnVsZXMoKTtcbiAgICByZXR1cm4gZGVsZXRlZDtcbiAgfVxuXG4gIC8qKiBSZW1vdmUgZXZlcnkgcmVnaXN0ZXJlZCBgLmdpdGlnbm9yZWAuICovXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuZmlsZXMuY2xlYXIoKTtcbiAgICB0aGlzLnJ1bGVzID0gW107XG4gIH1cblxuICAvKiogUmV0dXJuIHRoZSByZXRhaW5lZCBjb250ZW50IGZvciBhIHJlZ2lzdGVyZWQgYC5naXRpZ25vcmVgLiAqL1xuICBnZXQocGF0aDogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSB0aGlzLnJlbGF0aXZlUGF0aChwYXRoKTtcbiAgICByZXR1cm4gcmVsYXRpdmVQYXRoID8gdGhpcy5maWxlcy5nZXQocmVsYXRpdmVQYXRoKT8uY29udGVudCA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIGEgcGF0aCBpcyBpZ25vcmVkIGFmdGVyIGFwcGx5aW5nIHBhcmVudCB0aGVuIG5lc3RlZCBydWxlIGZpbGVzLiAqL1xuICBpZ25vcmVzKHBhdGg6IHN0cmluZywgZGlyZWN0b3J5OiBib29sZWFuID0gZmFsc2UpOiBib29sZWFuIHtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSB0aGlzLnJlbGF0aXZlUGF0aChwYXRoKTtcbiAgICBpZiAoIXJlbGF0aXZlUGF0aCB8fCByZWxhdGl2ZVBhdGggPT09IFwiLlwiKSByZXR1cm4gZmFsc2U7XG4gICAgbGV0IGlnbm9yZWQgPSBmYWxzZTtcbiAgICBmb3IgKGNvbnN0IHJ1bGVzIG9mIHRoaXMucnVsZXMpIHtcbiAgICAgIGNvbnN0IHNjb3BlZFBhdGggPSBwYXRoV2l0aGluKHJ1bGVzLmRpcmVjdG9yeSwgcmVsYXRpdmVQYXRoKTtcbiAgICAgIGlmIChzY29wZWRQYXRoID09PSB1bmRlZmluZWQgfHwgc2NvcGVkUGF0aCA9PT0gXCJcIikgY29udGludWU7XG4gICAgICBpZiAoaWdub3JlZFBhcmVudChydWxlcy5tYXRjaGVyLCBzY29wZWRQYXRoKSkgcmV0dXJuIHRydWU7XG4gICAgICBjb25zdCByZXN1bHQgPSBydWxlcy5tYXRjaGVyLnRlc3QoZGlyZWN0b3J5ID8gYCR7dHJpbVNsYXNoKHNjb3BlZFBhdGgpfS9gIDogc2NvcGVkUGF0aCk7XG4gICAgICBpZiAocmVzdWx0Lmlnbm9yZWQpIGlnbm9yZWQgPSB0cnVlO1xuICAgICAgaWYgKHJlc3VsdC51bmlnbm9yZWQpIGlnbm9yZWQgPSBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGlnbm9yZWQ7XG4gIH1cblxuICBwcml2YXRlIHJlbGF0aXZlUGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGFic29sdXRlID0gaXNBYnNvbHV0ZShwYXRoKSA/IHJlc29sdmUocGF0aCkgOiByZXNvbHZlKHRoaXMucm9vdCwgcGF0aCk7XG4gICAgY29uc3QgcmVsYXRpdmVQYXRoID0gcmVsYXRpdmUodGhpcy5yb290LCBhYnNvbHV0ZSk7XG4gICAgaWYgKHJlbGF0aXZlUGF0aCA9PT0gXCJcIiB8fCByZWxhdGl2ZVBhdGggPT09IFwiLlwiKSByZXR1cm4gXCIuXCI7XG4gICAgaWYgKHJlbGF0aXZlUGF0aCA9PT0gXCIuLlwiIHx8IHJlbGF0aXZlUGF0aC5zdGFydHNXaXRoKGAuLiR7c2VwfWApIHx8IGlzQWJzb2x1dGUocmVsYXRpdmVQYXRoKSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHRvUG9zaXgocmVsYXRpdmVQYXRoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVmcmVzaFJ1bGVzKCk6IHZvaWQge1xuICAgIHRoaXMucnVsZXMgPSBbLi4udGhpcy5maWxlcy52YWx1ZXMoKV0uc29ydChcbiAgICAgIChsZWZ0LCByaWdodCkgPT5cbiAgICAgICAgcGF0aERlcHRoKGxlZnQuZGlyZWN0b3J5KSAtIHBhdGhEZXB0aChyaWdodC5kaXJlY3RvcnkpIHx8XG4gICAgICAgIGxlZnQucGF0aC5sb2NhbGVDb21wYXJlKHJpZ2h0LnBhdGgpLFxuICAgICk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZGlzY292ZXJ5T3B0aW9ucyhcbiAgcm9vdDogc3RyaW5nLFxuICBvcHRpb25zOiBHaXRJZ25vcmVMb2FkT3B0aW9ucyxcbik6IHtcbiAgY3dkOiBzdHJpbmc7XG4gIGRvdDogdHJ1ZTtcbiAgZm9sbG93OiBib29sZWFuO1xuICBpZ25vcmU6IElnbm9yZUxpa2U7XG4gIG5vZGlyOiB0cnVlO1xufSB7XG4gIGNvbnN0IG1hdGNoZXIgPSBpZ25vcmVQYXRoTWF0Y2hlcihvcHRpb25zLmlnbm9yZU9wdGlvbnMpO1xuICByZXR1cm4ge1xuICAgIGN3ZDogcm9vdCxcbiAgICBkb3Q6IHRydWUsXG4gICAgZm9sbG93OiBvcHRpb25zLmZvbGxvd1N5bWxpbmtzID8/IGZhbHNlLFxuICAgIGlnbm9yZToge1xuICAgICAgaWdub3JlZChwYXRoKSB7XG4gICAgICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHBhdGgucmVsYXRpdmUoKTtcbiAgICAgICAgcmV0dXJuICFHaXRJZ25vcmUuaXNGaWxlKHJlbGF0aXZlUGF0aCkgJiYgbWF0Y2hlcihyZWxhdGl2ZVBhdGgpO1xuICAgICAgfSxcbiAgICAgIGNoaWxkcmVuSWdub3JlZChwYXRoKSB7XG4gICAgICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHBhdGgucmVsYXRpdmUoKTtcbiAgICAgICAgcmV0dXJuIG1hdGNoZXIocmVsYXRpdmVQYXRoKSB8fCBtYXRjaGVyKGAke3JlbGF0aXZlUGF0aH0vYCk7XG4gICAgICB9LFxuICAgIH0sXG4gICAgbm9kaXI6IHRydWUsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGlnbm9yZWRQYXJlbnQobWF0Y2hlcjogUmV0dXJuVHlwZTx0eXBlb2YgaWdub3JlPiwgcGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IHNlZ21lbnRzID0gdHJpbVNsYXNoKHBhdGgpLnNwbGl0KFwiL1wiKTtcbiAgY29uc3QgcGFyZW50Q291bnQgPSBzZWdtZW50cy5sZW5ndGggLSAxO1xuICBmb3IgKGxldCBpbmRleCA9IDE7IGluZGV4IDw9IHBhcmVudENvdW50OyBpbmRleCsrKSB7XG4gICAgaWYgKG1hdGNoZXIudGVzdChgJHtzZWdtZW50cy5zbGljZSgwLCBpbmRleCkuam9pbihcIi9cIil9L2ApLmlnbm9yZWQpIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gcGF0aFdpdGhpbihkaXJlY3Rvcnk6IHN0cmluZywgcGF0aDogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFkaXJlY3RvcnkpIHJldHVybiBwYXRoO1xuICBpZiAocGF0aCA9PT0gZGlyZWN0b3J5KSByZXR1cm4gXCJcIjtcbiAgcmV0dXJuIHBhdGguc3RhcnRzV2l0aChgJHtkaXJlY3Rvcnl9L2ApID8gcGF0aC5zbGljZShkaXJlY3RvcnkubGVuZ3RoICsgMSkgOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIHBhdGhEZXB0aChwYXRoOiBzdHJpbmcpOiBudW1iZXIge1xuICByZXR1cm4gcGF0aCA/IHBhdGguc3BsaXQoXCIvXCIpLmxlbmd0aCA6IDA7XG59XG5cbmZ1bmN0aW9uIHRyaW1TbGFzaChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcGF0aC5yZXBsYWNlKC9eXFwvK3xcXC8rJC9nLCBcIlwiKTtcbn1cblxuZnVuY3Rpb24gdG9Qb3NpeChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcGF0aC5zcGxpdChzZXApLmpvaW4oXCIvXCIpO1xufVxuIl19
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0LWlnbm9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9naXQtaWdub3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekMsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQW1CLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBb0IsTUFBTSxZQUFZLENBQUM7QUFpQjdELCtFQUErRTtBQUMvRSxNQUFNLE9BQU8sU0FBUztJQUNYLElBQUksQ0FBUztJQUN0QiwwR0FBMEc7SUFDakcsT0FBTyxHQUFnQixhQUFhLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUUzRCxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQTRCLENBQUM7SUFDckQsS0FBSyxHQUF1QixFQUFFLENBQUM7SUFFdkMsWUFBWSxJQUFrQjtRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCwrREFBK0Q7SUFDL0QsTUFBTSxD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Q0FBQztJQUM1QixJQUFJLElBQUksS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDbEMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDekYsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLElBQVk7SUFDN0IsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLElBQVk7SUFDN0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsU0FBUyxPQUFPLENBQUMsSUFBWTtJQUMzQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ25DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE11dGFibGUsIEdpdC1jb21wYXRpYmxlIGAuZ2l0aWdub3JlYCBwYXRoIG1hdGNoaW5nLlxuICpcbiAqIFJ1bGUgc3ludGF4IGlzIG93bmVkIGJ5IHRoZSBgaWdub3JlYCBwYWNrYWdlLCB3aG9zZSBjb21wYXRpYmlsaXR5IHN1aXRlXG4gKiBjb21wYXJlcyBiZWhhdmlvciB3aXRoIGBnaXQgY2hlY2staWdub3JlYC4gVGhpcyBtb2R1bGUgYWRkcyByZXBvc2l0b3J5IGFuZFxuICogbmVzdGVkLWZpbGUgc2NvcGluZyBwbHVzIGluLW1lbW9yeSBhZGQsIHVwZGF0ZSwgYW5kIHJlbW92YWwuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IHJlYWRGaWxlU3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgeyByZWFkRmlsZSB9IGZyb20gXCJub2RlOmZzL3Byb21pc2VzXCI7XG5pbXBvcnQgeyBiYXNlbmFtZSwgZGlybmFtZSwgaXNBYnNvbHV0ZSwgcmVsYXRpdmUsIHJlc29sdmUsIHNlcCB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IGZpbGVVUkxUb1BhdGggfSBmcm9tIFwibm9kZTp1cmxcIjtcbmltcG9ydCB7IGdsb2IsIGdsb2JTeW5jLCB0eXBlIElnbm9yZUxpa2UgfSBmcm9tIFwiZ2xvYlwiO1xuaW1wb3J0IGlnbm9yZSBmcm9tIFwiaWdub3JlXCI7XG5pbXBvcnQgdHlwZSB7IElnbm9yZVBhdHRlcm5PcHRpb25zIH0gZnJvbSBcIi4vaWdub3JlLnRzXCI7XG5pbXBvcnQgeyBpZ25vcmVQYXRoTWF0Y2hlciB9IGZyb20gXCIuL2lnbm9yZS50c1wiO1xuaW1wb3J0IHsgdG9QYXRoTWF0Y2hlciwgdHlwZSBQYXRoTWF0Y2hlciB9IGZyb20gXCIuL21hdGNoLnRzXCI7XG5cbmludGVyZmFjZSBHaXRJZ25vcmVSdWxlU2V0IHtcbiAgY29udGVudDogc3RyaW5nO1xuICBkaXJlY3Rvcnk6IHN0cmluZztcbiAgbWF0Y2hlcjogUmV0dXJuVHlwZTx0eXBlb2YgaWdub3JlPjtcbiAgcGF0aDogc3RyaW5nO1xufVxuXG4vKiogT3B0aW9ucyB1c2VkIHdoaWxlIGRpc2NvdmVyaW5nIGAuZ2l0aWdub3JlYCBmaWxlcyBiZW5lYXRoIGEgcm9vdC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2l0SWdub3JlTG9hZE9wdGlvbnMge1xuICAvKiogQnVpbHQtaW4gZGlyZWN0b3J5IGdyb3VwcyBwcnVuZWQgd2hpbGUgbG9va2luZyBmb3IgaWdub3JlIGZpbGVzLiAqL1xuICBpZ25vcmVPcHRpb25zPzogSWdub3JlUGF0dGVybk9wdGlvbnM7XG4gIC8qKiBGb2xsb3cgc3ltbGlua2VkIGRpcmVjdG9yaWVzIGR1cmluZyBkaXNjb3ZlcnkuIERlZmF1bHRzIHRvIGZhbHNlLiAqL1xuICBmb2xsb3dTeW1saW5rcz86IGJvb2xlYW47XG59XG5cbi8qKiBNdXRhYmxlIHBhdGggcHJlZGljYXRlIGNvbXBvc2VkIGZyb20gcm9vdCBhbmQgbmVzdGVkIGAuZ2l0aWdub3JlYCBmaWxlcy4gKi9cbmV4cG9ydCBjbGFzcyBHaXRJZ25vcmUge1xuICByZWFkb25seSByb290OiBzdHJpbmc7XG4gIC8qKiBTdGFibGUgY29tcG9zYWJsZSBtYXRjaGVyIHRoYXQgb2JzZXJ2ZXMgbGF0ZXIge0BsaW5rIHNldH0sIHtAbGluayBkZWxldGV9LCBhbmQge0BsaW5rIGNsZWFyfSBjYWxscy4gKi9cbiAgcmVhZG9ubHkgbWF0Y2hlcjogUGF0aE1hdGNoZXIgPSB0b1BhdGhNYXRjaGVyKChwYXRoKSA9PiB0aGlzLmlnbm9yZXMocGF0aCkpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsZXMgPSBuZXcgTWFwPHN0cmluZywgR2l0SWdub3JlUnVsZVNldD4oKTtcbiAgcHJpdmF0ZSBydWxlczogR2l0SWdub3JlUnVsZVNldFtdID0gW107XG5cbiAgY29uc3RydWN0b3Iocm9vdDogc3RyaW5nIHwgVVJMKSB7XG4gICAgdGhpcy5yb290ID0gcmVzb2x2ZShyb290IGluc3RhbmNlb2YgVVJMID8gZmlsZVVSTFRvUGF0aChyb290KSA6IHJvb3QpO1xuICB9XG5cbiAgLyoqIExvYWQgZXZlcnkgYXBwbGljYWJsZSBgLmdpdGlnbm9yZWAgYmVuZWF0aCB7QGxpbmsgcm9vdH0uICovXG4gIHN0YXRpYyBhc3luYyBsb2FkKHJvb3Q6IHN0cmluZyB8IFVSTCwgb3B0aW9uczogR2l0SWdub3JlTG9hZE9wdGlvbnMgPSB7fSk6IFByb21pc2U8R2l0SWdub3JlPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IEdpdElnbm9yZShyb290KTtcbiAgICBmb3IgKGNvbnN0IHBhdGggb2YgYXdhaXQgZ2xvYihcIioqLy5naXRpZ25vcmVcIiwgZGlzY292ZXJ5T3B0aW9ucyhyZXN1bHQucm9vdCwgb3B0aW9ucykpKSB7XG4gICAgICByZXN1bHQuc2V0KHBhdGgsIGF3YWl0IHJlYWRGaWxlKHJlc29sdmUocmVzdWx0LnJvb3QsIHBhdGgpLCBcInV0ZjhcIikpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqIFN5bmNocm9ub3VzIGNvdW50ZXJwYXJ0IHRvIHtAbGluayBHaXRJZ25vcmUubG9hZH0uICovXG4gIHN0YXRpYyBsb2FkU3luYyhyb290OiBzdHJpbmcgfCBVUkwsIG9wdGlvbnM6IEdpdElnbm9yZUxvYWRPcHRpb25zID0ge30pOiBHaXRJZ25vcmUge1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBHaXRJZ25vcmUocm9vdCk7XG4gICAgZm9yIChjb25zdCBwYXRoIG9mIGdsb2JTeW5jKFwiKiovLmdpdGlnbm9yZVwiLCBkaXNjb3ZlcnlPcHRpb25zKHJlc3VsdC5yb290LCBvcHRpb25zKSkpIHtcbiAgICAgIHJlc3VsdC5zZXQocGF0aCwgcmVhZEZpbGVTeW5jKHJlc29sdmUocmVzdWx0LnJvb3QsIHBhdGgpLCBcInV0ZjhcIikpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgYHBhdGhgIG5hbWVzIGEgYC5naXRpZ25vcmVgIGNvbnRyb2wgZmlsZS4gKi9cbiAgc3RhdGljIGlzRmlsZShwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gYmFzZW5hbWUocGF0aCkgPT09IFwiLmdpdGlnbm9yZVwiO1xuICB9XG5cbiAgLyoqIEFkZCBvciByZXBsYWNlIG9uZSBgLmdpdGlnbm9yZWAgZmlsZSBhbmQgaXRzIGluLW1lbW9yeSBjb250ZW50LiAqL1xuICBzZXQocGF0aDogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSB0aGlzLnJlbGF0aXZlUGF0aChwYXRoKTtcbiAgICBpZiAoIXJlbGF0aXZlUGF0aCB8fCAhR2l0SWdub3JlLmlzRmlsZShyZWxhdGl2ZVBhdGgpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBHaXQgaWdub3JlIHBhdGggbXVzdCBuYW1lIGEgLmdpdGlnbm9yZSB1bmRlciAke3RoaXMucm9vdH06ICR7cGF0aH1gKTtcbiAgICB9XG4gICAgdGhpcy5maWxlcy5zZXQocmVsYXRpdmVQYXRoLCB7XG4gICAgICBjb250ZW50LFxuICAgICAgZGlyZWN0b3J5OiB0b1Bvc2l4KGRpcm5hbWUocmVsYXRpdmVQYXRoKSkgPT09IFwiLlwiID8gXCJcIiA6IHRvUG9zaXgoZGlybmFtZShyZWxhdGl2ZVBhdGgpKSxcbiAgICAgIG1hdGNoZXI6IGlnbm9yZSgpLmFkZChjb250ZW50KSxcbiAgICAgIHBhdGg6IHJlbGF0aXZlUGF0aCxcbiAgICB9KTtcbiAgICB0aGlzLnJlZnJlc2hSdWxlcygpO1xuICB9XG5cbiAgLyoqIFJlbW92ZSBvbmUgYC5naXRpZ25vcmVgIGZpbGUuIFJldHVybnMgd2hldGhlciBpdCB3YXMgcmVnaXN0ZXJlZC4gKi9cbiAgZGVsZXRlKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHRoaXMucmVsYXRpdmVQYXRoKHBhdGgpO1xuICAgIGlmICghcmVsYXRpdmVQYXRoKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgZGVsZXRlZCA9IHRoaXMuZmlsZXMuZGVsZXRlKHJlbGF0aXZlUGF0aCk7XG4gICAgaWYgKGRlbGV0ZWQpIHRoaXMucmVmcmVzaFJ1bGVzKCk7XG4gICAgcmV0dXJuIGRlbGV0ZWQ7XG4gIH1cblxuICAvKiogUmVtb3ZlIGV2ZXJ5IHJlZ2lzdGVyZWQgYC5naXRpZ25vcmVgLiAqL1xuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmZpbGVzLmNsZWFyKCk7XG4gICAgdGhpcy5ydWxlcyA9IFtdO1xuICB9XG5cbiAgLyoqIFJldHVybiB0aGUgcmV0YWluZWQgY29udGVudCBmb3IgYSByZWdpc3RlcmVkIGAuZ2l0aWdub3JlYC4gKi9cbiAgZ2V0KHBhdGg6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgcmVsYXRpdmVQYXRoID0gdGhpcy5yZWxhdGl2ZVBhdGgocGF0aCk7XG4gICAgcmV0dXJuIHJlbGF0aXZlUGF0aCA/IHRoaXMuZmlsZXMuZ2V0KHJlbGF0aXZlUGF0aCk/LmNvbnRlbnQgOiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKiogV2hldGhlciBhIHBhdGggaXMgaWdub3JlZCBhZnRlciBhcHBseWluZyBwYXJlbnQgdGhlbiBuZXN0ZWQgcnVsZSBmaWxlcy4gKi9cbiAgaWdub3JlcyhwYXRoOiBzdHJpbmcsIGRpcmVjdG9yeTogYm9vbGVhbiA9IGZhbHNlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVsYXRpdmVQYXRoID0gdGhpcy5yZWxhdGl2ZVBhdGgocGF0aCk7XG4gICAgaWYgKCFyZWxhdGl2ZVBhdGggfHwgcmVsYXRpdmVQYXRoID09PSBcIi5cIikgcmV0dXJuIGZhbHNlO1xuICAgIGxldCBpZ25vcmVkID0gZmFsc2U7XG4gICAgZm9yIChjb25zdCBydWxlcyBvZiB0aGlzLnJ1bGVzKSB7XG4gICAgICBjb25zdCBzY29wZWRQYXRoID0gcGF0aFdpdGhpbihydWxlcy5kaXJlY3RvcnksIHJlbGF0aXZlUGF0aCk7XG4gICAgICBpZiAoc2NvcGVkUGF0aCA9PT0gdW5kZWZpbmVkIHx8IHNjb3BlZFBhdGggPT09IFwiXCIpIGNvbnRpbnVlO1xuICAgICAgaWYgKGlnbm9yZWRQYXJlbnQocnVsZXMubWF0Y2hlciwgc2NvcGVkUGF0aCkpIHJldHVybiB0cnVlO1xuICAgICAgY29uc3QgcmVzdWx0ID0gcnVsZXMubWF0Y2hlci50ZXN0KGRpcmVjdG9yeSA/IGAke3RyaW1TbGFzaChzY29wZWRQYXRoKX0vYCA6IHNjb3BlZFBhdGgpO1xuICAgICAgaWYgKHJlc3VsdC5pZ25vcmVkKSBpZ25vcmVkID0gdHJ1ZTtcbiAgICAgIGlmIChyZXN1bHQudW5pZ25vcmVkKSBpZ25vcmVkID0gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBpZ25vcmVkO1xuICB9XG5cbiAgcHJpdmF0ZSByZWxhdGl2ZVBhdGgocGF0aDogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBhYnNvbHV0ZSA9IGlzQWJzb2x1dGUocGF0aCkgPyByZXNvbHZlKHBhdGgpIDogcmVzb2x2ZSh0aGlzLnJvb3QsIHBhdGgpO1xuICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHJlbGF0aXZlKHRoaXMucm9vdCwgYWJzb2x1dGUpO1xuICAgIGlmIChyZWxhdGl2ZVBhdGggPT09IFwiXCIgfHwgcmVsYXRpdmVQYXRoID09PSBcIi5cIikgcmV0dXJuIFwiLlwiO1xuICAgIGlmIChyZWxhdGl2ZVBhdGggPT09IFwiLi5cIiB8fCByZWxhdGl2ZVBhdGguc3RhcnRzV2l0aChgLi4ke3NlcH1gKSB8fCBpc0Fic29sdXRlKHJlbGF0aXZlUGF0aCkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiB0b1Bvc2l4KHJlbGF0aXZlUGF0aCk7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2hSdWxlcygpOiB2b2lkIHtcbiAgICB0aGlzLnJ1bGVzID0gWy4uLnRoaXMuZmlsZXMudmFsdWVzKCldLnNvcnQoXG4gICAgICAobGVmdCwgcmlnaHQpID0+XG4gICAgICAgIHBhdGhEZXB0aChsZWZ0LmRpcmVjdG9yeSkgLSBwYXRoRGVwdGgocmlnaHQuZGlyZWN0b3J5KSB8fFxuICAgICAgICBsZWZ0LnBhdGgubG9jYWxlQ29tcGFyZShyaWdodC5wYXRoKSxcbiAgICApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGRpc2NvdmVyeU9wdGlvbnMoXG4gIHJvb3Q6IHN0cmluZyxcbiAgb3B0aW9uczogR2l0SWdub3JlTG9hZE9wdGlvbnMsXG4pOiB7XG4gIGN3ZDogc3RyaW5nO1xuICBkb3Q6IHRydWU7XG4gIGZvbGxvdzogYm9vbGVhbjtcbiAgaWdub3JlOiBJZ25vcmVMaWtlO1xuICBub2RpcjogdHJ1ZTtcbn0ge1xuICBjb25zdCBtYXRjaGVyID0gaWdub3JlUGF0aE1hdGNoZXIob3B0aW9ucy5pZ25vcmVPcHRpb25zKTtcbiAgcmV0dXJuIHtcbiAgICBjd2Q6IHJvb3QsXG4gICAgZG90OiB0cnVlLFxuICAgIGZvbGxvdzogb3B0aW9ucy5mb2xsb3dTeW1saW5rcyA/PyBmYWxzZSxcbiAgICBpZ25vcmU6IHtcbiAgICAgIGlnbm9yZWQocGF0aCkge1xuICAgICAgICBjb25zdCByZWxhdGl2ZVBhdGggPSBwYXRoLnJlbGF0aXZlKCk7XG4gICAgICAgIHJldHVybiAhR2l0SWdub3JlLmlzRmlsZShyZWxhdGl2ZVBhdGgpICYmIG1hdGNoZXIocmVsYXRpdmVQYXRoKTtcbiAgICAgIH0sXG4gICAgICBjaGlsZHJlbklnbm9yZWQocGF0aCkge1xuICAgICAgICBjb25zdCByZWxhdGl2ZVBhdGggPSBwYXRoLnJlbGF0aXZlKCk7XG4gICAgICAgIHJldHVybiBtYXRjaGVyKHJlbGF0aXZlUGF0aCkgfHwgbWF0Y2hlcihgJHtyZWxhdGl2ZVBhdGh9L2ApO1xuICAgICAgfSxcbiAgICB9LFxuICAgIG5vZGlyOiB0cnVlLFxuICB9O1xufVxuXG5mdW5jdGlvbiBpZ25vcmVkUGFyZW50KG1hdGNoZXI6IFJldHVyblR5cGU8dHlwZW9mIGlnbm9yZT4sIHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBzZWdtZW50cyA9IHRyaW1TbGFzaChwYXRoKS5zcGxpdChcIi9cIik7XG4gIGNvbnN0IHBhcmVudENvdW50ID0gc2VnbWVudHMubGVuZ3RoIC0gMTtcbiAgZm9yIChsZXQgaW5kZXggPSAxOyBpbmRleCA8PSBwYXJlbnRDb3VudDsgaW5kZXgrKykge1xuICAgIGlmIChtYXRjaGVyLnRlc3QoYCR7c2VnbWVudHMuc2xpY2UoMCwgaW5kZXgpLmpvaW4oXCIvXCIpfS9gKS5pZ25vcmVkKSByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIHBhdGhXaXRoaW4oZGlyZWN0b3J5OiBzdHJpbmcsIHBhdGg6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmICghZGlyZWN0b3J5KSByZXR1cm4gcGF0aDtcbiAgaWYgKHBhdGggPT09IGRpcmVjdG9yeSkgcmV0dXJuIFwiXCI7XG4gIHJldHVybiBwYXRoLnN0YXJ0c1dpdGgoYCR7ZGlyZWN0b3J5fS9gKSA/IHBhdGguc2xpY2UoZGlyZWN0b3J5Lmxlbmd0aCArIDEpIDogdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBwYXRoRGVwdGgocGF0aDogc3RyaW5nKTogbnVtYmVyIHtcbiAgcmV0dXJuIHBhdGggPyBwYXRoLnNwbGl0KFwiL1wiKS5sZW5ndGggOiAwO1xufVxuXG5mdW5jdGlvbiB0cmltU2xhc2gocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhdGgucmVwbGFjZSgvXlxcLyt8XFwvKyQvZywgXCJcIik7XG59XG5cbmZ1bmN0aW9uIHRvUG9zaXgocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhdGguc3BsaXQoc2VwKS5qb2luKFwiL1wiKTtcbn1cbiJdfQ==
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.121",
27
- "@dbx-tools/shared-core": "^0.9.121",
26
+ "@dbx-tools/core": "^0.9.123",
27
+ "@dbx-tools/shared-core": "^0.9.123",
28
28
  "chokidar": "^4.0.3",
29
29
  "glob": "^13.0.6",
30
30
  "ignore": "^7.0.12",
@@ -76,7 +76,7 @@
76
76
  "./package.json": "./package.json"
77
77
  }
78
78
  },
79
- "version": "0.9.121",
79
+ "version": "0.9.123",
80
80
  "types": "./lib/index.d.ts",
81
81
  "dbxToolsConfig": {
82
82
  "tags": [
package/src/find.ts CHANGED
@@ -10,12 +10,7 @@
10
10
  */
11
11
 
12
12
  import { object, type Sequence } from "@dbx-tools/shared-core";
13
- import {
14
- globIterate,
15
- globIterateSync,
16
- IgnoreLike,
17
- type GlobOptionsWithFileTypesUnset,
18
- } from "glob";
13
+ import { globIterate, globIterateSync, IgnoreLike, type GlobOptionsWithFileTypesUnset } from "glob";
19
14
  import { GitIgnore } from "./git-ignore.ts";
20
15
  import { ignorePathMatcher } from "./ignore.ts";
21
16
  import { PathMatcher, PathMatchInput, pathMatchTests, toPathMatcher } from "./match.ts";
package/src/git-ignore.ts CHANGED
@@ -47,10 +47,7 @@ export class GitIgnore {
47
47
  }
48
48
 
49
49
  /** Load every applicable `.gitignore` beneath {@link root}. */
50
- static async load(
51
- root: string | URL,
52
- options: GitIgnoreLoadOptions = {},
53
- ): Promise<GitIgnore> {
50
+ static async load(root: string | URL, options: GitIgnoreLoadOptions = {}): Promise<GitIgnore> {
54
51
  const result = new GitIgnore(root);
55
52
  for (const path of await glob("**/.gitignore", discoveryOptions(result.root, options))) {
56
53
  result.set(path, await readFile(resolve(result.root, path), "utf8"));