@mnaoumov/typescript-dev-toolkit 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/lib/cjs/docs-site/api-doc-documented-files.cjs +51 -0
  2. package/dist/lib/cjs/docs-site/api-doc-documented-files.d.cts +31 -0
  3. package/dist/lib/cjs/docs-site/api-doc-package-sites.cjs +3 -2
  4. package/dist/lib/cjs/docs-site/api-doc-package-sites.d.cts +2 -1
  5. package/dist/lib/cjs/docs-site/api-doc-source-processing.cjs +4 -7
  6. package/dist/lib/cjs/docs-site/index.cjs +4 -1
  7. package/dist/lib/cjs/docs-site/index.d.cts +1 -0
  8. package/dist/lib/cjs/exec.cjs +18 -14
  9. package/dist/lib/cjs/exec.d.cts +31 -0
  10. package/dist/lib/cjs/linters/eslint-config.cjs +8 -1
  11. package/dist/lib/cjs/linters/eslint-rules/in-house-plugin.cjs +3 -1
  12. package/dist/lib/cjs/linters/eslint-rules/index.cjs +4 -1
  13. package/dist/lib/cjs/linters/eslint-rules/index.d.cts +1 -0
  14. package/dist/lib/cjs/linters/eslint-rules/prefer-logical-operator-over-ternary.cjs +170 -0
  15. package/dist/lib/cjs/linters/eslint-rules/prefer-logical-operator-over-ternary.d.cts +30 -0
  16. package/dist/lib/cjs/nano-staged-config.cjs +42 -3
  17. package/dist/lib/cjs/nano-staged-config.d.cts +24 -4
  18. package/dist/lib/esm/docs-site/api-doc-documented-files.d.mts +31 -0
  19. package/dist/lib/esm/docs-site/api-doc-documented-files.mjs +25 -0
  20. package/dist/lib/esm/docs-site/api-doc-package-sites.d.mts +2 -1
  21. package/dist/lib/esm/docs-site/api-doc-package-sites.mjs +3 -2
  22. package/dist/lib/esm/docs-site/api-doc-source-processing.mjs +7 -7
  23. package/dist/lib/esm/docs-site/index.d.mts +1 -0
  24. package/dist/lib/esm/docs-site/index.mjs +3 -1
  25. package/dist/lib/esm/exec.d.mts +31 -0
  26. package/dist/lib/esm/exec.mjs +15 -13
  27. package/dist/lib/esm/linters/eslint-config.mjs +8 -1
  28. package/dist/lib/esm/linters/eslint-rules/in-house-plugin.mjs +3 -1
  29. package/dist/lib/esm/linters/eslint-rules/index.d.mts +1 -0
  30. package/dist/lib/esm/linters/eslint-rules/index.mjs +3 -1
  31. package/dist/lib/esm/linters/eslint-rules/prefer-logical-operator-over-ternary.d.mts +30 -0
  32. package/dist/lib/esm/linters/eslint-rules/prefer-logical-operator-over-ternary.mjs +134 -0
  33. package/dist/lib/esm/nano-staged-config.d.mts +24 -4
  34. package/dist/lib/esm/nano-staged-config.mjs +48 -3
  35. package/docs-site/api-doc-documented-files/package.json +6 -0
  36. package/linters/eslint-rules/prefer-logical-operator-over-ternary/package.json +6 -0
  37. package/package.json +1 -1
@@ -0,0 +1,51 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ "use strict";
7
+ var __defProp = Object.defineProperty;
8
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
+ var __getOwnPropNames = Object.getOwnPropertyNames;
10
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
11
+ var __export = (target, all) => {
12
+ for (var name in all)
13
+ __defProp(target, name, { get: all[name], enumerable: true });
14
+ };
15
+ var __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from === "object" || typeof from === "function") {
17
+ for (let key of __getOwnPropNames(from))
18
+ if (!__hasOwnProp.call(to, key) && key !== except)
19
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
20
+ }
21
+ return to;
22
+ };
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var api_doc_documented_files_exports = {};
25
+ __export(api_doc_documented_files_exports, {
26
+ isDocumentedDirectoryName: () => isDocumentedDirectoryName,
27
+ isDocumentedFileName: () => isDocumentedFileName,
28
+ isDocumentedModulePath: () => isDocumentedModulePath
29
+ });
30
+ module.exports = __toCommonJS(api_doc_documented_files_exports);
31
+ const EXCLUDED_DIR_SEGMENTS = /* @__PURE__ */ new Set(["@types", "styles", "test-helpers"]);
32
+ const EXCLUDED_FILE_NAMES = /* @__PURE__ */ new Set(["__merged.ts", "index.ts", "setup.ts"]);
33
+ function isDocumentedDirectoryName(name) {
34
+ return !EXCLUDED_DIR_SEGMENTS.has(name);
35
+ }
36
+ function isDocumentedFileName(name) {
37
+ return name.endsWith(".ts") && !name.endsWith(".d.ts") && !EXCLUDED_FILE_NAMES.has(name) && !name.endsWith("-setup.ts") && !name.endsWith(".test.ts");
38
+ }
39
+ function isDocumentedModulePath(modulePath) {
40
+ const segments = modulePath.split("/");
41
+ const directoryNames = segments.slice(0, -1);
42
+ const fileName = `${segments.slice(-1).join("")}.ts`;
43
+ return directoryNames.every((directoryName) => isDocumentedDirectoryName(directoryName)) && isDocumentedFileName(fileName);
44
+ }
45
+ // Annotate the CommonJS export names for ESM import in node:
46
+ 0 && (module.exports = {
47
+ isDocumentedDirectoryName,
48
+ isDocumentedFileName,
49
+ isDocumentedModulePath
50
+ });
51
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2RvY3Mtc2l0ZS9hcGktZG9jLWRvY3VtZW50ZWQtZmlsZXMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBXaGljaCBzb3VyY2UgZmlsZXMgdGhlIEFQSSByZWZlcmVuY2UgZG9jdW1lbnRzLCBzaGFyZWQgYnkgdGhlIHNvdXJjZSB3YWxrIGFuZCBieSB0aGUgY3Jvc3Mtc2l0ZSBsaW5rZXIsIHNvIGFcbiAqIGxpbmsgdG8gYW5vdGhlciBwYWNrYWdlJ3Mgc2l0ZSBuZXZlciBuYW1lcyBhIHBhZ2UgdGhhdCBzaXRlJ3MgZ2VuZXJhdG9yIHNraXBwZWQuXG4gKi9cblxuLyoqXG4gKiBEaXJlY3RvcnkgbmFtZXMgd2hvc2UgZW50aXJlIHN1YnRyZWUgaXMgZXhjbHVkZWQgZnJvbSBkb2N1bWVudGF0aW9uLlxuICovXG5jb25zdCBFWENMVURFRF9ESVJfU0VHTUVOVFMgPSBuZXcgU2V0KFsnQHR5cGVzJywgJ3N0eWxlcycsICd0ZXN0LWhlbHBlcnMnXSk7XG5cbi8qKlxuICogRmlsZSBuYW1lcyB0aGF0IGFyZSBuZXZlciBkb2N1bWVudGVkLCB3aGF0ZXZlciBmb2xkZXIgdGhleSBzaXQgaW4uXG4gKi9cbmNvbnN0IEVYQ0xVREVEX0ZJTEVfTkFNRVMgPSBuZXcgU2V0KFsnX19tZXJnZWQudHMnLCAnaW5kZXgudHMnLCAnc2V0dXAudHMnXSk7XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBkaXJlY3RvcnkncyBzdWJ0cmVlIGlzIGRvY3VtZW50ZWQuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBUaGUgZGlyZWN0b3J5J3MgbmFtZS5cbiAqIEByZXR1cm5zIGBmYWxzZWAgZm9yIGEgYEB0eXBlc2AsIGBzdHlsZXNgIG9yIGB0ZXN0LWhlbHBlcnNgIGRpcmVjdG9yeS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRG9jdW1lbnRlZERpcmVjdG9yeU5hbWUobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiAhRVhDTFVERURfRElSX1NFR01FTlRTLmhhcyhuYW1lKTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIHNvdXJjZSBmaWxlIGlzIGRvY3VtZW50ZWQsIGp1ZGdlZCBieSBpdHMgbmFtZSBhbG9uZS5cbiAqXG4gKiBFeGNsdWRlczogYCoudGVzdC50c2AgKGluY2wuIGAqLmJyb3dzZXIudGVzdC50c2AgLyBgKi5pbnRlZ3JhdGlvbi50ZXN0LnRzYCksIGAqLmQudHNgLCBgaW5kZXgudHNgLCBgX19tZXJnZWQudHNgLFxuICogYHNldHVwLnRzYCBhbmQgYCotc2V0dXAudHNgLlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gVGhlIGZpbGUncyBuYW1lLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgZmlsZSBpcyBkb2N1bWVudGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNEb2N1bWVudGVkRmlsZU5hbWUobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIC8vIFRoZSBgLnRlc3QudHNgIGNsYXVzZSBjb3ZlcnMgKi50ZXN0LnRzLCAqLmJyb3dzZXIudGVzdC50cywgKi5pbnRlZ3JhdGlvbi50ZXN0LnRzXG4gIHJldHVybiBuYW1lLmVuZHNXaXRoKCcudHMnKSAmJiAhbmFtZS5lbmRzV2l0aCgnLmQudHMnKSAmJiAhRVhDTFVERURfRklMRV9OQU1FUy5oYXMobmFtZSkgJiYgIW5hbWUuZW5kc1dpdGgoJy1zZXR1cC50cycpXG4gICAgJiYgIW5hbWUuZW5kc1dpdGgoJy50ZXN0LnRzJyk7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBtb2R1bGUsIGdpdmVuIGJ5IGl0cyBwYXRoIHJlbGF0aXZlIHRvIHRoZSBzb3VyY2UgZm9sZGVyLCBoYXMgZG9jdW1lbnRhdGlvbiBwYWdlcy5cbiAqXG4gKiBAcGFyYW0gbW9kdWxlUGF0aCAtIFRoZSBQT1NJWCBwYXRoIHJlbGF0aXZlIHRvIHRoZSBzb3VyY2UgZm9sZGVyLCB3aXRob3V0IGl0cyBleHRlbnNpb24gKGBsaW50ZXJzL2VzbGludGApLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgZ2VuZXJhdG9yIGRvY3VtZW50cyB0aGF0IG1vZHVsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRG9jdW1lbnRlZE1vZHVsZVBhdGgobW9kdWxlUGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IHNlZ21lbnRzID0gbW9kdWxlUGF0aC5zcGxpdCgnLycpO1xuICBjb25zdCBkaXJlY3RvcnlOYW1lcyA9IHNlZ21lbnRzLnNsaWNlKDAsIC0xKTtcbiAgY29uc3QgZmlsZU5hbWUgPSBgJHtzZWdtZW50cy5zbGljZSgtMSkuam9pbignJyl9LnRzYDtcbiAgcmV0dXJuIGRpcmVjdG9yeU5hbWVzLmV2ZXJ5KChkaXJlY3RvcnlOYW1lKSA9PiBpc0RvY3VtZW50ZWREaXJlY3RvcnlOYW1lKGRpcmVjdG9yeU5hbWUpKSAmJiBpc0RvY3VtZW50ZWRGaWxlTmFtZShmaWxlTmFtZSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUEsTUFBTSx3QkFBd0Isb0JBQUksSUFBSSxDQUFDLFVBQVUsVUFBVSxjQUFjLENBQUM7QUFLMUUsTUFBTSxzQkFBc0Isb0JBQUksSUFBSSxDQUFDLGVBQWUsWUFBWSxVQUFVLENBQUM7QUFRcEUsU0FBUywwQkFBMEIsTUFBdUI7QUFDL0QsU0FBTyxDQUFDLHNCQUFzQixJQUFJLElBQUk7QUFDeEM7QUFXTyxTQUFTLHFCQUFxQixNQUF1QjtBQUUxRCxTQUFPLEtBQUssU0FBUyxLQUFLLEtBQUssQ0FBQyxLQUFLLFNBQVMsT0FBTyxLQUFLLENBQUMsb0JBQW9CLElBQUksSUFBSSxLQUFLLENBQUMsS0FBSyxTQUFTLFdBQVcsS0FDakgsQ0FBQyxLQUFLLFNBQVMsVUFBVTtBQUNoQztBQVFPLFNBQVMsdUJBQXVCLFlBQTZCO0FBQ2xFLFFBQU0sV0FBVyxXQUFXLE1BQU0sR0FBRztBQUNyQyxRQUFNLGlCQUFpQixTQUFTLE1BQU0sR0FBRyxFQUFFO0FBQzNDLFFBQU0sV0FBVyxHQUFHLFNBQVMsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDL0MsU0FBTyxlQUFlLE1BQU0sQ0FBQyxrQkFBa0IsMEJBQTBCLGFBQWEsQ0FBQyxLQUFLLHFCQUFxQixRQUFRO0FBQzNIOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,31 @@
1
+ /// <reference path="../library-references.d.cts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Which source files the API reference documents, shared by the source walk and by the cross-site linker, so a
6
+ * link to another package's site never names a page that site's generator skipped.
7
+ */
8
+ /**
9
+ * Checks whether a directory's subtree is documented.
10
+ *
11
+ * @param name - The directory's name.
12
+ * @returns `false` for a `@types`, `styles` or `test-helpers` directory.
13
+ */
14
+ export declare function isDocumentedDirectoryName(name: string): boolean;
15
+ /**
16
+ * Checks whether a source file is documented, judged by its name alone.
17
+ *
18
+ * Excludes: `*.test.ts` (incl. `*.browser.test.ts` / `*.integration.test.ts`), `*.d.ts`, `index.ts`, `__merged.ts`,
19
+ * `setup.ts` and `*-setup.ts`.
20
+ *
21
+ * @param name - The file's name.
22
+ * @returns Whether the file is documented.
23
+ */
24
+ export declare function isDocumentedFileName(name: string): boolean;
25
+ /**
26
+ * Checks whether a module, given by its path relative to the source folder, has documentation pages.
27
+ *
28
+ * @param modulePath - The POSIX path relative to the source folder, without its extension (`linters/eslint`).
29
+ * @returns Whether the generator documents that module.
30
+ */
31
+ export declare function isDocumentedModulePath(modulePath: string): boolean;
@@ -63,6 +63,7 @@ __export(api_doc_package_sites_exports, {
63
63
  });
64
64
  module.exports = __toCommonJS(api_doc_package_sites_exports);
65
65
  var import_reg_exp = require('@mnaoumov/typescript-lib/reg-exp');
66
+ var import_api_doc_documented_files = require('./api-doc-documented-files.cjs');
66
67
  var import_api_doc_route_segments = require('./api-doc-route-segments.cjs');
67
68
  var import_api_doc_settings = require('./api-doc-settings.cjs');
68
69
  const PACKAGE_DECLARATION_REG_EXP = /\/node_modules\/(?<Package>(?:@[^/]+\/)?[^/]+)\/dist\/lib\/(?:cjs|esm)\/(?<Path>.+?)(?:\.d\.[cm]?ts)?$/;
@@ -102,7 +103,7 @@ function toPackageTypeUrl(params) {
102
103
  }
103
104
  const packageName = (0, import_reg_exp.getMandatoryNamedGroup)(match, "Package");
104
105
  const path = (0, import_reg_exp.getMandatoryNamedGroup)(match, "Path");
