obsidian-dev-utils 85.1.0 → 86.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 (273) hide show
  1. package/@types/obsidian-integration-testing/package.json +4 -0
  2. package/CHANGELOG.md +16 -0
  3. package/README.md +1 -0
  4. package/dist/dev/main.js +9138 -4743
  5. package/dist/lib/cjs/@types/obsidian-integration-testing.d.cts +18 -0
  6. package/dist/lib/cjs/__merged.cjs +1291 -0
  7. package/dist/lib/cjs/__merged.d.cts +165 -0
  8. package/dist/lib/cjs/abort-controller.cjs +3 -4
  9. package/dist/lib/cjs/async.cjs +13 -7
  10. package/dist/lib/cjs/async.d.cts +6 -0
  11. package/dist/lib/cjs/disposable.cjs +224 -3
  12. package/dist/lib/cjs/disposable.d.cts +222 -2
  13. package/dist/lib/cjs/error.cjs +41 -3
  14. package/dist/lib/cjs/error.d.cts +50 -1
  15. package/dist/lib/cjs/generated-during-build.cjs +2 -2
  16. package/dist/lib/cjs/index.cjs +4 -1
  17. package/dist/lib/cjs/index.d.cts +1 -0
  18. package/dist/lib/cjs/obsidian/attachment-path.cjs +3 -3
  19. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.cjs +27 -11
  20. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.d.cts +14 -9
  21. package/dist/lib/cjs/obsidian/command-handlers/index.cjs +4 -1
  22. package/dist/lib/cjs/obsidian/command-handlers/index.d.cts +1 -0
  23. package/dist/lib/cjs/obsidian/command-handlers/open-demo-vault-command-handler.cjs +195 -0
  24. package/dist/lib/cjs/obsidian/command-handlers/open-demo-vault-command-handler.d.cts +65 -0
  25. package/dist/lib/cjs/obsidian/community-plugins.cjs +156 -0
  26. package/dist/lib/cjs/obsidian/community-plugins.d.cts +22 -0
  27. package/dist/lib/cjs/obsidian/components/disposable-component.cjs +8 -8
  28. package/dist/lib/cjs/obsidian/components/disposable-component.d.cts +9 -3
  29. package/dist/lib/cjs/obsidian/components/monkey-around-component.cjs +17 -2
  30. package/dist/lib/cjs/obsidian/components/monkey-around-component.d.cts +17 -0
  31. package/dist/lib/cjs/obsidian/components/plugin-notice-component.cjs +161 -22
  32. package/dist/lib/cjs/obsidian/components/plugin-notice-component.d.cts +81 -8
  33. package/dist/lib/cjs/obsidian/css-class.cjs +4 -1
  34. package/dist/lib/cjs/obsidian/css-class.d.cts +13 -0
  35. package/dist/lib/cjs/obsidian/desktop-demo-vault-opener.cjs +239 -0
  36. package/dist/lib/cjs/obsidian/desktop-demo-vault-opener.d.cts +45 -0
  37. package/dist/lib/cjs/obsidian/desktop-trusted-input.cjs +215 -0
  38. package/dist/lib/cjs/obsidian/desktop-trusted-input.d.cts +135 -0
  39. package/dist/lib/cjs/obsidian/i18n/locales/en.cjs +3 -1
  40. package/dist/lib/cjs/obsidian/i18n/locales/en.d.cts +2 -0
  41. package/dist/lib/cjs/obsidian/i18n/locales/translations-map.d.cts +2 -0
  42. package/dist/lib/cjs/obsidian/index.cjs +10 -1
  43. package/dist/lib/cjs/obsidian/index.d.cts +3 -0
  44. package/dist/lib/cjs/obsidian/link.cjs +2 -2
  45. package/dist/lib/cjs/obsidian/modals/index.cjs +4 -1
  46. package/dist/lib/cjs/obsidian/modals/index.d.cts +1 -0
  47. package/dist/lib/cjs/obsidian/modals/minimizable-modal.cjs +15 -2
  48. package/dist/lib/cjs/obsidian/modals/minimizable-modal.d.cts +18 -3
  49. package/dist/lib/cjs/obsidian/modals/select-option.cjs +182 -0
  50. package/dist/lib/cjs/obsidian/modals/select-option.d.cts +65 -0
  51. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.cjs +4 -1
  52. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.d.cts +6 -0
  53. package/dist/lib/cjs/obsidian/plugin/plugin.cjs +50 -3
  54. package/dist/lib/cjs/obsidian/plugin/plugin.d.cts +17 -0
  55. package/dist/lib/cjs/obsidian/workspace.cjs +8 -1
  56. package/dist/lib/cjs/obsidian/workspace.d.cts +10 -0
  57. package/dist/lib/cjs/path.cjs +4 -4
  58. package/dist/lib/cjs/path.d.cts +1 -1
  59. package/dist/lib/cjs/script-utils/demo-vault.cjs +177 -0
  60. package/dist/lib/cjs/script-utils/demo-vault.d.cts +23 -0
  61. package/dist/lib/cjs/script-utils/exec.cjs +27 -5
  62. package/dist/lib/cjs/script-utils/exec.d.cts +20 -0
  63. package/dist/lib/cjs/script-utils/index.cjs +9 -3
  64. package/dist/lib/cjs/script-utils/index.d.cts +2 -0
  65. package/dist/lib/cjs/script-utils/linters/eslint-no-restricted-syntax.cjs +1 -5
  66. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +2 -1
  67. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.d.cts +2 -0
  68. package/dist/lib/cjs/script-utils/version.cjs +8 -1
  69. package/dist/lib/cjs/script-utils/version.d.cts +8 -0
  70. package/dist/lib/cjs/script-utils/warnings-as-errors.cjs +157 -0
  71. package/dist/lib/cjs/script-utils/warnings-as-errors.d.cts +27 -0
  72. package/dist/lib/cjs/setup.cjs +75 -4
  73. package/dist/lib/cjs/setup.d.cts +29 -7
  74. package/dist/lib/cjs/string.cjs +7 -4
  75. package/dist/lib/cjs/string.d.cts +11 -1
  76. package/dist/lib/esm/@types/obsidian-integration-testing.d.mts +18 -0
  77. package/dist/lib/esm/__merged.d.mts +165 -0
  78. package/dist/lib/esm/__merged.mjs +1134 -0
  79. package/dist/lib/esm/abort-controller.mjs +7 -5
  80. package/dist/lib/esm/async.d.mts +6 -0
  81. package/dist/lib/esm/async.mjs +13 -7
  82. package/dist/lib/esm/disposable.d.mts +222 -2
  83. package/dist/lib/esm/disposable.mjs +215 -2
  84. package/dist/lib/esm/error.d.mts +50 -1
  85. package/dist/lib/esm/error.mjs +41 -4
  86. package/dist/lib/esm/generated-during-build.mjs +2 -2
  87. package/dist/lib/esm/index.d.mts +1 -0
  88. package/dist/lib/esm/index.mjs +3 -1
  89. package/dist/lib/esm/obsidian/attachment-path.mjs +4 -4
  90. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.d.mts +14 -9
  91. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.mjs +31 -11
  92. package/dist/lib/esm/obsidian/command-handlers/index.d.mts +1 -0
  93. package/dist/lib/esm/obsidian/command-handlers/index.mjs +3 -1
  94. package/dist/lib/esm/obsidian/command-handlers/open-demo-vault-command-handler.d.mts +65 -0
  95. package/dist/lib/esm/obsidian/command-handlers/open-demo-vault-command-handler.mjs +77 -0
  96. package/dist/lib/esm/obsidian/community-plugins.d.mts +22 -0
  97. package/dist/lib/esm/obsidian/community-plugins.mjs +48 -0
  98. package/dist/lib/esm/obsidian/components/disposable-component.d.mts +9 -3
  99. package/dist/lib/esm/obsidian/components/disposable-component.mjs +8 -8
  100. package/dist/lib/esm/obsidian/components/monkey-around-component.d.mts +17 -0
  101. package/dist/lib/esm/obsidian/components/monkey-around-component.mjs +17 -2
  102. package/dist/lib/esm/obsidian/components/plugin-notice-component.d.mts +81 -8
  103. package/dist/lib/esm/obsidian/components/plugin-notice-component.mjs +163 -23
  104. package/dist/lib/esm/obsidian/css-class.d.mts +13 -0
  105. package/dist/lib/esm/obsidian/css-class.mjs +4 -1
  106. package/dist/lib/esm/obsidian/desktop-demo-vault-opener.d.mts +45 -0
  107. package/dist/lib/esm/obsidian/desktop-demo-vault-opener.mjs +121 -0
  108. package/dist/lib/esm/obsidian/desktop-trusted-input.d.mts +135 -0
  109. package/dist/lib/esm/obsidian/desktop-trusted-input.mjs +103 -0
  110. package/dist/lib/esm/obsidian/i18n/locales/en.d.mts +2 -0
  111. package/dist/lib/esm/obsidian/i18n/locales/en.mjs +3 -1
  112. package/dist/lib/esm/obsidian/i18n/locales/translations-map.d.mts +2 -0
  113. package/dist/lib/esm/obsidian/index.d.mts +3 -0
  114. package/dist/lib/esm/obsidian/index.mjs +7 -1
  115. package/dist/lib/esm/obsidian/link.mjs +3 -3
  116. package/dist/lib/esm/obsidian/modals/index.d.mts +1 -0
  117. package/dist/lib/esm/obsidian/modals/index.mjs +3 -1
  118. package/dist/lib/esm/obsidian/modals/minimizable-modal.d.mts +18 -3
  119. package/dist/lib/esm/obsidian/modals/minimizable-modal.mjs +17 -3
  120. package/dist/lib/esm/obsidian/modals/select-option.d.mts +65 -0
  121. package/dist/lib/esm/obsidian/modals/select-option.mjs +77 -0
  122. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.d.mts +6 -0
  123. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.mjs +4 -1
  124. package/dist/lib/esm/obsidian/plugin/plugin.d.mts +17 -0
  125. package/dist/lib/esm/obsidian/plugin/plugin.mjs +50 -3
  126. package/dist/lib/esm/obsidian/workspace.d.mts +10 -0
  127. package/dist/lib/esm/obsidian/workspace.mjs +7 -1
  128. package/dist/lib/esm/path.d.mts +1 -1
  129. package/dist/lib/esm/path.mjs +3 -3
  130. package/dist/lib/esm/script-utils/demo-vault.d.mts +23 -0
  131. package/dist/lib/esm/script-utils/demo-vault.mjs +63 -0
  132. package/dist/lib/esm/script-utils/exec.d.mts +20 -0
  133. package/dist/lib/esm/script-utils/exec.mjs +25 -5
  134. package/dist/lib/esm/script-utils/index.d.mts +2 -0
  135. package/dist/lib/esm/script-utils/index.mjs +6 -2
  136. package/dist/lib/esm/script-utils/linters/eslint-no-restricted-syntax.mjs +1 -5
  137. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.d.mts +2 -0
  138. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +2 -1
  139. package/dist/lib/esm/script-utils/version.d.mts +8 -0
  140. package/dist/lib/esm/script-utils/version.mjs +8 -1
  141. package/dist/lib/esm/script-utils/warnings-as-errors.d.mts +27 -0
  142. package/dist/lib/esm/script-utils/warnings-as-errors.mjs +38 -0
  143. package/dist/lib/esm/setup.d.mts +29 -7
  144. package/dist/lib/esm/setup.mjs +78 -4
  145. package/dist/lib/esm/string.d.mts +11 -1
  146. package/dist/lib/esm/string.mjs +5 -3
  147. package/dist/styles.css +33 -3
  148. package/obsidian/command-handlers/open-demo-vault-command-handler/package.json +6 -0
  149. package/obsidian/community-plugins/package.json +6 -0
  150. package/obsidian/desktop-demo-vault-opener/package.json +6 -0
  151. package/obsidian/desktop-trusted-input/package.json +6 -0
  152. package/obsidian/modals/select-option/package.json +6 -0
  153. package/package.json +6 -7
  154. package/script-utils/demo-vault/package.json +6 -0
  155. package/script-utils/warnings-as-errors/package.json +6 -0
  156. /package/obsidian/@types/{Dataview → dataview}/api/data-array/package.json +0 -0
  157. /package/obsidian/@types/{Dataview → dataview}/api/extensions/package.json +0 -0
  158. /package/obsidian/@types/{Dataview → dataview}/api/inline-api/package.json +0 -0
  159. /package/obsidian/@types/{Dataview → dataview}/api/plugin-api/package.json +0 -0
  160. /package/obsidian/@types/{Dataview → dataview}/api/result/package.json +0 -0
  161. /package/obsidian/@types/{Dataview → dataview}/data-import/common/package.json +0 -0
  162. /package/obsidian/@types/{Dataview → dataview}/data-import/csv/package.json +0 -0
  163. /package/obsidian/@types/{Dataview → dataview}/data-import/inline-field/package.json +0 -0
  164. /package/obsidian/@types/{Dataview → dataview}/data-import/markdown-file/package.json +0 -0
  165. /package/obsidian/@types/{Dataview → dataview}/data-import/persister/package.json +0 -0
  166. /package/obsidian/@types/{Dataview → dataview}/data-import/web-worker/import-entry/package.json +0 -0
  167. /package/obsidian/@types/{Dataview → dataview}/data-import/web-worker/import-impl/package.json +0 -0
  168. /package/obsidian/@types/{Dataview → dataview}/data-import/web-worker/import-manager/package.json +0 -0
  169. /package/obsidian/@types/{Dataview → dataview}/data-index/index/package.json +0 -0
  170. /package/obsidian/@types/{Dataview → dataview}/data-index/package.json +0 -0
  171. /package/obsidian/@types/{Dataview → dataview}/data-index/resolver/package.json +0 -0
  172. /package/obsidian/@types/{Dataview → dataview}/data-index/source/package.json +0 -0
  173. /package/obsidian/@types/{Dataview → dataview}/data-model/markdown/package.json +0 -0
  174. /package/obsidian/@types/{Dataview → dataview}/data-model/serialized/markdown/package.json +0 -0
  175. /package/obsidian/@types/{Dataview → dataview}/data-model/transferable/package.json +0 -0
  176. /package/obsidian/@types/{Dataview → dataview}/data-model/value/package.json +0 -0
  177. /package/obsidian/@types/{Dataview → dataview}/expression/binaryop/package.json +0 -0
  178. /package/obsidian/@types/{Dataview → dataview}/expression/context/package.json +0 -0
  179. /package/obsidian/@types/{Dataview → dataview}/expression/field/package.json +0 -0
  180. /package/obsidian/@types/{Dataview → dataview}/expression/functions/package.json +0 -0
  181. /package/obsidian/@types/{Dataview → dataview}/expression/parse/package.json +0 -0
  182. /package/obsidian/@types/{Dataview → dataview}/index/package.json +0 -0
  183. /package/obsidian/@types/{Dataview → dataview}/main/package.json +0 -0
  184. /package/obsidian/@types/{Dataview → dataview}/package.json +0 -0
  185. /package/obsidian/@types/{Dataview → dataview}/query/engine/package.json +0 -0
  186. /package/obsidian/@types/{Dataview → dataview}/query/parse/package.json +0 -0
  187. /package/obsidian/@types/{Dataview → dataview}/query/query/package.json +0 -0
  188. /package/obsidian/@types/{Dataview → dataview}/settings/package.json +0 -0
  189. /package/obsidian/@types/{Dataview → dataview}/typings/obsidian-ex/package.json +0 -0
  190. /package/obsidian/@types/{Dataview → dataview}/typings/workers/package.json +0 -0
  191. /package/obsidian/@types/{Dataview → dataview}/ui/export/markdown/package.json +0 -0
  192. /package/obsidian/@types/{Dataview → dataview}/ui/lp-render/package.json +0 -0
  193. /package/obsidian/@types/{Dataview → dataview}/ui/markdown/package.json +0 -0
  194. /package/obsidian/@types/{Dataview → dataview}/ui/refreshable-view/package.json +0 -0
  195. /package/obsidian/@types/{Dataview → dataview}/ui/render/package.json +0 -0
  196. /package/obsidian/@types/{Dataview → dataview}/ui/views/calendar-view/package.json +0 -0
  197. /package/obsidian/@types/{Dataview → dataview}/ui/views/inline-field-live-preview/package.json +0 -0
  198. /package/obsidian/@types/{Dataview → dataview}/ui/views/inline-view/package.json +0 -0
  199. /package/obsidian/@types/{Dataview → dataview}/ui/views/js-view/package.json +0 -0
  200. /package/obsidian/@types/{Dataview → dataview}/ui/views/list-view/package.json +0 -0
  201. /package/obsidian/@types/{Dataview → dataview}/ui/views/table-view/package.json +0 -0
  202. /package/obsidian/@types/{Dataview → dataview}/ui/views/task-view/package.json +0 -0
  203. /package/obsidian/@types/{Dataview → dataview}/util/hash/package.json +0 -0
  204. /package/obsidian/@types/{Dataview → dataview}/util/locale/package.json +0 -0
  205. /package/obsidian/@types/{Dataview → dataview}/util/media/package.json +0 -0
  206. /package/obsidian/@types/{Dataview → dataview}/util/normalize/package.json +0 -0
  207. /package/obsidian/{App → app}/package.json +0 -0
  208. /package/obsidian/{Backlink → backlink}/package.json +0 -0
  209. /package/obsidian/{Callout → callout}/package.json +0 -0
  210. /package/obsidian/{Components → components}/abort-signal-component/package.json +0 -0
  211. /package/obsidian/{Components → components}/all-windows-event-component/package.json +0 -0
  212. /package/obsidian/{Components → components}/async-error-handler-component/package.json +0 -0
  213. /package/obsidian/{Components → components}/async-events-component/package.json +0 -0
  214. /package/obsidian/{Components → components}/case-insensitive-file-index-component/package.json +0 -0
  215. /package/obsidian/{Components → components}/component-ex/package.json +0 -0
  216. /package/obsidian/{Components → components}/console-debug-component/package.json +0 -0
  217. /package/obsidian/{Components → components}/disposable-component/package.json +0 -0
  218. /package/obsidian/{Components → components}/embed-extensions-component/package.json +0 -0
  219. /package/obsidian/{Components → components}/generate-markdown-link-default-params-component/package.json +0 -0
  220. /package/obsidian/{Components → components}/index/package.json +0 -0
  221. /package/obsidian/{Components → components}/layout-ready-component/package.json +0 -0
  222. /package/obsidian/{Components → components}/menu-event-registrar-component/package.json +0 -0
  223. /package/obsidian/{Components → components}/monkey-around-component/package.json +0 -0
  224. /package/obsidian/{Components → components}/package.json +0 -0
  225. /package/obsidian/{Components → components}/plugin-context-component/package.json +0 -0
  226. /package/obsidian/{Components → components}/plugin-notice-component/package.json +0 -0
  227. /package/obsidian/{Components → components}/plugin-settings-component/package.json +0 -0
  228. /package/obsidian/{Components → components}/plugin-settings-tab-component/package.json +0 -0
  229. /package/obsidian/{Components → components}/registry-component/package.json +0 -0
  230. /package/obsidian/{Components → components}/rename-delete-handler-component/package.json +0 -0
  231. /package/obsidian/{Dataview → dataview}/package.json +0 -0
  232. /package/obsidian/{Editor → editor}/package.json +0 -0
  233. /package/obsidian/{Frontmatter → frontmatter}/package.json +0 -0
  234. /package/obsidian/{Link → link}/package.json +0 -0
  235. /package/obsidian/{Logger → logger}/package.json +0 -0
  236. /package/obsidian/{Loop → loop}/package.json +0 -0
  237. /package/obsidian/{Markdown → markdown}/package.json +0 -0
  238. /package/obsidian/{Modals/Alert → modals/alert}/package.json +0 -0
  239. /package/obsidian/{Modals/Confirm → modals/confirm}/package.json +0 -0
  240. /package/obsidian/{Modals → modals}/index/package.json +0 -0
  241. /package/obsidian/{Modals → modals}/minimizable-modal/package.json +0 -0
  242. /package/obsidian/{Modals → modals}/modal/package.json +0 -0
  243. /package/obsidian/{Modals → modals}/package.json +0 -0
  244. /package/obsidian/{Modals/Prompt → modals/prompt}/package.json +0 -0
  245. /package/obsidian/{Modals → modals}/select-item/package.json +0 -0
  246. /package/obsidian/{Modals → modals}/suggest-modal-command-builder/package.json +0 -0
  247. /package/obsidian/{Pdf → pdf}/package.json +0 -0
  248. /package/obsidian/{Plugin → plugin}/index/package.json +0 -0
  249. /package/obsidian/{Plugin → plugin}/obsidian-plugin-repo-paths/package.json +0 -0
  250. /package/obsidian/{Plugin → plugin}/package.json +0 -0
  251. /package/obsidian/{Plugin/Plugin → plugin/plugin}/package.json +0 -0
  252. /package/obsidian/{Plugin → plugin}/plugin-context/package.json +0 -0
  253. /package/obsidian/{Plugin → plugin}/plugin-event-source/package.json +0 -0
  254. /package/obsidian/{Plugin → plugin}/plugin-settings-tab/package.json +0 -0
  255. /package/obsidian/{Queue → queue}/package.json +0 -0
  256. /package/obsidian/{React → react}/app-context/package.json +0 -0
  257. /package/obsidian/{React → react}/index/package.json +0 -0
  258. /package/obsidian/{React → react}/package.json +0 -0
  259. /package/obsidian/{Reference → reference}/package.json +0 -0
  260. /package/obsidian/{Validation → validation}/package.json +0 -0
  261. /package/obsidian/{Vault → vault}/package.json +0 -0
  262. /package/obsidian/{Workspace → workspace}/package.json +0 -0
  263. /package/{Transformers → transformers}/date-transformer/package.json +0 -0
  264. /package/{Transformers → transformers}/duration-transformer/package.json +0 -0
  265. /package/{Transformers → transformers}/group-transformer/package.json +0 -0
  266. /package/{Transformers → transformers}/index/package.json +0 -0
  267. /package/{Transformers → transformers}/map-transformer/package.json +0 -0
  268. /package/{Transformers → transformers}/package.json +0 -0
  269. /package/{Transformers → transformers}/set-transformer/package.json +0 -0
  270. /package/{Transformers → transformers}/skip-private-property-transformer/package.json +0 -0
  271. /package/{Transformers/Transformer → transformers/transformer}/package.json +0 -0
  272. /package/{Transformers → transformers}/two-way-map-transformer/package.json +0 -0
  273. /package/{Transformers → transformers}/typed-transformer/package.json +0 -0
