@mnaoumov/typescript-dev-toolkit 3.0.0 → 3.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 (100) hide show
  1. package/assets/biome.json +49 -0
  2. package/assets/prettier.json +13 -0
  3. package/dist/lib/cjs/docs-site/docs-links.cjs +6 -3
  4. package/dist/lib/cjs/docs-site/docs-site-commands.cjs +24 -5
  5. package/dist/lib/cjs/docs-site/docs-site-commands.d.cts +8 -3
  6. package/dist/lib/cjs/docs-site/docs-site-config.cjs +4 -1
  7. package/dist/lib/cjs/docs-site/docs-site-config.d.cts +17 -0
  8. package/dist/lib/cjs/docs-site/index.cjs +4 -1
  9. package/dist/lib/cjs/docs-site/index.d.cts +1 -0
  10. package/dist/lib/cjs/docs-site/link-check.cjs +88 -11
  11. package/dist/lib/cjs/docs-site/link-check.d.cts +91 -2
  12. package/dist/lib/cjs/docs-site/repo-homepage.cjs +108 -0
  13. package/dist/lib/cjs/docs-site/repo-homepage.d.cts +50 -0
  14. package/dist/lib/cjs/formatters/auto.cjs +59 -0
  15. package/dist/lib/cjs/formatters/auto.d.cts +51 -0
  16. package/dist/lib/cjs/formatters/biome.cjs +121 -0
  17. package/dist/lib/cjs/formatters/biome.d.cts +69 -0
  18. package/dist/lib/cjs/formatters/index.cjs +12 -3
  19. package/dist/lib/cjs/formatters/index.d.cts +3 -0
  20. package/dist/lib/cjs/formatters/prettier.cjs +93 -0
  21. package/dist/lib/cjs/formatters/prettier.d.cts +56 -0
  22. package/dist/lib/cjs/index.cjs +4 -1
  23. package/dist/lib/cjs/index.d.cts +1 -0
  24. package/dist/lib/cjs/linters/auto.cjs +52 -0
  25. package/dist/lib/cjs/linters/auto.d.cts +49 -0
  26. package/dist/lib/cjs/linters/biome.cjs +50 -0
  27. package/dist/lib/cjs/linters/biome.d.cts +36 -0
  28. package/dist/lib/cjs/linters/eslint-config.cjs +1 -1
  29. package/dist/lib/cjs/linters/eslint.cjs +15 -14
  30. package/dist/lib/cjs/linters/eslint.d.cts +6 -0
  31. package/dist/lib/cjs/linters/index.cjs +7 -1
  32. package/dist/lib/cjs/linters/index.d.cts +2 -0
  33. package/dist/lib/cjs/nano-staged-config.cjs +33 -16
  34. package/dist/lib/cjs/nano-staged-config.d.cts +6 -0
  35. package/dist/lib/cjs/repo-paths.cjs +3 -1
  36. package/dist/lib/cjs/repo-paths.d.cts +8 -0
  37. package/dist/lib/cjs/shared-config-files.cjs +68 -0
  38. package/dist/lib/cjs/shared-config-files.d.cts +29 -0
  39. package/dist/lib/cjs/test-runners/auto.cjs +83 -0
  40. package/dist/lib/cjs/test-runners/auto.d.cts +82 -0
  41. package/dist/lib/cjs/test-runners/index.cjs +10 -1
  42. package/dist/lib/cjs/test-runners/index.d.cts +3 -0
  43. package/dist/lib/cjs/test-runners/jest-config.cjs +86 -0
  44. package/dist/lib/cjs/test-runners/jest-config.d.cts +71 -0
  45. package/dist/lib/cjs/test-runners/jest.cjs +111 -0
  46. package/dist/lib/cjs/test-runners/jest.d.cts +77 -0
  47. package/dist/lib/esm/docs-site/docs-links.mjs +7 -3
  48. package/dist/lib/esm/docs-site/docs-site-commands.d.mts +8 -3
  49. package/dist/lib/esm/docs-site/docs-site-commands.mjs +14 -5
  50. package/dist/lib/esm/docs-site/docs-site-config.d.mts +17 -0
  51. package/dist/lib/esm/docs-site/docs-site-config.mjs +4 -1
  52. package/dist/lib/esm/docs-site/index.d.mts +1 -0
  53. package/dist/lib/esm/docs-site/index.mjs +3 -1
  54. package/dist/lib/esm/docs-site/link-check.d.mts +91 -2
  55. package/dist/lib/esm/docs-site/link-check.mjs +83 -11
  56. package/dist/lib/esm/docs-site/repo-homepage.d.mts +50 -0
  57. package/dist/lib/esm/docs-site/repo-homepage.mjs +84 -0
  58. package/dist/lib/esm/formatters/auto.d.mts +51 -0
  59. package/dist/lib/esm/formatters/auto.mjs +40 -0
  60. package/dist/lib/esm/formatters/biome.d.mts +69 -0
  61. package/dist/lib/esm/formatters/biome.mjs +107 -0
  62. package/dist/lib/esm/formatters/index.d.mts +3 -0
  63. package/dist/lib/esm/formatters/index.mjs +8 -2
  64. package/dist/lib/esm/formatters/prettier.d.mts +56 -0
  65. package/dist/lib/esm/formatters/prettier.mjs +75 -0
  66. package/dist/lib/esm/index.d.mts +1 -0
  67. package/dist/lib/esm/index.mjs +3 -1
  68. package/dist/lib/esm/linters/auto.d.mts +49 -0
  69. package/dist/lib/esm/linters/auto.mjs +30 -0
  70. package/dist/lib/esm/linters/biome.d.mts +36 -0
  71. package/dist/lib/esm/linters/biome.mjs +29 -0
  72. package/dist/lib/esm/linters/eslint-config.mjs +1 -1
  73. package/dist/lib/esm/linters/eslint.d.mts +6 -0
  74. package/dist/lib/esm/linters/eslint.mjs +14 -14
  75. package/dist/lib/esm/linters/index.d.mts +2 -0
  76. package/dist/lib/esm/linters/index.mjs +5 -1
  77. package/dist/lib/esm/nano-staged-config.d.mts +6 -0
  78. package/dist/lib/esm/nano-staged-config.mjs +33 -16
  79. package/dist/lib/esm/repo-paths.d.mts +8 -0
  80. package/dist/lib/esm/repo-paths.mjs +3 -1
  81. package/dist/lib/esm/shared-config-files.d.mts +29 -0
  82. package/dist/lib/esm/shared-config-files.mjs +36 -0
  83. package/dist/lib/esm/test-runners/auto.d.mts +82 -0
  84. package/dist/lib/esm/test-runners/auto.mjs +64 -0
  85. package/dist/lib/esm/test-runners/index.d.mts +3 -0
  86. package/dist/lib/esm/test-runners/index.mjs +7 -1
  87. package/dist/lib/esm/test-runners/jest-config.d.mts +71 -0
  88. package/dist/lib/esm/test-runners/jest-config.mjs +58 -0
  89. package/dist/lib/esm/test-runners/jest.d.mts +77 -0
  90. package/dist/lib/esm/test-runners/jest.mjs +75 -0
  91. package/docs-site/repo-homepage/package.json +6 -0
  92. package/formatters/auto/package.json +6 -0
  93. package/formatters/biome/package.json +6 -0
  94. package/formatters/prettier/package.json +6 -0
  95. package/linters/auto/package.json +6 -0
  96. package/linters/biome/package.json +6 -0
  97. package/package.json +21 -1
  98. package/test-runners/auto/package.json +6 -0
  99. package/test-runners/jest/package.json +6 -0
  100. package/test-runners/jest-config/package.json +6 -0
@@ -15,6 +15,7 @@ import {
15
15
  extractIds,
16
16
  formatBrokenLinks,
17
17
  NETWORK_FAILURE_STATUS,
18
+ parseRetryAfterInMilliseconds,
18
19
  resolveWithinRoot
19
20
  } from "./link-check.mjs";