105
- if (packageName === settings.packageName) {
106
+ if (packageName === settings.packageName || !(0, import_api_doc_documented_files.isDocumentedModulePath)(path)) {
106
107
  return void 0;
107
108
  }
108
109
  const site = settings.packageSites.get(packageName);
@@ -115,4 +116,4 @@ function toPackageTypeUrl(params) {
115
116
  getPackageTypeUrl,
116
117
  registerPackageDeclaration
117
118
  });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb2NzLXNpdGUvYXBpLWRvYy1wYWNrYWdlLXNpdGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDcm9zcy1zaXRlIGxpbmtzOiBhIHR5cGUgZGVjbGFyZWQgaW4gYW5vdGhlciBkb2N1bWVudGVkIHBhY2thZ2UgbGlua3MgdG8gaXRzIHBhZ2Ugb24gdGhhdCBwYWNrYWdlJ3Mgc2l0ZS5cbiAqXG4gKiBBIHR5cGUgaXMgcmVjb2duaXplZCBieSB3aGVyZSBpdHMgZGVjbGFyYXRpb24gbGl2ZXMsIG5vdCBieSBpdHMgbmFtZTogYSBkZWNsYXJhdGlvbiB1bmRlclxuICogYG5vZGVfbW9kdWxlcy88cGFja2FnZT4vZGlzdC9saWIve2VzbSxjanN9LzxwYXRoPi5kLnttdHMsY3RzfWAgb2YgYSBwYWNrYWdlIGluXG4gKiB7QGxpbmsgQXBpRG9jU2V0dGluZ3MucGFja2FnZVNpdGVzfSBpcyB0aGUgcGFnZSBgPHNpdGU+YXBpLzxwYXRoPi88VHlwZT4vYCwgYnVpbHQgd2l0aCB0aGUgZ2VuZXJhdG9yJ3Mgb3duIHNsdWdcbiAqIHJ1bGVzLCBiZWNhdXNlIHRoYXQgc2l0ZSB3YXMgZ2VuZXJhdGVkIGZyb20gdGhlIHNhbWUgdHJlZS5cbiAqL1xuXG5pbXBvcnQgeyBnZXRNYW5kYXRvcnlOYW1lZEdyb3VwIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3JlZy1leHAnO1xuXG5pbXBvcnQgdHlwZSB7IEFwaURvY1NldHRpbmdzIH0gZnJvbSAnLi9hcGktZG9jLXNldHRpbmdzLnRzJztcblxuaW1wb3J0IHsgdG9Sb3V0ZVNlZ21lbnRQcmVzZXJ2ZUNhc2UgfSBmcm9tICcuL2FwaS1kb2Mtcm91dGUtc2VnbWVudHMudHMnO1xuaW1wb3J0IHsgZ2V0QXBpRG9jU2V0dGluZ3MgfSBmcm9tICcuL2FwaS1kb2Mtc2V0dGluZ3MudHMnO1xuXG5jb25zdCBQQUNLQUdFX0RFQ0xBUkFUSU9OX1JFR19FWFAgPSAvXFwvbm9kZV9tb2R1bGVzXFwvKD88UGFja2FnZT4oPzpAW14vXStcXC8pP1teL10rKVxcL2Rpc3RcXC9saWJcXC8oPzpjanN8ZXNtKVxcLyg/PFBhdGg+Lis/KSg/OlxcLmRcXC5bY21dP3RzKT8kLztcblxuLyoqXG4gKiBUaGUgZG9jdW1lbnRhdGlvbiBzaXRlcyBvZiB0aGUgYEBtbmFvdW1vdmAgcGFja2FnZXMsIHdoaWNoIGVhY2ggc2l0ZSBsaW5rcyB0byB1bmxlc3MgdG9sZCBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1BBQ0tBR0VfU0lURVM6IFJlYWRvbmx5TWFwPHN0cmluZywgc3RyaW5nPiA9IG5ldyBNYXAoW1xuICAnQG1uYW91bW92L29ic2lkaWFuLWRldi10b29sa2l0JyxcbiAgJ0BtbmFvdW1vdi9vYnNpZGlhbi1saWInLFxuICAnQG1uYW91bW92L3R5cGVzY3JpcHQtZGV2LXRvb2xraXQnLFxuICAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliJyxcbiAgJ0BtbmFvdW1vdi90eXBlc2NyaXB0LXRlc3QtdG9vbGtpdCdcbl0ubWFwKChwYWNrYWdlTmFtZSkgPT4gW3BhY2thZ2VOYW1lLCBgaHR0cHM6Ly9tbmFvdW1vdi5kZXYvJHtwYWNrYWdlTmFtZS5zbGljZSgnQG1uYW91bW92LycubGVuZ3RoKX0vYF0pKTtcblxuaW50ZXJmYWNlIE1vZHVsZVN0YXRlIHtcbiAgLyoqXG4gICAqIFR5cGUgbmFtZSB0byBpdHMgcGFnZSBVUkw7IGBudWxsYCB3aGVuIHR3byBwYWNrYWdlcyBkZWNsYXJlIHRoZSBuYW1lLCB3aGljaCBjYW5ub3QgYmUgdG9sZCBhcGFydCBmcm9tIHRleHQuXG4gICAqL1xuICByZWFkb25seSB1cmxzOiBNYXA8c3RyaW5nLCBudWxsIHwgc3RyaW5nPjtcbn1cblxuY29uc3QgbW9kdWxlU3RhdGU6IE1vZHVsZVN0YXRlID0ge1xuICB1cmxzOiBuZXcgTWFwKClcbn07XG5cbmludGVyZmFjZSBUb1BhY2thZ2VUeXBlVXJsUGFyYW1zIHtcbiAgcmVhZG9ubHkgZGVjbGFyYXRpb25GaWxlUGF0aDogc3RyaW5nO1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNldHRpbmdzOiBBcGlEb2NTZXR0aW5ncztcbn1cblxuLyoqXG4gKiBGb3JnZXRzIGV2ZXJ5IGRlY2xhcmF0aW9uIHtAbGluayByZWdpc3RlclBhY2thZ2VEZWNsYXJhdGlvbn0gcmVjb3JkZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhclBhY2thZ2VEZWNsYXJhdGlvbnMoKTogdm9pZCB7XG4gIG1vZHVsZVN0YXRlLnVybHMuY2xlYXIoKTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBwYWdlIFVSTCBvZiBhIHR5cGUgZGVjbGFyZWQgaW4gYW5vdGhlciBkb2N1bWVudGVkIHBhY2thZ2UuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBUaGUgdHlwZSdzIG5hbWUsIGFzIHR5cGUgdGV4dCBwcmludHMgaXQuXG4gKiBAcmV0dXJucyBUaGUgVVJMLCBvciBgdW5kZWZpbmVkYCB3aGVuIG5vIGRvY3VtZW50ZWQgcGFja2FnZSBkZWNsYXJlcyBleGFjdGx5IG9uZSB0eXBlIG9mIHRoYXQgbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFBhY2thZ2VUeXBlVXJsKG5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBtb2R1bGVTdGF0ZS51cmxzLmdldChuYW1lKSA/PyB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogUmVjb3JkcyB3aGVyZSBhIHR5cGUgaXMgZGVjbGFyZWQsIHNvIGl0cyByZWZlcmVuY2VzIGxpbmsgdG8gaXRzIHBhZ2Ugb24gdGhhdCBwYWNrYWdlJ3Mgc2l0ZS5cbiAqXG4gKiBBIGRlY2xhcmF0aW9uIG91dHNpZGUgZXZlcnkge0BsaW5rIEFwaURvY1NldHRpbmdzLnBhY2thZ2VTaXRlc30gcGFja2FnZSBpcyBpZ25vcmVkLiBBIG5hbWUgdHdvIHBhY2thZ2VzIGRlY2xhcmUgaXNcbiAqIHJlbWVtYmVyZWQgYXMgYW1iaWd1b3VzIGFuZCBuZXZlciBsaW5rZWQuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBUaGUgdHlwZSdzIG5hbWUuXG4gKiBAcGFyYW0gZGVjbGFyYXRpb25GaWxlUGF0aCAtIFRoZSBkZWNsYXJhdGlvbiBmaWxlJ3MgcGF0aCwgd2l0aCBvciB3aXRob3V0IGl0cyBgLmQubXRzYCAvIGAuZC5jdHNgIGV4dGVuc2lvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyUGFja2FnZURlY2xhcmF0aW9uKG5hbWU6IHN0cmluZywgZGVjbGFyYXRpb25GaWxlUGF0aDogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IHVybCA9IHRvUGFja2FnZVR5cGVVcmwoeyBkZWNsYXJhdGlvbkZpbGVQYXRoLCBuYW1lLCBzZXR0aW5nczogZ2V0QXBpRG9jU2V0dGluZ3MoKSB9KTtcbiAgaWYgKHVybCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZXhpc3RpbmcgPSBtb2R1bGVTdGF0ZS51cmxzLmdldChuYW1lKTtcbiAgaWYgKGV4aXN0aW5nID09PSB1bmRlZmluZWQpIHtcbiAgICBtb2R1bGVTdGF0ZS51cmxzLnNldChuYW1lLCB1cmwpO1xuICB9IGVsc2UgaWYgKGV4aXN0aW5nICE9PSB1cmwpIHtcbiAgICBtb2R1bGVTdGF0ZS51cmxzLnNldChuYW1lLCBudWxsKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0b1BhY2thZ2VUeXBlVXJsKHBhcmFtczogVG9QYWNrYWdlVHlwZVVybFBhcmFtcyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHsgZGVjbGFyYXRpb25GaWxlUGF0aCwgbmFtZSwgc2V0dGluZ3MgfSA9IHBhcmFtcztcbiAgY29uc3QgbWF0Y2ggPSBQQUNLQUdFX0RFQ0xBUkFUSU9OX1JFR19FWFAuZXhlYyhkZWNsYXJhdGlvbkZpbGVQYXRoLnJlcGxhY2VBbGwoJ1xcXFwnLCAnLycpKTtcbiAgaWYgKG1hdGNoID09PSBudWxsKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHBhY2thZ2VOYW1lID0gZ2V0TWFuZGF0b3J5TmFtZWRHcm91cChtYXRjaCwgJ1BhY2thZ2UnKTtcbiAgY29uc3QgcGF0aCA9IGdldE1hbmRhdG9yeU5hbWVkR3JvdXAobWF0Y2gsICdQYXRoJyk7XG4gIGlmIChwYWNrYWdlTmFtZSA9PT0gc2V0dGluZ3MucGFja2FnZU5hbWUpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3Qgc2l0ZSA9IHNldHRpbmdzLnBhY2thZ2VTaXRlcy5nZXQocGFja2FnZU5hbWUpO1xuICByZXR1cm4gc2l0ZSA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogYCR7c2l0ZX1hcGkvJHtwYXRofS8ke3RvUm91dGVTZWdtZW50UHJlc2VydmVDYXNlKG5hbWUpfS9gO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQSxxQkFBdUM7QUFJdkMsb0NBQTJDO0FBQzNDLDhCQUFrQztBQUVsQyxNQUFNLDhCQUE4QjtBQUs3QixNQUFNLHdCQUFxRCxJQUFJLElBQUk7QUFBQSxFQUN4RTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFDRixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLHdCQUF3QixZQUFZLE1BQU0sYUFBYSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFTeEcsTUFBTSxjQUEyQjtBQUFBLEVBQy9CLE1BQU0sb0JBQUksSUFBSTtBQUNoQjtBQVdPLFNBQVMsMkJBQWlDO0FBQy9DLGNBQVksS0FBSyxNQUFNO0FBQ3pCO0FBUU8sU0FBUyxrQkFBa0IsTUFBa0M7QUFDbEUsU0FBTyxZQUFZLEtBQUssSUFBSSxJQUFJLEtBQUs7QUFDdkM7QUFXTyxTQUFTLDJCQUEyQixNQUFjLHFCQUFtQztBQUMxRixRQUFNLE1BQU0saUJBQWlCLEVBQUUscUJBQXFCLE1BQU0sY0FBVSwyQ0FBa0IsRUFBRSxDQUFDO0FBQ3pGLE1BQUksUUFBUSxRQUFXO0FBQ3JCO0FBQUEsRUFDRjtBQUVBLFFBQU0sV0FBVyxZQUFZLEtBQUssSUFBSSxJQUFJO0FBQzFDLE1BQUksYUFBYSxRQUFXO0FBQzFCLGdCQUFZLEtBQUssSUFBSSxNQUFNLEdBQUc7QUFBQSxFQUNoQyxXQUFXLGFBQWEsS0FBSztBQUMzQixnQkFBWSxLQUFLLElBQUksTUFBTSxJQUFJO0FBQUEsRUFDakM7QUFDRjtBQUVBLFNBQVMsaUJBQWlCLFFBQW9EO0FBQzVFLFFBQU0sRUFBRSxxQkFBcUIsTUFBTSxTQUFTLElBQUk7QUFDaEQsUUFBTSxRQUFRLDRCQUE0QixLQUFLLG9CQUFvQixXQUFXLE1BQU0sR0FBRyxDQUFDO0FBQ3hGLE1BQUksVUFBVSxNQUFNO0FBQ2xCLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxrQkFBYyx1Q0FBdUIsT0FBTyxTQUFTO0FBQzNELFFBQU0sV0FBTyx1Q0FBdUIsT0FBTyxNQUFNO0FBQ2pELE1BQUksZ0JBQWdCLFNBQVMsYUFBYTtBQUN4QyxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sT0FBTyxTQUFTLGFBQWEsSUFBSSxXQUFXO0FBQ2xELFNBQU8sU0FBUyxTQUFZLFNBQVksR0FBRyxJQUFJLE9BQU8sSUFBSSxRQUFJLDBEQUEyQixJQUFJLENBQUM7QUFDaEc7IiwibmFtZXMiOltdfQ==
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb2NzLXNpdGUvYXBpLWRvYy1wYWNrYWdlLXNpdGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDcm9zcy1zaXRlIGxpbmtzOiBhIHR5cGUgZGVjbGFyZWQgaW4gYW5vdGhlciBkb2N1bWVudGVkIHBhY2thZ2UgbGlua3MgdG8gaXRzIHBhZ2Ugb24gdGhhdCBwYWNrYWdlJ3Mgc2l0ZS5cbiAqXG4gKiBBIHR5cGUgaXMgcmVjb2duaXplZCBieSB3aGVyZSBpdHMgZGVjbGFyYXRpb24gbGl2ZXMsIG5vdCBieSBpdHMgbmFtZTogYSBkZWNsYXJhdGlvbiB1bmRlclxuICogYG5vZGVfbW9kdWxlcy88cGFja2FnZT4vZGlzdC9saWIve2VzbSxjanN9LzxwYXRoPi5kLnttdHMsY3RzfWAgb2YgYSBwYWNrYWdlIGluXG4gKiB7QGxpbmsgQXBpRG9jU2V0dGluZ3MucGFja2FnZVNpdGVzfSBpcyB0aGUgcGFnZSBgPHNpdGU+YXBpLzxwYXRoPi88VHlwZT4vYCwgYnVpbHQgd2l0aCB0aGUgZ2VuZXJhdG9yJ3Mgb3duIHNsdWdcbiAqIHJ1bGVzLCBiZWNhdXNlIHRoYXQgc2l0ZSB3YXMgZ2VuZXJhdGVkIGZyb20gdGhlIHNhbWUgdHJlZS4gQSBtb2R1bGUgdGhhdCBnZW5lcmF0b3Igc2tpcHMgKGBAdHlwZXNgLCBgaW5kZXhgLFxuICogYCotc2V0dXBgLCAuLi4pIGhhcyBubyBwYWdlLCBzbyBhIHR5cGUgZGVjbGFyZWQgdGhlcmUgaXMgbm90IGxpbmtlZC5cbiAqL1xuXG5pbXBvcnQgeyBnZXRNYW5kYXRvcnlOYW1lZEdyb3VwIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3JlZy1leHAnO1xuXG5pbXBvcnQgdHlwZSB7IEFwaURvY1NldHRpbmdzIH0gZnJvbSAnLi9hcGktZG9jLXNldHRpbmdzLnRzJztcblxuaW1wb3J0IHsgaXNEb2N1bWVudGVkTW9kdWxlUGF0aCB9IGZyb20gJy4vYXBpLWRvYy1kb2N1bWVudGVkLWZpbGVzLnRzJztcbmltcG9ydCB7IHRvUm91dGVTZWdtZW50UHJlc2VydmVDYXNlIH0gZnJvbSAnLi9hcGktZG9jLXJvdXRlLXNlZ21lbnRzLnRzJztcbmltcG9ydCB7IGdldEFwaURvY1NldHRpbmdzIH0gZnJvbSAnLi9hcGktZG9jLXNldHRpbmdzLnRzJztcblxuY29uc3QgUEFDS0FHRV9ERUNMQVJBVElPTl9SRUdfRVhQID0gL1xcL25vZGVfbW9kdWxlc1xcLyg/PFBhY2thZ2U+KD86QFteL10rXFwvKT9bXi9dKylcXC9kaXN0XFwvbGliXFwvKD86Y2pzfGVzbSlcXC8oPzxQYXRoPi4rPykoPzpcXC5kXFwuW2NtXT90cyk/JC87XG5cbi8qKlxuICogVGhlIGRvY3VtZW50YXRpb24gc2l0ZXMgb2YgdGhlIGBAbW5hb3Vtb3ZgIHBhY2thZ2VzLCB3aGljaCBlYWNoIHNpdGUgbGlua3MgdG8gdW5sZXNzIHRvbGQgb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9QQUNLQUdFX1NJVEVTOiBSZWFkb25seU1hcDxzdHJpbmcsIHN0cmluZz4gPSBuZXcgTWFwKFtcbiAgJ0BtbmFvdW1vdi9vYnNpZGlhbi1kZXYtdG9vbGtpdCcsXG4gICdAbW5hb3Vtb3Yvb2JzaWRpYW4tbGliJyxcbiAgJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWRldi10b29sa2l0JyxcbiAgJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYicsXG4gICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC10ZXN0LXRvb2xraXQnXG5dLm1hcCgocGFja2FnZU5hbWUpID0+IFtwYWNrYWdlTmFtZSwgYGh0dHBzOi8vbW5hb3Vtb3YuZGV2LyR7cGFja2FnZU5hbWUuc2xpY2UoJ0BtbmFvdW1vdi8nLmxlbmd0aCl9L2BdKSk7XG5cbmludGVyZmFjZSBNb2R1bGVTdGF0ZSB7XG4gIC8qKlxuICAgKiBUeXBlIG5hbWUgdG8gaXRzIHBhZ2UgVVJMOyBgbnVsbGAgd2hlbiB0d28gcGFja2FnZXMgZGVjbGFyZSB0aGUgbmFtZSwgd2hpY2ggY2Fubm90IGJlIHRvbGQgYXBhcnQgZnJvbSB0ZXh0LlxuICAgKi9cbiAgcmVhZG9ubHkgdXJsczogTWFwPHN0cmluZywgbnVsbCB8IHN0cmluZz47XG59XG5cbmNvbnN0IG1vZHVsZVN0YXRlOiBNb2R1bGVTdGF0ZSA9IHtcbiAgdXJsczogbmV3IE1hcCgpXG59O1xuXG5pbnRlcmZhY2UgVG9QYWNrYWdlVHlwZVVybFBhcmFtcyB7XG4gIHJlYWRvbmx5IGRlY2xhcmF0aW9uRmlsZVBhdGg6IHN0cmluZztcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBzZXR0aW5nczogQXBpRG9jU2V0dGluZ3M7XG59XG5cbi8qKlxuICogRm9yZ2V0cyBldmVyeSBkZWNsYXJhdGlvbiB7QGxpbmsgcmVnaXN0ZXJQYWNrYWdlRGVjbGFyYXRpb259IHJlY29yZGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJQYWNrYWdlRGVjbGFyYXRpb25zKCk6IHZvaWQge1xuICBtb2R1bGVTdGF0ZS51cmxzLmNsZWFyKCk7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgcGFnZSBVUkwgb2YgYSB0eXBlIGRlY2xhcmVkIGluIGFub3RoZXIgZG9jdW1lbnRlZCBwYWNrYWdlLlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gVGhlIHR5cGUncyBuYW1lLCBhcyB0eXBlIHRleHQgcHJpbnRzIGl0LlxuICogQHJldHVybnMgVGhlIFVSTCwgb3IgYHVuZGVmaW5lZGAgd2hlbiBubyBkb2N1bWVudGVkIHBhY2thZ2UgZGVjbGFyZXMgZXhhY3RseSBvbmUgdHlwZSBvZiB0aGF0IG5hbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWNrYWdlVHlwZVVybChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gbW9kdWxlU3RhdGUudXJscy5nZXQobmFtZSkgPz8gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFJlY29yZHMgd2hlcmUgYSB0eXBlIGlzIGRlY2xhcmVkLCBzbyBpdHMgcmVmZXJlbmNlcyBsaW5rIHRvIGl0cyBwYWdlIG9uIHRoYXQgcGFja2FnZSdzIHNpdGUuXG4gKlxuICogQSBkZWNsYXJhdGlvbiBvdXRzaWRlIGV2ZXJ5IHtAbGluayBBcGlEb2NTZXR0aW5ncy5wYWNrYWdlU2l0ZXN9IHBhY2thZ2UgaXMgaWdub3JlZC4gQSBuYW1lIHR3byBwYWNrYWdlcyBkZWNsYXJlIGlzXG4gKiByZW1lbWJlcmVkIGFzIGFtYmlndW91cyBhbmQgbmV2ZXIgbGlua2VkLlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gVGhlIHR5cGUncyBuYW1lLlxuICogQHBhcmFtIGRlY2xhcmF0aW9uRmlsZVBhdGggLSBUaGUgZGVjbGFyYXRpb24gZmlsZSdzIHBhdGgsIHdpdGggb3Igd2l0aG91dCBpdHMgYC5kLm10c2AgLyBgLmQuY3RzYCBleHRlbnNpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlclBhY2thZ2VEZWNsYXJhdGlvbihuYW1lOiBzdHJpbmcsIGRlY2xhcmF0aW9uRmlsZVBhdGg6IHN0cmluZyk6IHZvaWQge1xuICBjb25zdCB1cmwgPSB0b1BhY2thZ2VUeXBlVXJsKHsgZGVjbGFyYXRpb25GaWxlUGF0aCwgbmFtZSwgc2V0dGluZ3M6IGdldEFwaURvY1NldHRpbmdzKCkgfSk7XG4gIGlmICh1cmwgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGV4aXN0aW5nID0gbW9kdWxlU3RhdGUudXJscy5nZXQobmFtZSk7XG4gIGlmIChleGlzdGluZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgbW9kdWxlU3RhdGUudXJscy5zZXQobmFtZSwgdXJsKTtcbiAgfSBlbHNlIGlmIChleGlzdGluZyAhPT0gdXJsKSB7XG4gICAgbW9kdWxlU3RhdGUudXJscy5zZXQobmFtZSwgbnVsbCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdG9QYWNrYWdlVHlwZVVybChwYXJhbXM6IFRvUGFja2FnZVR5cGVVcmxQYXJhbXMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCB7IGRlY2xhcmF0aW9uRmlsZVBhdGgsIG5hbWUsIHNldHRpbmdzIH0gPSBwYXJhbXM7XG4gIGNvbnN0IG1hdGNoID0gUEFDS0FHRV9ERUNMQVJBVElPTl9SRUdfRVhQLmV4ZWMoZGVjbGFyYXRpb25GaWxlUGF0aC5yZXBsYWNlQWxsKCdcXFxcJywgJy8nKSk7XG4gIGlmIChtYXRjaCA9PT0gbnVsbCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBwYWNrYWdlTmFtZSA9IGdldE1hbmRhdG9yeU5hbWVkR3JvdXAobWF0Y2gsICdQYWNrYWdlJyk7XG4gIGNvbnN0IHBhdGggPSBnZXRNYW5kYXRvcnlOYW1lZEdyb3VwKG1hdGNoLCAnUGF0aCcpO1xuICAvLyBUaGUgb3duaW5nIHNpdGUncyBnZW5lcmF0b3Igc2tpcHBlZCB0aGF0IG1vZHVsZSwgc28gbm8gcGFnZSBleGlzdHMgdG8gbGluayB0by5cbiAgaWYgKHBhY2thZ2VOYW1lID09PSBzZXR0aW5ncy5wYWNrYWdlTmFtZSB8fCAhaXNEb2N1bWVudGVkTW9kdWxlUGF0aChwYXRoKSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBzaXRlID0gc2V0dGluZ3MucGFja2FnZVNpdGVzLmdldChwYWNrYWdlTmFtZSk7XG4gIHJldHVybiBzaXRlID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBgJHtzaXRlfWFwaS8ke3BhdGh9LyR7dG9Sb3V0ZVNlZ21lbnRQcmVzZXJ2ZUNhc2UobmFtZSl9L2A7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBLHFCQUF1QztBQUl2QyxzQ0FBdUM7QUFDdkMsb0NBQTJDO0FBQzNDLDhCQUFrQztBQUVsQyxNQUFNLDhCQUE4QjtBQUs3QixNQUFNLHdCQUFxRCxJQUFJLElBQUk7QUFBQSxFQUN4RTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFDRixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLHdCQUF3QixZQUFZLE1BQU0sYUFBYSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFTeEcsTUFBTSxjQUEyQjtBQUFBLEVBQy9CLE1BQU0sb0JBQUksSUFBSTtBQUNoQjtBQVdPLFNBQVMsMkJBQWlDO0FBQy9DLGNBQVksS0FBSyxNQUFNO0FBQ3pCO0FBUU8sU0FBUyxrQkFBa0IsTUFBa0M7QUFDbEUsU0FBTyxZQUFZLEtBQUssSUFBSSxJQUFJLEtBQUs7QUFDdkM7QUFXTyxTQUFTLDJCQUEyQixNQUFjLHFCQUFtQztBQUMxRixRQUFNLE1BQU0saUJBQWlCLEVBQUUscUJBQXFCLE1BQU0sY0FBVSwyQ0FBa0IsRUFBRSxDQUFDO0FBQ3pGLE1BQUksUUFBUSxRQUFXO0FBQ3JCO0FBQUEsRUFDRjtBQUVBLFFBQU0sV0FBVyxZQUFZLEtBQUssSUFBSSxJQUFJO0FBQzFDLE1BQUksYUFBYSxRQUFXO0FBQzFCLGdCQUFZLEtBQUssSUFBSSxNQUFNLEdBQUc7QUFBQSxFQUNoQyxXQUFXLGFBQWEsS0FBSztBQUMzQixnQkFBWSxLQUFLLElBQUksTUFBTSxJQUFJO0FBQUEsRUFDakM7QUFDRjtBQUVBLFNBQVMsaUJBQWlCLFFBQW9EO0FBQzVFLFFBQU0sRUFBRSxxQkFBcUIsTUFBTSxTQUFTLElBQUk7QUFDaEQsUUFBTSxRQUFRLDRCQUE0QixLQUFLLG9CQUFvQixXQUFXLE1BQU0sR0FBRyxDQUFDO0FBQ3hGLE1BQUksVUFBVSxNQUFNO0FBQ2xCLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxrQkFBYyx1Q0FBdUIsT0FBTyxTQUFTO0FBQzNELFFBQU0sV0FBTyx1Q0FBdUIsT0FBTyxNQUFNO0FBRWpELE1BQUksZ0JBQWdCLFNBQVMsZUFBZSxLQUFDLHdEQUF1QixJQUFJLEdBQUc7QUFDekUsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLE9BQU8sU0FBUyxhQUFhLElBQUksV0FBVztBQUNsRCxTQUFPLFNBQVMsU0FBWSxTQUFZLEdBQUcsSUFBSSxPQUFPLElBQUksUUFBSSwwREFBMkIsSUFBSSxDQUFDO0FBQ2hHOyIsIm5hbWVzIjpbXX0=
@@ -7,7 +7,8 @@
7
7
  * A type is recognized by where its declaration lives, not by its name: a declaration under
