@mnaoumov/typescript-dev-toolkit 1.3.0 → 2.0.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 (174) hide show
  1. package/assets/docs-site/components/ConstructorBlock.astro +16 -0
  2. package/assets/docs-site/components/ImportStatement.astro +12 -0
  3. package/assets/docs-site/components/MemberDetail.astro +101 -0
  4. package/assets/docs-site/components/MethodTable.astro +45 -0
  5. package/assets/docs-site/components/PropertyTable.astro +45 -0
  6. package/assets/docs-site/components/SiteTitle.astro +43 -0
  7. package/assets/docs-site/components/TypeSignature.astro +20 -0
  8. package/assets/docs-site/fonts/inter-latin-400-normal.ttf +0 -0
  9. package/assets/docs-site/fonts/inter-latin-700-normal.ttf +0 -0
  10. package/assets/docs-site/styles/global.css +221 -0
  11. package/dist/lib/cjs/build.cjs +1 -1
  12. package/dist/lib/cjs/build.d.cts +1 -1
  13. package/dist/lib/cjs/commitlint-forbidden-patterns.cjs +2 -2
  14. package/dist/lib/cjs/commitlint-forbidden-patterns.d.cts +1 -1
  15. package/dist/lib/cjs/commitlint-spellcheck-header.cjs +2 -2
  16. package/dist/lib/cjs/commitlint-spellcheck-header.d.cts +1 -1
  17. package/dist/lib/cjs/docs-site/api-doc-constants.cjs +171 -0
  18. package/dist/lib/cjs/docs-site/api-doc-constants.d.cts +18 -0
  19. package/dist/lib/cjs/docs-site/api-doc-jsdoc.cjs +414 -0
  20. package/dist/lib/cjs/docs-site/api-doc-jsdoc.d.cts +149 -0
  21. package/dist/lib/cjs/docs-site/api-doc-link-rendering.cjs +377 -0
  22. package/dist/lib/cjs/docs-site/api-doc-link-rendering.d.cts +185 -0
  23. package/dist/lib/cjs/docs-site/api-doc-package-sites.cjs +118 -0
  24. package/dist/lib/cjs/docs-site/api-doc-package-sites.d.cts +36 -0
  25. package/dist/lib/cjs/docs-site/api-doc-page-generation.cjs +561 -0
  26. package/dist/lib/cjs/docs-site/api-doc-page-generation.d.cts +159 -0
  27. package/dist/lib/cjs/docs-site/api-doc-route-segments.cjs +42 -0
  28. package/dist/lib/cjs/docs-site/api-doc-route-segments.d.cts +25 -0
  29. package/dist/lib/cjs/docs-site/api-doc-settings.cjs +47 -0
  30. package/dist/lib/cjs/docs-site/api-doc-settings.d.cts +53 -0
  31. package/dist/lib/cjs/docs-site/api-doc-source-processing.cjs +288 -0
  32. package/dist/lib/cjs/docs-site/api-doc-source-processing.d.cts +75 -0
  33. package/dist/lib/cjs/docs-site/api-doc-text-utils.cjs +281 -0
  34. package/dist/lib/cjs/docs-site/api-doc-text-utils.d.cts +178 -0
  35. package/dist/lib/cjs/docs-site/api-doc-type-merging.cjs +157 -0
  36. package/dist/lib/cjs/docs-site/api-doc-type-merging.d.cts +51 -0
  37. package/dist/lib/cjs/docs-site/api-doc-types.cjs +22 -0
  38. package/dist/lib/cjs/docs-site/api-doc-types.d.cts +157 -0
  39. package/dist/lib/cjs/docs-site/api-docs.cjs +143 -0
  40. package/dist/lib/cjs/docs-site/api-docs.d.cts +34 -0
  41. package/dist/lib/cjs/docs-site/astro-config.cjs +169 -0
  42. package/dist/lib/cjs/docs-site/astro-config.d.cts +23 -0
  43. package/dist/lib/cjs/docs-site/docs-links.cjs +123 -0
  44. package/dist/lib/cjs/docs-site/docs-links.d.cts +32 -0
  45. package/dist/lib/cjs/docs-site/docs-site-assets.cjs +64 -0
  46. package/dist/lib/cjs/docs-site/docs-site-assets.d.cts +23 -0
  47. package/dist/lib/cjs/docs-site/docs-site-commands.cjs +72 -0
  48. package/dist/lib/cjs/docs-site/docs-site-commands.d.cts +29 -0
  49. package/dist/lib/cjs/docs-site/docs-site-config.cjs +122 -0
  50. package/dist/lib/cjs/docs-site/docs-site-config.d.cts +162 -0
  51. package/dist/lib/cjs/docs-site/index.cjs +116 -0
  52. package/dist/lib/cjs/docs-site/index.d.cts +26 -0
  53. package/dist/lib/cjs/docs-site/link-check.cjs +197 -0
  54. package/dist/lib/cjs/docs-site/link-check.d.cts +163 -0
  55. package/dist/lib/cjs/docs-site/og-image-page.cjs +45 -0
  56. package/dist/lib/cjs/docs-site/og-image-page.d.cts +15 -0
  57. package/dist/lib/cjs/docs-site/og-image.cjs +326 -0
  58. package/dist/lib/cjs/docs-site/og-image.d.cts +70 -0
  59. package/dist/lib/cjs/docs-site/og-images.cjs +170 -0
  60. package/dist/lib/cjs/docs-site/og-images.d.cts +41 -0
  61. package/dist/lib/cjs/docs-site/route-data.cjs +47 -0
  62. package/dist/lib/cjs/docs-site/route-data.d.cts +14 -0
  63. package/dist/lib/cjs/docs-site/satteri-github-alerts.cjs +97 -0
  64. package/dist/lib/cjs/docs-site/satteri-github-alerts.d.cts +31 -0
  65. package/dist/lib/cjs/docs-site/satteri-relative-links.cjs +87 -0
  66. package/dist/lib/cjs/docs-site/satteri-relative-links.d.cts +29 -0
  67. package/dist/lib/cjs/docs-site/unrendered-alerts.cjs +51 -0
  68. package/dist/lib/cjs/docs-site/unrendered-alerts.d.cts +38 -0
  69. package/dist/lib/cjs/index.cjs +4 -1
  70. package/dist/lib/cjs/index.d.cts +1 -0
  71. package/dist/lib/cjs/library-build.cjs +1 -1
  72. package/dist/lib/cjs/library-build.d.cts +2 -2
  73. package/dist/lib/cjs/linters/eslint-config.cjs +17 -17
  74. package/dist/lib/cjs/linters/eslint-config.d.cts +1 -7
  75. package/dist/lib/cjs/linters/eslint-rules/in-house-plugin.cjs +2 -2
  76. package/dist/lib/cjs/linters/eslint-rules/in-house-plugin.d.cts +5 -8
  77. package/dist/lib/cjs/linters/markdownlint.cjs +4 -1
  78. package/dist/lib/cjs/package-manager.cjs +2 -2
  79. package/dist/lib/esm/build.d.mts +1 -1
  80. package/dist/lib/esm/build.mjs +1 -1
  81. package/dist/lib/esm/commitlint-forbidden-patterns.d.mts +1 -1
  82. package/dist/lib/esm/commitlint-forbidden-patterns.mjs +2 -2
  83. package/dist/lib/esm/commitlint-spellcheck-header.d.mts +1 -1
  84. package/dist/lib/esm/commitlint-spellcheck-header.mjs +2 -2
  85. package/dist/lib/esm/docs-site/api-doc-constants.d.mts +18 -0
  86. package/dist/lib/esm/docs-site/api-doc-constants.mjs +143 -0
  87. package/dist/lib/esm/docs-site/api-doc-jsdoc.d.mts +149 -0
  88. package/dist/lib/esm/docs-site/api-doc-jsdoc.mjs +377 -0
  89. package/dist/lib/esm/docs-site/api-doc-link-rendering.d.mts +185 -0
  90. package/dist/lib/esm/docs-site/api-doc-link-rendering.mjs +356 -0
  91. package/dist/lib/esm/docs-site/api-doc-package-sites.d.mts +36 -0
  92. package/dist/lib/esm/docs-site/api-doc-package-sites.mjs +91 -0
  93. package/dist/lib/esm/docs-site/api-doc-page-generation.d.mts +159 -0
  94. package/dist/lib/esm/docs-site/api-doc-page-generation.mjs +548 -0
  95. package/dist/lib/esm/docs-site/api-doc-route-segments.d.mts +25 -0
  96. package/dist/lib/esm/docs-site/api-doc-route-segments.mjs +17 -0
  97. package/dist/lib/esm/docs-site/api-doc-settings.d.mts +53 -0
  98. package/dist/lib/esm/docs-site/api-doc-settings.mjs +22 -0
  99. package/dist/lib/esm/docs-site/api-doc-source-processing.d.mts +75 -0
  100. package/dist/lib/esm/docs-site/api-doc-source-processing.mjs +274 -0
  101. package/dist/lib/esm/docs-site/api-doc-text-utils.d.mts +178 -0
  102. package/dist/lib/esm/docs-site/api-doc-text-utils.mjs +239 -0
  103. package/dist/lib/esm/docs-site/api-doc-type-merging.d.mts +51 -0
  104. package/dist/lib/esm/docs-site/api-doc-type-merging.mjs +129 -0
  105. package/dist/lib/esm/docs-site/api-doc-types.d.mts +157 -0
  106. package/dist/lib/esm/docs-site/api-doc-types.mjs +6 -0
  107. package/dist/lib/esm/docs-site/api-docs.d.mts +34 -0
  108. package/dist/lib/esm/docs-site/api-docs.mjs +139 -0
  109. package/dist/lib/esm/docs-site/astro-config.d.mts +23 -0
  110. package/dist/lib/esm/docs-site/astro-config.mjs +135 -0
  111. package/dist/lib/esm/docs-site/docs-links.d.mts +32 -0
  112. package/dist/lib/esm/docs-site/docs-links.mjs +113 -0
  113. package/dist/lib/esm/docs-site/docs-site-assets.d.mts +23 -0
  114. package/dist/lib/esm/docs-site/docs-site-assets.mjs +32 -0
  115. package/dist/lib/esm/docs-site/docs-site-commands.d.mts +29 -0
  116. package/dist/lib/esm/docs-site/docs-site-commands.mjs +46 -0
  117. package/dist/lib/esm/docs-site/docs-site-config.d.mts +162 -0
  118. package/dist/lib/esm/docs-site/docs-site-config.mjs +98 -0
  119. package/dist/lib/esm/docs-site/index.d.mts +26 -0
  120. package/dist/lib/esm/docs-site/index.mjs +58 -0
  121. package/dist/lib/esm/docs-site/link-check.d.mts +163 -0
  122. package/dist/lib/esm/docs-site/link-check.mjs +166 -0
  123. package/dist/lib/esm/docs-site/og-image-page.d.mts +15 -0
  124. package/dist/lib/esm/docs-site/og-image-page.mjs +21 -0
  125. package/dist/lib/esm/docs-site/og-image.d.mts +70 -0
  126. package/dist/lib/esm/docs-site/og-image.mjs +292 -0
  127. package/dist/lib/esm/docs-site/og-images.d.mts +41 -0
  128. package/dist/lib/esm/docs-site/og-images.mjs +156 -0
  129. package/dist/lib/esm/docs-site/route-data.d.mts +14 -0
  130. package/dist/lib/esm/docs-site/route-data.mjs +23 -0
  131. package/dist/lib/esm/docs-site/satteri-github-alerts.d.mts +31 -0
  132. package/dist/lib/esm/docs-site/satteri-github-alerts.mjs +72 -0
  133. package/dist/lib/esm/docs-site/satteri-relative-links.d.mts +29 -0
  134. package/dist/lib/esm/docs-site/satteri-relative-links.mjs +63 -0
  135. package/dist/lib/esm/docs-site/unrendered-alerts.d.mts +38 -0
  136. package/dist/lib/esm/docs-site/unrendered-alerts.mjs +26 -0
  137. package/dist/lib/esm/index.d.mts +1 -0
  138. package/dist/lib/esm/index.mjs +3 -1
  139. package/dist/lib/esm/library-build.d.mts +2 -2
  140. package/dist/lib/esm/library-build.mjs +1 -1
  141. package/dist/lib/esm/linters/eslint-config.d.mts +1 -7
  142. package/dist/lib/esm/linters/eslint-config.mjs +17 -17
  143. package/dist/lib/esm/linters/eslint-rules/in-house-plugin.d.mts +5 -8
  144. package/dist/lib/esm/linters/eslint-rules/in-house-plugin.mjs +2 -2
  145. package/dist/lib/esm/linters/markdownlint.mjs +4 -1
  146. package/dist/lib/esm/package-manager.mjs +2 -2
  147. package/docs-site/api-doc-constants/package.json +6 -0
  148. package/docs-site/api-doc-jsdoc/package.json +6 -0
  149. package/docs-site/api-doc-link-rendering/package.json +6 -0
  150. package/docs-site/api-doc-package-sites/package.json +6 -0
  151. package/docs-site/api-doc-page-generation/package.json +6 -0
  152. package/docs-site/api-doc-route-segments/package.json +6 -0
  153. package/docs-site/api-doc-settings/package.json +6 -0
  154. package/docs-site/api-doc-source-processing/package.json +6 -0
  155. package/docs-site/api-doc-text-utils/package.json +6 -0
  156. package/docs-site/api-doc-type-merging/package.json +6 -0
  157. package/docs-site/api-doc-types/package.json +6 -0
  158. package/docs-site/api-docs/package.json +6 -0
  159. package/docs-site/astro-config/package.json +6 -0
  160. package/docs-site/docs-links/package.json +6 -0
  161. package/docs-site/docs-site-assets/package.json +6 -0
  162. package/docs-site/docs-site-commands/package.json +6 -0
  163. package/docs-site/docs-site-config/package.json +6 -0
  164. package/docs-site/index/package.json +6 -0
  165. package/docs-site/link-check/package.json +6 -0
  166. package/docs-site/og-image/package.json +6 -0
  167. package/docs-site/og-image-page/package.json +6 -0
  168. package/docs-site/og-images/package.json +6 -0
  169. package/docs-site/package.json +6 -0
  170. package/docs-site/route-data/package.json +6 -0
  171. package/docs-site/satteri-github-alerts/package.json +6 -0
  172. package/docs-site/satteri-relative-links/package.json +6 -0
  173. package/docs-site/unrendered-alerts/package.json +6 -0
  174. package/package.json +74 -4
