@dbx-tools/path 0.9.37 → 0.9.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -3,6 +3,10 @@
3
3
  Node filesystem path toolkit for discovery, matching, ignoring, scanning, and
4
4
  watching.
5
5
 
6
+ This package owns repository-wide path discovery and ignore behavior. Reuse it
7
+ instead of calling `glob`, `minimatch`, or Chokidar directly when results should
8
+ agree with package discovery, generation, docs, cleanup, or watch workflows.
9
+
6
10
  Import this package when Node code needs consistent glob behavior across CLI,
7
11
  projen, barrel generation, OpenAPI generation, or docs tooling.
8
12
 
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.37";
6
+ export const PACKAGE_VERSION = "0.9.40";
7
7
  export * as find from "./src/find.ts";
8
8
  export * as ignore from "./src/ignore.ts";
9
9
  export * as match from "./src/match.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.37";
2
+ export declare const PACKAGE_VERSION = "0.9.40";
3
3
  export * as find from "./src/find.ts";
4
4
  export * as ignore from "./src/ignore.ts";
5
5
  export * as match from "./src/match.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.37";
5
+ export const PACKAGE_VERSION = "0.9.40";
6
6
  export * as find from "./src/find.js";
7
7
  export * as ignore from "./src/ignore.js";
8
8
  export * as match from "./src/match.js";
@@ -10,4 +10,4 @@ export * as pattern from "./src/pattern.js";
10
10
  export * as scan from "./src/scan.js";
11
11
  export * as watch from "./src/watch.js";
12
12
  export { FOLLOW_SYMLINKS_DEFAULT } from "./src/scan.js";
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxpQkFBaUIsQ0FBQztBQUNwRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFJeEMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfSURFTlRJRklFUiA9IFwiQGRieC10b29scy9wYXRoXCI7XG5leHBvcnQgY29uc3QgUEFDS0FHRV9WRVJTSU9OID0gXCIwLjkuMzdcIjtcbmV4cG9ydCAqIGFzIGZpbmQgZnJvbSBcIi4vc3JjL2ZpbmQudHNcIjtcbmV4cG9ydCAqIGFzIGlnbm9yZSBmcm9tIFwiLi9zcmMvaWdub3JlLnRzXCI7XG5leHBvcnQgKiBhcyBtYXRjaCBmcm9tIFwiLi9zcmMvbWF0Y2gudHNcIjtcbmV4cG9ydCAqIGFzIHBhdHRlcm4gZnJvbSBcIi4vc3JjL3BhdHRlcm4udHNcIjtcbmV4cG9ydCAqIGFzIHNjYW4gZnJvbSBcIi4vc3JjL3NjYW4udHNcIjtcbmV4cG9ydCAqIGFzIHdhdGNoIGZyb20gXCIuL3NyYy93YXRjaC50c1wiO1xuZXhwb3J0IHR5cGUgeyBGaWxlRmluZE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvZmluZC50c1wiO1xuZXhwb3J0IHR5cGUgeyBJZ25vcmVQYXR0ZXJuT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9pZ25vcmUudHNcIjtcbmV4cG9ydCB0eXBlIHsgUGF0aE1hdGNoUHJlZGljYXRlLCBQYXRoTWF0Y2hlciwgUGF0aE1hdGNoSW5wdXQgfSBmcm9tIFwiLi9zcmMvbWF0Y2gudHNcIjtcbmV4cG9ydCB7IEZPTExPV19TWU1MSU5LU19ERUZBVUxUIH0gZnJvbSBcIi4vc3JjL3NjYW4udHNcIjtcbmV4cG9ydCB0eXBlIHsgRmlsZVNjYW5PcHRpb25zLCBGaWxlU2Nhbklnbm9yZU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvc2Nhbi50c1wiO1xuZXhwb3J0IHR5cGUgeyBGaWxlV2F0Y2hPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3dhdGNoLnRzXCI7XG4iXX0=
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxpQkFBaUIsQ0FBQztBQUNwRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFJeEMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfSURFTlRJRklFUiA9IFwiQGRieC10b29scy9wYXRoXCI7XG5leHBvcnQgY29uc3QgUEFDS0FHRV9WRVJTSU9OID0gXCIwLjkuNDBcIjtcbmV4cG9ydCAqIGFzIGZpbmQgZnJvbSBcIi4vc3JjL2ZpbmQudHNcIjtcbmV4cG9ydCAqIGFzIGlnbm9yZSBmcm9tIFwiLi9zcmMvaWdub3JlLnRzXCI7XG5leHBvcnQgKiBhcyBtYXRjaCBmcm9tIFwiLi9zcmMvbWF0Y2gudHNcIjtcbmV4cG9ydCAqIGFzIHBhdHRlcm4gZnJvbSBcIi4vc3JjL3BhdHRlcm4udHNcIjtcbmV4cG9ydCAqIGFzIHNjYW4gZnJvbSBcIi4vc3JjL3NjYW4udHNcIjtcbmV4cG9ydCAqIGFzIHdhdGNoIGZyb20gXCIuL3NyYy93YXRjaC50c1wiO1xuZXhwb3J0IHR5cGUgeyBGaWxlRmluZE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvZmluZC50c1wiO1xuZXhwb3J0IHR5cGUgeyBJZ25vcmVQYXR0ZXJuT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9pZ25vcmUudHNcIjtcbmV4cG9ydCB0eXBlIHsgUGF0aE1hdGNoUHJlZGljYXRlLCBQYXRoTWF0Y2hlciwgUGF0aE1hdGNoSW5wdXQgfSBmcm9tIFwiLi9zcmMvbWF0Y2gudHNcIjtcbmV4cG9ydCB7IEZPTExPV19TWU1MSU5LU19ERUZBVUxUIH0gZnJvbSBcIi4vc3JjL3NjYW4udHNcIjtcbmV4cG9ydCB0eXBlIHsgRmlsZVNjYW5PcHRpb25zLCBGaWxlU2Nhbklnbm9yZU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvc2Nhbi50c1wiO1xuZXhwb3J0IHR5cGUgeyBGaWxlV2F0Y2hPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3dhdGNoLnRzXCI7XG4iXX0=
package/lib/src/find.d.ts CHANGED
@@ -1,8 +1,18 @@
1
+ /**
2
+ * Repository-consistent file discovery over `glob`.
3
+ *
4
+ * Reuse {@link findFiles} when package discovery, generation, cleanup, or docs
5
+ * tooling must honor the same ignore catalogue and symlink defaults as watchers.
6
+ * Direct `glob` calls should be reserved for behavior that intentionally differs.
7
+ *
8
+ * @module
9
+ */
1
10
  import { type Sequence } from "@dbx-tools/shared-core";
2
11
  import { IgnoreLike, type GlobOptionsWithFileTypesUnset } from "glob";
3
12
  import { PathMatchInput } from "./match.ts";
4
13
  import { FileScanOptions } from "./scan.ts";
5
14
  type FileFindIgnore = PathMatchInput | readonly PathMatchInput[] | IgnoreLike;