@@ -135,6 +135,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
135
135
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
136
136
  var exec_exports = {};
137
137
  __export(exec_exports, {
138
+ appendNodeOption: () => appendNodeOption,
139
+ buildChildEnv: () => buildChildEnv,
138
140
  exec: () => exec
139
141
  });
140
142
  module.exports = __toCommonJS(exec_exports);
@@ -145,6 +147,26 @@ var import_object_utils = require('../object-utils.cjs');
145
147
  var import_string = require('../string.cjs');
146
148
  var import_type_guards = require('../type-guards.cjs');
147
149
  var import_cli_utils = require('./cli-utils.cjs');
150
+ function appendNodeOption(existingNodeOptions, option) {
151
+ const trimmed = (existingNodeOptions ?? "").trim();
152
+ if (trimmed === "") {
153
+ return option;
154
+ }
155
+ if (trimmed.split(/\s+/).includes(option)) {
156
+ return trimmed;
157
+ }
158
+ return `${trimmed} ${option}`;
159
+ }
160
+ function buildChildEnv(baseEnv, allowedNodeEnvironmentFlags) {
161
+ const env = {
162
+ DEBUG_COLORS: "1",
163
+ ...baseEnv
164
+ };
165
+ if (allowedNodeEnvironmentFlags.has("--localstorage-file")) {
166
+ env["NODE_OPTIONS"] = appendNodeOption(baseEnv["NODE_OPTIONS"], LOCAL_STORAGE_NODE_OPTION);
167
+ }
168
+ return env;
169
+ }
148
170
  function exec(command, options = {}) {
149
171
  if (Array.isArray(command)) {
150
172
  const batchResult = handleBatchedCommand(command, options);
@@ -263,10 +285,8 @@ ${stderr}`));
263
285
  });
264
286
  });
265
287
  }
266
- const CHILD_ENV = {
267
- DEBUG_COLORS: "1",
268
- ...import_node_process.default.env
269
- };
288
+ const LOCAL_STORAGE_NODE_OPTION = "--localstorage-file=:memory:";
289
+ const CHILD_ENV = buildChildEnv(import_node_process.default.env, import_node_process.default.allowedNodeEnvironmentFlags);
270
290
  async function executeBatches(params) {
271
291
  const { baseCommand, batches, options } = params;
272
292
  const results = [];
@@ -364,6 +384,8 @@ function spawnViaShell(params) {
364
384
  }
365
385
  // Annotate the CommonJS export names for ESM import in node:
366
386
  0 && (module.exports = {
387
+ appendNodeOption,
388
+ buildChildEnv,
367
389
  exec
368
390
  });
369
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9leGVjLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGV4ZWN1dGluZyBjb21tYW5kcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IENoaWxkUHJvY2Vzc1dpdGhvdXROdWxsU3RyZWFtcyB9IGZyb20gJ25vZGU6Y2hpbGRfcHJvY2Vzcyc7XG5cbmltcG9ydCB7IHNwYXduIH0gZnJvbSAnbm9kZTpjaGlsZF9wcm9jZXNzJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5cbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnLi4vZGVidWcudHMnO1xuaW1wb3J0IHsgbm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vb2JqZWN0LXV0aWxzLnRzJztcbmltcG9ydCB7IHRyaW1FbmQgfSBmcm9tICcuLi9zdHJpbmcudHMnO1xuaW1wb3J0IHsgYXNzZXJ0Tm9uTnVsbGFibGUgfSBmcm9tICcuLi90eXBlLWd1YXJkcy50cyc7XG5pbXBvcnQge1xuICBjbWRFc2NhcGVDb21tYW5kTGluZSxcbiAgdG9Db21tYW5kTGluZVxufSBmcm9tICcuL2NsaS11dGlscy50cyc7XG5cbi8qKlxuICogQSBjb21tYW5kIHBhcnQ6IGVpdGhlciBhIHBsYWluIHN0cmluZyBvciBhbiB7QGxpbmsgRXhlY0FyZ30gd2l0aCBiYXRjaGVkIGFyZ3VtZW50cy5cbiAqL1xuZXhwb3J0IHR5cGUgQ29tbWFuZFBhcnQgPSBFeGVjQXJnIHwgc3RyaW5nO1xuXG4vKipcbiAqIEEgY29tbWFuZCBhcmd1bWVudCB0aGF0IGNvbnRhaW5zIGEgbGlzdCBvZiBhcmdzIHRvIGJlIGJhdGNoZWQuXG4gKiBJZiB0aGUgZXhwYW5kZWQgY29tbWFuZCBleGNlZWRzIHRoZSBwbGF0Zm9ybSdzIG1heCBjb21tYW5kIGxlbmd0aCxcbiAqIHRoZSBiYXRjaGVkIGFyZ3MgYXJlIHNwbGl0IGludG8gc2VxdWVudGlhbCBleGVjdXRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWNBcmcge1xuICAvKipcbiAgICogVGhlIGFyZ3VtZW50cyB0byBiYXRjaC5cbiAgICovXG4gIHJlYWRvbmx5IGJhdGNoZWRBcmdzOiByZWFkb25seSBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgZXhlY30gdGhhdCByZXR1cm4gZGV0YWlsZWQgcmVzdWx0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeGVjRGV0YWlsZWRPcHRpb25zIGV4dGVuZHMgRXhlY09wdGlvbnMge1xuICAvKipcbiAgICogTXVzdCBiZSBgdHJ1ZWAgdG8gcmVjZWl2ZSBkZXRhaWxlZCByZXN1bHRzLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkSW5jbHVkZURldGFpbHM6IHRydWU7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgZXhlY3V0aW5nIGEgY29tbWFuZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeGVjT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgZm9yIHRoZSBjb21tYW5kIGV4ZWN1dGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGN3ZD86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgYHRydWVgLCBzdXBwcmVzc2VzIHRoZSBvdXRwdXQgb2YgdGhlIGNvbW1hbmQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIHJlYWRvbmx5IGlzUXVpZXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJZiBgdHJ1ZWAsIHRocm93cyBhbiBlcnJvciBpZiB0aGUgY29tbWFuZCBmYWlscy5cbiAgICpcbiAgICogQGRlZmF1bHQgYHRydWVgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRGYWlsSWZDYWxsZWRGcm9tT3V0c2lkZVJvb3Q/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJZiBgdHJ1ZWAsIGlnbm9yZXMgdGhlIGV4aXQgY29kZSBvZiB0aGUgY29tbWFuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkSWdub3JlRXhpdENvZGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJZiBgZmFsc2VgLCBvbmx5IHJldHVybnMgdGhlIG91dHB1dCBvZiB0aGUgY29tbWFuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkSW5jbHVkZURldGFpbHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBbiBpbnB1dCB0byBiZSBwYXNzZWQgdG8gdGhlIGNvbW1hbmQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAnJ2BcbiAgICovXG4gIHJlYWRvbmx5IHN0ZGluPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgcmVzdWx0IG9mIHtAbGluayBleGVjfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeGVjUmVzdWx0IHtcbiAgLyoqXG4gICAqIEFuIGV4aXQgY29kZSBvZiB0aGUgY29tbWFuZC4gQSB2YWx1ZSBvZiBgbnVsbGAgaW5kaWNhdGVzIHRoYXQgdGhlIHByb2Nlc3MgZGlkIG5vdCBleGl0IG5vcm1hbGx5LlxuICAgKi9cbiAgcmVhZG9ubHkgZXhpdENvZGU6IG51bGwgfCBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEEgc2lnbmFsIHRoYXQgY2F1c2VkIHRoZSBwcm9jZXNzIHRvIGJlIHRlcm1pbmF0ZWQuIEEgdmFsdWUgb2YgYG51bGxgIGluZGljYXRlcyB0aGF0IG5vIHNpZ25hbCB3YXMgcmVjZWl2ZWQuXG4gICAqL1xuICByZWFkb25seSBleGl0U2lnbmFsOiBOb2RlSlMuU2lnbmFscyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIEEgc3RhbmRhcmQgZXJyb3Igb3V0cHV0IGZyb20gdGhlIGNvbW1hbmQuXG4gICAqL1xuICByZWFkb25seSBzdGRlcnI6IHN0cmluZztcblxuICAvKipcbiAgICogQSBzdGFuZGFyZCBvdXRwdXQgZnJvbSB0aGUgY29tbWFuZC5cbiAgICovXG4gIHJlYWRvbmx5IHN0ZG91dDogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBleGVjfSB0aGF0IHJldHVybiBvbmx5IHN0ZG91dC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeGVjU2ltcGxlT3B0aW9ucyBleHRlbmRzIEV4ZWNPcHRpb25zIHtcbiAgLyoqXG4gICAqIE11c3QgYmUgYGZhbHNlYCBvciBvbWl0dGVkIHRvIHJlY2VpdmUgb25seSBzdGRvdXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZEluY2x1ZGVEZXRhaWxzPzogZmFsc2U7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGV4ZWNTdHJpbmd9LlxuICovXG5pbnRlcmZhY2UgRXhlY1N0cmluZ1BhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgY29tbWFuZCBzdHJpbmcuXG4gICAqL1xuICByZWFkb25seSBjb21tYW5kOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBleGVjIG9wdGlvbnMuXG4gICAqL1xuICByZWFkb25seSBvcHRpb25zPzogRXhlY09wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFRoZSBvcmlnaW5hbCBhcmd1bWVudCBhcnJheSAoaWYgYXZhaWxhYmxlKSwgdXNlZCBieSB0aGUgUG93ZXJTaGVsbFxuICAgKiBmYWxsYmFjayBwYXRoIHRvIHF1b3RlIGFyZ3VtZW50cyB3aXRoIFBvd2VyU2hlbGwtbmF0aXZlIHNpbmdsZSBxdW90ZXMuXG4gICAqL1xuICByZWFkb25seSByYXdBcmdzPzogc3RyaW5nW107XG59XG4vKipcbiAqIEV4ZWN1dGVzIGEgY29tbWFuZC5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZCAtIFRoZSBjb21tYW5kIHRvIGV4ZWN1dGUuIEl0IGNhbiBiZSBhIHN0cmluZyBvciBhbiBhcnJheSBvZiBzdHJpbmdzLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgdGhlIGV4ZWN1dGlvbi5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgb3V0cHV0IG9mIHRoZSBjb21tYW5kLlxuICogQHRocm93cyBJZiB0aGUgY29tbWFuZCBmYWlscyB3aXRoIGEgbm9uLXplcm8gZXhpdCBjb2RlIGFuZCBpZ25vcmVFeGl0Q29kZSBpcyBgZmFsc2VgLlxuICogICAgICAgICBUaGUgZXJyb3IgbWVzc2FnZSBpbmNsdWRlcyB0aGUgZXhpdCBjb2RlIGFuZCBzdGRlcnIuXG4gKiAgICAgICAgIElmIGFuIGVycm9yIG9jY3VycyBkdXJpbmcgdGhlIGV4ZWN1dGlvbiBhbmQgaWdub3JlRXhpdENvZGUgaXMgYHRydWVgLFxuICogICAgICAgICB0aGUgZXJyb3IgaXMgcmVzb2x2ZWQgd2l0aCB0aGUgc3Rkb3V0IGFuZCBzdGRlcnIuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBleGVjKGNvbW1hbmQ6IENvbW1hbmRQYXJ0W10gfCBzdHJpbmcsIG9wdGlvbnM/OiBFeGVjU2ltcGxlT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nPjtcbi8qKlxuICogRXhlY3V0ZXMgYSBjb21tYW5kLlxuICpcbiAqIEBwYXJhbSBjb21tYW5kIC0gVGhlIGNvbW1hbmQgdG8gZXhlY3V0ZS4gSXQgY2FuIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgZXhlY3V0aW9uLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIEV4ZWNSZXN1bHQgb2JqZWN0LlxuICogICAgICAgICAgVGhlIEV4ZWNSZXN1bHQgb2JqZWN0IGNvbnRhaW5zIHRoZSBleGl0IGNvZGUsIGV4aXQgc2lnbmFsLCBzdGRlcnIsIGFuZCBzdGRvdXQuXG4gKiBAdGhyb3dzIElmIHRoZSBjb21tYW5kIGZhaWxzIHdpdGggYSBub24temVybyBleGl0IGNvZGUgYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGBmYWxzZWAuXG4gKiAgICAgICAgIFRoZSBlcnJvciBtZXNzYWdlIGluY2x1ZGVzIHRoZSBleGl0IGNvZGUgYW5kIHN0ZGVyci5cbiAqICAgICAgICAgSWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgZXhlY3V0aW9uIGFuZCBpZ25vcmVFeGl0Q29kZSBpcyBgdHJ1ZWAsXG4gKiAgICAgICAgIHRoZSBlcnJvciBpcyByZXNvbHZlZCB3aXRoIHRoZSBzdGRvdXQgYW5kIHN0ZGVyci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4ZWMoY29tbWFuZDogQ29tbWFuZFBhcnRbXSB8IHN0cmluZywgb3B0aW9uczogRXhlY0RldGFpbGVkT3B0aW9ucyk6IFByb21pc2U8RXhlY1Jlc3VsdD47XG4vKipcbiAqIEV4ZWN1dGVzIGEgY29tbWFuZC5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZCAtIFRoZSBjb21tYW5kIHRvIGV4ZWN1dGUuIEl0IGNhbiBiZSBhIHN0cmluZyBvciBhbiBhcnJheSBvZiBzdHJpbmdzLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgdGhlIGV4ZWN1dGlvbi5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgb3V0cHV0IG9mIHRoZSBjb21tYW5kIG9yIGFuIEV4ZWNSZXN1bHQgb2JqZWN0LlxuICogICAgICAgICAgVGhlIEV4ZWNSZXN1bHQgb2JqZWN0IGNvbnRhaW5zIHRoZSBleGl0IGNvZGUsIGV4aXQgc2lnbmFsLCBzdGRlcnIsIGFuZCBzdGRvdXQuXG4gKiBAdGhyb3dzIElmIHRoZSBjb21tYW5kIGZhaWxzIHdpdGggYSBub24temVybyBleGl0IGNvZGUgYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGBmYWxzZWAuXG4gKiAgICAgICAgIFRoZSBlcnJvciBtZXNzYWdlIGluY2x1ZGVzIHRoZSBleGl0IGNvZGUgYW5kIHN0ZGVyci5cbiAqICAgICAgICAgSWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgZXhlY3V0aW9uIGFuZCBpZ25vcmVFeGl0Q29kZSBpcyBgdHJ1ZWAsXG4gKiAgICAgICAgIHRoZSBlcnJvciBpcyByZXNvbHZlZCB3aXRoIHRoZSBzdGRvdXQgYW5kIHN0ZGVyci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4ZWMoY29tbWFuZDogQ29tbWFuZFBhcnRbXSB8IHN0cmluZywgb3B0aW9uczogRXhlY09wdGlvbnMgPSB7fSk6IFByb21pc2U8RXhlY1Jlc3VsdCB8IHN0cmluZz4ge1xuICBpZiAoQXJyYXkuaXNBcnJheShjb21tYW5kKSkge1xuICAgIGNvbnN0IGJhdGNoUmVzdWx0ID0gaGFuZGxlQmF0Y2hlZENvbW1hbmQoY29tbWFuZCwgb3B0aW9ucyk7XG4gICAgaWYgKGJhdGNoUmVzdWx0KSB7XG4gICAgICByZXR1cm4gYmF0Y2hSZXN1bHQ7XG4gICAgfVxuICAgIGNvbnN0IGFyZ3MgPSBjb21tYW5kLmZpbHRlcigocGFydCk6IHBhcnQgaXMgc3RyaW5nID0+IHR5cGVvZiBwYXJ0ID09PSAnc3RyaW5nJyk7XG4gICAgY29uc3QgY29tbWFuZExpbmUgPSB0b0NvbW1hbmRMaW5lKGFyZ3MpO1xuXG4gICAgY29uc3QgbWF4Q29tbWFuZExlbmd0aCA9IGdldE1heENvbW1hbmRMZW5ndGgoKTtcbiAgICBpZiAoY29tbWFuZExpbmUubGVuZ3RoID4gbWF4Q29tbWFuZExlbmd0aCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KFxuICAgICAgICBuZXcgRXJyb3IoXG4gICAgICAgICAgYENvbW1hbmQgbGluZSBpcyB0b28gbG9uZyAoJHtTdHJpbmcoY29tbWFuZExpbmUubGVuZ3RoKX0gY2hhcnMsIG1heCAke1N0cmluZyhtYXhDb21tYW5kTGVuZ3RoKX0gb24gJHtwcm9jZXNzLnBsYXRmb3JtfSkuIENvbnNpZGVyIHNwbGl0dGluZyBpbnRvIHNtYWxsZXIgYmF0Y2hlcyBvciB1c2UgRXhlY0FyZy5gXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGV4ZWNTdHJpbmcoe1xuICAgICAgY29tbWFuZDogY29tbWFuZExpbmUsXG4gICAgICBvcHRpb25zLFxuICAgICAgcmF3QXJnczogYXJnc1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgbWF4Q29tbWFuZExlbmd0aCA9IGdldE1heENvbW1hbmRMZW5ndGgoKTtcbiAgaWYgKGNvbW1hbmQubGVuZ3RoID4gbWF4Q29tbWFuZExlbmd0aCkge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcbiAgICAgIG5ldyBFcnJvcihcbiAgICAgICAgYENvbW1hbmQgbGluZSBpcyB0b28gbG9uZyAoJHtTdHJpbmcoY29tbWFuZC5sZW5ndGgpfSBjaGFycywgbWF4ICR7U3RyaW5nKG1heENvbW1hbmRMZW5ndGgpfSBvbiAke3Byb2Nlc3MucGxhdGZvcm19KS4gQ29uc2lkZXIgc3BsaXR0aW5nIGludG8gc21hbGxlciBiYXRjaGVzIG9yIHVzZSBFeGVjQXJnLmBcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGV4ZWNTdHJpbmcoe1xuICAgIGNvbW1hbmQsXG4gICAgb3B0aW9uc1xuICB9KTtcbn1cblxuLyoqXG4gKiBFeGVjdXRlcyBhIHNpbmdsZSBzdHJpbmcgY29tbWFuZC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBleGVjdXRpb24uXG4gKiBAcmV0dXJucyBBIFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSByZXN1bHQuXG4gKi9cbmZ1bmN0aW9uIGV4ZWNTdHJpbmcocGFyYW1zOiBFeGVjU3RyaW5nUGFyYW1zKTogUHJvbWlzZTxFeGVjUmVzdWx0IHwgc3RyaW5nPiB7XG4gIGNvbnN0IHtcbiAgICBjb21tYW5kLFxuICAgIG9wdGlvbnMgPSB7fSxcbiAgICByYXdBcmdzXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IHtcbiAgICBjd2QgPSBwcm9jZXNzLmN3ZCgpLFxuICAgIGlzUXVpZXQ6IHF1aWV0ID0gZmFsc2UsXG4gICAgc2hvdWxkSWdub3JlRXhpdENvZGU6IGlnbm9yZUV4aXRDb2RlID0gZmFsc2UsXG4gICAgc2hvdWxkSW5jbHVkZURldGFpbHMgPSBmYWxzZSxcbiAgICBzdGRpbiA9ICcnXG4gIH0gPSBvcHRpb25zO1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgZ2V0TGliRGVidWdnZXIoJ0V4ZWMnKShgRXhlY3V0aW5nIGNvbW1hbmQ6ICR7Y29tbWFuZH1gKTtcblxuICAgIGNvbnN0IGNoaWxkID0gc3Bhd25WaWFTaGVsbChub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXM8U3Bhd25WaWFTaGVsbFBhcmFtcz4oe1xuICAgICAgY29tbWFuZCxcbiAgICAgIGN3ZCxcbiAgICAgIHJhd0FyZ3NcbiAgICB9KSk7XG5cbiAgICBsZXQgc3Rkb3V0ID0gJyc7XG4gICAgbGV0IHN0ZGVyciA9ICcnO1xuXG4gICAgY2hpbGQuc3RkaW4ud3JpdGUoc3RkaW4pO1xuICAgIGNoaWxkLnN0ZGluLmVuZCgpO1xuXG4gICAgY2hpbGQuc3Rkb3V0Lm9uKCdkYXRhJywgKGRhdGE6IEJ1ZmZlcikgPT4ge1xuICAgICAgaWYgKCFxdWlldCkge1xuICAgICAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShkYXRhKTtcbiAgICAgIH1cbiAgICAgIHN0ZG91dCArPSBkYXRhLnRvU3RyaW5nKCd1dGYtOCcpO1xuICAgIH0pO1xuXG4gICAgY2hpbGQuc3Rkb3V0Lm9uKCdlbmQnLCAoKSA9PiB7XG4gICAgICBzdGRvdXQgPSB0cmltRW5kKHtcbiAgICAgICAgc3RyOiBzdGRvdXQsXG4gICAgICAgIHN1ZmZpeDogJ1xcbidcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgY2hpbGQuc3RkZXJyLm9uKCdkYXRhJywgKGRhdGE6IEJ1ZmZlcikgPT4ge1xuICAgICAgaWYgKCFxdWlldCkge1xuICAgICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShkYXRhKTtcbiAgICAgIH1cbiAgICAgIHN0ZGVyciArPSBkYXRhLnRvU3RyaW5nKCd1dGYtOCcpO1xuICAgIH0pO1xuXG4gICAgY2hpbGQuc3RkZXJyLm9uKCdlbmQnLCAoKSA9PiB7XG4gICAgICBzdGRlcnIgPSB0cmltRW5kKHtcbiAgICAgICAgc3RyOiBzdGRlcnIsXG4gICAgICAgIHN1ZmZpeDogJ1xcbidcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgY2hpbGQub24oJ2Nsb3NlJywgKGV4aXRDb2RlLCBleGl0U2lnbmFsKSA9PiB7XG4gICAgICBpZiAoZXhpdENvZGUgIT09IDAgJiYgIWlnbm9yZUV4aXRDb2RlKSB7XG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoYENvbW1hbmQgZmFpbGVkIHdpdGggZXhpdCBjb2RlICR7ZXhpdENvZGUgPyBTdHJpbmcoZXhpdENvZGUpIDogJyhudWxsKSd9XFxuJHtzdGRlcnJ9YCkpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICghc2hvdWxkSW5jbHVkZURldGFpbHMpIHtcbiAgICAgICAgcmVzb2x2ZShzdGRvdXQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICByZXNvbHZlKHtcbiAgICAgICAgZXhpdENvZGUsXG4gICAgICAgIGV4aXRTaWduYWwsXG4gICAgICAgIHN0ZGVycixcbiAgICAgICAgc3Rkb3V0XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGNoaWxkLm9uKCdlcnJvcicsIChlcnIpID0+IHtcbiAgICAgIGlmICghaWdub3JlRXhpdENvZGUpIHtcbiAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFzaG91bGRJbmNsdWRlRGV0YWlscykge1xuICAgICAgICByZXNvbHZlKHN0ZG91dCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgcmVzb2x2ZSh7XG4gICAgICAgIGV4aXRDb2RlOiBudWxsLFxuICAgICAgICBleGl0U2lnbmFsOiBudWxsLFxuICAgICAgICBzdGRlcnIsXG4gICAgICAgIHN0ZG91dFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG4vKipcbiAqIERlZmF1bHQgZW52aXJvbm1lbnQgdmFyaWFibGVzIHBhc3NlZCB0byBjaGlsZCBwcm9jZXNzZXMuXG4gKi9cbmNvbnN0IENISUxEX0VOViA9IHtcbiAgREVCVUdfQ09MT1JTOiAnMScsXG4gIC4uLnByb2Nlc3MuZW52XG59O1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBleGVjdXRlQmF0Y2hlc30uXG4gKi9cbmludGVyZmFjZSBFeGVjdXRlQmF0Y2hlc1BhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgYmFzZSBjb21tYW5kIHdpdGhvdXQgYmF0Y2hlZCBhcmdzLlxuICAgKi9cbiAgcmVhZG9ubHkgYmFzZUNvbW1hbmQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGJhdGNoZXMgb2YgYXJncy5cbiAgICovXG4gIHJlYWRvbmx5IGJhdGNoZXM6IHN0cmluZ1tdW107XG5cbiAgLyoqXG4gICAqIFRoZSBleGVjIG9wdGlvbnMuXG4gICAqL1xuICByZWFkb25seSBvcHRpb25zOiBFeGVjT3B0aW9ucztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgc3Bhd25WaWFTaGVsbH0uXG4gKi9cbmludGVyZmFjZSBTcGF3blZpYVNoZWxsUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBjb21tYW5kIHN0cmluZyB0byBleGVjdXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWFuZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgd29ya2luZyBkaXJlY3RvcnkuXG4gICAqL1xuICByZWFkb25seSBjd2Q6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG9yaWdpbmFsIGFyZ3VtZW50IGFycmF5IChpZiBhdmFpbGFibGUpLlxuICAgKi9cbiAgcmVhZG9ubHkgcmF3QXJncz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEV4ZWN1dGVzIGJhdGNoZWQgY29tbWFuZHMgc2VxdWVudGlhbGx5IGFuZCBjb25jYXRlbmF0ZXMgc3Rkb3V0LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJhdGNoZWQgZXhlY3V0aW9uLlxuICogQHJldHVybnMgQSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY29uY2F0ZW5hdGVkIHJlc3VsdC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZUJhdGNoZXMocGFyYW1zOiBFeGVjdXRlQmF0Y2hlc1BhcmFtcyk6IFByb21pc2U8RXhlY1Jlc3VsdCB8IHN0cmluZz4ge1xuICBjb25zdCB7IGJhc2VDb21tYW5kLCBiYXRjaGVzLCBvcHRpb25zIH0gPSBwYXJhbXM7XG4gIGNvbnN0IHJlc3VsdHM6IHN0cmluZ1tdID0gW107XG5cbiAgZm9yIChjb25zdCBiYXRjaCBvZiBiYXRjaGVzKSB7XG4gICAgY29uc3QgYmF0Y2hDb21tYW5kID0gYCR7YmFzZUNvbW1hbmR9ICR7YmF0Y2guam9pbignICcpfWA7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZXhlY1N0cmluZyh7XG4gICAgICBjb21tYW5kOiBiYXRjaENvbW1hbmQsXG4gICAgICBvcHRpb25zXG4gICAgfSk7XG4gICAgaWYgKHR5cGVvZiByZXN1bHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXN1bHRzLnB1c2gocmVzdWx0KTtcbiAgICB9XG4gIH1cblxuICBpZiAob3B0aW9ucy5zaG91bGRJbmNsdWRlRGV0YWlscykge1xuICAgIHJldHVybiB7IGV4aXRDb2RlOiAwLCBleGl0U2lnbmFsOiBudWxsLCBzdGRlcnI6ICcnLCBzdGRvdXQ6IHJlc3VsdHMuam9pbignXFxuJykgfTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHRzLmpvaW4oJ1xcbicpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHBsYXRmb3JtLXNwZWNpZmljIG1heCBjb21tYW5kIGxpbmUgbGVuZ3RoLlxuICpcbiAqIEByZXR1cm5zIFRoZSBtYXggY29tbWFuZCBsZW5ndGggaW4gY2hhcmFjdGVycy5cbiAqL1xuZnVuY3Rpb24gZ2V0TWF4Q29tbWFuZExlbmd0aCgpOiBudW1iZXIge1xuICBjb25zdCBXSU5ET1dTX01BWF9DT01NQU5EX0xFTkdUSCA9IDgxOTE7XG4gIGNvbnN0IFVOSVhfTUFYX0NPTU1BTkRfTEVOR1RIID0gMTMxMDcyO1xuICByZXR1cm4gcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJyA/IFdJTkRPV1NfTUFYX0NPTU1BTkRfTEVOR1RIIDogVU5JWF9NQVhfQ09NTUFORF9MRU5HVEg7XG59XG5cbi8qKlxuICogSGFuZGxlcyBhIGNvbW1hbmQgYXJyYXkgdGhhdCBtYXkgY29udGFpbiBhbiB7QGxpbmsgRXhlY0FyZ30uXG4gKiBSZXR1cm5zIGEgUHJvbWlzZSBpZiBiYXRjaGluZyBpcyBuZWVkZWQsIG9yIGB1bmRlZmluZWRgIGlmIHRoZSBjb21tYW5kXG4gKiBoYXMgbm8gRXhlY0FyZyBhbmQgc2hvdWxkIGJlIHByb2Nlc3NlZCBub3JtYWxseS5cbiAqXG4gKiBAcGFyYW0gcGFydHMgLSBUaGUgY29tbWFuZCBwYXJ0cy5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIGV4ZWMgb3B0aW9ucy5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSBpZiBiYXRjaGluZyBpcyBoYW5kbGVkLCBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZnVuY3Rpb24gaGFuZGxlQmF0Y2hlZENvbW1hbmQocGFydHM6IENvbW1hbmRQYXJ0W10sIG9wdGlvbnM6IEV4ZWNPcHRpb25zKTogUHJvbWlzZTxFeGVjUmVzdWx0IHwgc3RyaW5nPiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGV4ZWNBcmdzID0gcGFydHMuZmlsdGVyKGlzRXhlY0FyZyk7XG4gIGlmIChleGVjQXJncy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGlmIChleGVjQXJncy5sZW5ndGggPiAxKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcignT25seSBvbmUgRXhlY0FyZyB3aXRoIGJhdGNoZWRBcmdzIGlzIGFsbG93ZWQgcGVyIGNvbW1hbmQnKSk7XG4gIH1cblxuICBjb25zdCBleGVjQXJnID0gZXhlY0FyZ3NbMF07XG4gIGFzc2VydE5vbk51bGxhYmxlKGV4ZWNBcmcpO1xuICBjb25zdCBzdGF0aWNQYXJ0cyA9IHBhcnRzLmZpbHRlcigocGFydCk6IHBhcnQgaXMgc3RyaW5nID0+IHR5cGVvZiBwYXJ0ID09PSAnc3RyaW5nJyk7XG4gIGNvbnN0IGJhc2VDb21tYW5kID0gdG9Db21tYW5kTGluZShzdGF0aWNQYXJ0cyk7XG4gIGNvbnN0IG1heENvbW1hbmRMZW5ndGggPSBnZXRNYXhDb21tYW5kTGVuZ3RoKCk7XG5cbiAgLy8gVHJ5IGV4cGFuZGluZyBhbGwgYXJncyBpbmxpbmVcbiAgY29uc3QgZnVsbENvbW1hbmQgPSBgJHtiYXNlQ29tbWFuZH0gJHtleGVjQXJnLmJhdGNoZWRBcmdzLmpvaW4oJyAnKX1gO1xuICBpZiAoZnVsbENvbW1hbmQubGVuZ3RoIDw9IG1heENvbW1hbmRMZW5ndGgpIHtcbiAgICByZXR1cm4gZXhlY1N0cmluZyh7XG4gICAgICBjb21tYW5kOiBmdWxsQ29tbWFuZCxcbiAgICAgIG9wdGlvbnNcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFNwbGl0IGludG8gYmF0Y2hlc1xuICBjb25zdCBiYXRjaGVzOiBzdHJpbmdbXVtdID0gW107XG4gIGxldCBjdXJyZW50QmF0Y2g6IHN0cmluZ1tdID0gW107XG5cbiAgZm9yIChjb25zdCBhcmcgb2YgZXhlY0FyZy5iYXRjaGVkQXJncykge1xuICAgIGNvbnN0IHRlbnRhdGl2ZSA9IGAke2Jhc2VDb21tYW5kfSAke1suLi5jdXJyZW50QmF0Y2gsIGFyZ10uam9pbignICcpfWA7XG4gICAgaWYgKHRlbnRhdGl2ZS5sZW5ndGggPiBtYXhDb21tYW5kTGVuZ3RoKSB7XG4gICAgICBpZiAoY3VycmVudEJhdGNoLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoXG4gICAgICAgICAgbmV3IEVycm9yKFxuICAgICAgICAgICAgYENhbm5vdCBzcGxpdCBjb21tYW5kIGludG8gYmF0Y2hlczogYSBzaW5nbGUgYXJndW1lbnQgKCR7U3RyaW5nKGFyZy5sZW5ndGgpfSBjaGFycykgcGx1cyB0aGUgYmFzZSBjb21tYW5kICgke1N0cmluZyhiYXNlQ29tbWFuZC5sZW5ndGgpfSBjaGFycykgZXhjZWVkcyB0aGUgbWF4IGNvbW1hbmQgbGVuZ3RoICgke1N0cmluZyhtYXhDb21tYW5kTGVuZ3RoKX0pLmBcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBiYXRjaGVzLnB1c2goY3VycmVudEJhdGNoKTtcbiAgICAgIGN1cnJlbnRCYXRjaCA9IFthcmddO1xuICAgIH0gZWxzZSB7XG4gICAgICBjdXJyZW50QmF0Y2gucHVzaChhcmcpO1xuICAgIH1cbiAgfVxuICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gQWx3YXlzIHRydWUgYWZ0ZXIgdGhlIGxvb3A7IGJhdGNoZWRBcmdzIGlzIG5vbi1lbXB0eSBhdCB0aGlzIHBvaW50LiAqL1xuICBpZiAoY3VycmVudEJhdGNoLmxlbmd0aCA+IDApIHtcbiAgICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICAgIGJhdGNoZXMucHVzaChjdXJyZW50QmF0Y2gpO1xuICB9XG5cbiAgcmV0dXJuIGV4ZWN1dGVCYXRjaGVzKHtcbiAgICBiYXNlQ29tbWFuZCxcbiAgICBiYXRjaGVzLFxuICAgIG9wdGlvbnNcbiAgfSk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgY29tbWFuZCBwYXJ0IGlzIGFuIHtAbGluayBFeGVjQXJnfS5cbiAqXG4gKiBAcGFyYW0gcGFydCAtIFRoZSBjb21tYW5kIHBhcnQgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBwYXJ0IGlzIGFuIEV4ZWNBcmcuXG4gKi9cbmZ1bmN0aW9uIGlzRXhlY0FyZyhwYXJ0OiBDb21tYW5kUGFydCk6IHBhcnQgaXMgRXhlY0FyZyB7XG4gIHJldHVybiB0eXBlb2YgcGFydCA9PT0gJ29iamVjdCcgJiYgJ2JhdGNoZWRBcmdzJyBpbiBwYXJ0O1xufVxuXG4vKipcbiAqIFNwYXducyBhIGNoaWxkIHByb2Nlc3MgdmlhIHRoZSBhcHByb3ByaWF0ZSBzaGVsbC5cbiAqXG4gKiBPbiBXaW5kb3dzLCBpZiB0aGUgY29tbWFuZCBjb250YWlucyBuZXdsaW5lcyAod2hpY2ggYGNtZC5leGVgIGNhbm5vdCBoYW5kbGUpXG4gKiBhbmQgdGhlIHJhdyBhcmdzIGFycmF5IGlzIGF2YWlsYWJsZSwgc3Bhd25zIHRoZSBwcm9jZXNzIGRpcmVjdGx5IHdpdGhvdXRcbiAqIGFueSBzaGVsbCBcdTIwMTQgcGFzc2luZyBhcmdzIHZpYSBgQ3JlYXRlUHJvY2Vzc2AsIHdoaWNoIGF2b2lkcyBhbGwgcXVvdGluZyBpc3N1ZXMuXG4gKlxuICogT24gV2luZG93cyAoY21kLmV4ZSBwYXRoKSwgYXBwbGllcyBgXmAtZXNjYXBpbmcgZm9yIGNtZCBtZXRhY2hhcmFjdGVycy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHNwYXduaW5nIHRoZSBjaGlsZCBwcm9jZXNzLlxuICogQHJldHVybnMgVGhlIHNwYXduZWQgY2hpbGQgcHJvY2Vzcy5cbiAqL1xuZnVuY3Rpb24gc3Bhd25WaWFTaGVsbChwYXJhbXM6IFNwYXduVmlhU2hlbGxQYXJhbXMpOiBDaGlsZFByb2Nlc3NXaXRob3V0TnVsbFN0cmVhbXMge1xuICBjb25zdCB7IGNvbW1hbmQsIGN3ZCwgcmF3QXJncyB9ID0gcGFyYW1zO1xuICBpZiAocHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJyAmJiBjb21tYW5kLmluY2x1ZGVzKCdcXG4nKSkge1xuICAgIGlmICghcmF3QXJncykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb21tYW5kcyBjb250YWluaW5nIG5ld2xpbmVzIGNhbm5vdCBiZSBleGVjdXRlZCB0aHJvdWdoIGNtZC5leGUgb24gV2luZG93cy4gUGFzcyBhbiBhcmd1bWVudCBhcnJheSBpbnN0ZWFkIG9mIGEgc3RyaW5nLicpO1xuICAgIH1cbiAgICBjb25zdCBbcHJvZ3JhbSwgLi4uYXJnc10gPSByYXdBcmdzO1xuICAgIGFzc2VydE5vbk51bGxhYmxlKHByb2dyYW0sICdDb21tYW5kIGFycmF5IG11c3Qgbm90IGJlIGVtcHR5Jyk7XG4gICAgcmV0dXJuIHNwYXduKHByb2dyYW0sIGFyZ3MsIHtcbiAgICAgIGN3ZCxcbiAgICAgIGVudjogQ0hJTERfRU5WLFxuICAgICAgc3RkaW86ICdwaXBlJ1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3Qgc2hlbGxDb21tYW5kID0gcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJyA/IGNtZEVzY2FwZUNvbW1hbmRMaW5lKGNvbW1hbmQpIDogY29tbWFuZDtcbiAgcmV0dXJuIHNwYXduKHNoZWxsQ29tbWFuZCwgW10sIHtcbiAgICBjd2QsXG4gICAgZW52OiBDSElMRF9FTlYsXG4gICAgc2hlbGw6IHRydWUsXG4gICAgc3RkaW86ICdwaXBlJ1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQSxnQ0FBc0I7QUFDdEIsMEJBQW9CO0FBRXBCLG1CQUErQjtBQUMvQiwwQkFBNEM7QUFDNUMsb0JBQXdCO0FBQ3hCLHlCQUFrQztBQUNsQyx1QkFHTztBQXdLQSxTQUFTLEtBQUssU0FBaUMsVUFBdUIsQ0FBQyxHQUFpQztBQUM3RyxNQUFJLE1BQU0sUUFBUSxPQUFPLEdBQUc7QUFDMUIsVUFBTSxjQUFjLHFCQUFxQixTQUFTLE9BQU87QUFDekQsUUFBSSxhQUFhO0FBQ2YsYUFBTztBQUFBLElBQ1Q7QUFDQSxVQUFNLE9BQU8sUUFB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
391
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9leGVjLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGV4ZWN1dGluZyBjb21tYW5kcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IENoaWxkUHJvY2Vzc1dpdGhvdXROdWxsU3RyZWFtcyB9IGZyb20gJ25vZGU6Y2hpbGRfcHJvY2Vzcyc7XG5cbmltcG9ydCB7IHNwYXduIH0gZnJvbSAnbm9kZTpjaGlsZF9wcm9jZXNzJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5cbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnLi4vZGVidWcudHMnO1xuaW1wb3J0IHsgbm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vb2JqZWN0LXV0aWxzLnRzJztcbmltcG9ydCB7IHRyaW1FbmQgfSBmcm9tICcuLi9zdHJpbmcudHMnO1xuaW1wb3J0IHsgYXNzZXJ0Tm9uTnVsbGFibGUgfSBmcm9tICcuLi90eXBlLWd1YXJkcy50cyc7XG5pbXBvcnQge1xuICBjbWRFc2NhcGVDb21tYW5kTGluZSxcbiAgdG9Db21tYW5kTGluZVxufSBmcm9tICcuL2NsaS11dGlscy50cyc7XG5cbi8qKlxuICogQSBjb21tYW5kIHBhcnQ6IGVpdGhlciBhIHBsYWluIHN0cmluZyBvciBhbiB7QGxpbmsgRXhlY0FyZ30gd2l0aCBiYXRjaGVkIGFyZ3VtZW50cy5cbiAqL1xuZXhwb3J0IHR5cGUgQ29tbWFuZFBhcnQgPSBFeGVjQXJnIHwgc3RyaW5nO1xuXG4vKipcbiAqIEEgY29tbWFuZCBhcmd1bWVudCB0aGF0IGNvbnRhaW5zIGEgbGlzdCBvZiBhcmdzIHRvIGJlIGJhdGNoZWQuXG4gKiBJZiB0aGUgZXhwYW5kZWQgY29tbWFuZCBleGNlZWRzIHRoZSBwbGF0Zm9ybSdzIG1heCBjb21tYW5kIGxlbmd0aCxcbiAqIHRoZSBiYXRjaGVkIGFyZ3MgYXJlIHNwbGl0IGludG8gc2VxdWVudGlhbCBleGVjdXRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWNBcmcge1xuICAvKipcbiAgICogVGhlIGFyZ3VtZW50cyB0byBiYXRjaC5cbiAgICovXG4gIHJlYWRvbmx5IGJhdGNoZWRBcmdzOiByZWFkb25seSBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgZXhlY30gdGhhdCByZXR1cm4gZGV0YWlsZWQgcmVzdWx0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeGVjRGV0YWlsZWRPcHRpb25zIGV4dGVuZHMgRXhlY09wdGlvbnMge1xuICAvKipcbiAgICogTXVzdCBiZSBgdHJ1ZWAgdG8gcmVjZWl2ZSBkZXRhaWxlZCByZXN1bHRzLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkSW5jbHVkZURldGFpbHM6IHRydWU7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgZXhlY3V0aW5nIGEgY29tbWFuZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeGVjT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgZm9yIHRoZSBjb21tYW5kIGV4ZWN1dGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGN3ZD86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgYHRydWVgLCBzdXBwcmVzc2VzIHRoZSBvdXRwdXQgb2YgdGhlIGNvbW1hbmQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIHJlYWRvbmx5IGlzUXVpZXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJZiBgdHJ1ZWAsIHRocm93cyBhbiBlcnJvciBpZiB0aGUgY29tbWFuZCBmYWlscy5cbiAgICpcbiAgICogQGRlZmF1bHQgYHRydWVgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRGYWlsSWZDYWxsZWRGcm9tT3V0c2lkZVJvb3Q/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJZiBgdHJ1ZWAsIGlnbm9yZXMgdGhlIGV4aXQgY29kZSBvZiB0aGUgY29tbWFuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkSWdub3JlRXhpdENvZGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJZiBgZmFsc2VgLCBvbmx5IHJldHVybnMgdGhlIG91dHB1dCBvZiB0aGUgY29tbWFuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkSW5jbHVkZURldGFpbHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBbiBpbnB1dCB0byBiZSBwYXNzZWQgdG8gdGhlIGNvbW1hbmQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAnJ2BcbiAgICovXG4gIHJlYWRvbmx5IHN0ZGluPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgcmVzdWx0IG9mIHtAbGluayBleGVjfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeGVjUmVzdWx0IHtcbiAgLyoqXG4gICAqIEFuIGV4aXQgY29kZSBvZiB0aGUgY29tbWFuZC4gQSB2YWx1ZSBvZiBgbnVsbGAgaW5kaWNhdGVzIHRoYXQgdGhlIHByb2Nlc3MgZGlkIG5vdCBleGl0IG5vcm1hbGx5LlxuICAgKi9cbiAgcmVhZG9ubHkgZXhpdENvZGU6IG51bGwgfCBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEEgc2lnbmFsIHRoYXQgY2F1c2VkIHRoZSBwcm9jZXNzIHRvIGJlIHRlcm1pbmF0ZWQuIEEgdmFsdWUgb2YgYG51bGxgIGluZGljYXRlcyB0aGF0IG5vIHNpZ25hbCB3YXMgcmVjZWl2ZWQuXG4gICAqL1xuICByZWFkb25seSBleGl0U2lnbmFsOiBOb2RlSlMuU2lnbmFscyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIEEgc3RhbmRhcmQgZXJyb3Igb3V0cHV0IGZyb20gdGhlIGNvbW1hbmQuXG4gICAqL1xuICByZWFkb25seSBzdGRlcnI6IHN0cmluZztcblxuICAvKipcbiAgICogQSBzdGFuZGFyZCBvdXRwdXQgZnJvbSB0aGUgY29tbWFuZC5cbiAgICovXG4gIHJlYWRvbmx5IHN0ZG91dDogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBleGVjfSB0aGF0IHJldHVybiBvbmx5IHN0ZG91dC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeGVjU2ltcGxlT3B0aW9ucyBleHRlbmRzIEV4ZWNPcHRpb25zIHtcbiAgLyoqXG4gICAqIE11c3QgYmUgYGZhbHNlYCBvciBvbWl0dGVkIHRvIHJlY2VpdmUgb25seSBzdGRvdXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZEluY2x1ZGVEZXRhaWxzPzogZmFsc2U7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGV4ZWNTdHJpbmd9LlxuICovXG5pbnRlcmZhY2UgRXhlY1N0cmluZ1BhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgY29tbWFuZCBzdHJpbmcuXG4gICAqL1xuICByZWFkb25seSBjb21tYW5kOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBleGVjIG9wdGlvbnMuXG4gICAqL1xuICByZWFkb25seSBvcHRpb25zPzogRXhlY09wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFRoZSBvcmlnaW5hbCBhcmd1bWVudCBhcnJheSAoaWYgYXZhaWxhYmxlKSwgdXNlZCBieSB0aGUgUG93ZXJTaGVsbFxuICAgKiBmYWxsYmFjayBwYXRoIHRvIHF1b3RlIGFyZ3VtZW50cyB3aXRoIFBvd2VyU2hlbGwtbmF0aXZlIHNpbmdsZSBxdW90ZXMuXG4gICAqL1xuICByZWFkb25seSByYXdBcmdzPzogc3RyaW5nW107XG59XG4vKipcbiAqIEFwcGVuZHMgYSBzaW5nbGUgYG5vZGVgIENMSSBvcHRpb24gdG8gYSBgTk9ERV9PUFRJT05TYCBzdHJpbmcsIHByZXNlcnZpbmcgYW55IG9wdGlvbnMgYWxyZWFkeSBwcmVzZW50LlxuICpcbiAqIEBwYXJhbSBleGlzdGluZ05vZGVPcHRpb25zIC0gVGhlIGN1cnJlbnQgYE5PREVfT1BUSU9OU2AgdmFsdWUgKGUuZy4gYHByb2Nlc3MuZW52Lk5PREVfT1BUSU9OU2ApLCBpZiBhbnkuXG4gKiBAcGFyYW0gb3B0aW9uIC0gVGhlIGBub2RlYCBDTEkgb3B0aW9uIHRvIGFwcGVuZCAoZS5nLiBgLS1sb2NhbHN0b3JhZ2UtZmlsZT06bWVtb3J5OmApLlxuICogQHJldHVybnMgVGhlIGNvbWJpbmVkIGBOT0RFX09QVElPTlNgIHN0cmluZy4gSWYgYG9wdGlvbmAgaXMgYWxyZWFkeSBwcmVzZW50LCB0aGUgdmFsdWUgaXMgcmV0dXJuZWQgdW5jaGFuZ2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kTm9kZU9wdGlvbihleGlzdGluZ05vZGVPcHRpb25zOiBzdHJpbmcgfCB1bmRlZmluZWQsIG9wdGlvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgdHJpbW1lZCA9IChleGlzdGluZ05vZGVPcHRpb25zID8/ICcnKS50cmltKCk7XG4gIGlmICh0cmltbWVkID09PSAnJykge1xuICAgIHJldHVybiBvcHRpb247XG4gIH1cbiAgaWYgKHRyaW1tZWQuc3BsaXQoL1xccysvKS5pbmNsdWRlcyhvcHRpb24pKSB7XG4gICAgcmV0dXJuIHRyaW1tZWQ7XG4gIH1cbiAgcmV0dXJuIGAke3RyaW1tZWR9ICR7b3B0aW9ufWA7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBlbnZpcm9ubWVudCBmb3IgY2hpbGQgcHJvY2Vzc2VzOiB0aGUgcGFyZW50IGVudmlyb25tZW50IHBsdXMgYERFQlVHX0NPTE9SU2AsIGFuZCBcdTIwMTQgd2hlblxuICogdGhlIHJ1bm5pbmcgYG5vZGVgIHN1cHBvcnRzIGl0IFx1MjAxNCB7QGxpbmsgTE9DQUxfU1RPUkFHRV9OT0RFX09QVElPTn0gYXBwZW5kZWQgdG8gYE5PREVfT1BUSU9OU2AuXG4gKlxuICogVGhlIHN1cHBvcnQgY2hlY2sgZ3VhcmRzIGFnYWluc3Qgb2xkZXIgYG5vZGVgICg8IDIyKTogcGFzc2luZyBhbiBvcHRpb24gYG5vZGVgIGRvZXMgbm90IHJlY29nbml6ZSB2aWFcbiAqIGBOT0RFX09QVElPTlNgIG1ha2VzIGl0IGV4aXQgYmVmb3JlIHJ1bm5pbmcsIHdoaWNoIHdvdWxkIGJyZWFrIGV2ZXJ5IHNwYXduZWQgdG9vbC5cbiAqXG4gKiBAcGFyYW0gYmFzZUVudiAtIFRoZSBwYXJlbnQgZW52aXJvbm1lbnQgdG8gZXh0ZW5kICh0eXBpY2FsbHkgYHByb2Nlc3MuZW52YCkuXG4gKiBAcGFyYW0gYWxsb3dlZE5vZGVFbnZpcm9ubWVudEZsYWdzIC0gVGhlIGBub2RlYCBvcHRpb25zIGFjY2VwdGVkIHZpYSBgTk9ERV9PUFRJT05TYCAodHlwaWNhbGx5IGBwcm9jZXNzLmFsbG93ZWROb2RlRW52aXJvbm1lbnRGbGFnc2ApLlxuICogQHJldHVybnMgVGhlIGVudmlyb25tZW50IHRvIHBhc3MgdG8gc3Bhd25lZCBjaGlsZCBwcm9jZXNzZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZENoaWxkRW52KGJhc2VFbnY6IE5vZGVKUy5Qcm9jZXNzRW52LCBhbGxvd2VkTm9kZUVudmlyb25tZW50RmxhZ3M6IFJlYWRvbmx5U2V0PHN0cmluZz4pOiBOb2RlSlMuUHJvY2Vzc0VudiB7XG4gIGNvbnN0IGVudjogTm9kZUpTLlByb2Nlc3NFbnYgPSB7XG4gICAgREVCVUdfQ09MT1JTOiAnMScsXG4gICAgLi4uYmFzZUVudlxuICB9O1xuICBpZiAoYWxsb3dlZE5vZGVFbnZpcm9ubWVudEZsYWdzLmhhcygnLS1sb2NhbHN0b3JhZ2UtZmlsZScpKSB7XG4gICAgZW52WydOT0RFX09QVElPTlMnXSA9IGFwcGVuZE5vZGVPcHRpb24oYmFzZUVudlsnTk9ERV9PUFRJT05TJ10sIExPQ0FMX1NUT1JBR0VfTk9ERV9PUFRJT04pO1xuICB9XG4gIHJldHVybiBlbnY7XG59XG5cbi8qKlxuICogRXhlY3V0ZXMgYSBjb21tYW5kLlxuICpcbiAqIEBwYXJhbSBjb21tYW5kIC0gVGhlIGNvbW1hbmQgdG8gZXhlY3V0ZS4gSXQgY2FuIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgZXhlY3V0aW9uLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBvdXRwdXQgb2YgdGhlIGNvbW1hbmQuXG4gKiBAdGhyb3dzIElmIHRoZSBjb21tYW5kIGZhaWxzIHdpdGggYSBub24temVybyBleGl0IGNvZGUgYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGBmYWxzZWAuXG4gKiAgICAgICAgIFRoZSBlcnJvciBtZXNzYWdlIGluY2x1ZGVzIHRoZSBleGl0IGNvZGUgYW5kIHN0ZGVyci5cbiAqICAgICAgICAgSWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgZXhlY3V0aW9uIGFuZCBpZ25vcmVFeGl0Q29kZSBpcyBgdHJ1ZWAsXG4gKiAgICAgICAgIHRoZSBlcnJvciBpcyByZXNvbHZlZCB3aXRoIHRoZSBzdGRvdXQgYW5kIHN0ZGVyci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4ZWMoY29tbWFuZDogQ29tbWFuZFBhcnRbXSB8IHN0cmluZywgb3B0aW9ucz86IEV4ZWNTaW1wbGVPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+O1xuLyoqXG4gKiBFeGVjdXRlcyBhIGNvbW1hbmQuXG4gKlxuICogQHBhcmFtIGNvbW1hbmQgLSBUaGUgY29tbWFuZCB0byBleGVjdXRlLiBJdCBjYW4gYmUgYSBzdHJpbmcgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSBleGVjdXRpb24uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggRXhlY1Jlc3VsdCBvYmplY3QuXG4gKiAgICAgICAgICBUaGUgRXhlY1Jlc3VsdCBvYmplY3QgY29udGFpbnMgdGhlIGV4aXQgY29kZSwgZXhpdCBzaWduYWwsIHN0ZGVyciwgYW5kIHN0ZG91dC5cbiAqIEB0aHJvd3MgSWYgdGhlIGNvbW1hbmQgZmFpbHMgd2l0aCBhIG5vbi16ZXJvIGV4aXQgY29kZSBhbmQgaWdub3JlRXhpdENvZGUgaXMgYGZhbHNlYC5cbiAqICAgICAgICAgVGhlIGVycm9yIG1lc3NhZ2UgaW5jbHVkZXMgdGhlIGV4aXQgY29kZSBhbmQgc3RkZXJyLlxuICogICAgICAgICBJZiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIHRoZSBleGVjdXRpb24gYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGB0cnVlYCxcbiAqICAgICAgICAgdGhlIGVycm9yIGlzIHJlc29sdmVkIHdpdGggdGhlIHN0ZG91dCBhbmQgc3RkZXJyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhlYyhjb21tYW5kOiBDb21tYW5kUGFydFtdIHwgc3RyaW5nLCBvcHRpb25zOiBFeGVjRGV0YWlsZWRPcHRpb25zKTogUHJvbWlzZTxFeGVjUmVzdWx0Pjtcbi8qKlxuICogRXhlY3V0ZXMgYSBjb21tYW5kLlxuICpcbiAqIEBwYXJhbSBjb21tYW5kIC0gVGhlIGNvbW1hbmQgdG8gZXhlY3V0ZS4gSXQgY2FuIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgZXhlY3V0aW9uLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBvdXRwdXQgb2YgdGhlIGNvbW1hbmQgb3IgYW4gRXhlY1Jlc3VsdCBvYmplY3QuXG4gKiAgICAgICAgICBUaGUgRXhlY1Jlc3VsdCBvYmplY3QgY29udGFpbnMgdGhlIGV4aXQgY29kZSwgZXhpdCBzaWduYWwsIHN0ZGVyciwgYW5kIHN0ZG91dC5cbiAqIEB0aHJvd3MgSWYgdGhlIGNvbW1hbmQgZmFpbHMgd2l0aCBhIG5vbi16ZXJvIGV4aXQgY29kZSBhbmQgaWdub3JlRXhpdENvZGUgaXMgYGZhbHNlYC5cbiAqICAgICAgICAgVGhlIGVycm9yIG1lc3NhZ2UgaW5jbHVkZXMgdGhlIGV4aXQgY29kZSBhbmQgc3RkZXJyLlxuICogICAgICAgICBJZiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIHRoZSBleGVjdXRpb24gYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGB0cnVlYCxcbiAqICAgICAgICAgdGhlIGVycm9yIGlzIHJlc29sdmVkIHdpdGggdGhlIHN0ZG91dCBhbmQgc3RkZXJyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhlYyhjb21tYW5kOiBDb21tYW5kUGFydFtdIHwgc3RyaW5nLCBvcHRpb25zOiBFeGVjT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxFeGVjUmVzdWx0IHwgc3RyaW5nPiB7XG4gIGlmIChBcnJheS5pc0FycmF5KGNvbW1hbmQpKSB7XG4gICAgY29uc3QgYmF0Y2hSZXN1bHQgPSBoYW5kbGVCYXRjaGVkQ29tbWFuZChjb21tYW5kLCBvcHRpb25zKTtcbiAgICBpZiAoYmF0Y2hSZXN1bHQpIHtcbiAgICAgIHJldHVybiBiYXRjaFJlc3VsdDtcbiAgICB9XG4gICAgY29uc3QgYXJncyA9IGNvbW1hbmQuZmlsdGVyKChwYXJ0KTogcGFydCBpcyBzdHJpbmcgPT4gdHlwZW9mIHBhcnQgPT09ICdzdHJpbmcnKTtcbiAgICBjb25zdCBjb21tYW5kTGluZSA9IHRvQ29tbWFuZExpbmUoYXJncyk7XG5cbiAgICBjb25zdCBtYXhDb21tYW5kTGVuZ3RoID0gZ2V0TWF4Q29tbWFuZExlbmd0aCgpO1xuICAgIGlmIChjb21tYW5kTGluZS5sZW5ndGggPiBtYXhDb21tYW5kTGVuZ3RoKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoXG4gICAgICAgIG5ldyBFcnJvcihcbiAgICAgICAgICBgQ29tbWFuZCBsaW5lIGlzIHRvbyBsb25nICgke1N0cmluZyhjb21tYW5kTGluZS5sZW5ndGgpfSBjaGFycywgbWF4ICR7U3RyaW5nKG1heENvbW1hbmRMZW5ndGgpfSBvbiAke3Byb2Nlc3MucGxhdGZvcm19KS4gQ29uc2lkZXIgc3BsaXR0aW5nIGludG8gc21hbGxlciBiYXRjaGVzIG9yIHVzZSBFeGVjQXJnLmBcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXhlY1N0cmluZyh7XG4gICAgICBjb21tYW5kOiBjb21tYW5kTGluZSxcbiAgICAgIG9wdGlvbnMsXG4gICAgICByYXdBcmdzOiBhcmdzXG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBtYXhDb21tYW5kTGVuZ3RoID0gZ2V0TWF4Q29tbWFuZExlbmd0aCgpO1xuICBpZiAoY29tbWFuZC5sZW5ndGggPiBtYXhDb21tYW5kTGVuZ3RoKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KFxuICAgICAgbmV3IEVycm9yKFxuICAgICAgICBgQ29tbWFuZCBsaW5lIGlzIHRvbyBsb25nICgke1N0cmluZyhjb21tYW5kLmxlbmd0aCl9IGNoYXJzLCBtYXggJHtTdHJpbmcobWF4Q29tbWFuZExlbmd0aCl9IG9uICR7cHJvY2Vzcy5wbGF0Zm9ybX0pLiBDb25zaWRlciBzcGxpdHRpbmcgaW50byBzbWFsbGVyIGJhdGNoZXMgb3IgdXNlIEV4ZWNBcmcuYFxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICByZXR1cm4gZXhlY1N0cmluZyh7XG4gICAgY29tbWFuZCxcbiAgICBvcHRpb25zXG4gIH0pO1xufVxuXG4vKipcbiAqIEV4ZWN1dGVzIGEgc2luZ2xlIHN0cmluZyBjb21tYW5kLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGV4ZWN1dGlvbi5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHJlc3VsdC5cbiAqL1xuZnVuY3Rpb24gZXhlY1N0cmluZyhwYXJhbXM6IEV4ZWNTdHJpbmdQYXJhbXMpOiBQcm9taXNlPEV4ZWNSZXN1bHQgfCBzdHJpbmc+IHtcbiAgY29uc3Qge1xuICAgIGNvbW1hbmQsXG4gICAgb3B0aW9ucyA9IHt9LFxuICAgIHJhd0FyZ3NcbiAgfSA9IHBhcmFtcztcbiAgY29uc3Qge1xuICAgIGN3ZCA9IHByb2Nlc3MuY3dkKCksXG4gICAgaXNRdWlldDogcXVpZXQgPSBmYWxzZSxcbiAgICBzaG91bGRJZ25vcmVFeGl0Q29kZTogaWdub3JlRXhpdENvZGUgPSBmYWxzZSxcbiAgICBzaG91bGRJbmNsdWRlRGV0YWlscyA9IGZhbHNlLFxuICAgIHN0ZGluID0gJydcbiAgfSA9IG9wdGlvbnM7XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBnZXRMaWJEZWJ1Z2dlcignRXhlYycpKGBFeGVjdXRpbmcgY29tbWFuZDogJHtjb21tYW5kfWApO1xuXG4gICAgY29uc3QgY2hpbGQgPSBzcGF3blZpYVNoZWxsKG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllczxTcGF3blZpYVNoZWxsUGFyYW1zPih7XG4gICAgICBjb21tYW5kLFxuICAgICAgY3dkLFxuICAgICAgcmF3QXJnc1xuICAgIH0pKTtcblxuICAgIGxldCBzdGRvdXQgPSAnJztcbiAgICBsZXQgc3RkZXJyID0gJyc7XG5cbiAgICBjaGlsZC5zdGRpbi53cml0ZShzdGRpbik7XG4gICAgY2hpbGQuc3RkaW4uZW5kKCk7XG5cbiAgICBjaGlsZC5zdGRvdXQub24oJ2RhdGEnLCAoZGF0YTogQnVmZmVyKSA9PiB7XG4gICAgICBpZiAoIXF1aWV0KSB7XG4gICAgICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGRhdGEpO1xuICAgICAgfVxuICAgICAgc3Rkb3V0ICs9IGRhdGEudG9TdHJpbmcoJ3V0Zi04Jyk7XG4gICAgfSk7XG5cbiAgICBjaGlsZC5zdGRvdXQub24oJ2VuZCcsICgpID0+IHtcbiAgICAgIHN0ZG91dCA9IHRyaW1FbmQoe1xuICAgICAgICBzdHI6IHN0ZG91dCxcbiAgICAgICAgc3VmZml4OiAnXFxuJ1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBjaGlsZC5zdGRlcnIub24oJ2RhdGEnLCAoZGF0YTogQnVmZmVyKSA9PiB7XG4gICAgICBpZiAoIXF1aWV0KSB7XG4gICAgICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlKGRhdGEpO1xuICAgICAgfVxuICAgICAgc3RkZXJyICs9IGRhdGEudG9TdHJpbmcoJ3V0Zi04Jyk7XG4gICAgfSk7XG5cbiAgICBjaGlsZC5zdGRlcnIub24oJ2VuZCcsICgpID0+IHtcbiAgICAgIHN0ZGVyciA9IHRyaW1FbmQoe1xuICAgICAgICBzdHI6IHN0ZGVycixcbiAgICAgICAgc3VmZml4OiAnXFxuJ1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBjaGlsZC5vbignY2xvc2UnLCAoZXhpdENvZGUsIGV4aXRTaWduYWwpID0+IHtcbiAgICAgIGlmIChleGl0Q29kZSAhPT0gMCAmJiAhaWdub3JlRXhpdENvZGUpIHtcbiAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihgQ29tbWFuZCBmYWlsZWQgd2l0aCBleGl0IGNvZGUgJHtleGl0Q29kZSA/IFN0cmluZyhleGl0Q29kZSkgOiAnKG51bGwpJ31cXG4ke3N0ZGVycn1gKSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFzaG91bGRJbmNsdWRlRGV0YWlscykge1xuICAgICAgICByZXNvbHZlKHN0ZG91dCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJlc29sdmUoe1xuICAgICAgICBleGl0Q29kZSxcbiAgICAgICAgZXhpdFNpZ25hbCxcbiAgICAgICAgc3RkZXJyLFxuICAgICAgICBzdGRvdXRcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgY2hpbGQub24oJ2Vycm9yJywgKGVycikgPT4ge1xuICAgICAgaWYgKCFpZ25vcmVFeGl0Q29kZSkge1xuICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXNob3VsZEluY2x1ZGVEZXRhaWxzKSB7XG4gICAgICAgIHJlc29sdmUoc3Rkb3V0KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICByZXNvbHZlKHtcbiAgICAgICAgZXhpdENvZGU6IG51bGwsXG4gICAgICAgIGV4aXRTaWduYWw6IG51bGwsXG4gICAgICAgIHN0ZGVycixcbiAgICAgICAgc3Rkb3V0XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbi8qKlxuICogQSBgbm9kZWAgQ0xJIG9wdGlvbiAocGFzc2VkIHZpYSBgTk9ERV9PUFRJT05TYCkgdGhhdCBwcm92aWRlcyBhbiBpbi1tZW1vcnkgYGxvY2FsU3RvcmFnZWAgdG8gZXZlcnlcbiAqIHNwYXduZWQgYG5vZGVgIHByb2Nlc3MuIE5vZGUgMjIrIGV4cG9zZXMgYW4gZXhwZXJpbWVudGFsIFdlYiBTdG9yYWdlIGBsb2NhbFN0b3JhZ2VgLCBidXQgYWNjZXNzaW5nIGl0XG4gKiB3aXRob3V0IGAtLWxvY2Fsc3RvcmFnZS1maWxlYCBlbWl0cyBhbiBgRXhwZXJpbWVudGFsV2FybmluZ2AgYW5kIGxlYXZlcyBgbG9jYWxTdG9yYWdlYCB1bmF2YWlsYWJsZS5cbiAqIFBvaW50aW5nIGl0IGF0IHRoZSBzcGVjaWFsIGA6bWVtb3J5OmAgZGF0YWJhc2UgZ2l2ZXMgZWFjaCBwcm9jZXNzIGEgd29ya2luZywgbm9uLXBlcnNpc3RlbnRcbiAqIGBsb2NhbFN0b3JhZ2VgIChubyBmaWxlIG9uIGRpc2ssIG5vIHN0YXRlIHNoYXJlZCBiZXR3ZWVuIHByb2Nlc3NlcykgXHUyMDE0IG1hdGNoaW5nIHRoZSByZWFsIE9ic2lkaWFuXG4gKiAoRWxlY3Ryb24pIHJ1bnRpbWUgYW5kIHNpbGVuY2luZyB0aGUgd2FybmluZyBieSBhZGRyZXNzaW5nIGl0cyByb290IGNhdXNlIHJhdGhlciB0aGFuIHN1cHByZXNzaW5nIGl0LlxuICpcbiAqIEl0IGlzIGFwcGxpZWQgb25seSB3aGVuIHRoZSBydW5uaW5nIGBub2RlYCBhY3R1YWxseSBzdXBwb3J0cyBpdCAoc2VlIHtAbGluayBidWlsZENoaWxkRW52fSk6IHBhc3NpbmdcbiAqIGFuIG9wdGlvbiBgbm9kZWAgZG9lcyBub3QgcmVjb2duaXplIHZpYSBgTk9ERV9PUFRJT05TYCBtYWtlcyBpdCByZWZ1c2UgdG8gc3RhcnQsIHNvIGFuIG9sZGVyIGBub2RlYFxuICogKDwgMjIpIG11c3QgYmUgbGVmdCB1bnRvdWNoZWQuXG4gKi9cbmNvbnN0IExPQ0FMX1NUT1JBR0VfTk9ERV9PUFRJT04gPSAnLS1sb2NhbHN0b3JhZ2UtZmlsZT06bWVtb3J5Oic7XG5cbi8qKlxuICogRGVmYXVsdCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgcGFzc2VkIHRvIGNoaWxkIHByb2Nlc3Nlcy5cbiAqL1xuY29uc3QgQ0hJTERfRU5WID0gYnVpbGRDaGlsZEVudihwcm9jZXNzLmVudiwgcHJvY2Vzcy5hbGxvd2VkTm9kZUVudmlyb25tZW50RmxhZ3MpO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBleGVjdXRlQmF0Y2hlc30uXG4gKi9cbmludGVyZmFjZSBFeGVjdXRlQmF0Y2hlc1BhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgYmFzZSBjb21tYW5kIHdpdGhvdXQgYmF0Y2hlZCBhcmdzLlxuICAgKi9cbiAgcmVhZG9ubHkgYmFzZUNvbW1hbmQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGJhdGNoZXMgb2YgYXJncy5cbiAgICovXG4gIHJlYWRvbmx5IGJhdGNoZXM6IHN0cmluZ1tdW107XG5cbiAgLyoqXG4gICAqIFRoZSBleGVjIG9wdGlvbnMuXG4gICAqL1xuICByZWFkb25seSBvcHRpb25zOiBFeGVjT3B0aW9ucztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgc3Bhd25WaWFTaGVsbH0uXG4gKi9cbmludGVyZmFjZSBTcGF3blZpYVNoZWxsUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBjb21tYW5kIHN0cmluZyB0byBleGVjdXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWFuZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgd29ya2luZyBkaXJlY3RvcnkuXG4gICAqL1xuICByZWFkb25seSBjd2Q6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG9yaWdpbmFsIGFyZ3VtZW50IGFycmF5IChpZiBhdmFpbGFibGUpLlxuICAgKi9cbiAgcmVhZG9ubHkgcmF3QXJncz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEV4ZWN1dGVzIGJhdGNoZWQgY29tbWFuZHMgc2VxdWVudGlhbGx5IGFuZCBjb25jYXRlbmF0ZXMgc3Rkb3V0LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGJhdGNoZWQgZXhlY3V0aW9uLlxuICogQHJldHVybnMgQSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY29uY2F0ZW5hdGVkIHJlc3VsdC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZUJhdGNoZXMocGFyYW1zOiBFeGVjdXRlQmF0Y2hlc1BhcmFtcyk6IFByb21pc2U8RXhlY1Jlc3VsdCB8IHN0cmluZz4ge1xuICBjb25zdCB7IGJhc2VDb21tYW5kLCBiYXRjaGVzLCBvcHRpb25zIH0gPSBwYXJhbXM7XG4gIGNvbnN0IHJlc3VsdHM6IHN0cmluZ1tdID0gW107XG5cbiAgZm9yIChjb25zdCBiYXRjaCBvZiBiYXRjaGVzKSB7XG4gICAgY29uc3QgYmF0Y2hDb21tYW5kID0gYCR7YmFzZUNvbW1hbmR9ICR7YmF0Y2guam9pbignICcpfWA7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZXhlY1N0cmluZyh7XG4gICAgICBjb21tYW5kOiBiYXRjaENvbW1hbmQsXG4gICAgICBvcHRpb25zXG4gICAgfSk7XG4gICAgaWYgKHR5cGVvZiByZXN1bHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXN1bHRzLnB1c2gocmVzdWx0KTtcbiAgICB9XG4gIH1cblxuICBpZiAob3B0aW9ucy5zaG91bGRJbmNsdWRlRGV0YWlscykge1xuICAgIHJldHVybiB7IGV4aXRDb2RlOiAwLCBleGl0U2lnbmFsOiBudWxsLCBzdGRlcnI6ICcnLCBzdGRvdXQ6IHJlc3VsdHMuam9pbignXFxuJykgfTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHRzLmpvaW4oJ1xcbicpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHBsYXRmb3JtLXNwZWNpZmljIG1heCBjb21tYW5kIGxpbmUgbGVuZ3RoLlxuICpcbiAqIEByZXR1cm5zIFRoZSBtYXggY29tbWFuZCBsZW5ndGggaW4gY2hhcmFjdGVycy5cbiAqL1xuZnVuY3Rpb24gZ2V0TWF4Q29tbWFuZExlbmd0aCgpOiBudW1iZXIge1xuICBjb25zdCBXSU5ET1dTX01BWF9DT01NQU5EX0xFTkdUSCA9IDgxOTE7XG4gIGNvbnN0IFVOSVhfTUFYX0NPTU1BTkRfTEVOR1RIID0gMTMxMDcyO1xuICByZXR1cm4gcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJyA/IFdJTkRPV1NfTUFYX0NPTU1BTkRfTEVOR1RIIDogVU5JWF9NQVhfQ09NTUFORF9MRU5HVEg7XG59XG5cbi8qKlxuICogSGFuZGxlcyBhIGNvbW1hbmQgYXJyYXkgdGhhdCBtYXkgY29udGFpbiBhbiB7QGxpbmsgRXhlY0FyZ30uXG4gKiBSZXR1cm5zIGEgUHJvbWlzZSBpZiBiYXRjaGluZyBpcyBuZWVkZWQsIG9yIGB1bmRlZmluZWRgIGlmIHRoZSBjb21tYW5kXG4gKiBoYXMgbm8gRXhlY0FyZyBhbmQgc2hvdWxkIGJlIHByb2Nlc3NlZCBub3JtYWxseS5cbiAqXG4gKiBAcGFyYW0gcGFydHMgLSBUaGUgY29tbWFuZCBwYXJ0cy5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIGV4ZWMgb3B0aW9ucy5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSBpZiBiYXRjaGluZyBpcyBoYW5kbGVkLCBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZnVuY3Rpb24gaGFuZGxlQmF0Y2hlZENvbW1hbmQocGFydHM6IENvbW1hbmRQYXJ0W10sIG9wdGlvbnM6IEV4ZWNPcHRpb25zKTogUHJvbWlzZTxFeGVjUmVzdWx0IHwgc3RyaW5nPiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGV4ZWNBcmdzID0gcGFydHMuZmlsdGVyKGlzRXhlY0FyZyk7XG4gIGlmIChleGVjQXJncy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGlmIChleGVjQXJncy5sZW5ndGggPiAxKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcignT25seSBvbmUgRXhlY0FyZyB3aXRoIGJhdGNoZWRBcmdzIGlzIGFsbG93ZWQgcGVyIGNvbW1hbmQnKSk7XG4gIH1cblxuICBjb25zdCBleGVjQXJnID0gZXhlY0FyZ3NbMF07XG4gIGFzc2VydE5vbk51bGxhYmxlKGV4ZWNBcmcpO1xuICBjb25zdCBzdGF0aWNQYXJ0cyA9IHBhcnRzLmZpbHRlcigocGFydCk6IHBhcnQgaXMgc3RyaW5nID0+IHR5cGVvZiBwYXJ0ID09PSAnc3RyaW5nJyk7XG4gIGNvbnN0IGJhc2VDb21tYW5kID0gdG9Db21tYW5kTGluZShzdGF0aWNQYXJ0cyk7XG4gIGNvbnN0IG1heENvbW1hbmRMZW5ndGggPSBnZXRNYXhDb21tYW5kTGVuZ3RoKCk7XG5cbiAgLy8gVHJ5IGV4cGFuZGluZyBhbGwgYXJncyBpbmxpbmVcbiAgY29uc3QgZnVsbENvbW1hbmQgPSBgJHtiYXNlQ29tbWFuZH0gJHtleGVjQXJnLmJhdGNoZWRBcmdzLmpvaW4oJyAnKX1gO1xuICBpZiAoZnVsbENvbW1hbmQubGVuZ3RoIDw9IG1heENvbW1hbmRMZW5ndGgpIHtcbiAgICByZXR1cm4gZXhlY1N0cmluZyh7XG4gICAgICBjb21tYW5kOiBmdWxsQ29tbWFuZCxcbiAgICAgIG9wdGlvbnNcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFNwbGl0IGludG8gYmF0Y2hlc1xuICBjb25zdCBiYXRjaGVzOiBzdHJpbmdbXVtdID0gW107XG4gIGxldCBjdXJyZW50QmF0Y2g6IHN0cmluZ1tdID0gW107XG5cbiAgZm9yIChjb25zdCBhcmcgb2YgZXhlY0FyZy5iYXRjaGVkQXJncykge1xuICAgIGNvbnN0IHRlbnRhdGl2ZSA9IGAke2Jhc2VDb21tYW5kfSAke1suLi5jdXJyZW50QmF0Y2gsIGFyZ10uam9pbignICcpfWA7XG4gICAgaWYgKHRlbnRhdGl2ZS5sZW5ndGggPiBtYXhDb21tYW5kTGVuZ3RoKSB7XG4gICAgICBpZiAoY3VycmVudEJhdGNoLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoXG4gICAgICAgICAgbmV3IEVycm9yKFxuICAgICAgICAgICAgYENhbm5vdCBzcGxpdCBjb21tYW5kIGludG8gYmF0Y2hlczogYSBzaW5nbGUgYXJndW1lbnQgKCR7U3RyaW5nKGFyZy5sZW5ndGgpfSBjaGFycykgcGx1cyB0aGUgYmFzZSBjb21tYW5kICgke1N0cmluZyhiYXNlQ29tbWFuZC5sZW5ndGgpfSBjaGFycykgZXhjZWVkcyB0aGUgbWF4IGNvbW1hbmQgbGVuZ3RoICgke1N0cmluZyhtYXhDb21tYW5kTGVuZ3RoKX0pLmBcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBiYXRjaGVzLnB1c2goY3VycmVudEJhdGNoKTtcbiAgICAgIGN1cnJlbnRCYXRjaCA9IFthcmddO1xuICAgIH0gZWxzZSB7XG4gICAgICBjdXJyZW50QmF0Y2gucHVzaChhcmcpO1xuICAgIH1cbiAgfVxuICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gQWx3YXlzIHRydWUgYWZ0ZXIgdGhlIGxvb3A7IGJhdGNoZWRBcmdzIGlzIG5vbi1lbXB0eSBhdCB0aGlzIHBvaW50LiAqL1xuICBpZiAoY3VycmVudEJhdGNoLmxlbmd0aCA+IDApIHtcbiAgICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICAgIGJhdGNoZXMucHVzaChjdXJyZW50QmF0Y2gpO1xuICB9XG5cbiAgcmV0dXJuIGV4ZWN1dGVCYXRjaGVzKHtcbiAgICBiYXNlQ29tbWFuZCxcbiAgICBiYXRjaGVzLFxuICAgIG9wdGlvbnNcbiAgfSk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgY29tbWFuZCBwYXJ0IGlzIGFuIHtAbGluayBFeGVjQXJnfS5cbiAqXG4gKiBAcGFyYW0gcGFydCAtIFRoZSBjb21tYW5kIHBhcnQgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBwYXJ0IGlzIGFuIEV4ZWNBcmcuXG4gKi9cbmZ1bmN0aW9uIGlzRXhlY0FyZyhwYXJ0OiBDb21tYW5kUGFydCk6IHBhcnQgaXMgRXhlY0FyZyB7XG4gIHJldHVybiB0eXBlb2YgcGFydCA9PT0gJ29iamVjdCcgJiYgJ2JhdGNoZWRBcmdzJyBpbiBwYXJ0O1xufVxuXG4vKipcbiAqIFNwYXducyBhIGNoaWxkIHByb2Nlc3MgdmlhIHRoZSBhcHByb3ByaWF0ZSBzaGVsbC5cbiAqXG4gKiBPbiBXaW5kb3dzLCBpZiB0aGUgY29tbWFuZCBjb250YWlucyBuZXdsaW5lcyAod2hpY2ggYGNtZC5leGVgIGNhbm5vdCBoYW5kbGUpXG4gKiBhbmQgdGhlIHJhdyBhcmdzIGFycmF5IGlzIGF2YWlsYWJsZSwgc3Bhd25zIHRoZSBwcm9jZXNzIGRpcmVjdGx5IHdpdGhvdXRcbiAqIGFueSBzaGVsbCBcdTIwMTQgcGFzc2luZyBhcmdzIHZpYSBgQ3JlYXRlUHJvY2Vzc2AsIHdoaWNoIGF2b2lkcyBhbGwgcXVvdGluZyBpc3N1ZXMuXG4gKlxuICogT24gV2luZG93cyAoY21kLmV4ZSBwYXRoKSwgYXBwbGllcyBgXmAtZXNjYXBpbmcgZm9yIGNtZCBtZXRhY2hhcmFjdGVycy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHNwYXduaW5nIHRoZSBjaGlsZCBwcm9jZXNzLlxuICogQHJldHVybnMgVGhlIHNwYXduZWQgY2hpbGQgcHJvY2Vzcy5cbiAqL1xuZnVuY3Rpb24gc3Bhd25WaWFTaGVsbChwYXJhbXM6IFNwYXduVmlhU2hlbGxQYXJhbXMpOiBDaGlsZFByb2Nlc3NXaXRob3V0TnVsbFN0cmVhbXMge1xuICBjb25zdCB7IGNvbW1hbmQsIGN3ZCwgcmF3QXJncyB9ID0gcGFyYW1zO1xuICBpZiAocHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJyAmJiBjb21tYW5kLmluY2x1ZGVzKCdcXG4nKSkge1xuICAgIGlmICghcmF3QXJncykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb21tYW5kcyBjb250YWluaW5nIG5ld2xpbmVzIGNhbm5vdCBiZSBleGVjdXRlZCB0aHJvdWdoIGNtZC5leGUgb24gV2luZG93cy4gUGFzcyBhbiBhcmd1bWVudCBhcnJheSBpbnN0ZWFkIG9mIGEgc3RyaW5nLicpO1xuICAgIH1cbiAgICBjb25zdCBbcHJvZ3JhbSwgLi4uYXJnc10gPSByYXdBcmdzO1xuICAgIGFzc2VydE5vbk51bGxhYmxlKHByb2dyYW0sICdDb21tYW5kIGFycmF5IG11c3Qgbm90IGJlIGVtcHR5Jyk7XG4gICAgcmV0dXJuIHNwYXduKHByb2dyYW0sIGFyZ3MsIHtcbiAgICAgIGN3ZCxcbiAgICAgIGVudjogQ0hJTERfRU5WLFxuICAgICAgc3RkaW86ICdwaXBlJ1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3Qgc2hlbGxDb21tYW5kID0gcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJyA/IGNtZEVzY2FwZUNvbW1hbmRMaW5lKGNvbW1hbmQpIDogY29tbWFuZDtcbiAgcmV0dXJuIHNwYXduKHNoZWxsQ29tbWFuZCwgW10sIHtcbiAgICBjd2QsXG4gICAgZW52OiBDSElMRF9FTlYsXG4gICAgc2hlbGw6IHRydWUsXG4gICAgc3RkaW86ICdwaXBlJ1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUEsZ0NBQXNCO0FBQ3RCLDBCQUFvQjtBQUVwQixtQkFBK0I7QUFDL0IsMEJBQTRDO0FBQzVDLG9CQUF3QjtBQUN4Qix5QkFBa0M7QUFDbEMsdUJBR087QUEwSUEsU0FBUyxpQkFBaUIs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QUFZLEtBQUssR0FBRyxDQUFDO0FBQ25FLE1BQUksWUFBWSxVQUFVLGtCQUFrQjtBQUMxQyxXQUFPLFdBQVc7QUFBQSxNQUNoQixTQUFTO0FBQUEsTUFDVDtBQUFBLElBQ0YsQ0FBQztBQUFBLEVBQ0g7QUFHQSxRQUFNLFVBQXNCLENBQUM7QUFDN0IsTUFBSSxlQUF5QixDQUFDO0FBRTlCLGFBQVcsT0FBTyxRQUFRLGFBQWE7QUFDckMsVUFBTSxZQUFZLEdBQUcsV0FBVyxJQUFJLENBQUMsR0FBRyxjQUFjLEdBQUcsRUFBRSxLQUFLLEdBQUcsQ0FBQztBQUNwRSxRQUFJLFVBQVUsU0FBUyxrQkFBa0I7QUFDdkMsVUFBSSxhQUFhLFdBQVcsR0FBRztBQUM3QixlQUFPLFFBQVE7QUFBQSxVQUNiLElBQUk7QUFBQSxZQUNGLHlEQUF5RCxPQUFPLElBQUksTUFBTSxDQUFDLGtDQUFrQyxPQUFPLFlBQVksTUFBTSxDQUFDLDJDQUEyQyxPQUFPLGdCQUFnQixDQUFDO0FBQUEsVUFDNU07QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUNBLGNBQVEsS0FBSyxZQUFZO0FBQ3pCLHFCQUFlLENBQUMsR0FBRztBQUFBLElBQ3JCLE9BQU87QUFDTCxtQkFBYSxLQUFLLEdBQUc7QUFBQSxJQUN2QjtBQUFBLEVBQ0Y7QUFFQSxNQUFJLGFBQWEsU0FBUyxHQUFHO0FBRTNCLFlBQVEsS0FBSyxZQUFZO0FBQUEsRUFDM0I7QUFFQSxTQUFPLGVBQWU7QUFBQSxJQUNwQjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsRUFDRixDQUFDO0FBQ0g7QUFRQSxTQUFTLFVBQVUsTUFBb0M7QUFDckQsU0FBTyxPQUFPLFNBQVMsWUFBWSxpQkFBaUI7QUFDdEQ7QUFjQSxTQUFTLGNBQWMsUUFBNkQ7QUFDbEYsUUFBTSxFQUFFLFNBQVMsS0FBSyxRQUFRLElBQUk7QUFDbEMsTUFBSSxvQkFBQUEsUUFBUSxhQUFhLFdBQVcsUUFBUSxTQUFTLElBQUksR0FBRztBQUMxRCxRQUFJLENBQUMsU0FBUztBQUNaLFlBQU0sSUFBSSxNQUFNLHlIQUF5SDtBQUFBLElBQzNJO0FBQ0EsVUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLElBQUk7QUFDM0IsOENBQWtCLFNBQVMsaUNBQWlDO0FBQzVELGVBQU8saUNBQU0sU0FBUyxNQUFNO0FBQUEsTUFDMUI7QUFBQSxNQUNBLEtBQUs7QUFBQSxNQUNMLE9BQU87QUFBQSxJQUNULENBQUM7QUFBQSxFQUNIO0FBRUEsUUFBTSxlQUFlLG9CQUFBQSxRQUFRLGFBQWEsY0FBVSx1Q0FBcUIsT0FBTyxJQUFJO0FBQ3BGLGFBQU8saUNBQU0sY0FBYyxDQUFDLEdBQUc7QUFBQSxJQUM3QjtBQUFBLElBQ0EsS0FBSztBQUFBLElBQ0wsT0FBTztBQUFBLElBQ1AsT0FBTztBQUFBLEVBQ1QsQ0FBQztBQUNIOyIsCiAgIm5hbWVzIjogWyJtYXhDb21tYW5kTGVuZ3RoIiwgInByb2Nlc3MiXQp9Cg==
@@ -99,6 +99,26 @@ export interface ExecSimpleOptions extends ExecOptions {
99
99
  */
100
100
  readonly shouldIncludeDetails?: false;
101
101
  }
102
+ /**
103
+ * Appends a single `node` CLI option to a `NODE_OPTIONS` string, preserving any options already present.
104
+ *
105
+ * @param existingNodeOptions - The current `NODE_OPTIONS` value (e.g. `process.env.NODE_OPTIONS`), if any.
106
+ * @param option - The `node` CLI option to append (e.g. `--localstorage-file=:memory:`).
107
+ * @returns The combined `NODE_OPTIONS` string. If `option` is already present, the value is returned unchanged.
108
+ */
109
+ export declare function appendNodeOption(existingNodeOptions: string | undefined, option: string): string;
110
+ /**
111
+ * Builds the environment for child processes: the parent environment plus `DEBUG_COLORS`, and — when
112
+ * the running `node` supports it — {@link LOCAL_STORAGE_NODE_OPTION} appended to `NODE_OPTIONS`.
113
+ *
114
+ * The support check guards against older `node` (< 22): passing an option `node` does not recognize via
115
+ * `NODE_OPTIONS` makes it exit before running, which would break every spawned tool.
116
+ *
117
+ * @param baseEnv - The parent environment to extend (typically `process.env`).
118
+ * @param allowedNodeEnvironmentFlags - The `node` options accepted via `NODE_OPTIONS` (typically `process.allowedNodeEnvironmentFlags`).
119
+ * @returns The environment to pass to spawned child processes.
120
+ */
121
+ export declare function buildChildEnv(baseEnv: NodeJS.ProcessEnv, allowedNodeEnvironmentFlags: ReadonlySet<string>): NodeJS.ProcessEnv;
102
122
  /**
103
123
  * Executes a command.
104
124
  *
@@ -141,6 +141,7 @@ __export(script_utils_exports, {
141
141
  "cli-utils": () => cli_utils,
142
142
  "code-generator": () => code_generator,
143
143
  "commitlint-config": () => commitlint_config,
144
+ "demo-vault": () => demo_vault,
144
145
  exec: () => exec,
145
146
  formatters: () => formatters,
146
147
  fs: () => fs,
@@ -154,7 +155,8 @@ __export(script_utils_exports, {
154
155
  root: () => root,
155
156
  "test-runners": () => test_runners,
156
157
  "validate-declarations": () => validate_declarations,
157
- version: () => version
158
+ version: () => version,
159
+ "warnings-as-errors": () => warnings_as_errors
158
160
  });
159
161
  module.exports = __toCommonJS(script_utils_exports);
160
162
  var build = __toESM(__extractDefault(require('./build.cjs')), 1);
@@ -163,6 +165,7 @@ var check_project_types = __toESM(__extractDefault(require('./check-project-type
163
165
  var cli_utils = __toESM(__extractDefault(require('./cli-utils.cjs')), 1);
164
166
  var code_generator = __toESM(__extractDefault(require('./code-generator.cjs')), 1);
165
167
  var commitlint_config = __toESM(__extractDefault(require('./commitlint-config.cjs')), 1);
168
+ var demo_vault = __toESM(__extractDefault(require('./demo-vault.cjs')), 1);
166
169
  var exec = __toESM(__extractDefault(require('./exec.cjs')), 1);
167
170
  var formatters = __toESM(__extractDefault(require('./formatters/index.cjs')), 1);
168
171
  var fs = __toESM(__extractDefault(require('./fs.cjs')), 1);
@@ -177,6 +180,7 @@ var root = __toESM(__extractDefault(require('./root.cjs')), 1);
177
180
  var test_runners = __toESM(__extractDefault(require('./test-runners/index.cjs')), 1);
178
181
  var validate_declarations = __toESM(__extractDefault(require('./validate-declarations.cjs')), 1);
179
182
  var version = __toESM(__extractDefault(require('./version.cjs')), 1);
183
+ var warnings_as_errors = __toESM(__extractDefault(require('./warnings-as-errors.cjs')), 1);
180
184
  // Annotate the CommonJS export names for ESM import in node:
181
185
  0 && (module.exports = {
182
186
  build,
@@ -185,6 +189,7 @@ var version = __toESM(__extractDefault(require('./version.cjs')), 1);
185
189
  "cli-utils": null,
186
190
  "code-generator": null,
187
191
  "commitlint-config": null,
192
+ "demo-vault": null,
188
193
  exec,
189
194
  formatters,
190
195
  fs,
@@ -198,6 +203,7 @@ var version = __toESM(__extractDefault(require('./version.cjs')), 1);
198
203
  root,
199
204
  "test-runners": null,
200
205
  "validate-declarations": null,
201
- version
206
+ version,
207
+ "warnings-as-errors": null
202
208
  });
203
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzICdidWlsZCcgZnJvbSAnLi9idWlsZC50cyc7XG5leHBvcnQgKiBhcyAnYnVuZGxlcnMnIGZyb20gJy4vYnVuZGxlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2NoZWNrLXByb2plY3QtdHlwZXMnIGZyb20gJy4vY2hlY2stcHJvamVjdC10eXBlcy50cyc7XG5leHBvcnQgKiBhcyAnY2xpLXV0aWxzJyBmcm9tICcuL2NsaS11dGlscy50cyc7XG5leHBvcnQgKiBhcyAnY29kZS1nZW5lcmF0b3InIGZyb20gJy4vY29kZS1nZW5lcmF0b3IudHMnO1xuZXhwb3J0ICogYXMgJ2NvbW1pdGxpbnQtY29uZmlnJyBmcm9tICcuL2NvbW1pdGxpbnQtY29uZmlnLnRzJztcbmV4cG9ydCAqIGFzICdleGVjJyBmcm9tICcuL2V4ZWMudHMnO1xuZXhwb3J0ICogYXMgJ2Zvcm1hdHRlcnMnIGZyb20gJy4vZm9ybWF0dGVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnZnMnIGZyb20gJy4vZnMudHMnO1xuZXhwb3J0ICogYXMgJ2pzb24nIGZyb20gJy4vanNvbi50cyc7XG5leHBvcnQgKiBhcyAnbGludGVycycgZnJvbSAnLi9saW50ZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICduYW5vLXN0YWdlZC1jb25maWcnIGZyb20gJy4vbmFuby1zdGFnZWQtY29uZmlnLnRzJztcbmV4cG9ydCAqIGFzICducG0tcHVibGlzaCcgZnJvbSAnLi9ucG0tcHVibGlzaC50cyc7XG5leHBvcnQgKiBhcyAnbnBtLXJ1bicgZnJvbSAnLi9ucG0tcnVuLnRzJztcbmV4cG9ydCAqIGFzICducG0nIGZyb20gJy4vbnBtLnRzJztcbmV4cG9ydCAqIGFzICdvYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocycgZnJvbSAnLi9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyc7XG5leHBvcnQgKiBhcyAncm9vdCcgZnJvbSAnLi9yb290LnRzJztcbmV4cG9ydCAqIGFzICd0ZXN0LXJ1bm5lcnMnIGZyb20gJy4vdGVzdC1ydW5uZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICd2YWxpZGF0ZS1kZWNsYXJhdGlvbnMnIGZyb20gJy4vdmFsaWRhdGUtZGVjbGFyYXRpb25zLnRzJztcbmV4cG9ydCAqIGFzICd2ZXJzaW9uJyBmcm9tICcuL3ZlcnNpb24udHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSwrQkFBQUE7QUFBQSxFQUFBLG1CQUFBQztBQUFBLEVBQUEsd0JBQUFDO0FBQUEsRUFBQSwyQkFBQUM7QUFBQSxFQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSw4QkFBQUM7QUFBQSxFQUFBO0FBQUEsdUJBQUFDO0FBQUEsRUFBQSxpQkFBQUM7QUFBQSxFQUFBLHVDQUFBQztBQUFBLEVBQUE7QUFBQSx3QkFBQUM7QUFBQSxFQUFBLCtCQUFBQztBQUFBLEVBQUE7QUFBQTtBQUFBO0FBRUEsWUFBeUI7QUFDekIsZUFBNEI7QUFDNUIsSUFBQVQsc0JBQXVDO0FBQ3ZDLElBQUFDLFlBQTZCO0FBQzdCLElBQUFDLGlCQUFrQztBQUNsQyxJQUFBQyxvQkFBcUM7QUFDckMsV0FBd0I7QUFDeEIsaUJBQThCO0FBQzlCLFNBQXNCO0FBQ3RCLFdBQXdCO0FBQ3hCLGNBQTJCO0FBQzNCLElBQUFDLHFCQUFzQztBQUN0QyxJQUFBQyxjQUErQjtBQUMvQixJQUFBQyxVQUEyQjtBQUMzQixVQUF1QjtBQUN2QixJQUFBQyxnQ0FBaUQ7QUFDakQsV0FBd0I7QUFDeEIsSUFBQUMsZUFBZ0M7QUFDaEMsSUFBQUMsd0JBQXlDO0FBQ3pDLGNBQTJCOyIsCiAgIm5hbWVzIjogWyJjaGVjay1wcm9qZWN0LXR5cGVzIiwgImNsaS11dGlscyIsICJjb2RlLWdlbmVyYXRvciIsICJjb21taXRsaW50LWNvbmZpZyIsICJuYW5vLXN0YWdlZC1jb25maWciLCAibnBtLXB1Ymxpc2giLCAibnBtLXJ1biIsICJvYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocyIsICJ0ZXN0LXJ1bm5lcnMiLCAidmFsaWRhdGUtZGVjbGFyYXRpb25zIl0KfQo=
209
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzICdidWlsZCcgZnJvbSAnLi9idWlsZC50cyc7XG5leHBvcnQgKiBhcyAnYnVuZGxlcnMnIGZyb20gJy4vYnVuZGxlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2NoZWNrLXByb2plY3QtdHlwZXMnIGZyb20gJy4vY2hlY2stcHJvamVjdC10eXBlcy50cyc7XG5leHBvcnQgKiBhcyAnY2xpLXV0aWxzJyBmcm9tICcuL2NsaS11dGlscy50cyc7XG5leHBvcnQgKiBhcyAnY29kZS1nZW5lcmF0b3InIGZyb20gJy4vY29kZS1nZW5lcmF0b3IudHMnO1xuZXhwb3J0ICogYXMgJ2NvbW1pdGxpbnQtY29uZmlnJyBmcm9tICcuL2NvbW1pdGxpbnQtY29uZmlnLnRzJztcbmV4cG9ydCAqIGFzICdkZW1vLXZhdWx0JyBmcm9tICcuL2RlbW8tdmF1bHQudHMnO1xuZXhwb3J0ICogYXMgJ2V4ZWMnIGZyb20gJy4vZXhlYy50cyc7XG5leHBvcnQgKiBhcyAnZm9ybWF0dGVycycgZnJvbSAnLi9mb3JtYXR0ZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdmcycgZnJvbSAnLi9mcy50cyc7XG5leHBvcnQgKiBhcyAnanNvbicgZnJvbSAnLi9qc29uLnRzJztcbmV4cG9ydCAqIGFzICdsaW50ZXJzJyBmcm9tICcuL2xpbnRlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ25hbm8tc3RhZ2VkLWNvbmZpZycgZnJvbSAnLi9uYW5vLXN0YWdlZC1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ25wbS1wdWJsaXNoJyBmcm9tICcuL25wbS1wdWJsaXNoLnRzJztcbmV4cG9ydCAqIGFzICducG0tcnVuJyBmcm9tICcuL25wbS1ydW4udHMnO1xuZXhwb3J0ICogYXMgJ25wbScgZnJvbSAnLi9ucG0udHMnO1xuZXhwb3J0ICogYXMgJ29ic2lkaWFuLWRldi11dGlscy1yZXBvLXBhdGhzJyBmcm9tICcuL29ic2lkaWFuLWRldi11dGlscy1yZXBvLXBhdGhzLnRzJztcbmV4cG9ydCAqIGFzICdyb290JyBmcm9tICcuL3Jvb3QudHMnO1xuZXhwb3J0ICogYXMgJ3Rlc3QtcnVubmVycycgZnJvbSAnLi90ZXN0LXJ1bm5lcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ3ZhbGlkYXRlLWRlY2xhcmF0aW9ucycgZnJvbSAnLi92YWxpZGF0ZS1kZWNsYXJhdGlvbnMudHMnO1xuZXhwb3J0ICogYXMgJ3ZlcnNpb24nIGZyb20gJy4vdmVyc2lvbi50cyc7XG5leHBvcnQgKiBhcyAnd2FybmluZ3MtYXMtZXJyb3JzJyBmcm9tICcuL3dhcm5pbmdzLWFzLWVycm9ycy50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLCtCQUFBQTtBQUFBLEVBQUEsbUJBQUFDO0FBQUEsRUFBQSx3QkFBQUM7QUFBQSxFQUFBLDJCQUFBQztBQUFBLEVBQUEsb0JBQUFDO0FBQUEsRUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsOEJBQUFDO0FBQUEsRUFBQTtBQUFBLHVCQUFBQztBQUFBLEVBQUEsaUJBQUFDO0FBQUEsRUFBQSx1Q0FBQUM7QUFBQSxFQUFBO0FBQUEsd0JBQUFDO0FBQUEsRUFBQSwrQkFBQUM7QUFBQSxFQUFBO0FBQUEsOEJBQUFDO0FBQUE7QUFBQTtBQUVBLFlBQXlCO0FBQ3pCLGVBQTRCO0FBQzVCLElBQUFYLHNCQUF1QztBQUN2QyxJQUFBQyxZQUE2QjtBQUM3QixJQUFBQyxpQkFBa0M7QUFDbEMsSUFBQUMsb0JBQXFDO0FBQ3JDLElBQUFDLGFBQThCO0FBQzlCLFdBQXdCO0FBQ3hCLGlCQUE4QjtBQUM5QixTQUFzQjtBQUN0QixXQUF3QjtBQUN4QixjQUEyQjtBQUMzQixJQUFBQyxxQkFBc0M7QUFDdEMsSUFBQUMsY0FBK0I7QUFDL0IsSUFBQUMsVUFBMkI7QUFDM0IsVUFBdUI7QUFDdkIsSUFBQUMsZ0NBQWlEO0FBQ2pELFdBQXdCO0FBQ3hCLElBQUFDLGVBQWdDO0FBQ2hDLElBQUFDLHdCQUF5QztBQUN6QyxjQUEyQjtBQUMzQixJQUFBQyxxQkFBc0M7IiwKICAibmFtZXMiOiBbImNoZWNrLXByb2plY3QtdHlwZXMiLCAiY2xpLXV0aWxzIiwgImNvZGUtZ2VuZXJhdG9yIiwgImNvbW1pdGxpbnQtY29uZmlnIiwgImRlbW8tdmF1bHQiLCAibmFuby1zdGFnZWQtY29uZmlnIiwgIm5wbS1wdWJsaXNoIiwgIm5wbS1ydW4iLCAib2JzaWRpYW4tZGV2LXV0aWxzLXJlcG8tcGF0aHMiLCAidGVzdC1ydW5uZXJzIiwgInZhbGlkYXRlLWRlY2xhcmF0aW9ucyIsICJ3YXJuaW5ncy1hcy1lcnJvcnMiXQp9Cg==
@@ -5,6 +5,7 @@ export * as 'check-project-types' from './check-project-types.cjs';
5
5
  export * as 'cli-utils' from './cli-utils.cjs';
6
6
  export * as 'code-generator' from './code-generator.cjs';
7
7
  export * as 'commitlint-config' from './commitlint-config.cjs';
8
+ export * as 'demo-vault' from './demo-vault.cjs';
8
9
  export * as 'exec' from './exec.cjs';
9
10
  export * as 'formatters' from './formatters/index.cjs';
10
11
  export * as 'fs' from './fs.cjs';
@@ -19,3 +20,4 @@ export * as 'root' from './root.cjs';
19
20
  export * as 'test-runners' from './test-runners/index.cjs';
20
21
  export * as 'validate-declarations' from './validate-declarations.cjs';
21
22
  export * as 'version' from './version.cjs';
23
+ export * as 'warnings-as-errors' from './warnings-as-errors.cjs';
@@ -169,10 +169,6 @@ const noRestrictedSyntaxRuleEntries = [
169
169
  message: 'Do not rename imports with "Mock" in the alias. Mock classes are the canonical types \u2014 use the original name.',
170
170
  selector: "ImportSpecifier[local.name=/Mock/]:not([imported.name=/Mock/])"
171
171
  },
172
- {
173
- message: "Avoid dynamic import(). Use static imports instead. Only use dynamic imports for lazy/conditional loading.",
174
- selector: "ImportExpression"
175
- },
176
172
  {
177
173
  message: "Do not use `declare` on class properties. Initialize the property or use a regular type annotation.",
178
174
  selector: "PropertyDefinition[declare=true]"
@@ -182,4 +178,4 @@ const noRestrictedSyntaxRuleEntries = [
182
178
  0 && (module.exports = {
183
179
  noRestrictedSyntaxRuleEntries
184
180
  });
185
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1uby1yZXN0cmljdGVkLXN5bnRheC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIGBuby1yZXN0cmljdGVkLXN5bnRheGAgcnVsZSBlbnRyaWVzIGZvciB0aGUgc2hhcmVkIEVTTGludCBjb25maWcuXG4gKlxuICogRXhwb3J0ZWQgYXMgYSBzdGFuZGFsb25lIGNvbnN0YW50IHNvIGVhY2ggc2VsZWN0b3IgY2FuIGJlIHVuaXQtdGVzdGVkXG4gKiBpbmRlcGVuZGVudGx5IG9mIHRoZSBsYXJnZXIgZGVjbGFyYXRpdmUgY29uZmlnLlxuICovXG5cbi8qKlxuICogQSBzaW5nbGUgYG5vLXJlc3RyaWN0ZWQtc3ludGF4YCBlbnRyeSBwYWlyaW5nIGFuIEVTTGludCBBU1Qgc2VsZWN0b3Igd2l0aCBhXG4gKiBodW1hbi1yZWFkYWJsZSBtZXNzYWdlIGV4cGxhaW5pbmcgd2h5IHRoZSBwYXR0ZXJuIGlzIGJhbm5lZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOb1Jlc3RyaWN0ZWRTeW50YXhSdWxlRW50cnkge1xuICAvKipcbiAgICogSHVtYW4tcmVhZGFibGUgbWVzc2FnZSBzaG93biB3aGVuIHRoZSBzZWxlY3RvciBtYXRjaGVzLlxuICAgKi9cbiAgbWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFU0xpbnQgQVNUIHNlbGVjdG9yIGlkZW50aWZ5aW5nIHRoZSBiYW5uZWQgcGF0dGVybi5cbiAgICovXG4gIHNlbGVjdG9yOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzdHJpY3RlZC1zeW50YXggZW50cmllcyBlbmZvcmNlZCBieSB0aGUgc2hhcmVkIEVTTGludCBjb25maWcuXG4gKi9cbmV4cG9ydCBjb25zdCBub1Jlc3RyaWN0ZWRTeW50YXhSdWxlRW50cmllczogcmVhZG9ubHkgTm9SZXN0cmljdGVkU3ludGF4UnVsZUVudHJ5W10gPSBbXG4gIHtcbiAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBkZWZpbml0ZSBhc3NpZ25tZW50IGFzc2VydGlvbnMgKCEpLiBJbml0aWFsaXplIHRoZSBmaWVsZCBvciBtYWtlIGl0IG9wdGlvbmFsLicsXG4gICAgc2VsZWN0b3I6ICdQcm9wZXJ0eURlZmluaXRpb25bZGVmaW5pdGU9dHJ1ZV0nXG4gIH0sXG4gIHtcbiAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBkZWZpbml0ZSBhc3NpZ25tZW50IGFzc2VydGlvbnMgKCEpIG9uIGFic3RyYWN0IGZpZWxkcy4nLFxuICAgIHNlbGVjdG9yOiAnVFNBYnN0cmFjdFByb3BlcnR5RGVmaW5pdGlvbltkZWZpbml0ZT10cnVlXSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGFub255bW91cyBpbmxpbmUgb2JqZWN0IHR5cGVzLiBEZWZpbmUgYSBuYW1lZCBpbnRlcmZhY2Ugb3IgYHR5cGVgIGFsaWFzIGluc3RlYWQuJyxcbiAgICBzZWxlY3RvcjogJ1RTVHlwZUxpdGVyYWw6bm90KFRTVHlwZUFsaWFzRGVjbGFyYXRpb24gPiBUU1R5cGVMaXRlcmFsKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGFub255bW91cyBpbmxpbmUgbWFwcGVkIHR5cGVzLiBEZWZpbmUgYSBuYW1lZCBgdHlwZWAgYWxpYXMgaW5zdGVhZC4nLFxuICAgIHNlbGVjdG9yOiAnVFNNYXBwZWRUeXBlOm5vdChUU1R5cGVBbGlhc0RlY2xhcmF0aW9uID4gVFNNYXBwZWRUeXBlKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGRvdWJsZSB0eXBlIGFzc2VydGlvbnMgKGFzIFggYXMgWSkuJyxcbiAgICBzZWxlY3RvcjogJ1RTQXNFeHByZXNzaW9uID4gVFNBc0V4cHJlc3Npb24nXG4gIH0sXG4gIHtcbiAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBgYXMgbmV2ZXJgLiBJdCBzaWxlbnRseSBzYXRpc2ZpZXMgdHlwZSBjb25zdHJhaW50cyBieSBjbGFpbWluZyBcInRoaXMgdmFsdWUgaXMgb2YgZXZlcnkgdHlwZVwiIFx1MjAxNCBhbG1vc3QgYWx3YXlzIG1hc2tzIGEgcmVhbCB0eXBlIG1pc21hdGNoLiBGaXggdGhlIHVuZGVybHlpbmcgdHlwZXMgaW5zdGVhZC4nLFxuICAgIHNlbGVjdG9yOiAnVFNBc0V4cHJlc3Npb24gPiBUU05ldmVyS2V5d29yZCdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGA8bmV2ZXI+YCB0eXBlIGFzc2VydGlvbnMuIFNhbWUgcmVhc29uaW5nIGFzIGBhcyBuZXZlcmAuJyxcbiAgICBzZWxlY3RvcjogJ1RTVHlwZUFzc2VydGlvbiA+IFRTTmV2ZXJLZXl3b3JkJ1xuICB9LFxuICB7XG4gICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgXyBwcmVmaXggb24gbWV0aG9kcyBvciBmdW5jdGlvbnMuIFRoZSBfIHByZWZpeCBpcyBmb3IgdW51c2VkIHBhcmFtZXRlcnMgb25seS4nLFxuICAgIHNlbGVjdG9yOiAnTWV0aG9kRGVmaW5pdGlvbltrZXkubmFtZT0vXl8vXTpub3QoW292ZXJyaWRlPXRydWVdKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIF8gcHJlZml4IG9uIG1ldGhvZHMgb3IgZnVuY3Rpb25zLiBUaGUgXyBwcmVmaXggaXMgZm9yIHVudXNlZCBwYXJhbWV0ZXJzIG9ubHkuJyxcbiAgICBzZWxlY3RvcjogJ0Z1bmN0aW9uRGVjbGFyYXRpb25baWQubmFtZT0vXl8vXSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgcmVuYW1lIGltcG9ydHMgd2l0aCBcIk1vY2tcIiBpbiB0aGUgYWxpYXMuIE1vY2sgY2xhc3NlcyBhcmUgdGhlIGNhbm9uaWNhbCB0eXBlcyBcdTIwMTQgdXNlIHRoZSBvcmlnaW5hbCBuYW1lLicsXG4gICAgc2VsZWN0b3I6ICdJbXBvcnRTcGVjaWZpZXJbbG9jYWwubmFtZT0vTW9jay9dOm5vdChbaW1wb3J0ZWQubmFtZT0vTW9jay9dKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdBdm9pZCBkeW5hbWljIGltcG9ydCgpLiBVc2Ugc3RhdGljIGltcG9ydHMgaW5zdGVhZC4gT25seSB1c2UgZHluYW1pYyBpbXBvcnRzIGZvciBsYXp5L2NvbmRpdGlvbmFsIGxvYWRpbmcuJyxcbiAgICBzZWxlY3RvcjogJ0ltcG9ydEV4cHJlc3Npb24nXG4gIH0sXG4gIHtcbiAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBgZGVjbGFyZWAgb24gY2xhc3MgcHJvcGVydGllcy4gSW5pdGlhbGl6ZSB0aGUgcHJvcGVydHkgb3IgdXNlIGEgcmVndWxhciB0eXBlIGFubm90YXRpb24uJyxcbiAgICBzZWxlY3RvcjogJ1Byb3BlcnR5RGVmaW5pdGlvbltkZWNsYXJlPXRydWVdJ1xuICB9XG5dO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBNEJPLE1BQU0sZ0NBQXdFO0FBQUEsRUFDbkY7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQUEsRUFDQTtBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLEVBQ1o7QUFBQSxFQUNBO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQUEsRUFDQTtBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLEVBQ1o7QUFBQSxFQUNBO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQUEsRUFDQTtBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLEVBQ1o7QUFBQSxFQUNBO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQUEsRUFDQTtBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLEVBQ1o7QUFBQSxFQUNBO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
181
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1uby1yZXN0cmljdGVkLXN5bnRheC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIGBuby1yZXN0cmljdGVkLXN5bnRheGAgcnVsZSBlbnRyaWVzIGZvciB0aGUgc2hhcmVkIEVTTGludCBjb25maWcuXG4gKlxuICogRXhwb3J0ZWQgYXMgYSBzdGFuZGFsb25lIGNvbnN0YW50IHNvIGVhY2ggc2VsZWN0b3IgY2FuIGJlIHVuaXQtdGVzdGVkXG4gKiBpbmRlcGVuZGVudGx5IG9mIHRoZSBsYXJnZXIgZGVjbGFyYXRpdmUgY29uZmlnLlxuICovXG5cbi8qKlxuICogQSBzaW5nbGUgYG5vLXJlc3RyaWN0ZWQtc3ludGF4YCBlbnRyeSBwYWlyaW5nIGFuIEVTTGludCBBU1Qgc2VsZWN0b3Igd2l0aCBhXG4gKiBodW1hbi1yZWFkYWJsZSBtZXNzYWdlIGV4cGxhaW5pbmcgd2h5IHRoZSBwYXR0ZXJuIGlzIGJhbm5lZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOb1Jlc3RyaWN0ZWRTeW50YXhSdWxlRW50cnkge1xuICAvKipcbiAgICogSHVtYW4tcmVhZGFibGUgbWVzc2FnZSBzaG93biB3aGVuIHRoZSBzZWxlY3RvciBtYXRjaGVzLlxuICAgKi9cbiAgbWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFU0xpbnQgQVNUIHNlbGVjdG9yIGlkZW50aWZ5aW5nIHRoZSBiYW5uZWQgcGF0dGVybi5cbiAgICovXG4gIHNlbGVjdG9yOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzdHJpY3RlZC1zeW50YXggZW50cmllcyBlbmZvcmNlZCBieSB0aGUgc2hhcmVkIEVTTGludCBjb25maWcuXG4gKi9cbmV4cG9ydCBjb25zdCBub1Jlc3RyaWN0ZWRTeW50YXhSdWxlRW50cmllczogcmVhZG9ubHkgTm9SZXN0cmljdGVkU3ludGF4UnVsZUVudHJ5W10gPSBbXG4gIHtcbiAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBkZWZpbml0ZSBhc3NpZ25tZW50IGFzc2VydGlvbnMgKCEpLiBJbml0aWFsaXplIHRoZSBmaWVsZCBvciBtYWtlIGl0IG9wdGlvbmFsLicsXG4gICAgc2VsZWN0b3I6ICdQcm9wZXJ0eURlZmluaXRpb25bZGVmaW5pdGU9dHJ1ZV0nXG4gIH0sXG4gIHtcbiAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBkZWZpbml0ZSBhc3NpZ25tZW50IGFzc2VydGlvbnMgKCEpIG9uIGFic3RyYWN0IGZpZWxkcy4nLFxuICAgIHNlbGVjdG9yOiAnVFNBYnN0cmFjdFByb3BlcnR5RGVmaW5pdGlvbltkZWZpbml0ZT10cnVlXSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGFub255bW91cyBpbmxpbmUgb2JqZWN0IHR5cGVzLiBEZWZpbmUgYSBuYW1lZCBpbnRlcmZhY2Ugb3IgYHR5cGVgIGFsaWFzIGluc3RlYWQuJyxcbiAgICBzZWxlY3RvcjogJ1RTVHlwZUxpdGVyYWw6bm90KFRTVHlwZUFsaWFzRGVjbGFyYXRpb24gPiBUU1R5cGVMaXRlcmFsKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGFub255bW91cyBpbmxpbmUgbWFwcGVkIHR5cGVzLiBEZWZpbmUgYSBuYW1lZCBgdHlwZWAgYWxpYXMgaW5zdGVhZC4nLFxuICAgIHNlbGVjdG9yOiAnVFNNYXBwZWRUeXBlOm5vdChUU1R5cGVBbGlhc0RlY2xhcmF0aW9uID4gVFNNYXBwZWRUeXBlKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGRvdWJsZSB0eXBlIGFzc2VydGlvbnMgKGFzIFggYXMgWSkuJyxcbiAgICBzZWxlY3RvcjogJ1RTQXNFeHByZXNzaW9uID4gVFNBc0V4cHJlc3Npb24nXG4gIH0sXG4gIHtcbiAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBgYXMgbmV2ZXJgLiBJdCBzaWxlbnRseSBzYXRpc2ZpZXMgdHlwZSBjb25zdHJhaW50cyBieSBjbGFpbWluZyBcInRoaXMgdmFsdWUgaXMgb2YgZXZlcnkgdHlwZVwiIFx1MjAxNCBhbG1vc3QgYWx3YXlzIG1hc2tzIGEgcmVhbCB0eXBlIG1pc21hdGNoLiBGaXggdGhlIHVuZGVybHlpbmcgdHlwZXMgaW5zdGVhZC4nLFxuICAgIHNlbGVjdG9yOiAnVFNBc0V4cHJlc3Npb24gPiBUU05ldmVyS2V5d29yZCdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGA8bmV2ZXI+YCB0eXBlIGFzc2VydGlvbnMuIFNhbWUgcmVhc29uaW5nIGFzIGBhcyBuZXZlcmAuJyxcbiAgICBzZWxlY3RvcjogJ1RTVHlwZUFzc2VydGlvbiA+IFRTTmV2ZXJLZXl3b3JkJ1xuICB9LFxuICB7XG4gICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgXyBwcmVmaXggb24gbWV0aG9kcyBvciBmdW5jdGlvbnMuIFRoZSBfIHByZWZpeCBpcyBmb3IgdW51c2VkIHBhcmFtZXRlcnMgb25seS4nLFxuICAgIHNlbGVjdG9yOiAnTWV0aG9kRGVmaW5pdGlvbltrZXkubmFtZT0vXl8vXTpub3QoW292ZXJyaWRlPXRydWVdKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIF8gcHJlZml4IG9uIG1ldGhvZHMgb3IgZnVuY3Rpb25zLiBUaGUgXyBwcmVmaXggaXMgZm9yIHVudXNlZCBwYXJhbWV0ZXJzIG9ubHkuJyxcbiAgICBzZWxlY3RvcjogJ0Z1bmN0aW9uRGVjbGFyYXRpb25baWQubmFtZT0vXl8vXSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgcmVuYW1lIGltcG9ydHMgd2l0aCBcIk1vY2tcIiBpbiB0aGUgYWxpYXMuIE1vY2sgY2xhc3NlcyBhcmUgdGhlIGNhbm9uaWNhbCB0eXBlcyBcdTIwMTQgdXNlIHRoZSBvcmlnaW5hbCBuYW1lLicsXG4gICAgc2VsZWN0b3I6ICdJbXBvcnRTcGVjaWZpZXJbbG9jYWwubmFtZT0vTW9jay9dOm5vdChbaW1wb3J0ZWQubmFtZT0vTW9jay9dKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGBkZWNsYXJlYCBvbiBjbGFzcyBwcm9wZXJ0aWVzLiBJbml0aWFsaXplIHRoZSBwcm9wZXJ0eSBvciB1c2UgYSByZWd1bGFyIHR5cGUgYW5ub3RhdGlvbi4nLFxuICAgIHNlbGVjdG9yOiAnUHJvcGVydHlEZWZpbml0aW9uW2RlY2xhcmU9dHJ1ZV0nXG4gIH1cbl07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUE0Qk8sTUFBTSxnQ0FBd0U7QUFBQSxFQUNuRjtBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLEVBQ1o7QUFBQSxFQUNBO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQUEsRUFDQTtBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLEVBQ1o7QUFBQSxFQUNBO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQUEsRUFDQTtBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLEVBQ1o7QUFBQSxFQUNBO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQUEsRUFDQTtBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLEVBQ1o7QUFBQSxFQUNBO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -161,6 +161,7 @@ var ObsidianDevUtilsRepoPaths = /* @__PURE__ */ ((ObsidianDevUtilsRepoPaths2) =>
161
161
  ObsidianDevUtilsRepoPaths2["JsExtension"] = ".js";
162
162
  ObsidianDevUtilsRepoPaths2["MarkdownlintCli2ConfigMjs"] = ".markdownlint-cli2.mjs";
163
163
  ObsidianDevUtilsRepoPaths2["MarkdownlintTypesMarkdownlintCli2ConfigSchemaDts"] = "src/script-utils/linters/markdownlint-types/@types/markdownlint-cli2-config-schema.d.ts";
164
+ ObsidianDevUtilsRepoPaths2["MergedTs"] = "__merged.ts";
164
165
  ObsidianDevUtilsRepoPaths2["MjsExtension"] = ".mjs";
165
166
  ObsidianDevUtilsRepoPaths2["NodeModules"] = "node_modules";
166
167
  ObsidianDevUtilsRepoPaths2["PackageJson"] = "package.json";
@@ -183,4 +184,4 @@ var ObsidianDevUtilsRepoPaths = /* @__PURE__ */ ((ObsidianDevUtilsRepoPaths2) =>
183
184
  0 && (module.exports = {
184
185
  ObsidianDevUtilsRepoPaths
185
186
  });
186
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgYW4gZW51bWVyYXRpb24gb2YgY29tbW9uIGZpbGUgcGF0aHMgYW5kIHBhdHRlcm5zIHVzZWQgaW4gdGhlIE9ic2lkaWFuIGRldmVsb3BtZW50IHV0aWxpdGllcyByZXBvc2l0b3J5LlxuICogVGhlc2UgcGF0aHMgYXJlIHVzZWQgdGhyb3VnaG91dCB0aGUgYnVpbGQgcHJvY2VzcyBhbmQgb3RoZXIgdXRpbGl0aWVzLCBlbnN1cmluZyBjb25zaXN0ZW5jeSBhbmQgcmVkdWNpbmcgdGhlIGxpa2VsaWhvb2RcbiAqIG9mIGVycm9ycyBkdWUgdG8gaGFyZGNvZGVkIHN0cmluZ3MuXG4gKi9cblxuLyoqXG4gKiBFbnVtZXJhdGlvbiBvZiBjb21tb24gZmlsZSBwYXRocyBhbmQgcGF0dGVybnMgdXNlZCBpbiB0aGUgT2JzaWRpYW4gZGV2ZWxvcG1lbnQgdXRpbGl0aWVzIHJlcG9zaXRvcnkuXG4gKi9cbmV4cG9ydCBlbnVtIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMge1xuICAvKiogQW55IGZpbGUgb3IgZm9sZGVyLiAqL1xuICBBbnkgPSAnKicsXG5cbiAgLyoqIENvbW1vbkpTIGZpbGUuICovXG4gIEFueUNqcyA9ICcqLmNqcycsXG5cbiAgLyoqIENvbW1vbkpTIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS4gKi9cbiAgQW55RGN0cyA9ICcqLmQuY3RzJyxcblxuICAvKiogRVNNIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS4gKi9cbiAgQW55RG10cyA9ICcqLmQubXRzJyxcblxuICAvKiogVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlLiAqL1xuICBBbnlEdHMgPSAnKi5kLnRzJyxcblxuICAvKiogRVNNIEphdmFTY3JpcHQgZmlsZS4gKi9cbiAgQW55TWpzID0gJyoubWpzJyxcblxuICAvKiogQW55IHBhdGggcmVjdXJzaXZlbHkuICovXG4gIEFueVBhdGggPSAnKionLFxuXG4gIC8qKiBBbnkgVHlwZVNjcmlwdCBmaWxlLiAqL1xuICBBbnlUcyA9ICcqLnRzJyxcblxuICAvKiogQ29tbW9uSlMgZm9sZGVyLiAqL1xuICBDanMgPSAnY2pzJyxcblxuICAvKiogQ29tbW9uSlMgZmlsZSBleHRlbnNpb24uICovXG4gIENqc0V4dGVuc2lvbiA9ICcuY2pzJyxcblxuICAvKiogQ3VycmVudCBmb2xkZXIuICovXG4gIEN1cnJlbnRGb2xkZXIgPSAnLicsXG5cbiAgLyoqIERhdGF2aWV3IHR5cGVzLiAqL1xuICBEYXRhdmlld1R5cGVzID0gJ3NyYy9vYnNpZGlhbi9AdHlwZXMvZGF0YXZpZXcvKionLFxuXG4gIC8qKiBDb21tb25KUyBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgZXh0ZW5zaW9uLiAqL1xuICBEY3RzRXh0ZW5zaW9uID0gJy5kLmN0cycsXG5cbiAgLyoqIERpc3RyaWJ1dGlvbiBmb2xkZXIuICovXG4gIERpc3QgPSAnZGlzdCcsXG5cbiAgLyoqIEEgcGF0aCB0byB0aGUgYGxpYmAgZm9sZGVyIHdpdGhpbiB0aGUge0BsaW5rIERpc3R9IGZvbGRlci4gKi9cbiAgRGlzdExpYiA9ICdkaXN0L2xpYicsXG5cbiAgLyoqIEEgcGF0aCB0byB0aGUgYHRlbXBsYXRlc2AgZm9sZGVyIHdpdGhpbiB0aGUge0BsaW5rIERpc3R9IGZvbGRlciwgaG9sZGluZyB0aGUgY29uc3VtZXItZmFjaW5nIHRlbXBsYXRlcy4gKi9cbiAgRGlzdFRlbXBsYXRlcyA9ICdkaXN0L3RlbXBsYXRlcycsXG5cbiAgLyoqIFRyYW5zcGlsZWQgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGV4dGVuc2lvbi4gKi9cbiAgRGpzRXh0ZW5zaW9uID0gJy5kLmpzJyxcblxuICAvKiogRVNNIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBleHRlbnNpb24uICovXG4gIERtdHNFeHRlbnNpb24gPSAnLmQubXRzJyxcblxuICAvKiogRHByaW50IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgRHByaW50SnNvbiA9ICdkcHJpbnQuanNvbicsXG5cbiAgLyoqIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBleHRlbnNpb24uICovXG4gIER0c0V4dGVuc2lvbiA9ICcuZC50cycsXG5cbiAgLyoqIEVTTSBUeXBlU2NyaXB0IEVTTGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIEVzbGludENvbmZpZ010cyA9ICdlc2xpbnQuY29uZmlnLm10cycsXG5cbiAgLyoqIEVTTSBKYXZhU2NyaXB0IGZvbGRlci4gKi9cbiAgRXNtID0gJ2VzbScsXG5cbiAgLyoqIEdlbmVyYXRlZC1kdXJpbmctYnVpbGQgQ29tbW9uSlMgZmlsZS4gKi9cbiAgR2VuZXJhdGVkRHVyaW5nQnVpbGRDanMgPSAnZ2VuZXJhdGVkLWR1cmluZy1idWlsZC5janMnLFxuXG4gIC8qKiBHZW5lcmF0ZWQtZHVyaW5nLWJ1aWxkIEVTTSBKYXZhU2NyaXB0IGZpbGUuICovXG4gIEdlbmVyYXRlZER1cmluZ0J1aWxkTWpzID0gJ2dlbmVyYXRlZC1kdXJpbmctYnVpbGQubWpzJyxcblxuICAvKiogQ29tbW9uSlMgSmF2YVNjcmlwdCBpbmRleCBmaWxlLiAqL1xuICBJbmRleENqcyA9ICdpbmRleC5janMnLFxuXG4gIC8qKiBDb21tb25KUyBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgaW5kZXggZmlsZS4gKi9cbiAgSW5kZXhEY3RzID0gJ2luZGV4LmQuY3RzJyxcblxuICAvKiogRVNNIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBpbmRleCBmaWxlLiAqL1xuICBJbmRleERtdHMgPSAnaW5kZXguZC5tdHMnLFxuXG4gIC8qKiBFU00gSmF2YVNjcmlwdCBpbmRleCBmaWxlLiAqL1xuICBJbmRleE1qcyA9ICdpbmRleC5tanMnLFxuXG4gIC8qKiBUeXBlU2NyaXB0IGluZGV4IGZpbGUuICovXG4gIEluZGV4VHMgPSAnaW5kZXgudHMnLFxuXG4gIC8qKiBKYXZhU2NyaXB0IGZpbGUgZXh0ZW5zaW9uLiAqL1xuICBKc0V4dGVuc2lvbiA9ICcuanMnLFxuXG4gIC8qKiBFU00gTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBNYXJrZG93bmxpbnRDbGkyQ29uZmlnTWpzID0gJy5tYXJrZG93bmxpbnQtY2xpMi5tanMnLFxuXG4gIC8qKiBNYXJrZG93bmxpbnQgQ0xJMiBjb25maWd1cmF0aW9uIHNjaGVtYSBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUuICovXG4gIE1hcmtkb3dubGludFR5cGVzTWFya2Rvd25saW50Q2xpMkNvbmZpZ1NjaGVtYUR0cyA9ICdzcmMvc2NyaXB0LXV0aWxzL2xpbnRlcnMvbWFya2Rvd25saW50LXR5cGVzL0B0eXBlcy9tYXJrZG93bmxpbnQtY2xpMi1jb25maWctc2NoZW1hLmQudHMnLFxuXG4gIC8qKiBFU00gSmF2YVNjcmlwdCBmaWxlIGV4dGVuc2lvbi4gKi9cbiAgTWpzRXh0ZW5zaW9uID0gJy5tanMnLFxuXG4gIC8qKiBOb2RlIG1vZHVsZXMgZm9sZGVyLiAqL1xuICBOb2RlTW9kdWxlcyA9ICdub2RlX21vZHVsZXMnLFxuXG4gIC8qKiBQYWNrYWdlIEpTT04gZmlsZS4gKi9cbiAgUGFja2FnZUpzb24gPSAncGFja2FnZS5qc29uJyxcblxuICAvKiogUm9vdCBmb2xkZXIuICovXG4gIFJvb3RGb2xkZXIgPSAnLycsXG5cbiAgLyoqIFNjcmlwdHMgZm9sZGVyLiAqL1xuICBTY3JpcHRzID0gJ3NjcmlwdHMnLFxuXG4gIC8qKiBTY3JpcHRVdGlscyBmb2xkZXIuICovXG4gIFNjcmlwdFV0aWxzID0gJ3NjcmlwdC11dGlscycsXG5cbiAgLyoqIFNvdXJjZSBmb2xkZXIuICovXG4gIFNyYyA9ICdzcmMnLFxuXG4gIC8qKiBTdHlsZXMgZm9sZGVyLiAqL1xuICBTdHlsZXMgPSAnc3R5bGVzJyxcblxuICAvKiogU3R5bGVzIENTUyBmaWxlLiAqL1xuICBTdHlsZXNDc3MgPSAnc3R5bGVzLmNzcycsXG5cbiAgLyoqIFRlbXBsYXRlcyBmb2xkZXIuICovXG4gIFRlbXBsYXRlcyA9ICd0ZW1wbGF0ZXMnLFxuXG4gIC8qKiBUZXN0IGhlbHBlcnMgZm9sZGVyLiAqL1xuICBUZXN0SGVscGVycyA9ICd0ZXN0LWhlbHBlcnMnLFxuXG4gIC8qKiBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgVHNDb25maWdKc29uID0gJ3RzY29uZmlnLmpzb24nLFxuXG4gIC8qKiBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24gZmlsZSB0aGF0IHZhbGlkYXRlcyB0aGUgZ2VuZXJhdGVkIENvbW1vbkpTIGRlY2xhcmF0aW9ucy4gKi9cbiAgVHNDb25maWdWYWxpZGF0ZURlY2xhcmF0aW9uc0Nqc0pzb24gPSAndHNjb25maWcudmFsaWRhdGUtZGVjbGFyYXRpb25zLWNqcy5qc29uJyxcblxuICAvKiogVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUgdGhhdCB2YWxpZGF0ZXMgdGhlIGdlbmVyYXRlZCBFU00gZGVjbGFyYXRpb25zLiAqL1xuICBUc0NvbmZpZ1ZhbGlkYXRlRGVjbGFyYXRpb25zSnNvbiA9ICd0c2NvbmZpZy52YWxpZGF0ZS1kZWNsYXJhdGlvbnMuanNvbicsXG5cbiAgLyoqIFR5cGVTY3JpcHQgZmlsZSBleHRlbnNpb24uICovXG4gIFRzRXh0ZW5zaW9uID0gJy50cycsXG5cbiAgLyoqIFR5cGVzIGZvbGRlci4gKi9cbiAgVHlwZXMgPSAnQHR5cGVzJ1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV08sSUFBSyw0QkFBTCxrQkFBS0EsK0JBQUw7QUFFTCxFQUFBQSwyQkFBQSxTQUFNO0FBR04sRUFBQUEsMkJBQUEsWUFBUztBQUdULEVBQUFBLDJCQUFBLGFBQVU7QUFHVixFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsWUFBUztBQUdULEVBQUFBLDJCQUFBLFlBQVM7QUFHVCxFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsV0FBUTtBQUdSLEVBQUFBLDJCQUFBLFNBQU07QUFHTixFQUFBQSwyQkFBQSxrQkFBZTtBQUdmLEVBQUFBLDJCQUFBLG1CQUFnQjtBQUdoQixFQUFBQSwyQkFBQSxtQkFBZ0I7QUFHaEIsRUFBQUEsMkJBQUEsbUJBQWdCO0FBR2hCLEVBQUFBLDJCQUFBLFVBQU87QUFHUCxFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsbUJBQWdCO0FBR2hCLEVBQUFBLDJCQUFBLGtCQUFlO0FBR2YsRUFBQUEsMkJBQUEsbUJBQWdCO0FBR2hCLEVBQUFBLDJCQUFBLGdCQUFhO0FBR2IsRUFBQUEsMkJBQUEsa0JBQWU7QUFHZixFQUFBQSwyQkFBQSxxQkFBa0I7QUFHbEIsRUFBQUEsMkJBQUEsU0FBTTtBQUdOLEVBQUFBLDJCQUFBLDZCQUEwQjtBQUcxQixFQUFBQSwyQkFBQSw2QkFBMEI7QUFHMUIsRUFBQUEsMkJBQUEsY0FBVztBQUdYLEVBQUFBLDJCQUFBLGVBQVk7QUFHWixFQUFBQSwyQkFBQSxlQUFZO0FBR1osRUFBQUEsMkJBQUEsY0FBVztBQUdYLEVBQUFBLDJCQUFBLGFBQVU7QUFHVixFQUFBQSwyQkFBQSxpQkFBYztBQUdkLEVBQUFBLDJCQUFBLCtCQUE0QjtBQUc1QixFQUFBQSwyQkFBQSxzREFBbUQ7QUFHbkQsRUFBQUEsMkJBQUEsa0JBQWU7QUFHZixFQUFBQSwyQkFBQSxpQkFBYztBQUdkLEVBQUFBLDJCQUFBLGlCQUFjO0FBR2QsRUFBQUEsMkJBQUEsZ0JBQWE7QUFHYixFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSxTQUFNO0FBR04sRUFBQUEsMkJBQUEsWUFBUztBQUdULEVBQUFBLDJCQUFBLGVBQVk7QUFHWixFQUFBQSwyQkFBQSxlQUFZO0FBR1osRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSxrQkFBZTtBQUdmLEVBQUFBLDJCQUFBLHlDQUFzQztBQUd0QyxFQUFBQSwyQkFBQSxzQ0FBbUM7QUFHbkMsRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSxXQUFRO0FBL0lFLFNBQUFBO0FBQUEsR0FBQTsiLAogICJuYW1lcyI6IFsiT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocyJdCn0K
187
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgYW4gZW51bWVyYXRpb24gb2YgY29tbW9uIGZpbGUgcGF0aHMgYW5kIHBhdHRlcm5zIHVzZWQgaW4gdGhlIE9ic2lkaWFuIGRldmVsb3BtZW50IHV0aWxpdGllcyByZXBvc2l0b3J5LlxuICogVGhlc2UgcGF0aHMgYXJlIHVzZWQgdGhyb3VnaG91dCB0aGUgYnVpbGQgcHJvY2VzcyBhbmQgb3RoZXIgdXRpbGl0aWVzLCBlbnN1cmluZyBjb25zaXN0ZW5jeSBhbmQgcmVkdWNpbmcgdGhlIGxpa2VsaWhvb2RcbiAqIG9mIGVycm9ycyBkdWUgdG8gaGFyZGNvZGVkIHN0cmluZ3MuXG4gKi9cblxuLyoqXG4gKiBFbnVtZXJhdGlvbiBvZiBjb21tb24gZmlsZSBwYXRocyBhbmQgcGF0dGVybnMgdXNlZCBpbiB0aGUgT2JzaWRpYW4gZGV2ZWxvcG1lbnQgdXRpbGl0aWVzIHJlcG9zaXRvcnkuXG4gKi9cbmV4cG9ydCBlbnVtIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMge1xuICAvKiogQW55IGZpbGUgb3IgZm9sZGVyLiAqL1xuICBBbnkgPSAnKicsXG5cbiAgLyoqIENvbW1vbkpTIGZpbGUuICovXG4gIEFueUNqcyA9ICcqLmNqcycsXG5cbiAgLyoqIENvbW1vbkpTIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS4gKi9cbiAgQW55RGN0cyA9ICcqLmQuY3RzJyxcblxuICAvKiogRVNNIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS4gKi9cbiAgQW55RG10cyA9ICcqLmQubXRzJyxcblxuICAvKiogVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlLiAqL1xuICBBbnlEdHMgPSAnKi5kLnRzJyxcblxuICAvKiogRVNNIEphdmFTY3JpcHQgZmlsZS4gKi9cbiAgQW55TWpzID0gJyoubWpzJyxcblxuICAvKiogQW55IHBhdGggcmVjdXJzaXZlbHkuICovXG4gIEFueVBhdGggPSAnKionLFxuXG4gIC8qKiBBbnkgVHlwZVNjcmlwdCBmaWxlLiAqL1xuICBBbnlUcyA9ICcqLnRzJyxcblxuICAvKiogQ29tbW9uSlMgZm9sZGVyLiAqL1xuICBDanMgPSAnY2pzJyxcblxuICAvKiogQ29tbW9uSlMgZmlsZSBleHRlbnNpb24uICovXG4gIENqc0V4dGVuc2lvbiA9ICcuY2pzJyxcblxuICAvKiogQ3VycmVudCBmb2xkZXIuICovXG4gIEN1cnJlbnRGb2xkZXIgPSAnLicsXG5cbiAgLyoqIERhdGF2aWV3IHR5cGVzLiAqL1xuICBEYXRhdmlld1R5cGVzID0gJ3NyYy9vYnNpZGlhbi9AdHlwZXMvZGF0YXZpZXcvKionLFxuXG4gIC8qKiBDb21tb25KUyBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgZXh0ZW5zaW9uLiAqL1xuICBEY3RzRXh0ZW5zaW9uID0gJy5kLmN0cycsXG5cbiAgLyoqIERpc3RyaWJ1dGlvbiBmb2xkZXIuICovXG4gIERpc3QgPSAnZGlzdCcsXG5cbiAgLyoqIEEgcGF0aCB0byB0aGUgYGxpYmAgZm9sZGVyIHdpdGhpbiB0aGUge0BsaW5rIERpc3R9IGZvbGRlci4gKi9cbiAgRGlzdExpYiA9ICdkaXN0L2xpYicsXG5cbiAgLyoqIEEgcGF0aCB0byB0aGUgYHRlbXBsYXRlc2AgZm9sZGVyIHdpdGhpbiB0aGUge0BsaW5rIERpc3R9IGZvbGRlciwgaG9sZGluZyB0aGUgY29uc3VtZXItZmFjaW5nIHRlbXBsYXRlcy4gKi9cbiAgRGlzdFRlbXBsYXRlcyA9ICdkaXN0L3RlbXBsYXRlcycsXG5cbiAgLyoqIFRyYW5zcGlsZWQgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGV4dGVuc2lvbi4gKi9cbiAgRGpzRXh0ZW5zaW9uID0gJy5kLmpzJyxcblxuICAvKiogRVNNIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBleHRlbnNpb24uICovXG4gIERtdHNFeHRlbnNpb24gPSAnLmQubXRzJyxcblxuICAvKiogRHByaW50IGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgRHByaW50SnNvbiA9ICdkcHJpbnQuanNvbicsXG5cbiAgLyoqIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBleHRlbnNpb24uICovXG4gIER0c0V4dGVuc2lvbiA9ICcuZC50cycsXG5cbiAgLyoqIEVTTSBUeXBlU2NyaXB0IEVTTGludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIEVzbGludENvbmZpZ010cyA9ICdlc2xpbnQuY29uZmlnLm10cycsXG5cbiAgLyoqIEVTTSBKYXZhU2NyaXB0IGZvbGRlci4gKi9cbiAgRXNtID0gJ2VzbScsXG5cbiAgLyoqIEdlbmVyYXRlZC1kdXJpbmctYnVpbGQgQ29tbW9uSlMgZmlsZS4gKi9cbiAgR2VuZXJhdGVkRHVyaW5nQnVpbGRDanMgPSAnZ2VuZXJhdGVkLWR1cmluZy1idWlsZC5janMnLFxuXG4gIC8qKiBHZW5lcmF0ZWQtZHVyaW5nLWJ1aWxkIEVTTSBKYXZhU2NyaXB0IGZpbGUuICovXG4gIEdlbmVyYXRlZER1cmluZ0J1aWxkTWpzID0gJ2dlbmVyYXRlZC1kdXJpbmctYnVpbGQubWpzJyxcblxuICAvKiogQ29tbW9uSlMgSmF2YVNjcmlwdCBpbmRleCBmaWxlLiAqL1xuICBJbmRleENqcyA9ICdpbmRleC5janMnLFxuXG4gIC8qKiBDb21tb25KUyBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgaW5kZXggZmlsZS4gKi9cbiAgSW5kZXhEY3RzID0gJ2luZGV4LmQuY3RzJyxcblxuICAvKiogRVNNIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBpbmRleCBmaWxlLiAqL1xuICBJbmRleERtdHMgPSAnaW5kZXguZC5tdHMnLFxuXG4gIC8qKiBFU00gSmF2YVNjcmlwdCBpbmRleCBmaWxlLiAqL1xuICBJbmRleE1qcyA9ICdpbmRleC5tanMnLFxuXG4gIC8qKiBUeXBlU2NyaXB0IGluZGV4IGZpbGUuICovXG4gIEluZGV4VHMgPSAnaW5kZXgudHMnLFxuXG4gIC8qKiBKYXZhU2NyaXB0IGZpbGUgZXh0ZW5zaW9uLiAqL1xuICBKc0V4dGVuc2lvbiA9ICcuanMnLFxuXG4gIC8qKiBFU00gTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBNYXJrZG93bmxpbnRDbGkyQ29uZmlnTWpzID0gJy5tYXJrZG93bmxpbnQtY2xpMi5tanMnLFxuXG4gIC8qKiBNYXJrZG93bmxpbnQgQ0xJMiBjb25maWd1cmF0aW9uIHNjaGVtYSBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUuICovXG4gIE1hcmtkb3dubGludFR5cGVzTWFya2Rvd25saW50Q2xpMkNvbmZpZ1NjaGVtYUR0cyA9ICdzcmMvc2NyaXB0LXV0aWxzL2xpbnRlcnMvbWFya2Rvd25saW50LXR5cGVzL0B0eXBlcy9tYXJrZG93bmxpbnQtY2xpMi1jb25maWctc2NoZW1hLmQudHMnLFxuXG4gIC8qKiBHZW5lcmF0ZWQgZmxhdCByZS1leHBvcnQgYmFycmVsIGZpbGUuICovXG4gIE1lcmdlZFRzID0gJ19fbWVyZ2VkLnRzJyxcblxuICAvKiogRVNNIEphdmFTY3JpcHQgZmlsZSBleHRlbnNpb24uICovXG4gIE1qc0V4dGVuc2lvbiA9ICcubWpzJyxcblxuICAvKiogTm9kZSBtb2R1bGVzIGZvbGRlci4gKi9cbiAgTm9kZU1vZHVsZXMgPSAnbm9kZV9tb2R1bGVzJyxcblxuICAvKiogUGFja2FnZSBKU09OIGZpbGUuICovXG4gIFBhY2thZ2VKc29uID0gJ3BhY2thZ2UuanNvbicsXG5cbiAgLyoqIFJvb3QgZm9sZGVyLiAqL1xuICBSb290Rm9sZGVyID0gJy8nLFxuXG4gIC8qKiBTY3JpcHRzIGZvbGRlci4gKi9cbiAgU2NyaXB0cyA9ICdzY3JpcHRzJyxcblxuICAvKiogU2NyaXB0VXRpbHMgZm9sZGVyLiAqL1xuICBTY3JpcHRVdGlscyA9ICdzY3JpcHQtdXRpbHMnLFxuXG4gIC8qKiBTb3VyY2UgZm9sZGVyLiAqL1xuICBTcmMgPSAnc3JjJyxcblxuICAvKiogU3R5bGVzIGZvbGRlci4gKi9cbiAgU3R5bGVzID0gJ3N0eWxlcycsXG5cbiAgLyoqIFN0eWxlcyBDU1MgZmlsZS4gKi9cbiAgU3R5bGVzQ3NzID0gJ3N0eWxlcy5jc3MnLFxuXG4gIC8qKiBUZW1wbGF0ZXMgZm9sZGVyLiAqL1xuICBUZW1wbGF0ZXMgPSAndGVtcGxhdGVzJyxcblxuICAvKiogVGVzdCBoZWxwZXJzIGZvbGRlci4gKi9cbiAgVGVzdEhlbHBlcnMgPSAndGVzdC1oZWxwZXJzJyxcblxuICAvKiogVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIFRzQ29uZmlnSnNvbiA9ICd0c2NvbmZpZy5qc29uJyxcblxuICAvKiogVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUgdGhhdCB2YWxpZGF0ZXMgdGhlIGdlbmVyYXRlZCBDb21tb25KUyBkZWNsYXJhdGlvbnMuICovXG4gIFRzQ29uZmlnVmFsaWRhdGVEZWNsYXJhdGlvbnNDanNKc29uID0gJ3RzY29uZmlnLnZhbGlkYXRlLWRlY2xhcmF0aW9ucy1janMuanNvbicsXG5cbiAgLyoqIFR5cGVTY3JpcHQgY29uZmlndXJhdGlvbiBmaWxlIHRoYXQgdmFsaWRhdGVzIHRoZSBnZW5lcmF0ZWQgRVNNIGRlY2xhcmF0aW9ucy4gKi9cbiAgVHNDb25maWdWYWxpZGF0ZURlY2xhcmF0aW9uc0pzb24gPSAndHNjb25maWcudmFsaWRhdGUtZGVjbGFyYXRpb25zLmpzb24nLFxuXG4gIC8qKiBUeXBlU2NyaXB0IGZpbGUgZXh0ZW5zaW9uLiAqL1xuICBUc0V4dGVuc2lvbiA9ICcudHMnLFxuXG4gIC8qKiBUeXBlcyBmb2xkZXIuICovXG4gIFR5cGVzID0gJ0B0eXBlcydcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdPLElBQUssNEJBQUwsa0JBQUtBLCtCQUFMO0FBRUwsRUFBQUEsMkJBQUEsU0FBTTtBQUdOLEVBQUFBLDJCQUFBLFlBQVM7QUFHVCxFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsYUFBVTtBQUdWLEVBQUFBLDJCQUFBLFlBQVM7QUFHVCxFQUFBQSwyQkFBQSxZQUFTO0FBR1QsRUFBQUEsMkJBQUEsYUFBVTtBQUdWLEVBQUFBLDJCQUFBLFdBQVE7QUFHUixFQUFBQSwyQkFBQSxTQUFNO0FBR04sRUFBQUEsMkJBQUEsa0JBQWU7QUFHZixFQUFBQSwyQkFBQSxtQkFBZ0I7QUFHaEIsRUFBQUEsMkJBQUEsbUJBQWdCO0FBR2hCLEVBQUFBLDJCQUFBLG1CQUFnQjtBQUdoQixFQUFBQSwyQkFBQSxVQUFPO0FBR1AsRUFBQUEsMkJBQUEsYUFBVTtBQUdWLEVBQUFBLDJCQUFBLG1CQUFnQjtBQUdoQixFQUFBQSwyQkFBQSxrQkFBZTtBQUdmLEVBQUFBLDJCQUFBLG1CQUFnQjtBQUdoQixFQUFBQSwyQkFBQSxnQkFBYTtBQUdiLEVBQUFBLDJCQUFBLGtCQUFlO0FBR2YsRUFBQUEsMkJBQUEscUJBQWtCO0FBR2xCLEVBQUFBLDJCQUFBLFNBQU07QUFHTixFQUFBQSwyQkFBQSw2QkFBMEI7QUFHMUIsRUFBQUEsMkJBQUEsNkJBQTBCO0FBRzFCLEVBQUFBLDJCQUFBLGNBQVc7QUFHWCxFQUFBQSwyQkFBQSxlQUFZO0FBR1osRUFBQUEsMkJBQUEsZUFBWTtBQUdaLEVBQUFBLDJCQUFBLGNBQVc7QUFHWCxFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSwrQkFBNEI7QUFHNUIsRUFBQUEsMkJBQUEsc0RBQW1EO0FBR25ELEVBQUFBLDJCQUFBLGNBQVc7QUFHWCxFQUFBQSwyQkFBQSxrQkFBZTtBQUdmLEVBQUFBLDJCQUFBLGlCQUFjO0FBR2QsRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSxnQkFBYTtBQUdiLEVBQUFBLDJCQUFBLGFBQVU7QUFHVixFQUFBQSwyQkFBQSxpQkFBYztBQUdkLEVBQUFBLDJCQUFBLFNBQU07QUFHTixFQUFBQSwyQkFBQSxZQUFTO0FBR1QsRUFBQUEsMkJBQUEsZUFBWTtBQUdaLEVBQUFBLDJCQUFBLGVBQVk7QUFHWixFQUFBQSwyQkFBQSxpQkFBYztBQUdkLEVBQUFBLDJCQUFBLGtCQUFlO0FBR2YsRUFBQUEsMkJBQUEseUNBQXNDO0FBR3RDLEVBQUFBLDJCQUFBLHNDQUFtQztBQUduQyxFQUFBQSwyQkFBQSxpQkFBYztBQUdkLEVBQUFBLDJCQUFBLFdBQVE7QUFsSkUsU0FBQUE7QUFBQSxHQUFBOyIsCiAgIm5hbWVzIjogWyJPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzIl0KfQo=
@@ -74,6 +74,8 @@ export declare enum ObsidianDevUtilsRepoPaths {
74
74
  MarkdownlintCli2ConfigMjs = ".markdownlint-cli2.mjs",
75
75
  /** Markdownlint CLI2 configuration schema TypeScript declaration file. */
76
76
  MarkdownlintTypesMarkdownlintCli2ConfigSchemaDts = "src/script-utils/linters/markdownlint-types/@types/markdownlint-cli2-config-schema.d.ts",
77
+ /** Generated flat re-export barrel file. */
78
+ MergedTs = "__merged.ts",
77
79
  /** ESM JavaScript file extension. */
78
80
  MjsExtension = ".mjs",
79
81
  /** Node modules folder. */