@@ -215,7 +215,7 @@ function warnAboutSeveralClaimants(params) {
215
215
  const lockfileNames = lockfiles.map((lockfile) => lockfile.fileName).join(", ");
216
216
  const advice = declaredPackageManager === null ? 'Delete the stale lockfile, or declare "packageManager" in package.json, to settle it.' : "Delete the stale lockfile to settle it.";
217
217
  const message = [
218
- `obsidian-dev-utils: more than one package manager claims ${root}.`,
218
+ `typescript-dev-toolkit: more than one package manager claims ${root}.`,
219
219
  `Lockfiles: ${lockfileNames}.`,
220
220
  `package.json "packageManager": ${declaredPackageManager ?? "not set"}.`,
221
221
  `Using ${packageManager}.`,
@@ -233,4 +233,4 @@ export {
233
233
  getPackageManagerRunCommand,
234
234
  resolveToolCommand
235
235
  };
236
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWNrYWdlLW1hbmFnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFJlc29sdmVzIGxvY2FsbHktaW5zdGFsbGVkIHRvb2wgYmluYXJpZXMgYW5kIHBhY2thZ2Utc2NyaXB0IHJ1bm5lcnMgd2l0aG91dCBhc3N1bWluZyBgbnBtYC5cbiAqXG4gKiBEZWxlZ2F0aW5nIHRvIGBucHhgIHNpbGVudGx5IGFzc3VtZXMgYW4gbnBtLWluc3RhbGxlZCB0cmVlLiBPbiBXaW5kb3dzIHRoYXQgYXNzdW1wdGlvbiBpcyBmYXRhbCB1bmRlclxuICogYGJ1bmA6IGBidW4gaW5zdGFsbGAgd3JpdGVzIGBub2RlX21vZHVsZXMvLmJpbi88dG9vbD4uZXhlYCwgbm90IHRoZSBgPHRvb2w+LmNtZGAgdGhhdCBucG0ncyBgbnB4YCBsb29rc1xuICogZm9yLCBzbyBgbnB4YCBtaXNzZXMgdGhlIGxvY2FsIGluc3RhbGwgZW50aXJlbHkgYW5kIGRvd25sb2FkcyB0aGUgdG9vbCBmcm9tIHRoZSByZWdpc3RyeSBpbnN0ZWFkIOKAlCB3aGljaFxuICogZm9yIGB0c2NgIGlzIHRoZSB3ZWxsLWtub3duIGRlY295IHBhY2thZ2UsIG5vdCBUeXBlU2NyaXB0LiBSZXNvbHZpbmcgdGhlIHNoaW0gZnJvbSBgbm9kZV9tb2R1bGVzLy5iaW5gXG4gKiBvdXJzZWx2ZXMgc2lkZXN0ZXBzIHRoZSB3aG9sZSBzaGltLWZvcm1hdCBxdWVzdGlvbiwgYmVjYXVzZSBldmVyeSBwYWNrYWdlIG1hbmFnZXIgd3JpdGVzIG9uZSB0aGVyZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBhY2thZ2VKc29uIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHtcbiAgZGlybmFtZSxcbiAgam9pbixcbiAgdG9Qb3NpeFBhdGhcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3BhdGgnO1xuaW1wb3J0IHsgZ2V0TWFuZGF0b3J5TmFtZWRHcm91cCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9yZWctZXhwJztcbmltcG9ydCB7IGFzc2VydE5ldmVyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R5cGUtZ3VhcmRzJztcbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5cbmltcG9ydCB7IHJlYWRKc29uU3luYyB9IGZyb20gJy4vanNvbi50cyc7XG5pbXBvcnQgeyBSZXBvUGF0aHMgfSBmcm9tICcuL3JlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHsgZ2V0Um9vdEZvbGRlciB9IGZyb20gJy4vcm9vdC50cyc7XG5cbi8qKlxuICogQSBwYWNrYWdlIG1hbmFnZXIgdGhhdCBjYW4gb3duIGEgcHJvamVjdCdzIGRlcGVuZGVuY3kgdHJlZS5cbiAqL1xuZXhwb3J0IGVudW0gUGFja2FnZU1hbmFnZXIge1xuICAvKipcbiAgICogVGhlIGBidW5gIHBhY2thZ2UgbWFuYWdlci5cbiAgICovXG4gIEJ1biA9ICdidW4nLFxuXG4gIC8qKlxuICAgKiBUaGUgYG5wbWAgcGFja2FnZSBtYW5hZ2VyLlxuICAgKi9cbiAgTnBtID0gJ25wbScsXG5cbiAgLyoqXG4gICAqIFRoZSBgcG5wbWAgcGFja2FnZSBtYW5hZ2VyLlxuICAgKi9cbiAgUG5wbSA9ICdwbnBtJyxcblxuICAvKipcbiAgICogVGhlIGB5YXJuYCBwYWNrYWdlIG1hbmFnZXIuXG4gICAqL1xuICBZYXJuID0gJ3lhcm4nXG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHJlc29sdmVUb29sQ29tbWFuZH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZVRvb2xDb21tYW5kUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHRvIHJlc29sdmUgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IGN3ZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGxvY2FsbHktaW5zdGFsbGVkIHRvb2wsIGFzIGl0IGFwcGVhcnMgaW4gYG5vZGVfbW9kdWxlcy8uYmluYC5cbiAgICovXG4gIHJlYWRvbmx5IHRvb2w6IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoaWNoIHBhY2thZ2UgbWFuYWdlciBvd25zIHRoZSBwcm9qZWN0J3MgZGVwZW5kZW5jeSB0cmVlLlxuICpcbiAqIEV2ZXJ5IHNpZ25hbCBpcyBjb2xsZWN0ZWQgYmVmb3JlIGFueSBvZiB0aGVtIGlzIGJlbGlldmVkLCBiZWNhdXNlIGEgcmVwbyBjYXJyeWluZyB0d28gbG9ja2ZpbGVzIHVzZWQgdG9cbiAqIHJlc29sdmUgdG8gd2hpY2hldmVyIHNhdCBlYXJsaWVyIGluIGEgZml4ZWQgbGlzdCDigJQgc2lsZW50bHkgcmVhc3NpZ25pbmcgZXZlcnkgcGFja2FnZSBzY3JpcHQgYW5kIGV2ZXJ5XG4gKiB0b29sIGludm9jYXRpb24gdG8gYSBtYW5hZ2VyIHRoYXQgbmV2ZXIgaW5zdGFsbGVkIHRoZSB0cmVlLlxuICpcbiAqIFRoZSBvcmRlciBpczpcbiAqXG4gKiAxLiBUaGUgYHBhY2thZ2VNYW5hZ2VyYCBmaWVsZCBvZiBgcGFja2FnZS5qc29uYC4gSXQgaXMgYSBkZWxpYmVyYXRlIGRlY2xhcmF0aW9uIGJ5IHRoZSByZXBvJ3MgYXV0aG9yXG4gKiAgICByYXRoZXIgdGhhbiBhbiBhcnRpZmFjdCBsZWZ0IGJlaGluZCBieSB3aGF0ZXZlciByYW4gbGFzdCwgc28gaXQgb3V0cmFua3MgZXZlcnkgbG9ja2ZpbGUg4oCUIGFuZCBpdCBpc1xuICogICAgdGhlIG9ubHkgc2lnbmFsIHRoYXQgaGVscHMgYXQgYWxsIGJlZm9yZSB0aGUgZmlyc3QgaW5zdGFsbCwgd2hlbiBubyBsb2NrZmlsZSBleGlzdHMgeWV0LlxuICogMi4gVGhlIHNvbGUgbG9ja2ZpbGUsIHdoZW4gZXhhY3RseSBvbmUgbWFuYWdlciBjbGFpbXMgdGhlIHRyZWUuXG4gKiAzLiBBbW9uZyBzZXZlcmFsIGxvY2tmaWxlcywgdGhlIG1hbmFnZXIgdGhhdCBsYXVuY2hlZCB1cyAoYG5wbV9jb25maWdfdXNlcl9hZ2VudGApLCB3aGVuIGl0IG93bnMgb25lIG9mXG4gKiAgICB0aGVtIOKAlCBhIGxpdmUgc2lnbmFsIGJlYXRzIGEgZmlsZSB0aGF0IG1heSBoYXZlIGJlZW4gYWJhbmRvbmVkIG1pZC1taWdyYXRpb24uIE90aGVyd2lzZSB0aGVcbiAqICAgIGRvY3VtZW50ZWQgZmFsbGJhY2sgb3JkZXIgaW4ge0BsaW5rIExPQ0tGSUxFU30gZGVjaWRlcy4gTm90ZSB0aGlzIGlzIGRlbGliZXJhdGVseSBOT1QgXCJ0aGUgbW9zdFxuICogICAgcmVjZW50bHkgbW9kaWZpZWQgbG9ja2ZpbGVcIjogYSBzdHJheSBsb2NrZmlsZSBpcyB0eXBpY2FsbHkgdGhlIG5ld2VzdCBmaWxlLCBzbyBtdGltZSBwaWNrcyBwcmVjaXNlbHlcbiAqICAgIHRoZSB3cm9uZyBvbmUuXG4gKiA0LiBgbnBtX2NvbmZpZ191c2VyX2FnZW50YCBvbiBpdHMgb3duLCB3aGVuIHRoZXJlIGlzIG5vIGxvY2tmaWxlLlxuICogNS4ge0BsaW5rIFBhY2thZ2VNYW5hZ2VyLk5wbX0uXG4gKlxuICogV2hlbmV2ZXIgbW9yZSB0aGFuIG9uZSBtYW5hZ2VyIGNsYWltcyB0aGUgdHJlZSwgdGhlIGRpc2FncmVlbWVudCBpcyByZXBvcnRlZCBvbmNlIHBlciBwcm9qZWN0IHRocm91Z2hcbiAqIHtAbGluayB3YXJuQWJvdXRTZXZlcmFsQ2xhaW1hbnRzfSDigJQgdGhlIHJlc29sdXRpb24gc3RheXMgZGV0ZXJtaW5pc3RpYywgYnV0IGl0IHN0b3BzIGJlaW5nIHNpbGVudC5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgdG8gcmVzb2x2ZSBmcm9tLlxuICogQHJldHVybnMgVGhlIGRldGVjdGVkIHBhY2thZ2UgbWFuYWdlciwgb3Ige0BsaW5rIFBhY2thZ2VNYW5hZ2VyLk5wbX0gd2hlbiBub3RoaW5nIGluZGljYXRlcyBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWNrYWdlTWFuYWdlcihjd2Q/OiBzdHJpbmcpOiBQYWNrYWdlTWFuYWdlciB7XG4gIGNvbnN0IHJvb3QgPSBnZXRTdGFydEZvbGRlcihjd2QpO1xuICBjb25zdCBkZWNsYXJlZFBhY2thZ2VNYW5hZ2VyID0gZGV0ZWN0UGFja2FnZU1hbmFnZXJGcm9tUGFja2FnZUpzb24ocm9vdCk7XG4gIGNvbnN0IGxvY2tmaWxlcyA9IExPQ0tGSUxFUy5maWx0ZXIoKGxvY2tmaWxlKSA9PiBleGlzdHNTeW5jKGpvaW4ocm9vdCwgbG9ja2ZpbGUuZmlsZU5hbWUpKSk7XG4gIGNvbnN0IGNsYWltYW50cyA9IG5ldyBTZXQobG9ja2ZpbGVzLm1hcCgobG9ja2ZpbGUpID0+IGxvY2tmaWxlLnBhY2thZ2VNYW5hZ2VyKSk7XG5cbiAgaWYgKGRlY2xhcmVkUGFja2FnZU1hbmFnZXIgIT09IG51bGwpIHtcbiAgICBjbGFpbWFudHMuYWRkKGRlY2xhcmVkUGFja2FnZU1hbmFnZXIpO1xuICB9XG5cbiAgY29uc3QgcGFja2FnZU1hbmFnZXIgPSByZXNvbHZlUGFja2FnZU1hbmFnZXIoe1xuICAgIGNsYWltYW50cyxcbiAgICBkZWNsYXJlZFBhY2thZ2VNYW5hZ2VyXG4gIH0pO1xuXG4gIGlmIChjbGFpbWFudHMuc2l6ZSA+IDEpIHtcbiAgICB3YXJuQWJvdXRTZXZlcmFsQ2xhaW1hbnRzKHtcbiAgICAgIGRlY2xhcmVkUGFja2FnZU1hbmFnZXIsXG4gICAgICBsb2NrZmlsZXMsXG4gICAgICBwYWNrYWdlTWFuYWdlcixcbiAgICAgIHJvb3RcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBwYWNrYWdlTWFuYWdlcjtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIGNvbW1hbmQgcGFydHMgdGhhdCBydW4gYSBwYWNrYWdlIHNjcmlwdCB0aHJvdWdoIHRoZSBtYW5hZ2VyIHRoYXQgb3ducyB0aGUgdHJlZS5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgdG8gcmVzb2x2ZSBmcm9tLlxuICogQHJldHVybnMgVGhlIGNvbW1hbmQgcGFydHMsIGUuZy4gYFsnYnVuJywgJ3J1biddYC4gVGhlIHNjcmlwdCBuYW1lIGlzIGFwcGVuZGVkIGJ5IHRoZSBjYWxsZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWNrYWdlTWFuYWdlclJ1bkNvbW1hbmQoY3dkPzogc3RyaW5nKTogc3RyaW5nW10ge1xuICByZXR1cm4gW2dldFBhY2thZ2VNYW5hZ2VyKGN3ZCksICdydW4nXTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIGNvbW1hbmQgcGFydHMgdGhhdCBydW4gYSBsb2NhbGx5LWluc3RhbGxlZCB0b29sLCB3aXRoIHRoZSB0b29sIGl0c2VsZiBhbHJlYWR5IGluY2x1ZGVkLlxuICpcbiAqIFByZWZlcnMgdGhlIHNoaW0gaW4gdGhlIG5lYXJlc3QgYG5vZGVfbW9kdWxlcy8uYmluYCwgd2Fsa2luZyB1cCB0aHJvdWdoIGFuY2VzdG9yIGZvbGRlcnMgc28gYSBob2lzdGVkXG4gKiB3b3Jrc3BhY2UgaW5zdGFsbCBpcyBzdGlsbCBmb3VuZC4gRmFsbHMgYmFjayB0byB0aGUgb3duaW5nIG1hbmFnZXIncyBleGVjIGZvcm0gd2hlbiBubyBzaGltIHJlc29sdmVzIOKAlFxuICogd2hpY2ggaXMgYm90aCB0aGUgcHJldmlvdXMgYmVoYXZpb3IgYW5kIHRoZSBvbmx5IHRoaW5nIHRoYXQgd29ya3MgdW5kZXIgeWFybidzIFBsdWcnbidQbGF5LCB3aGVyZVxuICogYG5vZGVfbW9kdWxlcy8uYmluYCBkb2VzIG5vdCBleGlzdCBhdCBhbGwuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgcmVzb2x1dGlvbi5cbiAqIEByZXR1cm5zIFRoZSBjb21tYW5kIHBhcnRzLCBlLmcuIGBbJy9wcm9qZWN0L25vZGVfbW9kdWxlcy8uYmluL3RzYyddYCBvciBgWydidW4nLCAneCcsICd0c2MnXWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlVG9vbENvbW1hbmQocGFyYW1zOiBSZXNvbHZlVG9vbENvbW1hbmRQYXJhbXMpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHsgY3dkLCB0b29sIH0gPSBwYXJhbXM7XG4gIGNvbnN0IHNoaW1QYXRoID0gZmluZEJpblNoaW0oeyBjd2QsIHRvb2wgfSk7XG5cbiAgcmV0dXJuIHNoaW1QYXRoID09PSBudWxsID8gWy4uLmdldFBhY2thZ2VNYW5hZ2VyRXhlY0NvbW1hbmQoY3dkKSwgdG9vbF0gOiBbc2hpbVBhdGhdO1xufVxuXG4vKipcbiAqIE1hdGNoZXMgdGhlIGxlYWRpbmcgYDxuYW1lPkBgIHRva2VuIG9mIGEgYHBhY2thZ2UuanNvbmAgYHBhY2thZ2VNYW5hZ2VyYCB2YWx1ZS5cbiAqXG4gKiBUaGUgYEBgIGlzIHJlcXVpcmVkLCBiZWNhdXNlIGNvcmVwYWNrJ3MgZm9ybWF0IGlzIGA8bmFtZT5APHZlcnNpb24+YCDigJQgYSBiYXJlIG5hbWUgaXMgYSBtYWxmb3JtZWRcbiAqIGRlY2xhcmF0aW9uIHJhdGhlciB0aGFuIGEgc2hvcnRoYW5kLCBhbmQgaXMgaWdub3JlZCBpbnN0ZWFkIG9mIGd1ZXNzZWQgYXQuXG4gKi9cbmNvbnN0IERFQ0xBUkFUSU9OX05BTUVfUkVHX0VYUCA9IC9eKD88bmFtZT5bXkBcXHNdKylALztcblxuLyoqXG4gKiBUaGUgbG9ja2ZpbGVzIHRoYXQgaWRlbnRpZnkgYSBwYWNrYWdlIG1hbmFnZXIsIGluIHRoZSBvcmRlciB0aGV5IGRlY2lkZSBhIHRpZSBubyBvdGhlciBzaWduYWwgc2V0dGxlcy5cbiAqXG4gKiBCb3RoIGJ1biBsb2NrZmlsZSBmb3JtYXRzIG1hcCB0byB0aGUgc2FtZSBtYW5hZ2VyLCBzbyBhIHJlcG8gaG9sZGluZyBib3RoIGlzIG9uZSBjbGFpbWFudCwgbm90IHR3by5cbiAqL1xuY29uc3QgTE9DS0ZJTEVTOiBMb2NrZmlsZUNsYWltW10gPSBbXG4gIHsgZmlsZU5hbWU6IFJlcG9QYXRocy5CdW5Mb2NrLCBwYWNrYWdlTWFuYWdlcjogUGFja2FnZU1hbmFnZXIuQnVuIH0sXG4gIHsgZmlsZU5hbWU6IFJlcG9QYXRocy5CdW5Mb2NrYiwgcGFja2FnZU1hbmFnZXI6IFBhY2thZ2VNYW5hZ2VyLkJ1biB9LFxuICB7IGZpbGVOYW1lOiBSZXBvUGF0aHMuUG5wbUxvY2tZYW1sLCBwYWNrYWdlTWFuYWdlcjogUGFja2FnZU1hbmFnZXIuUG5wbSB9LFxuICB7IGZpbGVOYW1lOiBSZXBvUGF0aHMuWWFybkxvY2ssIHBhY2thZ2VNYW5hZ2VyOiBQYWNrYWdlTWFuYWdlci5ZYXJuIH0sXG4gIHsgZmlsZU5hbWU6IFJlcG9QYXRocy5QYWNrYWdlTG9ja0pzb24sIHBhY2thZ2VNYW5hZ2VyOiBQYWNrYWdlTWFuYWdlci5OcG0gfVxuXTtcblxuLyoqXG4gKiBNYXRjaGVzIHRoZSBsZWFkaW5nIGA8bmFtZT4vYCB0b2tlbiBvZiBhbiBgbnBtX2NvbmZpZ191c2VyX2FnZW50YCB2YWx1ZS5cbiAqL1xuY29uc3QgVVNFUl9BR0VOVF9OQU1FX1JFR19FWFAgPSAvXig/PG5hbWU+W14vXFxzXSspXFwvLztcblxuLyoqXG4gKiBUaGUgZGlzYWdyZWVtZW50cyBhbHJlYWR5IHJlcG9ydGVkLCBzbyBhIGJ1aWxkIHRoYXQgcmVzb2x2ZXMgdGhlIG1hbmFnZXIgb25jZSBwZXIgc2NyaXB0IGhvcCBhbmQgb25jZVxuICogcGVyIHRvb2wgaW52b2NhdGlvbiBzdGlsbCBzYXlzIGl0IG9ubHkgb25jZS5cbiAqL1xuY29uc3QgcmVwb3J0ZWREaXNhZ3JlZW1lbnRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGZpbmRCaW5TaGltfS5cbiAqL1xuaW50ZXJmYWNlIEZpbmRCaW5TaGltUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHRvIHJlc29sdmUgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IGN3ZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGxvY2FsbHktaW5zdGFsbGVkIHRvb2wuXG4gICAqL1xuICByZWFkb25seSB0b29sOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBsb2NrZmlsZSBhbmQgdGhlIHBhY2thZ2UgbWFuYWdlciB3aG9zZSBwcmVzZW5jZSBpdCBwcm92ZXMuXG4gKi9cbmludGVyZmFjZSBMb2NrZmlsZUNsYWltIHtcbiAgLyoqXG4gICAqIFRoZSBsb2NrZmlsZSBuYW1lLCBhcyBpdCBhcHBlYXJzIGF0IHRoZSBwcm9qZWN0IHJvb3QuXG4gICAqL1xuICByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFja2FnZSBtYW5hZ2VyIHRoYXQgd3JpdGVzIHRoaXMgbG9ja2ZpbGUuXG4gICAqL1xuICByZWFkb25seSBwYWNrYWdlTWFuYWdlcjogUGFja2FnZU1hbmFnZXI7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHJlc29sdmVQYWNrYWdlTWFuYWdlcn0uXG4gKi9cbmludGVyZmFjZSBSZXNvbHZlUGFja2FnZU1hbmFnZXJQYXJhbXMge1xuICAvKipcbiAgICogRXZlcnkgcGFja2FnZSBtYW5hZ2VyIGNsYWltaW5nIHRoZSB0cmVlIOKAlCB0aGUgbG9ja2ZpbGUgb3duZXJzIGluIHtAbGluayBMT0NLRklMRVN9IG9yZGVyLCBwbHVzIHRoZVxuICAgKiBkZWNsYXJlZCBvbmUuIE9ubHkgY29uc3VsdGVkIHdoZW4gbm90aGluZyBpcyBkZWNsYXJlZCwgaW4gd2hpY2ggY2FzZSBpdCBob2xkcyBleGFjdGx5IHRoZSBsb2NrZmlsZVxuICAgKiBvd25lcnMuXG4gICAqL1xuICByZWFkb25seSBjbGFpbWFudHM6IFJlYWRvbmx5U2V0PFBhY2thZ2VNYW5hZ2VyPjtcblxuICAvKipcbiAgICogVGhlIHBhY2thZ2UgbWFuYWdlciBkZWNsYXJlZCBpbiBgcGFja2FnZS5qc29uYCwgb3IgYG51bGxgIHdoZW4gbm9uZSBpcy5cbiAgICovXG4gIHJlYWRvbmx5IGRlY2xhcmVkUGFja2FnZU1hbmFnZXI6IG51bGwgfCBQYWNrYWdlTWFuYWdlcjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgd2FybkFib3V0U2V2ZXJhbENsYWltYW50c30uXG4gKi9cbmludGVyZmFjZSBXYXJuQWJvdXRTZXZlcmFsQ2xhaW1hbnRzUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBwYWNrYWdlIG1hbmFnZXIgZGVjbGFyZWQgaW4gYHBhY2thZ2UuanNvbmAsIG9yIGBudWxsYCB3aGVuIG5vbmUgaXMuXG4gICAqL1xuICByZWFkb25seSBkZWNsYXJlZFBhY2thZ2VNYW5hZ2VyOiBudWxsIHwgUGFja2FnZU1hbmFnZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NrZmlsZXMgYWN0dWFsbHkgZm91bmQgYXQgdGhlIHByb2plY3Qgcm9vdC5cbiAgICovXG4gIHJlYWRvbmx5IGxvY2tmaWxlczogcmVhZG9ubHkgTG9ja2ZpbGVDbGFpbVtdO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFja2FnZSBtYW5hZ2VyIHRoYXQgd29uLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZU1hbmFnZXI6IFBhY2thZ2VNYW5hZ2VyO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJvamVjdCByb290IHRoZSBsb2NrZmlsZXMgd2VyZSBmb3VuZCBpbi5cbiAgICovXG4gIHJlYWRvbmx5IHJvb3Q6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZWFkcyB0aGUgcGFja2FnZSBtYW5hZ2VyIG91dCBvZiB0aGUgYHBhY2thZ2VNYW5hZ2VyYCBmaWVsZCBvZiB0aGUgcHJvamVjdCdzIGBwYWNrYWdlLmpzb25gLCB3aGljaCBpc1xuICogY29yZXBhY2sncyBgPG5hbWU+QDx2ZXJzaW9uPmAgZGVjbGFyYXRpb24uXG4gKlxuICogQHBhcmFtIHJvb3QgLSBUaGUgcHJvamVjdCByb290IHRvIHJlYWQgYHBhY2thZ2UuanNvbmAgZnJvbS5cbiAqIEByZXR1cm5zIFRoZSBkZWNsYXJlZCBwYWNrYWdlIG1hbmFnZXIsIG9yIGBudWxsYCB3aGVuIHRoZXJlIGlzIG5vIGBwYWNrYWdlLmpzb25gLCBpdCBjYW5ub3QgYmUgcGFyc2VkLFxuICogdGhlIGZpZWxkIGlzIGFic2VudCBvciBtYWxmb3JtZWQsIG9yIGl0IG5hbWVzIGEgbWFuYWdlciB3ZSBkbyBub3QgaGFuZGxlLlxuICovXG5mdW5jdGlvbiBkZXRlY3RQYWNrYWdlTWFuYWdlckZyb21QYWNrYWdlSnNvbihyb290OiBzdHJpbmcpOiBudWxsIHwgUGFja2FnZU1hbmFnZXIge1xuICBjb25zdCBwYWNrYWdlSnNvblBhdGggPSBqb2luKHJvb3QsIFJlcG9QYXRocy5QYWNrYWdlSnNvbik7XG5cbiAgaWYgKCFleGlzdHNTeW5jKHBhY2thZ2VKc29uUGF0aCkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGxldCBwYWNrYWdlSnNvbjogUGFja2FnZUpzb247XG5cbiAgdHJ5IHtcbiAgICBwYWNrYWdlSnNvbiA9IHJlYWRKc29uU3luYzxQYWNrYWdlSnNvbj4ocGFja2FnZUpzb25QYXRoKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBkZWNsYXJhdGlvbiA9IHBhY2thZ2VKc29uLnBhY2thZ2VNYW5hZ2VyO1xuXG4gIGlmICghZGVjbGFyYXRpb24pIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IG1hdGNoID0gREVDTEFSQVRJT05fTkFNRV9SRUdfRVhQLmV4ZWMoZGVjbGFyYXRpb24pO1xuXG4gIHJldHVybiBtYXRjaCA/IHBhcnNlUGFja2FnZU1hbmFnZXJOYW1lKGdldE1hbmRhdG9yeU5hbWVkR3JvdXAobWF0Y2gsICduYW1lJykpIDogbnVsbDtcbn1cblxuLyoqXG4gKiBSZWFkcyB0aGUgcGFja2FnZSBtYW5hZ2VyIG91dCBvZiBgbnBtX2NvbmZpZ191c2VyX2FnZW50YCwgd2hpY2ggZXZlcnkgbWFuYWdlciBzZXRzIGZvciB0aGUgcHJvY2Vzc2VzIGl0XG4gKiBsYXVuY2hlcy5cbiAqXG4gKiBAcmV0dXJucyBUaGUgZGV0ZWN0ZWQgcGFja2FnZSBtYW5hZ2VyLCBvciBgbnVsbGAgd2hlbiB0aGUgdmFyaWFibGUgaXMgYWJzZW50LCBtYWxmb3JtZWQsIG9yIG5hbWVzIGFcbiAqIHJ1bnRpbWUgd2UgZG8gbm90IGhhbmRsZS5cbiAqL1xuZnVuY3Rpb24gZGV0ZWN0UGFja2FnZU1hbmFnZXJGcm9tVXNlckFnZW50KCk6IG51bGwgfCBQYWNrYWdlTWFuYWdlciB7XG4gIGNvbnN0IHVzZXJBZ2VudCA9IHByb2Nlc3MuZW52WyducG1fY29uZmlnX3VzZXJfYWdlbnQnXTtcblxuICBpZiAoIXVzZXJBZ2VudCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgbWF0Y2ggPSBVU0VSX0FHRU5UX05BTUVfUkVHX0VYUC5leGVjKHVzZXJBZ2VudCk7XG5cbiAgcmV0dXJuIG1hdGNoID8gcGFyc2VQYWNrYWdlTWFuYWdlck5hbWUoZ2V0TWFuZGF0b3J5TmFtZWRHcm91cChtYXRjaCwgJ25hbWUnKSkgOiBudWxsO1xufVxuXG4vKipcbiAqIEZpbmRzIHRoZSBgbm9kZV9tb2R1bGVzLy5iaW5gIHNoaW0gZm9yIGEgdG9vbCwgd2Fsa2luZyB1cCBmcm9tIHRoZSBwcm9qZWN0IHJvb3QgdGhyb3VnaCBhbmNlc3RvciBmb2xkZXJzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGxvb2t1cC5cbiAqIEByZXR1cm5zIFRoZSBhYnNvbHV0ZSBwYXRoIG9mIHRoZSBzaGltLCBvciBgbnVsbGAgd2hlbiBub25lIGV4aXN0cy5cbiAqL1xuZnVuY3Rpb24gZmluZEJpblNoaW0ocGFyYW1zOiBGaW5kQmluU2hpbVBhcmFtcyk6IG51bGwgfCBzdHJpbmcge1xuICBjb25zdCB7IGN3ZCwgdG9vbCB9ID0gcGFyYW1zO1xuICBjb25zdCBjYW5kaWRhdGVzID0gZ2V0U2hpbUNhbmRpZGF0ZXModG9vbCk7XG4gIGxldCBjdXJyZW50Rm9sZGVyID0gZ2V0U3RhcnRGb2xkZXIoY3dkKTtcblxuICB3aGlsZSAoXG4gICAgY3VycmVudEZvbGRlciAhPT0gUmVwb1BhdGhzLkN1cnJlbnRGb2xkZXIgYXMgc3RyaW5nXG4gICAgJiYgY3VycmVudEZvbGRlciAhPT0gUmVwb1BhdGhzLlJvb3RGb2xkZXIgYXMgc3RyaW5nXG4gICkge1xuICAgIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICAgIGNvbnN0IHNoaW1QYXRoID0gam9pbihjdXJyZW50Rm9sZGVyLCBSZXBvUGF0aHMuTm9kZU1vZHVsZXMsIFJlcG9QYXRocy5CaW4sIGNhbmRpZGF0ZSk7XG4gICAgICBpZiAoZXhpc3RzU3luYyhzaGltUGF0aCkpIHtcbiAgICAgICAgcmV0dXJuIHNoaW1QYXRoO1xuICAgICAgfVxuICAgIH1cblxuICAgIGN1cnJlbnRGb2xkZXIgPSBkaXJuYW1lKGN1cnJlbnRGb2xkZXIpO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBjb21tYW5kIHBhcnRzIHRoYXQgcnVuIGEgb25lLW9mZiB0b29sIHRocm91Z2ggdGhlIG1hbmFnZXIgdGhhdCBvd25zIHRoZSB0cmVlLlxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB0byByZXNvbHZlIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgY29tbWFuZCBwYXJ0cywgZS5nLiBgWydidW4nLCAneCddYC4gVGhlIHRvb2wgbmFtZSBpcyBhcHBlbmRlZCBieSB0aGUgY2FsbGVyLlxuICovXG5mdW5jdGlvbiBnZXRQYWNrYWdlTWFuYWdlckV4ZWNDb21tYW5kKGN3ZD86IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgY29uc3QgcGFja2FnZU1hbmFnZXIgPSBnZXRQYWNrYWdlTWFuYWdlcihjd2QpO1xuXG4gIHN3aXRjaCAocGFja2FnZU1hbmFnZXIpIHtcbiAgICBjYXNlIFBhY2thZ2VNYW5hZ2VyLkJ1bjoge1xuICAgICAgcmV0dXJuIFsnYnVuJywgJ3gnXTtcbiAgICB9XG4gICAgY2FzZSBQYWNrYWdlTWFuYWdlci5OcG06IHtcbiAgICAgIHJldHVybiBbJ25weCddO1xuICAgIH1cbiAgICBjYXNlIFBhY2thZ2VNYW5hZ2VyLlBucG06IHtcbiAgICAgIHJldHVybiBbJ3BucG0nLCAnZXhlYyddO1xuICAgIH1cbiAgICBjYXNlIFBhY2thZ2VNYW5hZ2VyLllhcm46IHtcbiAgICAgIHJldHVybiBbJ3lhcm4nLCAnZXhlYyddO1xuICAgIH1cbiAgICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gRXhoYXVzdGl2ZSBzd2l0Y2ggZ3VhcmQ7IGRlZmF1bHQgYnJhbmNoIGlzIHVucmVhY2hhYmxlLiAqL1xuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHJldHVybiBhc3NlcnROZXZlcihwYWNrYWdlTWFuYWdlcik7XG4gICAgfVxuICAgICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgfVxufVxuXG4vKipcbiAqIExpc3RzIHRoZSBzaGltIGZpbGUgbmFtZXMgdG8gdHJ5IGZvciBhIHRvb2wsIG1vc3Qgc3BlY2lmaWMgZmlyc3QuXG4gKlxuICogT24gV2luZG93cyBvbmx5IHRoZSBleGVjdXRhYmxlIGZvcm1zIGFyZSB2aWFibGU6IG5wbSBhbmQgcG5wbSBhbHNvIHdyaXRlIGEgc2hpbSB3aXRoIG5vIGV4dGVuc2lvbiwgYnV0XG4gKiB0aGF0IG9uZSBpcyBhIGBzaGAgc2NyaXB0IHRoYXQgYGNtZC5leGVgIGNhbm5vdCBydW4sIHNvIGl0IG11c3QgbmV2ZXIgYmUgY2hvc2VuIHRoZXJlLlxuICpcbiAqIEBwYXJhbSB0b29sIC0gVGhlIG5hbWUgb2YgdGhlIGxvY2FsbHktaW5zdGFsbGVkIHRvb2wuXG4gKiBAcmV0dXJucyBUaGUgY2FuZGlkYXRlIGZpbGUgbmFtZXMsIGluIHRoZSBvcmRlciB0aGV5IHNob3VsZCBiZSB0cmllZC5cbiAqL1xuZnVuY3Rpb24gZ2V0U2hpbUNhbmRpZGF0ZXModG9vbDogc3RyaW5nKTogc3RyaW5nW10ge1xuICByZXR1cm4gcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJ1xuICAgID8gW1xuICAgICAgYCR7dG9vbH0ke1JlcG9QYXRocy5Db21tYW5kRXh0ZW5zaW9ufWAsXG4gICAgICBgJHt0b29sfSR7UmVwb1BhdGhzLkV4ZUV4dGVuc2lvbn1gLFxuICAgICAgYCR7dG9vbH0ke1JlcG9QYXRocy5CYXRFeHRlbnNpb259YFxuICAgIF1cbiAgICA6IFt0b29sXTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgZm9sZGVyIHRvIHN0YXJ0IGEgbG9va3VwIGZyb20g4oCUIHRoZSBwcm9qZWN0IHJvb3Qgd2hlbiB0aGVyZSBpcyBvbmUsIHRoZSB3b3JraW5nIGZvbGRlclxuICogb3RoZXJ3aXNlLlxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB0byByZXNvbHZlIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgYWJzb2x1dGUgZm9sZGVyIHRvIHN0YXJ0IGZyb20uXG4gKi9cbmZ1bmN0aW9uIGdldFN0YXJ0Rm9sZGVyKGN3ZD86IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBnZXRSb290Rm9sZGVyKGN3ZCkgPz8gdG9Qb3NpeFBhdGgoY3dkID8/IHByb2Nlc3MuY3dkKCkpO1xufVxuXG4vKipcbiAqIE1hcHMgdGhlIGJhcmUgbmFtZSBhIGxvY2tmaWxlIGRlY2xhcmF0aW9uIG9yIGEgdXNlciBhZ2VudCByZXBvcnRzIG9udG8gdGhlIHBhY2thZ2UgbWFuYWdlciBpdCBuYW1lcy5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSByZXBvcnRlZCBuYW1lLlxuICogQHJldHVybnMgVGhlIG1hdGNoaW5nIHBhY2thZ2UgbWFuYWdlciwgb3IgYG51bGxgIGZvciBhIHJ1bnRpbWUgd2UgZG8gbm90IGhhbmRsZS5cbiAqL1xuZnVuY3Rpb24gcGFyc2VQYWNrYWdlTWFuYWdlck5hbWUobmFtZTogc3RyaW5nKTogbnVsbCB8IFBhY2thZ2VNYW5hZ2VyIHtcbiAgc3dpdGNoIChuYW1lKSB7XG4gICAgY2FzZSBQYWNrYWdlTWFuYWdlci5CdW4gYXMgc3RyaW5nOiB7XG4gICAgICByZXR1cm4gUGFja2FnZU1hbmFnZXIuQnVuO1xuICAgIH1cbiAgICBjYXNlIFBhY2thZ2VNYW5hZ2VyLk5wbSBhcyBzdHJpbmc6IHtcbiAgICAgIHJldHVybiBQYWNrYWdlTWFuYWdlci5OcG07XG4gICAgfVxuICAgIGNhc2UgUGFja2FnZU1hbmFnZXIuUG5wbSBhcyBzdHJpbmc6IHtcbiAgICAgIHJldHVybiBQYWNrYWdlTWFuYWdlci5QbnBtO1xuICAgIH1cbiAgICBjYXNlIFBhY2thZ2VNYW5hZ2VyLllhcm4gYXMgc3RyaW5nOiB7XG4gICAgICByZXR1cm4gUGFja2FnZU1hbmFnZXIuWWFybjtcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUGlja3MgdGhlIHdpbm5lciBvdXQgb2YgdGhlIGNvbGxlY3RlZCBzaWduYWxzLCBwZXIgdGhlIG9yZGVyIGRvY3VtZW50ZWQgb24ge0BsaW5rIGdldFBhY2thZ2VNYW5hZ2VyfS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSByZXNvbHV0aW9uLlxuICogQHJldHVybnMgVGhlIHBhY2thZ2UgbWFuYWdlciB0aGF0IG93bnMgdGhlIHRyZWUuXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVQYWNrYWdlTWFuYWdlcihwYXJhbXM6IFJlc29sdmVQYWNrYWdlTWFuYWdlclBhcmFtcyk6IFBhY2thZ2VNYW5hZ2VyIHtcbiAgY29uc3Qge1xuICAgIGNsYWltYW50cyxcbiAgICBkZWNsYXJlZFBhY2thZ2VNYW5hZ2VyXG4gIH0gPSBwYXJhbXM7XG5cbiAgaWYgKGRlY2xhcmVkUGFja2FnZU1hbmFnZXIgIT09IG51bGwpIHtcbiAgICByZXR1cm4gZGVjbGFyZWRQYWNrYWdlTWFuYWdlcjtcbiAgfVxuXG4gIGNvbnN0IGxvY2tmaWxlT3duZXJzID0gWy4uLmNsYWltYW50c107XG4gIGNvbnN0IFtmaXJzdExvY2tmaWxlT3duZXJdID0gbG9ja2ZpbGVPd25lcnM7XG5cbiAgaWYgKGZpcnN0TG9ja2ZpbGVPd25lciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGRldGVjdFBhY2thZ2VNYW5hZ2VyRnJvbVVzZXJBZ2VudCgpID8/IFBhY2thZ2VNYW5hZ2VyLk5wbTtcbiAgfVxuXG4gIGlmIChsb2NrZmlsZU93bmVycy5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4gZmlyc3RMb2NrZmlsZU93bmVyO1xuICB9XG5cbiAgY29uc3QgbGF1bmNoZWRCeSA9IGRldGVjdFBhY2thZ2VNYW5hZ2VyRnJvbVVzZXJBZ2VudCgpO1xuXG4gIHJldHVybiBsYXVuY2hlZEJ5ICE9PSBudWxsICYmIGNsYWltYW50cy5oYXMobGF1bmNoZWRCeSkgPyBsYXVuY2hlZEJ5IDogZmlyc3RMb2NrZmlsZU93bmVyO1xufVxuXG4vKipcbiAqIFJlcG9ydHMgdGhhdCBzZXZlcmFsIHBhY2thZ2UgbWFuYWdlcnMgY2xhaW0gdGhlIHNhbWUgdHJlZSwgbmFtaW5nIGVhY2ggbG9ja2ZpbGUgZm91bmQsIHdoYXRcbiAqIGBwYWNrYWdlLmpzb25gIGRlY2xhcmVzLCBhbmQgd2hpY2ggbWFuYWdlciB3b24uXG4gKlxuICogYGNvbnNvbGUud2FybmAgcmF0aGVyIHRoYW4gYSBkZWJ1ZyBjaGFubmVsOiB0aGlzIHJ1bnMgaW4gdGhlIGJ1aWxkJ3Mgb3duIHRlcm1pbmFsLCBhbmQgYSBtZXNzYWdlIG5vYm9keVxuICogc2VlcyB1bmxlc3MgdGhleSBhbHJlYWR5IHN1c3BlY3QgdGhlIHByb2JsZW0gbGVhdmVzIHRoZSBmYWlsdXJlIGV4YWN0bHkgYXMgc2lsZW50IGFzIGl0IHdhcy4gRWFjaFxuICogZGlzdGluY3QgbWVzc2FnZSBpcyBwcmludGVkIG9uY2UsIGJlY2F1c2UgdGhlIG1hbmFnZXIgaXMgcmVzb2x2ZWQgb25jZSBwZXIgcGFja2FnZS1zY3JpcHQgaG9wIGFuZCBvbmNlXG4gKiBwZXIgdG9vbCBpbnZvY2F0aW9uLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIHJlcG9ydC5cbiAqL1xuZnVuY3Rpb24gd2FybkFib3V0U2V2ZXJhbENsYWltYW50cyhwYXJhbXM6IFdhcm5BYm91dFNldmVyYWxDbGFpbWFudHNQYXJhbXMpOiB2b2lkIHtcbiAgY29uc3Qge1xuICAgIGRlY2xhcmVkUGFja2FnZU1hbmFnZXIsXG4gICAgbG9ja2ZpbGVzLFxuICAgIHBhY2thZ2VNYW5hZ2VyLFxuICAgIHJvb3RcbiAgfSA9IHBhcmFtcztcblxuICBjb25zdCBsb2NrZmlsZU5hbWVzID0gbG9ja2ZpbGVzLm1hcCgobG9ja2ZpbGUpID0+IGxvY2tmaWxlLmZpbGVOYW1lKS5qb2luKCcsICcpO1xuICBjb25zdCBhZHZpY2UgPSBkZWNsYXJlZFBhY2thZ2VNYW5hZ2VyID09PSBudWxsXG4gICAgPyAnRGVsZXRlIHRoZSBzdGFsZSBsb2NrZmlsZSwgb3IgZGVjbGFyZSBcInBhY2thZ2VNYW5hZ2VyXCIgaW4gcGFja2FnZS5qc29uLCB0byBzZXR0bGUgaXQuJ1xuICAgIDogJ0RlbGV0ZSB0aGUgc3RhbGUgbG9ja2ZpbGUgdG8gc2V0dGxlIGl0Lic7XG4gIGNvbnN0IG1lc3NhZ2UgPSBbXG4gICAgYG9ic2lkaWFuLWRldi11dGlsczogbW9yZSB0aGFuIG9uZSBwYWNrYWdlIG1hbmFnZXIgY2xhaW1zICR7cm9vdH0uYCxcbiAgICBgTG9ja2ZpbGVzOiAke2xvY2tmaWxlTmFtZXN9LmAsXG4gICAgYHBhY2thZ2UuanNvbiBcInBhY2thZ2VNYW5hZ2VyXCI6ICR7ZGVjbGFyZWRQYWNrYWdlTWFuYWdlciA/PyAnbm90IHNldCd9LmAsXG4gICAgYFVzaW5nICR7cGFja2FnZU1hbmFnZXJ9LmAsXG4gICAgYWR2aWNlXG4gIF0uam9pbignICcpO1xuXG4gIGlmIChyZXBvcnRlZERpc2FncmVlbWVudHMuaGFzKG1lc3NhZ2UpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmVwb3J0ZWREaXNhZ3JlZW1lbnRzLmFk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
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWNrYWdlLW1hbmFnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFJlc29sdmVzIGxvY2FsbHktaW5zdGFsbGVkIHRvb2wgYmluYXJpZXMgYW5kIHBhY2thZ2Utc2NyaXB0IHJ1bm5lcnMgd2l0aG91dCBhc3N1bWluZyBgbnBtYC5cbiAqXG4gKiBEZWxlZ2F0aW5nIHRvIGBucHhgIHNpbGVudGx5IGFzc3VtZXMgYW4gbnBtLWluc3RhbGxlZCB0cmVlLiBPbiBXaW5kb3dzIHRoYXQgYXNzdW1wdGlvbiBpcyBmYXRhbCB1bmRlclxuICogYGJ1bmA6IGBidW4gaW5zdGFsbGAgd3JpdGVzIGBub2RlX21vZHVsZXMvLmJpbi88dG9vbD4uZXhlYCwgbm90IHRoZSBgPHRvb2w+LmNtZGAgdGhhdCBucG0ncyBgbnB4YCBsb29rc1xuICogZm9yLCBzbyBgbnB4YCBtaXNzZXMgdGhlIGxvY2FsIGluc3RhbGwgZW50aXJlbHkgYW5kIGRvd25sb2FkcyB0aGUgdG9vbCBmcm9tIHRoZSByZWdpc3RyeSBpbnN0ZWFkIOKAlCB3aGljaFxuICogZm9yIGB0c2NgIGlzIHRoZSB3ZWxsLWtub3duIGRlY295IHBhY2thZ2UsIG5vdCBUeXBlU2NyaXB0LiBSZXNvbHZpbmcgdGhlIHNoaW0gZnJvbSBgbm9kZV9tb2R1bGVzLy5iaW5gXG4gKiBvdXJzZWx2ZXMgc2lkZXN0ZXBzIHRoZSB3aG9sZSBzaGltLWZvcm1hdCBxdWVzdGlvbiwgYmVjYXVzZSBldmVyeSBwYWNrYWdlIG1hbmFnZXIgd3JpdGVzIG9uZSB0aGVyZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBhY2thZ2VKc29uIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHtcbiAgZGlybmFtZSxcbiAgam9pbixcbiAgdG9Qb3NpeFBhdGhcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3BhdGgnO1xuaW1wb3J0IHsgZ2V0TWFuZGF0b3J5TmFtZWRHcm91cCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9yZWctZXhwJztcbmltcG9ydCB7IGFzc2VydE5ldmVyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R5cGUtZ3VhcmRzJztcbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5cbmltcG9ydCB7IHJlYWRKc29uU3luYyB9IGZyb20gJy4vanNvbi50cyc7XG5pbXBvcnQgeyBSZXBvUGF0aHMgfSBmcm9tICcuL3JlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHsgZ2V0Um9vdEZvbGRlciB9IGZyb20gJy4vcm9vdC50cyc7XG5cbi8qKlxuICogQSBwYWNrYWdlIG1hbmFnZXIgdGhhdCBjYW4gb3duIGEgcHJvamVjdCdzIGRlcGVuZGVuY3kgdHJlZS5cbiAqL1xuZXhwb3J0IGVudW0gUGFja2FnZU1hbmFnZXIge1xuICAvKipcbiAgICogVGhlIGBidW5gIHBhY2thZ2UgbWFuYWdlci5cbiAgICovXG4gIEJ1biA9ICdidW4nLFxuXG4gIC8qKlxuICAgKiBUaGUgYG5wbWAgcGFja2FnZSBtYW5hZ2VyLlxuICAgKi9cbiAgTnBtID0gJ25wbScsXG5cbiAgLyoqXG4gICAqIFRoZSBgcG5wbWAgcGFja2FnZSBtYW5hZ2VyLlxuICAgKi9cbiAgUG5wbSA9ICdwbnBtJyxcblxuICAvKipcbiAgICogVGhlIGB5YXJuYCBwYWNrYWdlIG1hbmFnZXIuXG4gICAqL1xuICBZYXJuID0gJ3lhcm4nXG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHJlc29sdmVUb29sQ29tbWFuZH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZVRvb2xDb21tYW5kUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHRvIHJlc29sdmUgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IGN3ZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGxvY2FsbHktaW5zdGFsbGVkIHRvb2wsIGFzIGl0IGFwcGVhcnMgaW4gYG5vZGVfbW9kdWxlcy8uYmluYC5cbiAgICovXG4gIHJlYWRvbmx5IHRvb2w6IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoaWNoIHBhY2thZ2UgbWFuYWdlciBvd25zIHRoZSBwcm9qZWN0J3MgZGVwZW5kZW5jeSB0cmVlLlxuICpcbiAqIEV2ZXJ5IHNpZ25hbCBpcyBjb2xsZWN0ZWQgYmVmb3JlIGFueSBvZiB0aGVtIGlzIGJlbGlldmVkLCBiZWNhdXNlIGEgcmVwbyBjYXJyeWluZyB0d28gbG9ja2ZpbGVzIHVzZWQgdG9cbiAqIHJlc29sdmUgdG8gd2hpY2hldmVyIHNhdCBlYXJsaWVyIGluIGEgZml4ZWQgbGlzdCDigJQgc2lsZW50bHkgcmVhc3NpZ25pbmcgZXZlcnkgcGFja2FnZSBzY3JpcHQgYW5kIGV2ZXJ5XG4gKiB0b29sIGludm9jYXRpb24gdG8gYSBtYW5hZ2VyIHRoYXQgbmV2ZXIgaW5zdGFsbGVkIHRoZSB0cmVlLlxuICpcbiAqIFRoZSBvcmRlciBpczpcbiAqXG4gKiAxLiBUaGUgYHBhY2thZ2VNYW5hZ2VyYCBmaWVsZCBvZiBgcGFja2FnZS5qc29uYC4gSXQgaXMgYSBkZWxpYmVyYXRlIGRlY2xhcmF0aW9uIGJ5IHRoZSByZXBvJ3MgYXV0aG9yXG4gKiAgICByYXRoZXIgdGhhbiBhbiBhcnRpZmFjdCBsZWZ0IGJlaGluZCBieSB3aGF0ZXZlciByYW4gbGFzdCwgc28gaXQgb3V0cmFua3MgZXZlcnkgbG9ja2ZpbGUg4oCUIGFuZCBpdCBpc1xuICogICAgdGhlIG9ubHkgc2lnbmFsIHRoYXQgaGVscHMgYXQgYWxsIGJlZm9yZSB0aGUgZmlyc3QgaW5zdGFsbCwgd2hlbiBubyBsb2NrZmlsZSBleGlzdHMgeWV0LlxuICogMi4gVGhlIHNvbGUgbG9ja2ZpbGUsIHdoZW4gZXhhY3RseSBvbmUgbWFuYWdlciBjbGFpbXMgdGhlIHRyZWUuXG4gKiAzLiBBbW9uZyBzZXZlcmFsIGxvY2tmaWxlcywgdGhlIG1hbmFnZXIgdGhhdCBsYXVuY2hlZCB1cyAoYG5wbV9jb25maWdfdXNlcl9hZ2VudGApLCB3aGVuIGl0IG93bnMgb25lIG9mXG4gKiAgICB0aGVtIOKAlCBhIGxpdmUgc2lnbmFsIGJlYXRzIGEgZmlsZSB0aGF0IG1heSBoYXZlIGJlZW4gYWJhbmRvbmVkIG1pZC1taWdyYXRpb24uIE90aGVyd2lzZSB0aGVcbiAqICAgIGRvY3VtZW50ZWQgZmFsbGJhY2sgb3JkZXIgaW4ge0BsaW5rIExPQ0tGSUxFU30gZGVjaWRlcy4gTm90ZSB0aGlzIGlzIGRlbGliZXJhdGVseSBOT1QgXCJ0aGUgbW9zdFxuICogICAgcmVjZW50bHkgbW9kaWZpZWQgbG9ja2ZpbGVcIjogYSBzdHJheSBsb2NrZmlsZSBpcyB0eXBpY2FsbHkgdGhlIG5ld2VzdCBmaWxlLCBzbyBtdGltZSBwaWNrcyBwcmVjaXNlbHlcbiAqICAgIHRoZSB3cm9uZyBvbmUuXG4gKiA0LiBgbnBtX2NvbmZpZ191c2VyX2FnZW50YCBvbiBpdHMgb3duLCB3aGVuIHRoZXJlIGlzIG5vIGxvY2tmaWxlLlxuICogNS4ge0BsaW5rIFBhY2thZ2VNYW5hZ2VyLk5wbX0uXG4gKlxuICogV2hlbmV2ZXIgbW9yZSB0aGFuIG9uZSBtYW5hZ2VyIGNsYWltcyB0aGUgdHJlZSwgdGhlIGRpc2FncmVlbWVudCBpcyByZXBvcnRlZCBvbmNlIHBlciBwcm9qZWN0IHRocm91Z2hcbiAqIHtAbGluayB3YXJuQWJvdXRTZXZlcmFsQ2xhaW1hbnRzfSDigJQgdGhlIHJlc29sdXRpb24gc3RheXMgZGV0ZXJtaW5pc3RpYywgYnV0IGl0IHN0b3BzIGJlaW5nIHNpbGVudC5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgdG8gcmVzb2x2ZSBmcm9tLlxuICogQHJldHVybnMgVGhlIGRldGVjdGVkIHBhY2thZ2UgbWFuYWdlciwgb3Ige0BsaW5rIFBhY2thZ2VNYW5hZ2VyLk5wbX0gd2hlbiBub3RoaW5nIGluZGljYXRlcyBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWNrYWdlTWFuYWdlcihjd2Q/OiBzdHJpbmcpOiBQYWNrYWdlTWFuYWdlciB7XG4gIGNvbnN0IHJvb3QgPSBnZXRTdGFydEZvbGRlcihjd2QpO1xuICBjb25zdCBkZWNsYXJlZFBhY2thZ2VNYW5hZ2VyID0gZGV0ZWN0UGFja2FnZU1hbmFnZXJGcm9tUGFja2FnZUpzb24ocm9vdCk7XG4gIGNvbnN0IGxvY2tmaWxlcyA9IExPQ0tGSUxFUy5maWx0ZXIoKGxvY2tmaWxlKSA9PiBleGlzdHNTeW5jKGpvaW4ocm9vdCwgbG9ja2ZpbGUuZmlsZU5hbWUpKSk7XG4gIGNvbnN0IGNsYWltYW50cyA9IG5ldyBTZXQobG9ja2ZpbGVzLm1hcCgobG9ja2ZpbGUpID0+IGxvY2tmaWxlLnBhY2thZ2VNYW5hZ2VyKSk7XG5cbiAgaWYgKGRlY2xhcmVkUGFja2FnZU1hbmFnZXIgIT09IG51bGwpIHtcbiAgICBjbGFpbWFudHMuYWRkKGRlY2xhcmVkUGFja2FnZU1hbmFnZXIpO1xuICB9XG5cbiAgY29uc3QgcGFja2FnZU1hbmFnZXIgPSByZXNvbHZlUGFja2FnZU1hbmFnZXIoe1xuICAgIGNsYWltYW50cyxcbiAgICBkZWNsYXJlZFBhY2thZ2VNYW5hZ2VyXG4gIH0pO1xuXG4gIGlmIChjbGFpbWFudHMuc2l6ZSA+IDEpIHtcbiAgICB3YXJuQWJvdXRTZXZlcmFsQ2xhaW1hbnRzKHtcbiAgICAgIGRlY2xhcmVkUGFja2FnZU1hbmFnZXIsXG4gICAgICBsb2NrZmlsZXMsXG4gICAgICBwYWNrYWdlTWFuYWdlcixcbiAgICAgIHJvb3RcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBwYWNrYWdlTWFuYWdlcjtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIGNvbW1hbmQgcGFydHMgdGhhdCBydW4gYSBwYWNrYWdlIHNjcmlwdCB0aHJvdWdoIHRoZSBtYW5hZ2VyIHRoYXQgb3ducyB0aGUgdHJlZS5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgdG8gcmVzb2x2ZSBmcm9tLlxuICogQHJldHVybnMgVGhlIGNvbW1hbmQgcGFydHMsIGUuZy4gYFsnYnVuJywgJ3J1biddYC4gVGhlIHNjcmlwdCBuYW1lIGlzIGFwcGVuZGVkIGJ5IHRoZSBjYWxsZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWNrYWdlTWFuYWdlclJ1bkNvbW1hbmQoY3dkPzogc3RyaW5nKTogc3RyaW5nW10ge1xuICByZXR1cm4gW2dldFBhY2thZ2VNYW5hZ2VyKGN3ZCksICdydW4nXTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIGNvbW1hbmQgcGFydHMgdGhhdCBydW4gYSBsb2NhbGx5LWluc3RhbGxlZCB0b29sLCB3aXRoIHRoZSB0b29sIGl0c2VsZiBhbHJlYWR5IGluY2x1ZGVkLlxuICpcbiAqIFByZWZlcnMgdGhlIHNoaW0gaW4gdGhlIG5lYXJlc3QgYG5vZGVfbW9kdWxlcy8uYmluYCwgd2Fsa2luZyB1cCB0aHJvdWdoIGFuY2VzdG9yIGZvbGRlcnMgc28gYSBob2lzdGVkXG4gKiB3b3Jrc3BhY2UgaW5zdGFsbCBpcyBzdGlsbCBmb3VuZC4gRmFsbHMgYmFjayB0byB0aGUgb3duaW5nIG1hbmFnZXIncyBleGVjIGZvcm0gd2hlbiBubyBzaGltIHJlc29sdmVzIOKAlFxuICogd2hpY2ggaXMgYm90aCB0aGUgcHJldmlvdXMgYmVoYXZpb3IgYW5kIHRoZSBvbmx5IHRoaW5nIHRoYXQgd29ya3MgdW5kZXIgeWFybidzIFBsdWcnbidQbGF5LCB3aGVyZVxuICogYG5vZGVfbW9kdWxlcy8uYmluYCBkb2VzIG5vdCBleGlzdCBhdCBhbGwuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgcmVzb2x1dGlvbi5cbiAqIEByZXR1cm5zIFRoZSBjb21tYW5kIHBhcnRzLCBlLmcuIGBbJy9wcm9qZWN0L25vZGVfbW9kdWxlcy8uYmluL3RzYyddYCBvciBgWydidW4nLCAneCcsICd0c2MnXWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlVG9vbENvbW1hbmQocGFyYW1zOiBSZXNvbHZlVG9vbENvbW1hbmRQYXJhbXMpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHsgY3dkLCB0b29sIH0gPSBwYXJhbXM7XG4gIGNvbnN0IHNoaW1QYXRoID0gZmluZEJpblNoaW0oeyBjd2QsIHRvb2wgfSk7XG5cbiAgcmV0dXJuIHNoaW1QYXRoID09PSBudWxsID8gWy4uLmdldFBhY2thZ2VNYW5hZ2VyRXhlY0NvbW1hbmQoY3dkKSwgdG9vbF0gOiBbc2hpbVBhdGhdO1xufVxuXG4vKipcbiAqIE1hdGNoZXMgdGhlIGxlYWRpbmcgYDxuYW1lPkBgIHRva2VuIG9mIGEgYHBhY2thZ2UuanNvbmAgYHBhY2thZ2VNYW5hZ2VyYCB2YWx1ZS5cbiAqXG4gKiBUaGUgYEBgIGlzIHJlcXVpcmVkLCBiZWNhdXNlIGNvcmVwYWNrJ3MgZm9ybWF0IGlzIGA8bmFtZT5APHZlcnNpb24+YCDigJQgYSBiYXJlIG5hbWUgaXMgYSBtYWxmb3JtZWRcbiAqIGRlY2xhcmF0aW9uIHJhdGhlciB0aGFuIGEgc2hvcnRoYW5kLCBhbmQgaXMgaWdub3JlZCBpbnN0ZWFkIG9mIGd1ZXNzZWQgYXQuXG4gKi9cbmNvbnN0IERFQ0xBUkFUSU9OX05BTUVfUkVHX0VYUCA9IC9eKD88bmFtZT5bXkBcXHNdKylALztcblxuLyoqXG4gKiBUaGUgbG9ja2ZpbGVzIHRoYXQgaWRlbnRpZnkgYSBwYWNrYWdlIG1hbmFnZXIsIGluIHRoZSBvcmRlciB0aGV5IGRlY2lkZSBhIHRpZSBubyBvdGhlciBzaWduYWwgc2V0dGxlcy5cbiAqXG4gKiBCb3RoIGJ1biBsb2NrZmlsZSBmb3JtYXRzIG1hcCB0byB0aGUgc2FtZSBtYW5hZ2VyLCBzbyBhIHJlcG8gaG9sZGluZyBib3RoIGlzIG9uZSBjbGFpbWFudCwgbm90IHR3by5cbiAqL1xuY29uc3QgTE9DS0ZJTEVTOiBMb2NrZmlsZUNsYWltW10gPSBbXG4gIHsgZmlsZU5hbWU6IFJlcG9QYXRocy5CdW5Mb2NrLCBwYWNrYWdlTWFuYWdlcjogUGFja2FnZU1hbmFnZXIuQnVuIH0sXG4gIHsgZmlsZU5hbWU6IFJlcG9QYXRocy5CdW5Mb2NrYiwgcGFja2FnZU1hbmFnZXI6IFBhY2thZ2VNYW5hZ2VyLkJ1biB9LFxuICB7IGZpbGVOYW1lOiBSZXBvUGF0aHMuUG5wbUxvY2tZYW1sLCBwYWNrYWdlTWFuYWdlcjogUGFja2FnZU1hbmFnZXIuUG5wbSB9LFxuICB7IGZpbGVOYW1lOiBSZXBvUGF0aHMuWWFybkxvY2ssIHBhY2thZ2VNYW5hZ2VyOiBQYWNrYWdlTWFuYWdlci5ZYXJuIH0sXG4gIHsgZmlsZU5hbWU6IFJlcG9QYXRocy5QYWNrYWdlTG9ja0pzb24sIHBhY2thZ2VNYW5hZ2VyOiBQYWNrYWdlTWFuYWdlci5OcG0gfVxuXTtcblxuLyoqXG4gKiBNYXRjaGVzIHRoZSBsZWFkaW5nIGA8bmFtZT4vYCB0b2tlbiBvZiBhbiBgbnBtX2NvbmZpZ191c2VyX2FnZW50YCB2YWx1ZS5cbiAqL1xuY29uc3QgVVNFUl9BR0VOVF9OQU1FX1JFR19FWFAgPSAvXig/PG5hbWU+W14vXFxzXSspXFwvLztcblxuLyoqXG4gKiBUaGUgZGlzYWdyZWVtZW50cyBhbHJlYWR5IHJlcG9ydGVkLCBzbyBhIGJ1aWxkIHRoYXQgcmVzb2x2ZXMgdGhlIG1hbmFnZXIgb25jZSBwZXIgc2NyaXB0IGhvcCBhbmQgb25jZVxuICogcGVyIHRvb2wgaW52b2NhdGlvbiBzdGlsbCBzYXlzIGl0IG9ubHkgb25jZS5cbiAqL1xuY29uc3QgcmVwb3J0ZWREaXNhZ3JlZW1lbnRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGZpbmRCaW5TaGltfS5cbiAqL1xuaW50ZXJmYWNlIEZpbmRCaW5TaGltUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHRvIHJlc29sdmUgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IGN3ZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGxvY2FsbHktaW5zdGFsbGVkIHRvb2wuXG4gICAqL1xuICByZWFkb25seSB0b29sOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBsb2NrZmlsZSBhbmQgdGhlIHBhY2thZ2UgbWFuYWdlciB3aG9zZSBwcmVzZW5jZSBpdCBwcm92ZXMuXG4gKi9cbmludGVyZmFjZSBMb2NrZmlsZUNsYWltIHtcbiAgLyoqXG4gICAqIFRoZSBsb2NrZmlsZSBuYW1lLCBhcyBpdCBhcHBlYXJzIGF0IHRoZSBwcm9qZWN0IHJvb3QuXG4gICAqL1xuICByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFja2FnZSBtYW5hZ2VyIHRoYXQgd3JpdGVzIHRoaXMgbG9ja2ZpbGUuXG4gICAqL1xuICByZWFkb25seSBwYWNrYWdlTWFuYWdlcjogUGFja2FnZU1hbmFnZXI7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHJlc29sdmVQYWNrYWdlTWFuYWdlcn0uXG4gKi9cbmludGVyZmFjZSBSZXNvbHZlUGFja2FnZU1hbmFnZXJQYXJhbXMge1xuICAvKipcbiAgICogRXZlcnkgcGFja2FnZSBtYW5hZ2VyIGNsYWltaW5nIHRoZSB0cmVlIOKAlCB0aGUgbG9ja2ZpbGUgb3duZXJzIGluIHtAbGluayBMT0NLRklMRVN9IG9yZGVyLCBwbHVzIHRoZVxuICAgKiBkZWNsYXJlZCBvbmUuIE9ubHkgY29uc3VsdGVkIHdoZW4gbm90aGluZyBpcyBkZWNsYXJlZCwgaW4gd2hpY2ggY2FzZSBpdCBob2xkcyBleGFjdGx5IHRoZSBsb2NrZmlsZVxuICAgKiBvd25lcnMuXG4gICAqL1xuICByZWFkb25seSBjbGFpbWFudHM6IFJlYWRvbmx5U2V0PFBhY2thZ2VNYW5hZ2VyPjtcblxuICAvKipcbiAgICogVGhlIHBhY2thZ2UgbWFuYWdlciBkZWNsYXJlZCBpbiBgcGFja2FnZS5qc29uYCwgb3IgYG51bGxgIHdoZW4gbm9uZSBpcy5cbiAgICovXG4gIHJlYWRvbmx5IGRlY2xhcmVkUGFja2FnZU1hbmFnZXI6IG51bGwgfCBQYWNrYWdlTWFuYWdlcjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgd2FybkFib3V0U2V2ZXJhbENsYWltYW50c30uXG4gKi9cbmludGVyZmFjZSBXYXJuQWJvdXRTZXZlcmFsQ2xhaW1hbnRzUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBwYWNrYWdlIG1hbmFnZXIgZGVjbGFyZWQgaW4gYHBhY2thZ2UuanNvbmAsIG9yIGBudWxsYCB3aGVuIG5vbmUgaXMuXG4gICAqL1xuICByZWFkb25seSBkZWNsYXJlZFBhY2thZ2VNYW5hZ2VyOiBudWxsIHwgUGFja2FnZU1hbmFnZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NrZmlsZXMgYWN0dWFsbHkgZm91bmQgYXQgdGhlIHByb2plY3Qgcm9vdC5cbiAgICovXG4gIHJlYWRvbmx5IGxvY2tmaWxlczogcmVhZG9ubHkgTG9ja2ZpbGVDbGFpbVtdO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFja2FnZSBtYW5hZ2VyIHRoYXQgd29uLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZU1hbmFnZXI6IFBhY2thZ2VNYW5hZ2VyO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJvamVjdCByb290IHRoZSBsb2NrZmlsZXMgd2VyZSBmb3VuZCBpbi5cbiAgICovXG4gIHJlYWRvbmx5IHJvb3Q6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZWFkcyB0aGUgcGFja2FnZSBtYW5hZ2VyIG91dCBvZiB0aGUgYHBhY2thZ2VNYW5hZ2VyYCBmaWVsZCBvZiB0aGUgcHJvamVjdCdzIGBwYWNrYWdlLmpzb25gLCB3aGljaCBpc1xuICogY29yZXBhY2sncyBgPG5hbWU+QDx2ZXJzaW9uPmAgZGVjbGFyYXRpb24uXG4gKlxuICogQHBhcmFtIHJvb3QgLSBUaGUgcHJvamVjdCByb290IHRvIHJlYWQgYHBhY2thZ2UuanNvbmAgZnJvbS5cbiAqIEByZXR1cm5zIFRoZSBkZWNsYXJlZCBwYWNrYWdlIG1hbmFnZXIsIG9yIGBudWxsYCB3aGVuIHRoZXJlIGlzIG5vIGBwYWNrYWdlLmpzb25gLCBpdCBjYW5ub3QgYmUgcGFyc2VkLFxuICogdGhlIGZpZWxkIGlzIGFic2VudCBvciBtYWxmb3JtZWQsIG9yIGl0IG5hbWVzIGEgbWFuYWdlciB3ZSBkbyBub3QgaGFuZGxlLlxuICovXG5mdW5jdGlvbiBkZXRlY3RQYWNrYWdlTWFuYWdlckZyb21QYWNrYWdlSnNvbihyb290OiBzdHJpbmcpOiBudWxsIHwgUGFja2FnZU1hbmFnZXIge1xuICBjb25zdCBwYWNrYWdlSnNvblBhdGggPSBqb2luKHJvb3QsIFJlcG9QYXRocy5QYWNrYWdlSnNvbik7XG5cbiAgaWYgKCFleGlzdHNTeW5jKHBhY2thZ2VKc29uUGF0aCkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGxldCBwYWNrYWdlSnNvbjogUGFja2FnZUpzb247XG5cbiAgdHJ5IHtcbiAgICBwYWNrYWdlSnNvbiA9IHJlYWRKc29uU3luYzxQYWNrYWdlSnNvbj4ocGFja2FnZUpzb25QYXRoKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBkZWNsYXJhdGlvbiA9IHBhY2thZ2VKc29uLnBhY2thZ2VNYW5hZ2VyO1xuXG4gIGlmICghZGVjbGFyYXRpb24pIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IG1hdGNoID0gREVDTEFSQVRJT05fTkFNRV9SRUdfRVhQLmV4ZWMoZGVjbGFyYXRpb24pO1xuXG4gIHJldHVybiBtYXRjaCA/IHBhcnNlUGFja2FnZU1hbmFnZXJOYW1lKGdldE1hbmRhdG9yeU5hbWVkR3JvdXAobWF0Y2gsICduYW1lJykpIDogbnVsbDtcbn1cblxuLyoqXG4gKiBSZWFkcyB0aGUgcGFja2FnZSBtYW5hZ2VyIG91dCBvZiBgbnBtX2NvbmZpZ191c2VyX2FnZW50YCwgd2hpY2ggZXZlcnkgbWFuYWdlciBzZXRzIGZvciB0aGUgcHJvY2Vzc2VzIGl0XG4gKiBsYXVuY2hlcy5cbiAqXG4gKiBAcmV0dXJucyBUaGUgZGV0ZWN0ZWQgcGFja2FnZSBtYW5hZ2VyLCBvciBgbnVsbGAgd2hlbiB0aGUgdmFyaWFibGUgaXMgYWJzZW50LCBtYWxmb3JtZWQsIG9yIG5hbWVzIGFcbiAqIHJ1bnRpbWUgd2UgZG8gbm90IGhhbmRsZS5cbiAqL1xuZnVuY3Rpb24gZGV0ZWN0UGFja2FnZU1hbmFnZXJGcm9tVXNlckFnZW50KCk6IG51bGwgfCBQYWNrYWdlTWFuYWdlciB7XG4gIGNvbnN0IHVzZXJBZ2VudCA9IHByb2Nlc3MuZW52WyducG1fY29uZmlnX3VzZXJfYWdlbnQnXTtcblxuICBpZiAoIXVzZXJBZ2VudCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgbWF0Y2ggPSBVU0VSX0FHRU5UX05BTUVfUkVHX0VYUC5leGVjKHVzZXJBZ2VudCk7XG5cbiAgcmV0dXJuIG1hdGNoID8gcGFyc2VQYWNrYWdlTWFuYWdlck5hbWUoZ2V0TWFuZGF0b3J5TmFtZWRHcm91cChtYXRjaCwgJ25hbWUnKSkgOiBudWxsO1xufVxuXG4vKipcbiAqIEZpbmRzIHRoZSBgbm9kZV9tb2R1bGVzLy5iaW5gIHNoaW0gZm9yIGEgdG9vbCwgd2Fsa2luZyB1cCBmcm9tIHRoZSBwcm9qZWN0IHJvb3QgdGhyb3VnaCBhbmNlc3RvciBmb2xkZXJzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGxvb2t1cC5cbiAqIEByZXR1cm5zIFRoZSBhYnNvbHV0ZSBwYXRoIG9mIHRoZSBzaGltLCBvciBgbnVsbGAgd2hlbiBub25lIGV4aXN0cy5cbiAqL1xuZnVuY3Rpb24gZmluZEJpblNoaW0ocGFyYW1zOiBGaW5kQmluU2hpbVBhcmFtcyk6IG51bGwgfCBzdHJpbmcge1xuICBjb25zdCB7IGN3ZCwgdG9vbCB9ID0gcGFyYW1zO1xuICBjb25zdCBjYW5kaWRhdGVzID0gZ2V0U2hpbUNhbmRpZGF0ZXModG9vbCk7XG4gIGxldCBjdXJyZW50Rm9sZGVyID0gZ2V0U3RhcnRGb2xkZXIoY3dkKTtcblxuICB3aGlsZSAoXG4gICAgY3VycmVudEZvbGRlciAhPT0gUmVwb1BhdGhzLkN1cnJlbnRGb2xkZXIgYXMgc3RyaW5nXG4gICAgJiYgY3VycmVudEZvbGRlciAhPT0gUmVwb1BhdGhzLlJvb3RGb2xkZXIgYXMgc3RyaW5nXG4gICkge1xuICAgIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICAgIGNvbnN0IHNoaW1QYXRoID0gam9pbihjdXJyZW50Rm9sZGVyLCBSZXBvUGF0aHMuTm9kZU1vZHVsZXMsIFJlcG9QYXRocy5CaW4sIGNhbmRpZGF0ZSk7XG4gICAgICBpZiAoZXhpc3RzU3luYyhzaGltUGF0aCkpIHtcbiAgICAgICAgcmV0dXJuIHNoaW1QYXRoO1xuICAgICAgfVxuICAgIH1cblxuICAgIGN1cnJlbnRGb2xkZXIgPSBkaXJuYW1lKGN1cnJlbnRGb2xkZXIpO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBjb21tYW5kIHBhcnRzIHRoYXQgcnVuIGEgb25lLW9mZiB0b29sIHRocm91Z2ggdGhlIG1hbmFnZXIgdGhhdCBvd25zIHRoZSB0cmVlLlxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB0byByZXNvbHZlIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgY29tbWFuZCBwYXJ0cywgZS5nLiBgWydidW4nLCAneCddYC4gVGhlIHRvb2wgbmFtZSBpcyBhcHBlbmRlZCBieSB0aGUgY2FsbGVyLlxuICovXG5mdW5jdGlvbiBnZXRQYWNrYWdlTWFuYWdlckV4ZWNDb21tYW5kKGN3ZD86IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgY29uc3QgcGFja2FnZU1hbmFnZXIgPSBnZXRQYWNrYWdlTWFuYWdlcihjd2QpO1xuXG4gIHN3aXRjaCAocGFja2FnZU1hbmFnZXIpIHtcbiAgICBjYXNlIFBhY2thZ2VNYW5hZ2VyLkJ1bjoge1xuICAgICAgcmV0dXJuIFsnYnVuJywgJ3gnXTtcbiAgICB9XG4gICAgY2FzZSBQYWNrYWdlTWFuYWdlci5OcG06IHtcbiAgICAgIHJldHVybiBbJ25weCddO1xuICAgIH1cbiAgICBjYXNlIFBhY2thZ2VNYW5hZ2VyLlBucG06IHtcbiAgICAgIHJldHVybiBbJ3BucG0nLCAnZXhlYyddO1xuICAgIH1cbiAgICBjYXNlIFBhY2thZ2VNYW5hZ2VyLllhcm46IHtcbiAgICAgIHJldHVybiBbJ3lhcm4nLCAnZXhlYyddO1xuICAgIH1cbiAgICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gRXhoYXVzdGl2ZSBzd2l0Y2ggZ3VhcmQ7IGRlZmF1bHQgYnJhbmNoIGlzIHVucmVhY2hhYmxlLiAqL1xuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHJldHVybiBhc3NlcnROZXZlcihwYWNrYWdlTWFuYWdlcik7XG4gICAgfVxuICAgICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgfVxufVxuXG4vKipcbiAqIExpc3RzIHRoZSBzaGltIGZpbGUgbmFtZXMgdG8gdHJ5IGZvciBhIHRvb2wsIG1vc3Qgc3BlY2lmaWMgZmlyc3QuXG4gKlxuICogT24gV2luZG93cyBvbmx5IHRoZSBleGVjdXRhYmxlIGZvcm1zIGFyZSB2aWFibGU6IG5wbSBhbmQgcG5wbSBhbHNvIHdyaXRlIGEgc2hpbSB3aXRoIG5vIGV4dGVuc2lvbiwgYnV0XG4gKiB0aGF0IG9uZSBpcyBhIGBzaGAgc2NyaXB0IHRoYXQgYGNtZC5leGVgIGNhbm5vdCBydW4sIHNvIGl0IG11c3QgbmV2ZXIgYmUgY2hvc2VuIHRoZXJlLlxuICpcbiAqIEBwYXJhbSB0b29sIC0gVGhlIG5hbWUgb2YgdGhlIGxvY2FsbHktaW5zdGFsbGVkIHRvb2wuXG4gKiBAcmV0dXJucyBUaGUgY2FuZGlkYXRlIGZpbGUgbmFtZXMsIGluIHRoZSBvcmRlciB0aGV5IHNob3VsZCBiZSB0cmllZC5cbiAqL1xuZnVuY3Rpb24gZ2V0U2hpbUNhbmRpZGF0ZXModG9vbDogc3RyaW5nKTogc3RyaW5nW10ge1xuICByZXR1cm4gcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJ1xuICAgID8gW1xuICAgICAgYCR7dG9vbH0ke1JlcG9QYXRocy5Db21tYW5kRXh0ZW5zaW9ufWAsXG4gICAgICBgJHt0b29sfSR7UmVwb1BhdGhzLkV4ZUV4dGVuc2lvbn1gLFxuICAgICAgYCR7dG9vbH0ke1JlcG9QYXRocy5CYXRFeHRlbnNpb259YFxuICAgIF1cbiAgICA6IFt0b29sXTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgZm9sZGVyIHRvIHN0YXJ0IGEgbG9va3VwIGZyb20g4oCUIHRoZSBwcm9qZWN0IHJvb3Qgd2hlbiB0aGVyZSBpcyBvbmUsIHRoZSB3b3JraW5nIGZvbGRlclxuICogb3RoZXJ3aXNlLlxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB0byByZXNvbHZlIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgYWJzb2x1dGUgZm9sZGVyIHRvIHN0YXJ0IGZyb20uXG4gKi9cbmZ1bmN0aW9uIGdldFN0YXJ0Rm9sZGVyKGN3ZD86IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBnZXRSb290Rm9sZGVyKGN3ZCkgPz8gdG9Qb3NpeFBhdGgoY3dkID8/IHByb2Nlc3MuY3dkKCkpO1xufVxuXG4vKipcbiAqIE1hcHMgdGhlIGJhcmUgbmFtZSBhIGxvY2tmaWxlIGRlY2xhcmF0aW9uIG9yIGEgdXNlciBhZ2VudCByZXBvcnRzIG9udG8gdGhlIHBhY2thZ2UgbWFuYWdlciBpdCBuYW1lcy5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSByZXBvcnRlZCBuYW1lLlxuICogQHJldHVybnMgVGhlIG1hdGNoaW5nIHBhY2thZ2UgbWFuYWdlciwgb3IgYG51bGxgIGZvciBhIHJ1bnRpbWUgd2UgZG8gbm90IGhhbmRsZS5cbiAqL1xuZnVuY3Rpb24gcGFyc2VQYWNrYWdlTWFuYWdlck5hbWUobmFtZTogc3RyaW5nKTogbnVsbCB8IFBhY2thZ2VNYW5hZ2VyIHtcbiAgc3dpdGNoIChuYW1lKSB7XG4gICAgY2FzZSBQYWNrYWdlTWFuYWdlci5CdW4gYXMgc3RyaW5nOiB7XG4gICAgICByZXR1cm4gUGFja2FnZU1hbmFnZXIuQnVuO1xuICAgIH1cbiAgICBjYXNlIFBhY2thZ2VNYW5hZ2VyLk5wbSBhcyBzdHJpbmc6IHtcbiAgICAgIHJldHVybiBQYWNrYWdlTWFuYWdlci5OcG07XG4gICAgfVxuICAgIGNhc2UgUGFja2FnZU1hbmFnZXIuUG5wbSBhcyBzdHJpbmc6IHtcbiAgICAgIHJldHVybiBQYWNrYWdlTWFuYWdlci5QbnBtO1xuICAgIH1cbiAgICBjYXNlIFBhY2thZ2VNYW5hZ2VyLllhcm4gYXMgc3RyaW5nOiB7XG4gICAgICByZXR1cm4gUGFja2FnZU1hbmFnZXIuWWFybjtcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUGlja3MgdGhlIHdpbm5lciBvdXQgb2YgdGhlIGNvbGxlY3RlZCBzaWduYWxzLCBwZXIgdGhlIG9yZGVyIGRvY3VtZW50ZWQgb24ge0BsaW5rIGdldFBhY2thZ2VNYW5hZ2VyfS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSByZXNvbHV0aW9uLlxuICogQHJldHVybnMgVGhlIHBhY2thZ2UgbWFuYWdlciB0aGF0IG93bnMgdGhlIHRyZWUuXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVQYWNrYWdlTWFuYWdlcihwYXJhbXM6IFJlc29sdmVQYWNrYWdlTWFuYWdlclBhcmFtcyk6IFBhY2thZ2VNYW5hZ2VyIHtcbiAgY29uc3Qge1xuICAgIGNsYWltYW50cyxcbiAgICBkZWNsYXJlZFBhY2thZ2VNYW5hZ2VyXG4gIH0gPSBwYXJhbXM7XG5cbiAgaWYgKGRlY2xhcmVkUGFja2FnZU1hbmFnZXIgIT09IG51bGwpIHtcbiAgICByZXR1cm4gZGVjbGFyZWRQYWNrYWdlTWFuYWdlcjtcbiAgfVxuXG4gIGNvbnN0IGxvY2tmaWxlT3duZXJzID0gWy4uLmNsYWltYW50c107XG4gIGNvbnN0IFtmaXJzdExvY2tmaWxlT3duZXJdID0gbG9ja2ZpbGVPd25lcnM7XG5cbiAgaWYgKGZpcnN0TG9ja2ZpbGVPd25lciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGRldGVjdFBhY2thZ2VNYW5hZ2VyRnJvbVVzZXJBZ2VudCgpID8/IFBhY2thZ2VNYW5hZ2VyLk5wbTtcbiAgfVxuXG4gIGlmIChsb2NrZmlsZU93bmVycy5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4gZmlyc3RMb2NrZmlsZU93bmVyO1xuICB9XG5cbiAgY29uc3QgbGF1bmNoZWRCeSA9IGRldGVjdFBhY2thZ2VNYW5hZ2VyRnJvbVVzZXJBZ2VudCgpO1xuXG4gIHJldHVybiBsYXVuY2hlZEJ5ICE9PSBudWxsICYmIGNsYWltYW50cy5oYXMobGF1bmNoZWRCeSkgPyBsYXVuY2hlZEJ5IDogZmlyc3RMb2NrZmlsZU93bmVyO1xufVxuXG4vKipcbiAqIFJlcG9ydHMgdGhhdCBzZXZlcmFsIHBhY2thZ2UgbWFuYWdlcnMgY2xhaW0gdGhlIHNhbWUgdHJlZSwgbmFtaW5nIGVhY2ggbG9ja2ZpbGUgZm91bmQsIHdoYXRcbiAqIGBwYWNrYWdlLmpzb25gIGRlY2xhcmVzLCBhbmQgd2hpY2ggbWFuYWdlciB3b24uXG4gKlxuICogYGNvbnNvbGUud2FybmAgcmF0aGVyIHRoYW4gYSBkZWJ1ZyBjaGFubmVsOiB0aGlzIHJ1bnMgaW4gdGhlIGJ1aWxkJ3Mgb3duIHRlcm1pbmFsLCBhbmQgYSBtZXNzYWdlIG5vYm9keVxuICogc2VlcyB1bmxlc3MgdGhleSBhbHJlYWR5IHN1c3BlY3QgdGhlIHByb2JsZW0gbGVhdmVzIHRoZSBmYWlsdXJlIGV4YWN0bHkgYXMgc2lsZW50IGFzIGl0IHdhcy4gRWFjaFxuICogZGlzdGluY3QgbWVzc2FnZSBpcyBwcmludGVkIG9uY2UsIGJlY2F1c2UgdGhlIG1hbmFnZXIgaXMgcmVzb2x2ZWQgb25jZSBwZXIgcGFja2FnZS1zY3JpcHQgaG9wIGFuZCBvbmNlXG4gKiBwZXIgdG9vbCBpbnZvY2F0aW9uLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIHJlcG9ydC5cbiAqL1xuZnVuY3Rpb24gd2FybkFib3V0U2V2ZXJhbENsYWltYW50cyhwYXJhbXM6IFdhcm5BYm91dFNldmVyYWxDbGFpbWFudHNQYXJhbXMpOiB2b2lkIHtcbiAgY29uc3Qge1xuICAgIGRlY2xhcmVkUGFja2FnZU1hbmFnZXIsXG4gICAgbG9ja2ZpbGVzLFxuICAgIHBhY2thZ2VNYW5hZ2VyLFxuICAgIHJvb3RcbiAgfSA9IHBhcmFtcztcblxuICBjb25zdCBsb2NrZmlsZU5hbWVzID0gbG9ja2ZpbGVzLm1hcCgobG9ja2ZpbGUpID0+IGxvY2tmaWxlLmZpbGVOYW1lKS5qb2luKCcsICcpO1xuICBjb25zdCBhZHZpY2UgPSBkZWNsYXJlZFBhY2thZ2VNYW5hZ2VyID09PSBudWxsXG4gICAgPyAnRGVsZXRlIHRoZSBzdGFsZSBsb2NrZmlsZSwgb3IgZGVjbGFyZSBcInBhY2thZ2VNYW5hZ2VyXCIgaW4gcGFja2FnZS5qc29uLCB0byBzZXR0bGUgaXQuJ1xuICAgIDogJ0RlbGV0ZSB0aGUgc3RhbGUgbG9ja2ZpbGUgdG8gc2V0dGxlIGl0Lic7XG4gIGNvbnN0IG1lc3NhZ2UgPSBbXG4gICAgYHR5cGVzY3JpcHQtZGV2LXRvb2xraXQ6IG1vcmUgdGhhbiBvbmUgcGFja2FnZSBtYW5hZ2VyIGNsYWltcyAke3Jvb3R9LmAsXG4gICAgYExvY2tmaWxlczogJHtsb2NrZmlsZU5hbWVzfS5gLFxuICAgIGBwYWNrYWdlLmpzb24gXCJwYWNrYWdlTWFuYWdlclwiOiAke2RlY2xhcmVkUGFja2FnZU1hbmFnZXIgPz8gJ25vdCBzZXQnfS5gLFxuICAgIGBVc2luZyAke3BhY2thZ2VNYW5hZ2VyfS5gLFxuICAgIGFkdmljZVxuICBdLmpvaW4oJyAnKTtcblxuICBpZiAocmVwb3J0ZWREaXNhZ3JlZW1lbnRzLmhhcyhtZXNzYWdlKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHJlcG9ydGVkRGlzYWdyZWVtZW50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
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/api-doc-constants.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/api-doc-constants.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/api-doc-constants.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/api-doc-jsdoc.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/api-doc-jsdoc.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/api-doc-jsdoc.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/api-doc-link-rendering.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/api-doc-link-rendering.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/api-doc-link-rendering.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/api-doc-package-sites.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/api-doc-package-sites.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/api-doc-package-sites.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/api-doc-page-generation.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/api-doc-page-generation.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/api-doc-page-generation.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/api-doc-route-segments.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/api-doc-route-segments.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/api-doc-route-segments.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/api-doc-settings.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/api-doc-settings.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/api-doc-settings.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/api-doc-source-processing.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/api-doc-source-processing.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/api-doc-source-processing.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/api-doc-text-utils.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/api-doc-text-utils.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/api-doc-text-utils.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/api-doc-type-merging.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/api-doc-type-merging.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/api-doc-type-merging.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/api-doc-types.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/api-doc-types.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/api-doc-types.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/api-docs.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/api-docs.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/api-docs.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/astro-config.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/astro-config.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/astro-config.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/docs-links.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/docs-links.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/docs-links.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/docs-site-assets.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/docs-site-assets.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/docs-site-assets.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/docs-site-commands.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/docs-site-commands.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/docs-site-commands.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/docs-site-config.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/docs-site-config.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/docs-site-config.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/index.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/index.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/index.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/link-check.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/link-check.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/link-check.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/og-image.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/og-image.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/og-image.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/og-image-page.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/og-image-page.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/og-image-page.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/og-images.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/og-images.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/og-images.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../dist/lib/cjs/docs-site/index.cjs",
3
+ "module": "../dist/lib/esm/docs-site/index.mjs",
4
+ "type": "module",
5
+ "types": "../dist/lib/cjs/docs-site/index.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/route-data.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/route-data.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/route-data.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/satteri-github-alerts.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/satteri-github-alerts.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/satteri-github-alerts.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/satteri-relative-links.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/satteri-relative-links.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/satteri-relative-links.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/docs-site/unrendered-alerts.cjs",
3
+ "module": "../../dist/lib/esm/docs-site/unrendered-alerts.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/docs-site/unrendered-alerts.d.cts"
6
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mnaoumov/typescript-dev-toolkit",
3
- "version": "1.3.0",
3
+ "version": "2.0.0",
4
4
  "description": "Generic TypeScript project tooling: build, lint, format, spellcheck, test, gate and release scripts.",
5
5
  "keywords": [
6
6
  "typescript",
@@ -8,7 +8,7 @@
8
8
  "eslint",
9
9
  "esbuild"
10
10
  ],
11
- "homepage": "https://github.com/mnaoumov/typescript-dev-toolkit#readme",
11
+ "homepage": "https://mnaoumov.dev/typescript-dev-toolkit/",
12
12
  "bugs": {
13
13
  "url": "https://github.com/mnaoumov/typescript-dev-toolkit/issues"
14
14
  },
@@ -80,6 +80,26 @@
80
80
  "default": "./dist/lib/cjs/bundlers/esbuild-impl/*.cjs"
81
81
  }
82
82
  },