15
+ /** Glob, root, ignore, and symlink options for {@link findFiles}. */
6
16
  export interface FileFindOptions extends Omit<GlobOptionsWithFileTypesUnset, "ignore" | "follow" | "dot" | "cwd" | "includeChildMatches">, Omit<FileScanOptions, "ignore" | "cwd"> {
7
17
  cwd?: string | URL;
8
18
  ignore?: FileFindIgnore;
package/lib/src/find.js CHANGED
@@ -1,3 +1,12 @@
1
+ /**
2
+ * Repository-consistent file discovery over `glob`.
3
+ *
4
+ * Reuse {@link findFiles} when package discovery, generation, cleanup, or docs
5
+ * tooling must honor the same ignore catalogue and symlink defaults as watchers.
6
+ * Direct `glob` calls should be reserved for behavior that intentionally differs.
7
+ *
8
+ * @module
9
+ */
1
10
  import { object } from "@dbx-tools/shared-core";
2
11
  import { globIterateSync } from "glob";
3
12
  import { ignorePathMatcher } from "./ignore.js";
@@ -105,4 +114,4 @@ if (import.meta.main) {
105
114
  const elapsed = performance.now() - startTime;
106
115
  console.log(`Elapsed: ${elapsed}ms`);
107
116
  }
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQWlCLE1BQU0sd0JBQXdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBa0QsTUFBTSxNQUFNLENBQUM7QUFDdkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFBK0IsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4RixPQUFPLEVBQTBDLHVCQUF1QixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBYzVGOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBQyxPQUEwQixFQUFFLE9BQXlCO0lBQzdFLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0UsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLE9BQW9DO0lBQ3pELE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsR0FBRyxXQUFXLEVBQUUsR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0lBQ3JGLE9BQU87UUFDTCxHQUFHLFdBQVc7UUFDZCxHQUFHLEVBQUUsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDekIsTUFBTSxFQUFFLGNBQWMsSUFBSSx1QkFBdUI7UUFDakQsTUFBTSxFQUFFLGVBQWUsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDO0tBQy9DLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxrQkFBa0IsR0FBRztJQUN6QixTQUFTO0lBQ1QsaUJBQWlCO0lBQ2pCLEtBQUs7Q0FDMkMsQ0FBQztBQUVuRCxTQUFTLFlBQVksQ0FBQyxLQUFjO0lBQ2xDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFL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QUM7SUFDckIsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3BDLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUVoQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsUUFBUSxFQUFFO1FBQ2hDLE1BQU0sRUFBRSxDQUFDLGFBQWEsRUFBRSxlQUFlLEVBQUUsU0FBUyxDQUFDO1FBQ25ELGFBQWEsRUFBRTtZQUNiLElBQUksRUFBRSxJQUFJO1NBQ1g7S0FDRixDQUFDLENBQUM7SUFDSCxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUM7SUFDOUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLE9BQU8sSUFBSSxDQUFDLENBQUM7QUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG9iamVjdCwgdHlwZSBTZXF1ZW5jZSB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyBnbG9iSXRlcmF0ZVN5bmMsIElnbm9yZUxpa2UsIHR5cGUgR2xvYk9wdGlvbnNXaXRoRmlsZVR5cGVzVW5zZXQgfSBmcm9tIFwiZ2xvYlwiO1xuaW1wb3J0IHsgaWdub3JlUGF0aE1hdGNoZXIgfSBmcm9tIFwiLi9pZ25vcmUudHNcIjtcbmltcG9ydCB7IFBhdGhNYXRjaGVyLCBQYXRoTWF0Y2hJbnB1dCwgcGF0aE1hdGNoVGVzdHMsIHRvUGF0aE1hdGNoZXIgfSBmcm9tIFwiLi9tYXRjaC50c1wiO1xuaW1wb3J0IHsgRmlsZVNjYW5JZ25vcmVPcHRpb25zLCBGaWxlU2Nhbk9wdGlvbnMsIEZPTExPV19TWU1MSU5LU19ERUZBVUxUIH0gZnJvbSBcIi4vc2Nhbi50c1wiO1xuXG50eXBlIEZpbGVGaW5kSWdub3JlID0gUGF0aE1hdGNoSW5wdXQgfCByZWFkb25seSBQYXRoTWF0Y2hJbnB1dFtdIHwgSWdub3JlTGlrZTtcblxuZXhwb3J0IGludGVyZmFjZSBGaWxlRmluZE9wdGlvbnNcbiAgZXh0ZW5kc1xuICAgIE9taXQ8XG4gICAgICBHbG9iT3B0aW9uc1dpdGhGaWxlVHlwZXNVbnNldCxcbiAgICAgIFwiaWdub3JlXCIgfCBcImZvbGxvd1wiIHwgXCJkb3RcIiB8IFwiY3dkXCIgfCBcImluY2x1ZGVDaGlsZE1hdGNoZXNcIlxuICAgID4sXG4gICAgT21pdDxGaWxlU2Nhbk9wdGlvbnMsIFwiaWdub3JlXCIgfCBcImN3ZFwiPiB7XG4gIGN3ZD86IHN0cmluZyB8IFVSTDtcbiAgaWdub3JlPzogRmlsZUZpbmRJZ25vcmU7XG59XG4vKipcbiAqIFJlY3Vyc2l2ZWx5IGxpc3RzIGZpbGVzIG1hdGNoaW5nIGBwYXR0ZXJuYCwgaWdub3JpbmcgdGhlIHNoYXJlZCBkZWZhdWx0IGdyb3Vwc1xuICogcGx1cyBhbnkgY2FsbGVyIGBpZ25vcmVgIHBhdHRlcm5zICh1bmxlc3MgYGlnbm9yZWAgaXMgYSBsb25lIHByZWRpY2F0ZSBmdW5jdGlvbixcbiAqIGluIHdoaWNoIGNhc2Ugb25seSB0aGF0IHByZWRpY2F0ZSBhcHBsaWVzKS4gVGhlIGlnbm9yZSBsaXN0IG1pcnJvcnMgd2hhdFxuICoge0BsaW5rIHdhdGNoRmlsZXN9IGZlZWRzIHRocm91Z2ggaXRzIG1hdGNoZXJzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZEZpbGVzKHBhdHRlcm46IHN0cmluZyB8IHN0cmluZ1tdLCBvcHRpb25zPzogRmlsZUZpbmRPcHRpb25zKTogU2VxdWVuY2U8c3RyaW5nPiB7XG4gIHJldHVybiBvYmplY3Quc2VxdWVuY2UoZ2xvYkl0ZXJhdGVTeW5jKHBhdHRlcm4sIHRvR2xvYk9wdGlvbnMob3B0aW9ucykpKTtcbn1cblxuZnVuY3Rpb24gdG9HbG9iT3B0aW9ucyhvcHRpb25zOiBGaWxlRmluZE9wdGlvbnMgfCB1bmRlZmluZWQpOiBHbG9iT3B0aW9uc1dpdGhGaWxlVHlwZXNVbnNldCB7XG4gIGNvbnN0IHsgY3dkLCBpZ25vcmUsIGlnbm9yZU9wdGlvbnMsIGZvbGxvd1N5bWxpbmtzLCAuLi5yZXN0T3B0aW9ucyB9ID0gb3B0aW9ucyA/PyB7fTtcbiAgcmV0dXJuIHtcbiAgICAuLi5yZXN0T3B0aW9ucyxcbiAgICBjd2Q6IGN3ZCA/PyBwcm9jZXNzLmN3ZCgpLFxuICAgIGZvbGxvdzogZm9sbG93U3ltbGlua3MgPz8gRk9MTE9XX1NZTUxJTktTX0RFRkFVTFQsXG4gICAgaWdub3JlOiBub3JtYWxpemVJZ25vcmUoaWdub3JlLCBpZ25vcmVPcHRpb25zKSxcbiAgfTtcbn1cblxuY29uc3QgSUdOT1JFX0xJS0VfRklFTERTID0gW1xuICBcImlnbm9yZWRcIixcbiAgXCJjaGlsZHJlbklnbm9yZWRcIixcbiAgXCJhZGRcIixcbl0gYXMgY29uc3Qgc2F0aXNmaWVzIHJlYWRvbmx5IChrZXlvZiBJZ25vcmVMaWtlKVtdO1xuXG5mdW5jdGlvbiBpc0lnbm9yZUxpa2UodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBJZ25vcmVMaWtlIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSByZXR1cm4gZmFsc2U7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIElHTk9SRV9MSUtFX0ZJRUxEUykge1xuICAgICAgaWYgKGZpZWxkIGluIHZhbHVlICYmIHR5cGVvZiAodmFsdWUgYXMgYW55KVtmaWVsZF0gIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cbi8qKlxuICogQnVpbGRzIHRoZSB7QGxpbmsgSWdub3JlTGlrZX0gb2JqZWN0IHtAbGluayBmaW5kRmlsZXN9IGhhbmRzIHRvIGBnbG9iYC5cbiAqXG4gKiBBIGNhbGxlci1zdXBwbGllZCBgSWdub3JlTGlrZWAgKGFuIG9iamVjdCwgbm90IHN0cmluZy9hcnJheSkgaXMgY29uc3VsdGVkXG4gKiBmaXJzdCAtIGl0cyBgaWdub3JlZGAvYGNoaWxkcmVuSWdub3JlZGAgd2luIC0gYWZ0ZXIgd2hpY2ggdGhlIHNoYXJlZFxuICoge0BsaW5rIGlnbm9yZVBhdGhNYXRjaGVyfSAodGhlIHNhbWUgbWF0Y2hlciB7QGxpbmsgd2F0Y2hGaWxlc30gdXNlcykgZGVjaWRlcyBiYXNlZCBvbiB0aGVcbiAqIHBhY2thZ2UtcmVsYXRpdmUgcGF0aC4gYGNhY2hlRGlyZWN0b3J5U3RhdHNgIGlzIGVuYWJsZWQgYmVjYXVzZSBnbG9iIHByb2Jlc1xuICogbWFueSBwYXRocyBwZXIgZGlyZWN0b3J5LiBDYWxsZXIgc3RyaW5nL2FycmF5IHBhdHRlcm5zIGFyZSBtZXJnZWQgaW50byB0aGVcbiAqIG1hdGNoZXIsIGFuZCBgYWRkYCBmb3J3YXJkcyB0byBib3RoIHRoZSBjYWxsZXIgb2JqZWN0IGFuZCB0aGUgbWF0Y2hlci5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplSWdub3JlKFxuICBpZ25vcmU6IEZpbGVGaW5kSWdub3JlIHwgdW5kZWZpbmVkLFxuICBpZ25vcmVPcHRpb25zOiBGaWxlU2Nhbklnbm9yZU9wdGlvbnMgfCB1bmRlZmluZWQsXG4pOiBJZ25vcmVMaWtlIHtcbiAgY29uc3QgaWdub3JlTGlrZTogSWdub3JlTGlrZSB8IHVuZGVmaW5lZCA9IGlzSWdub3JlTGlrZShpZ25vcmUpID8gaWdub3JlIDogdW5kZWZpbmVkO1xuICBjb25zdCBpZ25vcmVQYXRoTWF0Y2hlcklucHV0czogUGF0aE1hdGNoSW5wdXRbXSB8IHVuZGVmaW5lZCA9XG4gICAgaWdub3JlID09PSB1bmRlZmluZWQgfHwgaWdub3JlTGlrZSA/IHVuZGVmaW5lZCA6IEFycmF5LmlzQXJyYXkoaWdub3JlKSA/IFsuLi5pZ25vcmVdIDogW2lnbm9yZV07XG5cbiAgY29uc3QgcHJlZGljYXRlT25seSA9XG4gICAgaWdub3JlUGF0aE1hdGNoZXJJbnB1dHM/Lmxlbmd0aCA9PT0gMSAmJiB0eXBlb2YgaWdub3JlUGF0aE1hdGNoZXJJbnB1dHNbMF0gPT09IFwiZnVuY3Rpb25cIjtcblxuICBsZXQgaWdub3JlTWF0Y2hlcjogUGF0aE1hdGNoZXIgPSBwcmVkaWNhdGVPbmx5XG4gICAgPyB0b1BhdGhNYXRjaGVyKGlnbm9yZVBhdGhNYXRjaGVySW5wdXRzWzBdKVxuICAgIDogaWdub3JlUGF0aE1hdGNoZXIoaWdub3JlT3B0aW9ucyk7XG4gIGlmIChpZ25vcmVQYXRoTWF0Y2hlcklucHV0cyAmJiAhcHJlZGljYXRlT25seSkge1xuICAgIGlnbm9yZU1hdGNoZXIgPSBpZ25vcmVNYXRjaGVyLm9yKC4uLnBhdGhNYXRjaFRlc3RzKC4uLmlnbm9yZVBhdGhNYXRjaGVySW5wdXRzKSk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBpZ25vcmVkKHBhdGgpIHtcbiAgICAgIGlmIChpZ25vcmVMaWtlPy5pZ25vcmVkPy4ocGF0aCkpIHJldHVybiB0cnVlO1xuICAgICAgY29uc3QgcGF0aGVSZWxhdGl2ZSA9IHBhdGgucmVsYXRpdmUoKTtcbiAgICAgIGNvbnN0IGlnbm9yZSA9IGlnbm9yZU1hdGNoZXIocGF0aGVSZWxhdGl2ZSk7XG4gICAgICByZXR1cm4gaWdub3JlO1xuICAgIH0sXG4gICAgY2hpbGRyZW5JZ25vcmVkKHBhdGgpIHtcbiAgICAgIGlmIChpZ25vcmVMaWtlPy5jaGlsZHJlbklnbm9yZWQ/LihwYXRoKSkgcmV0dXJuIHRydWU7XG4gICAgICBjb25zdCBwYXRoZVJlbGF0aXZlID0gcGF0aC5yZWxhdGl2ZSgpO1xuICAgICAgaWYgKHBhdGhlUmVsYXRpdmUpIHtcbiAgICAgICAgaWYgKGlnbm9yZU1hdGNoZXIocGF0aGVSZWxhdGl2ZSkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChpZ25vcmVNYXRjaGVyKHBhdGhlUmVsYXRpdmUgKyBcIi9cIikpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0sXG4gICAgYWRkKGlnbm9yZSkge1xuICAgICAgaWdub3JlTGlrZT8uYWRkPy4oaWdub3JlKTtcbiAgICAgIGlnbm9yZU1hdGNoZXIgPSBpZ25vcmVNYXRjaGVyLm9yKC4uLnBhdGhNYXRjaFRlc3RzKGlnbm9yZSkpO1xuICAgIH0sXG4gIH07XG59XG5cbi8vIE1hbnVhbCBkZW1vOiBydW4gdGhpcyBmaWxlIGRpcmVjdGx5IChgYnVuIHNyYy9maW5kLnRzYCkgdG8gcHJpbnQgdGhlXG4vLyBmaWxlcyBmaW5kRmlsZXMga2VlcHMgZm9yIHRoaXMgcGFja2FnZSB1bmRlciB0aGUgZ2l2ZW4gaWdub3JlIG9wdGlvbnMuXG5pZiAoaW1wb3J0Lm1ldGEubWFpbikge1xuICBjb25zdCBzdGFydFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgY29uc3QgY3dkID0gcHJvY2Vzcy5jd2QoKTtcbiAgY29uc29sZS5sb2coYFNjYW5uaW5nOiAke2N3ZH1gKTtcblxuICBjb25zdCBmaWxlcyA9IGZpbmRGaWxlcyhcIioqLyouKlwiLCB7XG4gICAgaWdub3JlOiBbXCIqKi9pbmRleC50c1wiLCBcIioqL2V4YW1wbGUvKipcIiwgXCIqKi8qLm1kXCJdLFxuICAgIGlnbm9yZU9wdGlvbnM6IHtcbiAgICAgIHRlc3Q6IHRydWUsXG4gICAgfSxcbiAgfSk7XG4gIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgIGNvbnNvbGUubG9nKGZpbGUpO1xuICB9XG4gIGNvbnN0IGVsYXBzZWQgPSBwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0VGltZTtcbiAgY29uc29sZS5sb2coYEVsYXBzZWQ6ICR7ZWxhcHNlZH1tc2ApO1xufVxuIl19
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFFLE1BQU0sRUFBaUIsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFrRCxNQUFNLE1BQU0sQ0FBQztBQUN2RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUErQixjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hGLE9BQU8sRUFBMEMsdUJBQXVCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFlNUY7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFDLE9BQTBCLEVBQUUsT0FBeUI7SUFDN0UsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzRSxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsT0FBb0M7SUFDekQsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxHQUFHLFdBQVcsRUFBRSxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7SUFDckYsT0FBTztRQUNMLEdBQUcsV0FBVztRQUNkLEdBQUcsRUFBRSxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtRQUN6QixNQUFNLEVBQUUsY0FBYyxJQUFJLHVCQUF1QjtRQUNqRCxNQUFNLEVBQUUsZUFBZSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUM7S0FDL0MsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLGtCQUFrQixHQUFHO0lBQ3pCLFNBQVM7SUFDVCxpQkFBaUI7SUFDakIsS0FBSztDQUMyQyxDQUFDO0FBRW5ELFNBQVMsWUFBWSxDQUFDLEtBQWM7SUFDbEMsSUFBSSxLQUFLLENB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Q0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDcEMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBRWhDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxRQUFRLEVBQUU7UUFDaEMsTUFBTSxFQUFFLENBQUMsYUFBYSxFQUFFLGVBQWUsRUFBRSxTQUFTLENBQUM7UUFDbkQsYUFBYSxFQUFFO1lBQ2IsSUFBSSxFQUFFLElBQUk7U0FDWDtLQUNGLENBQUMsQ0FBQztJQUNILEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBQ0QsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FBQztJQUM5QyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksT0FBTyxJQUFJLENBQUMsQ0FBQztBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXBvc2l0b3J5LWNvbnNpc3RlbnQgZmlsZSBkaXNjb3Zlcnkgb3ZlciBgZ2xvYmAuXG4gKlxuICogUmV1c2Uge0BsaW5rIGZpbmRGaWxlc30gd2hlbiBwYWNrYWdlIGRpc2NvdmVyeSwgZ2VuZXJhdGlvbiwgY2xlYW51cCwgb3IgZG9jc1xuICogdG9vbGluZyBtdXN0IGhvbm9yIHRoZSBzYW1lIGlnbm9yZSBjYXRhbG9ndWUgYW5kIHN5bWxpbmsgZGVmYXVsdHMgYXMgd2F0Y2hlcnMuXG4gKiBEaXJlY3QgYGdsb2JgIGNhbGxzIHNob3VsZCBiZSByZXNlcnZlZCBmb3IgYmVoYXZpb3IgdGhhdCBpbnRlbnRpb25hbGx5IGRpZmZlcnMuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IG9iamVjdCwgdHlwZSBTZXF1ZW5jZSB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyBnbG9iSXRlcmF0ZVN5bmMsIElnbm9yZUxpa2UsIHR5cGUgR2xvYk9wdGlvbnNXaXRoRmlsZVR5cGVzVW5zZXQgfSBmcm9tIFwiZ2xvYlwiO1xuaW1wb3J0IHsgaWdub3JlUGF0aE1hdGNoZXIgfSBmcm9tIFwiLi9pZ25vcmUudHNcIjtcbmltcG9ydCB7IFBhdGhNYXRjaGVyLCBQYXRoTWF0Y2hJbnB1dCwgcGF0aE1hdGNoVGVzdHMsIHRvUGF0aE1hdGNoZXIgfSBmcm9tIFwiLi9tYXRjaC50c1wiO1xuaW1wb3J0IHsgRmlsZVNjYW5JZ25vcmVPcHRpb25zLCBGaWxlU2Nhbk9wdGlvbnMsIEZPTExPV19TWU1MSU5LU19ERUZBVUxUIH0gZnJvbSBcIi4vc2Nhbi50c1wiO1xuXG50eXBlIEZpbGVGaW5kSWdub3JlID0gUGF0aE1hdGNoSW5wdXQgfCByZWFkb25seSBQYXRoTWF0Y2hJbnB1dFtdIHwgSWdub3JlTGlrZTtcblxuLyoqIEdsb2IsIHJvb3QsIGlnbm9yZSwgYW5kIHN5bWxpbmsgb3B0aW9ucyBmb3Ige0BsaW5rIGZpbmRGaWxlc30uICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVGaW5kT3B0aW9uc1xuICBleHRlbmRzXG4gICAgT21pdDxcbiAgICAgIEdsb2JPcHRpb25zV2l0aEZpbGVUeXBlc1Vuc2V0LFxuICAgICAgXCJpZ25vcmVcIiB8IFwiZm9sbG93XCIgfCBcImRvdFwiIHwgXCJjd2RcIiB8IFwiaW5jbHVkZUNoaWxkTWF0Y2hlc1wiXG4gICAgPixcbiAgICBPbWl0PEZpbGVTY2FuT3B0aW9ucywgXCJpZ25vcmVcIiB8IFwiY3dkXCI+IHtcbiAgY3dkPzogc3RyaW5nIHwgVVJMO1xuICBpZ25vcmU/OiBGaWxlRmluZElnbm9yZTtcbn1cbi8qKlxuICogUmVjdXJzaXZlbHkgbGlzdHMgZmlsZXMgbWF0Y2hpbmcgYHBhdHRlcm5gLCBpZ25vcmluZyB0aGUgc2hhcmVkIGRlZmF1bHQgZ3JvdXBzXG4gKiBwbHVzIGFueSBjYWxsZXIgYGlnbm9yZWAgcGF0dGVybnMgKHVubGVzcyBgaWdub3JlYCBpcyBhIGxvbmUgcHJlZGljYXRlIGZ1bmN0aW9uLFxuICogaW4gd2hpY2ggY2FzZSBvbmx5IHRoYXQgcHJlZGljYXRlIGFwcGxpZXMpLiBUaGUgaWdub3JlIGxpc3QgbWlycm9ycyB3aGF0XG4gKiB7QGxpbmsgd2F0Y2hGaWxlc30gZmVlZHMgdGhyb3VnaCBpdHMgbWF0Y2hlcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kRmlsZXMocGF0dGVybjogc3RyaW5nIHwgc3RyaW5nW10sIG9wdGlvbnM/OiBGaWxlRmluZE9wdGlvbnMpOiBTZXF1ZW5jZTxzdHJpbmc+IHtcbiAgcmV0dXJuIG9iamVjdC5zZXF1ZW5jZShnbG9iSXRlcmF0ZVN5bmMocGF0dGVybiwgdG9HbG9iT3B0aW9ucyhvcHRpb25zKSkpO1xufVxuXG5mdW5jdGlvbiB0b0dsb2JPcHRpb25zKG9wdGlvbnM6IEZpbGVGaW5kT3B0aW9ucyB8IHVuZGVmaW5lZCk6IEdsb2JPcHRpb25zV2l0aEZpbGVUeXBlc1Vuc2V0IHtcbiAgY29uc3QgeyBjd2QsIGlnbm9yZSwgaWdub3JlT3B0aW9ucywgZm9sbG93U3ltbGlua3MsIC4uLnJlc3RPcHRpb25zIH0gPSBvcHRpb25zID8/IHt9O1xuICByZXR1cm4ge1xuICAgIC4uLnJlc3RPcHRpb25zLFxuICAgIGN3ZDogY3dkID8/IHByb2Nlc3MuY3dkKCksXG4gICAgZm9sbG93OiBmb2xsb3dTeW1saW5rcyA/PyBGT0xMT1dfU1lNTElOS1NfREVGQVVMVCxcbiAgICBpZ25vcmU6IG5vcm1hbGl6ZUlnbm9yZShpZ25vcmUsIGlnbm9yZU9wdGlvbnMpLFxuICB9O1xufVxuXG5jb25zdCBJR05PUkVfTElLRV9GSUVMRFMgPSBbXG4gIFwiaWdub3JlZFwiLFxuICBcImNoaWxkcmVuSWdub3JlZFwiLFxuICBcImFkZFwiLFxuXSBhcyBjb25zdCBzYXRpc2ZpZXMgcmVhZG9ubHkgKGtleW9mIElnbm9yZUxpa2UpW107XG5cbmZ1bmN0aW9uIGlzSWdub3JlTGlrZSh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIElnbm9yZUxpa2Uge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHJldHVybiBmYWxzZTtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgIGZvciAoY29uc3QgZmllbGQgb2YgSUdOT1JFX0xJS0VfRklFTERTKSB7XG4gICAgICBpZiAoZmllbGQgaW4gdmFsdWUgJiYgdHlwZW9mICh2YWx1ZSBhcyBhbnkpW2ZpZWxkXSAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuLyoqXG4gKiBCdWlsZHMgdGhlIHtAbGluayBJZ25vcmVMaWtlfSBvYmplY3Qge0BsaW5rIGZpbmRGaWxlc30gaGFuZHMgdG8gYGdsb2JgLlxuICpcbiAqIEEgY2FsbGVyLXN1cHBsaWVkIGBJZ25vcmVMaWtlYCAoYW4gb2JqZWN0LCBub3Qgc3RyaW5nL2FycmF5KSBpcyBjb25zdWx0ZWRcbiAqIGZpcnN0IC0gaXRzIGBpZ25vcmVkYC9gY2hpbGRyZW5JZ25vcmVkYCB3aW4gLSBhZnRlciB3aGljaCB0aGUgc2hhcmVkXG4gKiB7QGxpbmsgaWdub3JlUGF0aE1hdGNoZXJ9ICh0aGUgc2FtZSBtYXRjaGVyIHtAbGluayB3YXRjaEZpbGVzfSB1c2VzKSBkZWNpZGVzIGJhc2VkIG9uIHRoZVxuICogcGFja2FnZS1yZWxhdGl2ZSBwYXRoLiBgY2FjaGVEaXJlY3RvcnlTdGF0c2AgaXMgZW5hYmxlZCBiZWNhdXNlIGdsb2IgcHJvYmVzXG4gKiBtYW55IHBhdGhzIHBlciBkaXJlY3RvcnkuIENhbGxlciBzdHJpbmcvYXJyYXkgcGF0dGVybnMgYXJlIG1lcmdlZCBpbnRvIHRoZVxuICogbWF0Y2hlciwgYW5kIGBhZGRgIGZvcndhcmRzIHRvIGJvdGggdGhlIGNhbGxlciBvYmplY3QgYW5kIHRoZSBtYXRjaGVyLlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVJZ25vcmUoXG4gIGlnbm9yZTogRmlsZUZpbmRJZ25vcmUgfCB1bmRlZmluZWQsXG4gIGlnbm9yZU9wdGlvbnM6IEZpbGVTY2FuSWdub3JlT3B0aW9ucyB8IHVuZGVmaW5lZCxcbik6IElnbm9yZUxpa2Uge1xuICBjb25zdCBpZ25vcmVMaWtlOiBJZ25vcmVMaWtlIHwgdW5kZWZpbmVkID0gaXNJZ25vcmVMaWtlKGlnbm9yZSkgPyBpZ25vcmUgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGlnbm9yZVBhdGhNYXRjaGVySW5wdXRzOiBQYXRoTWF0Y2hJbnB1dFtdIHwgdW5kZWZpbmVkID1cbiAgICBpZ25vcmUgPT09IHVuZGVmaW5lZCB8fCBpZ25vcmVMaWtlID8gdW5kZWZpbmVkIDogQXJyYXkuaXNBcnJheShpZ25vcmUpID8gWy4uLmlnbm9yZV0gOiBbaWdub3JlXTtcblxuICBjb25zdCBwcmVkaWNhdGVPbmx5ID1cbiAgICBpZ25vcmVQYXRoTWF0Y2hlcklucHV0cz8ubGVuZ3RoID09PSAxICYmIHR5cGVvZiBpZ25vcmVQYXRoTWF0Y2hlcklucHV0c1swXSA9PT0gXCJmdW5jdGlvblwiO1xuXG4gIGxldCBpZ25vcmVNYXRjaGVyOiBQYXRoTWF0Y2hlciA9IHByZWRpY2F0ZU9ubHlcbiAgICA/IHRvUGF0aE1hdGNoZXIoaWdub3JlUGF0aE1hdGNoZXJJbnB1dHNbMF0pXG4gICAgOiBpZ25vcmVQYXRoTWF0Y2hlcihpZ25vcmVPcHRpb25zKTtcbiAgaWYgKGlnbm9yZVBhdGhNYXRjaGVySW5wdXRzICYmICFwcmVkaWNhdGVPbmx5KSB7XG4gICAgaWdub3JlTWF0Y2hlciA9IGlnbm9yZU1hdGNoZXIub3IoLi4ucGF0aE1hdGNoVGVzdHMoLi4uaWdub3JlUGF0aE1hdGNoZXJJbnB1dHMpKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIGlnbm9yZWQocGF0aCkge1xuICAgICAgaWYgKGlnbm9yZUxpa2U/Lmlnbm9yZWQ/LihwYXRoKSkgcmV0dXJuIHRydWU7XG4gICAgICBjb25zdCBwYXRoZVJlbGF0aXZlID0gcGF0aC5yZWxhdGl2ZSgpO1xuICAgICAgY29uc3QgaWdub3JlID0gaWdub3JlTWF0Y2hlcihwYXRoZVJlbGF0aXZlKTtcbiAgICAgIHJldHVybiBpZ25vcmU7XG4gICAgfSxcbiAgICBjaGlsZHJlbklnbm9yZWQocGF0aCkge1xuICAgICAgaWYgKGlnbm9yZUxpa2U/LmNoaWxkcmVuSWdub3JlZD8uKHBhdGgpKSByZXR1cm4gdHJ1ZTtcbiAgICAgIGNvbnN0IHBhdGhlUmVsYXRpdmUgPSBwYXRoLnJlbGF0aXZlKCk7XG4gICAgICBpZiAocGF0aGVSZWxhdGl2ZSkge1xuICAgICAgICBpZiAoaWdub3JlTWF0Y2hlcihwYXRoZVJlbGF0aXZlKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKGlnbm9yZU1hdGNoZXIocGF0aGVSZWxhdGl2ZSArIFwiL1wiKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSxcbiAgICBhZGQoaWdub3JlKSB7XG4gICAgICBpZ25vcmVMaWtlPy5hZGQ/LihpZ25vcmUpO1xuICAgICAgaWdub3JlTWF0Y2hlciA9IGlnbm9yZU1hdGNoZXIub3IoLi4ucGF0aE1hdGNoVGVzdHMoaWdub3JlKSk7XG4gICAgfSxcbiAgfTtcbn1cblxuLy8gTWFudWFsIGRlbW86IHJ1biB0aGlzIGZpbGUgZGlyZWN0bHkgKGBidW4gc3JjL2ZpbmQudHNgKSB0byBwcmludCB0aGVcbi8vIGZpbGVzIGZpbmRGaWxlcyBrZWVwcyBmb3IgdGhpcyBwYWNrYWdlIHVuZGVyIHRoZSBnaXZlbiBpZ25vcmUgb3B0aW9ucy5cbmlmIChpbXBvcnQubWV0YS5tYWluKSB7XG4gIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICBjb25zdCBjd2QgPSBwcm9jZXNzLmN3ZCgpO1xuICBjb25zb2xlLmxvZyhgU2Nhbm5pbmc6ICR7Y3dkfWApO1xuXG4gIGNvbnN0IGZpbGVzID0gZmluZEZpbGVzKFwiKiovKi4qXCIsIHtcbiAgICBpZ25vcmU6IFtcIioqL2luZGV4LnRzXCIsIFwiKiovZXhhbXBsZS8qKlwiLCBcIioqLyoubWRcIl0sXG4gICAgaWdub3JlT3B0aW9uczoge1xuICAgICAgdGVzdDogdHJ1ZSxcbiAgICB9LFxuICB9KTtcbiAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgY29uc29sZS5sb2coZmlsZSk7XG4gIH1cbiAgY29uc3QgZWxhcHNlZCA9IHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lO1xuICBjb25zb2xlLmxvZyhgRWxhcHNlZDogJHtlbGFwc2VkfW1zYCk7XG59XG4iXX0=
@@ -13,6 +13,10 @@
13
13
  * - {@link ignorePathMatcher} - returns a single {@link PathMatcher} for
14
14
  * {@link findFiles} and {@link watchFiles} (keeps `test: true` by default).
15
15
  *
16
+ * This is the repository owner for generated, dependency, VCS, temporary, test,
17
+ * and lockfile ignore policy. Extend these groups instead of copying ignore
18
+ * lists into individual generators or watchers.
19
+ *
16
20
  * @module
17
21
  */
18
22
  import { type Sequence } from "@dbx-tools/shared-core";
package/lib/src/ignore.js CHANGED
@@ -13,6 +13,10 @@
13
13
  * - {@link ignorePathMatcher} - returns a single {@link PathMatcher} for
14
14
  * {@link findFiles} and {@link watchFiles} (keeps `test: true` by default).
15
15
  *
16
+ * This is the repository owner for generated, dependency, VCS, temporary, test,
17
+ * and lockfile ignore policy. Extend these groups instead of copying ignore
18
+ * lists into individual generators or watchers.
19
+ *
16
20
  * @module
17
21
  */
18
22
  import * as projectUtils from "@dbx-tools/core/project-utils";
@@ -144,4 +148,4 @@ export function ignorePathMatcher(options) {
144
148
  const predicates = ignoreMatchPredicates(options).flatMap(Object.values);
145
149
  return toPathMatcher(...predicates);
146
150
  }
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWdub3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2lnbm9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUVILE9BQU8sS0FBSyxZQUFZLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQWlCLE1BQU0sd0JBQXdCLENBQUM7QUFDOUUsT0FBTyxFQUFtQyxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBNEIxRSw0RUFBNEU7QUFDNUUsTUFBTSx3QkFBd0IsR0FBRyxvQkFBb0IsQ0FBQztBQUV0RDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSw2QkFBNkIsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtJQUMvRCxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDNUMsT0FBTyxRQUFRLEtBQUssU0FBUyxJQUFJLFFBQVEsQ0FBQyxRQUFRLEtBQUssd0JBQXdCLENBQUM7QUFDbEYsQ0FBQyxDQUFDLENBQUM7QUFFSCxtRkFBbUY7QUFDbkYsU0FBUyx5QkFBeUIsQ0FBQyxPQUE4QjtJQUMvRCxNQUFNLEtBQUssR0FBRyxPQUFPLEVBQUUsSUFBSSxJQUFJLE1BQU0sQ0FBQztJQUN0QyxJQUFJLEtBQUssS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUNyQixPQUFPLDZCQUE2QixFQUFFLENBQUM7SUFDekMsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLGVBQWUsQ0FBQyxRQUEyQjtJQUNsRCxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsYUFBYSxD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QUFrQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3ZFLElBQUksT0FBTyxFQUFFLEdBQUcsSUFBSSxJQUFJO1FBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckUsSUFBSSx5QkFBeUIsQ0FBQyxPQUFPLENBQUM7UUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNwRixPQUFPLGtCQUFrQixDQUFDO0FBQzVCLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQThCO0lBQzNELE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDekYsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE9BQThCO0lBQzlELE1BQU0sVUFBVSxHQUFHLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekUsT0FBTyxhQUFhLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQztBQUN0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCdWlsdC1pbiBpZ25vcmUgZ2xvYiBwYXR0ZXJucyBmb3IgZmlsZSBzY2FubmluZyBhbmQgd2F0Y2hpbmcuXG4gKlxuICogVGhpcyBtb2R1bGUgb3ducyB0aGUgcGF0dGVybiBjYXRhbG9nIGFuZCBvcHRpb24gdG9nZ2xlcyBvbmx5LiBFYWNoIGdyb3VwIGlzXG4gKiBjb21waWxlZCBpbnRvIHtAbGluayBQYXRoTWF0Y2hQcmVkaWNhdGV9IGluc3RhbmNlcyB2aWEge0BsaW5rIHRvUGF0aE1hdGNoZXJ9O1xuICogY29tcG9zaXRpb24gKGBhbmRgL2BvcmAvYG5lZ2F0ZWApIGxpdmVzIGluIHtAbGluayAuL21hdGNofS5cbiAqXG4gKiBDb25zdW1lcnM6XG4gKiAtIHtAbGluayBpZ25vcmVQYXR0ZXJuc30gLSB5aWVsZHMgdGhlIGVuYWJsZWQgZ2xvYiBzdHJpbmdzIChmb3IgcHJvamVuXG4gKiAgIHByZXR0aWVyL2dpdGlnbm9yZSkuIFBhc3MgYHsgdGVzdDogZmFsc2UgfWAgdGhlcmU6IHRoZSBgdGVzdGAgZ3JvdXAgaXMgZm9yXG4gKiAgIGZpbGVzeXN0ZW0gc2Nhbm5pbmcgb25seSAoc2tpcCB0ZXN0IGRpcnMgd2hlbiBkaXNjb3ZlcmluZyBwYWNrYWdlcyAvXG4gKiAgIHdhdGNoaW5nKSwgbm90IGZvciBWQ1Mgb3IgZm9ybWF0dGVyIGlnbm9yZSBmaWxlcy5cbiAqIC0ge0BsaW5rIGlnbm9yZVBhdGhNYXRjaGVyfSAtIHJldHVybnMgYSBzaW5nbGUge0BsaW5rIFBhdGhNYXRjaGVyfSBmb3JcbiAqICAge0BsaW5rIGZpbmRGaWxlc30gYW5kIHtAbGluayB3YXRjaEZpbGVzfSAoa2VlcHMgYHRlc3Q6IHRydWVgIGJ5IGRlZmF1bHQpLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgKiBhcyBwcm9qZWN0VXRpbHMgZnJvbSBcIkBkYngtdG9vbHMvY29yZS9wcm9qZWN0LXV0aWxzXCI7XG5pbXBvcnQgeyBmdW5jdGlvblV0aWxzLCBvYmplY3QsIHR5cGUgU2VxdWVuY2UgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHsgUGF0aE1hdGNoZXIsIFBhdGhNYXRjaFByZWRpY2F0ZSwgdG9QYXRoTWF0Y2hlciB9IGZyb20gXCIuL21hdGNoLnRzXCI7XG5pbXBvcnQgeyBkaXJlY3RvcnlOYW1lUGF0dGVybiwgZmlsZUV4dGVuc2lvblBhdHRlcm4gfSBmcm9tIFwiLi9wYXR0ZXJuLnRzXCI7XG5cbi8qKiBUb2dnbGVzIGZvciBlYWNoIGJ1aWx0LWluIGlnbm9yZSBncm91cDsgb21pdHRlZCBmbGFncyBkZWZhdWx0IHRvIGB0cnVlYC4gKi9cbmV4cG9ydCB0eXBlIElnbm9yZVBhdHRlcm5PcHRpb25zID0ge1xuICAvKiogQnVpbGQgYXJ0aWZhY3RzLCBkZXBlbmRlbmN5IGRpcnMsIGNhY2hlcywgbG9ncywgYW5kIE9TIGp1bmsgZmlsZXMuICovXG4gIGRlZmF1bHRzPzogYm9vbGVhbjtcbiAgLyoqIEhpZGRlbiBkb3QtZmlsZXMgYW5kIGRvdC1kaXJlY3RvcmllcyAoYC5naXRgLCBgLnZzY29kZWAsIGAuZ2l0aWdub3JlYCwgZXRjLikuICovXG4gIGRvdD86IGJvb2xlYW47XG4gIC8qKiBUZW1wb3JhcnkgZGlyZWN0b3JpZXMgKGB0bXBgLCBgLnRtcGAsIGBzY3JhdGNoYCwgZXRjLikuICovXG4gIHRlbXA/OiBib29sZWFuO1xuICAvKipcbiAgICogVGVzdCBkaXJlY3RvcmllcyBhbmQgYCoudGVzdC4qYCAvIGAqLnNwZWMuKmAgbmFtaW5nIGNvbnZlbnRpb25zLlxuICAgKiBTY2FubmluZy93YXRjaCBkZWZhdWx0IG9uOyBvbWl0IChgZmFsc2VgKSB3aGVuIGVtaXR0aW5nIGAuZ2l0aWdub3JlYCAvXG4gICAqIGAucHJldHRpZXJpZ25vcmVgIHNvIHRlc3RzIHN0YXkgdHJhY2tlZCBhbmQgZm9ybWF0YWJsZS5cbiAgICovXG4gIHRlc3Q/OiBib29sZWFuO1xuICAvKipcbiAgICogTG9ja2ZpbGUgaWdub3JlIGdyb3VwIChgcGFja2FnZS1sb2NrLmpzb25gLCBgcG5wbS1sb2NrLnlhbWxgLCBgeWFybi5sb2NrYCxcbiAgICogYGJ1bi5sb2NrYmAsIGV0Yy4pLlxuICAgKlxuICAgKiAtIGB0cnVlYCAtIGFsd2F5cyBpZ25vcmUgbG9ja2ZpbGVzLlxuICAgKiAtIGBmYWxzZWAgLSBuZXZlciBpZ25vcmUgbG9ja2ZpbGVzLlxuICAgKiAtIGBcImF1dG9cImAgKGRlZmF1bHQpIC0gaWdub3JlIHdoZW4gdGhlIGFjdGl2ZSBucG0gcmVnaXN0cnkgaXMgbm90IHRoZSBwdWJsaWNcbiAgICogICBucG0gcmVnaXN0cnkgKGByZWdpc3RyeS5ucG1qcy5vcmdgKSwgZS5nLiBhIGNvbXBhbnktaW50ZXJuYWwgcmVnaXN0cnkuXG4gICAqL1xuICBsb2NrPzogYm9vbGVhbiB8IFwiYXV0b1wiO1xufTtcblxuLyoqIEhvc3Qgb2YgdGhlIHB1YmxpYyBucG0gcmVnaXN0cnk7IGFueXRoaW5nIGVsc2UgaXMgdHJlYXRlZCBhcyBwcml2YXRlLiAqL1xuY29uc3QgUFVCTElDX05QTV9SRUdJU1RSWV9IT1NUID0gXCJyZWdpc3RyeS5ucG1qcy5vcmdcIjtcblxuLyoqXG4gKiBNZW1vaXplZCBwcm9iZSBmb3Ige0BsaW5rIElnbm9yZVBhdHRlcm5PcHRpb25zLmxvY2t9IGBcImF1dG9cImAuXG4gKlxuICogUmVzb2x2ZXMgdGhlIGFjdGl2ZSByZWdpc3RyeSB0aHJvdWdoIGBAZGJ4LXRvb2xzL2NvcmVgJ3NcbiAqIHtAbGluayBwcm9qZWN0Lm5wbVJlZ2lzdHJ5fSBhbmQgcmV0dXJucyBgdHJ1ZWAgd2hlbiBpdCBpcyBub3QgdGhlIHB1YmxpYyBucG1cbiAqIHJlZ2lzdHJ5IC0gYSBsb2NrZmlsZSBwcm9kdWNlZCBhZ2FpbnN0IGEgcHJpdmF0ZSBtaXJyb3IgcGlucyBVUkxzIHRoYXQgb3RoZXJcbiAqIG1hY2hpbmVzIGNhbm5vdCByZWFjaCwgc28gaXQgc2hvdWxkIG5vdCBiZSBjb21taXR0ZWQuXG4gKi9cbmNvbnN0IGxvY2tJZ25vcmVNYXRjaGVyc0F1dG9FbmFibGVkID0gZnVuY3Rpb25VdGlscy5tZW1vaXplKCgpID0+IHtcbiAgY29uc3QgcmVnaXN0cnkgPSBwcm9qZWN0VXRpbHMubnBtUmVnaXN0cnkoKTtcbiAgcmV0dXJuIHJlZ2lzdHJ5ICE9PSB1bmRlZmluZWQgJiYgcmVnaXN0cnkuaG9zdG5hbWUgIT09IFBVQkxJQ19OUE1fUkVHSVNUUllfSE9TVDtcbn0pO1xuXG4vKiogUmVzb2x2ZXMgd2hldGhlciB0aGUgbG9ja2ZpbGUgaWdub3JlIGdyb3VwIGlzIGVuYWJsZWQgZm9yIHRoZSBnaXZlbiBvcHRpb25zLiAqL1xuZnVuY3Rpb24gbG9ja0lnbm9yZU1hdGNoZXJzRW5hYmxlZChvcHRpb25zPzogSWdub3JlUGF0dGVybk9wdGlvbnMpOiBib29sZWFuIHtcbiAgY29uc3QgdmFsdWUgPSBvcHRpb25zPy5sb2NrID8/IFwiYXV0b1wiO1xuICBpZiAodmFsdWUgPT09IFwiYXV0b1wiKSB7XG4gICAgcmV0dXJuIGxvY2tJZ25vcmVNYXRjaGVyc0F1dG9FbmFibGVkKCk7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG4vKipcbiAqIENvbXBpbGVzIGdsb2Igc3RyaW5ncyBpbnRvIGEgYHsgW2dsb2JdOiBQYXRoTWF0Y2hQcmVkaWNhdGUgfWAgbWFwLlxuICpcbiAqIEtleWluZyBieSB0aGUgc291cmNlIGdsb2IgZGUtZHVwZXMgYW5kIGtlZXBzIGVhY2ggbWF0Y2hlciBiZXNpZGUgaXRzIHBhdHRlcm4uXG4gKi9cbmZ1bmN0aW9uIGNvbXBpbGVNYXRjaGVycyhwYXR0ZXJuczogcmVhZG9ubHkgc3RyaW5nW10pOiBSZWNvcmQ8c3RyaW5nLCBQYXRoTWF0Y2hQcmVkaWNhdGU+IHtcbiAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhwYXR0ZXJucy5tYXAoKGdsb2IpID0+IFtnbG9iLCB0b1BhdGhNYXRjaGVyKGdsb2IpXSkpO1xufVxuXG4vKiogQnVpbGQgYXJ0aWZhY3RzLCBkZXBlbmRlbmN5IGRpcmVjdG9yaWVzLCBjYWNoZXMsIGxvZ3MsIGFuZCBPUyBmaWxlcy4gKi9cbmNvbnN0IGRlZmF1bHRJZ25vcmVNYXRjaGVycyA9IGNvbXBpbGVNYXRjaGVycyhbXG4gIFwiKiovLkRTX1N0b3JlXCIsXG4gIFwiKiovVGh1bWJzLmRiXCIsXG4gIFwiKiovRGVza3RvcC5pbmlcIixcbiAgLi4uW1wibG9nXCIsIFwidHNidWlsZGluZm9cIl0ubWFwKChleHQpID0+IGZpbGVFeHRlbnNpb25QYXR0ZXJuKGV4dCkpLFxuICBcIioqLyotZGVidWcubG9nKlwiLFxuICBcIioqL3lhcm4tZXJyb3IubG9nKlwiLFxuICAuLi5bXG4gICAgXCJub2RlX21vZHVsZXNcIixcbiAgICBcImJvd2VyX2NvbXBvbmVudHNcIixcbiAgICBcImpzcG1fcGFja2FnZXNcIixcbiAgICBcImRpc3RcIixcbiAgICBcImxpYlwiLFxuICAgIFwiYnVpbGRcIixcbiAgICBcIm91dFwiLFxuICAgIFwiY292ZXJhZ2VcIixcbiAgICBcIi5jYWNoZVwiLFxuICAgIFwiLnBhcmNlbC1jYWNoZVwiLFxuICAgIFwiLnR1cmJvXCIsXG4gICAgXCIubmV4dFwiLFxuICAgIFwiLm51eHRcIixcbiAgICBcIi5zdmVsdGUta2l0XCIsXG4gICAgXCIucG5wbS1zdG9yZVwiLFxuICAgIFwiLm55Y19vdXRwdXRcIixcbiAgXS5tYXAoKG5hbWUpID0+IGRpcmVjdG9yeU5hbWVQYXR0ZXJuKG5hbWUpKSxcbl0pO1xuXG4vKiogSGlkZGVuIGRvdC1maWxlcyBhbmQgZG90LWRpcmVjdG9yaWVzIHN1Y2ggYXMgYC5naXRgLCBgLnZzY29kZWAsIGAuaWRlYWAsIGV0Yy4gKi9cbmNvbnN0IGRvdElnbm9yZU1hdGNoZXJzID0gY29tcGlsZU1hdGNoZXJzKFxuICBbXCIuKlwiXS5mbGF0TWFwKChnbG9iKSA9PiBbYCoqLyR7Z2xvYn1gLCBkaXJlY3RvcnlOYW1lUGF0dGVybihnbG9iLCBmYWxzZSldKSxcbik7XG5cbi8qKiBUZW1wb3JhcnkgZGlyZWN0b3JpZXMsIGluY2x1ZGluZyBoaWRkZW4gdmFyaWFudHMgKGAudG1wYCwgZXRjLikuICovXG5jb25zdCB0ZW1wSWdub3JlTWF0Y2hlcnMgPSBjb21waWxlTWF0Y2hlcnMoXG4gIFtcInRlbXBcIiwgXCJ0bXBcIiwgXCJ0ZW1wc1wiLCBcInNjcmF0Y2hcIl1cbiAgICAuZmxhdE1hcCgobmFtZSkgPT4gW25hbWUsIGAuJHtuYW1lfWBdKVxuICAgIC5tYXAoKG5hbWUpID0+IGRpcmVjdG9yeU5hbWVQYXR0ZXJuKG5hbWUpKSxcbik7XG5cbi8qKiBUZXN0IGRpcmVjdG9yaWVzIGFuZCBjb21tb24gdGVzdC1maWxlIG5hbWluZyBjb252ZW50aW9ucy4gKi9cbmNvbnN0IHRlc3RJZ25vcmVNYXRjaGVycyA9IGNvbXBpbGVNYXRjaGVycyhbXG4gIC4uLltcInRlc3RcIiwgXCJ0ZXN0c1wiLCBcIl9fdGVzdHNfX1wiLCBcIl9fc25hcHNob3RzX19cIl1cbiAgICAuZmxhdE1hcCgobmFtZSkgPT4gW25hbWUsIGAuJHtuYW1lfWBdKVxuICAgIC5tYXAoKG5hbWUpID0+IGRpcmVjdG9yeU5hbWVQYXR0ZXJuKG5hbWUpKSxcbiAgXCIqKi8qLnRlc3QuKlwiLFxuICBcIioqLyouc3BlYy4qXCIsXG4gIFwiKiovdGVzdC4qXCIsXG4gIFwiKiovc3BlYy4qXCIsXG5dKTtcblxuLyoqIExvY2tmaWxlcyAoYHBhY2thZ2UtbG9jay5qc29uYCwgYHBucG0tbG9jay55YW1sYCwgYHlhcm4ubG9ja2AsIGBidW4ubG9ja2JgLCDigKYpLiAqL1xuY29uc3QgbG9ja0lnbm9yZU1hdGNoZXJzID0gY29tcGlsZU1hdGNoZXJzKFtcbiAgXCIqKi9idW4ubG9ja2JcIixcbiAgLi4uW1wianNvblwiLCBcInlhbWxcIiwgXCJ5bWxcIl0ubWFwKChleHQpID0+IGAqKi8qLWxvY2suJHtleHR9YCksXG4gIC4uLltcImxvY2tcIl0ubWFwKChleHQpID0+IGZpbGVFeHRlbnNpb25QYXR0ZXJuKGV4dCkpLFxuXSk7XG5cbi8qKlxuICogQ29sbGVjdHMgdGhlIHByZS1jb21waWxlZCBtYXRjaGVyIG1hcHMgZm9yIGVhY2ggZW5hYmxlZCBidWlsdC1pbiBncm91cC5cbiAqXG4gKiBHcm91cCB0b2dnbGVzIGNvbWUgZnJvbSBgb3B0aW9uc2A7IHRoZSBsb2NrIGdyb3VwIGFsc28gcmVzcGVjdHNcbiAqIHtAbGluayBsb2NrSWdub3JlTWF0Y2hlcnNFbmFibGVkfSAoYGxvY2s6IFwiYXV0b1wiYCBwcm9iZXMgdGhlIG5wbSByZWdpc3RyeSkuXG4gKi9cbmZ1bmN0aW9uIGlnbm9yZU1hdGNoUHJlZGljYXRlcyhcbiAgb3B0aW9ucz86IElnbm9yZVBhdHRlcm5PcHRpb25zLFxuKTogUmVjb3JkPHN0cmluZywgUGF0aE1hdGNoUHJlZGljYXRlPltdIHtcbiAgY29uc3QgaWdub3JlTWF0Y2hSZWNvcmRzOiBSZWNvcmQ8c3RyaW5nLCBQYXRoTWF0Y2hQcmVkaWNhdGU+W10gPSBbXTtcbiAgaWYgKG9wdGlvbnM/LmRlZmF1bHRzID8/IHRydWUpIGlnbm9yZU1hdGNoUmVjb3Jkcy5wdXNoKGRlZmF1bHRJZ25vcmVNYXRjaGVycyk7XG4gIGlmIChvcHRpb25zPy50ZW1wID8/IHRydWUpIGlnbm9yZU1hdGNoUmVjb3Jkcy5wdXNoKHRlbXBJZ25vcmVNYXRjaGVycyk7XG4gIGlmIChvcHRpb25zPy50ZXN0ID8/IHRydWUpIGlnbm9yZU1hdGNoUmVjb3Jkcy5wdXNoKHRlc3RJZ25vcmVNYXRjaGVycyk7XG4gIGlmIChvcHRpb25zPy5kb3QgPz8gdHJ1ZSkgaWdub3JlTWF0Y2hSZWNvcmRzLnB1c2goZG90SWdub3JlTWF0Y2hlcnMpO1xuICBpZiAobG9ja0lnbm9yZU1hdGNoZXJzRW5hYmxlZChvcHRpb25zKSkgaWdub3JlTWF0Y2hSZWNvcmRzLnB1c2gobG9ja0lnbm9yZU1hdGNoZXJzKTtcbiAgcmV0dXJuIGlnbm9yZU1hdGNoUmVjb3Jkcztcbn1cblxuLyoqXG4gKiBZaWVsZHMgdGhlIGdsb2Igc3RyaW5ncyBmb3IgZWFjaCBlbmFibGVkIGJ1aWx0LWluIGlnbm9yZSBncm91cC5cbiAqXG4gKiBVc2VmdWwgd2hlbiBhIGNvbnN1bWVyIG5lZWRzIGxpdGVyYWwgcGF0dGVybnMgKGUuZy4gcHJvamVuIGAuZ2l0aWdub3JlYCAvXG4gKiBgLnByZXR0aWVyaWdub3JlYCkgcmF0aGVyIHRoYW4gYSBjb21waWxlZCB7QGxpbmsgUGF0aE1hdGNoZXJ9LiBGb3IgdGhvc2VcbiAqIGZpbGUgZW1pdHRlcnMgcGFzcyBgeyB0ZXN0OiBmYWxzZSB9YCAtIHRoZSB0ZXN0IGdyb3VwIGJlbG9uZ3MgdG8gc2Nhbm5pbmdcbiAqIG9ubHkgKHtAbGluayBpZ25vcmVQYXRoTWF0Y2hlcn0pLCBub3QgVkNTL2Zvcm1hdHRlciBpZ25vcmVzLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gR3JvdXAgdG9nZ2xlczsgb21pdHRlZCBmbGFncyBkZWZhdWx0IHRvIGVuYWJsZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpZ25vcmVQYXR0ZXJucyhvcHRpb25zPzogSWdub3JlUGF0dGVybk9wdGlvbnMpOiBTZXF1ZW5jZTxzdHJpbmc+IHtcbiAgcmV0dXJuIG9iamVjdC5zZXF1ZW5jZShpZ25vcmVNYXRjaFByZWRpY2F0ZXMob3B0aW9ucykpLmZsYXRNYXAoT2JqZWN0LmtleXMpLmRpc3RpbmN0KCk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIHtAbGluayBQYXRoTWF0Y2hlcn0gZm9yIHBhdGhzIGlnbm9yZWQgYnkgdGhlIGVuYWJsZWQgYnVpbHQtaW4gZ3JvdXBzLlxuICpcbiAqIE1hdGNoZXJzIGZvciBlYWNoIGdyb3VwIGFyZSBjb21waWxlZCBvbmNlIGF0IG1vZHVsZSBsb2FkOyBgb3B0aW9uc2Agb25seVxuICogc2VsZWN0cyB3aGljaCBncm91cHMgcGFydGljaXBhdGUuIFRoZSBsb2NrIGdyb3VwIGlzIGluY2x1ZGVkIHdoZW5cbiAqIHtAbGluayBsb2NrSWdub3JlTWF0Y2hlcnNFbmFibGVkfSByZXR1cm5zIGB0cnVlYC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEdyb3VwIHRvZ2dsZXM7IG9taXR0ZWQgZmxhZ3MgZGVmYXVsdCB0byBlbmFibGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaWdub3JlUGF0aE1hdGNoZXIob3B0aW9ucz86IElnbm9yZVBhdHRlcm5PcHRpb25zKTogUGF0aE1hdGNoZXIge1xuICBjb25zdCBwcmVkaWNhdGVzID0gaWdub3JlTWF0Y2hQcmVkaWNhdGVzKG9wdGlvbnMpLmZsYXRNYXAoT2JqZWN0LnZhbHVlcyk7XG4gIHJldHVybiB0b1BhdGhNYXRjaGVyKC4uLnByZWRpY2F0ZXMpO1xufVxuIl19
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWdub3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2lnbm9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFFSCxPQUFPLEtBQUssWUFBWSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFpQixNQUFNLHdCQUF3QixDQUFDO0FBQzlFLE9BQU8sRUFBbUMsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQTRCMUUsNEVBQTRFO0FBQzVFLE1BQU0sd0JBQXdCLEdBQUcsb0JBQW9CLENBQUM7QUFFdEQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sNkJBQTZCLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7SUFDL0QsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVDLE9BQU8sUUFBUSxLQUFLLFNBQVMsSUFBSSxRQUFRLENBQUMsUUFBUSxLQUFLLHdCQUF3QixDQUFDO0FBQ2xGLENBQUMsQ0FBQyxDQUFDO0FBRUgsbUZBQW1GO0FBQ25GLFNBQVMseUJBQXlCLENBQUMsT0FBOEI7SUFDL0QsTUFBTSxLQUFLLEdBQUcsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFNLENBQUM7SUFDdEMsSUFBSSxLQUFLLEtBQUssTUFBTSxFQUFFLENBQUM7UUFDckIsT0FBTyw2QkFBNkIsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUyxlQUFlLENBQUMsUUFBMkI7SUFDbEQsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLGFB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RSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN2RSxJQUFJLE9BQU8sRUFBRSxHQUFHLElBQUksSUFBSTtRQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JFLElBQUkseUJBQXlCLENBQUMsT0FBTyxDQUFDO1FBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDcEYsT0FBTyxrQkFBa0IsQ0FBQztBQUM1QixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUE4QjtJQUMzRCxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQ3pGLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxPQUE4QjtJQUM5RCxNQUFNLFVBQVUsR0FBRyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pFLE9BQU8sYUFBYSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUM7QUFDdEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnVpbHQtaW4gaWdub3JlIGdsb2IgcGF0dGVybnMgZm9yIGZpbGUgc2Nhbm5pbmcgYW5kIHdhdGNoaW5nLlxuICpcbiAqIFRoaXMgbW9kdWxlIG93bnMgdGhlIHBhdHRlcm4gY2F0YWxvZyBhbmQgb3B0aW9uIHRvZ2dsZXMgb25seS4gRWFjaCBncm91cCBpc1xuICogY29tcGlsZWQgaW50byB7QGxpbmsgUGF0aE1hdGNoUHJlZGljYXRlfSBpbnN0YW5jZXMgdmlhIHtAbGluayB0b1BhdGhNYXRjaGVyfTtcbiAqIGNvbXBvc2l0aW9uIChgYW5kYC9gb3JgL2BuZWdhdGVgKSBsaXZlcyBpbiB7QGxpbmsgLi9tYXRjaH0uXG4gKlxuICogQ29uc3VtZXJzOlxuICogLSB7QGxpbmsgaWdub3JlUGF0dGVybnN9IC0geWllbGRzIHRoZSBlbmFibGVkIGdsb2Igc3RyaW5ncyAoZm9yIHByb2plblxuICogICBwcmV0dGllci9naXRpZ25vcmUpLiBQYXNzIGB7IHRlc3Q6IGZhbHNlIH1gIHRoZXJlOiB0aGUgYHRlc3RgIGdyb3VwIGlzIGZvclxuICogICBmaWxlc3lzdGVtIHNjYW5uaW5nIG9ubHkgKHNraXAgdGVzdCBkaXJzIHdoZW4gZGlzY292ZXJpbmcgcGFja2FnZXMgL1xuICogICB3YXRjaGluZyksIG5vdCBmb3IgVkNTIG9yIGZvcm1hdHRlciBpZ25vcmUgZmlsZXMuXG4gKiAtIHtAbGluayBpZ25vcmVQYXRoTWF0Y2hlcn0gLSByZXR1cm5zIGEgc2luZ2xlIHtAbGluayBQYXRoTWF0Y2hlcn0gZm9yXG4gKiAgIHtAbGluayBmaW5kRmlsZXN9IGFuZCB7QGxpbmsgd2F0Y2hGaWxlc30gKGtlZXBzIGB0ZXN0OiB0cnVlYCBieSBkZWZhdWx0KS5cbiAqXG4gKiBUaGlzIGlzIHRoZSByZXBvc2l0b3J5IG93bmVyIGZvciBnZW5lcmF0ZWQsIGRlcGVuZGVuY3ksIFZDUywgdGVtcG9yYXJ5LCB0ZXN0LFxuICogYW5kIGxvY2tmaWxlIGlnbm9yZSBwb2xpY3kuIEV4dGVuZCB0aGVzZSBncm91cHMgaW5zdGVhZCBvZiBjb3B5aW5nIGlnbm9yZVxuICogbGlzdHMgaW50byBpbmRpdmlkdWFsIGdlbmVyYXRvcnMgb3Igd2F0Y2hlcnMuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCAqIGFzIHByb2plY3RVdGlscyBmcm9tIFwiQGRieC10b29scy9jb3JlL3Byb2plY3QtdXRpbHNcIjtcbmltcG9ydCB7IGZ1bmN0aW9uVXRpbHMsIG9iamVjdCwgdHlwZSBTZXF1ZW5jZSB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyBQYXRoTWF0Y2hlciwgUGF0aE1hdGNoUHJlZGljYXRlLCB0b1BhdGhNYXRjaGVyIH0gZnJvbSBcIi4vbWF0Y2gudHNcIjtcbmltcG9ydCB7IGRpcmVjdG9yeU5hbWVQYXR0ZXJuLCBmaWxlRXh0ZW5zaW9uUGF0dGVybiB9IGZyb20gXCIuL3BhdHRlcm4udHNcIjtcblxuLyoqIFRvZ2dsZXMgZm9yIGVhY2ggYnVpbHQtaW4gaWdub3JlIGdyb3VwOyBvbWl0dGVkIGZsYWdzIGRlZmF1bHQgdG8gYHRydWVgLiAqL1xuZXhwb3J0IHR5cGUgSWdub3JlUGF0dGVybk9wdGlvbnMgPSB7XG4gIC8qKiBCdWlsZCBhcnRpZmFjdHMsIGRlcGVuZGVuY3kgZGlycywgY2FjaGVzLCBsb2dzLCBhbmQgT1MganVuayBmaWxlcy4gKi9cbiAgZGVmYXVsdHM/OiBib29sZWFuO1xuICAvKiogSGlkZGVuIGRvdC1maWxlcyBhbmQgZG90LWRpcmVjdG9yaWVzIChgLmdpdGAsIGAudnNjb2RlYCwgYC5naXRpZ25vcmVgLCBldGMuKS4gKi9cbiAgZG90PzogYm9vbGVhbjtcbiAgLyoqIFRlbXBvcmFyeSBkaXJlY3RvcmllcyAoYHRtcGAsIGAudG1wYCwgYHNjcmF0Y2hgLCBldGMuKS4gKi9cbiAgdGVtcD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUZXN0IGRpcmVjdG9yaWVzIGFuZCBgKi50ZXN0LipgIC8gYCouc3BlYy4qYCBuYW1pbmcgY29udmVudGlvbnMuXG4gICAqIFNjYW5uaW5nL3dhdGNoIGRlZmF1bHQgb247IG9taXQgKGBmYWxzZWApIHdoZW4gZW1pdHRpbmcgYC5naXRpZ25vcmVgIC9cbiAgICogYC5wcmV0dGllcmlnbm9yZWAgc28gdGVzdHMgc3RheSB0cmFja2VkIGFuZCBmb3JtYXRhYmxlLlxuICAgKi9cbiAgdGVzdD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBMb2NrZmlsZSBpZ25vcmUgZ3JvdXAgKGBwYWNrYWdlLWxvY2suanNvbmAsIGBwbnBtLWxvY2sueWFtbGAsIGB5YXJuLmxvY2tgLFxuICAgKiBgYnVuLmxvY2tiYCwgZXRjLikuXG4gICAqXG4gICAqIC0gYHRydWVgIC0gYWx3YXlzIGlnbm9yZSBsb2NrZmlsZXMuXG4gICAqIC0gYGZhbHNlYCAtIG5ldmVyIGlnbm9yZSBsb2NrZmlsZXMuXG4gICAqIC0gYFwiYXV0b1wiYCAoZGVmYXVsdCkgLSBpZ25vcmUgd2hlbiB0aGUgYWN0aXZlIG5wbSByZWdpc3RyeSBpcyBub3QgdGhlIHB1YmxpY1xuICAgKiAgIG5wbSByZWdpc3RyeSAoYHJlZ2lzdHJ5Lm5wbWpzLm9yZ2ApLCBlLmcuIGEgY29tcGFueS1pbnRlcm5hbCByZWdpc3RyeS5cbiAgICovXG4gIGxvY2s/OiBib29sZWFuIHwgXCJhdXRvXCI7XG59O1xuXG4vKiogSG9zdCBvZiB0aGUgcHVibGljIG5wbSByZWdpc3RyeTsgYW55dGhpbmcgZWxzZSBpcyB0cmVhdGVkIGFzIHByaXZhdGUuICovXG5jb25zdCBQVUJMSUNfTlBNX1JFR0lTVFJZX0hPU1QgPSBcInJlZ2lzdHJ5Lm5wbWpzLm9yZ1wiO1xuXG4vKipcbiAqIE1lbW9pemVkIHByb2JlIGZvciB7QGxpbmsgSWdub3JlUGF0dGVybk9wdGlvbnMubG9ja30gYFwiYXV0b1wiYC5cbiAqXG4gKiBSZXNvbHZlcyB0aGUgYWN0aXZlIHJlZ2lzdHJ5IHRocm91Z2ggYEBkYngtdG9vbHMvY29yZWAnc1xuICoge0BsaW5rIHByb2plY3QubnBtUmVnaXN0cnl9IGFuZCByZXR1cm5zIGB0cnVlYCB3aGVuIGl0IGlzIG5vdCB0aGUgcHVibGljIG5wbVxuICogcmVnaXN0cnkgLSBhIGxvY2tmaWxlIHByb2R1Y2VkIGFnYWluc3QgYSBwcml2YXRlIG1pcnJvciBwaW5zIFVSTHMgdGhhdCBvdGhlclxuICogbWFjaGluZXMgY2Fubm90IHJlYWNoLCBzbyBpdCBzaG91bGQgbm90IGJlIGNvbW1pdHRlZC5cbiAqL1xuY29uc3QgbG9ja0lnbm9yZU1hdGNoZXJzQXV0b0VuYWJsZWQgPSBmdW5jdGlvblV0aWxzLm1lbW9pemUoKCkgPT4ge1xuICBjb25zdCByZWdpc3RyeSA9IHByb2plY3RVdGlscy5ucG1SZWdpc3RyeSgpO1xuICByZXR1cm4gcmVnaXN0cnkgIT09IHVuZGVmaW5lZCAmJiByZWdpc3RyeS5ob3N0bmFtZSAhPT0gUFVCTElDX05QTV9SRUdJU1RSWV9IT1NUO1xufSk7XG5cbi8qKiBSZXNvbHZlcyB3aGV0aGVyIHRoZSBsb2NrZmlsZSBpZ25vcmUgZ3JvdXAgaXMgZW5hYmxlZCBmb3IgdGhlIGdpdmVuIG9wdGlvbnMuICovXG5mdW5jdGlvbiBsb2NrSWdub3JlTWF0Y2hlcnNFbmFibGVkKG9wdGlvbnM/OiBJZ25vcmVQYXR0ZXJuT3B0aW9ucyk6IGJvb2xlYW4ge1xuICBjb25zdCB2YWx1ZSA9IG9wdGlvbnM/LmxvY2sgPz8gXCJhdXRvXCI7XG4gIGlmICh2YWx1ZSA9PT0gXCJhdXRvXCIpIHtcbiAgICByZXR1cm4gbG9ja0lnbm9yZU1hdGNoZXJzQXV0b0VuYWJsZWQoKTtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG5cbi8qKlxuICogQ29tcGlsZXMgZ2xvYiBzdHJpbmdzIGludG8gYSBgeyBbZ2xvYl06IFBhdGhNYXRjaFByZWRpY2F0ZSB9YCBtYXAuXG4gKlxuICogS2V5aW5nIGJ5IHRoZSBzb3VyY2UgZ2xvYiBkZS1kdXBlcyBhbmQga2VlcHMgZWFjaCBtYXRjaGVyIGJlc2lkZSBpdHMgcGF0dGVybi5cbiAqL1xuZnVuY3Rpb24gY29tcGlsZU1hdGNoZXJzKHBhdHRlcm5zOiByZWFkb25seSBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFBhdGhNYXRjaFByZWRpY2F0ZT4ge1xuICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKHBhdHRlcm5zLm1hcCgoZ2xvYikgPT4gW2dsb2IsIHRvUGF0aE1hdGNoZXIoZ2xvYildKSk7XG59XG5cbi8qKiBCdWlsZCBhcnRpZmFjdHMsIGRlcGVuZGVuY3kgZGlyZWN0b3JpZXMsIGNhY2hlcywgbG9ncywgYW5kIE9TIGZpbGVzLiAqL1xuY29uc3QgZGVmYXVsdElnbm9yZU1hdGNoZXJzID0gY29tcGlsZU1hdGNoZXJzKFtcbiAgXCIqKi8uRFNfU3RvcmVcIixcbiAgXCIqKi9UaHVtYnMuZGJcIixcbiAgXCIqKi9EZXNrdG9wLmluaVwiLFxuICAuLi5bXCJsb2dcIiwgXCJ0c2J1aWxkaW5mb1wiXS5tYXAoKGV4dCkgPT4gZmlsZUV4dGVuc2lvblBhdHRlcm4oZXh0KSksXG4gIFwiKiovKi1kZWJ1Zy5sb2cqXCIsXG4gIFwiKioveWFybi1lcnJvci5sb2cqXCIsXG4gIC4uLltcbiAgICBcIm5vZGVfbW9kdWxlc1wiLFxuICAgIFwiYm93ZXJfY29tcG9uZW50c1wiLFxuICAgIFwianNwbV9wYWNrYWdlc1wiLFxuICAgIFwiZGlzdFwiLFxuICAgIFwibGliXCIsXG4gICAgXCJidWlsZFwiLFxuICAgIFwib3V0XCIsXG4gICAgXCJjb3ZlcmFnZVwiLFxuICAgIFwiLmNhY2hlXCIsXG4gICAgXCIucGFyY2VsLWNhY2hlXCIsXG4gICAgXCIudHVyYm9cIixcbiAgICBcIi5uZXh0XCIsXG4gICAgXCIubnV4dFwiLFxuICAgIFwiLnN2ZWx0ZS1raXRcIixcbiAgICBcIi5wbnBtLXN0b3JlXCIsXG4gICAgXCIubnljX291dHB1dFwiLFxuICBdLm1hcCgobmFtZSkgPT4gZGlyZWN0b3J5TmFtZVBhdHRlcm4obmFtZSkpLFxuXSk7XG5cbi8qKiBIaWRkZW4gZG90LWZpbGVzIGFuZCBkb3QtZGlyZWN0b3JpZXMgc3VjaCBhcyBgLmdpdGAsIGAudnNjb2RlYCwgYC5pZGVhYCwgZXRjLiAqL1xuY29uc3QgZG90SWdub3JlTWF0Y2hlcnMgPSBjb21waWxlTWF0Y2hlcnMoXG4gIFtcIi4qXCJdLmZsYXRNYXAoKGdsb2IpID0+IFtgKiovJHtnbG9ifWAsIGRpcmVjdG9yeU5hbWVQYXR0ZXJuKGdsb2IsIGZhbHNlKV0pLFxuKTtcblxuLyoqIFRlbXBvcmFyeSBkaXJlY3RvcmllcywgaW5jbHVkaW5nIGhpZGRlbiB2YXJpYW50cyAoYC50bXBgLCBldGMuKS4gKi9cbmNvbnN0IHRlbXBJZ25vcmVNYXRjaGVycyA9IGNvbXBpbGVNYXRjaGVycyhcbiAgW1widGVtcFwiLCBcInRtcFwiLCBcInRlbXBzXCIsIFwic2NyYXRjaFwiXVxuICAgIC5mbGF0TWFwKChuYW1lKSA9PiBbbmFtZSwgYC4ke25hbWV9YF0pXG4gICAgLm1hcCgobmFtZSkgPT4gZGlyZWN0b3J5TmFtZVBhdHRlcm4obmFtZSkpLFxuKTtcblxuLyoqIFRlc3QgZGlyZWN0b3JpZXMgYW5kIGNvbW1vbiB0ZXN0LWZpbGUgbmFtaW5nIGNvbnZlbnRpb25zLiAqL1xuY29uc3QgdGVzdElnbm9yZU1hdGNoZXJzID0gY29tcGlsZU1hdGNoZXJzKFtcbiAgLi4uW1widGVzdFwiLCBcInRlc3RzXCIsIFwiX190ZXN0c19fXCIsIFwiX19zbmFwc2hvdHNfX1wiXVxuICAgIC5mbGF0TWFwKChuYW1lKSA9PiBbbmFtZSwgYC4ke25hbWV9YF0pXG4gICAgLm1hcCgobmFtZSkgPT4gZGlyZWN0b3J5TmFtZVBhdHRlcm4obmFtZSkpLFxuICBcIioqLyoudGVzdC4qXCIsXG4gIFwiKiovKi5zcGVjLipcIixcbiAgXCIqKi90ZXN0LipcIixcbiAgXCIqKi9zcGVjLipcIixcbl0pO1xuXG4vKiogTG9ja2ZpbGVzIChgcGFja2FnZS1sb2NrLmpzb25gLCBgcG5wbS1sb2NrLnlhbWxgLCBgeWFybi5sb2NrYCwgYGJ1bi5sb2NrYmAsIOKApikuICovXG5jb25zdCBsb2NrSWdub3JlTWF0Y2hlcnMgPSBjb21waWxlTWF0Y2hlcnMoW1xuICBcIioqL2J1bi5sb2NrYlwiLFxuICAuLi5bXCJqc29uXCIsIFwieWFtbFwiLCBcInltbFwiXS5tYXAoKGV4dCkgPT4gYCoqLyotbG9jay4ke2V4dH1gKSxcbiAgLi4uW1wibG9ja1wiXS5tYXAoKGV4dCkgPT4gZmlsZUV4dGVuc2lvblBhdHRlcm4oZXh0KSksXG5dKTtcblxuLyoqXG4gKiBDb2xsZWN0cyB0aGUgcHJlLWNvbXBpbGVkIG1hdGNoZXIgbWFwcyBmb3IgZWFjaCBlbmFibGVkIGJ1aWx0LWluIGdyb3VwLlxuICpcbiAqIEdyb3VwIHRvZ2dsZXMgY29tZSBmcm9tIGBvcHRpb25zYDsgdGhlIGxvY2sgZ3JvdXAgYWxzbyByZXNwZWN0c1xuICoge0BsaW5rIGxvY2tJZ25vcmVNYXRjaGVyc0VuYWJsZWR9IChgbG9jazogXCJhdXRvXCJgIHByb2JlcyB0aGUgbnBtIHJlZ2lzdHJ5KS5cbiAqL1xuZnVuY3Rpb24gaWdub3JlTWF0Y2hQcmVkaWNhdGVzKFxuICBvcHRpb25zPzogSWdub3JlUGF0dGVybk9wdGlvbnMsXG4pOiBSZWNvcmQ8c3RyaW5nLCBQYXRoTWF0Y2hQcmVkaWNhdGU+W10ge1xuICBjb25zdCBpZ25vcmVNYXRjaFJlY29yZHM6IFJlY29yZDxzdHJpbmcsIFBhdGhNYXRjaFByZWRpY2F0ZT5bXSA9IFtdO1xuICBpZiAob3B0aW9ucz8uZGVmYXVsdHMgPz8gdHJ1ZSkgaWdub3JlTWF0Y2hSZWNvcmRzLnB1c2goZGVmYXVsdElnbm9yZU1hdGNoZXJzKTtcbiAgaWYgKG9wdGlvbnM/LnRlbXAgPz8gdHJ1ZSkgaWdub3JlTWF0Y2hSZWNvcmRzLnB1c2godGVtcElnbm9yZU1hdGNoZXJzKTtcbiAgaWYgKG9wdGlvbnM/LnRlc3QgPz8gdHJ1ZSkgaWdub3JlTWF0Y2hSZWNvcmRzLnB1c2godGVzdElnbm9yZU1hdGNoZXJzKTtcbiAgaWYgKG9wdGlvbnM/LmRvdCA/PyB0cnVlKSBpZ25vcmVNYXRjaFJlY29yZHMucHVzaChkb3RJZ25vcmVNYXRjaGVycyk7XG4gIGlmIChsb2NrSWdub3JlTWF0Y2hlcnNFbmFibGVkKG9wdGlvbnMpKSBpZ25vcmVNYXRjaFJlY29yZHMucHVzaChsb2NrSWdub3JlTWF0Y2hlcnMpO1xuICByZXR1cm4gaWdub3JlTWF0Y2hSZWNvcmRzO1xufVxuXG4vKipcbiAqIFlpZWxkcyB0aGUgZ2xvYiBzdHJpbmdzIGZvciBlYWNoIGVuYWJsZWQgYnVpbHQtaW4gaWdub3JlIGdyb3VwLlxuICpcbiAqIFVzZWZ1bCB3aGVuIGEgY29uc3VtZXIgbmVlZHMgbGl0ZXJhbCBwYXR0ZXJucyAoZS5nLiBwcm9qZW4gYC5naXRpZ25vcmVgIC9cbiAqIGAucHJldHRpZXJpZ25vcmVgKSByYXRoZXIgdGhhbiBhIGNvbXBpbGVkIHtAbGluayBQYXRoTWF0Y2hlcn0uIEZvciB0aG9zZVxuICogZmlsZSBlbWl0dGVycyBwYXNzIGB7IHRlc3Q6IGZhbHNlIH1gIC0gdGhlIHRlc3QgZ3JvdXAgYmVsb25ncyB0byBzY2FubmluZ1xuICogb25seSAoe0BsaW5rIGlnbm9yZVBhdGhNYXRjaGVyfSksIG5vdCBWQ1MvZm9ybWF0dGVyIGlnbm9yZXMuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBHcm91cCB0b2dnbGVzOyBvbWl0dGVkIGZsYWdzIGRlZmF1bHQgdG8gZW5hYmxlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlnbm9yZVBhdHRlcm5zKG9wdGlvbnM/OiBJZ25vcmVQYXR0ZXJuT3B0aW9ucyk6IFNlcXVlbmNlPHN0cmluZz4ge1xuICByZXR1cm4gb2JqZWN0LnNlcXVlbmNlKGlnbm9yZU1hdGNoUHJlZGljYXRlcyhvcHRpb25zKSkuZmxhdE1hcChPYmplY3Qua2V5cykuZGlzdGluY3QoKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEge0BsaW5rIFBhdGhNYXRjaGVyfSBmb3IgcGF0aHMgaWdub3JlZCBieSB0aGUgZW5hYmxlZCBidWlsdC1pbiBncm91cHMuXG4gKlxuICogTWF0Y2hlcnMgZm9yIGVhY2ggZ3JvdXAgYXJlIGNvbXBpbGVkIG9uY2UgYXQgbW9kdWxlIGxvYWQ7IGBvcHRpb25zYCBvbmx5XG4gKiBzZWxlY3RzIHdoaWNoIGdyb3VwcyBwYXJ0aWNpcGF0ZS4gVGhlIGxvY2sgZ3JvdXAgaXMgaW5jbHVkZWQgd2hlblxuICoge0BsaW5rIGxvY2tJZ25vcmVNYXRjaGVyc0VuYWJsZWR9IHJldHVybnMgYHRydWVgLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gR3JvdXAgdG9nZ2xlczsgb21pdHRlZCBmbGFncyBkZWZhdWx0IHRvIGVuYWJsZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpZ25vcmVQYXRoTWF0Y2hlcihvcHRpb25zPzogSWdub3JlUGF0dGVybk9wdGlvbnMpOiBQYXRoTWF0Y2hlciB7XG4gIGNvbnN0IHByZWRpY2F0ZXMgPSBpZ25vcmVNYXRjaFByZWRpY2F0ZXMob3B0aW9ucykuZmxhdE1hcChPYmplY3QudmFsdWVzKTtcbiAgcmV0dXJuIHRvUGF0aE1hdGNoZXIoLi4ucHJlZGljYXRlcyk7XG59XG4iXX0=
@@ -8,6 +8,7 @@
8
8
  * @module
9
9
  */
10
10
  import { type Predicate, type PredicateFunction } from "@dbx-tools/shared-core";
11
+ /** Plain path predicate accepted anywhere a glob pattern can be supplied. */
11
12
  export type PathMatchPredicate = PredicateFunction<string>;
12
13
  /** A composable path test (`true` == match). */
13
14
  export type PathMatcher = Predicate<string>;
package/lib/src/match.js CHANGED
@@ -45,4 +45,4 @@ if (import.meta.main) {
45
45
  console.log(matcher("packages/node/file-scan/src/cool.ts"));
46
46
  console.log(matcher("packages/node/file-scan/.src/cool.ts"));
47
47
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0Y2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBMEMsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQWFoRCxnRUFBZ0U7QUFDaEUsU0FBUyxNQUFNLENBQUMsT0FBdUI7SUFDckMsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNoQyxNQUFNLE9BQU8sR0FBRyxJQUFJLFNBQVMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN0RCxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQsZ0ZBQWdGO0FBQ2hGLE1BQU0sVUFBVSxjQUFjLENBQzVCLEdBQUcsTUFBc0Q7SUFFekQsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUNqRSxDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQzNCLEdBQUcsTUFBc0Q7SUFFekQsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7SUFDeEMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUM7UUFBRSxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0QsT0FBTyxLQUFLO1NBQ1QsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNSLE1BQU0sQ0FBYyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ25GLENBQUM7QUFFRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDOUMsTUFBTSxFQUFFO1NBQ1IsR0FBRyxDQUFDLEdBQUcsY0FBYyxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3JELE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLHFDQUFxQyxDQUFDLENBQUMsQ0FBQztJQUM1RCxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDLENBQUM7QUFDL0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUGF0aCBtYXRjaGluZyBhbmQgcHJlZGljYXRlIGNvbXBvc2l0aW9uIGZvciBmaWxlIHNjYW5uaW5nIGFuZCB3YXRjaGluZy5cbiAqXG4gKiB7QGxpbmsgdG9QYXRoTWF0Y2hlcn0gY29tcGlsZXMgZ2xvYnMgaW50byB7QGxpbmsgUHJlZGljYXRlfSB2YWx1ZXMgZnJvbVxuICogc2hhcmVkLWNvcmUgKGBhbmRgIC8gYG9yYCAvIGBuZWdhdGVgKSBmb3IgdXNlIGJ5IHtAbGluayBmaW5kRmlsZXN9IGFuZFxuICoge0BsaW5rIHdhdGNoRmlsZXN9LlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBvYmplY3QsIHByZWRpY2F0ZSwgdHlwZSBQcmVkaWNhdGUsIHR5cGUgUHJlZGljYXRlRnVuY3Rpb24gfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHsgTWluaW1hdGNoIH0gZnJvbSBcIm1pbmltYXRjaFwiO1xuaW1wb3J0IHsgaWdub3JlUGF0aE1hdGNoZXIgfSBmcm9tIFwiLi9pZ25vcmUudHNcIjtcblxuZXhwb3J0IHR5cGUgUGF0aE1hdGNoUHJlZGljYXRlID0gUHJlZGljYXRlRnVuY3Rpb248c3RyaW5nPjtcblxuLyoqIEEgY29tcG9zYWJsZSBwYXRoIHRlc3QgKGB0cnVlYCA9PSBtYXRjaCkuICovXG5leHBvcnQgdHlwZSBQYXRoTWF0Y2hlciA9IFByZWRpY2F0ZTxzdHJpbmc+O1xuXG4vKipcbiAqIEFueXRoaW5nIHtAbGluayB0b1BhdGhNYXRjaGVyfSBhY2NlcHRzOiBhIGdsb2Igc3RyaW5nIChjb21waWxlZCB3aXRoXG4gKiBgZG90OiB0cnVlYCksIG9yIGEgY3VzdG9tIGAocGF0aCkgPT4gYm9vbGVhbmAuXG4gKi9cbmV4cG9ydCB0eXBlIFBhdGhNYXRjaElucHV0ID0gUGF0aE1hdGNoUHJlZGljYXRlIHwgc3RyaW5nO1xuXG4vKiogTm9ybWFsaXplcyBhIHtAbGluayBQYXRoTWF0Y2hJbnB1dH0gdG8gYSBwbGFpbiBwYXRoIHRlc3QuICovXG5mdW5jdGlvbiB0b1Rlc3QocGF0dGVybjogUGF0aE1hdGNoSW5wdXQpOiBQYXRoTWF0Y2hQcmVkaWNhdGUge1xuICBpZiAodHlwZW9mIHBhdHRlcm4gPT09IFwic3RyaW5nXCIpIHtcbiAgICBjb25zdCBtYXRjaGVyID0gbmV3IE1pbmltYXRjaChwYXR0ZXJuLCB7IGRvdDogdHJ1ZSB9KTtcbiAgICByZXR1cm4gKHBhdGgpID0+IG1hdGNoZXIubWF0Y2gocGF0aCk7XG4gIH1cbiAgcmV0dXJuIHBhdHRlcm47XG59XG5cbi8qKiBDb21waWxlcyBwYXRoIG1hdGNoIGlucHV0cyB0byBwcmVkaWNhdGUgZnVuY3Rpb25zIGZvciBgLmFuZCgpYCAvIGAub3IoKWAuICovXG5leHBvcnQgZnVuY3Rpb24gcGF0aE1hdGNoVGVzdHMoXG4gIC4uLmlucHV0czogcmVhZG9ubHkgKFBhdGhNYXRjaElucHV0IHwgbnVsbCB8IHVuZGVmaW5lZClbXVxuKTogcmVhZG9ubHkgUGF0aE1hdGNoUHJlZGljYXRlW10ge1xuICByZXR1cm4gb2JqZWN0LnNlcXVlbmNlKGlucHV0cykubm9uTnVsbCgpLm1hcCh0b1Rlc3QpLnRvQXJyYXkoKTtcbn1cblxuLyoqXG4gKiBDb21iaW5lcyBvbmUgb3IgbW9yZSBwYXR0ZXJucyBpbnRvIGEgc2luZ2xlIHtAbGluayBQYXRoTWF0Y2hlcn0gKE9SJ2QpLlxuICogU3RyaW5ncyBhcmUgY29tcGlsZWQgd2l0aCBgZG90OiB0cnVlYDsgcHJlZGljYXRlcyBhcmUgdXNlZCBhcy1pcztcbiAqIGBudWxsYC9gdW5kZWZpbmVkYCBlbnRyaWVzIGFyZSBza2lwcGVkLiBXaXRoIG5vIG1hdGNoaW5nIHBhdHRlcm5zIHRoZSByZXN1bHRcbiAqIGFsd2F5cyByZXR1cm5zIGBmYWxzZWAuXG4gKlxuICogQHBhcmFtIHBhdHRlcm5zIC0gR2xvYnMgYW5kL29yIHByZWRpY2F0ZXMgdG8gT1IgdG9nZXRoZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1BhdGhNYXRjaGVyKFxuICAuLi5pbnB1dHM6IHJlYWRvbmx5IChQYXRoTWF0Y2hJbnB1dCB8IG51bGwgfCB1bmRlZmluZWQpW11cbik6IFBhdGhNYXRjaGVyIHtcbiAgY29uc3QgdGVzdHMgPSBwYXRoTWF0Y2hUZXN0cyguLi5pbnB1dHMpO1xuICBpZiAodGVzdHMubGVuZ3RoID09PSAwKSByZXR1cm4gcHJlZGljYXRlLmNyZWF0ZSgoKSA9PiBmYWxzZSk7XG4gIHJldHVybiB0ZXN0c1xuICAgIC5zbGljZSgxKVxuICAgIC5yZWR1Y2U8UGF0aE1hdGNoZXI+KChhY2MsIHRlc3QpID0+IGFjYy5vcih0ZXN0KSwgcHJlZGljYXRlLmNyZWF0ZSh0ZXN0c1swXSEpKTtcbn1cblxuaWYgKGltcG9ydC5tZXRhLm1haW4pIHtcbiAgY29uc3QgbWF0Y2hlciA9IGlnbm9yZVBhdGhNYXRjaGVyKHsgdGVzdDogdHJ1ZSB9KVxuICAgIC5uZWdhdGUoKVxuICAgIC5hbmQoLi4ucGF0aE1hdGNoVGVzdHMoXCIqKi9jb29sLnRzXCIsIFwiKiovd293LnRzXCIpKTtcbiAgY29uc29sZS5sb2cobWF0Y2hlcihcInBhY2thZ2VzL25vZGUvZmlsZS1zY2FuL3NyYy9jb29sLnRzXCIpKTtcbiAgY29uc29sZS5sb2cobWF0Y2hlcihcInBhY2thZ2VzL25vZGUvZmlsZS1zY2FuLy5zcmMvY29vbC50c1wiKSk7XG59XG4iXX0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0Y2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBMEMsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQWNoRCxnRUFBZ0U7QUFDaEUsU0FBUyxNQUFNLENBQUMsT0FBdUI7SUFDckMsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNoQyxNQUFNLE9BQU8sR0FBRyxJQUFJLFNBQVMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN0RCxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQsZ0ZBQWdGO0FBQ2hGLE1BQU0sVUFBVSxjQUFjLENBQzVCLEdBQUcsTUFBc0Q7SUFFekQsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUNqRSxDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQzNCLEdBQUcsTUFBc0Q7SUFFekQsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7SUFDeEMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUM7UUFBRSxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0QsT0FBTyxLQUFLO1NBQ1QsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNSLE1BQU0sQ0FBYyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ25GLENBQUM7QUFFRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDOUMsTUFBTSxFQUFFO1NBQ1IsR0FBRyxDQUFDLEdBQUcsY0FBYyxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3JELE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLHFDQUFxQyxDQUFDLENBQUMsQ0FBQztJQUM1RCxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDLENBQUM7QUFDL0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUGF0aCBtYXRjaGluZyBhbmQgcHJlZGljYXRlIGNvbXBvc2l0aW9uIGZvciBmaWxlIHNjYW5uaW5nIGFuZCB3YXRjaGluZy5cbiAqXG4gKiB7QGxpbmsgdG9QYXRoTWF0Y2hlcn0gY29tcGlsZXMgZ2xvYnMgaW50byB7QGxpbmsgUHJlZGljYXRlfSB2YWx1ZXMgZnJvbVxuICogc2hhcmVkLWNvcmUgKGBhbmRgIC8gYG9yYCAvIGBuZWdhdGVgKSBmb3IgdXNlIGJ5IHtAbGluayBmaW5kRmlsZXN9IGFuZFxuICoge0BsaW5rIHdhdGNoRmlsZXN9LlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBvYmplY3QsIHByZWRpY2F0ZSwgdHlwZSBQcmVkaWNhdGUsIHR5cGUgUHJlZGljYXRlRnVuY3Rpb24gfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHsgTWluaW1hdGNoIH0gZnJvbSBcIm1pbmltYXRjaFwiO1xuaW1wb3J0IHsgaWdub3JlUGF0aE1hdGNoZXIgfSBmcm9tIFwiLi9pZ25vcmUudHNcIjtcblxuLyoqIFBsYWluIHBhdGggcHJlZGljYXRlIGFjY2VwdGVkIGFueXdoZXJlIGEgZ2xvYiBwYXR0ZXJuIGNhbiBiZSBzdXBwbGllZC4gKi9cbmV4cG9ydCB0eXBlIFBhdGhNYXRjaFByZWRpY2F0ZSA9IFByZWRpY2F0ZUZ1bmN0aW9uPHN0cmluZz47XG5cbi8qKiBBIGNvbXBvc2FibGUgcGF0aCB0ZXN0IChgdHJ1ZWAgPT0gbWF0Y2gpLiAqL1xuZXhwb3J0IHR5cGUgUGF0aE1hdGNoZXIgPSBQcmVkaWNhdGU8c3RyaW5nPjtcblxuLyoqXG4gKiBBbnl0aGluZyB7QGxpbmsgdG9QYXRoTWF0Y2hlcn0gYWNjZXB0czogYSBnbG9iIHN0cmluZyAoY29tcGlsZWQgd2l0aFxuICogYGRvdDogdHJ1ZWApLCBvciBhIGN1c3RvbSBgKHBhdGgpID0+IGJvb2xlYW5gLlxuICovXG5leHBvcnQgdHlwZSBQYXRoTWF0Y2hJbnB1dCA9IFBhdGhNYXRjaFByZWRpY2F0ZSB8IHN0cmluZztcblxuLyoqIE5vcm1hbGl6ZXMgYSB7QGxpbmsgUGF0aE1hdGNoSW5wdXR9IHRvIGEgcGxhaW4gcGF0aCB0ZXN0LiAqL1xuZnVuY3Rpb24gdG9UZXN0KHBhdHRlcm46IFBhdGhNYXRjaElucHV0KTogUGF0aE1hdGNoUHJlZGljYXRlIHtcbiAgaWYgKHR5cGVvZiBwYXR0ZXJuID09PSBcInN0cmluZ1wiKSB7XG4gICAgY29uc3QgbWF0Y2hlciA9IG5ldyBNaW5pbWF0Y2gocGF0dGVybiwgeyBkb3Q6IHRydWUgfSk7XG4gICAgcmV0dXJuIChwYXRoKSA9PiBtYXRjaGVyLm1hdGNoKHBhdGgpO1xuICB9XG4gIHJldHVybiBwYXR0ZXJuO1xufVxuXG4vKiogQ29tcGlsZXMgcGF0aCBtYXRjaCBpbnB1dHMgdG8gcHJlZGljYXRlIGZ1bmN0aW9ucyBmb3IgYC5hbmQoKWAgLyBgLm9yKClgLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhdGhNYXRjaFRlc3RzKFxuICAuLi5pbnB1dHM6IHJlYWRvbmx5IChQYXRoTWF0Y2hJbnB1dCB8IG51bGwgfCB1bmRlZmluZWQpW11cbik6IHJlYWRvbmx5IFBhdGhNYXRjaFByZWRpY2F0ZVtdIHtcbiAgcmV0dXJuIG9iamVjdC5zZXF1ZW5jZShpbnB1dHMpLm5vbk51bGwoKS5tYXAodG9UZXN0KS50b0FycmF5KCk7XG59XG5cbi8qKlxuICogQ29tYmluZXMgb25lIG9yIG1vcmUgcGF0dGVybnMgaW50byBhIHNpbmdsZSB7QGxpbmsgUGF0aE1hdGNoZXJ9IChPUidkKS5cbiAqIFN0cmluZ3MgYXJlIGNvbXBpbGVkIHdpdGggYGRvdDogdHJ1ZWA7IHByZWRpY2F0ZXMgYXJlIHVzZWQgYXMtaXM7XG4gKiBgbnVsbGAvYHVuZGVmaW5lZGAgZW50cmllcyBhcmUgc2tpcHBlZC4gV2l0aCBubyBtYXRjaGluZyBwYXR0ZXJucyB0aGUgcmVzdWx0XG4gKiBhbHdheXMgcmV0dXJucyBgZmFsc2VgLlxuICpcbiAqIEBwYXJhbSBwYXR0ZXJucyAtIEdsb2JzIGFuZC9vciBwcmVkaWNhdGVzIHRvIE9SIHRvZ2V0aGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9QYXRoTWF0Y2hlcihcbiAgLi4uaW5wdXRzOiByZWFkb25seSAoUGF0aE1hdGNoSW5wdXQgfCBudWxsIHwgdW5kZWZpbmVkKVtdXG4pOiBQYXRoTWF0Y2hlciB7XG4gIGNvbnN0IHRlc3RzID0gcGF0aE1hdGNoVGVzdHMoLi4uaW5wdXRzKTtcbiAgaWYgKHRlc3RzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHByZWRpY2F0ZS5jcmVhdGUoKCkgPT4gZmFsc2UpO1xuICByZXR1cm4gdGVzdHNcbiAgICAuc2xpY2UoMSlcbiAgICAucmVkdWNlPFBhdGhNYXRjaGVyPigoYWNjLCB0ZXN0KSA9PiBhY2Mub3IodGVzdCksIHByZWRpY2F0ZS5jcmVhdGUodGVzdHNbMF0hKSk7XG59XG5cbmlmIChpbXBvcnQubWV0YS5tYWluKSB7XG4gIGNvbnN0IG1hdGNoZXIgPSBpZ25vcmVQYXRoTWF0Y2hlcih7IHRlc3Q6IHRydWUgfSlcbiAgICAubmVnYXRlKClcbiAgICAuYW5kKC4uLnBhdGhNYXRjaFRlc3RzKFwiKiovY29vbC50c1wiLCBcIioqL3dvdy50c1wiKSk7XG4gIGNvbnNvbGUubG9nKG1hdGNoZXIoXCJwYWNrYWdlcy9ub2RlL2ZpbGUtc2Nhbi9zcmMvY29vbC50c1wiKSk7XG4gIGNvbnNvbGUubG9nKG1hdGNoZXIoXCJwYWNrYWdlcy9ub2RlL2ZpbGUtc2Nhbi8uc3JjL2Nvb2wudHNcIikpO1xufVxuIl19
package/lib/src/scan.d.ts CHANGED
@@ -1,6 +1,17 @@
1
+ /**
2
+ * Shared scan options used by file discovery and watching.
3
+ *
4
+ * Reuse these types so path-based utilities agree on roots, ignore policy,
5
+ * symlink behavior, and cancellation rather than inventing parallel option
6
+ * shapes.
7
+ *
8
+ * @module
9
+ */
1
10
  import { IgnorePatternOptions } from "./ignore.ts";
2
11
  import { PathMatchInput } from "./match.ts";
12
+ /** Shared default used by file discovery and watching to avoid traversing symlinks. */
3
13
  export declare const FOLLOW_SYMLINKS_DEFAULT = false;
14
+ /** Common root, ignore, symlink, and cancellation settings for filesystem scans. */
4
15
  export interface FileScanOptions {
5
16
  /**
6
17
  * Base directory used to resolve relative paths.
package/lib/src/scan.js CHANGED
@@ -1,2 +1,12 @@
1
+ /**
2
+ * Shared scan options used by file discovery and watching.
3
+ *
4
+ * Reuse these types so path-based utilities agree on roots, ignore policy,
5
+ * symlink behavior, and cancellation rather than inventing parallel option
6
+ * shapes.
7
+ *
8
+ * @module
9
+ */
10
+ /** Shared default used by file discovery and watching to avoid traversing symlinks. */
1
11
  export const FOLLOW_SYMLINKS_DEFAULT = false;
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2FuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLEtBQUssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElnbm9yZVBhdHRlcm5PcHRpb25zIH0gZnJvbSBcIi4vaWdub3JlLnRzXCI7XG5pbXBvcnQgeyBQYXRoTWF0Y2hJbnB1dCB9IGZyb20gXCIuL21hdGNoLnRzXCI7XG5cbmV4cG9ydCBjb25zdCBGT0xMT1dfU1lNTElOS1NfREVGQVVMVCA9IGZhbHNlO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVTY2FuT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBCYXNlIGRpcmVjdG9yeSB1c2VkIHRvIHJlc29sdmUgcmVsYXRpdmUgcGF0aHMuXG4gICAqL1xuICBjd2Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElnbm9yZSBmaWxlcyBvciBkaXJlY3RvcmllcyBtYXRjaGluZyB0aGVzZSBwYXR0ZXJucyBvciBwcmVkaWNhdGVzLlxuICAgKi9cbiAgaWdub3JlPzogUGF0aE1hdGNoSW5wdXQgfCByZWFkb25seSBQYXRoTWF0Y2hJbnB1dFtdO1xuICBpZ25vcmVPcHRpb25zPzogRmlsZVNjYW5JZ25vcmVPcHRpb25zO1xuICAvKipcbiAgICogRm9sbG93IHN5bWJvbGljIGxpbmtzLlxuICAgKlxuICAgKiBNYXBzIHRvOlxuICAgKiAgIGdsb2I6IGZvbGxvd1xuICAgKiAgIGNob2tpZGFyOiBmb2xsb3dTeW1saW5rc1xuICAgKi9cbiAgZm9sbG93U3ltbGlua3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBYm9ydCBhbiBpbi1wcm9ncmVzcyBvcGVyYXRpb24uXG4gICAqXG4gICAqIElnbm9yZWQgYnkgY2hva2lkYXIgYWZ0ZXIgdGhlIHdhdGNoZXIgaGFzIGJlZW4gY3JlYXRlZC5cbiAgICovXG4gIHNpZ25hbD86IEFib3J0U2lnbmFsO1xufVxuXG4vKiogT3B0aW9ucyBjb250cm9sbGluZyB0aGUgZ2VuZXJhdGVkIGlnbm9yZSBwYXR0ZXJuIGxpc3QuICovXG5leHBvcnQgdHlwZSBGaWxlU2Nhbklnbm9yZU9wdGlvbnMgPSBJZ25vcmVQYXR0ZXJuT3B0aW9ucztcbiJdfQ==
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2FuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBS0gsdUZBQXVGO0FBQ3ZGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLEtBQUssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2hhcmVkIHNjYW4gb3B0aW9ucyB1c2VkIGJ5IGZpbGUgZGlzY292ZXJ5IGFuZCB3YXRjaGluZy5cbiAqXG4gKiBSZXVzZSB0aGVzZSB0eXBlcyBzbyBwYXRoLWJhc2VkIHV0aWxpdGllcyBhZ3JlZSBvbiByb290cywgaWdub3JlIHBvbGljeSxcbiAqIHN5bWxpbmsgYmVoYXZpb3IsIGFuZCBjYW5jZWxsYXRpb24gcmF0aGVyIHRoYW4gaW52ZW50aW5nIHBhcmFsbGVsIG9wdGlvblxuICogc2hhcGVzLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBJZ25vcmVQYXR0ZXJuT3B0aW9ucyB9IGZyb20gXCIuL2lnbm9yZS50c1wiO1xuaW1wb3J0IHsgUGF0aE1hdGNoSW5wdXQgfSBmcm9tIFwiLi9tYXRjaC50c1wiO1xuXG4vKiogU2hhcmVkIGRlZmF1bHQgdXNlZCBieSBmaWxlIGRpc2NvdmVyeSBhbmQgd2F0Y2hpbmcgdG8gYXZvaWQgdHJhdmVyc2luZyBzeW1saW5rcy4gKi9cbmV4cG9ydCBjb25zdCBGT0xMT1dfU1lNTElOS1NfREVGQVVMVCA9IGZhbHNlO1xuXG4vKiogQ29tbW9uIHJvb3QsIGlnbm9yZSwgc3ltbGluaywgYW5kIGNhbmNlbGxhdGlvbiBzZXR0aW5ncyBmb3IgZmlsZXN5c3RlbSBzY2Fucy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVNjYW5PcHRpb25zIHtcbiAgLyoqXG4gICAqIEJhc2UgZGlyZWN0b3J5IHVzZWQgdG8gcmVzb2x2ZSByZWxhdGl2ZSBwYXRocy5cbiAgICovXG4gIGN3ZD86IHN0cmluZztcblxuICAvKipcbiAgICogSWdub3JlIGZpbGVzIG9yIGRpcmVjdG9yaWVzIG1hdGNoaW5nIHRoZXNlIHBhdHRlcm5zIG9yIHByZWRpY2F0ZXMuXG4gICAqL1xuICBpZ25vcmU/OiBQYXRoTWF0Y2hJbnB1dCB8IHJlYWRvbmx5IFBhdGhNYXRjaElucHV0W107XG4gIGlnbm9yZU9wdGlvbnM/OiBGaWxlU2Nhbklnbm9yZU9wdGlvbnM7XG4gIC8qKlxuICAgKiBGb2xsb3cgc3ltYm9saWMgbGlua3MuXG4gICAqXG4gICAqIE1hcHMgdG86XG4gICAqICAgZ2xvYjogZm9sbG93XG4gICAqICAgY2hva2lkYXI6IGZvbGxvd1N5bWxpbmtzXG4gICAqL1xuICBmb2xsb3dTeW1saW5rcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFib3J0IGFuIGluLXByb2dyZXNzIG9wZXJhdGlvbi5cbiAgICpcbiAgICogSWdub3JlZCBieSBjaG9raWRhciBhZnRlciB0aGUgd2F0Y2hlciBoYXMgYmVlbiBjcmVhdGVkLlxuICAgKi9cbiAgc2lnbmFsPzogQWJvcnRTaWduYWw7XG59XG5cbi8qKiBPcHRpb25zIGNvbnRyb2xsaW5nIHRoZSBnZW5lcmF0ZWQgaWdub3JlIHBhdHRlcm4gbGlzdC4gKi9cbmV4cG9ydCB0eXBlIEZpbGVTY2FuSWdub3JlT3B0aW9ucyA9IElnbm9yZVBhdHRlcm5PcHRpb25zO1xuIl19
@@ -1,5 +1,16 @@
1
+ /**
2
+ * Repository-consistent file watching over Chokidar.
3
+ *
4
+ * Reuse `watchFiles()` when live workflows must match `findFiles()`
5
+ * discovery and the central ignore catalogue. The wrapper expands globs once,
6
+ * prunes ignored directories consistently, and preserves Chokidar's native
7
+ * watcher result for callers.
8
+ *
9
+ * @module
10
+ */
1
11
  import { ChokidarOptions, MatchFunction } from "chokidar";
2
12
  import { FileScanOptions } from "./scan.ts";
13
+ /** Chokidar options extended with the shared dbx-tools ignore configuration. */
3
14
  export interface FileWatchOptions extends Omit<ChokidarOptions, "ignored">, Omit<FileScanOptions, "ignore"> {
4
15
  ignore?: string | string[] | MatchFunction | MatchFunction[];
5
16
  }
package/lib/src/watch.js CHANGED
@@ -1,3 +1,13 @@
1
+ /**
2
+ * Repository-consistent file watching over Chokidar.
3
+ *
4
+ * Reuse `watchFiles()` when live workflows must match `findFiles()`
5
+ * discovery and the central ignore catalogue. The wrapper expands globs once,
6
+ * prunes ignored directories consistently, and preserves Chokidar's native
7
+ * watcher result for callers.
8
+ *
9
+ * @module
10
+ */
1
11
  import { isAbsolute, relative, resolve } from "path";
2
12
  import { watch } from "chokidar";
3
13
  import { hasMagic } from "glob";
@@ -132,4 +142,4 @@ if (import.meta.main) {
132
142
  });
133
143
  console.log("Watcher started");
134
144
  }
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2F0Y2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBa0MsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFFLFNBQVMsRUFBd0IsTUFBTSxXQUFXLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDNUMsT0FBTyxFQUEwQyx1QkFBdUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQVc1Rjs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBQyxLQUF3QixFQUFFLE9BQTBCO0lBQzdFLE1BQU0sVUFBVSxHQUFHLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxHQUFHLGVBQWUsRUFBRSxHQUFHLFVBQVUsQ0FBQztJQUN4RSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFekQsSUFBSSxVQUFvQixDQUFDO0lBQ3pCLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNyQixNQUFNLGtCQUFrQixHQUFHLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLEtBQUssTUFBTSxJQUFJLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDcEUsa0JBQWtCLENBQUMsR0FBRyxD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LE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDM0UsT0FBTyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0lBQzdDLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFFekMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLFdBQVcsRUFBRTtRQUN0QyxHQUFHO1FBQ0gsYUFBYSxFQUFFLEtBQUs7UUFDcEIsTUFBTSxFQUFFLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQztRQUNyQyxhQUFhLEVBQUU7WUFDYixJQUFJLEVBQUUsS0FBSztTQUNaO0tBQ0YsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFhLEVBQUUsSUFBWSxFQUFFLEVBQUU7UUFDaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGF0cyB9IGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgaXNBYnNvbHV0ZSwgcmVsYXRpdmUsIHJlc29sdmUgfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgQ2hva2lkYXJPcHRpb25zLCBNYXRjaEZ1bmN0aW9uLCB3YXRjaCB9IGZyb20gXCJjaG9raWRhclwiO1xuaW1wb3J0IHsgaGFzTWFnaWMgfSBmcm9tIFwiZ2xvYlwiO1xuaW1wb3J0IHsgZmluZEZpbGVzLCB0eXBlIEZpbGVGaW5kT3B0aW9ucyB9IGZyb20gXCIuL2ZpbmQudHNcIjtcbmltcG9ydCB7IGlnbm9yZVBhdGhNYXRjaGVyIH0gZnJvbSBcIi4vaWdub3JlLnRzXCI7XG5pbXBvcnQgeyBwYXRoTWF0Y2hUZXN0cyB9IGZyb20gXCIuL21hdGNoLnRzXCI7XG5pbXBvcnQgeyBGaWxlU2Nhbklnbm9yZU9wdGlvbnMsIEZpbGVTY2FuT3B0aW9ucywgRk9MTE9XX1NZTUxJTktTX0RFRkFVTFQgfSBmcm9tIFwiLi9zY2FuLnRzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVdhdGNoT3B0aW9uc1xuICBleHRlbmRzIE9taXQ8Q2hva2lkYXJPcHRpb25zLCBcImlnbm9yZWRcIj4sIE9taXQ8RmlsZVNjYW5PcHRpb25zLCBcImlnbm9yZVwiPiB7XG4gIGlnbm9yZT86IHN0cmluZyB8IHN0cmluZ1tdIHwgTWF0Y2hGdW5jdGlvbiB8IE1hdGNoRnVuY3Rpb25bXTtcbn1cblxuaW50ZXJmYWNlIE5vcm1hbGl6ZWRGaWxlV2F0Y2hPcHRpb25zIGV4dGVuZHMgT21pdDxGaWxlV2F0Y2hPcHRpb25zLCBcImlnbm9yZVwiIHwgXCJpZ25vcmVPcHRpb25zXCI+IHtcbiAgaWdub3JlZDogTWF0Y2hGdW5jdGlvbjtcbn1cblxuLyoqXG4gKiBXYXRjaGVzIGZpbGVzIGFuZCBkaXJlY3RvcmllcyBmb3IgcmVhbC10aW1lIGNoYW5nZXMsIGFwcGx5aW5nIHRoZSBzaGFyZWRcbiAqIGlnbm9yZSBncm91cHMgc28gaXQgcHJ1bmVzIHRoZSBzYW1lIHBhdGhzIHtAbGluayBmaW5kRmlsZXN9IHNraXBzIGZvciB0aGVcbiAqIHNhbWUgcGF0dGVybnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3YXRjaEZpbGVzKHBhdGhzOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3B0aW9ucz86IEZpbGVXYXRjaE9wdGlvbnMpIHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IHRvTm9ybWFsaXplZEZpbGVXYXRjaE9wdGlvbnMob3B0aW9ucyk7XG4gIGNvbnN0IHsgaWdub3JlZCwgY3dkLCBmb2xsb3dTeW1saW5rcywgLi4uY2hva2lkYXJPcHRpb25zIH0gPSBub3JtYWxpemVkO1xuICBjb25zdCB7IHBhdGhzOiBsaXRlcmFscywgZ2xvYnMgfSA9IHBhcnRpdGlvblBhdGhzKHBhdGhzKTtcblxuICBsZXQgd2F0Y2hQYXRoczogc3RyaW5nW107XG4gIGlmIChnbG9icy5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgZGlzdGluY3RXYXRjaFBhdGhzID0gbmV3IFNldChsaXRlcmFscyk7XG4gICAgZm9yIChjb25zdCBwYXRoIG9mIGZpbmRGaWxlcyhnbG9icywgdG9GaW5kRmlsZXNPcHRpb25zKG5vcm1hbGl6ZWQpKSkge1xuICAgICAgZGlzdGluY3RXYXRjaFBhdGhzLmFkZChwYXRoKTtcbiAgICB9XG4gICAgd2F0Y2hQYXRocyA9IFsuLi5kaXN0aW5jdFdhdGNoUGF0aHNdO1xuICB9IGVsc2Uge1xuICAgIHdhdGNoUGF0aHMgPSBsaXRlcmFscztcbiAgfVxuXG4gIHJldHVybiB3YXRjaCh3YXRjaFBhdGhzLCB7XG4gICAgLi4uY2hva2lkYXJPcHRpb25zLFxuICAgIGN3ZCxcbiAgICBmb2xsb3dTeW1saW5rcyxcbiAgICBpZ25vcmVkLFxuICB9KTtcbn1cblxuZnVuY3Rpb24gcGFydGl0aW9uUGF0aHMocGF0aHM6IHN0cmluZyB8IHN0cmluZ1tdKTogeyBwYXRoczogc3RyaW5nW107IGdsb2JzOiBzdHJpbmdbXSB9IHtcbiAgY29uc3QgZ2xvYnM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IGxpdGVyYWxzOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IHBhdGggb2YgQXJyYXkuaXNBcnJheShwYXRocykgPyBwYXRocyA6IFtwYXRoc10pIHtcbiAgICAoaGFzTWFnaWMocGF0aCkgPyBnbG9icyA6IGxpdGVyYWxzKS5wdXNoKHBhdGgpO1xuICB9XG4gIHJldHVybiB7IHBhdGhzOiBsaXRlcmFscywgZ2xvYnMgfTtcbn1cblxuLyoqXG4gKiBCdWlsZHMge0BsaW5rIE5vcm1hbGl6ZWRGaWxlV2F0Y2hPcHRpb25zfSBmaXJzdDogYWxsIGNhbGxlciBpZ25vcmUgaW5wdXRzIGFuZFxuICogYnVpbHQtaW4gZ3JvdXBzIGFyZSBjb25zb2xpZGF0ZWQgaW50byBvbmUgY2hva2lkYXIge0BsaW5rIE1hdGNoRnVuY3Rpb259LiBXaGVuXG4gKiBgc3RhdHNgIG1hcmtzIGEgZGlyZWN0b3J5LCB0aGUgbWF0Y2hlciBhbHNvIHRlc3RzIGBwYXRoICsgXCIvXCJgIGZvciBwcnVuaW5nLlxuICovXG5mdW5jdGlvbiB0b05vcm1hbGl6ZWRGaWxlV2F0Y2hPcHRpb25zKG9wdGlvbnM/OiBGaWxlV2F0Y2hPcHRpb25zKTogTm9ybWFsaXplZEZpbGVXYXRjaE9wdGlvbnMgJiB7XG4gIGN3ZDogc3RyaW5nO1xuICBmb2xsb3dTeW1saW5rczogYm9vbGVhbjtcbn0ge1xuICBjb25zdCB7IGN3ZCwgaWdub3JlLCBmb2xsb3dTeW1saW5rcywgaWdub3JlT3B0aW9ucywgLi4uY2hva2lkYXJPcHRpb25zIH0gPSBvcHRpb25zID8/IHt9O1xuICByZXR1cm4ge1xuICAgIC4uLmNob2tpZGFyT3B0aW9ucyxcbiAgICBjd2Q6IGN3ZCA/PyBwcm9jZXNzLmN3ZCgpLFxuICAgIGZvbGxvd1N5bWxpbmtzOiBmb2xsb3dTeW1saW5rcyA/PyBGT0xMT1dfU1lNTElOS1NfREVGQVVMVCxcbiAgICBpZ25vcmVkOiB0b1dhdGNoTWF0Y2hGdW5jdGlvbihpZ25vcmUsIGlnbm9yZU9wdGlvbnMsIGN3ZCA/PyBwcm9jZXNzLmN3ZCgpKSxcbiAgfTtcbn1cblxuLyoqIEdsb2IgZXhwYW5zaW9uIHJldXNlcyB0aGUgbm9ybWFsaXplZCBpZ25vcmUgbWF0Y2hlciBhcyBhIGN3ZC1yZWxhdGl2ZSBwYXRoIHByZWRpY2F0ZS4gKi9cbmZ1bmN0aW9uIHRvRmluZEZpbGVzT3B0aW9ucyhcbiAgbm9ybWFsaXplZDogTm9ybWFsaXplZEZpbGVXYXRjaE9wdGlvbnMgJiB7IGN3ZDogc3RyaW5nOyBmb2xsb3dTeW1saW5rczogYm9vbGVhbiB9LFxuKTogRmlsZUZpbmRPcHRpb25zIHtcbiAgY29uc3QgeyBpZ25vcmVkLCBjd2QsIGZvbGxvd1N5bWxpbmtzIH0gPSBub3JtYWxpemVkO1xuICByZXR1cm4ge1xuICAgIGN3ZCxcbiAgICBmb2xsb3dTeW1saW5rcyxcbiAgICBpZ25vcmU6IChwYXRoKSA9PiBpZ25vcmVkKHBhdGgsIHVuZGVmaW5lZCksXG4gIH07XG59XG5cbi8qKlxuICogQ29uc29saWRhdGVzIGJ1aWx0LWluIGlnbm9yZSBncm91cHMsIGNhbGxlciBnbG9iIHBhdHRlcm5zLCBhbmQgY2FsbGVyXG4gKiB7QGxpbmsgTWF0Y2hGdW5jdGlvbn1zIGludG8gb25lIGlnbm9yZSB0ZXN0LiBEaXJlY3RvcnkgcHJ1bmluZyB1c2VzIGBzdGF0c2BcbiAqIHdoZW4gY2hva2lkYXIgc3VwcGxpZXMgaXQ7IGdsb2IgZXhwYW5zaW9uIHBhc3NlcyBgdW5kZWZpbmVkYC5cbiAqL1xuZnVuY3Rpb24gdG9XYXRjaE1hdGNoRnVuY3Rpb24oXG4gIGlnbm9yZTogRmlsZVdhdGNoT3B0aW9uc1tcImlnbm9yZVwiXSB8IHVuZGVmaW5lZCxcbiAgaWdub3JlT3B0aW9uczogRmlsZVNjYW5JZ25vcmVPcHRpb25zIHwgdW5kZWZpbmVkLFxuICBjd2Q6IHN0cmluZyxcbik6IE1hdGNoRnVuY3Rpb24ge1xuICBjb25zdCBwYXR0ZXJuczogc3RyaW5nW10gPSBbXTtcbiAgY29uc3QgZnVuY3Rpb25zOiBNYXRjaEZ1bmN0aW9uW10gPSBbXTtcblxuICBpZiAoaWdub3JlICE9PSB1bmRlZmluZWQpIHtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgQXJyYXkuaXNBcnJheShpZ25vcmUpID8gaWdub3JlIDogW2lnbm9yZV0pIHtcbiAgICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gXCJzdHJpbmdcIikgcGF0dGVybnMucHVzaChpdGVtKTtcbiAgICAgIGVsc2UgZnVuY3Rpb25zLnB1c2goaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgbGV0IG1hdGNoZXIgPSBpZ25vcmVQYXRoTWF0Y2hlcihpZ25vcmVPcHRpb25zKTtcbiAgaWYgKHBhdHRlcm5zLmxlbmd0aCA+IDApIG1hdGNoZXIgPSBtYXRjaGVyLm9yKC4uLnBhdGhNYXRjaFRlc3RzKC4uLnBhdHRlcm5zKSk7XG5cbiAgY29uc3QgbWF0Y2hQYXRoID0gKHBhdGg6IHN0cmluZywgc3RhdHM/OiBTdGF0cyk6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IHJlbCA9IHRvQ3dkUmVsYXRpdmVQYXRoKHBhdGgsIGN3ZCk7XG4gICAgaWYgKG1hdGNoZXIocmVsKSkgcmV0dXJuIHRydWU7XG4gICAgZm9yIChjb25zdCBmbiBvZiBmdW5jdGlvbnMpIHtcbiAgICAgIGlmIChmbihyZWwsIHN0YXRzKSkgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChzdGF0cz8uaXNEaXJlY3RvcnkoKSkge1xuICAgICAgY29uc3QgZGlyZWN0b3J5UGF0aCA9IHJlbCArIFwiL1wiO1xuICAgICAgaWYgKG1hdGNoZXIoZGlyZWN0b3J5UGF0aCkpIHJldHVybiB0cnVlO1xuICAgICAgZm9yIChjb25zdCBmbiBvZiBmdW5jdGlvbnMpIHtcbiAgICAgICAgaWYgKGZuKGRpcmVjdG9yeVBhdGgsIHN0YXRzKSkgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfTtcblxuICByZXR1cm4gbWF0Y2hQYXRoO1xufVxuXG4vKiogQWxpZ25zIGNob2tpZGFyIHBhdGhzIHdpdGggdGhlIGN3ZC1yZWxhdGl2ZSBmb3JtIHtAbGluayBmaW5kRmlsZXN9IHVzZXMuICovXG5mdW5jdGlvbiB0b0N3ZFJlbGF0aXZlUGF0aChwYXRoOiBzdHJpbmcsIGN3ZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCFpc0Fic29sdXRlKHBhdGgpKSByZXR1cm4gcGF0aDtcbiAgY29uc3QgcmVsID0gcmVsYXRpdmUoY3dkLCBwYXRoKTtcbiAgcmV0dXJuIHJlbCA9PT0gXCJcIiA/IFwiLlwiIDogcmVsO1xufVxuXG4vLyBNYW51YWwgZGVtbzogcnVuIHRoaXMgZmlsZSBkaXJlY3RseSAoYGJ1biBzcmMvd2F0Y2gudHMgW2Rpcl1gKSB0byB3YXRjaCBhIHRyZWVcbi8vIGFuZCBsb2cgZXZlcnkgZmlsZSBldmVudCBhcyBpdCBoYXBwZW5zLiBEZWZhdWx0cyB0byB0aGlzIHBhY2thZ2UuXG5pZiAoaW1wb3J0Lm1ldGEubWFpbikge1xuICBjb25zdCBjd2QgPSByZXNvbHZlKHByb2Nlc3MuYXJndlsyXSA/PyByZXNvbHZlKGltcG9ydC5tZXRhLmRpcm5hbWUsIFwiLi5cIikpO1xuICBjb25zb2xlLmxvZyhcIi0tLSBTdGFydGluZyBGaWxlIFdhdGNoZXIgLS0tXCIpO1xuICBjb25zb2xlLmxvZyhgV29ya2luZyBEaXJlY3Rvcnk6ICR7Y3dkfWApO1xuXG4gIGNvbnN0IHdhdGNoZXIgPSB3YXRjaEZpbGVzKFwiKiovc3JjLyoqXCIsIHtcbiAgICBjd2QsXG4gICAgaWdub3JlSW5pdGlhbDogZmFsc2UsXG4gICAgaWdub3JlOiBbXCIqKi9pbmRleC50c1wiLCBcIioqL2NvcmUvKipcIl0sXG4gICAgaWdub3JlT3B0aW9uczoge1xuICAgICAgdGVtcDogZmFsc2UsXG4gICAgfSxcbiAgfSk7XG4gIHdhdGNoZXIub24oXCJhbGxcIiwgKGV2ZW50OiBzdHJpbmcsIHBhdGg6IHN0cmluZykgPT4ge1xuICAgIGNvbnNvbGUubG9nKGBbJHtldmVudC50b1VwcGVyQ2FzZSgpfV0gJHtwYXRofWApO1xuICB9KTtcbiAgd2F0Y2hlci5vbihcImVycm9yXCIsIChlcnJvcikgPT4ge1xuICAgIGNvbnNvbGUuZXJyb3IoXCJXYXRjaGVyIGVycm9yOlwiLCBlcnJvcik7XG4gIH0pO1xuICBjb25zb2xlLmxvZyhcIldhdGNoZXIgc3RhcnRlZFwiKTtcbn1cbiJdfQ==
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2F0Y2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7OztHQVNHO0FBR0gsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBa0MsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFFLFNBQVMsRUFBd0IsTUFBTSxXQUFXLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDNUMsT0FBTyxFQUEwQyx1QkFBdUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQVk1Rjs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBQyxLQUF3QixFQUFFLE9BQTBCO0lBQzdFLE1BQU0sVUFBVSxHQUFHLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxHQUFHLGVBQWUsRUFBRSxHQUFHLFVBQVUsQ0FBQztJQUN4RSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFekQsSUFBSSxVQUFvQixDQUFDO0lBQ3pCLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNyQixNQUFNLGtCQUFrQixHQUFHLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLEtBQUssTUFBTSxJQUFJLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDcEUs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QUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDM0UsT0FBTyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0lBQzdDLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFFekMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLFdBQVcsRUFBRTtRQUN0QyxHQUFHO1FBQ0gsYUFBYSxFQUFFLEtBQUs7UUFDcEIsTUFBTSxFQUFFLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQztRQUNyQyxhQUFhLEVBQUU7WUFDYixJQUFJLEVBQUUsS0FBSztTQUNaO0tBQ0YsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFhLEVBQUUsSUFBWSxFQUFFLEVBQUU7UUFDaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlcG9zaXRvcnktY29uc2lzdGVudCBmaWxlIHdhdGNoaW5nIG92ZXIgQ2hva2lkYXIuXG4gKlxuICogUmV1c2UgYHdhdGNoRmlsZXMoKWAgd2hlbiBsaXZlIHdvcmtmbG93cyBtdXN0IG1hdGNoIGBmaW5kRmlsZXMoKWBcbiAqIGRpc2NvdmVyeSBhbmQgdGhlIGNlbnRyYWwgaWdub3JlIGNhdGFsb2d1ZS4gVGhlIHdyYXBwZXIgZXhwYW5kcyBnbG9icyBvbmNlLFxuICogcHJ1bmVzIGlnbm9yZWQgZGlyZWN0b3JpZXMgY29uc2lzdGVudGx5LCBhbmQgcHJlc2VydmVzIENob2tpZGFyJ3MgbmF0aXZlXG4gKiB3YXRjaGVyIHJlc3VsdCBmb3IgY2FsbGVycy5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgU3RhdHMgfSBmcm9tIFwiZnNcIjtcbmltcG9ydCB7IGlzQWJzb2x1dGUsIHJlbGF0aXZlLCByZXNvbHZlIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IENob2tpZGFyT3B0aW9ucywgTWF0Y2hGdW5jdGlvbiwgd2F0Y2ggfSBmcm9tIFwiY2hva2lkYXJcIjtcbmltcG9ydCB7IGhhc01hZ2ljIH0gZnJvbSBcImdsb2JcIjtcbmltcG9ydCB7IGZpbmRGaWxlcywgdHlwZSBGaWxlRmluZE9wdGlvbnMgfSBmcm9tIFwiLi9maW5kLnRzXCI7XG5pbXBvcnQgeyBpZ25vcmVQYXRoTWF0Y2hlciB9IGZyb20gXCIuL2lnbm9yZS50c1wiO1xuaW1wb3J0IHsgcGF0aE1hdGNoVGVzdHMgfSBmcm9tIFwiLi9tYXRjaC50c1wiO1xuaW1wb3J0IHsgRmlsZVNjYW5JZ25vcmVPcHRpb25zLCBGaWxlU2Nhbk9wdGlvbnMsIEZPTExPV19TWU1MSU5LU19ERUZBVUxUIH0gZnJvbSBcIi4vc2Nhbi50c1wiO1xuXG4vKiogQ2hva2lkYXIgb3B0aW9ucyBleHRlbmRlZCB3aXRoIHRoZSBzaGFyZWQgZGJ4LXRvb2xzIGlnbm9yZSBjb25maWd1cmF0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWxlV2F0Y2hPcHRpb25zXG4gIGV4dGVuZHMgT21pdDxDaG9raWRhck9wdGlvbnMsIFwiaWdub3JlZFwiPiwgT21pdDxGaWxlU2Nhbk9wdGlvbnMsIFwiaWdub3JlXCI+IHtcbiAgaWdub3JlPzogc3RyaW5nIHwgc3RyaW5nW10gfCBNYXRjaEZ1bmN0aW9uIHwgTWF0Y2hGdW5jdGlvbltdO1xufVxuXG5pbnRlcmZhY2UgTm9ybWFsaXplZEZpbGVXYXRjaE9wdGlvbnMgZXh0ZW5kcyBPbWl0PEZpbGVXYXRjaE9wdGlvbnMsIFwiaWdub3JlXCIgfCBcImlnbm9yZU9wdGlvbnNcIj4ge1xuICBpZ25vcmVkOiBNYXRjaEZ1bmN0aW9uO1xufVxuXG4vKipcbiAqIFdhdGNoZXMgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIGZvciByZWFsLXRpbWUgY2hhbmdlcywgYXBwbHlpbmcgdGhlIHNoYXJlZFxuICogaWdub3JlIGdyb3VwcyBzbyBpdCBwcnVuZXMgdGhlIHNhbWUgcGF0aHMge0BsaW5rIGZpbmRGaWxlc30gc2tpcHMgZm9yIHRoZVxuICogc2FtZSBwYXR0ZXJucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdhdGNoRmlsZXMocGF0aHM6IHN0cmluZyB8IHN0cmluZ1tdLCBvcHRpb25zPzogRmlsZVdhdGNoT3B0aW9ucykge1xuICBjb25zdCBub3JtYWxpemVkID0gdG9Ob3JtYWxpemVkRmlsZVdhdGNoT3B0aW9ucyhvcHRpb25zKTtcbiAgY29uc3QgeyBpZ25vcmVkLCBjd2QsIGZvbGxvd1N5bWxpbmtzLCAuLi5jaG9raWRhck9wdGlvbnMgfSA9IG5vcm1hbGl6ZWQ7XG4gIGNvbnN0IHsgcGF0aHM6IGxpdGVyYWxzLCBnbG9icyB9ID0gcGFydGl0aW9uUGF0aHMocGF0aHMpO1xuXG4gIGxldCB3YXRjaFBhdGhzOiBzdHJpbmdbXTtcbiAgaWYgKGdsb2JzLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBkaXN0aW5jdFdhdGNoUGF0aHMgPSBuZXcgU2V0KGxpdGVyYWxzKTtcbiAgICBmb3IgKGNvbnN0IHBhdGggb2YgZmluZEZpbGVzKGdsb2JzLCB0b0ZpbmRGaWxlc09wdGlvbnMobm9ybWFsaXplZCkpKSB7XG4gICAgICBkaXN0aW5jdFdhdGNoUGF0aHMuYWRkKHBhdGgpO1xuICAgIH1cbiAgICB3YXRjaFBhdGhzID0gWy4uLmRpc3RpbmN0V2F0Y2hQYXRoc107XG4gIH0gZWxzZSB7XG4gICAgd2F0Y2hQYXRocyA9IGxpdGVyYWxzO1xuICB9XG5cbiAgcmV0dXJuIHdhdGNoKHdhdGNoUGF0aHMsIHtcbiAgICAuLi5jaG9raWRhck9wdGlvbnMsXG4gICAgY3dkLFxuICAgIGZvbGxvd1N5bWxpbmtzLFxuICAgIGlnbm9yZWQsXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBwYXJ0aXRpb25QYXRocyhwYXRoczogc3RyaW5nIHwgc3RyaW5nW10pOiB7IHBhdGhzOiBzdHJpbmdbXTsgZ2xvYnM6IHN0cmluZ1tdIH0ge1xuICBjb25zdCBnbG9iczogc3RyaW5nW10gPSBbXTtcbiAgY29uc3QgbGl0ZXJhbHM6IHN0cmluZ1tdID0gW107XG4gIGZvciAoY29uc3QgcGF0aCBvZiBBcnJheS5pc0FycmF5KHBhdGhzKSA/IHBhdGhzIDogW3BhdGhzXSkge1xuICAgIChoYXNNYWdpYyhwYXRoKSA/IGdsb2JzIDogbGl0ZXJhbHMpLnB1c2gocGF0aCk7XG4gIH1cbiAgcmV0dXJuIHsgcGF0aHM6IGxpdGVyYWxzLCBnbG9icyB9O1xufVxuXG4vKipcbiAqIEJ1aWxkcyB7QGxpbmsgTm9ybWFsaXplZEZpbGVXYXRjaE9wdGlvbnN9IGZpcnN0OiBhbGwgY2FsbGVyIGlnbm9yZSBpbnB1dHMgYW5kXG4gKiBidWlsdC1pbiBncm91cHMgYXJlIGNvbnNvbGlkYXRlZCBpbnRvIG9uZSBjaG9raWRhciB7QGxpbmsgTWF0Y2hGdW5jdGlvbn0uIFdoZW5cbiAqIGBzdGF0c2AgbWFya3MgYSBkaXJlY3RvcnksIHRoZSBtYXRjaGVyIGFsc28gdGVzdHMgYHBhdGggKyBcIi9cImAgZm9yIHBydW5pbmcuXG4gKi9cbmZ1bmN0aW9uIHRvTm9ybWFsaXplZEZpbGVXYXRjaE9wdGlvbnMob3B0aW9ucz86IEZpbGVXYXRjaE9wdGlvbnMpOiBOb3JtYWxpemVkRmlsZVdhdGNoT3B0aW9ucyAmIHtcbiAgY3dkOiBzdHJpbmc7XG4gIGZvbGxvd1N5bWxpbmtzOiBib29sZWFuO1xufSB7XG4gIGNvbnN0IHsgY3dkLCBpZ25vcmUsIGZvbGxvd1N5bWxpbmtzLCBpZ25vcmVPcHRpb25zLCAuLi5jaG9raWRhck9wdGlvbnMgfSA9IG9wdGlvbnMgPz8ge307XG4gIHJldHVybiB7XG4gICAgLi4uY2hva2lkYXJPcHRpb25zLFxuICAgIGN3ZDogY3dkID8/IHByb2Nlc3MuY3dkKCksXG4gICAgZm9sbG93U3ltbGlua3M6IGZvbGxvd1N5bWxpbmtzID8/IEZPTExPV19TWU1MSU5LU19ERUZBVUxULFxuICAgIGlnbm9yZWQ6IHRvV2F0Y2hNYXRjaEZ1bmN0aW9uKGlnbm9yZSwgaWdub3JlT3B0aW9ucywgY3dkID8/IHByb2Nlc3MuY3dkKCkpLFxuICB9O1xufVxuXG4vKiogR2xvYiBleHBhbnNpb24gcmV1c2VzIHRoZSBub3JtYWxpemVkIGlnbm9yZSBtYXRjaGVyIGFzIGEgY3dkLXJlbGF0aXZlIHBhdGggcHJlZGljYXRlLiAqL1xuZnVuY3Rpb24gdG9GaW5kRmlsZXNPcHRpb25zKFxuICBub3JtYWxpemVkOiBOb3JtYWxpemVkRmlsZVdhdGNoT3B0aW9ucyAmIHsgY3dkOiBzdHJpbmc7IGZvbGxvd1N5bWxpbmtzOiBib29sZWFuIH0sXG4pOiBGaWxlRmluZE9wdGlvbnMge1xuICBjb25zdCB7IGlnbm9yZWQsIGN3ZCwgZm9sbG93U3ltbGlua3MgfSA9IG5vcm1hbGl6ZWQ7XG4gIHJldHVybiB7XG4gICAgY3dkLFxuICAgIGZvbGxvd1N5bWxpbmtzLFxuICAgIGlnbm9yZTogKHBhdGgpID0+IGlnbm9yZWQocGF0aCwgdW5kZWZpbmVkKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBDb25zb2xpZGF0ZXMgYnVpbHQtaW4gaWdub3JlIGdyb3VwcywgY2FsbGVyIGdsb2IgcGF0dGVybnMsIGFuZCBjYWxsZXJcbiAqIHtAbGluayBNYXRjaEZ1bmN0aW9ufXMgaW50byBvbmUgaWdub3JlIHRlc3QuIERpcmVjdG9yeSBwcnVuaW5nIHVzZXMgYHN0YXRzYFxuICogd2hlbiBjaG9raWRhciBzdXBwbGllcyBpdDsgZ2xvYiBleHBhbnNpb24gcGFzc2VzIGB1bmRlZmluZWRgLlxuICovXG5mdW5jdGlvbiB0b1dhdGNoTWF0Y2hGdW5jdGlvbihcbiAgaWdub3JlOiBGaWxlV2F0Y2hPcHRpb25zW1wiaWdub3JlXCJdIHwgdW5kZWZpbmVkLFxuICBpZ25vcmVPcHRpb25zOiBGaWxlU2Nhbklnbm9yZU9wdGlvbnMgfCB1bmRlZmluZWQsXG4gIGN3ZDogc3RyaW5nLFxuKTogTWF0Y2hGdW5jdGlvbiB7XG4gIGNvbnN0IHBhdHRlcm5zOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCBmdW5jdGlvbnM6IE1hdGNoRnVuY3Rpb25bXSA9IFtdO1xuXG4gIGlmIChpZ25vcmUgIT09IHVuZGVmaW5lZCkge1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBBcnJheS5pc0FycmF5KGlnbm9yZSkgPyBpZ25vcmUgOiBbaWdub3JlXSkge1xuICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSBcInN0cmluZ1wiKSBwYXR0ZXJucy5wdXNoKGl0ZW0pO1xuICAgICAgZWxzZSBmdW5jdGlvbnMucHVzaChpdGVtKTtcbiAgICB9XG4gIH1cblxuICBsZXQgbWF0Y2hlciA9IGlnbm9yZVBhdGhNYXRjaGVyKGlnbm9yZU9wdGlvbnMpO1xuICBpZiAocGF0dGVybnMubGVuZ3RoID4gMCkgbWF0Y2hlciA9IG1hdGNoZXIub3IoLi4ucGF0aE1hdGNoVGVzdHMoLi4ucGF0dGVybnMpKTtcblxuICBjb25zdCBtYXRjaFBhdGggPSAocGF0aDogc3RyaW5nLCBzdGF0cz86IFN0YXRzKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgcmVsID0gdG9Dd2RSZWxhdGl2ZVBhdGgocGF0aCwgY3dkKTtcbiAgICBpZiAobWF0Y2hlcihyZWwpKSByZXR1cm4gdHJ1ZTtcbiAgICBmb3IgKGNvbnN0IGZuIG9mIGZ1bmN0aW9ucykge1xuICAgICAgaWYgKGZuKHJlbCwgc3RhdHMpKSByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHN0YXRzPy5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICBjb25zdCBkaXJlY3RvcnlQYXRoID0gcmVsICsgXCIvXCI7XG4gICAgICBpZiAobWF0Y2hlcihkaXJlY3RvcnlQYXRoKSkgcmV0dXJuIHRydWU7XG4gICAgICBmb3IgKGNvbnN0IGZuIG9mIGZ1bmN0aW9ucykge1xuICAgICAgICBpZiAoZm4oZGlyZWN0b3J5UGF0aCwgc3RhdHMpKSByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9O1xuXG4gIHJldHVybiBtYXRjaFBhdGg7XG59XG5cbi8qKiBBbGlnbnMgY2hva2lkYXIgcGF0aHMgd2l0aCB0aGUgY3dkLXJlbGF0aXZlIGZvcm0ge0BsaW5rIGZpbmRGaWxlc30gdXNlcy4gKi9cbmZ1bmN0aW9uIHRvQ3dkUmVsYXRpdmVQYXRoKHBhdGg6IHN0cmluZywgY3dkOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIWlzQWJzb2x1dGUocGF0aCkpIHJldHVybiBwYXRoO1xuICBjb25zdCByZWwgPSByZWxhdGl2ZShjd2QsIHBhdGgpO1xuICByZXR1cm4gcmVsID09PSBcIlwiID8gXCIuXCIgOiByZWw7XG59XG5cbi8vIE1hbnVhbCBkZW1vOiBydW4gdGhpcyBmaWxlIGRpcmVjdGx5IChgYnVuIHNyYy93YXRjaC50cyBbZGlyXWApIHRvIHdhdGNoIGEgdHJlZVxuLy8gYW5kIGxvZyBldmVyeSBmaWxlIGV2ZW50IGFzIGl0IGhhcHBlbnMuIERlZmF1bHRzIHRvIHRoaXMgcGFja2FnZS5cbmlmIChpbXBvcnQubWV0YS5tYWluKSB7XG4gIGNvbnN0IGN3ZCA9IHJlc29sdmUocHJvY2Vzcy5hcmd2WzJdID8/IHJlc29sdmUoaW1wb3J0Lm1ldGEuZGlybmFtZSwgXCIuLlwiKSk7XG4gIGNvbnNvbGUubG9nKFwiLS0tIFN0YXJ0aW5nIEZpbGUgV2F0Y2hlciAtLS1cIik7XG4gIGNvbnNvbGUubG9nKGBXb3JraW5nIERpcmVjdG9yeTogJHtjd2R9YCk7XG5cbiAgY29uc3Qgd2F0Y2hlciA9IHdhdGNoRmlsZXMoXCIqKi9zcmMvKipcIiwge1xuICAgIGN3ZCxcbiAgICBpZ25vcmVJbml0aWFsOiBmYWxzZSxcbiAgICBpZ25vcmU6IFtcIioqL2luZGV4LnRzXCIsIFwiKiovY29yZS8qKlwiXSxcbiAgICBpZ25vcmVPcHRpb25zOiB7XG4gICAgICB0ZW1wOiBmYWxzZSxcbiAgICB9LFxuICB9KTtcbiAgd2F0Y2hlci5vbihcImFsbFwiLCAoZXZlbnQ6IHN0cmluZywgcGF0aDogc3RyaW5nKSA9PiB7XG4gICAgY29uc29sZS5sb2coYFske2V2ZW50LnRvVXBwZXJDYXNlKCl9XSAke3BhdGh9YCk7XG4gIH0pO1xuICB3YXRjaGVyLm9uKFwiZXJyb3JcIiwgKGVycm9yKSA9PiB7XG4gICAgY29uc29sZS5lcnJvcihcIldhdGNoZXIgZXJyb3I6XCIsIGVycm9yKTtcbiAgfSk7XG4gIGNvbnNvbGUubG9nKFwiV2F0Y2hlciBzdGFydGVkXCIpO1xufVxuIl19
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.37",
27
- "@dbx-tools/shared-core": "^0.9.37",
26
+ "@dbx-tools/core": "^0.9.40",
27
+ "@dbx-tools/shared-core": "^0.9.40",
28
28
  "chokidar": "^4.0.3",
29
29
  "glob": "^13.0.6",
30
30
  "minimatch": "^10.2.5"
@@ -67,7 +67,7 @@
67
67
  "./package.json": "./package.json"
68
68
  }