20
21
  import {
@@ -77,9 +78,12 @@ async function fetchUrlStatus(url) {
77
78
  try {
78
79
  const response = await fetch(url, { signal: controller.signal });
79
80
  await response.body?.cancel();
80
- return response.status;
81
+ return {
82
+ retryAfterInMilliseconds: parseRetryAfterInMilliseconds(response.headers.get("retry-after"), Date.now()),
83
+ status: response.status
84
+ };
81
85
  } catch {
82
- return NETWORK_FAILURE_STATUS;
86
+ return { status: NETWORK_FAILURE_STATUS };
83
87
  } finally {
84
88
  globalThis.clearTimeout(timeoutId);
85
89
  }
@@ -110,4 +114,4 @@ async function readPages(outputRootPath, allFiles) {
110
114
  export {
111
115
  assertDocsLinksResolve
112
116
  };
113
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2RvY3Mtc2l0ZS9kb2NzLWxpbmtzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVmFsaWRhdGVzIHRoZSBsaW5rcyBlbWl0dGVkIGJ5IGEgYnVpbHQgZG9jdW1lbnRhdGlvbiBzaXRlLlxuICpcbiAqIEludGVybmFsIGxpbmtzIGFyZSByZXNvbHZlZCBvZmZsaW5lIGFnYWluc3QgdGhlIGJ1aWxkIG91dHB1dDsgZXh0ZXJuYWwgbGlua3MgYXJlIHZhbGlkYXRlZCBvdmVyIHRoZSBuZXR3b3JrLFxuICogZGVkdXBsaWNhdGVkIHNvIGVhY2ggdW5pcXVlIFVSTCBpcyBmZXRjaGVkIGF0IG1vc3Qgb25jZS4gU2VlIHtAbGluayAuL2xpbmstY2hlY2sudHN9IGZvciB0aGUgZGVjaXNpb24gbG9naWMuXG4gKlxuICogSXQgYWxzbyBmYWlscyBvbiBhIEdpdEh1YiBhbGVydCB0aGF0IHJlYWNoZWQgYSBwYWdlIGFzIGEgcGxhaW4gYmxvY2txdW90ZSAoc2VlIHtAbGluayAuL3VucmVuZGVyZWQtYWxlcnRzLnRzfSksXG4gKiBzaW5jZSBub3RoaW5nIGVsc2Ugbm90aWNlcyB3aGVuIHRoZSBjb252ZXJzaW9uIHN0b3BzLlxuICovXG5cbmltcG9ydCB7XG4gIHJlYWRkaXIsXG4gIHJlYWRGaWxlXG59IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gJ25vZGU6cGF0aCc7XG5cbmltcG9ydCB0eXBlIHtcbiAgRG9jdW1lbnRhdGlvblBhZ2UsXG4gIExpbmtDaGVja0ZpbGVTeXN0ZW1cbn0gZnJvbSAnLi9saW5rLWNoZWNrLnRzJztcblxuaW1wb3J0IHtcbiAgY29sbGVjdEJyb2tlbkV4dGVybmFsTGlua3MsXG4gIGNvbGxlY3RCcm9rZW5MaW5rcyxcbiAgY29sbGVjdEV4dGVybmFsVGFyZ2V0cyxcbiAgZXh0cmFjdElkcyxcbiAgZm9ybWF0QnJva2VuTGlua3MsXG4gIE5FVFdPUktfRkFJTFVSRV9TVEFUVVMsXG4gIHJlc29sdmVXaXRoaW5Sb290XG59IGZyb20gJy4vbGluay1jaGVjay50cyc7XG5pbXBvcnQge1xuICBjb2xsZWN0VW5yZW5kZXJlZEFsZXJ0cyxcbiAgZm9ybWF0VW5yZW5kZXJlZEFsZXJ0c1xufSBmcm9tICcuL3VucmVuZGVyZWQtYWxlcnRzLnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgYXNzZXJ0RG9jc0xpbmtzUmVzb2x2ZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZXJ0RG9jc0xpbmtzUmVzb2x2ZVBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgYnVpbGQgb3V0cHV0IGZvbGRlciwgbm9ybWFsbHkgYDxkb2NzPi9kaXN0YC5cbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dERpcmVjdG9yeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYWJzb2x1dGUgVVJMIHRoZSBzaXRlIGlzIHNlcnZlZCBmcm9tLCB3aXRoIGEgdHJhaWxpbmcgc2xhc2gsIGUuZy4gYGh0dHBzOi8vbW5hb3Vtb3YuZGV2L3R5cGVzY3JpcHQtbGliL2AuXG4gICAqL1xuICByZWFkb25seSBzaXRlQmFzZVVybDogc3RyaW5nO1xufVxuXG5jb25zdCBFWFRFUk5BTF9MSU5LX1RJTUVPVVRfSU5fTUlMTElTRUNPTkRTID0gMTBfMDAwO1xuY29uc3QgRVhURVJOQUxfTElOS19DT05DVVJSRU5DWSA9IDIwO1xuY29uc3QgSFRNTF9GSUxFX0VYVEVOU0lPTiA9ICcuaHRtbCc7XG5cbi8vIFRoZSBob3N0IHNlcnZlcyB0aGlzIHBhZ2UgYXMgdGhlIGZhbGxiYWNrIGZvciBhbnkgbWlzc2luZyBwYXRoICh3aXRoIGEgNDA0IHN0YXR1cyksIHNvIGl0IGlzIG5vdCBhXG4vLyByZWFsIG5hdmlnYWJsZSByb3V0ZTogU3RhcmxpZ2h0IGdpdmVzIGl0IGEgc2VsZi1gcmVsPVwiY2Fub25pY2FsXCJgIG9mIGAvNDA0L2AgdGhhdCBpbmhlcmVudGx5IGNhbm5vdFxuLy8gcmVzb2x2ZSwgYW5kIGl0cyBib2R5IGxpbmtzIChuYXYsIGxvZ28pIGFyZSBpZGVudGljYWwgdG8gZXZlcnkgcmVhbCBwYWdlIHdlIGFscmVhZHkgdmFsaWRhdGUuXG5jb25zdCBGQUxMQkFDS19QQUdFX1JFTEFUSVZFX1BBVEggPSAnNDA0Lmh0bWwnO1xuXG5pbnRlcmZhY2UgQ3JlYXRlRmlsZVN5c3RlbVBhcmFtcyB7XG4gIHJlYWRvbmx5IGFsbEZpbGVzOiBTZXQ8c3RyaW5nPjtcbiAgcmVhZG9ubHkgb3V0cHV0RGlyZWN0b3J5OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhZ2VzOiBEb2N1bWVudGF0aW9uUGFnZVtdO1xufVxuXG4vKipcbiAqIENoZWNrcyBldmVyeSBsaW5rIG9mIHRoZSBidWlsdCBzaXRlLCBhbmQgdGhhdCBldmVyeSBHaXRIdWIgYWxlcnQgcmVuZGVyZWQgYXMgYW4gYXNpZGUuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucy5cbiAqIEB0aHJvd3MgSWYgYW4gYWxlcnQgcmVuZGVyZWQgYXMgYSBwbGFpbiBibG9ja3F1b3RlLCBvciBhIGxpbmsgZG9lcyBub3QgcmVzb2x2ZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzc2VydERvY3NMaW5rc1Jlc29sdmUob3B0aW9uczogQXNzZXJ0RG9jc0xpbmtzUmVzb2x2ZVBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBvdXRwdXREaXJlY3RvcnkgPSByZXNvbHZlKG9wdGlvbnMub3V0cHV0RGlyZWN0b3J5KS5yZXBsYWNlQWxsKCdcXFxcJywgJy8nKTtcbiAgY29uc3QgYWxsRmlsZXMgPSBhd2FpdCBnZXRBbGxGaWxlcyhvdXRwdXREaXJlY3RvcnkpO1xuICBjb25zdCBwYWdlcyA9IGF3YWl0IHJlYWRQYWdlcyhvdXRwdXREaXJlY3RvcnksIGFsbEZpbGVzKTtcblxuICAvLyBPZmZsaW5lIGFuZCBpbnN0YW50LCBzbyBpdCBydW5zIGJlZm9yZSB0aGUgbmV0d29yayBoYWxmIGFuZCBmYWlscyBmaXJzdC5cbiAgY29uc3QgdW5yZW5kZXJlZEFsZXJ0cyA9IGNvbGxlY3RVbnJlbmRlcmVkQWxlcnRzKHBhZ2VzKTtcbiAgaWYgKHVucmVuZGVyZWRBbGVydHMubGVuZ3RoID4gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBEZXRlY3RlZCAke1N0cmluZyh1bnJlbmRlcmVkQWxlcnRzLmxlbmd0aCl9IEdpdEh1YiBhbGVydChzKSByZW5kZXJlZCBhcyBhIHBsYWluIGJsb2NrcXVvdGUgaW5zdGVhZCBvZiBhbiBhc2lkZTpcXG4ke2Zvcm1hdFVucmVuZGVyZWRBbGVydHModW5yZW5kZXJlZEFsZXJ0cyl9YFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbnRlcm5hbEJyb2tlbkxpbmtzID0gY29sbGVjdEJyb2tlbkxpbmtzKHBhZ2VzLCBjcmVhdGVGaWxlU3lzdGVtKHsgYWxsRmlsZXMsIG91dHB1dERpcmVjdG9yeSwgcGFnZXMgfSksIG9wdGlvbnMuc2l0ZUJhc2VVcmwpO1xuXG4gIGNvbnN0IGV4dGVybmFsVGFyZ2V0cyA9IGNvbGxlY3RFeHRlcm5hbFRhcmdldHMocGFnZXMsIG9wdGlvbnMuc2l0ZUJhc2VVcmwpO1xuICBjb25zdCBleHRlcm5hbEJyb2tlbkxpbmtzID0gYXdhaXQgY29sbGVjdEJyb2tlbkV4dGVybmFsTGlua3MoZXh0ZXJuYWxUYXJnZXRzLCBmZXRjaFVybFN0YXR1cywgRVhURVJOQUxfTElOS19DT05DVVJSRU5DWSk7XG5cbiAgY29uc3QgYnJva2VuTGlua3MgPSBbLi4uaW50ZXJuYWxCcm9rZW5MaW5rcywgLi4uZXh0ZXJuYWxCcm9rZW5MaW5rc107XG4gIGlmIChicm9rZW5MaW5rcy5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBEZXRlY3RlZCAke1N0cmluZyhicm9rZW5MaW5rcy5sZW5ndGgpfSBicm9rZW4gZG9jdW1lbnRhdGlvbiBsaW5rKHMpOlxcbiR7Zm9ybWF0QnJva2VuTGlua3MoYnJva2VuTGlua3MpfWApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUZpbGVTeXN0ZW0ocGFyYW1zOiBDcmVhdGVGaWxlU3lzdGVtUGFyYW1zKTogTGlua0NoZWNrRmlsZVN5c3RlbSB7XG4gIGNvbnN0IHsgYWxsRmlsZXMsIG91dHB1dERpcmVjdG9yeSwgcGFnZXMgfSA9IHBhcmFtcztcbiAgY29uc3QgaHRtbEJ5UmVsYXRpdmVQYXRoID0gbmV3IE1hcChwYWdlcy5tYXAoKHBhZ2UpID0+IFtwYWdlLnJlbGF0aXZlUGF0aCwgcGFnZS5odG1sXSkpO1xuICBjb25zdCBpZHNDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4oKTtcblxuICByZXR1cm4ge1xuICAgIHJlYWRJZHM6IChwYWdlS2V5KTogU2V0PHN0cmluZz4gPT4ge1xuICAgICAgbGV0IGlkcyA9IGlkc0NhY2hlLmdldChwYWdlS2V5KTtcbiAgICAgIGlmIChpZHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCBodG1sID0gaHRtbEJ5UmVsYXRpdmVQYXRoLmdldChwYWdlS2V5KTtcbiAgICAgICAgaWRzID0gaHRtbCA9PT0gdW5kZWZpbmVkID8gbmV3IFNldDxzdHJpbmc+KCkgOiBleHRyYWN0SWRzKGh0bWwpO1xuICAgICAgICBpZHNDYWNoZS5zZXQocGFnZUtleSwgaWRzKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGlkcztcbiAgICB9LFxuICAgIHJlc29sdmVFeGlzdGluZ1BhZ2U6IChvdXRwdXRSZWxhdGl2ZVBhdGgpOiBudWxsIHwgc3RyaW5nID0+IHtcbiAgICAgIGlmIChyZXNvbHZlV2l0aGluUm9vdChvdXRwdXREaXJlY3RvcnksIG91dHB1dFJlbGF0aXZlUGF0aCkgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRyaW1tZWQgPSBvdXRwdXRSZWxhdGl2ZVBhdGgucmVwbGFjZSgvXFwvJC91LCAnJyk7XG4gICAgICBjb25zdCBjYW5kaWRhdGVzID0gdHJpbW1lZCA9PT0gJycgPyBbJ2luZGV4Lmh0bWwnXSA6IFt0cmltbWVkLCBgJHt0cmltbWVkfS9pbmRleC5odG1sYF07XG4gICAgICByZXR1cm4gY2FuZGlkYXRlcy5maW5kKChjYW5kaWRhdGUpID0+IGFsbEZpbGVzLmhhcyhjYW5kaWRhdGUpKSA/PyBudWxsO1xuICAgIH1cbiAgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hVcmxTdGF0dXModXJsOiBzdHJpbmcpOiBQcm9taXNlPG51bWJlcj4ge1xuICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICBjb25zdCB0aW1lb3V0SWQgPSBnbG9iYWxUaGlzLnNldFRpbWVvdXQoKCkgPT4ge1xuICAgIGNvbnRyb2xsZXIuYWJvcnQoKTtcbiAgfSwgRVhURVJOQUxfTElOS19USU1FT1VUX0lOX01JTExJU0VDT05EUyk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCwgeyBzaWduYWw6IGNvbnRyb2xsZXIuc2lnbmFsIH0pO1xuICAgIC8vIENhbmNlbCB0aGUgdW5yZWFkIGJvZHkgc28gdW5kaWNpIHJlbGVhc2VzIHRoZSBjb25uZWN0aW9uIGltbWVkaWF0ZWx5LlxuICAgIC8vIFdpdGhvdXQgdGhpcyB0aGUgcGVyLWhvc3QgY29ubmVjdGlvbiBwb29sIHN0YWxscyBhbmQgc2FtZS1ob3N0IHJlcXVlc3RzXG4gICAgLy8gc2VyaWFsaXplLCB0dXJuaW5nIGEgfjNzIHJ1biBpbnRvIG1pbnV0ZXMuXG4gICAgYXdhaXQgcmVzcG9uc2UuYm9keT8uY2FuY2VsKCk7XG4gICAgcmV0dXJuIHJlc3BvbnNlLnN0YXR1cztcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIE5FVFdPUktfRkFJTFVSRV9TVEFUVVM7XG4gIH0gZmluYWxseSB7XG4gICAgZ2xvYmFsVGhpcy5jbGVhclRpbWVvdXQodGltZW91dElkKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBbGxGaWxlcyhvdXRwdXRSb290UGF0aDogc3RyaW5nKTogUHJvbWlzZTxTZXQ8c3RyaW5nPj4ge1xuICBjb25zdCBlbnRyaWVzID0gYXdhaXQgcmVhZGRpcihvdXRwdXRSb290UGF0aCwgeyByZWN1cnNpdmU6IHRydWUsIHdpdGhGaWxlVHlwZXM6IHRydWUgfSk7XG4gIGNvbnN0IGZpbGVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgIGlmICghZW50cnkuaXNGaWxlKCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGFic29sdXRlUGF0aCA9IHJlc29sdmUoZW50cnkucGFyZW50UGF0aCwgZW50cnkubmFtZSkucmVwbGFjZUFsbCgnXFxcXCcsICcvJyk7XG4gICAgZmlsZXMuYWRkKGFic29sdXRlUGF0aC5zbGljZShgJHtvdXRwdXRSb290UGF0aH0vYC5sZW5ndGgpKTtcbiAgfVxuXG4gIHJldHVybiBmaWxlcztcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVhZFBhZ2VzKG91dHB1dFJvb3RQYXRoOiBzdHJpbmcsIGFsbEZpbGVzOiBTZXQ8c3RyaW5nPik6IFByb21pc2U8RG9jdW1lbnRhdGlvblBhZ2VbXT4ge1xuICBjb25zdCBwYWdlczogRG9jdW1lbnRhdGlvblBhZ2VbXSA9IFtdO1xuICBmb3IgKGNvbnN0IHJlbGF0aXZlUGF0aCBvZiBhbGxGaWxlcykge1xuICAgIGlmICghcmVsYXRpdmVQYXRoLmVuZHNXaXRoKEhUTUxfRklMRV9FWFRFTlNJT04pIHx8IHJlbGF0aXZlUGF0aCA9PT0gRkFMTEJBQ0tfUEFHRV9SRUxBVElWRV9QQVRIKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBodG1sID0gYXdhaXQgcmVhZEZpbGUocmVzb2x2ZShvdXRwdXRSb290UGF0aCwgcmVsYXRpdmVQYXRoKSwgJ3V0Zi04Jyk7XG4gICAgcGFnZXMucHVzaCh7IGh0bWwsIHJlbGF0aXZlUGF0aCB9KTtcbiAgfVxuXG4gIHJldHVybiBw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
117
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2RvY3Mtc2l0ZS9kb2NzLWxpbmtzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVmFsaWRhdGVzIHRoZSBsaW5rcyBlbWl0dGVkIGJ5IGEgYnVpbHQgZG9jdW1lbnRhdGlvbiBzaXRlLlxuICpcbiAqIEludGVybmFsIGxpbmtzIGFyZSByZXNvbHZlZCBvZmZsaW5lIGFnYWluc3QgdGhlIGJ1aWxkIG91dHB1dDsgZXh0ZXJuYWwgbGlua3MgYXJlIHZhbGlkYXRlZCBvdmVyIHRoZSBuZXR3b3JrLFxuICogZGVkdXBsaWNhdGVkIHNvIGVhY2ggdW5pcXVlIFVSTCBpcyBmZXRjaGVkIGF0IG1vc3Qgb25jZS4gU2VlIHtAbGluayAuL2xpbmstY2hlY2sudHN9IGZvciB0aGUgZGVjaXNpb24gbG9naWMuXG4gKlxuICogSXQgYWxzbyBmYWlscyBvbiBhIEdpdEh1YiBhbGVydCB0aGF0IHJlYWNoZWQgYSBwYWdlIGFzIGEgcGxhaW4gYmxvY2txdW90ZSAoc2VlIHtAbGluayAuL3VucmVuZGVyZWQtYWxlcnRzLnRzfSksXG4gKiBzaW5jZSBub3RoaW5nIGVsc2Ugbm90aWNlcyB3aGVuIHRoZSBjb252ZXJzaW9uIHN0b3BzLlxuICovXG5cbmltcG9ydCB7XG4gIHJlYWRkaXIsXG4gIHJlYWRGaWxlXG59IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gJ25vZGU6cGF0aCc7XG5cbmltcG9ydCB0eXBlIHtcbiAgRG9jdW1lbnRhdGlvblBhZ2UsXG4gIEV4dGVybmFsTGlua1Byb2JlUmVzdWx0LFxuICBMaW5rQ2hlY2tGaWxlU3lzdGVtXG59IGZyb20gJy4vbGluay1jaGVjay50cyc7XG5cbmltcG9ydCB7XG4gIGNvbGxlY3RCcm9rZW5FeHRlcm5hbExpbmtzLFxuICBjb2xsZWN0QnJva2VuTGlua3MsXG4gIGNvbGxlY3RFeHRlcm5hbFRhcmdldHMsXG4gIGV4dHJhY3RJZHMsXG4gIGZvcm1hdEJyb2tlbkxpbmtzLFxuICBORVRXT1JLX0ZBSUxVUkVfU1RBVFVTLFxuICBwYXJzZVJldHJ5QWZ0ZXJJbk1pbGxpc2Vjb25kcyxcbiAgcmVzb2x2ZVdpdGhpblJvb3Rcbn0gZnJvbSAnLi9saW5rLWNoZWNrLnRzJztcbmltcG9ydCB7XG4gIGNvbGxlY3RVbnJlbmRlcmVkQWxlcnRzLFxuICBmb3JtYXRVbnJlbmRlcmVkQWxlcnRzXG59IGZyb20gJy4vdW5yZW5kZXJlZC1hbGVydHMudHMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBhc3NlcnREb2NzTGlua3NSZXNvbHZlfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NlcnREb2NzTGlua3NSZXNvbHZlUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBidWlsZCBvdXRwdXQgZm9sZGVyLCBub3JtYWxseSBgPGRvY3M+L2Rpc3RgLlxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0RGlyZWN0b3J5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhYnNvbHV0ZSBVUkwgdGhlIHNpdGUgaXMgc2VydmVkIGZyb20sIHdpdGggYSB0cmFpbGluZyBzbGFzaCwgZS5nLiBgaHR0cHM6Ly9tbmFvdW1vdi5kZXYvdHlwZXNjcmlwdC1saWIvYC5cbiAgICovXG4gIHJlYWRvbmx5IHNpdGVCYXNlVXJsOiBzdHJpbmc7XG59XG5cbmNvbnN0IEVYVEVSTkFMX0xJTktfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMgPSAxMF8wMDA7XG5jb25zdCBFWFRFUk5BTF9MSU5LX0NPTkNVUlJFTkNZID0gMjA7XG5jb25zdCBIVE1MX0ZJTEVfRVhURU5TSU9OID0gJy5odG1sJztcblxuLy8gVGhlIGhvc3Qgc2VydmVzIHRoaXMgcGFnZSBhcyB0aGUgZmFsbGJhY2sgZm9yIGFueSBtaXNzaW5nIHBhdGggKHdpdGggYSA0MDQgc3RhdHVzKSwgc28gaXQgaXMgbm90IGFcbi8vIHJlYWwgbmF2aWdhYmxlIHJvdXRlOiBTdGFybGlnaHQgZ2l2ZXMgaXQgYSBzZWxmLWByZWw9XCJjYW5vbmljYWxcImAgb2YgYC80MDQvYCB0aGF0IGluaGVyZW50bHkgY2Fubm90XG4vLyByZXNvbHZlLCBhbmQgaXRzIGJvZHkgbGlua3MgKG5hdiwgbG9nbykgYXJlIGlkZW50aWNhbCB0byBldmVyeSByZWFsIHBhZ2Ugd2UgYWxyZWFkeSB2YWxpZGF0ZS5cbmNvbnN0IEZBTExCQUNLX1BBR0VfUkVMQVRJVkVfUEFUSCA9ICc0MDQuaHRtbCc7XG5cbmludGVyZmFjZSBDcmVhdGVGaWxlU3lzdGVtUGFyYW1zIHtcbiAgcmVhZG9ubHkgYWxsRmlsZXM6IFNldDxzdHJpbmc+O1xuICByZWFkb25seSBvdXRwdXREaXJlY3Rvcnk6IHN0cmluZztcbiAgcmVhZG9ubHkgcGFnZXM6IERvY3VtZW50YXRpb25QYWdlW107XG59XG5cbi8qKlxuICogQ2hlY2tzIGV2ZXJ5IGxpbmsgb2YgdGhlIGJ1aWx0IHNpdGUsIGFuZCB0aGF0IGV2ZXJ5IEdpdEh1YiBhbGVydCByZW5kZXJlZCBhcyBhbiBhc2lkZS5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zLlxuICogQHRocm93cyBJZiBhbiBhbGVydCByZW5kZXJlZCBhcyBhIHBsYWluIGJsb2NrcXVvdGUsIG9yIGEgbGluayBkb2VzIG5vdCByZXNvbHZlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXNzZXJ0RG9jc0xpbmtzUmVzb2x2ZShvcHRpb25zOiBBc3NlcnREb2NzTGlua3NSZXNvbHZlUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IG91dHB1dERpcmVjdG9yeSA9IHJlc29sdmUob3B0aW9ucy5vdXRwdXREaXJlY3RvcnkpLnJlcGxhY2VBbGwoJ1xcXFwnLCAnLycpO1xuICBjb25zdCBhbGxGaWxlcyA9IGF3YWl0IGdldEFsbEZpbGVzKG91dHB1dERpcmVjdG9yeSk7XG4gIGNvbnN0IHBhZ2VzID0gYXdhaXQgcmVhZFBhZ2VzKG91dHB1dERpcmVjdG9yeSwgYWxsRmlsZXMpO1xuXG4gIC8vIE9mZmxpbmUgYW5kIGluc3RhbnQsIHNvIGl0IHJ1bnMgYmVmb3JlIHRoZSBuZXR3b3JrIGhhbGYgYW5kIGZhaWxzIGZpcnN0LlxuICBjb25zdCB1bnJlbmRlcmVkQWxlcnRzID0gY29sbGVjdFVucmVuZGVyZWRBbGVydHMocGFnZXMpO1xuICBpZiAodW5yZW5kZXJlZEFsZXJ0cy5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYERldGVjdGVkICR7U3RyaW5nKHVucmVuZGVyZWRBbGVydHMubGVuZ3RoKX0gR2l0SHViIGFsZXJ0KHMpIHJlbmRlcmVkIGFzIGEgcGxhaW4gYmxvY2txdW90ZSBpbnN0ZWFkIG9mIGFuIGFzaWRlOlxcbiR7Zm9ybWF0VW5yZW5kZXJlZEFsZXJ0cyh1bnJlbmRlcmVkQWxlcnRzKX1gXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGludGVybmFsQnJva2VuTGlua3MgPSBjb2xsZWN0QnJva2VuTGlua3MocGFnZXMsIGNyZWF0ZUZpbGVTeXN0ZW0oeyBhbGxGaWxlcywgb3V0cHV0RGlyZWN0b3J5LCBwYWdlcyB9KSwgb3B0aW9ucy5zaXRlQmFzZVVybCk7XG5cbiAgY29uc3QgZXh0ZXJuYWxUYXJnZXRzID0gY29sbGVjdEV4dGVybmFsVGFyZ2V0cyhwYWdlcywgb3B0aW9ucy5zaXRlQmFzZVVybCk7XG4gIGNvbnN0IGV4dGVybmFsQnJva2VuTGlua3MgPSBhd2FpdCBjb2xsZWN0QnJva2VuRXh0ZXJuYWxMaW5rcyhleHRlcm5hbFRhcmdldHMsIGZldGNoVXJsU3RhdHVzLCBFWFRFUk5BTF9MSU5LX0NPTkNVUlJFTkNZKTtcblxuICBjb25zdCBicm9rZW5MaW5rcyA9IFsuLi5pbnRlcm5hbEJyb2tlbkxpbmtzLCAuLi5leHRlcm5hbEJyb2tlbkxpbmtzXTtcbiAgaWYgKGJyb2tlbkxpbmtzLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYERldGVjdGVkICR7U3RyaW5nKGJyb2tlbkxpbmtzLmxlbmd0aCl9IGJyb2tlbiBkb2N1bWVudGF0aW9uIGxpbmsocyk6XFxuJHtmb3JtYXRCcm9rZW5MaW5rcyhicm9rZW5MaW5rcyl9YCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlRmlsZVN5c3RlbShwYXJhbXM6IENyZWF0ZUZpbGVTeXN0ZW1QYXJhbXMpOiBMaW5rQ2hlY2tGaWxlU3lzdGVtIHtcbiAgY29uc3QgeyBhbGxGaWxlcywgb3V0cHV0RGlyZWN0b3J5LCBwYWdlcyB9ID0gcGFyYW1zO1xuICBjb25zdCBodG1sQnlSZWxhdGl2ZVBhdGggPSBuZXcgTWFwKHBhZ2VzLm1hcCgocGFnZSkgPT4gW3BhZ2UucmVsYXRpdmVQYXRoLCBwYWdlLmh0bWxdKSk7XG4gIGNvbnN0IGlkc0NhY2hlID0gbmV3IE1hcDxzdHJpbmcsIFNldDxzdHJpbmc+PigpO1xuXG4gIHJldHVybiB7XG4gICAgcmVhZElkczogKHBhZ2VLZXkpOiBTZXQ8c3RyaW5nPiA9PiB7XG4gICAgICBsZXQgaWRzID0gaWRzQ2FjaGUuZ2V0KHBhZ2VLZXkpO1xuICAgICAgaWYgKGlkcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IGh0bWwgPSBodG1sQnlSZWxhdGl2ZVBhdGguZ2V0KHBhZ2VLZXkpO1xuICAgICAgICBpZHMgPSBodG1sID09PSB1bmRlZmluZWQgPyBuZXcgU2V0PHN0cmluZz4oKSA6IGV4dHJhY3RJZHMoaHRtbCk7XG4gICAgICAgIGlkc0NhY2hlLnNldChwYWdlS2V5LCBpZHMpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaWRzO1xuICAgIH0sXG4gICAgcmVzb2x2ZUV4aXN0aW5nUGFnZTogKG91dHB1dFJlbGF0aXZlUGF0aCk6IG51bGwgfCBzdHJpbmcgPT4ge1xuICAgICAgaWYgKHJlc29sdmVXaXRoaW5Sb290KG91dHB1dERpcmVjdG9yeSwgb3V0cHV0UmVsYXRpdmVQYXRoKSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdHJpbW1lZCA9IG91dHB1dFJlbGF0aXZlUGF0aC5yZXBsYWNlKC9cXC8kL3UsICcnKTtcbiAgICAgIGNvbnN0IGNhbmRpZGF0ZXMgPSB0cmltbWVkID09PSAnJyA/IFsnaW5kZXguaHRtbCddIDogW3RyaW1tZWQsIGAke3RyaW1tZWR9L2luZGV4Lmh0bWxgXTtcbiAgICAgIHJldHVybiBjYW5kaWRhdGVzLmZpbmQoKGNhbmRpZGF0ZSkgPT4gYWxsRmlsZXMuaGFzKGNhbmRpZGF0ZSkpID8/IG51bGw7XG4gICAgfVxuICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaFVybFN0YXR1cyh1cmw6IHN0cmluZyk6IFByb21pc2U8RXh0ZXJuYWxMaW5rUHJvYmVSZXN1bHQ+IHtcbiAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgY29uc3QgdGltZW91dElkID0gZ2xvYmFsVGhpcy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICBjb250cm9sbGVyLmFib3J0KCk7XG4gIH0sIEVYVEVSTkFMX0xJTktfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMpO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwsIHsgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbCB9KTtcbiAgICAvLyBDYW5jZWwgdGhlIHVucmVhZCBib2R5IHNvIHVuZGljaSByZWxlYXNlcyB0aGUgY29ubmVjdGlvbiBpbW1lZGlhdGVseS5cbiAgICAvLyBXaXRob3V0IHRoaXMgdGhlIHBlci1ob3N0IGNvbm5lY3Rpb24gcG9vbCBzdGFsbHMgYW5kIHNhbWUtaG9zdCByZXF1ZXN0c1xuICAgIC8vIHNlcmlhbGl6ZSwgdHVybmluZyBhIH4zcyBydW4gaW50byBtaW51dGVzLlxuICAgIGF3YWl0IHJlc3BvbnNlLmJvZHk/LmNhbmNlbCgpO1xuICAgIHJldHVybiB7XG4gICAgICByZXRyeUFmdGVySW5NaWxsaXNlY29uZHM6IHBhcnNlUmV0cnlBZnRlckluTWlsbGlzZWNvbmRzKHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdyZXRyeS1hZnRlcicpLCBEYXRlLm5vdygpKSxcbiAgICAgIHN0YXR1czogcmVzcG9uc2Uuc3RhdHVzXG4gICAgfTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHsgc3RhdHVzOiBORVRXT1JLX0ZBSUxVUkVfU1RBVFVTIH07XG4gIH0gZmluYWxseSB7XG4gICAgZ2xvYmFsVGhpcy5jbGVhclRpbWVvdXQodGltZW91dElkKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBbGxGaWxlcyhvdXRwdXRSb290UGF0aDogc3RyaW5nKTogUHJvbWlzZTxTZXQ8c3RyaW5nPj4ge1xuICBjb25zdCBlbnRyaWVzID0gYXdhaXQgcmVhZGRpcihvdXRwdXRSb290UGF0aCwgeyByZWN1cnNpdmU6IHRydWUsIHdpdGhGaWxlVHlwZXM6IHRydWUgfSk7XG4gIGNvbnN0IGZpbGVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgIGlmICghZW50cnkuaXNGaWxlKCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGFic29sdXRlUGF0aCA9IHJlc29sdmUoZW50cnkucGFyZW50UGF0aCwgZW50cnkubmFtZSkucmVwbGFjZUFsbCgnXFxcXCcsICcvJyk7XG4gICAgZmlsZXMuYWRkKGFic29sdXRlUGF0aC5zbGljZShgJHtvdXRwdXRSb290UGF0aH0vYC5sZW5ndGgpKTtcbiAgfVxuXG4gIHJldHVybiBmaWxlcztcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVhZFBhZ2VzKG91dHB1dFJvb3RQYXRoOiBzdHJpbmcsIGFsbEZpbGVzOiBTZXQ8c3RyaW5nPik6IFByb21pc2U8RG9jdW1lbnRhdGlvblBhZ2VbXT4ge1xuICBjb25zdCBwYWdlczogRG9jdW1lbnRhdGlvblBhZ2VbXSA9IFtdO1xuICBmb3IgKGNvbnN0IHJlbGF0aXZlUGF0aCBvZiBhbGxGaWxlcykge1xuICAgIGlmICghcmVsYXRpdmVQYXRoLmVuZHNXaXRoKEhUTUxfRklMRV9FWFRFTlNJT04pIHx8IHJlbGF0aXZlUGF0aCA9PT0gRkFMTEJBQ0tfUEFHRV9SRUxBVElWRV9QQVRIKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBodG1sID0gYXdhaXQgcmVhZEZpbGUocmVzb2x2ZShvdXRwdXRSb290UGF0aCwgcmVsYXRpdmVQYXRoKSwgJ3V0Zi04Jyk7XG4gICAgcGFnZXMucHVzaCh7IGh0bWwsIHJlbGF0aXZlUGF0aCB9KTtcbiAgfVxuXG4gIHJldHVybiBwYWdlcztcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7O0FBWUE7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLGVBQWU7QUFReEI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQWlCUCxNQUFNLHdDQUF3QztBQUM5QyxNQUFNLDRCQUE0QjtBQUNsQyxNQUFNLHNCQUFzQjtBQUs1QixNQUFNLDhCQUE4QjtBQWNwQyxlQUFzQix1QkFBdUIsU0FBc0Q7QUFDakcsUUFBTSxrQkFBa0IsUUFBUSxRQUFRLGVBQWUsRUFBRSxXQUFXLE1BQU0sR0FBRztBQUM3RSxRQUFNLFdBQVcsTUFBTSxZQUFZLGVBQWU7QUFDbEQsUUFBTSxRQUFRLE1BQU0sVUFBVSxpQkFBaUIsUUFBUTtBQUd2RCxRQUFNLG1CQUFtQix3QkFBd0IsS0FBSztBQUN0RCxNQUFJLGlCQUFpQixTQUFTLEdBQUc7QUFDL0IsVUFBTSxJQUFJO0FBQUEsTUFDUixZQUFZLE9BQU8saUJBQWlCLE1BQU0sQ0FBQztBQUFBLEVBQXlFLHVCQUF1QixnQkFBZ0IsQ0FBQztBQUFBLElBQzlKO0FBQUEsRUFDRjtBQUVBLFFBQU0sc0JBQXNCLG1CQUFtQixPQUFPLGlCQUFpQixFQUFFLFVBQVUsaUJBQWlCLE1BQU0sQ0FBQyxHQUFHLFFBQVEsV0FB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
@@ -10,7 +10,8 @@
10
10
  import type { DocsSiteConfig } from './docs-site-config.mjs';
11
11
  /**
12
12
  * Builds the site: generates the API reference and the Open Graph cards, runs `astro build`, then checks every link
13
- * of the output.
13
+ * of the output. With {@link DocsSiteConfig.repoHomepage} on, it then checks the repository's GitHub homepage against
14
+ * the site's URL.
14
15
  *
15
16
  * @param config - The site's configuration.
16
17
  */
@@ -19,11 +20,15 @@ export declare function buildDocsSite(config: DocsSiteConfig): Promise<void>;
19
20
  * Generates the API reference, then serves the site with `astro dev` until it is stopped.
20
21
  *
21
22
  * @param config - The site's configuration.
23
+ * @param astroArguments - The arguments appended to `astro dev`, such as `--port 4399`. Defaults to the script's own
24
+ * command-line arguments, so `npm run docs:dev -- --port 4399` reaches Astro.
22
25
  */
23
- export declare function devDocsSite(config: DocsSiteConfig): Promise<void>;
26
+ export declare function devDocsSite(config: DocsSiteConfig, astroArguments?: readonly string[]): Promise<void>;
24
27
  /**
25
28
  * Serves the last build with `astro preview` until it is stopped.
26
29
  *
27
30
  * @param config - The site's configuration.
31
+ * @param astroArguments - The arguments appended to `astro preview`, such as `--port 4399`. Defaults to the script's
32
+ * own command-line arguments, so `npm run docs:preview -- --port 4399` reaches Astro.
28
33
  */
29
- export declare function previewDocsSite(config: DocsSiteConfig): Promise<void>;
34
+ export declare function previewDocsSite(config: DocsSiteConfig, astroArguments?: readonly string[]): Promise<void>;
@@ -4,12 +4,14 @@ if you want to view the source, please visit the github repository of this plugi
4
4
  */
5
5
 
6
6
  import { join } from "node:path";
7
+ import process from "node:process";
7
8
  import { execFromRoot } from "../root.mjs";
8
9
  import { generateApiDocs } from "./api-docs.mjs";
9
10
  import { assertDocsLinksResolve } from "./docs-links.mjs";
10
11
  import { getDocsSiteAssetsDirectory } from "./docs-site-assets.mjs";
11
12
  import { resolveDocsSiteConfig } from "./docs-site-config.mjs";
12
13
  import { generateOgImages } from "./og-images.mjs";
14
+ import { syncRepoHomepage } from "./repo-homepage.mjs";
13
15
  async function buildDocsSite(config) {
14
16
  const resolved = resolveDocsSiteConfig(config);
15
17
  await generateApiDocs({ rootDirectory: resolved.rootDirectory, settings: resolved.apiDocSettings, sourceDirectory: resolved.sourceDirectory });
@@ -22,11 +24,14 @@ async function buildDocsSite(config) {
22
24
  });
23
25
  await execFromRoot(["astro", "build"], { cwd: resolved.rootDirectory });
24
26
  await assertDocsLinksResolve({ outputDirectory: resolved.distDirectory, siteBaseUrl: resolved.siteBaseUrl });
27
+ if (resolved.repoHomepage !== "off") {
28
+ await syncRepoHomepage({ homepageUrl: resolved.siteBaseUrl, mode: resolved.repoHomepage, owner: resolved.owner, repo: resolved.repo });
29
+ }
25
30
  }
26
- async function devDocsSite(config) {
31
+ async function devDocsSite(config, astroArguments = getScriptArguments()) {
27
32
  const resolved = resolveDocsSiteConfig(config);
28
33
  await generateApiDocs({ rootDirectory: resolved.rootDirectory, settings: resolved.apiDocSettings, sourceDirectory: resolved.sourceDirectory });
29
- await execFromRoot(["astro", "dev"], {
34
+ await execFromRoot(["astro", "dev", ...astroArguments], {
30
35
  cwd: resolved.rootDirectory,
31
36
  env: {
32
37
  ASTRO_DEV_BACKGROUND: "1"
@@ -34,13 +39,17 @@ async function devDocsSite(config) {
34
39
  isInteractive: true
35
40
  });
36
41
  }
37
- async function previewDocsSite(config) {
42
+ async function previewDocsSite(config, astroArguments = getScriptArguments()) {
38
43
  const resolved = resolveDocsSiteConfig(config);
39
- await execFromRoot(["astro", "preview"], { cwd: resolved.rootDirectory, isInteractive: true });
44
+ await execFromRoot(["astro", "preview", ...astroArguments], { cwd: resolved.rootDirectory, isInteractive: true });
45
+ }
46
+ function getScriptArguments() {
47
+ const [, , ...scriptArguments] = process.argv;
48
+ return scriptArguments;
40
49
  }
41
50
  export {
42
51
  buildDocsSite,
43
52
  devDocsSite,
44
53
  previewDocsSite
45
54
  };
46
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2RvY3Mtc2l0ZS9kb2NzLXNpdGUtY29tbWFuZHMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGUgYGRvY3M6YnVpbGRgLCBgZG9jczpkZXZgIGFuZCBgZG9jczpwcmV2aWV3YCBjb21tYW5kcyBvZiBhIGRvY3VtZW50YXRpb24gc2l0ZS5cbiAqXG4gKiBFYWNoIHRha2VzIHRoZSBzYW1lIHtAbGluayBEb2NzU2l0ZUNvbmZpZ30gdGhlIHNpdGUncyBgYXN0cm8uY29uZmlnLnRzYCBwYXNzZXMgdG8gYGRlZmluZURvY3NTaXRlQ29uZmlnYCwgc28gYVxuICogcmVwb3NpdG9yeSBkZXNjcmliZXMgaXRzIHNpdGUgb25jZSwgaW4gYSBtb2R1bGUgYm90aCBpbXBvcnQuXG4gKi9cblxuaW1wb3J0IHsgam9pbiB9IGZyb20gJ25vZGU6cGF0aCc7XG5cbmltcG9ydCB0eXBlIHsgRG9jc1NpdGVDb25maWcgfSBmcm9tICcuL2RvY3Mtc2l0ZS1jb25maWcudHMnO1xuXG5pbXBvcnQgeyBleGVjRnJvbVJvb3QgfSBmcm9tICcuLi9yb290LnRzJztcbmltcG9ydCB7IGdlbmVyYXRlQXBpRG9jcyB9IGZyb20gJy4vYXBpLWRvY3MudHMnO1xuaW1wb3J0IHsgYXNzZXJ0RG9jc0xpbmtzUmVzb2x2ZSB9IGZyb20gJy4vZG9jcy1saW5rcy50cyc7XG5pbXBvcnQgeyBnZXREb2NzU2l0ZUFzc2V0c0RpcmVjdG9yeSB9IGZyb20gJy4vZG9jcy1zaXRlLWFzc2V0cy50cyc7XG5pbXBvcnQgeyByZXNvbHZlRG9jc1NpdGVDb25maWcgfSBmcm9tICcuL2RvY3Mtc2l0ZS1jb25maWcudHMnO1xuaW1wb3J0IHsgZ2VuZXJhdGVPZ0ltYWdlcyB9IGZyb20gJy4vb2ctaW1hZ2VzLnRzJztcblxuLyoqXG4gKiBCdWlsZHMgdGhlIHNpdGU6IGdlbmVyYXRlcyB0aGUgQVBJIHJlZmVyZW5jZSBhbmQgdGhlIE9wZW4gR3JhcGggY2FyZHMsIHJ1bnMgYGFzdHJvIGJ1aWxkYCwgdGhlbiBjaGVja3MgZXZlcnkgbGlua1xuICogb2YgdGhlIG91dHB1dC5cbiAqXG4gKiBAcGFyYW0gY29uZmlnIC0gVGhlIHNpdGUncyBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGREb2NzU2l0ZShjb25maWc6IERvY3NTaXRlQ29uZmlnKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZURvY3NTaXRlQ29uZmlnKGNvbmZpZyk7XG4gIGF3YWl0IGdlbmVyYXRlQXBpRG9jcyh7IHJvb3REaXJlY3Rvcnk6IHJlc29sdmVkLnJvb3REaXJlY3RvcnksIHNldHRpbmdzOiByZXNvbHZlZC5hcGlEb2NTZXR0aW5ncywgc291cmNlRGlyZWN0b3J5OiByZXNvbHZlZC5zb3VyY2VEaXJlY3RvcnkgfSk7XG4gIGF3YWl0IGdlbmVyYXRlT2dJbWFnZXMoe1xuICAgIGJyYW5kVGV4dDogcmVzb2x2ZWQucGFja2FnZU5hbWUsXG4gICAgY29udGVudERvY3NEaXJlY3Rvcnk6IHJlc29sdmVkLmNvbnRlbnREb2NzRGlyZWN0b3J5LFxuICAgIGZhdmljb25QYXRoOiByZXNvbHZlZC5mYXZpY29uUGF0aCxcbiAgICBmb250c0RpcmVjdG9yeTogam9pbihnZXREb2NzU2l0ZUFzc2V0c0RpcmVjdG9yeSgpLCAnZm9udHMnKSxcbiAgICBvdXRwdXREaXJlY3Rvcnk6IHJlc29sdmVkLm9nT3V0cHV0RGlyZWN0b3J5XG4gIH0pO1xuICBhd2FpdCBleGVjRnJvbVJvb3QoWydhc3RybycsICdidWlsZCddLCB7IGN3ZDogcmVzb2x2ZWQucm9vdERpcmVjdG9yeSB9KTtcbiAgYXdhaXQgYXNzZXJ0RG9jc0xpbmtzUmVzb2x2ZSh7IG91dHB1dERpcmVjdG9yeTogcmVzb2x2ZWQuZGlzdERpcmVjdG9yeSwgc2l0ZUJhc2VVcmw6IHJlc29sdmVkLnNpdGVCYXNlVXJsIH0pO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlcyB0aGUgQVBJIHJlZmVyZW5jZSwgdGhlbiBzZXJ2ZXMgdGhlIHNpdGUgd2l0aCBgYXN0cm8gZGV2YCB1bnRpbCBpdCBpcyBzdG9wcGVkLlxuICpcbiAqIEBwYXJhbSBjb25maWcgLSBUaGUgc2l0ZSdzIGNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZXZEb2NzU2l0ZShjb25maWc6IERvY3NTaXRlQ29uZmlnKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZURvY3NTaXRlQ29uZmlnKGNvbmZpZyk7XG4gIGF3YWl0IGdlbmVyYXRlQXBpRG9jcyh7IHJvb3REaXJlY3Rvcnk6IHJlc29sdmVkLnJvb3REaXJlY3RvcnksIHNldHRpbmdzOiByZXNvbHZlZC5hcGlEb2NTZXR0aW5ncywgc291cmNlRGlyZWN0b3J5OiByZXNvbHZlZC5zb3VyY2VEaXJlY3RvcnkgfSk7XG4gIC8vIGBBU1RST19ERVZfQkFDS0dST1VORGAgZm9yY2VzIEFzdHJvJ3MgZm9yZWdyb3VuZCBkZXYgc2VydmVyLiBBc3RybyBvdGhlcndpc2Ugc3dpdGNoZXMgdG8gYSBiYWNrZ3JvdW5kIGxhdW5jaGVyXG4gIC8vIChoYXJkY29kZWQgMzBzIHN0YXJ0dXAgdGltZW91dCkgdW5kZXIgYW4gYWdlbnQgLyBub24taW50ZXJhY3RpdmUgZW52aXJvbm1lbnQuXG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ2FzdHJvJywgJ2RldiddLCB7XG4gICAgY3dkOiByZXNvbHZlZC5yb290RGlyZWN0b3J5LFxuICAgIGVudjoge1xuICAgICAgQVNUUk9fREVWX0JBQ0tHUk9VTkQ6ICcxJ1xuICAgIH0sXG4gICAgaXNJbnRlcmFjdGl2ZTogdHJ1ZVxuICB9KTtcbn1cblxuLyoqXG4gKiBTZXJ2ZXMgdGhlIGxhc3QgYnVpbGQgd2l0aCBgYXN0cm8gcHJldmlld2AgdW50aWwgaXQgaXMgc3RvcHBlZC5cbiAqXG4gKiBAcGFyYW0gY29uZmlnIC0gVGhlIHNpdGUncyBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJldmlld0RvY3NTaXRlKGNvbmZpZzogRG9jc1NpdGVDb25maWcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcmVzb2x2ZWQgPSByZXNvbHZlRG9jc1NpdGVDb25maWcoY29uZmlnKTtcbiAgYXdhaXQgZXhlY0Zyb21Sb290KFsnYXN0cm8nLCAncHJldmlldyddLCB7IGN3ZDogcmVzb2x2ZWQucm9vdERpcmVjdG9yeSwgaXNJbnRlcmFjdGl2ZTogdHJ1ZSB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7O0FBU0EsU0FBUyxZQUFZO0FBSXJCLFNBQVMsb0JBQW9CO0FBQzdCLFNBQVMsdUJBQXVCO0FBQ2hDLFNBQVMsOEJBQThCO0FBQ3ZDLFNBQVMsa0NBQWtDO0FBQzNDLFNBQVMsNkJBQTZCO0FBQ3RDLFNBQVMsd0JBQXdCO0FBUWpDLGVBQXNCLGNBQWMsUUFBdUM7QUFDekUsUUFBTSxXQUFXLHNCQUFzQixNQUFNO0FBQzdDLFFBQU0sZ0JBQWdCLEVBQUUsZUFBZSxTQUFTLGVBQWUsVUFBVSxTQUFTLGdCQUFnQixpQkFBaUIsU0FBUyxnQkFBZ0IsQ0FBQztBQUM3SSxRQUFNLGlCQUFpQjtBQUFBLElBQ3JCLFdBQVcsU0FBUztBQUFBLElBQ3BCLHNCQUFzQixTQUFTO0FBQUEsSUFDL0IsYUFBYSxTQUFTO0FBQUEsSUFDdEIsZ0JBQWdCLEtBQUssMkJBQTJCLEdBQUcsT0FBTztBQUFBLElBQzFELGlCQUFpQixTQUFTO0FBQUEsRUFDNUIsQ0FBQztBQUNELFFBQU0sYUFBYSxDQUFDLFNBQVMsT0FBTyxHQUFHLEVBQUUsS0FBSyxTQUFTLGNBQWMsQ0FBQztBQUN0RSxRQUFNLHVCQUF1QixFQUFFLGlCQUFpQixTQUFTLGVBQWUsYUFBYSxTQUFTLFlBQVksQ0FBQztBQUM3RztBQU9BLGVBQXNCLFlBQVksUUFBdUM7QUFDdkUsUUFBTSxXQUFXLHNCQUFzQixNQUFNO0FBQzdDLFFBQU0sZ0JBQWdCLEVBQUUsZUFBZSxTQUFTLGVBQWUsVUFBVSxTQUFTLGdCQUFnQixpQkFBaUIsU0FBUyxnQkFBZ0IsQ0FBQztBQUc3SSxRQUFNLGFBQWEsQ0FBQyxTQUFTLEtBQUssR0FBRztBQUFBLElBQ25DLEtBQUssU0FBUztBQUFBLElBQ2QsS0FBSztBQUFBLE1BQ0gsc0JBQXNCO0FBQUEsSUFDeEI7QUFBQSxJQUNBLGVBQWU7QUFBQSxFQUNqQixDQUFDO0FBQ0g7QUFPQSxlQUFzQixnQkFBZ0IsUUFBdUM7QUFDM0UsUUFBTSxXQUFXLHNCQUFzQixNQUFNO0FBQzdDLFFBQU0sYUFBYSxDQUFDLFNBQVMsU0FBUyxHQUFHLEVBQUUsS0FBSyxTQUFTLGVBQWUsZUFBZSxLQUFLLENBQUM7QUFDL0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
55
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2RvY3Mtc2l0ZS9kb2NzLXNpdGUtY29tbWFuZHMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGUgYGRvY3M6YnVpbGRgLCBgZG9jczpkZXZgIGFuZCBgZG9jczpwcmV2aWV3YCBjb21tYW5kcyBvZiBhIGRvY3VtZW50YXRpb24gc2l0ZS5cbiAqXG4gKiBFYWNoIHRha2VzIHRoZSBzYW1lIHtAbGluayBEb2NzU2l0ZUNvbmZpZ30gdGhlIHNpdGUncyBgYXN0cm8uY29uZmlnLnRzYCBwYXNzZXMgdG8gYGRlZmluZURvY3NTaXRlQ29uZmlnYCwgc28gYVxuICogcmVwb3NpdG9yeSBkZXNjcmliZXMgaXRzIHNpdGUgb25jZSwgaW4gYSBtb2R1bGUgYm90aCBpbXBvcnQuXG4gKi9cblxuaW1wb3J0IHsgam9pbiB9IGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgcHJvY2VzcyBmcm9tICdub2RlOnByb2Nlc3MnO1xuXG5pbXBvcnQgdHlwZSB7IERvY3NTaXRlQ29uZmlnIH0gZnJvbSAnLi9kb2NzLXNpdGUtY29uZmlnLnRzJztcblxuaW1wb3J0IHsgZXhlY0Zyb21Sb290IH0gZnJvbSAnLi4vcm9vdC50cyc7XG5pbXBvcnQgeyBnZW5lcmF0ZUFwaURvY3MgfSBmcm9tICcuL2FwaS1kb2NzLnRzJztcbmltcG9ydCB7IGFzc2VydERvY3NMaW5rc1Jlc29sdmUgfSBmcm9tICcuL2RvY3MtbGlua3MudHMnO1xuaW1wb3J0IHsgZ2V0RG9jc1NpdGVBc3NldHNEaXJlY3RvcnkgfSBmcm9tICcuL2RvY3Mtc2l0ZS1hc3NldHMudHMnO1xuaW1wb3J0IHsgcmVzb2x2ZURvY3NTaXRlQ29uZmlnIH0gZnJvbSAnLi9kb2NzLXNpdGUtY29uZmlnLnRzJztcbmltcG9ydCB7IGdlbmVyYXRlT2dJbWFnZXMgfSBmcm9tICcuL29nLWltYWdlcy50cyc7XG5pbXBvcnQgeyBzeW5jUmVwb0hvbWVwYWdlIH0gZnJvbSAnLi9yZXBvLWhvbWVwYWdlLnRzJztcblxuLyoqXG4gKiBCdWlsZHMgdGhlIHNpdGU6IGdlbmVyYXRlcyB0aGUgQVBJIHJlZmVyZW5jZSBhbmQgdGhlIE9wZW4gR3JhcGggY2FyZHMsIHJ1bnMgYGFzdHJvIGJ1aWxkYCwgdGhlbiBjaGVja3MgZXZlcnkgbGlua1xuICogb2YgdGhlIG91dHB1dC4gV2l0aCB7QGxpbmsgRG9jc1NpdGVDb25maWcucmVwb0hvbWVwYWdlfSBvbiwgaXQgdGhlbiBjaGVja3MgdGhlIHJlcG9zaXRvcnkncyBHaXRIdWIgaG9tZXBhZ2UgYWdhaW5zdFxuICogdGhlIHNpdGUncyBVUkwuXG4gKlxuICogQHBhcmFtIGNvbmZpZyAtIFRoZSBzaXRlJ3MgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkRG9jc1NpdGUoY29uZmlnOiBEb2NzU2l0ZUNvbmZpZyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVEb2NzU2l0ZUNvbmZpZyhjb25maWcpO1xuICBhd2FpdCBnZW5lcmF0ZUFwaURvY3MoeyByb290RGlyZWN0b3J5OiByZXNvbHZlZC5yb290RGlyZWN0b3J5LCBzZXR0aW5nczogcmVzb2x2ZWQuYXBpRG9jU2V0dGluZ3MsIHNvdXJjZURpcmVjdG9yeTogcmVzb2x2ZWQuc291cmNlRGlyZWN0b3J5IH0pO1xuICBhd2FpdCBnZW5lcmF0ZU9nSW1hZ2VzKHtcbiAgICBicmFuZFRleHQ6IHJlc29sdmVkLnBhY2thZ2VOYW1lLFxuICAgIGNvbnRlbnREb2NzRGlyZWN0b3J5OiByZXNvbHZlZC5jb250ZW50RG9jc0RpcmVjdG9yeSxcbiAgICBmYXZpY29uUGF0aDogcmVzb2x2ZWQuZmF2aWNvblBhdGgsXG4gICAgZm9udHNEaXJlY3Rvcnk6IGpvaW4oZ2V0RG9jc1NpdGVBc3NldHNEaXJlY3RvcnkoKSwgJ2ZvbnRzJyksXG4gICAgb3V0cHV0RGlyZWN0b3J5OiByZXNvbHZlZC5vZ091dHB1dERpcmVjdG9yeVxuICB9KTtcbiAgYXdhaXQgZXhlY0Zyb21Sb290KFsnYXN0cm8nLCAnYnVpbGQnXSwgeyBjd2Q6IHJlc29sdmVkLnJvb3REaXJlY3RvcnkgfSk7XG4gIGF3YWl0IGFzc2VydERvY3NMaW5rc1Jlc29sdmUoeyBvdXRwdXREaXJlY3Rvcnk6IHJlc29sdmVkLmRpc3REaXJlY3RvcnksIHNpdGVCYXNlVXJsOiByZXNvbHZlZC5zaXRlQmFzZVVybCB9KTtcbiAgaWYgKHJlc29sdmVkLnJlcG9Ib21lcGFnZSAhPT0gJ29mZicpIHtcbiAgICBhd2FpdCBzeW5jUmVwb0hvbWVwYWdlKHsgaG9tZXBhZ2VVcmw6IHJlc29sdmVkLnNpdGVCYXNlVXJsLCBtb2RlOiByZXNvbHZlZC5yZXBvSG9tZXBhZ2UsIG93bmVyOiByZXNvbHZlZC5vd25lciwgcmVwbzogcmVzb2x2ZWQucmVwbyB9KTtcbiAgfVxufVxuXG4vKipcbiAqIEdlbmVyYXRlcyB0aGUgQVBJIHJlZmVyZW5jZSwgdGhlbiBzZXJ2ZXMgdGhlIHNpdGUgd2l0aCBgYXN0cm8gZGV2YCB1bnRpbCBpdCBpcyBzdG9wcGVkLlxuICpcbiAqIEBwYXJhbSBjb25maWcgLSBUaGUgc2l0ZSdzIGNvbmZpZ3VyYXRpb24uXG4gKiBAcGFyYW0gYXN0cm9Bcmd1bWVudHMgLSBUaGUgYXJndW1lbnRzIGFwcGVuZGVkIHRvIGBhc3RybyBkZXZgLCBzdWNoIGFzIGAtLXBvcnQgNDM5OWAuIERlZmF1bHRzIHRvIHRoZSBzY3JpcHQncyBvd25cbiAqICAgY29tbWFuZC1saW5lIGFyZ3VtZW50cywgc28gYG5wbSBydW4gZG9jczpkZXYgLS0gLS1wb3J0IDQzOTlgIHJlYWNoZXMgQXN0cm8uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZXZEb2NzU2l0ZShjb25maWc6IERvY3NTaXRlQ29uZmlnLCBhc3Ryb0FyZ3VtZW50czogcmVhZG9ubHkgc3RyaW5nW10gPSBnZXRTY3JpcHRBcmd1bWVudHMoKSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVEb2NzU2l0ZUNvbmZpZyhjb25maWcpO1xuICBhd2FpdCBnZW5lcmF0ZUFwaURvY3MoeyByb290RGlyZWN0b3J5OiByZXNvbHZlZC5yb290RGlyZWN0b3J5LCBzZXR0aW5nczogcmVzb2x2ZWQuYXBpRG9jU2V0dGluZ3MsIHNvdXJjZURpcmVjdG9yeTogcmVzb2x2ZWQuc291cmNlRGlyZWN0b3J5IH0pO1xuICAvLyBgQVNUUk9fREVWX0JBQ0tHUk9VTkRgIGZvcmNlcyBBc3RybydzIGZvcmVncm91bmQgZGV2IHNlcnZlci4gQXN0cm8gb3RoZXJ3aXNlIHN3aXRjaGVzIHRvIGEgYmFja2dyb3VuZCBsYXVuY2hlclxuICAvLyAoaGFyZGNvZGVkIDMwcyBzdGFydHVwIHRpbWVvdXQpIHVuZGVyIGFuIGFnZW50IC8gbm9uLWludGVyYWN0aXZlIGVudmlyb25tZW50LlxuICBhd2FpdCBleGVjRnJvbVJvb3QoWydhc3RybycsICdkZXYnLCAuLi5hc3Ryb0FyZ3VtZW50c10sIHtcbiAgICBjd2Q6IHJlc29sdmVkLnJvb3REaXJlY3RvcnksXG4gICAgZW52OiB7XG4gICAgICBBU1RST19ERVZfQkFDS0dST1VORDogJzEnXG4gICAgfSxcbiAgICBpc0ludGVyYWN0aXZlOiB0cnVlXG4gIH0pO1xufVxuXG4vKipcbiAqIFNlcnZlcyB0aGUgbGFzdCBidWlsZCB3aXRoIGBhc3RybyBwcmV2aWV3YCB1bnRpbCBpdCBpcyBzdG9wcGVkLlxuICpcbiAqIEBwYXJhbSBjb25maWcgLSBUaGUgc2l0ZSdzIGNvbmZpZ3VyYXRpb24uXG4gKiBAcGFyYW0gYXN0cm9Bcmd1bWVudHMgLSBUaGUgYXJndW1lbnRzIGFwcGVuZGVkIHRvIGBhc3RybyBwcmV2aWV3YCwgc3VjaCBhcyBgLS1wb3J0IDQzOTlgLiBEZWZhdWx0cyB0byB0aGUgc2NyaXB0J3NcbiAqICAgb3duIGNvbW1hbmQtbGluZSBhcmd1bWVudHMsIHNvIGBucG0gcnVuIGRvY3M6cHJldmlldyAtLSAtLXBvcnQgNDM5OWAgcmVhY2hlcyBBc3Ryby5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByZXZpZXdEb2NzU2l0ZShjb25maWc6IERvY3NTaXRlQ29uZmlnLCBhc3Ryb0FyZ3VtZW50czogcmVhZG9ubHkgc3RyaW5nW10gPSBnZXRTY3JpcHRBcmd1bWVudHMoKSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVEb2NzU2l0ZUNvbmZpZyhjb25maWcpO1xuICBhd2FpdCBleGVjRnJvbVJvb3QoWydhc3RybycsICdwcmV2aWV3JywgLi4uYXN0cm9Bcmd1bWVudHNdLCB7IGN3ZDogcmVzb2x2ZWQucm9vdERpcmVjdG9yeSwgaXNJbnRlcmFjdGl2ZTogdHJ1ZSB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0U2NyaXB0QXJndW1lbnRzKCk6IHN0cmluZ1tdIHtcbiAgY29uc3QgWywgLCAuLi5zY3JpcHRBcmd1bWVudHNdID0gcHJvY2Vzcy5hcmd2O1xuICByZXR1cm4gc2NyaXB0QXJndW1lbnRzO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUFTQSxTQUFTLFlBQVk7QUFDckIsT0FBTyxhQUFhO0FBSXBCLFNBQVMsb0JBQW9CO0FBQzdCLFNBQVMsdUJBQXVCO0FBQ2hDLFNBQVMsOEJBQThCO0FBQ3ZDLFNBQVMsa0NBQWtDO0FBQzNDLFNBQVMsNkJBQTZCO0FBQ3RDLFNBQVMsd0JBQXdCO0FBQ2pDLFNBQVMsd0JBQXdCO0FBU2pDLGVBQXNCLGNBQWMsUUFBdUM7QUFDekUsUUFBTSxXQUFXLHNCQUFzQixNQUFNO0FBQzdDLFFBQU0sZ0JBQWdCLEVBQUUsZUFBZSxTQUFTLGVBQWUsVUFBVSxTQUFTLGdCQUFnQixpQkFBaUIsU0FBUyxnQkFBZ0IsQ0FBQztBQUM3SSxRQUFNLGlCQUFpQjtBQUFBLElBQ3JCLFdBQVcsU0FBUztBQUFBLElBQ3BCLHNCQUFzQixTQUFTO0FBQUEsSUFDL0IsYUFBYSxTQUFTO0FBQUEsSUFDdEIsZ0JBQWdCLEtBQUssMkJBQTJCLEdBQUcsT0FBTztBQUFBLElBQzFELGlCQUFpQixTQUFTO0FBQUEsRUFDNUIsQ0FBQztBQUNELFFBQU0sYUFBYSxDQUFDLFNBQVMsT0FBTyxHQUFHLEVBQUUsS0FBSyxTQUFTLGNBQWMsQ0FBQztBQUN0RSxRQUFNLHVCQUF1QixFQUFFLGlCQUFpQixTQUFTLGVBQWUsYUFBYSxTQUFTLFlBQVksQ0FBQztBQUMzRyxNQUFJLFNBQVMsaUJBQWlCLE9BQU87QUFDbkMsVUFBTSxpQkFBaUIsRUFBRSxhQUFhLFNBQVMsYUFBYSxNQUFNLFNBQVMsY0FBYyxPQUFPLFNBQVMsT0FBTyxNQUFNLFNBQVMsS0FBSyxDQUFDO0FBQUEsRUFDdkk7QUFDRjtBQVNBLGVBQXNCLFlBQVksUUFBd0IsaUJBQW9DLG1CQUFtQixHQUFrQjtBQUNqSSxRQUFNLFdBQVcsc0JBQXNCLE1BQU07QUFDN0MsUUFBTSxnQkFBZ0IsRUFBRSxlQUFlLFNBQVMsZUFBZSxVQUFVLFNBQVMsZ0JBQWdCLGlCQUFpQixTQUFTLGdCQUFnQixDQUFDO0FBRzdJLFFBQU0sYUFBYSxDQUFDLFNBQVMsT0FBTyxHQUFHLGNBQWMsR0FBRztBQUFBLElBQ3RELEtBQUssU0FBUztBQUFBLElBQ2QsS0FBSztBQUFBLE1BQ0gsc0JBQXNCO0FBQUEsSUFDeEI7QUFBQSxJQUNBLGVBQWU7QUFBQSxFQUNqQixDQUFDO0FBQ0g7QUFTQSxlQUFzQixnQkFBZ0IsUUFBd0IsaUJBQW9DLG1CQUFtQixHQUFrQjtBQUNySSxRQUFNLFdBQVcsc0JBQXNCLE1BQU07QUFDN0MsUUFBTSxhQUFhLENBQUMsU0FBUyxXQUFXLEdBQUcsY0FBYyxHQUFHLEVBQUUsS0FBSyxTQUFTLGVBQWUsZUFBZSxLQUFLLENBQUM7QUFDbEg7QUFFQSxTQUFTLHFCQUErQjtBQUN0QyxRQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsZUFBZSxJQUFJLFFBQVE7QUFDekMsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -6,6 +6,7 @@
6
6
  * it documents, where its sources and pages live, and which other sites it links to.
7
7
  */
8
8
  import type { ApiDocSettings } from './api-doc-settings.mjs';
9
+ import type { RepoHomepageMode } from './repo-homepage.mjs';
9
10
  /**
10
11
  * Describes a documentation site. Every path is relative to {@link DocsSiteConfig.rootDirectory}.
11
12
  */
@@ -44,6 +45,14 @@ export interface DocsSiteConfig {
44
45
  * The repository's name. The site is served under it: `<siteOrigin>/<repo>/`.
45
46
  */
46
47
  readonly repo: string;
48
+ /**
49
+ * What `buildDocsSite` does, after the build, about the repository's GitHub homepage: compare it with the site's
50
+ * URL and report a mismatch (`check`), or also set it (`set`). It reads and writes through the `gh` CLI, and
51
+ * only ever warns. A workflow's `GITHUB_TOKEN` can read the homepage but not set it, so in CI `set` reports too.
52
+ *
53
+ * @default 'off'
54
+ */
55
+ readonly repoHomepage?: RepoHomepageMode;
47
56
  /**
48
57
  * The repository root, holding `package.json`, `tsconfig.json` and `node_modules`.
49
58
  *
@@ -115,6 +124,10 @@ export interface ResolvedDocsSiteConfig {
115
124
  * The folder the Open Graph cards are written to, `<docs>/public/og`.
116
125
  */
117
126
  readonly ogOutputDirectory: string;
127
+ /**
128
+ * See {@link DocsSiteConfig.owner}.
129
+ */
130
+ readonly owner: string;
118
131
  /**
119
132
  * The documented package's name, read from the root `package.json`.
120
133
  */
@@ -131,6 +144,10 @@ export interface ResolvedDocsSiteConfig {
131
144
  * See {@link DocsSiteConfig.repo}.
132
145
  */
133
146
  readonly repo: string;
147
+ /**
148
+ * See {@link DocsSiteConfig.repoHomepage}.
149
+ */
150
+ readonly repoHomepage: RepoHomepageMode;
134
151
  /**
135
152
  * See {@link DocsSiteConfig.rootDirectory}.
136
153
  */
@@ -47,6 +47,7 @@ function resolveDocsSiteConfig(config) {
47
47
  owner = "mnaoumov",
48
48
  packageSites = DEFAULT_PACKAGE_SITES,
49
49
  repo,
50
+ repoHomepage = "off",
50
51
  rootDirectory = process.cwd(),
51
52
  siteOrigin = "https://mnaoumov.dev",
52
53
  sourceDirectory = "src",
@@ -81,10 +82,12 @@ function resolveDocsSiteConfig(config) {
81
82
  githubUrl,
82
83
  guidesDirectory,
83
84
  ogOutputDirectory: join(publicDirectory, "og"),
85
+ owner,
84
86
  packageName: packageJson.name,
85
87
  packageVersion: packageJson.version,
86
88
  publicDirectory,
87
89
  repo,
90
+ repoHomepage,
88
91
  rootDirectory,
89
92
  siteBaseUrl: `${siteOrigin}/${repo}/`,
90
93
  siteOrigin,
@@ -95,4 +98,4 @@ function resolveDocsSiteConfig(config) {
95
98
  export {
96
99
  resolveDocsSiteConfig
97
100
  };
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb2NzLXNpdGUvZG9jcy1zaXRlLWNvbmZpZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhlIG9uZSBkZXNjcmlwdGlvbiBvZiBhIGRvY3VtZW50YXRpb24gc2l0ZSB0aGF0IGl0cyBBc3RybyBjb25maWcgYW5kIGl0cyBidWlsZCBjb21tYW5kcyBzaGFyZTogd2hpY2ggcmVwb3NpdG9yeVxuICogaXQgZG9jdW1lbnRzLCB3aGVyZSBpdHMgc291cmNlcyBhbmQgcGFnZXMgbGl2ZSwgYW5kIHdoaWNoIG90aGVyIHNpdGVzIGl0IGxpbmtzIHRvLlxuICovXG5cbmltcG9ydCB7IHJlYWRGaWxlU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ25vZGU6cGF0aCc7XG5cbmltcG9ydCB0eXBlIHsgQXBpRG9jU2V0dGluZ3MgfSBmcm9tICcuL2FwaS1kb2Mtc2V0dGluZ3MudHMnO1xuXG5pbXBvcnQgeyBERUZBVUxUX1BBQ0tBR0VfU0lURVMgfSBmcm9tICcuL2FwaS1kb2MtcGFja2FnZS1zaXRlcy50cyc7XG5cbi8qKlxuICogRGVzY3JpYmVzIGEgZG9jdW1lbnRhdGlvbiBzaXRlLiBFdmVyeSBwYXRoIGlzIHJlbGF0aXZlIHRvIHtAbGluayBEb2NzU2l0ZUNvbmZpZy5yb290RGlyZWN0b3J5fS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NzU2l0ZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgZm9sZGVyIGhvbGRpbmcgdGhlIHNpdGU6IGl0cyBgc3JjYCAocGFnZXMsIGBjb250ZW50LmNvbmZpZy50c2ApLCBgcHVibGljYCBhbmQgYnVpbGQgb3V0cHV0IGBkaXN0YC5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2RvY3MnXG4gICAqL1xuICByZWFkb25seSBkb2NzRGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUeXBlIG5hbWVzIG1hcHBlZCB0byB0aGUgVVJMIHRoZWlyIHJlZmVyZW5jZXMgbGluayB0bywgZm9yIHR5cGVzIG5vIGRvY3VtZW50ZWQgcGFja2FnZSBkZWNsYXJlcy4gVGhlIGxheWVyXG4gICAqIGRvY3VtZW50aW5nIGFuIGVjb3N5c3RlbSdzIHBhY2thZ2VzIGZpbGxzIGl0IHdpdGggdGhhdCBlY29zeXN0ZW0ncyByZWZlcmVuY2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgZXh0ZXJuYWxUeXBlTGlua3M/OiBSZWFkb25seU1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFRoZSBmb2xkZXIgdW5kZXIgYDxkb2NzPi9zcmMvY29udGVudC9kb2NzYCB0aGUgZ3VpZGVzIHNpZGViYXIgZ3JvdXAgaXMgZ2VuZXJhdGVkIGZyb20uXG4gICAqXG4gICAqIEBkZWZhdWx0ICdndWlkZXMnXG4gICAqL1xuICByZWFkb25seSBndWlkZXNEaXJlY3Rvcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBHaXRIdWIgYWNjb3VudCB0aGUgcmVwb3NpdG9yeSBiZWxvbmdzIHRvLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnbW5hb3Vtb3YnXG4gICAqL1xuICByZWFkb25seSBvd25lcj86IHN0cmluZztcblxuICAvKipcbiAgICogUGFja2FnZSBuYW1lcyBtYXBwZWQgdG8gdGhlIHJvb3QgVVJMIG9mIHRoZWlyIGRvY3VtZW50YXRpb24gc2l0ZSwgd2l0aCBhIHRyYWlsaW5nIHNsYXNoLiBBIHR5cGUgZGVjbGFyZWQgaW4gb25lXG4gICAqIG9mIHRoZW0gbGlua3MgdG8gaXRzIHBhZ2UgdGhlcmUuIFRoZSBkb2N1bWVudGVkIHBhY2thZ2UgaXRzZWxmIGlzIG5ldmVyIGxpbmtlZCB0aGlzIHdheS5cbiAgICpcbiAgICogQGRlZmF1bHQgREVGQVVMVF9QQUNLQUdFX1NJVEVTXG4gICAqL1xuICByZWFkb25seSBwYWNrYWdlU2l0ZXM/OiBSZWFkb25seU1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFRoZSByZXBvc2l0b3J5J3MgbmFtZS4gVGhlIHNpdGUgaXMgc2VydmVkIHVuZGVyIGl0OiBgPHNpdGVPcmlnaW4+LzxyZXBvPi9gLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVwbzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVwb3NpdG9yeSByb290LCBob2xkaW5nIGBwYWNrYWdlLmpzb25gLCBgdHNjb25maWcuanNvbmAgYW5kIGBub2RlX21vZHVsZXNgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBwcm9jZXNzLmN3ZCgpXG4gICAqL1xuICByZWFkb25seSByb290RGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgb3JpZ2luIGV2ZXJ5IHNpdGUgb2YgdGhlIGFjY291bnQgaXMgc2VydmVkIGZyb20uXG4gICAqXG4gICAqIEBkZWZhdWx0ICdodHRwczovL21uYW91bW92LmRldidcbiAgICovXG4gIHJlYWRvbmx5IHNpdGVPcmlnaW4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmb2xkZXIgd2hvc2UgbW9kdWxlcyB0aGUgQVBJIHJlZmVyZW5jZSBkb2N1bWVudHMuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdzcmMnXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VEaXJlY3Rvcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzaXRlJ3MgdGl0bGUsIHNob3duIGluIGl0cyBoZWFkZXIuXG4gICAqL1xuICByZWFkb25seSB0aXRsZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIHtAbGluayBEb2NzU2l0ZUNvbmZpZ30gd2l0aCBldmVyeSBkZWZhdWx0IGFwcGxpZWQsIGV2ZXJ5IHBhdGggYWJzb2x1dGUsIGFuZCB0aGUgdmFsdWVzIGRlcml2ZWQgZnJvbSB0aGVtLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVkRG9jc1NpdGVDb25maWcge1xuICAvKipcbiAgICogVGhlIEFQSSBkb2N1bWVudGF0aW9uIGdlbmVyYXRvcidzIHNldHRpbmdzIGZvciB0aGUgc2l0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwaURvY1NldHRpbmdzOiBBcGlEb2NTZXR0aW5ncztcblxuICAvKipcbiAgICogVGhlIGJhc2UgcGF0aCwgZS5nLiBgL3R5cGVzY3JpcHQtbGliYC5cbiAgICovXG4gIHJlYWRvbmx5IGJhc2VQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkb2N1bWVudGF0aW9uIGNvbnRlbnQgcm9vdCwgYDxkb2NzPi9zcmMvY29udGVudC9kb2NzYC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRlbnREb2NzRGlyZWN0b3J5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBidWlsZCBvdXRwdXQgZm9sZGVyLCBgPGRvY3M+L2Rpc3RgLlxuICAgKi9cbiAgcmVhZG9ubHkgZGlzdERpcmVjdG9yeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2l0ZSBmb2xkZXIuXG4gICAqL1xuICByZWFkb25seSBkb2NzRGlyZWN0b3J5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzaXRlJ3Mgc291cmNlIGZvbGRlciwgYDxkb2NzPi9zcmNgLlxuICAgKi9cbiAgcmVhZG9ubHkgZG9jc1NvdXJjZURpcmVjdG9yeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgVVJMIGEgcGFnZSdzIGVkaXQgbGluayBzdGFydHMgd2l0aDogdGhlIHJlcG9zaXRvcnkncyBgZWRpdC9tYWluL2AgdHJlZS5cbiAgICovXG4gIHJlYWRvbmx5IGVkaXRMaW5rQmFzZVVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2l0ZSdzIFNWRyBsb2dvLCBgPGRvY3M+L3B1YmxpYy9mYXZpY29uLnN2Z2AuXG4gICAqL1xuICByZWFkb25seSBmYXZpY29uUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVwb3NpdG9yeSdzIEdpdEh1YiBVUkwuXG4gICAqL1xuICByZWFkb25seSBnaXRodWJVcmw6IHN0cmluZztcblxuICAvKipcbiAgICogU2VlIHtAbGluayBEb2NzU2l0ZUNvbmZpZy5ndWlkZXNEaXJlY3Rvcnl9LlxuICAgKi9cbiAgcmVhZG9ubHkgZ3VpZGVzRGlyZWN0b3J5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmb2xkZXIgdGhlIE9wZW4gR3JhcGggY2FyZHMgYXJlIHdyaXR0ZW4gdG8sIGA8ZG9jcz4vcHVibGljL29nYC5cbiAgICovXG4gIHJlYWRvbmx5IG9nT3V0cHV0RGlyZWN0b3J5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkb2N1bWVudGVkIHBhY2thZ2UncyBuYW1lLCByZWFkIGZyb20gdGhlIHJvb3QgYHBhY2thZ2UuanNvbmAuXG4gICAqL1xuICByZWFkb25seSBwYWNrYWdlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZG9jdW1lbnRlZCBwYWNrYWdlJ3MgdmVyc2lvbiwgcmVhZCBmcm9tIHRoZSByb290IGBwYWNrYWdlLmpzb25gLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZVZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNpdGUncyBzdGF0aWMgZm9sZGVyLCBgPGRvY3M+L3B1YmxpY2AuXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNEaXJlY3Rvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogU2VlIHtAbGluayBEb2NzU2l0ZUNvbmZpZy5yZXBvfS5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG86IHN0cmluZztcblxuICAvKipcbiAgICogU2VlIHtAbGluayBEb2NzU2l0ZUNvbmZpZy5yb290RGlyZWN0b3J5fS5cbiAgICovXG4gIHJlYWRvbmx5IHJvb3REaXJlY3Rvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFic29sdXRlIFVSTCB0aGUgc2l0ZSBpcyBzZXJ2ZWQgZnJvbSwgd2l0aCBhIHRyYWlsaW5nIHNsYXNoLlxuICAgKi9cbiAgcmVhZG9ubHkgc2l0ZUJhc2VVcmw6IHN0cmluZztcblxuICAvKipcbiAgICogU2VlIHtAbGluayBEb2NzU2l0ZUNvbmZpZy5zaXRlT3JpZ2lufS5cbiAgICovXG4gIHJlYWRvbmx5IHNpdGVPcmlnaW46IHN0cmluZztcblxuICAvKipcbiAgICogU2VlIHtAbGluayBEb2NzU2l0ZUNvbmZpZy5zb3VyY2VEaXJlY3Rvcnl9LlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlRGlyZWN0b3J5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNlZSB7QGxpbmsgRG9jc1NpdGVDb25maWcudGl0bGV9LlxuICAgKi9cbiAgcmVhZG9ubHkgdGl0bGU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFBhY2thZ2VKc29uRmllbGRzIHtcbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBcHBsaWVzIHRoZSBkZWZhdWx0cyB0byBhIHNpdGUncyBvcHRpb25zIGFuZCBkZXJpdmVzIGV2ZXJ5IHBhdGggYW5kIFVSTCBmcm9tIHRoZW0uXG4gKlxuICogQHBhcmFtIGNvbmZpZyAtIFRoZSBzaXRlJ3MgY29uZmlndXJhdGlvbi5cbiAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCBjb25maWd1cmF0aW9uLlxuICogQHRocm93cyBJZiB0aGUgcm9vdCBgcGFja2FnZS5qc29uYCBoYXMgbm8gYG5hbWVgIG9yIGB2ZXJzaW9uYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVEb2NzU2l0ZUNvbmZpZyhjb25maWc6IERvY3NTaXRlQ29uZmlnKTogUmVzb2x2ZWREb2NzU2l0ZUNvbmZpZyB7XG4gIGNvbnN0IHtcbiAgICBkb2NzRGlyZWN0b3J5ID0gJ2RvY3MnLFxuICAgIGV4dGVybmFsVHlwZUxpbmtzID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKSxcbiAgICBndWlkZXNEaXJlY3RvcnkgPSAnZ3VpZGVzJyxcbiAgICBvd25lciA9ICdtbmFvdW1vdicsXG4gICAgcGFja2FnZVNpdGVzID0gREVGQVVMVF9QQUNLQUdFX1NJVEVTLFxuICAgIHJlcG8sXG4gICAgcm9vdERpcmVjdG9yeSA9IHByb2Nlc3MuY3dkKCksXG4gICAgc2l0ZU9yaWdpbiA9ICdodHRwczovL21uYW91bW92LmRldicsXG4gICAgc291cmNlRGlyZWN0b3J5ID0gJ3NyYycsXG4gICAgdGl0bGVcbiAgfSA9IGNvbmZpZztcblxuICBjb25zdCBwYWNrYWdlSnNvbiA9IEpTT04ucGFyc2UocmVhZEZpbGVTeW5jKGpvaW4ocm9vdERpcmVjdG9yeSwgJ3BhY2thZ2UuanNvbicpLCAndXRmLTgnKSkgYXMgUGFja2FnZUpzb25GaWVsZHM7XG4gIGlmIChwYWNrYWdlSnNvbi5uYW1lID09PSB1bmRlZmluZWQgfHwgcGFja2FnZUpzb24udmVyc2lvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGAke2pvaW4ocm9vdERpcmVjdG9yeSwgJ3BhY2thZ2UuanNvbicpfSBoYXMgbm8gbmFtZSBvciBubyB2ZXJzaW9uLmApO1xuICB9XG5cbiAgY29uc3QgYWJzb2x1dGVEb2NzRGlyZWN0b3J5ID0gam9pbihyb290RGlyZWN0b3J5LCBkb2NzRGlyZWN0b3J5KTtcbiAgY29uc3QgZG9jc1NvdXJjZURpcmVjdG9yeSA9IGpvaW4oYWJzb2x1dGVEb2NzRGlyZWN0b3J5LCAnc3JjJyk7XG4gIGNvbnN0IGNvbnRlbnREb2NzRGlyZWN0b3J5ID0gam9pbihkb2NzU291cmNlRGlyZWN0b3J5LCAnY29udGVudCcsICdkb2NzJyk7XG4gIGNvbnN0IHB1YmxpY0RpcmVjdG9yeSA9IGpvaW4oYWJzb2x1dGVEb2NzRGlyZWN0b3J5LCAncHVibGljJyk7XG4gIGNvbnN0IGdpdGh1YlVybCA9IGBodHRwczovL2dpdGh1Yi5jb20vJHtvd25lcn0vJHtyZXBvfWA7XG5cbiAgY29uc3QgYmFzZVBhdGggPSBgLyR7cmVwb31gO1xuICByZXR1cm4ge1xuICAgIGFwaURvY1NldHRpbmdzOiB7XG4gICAgICBiYXNlUGF0aCxcbiAgICAgIGV4dGVybmFsVHlwZUxpbmtzLFxuICAgICAgb3V0cHV0RGlyZWN0b3J5OiBqb2luKGNvbnRlbnREb2NzRGlyZWN0b3J5LCAnYXBpJyksXG4gICAgICBwYWNrYWdlTmFtZTogcGFja2FnZUpzb24ubmFtZSxcbiAgICAgIHBhY2thZ2VTaXRlcyxcbiAgICAgIHNpZGViYXJGaWxlOiBqb2luKGRvY3NTb3VyY2VEaXJlY3RvcnksICdnZW5lcmF0ZWQtc2lkZWJhci5qc29uJylcbiAgICB9LFxuICAgIGJhc2VQYXRoLFxuICAgIGNvbnRlbnREb2NzRGlyZWN0b3J5LFxuICAgIGRpc3REaXJlY3Rvcnk6IGpvaW4oYWJzb2x1dGVEb2NzRGlyZWN0b3J5LCAnZGlzdCcpLFxuICAgIGRvY3NEaXJlY3Rvcnk6IGFic29sdXRlRG9jc0RpcmVjdG9yeSxcbiAgICBkb2NzU291cmNlRGlyZWN0b3J5LFxuICAgIGVkaXRMaW5rQmFzZVVybDogYCR7Z2l0aHViVXJsfS9lZGl0L21haW4vYCxcbiAgICBmYXZpY29uUGF0aDogam9pbihwdWJsaWNEaXJlY3RvcnksICdmYXZpY29uLnN2ZycpLFxuICAgIGdpdGh1YlVybCxcbiAgICBndWlkZXNEaXJlY3RvcnksXG4gICAgb2dPdXRwdXREaXJlY3Rvcnk6IGpvaW4ocHVibGljRGlyZWN0b3J5LCAnb2cnKSxcbiAgICBwYWNrYWdlTmFtZTogcGFja2FnZUpzb24ubmFtZSxcbiAgICBwYWNrYWdlVmVyc2lvbjogcGFja2FnZUpzb24udmVyc2lvbixcbiAgICBwdWJsaWNEaXJlY3RvcnksXG4gICAgcmVwbyxcbiAgICByb290RGlyZWN0b3J5LFxuICAgIHNpdGVCYXNlVXJsOiBgJHtzaXRlT3JpZ2lufS8ke3JlcG99L2AsXG4gICAgc2l0ZU9yaWdpbixcbiAgICBzb3VyY2VEaXJlY3Rvcnk6IGpvaW4ocm9vdERpcmVjdG9yeSwgc291cmNlRGlyZWN0b3J5KSxcbiAgICB0aXRsZVxuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU9BLFNBQVMsb0JBQW9CO0FBQzdCLFNBQVMsWUFBWTtBQUlyQixTQUFTLDZCQUE2QjtBQThML0IsU0FBUyxzQkFBc0IsUUFBZ0Q7QUFDcEYsUUFBTTtBQUFBLElBQ0osZ0JBQWdCO0FBQUEsSUFDaEIsb0JBQW9CLG9CQUFJLElBQW9CO0FBQUEsSUFDNUMsa0JBQWtCO0FBQUEsSUFDbEIsUUFBUTtBQUFBLElBQ1IsZUFBZTtBQUFBLElBQ2Y7QUFBQSxJQUNBLGdCQUFnQixRQUFRLElBQUk7QUFBQSxJQUM1QixhQUFhO0FBQUEsSUFDYixrQkFBa0I7QUFBQSxJQUNsQjtBQUFBLEVBQ0YsSUFBSTtBQUVKLFFBQU0sY0FBYyxLQUFLLE1BQU0sYUFBYSxLQUFLLGVBQWUsY0FBYyxHQUFHLE9BQU8sQ0FBQztBQUN6RixNQUFJLFlBQVksU0FBUyxVQUFhLFlBQVksWUFBWSxRQUFXO0FBQ3ZFLFVBQU0sSUFBSSxNQUFNLEdBQUcsS0FBSyxlQUFlLGNBQWMsQ0FBQyw2QkFBNkI7QUFBQSxFQUNyRjtBQUVBLFFBQU0sd0JBQXdCLEtBQUssZUFBZSxhQUFhO0FBQy9ELFFBQU0sc0JBQXNCLEtBQUssdUJBQXVCLEtBQUs7QUFDN0QsUUFBTSx1QkFBdUIsS0FBSyxxQkFBcUIsV0FBVyxNQUFNO0FBQ3hFLFFBQU0sa0JBQWtCLEtBQUssdUJBQXVCLFFBQVE7QUFDNUQsUUFBTSxZQUFZLHNCQUFzQixLQUFLLElBQUksSUFBSTtBQUVyRCxRQUFNLFdBQVcsSUFBSSxJQUFJO0FBQ3pCLFNBQU87QUFBQSxJQUNMLGdCQUFnQjtBQUFBLE1BQ2Q7QUFBQSxNQUNBO0FBQUEsTUFDQSxpQkFBaUIsS0FBSyxzQkFBc0IsS0FBSztBQUFBLE1BQ2pELGFBQWEsWUFBWTtBQUFBLE1BQ3pCO0FBQUEsTUFDQSxhQUFhLEtBQUsscUJBQXFCLHdCQUF3QjtBQUFBLElBQ2pFO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBLGVBQWUsS0FBSyx1QkFBdUIsTUFBTTtBQUFBLElBQ2pELGVBQWU7QUFBQSxJQUNmO0FBQUEsSUFDQSxpQkFBaUIsR0FBRyxTQUFTO0FBQUEsSUFDN0IsYUFBYSxLQUFLLGlCQUFpQixhQUFhO0FBQUEsSUFDaEQ7QUFBQSxJQUNBO0FBQUEsSUFDQSxtQkFBbUIsS0FBSyxpQkFBaUIsSUFBSTtBQUFBLElBQzdDLGFBQWEsWUFBWTtBQUFBLElBQ3pCLGdCQUFnQixZQUFZO0FBQUEsSUFDNUI7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0EsYUFBYSxHQUFHLFVBQVUsSUFBSSxJQUFJO0FBQUEsSUFDbEM7QUFBQSxJQUNBLGlCQUFpQixLQUFLLGVBQWUsZUFBZTtBQUFBLElBQ3BEO0FBQUEsRUFDRjtBQUNGOyIsIm5hbWVzIjpbXX0=
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb2NzLXNpdGUvZG9jcy1zaXRlLWNvbmZpZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhlIG9uZSBkZXNjcmlwdGlvbiBvZiBhIGRvY3VtZW50YXRpb24gc2l0ZSB0aGF0IGl0cyBBc3RybyBjb25maWcgYW5kIGl0cyBidWlsZCBjb21tYW5kcyBzaGFyZTogd2hpY2ggcmVwb3NpdG9yeVxuICogaXQgZG9jdW1lbnRzLCB3aGVyZSBpdHMgc291cmNlcyBhbmQgcGFnZXMgbGl2ZSwgYW5kIHdoaWNoIG90aGVyIHNpdGVzIGl0IGxpbmtzIHRvLlxuICovXG5cbmltcG9ydCB7IHJlYWRGaWxlU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ25vZGU6cGF0aCc7XG5cbmltcG9ydCB0eXBlIHsgQXBpRG9jU2V0dGluZ3MgfSBmcm9tICcuL2FwaS1kb2Mtc2V0dGluZ3MudHMnO1xuaW1wb3J0IHR5cGUgeyBSZXBvSG9tZXBhZ2VNb2RlIH0gZnJvbSAnLi9yZXBvLWhvbWVwYWdlLnRzJztcblxuaW1wb3J0IHsgREVGQVVMVF9QQUNLQUdFX1NJVEVTIH0gZnJvbSAnLi9hcGktZG9jLXBhY2thZ2Utc2l0ZXMudHMnO1xuXG4vKipcbiAqIERlc2NyaWJlcyBhIGRvY3VtZW50YXRpb24gc2l0ZS4gRXZlcnkgcGF0aCBpcyByZWxhdGl2ZSB0byB7QGxpbmsgRG9jc1NpdGVDb25maWcucm9vdERpcmVjdG9yeX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9jc1NpdGVDb25maWcge1xuICAvKipcbiAgICogVGhlIGZvbGRlciBob2xkaW5nIHRoZSBzaXRlOiBpdHMgYHNyY2AgKHBhZ2VzLCBgY29udGVudC5jb25maWcudHNgKSwgYHB1YmxpY2AgYW5kIGJ1aWxkIG91dHB1dCBgZGlzdGAuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdkb2NzJ1xuICAgKi9cbiAgcmVhZG9ubHkgZG9jc0RpcmVjdG9yeT86IHN0cmluZztcblxuICAvKipcbiAgICogVHlwZSBuYW1lcyBtYXBwZWQgdG8gdGhlIFVSTCB0aGVpciByZWZlcmVuY2VzIGxpbmsgdG8sIGZvciB0eXBlcyBubyBkb2N1bWVudGVkIHBhY2thZ2UgZGVjbGFyZXMuIFRoZSBsYXllclxuICAgKiBkb2N1bWVudGluZyBhbiBlY29zeXN0ZW0ncyBwYWNrYWdlcyBmaWxscyBpdCB3aXRoIHRoYXQgZWNvc3lzdGVtJ3MgcmVmZXJlbmNlcy5cbiAgICovXG4gIHJlYWRvbmx5IGV4dGVybmFsVHlwZUxpbmtzPzogUmVhZG9ubHlNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBUaGUgZm9sZGVyIHVuZGVyIGA8ZG9jcz4vc3JjL2NvbnRlbnQvZG9jc2AgdGhlIGd1aWRlcyBzaWRlYmFyIGdyb3VwIGlzIGdlbmVyYXRlZCBmcm9tLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnZ3VpZGVzJ1xuICAgKi9cbiAgcmVhZG9ubHkgZ3VpZGVzRGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgR2l0SHViIGFjY291bnQgdGhlIHJlcG9zaXRvcnkgYmVsb25ncyB0by5cbiAgICpcbiAgICogQGRlZmF1bHQgJ21uYW91bW92J1xuICAgKi9cbiAgcmVhZG9ubHkgb3duZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhY2thZ2UgbmFtZXMgbWFwcGVkIHRvIHRoZSByb290IFVSTCBvZiB0aGVpciBkb2N1bWVudGF0aW9uIHNpdGUsIHdpdGggYSB0cmFpbGluZyBzbGFzaC4gQSB0eXBlIGRlY2xhcmVkIGluIG9uZVxuICAgKiBvZiB0aGVtIGxpbmtzIHRvIGl0cyBwYWdlIHRoZXJlLiBUaGUgZG9jdW1lbnRlZCBwYWNrYWdlIGl0c2VsZiBpcyBuZXZlciBsaW5rZWQgdGhpcyB3YXkuXG4gICAqXG4gICAqIEBkZWZhdWx0IERFRkFVTFRfUEFDS0FHRV9TSVRFU1xuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZVNpdGVzPzogUmVhZG9ubHlNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBUaGUgcmVwb3NpdG9yeSdzIG5hbWUuIFRoZSBzaXRlIGlzIHNlcnZlZCB1bmRlciBpdDogYDxzaXRlT3JpZ2luPi88cmVwbz4vYC5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG86IHN0cmluZztcblxuICAvKipcbiAgICogV2hhdCBgYnVpbGREb2NzU2l0ZWAgZG9lcywgYWZ0ZXIgdGhlIGJ1aWxkLCBhYm91dCB0aGUgcmVwb3NpdG9yeSdzIEdpdEh1YiBob21lcGFnZTogY29tcGFyZSBpdCB3aXRoIHRoZSBzaXRlJ3NcbiAgICogVVJMIGFuZCByZXBvcnQgYSBtaXNtYXRjaCAoYGNoZWNrYCksIG9yIGFsc28gc2V0IGl0IChgc2V0YCkuIEl0IHJlYWRzIGFuZCB3cml0ZXMgdGhyb3VnaCB0aGUgYGdoYCBDTEksIGFuZFxuICAgKiBvbmx5IGV2ZXIgd2FybnMuIEEgd29ya2Zsb3cncyBgR0lUSFVCX1RPS0VOYCBjYW4gcmVhZCB0aGUgaG9tZXBhZ2UgYnV0IG5vdCBzZXQgaXQsIHNvIGluIENJIGBzZXRgIHJlcG9ydHMgdG9vLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnb2ZmJ1xuICAgKi9cbiAgcmVhZG9ubHkgcmVwb0hvbWVwYWdlPzogUmVwb0hvbWVwYWdlTW9kZTtcblxuICAvKipcbiAgICogVGhlIHJlcG9zaXRvcnkgcm9vdCwgaG9sZGluZyBgcGFja2FnZS5qc29uYCwgYHRzY29uZmlnLmpzb25gIGFuZCBgbm9kZV9tb2R1bGVzYC5cbiAgICpcbiAgICogQGRlZmF1bHQgcHJvY2Vzcy5jd2QoKVxuICAgKi9cbiAgcmVhZG9ubHkgcm9vdERpcmVjdG9yeT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG9yaWdpbiBldmVyeSBzaXRlIG9mIHRoZSBhY2NvdW50IGlzIHNlcnZlZCBmcm9tLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnaHR0cHM6Ly9tbmFvdW1vdi5kZXYnXG4gICAqL1xuICByZWFkb25seSBzaXRlT3JpZ2luPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZm9sZGVyIHdob3NlIG1vZHVsZXMgdGhlIEFQSSByZWZlcmVuY2UgZG9jdW1lbnRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnc3JjJ1xuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlRGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2l0ZSdzIHRpdGxlLCBzaG93biBpbiBpdHMgaGVhZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgdGl0bGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiB7QGxpbmsgRG9jc1NpdGVDb25maWd9IHdpdGggZXZlcnkgZGVmYXVsdCBhcHBsaWVkLCBldmVyeSBwYXRoIGFic29sdXRlLCBhbmQgdGhlIHZhbHVlcyBkZXJpdmVkIGZyb20gdGhlbS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlZERvY3NTaXRlQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBBUEkgZG9jdW1lbnRhdGlvbiBnZW5lcmF0b3IncyBzZXR0aW5ncyBmb3IgdGhlIHNpdGUuXG4gICAqL1xuICByZWFkb25seSBhcGlEb2NTZXR0aW5nczogQXBpRG9jU2V0dGluZ3M7XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIHBhdGgsIGUuZy4gYC90eXBlc2NyaXB0LWxpYmAuXG4gICAqL1xuICByZWFkb25seSBiYXNlUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZG9jdW1lbnRhdGlvbiBjb250ZW50IHJvb3QsIGA8ZG9jcz4vc3JjL2NvbnRlbnQvZG9jc2AuXG4gICAqL1xuICByZWFkb25seSBjb250ZW50RG9jc0RpcmVjdG9yeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYnVpbGQgb3V0cHV0IGZvbGRlciwgYDxkb2NzPi9kaXN0YC5cbiAgICovXG4gIHJlYWRvbmx5IGRpc3REaXJlY3Rvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNpdGUgZm9sZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgZG9jc0RpcmVjdG9yeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2l0ZSdzIHNvdXJjZSBmb2xkZXIsIGA8ZG9jcz4vc3JjYC5cbiAgICovXG4gIHJlYWRvbmx5IGRvY3NTb3VyY2VEaXJlY3Rvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFVSTCBhIHBhZ2UncyBlZGl0IGxpbmsgc3RhcnRzIHdpdGg6IHRoZSByZXBvc2l0b3J5J3MgYGVkaXQvbWFpbi9gIHRyZWUuXG4gICAqL1xuICByZWFkb25seSBlZGl0TGlua0Jhc2VVcmw6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNpdGUncyBTVkcgbG9nbywgYDxkb2NzPi9wdWJsaWMvZmF2aWNvbi5zdmdgLlxuICAgKi9cbiAgcmVhZG9ubHkgZmF2aWNvblBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlcG9zaXRvcnkncyBHaXRIdWIgVVJMLlxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0aHViVXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNlZSB7QGxpbmsgRG9jc1NpdGVDb25maWcuZ3VpZGVzRGlyZWN0b3J5fS5cbiAgICovXG4gIHJlYWRvbmx5IGd1aWRlc0RpcmVjdG9yeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZm9sZGVyIHRoZSBPcGVuIEdyYXBoIGNhcmRzIGFyZSB3cml0dGVuIHRvLCBgPGRvY3M+L3B1YmxpYy9vZ2AuXG4gICAqL1xuICByZWFkb25seSBvZ091dHB1dERpcmVjdG9yeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTZWUge0BsaW5rIERvY3NTaXRlQ29uZmlnLm93bmVyfS5cbiAgICovXG4gIHJlYWRvbmx5IG93bmVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkb2N1bWVudGVkIHBhY2thZ2UncyBuYW1lLCByZWFkIGZyb20gdGhlIHJvb3QgYHBhY2thZ2UuanNvbmAuXG4gICAqL1xuICByZWFkb25seSBwYWNrYWdlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZG9jdW1lbnRlZCBwYWNrYWdlJ3MgdmVyc2lvbiwgcmVhZCBmcm9tIHRoZSByb290IGBwYWNrYWdlLmpzb25gLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZVZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNpdGUncyBzdGF0aWMgZm9sZGVyLCBgPGRvY3M+L3B1YmxpY2AuXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNEaXJlY3Rvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogU2VlIHtAbGluayBEb2NzU2l0ZUNvbmZpZy5yZXBvfS5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG86IHN0cmluZztcblxuICAvKipcbiAgICogU2VlIHtAbGluayBEb2NzU2l0ZUNvbmZpZy5yZXBvSG9tZXBhZ2V9LlxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb0hvbWVwYWdlOiBSZXBvSG9tZXBhZ2VNb2RlO1xuXG4gIC8qKlxuICAgKiBTZWUge0BsaW5rIERvY3NTaXRlQ29uZmlnLnJvb3REaXJlY3Rvcnl9LlxuICAgKi9cbiAgcmVhZG9ubHkgcm9vdERpcmVjdG9yeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYWJzb2x1dGUgVVJMIHRoZSBzaXRlIGlzIHNlcnZlZCBmcm9tLCB3aXRoIGEgdHJhaWxpbmcgc2xhc2guXG4gICAqL1xuICByZWFkb25seSBzaXRlQmFzZVVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTZWUge0BsaW5rIERvY3NTaXRlQ29uZmlnLnNpdGVPcmlnaW59LlxuICAgKi9cbiAgcmVhZG9ubHkgc2l0ZU9yaWdpbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTZWUge0BsaW5rIERvY3NTaXRlQ29uZmlnLnNvdXJjZURpcmVjdG9yeX0uXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VEaXJlY3Rvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogU2VlIHtAbGluayBEb2NzU2l0ZUNvbmZpZy50aXRsZX0uXG4gICAqL1xuICByZWFkb25seSB0aXRsZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgUGFja2FnZUpzb25GaWVsZHMge1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuICByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFwcGxpZXMgdGhlIGRlZmF1bHRzIHRvIGEgc2l0ZSdzIG9wdGlvbnMgYW5kIGRlcml2ZXMgZXZlcnkgcGF0aCBhbmQgVVJMIGZyb20gdGhlbS5cbiAqXG4gKiBAcGFyYW0gY29uZmlnIC0gVGhlIHNpdGUncyBjb25maWd1cmF0aW9uLlxuICogQHJldHVybnMgVGhlIHJlc29sdmVkIGNvbmZpZ3VyYXRpb24uXG4gKiBAdGhyb3dzIElmIHRoZSByb290IGBwYWNrYWdlLmpzb25gIGhhcyBubyBgbmFtZWAgb3IgYHZlcnNpb25gLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZURvY3NTaXRlQ29uZmlnKGNvbmZpZzogRG9jc1NpdGVDb25maWcpOiBSZXNvbHZlZERvY3NTaXRlQ29uZmlnIHtcbiAgY29uc3Qge1xuICAgIGRvY3NEaXJlY3RvcnkgPSAnZG9jcycsXG4gICAgZXh0ZXJuYWxUeXBlTGlua3MgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpLFxuICAgIGd1aWRlc0RpcmVjdG9yeSA9ICdndWlkZXMnLFxuICAgIG93bmVyID0gJ21uYW91bW92JyxcbiAgICBwYWNrYWdlU2l0ZXMgPSBERUZBVUxUX1BBQ0tBR0VfU0lURVMsXG4gICAgcmVwbyxcbiAgICByZXBvSG9tZXBhZ2UgPSAnb2ZmJyxcbiAgICByb290RGlyZWN0b3J5ID0gcHJvY2Vzcy5jd2QoKSxcbiAgICBzaXRlT3JpZ2luID0gJ2h0dHBzOi8vbW5hb3Vtb3YuZGV2JyxcbiAgICBzb3VyY2VEaXJlY3RvcnkgPSAnc3JjJyxcbiAgICB0aXRsZVxuICB9ID0gY29uZmlnO1xuXG4gIGNvbnN0IHBhY2thZ2VKc29uID0gSlNPTi5wYXJzZShyZWFkRmlsZVN5bmMoam9pbihyb290RGlyZWN0b3J5LCAncGFja2FnZS5qc29uJyksICd1dGYtOCcpKSBhcyBQYWNrYWdlSnNvbkZpZWxkcztcbiAgaWYgKHBhY2thZ2VKc29uLm5hbWUgPT09IHVuZGVmaW5lZCB8fCBwYWNrYWdlSnNvbi52ZXJzaW9uID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYCR7am9pbihyb290RGlyZWN0b3J5LCAncGFja2FnZS5qc29uJyl9IGhhcyBubyBuYW1lIG9yIG5vIHZlcnNpb24uYCk7XG4gIH1cblxuICBjb25zdCBhYnNvbHV0ZURvY3NEaXJlY3RvcnkgPSBqb2luKHJvb3REaXJlY3RvcnksIGRvY3NEaXJlY3RvcnkpO1xuICBjb25zdCBkb2NzU291cmNlRGlyZWN0b3J5ID0gam9pbihhYnNvbHV0ZURvY3NEaXJlY3RvcnksICdzcmMnKTtcbiAgY29uc3QgY29udGVudERvY3NEaXJlY3RvcnkgPSBqb2luKGRvY3NTb3VyY2VEaXJlY3RvcnksICdjb250ZW50JywgJ2RvY3MnKTtcbiAgY29uc3QgcHVibGljRGlyZWN0b3J5ID0gam9pbihhYnNvbHV0ZURvY3NEaXJlY3RvcnksICdwdWJsaWMnKTtcbiAgY29uc3QgZ2l0aHViVXJsID0gYGh0dHBzOi8vZ2l0aHViLmNvbS8ke293bmVyfS8ke3JlcG99YDtcblxuICBjb25zdCBiYXNlUGF0aCA9IGAvJHtyZXBvfWA7XG4gIHJldHVybiB7XG4gICAgYXBpRG9jU2V0dGluZ3M6IHtcbiAgICAgIGJhc2VQYXRoLFxuICAgICAgZXh0ZXJuYWxUeXBlTGlua3MsXG4gICAgICBvdXRwdXREaXJlY3Rvcnk6IGpvaW4oY29udGVudERvY3NEaXJlY3RvcnksICdhcGknKSxcbiAgICAgIHBhY2thZ2VOYW1lOiBwYWNrYWdlSnNvbi5uYW1lLFxuICAgICAgcGFja2FnZVNpdGVzLFxuICAgICAgc2lkZWJhckZpbGU6IGpvaW4oZG9jc1NvdXJjZURpcmVjdG9yeSwgJ2dlbmVyYXRlZC1zaWRlYmFyLmpzb24nKVxuICAgIH0sXG4gICAgYmFzZVBhdGgsXG4gICAgY29udGVudERvY3NEaXJlY3RvcnksXG4gICAgZGlzdERpcmVjdG9yeTogam9pbihhYnNvbHV0ZURvY3NEaXJlY3RvcnksICdkaXN0JyksXG4gICAgZG9jc0RpcmVjdG9yeTogYWJzb2x1dGVEb2NzRGlyZWN0b3J5LFxuICAgIGRvY3NTb3VyY2VEaXJlY3RvcnksXG4gICAgZWRpdExpbmtCYXNlVXJsOiBgJHtnaXRodWJVcmx9L2VkaXQvbWFpbi9gLFxuICAgIGZhdmljb25QYXRoOiBqb2luKHB1YmxpY0RpcmVjdG9yeSwgJ2Zhdmljb24uc3ZnJyksXG4gICAgZ2l0aHViVXJsLFxuICAgIGd1aWRlc0RpcmVjdG9yeSxcbiAgICBvZ091dHB1dERpcmVjdG9yeTogam9pbihwdWJsaWNEaXJlY3RvcnksICdvZycpLFxuICAgIG93bmVyLFxuICAgIHBhY2thZ2VOYW1lOiBwYWNrYWdlSnNvbi5uYW1lLFxuICAgIHBhY2thZ2VWZXJzaW9uOiBwYWNrYWdlSnNvbi52ZXJzaW9uLFxuICAgIHB1YmxpY0RpcmVjdG9yeSxcbiAgICByZXBvLFxuICAgIHJlcG9Ib21lcGFnZSxcbiAgICByb290RGlyZWN0b3J5LFxuICAgIHNpdGVCYXNlVXJsOiBgJHtzaXRlT3JpZ2lufS8ke3JlcG99L2AsXG4gICAgc2l0ZU9yaWdpbixcbiAgICBzb3VyY2VEaXJlY3Rvcnk6IGpvaW4ocm9vdERpcmVjdG9yeSwgc291cmNlRGlyZWN0b3J5KSxcbiAgICB0aXRsZVxuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU9BLFNBQVMsb0JBQW9CO0FBQzdCLFNBQVMsWUFBWTtBQUtyQixTQUFTLDZCQUE2QjtBQWlOL0IsU0FBUyxzQkFBc0IsUUFBZ0Q7QUFDcEYsUUFBTTtBQUFBLElBQ0osZ0JBQWdCO0FBQUEsSUFDaEIsb0JBQW9CLG9CQUFJLElBQW9CO0FBQUEsSUFDNUMsa0JBQWtCO0FBQUEsSUFDbEIsUUFBUTtBQUFBLElBQ1IsZUFBZTtBQUFBLElBQ2Y7QUFBQSxJQUNBLGVBQWU7QUFBQSxJQUNmLGdCQUFnQixRQUFRLElBQUk7QUFBQSxJQUM1QixhQUFhO0FBQUEsSUFDYixrQkFBa0I7QUFBQSxJQUNsQjtBQUFBLEVBQ0YsSUFBSTtBQUVKLFFBQU0sY0FBYyxLQUFLLE1BQU0sYUFBYSxLQUFLLGVBQWUsY0FBYyxHQUFHLE9BQU8sQ0FBQztBQUN6RixNQUFJLFlBQVksU0FBUyxVQUFhLFlBQVksWUFBWSxRQUFXO0FBQ3ZFLFVBQU0sSUFBSSxNQUFNLEdBQUcsS0FBSyxlQUFlLGNBQWMsQ0FBQyw2QkFBNkI7QUFBQSxFQUNyRjtBQUVBLFFBQU0sd0JBQXdCLEtBQUssZUFBZSxhQUFhO0FBQy9ELFFBQU0sc0JBQXNCLEtBQUssdUJBQXVCLEtBQUs7QUFDN0QsUUFBTSx1QkFBdUIsS0FBSyxxQkFBcUIsV0FBVyxNQUFNO0FBQ3hFLFFBQU0sa0JBQWtCLEtBQUssdUJBQXVCLFFBQVE7QUFDNUQsUUFBTSxZQUFZLHNCQUFzQixLQUFLLElBQUksSUFBSTtBQUVyRCxRQUFNLFdBQVcsSUFBSSxJQUFJO0FBQ3pCLFNBQU87QUFBQSxJQUNMLGdCQUFnQjtBQUFBLE1BQ2Q7QUFBQSxNQUNBO0FBQUEsTUFDQSxpQkFBaUIsS0FBSyxzQkFBc0IsS0FBSztBQUFBLE1BQ2pELGFBQWEsWUFBWTtBQUFBLE1BQ3pCO0FBQUEsTUFDQSxhQUFhLEtBQUsscUJBQXFCLHdCQUF3QjtBQUFBLElBQ2pFO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBLGVBQWUsS0FBSyx1QkFBdUIsTUFBTTtBQUFBLElBQ2pELGVBQWU7QUFBQSxJQUNmO0FBQUEsSUFDQSxpQkFBaUIsR0FBRyxTQUFTO0FBQUEsSUFDN0IsYUFBYSxLQUFLLGlCQUFpQixhQUFhO0FBQUEsSUFDaEQ7QUFBQSxJQUNBO0FBQUEsSUFDQSxtQkFBbUIsS0FBSyxpQkFBaUIsSUFBSTtBQUFBLElBQzdDO0FBQUEsSUFDQSxhQUFhLFlBQVk7QUFBQSxJQUN6QixnQkFBZ0IsWUFBWTtBQUFBLElBQzVCO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQSxhQUFhLEdBQUcsVUFBVSxJQUFJLElBQUk7QUFBQSxJQUNsQztBQUFBLElBQ0EsaUJBQWlCLEtBQUssZUFBZSxlQUFlO0FBQUEsSUFDcEQ7QUFBQSxFQUNGO0FBQ0Y7IiwibmFtZXMiOltdfQ==
@@ -21,6 +21,7 @@ export * as 'link-check' from './link-check.mjs';
21
21
  export * as 'og-image-page' from './og-image-page.mjs';
22
22
  export * as 'og-image' from './og-image.mjs';
23
23
  export * as 'og-images' from './og-images.mjs';
24
+ export * as 'repo-homepage' from './repo-homepage.mjs';
24
25
  export * as 'route-data' from './route-data.mjs';
25
26
  export * as 'satteri-github-alerts' from './satteri-github-alerts.mjs';
26
27
  export * as 'satteri-relative-links' from './satteri-relative-links.mjs';
@@ -25,6 +25,7 @@ import * as link_check from "./link-check.mjs";
25
25
  import * as og_image_page from "./og-image-page.mjs";
26
26
  import * as og_image from "./og-image.mjs";
27
27
  import * as og_images from "./og-images.mjs";
28
+ import * as repo_homepage from "./repo-homepage.mjs";
28
29
  import * as route_data from "./route-data.mjs";
29
30
  import * as satteri_github_alerts from "./satteri-github-alerts.mjs";
30
31
  import * as satteri_relative_links from "./satteri-relative-links.mjs";
@@ -52,9 +53,10 @@ export {
52
53
  og_image as "og-image",
53
54
  og_image_page as "og-image-page",
54
55
  og_images as "og-images",
56
+ repo_homepage as "repo-homepage",
55
57
  route_data as "route-data",
56
58
  satteri_github_alerts as "satteri-github-alerts",
57
59
  satteri_relative_links as "satteri-relative-links",
58
60
  unrendered_alerts as "unrendered-alerts"
59
61
  };
60
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2RvY3Mtc2l0ZS9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzICdhcGktZG9jLWNvbnN0YW50cycgZnJvbSAnLi9hcGktZG9jLWNvbnN0YW50cy50cyc7XG5leHBvcnQgKiBhcyAnYXBpLWRvYy1kb2N1bWVudGVkLWZpbGVzJyBmcm9tICcuL2FwaS1kb2MtZG9jdW1lbnRlZC1maWxlcy50cyc7XG5leHBvcnQgKiBhcyAnYXBpLWRvYy1qc2RvYycgZnJvbSAnLi9hcGktZG9jLWpzZG9jLnRzJztcbmV4cG9ydCAqIGFzICdhcGktZG9jLWxpbmstcmVuZGVyaW5nJyBmcm9tICcuL2FwaS1kb2MtbGluay1yZW5kZXJpbmcudHMnO1xuZXhwb3J0ICogYXMgJ2FwaS1kb2MtcGFja2FnZS1zaXRlcycgZnJvbSAnLi9hcGktZG9jLXBhY2thZ2Utc2l0ZXMudHMnO1xuZXhwb3J0ICogYXMgJ2FwaS1kb2MtcGFnZS1nZW5lcmF0aW9uJyBmcm9tICcuL2FwaS1kb2MtcGFnZS1nZW5lcmF0aW9uLnRzJztcbmV4cG9ydCAqIGFzICdhcGktZG9jLXJvdXRlLXNlZ21lbnRzJyBmcm9tICcuL2FwaS1kb2Mtcm91dGUtc2VnbWVudHMudHMnO1xuZXhwb3J0ICogYXMgJ2FwaS1kb2Mtc2V0dGluZ3MnIGZyb20gJy4vYXBpLWRvYy1zZXR0aW5ncy50cyc7XG5leHBvcnQgKiBhcyAnYXBpLWRvYy1zb3VyY2UtcHJvY2Vzc2luZycgZnJvbSAnLi9hcGktZG9jLXNvdXJjZS1wcm9jZXNzaW5nLnRzJztcbmV4cG9ydCAqIGFzICdhcGktZG9jLXRleHQtdXRpbHMnIGZyb20gJy4vYXBpLWRvYy10ZXh0LXV0aWxzLnRzJztcbmV4cG9ydCAqIGFzICdhcGktZG9jLXR5cGUtbWVyZ2luZycgZnJvbSAnLi9hcGktZG9jLXR5cGUtbWVyZ2luZy50cyc7XG5leHBvcnQgKiBhcyAnYXBpLWRvYy10eXBlcycgZnJvbSAnLi9hcGktZG9jLXR5cGVzLnRzJztcbmV4cG9ydCAqIGFzICdhcGktZG9jcycgZnJvbSAnLi9hcGktZG9jcy50cyc7XG5leHBvcnQgKiBhcyAnYXN0cm8tY29uZmlnJyBmcm9tICcuL2FzdHJvLWNvbmZpZy50cyc7XG5leHBvcnQgKiBhcyAnZG9jcy1saW5rcycgZnJvbSAnLi9kb2NzLWxpbmtzLnRzJztcbmV4cG9ydCAqIGFzICdkb2NzLXNpdGUtYXNzZXRzJyBmcm9tICcuL2RvY3Mtc2l0ZS1hc3NldHMudHMnO1xuZXhwb3J0ICogYXMgJ2RvY3Mtc2l0ZS1jb21tYW5kcycgZnJvbSAnLi9kb2NzLXNpdGUtY29tbWFuZHMudHMnO1xuZXhwb3J0ICogYXMgJ2RvY3Mtc2l0ZS1jb25maWcnIGZyb20gJy4vZG9jcy1zaXRlLWNvbmZpZy50cyc7XG5leHBvcnQgKiBhcyAnbGluay1jaGVjaycgZnJvbSAnLi9saW5rLWNoZWNrLnRzJztcbmV4cG9ydCAqIGFzICdvZy1pbWFnZS1wYWdlJyBmcm9tICcuL29nLWltYWdlLXBhZ2UudHMnO1xuZXhwb3J0ICogYXMgJ29nLWltYWdlJyBmcm9tICcuL29nLWltYWdlLnRzJztcbmV4cG9ydCAqIGFzICdvZy1pbWFnZXMnIGZyb20gJy4vb2ctaW1hZ2VzLnRzJztcbmV4cG9ydCAqIGFzICdyb3V0ZS1kYXRhJyBmcm9tICcuL3JvdXRlLWRhdGEudHMnO1xuZXhwb3J0ICogYXMgJ3NhdHRlcmktZ2l0aHViLWFsZXJ0cycgZnJvbSAnLi9zYXR0ZXJpLWdpdGh1Yi1hbGVydHMudHMnO1xuZXhwb3J0ICogYXMgJ3NhdHRlcmktcmVsYXRpdmUtbGlua3MnIGZyb20gJy4vc2F0dGVyaS1yZWxhdGl2ZS1saW5rcy50cyc7XG5leHBvcnQgKiBhcyAndW5yZW5kZXJlZC1hbGVydHMnIGZyb20gJy4vdW5yZW5kZXJlZC1hbGVydHMudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUFFQSxZQUFZQSx1QkFBeUI7QUFDckMsWUFBWUMsOEJBQWdDO0FBQzVDLFlBQVlDLG1CQUFxQjtBQUNqQyxZQUFZQyw0QkFBOEI7QUFDMUMsWUFBWUMsMkJBQTZCO0FBQ3pDLFlBQVlDLDZCQUErQjtBQUMzQyxZQUFZQyw0QkFBOEI7QUFDMUMsWUFBWUMsc0JBQXdCO0FBQ3BDLFlBQVlDLCtCQUFpQztBQUM3QyxZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWUMsMEJBQTRCO0FBQ3hDLFlBQVlDLG1CQUFxQjtBQUNqQyxZQUFZQyxjQUFnQjtBQUM1QixZQUFZQyxrQkFBb0I7QUFDaEMsWUFBWUMsZ0JBQWtCO0FBQzlCLFlBQVlDLHNCQUF3QjtBQUNwQyxZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWUMsc0JBQXdCO0FBQ3BDLFlBQVlDLGdCQUFrQjtBQUM5QixZQUFZQyxtQkFBcUI7QUFDakMsWUFBWUMsY0FBZ0I7QUFDNUIsWUFBWUMsZUFBaUI7QUFDN0IsWUFBWUMsZ0JBQWtCO0FBQzlCLFlBQVlDLDJCQUE2QjtBQUN6QyxZQUFZQyw0QkFBOEI7QUFDMUMsWUFBWUMsdUJBQXlCOyIsCiAgIm5hbWVzIjogWyJhcGktZG9jLWNvbnN0YW50cyIsICJhcGktZG9jLWRvY3VtZW50ZWQtZmlsZXMiLCAiYXBpLWRvYy1qc2RvYyIsICJhcGktZG9jLWxpbmstcmVuZGVyaW5nIiwgImFwaS1kb2MtcGFja2FnZS1zaXRlcyIsICJhcGktZG9jLXBhZ2UtZ2VuZXJhdGlvbiIsICJhcGktZG9jLXJvdXRlLXNlZ21lbnRzIiwgImFwaS1kb2Mtc2V0dGluZ3MiLCAiYXBpLWRvYy1zb3VyY2UtcHJvY2Vzc2luZyIsICJhcGktZG9jLXRleHQtdXRpbHMiLCAiYXBpLWRvYy10eXBlLW1lcmdpbmciLCAiYXBpLWRvYy10eXBlcyIsICJhcGktZG9jcyIsICJhc3Ryby1jb25maWciLCAiZG9jcy1saW5rcyIsICJkb2NzLXNpdGUtYXNzZXRzIiwgImRvY3Mtc2l0ZS1jb21tYW5kcyIsICJkb2NzLXNpdGUtY29uZmlnIiwgImxpbmstY2hlY2siLCAib2ctaW1hZ2UtcGFnZSIsICJvZy1pbWFnZSIsICJvZy1pbWFnZXMiLCAicm91dGUtZGF0YSIsICJzYXR0ZXJpLWdpdGh1Yi1hbGVydHMiLCAic2F0dGVyaS1yZWxhdGl2ZS1saW5rcyIsICJ1bnJlbmRlcmVkLWFsZXJ0cyJdCn0K
62
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2RvY3Mtc2l0ZS9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzICdhcGktZG9jLWNvbnN0YW50cycgZnJvbSAnLi9hcGktZG9jLWNvbnN0YW50cy50cyc7XG5leHBvcnQgKiBhcyAnYXBpLWRvYy1kb2N1bWVudGVkLWZpbGVzJyBmcm9tICcuL2FwaS1kb2MtZG9jdW1lbnRlZC1maWxlcy50cyc7XG5leHBvcnQgKiBhcyAnYXBpLWRvYy1qc2RvYycgZnJvbSAnLi9hcGktZG9jLWpzZG9jLnRzJztcbmV4cG9ydCAqIGFzICdhcGktZG9jLWxpbmstcmVuZGVyaW5nJyBmcm9tICcuL2FwaS1kb2MtbGluay1yZW5kZXJpbmcudHMnO1xuZXhwb3J0ICogYXMgJ2FwaS1kb2MtcGFja2FnZS1zaXRlcycgZnJvbSAnLi9hcGktZG9jLXBhY2thZ2Utc2l0ZXMudHMnO1xuZXhwb3J0ICogYXMgJ2FwaS1kb2MtcGFnZS1nZW5lcmF0aW9uJyBmcm9tICcuL2FwaS1kb2MtcGFnZS1nZW5lcmF0aW9uLnRzJztcbmV4cG9ydCAqIGFzICdhcGktZG9jLXJvdXRlLXNlZ21lbnRzJyBmcm9tICcuL2FwaS1kb2Mtcm91dGUtc2VnbWVudHMudHMnO1xuZXhwb3J0ICogYXMgJ2FwaS1kb2Mtc2V0dGluZ3MnIGZyb20gJy4vYXBpLWRvYy1zZXR0aW5ncy50cyc7XG5leHBvcnQgKiBhcyAnYXBpLWRvYy1zb3VyY2UtcHJvY2Vzc2luZycgZnJvbSAnLi9hcGktZG9jLXNvdXJjZS1wcm9jZXNzaW5nLnRzJztcbmV4cG9ydCAqIGFzICdhcGktZG9jLXRleHQtdXRpbHMnIGZyb20gJy4vYXBpLWRvYy10ZXh0LXV0aWxzLnRzJztcbmV4cG9ydCAqIGFzICdhcGktZG9jLXR5cGUtbWVyZ2luZycgZnJvbSAnLi9hcGktZG9jLXR5cGUtbWVyZ2luZy50cyc7XG5leHBvcnQgKiBhcyAnYXBpLWRvYy10eXBlcycgZnJvbSAnLi9hcGktZG9jLXR5cGVzLnRzJztcbmV4cG9ydCAqIGFzICdhcGktZG9jcycgZnJvbSAnLi9hcGktZG9jcy50cyc7XG5leHBvcnQgKiBhcyAnYXN0cm8tY29uZmlnJyBmcm9tICcuL2FzdHJvLWNvbmZpZy50cyc7XG5leHBvcnQgKiBhcyAnZG9jcy1saW5rcycgZnJvbSAnLi9kb2NzLWxpbmtzLnRzJztcbmV4cG9ydCAqIGFzICdkb2NzLXNpdGUtYXNzZXRzJyBmcm9tICcuL2RvY3Mtc2l0ZS1hc3NldHMudHMnO1xuZXhwb3J0ICogYXMgJ2RvY3Mtc2l0ZS1jb21tYW5kcycgZnJvbSAnLi9kb2NzLXNpdGUtY29tbWFuZHMudHMnO1xuZXhwb3J0ICogYXMgJ2RvY3Mtc2l0ZS1jb25maWcnIGZyb20gJy4vZG9jcy1zaXRlLWNvbmZpZy50cyc7XG5leHBvcnQgKiBhcyAnbGluay1jaGVjaycgZnJvbSAnLi9saW5rLWNoZWNrLnRzJztcbmV4cG9ydCAqIGFzICdvZy1pbWFnZS1wYWdlJyBmcm9tICcuL29nLWltYWdlLXBhZ2UudHMnO1xuZXhwb3J0ICogYXMgJ29nLWltYWdlJyBmcm9tICcuL29nLWltYWdlLnRzJztcbmV4cG9ydCAqIGFzICdvZy1pbWFnZXMnIGZyb20gJy4vb2ctaW1hZ2VzLnRzJztcbmV4cG9ydCAqIGFzICdyZXBvLWhvbWVwYWdlJyBmcm9tICcuL3JlcG8taG9tZXBhZ2UudHMnO1xuZXhwb3J0ICogYXMgJ3JvdXRlLWRhdGEnIGZyb20gJy4vcm91dGUtZGF0YS50cyc7XG5leHBvcnQgKiBhcyAnc2F0dGVyaS1naXRodWItYWxlcnRzJyBmcm9tICcuL3NhdHRlcmktZ2l0aHViLWFsZXJ0cy50cyc7XG5leHBvcnQgKiBhcyAnc2F0dGVyaS1yZWxhdGl2ZS1saW5rcycgZnJvbSAnLi9zYXR0ZXJpLXJlbGF0aXZlLWxpbmtzLnRzJztcbmV4cG9ydCAqIGFzICd1bnJlbmRlcmVkLWFsZXJ0cycgZnJvbSAnLi91bnJlbmRlcmVkLWFsZXJ0cy50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7OztBQUVBLFlBQVlBLHVCQUF5QjtBQUNyQyxZQUFZQyw4QkFBZ0M7QUFDNUMsWUFBWUMsbUJBQXFCO0FBQ2pDLFlBQVlDLDRCQUE4QjtBQUMxQyxZQUFZQywyQkFBNkI7QUFDekMsWUFBWUMsNkJBQStCO0FBQzNDLFlBQVlDLDRCQUE4QjtBQUMxQyxZQUFZQyxzQkFBd0I7QUFDcEMsWUFBWUMsK0JBQWlDO0FBQzdDLFlBQVlDLHdCQUEwQjtBQUN0QyxZQUFZQywwQkFBNEI7QUFDeEMsWUFBWUMsbUJBQXFCO0FBQ2pDLFlBQVlDLGNBQWdCO0FBQzVCLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZQyxnQkFBa0I7QUFDOUIsWUFBWUMsc0JBQXdCO0FBQ3BDLFlBQVlDLHdCQUEwQjtBQUN0QyxZQUFZQyxzQkFBd0I7QUFDcEMsWUFBWUMsZ0JBQWtCO0FBQzlCLFlBQVlDLG1CQUFxQjtBQUNqQyxZQUFZQyxjQUFnQjtBQUM1QixZQUFZQyxlQUFpQjtBQUM3QixZQUFZQyxtQkFBcUI7QUFDakMsWUFBWUMsZ0JBQWtCO0FBQzlCLFlBQVlDLDJCQUE2QjtBQUN6QyxZQUFZQyw0QkFBOEI7QUFDMUMsWUFBWUMsdUJBQXlCOyIsCiAgIm5hbWVzIjogWyJhcGktZG9jLWNvbnN0YW50cyIsICJhcGktZG9jLWRvY3VtZW50ZWQtZmlsZXMiLCAiYXBpLWRvYy1qc2RvYyIsICJhcGktZG9jLWxpbmstcmVuZGVyaW5nIiwgImFwaS1kb2MtcGFja2FnZS1zaXRlcyIsICJhcGktZG9jLXBhZ2UtZ2VuZXJhdGlvbiIsICJhcGktZG9jLXJvdXRlLXNlZ21lbnRzIiwgImFwaS1kb2Mtc2V0dGluZ3MiLCAiYXBpLWRvYy1zb3VyY2UtcHJvY2Vzc2luZyIsICJhcGktZG9jLXRleHQtdXRpbHMiLCAiYXBpLWRvYy10eXBlLW1lcmdpbmciLCAiYXBpLWRvYy10eXBlcyIsICJhcGktZG9jcyIsICJhc3Ryby1jb25maWciLCAiZG9jcy1saW5rcyIsICJkb2NzLXNpdGUtYXNzZXRzIiwgImRvY3Mtc2l0ZS1jb21tYW5kcyIsICJkb2NzLXNpdGUtY29uZmlnIiwgImxpbmstY2hlY2siLCAib2ctaW1hZ2UtcGFnZSIsICJvZy1pbWFnZSIsICJvZy1pbWFnZXMiLCAicmVwby1ob21lcGFnZSIsICJyb3V0ZS1kYXRhIiwgInNhdHRlcmktZ2l0aHViLWFsZXJ0cyIsICJzYXR0ZXJpLXJlbGF0aXZlLWxpbmtzIiwgInVucmVuZGVyZWQtYWxlcnRzIl0KfQo=
@@ -40,6 +40,19 @@ export interface BrokenLink {
40
40
  */
41
41
  targetUrl: string;
42
42
  }
43
+ /**
44
+ * Options for {@link collectBrokenExternalLinks}.
45
+ */
46
+ export interface CollectBrokenExternalLinksOptions {
47
+ /**
48
+ * The maximum number of in-flight probes against one host. Defaults to {@link DEFAULT_EXTERNAL_LINK_PER_HOST_CONCURRENCY}.
49
+ */
50
+ readonly perHostConcurrency?: number;
51
+ /**
52
+ * How a transient failure is retried.
53
+ */
54
+ readonly retry?: ExternalLinkRetryOptions;
55
+ }
43
56
  /**
44
57
  * A single built documentation page to validate.
45
58
  */
@@ -53,6 +66,50 @@ export interface DocumentationPage {
53
66
  */
54
67
  relativePath: string;
55
68
  }
69
+ /**
70
+ * What one probe of an external URL learned.
71
+ */
72
+ export interface ExternalLinkProbeResult {
73
+ /**
74
+ * How long the server asked the client to wait before asking again (its `Retry-After` header), when it said.
75
+ */
76
+ readonly retryAfterInMilliseconds?: number | undefined;
77
+ /**
78
+ * The HTTP status, or {@link NETWORK_FAILURE_STATUS} when no response was received.
79
+ */
80
+ readonly status: number;
81
+ }
82
+ /**
83
+ * How {@link collectBrokenExternalLinks} retries a transient failure: a network failure, an HTTP `429` or an HTTP `5xx`.
84
+ *
85
+ * Each wait doubles from {@link ExternalLinkRetryOptions.initialDelayInMilliseconds} up to
86
+ * {@link ExternalLinkRetryOptions.maxDelayInMilliseconds}, is jittered into its upper half, and is never shorter than the
87
+ * server's `Retry-After`. The waits of one URL never add up to more than
88
+ * {@link ExternalLinkRetryOptions.totalBudgetInMilliseconds}; the status of the last attempt is final.
89
+ */
90
+ export interface ExternalLinkRetryOptions {
91
+ /**
92
+ * The first wait. Defaults to {@link DEFAULT_EXTERNAL_LINK_RETRY_INITIAL_DELAY_IN_MILLISECONDS}.
93
+ */
94
+ readonly initialDelayInMilliseconds?: number;
95
+ /**
96
+ * The longest single wait the backoff grows to. Defaults to {@link DEFAULT_EXTERNAL_LINK_RETRY_MAX_DELAY_IN_MILLISECONDS}.
97
+ */
98
+ readonly maxDelayInMilliseconds?: number;
99
+ /**
100
+ * Returns a number in `[0, 1)` for the jitter. Defaults to `Math.random`.
101
+ */
102
+ readonly random?: () => number;
103
+ /**
104
+ * Waits the given time. Defaults to a `setTimeout`.
105
+ */
106
+ readonly sleep?: (milliseconds: number) => Promise<void>;
107
+ /**
108
+ * The most one URL may spend waiting between its attempts. Defaults to
109
+ * {@link DEFAULT_EXTERNAL_LINK_RETRY_TOTAL_BUDGET_IN_MILLISECONDS}.
110
+ */
111
+ readonly totalBudgetInMilliseconds?: number;
112
+ }
56
113
  /**
57
114
  * Filesystem access the link checker needs, injected so the pure decision logic can be tested
58
115
  * against an in-memory stub instead of a real build output.
@@ -74,15 +131,39 @@ export interface LinkCheckFileSystem {
74
131
  */
75
132
  resolveExistingPage: (outputRelativePath: string) => null | string;
76
133
  }
134
+ /**
135
+ * The default {@link CollectBrokenExternalLinksOptions.perHostConcurrency}. A documentation site links thousands of
136
+ * pages of its sibling sites, all on one host, and GitHub Pages answers a burst of them with a `503`.
137
+ */
138
+ export declare const DEFAULT_EXTERNAL_LINK_PER_HOST_CONCURRENCY = 8;
139
+ /**
140
+ * The default {@link ExternalLinkRetryOptions.initialDelayInMilliseconds}.
141
+ */
142
+ export declare const DEFAULT_EXTERNAL_LINK_RETRY_INITIAL_DELAY_IN_MILLISECONDS = 1000;
143
+ /**
144
+ * The default {@link ExternalLinkRetryOptions.maxDelayInMilliseconds}.
145
+ */
146
+ export declare const DEFAULT_EXTERNAL_LINK_RETRY_MAX_DELAY_IN_MILLISECONDS = 16000;
147
+ /**
148
+ * The default {@link ExternalLinkRetryOptions.totalBudgetInMilliseconds}.
149
+ */
150
+ export declare const DEFAULT_EXTERNAL_LINK_RETRY_TOTAL_BUDGET_IN_MILLISECONDS = 45000;
77
151
  /**
78
152
  * Validates the deduplicated external URLs over the network through a bounded concurrency pool.
79
153
  *
154
+ * A network failure, an HTTP `429` and an HTTP `5xx` are retried with an exponential, jittered backoff that honors
155
+ * `Retry-After` (see {@link ExternalLinkRetryOptions}); any other status, a `404` included, is final at once. Probes of
156
+ * one host are also capped at {@link CollectBrokenExternalLinksOptions.perHostConcurrency}, and a probe of another host
157
+ * is started while one host is at its cap.
158
+ *
80
159
  * @param targets - The unique external URL → referencing page map from {@link collectExternalTargets}.
81
- * @param fetchUrlStatus - Injected probe returning the HTTP status for a URL (`0` for a network failure).
160
+ * @param fetchUrlStatus - Injected probe returning the HTTP status for a URL (`0` for a network failure), or an
161
+ * {@link ExternalLinkProbeResult} that also carries the server's `Retry-After`.
82
162
  * @param concurrency - The maximum number of in-flight probes.
163
+ * @param options - The per-host cap and the retry policy.
83
164
  * @returns Every external URL that did not return HTTP `200`, in the map's iteration order.
84
165
  */
85
- export declare function collectBrokenExternalLinks(targets: Map<string, string>, fetchUrlStatus: (url: string) => Promise<number>, concurrency: number): Promise<BrokenLink[]>;
166
+ export declare function collectBrokenExternalLinks(targets: Map<string, string>, fetchUrlStatus: (url: string) => Promise<ExternalLinkProbeResult | number>, concurrency: number, options?: CollectBrokenExternalLinksOptions): Promise<BrokenLink[]>;
86
167
  /**
87
168
  * Finds every internal link across the built documentation pages that does not resolve.
88
169
  *
@@ -152,6 +233,14 @@ export declare function getPageUrl(relativePath: string, siteBaseUrl: string): s
152
233
  * @returns `true` when the link is same-origin and under the site base path.
153
234
  */
154
235
  export declare function isInternalDocUrl(targetUrl: URL, siteBaseUrl: string): boolean;
236
+ /**
237
+ * Reads an HTTP `Retry-After` header, which is either a number of seconds or an HTTP date.
238
+ *
239
+ * @param headerValue - The header's value, or `null` when the response has none.
240
+ * @param nowInMilliseconds - The current time, against which a date is measured.
241
+ * @returns How long to wait, never negative, or `undefined` when the header is absent or unreadable.
242
+ */
243
+ export declare function parseRetryAfterInMilliseconds(headerValue: null | string, nowInMilliseconds: number): number | undefined;
155
244
  /**
156
245
  * Resolves an output-relative path to an absolute path inside the build-output root, rejecting
157
246
  * paths that escape it via `..` segments.