8
8
  * `node_modules/<package>/dist/lib/{esm,cjs}/<path>.d.{mts,cts}` of a package in
9
9
  * {@link ApiDocSettings.packageSites} is the page `<site>api/<path>/<Type>/`, built with the generator's own slug
10
- * rules, because that site was generated from the same tree.
10
+ * rules, because that site was generated from the same tree. A module that generator skips (`@types`, `index`,
11
+ * `*-setup`, ...) has no page, so a type declared there is not linked.
11
12
  */
12
13
  /**
13
14
  * The documentation sites of the `@mnaoumov` packages, which each site links to unless told otherwise.
@@ -71,11 +71,11 @@ var import_node_fs = require('node:fs');
71
71
  var import_node_path = require('node:path');
72
72
  var import_ts_morph = require('ts-morph');
73
73
  var import_api_doc_constants = require('./api-doc-constants.cjs');
74
+ var import_api_doc_documented_files = require('./api-doc-documented-files.cjs');
74
75
  var import_api_doc_jsdoc = require('./api-doc-jsdoc.cjs');
75
76
  var import_api_doc_package_sites = require('./api-doc-package-sites.cjs');
76
77
  var import_api_doc_settings = require('./api-doc-settings.cjs');
77
78
  var import_api_doc_text_utils = require('./api-doc-text-utils.cjs');
78
- const EXCLUDED_DIR_SEGMENTS = /* @__PURE__ */ new Set(["@types", "styles", "test-helpers"]);
79
79
  function collectFunctions(src, types, namespace) {
80
80
  for (const $function of src.getFunctions()) {
81
81
  if (!$function.isExported()) {
@@ -199,11 +199,11 @@ function findEntryFiles(directory) {
199
199
  for (const entry of (0, import_node_fs.readdirSync)(directory, { withFileTypes: true })) {
200
200
  const fullPath = (0, import_node_path.join)(directory, entry.name);
201
201
  if (entry.isDirectory()) {
202
- if (EXCLUDED_DIR_SEGMENTS.has(entry.name)) {
202
+ if (!(0, import_api_doc_documented_files.isDocumentedDirectoryName)(entry.name)) {
203
203
  continue;
204
204
  }
205
205
  results.push(...findEntryFiles(fullPath));
206
- } else if (isEntryFile(entry.name)) {
206
+ } else if ((0, import_api_doc_documented_files.isDocumentedFileName)(entry.name)) {
207
207
  results.push(fullPath);
208
208
  }
209
209
  }
@@ -265,9 +265,6 @@ function registerGenericTypeParams(types) {
265
265
  }
266
266
  }
267
267
  }
268
- function isEntryFile(name) {
269
- return !(!name.endsWith(".ts") || name.endsWith(".d.ts") || ["__merged.ts", "index.ts", "setup.ts"].includes(name) || name.endsWith("-setup.ts") || name.endsWith(".test.ts"));
270
- }
271
268
  function isTypeDeclaration(declaration) {
272
269
  return import_ts_morph.Node.isClassDeclaration(declaration) || import_ts_morph.Node.isInterfaceDeclaration(declaration) || import_ts_morph.Node.isTypeAliasDeclaration(declaration) || import_ts_morph.Node.isEnumDeclaration(declaration);
273
270
  }
@@ -285,4 +282,4 @@ function qualifiedKey(namespace, name) {
285
282
  processSourceFile,
286
283
  registerGenericTypeParams
287
284
  });
288
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb2NzLXNpdGUvYXBpLWRvYy1zb3VyY2UtcHJvY2Vzc2luZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogU291cmNlIGRpc2NvdmVyeSArIGV4dHJhY3Rpb246IHdhbGtzIGBzcmNgLCBmaWx0ZXJzIHRvIGRvY3VtZW50YWJsZSBlbnRyeSBmaWxlcywgYW5kIHR1cm5zIGVhY2hcbiAqIGZpbGUncyBleHBvcnRlZCBkZWNsYXJhdGlvbnMgaW50byBgVHlwZUluZm9gIGVudHJpZXMga2V5ZWQgYnkgYSBxdWFsaWZpZWQgYCR7bmFtZXNwYWNlfSMke25hbWV9YC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFNvdXJjZUZpbGUgfSBmcm9tICd0cy1tb3JwaCc7XG5cbmltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tICdub2RlOmNyeXB0byc7XG5pbXBvcnQge1xuICByZWFkZGlyU3luYyxcbiAgcmVhZEZpbGVTeW5jXG59IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHtcbiAgam9pbixcbiAgcmVsYXRpdmVcbn0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IE5vZGUgfSBmcm9tICd0cy1tb3JwaCc7XG5cbmltcG9ydCB0eXBlIHsgVHlwZUluZm8gfSBmcm9tICcuL2FwaS1kb2MtdHlwZXMudHMnO1xuXG5pbXBvcnQgeyBHRU5FUklDX1RZUEVfUEFSQU1TIH0gZnJvbSAnLi9hcGktZG9jLWNvbnN0YW50cy50cyc7XG5pbXBvcnQge1xuICBleHRyYWN0Q2xhc3NJbmZvLFxuICBleHRyYWN0RW51bUluZm8sXG4gIGV4dHJhY3RJbnRlcmZhY2VJbmZvLFxuICBleHRyYWN0VHlwZUFsaWFzSW5mbyxcbiAgZ2V0RGVzY3JpcHRpb24sXG4gIGdldEV4YW1wbGVzLFxuICBnZXRQYXJhbWV0ZXJEZXNjcmlwdGlvbnMsXG4gIGdldFJlbWFya3MsXG4gIGdldFJldHVybkRlc2NyaXB0aW9uLFxuICBnZXRTaW5jZVxufSBmcm9tICcuL2FwaS1kb2MtanNkb2MudHMnO1xuaW1wb3J0IHsgcmVnaXN0ZXJQYWNrYWdlRGVjbGFyYXRpb24gfSBmcm9tICcuL2FwaS1kb2MtcGFja2FnZS1zaXRlcy50cyc7XG5pbXBvcnQgeyBnZXRBcGlEb2NTZXR0aW5ncyB9IGZyb20gJy4vYXBpLWRvYy1zZXR0aW5ncy50cyc7XG5pbXBvcnQgeyBzaW1wbGlmeVR5cGUgfSBmcm9tICcuL2FwaS1kb2MtdGV4dC11dGlscy50cyc7XG5cbi8qKlxuRGlyZWN0b3J5IG5hbWVzIHdob3NlIGVudGlyZSBzdWJ0cmVlIGlzIGV4Y2x1ZGVkIGZyb20gZG9jdW1lbnRhdGlvbi5cbiAqL1xuY29uc3QgRVhDTFVERURfRElSX1NFR01FTlRTID0gbmV3IFNldChbJ0B0eXBlcycsICdzdHlsZXMnLCAndGVzdC1oZWxwZXJzJ10pO1xuXG4vKipcbiAqIENvbGxlY3QgdG9wLWxldmVsIGV4cG9ydGVkIGZ1bmN0aW9ucy5cbiAqXG4gKiBAcGFyYW0gc3JjIC0gVGhlIHNvdXJjZSBmaWxlLlxuICogQHBhcmFtIHR5cGVzIC0gVGhlIGRvY3VtZW50ZWQgdHlwZXMsIGtleWVkIGJ5IHF1YWxpZmllZCBpZC5cbiAqIEBwYXJhbSBuYW1lc3BhY2UgLSBUaGUgdHlwZSdzIG5hbWVzcGFjZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbGxlY3RGdW5jdGlvbnMoc3JjOiBTb3VyY2VGaWxlLCB0eXBlczogTWFwPHN0cmluZywgVHlwZUluZm8+LCBuYW1lc3BhY2U6IHN0cmluZyk6IHZvaWQge1xuICBmb3IgKGNvbnN0ICRmdW5jdGlvbiBvZiBzcmMuZ2V0RnVuY3Rpb25zKCkpIHtcbiAgICBpZiAoISRmdW5jdGlvbi5pc0V4cG9ydGVkKCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBuYW1lID0gJGZ1bmN0aW9uLmdldE5hbWUoKTtcbiAgICBpZiAoIW5hbWUpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBrZXkgPSBxdWFsaWZpZWRLZXkobmFtZXNwYWNlLCBuYW1lKTtcbiAgICBpZiAodHlwZXMuaGFzKGtleSkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBwYXJhbWV0ZXJEZXNjcmlwdGlvbnMgPSBnZXRQYXJhbWV0ZXJEZXNjcmlwdGlvbnMoJGZ1bmN0aW9uKTtcbiAgICBjb25zdCBwYXJhbXMgPSAkZnVuY3Rpb24uZ2V0UGFyYW1ldGVycygpLm1hcCgocCkgPT4gKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBwYXJhbWV0ZXJEZXNjcmlwdGlvbnMuZ2V0KHAuZ2V0TmFtZSgpKSA/PyAnJyxcbiAgICAgIG5hbWU6IHAuZ2V0TmFtZSgpLFxuICAgICAgdHlwZTogc2ltcGxpZnlUeXBlKHAuZ2V0VHlwZSgpLmdldFRleHQoKSlcbiAgICB9KSk7XG4gICAgY29uc3QgcGFyYW1ldGVyU3RyaW5nID0gcGFyYW1zLm1hcCgocCkgPT4gYCR7cC5uYW1lfTogJHtwLnR5cGV9YCkuam9pbignLCAnKTtcbiAgICBjb25zdCByZXR1cm5UeXBlID0gc2ltcGxpZnlUeXBlKCRmdW5jdGlvbi5nZXRSZXR1cm5UeXBlKCkuZ2V0VGV4dCgpKTtcbiAgICBjb25zdCBzaWduYXR1cmUgPSBgJHtuYW1lfSgke3BhcmFtZXRlclN0cmluZ30pYDtcbiAgICB0eXBlcy5zZXQoa2V5LCB7XG4gICAgICBiYXNlVHlwZXM6IFtdLFxuICAgICAgZGVzY3JpcHRpb246IGdldERlc2NyaXB0aW9uKCRmdW5jdGlvbiksXG4gICAgICBlbnVtTWVtYmVyczogW10sXG4gICAgICBleGFtcGxlczogZ2V0RXhhbXBsZXMoJGZ1bmN0aW9uKSxcbiAgICAgIGltcGxlbWVudHNUeXBlczogW10sXG4gICAgICBraW5kOiAnZnVuY3Rpb24nLFxuICAgICAgbWV0aG9kczogW3tcbiAgICAgICAgZGVzY3JpcHRpb246IGdldERlc2NyaXB0aW9uKCRmdW5jdGlvbiksXG4gICAgICAgIGV4YW1wbGVzOiBnZXRFeGFtcGxlcygkZnVuY3Rpb24pLFxuICAgICAgICBpbmhlcml0ZWRGcm9tOiAnJyxcbiAgICAgICAgaXNTdGF0aWM6IGZhbHNlLFxuICAgICAgICBuYW1lLFxuICAgICAgICBvdmVybG9hZEtleTogbmFtZSxcbiAgICAgICAgcGFyYW1ldGVyczogcGFyYW1zLFxuICAgICAgICByZW1hcmtzOiBnZXRSZW1hcmtzKCRmdW5jdGlvbiksXG4gICAgICAgIHJldHVybkRlc2NyaXB0aW9uOiBnZXRSZXR1cm5EZXNjcmlwdGlvbigkZnVuY3Rpb24pLFxuICAgICAgICByZXR1cm5UeXBlLFxuICAgICAgICBzaWduYXR1cmUsXG4gICAgICAgIHNpbmNlOiBnZXRTaW5jZSgkZnVuY3Rpb24pLFxuICAgICAgICB0eXBlOiAnJ1xuICAgICAgfV0sXG4gICAgICBuYW1lLFxuICAgICAgbmFtZXNwYWNlLFxuICAgICAgcHJvcGVydGllczogW10sXG4gICAgICByZW1hcmtzOiBnZXRSZW1hcmtzKCRmdW5jdGlvbiksXG4gICAgICB0eXBlUGFyYW1ldGVyczogJGZ1bmN0aW9uLmdldFR5cGVQYXJhbWV0ZXJzKCkubWFwKCh0cCkgPT4gdHAuZ2V0VGV4dCgpKVxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogUmVjb3JkcyB3aGVyZSBldmVyeSBzeW1ib2wgYSBzb3VyY2UgZmlsZSBpbXBvcnRzIGlzIGRlY2xhcmVkLCBzbyBhIHR5cGUgYW5vdGhlciBkb2N1bWVudGVkIHBhY2thZ2UgZGVjbGFyZXNcbiAqIGxpbmtzIHRvIHRoYXQgcGFja2FnZSdzIHNpdGUuXG4gKlxuICogQHBhcmFtIHNyYyAtIFRoZSBzb3VyY2UgZmlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbGxlY3RQYWNrYWdlRGVjbGFyYXRpb25zKHNyYzogU291cmNlRmlsZSk6IHZvaWQge1xuICBmb3IgKGNvbnN0IGltcG9ydERlY2xhcmF0aW9uIG9mIHNyYy5nZXRJbXBvcnREZWNsYXJhdGlvbnMoKSkge1xuICAgIGZvciAoY29uc3QgbmFtZWRJbXBvcnQgb2YgaW1wb3J0RGVjbGFyYXRpb24uZ2V0TmFtZWRJbXBvcnRzKCkpIHtcbiAgICAgIC8vIEFuIHVucmVzb2x2ZWQgaW1wb3J0IGFsaWFzZXMgdGhlIGNoZWNrZXIncyB1bmtub3duIHN5bWJvbCwgd2hpY2ggaGFzIG5vIGRlY2xhcmF0aW9ucy5cbiAgICAgIC8vIEEgcmVuYW1lZCBpbXBvcnQgY2FycmllcyBpdHMgc3ltYm9sIG9uIHRoZSBsb2NhbCBuYW1lLlxuICAgICAgY29uc3QgbG9jYWxOYW1lTm9kZSA9IG5hbWVkSW1wb3J0LmdldEFsaWFzTm9kZSgpID8/IG5hbWVkSW1wb3J0LmdldE5hbWVOb2RlKCk7XG4gICAgICBjb25zdCBkZWNsYXJhdGlvbnMgPSBsb2NhbE5hbWVOb2RlLmdldFN5bWJvbE9yVGhyb3coKS5nZXRBbGlhc2VkU3ltYm9sT3JUaHJvdygpLmdldERlY2xhcmF0aW9ucygpO1xuICAgICAgZm9yIChjb25zdCBkZWNsYXJhdGlvbiBvZiBkZWNsYXJhdGlvbnMpIHtcbiAgICAgICAgLy8gT25seSBhIHR5cGUgaXMgbGlua2VkIGZyb20gdHlwZSB0ZXh0OyBhIGZ1bmN0aW9uJ3MgbmFtZSBhbHNvIG1hdGNoZXMgd29yZHMgdGhhdCBhcmUgbm90IHJlZmVyZW5jZXMgdG8gaXQuXG4gICAgICAgIGlmIChpc1R5cGVEZWNsYXJhdGlvbihkZWNsYXJhdGlvbikpIHtcbiAgICAgICAgICByZWdpc3RlclBhY2thZ2VEZWNsYXJhdGlvbihuYW1lZEltcG9ydC5nZXROYW1lKCksIGRlY2xhcmF0aW9uLmdldFNvdXJjZUZpbGUoKS5nZXRGaWxlUGF0aCgpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIENvbGxlY3QgdG9wLWxldmVsIGV4cG9ydGVkIHZhcmlhYmxlIGRlY2xhcmF0aW9ucyAoZS5nLiBgZXhwb3J0IGNvbnN0IEVNUFRZID0gJydgKS5cbiAqXG4gKiBAcGFyYW0gc3JjIC0gVGhlIHNvdXJjZSBmaWxlLlxuICogQHBhcmFtIHR5cGVzIC0gVGhlIGRvY3VtZW50ZWQgdHlwZXMsIGtleWVkIGJ5IHF1YWxpZmllZCBpZC5cbiAqIEBwYXJhbSBuYW1lc3BhY2UgLSBUaGUgdHlwZSdzIG5hbWVzcGFjZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbGxlY3RWYXJpYWJsZXMoc3JjOiBTb3VyY2VGaWxlLCB0eXBlczogTWFwPHN0cmluZywgVHlwZUluZm8+LCBuYW1lc3BhY2U6IHN0cmluZyk6IHZvaWQge1xuICBmb3IgKGNvbnN0IHZhcmlhYmxlU3RhdGVtZW50IG9mIHNyYy5nZXRWYXJpYWJsZVN0YXRlbWVudHMoKSkge1xuICAgIGlmICghdmFyaWFibGVTdGF0ZW1lbnQuaXNFeHBvcnRlZCgpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3QgZGVjbGFyYXRpb25LaW5kID0gdmFyaWFibGVTdGF0ZW1lbnQuZ2V0RGVjbGFyYXRpb25LaW5kKCk7XG4gICAgZm9yIChjb25zdCBkZWNsYXJhdGlvbiBvZiB2YXJpYWJsZVN0YXRlbWVudC5nZXREZWNsYXJhdGlvbnMoKSkge1xuICAgICAgY29uc3QgbmFtZSA9IGRlY2xhcmF0aW9uLmdldE5hbWUoKTtcbiAgICAgIGNvbnN0IGtleSA9IHF1YWxpZmllZEtleShuYW1lc3BhY2UsIG5hbWUpO1xuICAgICAgaWYgKHR5cGVzLmhhcyhrZXkpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgdHlwZXMuc2V0KGtleSwge1xuICAgICAgICBiYXNlVHlwZXM6IFtdLFxuICAgICAgICBkZXNjcmlwdGlvbjogZ2V0RGVzY3JpcHRpb24odmFyaWFibGVTdGF0ZW1lbnQpLFxuICAgICAgICBlbnVtTWVtYmVyczogW10sXG4gICAgICAgIGV4YW1wbGVzOiBnZXRFeGFtcGxlcyh2YXJpYWJsZVN0YXRlbWVudCksXG4gICAgICAgIGltcGxlbWVudHNUeXBlczogW10sXG4gICAgICAgIGtpbmQ6ICd2YXJpYWJsZScsXG4gICAgICAgIG1ldGhvZHM6IFtdLFxuICAgICAgICBuYW1lLFxuICAgICAgICBuYW1lc3BhY2UsXG4gICAgICAgIHByb3BlcnRpZXM6IFtdLFxuICAgICAgICByZW1hcmtzOiBnZXRSZW1hcmtzKHZhcmlhYmxlU3RhdGVtZW50KSxcbiAgICAgICAgdHlwZVBhcmFtZXRlcnM6IFtdLFxuICAgICAgICB2YXJpYWJsZUtleXdvcmQ6IGRlY2xhcmF0aW9uS2luZCxcbiAgICAgICAgdmFyaWFibGVUeXBlOiBzaW1wbGlmeVR5cGUoZGVjbGFyYXRpb24uZ2V0VHlwZSgpLmdldFRleHQoKSlcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIENvbXB1dGUgYSBoYXNoIG9mIGV2ZXJ5IGlucHV0IHRoYXQgZGVjaWRlcyB0aGUgZ2VuZXJhdGVkIHBhZ2VzOiB0aGUgZ2VuZXJhdG9yJ3Mgb3duIG1vZHVsZXMsIHRoZSBzZXR0aW5ncyBhbmRcbiAqIHRoZSBlbnRyeSBzb3VyY2UgZmlsZXMuIEFuIHVuY2hhbmdlZCBoYXNoIGxldHMgYSBydW4gc2tpcCB0aGUgZ2VuZXJhdGlvbi5cbiAqXG4gKiBAcGFyYW0gZW50cnlGaWxlcyAtIFRoZSBlbnRyeSBzb3VyY2UgZmlsZXMuXG4gKiBAcGFyYW0gZ2VuZXJhdG9yRGlyZWN0b3J5IC0gVGhlIGZvbGRlciBob2xkaW5nIHRoZSBnZW5lcmF0b3IncyBtb2R1bGVzLlxuICogQHJldHVybnMgVGhlIGhhc2gsIGFzIGhleC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXB1dGVDYWNoZUhhc2goZW50cnlGaWxlczogc3RyaW5nW10sIGdlbmVyYXRvckRpcmVjdG9yeTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgaGFzaCA9IGNyZWF0ZUhhc2goJ3NoYTI1NicpO1xuXG4gIC8vIFRoZSBnZW5lcmF0b3IgaXRzZWxmXG4gIGNvbnN0IGdlbmVyYXRvckZpbGVzID0gcmVhZGRpclN5bmMoZ2VuZXJhdG9yRGlyZWN0b3J5KS5maWx0ZXIoKG5hbWUpID0+ICFuYW1lLmVuZHNXaXRoKCcudGVzdC50cycpKS5zb3J0KCk7XG4gIGZvciAoY29uc3QgZ2VuZXJhdG9yRmlsZSBvZiBnZW5lcmF0b3JGaWxlcykge1xuICAgIGhhc2gudXBkYXRlKGdlbmVyYXRvckZpbGUpO1xuICAgIGhhc2gudXBkYXRlKHJlYWRGaWxlU3luYyhqb2luKGdlbmVyYXRvckRpcmVjdG9yeSwgZ2VuZXJhdG9yRmlsZSksICd1dGYtOCcpKTtcbiAgfVxuXG4gIC8vIFRoZSBzZXR0aW5ncywgd2hpY2ggZXZlcnkgbGluayBhbmQgcGF0aCBkZXBlbmRzIG9uXG4gIGNvbnN0IHNldHRpbmdzID0gZ2V0QXBpRG9jU2V0dGluZ3MoKTtcbiAgaGFzaC51cGRhdGUoSlNPTi5zdHJpbmdpZnkoe1xuICAgIC4uLnNldHRpbmdzLFxuICAgIGV4dGVybmFsVHlwZUxpbmtzOiBbLi4uc2V0dGluZ3MuZXh0ZXJuYWxUeXBlTGlua3NdLFxuICAgIHBhY2thZ2VTaXRlczogWy4uLnNldHRpbmdzLnBhY2thZ2VTaXRlc11cbiAgfSkpO1xuXG4gIC8vIEhhc2ggYWxsIGVudHJ5IHNvdXJjZSBmaWxlc1xuICBmb3IgKGNvbnN0IGZpbGVQYXRoIG9mIFsuLi5lbnRyeUZpbGVzXS5zb3J0KCkpIHtcbiAgICBoYXNoLnVwZGF0ZShmaWxlUGF0aCk7XG4gICAgaGFzaC51cGRhdGUocmVhZEZpbGVTeW5jKGZpbGVQYXRoLCAndXRmLTgnKSk7XG4gIH1cblxuICByZXR1cm4gaGFzaC5kaWdlc3QoJ2hleCcpO1xufVxuXG4vKipcbiAqIENvbXB1dGUgdGhlIG5hbWVzcGFjZSAoUE9TSVggcGF0aCByZWxhdGl2ZSB0byBgc3JjYCwgbm8gZXh0ZW5zaW9uKSBmb3IgYSBzb3VyY2UgZmlsZS5cbiAqXG4gKiBAcGFyYW0gc3JjRGlyZWN0b3J5IC0gVGhlIHNvdXJjZSBmb2xkZXIgdGhlIG5hbWVzcGFjZSBpcyByZWxhdGl2ZSB0by5cbiAqIEBwYXJhbSBmaWxlUGF0aCAtIFRoZSBmaWxlJ3MgcGF0aC5cbiAqIEByZXR1cm5zIFRoZSBuYW1lc3BhY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlTmFtZXNwYWNlKHNyY0RpcmVjdG9yeTogc3RyaW5nLCBmaWxlUGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJlbGF0aXZlKHNyY0RpcmVjdG9yeSwgZmlsZVBhdGgpLnJlcGxhY2VBbGwoJ1xcXFwnLCAnLycpLnJlcGxhY2UoL1xcLnRzJC8sICcnKTtcbn1cblxuLyoqXG4gKiBSZWN1cnNpdmVseSBmaW5kIGFsbCBkb2N1bWVudGFibGUgYCoudHNgIGVudHJ5IGZpbGVzIHVuZGVyIGBzcmNgLlxuICpcbiAqIEV4Y2x1ZGVzOiBgKi50ZXN0LnRzYCAoaW5jbC4gYCouYnJvd3Nlci50ZXN0LnRzYCAvIGAqLmludGVncmF0aW9uLnRlc3QudHNgKSwgYCouZC50c2AsXG4gKiBgaW5kZXgudHNgLCBgX19tZXJnZWQudHNgLCBgc2V0dXAudHNgLCBgKi1zZXR1cC50c2AsIGFuZCBhbnkgc3VidHJlZSB1bmRlciBhIGBAdHlwZXNgLFxuICogYHN0eWxlc2AsIG9yIGB0ZXN0LWhlbHBlcnNgIGRpcmVjdG9yeS5cbiAqXG4gKiBAcGFyYW0gZGlyZWN0b3J5IC0gVGhlIGZvbGRlciB0byBzZWFyY2guXG4gKiBAcmV0dXJucyBUaGUgZW50cnkgZmlsZXMnIHBhdGhzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZEVudHJ5RmlsZXMoZGlyZWN0b3J5OiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHJlc3VsdHM6IHN0cmluZ1tdID0gW107XG4gIGZvciAoY29uc3QgZW50cnkgb2YgcmVhZGRpclN5bmMoZGlyZWN0b3J5LCB7IHdpdGhGaWxlVHlwZXM6IHRydWUgfSkpIHtcbiAgICBjb25zdCBmdWxsUGF0aCA9IGpvaW4oZGlyZWN0b3J5LCBlbnRyeS5uYW1lKTtcbiAgICBpZiAoZW50cnkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgaWYgKEVYQ0xVREVEX0RJUl9TRUdNRU5UUy5oYXMoZW50cnkubmFtZSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICByZXN1bHRzLnB1c2goLi4uZmluZEVudHJ5RmlsZXMoZnVsbFBhdGgpKTtcbiAgICB9IGVsc2UgaWYgKGlzRW50cnlGaWxlKGVudHJ5Lm5hbWUpKSB7XG4gICAgICByZXN1bHRzLnB1c2goZnVsbFBhdGgpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0cztcbn1cblxuLyoqXG4gKiBDb2xsZWN0cyBhIHNvdXJjZSBmaWxlJ3MgZXhwb3J0ZWQgdHlwZSBhbGlhc2VzLCBlbnVtcywgaW50ZXJmYWNlcyBhbmQgY2xhc3Nlcy5cbiAqXG4gKiBAcGFyYW0gc3JjIC0gVGhlIHNvdXJjZSBmaWxlLlxuICogQHBhcmFtIHR5cGVzIC0gVGhlIGRvY3VtZW50ZWQgdHlwZXMsIGtleWVkIGJ5IHF1YWxpZmllZCBpZC5cbiAqIEBwYXJhbSBuYW1lc3BhY2UgLSBUaGUgdHlwZSdzIG5hbWVzcGFjZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb2Nlc3NTb3VyY2VGaWxlKHNyYzogU291cmNlRmlsZSwgdHlwZXM6IE1hcDxzdHJpbmcsIFR5cGVJbmZvPiwgbmFtZXNwYWNlOiBzdHJpbmcpOiB2b2lkIHtcbiAgZm9yIChjb25zdCBhbGlhcyBvZiBzcmMuZ2V0VHlwZUFsaWFzZXMoKSkge1xuICAgIGlmICghYWxpYXMuaXNFeHBvcnRlZCgpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3Qga2V5ID0gcXVhbGlmaWVkS2V5KG5hbWVzcGFjZSwgYWxpYXMuZ2V0TmFtZSgpKTtcbiAgICBpZiAoIXR5cGVzLmhhcyhrZXkpKSB7XG4gICAgICB0eXBlcy5zZXQoa2V5LCBleHRyYWN0VHlwZUFsaWFzSW5mbyhhbGlhcywgbmFtZXNwYWNlKSk7XG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCBlbnVtRGVjbGFyYXRpb24gb2Ygc3JjLmdldEVudW1zKCkpIHtcbiAgICBpZiAoIWVudW1EZWNsYXJhdGlvbi5pc0V4cG9ydGVkKCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBrZXkgPSBxdWFsaWZpZWRLZXkobmFtZXNwYWNlLCBlbnVtRGVjbGFyYXRpb24uZ2V0TmFtZSgpKTtcbiAgICBpZiAoIXR5cGVzLmhhcyhrZXkpKSB7XG4gICAgICB0eXBlcy5zZXQoa2V5LCBleHRyYWN0RW51bUluZm8oZW51bURlY2xhcmF0aW9uLCBuYW1lc3BhY2UpKTtcbiAgICB9XG4gIH1cblxuICBmb3IgKGNvbnN0IGlmYWNlIG9mIHNyYy5nZXRJbnRlcmZhY2VzKCkpIHtcbiAgICBpZiAoIWlmYWNlLmlzRXhwb3J0ZWQoKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IGtleSA9IHF1YWxpZmllZEtleShuYW1lc3BhY2UsIGlmYWNlLmdldE5hbWUoKSk7XG4gICAgaWYgKCF0eXBlcy5oYXMoa2V5KSkge1xuICAgICAgdHlwZXMuc2V0KGtleSwgZXh0cmFjdEludGVyZmFjZUluZm8oaWZhY2UsIG5hbWVzcGFjZSkpO1xuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3QgY2xzIG9mIHNyYy5nZXRDbGFzc2VzKCkpIHtcbiAgICBpZiAoIWNscy5pc0V4cG9ydGVkKCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBuYW1lID0gY2xzLmdldE5hbWUoKTtcbiAgICBpZiAoIW5hbWUpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBrZXkgPSBxdWFsaWZpZWRLZXkobmFtZXNwYWNlLCBuYW1lKTtcbiAgICBpZiAoIXR5cGVzLmhhcyhrZXkpKSB7XG4gICAgICB0eXBlcy5zZXQoa2V5LCBleHRyYWN0Q2xhc3NJbmZvKGNscywgbmFtZXNwYWNlKSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUmVnaXN0ZXIgYWxsIHR5cGUgcGFyYW1ldGVyIG5hbWVzIHNvIHJlbmRlclR5cGVXaXRoTGlua3Mgd29uJ3QgaHlwZXJsaW5rIHRoZW0uXG4gKiBTa2lwIG5hbWVzIHRoYXQgYXJlIGFsc28ga25vd24gdHlwZXMg4oCUIHRob3NlIHNob3VsZCBzdGlsbCBiZSBsaW5rYWJsZS5cbiAqXG4gKiBAcGFyYW0gdHlwZXMgLSBUaGUgZG9jdW1lbnRlZCB0eXBlcywga2V5ZWQgYnkgcXVhbGlmaWVkIGlkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJHZW5lcmljVHlwZVBhcmFtcyh0eXBlczogTWFwPHN0cmluZywgVHlwZUluZm8+KTogdm9pZCB7XG4gIGNvbnN0IGtub3duTmFtZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgZm9yIChjb25zdCBbLCBpbmZvXSBvZiB0eXBlcykge1xuICAgIGtub3duTmFtZXMuYWRkKGluZm8ubmFtZSk7XG4gIH1cbiAgZm9yIChjb25zdCBbLCBpbmZvXSBvZiB0eXBlcykge1xuICAgIGZvciAoY29uc3QgdHAgb2YgaW5mby50eXBlUGFyYW1ldGVycykge1xuICAgICAgY29uc3QgYmFyZVBhcmFtZXRlciA9IHRwLnJlcGxhY2UoL1xccytleHRlbmRzXFxzKy4qJC8sICcnKTtcbiAgICAgIGlmICgha25vd25OYW1lcy5oYXMoYmFyZVBhcmFtZXRlcikpIHtcbiAgICAgICAgR0VORVJJQ19UWVBFX1BBUkFNUy5hZGQoYmFyZVBhcmFtZXRlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGlzRW50cnlGaWxlKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAvLyBUaGUgYC50ZXN0LnRzYCBjbGF1c2UgY292ZXJzICoudGVzdC50cywgKi5icm93c2VyLnRlc3QudHMsICouaW50ZWdyYXRpb24udGVzdC50c1xuICByZXR1cm4gISghbmFtZS5lbmRzV2l0aCgnLnRzJykgfHwgbmFtZS5lbmRzV2l0aCgnLmQudHMnKSB8fCBbJ19fbWVyZ2VkLnRzJywgJ2luZGV4LnRzJywgJ3NldHVwLnRzJ10uaW5jbHVkZXMobmFtZSkgfHwgbmFtZS5lbmRzV2l0aCgnLXNldHVwLnRzJykgfHwgbmFtZS5lbmRzV2l0aCgnLnRlc3QudHMnKSk7XG59XG5cbmZ1bmN0aW9uIGlzVHlwZURlY2xhcmF0aW9uKGRlY2xhcmF0aW9uOiBOb2RlKTogYm9vbGVhbiB7XG4gIHJldHVybiBOb2RlLmlzQ2xhc3NEZWNsYXJhdGlvbihkZWNsYXJhdGlvbikgfHwgTm9kZS5pc0ludGVyZmFjZURlY2xhcmF0aW9uKGRlY2xhcmF0aW9uKSB8fCBOb2RlLmlzVHlwZUFsaWFzRGVjbGFyYXRpb24oZGVjbGFyYXRpb24pIHx8IE5vZGUuaXNFbnVtRGVjbGFyYXRpb24oZGVjbGFyYXRpb24pO1xufVxuXG5mdW5jdGlvbiBxdWFsaWZpZWRLZXkobmFtZXNwYWNlOiBzdHJpbmcsIG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtuYW1lc3BhY2V9IyR7bmFtZX1gO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBLHlCQUEyQjtBQUMzQixxQkFHTztBQUNQLHVCQUdPO0FBQ1Asc0JBQXFCO0FBSXJCLCtCQUFvQztBQUNwQywyQkFXTztBQUNQLG1DQUEyQztBQUMzQyw4QkFBa0M7QUFDbEMsZ0NBQTZCO0FBSzdCLE1BQU0sd0JBQXdCLG9CQUFJLElBQUksQ0FBQyxVQUFVLFVBQVUsY0FBYyxDQUFDO0FBU25FLFNBQVMsaUJBQWlCLEtBQWlCLE9BQThCLFdBQXlCO0FBQ3ZHLGFBQVcsYUFBYSxJQUFJLGFBQWEsR0FBRztBQUMxQyxRQUFJLENBQUMsVUFBVSxXQUFXLEdBQUc7QUFDM0I7QUFBQSxJQUNGO0FBQ0EsVUFBTSxPQUFPLFVBQVUsUUFBUTtBQUMvQixRQUFJLENBQUMsTUFBTTtBQUNUO0FBQUEsSUFDRjtBQUNBLFVBQU0sTUFBTSxhQUFhLFdBQVcsSUFBSTtBQUN4QyxRQUFJLE1BQU0sSUFBSSxHQUFHLEdBQUc7QUFDbEI7QUFBQSxJQUNGO0FBQ0EsVUFBTSw0QkFBd0IsK0NBQXlCLFNBQVM7QUFDaEUsVUFBTSxTQUFTLFVBQVUsY0FBYyxFQUFFLElBQUksQ0FB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
285
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb2NzLXNpdGUvYXBpLWRvYy1zb3VyY2UtcHJvY2Vzc2luZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogU291cmNlIGRpc2NvdmVyeSArIGV4dHJhY3Rpb246IHdhbGtzIGBzcmNgLCBmaWx0ZXJzIHRvIGRvY3VtZW50YWJsZSBlbnRyeSBmaWxlcywgYW5kIHR1cm5zIGVhY2hcbiAqIGZpbGUncyBleHBvcnRlZCBkZWNsYXJhdGlvbnMgaW50byBgVHlwZUluZm9gIGVudHJpZXMga2V5ZWQgYnkgYSBxdWFsaWZpZWQgYCR7bmFtZXNwYWNlfSMke25hbWV9YC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFNvdXJjZUZpbGUgfSBmcm9tICd0cy1tb3JwaCc7XG5cbmltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tICdub2RlOmNyeXB0byc7XG5pbXBvcnQge1xuICByZWFkZGlyU3luYyxcbiAgcmVhZEZpbGVTeW5jXG59IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHtcbiAgam9pbixcbiAgcmVsYXRpdmVcbn0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IE5vZGUgfSBmcm9tICd0cy1tb3JwaCc7XG5cbmltcG9ydCB0eXBlIHsgVHlwZUluZm8gfSBmcm9tICcuL2FwaS1kb2MtdHlwZXMudHMnO1xuXG5pbXBvcnQgeyBHRU5FUklDX1RZUEVfUEFSQU1TIH0gZnJvbSAnLi9hcGktZG9jLWNvbnN0YW50cy50cyc7XG5pbXBvcnQge1xuICBpc0RvY3VtZW50ZWREaXJlY3RvcnlOYW1lLFxuICBpc0RvY3VtZW50ZWRGaWxlTmFtZVxufSBmcm9tICcuL2FwaS1kb2MtZG9jdW1lbnRlZC1maWxlcy50cyc7XG5pbXBvcnQge1xuICBleHRyYWN0Q2xhc3NJbmZvLFxuICBleHRyYWN0RW51bUluZm8sXG4gIGV4dHJhY3RJbnRlcmZhY2VJbmZvLFxuICBleHRyYWN0VHlwZUFsaWFzSW5mbyxcbiAgZ2V0RGVzY3JpcHRpb24sXG4gIGdldEV4YW1wbGVzLFxuICBnZXRQYXJhbWV0ZXJEZXNjcmlwdGlvbnMsXG4gIGdldFJlbWFya3MsXG4gIGdldFJldHVybkRlc2NyaXB0aW9uLFxuICBnZXRTaW5jZVxufSBmcm9tICcuL2FwaS1kb2MtanNkb2MudHMnO1xuaW1wb3J0IHsgcmVnaXN0ZXJQYWNrYWdlRGVjbGFyYXRpb24gfSBmcm9tICcuL2FwaS1kb2MtcGFja2FnZS1zaXRlcy50cyc7XG5pbXBvcnQgeyBnZXRBcGlEb2NTZXR0aW5ncyB9IGZyb20gJy4vYXBpLWRvYy1zZXR0aW5ncy50cyc7XG5pbXBvcnQgeyBzaW1wbGlmeVR5cGUgfSBmcm9tICcuL2FwaS1kb2MtdGV4dC11dGlscy50cyc7XG5cbi8qKlxuICogQ29sbGVjdCB0b3AtbGV2ZWwgZXhwb3J0ZWQgZnVuY3Rpb25zLlxuICpcbiAqIEBwYXJhbSBzcmMgLSBUaGUgc291cmNlIGZpbGUuXG4gKiBAcGFyYW0gdHlwZXMgLSBUaGUgZG9jdW1lbnRlZCB0eXBlcywga2V5ZWQgYnkgcXVhbGlmaWVkIGlkLlxuICogQHBhcmFtIG5hbWVzcGFjZSAtIFRoZSB0eXBlJ3MgbmFtZXNwYWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29sbGVjdEZ1bmN0aW9ucyhzcmM6IFNvdXJjZUZpbGUsIHR5cGVzOiBNYXA8c3RyaW5nLCBUeXBlSW5mbz4sIG5hbWVzcGFjZTogc3RyaW5nKTogdm9pZCB7XG4gIGZvciAoY29uc3QgJGZ1bmN0aW9uIG9mIHNyYy5nZXRGdW5jdGlvbnMoKSkge1xuICAgIGlmICghJGZ1bmN0aW9uLmlzRXhwb3J0ZWQoKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IG5hbWUgPSAkZnVuY3Rpb24uZ2V0TmFtZSgpO1xuICAgIGlmICghbmFtZSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IGtleSA9IHF1YWxpZmllZEtleShuYW1lc3BhY2UsIG5hbWUpO1xuICAgIGlmICh0eXBlcy5oYXMoa2V5KSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IHBhcmFtZXRlckRlc2NyaXB0aW9ucyA9IGdldFBhcmFtZXRlckRlc2NyaXB0aW9ucygkZnVuY3Rpb24pO1xuICAgIGNvbnN0IHBhcmFtcyA9ICRmdW5jdGlvbi5nZXRQYXJhbWV0ZXJzKCkubWFwKChwKSA9PiAoe1xuICAgICAgZGVzY3JpcHRpb246IHBhcmFtZXRlckRlc2NyaXB0aW9ucy5nZXQocC5nZXROYW1lKCkpID8/ICcnLFxuICAgICAgbmFtZTogcC5nZXROYW1lKCksXG4gICAgICB0eXBlOiBzaW1wbGlmeVR5cGUocC5nZXRUeXBlKCkuZ2V0VGV4dCgpKVxuICAgIH0pKTtcbiAgICBjb25zdCBwYXJhbWV0ZXJTdHJpbmcgPSBwYXJhbXMubWFwKChwKSA9PiBgJHtwLm5hbWV9OiAke3AudHlwZX1gKS5qb2luKCcsICcpO1xuICAgIGNvbnN0IHJldHVyblR5cGUgPSBzaW1wbGlmeVR5cGUoJGZ1bmN0aW9uLmdldFJldHVyblR5cGUoKS5nZXRUZXh0KCkpO1xuICAgIGNvbnN0IHNpZ25hdHVyZSA9IGAke25hbWV9KCR7cGFyYW1ldGVyU3RyaW5nfSlgO1xuICAgIHR5cGVzLnNldChrZXksIHtcbiAgICAgIGJhc2VUeXBlczogW10sXG4gICAgICBkZXNjcmlwdGlvbjogZ2V0RGVzY3JpcHRpb24oJGZ1bmN0aW9uKSxcbiAgICAgIGVudW1NZW1iZXJzOiBbXSxcbiAgICAgIGV4YW1wbGVzOiBnZXRFeGFtcGxlcygkZnVuY3Rpb24pLFxuICAgICAgaW1wbGVtZW50c1R5cGVzOiBbXSxcbiAgICAgIGtpbmQ6ICdmdW5jdGlvbicsXG4gICAgICBtZXRob2RzOiBbe1xuICAgICAgICBkZXNjcmlwdGlvbjogZ2V0RGVzY3JpcHRpb24oJGZ1bmN0aW9uKSxcbiAgICAgICAgZXhhbXBsZXM6IGdldEV4YW1wbGVzKCRmdW5jdGlvbiksXG4gICAgICAgIGluaGVyaXRlZEZyb206ICcnLFxuICAgICAgICBpc1N0YXRpYzogZmFsc2UsXG4gICAgICAgIG5hbWUsXG4gICAgICAgIG92ZXJsb2FkS2V5OiBuYW1lLFxuICAgICAgICBwYXJhbWV0ZXJzOiBwYXJhbXMsXG4gICAgICAgIHJlbWFya3M6IGdldFJlbWFya3MoJGZ1bmN0aW9uKSxcbiAgICAgICAgcmV0dXJuRGVzY3JpcHRpb246IGdldFJldHVybkRlc2NyaXB0aW9uKCRmdW5jdGlvbiksXG4gICAgICAgIHJldHVyblR5cGUsXG4gICAgICAgIHNpZ25hdHVyZSxcbiAgICAgICAgc2luY2U6IGdldFNpbmNlKCRmdW5jdGlvbiksXG4gICAgICAgIHR5cGU6ICcnXG4gICAgICB9XSxcbiAgICAgIG5hbWUsXG4gICAgICBuYW1lc3BhY2UsXG4gICAgICBwcm9wZXJ0aWVzOiBbXSxcbiAgICAgIHJlbWFya3M6IGdldFJlbWFya3MoJGZ1bmN0aW9uKSxcbiAgICAgIHR5cGVQYXJhbWV0ZXJzOiAkZnVuY3Rpb24uZ2V0VHlwZVBhcmFtZXRlcnMoKS5tYXAoKHRwKSA9PiB0cC5nZXRUZXh0KCkpXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZWNvcmRzIHdoZXJlIGV2ZXJ5IHN5bWJvbCBhIHNvdXJjZSBmaWxlIGltcG9ydHMgaXMgZGVjbGFyZWQsIHNvIGEgdHlwZSBhbm90aGVyIGRvY3VtZW50ZWQgcGFja2FnZSBkZWNsYXJlc1xuICogbGlua3MgdG8gdGhhdCBwYWNrYWdlJ3Mgc2l0ZS5cbiAqXG4gKiBAcGFyYW0gc3JjIC0gVGhlIHNvdXJjZSBmaWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29sbGVjdFBhY2thZ2VEZWNsYXJhdGlvbnMoc3JjOiBTb3VyY2VGaWxlKTogdm9pZCB7XG4gIGZvciAoY29uc3QgaW1wb3J0RGVjbGFyYXRpb24gb2Ygc3JjLmdldEltcG9ydERlY2xhcmF0aW9ucygpKSB7XG4gICAgZm9yIChjb25zdCBuYW1lZEltcG9ydCBvZiBpbXBvcnREZWNsYXJhdGlvbi5nZXROYW1lZEltcG9ydHMoKSkge1xuICAgICAgLy8gQW4gdW5yZXNvbHZlZCBpbXBvcnQgYWxpYXNlcyB0aGUgY2hlY2tlcidzIHVua25vd24gc3ltYm9sLCB3aGljaCBoYXMgbm8gZGVjbGFyYXRpb25zLlxuICAgICAgLy8gQSByZW5hbWVkIGltcG9ydCBjYXJyaWVzIGl0cyBzeW1ib2wgb24gdGhlIGxvY2FsIG5hbWUuXG4gICAgICBjb25zdCBsb2NhbE5hbWVOb2RlID0gbmFtZWRJbXBvcnQuZ2V0QWxpYXNOb2RlKCkgPz8gbmFtZWRJbXBvcnQuZ2V0TmFtZU5vZGUoKTtcbiAgICAgIGNvbnN0IGRlY2xhcmF0aW9ucyA9IGxvY2FsTmFtZU5vZGUuZ2V0U3ltYm9sT3JUaHJvdygpLmdldEFsaWFzZWRTeW1ib2xPclRocm93KCkuZ2V0RGVjbGFyYXRpb25zKCk7XG4gICAgICBmb3IgKGNvbnN0IGRlY2xhcmF0aW9uIG9mIGRlY2xhcmF0aW9ucykge1xuICAgICAgICAvLyBPbmx5IGEgdHlwZSBpcyBsaW5rZWQgZnJvbSB0eXBlIHRleHQ7IGEgZnVuY3Rpb24ncyBuYW1lIGFsc28gbWF0Y2hlcyB3b3JkcyB0aGF0IGFyZSBub3QgcmVmZXJlbmNlcyB0byBpdC5cbiAgICAgICAgaWYgKGlzVHlwZURlY2xhcmF0aW9uKGRlY2xhcmF0aW9uKSkge1xuICAgICAgICAgIHJlZ2lzdGVyUGFja2FnZURlY2xhcmF0aW9uKG5hbWVkSW1wb3J0LmdldE5hbWUoKSwgZGVjbGFyYXRpb24uZ2V0U291cmNlRmlsZSgpLmdldEZpbGVQYXRoKCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQ29sbGVjdCB0b3AtbGV2ZWwgZXhwb3J0ZWQgdmFyaWFibGUgZGVjbGFyYXRpb25zIChlLmcuIGBleHBvcnQgY29uc3QgRU1QVFkgPSAnJ2ApLlxuICpcbiAqIEBwYXJhbSBzcmMgLSBUaGUgc291cmNlIGZpbGUuXG4gKiBAcGFyYW0gdHlwZXMgLSBUaGUgZG9jdW1lbnRlZCB0eXBlcywga2V5ZWQgYnkgcXVhbGlmaWVkIGlkLlxuICogQHBhcmFtIG5hbWVzcGFjZSAtIFRoZSB0eXBlJ3MgbmFtZXNwYWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29sbGVjdFZhcmlhYmxlcyhzcmM6IFNvdXJjZUZpbGUsIHR5cGVzOiBNYXA8c3RyaW5nLCBUeXBlSW5mbz4sIG5hbWVzcGFjZTogc3RyaW5nKTogdm9pZCB7XG4gIGZvciAoY29uc3QgdmFyaWFibGVTdGF0ZW1lbnQgb2Ygc3JjLmdldFZhcmlhYmxlU3RhdGVtZW50cygpKSB7XG4gICAgaWYgKCF2YXJpYWJsZVN0YXRlbWVudC5pc0V4cG9ydGVkKCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBkZWNsYXJhdGlvbktpbmQgPSB2YXJpYWJsZVN0YXRlbWVudC5nZXREZWNsYXJhdGlvbktpbmQoKTtcbiAgICBmb3IgKGNvbnN0IGRlY2xhcmF0aW9uIG9mIHZhcmlhYmxlU3RhdGVtZW50LmdldERlY2xhcmF0aW9ucygpKSB7XG4gICAgICBjb25zdCBuYW1lID0gZGVjbGFyYXRpb24uZ2V0TmFtZSgpO1xuICAgICAgY29uc3Qga2V5ID0gcXVhbGlmaWVkS2V5KG5hbWVzcGFjZSwgbmFtZSk7XG4gICAgICBpZiAodHlwZXMuaGFzKGtleSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICB0eXBlcy5zZXQoa2V5LCB7XG4gICAgICAgIGJhc2VUeXBlczogW10sXG4gICAgICAgIGRlc2NyaXB0aW9uOiBnZXREZXNjcmlwdGlvbih2YXJpYWJsZVN0YXRlbWVudCksXG4gICAgICAgIGVudW1NZW1iZXJzOiBbXSxcbiAgICAgICAgZXhhbXBsZXM6IGdldEV4YW1wbGVzKHZhcmlhYmxlU3RhdGVtZW50KSxcbiAgICAgICAgaW1wbGVtZW50c1R5cGVzOiBbXSxcbiAgICAgICAga2luZDogJ3ZhcmlhYmxlJyxcbiAgICAgICAgbWV0aG9kczogW10sXG4gICAgICAgIG5hbWUsXG4gICAgICAgIG5hbWVzcGFjZSxcbiAgICAgICAgcHJvcGVydGllczogW10sXG4gICAgICAgIHJlbWFya3M6IGdldFJlbWFya3ModmFyaWFibGVTdGF0ZW1lbnQpLFxuICAgICAgICB0eXBlUGFyYW1ldGVyczogW10sXG4gICAgICAgIHZhcmlhYmxlS2V5d29yZDogZGVjbGFyYXRpb25LaW5kLFxuICAgICAgICB2YXJpYWJsZVR5cGU6IHNpbXBsaWZ5VHlwZShkZWNsYXJhdGlvbi5nZXRUeXBlKCkuZ2V0VGV4dCgpKVxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQ29tcHV0ZSBhIGhhc2ggb2YgZXZlcnkgaW5wdXQgdGhhdCBkZWNpZGVzIHRoZSBnZW5lcmF0ZWQgcGFnZXM6IHRoZSBnZW5lcmF0b3IncyBvd24gbW9kdWxlcywgdGhlIHNldHRpbmdzIGFuZFxuICogdGhlIGVudHJ5IHNvdXJjZSBmaWxlcy4gQW4gdW5jaGFuZ2VkIGhhc2ggbGV0cyBhIHJ1biBza2lwIHRoZSBnZW5lcmF0aW9uLlxuICpcbiAqIEBwYXJhbSBlbnRyeUZpbGVzIC0gVGhlIGVudHJ5IHNvdXJjZSBmaWxlcy5cbiAqIEBwYXJhbSBnZW5lcmF0b3JEaXJlY3RvcnkgLSBUaGUgZm9sZGVyIGhvbGRpbmcgdGhlIGdlbmVyYXRvcidzIG1vZHVsZXMuXG4gKiBAcmV0dXJucyBUaGUgaGFzaCwgYXMgaGV4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZUNhY2hlSGFzaChlbnRyeUZpbGVzOiBzdHJpbmdbXSwgZ2VuZXJhdG9yRGlyZWN0b3J5OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBoYXNoID0gY3JlYXRlSGFzaCgnc2hhMjU2Jyk7XG5cbiAgLy8gVGhlIGdlbmVyYXRvciBpdHNlbGZcbiAgY29uc3QgZ2VuZXJhdG9yRmlsZXMgPSByZWFkZGlyU3luYyhnZW5lcmF0b3JEaXJlY3RvcnkpLmZpbHRlcigobmFtZSkgPT4gIW5hbWUuZW5kc1dpdGgoJy50ZXN0LnRzJykpLnNvcnQoKTtcbiAgZm9yIChjb25zdCBnZW5lcmF0b3JGaWxlIG9mIGdlbmVyYXRvckZpbGVzKSB7XG4gICAgaGFzaC51cGRhdGUoZ2VuZXJhdG9yRmlsZSk7XG4gICAgaGFzaC51cGRhdGUocmVhZEZpbGVTeW5jKGpvaW4oZ2VuZXJhdG9yRGlyZWN0b3J5LCBnZW5lcmF0b3JGaWxlKSwgJ3V0Zi04JykpO1xuICB9XG5cbiAgLy8gVGhlIHNldHRpbmdzLCB3aGljaCBldmVyeSBsaW5rIGFuZCBwYXRoIGRlcGVuZHMgb25cbiAgY29uc3Qgc2V0dGluZ3MgPSBnZXRBcGlEb2NTZXR0aW5ncygpO1xuICBoYXNoLnVwZGF0ZShKU09OLnN0cmluZ2lmeSh7XG4gICAgLi4uc2V0dGluZ3MsXG4gICAgZXh0ZXJuYWxUeXBlTGlua3M6IFsuLi5zZXR0aW5ncy5leHRlcm5hbFR5cGVMaW5rc10sXG4gICAgcGFja2FnZVNpdGVzOiBbLi4uc2V0dGluZ3MucGFja2FnZVNpdGVzXVxuICB9KSk7XG5cbiAgLy8gSGFzaCBhbGwgZW50cnkgc291cmNlIGZpbGVzXG4gIGZvciAoY29uc3QgZmlsZVBhdGggb2YgWy4uLmVudHJ5RmlsZXNdLnNvcnQoKSkge1xuICAgIGhhc2gudXBkYXRlKGZpbGVQYXRoKTtcbiAgICBoYXNoLnVwZGF0ZShyZWFkRmlsZVN5bmMoZmlsZVBhdGgsICd1dGYtOCcpKTtcbiAgfVxuXG4gIHJldHVybiBoYXNoLmRpZ2VzdCgnaGV4Jyk7XG59XG5cbi8qKlxuICogQ29tcHV0ZSB0aGUgbmFtZXNwYWNlIChQT1NJWCBwYXRoIHJlbGF0aXZlIHRvIGBzcmNgLCBubyBleHRlbnNpb24pIGZvciBhIHNvdXJjZSBmaWxlLlxuICpcbiAqIEBwYXJhbSBzcmNEaXJlY3RvcnkgLSBUaGUgc291cmNlIGZvbGRlciB0aGUgbmFtZXNwYWNlIGlzIHJlbGF0aXZlIHRvLlxuICogQHBhcmFtIGZpbGVQYXRoIC0gVGhlIGZpbGUncyBwYXRoLlxuICogQHJldHVybnMgVGhlIG5hbWVzcGFjZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXB1dGVOYW1lc3BhY2Uoc3JjRGlyZWN0b3J5OiBzdHJpbmcsIGZpbGVQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcmVsYXRpdmUoc3JjRGlyZWN0b3J5LCBmaWxlUGF0aCkucmVwbGFjZUFsbCgnXFxcXCcsICcvJykucmVwbGFjZSgvXFwudHMkLywgJycpO1xufVxuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IGZpbmQgYWxsIGRvY3VtZW50YWJsZSBgKi50c2AgZW50cnkgZmlsZXMgdW5kZXIgYHNyY2AuXG4gKlxuICogRXhjbHVkZXM6IGAqLnRlc3QudHNgIChpbmNsLiBgKi5icm93c2VyLnRlc3QudHNgIC8gYCouaW50ZWdyYXRpb24udGVzdC50c2ApLCBgKi5kLnRzYCxcbiAqIGBpbmRleC50c2AsIGBfX21lcmdlZC50c2AsIGBzZXR1cC50c2AsIGAqLXNldHVwLnRzYCwgYW5kIGFueSBzdWJ0cmVlIHVuZGVyIGEgYEB0eXBlc2AsXG4gKiBgc3R5bGVzYCwgb3IgYHRlc3QtaGVscGVyc2AgZGlyZWN0b3J5LlxuICpcbiAqIEBwYXJhbSBkaXJlY3RvcnkgLSBUaGUgZm9sZGVyIHRvIHNlYXJjaC5cbiAqIEByZXR1cm5zIFRoZSBlbnRyeSBmaWxlcycgcGF0aHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kRW50cnlGaWxlcyhkaXJlY3Rvcnk6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgY29uc3QgcmVzdWx0czogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCBlbnRyeSBvZiByZWFkZGlyU3luYyhkaXJlY3RvcnksIHsgd2l0aEZpbGVUeXBlczogdHJ1ZSB9KSkge1xuICAgIGNvbnN0IGZ1bGxQYXRoID0gam9pbihkaXJlY3RvcnksIGVudHJ5Lm5hbWUpO1xuICAgIGlmIChlbnRyeS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICBpZiAoIWlzRG9jdW1lbnRlZERpcmVjdG9yeU5hbWUoZW50cnkubmFtZSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICByZXN1bHRzLnB1c2goLi4uZmluZEVudHJ5RmlsZXMoZnVsbFBhdGgpKTtcbiAgICB9IGVsc2UgaWYgKGlzRG9jdW1lbnRlZEZpbGVOYW1lKGVudHJ5Lm5hbWUpKSB7XG4gICAgICByZXN1bHRzLnB1c2goZnVsbFBhdGgpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0cztcbn1cblxuLyoqXG4gKiBDb2xsZWN0cyBhIHNvdXJjZSBmaWxlJ3MgZXhwb3J0ZWQgdHlwZSBhbGlhc2VzLCBlbnVtcywgaW50ZXJmYWNlcyBhbmQgY2xhc3Nlcy5cbiAqXG4gKiBAcGFyYW0gc3JjIC0gVGhlIHNvdXJjZSBmaWxlLlxuICogQHBhcmFtIHR5cGVzIC0gVGhlIGRvY3VtZW50ZWQgdHlwZXMsIGtleWVkIGJ5IHF1YWxpZmllZCBpZC5cbiAqIEBwYXJhbSBuYW1lc3BhY2UgLSBUaGUgdHlwZSdzIG5hbWVzcGFjZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb2Nlc3NTb3VyY2VGaWxlKHNyYzogU291cmNlRmlsZSwgdHlwZXM6IE1hcDxzdHJpbmcsIFR5cGVJbmZvPiwgbmFtZXNwYWNlOiBzdHJpbmcpOiB2b2lkIHtcbiAgZm9yIChjb25zdCBhbGlhcyBvZiBzcmMuZ2V0VHlwZUFsaWFzZXMoKSkge1xuICAgIGlmICghYWxpYXMuaXNFeHBvcnRlZCgpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3Qga2V5ID0gcXVhbGlmaWVkS2V5KG5hbWVzcGFjZSwgYWxpYXMuZ2V0TmFtZSgpKTtcbiAgICBpZiAoIXR5cGVzLmhhcyhrZXkpKSB7XG4gICAgICB0eXBlcy5zZXQoa2V5LCBleHRyYWN0VHlwZUFsaWFzSW5mbyhhbGlhcywgbmFtZXNwYWNlKSk7XG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCBlbnVtRGVjbGFyYXRpb24gb2Ygc3JjLmdldEVudW1zKCkpIHtcbiAgICBpZiAoIWVudW1EZWNsYXJhdGlvbi5pc0V4cG9ydGVkKCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBrZXkgPSBxdWFsaWZpZWRLZXkobmFtZXNwYWNlLCBlbnVtRGVjbGFyYXRpb24uZ2V0TmFtZSgpKTtcbiAgICBpZiAoIXR5cGVzLmhhcyhrZXkpKSB7XG4gICAgICB0eXBlcy5zZXQoa2V5LCBleHRyYWN0RW51bUluZm8oZW51bURlY2xhcmF0aW9uLCBuYW1lc3BhY2UpKTtcbiAgICB9XG4gIH1cblxuICBmb3IgKGNvbnN0IGlmYWNlIG9mIHNyYy5nZXRJbnRlcmZhY2VzKCkpIHtcbiAgICBpZiAoIWlmYWNlLmlzRXhwb3J0ZWQoKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IGtleSA9IHF1YWxpZmllZEtleShuYW1lc3BhY2UsIGlmYWNlLmdldE5hbWUoKSk7XG4gICAgaWYgKCF0eXBlcy5oYXMoa2V5KSkge1xuICAgICAgdHlwZXMuc2V0KGtleSwgZXh0cmFjdEludGVyZmFjZUluZm8oaWZhY2UsIG5hbWVzcGFjZSkpO1xuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3QgY2xzIG9mIHNyYy5nZXRDbGFzc2VzKCkpIHtcbiAgICBpZiAoIWNscy5pc0V4cG9ydGVkKCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBuYW1lID0gY2xzLmdldE5hbWUoKTtcbiAgICBpZiAoIW5hbWUpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBrZXkgPSBxdWFsaWZpZWRLZXkobmFtZXNwYWNlLCBuYW1lKTtcbiAgICBpZiAoIXR5cGVzLmhhcyhrZXkpKSB7XG4gICAgICB0eXBlcy5zZXQoa2V5LCBleHRyYWN0Q2xhc3NJbmZvKGNscywgbmFtZXNwYWNlKSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUmVnaXN0ZXIgYWxsIHR5cGUgcGFyYW1ldGVyIG5hbWVzIHNvIHJlbmRlclR5cGVXaXRoTGlua3Mgd29uJ3QgaHlwZXJsaW5rIHRoZW0uXG4gKiBTa2lwIG5hbWVzIHRoYXQgYXJlIGFsc28ga25vd24gdHlwZXMg4oCUIHRob3NlIHNob3VsZCBzdGlsbCBiZSBsaW5rYWJsZS5cbiAqXG4gKiBAcGFyYW0gdHlwZXMgLSBUaGUgZG9jdW1lbnRlZCB0eXBlcywga2V5ZWQgYnkgcXVhbGlmaWVkIGlkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJHZW5lcmljVHlwZVBhcmFtcyh0eXBlczogTWFwPHN0cmluZywgVHlwZUluZm8+KTogdm9pZCB7XG4gIGNvbnN0IGtub3duTmFtZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgZm9yIChjb25zdCBbLCBpbmZvXSBvZiB0eXBlcykge1xuICAgIGtub3duTmFtZXMuYWRkKGluZm8ubmFtZSk7XG4gIH1cbiAgZm9yIChjb25zdCBbLCBpbmZvXSBvZiB0eXBlcykge1xuICAgIGZvciAoY29uc3QgdHAgb2YgaW5mby50eXBlUGFyYW1ldGVycykge1xuICAgICAgY29uc3QgYmFyZVBhcmFtZXRlciA9IHRwLnJlcGxhY2UoL1xccytleHRlbmRzXFxzKy4qJC8sICcnKTtcbiAgICAgIGlmICgha25vd25OYW1lcy5oYXMoYmFyZVBhcmFtZXRlcikpIHtcbiAgICAgICAgR0VORVJJQ19UWVBFX1BBUkFNUy5hZGQoYmFyZVBhcmFtZXRlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGlzVHlwZURlY2xhcmF0aW9uKGRlY2xhcmF0aW9uOiBOb2RlKTogYm9vbGVhbiB7XG4gIHJldHVybiBOb2RlLmlzQ2xhc3NEZWNsYXJhdGlvbihkZWNsYXJhdGlvbikgfHwgTm9kZS5pc0ludGVyZmFjZURlY2xhcmF0aW9uKGRlY2xhcmF0aW9uKSB8fCBOb2RlLmlzVHlwZUFsaWFzRGVjbGFyYXRpb24oZGVjbGFyYXRpb24pIHx8IE5vZGUuaXNFbnVtRGVjbGFyYXRpb24oZGVjbGFyYXRpb24pO1xufVxuXG5mdW5jdGlvbiBxdWFsaWZpZWRLZXkobmFtZXNwYWNlOiBzdHJpbmcsIG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtuYW1lc3BhY2V9IyR7bmFtZX1gO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FB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
@@ -34,6 +34,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
34
34
  var docs_site_exports = {};
35
35
  __export(docs_site_exports, {
36
36
  "api-doc-constants": () => api_doc_constants,
37
+ "api-doc-documented-files": () => api_doc_documented_files,
37
38
  "api-doc-jsdoc": () => api_doc_jsdoc,
38
39
  "api-doc-link-rendering": () => api_doc_link_rendering,
39
40
  "api-doc-package-sites": () => api_doc_package_sites,
@@ -61,6 +62,7 @@ __export(docs_site_exports, {
61
62
  });
62
63
  module.exports = __toCommonJS(docs_site_exports);
63
64
  var api_doc_constants = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./api-doc-constants.cjs')), 1);
65
+ var api_doc_documented_files = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./api-doc-documented-files.cjs')), 1);
64
66
  var api_doc_jsdoc = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./api-doc-jsdoc.cjs')), 1);
65
67
  var api_doc_link_rendering = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./api-doc-link-rendering.cjs')), 1);
66
68
  var api_doc_package_sites = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./api-doc-package-sites.cjs')), 1);
@@ -88,6 +90,7 @@ var unrendered_alerts = __toESM(((module) => module && module.__esModule && 'def
88
90
  // Annotate the CommonJS export names for ESM import in node:
89
91
  0 && (module.exports = {
90
92
  "api-doc-constants": null,
93
+ "api-doc-documented-files": null,
91
94
  "api-doc-jsdoc": null,
92
95
  "api-doc-link-rendering": null,
93
96
  "api-doc-package-sites": null,
@@ -113,4 +116,4 @@ var unrendered_alerts = __toESM(((module) => module && module.__esModule && 'def
113
116
  "satteri-relative-links": null,
114
117
  "unrendered-alerts": null
115
118
  });
116
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2RvY3Mtc2l0ZS9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzICdhcGktZG9jLWNvbnN0YW50cycgZnJvbSAnLi9hcGktZG9jLWNvbnN0YW50cy50cyc7XG5leHBvcnQgKiBhcyAnYXBpLWRvYy1qc2RvYycgZnJvbSAnLi9hcGktZG9jLWpzZG9jLnRzJztcbmV4cG9ydCAqIGFzICdhcGktZG9jLWxpbmstcmVuZGVyaW5nJyBmcm9tICcuL2FwaS1kb2MtbGluay1yZW5kZXJpbmcudHMnO1xuZXhwb3J0ICogYXMgJ2FwaS1kb2MtcGFja2FnZS1zaXRlcycgZnJvbSAnLi9hcGktZG9jLXBhY2thZ2Utc2l0ZXMudHMnO1xuZXhwb3J0ICogYXMgJ2FwaS1kb2MtcGFnZS1nZW5lcmF0aW9uJyBmcm9tICcuL2FwaS1kb2MtcGFnZS1nZW5lcmF0aW9uLnRzJztcbmV4cG9ydCAqIGFzICdhcGktZG9jLXJvdXRlLXNlZ21lbnRzJyBmcm9tICcuL2FwaS1kb2Mtcm91dGUtc2VnbWVudHMudHMnO1xuZXhwb3J0ICogYXMgJ2FwaS1kb2Mtc2V0dGluZ3MnIGZyb20gJy4vYXBpLWRvYy1zZXR0aW5ncy50cyc7XG5leHBvcnQgKiBhcyAnYXBpLWRvYy1zb3VyY2UtcHJvY2Vzc2luZycgZnJvbSAnLi9hcGktZG9jLXNvdXJjZS1wcm9jZXNzaW5nLnRzJztcbmV4cG9ydCAqIGFzICdhcGktZG9jLXRleHQtdXRpbHMnIGZyb20gJy4vYXBpLWRvYy10ZXh0LXV0aWxzLnRzJztcbmV4cG9ydCAqIGFzICdhcGktZG9jLXR5cGUtbWVyZ2luZycgZnJvbSAnLi9hcGktZG9jLXR5cGUtbWVyZ2luZy50cyc7XG5leHBvcnQgKiBhcyAnYXBpLWRvYy10eXBlcycgZnJvbSAnLi9hcGktZG9jLXR5cGVzLnRzJztcbmV4cG9ydCAqIGFzICdhcGktZG9jcycgZnJvbSAnLi9hcGktZG9jcy50cyc7XG5leHBvcnQgKiBhcyAnYXN0cm8tY29uZmlnJyBmcm9tICcuL2FzdHJvLWNvbmZpZy50cyc7XG5leHBvcnQgKiBhcyAnZG9jcy1saW5rcycgZnJvbSAnLi9kb2NzLWxpbmtzLnRzJztcbmV4cG9ydCAqIGFzICdkb2NzLXNpdGUtYXNzZXRzJyBmcm9tICcuL2RvY3Mtc2l0ZS1hc3NldHMudHMnO1xuZXhwb3J0ICogYXMgJ2RvY3Mtc2l0ZS1jb21tYW5kcycgZnJvbSAnLi9kb2NzLXNpdGUtY29tbWFuZHMudHMnO1xuZXhwb3J0ICogYXMgJ2RvY3Mtc2l0ZS1jb25maWcnIGZyb20gJy4vZG9jcy1zaXRlLWNvbmZpZy50cyc7XG5leHBvcnQgKiBhcyAnbGluay1jaGVjaycgZnJvbSAnLi9saW5rLWNoZWNrLnRzJztcbmV4cG9ydCAqIGFzICdvZy1pbWFnZS1wYWdlJyBmcm9tICcuL29nLWltYWdlLXBhZ2UudHMnO1xuZXhwb3J0ICogYXMgJ29nLWltYWdlJyBmcm9tICcuL29nLWltYWdlLnRzJztcbmV4cG9ydCAqIGFzICdvZy1pbWFnZXMnIGZyb20gJy4vb2ctaW1hZ2VzLnRzJztcbmV4cG9ydCAqIGFzICdyb3V0ZS1kYXRhJyBmcm9tICcuL3JvdXRlLWRhdGEudHMnO1xuZXhwb3J0ICogYXMgJ3NhdHRlcmktZ2l0aHViLWFsZXJ0cycgZnJvbSAnLi9zYXR0ZXJpLWdpdGh1Yi1hbGVydHMudHMnO1xuZXhwb3J0ICogYXMgJ3NhdHRlcmktcmVsYXRpdmUtbGlua3MnIGZyb20gJy4vc2F0dGVyaS1yZWxhdGl2ZS1saW5rcy50cyc7XG5leHBvcnQgKiBhcyAndW5yZW5kZXJlZC1hbGVydHMnIGZyb20gJy4vdW5yZW5kZXJlZC1hbGVydHMudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBLDZCQUFBQTtBQUFBLEVBQUEsdUJBQUFDO0FBQUEsRUFBQSxnQ0FBQUM7QUFBQSxFQUFBLCtCQUFBQztBQUFBLEVBQUEsaUNBQUFDO0FBQUEsRUFBQSxnQ0FBQUM7QUFBQSxFQUFBLDBCQUFBQztBQUFBLEVBQUEsbUNBQUFDO0FBQUEsRUFBQSw0QkFBQUM7QUFBQSxFQUFBLDhCQUFBQztBQUFBLEVBQUEsdUJBQUFDO0FBQUEsRUFBQSxrQkFBQUM7QUFBQSxFQUFBLHNCQUFBQztBQUFBLEVBQUEsb0JBQUFDO0FBQUEsRUFBQSwwQkFBQUM7QUFBQSxFQUFBLDRCQUFBQztBQUFBLEVBQUEsMEJBQUFDO0FBQUEsRUFBQSxvQkFBQUM7QUFBQSxFQUFBLGtCQUFBQztBQUFBLEVBQUEsdUJBQUFDO0FBQUEsRUFBQSxtQkFBQUM7QUFBQSxFQUFBLG9CQUFBQztBQUFBLEVBQUEsK0JBQUFDO0FBQUEsRUFBQSxnQ0FBQUM7QUFBQSxFQUFBLDJCQUFBQztBQUFBO0FBQUE7QUFFQSxJQUFBeEIsb0JBQXFDO0FBQ3JDLElBQUFDLGdCQUFpQztBQUNqQyxJQUFBQyx5QkFBMEM7QUFDMUMsSUFBQUMsd0JBQXlDO0FBQ3pDLElBQUFDLDBCQUEyQztBQUMzQyxJQUFBQyx5QkFBMEM7QUFDMUMsSUFBQUMsbUJBQW9DO0FBQ3BDLElBQUFDLDRCQUE2QztBQUM3QyxJQUFBQyxxQkFBc0M7QUFDdEMsSUFBQUMsdUJBQXdDO0FBQ3hDLElBQUFDLGdCQUFpQztBQUNqQyxJQUFBQyxXQUE0QjtBQUM1QixJQUFBQyxlQUFnQztBQUNoQyxJQUFBQyxhQUE4QjtBQUM5QixJQUFBQyxtQkFBb0M7QUFDcEMsSUFBQUMscUJBQXNDO0FBQ3RDLElBQUFDLG1CQUFvQztBQUNwQyxJQUFBQyxhQUE4QjtBQUM5QixJQUFBRSxnQkFBaUM7QUFDakMsSUFBQUQsV0FBNEI7QUFDNUIsSUFBQUUsWUFBNkI7QUFDN0IsSUFBQUMsYUFBOEI7QUFDOUIsSUFBQUMsd0JBQXlDO0FBQ3pDLElBQUFDLHlCQUEwQztBQUMxQyxJQUFBQyxvQkFBcUM7IiwKICAibmFtZXMiOiBbImFwaS1kb2MtY29uc3RhbnRzIiwgImFwaS1kb2MtanNkb2MiLCAiYXBpLWRvYy1saW5rLXJlbmRlcmluZyIsICJhcGktZG9jLXBhY2thZ2Utc2l0ZXMiLCAiYXBpLWRvYy1wYWdlLWdlbmVyYXRpb24iLCAiYXBpLWRvYy1yb3V0ZS1zZWdtZW50cyIsICJhcGktZG9jLXNldHRpbmdzIiwgImFwaS1kb2Mtc291cmNlLXByb2Nlc3NpbmciLCAiYXBpLWRvYy10ZXh0LXV0aWxzIiwgImFwaS1kb2MtdHlwZS1tZXJnaW5nIiwgImFwaS1kb2MtdHlwZXMiLCAiYXBpLWRvY3MiLCAiYXN0cm8tY29uZmlnIiwgImRvY3MtbGlua3MiLCAiZG9jcy1zaXRlLWFzc2V0cyIsICJkb2NzLXNpdGUtY29tbWFuZHMiLCAiZG9jcy1zaXRlLWNvbmZpZyIsICJsaW5rLWNoZWNrIiwgIm9nLWltYWdlIiwgIm9nLWltYWdlLXBhZ2UiLCAib2ctaW1hZ2VzIiwgInJvdXRlLWRhdGEiLCAic2F0dGVyaS1naXRodWItYWxlcnRzIiwgInNhdHRlcmktcmVsYXRpdmUtbGlua3MiLCAidW5yZW5kZXJlZC1hbGVydHMiXQp9Cg==
119
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2RvY3Mtc2l0ZS9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzICdhcGktZG9jLWNvbnN0YW50cycgZnJvbSAnLi9hcGktZG9jLWNvbnN0YW50cy50cyc7XG5leHBvcnQgKiBhcyAnYXBpLWRvYy1kb2N1bWVudGVkLWZpbGVzJyBmcm9tICcuL2FwaS1kb2MtZG9jdW1lbnRlZC1maWxlcy50cyc7XG5leHBvcnQgKiBhcyAnYXBpLWRvYy1qc2RvYycgZnJvbSAnLi9hcGktZG9jLWpzZG9jLnRzJztcbmV4cG9ydCAqIGFzICdhcGktZG9jLWxpbmstcmVuZGVyaW5nJyBmcm9tICcuL2FwaS1kb2MtbGluay1yZW5kZXJpbmcudHMnO1xuZXhwb3J0ICogYXMgJ2FwaS1kb2MtcGFja2FnZS1zaXRlcycgZnJvbSAnLi9hcGktZG9jLXBhY2thZ2Utc2l0ZXMudHMnO1xuZXhwb3J0ICogYXMgJ2FwaS1kb2MtcGFnZS1nZW5lcmF0aW9uJyBmcm9tICcuL2FwaS1kb2MtcGFnZS1nZW5lcmF0aW9uLnRzJztcbmV4cG9ydCAqIGFzICdhcGktZG9jLXJvdXRlLXNlZ21lbnRzJyBmcm9tICcuL2FwaS1kb2Mtcm91dGUtc2VnbWVudHMudHMnO1xuZXhwb3J0ICogYXMgJ2FwaS1kb2Mtc2V0dGluZ3MnIGZyb20gJy4vYXBpLWRvYy1zZXR0aW5ncy50cyc7XG5leHBvcnQgKiBhcyAnYXBpLWRvYy1zb3VyY2UtcHJvY2Vzc2luZycgZnJvbSAnLi9hcGktZG9jLXNvdXJjZS1wcm9jZXNzaW5nLnRzJztcbmV4cG9ydCAqIGFzICdhcGktZG9jLXRleHQtdXRpbHMnIGZyb20gJy4vYXBpLWRvYy10ZXh0LXV0aWxzLnRzJztcbmV4cG9ydCAqIGFzICdhcGktZG9jLXR5cGUtbWVyZ2luZycgZnJvbSAnLi9hcGktZG9jLXR5cGUtbWVyZ2luZy50cyc7XG5leHBvcnQgKiBhcyAnYXBpLWRvYy10eXBlcycgZnJvbSAnLi9hcGktZG9jLXR5cGVzLnRzJztcbmV4cG9ydCAqIGFzICdhcGktZG9jcycgZnJvbSAnLi9hcGktZG9jcy50cyc7XG5leHBvcnQgKiBhcyAnYXN0cm8tY29uZmlnJyBmcm9tICcuL2FzdHJvLWNvbmZpZy50cyc7XG5leHBvcnQgKiBhcyAnZG9jcy1saW5rcycgZnJvbSAnLi9kb2NzLWxpbmtzLnRzJztcbmV4cG9ydCAqIGFzICdkb2NzLXNpdGUtYXNzZXRzJyBmcm9tICcuL2RvY3Mtc2l0ZS1hc3NldHMudHMnO1xuZXhwb3J0ICogYXMgJ2RvY3Mtc2l0ZS1jb21tYW5kcycgZnJvbSAnLi9kb2NzLXNpdGUtY29tbWFuZHMudHMnO1xuZXhwb3J0ICogYXMgJ2RvY3Mtc2l0ZS1jb25maWcnIGZyb20gJy4vZG9jcy1zaXRlLWNvbmZpZy50cyc7XG5leHBvcnQgKiBhcyAnbGluay1jaGVjaycgZnJvbSAnLi9saW5rLWNoZWNrLnRzJztcbmV4cG9ydCAqIGFzICdvZy1pbWFnZS1wYWdlJyBmcm9tICcuL29nLWltYWdlLXBhZ2UudHMnO1xuZXhwb3J0ICogYXMgJ29nLWltYWdlJyBmcm9tICcuL29nLWltYWdlLnRzJztcbmV4cG9ydCAqIGFzICdvZy1pbWFnZXMnIGZyb20gJy4vb2ctaW1hZ2VzLnRzJztcbmV4cG9ydCAqIGFzICdyb3V0ZS1kYXRhJyBmcm9tICcuL3JvdXRlLWRhdGEudHMnO1xuZXhwb3J0ICogYXMgJ3NhdHRlcmktZ2l0aHViLWFsZXJ0cycgZnJvbSAnLi9zYXR0ZXJpLWdpdGh1Yi1hbGVydHMudHMnO1xuZXhwb3J0ICogYXMgJ3NhdHRlcmktcmVsYXRpdmUtbGlua3MnIGZyb20gJy4vc2F0dGVyaS1yZWxhdGl2ZS1saW5rcy50cyc7XG5leHBvcnQgKiBhcyAndW5yZW5kZXJlZC1hbGVydHMnIGZyb20gJy4vdW5yZW5kZXJlZC1hbGVydHMudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBLDZCQUFBQTtBQUFBLEVBQUEsa0NBQUFDO0FBQUEsRUFBQSx1QkFBQUM7QUFBQSxFQUFBLGdDQUFBQztBQUFBLEVBQUEsK0JBQUFDO0FBQUEsRUFBQSxpQ0FBQUM7QUFBQSxFQUFBLGdDQUFBQztBQUFBLEVBQUEsMEJBQUFDO0FBQUEsRUFBQSxtQ0FBQUM7QUFBQSxFQUFBLDRCQUFBQztBQUFBLEVBQUEsOEJBQUFDO0FBQUEsRUFBQSx1QkFBQUM7QUFBQSxFQUFBLGtCQUFBQztBQUFBLEVBQUEsc0JBQUFDO0FBQUEsRUFBQSxvQkFBQUM7QUFBQSxFQUFBLDBCQUFBQztBQUFBLEVBQUEsNEJBQUFDO0FBQUEsRUFBQSwwQkFBQUM7QUFBQSxFQUFBLG9CQUFBQztBQUFBLEVBQUEsa0JBQUFDO0FBQUEsRUFBQSx1QkFBQUM7QUFBQSxFQUFBLG1CQUFBQztBQUFBLEVBQUEsb0JBQUFDO0FBQUEsRUFBQSwrQkFBQUM7QUFBQSxFQUFBLGdDQUFBQztBQUFBLEVBQUEsMkJBQUFDO0FBQUE7QUFBQTtBQUVBLElBQUF6QixvQkFBcUM7QUFDckMsSUFBQUMsMkJBQTRDO0FBQzVDLElBQUFDLGdCQUFpQztBQUNqQyxJQUFBQyx5QkFBMEM7QUFDMUMsSUFBQUMsd0JBQXlDO0FBQ3pDLElBQUFDLDBCQUEyQztBQUMzQyxJQUFBQyx5QkFBMEM7QUFDMUMsSUFBQUMsbUJBQW9DO0FBQ3BDLElBQUFDLDRCQUE2QztBQUM3QyxJQUFBQyxxQkFBc0M7QUFDdEMsSUFBQUMsdUJBQXdDO0FBQ3hDLElBQUFDLGdCQUFpQztBQUNqQyxJQUFBQyxXQUE0QjtBQUM1QixJQUFBQyxlQUFnQztBQUNoQyxJQUFBQyxhQUE4QjtBQUM5QixJQUFBQyxtQkFBb0M7QUFDcEMsSUFBQUMscUJBQXNDO0FBQ3RDLElBQUFDLG1CQUFvQztBQUNwQyxJQUFBQyxhQUE4QjtBQUM5QixJQUFBRSxnQkFBaUM7QUFDakMsSUFBQUQsV0FBNEI7QUFDNUIsSUFBQUUsWUFBNkI7QUFDN0IsSUFBQUMsYUFBOEI7QUFDOUIsSUFBQUMsd0JBQXlDO0FBQ3pDLElBQUFDLHlCQUEwQztBQUMxQyxJQUFBQyxvQkFBcUM7IiwKICAibmFtZXMiOiBbImFwaS1kb2MtY29uc3RhbnRzIiwgImFwaS1kb2MtZG9jdW1lbnRlZC1maWxlcyIsICJhcGktZG9jLWpzZG9jIiwgImFwaS1kb2MtbGluay1yZW5kZXJpbmciLCAiYXBpLWRvYy1wYWNrYWdlLXNpdGVzIiwgImFwaS1kb2MtcGFnZS1nZW5lcmF0aW9uIiwgImFwaS1kb2Mtcm91dGUtc2VnbWVudHMiLCAiYXBpLWRvYy1zZXR0aW5ncyIsICJhcGktZG9jLXNvdXJjZS1wcm9jZXNzaW5nIiwgImFwaS1kb2MtdGV4dC11dGlscyIsICJhcGktZG9jLXR5cGUtbWVyZ2luZyIsICJhcGktZG9jLXR5cGVzIiwgImFwaS1kb2NzIiwgImFzdHJvLWNvbmZpZyIsICJkb2NzLWxpbmtzIiwgImRvY3Mtc2l0ZS1hc3NldHMiLCAiZG9jcy1zaXRlLWNvbW1hbmRzIiwgImRvY3Mtc2l0ZS1jb25maWciLCAibGluay1jaGVjayIsICJvZy1pbWFnZSIsICJvZy1pbWFnZS1wYWdlIiwgIm9nLWltYWdlcyIsICJyb3V0ZS1kYXRhIiwgInNhdHRlcmktZ2l0aHViLWFsZXJ0cyIsICJzYXR0ZXJpLXJlbGF0aXZlLWxpbmtzIiwgInVucmVuZGVyZWQtYWxlcnRzIl0KfQo=
@@ -1,5 +1,6 @@
1
1
  /// <reference path="../library-references.d.cts" />
2
2
  export * as 'api-doc-constants' from './api-doc-constants.cjs';
3
+ export * as 'api-doc-documented-files' from './api-doc-documented-files.cjs';
3
4
  export * as 'api-doc-jsdoc' from './api-doc-jsdoc.cjs';
4
5
  export * as 'api-doc-link-rendering' from './api-doc-link-rendering.cjs';
5
6
  export * as 'api-doc-package-sites' from './api-doc-package-sites.cjs';