83
+ "./docs-site": {
84
+ "import": {
85
+ "types": "./dist/lib/esm/docs-site/index.d.mts",
86
+ "default": "./dist/lib/esm/docs-site/index.mjs"
87
+ },
88
+ "require": {
89
+ "types": "./dist/lib/cjs/docs-site/index.d.cts",
90
+ "default": "./dist/lib/cjs/docs-site/index.cjs"
91
+ }
92
+ },
93
+ "./docs-site/*": {
94
+ "import": {
95
+ "types": "./dist/lib/esm/docs-site/*.d.mts",
96
+ "default": "./dist/lib/esm/docs-site/*.mjs"
97
+ },
98
+ "require": {
99
+ "types": "./dist/lib/cjs/docs-site/*.d.cts",
100
+ "default": "./dist/lib/cjs/docs-site/*.cjs"
101
+ }
102
+ },
83
103
  "./formatters": {
84
104
  "import": {
85
105
  "types": "./dist/lib/esm/formatters/index.d.mts",
@@ -219,6 +239,7 @@
219
239
  },
220
240
  "files": [
221
241
  "**/package.json",
242
+ "assets/",
222
243
  "dist/",
223
244
  "!dist/*.tgz",
224
245
  "README.md",
@@ -235,6 +256,9 @@
235
256
  "build:types": "jiti scripts/build-types.ts",
236
257
  "build:validate-declarations": "jiti scripts/build-validate-declarations.ts",
237
258
  "commit": "jiti scripts/commit.ts",
259
+ "docs:build": "jiti scripts/docs-build.ts",
260
+ "docs:dev": "jiti scripts/docs-dev.ts",
261
+ "docs:preview": "jiti scripts/docs-preview.ts",
238
262
  "find-overexposed": "jiti scripts/find-overexposed.ts",
239
263
  "find-overexposed:fix": "jiti scripts/find-overexposed-fix.ts",
240
264
  "format": "jiti scripts/format.ts",
@@ -287,11 +311,16 @@
287
311
  "typescript-eslint": "^8.71.2"
288
312
  },
289
313
  "devDependencies": {
314
+ "@astrojs/markdown-satteri": "^0.4.4",
315
+ "@astrojs/starlight": "^0.42.6",
290
316
  "@commitlint/cli": "^21.2.2",
291
317
  "@commitlint/config-conventional": "^21.2.2",
292
318
  "@mnaoumov/typescript-test-toolkit": "^1.0.0",
319
+ "@resvg/resvg-js": "^2.6.2",
293
320
  "@total-typescript/ts-reset": "^0.6.1",
321
+ "@types/mdast": "^4.0.4",
294
322
  "@vitest/coverage-v8": "^5.0.1",
323
+ "astro": "^7.4.0",
295
324
  "better-typescript-lib": "^2.12.0",
296
325
  "czg": "^1.14.0",
297
326
  "dedent": "^1.7.2",
@@ -299,15 +328,56 @@
299
328
  "eslint-plugin-tsdoc": "^0.5.3",
300
329
  "husky": "^9.1.7",
301
330
  "nano-staged": "^1.0.2",
331
+ "satori": "^0.33.5",
332
+ "satteri": "^0.10.5",
333
+ "ts-morph": "^28.0.0",
302
334
  "tslib": "^2.8.1",
303
- "vitest": "^5.0.1"
335
+ "typedoc-plugin-mdn-links": "^5.1.1",
336
+ "vitest": "^5.0.1",
337
+ "yaml": "^2.9.1"
304
338
  },
305
339
  "peerDependencies": {
306
- "vitest": "^5.0.1"
340
+ "@astrojs/markdown-satteri": "^0.4.4",
341
+ "@astrojs/starlight": "^0.42.6",
342
+ "@resvg/resvg-js": "^2.6.2",
343
+ "astro": "^7.4.0",
344
+ "satori": "^0.33.5",
345
+ "satteri": "^0.10.5",
346
+ "ts-morph": "^28.0.0",
347
+ "typedoc-plugin-mdn-links": "^5.1.1",
348
+ "vitest": "^5.0.1",
349
+ "yaml": "^2.9.1"
307
350
  },
308
351
  "peerDependenciesMeta": {
352
+ "@astrojs/markdown-satteri": {
353
+ "optional": true
354
+ },
355
+ "@astrojs/starlight": {
356
+ "optional": true
357
+ },
358
+ "@resvg/resvg-js": {
359
+ "optional": true
360
+ },
361
+ "astro": {
362
+ "optional": true
363
+ },
364
+ "satori": {
365
+ "optional": true
366
+ },
367
+ "satteri": {
368
+ "optional": true
369
+ },
370
+ "ts-morph": {
371
+ "optional": true
372
+ },
373
+ "typedoc-plugin-mdn-links": {
374
+ "optional": true
375
+ },
309
376
  "vitest": {
310
377
  "optional": true
378
+ },
379
+ "yaml": {
380
+ "optional": true
311
381
  }
312
382
  },
313
383
  "engines": {