69
69
  },
70
- "version": "0.9.37",
70
+ "version": "0.9.40",
71
71
  "types": "./lib/index.d.ts",
72
72
  "dbxToolsConfig": {
73
73
  "tags": [
package/src/find.ts CHANGED
@@ -1,3 +1,13 @@
1
+ /**
2
+ * Repository-consistent file discovery over `glob`.
3
+ *
4
+ * Reuse {@link findFiles} when package discovery, generation, cleanup, or docs
5
+ * tooling must honor the same ignore catalogue and symlink defaults as watchers.
6
+ * Direct `glob` calls should be reserved for behavior that intentionally differs.
7
+ *
8
+ * @module
9
+ */
10
+
1
11
  import { object, type Sequence } from "@dbx-tools/shared-core";
2
12
  import { globIterateSync, IgnoreLike, type GlobOptionsWithFileTypesUnset } from "glob";
3
13
  import { ignorePathMatcher } from "./ignore.ts";
@@ -6,6 +16,7 @@ import { FileScanIgnoreOptions, FileScanOptions, FOLLOW_SYMLINKS_DEFAULT } from
6
16
 
7
17
  type FileFindIgnore = PathMatchInput | readonly PathMatchInput[] | IgnoreLike;
8
18
 
19
+ /** Glob, root, ignore, and symlink options for {@link findFiles}. */
9
20
  export interface FileFindOptions
10
21
  extends
11
22
  Omit<
package/src/ignore.ts CHANGED
@@ -13,6 +13,10 @@
13
13
  * - {@link ignorePathMatcher} - returns a single {@link PathMatcher} for
14
14
  * {@link findFiles} and {@link watchFiles} (keeps `test: true` by default).
15
15
  *
16
+ * This is the repository owner for generated, dependency, VCS, temporary, test,
17
+ * and lockfile ignore policy. Extend these groups instead of copying ignore
18
+ * lists into individual generators or watchers.
19
+ *
16
20
  * @module
17
21
  */
18
22
 
package/src/match.ts CHANGED
@@ -12,6 +12,7 @@ import { object, predicate, type Predicate, type PredicateFunction } from "@dbx-
12
12
  import { Minimatch } from "minimatch";
13
13
  import { ignorePathMatcher } from "./ignore.ts";
14
14
 
15
+ /** Plain path predicate accepted anywhere a glob pattern can be supplied. */
15
16
  export type PathMatchPredicate = PredicateFunction<string>;
16
17
 
17
18
  /** A composable path test (`true` == match). */
package/src/scan.ts CHANGED
@@ -1,8 +1,20 @@
1
+ /**
2
+ * Shared scan options used by file discovery and watching.
3
+ *
4
+ * Reuse these types so path-based utilities agree on roots, ignore policy,
5
+ * symlink behavior, and cancellation rather than inventing parallel option
6
+ * shapes.
7
+ *
8
+ * @module
9
+ */
10
+
1
11
  import { IgnorePatternOptions } from "./ignore.ts";
2
12
  import { PathMatchInput } from "./match.ts";
3
13
 
14
+ /** Shared default used by file discovery and watching to avoid traversing symlinks. */
4
15
  export const FOLLOW_SYMLINKS_DEFAULT = false;
5
16
 
17
+ /** Common root, ignore, symlink, and cancellation settings for filesystem scans. */
6
18
  export interface FileScanOptions {
7
19
  /**
8
20
  * Base directory used to resolve relative paths.
package/src/watch.ts CHANGED
@@ -1,3 +1,14 @@
1
+ /**
2
+ * Repository-consistent file watching over Chokidar.
3
+ *
4
+ * Reuse `watchFiles()` when live workflows must match `findFiles()`
5
+ * discovery and the central ignore catalogue. The wrapper expands globs once,
6
+ * prunes ignored directories consistently, and preserves Chokidar's native
7
+ * watcher result for callers.
8
+ *
9
+ * @module
10
+ */
11
+
1
12
  import { Stats } from "fs";
2
13
  import { isAbsolute, relative, resolve } from "path";
3
14
  import { ChokidarOptions, MatchFunction, watch } from "chokidar";
@@ -7,6 +18,7 @@ import { ignorePathMatcher } from "./ignore.ts";
7
18
  import { pathMatchTests } from "./match.ts";
8
19
  import { FileScanIgnoreOptions, FileScanOptions, FOLLOW_SYMLINKS_DEFAULT } from "./scan.ts";
9
20
 
21
+ /** Chokidar options extended with the shared dbx-tools ignore configuration. */
10
22
  export interface FileWatchOptions
11
23
  extends Omit<ChokidarOptions, "ignored">, Omit<FileScanOptions, "ignore"> {
12
24
  ignore?: string | string[] | MatchFunction | MatchFunction[];