projen 0.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 (1575) hide show
  1. package/.jsii +36365 -0
  2. package/API.md +14952 -0
  3. package/LICENSE +202 -0
  4. package/README.md +373 -0
  5. package/assets/web/react/favicon.ico +0 -0
  6. package/assets/web/react/index.html +43 -0
  7. package/assets/web/react/logo192.png +0 -0
  8. package/assets/web/react/logo512.png +0 -0
  9. package/assets/web/react/manifest.json +25 -0
  10. package/assets/web/react/robots.txt +3 -0
  11. package/bin/projen +3 -0
  12. package/docs/awscdk-apps.md +15 -0
  13. package/docs/awscdk-construct.md +195 -0
  14. package/docs/awscdk.md +200 -0
  15. package/docs/build.md +55 -0
  16. package/docs/bundling.md +30 -0
  17. package/docs/deps.md +59 -0
  18. package/docs/escape-hatches.md +27 -0
  19. package/docs/java.md +213 -0
  20. package/docs/mutable-builds.md +0 -0
  21. package/docs/node.md +20 -0
  22. package/docs/programmatic-api.md +56 -0
  23. package/docs/publisher.md +148 -0
  24. package/docs/python.md +167 -0
  25. package/docs/releases.md +71 -0
  26. package/docs/subproject.md +37 -0
  27. package/docs/tasks.md +178 -0
  28. package/docs/typescript.md +108 -0
  29. package/lib/_resolve.d.ts +2 -0
  30. package/lib/_resolve.js +53 -0
  31. package/lib/awscdk/auto-discover.d.ts +54 -0
  32. package/lib/awscdk/auto-discover.js +54 -0
  33. package/lib/awscdk/awscdk-app-ts.d.ts +78 -0
  34. package/lib/awscdk/awscdk-app-ts.js +185 -0
  35. package/lib/awscdk/awscdk-construct.d.ts +80 -0
  36. package/lib/awscdk/awscdk-construct.js +116 -0
  37. package/lib/awscdk/awscdk-deps.d.ts +158 -0
  38. package/lib/awscdk/awscdk-deps.js +169 -0
  39. package/lib/awscdk/cdk-config.d.ts +128 -0
  40. package/lib/awscdk/cdk-config.js +61 -0
  41. package/lib/awscdk/cdk-tasks.d.ts +50 -0
  42. package/lib/awscdk/cdk-tasks.js +54 -0
  43. package/lib/awscdk/index.d.ts +9 -0
  44. package/lib/awscdk/index.js +22 -0
  45. package/lib/awscdk/integration-test.d.ts +90 -0
  46. package/lib/awscdk/integration-test.js +106 -0
  47. package/lib/awscdk/internal.d.ts +12 -0
  48. package/lib/awscdk/internal.js +30 -0
  49. package/lib/awscdk/java-app.d.ts +92 -0
  50. package/lib/awscdk/java-app.js +90 -0
  51. package/lib/awscdk/lambda-function.d.ts +143 -0
  52. package/lib/awscdk/lambda-function.js +176 -0
  53. package/lib/build/build-workflow.d.ts +125 -0
  54. package/lib/build/build-workflow.js +223 -0
  55. package/lib/build/index.d.ts +1 -0
  56. package/lib/build/index.js +14 -0
  57. package/lib/builtin-example.task.d.ts +0 -0
  58. package/lib/builtin-example.task.js +4 -0
  59. package/lib/cdk/construct-lib.d.ts +52 -0
  60. package/lib/cdk/construct-lib.js +30 -0
  61. package/lib/cdk/consts.d.ts +14 -0
  62. package/lib/cdk/consts.js +37 -0
  63. package/lib/cdk/index.d.ts +3 -0
  64. package/lib/cdk/index.js +16 -0
  65. package/lib/cdk/jsii-docgen.d.ts +12 -0
  66. package/lib/cdk/jsii-docgen.js +29 -0
  67. package/lib/cdk/jsii-project.d.ts +205 -0
  68. package/lib/cdk/jsii-project.js +250 -0
  69. package/lib/cdk8s/cdk8s-app-ts.d.ts +111 -0
  70. package/lib/cdk8s/cdk8s-app-ts.js +134 -0
  71. package/lib/cdk8s/cdk8s-construct.d.ts +79 -0
  72. package/lib/cdk8s/cdk8s-construct.js +39 -0
  73. package/lib/cdk8s/index.d.ts +2 -0
  74. package/lib/cdk8s/index.js +15 -0
  75. package/lib/cdktf/cdktf-construct.d.ts +30 -0
  76. package/lib/cdktf/cdktf-construct.js +33 -0
  77. package/lib/cdktf/index.d.ts +1 -0
  78. package/lib/cdktf/index.js +14 -0
  79. package/lib/cleanup.d.ts +2 -0
  80. package/lib/cleanup.js +73 -0
  81. package/lib/cli/cmds/new.d.ts +1 -0
  82. package/lib/cli/cmds/new.js +232 -0
  83. package/lib/cli/index.d.ts +1 -0
  84. package/lib/cli/index.js +50 -0
  85. package/lib/cli/macros.d.ts +1 -0
  86. package/lib/cli/macros.js +40 -0
  87. package/lib/cli/synth.d.ts +19 -0
  88. package/lib/cli/synth.js +104 -0
  89. package/lib/cli/tasks.d.ts +7 -0
  90. package/lib/cli/tasks.js +62 -0
  91. package/lib/cli/util.d.ts +19 -0
  92. package/lib/cli/util.js +52 -0
  93. package/lib/clobber.d.ts +5 -0
  94. package/lib/clobber.js +24 -0
  95. package/lib/common.d.ts +5 -0
  96. package/lib/common.js +14 -0
  97. package/lib/component.d.ts +33 -0
  98. package/lib/component.js +43 -0
  99. package/lib/dependencies.d.ts +187 -0
  100. package/lib/dependencies.js +219 -0
  101. package/lib/dev-env.d.ts +107 -0
  102. package/lib/dev-env.js +41 -0
  103. package/lib/docker-compose.d.ts +434 -0
  104. package/lib/docker-compose.js +308 -0
  105. package/lib/file.d.ts +141 -0
  106. package/lib/file.js +75 -0
  107. package/lib/gitattributes.d.ts +29 -0
  108. package/lib/gitattributes.js +61 -0
  109. package/lib/github/auto-approve.d.ts +59 -0
  110. package/lib/github/auto-approve.js +63 -0
  111. package/lib/github/auto-merge.d.ts +44 -0
  112. package/lib/github/auto-merge.js +67 -0
  113. package/lib/github/constants.d.ts +17 -0
  114. package/lib/github/constants.js +33 -0
  115. package/lib/github/dependabot.d.ts +340 -0
  116. package/lib/github/dependabot.js +119 -0
  117. package/lib/github/github-project.d.ts +193 -0
  118. package/lib/github/github-project.js +70 -0
  119. package/lib/github/github.d.ts +110 -0
  120. package/lib/github/github.js +86 -0
  121. package/lib/github/index.d.ts +13 -0
  122. package/lib/github/index.js +26 -0
  123. package/lib/github/mergify.d.ts +75 -0
  124. package/lib/github/mergify.js +40 -0
  125. package/lib/github/pr-template.d.ts +29 -0
  126. package/lib/github/pr-template.js +28 -0
  127. package/lib/github/pull-request-lint.d.ts +68 -0
  128. package/lib/github/pull-request-lint.js +62 -0
  129. package/lib/github/stale-util.d.ts +8 -0
  130. package/lib/github/stale-util.js +20 -0
  131. package/lib/github/stale.d.ts +106 -0
  132. package/lib/github/stale.js +71 -0
  133. package/lib/github/task-workflow.d.ts +155 -0
  134. package/lib/github/task-workflow.js +84 -0
  135. package/lib/github/workflows-model.d.ts +1280 -0
  136. package/lib/github/workflows-model.js +17 -0
  137. package/lib/github/workflows.d.ts +99 -0
  138. package/lib/github/workflows.js +208 -0
  139. package/lib/gitpod.d.ts +397 -0
  140. package/lib/gitpod.js +208 -0
  141. package/lib/ignore-file.d.ts +55 -0
  142. package/lib/ignore-file.js +112 -0
  143. package/lib/index.d.ts +46 -0
  144. package/lib/index.js +60 -0
  145. package/lib/ini.d.ts +27 -0
  146. package/lib/ini.js +40 -0
  147. package/lib/inventory.d.ts +45 -0
  148. package/lib/inventory.js +273 -0
  149. package/lib/java/index.d.ts +7 -0
  150. package/lib/java/index.js +20 -0
  151. package/lib/java/java-project.d.ts +181 -0
  152. package/lib/java/java-project.js +98 -0
  153. package/lib/java/junit.d.ts +41 -0
  154. package/lib/java/junit.js +50 -0
  155. package/lib/java/maven-compile.d.ts +35 -0
  156. package/lib/java/maven-compile.js +32 -0
  157. package/lib/java/maven-packaging.d.ts +49 -0
  158. package/lib/java/maven-packaging.js +71 -0
  159. package/lib/java/maven-sample.d.ts +24 -0
  160. package/lib/java/maven-sample.js +39 -0
  161. package/lib/java/pom.d.ts +243 -0
  162. package/lib/java/pom.js +176 -0
  163. package/lib/java/projenrc.d.ts +65 -0
  164. package/lib/java/projenrc.js +147 -0
  165. package/lib/javascript/bundler.d.ts +182 -0
  166. package/lib/javascript/bundler.js +123 -0
  167. package/lib/javascript/eslint.d.ts +177 -0
  168. package/lib/javascript/eslint.js +261 -0
  169. package/lib/javascript/index.d.ts +9 -0
  170. package/lib/javascript/index.js +22 -0
  171. package/lib/javascript/jest.d.ts +766 -0
  172. package/lib/javascript/jest.js +185 -0
  173. package/lib/javascript/node-package.d.ts +649 -0
  174. package/lib/javascript/node-package.js +687 -0
  175. package/lib/javascript/node-project.d.ts +572 -0
  176. package/lib/javascript/node-project.js +473 -0
  177. package/lib/javascript/npm-config.d.ts +50 -0
  178. package/lib/javascript/npm-config.js +53 -0
  179. package/lib/javascript/projenrc.d.ts +27 -0
  180. package/lib/javascript/projenrc.js +59 -0
  181. package/lib/javascript/render-options.d.ts +57 -0
  182. package/lib/javascript/render-options.js +169 -0
  183. package/lib/javascript/typescript-config.d.ts +424 -0
  184. package/lib/javascript/typescript-config.js +71 -0
  185. package/lib/javascript/upgrade-dependencies.d.ts +252 -0
  186. package/lib/javascript/upgrade-dependencies.js +341 -0
  187. package/lib/javascript/util.d.ts +1 -0
  188. package/lib/javascript/util.js +16 -0
  189. package/lib/json.d.ts +27 -0
  190. package/lib/json.js +42 -0
  191. package/lib/license.d.ts +48 -0
  192. package/lib/license.js +48 -0
  193. package/lib/logger.d.ts +117 -0
  194. package/lib/logger.js +127 -0
  195. package/lib/logging.d.ts +8 -0
  196. package/lib/logging.js +46 -0
  197. package/lib/makefile.d.ts +108 -0
  198. package/lib/makefile.js +99 -0
  199. package/lib/object-file.d.ts +112 -0
  200. package/lib/object-file.js +125 -0
  201. package/lib/option-hints.d.ts +27 -0
  202. package/lib/option-hints.js +17 -0
  203. package/lib/project-build.d.ts +60 -0
  204. package/lib/project-build.js +61 -0
  205. package/lib/project.d.ts +427 -0
  206. package/lib/project.js +391 -0
  207. package/lib/projects.d.ts +80 -0
  208. package/lib/projects.js +81 -0
  209. package/lib/projenrc-json.d.ts +27 -0
  210. package/lib/projenrc-json.js +47 -0
  211. package/lib/python/index.d.ts +13 -0
  212. package/lib/python/index.js +26 -0
  213. package/lib/python/pip.d.ts +48 -0
  214. package/lib/python/pip.js +78 -0
  215. package/lib/python/poetry.d.ts +262 -0
  216. package/lib/python/poetry.js +169 -0
  217. package/lib/python/projenrc.d.ts +42 -0
  218. package/lib/python/projenrc.js +135 -0
  219. package/lib/python/pytest.d.ts +36 -0
  220. package/lib/python/pytest.js +52 -0
  221. package/lib/python/python-deps.d.ts +44 -0
  222. package/lib/python/python-deps.js +3 -0
  223. package/lib/python/python-env.d.ts +11 -0
  224. package/lib/python/python-env.js +3 -0
  225. package/lib/python/python-packaging.d.ts +80 -0
  226. package/lib/python/python-packaging.js +3 -0
  227. package/lib/python/python-project.d.ts +202 -0
  228. package/lib/python/python-project.js +155 -0
  229. package/lib/python/python-sample.d.ts +20 -0
  230. package/lib/python/python-sample.js +48 -0
  231. package/lib/python/requirements-file.d.ts +44 -0
  232. package/lib/python/requirements-file.js +75 -0
  233. package/lib/python/setuppy.d.ts +88 -0
  234. package/lib/python/setuppy.js +78 -0
  235. package/lib/python/setuptools.d.ts +27 -0
  236. package/lib/python/setuptools.js +47 -0
  237. package/lib/python/venv.d.ts +38 -0
  238. package/lib/python/venv.js +44 -0
  239. package/lib/readme.d.ts +37 -0
  240. package/lib/readme.js +24 -0
  241. package/lib/release/bump-version.d.ts +59 -0
  242. package/lib/release/bump-version.js +151 -0
  243. package/lib/release/bump-version.task.d.ts +1 -0
  244. package/lib/release/bump-version.task.js +60 -0
  245. package/lib/release/index.d.ts +3 -0
  246. package/lib/release/index.js +16 -0
  247. package/lib/release/publisher.d.ts +554 -0
  248. package/lib/release/publisher.js +407 -0
  249. package/lib/release/release-trigger.d.ts +129 -0
  250. package/lib/release/release-trigger.js +88 -0
  251. package/lib/release/release.d.ts +361 -0
  252. package/lib/release/release.js +287 -0
  253. package/lib/release/reset-version.task.d.ts +1 -0
  254. package/lib/release/reset-version.task.js +17 -0
  255. package/lib/release/tag-version.d.ts +31 -0
  256. package/lib/release/tag-version.js +36 -0
  257. package/lib/release/tag-version.task.d.ts +1 -0
  258. package/lib/release/tag-version.task.js +34 -0
  259. package/lib/release/update-changelog.d.ts +36 -0
  260. package/lib/release/update-changelog.js +41 -0
  261. package/lib/release/update-changelog.task.d.ts +1 -0
  262. package/lib/release/update-changelog.task.js +39 -0
  263. package/lib/run-projenrc-json.task.d.ts +1 -0
  264. package/lib/run-projenrc-json.task.js +31 -0
  265. package/lib/sample-file.d.ts +121 -0
  266. package/lib/sample-file.js +129 -0
  267. package/lib/semver.d.ts +51 -0
  268. package/lib/semver.js +61 -0
  269. package/lib/source-code.d.ts +51 -0
  270. package/lib/source-code.js +66 -0
  271. package/lib/task-model.d.ts +156 -0
  272. package/lib/task-model.js +3 -0
  273. package/lib/task-runtime.d.ts +43 -0
  274. package/lib/task-runtime.js +272 -0
  275. package/lib/task.d.ts +161 -0
  276. package/lib/task.js +215 -0
  277. package/lib/tasks.d.ts +73 -0
  278. package/lib/tasks.js +129 -0
  279. package/lib/testing.d.ts +20 -0
  280. package/lib/testing.js +31 -0
  281. package/lib/textfile.d.ts +48 -0
  282. package/lib/textfile.js +47 -0
  283. package/lib/toml.d.ts +27 -0
  284. package/lib/toml.js +40 -0
  285. package/lib/typescript/index.d.ts +3 -0
  286. package/lib/typescript/index.js +16 -0
  287. package/lib/typescript/projenrc.d.ts +34 -0
  288. package/lib/typescript/projenrc.js +72 -0
  289. package/lib/typescript/typescript-typedoc.d.ts +12 -0
  290. package/lib/typescript/typescript-typedoc.js +28 -0
  291. package/lib/typescript/typescript.d.ts +215 -0
  292. package/lib/typescript/typescript.js +287 -0
  293. package/lib/util/semver.d.ts +43 -0
  294. package/lib/util/semver.js +210 -0
  295. package/lib/util/synth.d.ts +24 -0
  296. package/lib/util/synth.js +69 -0
  297. package/lib/util.d.ts +99 -0
  298. package/lib/util.js +254 -0
  299. package/lib/version.d.ts +70 -0
  300. package/lib/version.js +60 -0
  301. package/lib/vscode/devcontainer.d.ts +68 -0
  302. package/lib/vscode/devcontainer.js +104 -0
  303. package/lib/vscode/index.d.ts +3 -0
  304. package/lib/vscode/index.js +16 -0
  305. package/lib/vscode/launch-config.d.ts +149 -0
  306. package/lib/vscode/launch-config.js +51 -0
  307. package/lib/vscode/vscode.d.ts +17 -0
  308. package/lib/vscode/vscode.js +31 -0
  309. package/lib/web/index.d.ts +4 -0
  310. package/lib/web/index.js +17 -0
  311. package/lib/web/next.d.ts +141 -0
  312. package/lib/web/next.js +403 -0
  313. package/lib/web/postcss.d.ts +49 -0
  314. package/lib/web/postcss.js +35 -0
  315. package/lib/web/react.d.ts +152 -0
  316. package/lib/web/react.js +379 -0
  317. package/lib/web/tailwind.d.ts +35 -0
  318. package/lib/web/tailwind.js +42 -0
  319. package/lib/xmlfile.d.ts +30 -0
  320. package/lib/xmlfile.js +46 -0
  321. package/lib/yaml.d.ts +27 -0
  322. package/lib/yaml.js +40 -0
  323. package/license-text/Apache-2.0.txt +202 -0
  324. package/license-text/Artistic-1.0.txt +122 -0
  325. package/license-text/Artistic-2.0.txt +181 -0
  326. package/license-text/GPL-2.0-or-later.txt +339 -0
  327. package/license-text/GPL-3.0-WITH-GCC-exception-3.1.txt +73 -0
  328. package/license-text/GPL-3.0-or-later.txt +674 -0
  329. package/license-text/LGPL-2.1-or-later.txt +502 -0
  330. package/license-text/LGPL-3.0-or-later.txt +165 -0
  331. package/license-text/MIT-0.txt +15 -0
  332. package/license-text/MIT.txt +19 -0
  333. package/license-text/MPL-2.0.txt +353 -0
  334. package/license-text/OFL-1.1.txt +91 -0
  335. package/license-text/PHP-3.01.txt +68 -0
  336. package/license-text/Ruby.txt +52 -0
  337. package/license-text/Unlicense.txt +24 -0
  338. package/license-text/WTFPL.txt +14 -0
  339. package/license-text/ZPL-2.1.txt +44 -0
  340. package/logo/projen.svg +211 -0
  341. package/node_modules/@iarna/toml/CHANGELOG.md +278 -0
  342. package/node_modules/@iarna/toml/LICENSE +14 -0
  343. package/node_modules/@iarna/toml/README.md +301 -0
  344. package/node_modules/@iarna/toml/index.d.ts +57 -0
  345. package/node_modules/@iarna/toml/lib/create-date.js +23 -0
  346. package/node_modules/@iarna/toml/lib/create-datetime-float.js +24 -0
  347. package/node_modules/@iarna/toml/lib/create-datetime.js +10 -0
  348. package/node_modules/@iarna/toml/lib/create-time.js +22 -0
  349. package/node_modules/@iarna/toml/lib/format-num.js +6 -0
  350. package/node_modules/@iarna/toml/lib/parser-debug.js +60 -0
  351. package/node_modules/@iarna/toml/lib/parser.js +127 -0
  352. package/node_modules/@iarna/toml/lib/toml-parser.js +1379 -0
  353. package/node_modules/@iarna/toml/package.json +82 -0
  354. package/node_modules/@iarna/toml/parse-async.js +30 -0
  355. package/node_modules/@iarna/toml/parse-pretty-error.js +33 -0
  356. package/node_modules/@iarna/toml/parse-stream.js +80 -0
  357. package/node_modules/@iarna/toml/parse-string.js +18 -0
  358. package/node_modules/@iarna/toml/parse.js +5 -0
  359. package/node_modules/@iarna/toml/stringify.js +296 -0
  360. package/node_modules/@iarna/toml/toml.js +3 -0
  361. package/node_modules/@oozcitak/dom/LICENSE +21 -0
  362. package/node_modules/@oozcitak/dom/README.md +32 -0
  363. package/node_modules/@oozcitak/dom/lib/algorithm/AbortAlgorithm.d.ts +21 -0
  364. package/node_modules/@oozcitak/dom/lib/algorithm/AbortAlgorithm.js +79 -0
  365. package/node_modules/@oozcitak/dom/lib/algorithm/AbortAlgorithm.js.map +1 -0
  366. package/node_modules/@oozcitak/dom/lib/algorithm/AttrAlgorithm.d.ts +8 -0
  367. package/node_modules/@oozcitak/dom/lib/algorithm/AttrAlgorithm.js +23 -0
  368. package/node_modules/@oozcitak/dom/lib/algorithm/AttrAlgorithm.js.map +1 -0
  369. package/node_modules/@oozcitak/dom/lib/algorithm/BoundaryPointAlgorithm.d.ts +8 -0
  370. package/node_modules/@oozcitak/dom/lib/algorithm/BoundaryPointAlgorithm.js +76 -0
  371. package/node_modules/@oozcitak/dom/lib/algorithm/BoundaryPointAlgorithm.js.map +1 -0
  372. package/node_modules/@oozcitak/dom/lib/algorithm/CharacterDataAlgorithm.d.ts +19 -0
  373. package/node_modules/@oozcitak/dom/lib/algorithm/CharacterDataAlgorithm.js +140 -0
  374. package/node_modules/@oozcitak/dom/lib/algorithm/CharacterDataAlgorithm.js.map +1 -0
  375. package/node_modules/@oozcitak/dom/lib/algorithm/CreateAlgorithm.d.ts +192 -0
  376. package/node_modules/@oozcitak/dom/lib/algorithm/CreateAlgorithm.js +303 -0
  377. package/node_modules/@oozcitak/dom/lib/algorithm/CreateAlgorithm.js.map +1 -0
  378. package/node_modules/@oozcitak/dom/lib/algorithm/CustomElementAlgorithm.d.ts +61 -0
  379. package/node_modules/@oozcitak/dom/lib/algorithm/CustomElementAlgorithm.js +108 -0
  380. package/node_modules/@oozcitak/dom/lib/algorithm/CustomElementAlgorithm.js.map +1 -0
  381. package/node_modules/@oozcitak/dom/lib/algorithm/DOMAlgorithm.d.ts +72 -0
  382. package/node_modules/@oozcitak/dom/lib/algorithm/DOMAlgorithm.js +288 -0
  383. package/node_modules/@oozcitak/dom/lib/algorithm/DOMAlgorithm.js.map +1 -0
  384. package/node_modules/@oozcitak/dom/lib/algorithm/DOMTokenListAlgorithm.d.ts +21 -0
  385. package/node_modules/@oozcitak/dom/lib/algorithm/DOMTokenListAlgorithm.js +61 -0
  386. package/node_modules/@oozcitak/dom/lib/algorithm/DOMTokenListAlgorithm.js.map +1 -0
  387. package/node_modules/@oozcitak/dom/lib/algorithm/DocumentAlgorithm.d.ts +29 -0
  388. package/node_modules/@oozcitak/dom/lib/algorithm/DocumentAlgorithm.js +161 -0
  389. package/node_modules/@oozcitak/dom/lib/algorithm/DocumentAlgorithm.js.map +1 -0
  390. package/node_modules/@oozcitak/dom/lib/algorithm/ElementAlgorithm.d.ts +121 -0
  391. package/node_modules/@oozcitak/dom/lib/algorithm/ElementAlgorithm.js +608 -0
  392. package/node_modules/@oozcitak/dom/lib/algorithm/ElementAlgorithm.js.map +1 -0
  393. package/node_modules/@oozcitak/dom/lib/algorithm/EventAlgorithm.d.ts +146 -0
  394. package/node_modules/@oozcitak/dom/lib/algorithm/EventAlgorithm.js +995 -0
  395. package/node_modules/@oozcitak/dom/lib/algorithm/EventAlgorithm.js.map +1 -0
  396. package/node_modules/@oozcitak/dom/lib/algorithm/EventTargetAlgorithm.d.ts +33 -0
  397. package/node_modules/@oozcitak/dom/lib/algorithm/EventTargetAlgorithm.js +142 -0
  398. package/node_modules/@oozcitak/dom/lib/algorithm/EventTargetAlgorithm.js.map +1 -0
  399. package/node_modules/@oozcitak/dom/lib/algorithm/MutationAlgorithm.d.ts +66 -0
  400. package/node_modules/@oozcitak/dom/lib/algorithm/MutationAlgorithm.js +1173 -0
  401. package/node_modules/@oozcitak/dom/lib/algorithm/MutationAlgorithm.js.map +1 -0
  402. package/node_modules/@oozcitak/dom/lib/algorithm/MutationObserverAlgorithm.d.ts +43 -0
  403. package/node_modules/@oozcitak/dom/lib/algorithm/MutationObserverAlgorithm.js +276 -0
  404. package/node_modules/@oozcitak/dom/lib/algorithm/MutationObserverAlgorithm.js.map +1 -0
  405. package/node_modules/@oozcitak/dom/lib/algorithm/NamespaceAlgorithm.d.ts +25 -0
  406. package/node_modules/@oozcitak/dom/lib/algorithm/NamespaceAlgorithm.js +85 -0
  407. package/node_modules/@oozcitak/dom/lib/algorithm/NamespaceAlgorithm.js.map +1 -0
  408. package/node_modules/@oozcitak/dom/lib/algorithm/NodeAlgorithm.d.ts +68 -0
  409. package/node_modules/@oozcitak/dom/lib/algorithm/NodeAlgorithm.js +543 -0
  410. package/node_modules/@oozcitak/dom/lib/algorithm/NodeAlgorithm.js.map +1 -0
  411. package/node_modules/@oozcitak/dom/lib/algorithm/NodeIteratorAlgorithm.d.ts +15 -0
  412. package/node_modules/@oozcitak/dom/lib/algorithm/NodeIteratorAlgorithm.js +105 -0
  413. package/node_modules/@oozcitak/dom/lib/algorithm/NodeIteratorAlgorithm.js.map +1 -0
  414. package/node_modules/@oozcitak/dom/lib/algorithm/OrderedSetAlgorithm.d.ts +27 -0
  415. package/node_modules/@oozcitak/dom/lib/algorithm/OrderedSetAlgorithm.js +125 -0
  416. package/node_modules/@oozcitak/dom/lib/algorithm/OrderedSetAlgorithm.js.map +1 -0
  417. package/node_modules/@oozcitak/dom/lib/algorithm/ParentNodeAlgorithm.d.ts +9 -0
  418. package/node_modules/@oozcitak/dom/lib/algorithm/ParentNodeAlgorithm.js +69 -0
  419. package/node_modules/@oozcitak/dom/lib/algorithm/ParentNodeAlgorithm.js.map +1 -0
  420. package/node_modules/@oozcitak/dom/lib/algorithm/RangeAlgorithm.d.ts +82 -0
  421. package/node_modules/@oozcitak/dom/lib/algorithm/RangeAlgorithm.js +829 -0
  422. package/node_modules/@oozcitak/dom/lib/algorithm/RangeAlgorithm.js.map +1 -0
  423. package/node_modules/@oozcitak/dom/lib/algorithm/SelectorsAlgorithm.d.ts +8 -0
  424. package/node_modules/@oozcitak/dom/lib/algorithm/SelectorsAlgorithm.js +21 -0
  425. package/node_modules/@oozcitak/dom/lib/algorithm/SelectorsAlgorithm.js.map +1 -0
  426. package/node_modules/@oozcitak/dom/lib/algorithm/ShadowTreeAlgorithm.d.ts +57 -0
  427. package/node_modules/@oozcitak/dom/lib/algorithm/ShadowTreeAlgorithm.js +316 -0
  428. package/node_modules/@oozcitak/dom/lib/algorithm/ShadowTreeAlgorithm.js.map +1 -0
  429. package/node_modules/@oozcitak/dom/lib/algorithm/TextAlgorithm.d.ts +30 -0
  430. package/node_modules/@oozcitak/dom/lib/algorithm/TextAlgorithm.js +226 -0
  431. package/node_modules/@oozcitak/dom/lib/algorithm/TextAlgorithm.js.map +1 -0
  432. package/node_modules/@oozcitak/dom/lib/algorithm/TraversalAlgorithm.d.ts +8 -0
  433. package/node_modules/@oozcitak/dom/lib/algorithm/TraversalAlgorithm.js +62 -0
  434. package/node_modules/@oozcitak/dom/lib/algorithm/TraversalAlgorithm.js.map +1 -0
  435. package/node_modules/@oozcitak/dom/lib/algorithm/TreeAlgorithm.d.ts +268 -0
  436. package/node_modules/@oozcitak/dom/lib/algorithm/TreeAlgorithm.js +853 -0
  437. package/node_modules/@oozcitak/dom/lib/algorithm/TreeAlgorithm.js.map +1 -0
  438. package/node_modules/@oozcitak/dom/lib/algorithm/TreeWalkerAlgorithm.d.ts +17 -0
  439. package/node_modules/@oozcitak/dom/lib/algorithm/TreeWalkerAlgorithm.js +147 -0
  440. package/node_modules/@oozcitak/dom/lib/algorithm/TreeWalkerAlgorithm.js.map +1 -0
  441. package/node_modules/@oozcitak/dom/lib/algorithm/WebIDLAlgorithm.d.ts +8 -0
  442. package/node_modules/@oozcitak/dom/lib/algorithm/WebIDLAlgorithm.js +14 -0
  443. package/node_modules/@oozcitak/dom/lib/algorithm/WebIDLAlgorithm.js.map +1 -0
  444. package/node_modules/@oozcitak/dom/lib/algorithm/XMLAlgorithm.d.ts +25 -0
  445. package/node_modules/@oozcitak/dom/lib/algorithm/XMLAlgorithm.js +164 -0
  446. package/node_modules/@oozcitak/dom/lib/algorithm/XMLAlgorithm.js.map +1 -0
  447. package/node_modules/@oozcitak/dom/lib/algorithm/index.d.ts +28 -0
  448. package/node_modules/@oozcitak/dom/lib/algorithm/index.js +34 -0
  449. package/node_modules/@oozcitak/dom/lib/algorithm/index.js.map +1 -0
  450. package/node_modules/@oozcitak/dom/lib/dom/AbortControllerImpl.d.ts +15 -0
  451. package/node_modules/@oozcitak/dom/lib/dom/AbortControllerImpl.js +32 -0
  452. package/node_modules/@oozcitak/dom/lib/dom/AbortControllerImpl.js.map +1 -0
  453. package/node_modules/@oozcitak/dom/lib/dom/AbortSignalImpl.d.ts +23 -0
  454. package/node_modules/@oozcitak/dom/lib/dom/AbortSignalImpl.js +59 -0
  455. package/node_modules/@oozcitak/dom/lib/dom/AbortSignalImpl.js.map +1 -0
  456. package/node_modules/@oozcitak/dom/lib/dom/AbstractRangeImpl.d.ts +23 -0
  457. package/node_modules/@oozcitak/dom/lib/dom/AbstractRangeImpl.js +70 -0
  458. package/node_modules/@oozcitak/dom/lib/dom/AbstractRangeImpl.js.map +1 -0
  459. package/node_modules/@oozcitak/dom/lib/dom/AttrImpl.d.ts +45 -0
  460. package/node_modules/@oozcitak/dom/lib/dom/AttrImpl.js +118 -0
  461. package/node_modules/@oozcitak/dom/lib/dom/AttrImpl.js.map +1 -0
  462. package/node_modules/@oozcitak/dom/lib/dom/CDATASectionImpl.d.ts +21 -0
  463. package/node_modules/@oozcitak/dom/lib/dom/CDATASectionImpl.js +51 -0
  464. package/node_modules/@oozcitak/dom/lib/dom/CDATASectionImpl.js.map +1 -0
  465. package/node_modules/@oozcitak/dom/lib/dom/CharacterDataImpl.d.ts +35 -0
  466. package/node_modules/@oozcitak/dom/lib/dom/CharacterDataImpl.js +132 -0
  467. package/node_modules/@oozcitak/dom/lib/dom/CharacterDataImpl.js.map +1 -0
  468. package/node_modules/@oozcitak/dom/lib/dom/ChildNodeImpl.d.ts +16 -0
  469. package/node_modules/@oozcitak/dom/lib/dom/ChildNodeImpl.js +165 -0
  470. package/node_modules/@oozcitak/dom/lib/dom/ChildNodeImpl.js.map +1 -0
  471. package/node_modules/@oozcitak/dom/lib/dom/CommentImpl.d.ts +21 -0
  472. package/node_modules/@oozcitak/dom/lib/dom/CommentImpl.js +52 -0
  473. package/node_modules/@oozcitak/dom/lib/dom/CommentImpl.js.map +1 -0
  474. package/node_modules/@oozcitak/dom/lib/dom/CustomEventImpl.d.ts +16 -0
  475. package/node_modules/@oozcitak/dom/lib/dom/CustomEventImpl.js +60 -0
  476. package/node_modules/@oozcitak/dom/lib/dom/CustomEventImpl.js.map +1 -0
  477. package/node_modules/@oozcitak/dom/lib/dom/DOMException.d.ts +171 -0
  478. package/node_modules/@oozcitak/dom/lib/dom/DOMException.js +347 -0
  479. package/node_modules/@oozcitak/dom/lib/dom/DOMException.js.map +1 -0
  480. package/node_modules/@oozcitak/dom/lib/dom/DOMImpl.d.ts +48 -0
  481. package/node_modules/@oozcitak/dom/lib/dom/DOMImpl.js +100 -0
  482. package/node_modules/@oozcitak/dom/lib/dom/DOMImpl.js.map +1 -0
  483. package/node_modules/@oozcitak/dom/lib/dom/DOMImplementationImpl.d.ts +29 -0
  484. package/node_modules/@oozcitak/dom/lib/dom/DOMImplementationImpl.js +149 -0
  485. package/node_modules/@oozcitak/dom/lib/dom/DOMImplementationImpl.js.map +1 -0
  486. package/node_modules/@oozcitak/dom/lib/dom/DOMTokenListImpl.d.ts +46 -0
  487. package/node_modules/@oozcitak/dom/lib/dom/DOMTokenListImpl.js +312 -0
  488. package/node_modules/@oozcitak/dom/lib/dom/DOMTokenListImpl.js.map +1 -0
  489. package/node_modules/@oozcitak/dom/lib/dom/DocumentFragmentImpl.d.ts +32 -0
  490. package/node_modules/@oozcitak/dom/lib/dom/DocumentFragmentImpl.js +103 -0
  491. package/node_modules/@oozcitak/dom/lib/dom/DocumentFragmentImpl.js.map +1 -0
  492. package/node_modules/@oozcitak/dom/lib/dom/DocumentImpl.d.ts +116 -0
  493. package/node_modules/@oozcitak/dom/lib/dom/DocumentImpl.js +545 -0
  494. package/node_modules/@oozcitak/dom/lib/dom/DocumentImpl.js.map +1 -0
  495. package/node_modules/@oozcitak/dom/lib/dom/DocumentOrShadowRootImpl.d.ts +11 -0
  496. package/node_modules/@oozcitak/dom/lib/dom/DocumentOrShadowRootImpl.js +17 -0
  497. package/node_modules/@oozcitak/dom/lib/dom/DocumentOrShadowRootImpl.js.map +1 -0
  498. package/node_modules/@oozcitak/dom/lib/dom/DocumentTypeImpl.d.ts +39 -0
  499. package/node_modules/@oozcitak/dom/lib/dom/DocumentTypeImpl.js +109 -0
  500. package/node_modules/@oozcitak/dom/lib/dom/DocumentTypeImpl.js.map +1 -0
  501. package/node_modules/@oozcitak/dom/lib/dom/ElementImpl.d.ts +132 -0
  502. package/node_modules/@oozcitak/dom/lib/dom/ElementImpl.js +714 -0
  503. package/node_modules/@oozcitak/dom/lib/dom/ElementImpl.js.map +1 -0
  504. package/node_modules/@oozcitak/dom/lib/dom/EventImpl.d.ts +74 -0
  505. package/node_modules/@oozcitak/dom/lib/dom/EventImpl.js +313 -0
  506. package/node_modules/@oozcitak/dom/lib/dom/EventImpl.js.map +1 -0
  507. package/node_modules/@oozcitak/dom/lib/dom/EventTargetImpl.d.ts +30 -0
  508. package/node_modules/@oozcitak/dom/lib/dom/EventTargetImpl.js +133 -0
  509. package/node_modules/@oozcitak/dom/lib/dom/EventTargetImpl.js.map +1 -0
  510. package/node_modules/@oozcitak/dom/lib/dom/HTMLCollectionImpl.d.ts +44 -0
  511. package/node_modules/@oozcitak/dom/lib/dom/HTMLCollectionImpl.js +157 -0
  512. package/node_modules/@oozcitak/dom/lib/dom/HTMLCollectionImpl.js.map +1 -0
  513. package/node_modules/@oozcitak/dom/lib/dom/MutationObserverImpl.d.ts +22 -0
  514. package/node_modules/@oozcitak/dom/lib/dom/MutationObserverImpl.js +184 -0
  515. package/node_modules/@oozcitak/dom/lib/dom/MutationObserverImpl.js.map +1 -0
  516. package/node_modules/@oozcitak/dom/lib/dom/MutationRecordImpl.d.ts +73 -0
  517. package/node_modules/@oozcitak/dom/lib/dom/MutationRecordImpl.js +116 -0
  518. package/node_modules/@oozcitak/dom/lib/dom/MutationRecordImpl.js.map +1 -0
  519. package/node_modules/@oozcitak/dom/lib/dom/NamedNodeMapImpl.d.ts +34 -0
  520. package/node_modules/@oozcitak/dom/lib/dom/NamedNodeMapImpl.js +112 -0
  521. package/node_modules/@oozcitak/dom/lib/dom/NamedNodeMapImpl.js.map +1 -0
  522. package/node_modules/@oozcitak/dom/lib/dom/NodeFilterImpl.d.ts +50 -0
  523. package/node_modules/@oozcitak/dom/lib/dom/NodeFilterImpl.js +64 -0
  524. package/node_modules/@oozcitak/dom/lib/dom/NodeFilterImpl.js.map +1 -0
  525. package/node_modules/@oozcitak/dom/lib/dom/NodeImpl.d.ts +252 -0
  526. package/node_modules/@oozcitak/dom/lib/dom/NodeImpl.js +891 -0
  527. package/node_modules/@oozcitak/dom/lib/dom/NodeImpl.js.map +1 -0
  528. package/node_modules/@oozcitak/dom/lib/dom/NodeIteratorImpl.d.ts +34 -0
  529. package/node_modules/@oozcitak/dom/lib/dom/NodeIteratorImpl.js +86 -0
  530. package/node_modules/@oozcitak/dom/lib/dom/NodeIteratorImpl.js.map +1 -0
  531. package/node_modules/@oozcitak/dom/lib/dom/NodeListImpl.d.ts +46 -0
  532. package/node_modules/@oozcitak/dom/lib/dom/NodeListImpl.js +198 -0
  533. package/node_modules/@oozcitak/dom/lib/dom/NodeListImpl.js.map +1 -0
  534. package/node_modules/@oozcitak/dom/lib/dom/NodeListStaticImpl.d.ts +49 -0
  535. package/node_modules/@oozcitak/dom/lib/dom/NodeListStaticImpl.js +188 -0
  536. package/node_modules/@oozcitak/dom/lib/dom/NodeListStaticImpl.js.map +1 -0
  537. package/node_modules/@oozcitak/dom/lib/dom/NonDocumentTypeChildNodeImpl.d.ts +12 -0
  538. package/node_modules/@oozcitak/dom/lib/dom/NonDocumentTypeChildNodeImpl.js +53 -0
  539. package/node_modules/@oozcitak/dom/lib/dom/NonDocumentTypeChildNodeImpl.js.map +1 -0
  540. package/node_modules/@oozcitak/dom/lib/dom/NonElementParentNodeImpl.d.ts +9 -0
  541. package/node_modules/@oozcitak/dom/lib/dom/NonElementParentNodeImpl.js +31 -0
  542. package/node_modules/@oozcitak/dom/lib/dom/NonElementParentNodeImpl.js.map +1 -0
  543. package/node_modules/@oozcitak/dom/lib/dom/ParentNodeImpl.d.ts +24 -0
  544. package/node_modules/@oozcitak/dom/lib/dom/ParentNodeImpl.js +158 -0
  545. package/node_modules/@oozcitak/dom/lib/dom/ParentNodeImpl.js.map +1 -0
  546. package/node_modules/@oozcitak/dom/lib/dom/ProcessingInstructionImpl.d.ts +25 -0
  547. package/node_modules/@oozcitak/dom/lib/dom/ProcessingInstructionImpl.js +59 -0
  548. package/node_modules/@oozcitak/dom/lib/dom/ProcessingInstructionImpl.js.map +1 -0
  549. package/node_modules/@oozcitak/dom/lib/dom/RangeImpl.d.ts +71 -0
  550. package/node_modules/@oozcitak/dom/lib/dom/RangeImpl.js +649 -0
  551. package/node_modules/@oozcitak/dom/lib/dom/RangeImpl.js.map +1 -0
  552. package/node_modules/@oozcitak/dom/lib/dom/ShadowRootImpl.d.ts +33 -0
  553. package/node_modules/@oozcitak/dom/lib/dom/ShadowRootImpl.js +82 -0
  554. package/node_modules/@oozcitak/dom/lib/dom/ShadowRootImpl.js.map +1 -0
  555. package/node_modules/@oozcitak/dom/lib/dom/SlotableImpl.d.ts +16 -0
  556. package/node_modules/@oozcitak/dom/lib/dom/SlotableImpl.js +35 -0
  557. package/node_modules/@oozcitak/dom/lib/dom/SlotableImpl.js.map +1 -0
  558. package/node_modules/@oozcitak/dom/lib/dom/StaticRangeImpl.d.ts +13 -0
  559. package/node_modules/@oozcitak/dom/lib/dom/StaticRangeImpl.js +48 -0
  560. package/node_modules/@oozcitak/dom/lib/dom/StaticRangeImpl.js.map +1 -0
  561. package/node_modules/@oozcitak/dom/lib/dom/TextImpl.d.ts +28 -0
  562. package/node_modules/@oozcitak/dom/lib/dom/TextImpl.js +109 -0
  563. package/node_modules/@oozcitak/dom/lib/dom/TextImpl.js.map +1 -0
  564. package/node_modules/@oozcitak/dom/lib/dom/TraverserImpl.d.ts +23 -0
  565. package/node_modules/@oozcitak/dom/lib/dom/TraverserImpl.js +41 -0
  566. package/node_modules/@oozcitak/dom/lib/dom/TraverserImpl.js.map +1 -0
  567. package/node_modules/@oozcitak/dom/lib/dom/TreeWalkerImpl.d.ts +36 -0
  568. package/node_modules/@oozcitak/dom/lib/dom/TreeWalkerImpl.js +249 -0
  569. package/node_modules/@oozcitak/dom/lib/dom/TreeWalkerImpl.js.map +1 -0
  570. package/node_modules/@oozcitak/dom/lib/dom/WindowImpl.d.ts +26 -0
  571. package/node_modules/@oozcitak/dom/lib/dom/WindowImpl.js +57 -0
  572. package/node_modules/@oozcitak/dom/lib/dom/WindowImpl.js.map +1 -0
  573. package/node_modules/@oozcitak/dom/lib/dom/XMLDocumentImpl.d.ts +11 -0
  574. package/node_modules/@oozcitak/dom/lib/dom/XMLDocumentImpl.js +31 -0
  575. package/node_modules/@oozcitak/dom/lib/dom/XMLDocumentImpl.js.map +1 -0
  576. package/node_modules/@oozcitak/dom/lib/dom/index.d.ts +36 -0
  577. package/node_modules/@oozcitak/dom/lib/dom/index.js +102 -0
  578. package/node_modules/@oozcitak/dom/lib/dom/index.js.map +1 -0
  579. package/node_modules/@oozcitak/dom/lib/dom/interfaces.d.ts +2218 -0
  580. package/node_modules/@oozcitak/dom/lib/dom/interfaces.js +91 -0
  581. package/node_modules/@oozcitak/dom/lib/dom/interfaces.js.map +1 -0
  582. package/node_modules/@oozcitak/dom/lib/index.d.ts +3 -0
  583. package/node_modules/@oozcitak/dom/lib/index.js +11 -0
  584. package/node_modules/@oozcitak/dom/lib/index.js.map +1 -0
  585. package/node_modules/@oozcitak/dom/lib/parser/DOMParserImpl.d.ts +11 -0
  586. package/node_modules/@oozcitak/dom/lib/parser/DOMParserImpl.js +37 -0
  587. package/node_modules/@oozcitak/dom/lib/parser/DOMParserImpl.js.map +1 -0
  588. package/node_modules/@oozcitak/dom/lib/parser/XMLParserImpl.d.ts +14 -0
  589. package/node_modules/@oozcitak/dom/lib/parser/XMLParserImpl.js +220 -0
  590. package/node_modules/@oozcitak/dom/lib/parser/XMLParserImpl.js.map +1 -0
  591. package/node_modules/@oozcitak/dom/lib/parser/XMLStringLexer.d.ts +159 -0
  592. package/node_modules/@oozcitak/dom/lib/parser/XMLStringLexer.js +512 -0
  593. package/node_modules/@oozcitak/dom/lib/parser/XMLStringLexer.js.map +1 -0
  594. package/node_modules/@oozcitak/dom/lib/parser/index.d.ts +1 -0
  595. package/node_modules/@oozcitak/dom/lib/parser/index.js +6 -0
  596. package/node_modules/@oozcitak/dom/lib/parser/index.js.map +1 -0
  597. package/node_modules/@oozcitak/dom/lib/parser/interfaces.d.ts +131 -0
  598. package/node_modules/@oozcitak/dom/lib/parser/interfaces.js +18 -0
  599. package/node_modules/@oozcitak/dom/lib/parser/interfaces.js.map +1 -0
  600. package/node_modules/@oozcitak/dom/lib/serializer/LocalNameSet.d.ts +27 -0
  601. package/node_modules/@oozcitak/dom/lib/serializer/LocalNameSet.js +56 -0
  602. package/node_modules/@oozcitak/dom/lib/serializer/LocalNameSet.js.map +1 -0
  603. package/node_modules/@oozcitak/dom/lib/serializer/NamespacePrefixMap.d.ts +52 -0
  604. package/node_modules/@oozcitak/dom/lib/serializer/NamespacePrefixMap.js +151 -0
  605. package/node_modules/@oozcitak/dom/lib/serializer/NamespacePrefixMap.js.map +1 -0
  606. package/node_modules/@oozcitak/dom/lib/serializer/XMLSerializerImpl.d.ts +166 -0
  607. package/node_modules/@oozcitak/dom/lib/serializer/XMLSerializerImpl.js +1479 -0
  608. package/node_modules/@oozcitak/dom/lib/serializer/XMLSerializerImpl.js.map +1 -0
  609. package/node_modules/@oozcitak/dom/lib/serializer/XMLSerializerImpl2.d.ts +2 -0
  610. package/node_modules/@oozcitak/dom/lib/serializer/XMLSerializerImpl2.js +962 -0
  611. package/node_modules/@oozcitak/dom/lib/serializer/XMLSerializerImpl2.js.map +1 -0
  612. package/node_modules/@oozcitak/dom/lib/serializer/index.d.ts +1 -0
  613. package/node_modules/@oozcitak/dom/lib/serializer/index.js +6 -0
  614. package/node_modules/@oozcitak/dom/lib/serializer/index.js.map +1 -0
  615. package/node_modules/@oozcitak/dom/lib/serializer/interfaces.d.ts +15 -0
  616. package/node_modules/@oozcitak/dom/lib/serializer/interfaces.js +3 -0
  617. package/node_modules/@oozcitak/dom/lib/serializer/interfaces.js.map +1 -0
  618. package/node_modules/@oozcitak/dom/lib/util/Cast.d.ts +12 -0
  619. package/node_modules/@oozcitak/dom/lib/util/Cast.js +26 -0
  620. package/node_modules/@oozcitak/dom/lib/util/Cast.js.map +1 -0
  621. package/node_modules/@oozcitak/dom/lib/util/EmptySet.d.ts +13 -0
  622. package/node_modules/@oozcitak/dom/lib/util/EmptySet.js +61 -0
  623. package/node_modules/@oozcitak/dom/lib/util/EmptySet.js.map +1 -0
  624. package/node_modules/@oozcitak/dom/lib/util/Guard.d.ts +135 -0
  625. package/node_modules/@oozcitak/dom/lib/util/Guard.js +192 -0
  626. package/node_modules/@oozcitak/dom/lib/util/Guard.js.map +1 -0
  627. package/node_modules/@oozcitak/dom/lib/util/index.d.ts +3 -0
  628. package/node_modules/@oozcitak/dom/lib/util/index.js +9 -0
  629. package/node_modules/@oozcitak/dom/lib/util/index.js.map +1 -0
  630. package/node_modules/@oozcitak/dom/package.json +72 -0
  631. package/node_modules/@oozcitak/infra/LICENSE +21 -0
  632. package/node_modules/@oozcitak/infra/README.md +13 -0
  633. package/node_modules/@oozcitak/infra/lib/Base64.d.ts +12 -0
  634. package/node_modules/@oozcitak/infra/lib/Base64.js +82 -0
  635. package/node_modules/@oozcitak/infra/lib/Base64.js.map +1 -0
  636. package/node_modules/@oozcitak/infra/lib/Byte.d.ts +6 -0
  637. package/node_modules/@oozcitak/infra/lib/Byte.js +15 -0
  638. package/node_modules/@oozcitak/infra/lib/Byte.js.map +1 -0
  639. package/node_modules/@oozcitak/infra/lib/ByteSequence.d.ts +45 -0
  640. package/node_modules/@oozcitak/infra/lib/ByteSequence.js +171 -0
  641. package/node_modules/@oozcitak/infra/lib/ByteSequence.js.map +1 -0
  642. package/node_modules/@oozcitak/infra/lib/CodePoints.d.ts +82 -0
  643. package/node_modules/@oozcitak/infra/lib/CodePoints.js +85 -0
  644. package/node_modules/@oozcitak/infra/lib/CodePoints.js.map +1 -0
  645. package/node_modules/@oozcitak/infra/lib/JSON.d.ts +24 -0
  646. package/node_modules/@oozcitak/infra/lib/JSON.js +123 -0
  647. package/node_modules/@oozcitak/infra/lib/JSON.js.map +1 -0
  648. package/node_modules/@oozcitak/infra/lib/List.d.ts +101 -0
  649. package/node_modules/@oozcitak/infra/lib/List.js +325 -0
  650. package/node_modules/@oozcitak/infra/lib/List.js.map +1 -0
  651. package/node_modules/@oozcitak/infra/lib/Map.d.ts +87 -0
  652. package/node_modules/@oozcitak/infra/lib/Map.js +308 -0
  653. package/node_modules/@oozcitak/infra/lib/Map.js.map +1 -0
  654. package/node_modules/@oozcitak/infra/lib/Namespace.d.ts +6 -0
  655. package/node_modules/@oozcitak/infra/lib/Namespace.js +9 -0
  656. package/node_modules/@oozcitak/infra/lib/Namespace.js.map +1 -0
  657. package/node_modules/@oozcitak/infra/lib/Queue.d.ts +13 -0
  658. package/node_modules/@oozcitak/infra/lib/Queue.js +22 -0
  659. package/node_modules/@oozcitak/infra/lib/Queue.js.map +1 -0
  660. package/node_modules/@oozcitak/infra/lib/Set.d.ts +136 -0
  661. package/node_modules/@oozcitak/infra/lib/Set.js +467 -0
  662. package/node_modules/@oozcitak/infra/lib/Set.js.map +1 -0
  663. package/node_modules/@oozcitak/infra/lib/Stack.d.ts +13 -0
  664. package/node_modules/@oozcitak/infra/lib/Stack.js +22 -0
  665. package/node_modules/@oozcitak/infra/lib/Stack.js.map +1 -0
  666. package/node_modules/@oozcitak/infra/lib/String.d.ts +129 -0
  667. package/node_modules/@oozcitak/infra/lib/String.js +472 -0
  668. package/node_modules/@oozcitak/infra/lib/String.js.map +1 -0
  669. package/node_modules/@oozcitak/infra/lib/index.d.ts +13 -0
  670. package/node_modules/@oozcitak/infra/lib/index.js +34 -0
  671. package/node_modules/@oozcitak/infra/lib/index.js.map +1 -0
  672. package/node_modules/@oozcitak/infra/package.json +54 -0
  673. package/node_modules/@oozcitak/url/LICENSE +21 -0
  674. package/node_modules/@oozcitak/url/README.md +27 -0
  675. package/node_modules/@oozcitak/url/lib/URLAlgorithm.d.ts +267 -0
  676. package/node_modules/@oozcitak/url/lib/URLAlgorithm.js +2758 -0
  677. package/node_modules/@oozcitak/url/lib/URLAlgorithm.js.map +1 -0
  678. package/node_modules/@oozcitak/url/lib/URLImpl.d.ts +53 -0
  679. package/node_modules/@oozcitak/url/lib/URLImpl.js +377 -0
  680. package/node_modules/@oozcitak/url/lib/URLImpl.js.map +1 -0
  681. package/node_modules/@oozcitak/url/lib/URLSearchParamsImpl.d.ts +38 -0
  682. package/node_modules/@oozcitak/url/lib/URLSearchParamsImpl.js +303 -0
  683. package/node_modules/@oozcitak/url/lib/URLSearchParamsImpl.js.map +1 -0
  684. package/node_modules/@oozcitak/url/lib/index.d.ts +2 -0
  685. package/node_modules/@oozcitak/url/lib/index.js +7 -0
  686. package/node_modules/@oozcitak/url/lib/index.js.map +1 -0
  687. package/node_modules/@oozcitak/url/lib/interfaces.d.ts +195 -0
  688. package/node_modules/@oozcitak/url/lib/interfaces.js +31 -0
  689. package/node_modules/@oozcitak/url/lib/interfaces.js.map +1 -0
  690. package/node_modules/@oozcitak/url/package.json +55 -0
  691. package/node_modules/@oozcitak/util/LICENSE +21 -0
  692. package/node_modules/@oozcitak/util/README.md +10 -0
  693. package/node_modules/@oozcitak/util/lib/CompareCache.d.ts +32 -0
  694. package/node_modules/@oozcitak/util/lib/CompareCache.js +59 -0
  695. package/node_modules/@oozcitak/util/lib/CompareCache.js.map +1 -0
  696. package/node_modules/@oozcitak/util/lib/FixedSizeSet.d.ts +64 -0
  697. package/node_modules/@oozcitak/util/lib/FixedSizeSet.js +174 -0
  698. package/node_modules/@oozcitak/util/lib/FixedSizeSet.js.map +1 -0
  699. package/node_modules/@oozcitak/util/lib/Lazy.d.ts +18 -0
  700. package/node_modules/@oozcitak/util/lib/Lazy.js +34 -0
  701. package/node_modules/@oozcitak/util/lib/Lazy.js.map +1 -0
  702. package/node_modules/@oozcitak/util/lib/ObjectCache.d.ts +71 -0
  703. package/node_modules/@oozcitak/util/lib/ObjectCache.js +181 -0
  704. package/node_modules/@oozcitak/util/lib/ObjectCache.js.map +1 -0
  705. package/node_modules/@oozcitak/util/lib/StringWalker.d.ts +49 -0
  706. package/node_modules/@oozcitak/util/lib/StringWalker.js +105 -0
  707. package/node_modules/@oozcitak/util/lib/StringWalker.js.map +1 -0
  708. package/node_modules/@oozcitak/util/lib/index.d.ts +178 -0
  709. package/node_modules/@oozcitak/util/lib/index.js +439 -0
  710. package/node_modules/@oozcitak/util/lib/index.js.map +1 -0
  711. package/node_modules/@oozcitak/util/package.json +50 -0
  712. package/node_modules/ansi-regex/index.d.ts +37 -0
  713. package/node_modules/ansi-regex/index.js +10 -0
  714. package/node_modules/ansi-regex/license +9 -0
  715. package/node_modules/ansi-regex/package.json +55 -0
  716. package/node_modules/ansi-regex/readme.md +78 -0
  717. package/node_modules/ansi-styles/index.d.ts +345 -0
  718. package/node_modules/ansi-styles/index.js +163 -0
  719. package/node_modules/ansi-styles/license +9 -0
  720. package/node_modules/ansi-styles/package.json +56 -0
  721. package/node_modules/ansi-styles/readme.md +152 -0
  722. package/node_modules/argparse/CHANGELOG.md +185 -0
  723. package/node_modules/argparse/LICENSE +21 -0
  724. package/node_modules/argparse/README.md +257 -0
  725. package/node_modules/argparse/index.js +3 -0
  726. package/node_modules/argparse/lib/action/append/constant.js +47 -0
  727. package/node_modules/argparse/lib/action/append.js +53 -0
  728. package/node_modules/argparse/lib/action/count.js +40 -0
  729. package/node_modules/argparse/lib/action/help.js +47 -0
  730. package/node_modules/argparse/lib/action/store/constant.js +43 -0
  731. package/node_modules/argparse/lib/action/store/false.js +27 -0
  732. package/node_modules/argparse/lib/action/store/true.js +26 -0
  733. package/node_modules/argparse/lib/action/store.js +50 -0
  734. package/node_modules/argparse/lib/action/subparsers.js +149 -0
  735. package/node_modules/argparse/lib/action/version.js +47 -0
  736. package/node_modules/argparse/lib/action.js +146 -0
  737. package/node_modules/argparse/lib/action_container.js +482 -0
  738. package/node_modules/argparse/lib/argparse.js +14 -0
  739. package/node_modules/argparse/lib/argument/error.js +50 -0
  740. package/node_modules/argparse/lib/argument/exclusive.js +54 -0
  741. package/node_modules/argparse/lib/argument/group.js +75 -0
  742. package/node_modules/argparse/lib/argument_parser.js +1161 -0
  743. package/node_modules/argparse/lib/const.js +21 -0
  744. package/node_modules/argparse/lib/help/added_formatters.js +87 -0
  745. package/node_modules/argparse/lib/help/formatter.js +795 -0
  746. package/node_modules/argparse/lib/namespace.js +76 -0
  747. package/node_modules/argparse/lib/utils.js +57 -0
  748. package/node_modules/argparse/package.json +34 -0
  749. package/node_modules/at-least-node/LICENSE +6 -0
  750. package/node_modules/at-least-node/README.md +25 -0
  751. package/node_modules/at-least-node/index.js +5 -0
  752. package/node_modules/at-least-node/package.json +32 -0
  753. package/node_modules/balanced-match/.github/FUNDING.yml +2 -0
  754. package/node_modules/balanced-match/LICENSE.md +21 -0
  755. package/node_modules/balanced-match/README.md +97 -0
  756. package/node_modules/balanced-match/index.js +62 -0
  757. package/node_modules/balanced-match/package.json +48 -0
  758. package/node_modules/brace-expansion/LICENSE +21 -0
  759. package/node_modules/brace-expansion/README.md +129 -0
  760. package/node_modules/brace-expansion/index.js +201 -0
  761. package/node_modules/brace-expansion/package.json +47 -0
  762. package/node_modules/case/LICENSE +22 -0
  763. package/node_modules/case/README.md +139 -0
  764. package/node_modules/case/case.d.ts +43 -0
  765. package/node_modules/case/dist/Case.js +171 -0
  766. package/node_modules/case/dist/Case.min.js +5 -0
  767. package/node_modules/case/dist/Case.min.js.map +1 -0
  768. package/node_modules/case/dist/Case.plus.js +189 -0
  769. package/node_modules/case/dist/Case.plus.min.js +5 -0
  770. package/node_modules/case/dist/Case.plus.min.js.map +1 -0
  771. package/node_modules/case/package.json +58 -0
  772. package/node_modules/chalk/index.d.ts +415 -0
  773. package/node_modules/chalk/license +9 -0
  774. package/node_modules/chalk/package.json +68 -0
  775. package/node_modules/chalk/readme.md +341 -0
  776. package/node_modules/chalk/source/index.js +229 -0
  777. package/node_modules/chalk/source/templates.js +134 -0
  778. package/node_modules/chalk/source/util.js +39 -0
  779. package/node_modules/cliui/CHANGELOG.md +121 -0
  780. package/node_modules/cliui/LICENSE.txt +14 -0
  781. package/node_modules/cliui/README.md +141 -0
  782. package/node_modules/cliui/build/index.cjs +302 -0
  783. package/node_modules/cliui/build/lib/index.js +287 -0
  784. package/node_modules/cliui/build/lib/string-utils.js +27 -0
  785. package/node_modules/cliui/index.mjs +13 -0
  786. package/node_modules/cliui/package.json +83 -0
  787. package/node_modules/color-convert/CHANGELOG.md +54 -0
  788. package/node_modules/color-convert/LICENSE +21 -0
  789. package/node_modules/color-convert/README.md +68 -0
  790. package/node_modules/color-convert/conversions.js +839 -0
  791. package/node_modules/color-convert/index.js +81 -0
  792. package/node_modules/color-convert/package.json +48 -0
  793. package/node_modules/color-convert/route.js +97 -0
  794. package/node_modules/color-name/LICENSE +8 -0
  795. package/node_modules/color-name/README.md +11 -0
  796. package/node_modules/color-name/index.js +152 -0
  797. package/node_modules/color-name/package.json +28 -0
  798. package/node_modules/concat-map/.travis.yml +4 -0
  799. package/node_modules/concat-map/LICENSE +18 -0
  800. package/node_modules/concat-map/README.markdown +62 -0
  801. package/node_modules/concat-map/example/map.js +6 -0
  802. package/node_modules/concat-map/index.js +13 -0
  803. package/node_modules/concat-map/package.json +43 -0
  804. package/node_modules/concat-map/test/map.js +39 -0
  805. package/node_modules/conventional-changelog-config-spec/CHANGELOG.md +15 -0
  806. package/node_modules/conventional-changelog-config-spec/README.md +7 -0
  807. package/node_modules/conventional-changelog-config-spec/index.js +1 -0
  808. package/node_modules/conventional-changelog-config-spec/package.json +32 -0
  809. package/node_modules/conventional-changelog-config-spec/renovate.json +5 -0
  810. package/node_modules/conventional-changelog-config-spec/tests/shared.js +38 -0
  811. package/node_modules/conventional-changelog-config-spec/tests/v1.test.js +7 -0
  812. package/node_modules/conventional-changelog-config-spec/tests/v2.test.js +26 -0
  813. package/node_modules/conventional-changelog-config-spec/versions/1.0.0/README.md +143 -0
  814. package/node_modules/conventional-changelog-config-spec/versions/1.0.0/schema.json +81 -0
  815. package/node_modules/conventional-changelog-config-spec/versions/2.0.0/README.md +155 -0
  816. package/node_modules/conventional-changelog-config-spec/versions/2.0.0/schema.json +89 -0
  817. package/node_modules/conventional-changelog-config-spec/versions/2.1.0/README.md +166 -0
  818. package/node_modules/conventional-changelog-config-spec/versions/2.1.0/schema.json +97 -0
  819. package/node_modules/emoji-regex/LICENSE-MIT.txt +20 -0
  820. package/node_modules/emoji-regex/README.md +73 -0
  821. package/node_modules/emoji-regex/es2015/index.js +6 -0
  822. package/node_modules/emoji-regex/es2015/text.js +6 -0
  823. package/node_modules/emoji-regex/index.d.ts +23 -0
  824. package/node_modules/emoji-regex/index.js +6 -0
  825. package/node_modules/emoji-regex/package.json +50 -0
  826. package/node_modules/emoji-regex/text.js +6 -0
  827. package/node_modules/escalade/dist/index.js +22 -0
  828. package/node_modules/escalade/dist/index.mjs +22 -0
  829. package/node_modules/escalade/index.d.ts +3 -0
  830. package/node_modules/escalade/license +9 -0
  831. package/node_modules/escalade/package.json +61 -0
  832. package/node_modules/escalade/readme.md +211 -0
  833. package/node_modules/escalade/sync/index.d.ts +2 -0
  834. package/node_modules/escalade/sync/index.js +18 -0
  835. package/node_modules/escalade/sync/index.mjs +18 -0
  836. package/node_modules/esprima/ChangeLog +235 -0
  837. package/node_modules/esprima/LICENSE.BSD +21 -0
  838. package/node_modules/esprima/README.md +46 -0
  839. package/node_modules/esprima/bin/esparse.js +139 -0
  840. package/node_modules/esprima/bin/esvalidate.js +236 -0
  841. package/node_modules/esprima/dist/esprima.js +6709 -0
  842. package/node_modules/esprima/package.json +112 -0
  843. package/node_modules/fs-extra/CHANGELOG.md +902 -0
  844. package/node_modules/fs-extra/LICENSE +15 -0
  845. package/node_modules/fs-extra/README.md +264 -0
  846. package/node_modules/fs-extra/lib/copy/copy.js +232 -0
  847. package/node_modules/fs-extra/lib/copy/index.js +6 -0
  848. package/node_modules/fs-extra/lib/copy-sync/copy-sync.js +166 -0
  849. package/node_modules/fs-extra/lib/copy-sync/index.js +5 -0
  850. package/node_modules/fs-extra/lib/empty/index.js +48 -0
  851. package/node_modules/fs-extra/lib/ensure/file.js +69 -0
  852. package/node_modules/fs-extra/lib/ensure/index.js +23 -0
  853. package/node_modules/fs-extra/lib/ensure/link.js +61 -0
  854. package/node_modules/fs-extra/lib/ensure/symlink-paths.js +99 -0
  855. package/node_modules/fs-extra/lib/ensure/symlink-type.js +31 -0
  856. package/node_modules/fs-extra/lib/ensure/symlink.js +63 -0
  857. package/node_modules/fs-extra/lib/fs/index.js +130 -0
  858. package/node_modules/fs-extra/lib/index.js +27 -0
  859. package/node_modules/fs-extra/lib/json/index.js +16 -0
  860. package/node_modules/fs-extra/lib/json/jsonfile.js +11 -0
  861. package/node_modules/fs-extra/lib/json/output-json-sync.js +12 -0
  862. package/node_modules/fs-extra/lib/json/output-json.js +12 -0
  863. package/node_modules/fs-extra/lib/mkdirs/index.js +14 -0
  864. package/node_modules/fs-extra/lib/mkdirs/make-dir.js +141 -0
  865. package/node_modules/fs-extra/lib/move/index.js +6 -0
  866. package/node_modules/fs-extra/lib/move/move.js +65 -0
  867. package/node_modules/fs-extra/lib/move-sync/index.js +5 -0
  868. package/node_modules/fs-extra/lib/move-sync/move-sync.js +47 -0
  869. package/node_modules/fs-extra/lib/output/index.js +40 -0
  870. package/node_modules/fs-extra/lib/path-exists/index.js +12 -0
  871. package/node_modules/fs-extra/lib/remove/index.js +9 -0
  872. package/node_modules/fs-extra/lib/remove/rimraf.js +302 -0
  873. package/node_modules/fs-extra/lib/util/stat.js +139 -0
  874. package/node_modules/fs-extra/lib/util/utimes.js +26 -0
  875. package/node_modules/fs-extra/node_modules/universalify/LICENSE +20 -0
  876. package/node_modules/fs-extra/node_modules/universalify/README.md +76 -0
  877. package/node_modules/fs-extra/node_modules/universalify/index.js +24 -0
  878. package/node_modules/fs-extra/node_modules/universalify/package.json +34 -0
  879. package/node_modules/fs-extra/package.json +70 -0
  880. package/node_modules/fs.realpath/LICENSE +43 -0
  881. package/node_modules/fs.realpath/README.md +33 -0
  882. package/node_modules/fs.realpath/index.js +66 -0
  883. package/node_modules/fs.realpath/old.js +303 -0
  884. package/node_modules/fs.realpath/package.json +26 -0
  885. package/node_modules/function-bind/.editorconfig +20 -0
  886. package/node_modules/function-bind/.eslintrc +15 -0
  887. package/node_modules/function-bind/.jscs.json +176 -0
  888. package/node_modules/function-bind/.npmignore +22 -0
  889. package/node_modules/function-bind/.travis.yml +168 -0
  890. package/node_modules/function-bind/LICENSE +20 -0
  891. package/node_modules/function-bind/README.md +48 -0
  892. package/node_modules/function-bind/implementation.js +52 -0
  893. package/node_modules/function-bind/index.js +5 -0
  894. package/node_modules/function-bind/package.json +63 -0
  895. package/node_modules/function-bind/test/.eslintrc +9 -0
  896. package/node_modules/function-bind/test/index.js +252 -0
  897. package/node_modules/get-caller-file/LICENSE.md +6 -0
  898. package/node_modules/get-caller-file/README.md +41 -0
  899. package/node_modules/get-caller-file/index.d.ts +2 -0
  900. package/node_modules/get-caller-file/index.js +22 -0
  901. package/node_modules/get-caller-file/index.js.map +1 -0
  902. package/node_modules/get-caller-file/package.json +42 -0
  903. package/node_modules/glob/LICENSE +21 -0
  904. package/node_modules/glob/README.md +378 -0
  905. package/node_modules/glob/common.js +236 -0
  906. package/node_modules/glob/glob.js +787 -0
  907. package/node_modules/glob/package.json +52 -0
  908. package/node_modules/glob/sync.js +483 -0
  909. package/node_modules/graceful-fs/LICENSE +15 -0
  910. package/node_modules/graceful-fs/README.md +143 -0
  911. package/node_modules/graceful-fs/clone.js +23 -0
  912. package/node_modules/graceful-fs/graceful-fs.js +429 -0
  913. package/node_modules/graceful-fs/legacy-streams.js +118 -0
  914. package/node_modules/graceful-fs/package.json +50 -0
  915. package/node_modules/graceful-fs/polyfills.js +346 -0
  916. package/node_modules/has/LICENSE-MIT +22 -0
  917. package/node_modules/has/README.md +18 -0
  918. package/node_modules/has/package.json +48 -0
  919. package/node_modules/has/src/index.js +5 -0
  920. package/node_modules/has/test/index.js +10 -0
  921. package/node_modules/has-flag/index.d.ts +39 -0
  922. package/node_modules/has-flag/index.js +8 -0
  923. package/node_modules/has-flag/license +9 -0
  924. package/node_modules/has-flag/package.json +46 -0
  925. package/node_modules/has-flag/readme.md +89 -0
  926. package/node_modules/inflight/LICENSE +15 -0
  927. package/node_modules/inflight/README.md +37 -0
  928. package/node_modules/inflight/inflight.js +54 -0
  929. package/node_modules/inflight/package.json +29 -0
  930. package/node_modules/inherits/LICENSE +16 -0
  931. package/node_modules/inherits/README.md +42 -0
  932. package/node_modules/inherits/inherits.js +9 -0
  933. package/node_modules/inherits/inherits_browser.js +27 -0
  934. package/node_modules/inherits/package.json +29 -0
  935. package/node_modules/ini/LICENSE +15 -0
  936. package/node_modules/ini/README.md +102 -0
  937. package/node_modules/ini/ini.js +206 -0
  938. package/node_modules/ini/package.json +36 -0
  939. package/node_modules/interpret/CHANGELOG +115 -0
  940. package/node_modules/interpret/LICENSE +22 -0
  941. package/node_modules/interpret/README.md +187 -0
  942. package/node_modules/interpret/index.js +168 -0
  943. package/node_modules/interpret/mjs-stub.js +1 -0
  944. package/node_modules/interpret/package.json +75 -0
  945. package/node_modules/is-core-module/.eslintignore +1 -0
  946. package/node_modules/is-core-module/.eslintrc +18 -0
  947. package/node_modules/is-core-module/.nycrc +9 -0
  948. package/node_modules/is-core-module/CHANGELOG.md +117 -0
  949. package/node_modules/is-core-module/LICENSE +20 -0
  950. package/node_modules/is-core-module/README.md +40 -0
  951. package/node_modules/is-core-module/core.json +152 -0
  952. package/node_modules/is-core-module/index.js +69 -0
  953. package/node_modules/is-core-module/package.json +69 -0
  954. package/node_modules/is-core-module/test/index.js +130 -0
  955. package/node_modules/is-fullwidth-code-point/index.d.ts +17 -0
  956. package/node_modules/is-fullwidth-code-point/index.js +50 -0
  957. package/node_modules/is-fullwidth-code-point/license +9 -0
  958. package/node_modules/is-fullwidth-code-point/package.json +42 -0
  959. package/node_modules/is-fullwidth-code-point/readme.md +39 -0
  960. package/node_modules/jsonfile/CHANGELOG.md +171 -0
  961. package/node_modules/jsonfile/LICENSE +15 -0
  962. package/node_modules/jsonfile/README.md +230 -0
  963. package/node_modules/jsonfile/index.js +88 -0
  964. package/node_modules/jsonfile/node_modules/universalify/LICENSE +20 -0
  965. package/node_modules/jsonfile/node_modules/universalify/README.md +76 -0
  966. package/node_modules/jsonfile/node_modules/universalify/index.js +24 -0
  967. package/node_modules/jsonfile/node_modules/universalify/package.json +34 -0
  968. package/node_modules/jsonfile/package.json +40 -0
  969. package/node_modules/jsonfile/utils.js +14 -0
  970. package/node_modules/lru-cache/LICENSE +15 -0
  971. package/node_modules/lru-cache/README.md +166 -0
  972. package/node_modules/lru-cache/index.js +334 -0
  973. package/node_modules/lru-cache/package.json +34 -0
  974. package/node_modules/minimatch/LICENSE +15 -0
  975. package/node_modules/minimatch/README.md +209 -0
  976. package/node_modules/minimatch/minimatch.js +923 -0
  977. package/node_modules/minimatch/package.json +30 -0
  978. package/node_modules/minimist/.travis.yml +8 -0
  979. package/node_modules/minimist/LICENSE +18 -0
  980. package/node_modules/minimist/example/parse.js +2 -0
  981. package/node_modules/minimist/index.js +245 -0
  982. package/node_modules/minimist/package.json +45 -0
  983. package/node_modules/minimist/readme.markdown +95 -0
  984. package/node_modules/minimist/test/all_bool.js +32 -0
  985. package/node_modules/minimist/test/bool.js +178 -0
  986. package/node_modules/minimist/test/dash.js +31 -0
  987. package/node_modules/minimist/test/default_bool.js +35 -0
  988. package/node_modules/minimist/test/dotted.js +22 -0
  989. package/node_modules/minimist/test/kv_short.js +16 -0
  990. package/node_modules/minimist/test/long.js +31 -0
  991. package/node_modules/minimist/test/num.js +36 -0
  992. package/node_modules/minimist/test/parse.js +197 -0
  993. package/node_modules/minimist/test/parse_modified.js +9 -0
  994. package/node_modules/minimist/test/proto.js +44 -0
  995. package/node_modules/minimist/test/short.js +67 -0
  996. package/node_modules/minimist/test/stop_early.js +15 -0
  997. package/node_modules/minimist/test/unknown.js +102 -0
  998. package/node_modules/minimist/test/whitespace.js +8 -0
  999. package/node_modules/once/LICENSE +15 -0
  1000. package/node_modules/once/README.md +79 -0
  1001. package/node_modules/once/once.js +42 -0
  1002. package/node_modules/once/package.json +33 -0
  1003. package/node_modules/path-is-absolute/index.js +20 -0
  1004. package/node_modules/path-is-absolute/license +21 -0
  1005. package/node_modules/path-is-absolute/package.json +43 -0
  1006. package/node_modules/path-is-absolute/readme.md +59 -0
  1007. package/node_modules/path-parse/LICENSE +21 -0
  1008. package/node_modules/path-parse/README.md +42 -0
  1009. package/node_modules/path-parse/index.js +75 -0
  1010. package/node_modules/path-parse/package.json +33 -0
  1011. package/node_modules/rechoir/.npmignore +1 -0
  1012. package/node_modules/rechoir/.travis.yml +24 -0
  1013. package/node_modules/rechoir/CHANGELOG +38 -0
  1014. package/node_modules/rechoir/LICENSE +22 -0
  1015. package/node_modules/rechoir/README.md +42 -0
  1016. package/node_modules/rechoir/index.js +59 -0
  1017. package/node_modules/rechoir/lib/extension.js +11 -0
  1018. package/node_modules/rechoir/lib/normalize.js +15 -0
  1019. package/node_modules/rechoir/lib/register.js +15 -0
  1020. package/node_modules/rechoir/package.json +88 -0
  1021. package/node_modules/require-directory/.jshintrc +67 -0
  1022. package/node_modules/require-directory/.npmignore +1 -0
  1023. package/node_modules/require-directory/.travis.yml +3 -0
  1024. package/node_modules/require-directory/LICENSE +22 -0
  1025. package/node_modules/require-directory/README.markdown +184 -0
  1026. package/node_modules/require-directory/index.js +86 -0
  1027. package/node_modules/require-directory/package.json +40 -0
  1028. package/node_modules/resolve/.editorconfig +37 -0
  1029. package/node_modules/resolve/.eslintignore +1 -0
  1030. package/node_modules/resolve/.eslintrc +39 -0
  1031. package/node_modules/resolve/LICENSE +21 -0
  1032. package/node_modules/resolve/SECURITY.md +3 -0
  1033. package/node_modules/resolve/appveyor.yml +74 -0
  1034. package/node_modules/resolve/example/async.js +5 -0
  1035. package/node_modules/resolve/example/sync.js +3 -0
  1036. package/node_modules/resolve/index.js +6 -0
  1037. package/node_modules/resolve/lib/async.js +320 -0
  1038. package/node_modules/resolve/lib/caller.js +8 -0
  1039. package/node_modules/resolve/lib/core.js +53 -0
  1040. package/node_modules/resolve/lib/core.json +83 -0
  1041. package/node_modules/resolve/lib/is-core.js +5 -0
  1042. package/node_modules/resolve/lib/node-modules-paths.js +42 -0
  1043. package/node_modules/resolve/lib/normalize-options.js +10 -0
  1044. package/node_modules/resolve/lib/sync.js +199 -0
  1045. package/node_modules/resolve/package.json +51 -0
  1046. package/node_modules/resolve/readme.markdown +279 -0
  1047. package/node_modules/resolve/test/.eslintrc +5 -0
  1048. package/node_modules/resolve/test/core.js +81 -0
  1049. package/node_modules/resolve/test/dotdot/abc/index.js +2 -0
  1050. package/node_modules/resolve/test/dotdot/index.js +1 -0
  1051. package/node_modules/resolve/test/dotdot.js +29 -0
  1052. package/node_modules/resolve/test/faulty_basedir.js +29 -0
  1053. package/node_modules/resolve/test/filter.js +34 -0
  1054. package/node_modules/resolve/test/filter_sync.js +33 -0
  1055. package/node_modules/resolve/test/mock.js +315 -0
  1056. package/node_modules/resolve/test/mock_sync.js +216 -0
  1057. package/node_modules/resolve/test/module_dir/xmodules/aaa/index.js +1 -0
  1058. package/node_modules/resolve/test/module_dir/ymodules/aaa/index.js +1 -0
  1059. package/node_modules/resolve/test/module_dir/zmodules/bbb/main.js +1 -0
  1060. package/node_modules/resolve/test/module_dir/zmodules/bbb/package.json +3 -0
  1061. package/node_modules/resolve/test/module_dir.js +56 -0
  1062. package/node_modules/resolve/test/node-modules-paths.js +143 -0
  1063. package/node_modules/resolve/test/node_path/x/aaa/index.js +1 -0
  1064. package/node_modules/resolve/test/node_path/x/ccc/index.js +1 -0
  1065. package/node_modules/resolve/test/node_path/y/bbb/index.js +1 -0
  1066. package/node_modules/resolve/test/node_path/y/ccc/index.js +1 -0
  1067. package/node_modules/resolve/test/node_path.js +70 -0
  1068. package/node_modules/resolve/test/nonstring.js +9 -0
  1069. package/node_modules/resolve/test/pathfilter/deep_ref/main.js +0 -0
  1070. package/node_modules/resolve/test/pathfilter.js +75 -0
  1071. package/node_modules/resolve/test/precedence/aaa/index.js +1 -0
  1072. package/node_modules/resolve/test/precedence/aaa/main.js +1 -0
  1073. package/node_modules/resolve/test/precedence/aaa.js +1 -0
  1074. package/node_modules/resolve/test/precedence/bbb/main.js +1 -0
  1075. package/node_modules/resolve/test/precedence/bbb.js +1 -0
  1076. package/node_modules/resolve/test/precedence.js +23 -0
  1077. package/node_modules/resolve/test/resolver/baz/doom.js +0 -0
  1078. package/node_modules/resolve/test/resolver/baz/package.json +4 -0
  1079. package/node_modules/resolve/test/resolver/baz/quux.js +1 -0
  1080. package/node_modules/resolve/test/resolver/browser_field/a.js +0 -0
  1081. package/node_modules/resolve/test/resolver/browser_field/b.js +0 -0
  1082. package/node_modules/resolve/test/resolver/browser_field/package.json +5 -0
  1083. package/node_modules/resolve/test/resolver/cup.coffee +1 -0
  1084. package/node_modules/resolve/test/resolver/dot_main/index.js +1 -0
  1085. package/node_modules/resolve/test/resolver/dot_main/package.json +3 -0
  1086. package/node_modules/resolve/test/resolver/dot_slash_main/index.js +1 -0
  1087. package/node_modules/resolve/test/resolver/dot_slash_main/package.json +3 -0
  1088. package/node_modules/resolve/test/resolver/foo.js +1 -0
  1089. package/node_modules/resolve/test/resolver/incorrect_main/index.js +2 -0
  1090. package/node_modules/resolve/test/resolver/incorrect_main/package.json +3 -0
  1091. package/node_modules/resolve/test/resolver/invalid_main/package.json +7 -0
  1092. package/node_modules/resolve/test/resolver/mug.coffee +0 -0
  1093. package/node_modules/resolve/test/resolver/mug.js +0 -0
  1094. package/node_modules/resolve/test/resolver/multirepo/lerna.json +6 -0
  1095. package/node_modules/resolve/test/resolver/multirepo/package.json +20 -0
  1096. package/node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js +35 -0
  1097. package/node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json +14 -0
  1098. package/node_modules/resolve/test/resolver/multirepo/packages/package-b/index.js +0 -0
  1099. package/node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json +14 -0
  1100. package/node_modules/resolve/test/resolver/nested_symlinks/mylib/async.js +26 -0
  1101. package/node_modules/resolve/test/resolver/nested_symlinks/mylib/package.json +15 -0
  1102. package/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js +12 -0
  1103. package/node_modules/resolve/test/resolver/other_path/lib/other-lib.js +0 -0
  1104. package/node_modules/resolve/test/resolver/other_path/root.js +0 -0
  1105. package/node_modules/resolve/test/resolver/quux/foo/index.js +1 -0
  1106. package/node_modules/resolve/test/resolver/same_names/foo/index.js +1 -0
  1107. package/node_modules/resolve/test/resolver/same_names/foo.js +1 -0
  1108. package/node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js +0 -0
  1109. package/node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep +0 -0
  1110. package/node_modules/resolve/test/resolver/symlinked/package/bar.js +1 -0
  1111. package/node_modules/resolve/test/resolver/symlinked/package/package.json +3 -0
  1112. package/node_modules/resolve/test/resolver/without_basedir/main.js +5 -0
  1113. package/node_modules/resolve/test/resolver.js +450 -0
  1114. package/node_modules/resolve/test/resolver_sync.js +358 -0
  1115. package/node_modules/resolve/test/shadowed_core/node_modules/util/index.js +0 -0
  1116. package/node_modules/resolve/test/shadowed_core.js +54 -0
  1117. package/node_modules/resolve/test/subdirs.js +13 -0
  1118. package/node_modules/resolve/test/symlinks.js +176 -0
  1119. package/node_modules/semver/CHANGELOG.md +111 -0
  1120. package/node_modules/semver/LICENSE +15 -0
  1121. package/node_modules/semver/README.md +566 -0
  1122. package/node_modules/semver/bin/semver.js +173 -0
  1123. package/node_modules/semver/classes/comparator.js +135 -0
  1124. package/node_modules/semver/classes/index.js +5 -0
  1125. package/node_modules/semver/classes/range.js +510 -0
  1126. package/node_modules/semver/classes/semver.js +287 -0
  1127. package/node_modules/semver/functions/clean.js +6 -0
  1128. package/node_modules/semver/functions/cmp.js +48 -0
  1129. package/node_modules/semver/functions/coerce.js +51 -0
  1130. package/node_modules/semver/functions/compare-build.js +7 -0
  1131. package/node_modules/semver/functions/compare-loose.js +3 -0
  1132. package/node_modules/semver/functions/compare.js +5 -0
  1133. package/node_modules/semver/functions/diff.js +23 -0
  1134. package/node_modules/semver/functions/eq.js +3 -0
  1135. package/node_modules/semver/functions/gt.js +3 -0
  1136. package/node_modules/semver/functions/gte.js +3 -0
  1137. package/node_modules/semver/functions/inc.js +15 -0
  1138. package/node_modules/semver/functions/lt.js +3 -0
  1139. package/node_modules/semver/functions/lte.js +3 -0
  1140. package/node_modules/semver/functions/major.js +3 -0
  1141. package/node_modules/semver/functions/minor.js +3 -0
  1142. package/node_modules/semver/functions/neq.js +3 -0
  1143. package/node_modules/semver/functions/parse.js +33 -0
  1144. package/node_modules/semver/functions/patch.js +3 -0
  1145. package/node_modules/semver/functions/prerelease.js +6 -0
  1146. package/node_modules/semver/functions/rcompare.js +3 -0
  1147. package/node_modules/semver/functions/rsort.js +3 -0
  1148. package/node_modules/semver/functions/satisfies.js +10 -0
  1149. package/node_modules/semver/functions/sort.js +3 -0
  1150. package/node_modules/semver/functions/valid.js +6 -0
  1151. package/node_modules/semver/index.js +48 -0
  1152. package/node_modules/semver/internal/constants.js +17 -0
  1153. package/node_modules/semver/internal/debug.js +9 -0
  1154. package/node_modules/semver/internal/identifiers.js +23 -0
  1155. package/node_modules/semver/internal/parse-options.js +11 -0
  1156. package/node_modules/semver/internal/re.js +182 -0
  1157. package/node_modules/semver/package.json +41 -0
  1158. package/node_modules/semver/preload.js +2 -0
  1159. package/node_modules/semver/range.bnf +16 -0
  1160. package/node_modules/semver/ranges/gtr.js +4 -0
  1161. package/node_modules/semver/ranges/intersects.js +7 -0
  1162. package/node_modules/semver/ranges/ltr.js +4 -0
  1163. package/node_modules/semver/ranges/max-satisfying.js +25 -0
  1164. package/node_modules/semver/ranges/min-satisfying.js +24 -0
  1165. package/node_modules/semver/ranges/min-version.js +60 -0
  1166. package/node_modules/semver/ranges/outside.js +80 -0
  1167. package/node_modules/semver/ranges/simplify.js +44 -0
  1168. package/node_modules/semver/ranges/subset.js +222 -0
  1169. package/node_modules/semver/ranges/to-comparators.js +8 -0
  1170. package/node_modules/semver/ranges/valid.js +11 -0
  1171. package/node_modules/shelljs/CHANGELOG.md +942 -0
  1172. package/node_modules/shelljs/LICENSE +26 -0
  1173. package/node_modules/shelljs/README.md +835 -0
  1174. package/node_modules/shelljs/bin/shjs +48 -0
  1175. package/node_modules/shelljs/commands.js +29 -0
  1176. package/node_modules/shelljs/global.js +12 -0
  1177. package/node_modules/shelljs/make.js +57 -0
  1178. package/node_modules/shelljs/package.json +79 -0
  1179. package/node_modules/shelljs/plugin.js +16 -0
  1180. package/node_modules/shelljs/shell.js +156 -0
  1181. package/node_modules/shelljs/src/cat.js +76 -0
  1182. package/node_modules/shelljs/src/cd.js +39 -0
  1183. package/node_modules/shelljs/src/chmod.js +216 -0
  1184. package/node_modules/shelljs/src/common.js +468 -0
  1185. package/node_modules/shelljs/src/cp.js +304 -0
  1186. package/node_modules/shelljs/src/dirs.js +212 -0
  1187. package/node_modules/shelljs/src/echo.js +63 -0
  1188. package/node_modules/shelljs/src/error.js +15 -0
  1189. package/node_modules/shelljs/src/exec-child.js +39 -0
  1190. package/node_modules/shelljs/src/exec.js +208 -0
  1191. package/node_modules/shelljs/src/find.js +61 -0
  1192. package/node_modules/shelljs/src/grep.js +73 -0
  1193. package/node_modules/shelljs/src/head.js +107 -0
  1194. package/node_modules/shelljs/src/ln.js +73 -0
  1195. package/node_modules/shelljs/src/ls.js +141 -0
  1196. package/node_modules/shelljs/src/mkdir.js +100 -0
  1197. package/node_modules/shelljs/src/mv.js +118 -0
  1198. package/node_modules/shelljs/src/popd.js +1 -0
  1199. package/node_modules/shelljs/src/pushd.js +1 -0
  1200. package/node_modules/shelljs/src/pwd.js +16 -0
  1201. package/node_modules/shelljs/src/rm.js +201 -0
  1202. package/node_modules/shelljs/src/sed.js +87 -0
  1203. package/node_modules/shelljs/src/set.js +56 -0
  1204. package/node_modules/shelljs/src/sort.js +97 -0
  1205. package/node_modules/shelljs/src/tail.js +80 -0
  1206. package/node_modules/shelljs/src/tempdir.js +75 -0
  1207. package/node_modules/shelljs/src/test.js +85 -0
  1208. package/node_modules/shelljs/src/to.js +37 -0
  1209. package/node_modules/shelljs/src/toEnd.js +36 -0
  1210. package/node_modules/shelljs/src/touch.js +111 -0
  1211. package/node_modules/shelljs/src/uniq.js +92 -0
  1212. package/node_modules/shelljs/src/which.js +118 -0
  1213. package/node_modules/shx/CHANGELOG.md +224 -0
  1214. package/node_modules/shx/LICENSE +21 -0
  1215. package/node_modules/shx/README.md +149 -0
  1216. package/node_modules/shx/lib/cli.js +40 -0
  1217. package/node_modules/shx/lib/config.js +58 -0
  1218. package/node_modules/shx/lib/help.js +37 -0
  1219. package/node_modules/shx/lib/plugin-true-false.js +25 -0
  1220. package/node_modules/shx/lib/printCmdRet.js +17 -0
  1221. package/node_modules/shx/lib/shx.js +157 -0
  1222. package/node_modules/shx/package.json +80 -0
  1223. package/node_modules/sprintf-js/.npmignore +1 -0
  1224. package/node_modules/sprintf-js/LICENSE +24 -0
  1225. package/node_modules/sprintf-js/README.md +88 -0
  1226. package/node_modules/sprintf-js/bower.json +14 -0
  1227. package/node_modules/sprintf-js/demo/angular.html +20 -0
  1228. package/node_modules/sprintf-js/dist/angular-sprintf.min.js +4 -0
  1229. package/node_modules/sprintf-js/dist/angular-sprintf.min.js.map +1 -0
  1230. package/node_modules/sprintf-js/dist/angular-sprintf.min.map +1 -0
  1231. package/node_modules/sprintf-js/dist/sprintf.min.js +4 -0
  1232. package/node_modules/sprintf-js/dist/sprintf.min.js.map +1 -0
  1233. package/node_modules/sprintf-js/dist/sprintf.min.map +1 -0
  1234. package/node_modules/sprintf-js/gruntfile.js +36 -0
  1235. package/node_modules/sprintf-js/package.json +22 -0
  1236. package/node_modules/sprintf-js/src/angular-sprintf.js +18 -0
  1237. package/node_modules/sprintf-js/src/sprintf.js +208 -0
  1238. package/node_modules/sprintf-js/test/test.js +82 -0
  1239. package/node_modules/string-width/index.d.ts +29 -0
  1240. package/node_modules/string-width/index.js +47 -0
  1241. package/node_modules/string-width/license +9 -0
  1242. package/node_modules/string-width/package.json +56 -0
  1243. package/node_modules/string-width/readme.md +50 -0
  1244. package/node_modules/strip-ansi/index.d.ts +17 -0
  1245. package/node_modules/strip-ansi/index.js +4 -0
  1246. package/node_modules/strip-ansi/license +9 -0
  1247. package/node_modules/strip-ansi/package.json +54 -0
  1248. package/node_modules/strip-ansi/readme.md +46 -0
  1249. package/node_modules/supports-color/browser.js +5 -0
  1250. package/node_modules/supports-color/index.js +135 -0
  1251. package/node_modules/supports-color/license +9 -0
  1252. package/node_modules/supports-color/package.json +53 -0
  1253. package/node_modules/supports-color/readme.md +76 -0
  1254. package/node_modules/wrap-ansi/index.js +216 -0
  1255. package/node_modules/wrap-ansi/license +9 -0
  1256. package/node_modules/wrap-ansi/package.json +62 -0
  1257. package/node_modules/wrap-ansi/readme.md +91 -0
  1258. package/node_modules/wrappy/LICENSE +15 -0
  1259. package/node_modules/wrappy/README.md +36 -0
  1260. package/node_modules/wrappy/package.json +29 -0
  1261. package/node_modules/wrappy/wrappy.js +33 -0
  1262. package/node_modules/xmlbuilder2/CHANGELOG.md +215 -0
  1263. package/node_modules/xmlbuilder2/LICENSE +21 -0
  1264. package/node_modules/xmlbuilder2/README.md +182 -0
  1265. package/node_modules/xmlbuilder2/lib/builder/BuilderFunctions.d.ts +236 -0
  1266. package/node_modules/xmlbuilder2/lib/builder/BuilderFunctions.js +108 -0
  1267. package/node_modules/xmlbuilder2/lib/builder/BuilderFunctions.js.map +1 -0
  1268. package/node_modules/xmlbuilder2/lib/builder/BuilderFunctionsCB.d.ts +17 -0
  1269. package/node_modules/xmlbuilder2/lib/builder/BuilderFunctionsCB.js +26 -0
  1270. package/node_modules/xmlbuilder2/lib/builder/BuilderFunctionsCB.js.map +1 -0
  1271. package/node_modules/xmlbuilder2/lib/builder/XMLBuilderCBImpl.d.ts +122 -0
  1272. package/node_modules/xmlbuilder2/lib/builder/XMLBuilderCBImpl.js +791 -0
  1273. package/node_modules/xmlbuilder2/lib/builder/XMLBuilderCBImpl.js.map +1 -0
  1274. package/node_modules/xmlbuilder2/lib/builder/XMLBuilderImpl.d.ts +143 -0
  1275. package/node_modules/xmlbuilder2/lib/builder/XMLBuilderImpl.js +841 -0
  1276. package/node_modules/xmlbuilder2/lib/builder/XMLBuilderImpl.js.map +1 -0
  1277. package/node_modules/xmlbuilder2/lib/builder/dom.d.ts +8 -0
  1278. package/node_modules/xmlbuilder2/lib/builder/dom.js +67 -0
  1279. package/node_modules/xmlbuilder2/lib/builder/dom.js.map +1 -0
  1280. package/node_modules/xmlbuilder2/lib/builder/index.d.ts +4 -0
  1281. package/node_modules/xmlbuilder2/lib/builder/index.js +15 -0
  1282. package/node_modules/xmlbuilder2/lib/builder/index.js.map +1 -0
  1283. package/node_modules/xmlbuilder2/lib/index.d.ts +1 -0
  1284. package/node_modules/xmlbuilder2/lib/index.js +10 -0
  1285. package/node_modules/xmlbuilder2/lib/index.js.map +1 -0
  1286. package/node_modules/xmlbuilder2/lib/interfaces.d.ts +1343 -0
  1287. package/node_modules/xmlbuilder2/lib/interfaces.js +75 -0
  1288. package/node_modules/xmlbuilder2/lib/interfaces.js.map +1 -0
  1289. package/node_modules/xmlbuilder2/lib/readers/BaseReader.d.ts +96 -0
  1290. package/node_modules/xmlbuilder2/lib/readers/BaseReader.js +138 -0
  1291. package/node_modules/xmlbuilder2/lib/readers/BaseReader.js.map +1 -0
  1292. package/node_modules/xmlbuilder2/lib/readers/JSONReader.d.ts +14 -0
  1293. package/node_modules/xmlbuilder2/lib/readers/JSONReader.js +38 -0
  1294. package/node_modules/xmlbuilder2/lib/readers/JSONReader.js.map +1 -0
  1295. package/node_modules/xmlbuilder2/lib/readers/ObjectReader.d.ts +15 -0
  1296. package/node_modules/xmlbuilder2/lib/readers/ObjectReader.js +161 -0
  1297. package/node_modules/xmlbuilder2/lib/readers/ObjectReader.js.map +1 -0
  1298. package/node_modules/xmlbuilder2/lib/readers/XMLReader.d.ts +14 -0
  1299. package/node_modules/xmlbuilder2/lib/readers/XMLReader.js +200 -0
  1300. package/node_modules/xmlbuilder2/lib/readers/XMLReader.js.map +1 -0
  1301. package/node_modules/xmlbuilder2/lib/readers/YAMLReader.d.ts +14 -0
  1302. package/node_modules/xmlbuilder2/lib/readers/YAMLReader.js +44 -0
  1303. package/node_modules/xmlbuilder2/lib/readers/YAMLReader.js.map +1 -0
  1304. package/node_modules/xmlbuilder2/lib/readers/index.d.ts +4 -0
  1305. package/node_modules/xmlbuilder2/lib/readers/index.js +11 -0
  1306. package/node_modules/xmlbuilder2/lib/readers/index.js.map +1 -0
  1307. package/node_modules/xmlbuilder2/lib/writers/BaseCBWriter.d.ts +110 -0
  1308. package/node_modules/xmlbuilder2/lib/writers/BaseCBWriter.js +23 -0
  1309. package/node_modules/xmlbuilder2/lib/writers/BaseCBWriter.js.map +1 -0
  1310. package/node_modules/xmlbuilder2/lib/writers/BaseWriter.d.ts +276 -0
  1311. package/node_modules/xmlbuilder2/lib/writers/BaseWriter.js +1637 -0
  1312. package/node_modules/xmlbuilder2/lib/writers/BaseWriter.js.map +1 -0
  1313. package/node_modules/xmlbuilder2/lib/writers/JSONCBWriter.d.ts +68 -0
  1314. package/node_modules/xmlbuilder2/lib/writers/JSONCBWriter.js +172 -0
  1315. package/node_modules/xmlbuilder2/lib/writers/JSONCBWriter.js.map +1 -0
  1316. package/node_modules/xmlbuilder2/lib/writers/JSONWriter.d.ts +67 -0
  1317. package/node_modules/xmlbuilder2/lib/writers/JSONWriter.js +224 -0
  1318. package/node_modules/xmlbuilder2/lib/writers/JSONWriter.js.map +1 -0
  1319. package/node_modules/xmlbuilder2/lib/writers/MapWriter.d.ts +27 -0
  1320. package/node_modules/xmlbuilder2/lib/writers/MapWriter.js +86 -0
  1321. package/node_modules/xmlbuilder2/lib/writers/MapWriter.js.map +1 -0
  1322. package/node_modules/xmlbuilder2/lib/writers/ObjectWriter.d.ts +56 -0
  1323. package/node_modules/xmlbuilder2/lib/writers/ObjectWriter.js +484 -0
  1324. package/node_modules/xmlbuilder2/lib/writers/ObjectWriter.js.map +1 -0
  1325. package/node_modules/xmlbuilder2/lib/writers/XMLCBWriter.d.ts +51 -0
  1326. package/node_modules/xmlbuilder2/lib/writers/XMLCBWriter.js +165 -0
  1327. package/node_modules/xmlbuilder2/lib/writers/XMLCBWriter.js.map +1 -0
  1328. package/node_modules/xmlbuilder2/lib/writers/XMLWriter.d.ts +60 -0
  1329. package/node_modules/xmlbuilder2/lib/writers/XMLWriter.js +237 -0
  1330. package/node_modules/xmlbuilder2/lib/writers/XMLWriter.js.map +1 -0
  1331. package/node_modules/xmlbuilder2/lib/writers/YAMLCBWriter.d.ts +61 -0
  1332. package/node_modules/xmlbuilder2/lib/writers/YAMLCBWriter.js +161 -0
  1333. package/node_modules/xmlbuilder2/lib/writers/YAMLCBWriter.js.map +1 -0
  1334. package/node_modules/xmlbuilder2/lib/writers/YAMLWriter.d.ts +55 -0
  1335. package/node_modules/xmlbuilder2/lib/writers/YAMLWriter.js +188 -0
  1336. package/node_modules/xmlbuilder2/lib/writers/YAMLWriter.js.map +1 -0
  1337. package/node_modules/xmlbuilder2/lib/writers/index.d.ts +5 -0
  1338. package/node_modules/xmlbuilder2/lib/writers/index.js +13 -0
  1339. package/node_modules/xmlbuilder2/lib/writers/index.js.map +1 -0
  1340. package/node_modules/xmlbuilder2/lib/xmlbuilder2.min.js +8 -0
  1341. package/node_modules/xmlbuilder2/node_modules/@types/node/LICENSE +21 -0
  1342. package/node_modules/xmlbuilder2/node_modules/@types/node/README.md +16 -0
  1343. package/node_modules/xmlbuilder2/node_modules/@types/node/assert/strict.d.ts +8 -0
  1344. package/node_modules/xmlbuilder2/node_modules/@types/node/assert.d.ts +912 -0
  1345. package/node_modules/xmlbuilder2/node_modules/@types/node/async_hooks.d.ts +501 -0
  1346. package/node_modules/xmlbuilder2/node_modules/@types/node/buffer.d.ts +2142 -0
  1347. package/node_modules/xmlbuilder2/node_modules/@types/node/child_process.d.ts +1366 -0
  1348. package/node_modules/xmlbuilder2/node_modules/@types/node/cluster.d.ts +414 -0
  1349. package/node_modules/xmlbuilder2/node_modules/@types/node/console.d.ts +412 -0
  1350. package/node_modules/xmlbuilder2/node_modules/@types/node/constants.d.ts +18 -0
  1351. package/node_modules/xmlbuilder2/node_modules/@types/node/crypto.d.ts +3307 -0
  1352. package/node_modules/xmlbuilder2/node_modules/@types/node/dgram.d.ts +545 -0
  1353. package/node_modules/xmlbuilder2/node_modules/@types/node/diagnostics_channel.d.ts +134 -0
  1354. package/node_modules/xmlbuilder2/node_modules/@types/node/dns/promises.d.ts +370 -0
  1355. package/node_modules/xmlbuilder2/node_modules/@types/node/dns.d.ts +659 -0
  1356. package/node_modules/xmlbuilder2/node_modules/@types/node/domain.d.ts +169 -0
  1357. package/node_modules/xmlbuilder2/node_modules/@types/node/events.d.ts +623 -0
  1358. package/node_modules/xmlbuilder2/node_modules/@types/node/fs/promises.d.ts +1091 -0
  1359. package/node_modules/xmlbuilder2/node_modules/@types/node/fs.d.ts +3835 -0
  1360. package/node_modules/xmlbuilder2/node_modules/@types/node/globals.d.ts +284 -0
  1361. package/node_modules/xmlbuilder2/node_modules/@types/node/globals.global.d.ts +1 -0
  1362. package/node_modules/xmlbuilder2/node_modules/@types/node/http.d.ts +1386 -0
  1363. package/node_modules/xmlbuilder2/node_modules/@types/node/http2.d.ts +2100 -0
  1364. package/node_modules/xmlbuilder2/node_modules/@types/node/https.d.ts +391 -0
  1365. package/node_modules/xmlbuilder2/node_modules/@types/node/index.d.ts +131 -0
  1366. package/node_modules/xmlbuilder2/node_modules/@types/node/inspector.d.ts +2744 -0
  1367. package/node_modules/xmlbuilder2/node_modules/@types/node/module.d.ts +114 -0
  1368. package/node_modules/xmlbuilder2/node_modules/@types/node/net.d.ts +783 -0
  1369. package/node_modules/xmlbuilder2/node_modules/@types/node/os.d.ts +455 -0
  1370. package/node_modules/xmlbuilder2/node_modules/@types/node/package.json +230 -0
  1371. package/node_modules/xmlbuilder2/node_modules/@types/node/path.d.ts +180 -0
  1372. package/node_modules/xmlbuilder2/node_modules/@types/node/perf_hooks.d.ts +557 -0
  1373. package/node_modules/xmlbuilder2/node_modules/@types/node/process.d.ts +1481 -0
  1374. package/node_modules/xmlbuilder2/node_modules/@types/node/punycode.d.ts +117 -0
  1375. package/node_modules/xmlbuilder2/node_modules/@types/node/querystring.d.ts +131 -0
  1376. package/node_modules/xmlbuilder2/node_modules/@types/node/readline.d.ts +650 -0
  1377. package/node_modules/xmlbuilder2/node_modules/@types/node/repl.d.ts +424 -0
  1378. package/node_modules/xmlbuilder2/node_modules/@types/node/stream/consumers.d.ts +24 -0
  1379. package/node_modules/xmlbuilder2/node_modules/@types/node/stream/promises.d.ts +42 -0
  1380. package/node_modules/xmlbuilder2/node_modules/@types/node/stream/web.d.ts +329 -0
  1381. package/node_modules/xmlbuilder2/node_modules/@types/node/stream.d.ts +1249 -0
  1382. package/node_modules/xmlbuilder2/node_modules/@types/node/string_decoder.d.ts +67 -0
  1383. package/node_modules/xmlbuilder2/node_modules/@types/node/timers/promises.d.ts +68 -0
  1384. package/node_modules/xmlbuilder2/node_modules/@types/node/timers.d.ts +94 -0
  1385. package/node_modules/xmlbuilder2/node_modules/@types/node/tls.d.ts +1020 -0
  1386. package/node_modules/xmlbuilder2/node_modules/@types/node/trace_events.d.ts +161 -0
  1387. package/node_modules/xmlbuilder2/node_modules/@types/node/tty.d.ts +204 -0
  1388. package/node_modules/xmlbuilder2/node_modules/@types/node/url.d.ts +861 -0
  1389. package/node_modules/xmlbuilder2/node_modules/@types/node/util.d.ts +1594 -0
  1390. package/node_modules/xmlbuilder2/node_modules/@types/node/v8.d.ts +378 -0
  1391. package/node_modules/xmlbuilder2/node_modules/@types/node/vm.d.ts +507 -0
  1392. package/node_modules/xmlbuilder2/node_modules/@types/node/wasi.d.ts +158 -0
  1393. package/node_modules/xmlbuilder2/node_modules/@types/node/worker_threads.d.ts +649 -0
  1394. package/node_modules/xmlbuilder2/node_modules/@types/node/zlib.d.ts +517 -0
  1395. package/node_modules/xmlbuilder2/node_modules/js-yaml/CHANGELOG.md +551 -0
  1396. package/node_modules/xmlbuilder2/node_modules/js-yaml/LICENSE +21 -0
  1397. package/node_modules/xmlbuilder2/node_modules/js-yaml/README.md +299 -0
  1398. package/node_modules/xmlbuilder2/node_modules/js-yaml/bin/js-yaml.js +132 -0
  1399. package/node_modules/xmlbuilder2/node_modules/js-yaml/dist/js-yaml.js +3989 -0
  1400. package/node_modules/xmlbuilder2/node_modules/js-yaml/dist/js-yaml.min.js +1 -0
  1401. package/node_modules/xmlbuilder2/node_modules/js-yaml/index.js +7 -0
  1402. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/common.js +59 -0
  1403. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/dumper.js +850 -0
  1404. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/exception.js +43 -0
  1405. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/loader.js +1644 -0
  1406. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/mark.js +76 -0
  1407. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/schema/core.js +18 -0
  1408. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/schema/default_full.js +25 -0
  1409. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js +28 -0
  1410. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js +17 -0
  1411. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/schema/json.js +25 -0
  1412. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/schema.js +108 -0
  1413. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/binary.js +138 -0
  1414. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/bool.js +35 -0
  1415. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/float.js +116 -0
  1416. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/int.js +173 -0
  1417. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/js/function.js +93 -0
  1418. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +60 -0
  1419. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +28 -0
  1420. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/map.js +8 -0
  1421. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/merge.js +12 -0
  1422. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/null.js +34 -0
  1423. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/omap.js +44 -0
  1424. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/pairs.js +53 -0
  1425. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/seq.js +8 -0
  1426. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/set.js +29 -0
  1427. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/str.js +8 -0
  1428. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +88 -0
  1429. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml/type.js +61 -0
  1430. package/node_modules/xmlbuilder2/node_modules/js-yaml/lib/js-yaml.js +39 -0
  1431. package/node_modules/xmlbuilder2/node_modules/js-yaml/package.json +49 -0
  1432. package/node_modules/xmlbuilder2/package.json +82 -0
  1433. package/node_modules/y18n/CHANGELOG.md +100 -0
  1434. package/node_modules/y18n/LICENSE +13 -0
  1435. package/node_modules/y18n/README.md +127 -0
  1436. package/node_modules/y18n/build/index.cjs +203 -0
  1437. package/node_modules/y18n/build/lib/cjs.js +6 -0
  1438. package/node_modules/y18n/build/lib/index.js +174 -0
  1439. package/node_modules/y18n/build/lib/platform-shims/node.js +19 -0
  1440. package/node_modules/y18n/index.mjs +8 -0
  1441. package/node_modules/y18n/package.json +70 -0
  1442. package/node_modules/yallist/LICENSE +15 -0
  1443. package/node_modules/yallist/README.md +204 -0
  1444. package/node_modules/yallist/iterator.js +8 -0
  1445. package/node_modules/yallist/package.json +29 -0
  1446. package/node_modules/yallist/yallist.js +426 -0
  1447. package/node_modules/yaml/LICENSE +13 -0
  1448. package/node_modules/yaml/README.md +127 -0
  1449. package/node_modules/yaml/browser/dist/PlainValue-b8036b75.js +1275 -0
  1450. package/node_modules/yaml/browser/dist/Schema-e94716c8.js +682 -0
  1451. package/node_modules/yaml/browser/dist/index.js +1002 -0
  1452. package/node_modules/yaml/browser/dist/legacy-exports.js +3 -0
  1453. package/node_modules/yaml/browser/dist/package.json +1 -0
  1454. package/node_modules/yaml/browser/dist/parse-cst.js +1904 -0
  1455. package/node_modules/yaml/browser/dist/resolveSeq-492ab440.js +2419 -0
  1456. package/node_modules/yaml/browser/dist/types.js +4 -0
  1457. package/node_modules/yaml/browser/dist/util.js +2 -0
  1458. package/node_modules/yaml/browser/dist/warnings-df54cb69.js +499 -0
  1459. package/node_modules/yaml/browser/index.js +1 -0
  1460. package/node_modules/yaml/browser/map.js +2 -0
  1461. package/node_modules/yaml/browser/pair.js +2 -0
  1462. package/node_modules/yaml/browser/parse-cst.js +1 -0
  1463. package/node_modules/yaml/browser/scalar.js +2 -0
  1464. package/node_modules/yaml/browser/schema.js +9 -0
  1465. package/node_modules/yaml/browser/seq.js +2 -0
  1466. package/node_modules/yaml/browser/types/binary.js +8 -0
  1467. package/node_modules/yaml/browser/types/omap.js +3 -0
  1468. package/node_modules/yaml/browser/types/pairs.js +3 -0
  1469. package/node_modules/yaml/browser/types/set.js +3 -0
  1470. package/node_modules/yaml/browser/types/timestamp.js +10 -0
  1471. package/node_modules/yaml/browser/types.js +1 -0
  1472. package/node_modules/yaml/browser/util.js +1 -0
  1473. package/node_modules/yaml/dist/Document-9b4560a1.js +757 -0
  1474. package/node_modules/yaml/dist/PlainValue-ec8e588e.js +876 -0
  1475. package/node_modules/yaml/dist/Schema-88e323a7.js +525 -0
  1476. package/node_modules/yaml/dist/index.js +79 -0
  1477. package/node_modules/yaml/dist/legacy-exports.js +16 -0
  1478. package/node_modules/yaml/dist/parse-cst.js +1753 -0
  1479. package/node_modules/yaml/dist/resolveSeq-d03cb037.js +2161 -0
  1480. package/node_modules/yaml/dist/test-events.js +162 -0
  1481. package/node_modules/yaml/dist/types.js +23 -0
  1482. package/node_modules/yaml/dist/util.js +19 -0
  1483. package/node_modules/yaml/dist/warnings-1000a372.js +416 -0
  1484. package/node_modules/yaml/index.d.ts +372 -0
  1485. package/node_modules/yaml/index.js +1 -0
  1486. package/node_modules/yaml/map.js +2 -0
  1487. package/node_modules/yaml/package.json +106 -0
  1488. package/node_modules/yaml/pair.js +2 -0
  1489. package/node_modules/yaml/parse-cst.d.ts +191 -0
  1490. package/node_modules/yaml/parse-cst.js +1 -0
  1491. package/node_modules/yaml/scalar.js +2 -0
  1492. package/node_modules/yaml/schema.js +9 -0
  1493. package/node_modules/yaml/seq.js +2 -0
  1494. package/node_modules/yaml/types/binary.js +8 -0
  1495. package/node_modules/yaml/types/omap.js +3 -0
  1496. package/node_modules/yaml/types/pairs.js +3 -0
  1497. package/node_modules/yaml/types/set.js +3 -0
  1498. package/node_modules/yaml/types/timestamp.js +10 -0
  1499. package/node_modules/yaml/types.d.ts +407 -0
  1500. package/node_modules/yaml/types.js +17 -0
  1501. package/node_modules/yaml/types.mjs +17 -0
  1502. package/node_modules/yaml/util.d.ts +86 -0
  1503. package/node_modules/yaml/util.js +16 -0
  1504. package/node_modules/yaml/util.mjs +18 -0
  1505. package/node_modules/yargs/CHANGELOG.md +88 -0
  1506. package/node_modules/yargs/LICENSE +21 -0
  1507. package/node_modules/yargs/README.md +202 -0
  1508. package/node_modules/yargs/browser.mjs +7 -0
  1509. package/node_modules/yargs/build/index.cjs +2920 -0
  1510. package/node_modules/yargs/build/lib/argsert.js +62 -0
  1511. package/node_modules/yargs/build/lib/command.js +382 -0
  1512. package/node_modules/yargs/build/lib/completion-templates.js +47 -0
  1513. package/node_modules/yargs/build/lib/completion.js +128 -0
  1514. package/node_modules/yargs/build/lib/middleware.js +53 -0
  1515. package/node_modules/yargs/build/lib/parse-command.js +32 -0
  1516. package/node_modules/yargs/build/lib/typings/common-types.js +9 -0
  1517. package/node_modules/yargs/build/lib/typings/yargs-parser-types.js +1 -0
  1518. package/node_modules/yargs/build/lib/usage.js +548 -0
  1519. package/node_modules/yargs/build/lib/utils/apply-extends.js +59 -0
  1520. package/node_modules/yargs/build/lib/utils/is-promise.js +5 -0
  1521. package/node_modules/yargs/build/lib/utils/levenshtein.js +26 -0
  1522. package/node_modules/yargs/build/lib/utils/obj-filter.js +10 -0
  1523. package/node_modules/yargs/build/lib/utils/process-argv.js +17 -0
  1524. package/node_modules/yargs/build/lib/utils/set-blocking.js +12 -0
  1525. package/node_modules/yargs/build/lib/utils/which-module.js +10 -0
  1526. package/node_modules/yargs/build/lib/validation.js +308 -0
  1527. package/node_modules/yargs/build/lib/yargs-factory.js +1143 -0
  1528. package/node_modules/yargs/build/lib/yerror.js +7 -0
  1529. package/node_modules/yargs/helpers/helpers.mjs +10 -0
  1530. package/node_modules/yargs/helpers/index.js +14 -0
  1531. package/node_modules/yargs/helpers/package.json +3 -0
  1532. package/node_modules/yargs/index.cjs +39 -0
  1533. package/node_modules/yargs/index.mjs +8 -0
  1534. package/node_modules/yargs/lib/platform-shims/browser.mjs +92 -0
  1535. package/node_modules/yargs/lib/platform-shims/esm.mjs +67 -0
  1536. package/node_modules/yargs/locales/be.json +46 -0
  1537. package/node_modules/yargs/locales/de.json +46 -0
  1538. package/node_modules/yargs/locales/en.json +51 -0
  1539. package/node_modules/yargs/locales/es.json +46 -0
  1540. package/node_modules/yargs/locales/fi.json +49 -0
  1541. package/node_modules/yargs/locales/fr.json +53 -0
  1542. package/node_modules/yargs/locales/hi.json +49 -0
  1543. package/node_modules/yargs/locales/hu.json +46 -0
  1544. package/node_modules/yargs/locales/id.json +50 -0
  1545. package/node_modules/yargs/locales/it.json +46 -0
  1546. package/node_modules/yargs/locales/ja.json +51 -0
  1547. package/node_modules/yargs/locales/ko.json +49 -0
  1548. package/node_modules/yargs/locales/nb.json +44 -0
  1549. package/node_modules/yargs/locales/nl.json +49 -0
  1550. package/node_modules/yargs/locales/nn.json +44 -0
  1551. package/node_modules/yargs/locales/pirate.json +13 -0
  1552. package/node_modules/yargs/locales/pl.json +49 -0
  1553. package/node_modules/yargs/locales/pt.json +45 -0
  1554. package/node_modules/yargs/locales/pt_BR.json +48 -0
  1555. package/node_modules/yargs/locales/ru.json +46 -0
  1556. package/node_modules/yargs/locales/th.json +46 -0
  1557. package/node_modules/yargs/locales/tr.json +48 -0
  1558. package/node_modules/yargs/locales/zh_CN.json +48 -0
  1559. package/node_modules/yargs/locales/zh_TW.json +47 -0
  1560. package/node_modules/yargs/package.json +122 -0
  1561. package/node_modules/yargs/yargs +9 -0
  1562. package/node_modules/yargs-parser/CHANGELOG.md +263 -0
  1563. package/node_modules/yargs-parser/LICENSE.txt +14 -0
  1564. package/node_modules/yargs-parser/README.md +518 -0
  1565. package/node_modules/yargs-parser/browser.js +29 -0
  1566. package/node_modules/yargs-parser/build/index.cjs +1042 -0
  1567. package/node_modules/yargs-parser/build/lib/index.js +59 -0
  1568. package/node_modules/yargs-parser/build/lib/string-utils.js +65 -0
  1569. package/node_modules/yargs-parser/build/lib/tokenize-arg-string.js +40 -0
  1570. package/node_modules/yargs-parser/build/lib/yargs-parser-types.js +12 -0
  1571. package/node_modules/yargs-parser/build/lib/yargs-parser.js +1037 -0
  1572. package/node_modules/yargs-parser/package.json +87 -0
  1573. package/package.json +181 -0
  1574. package/rfcs/github-project-settings.md +95 -0
  1575. package/version.json +3 -0
@@ -0,0 +1,687 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.defaultNpmToken = exports.NpmAccess = exports.NodePackageManager = exports.NodePackage = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const path_1 = require("path");
7
+ const url_1 = require("url");
8
+ const fs_extra_1 = require("fs-extra");
9
+ const semver = require("semver");
10
+ const _resolve_1 = require("../_resolve");
11
+ const component_1 = require("../component");
12
+ const dependencies_1 = require("../dependencies");
13
+ const json_1 = require("../json");
14
+ const release_1 = require("../release");
15
+ const util_1 = require("../util");
16
+ const UNLICENSED = 'UNLICENSED';
17
+ const DEFAULT_NPM_REGISTRY_URL = 'https://registry.npmjs.org/';
18
+ const GITHUB_PACKAGES_REGISTRY = 'npm.pkg.github.com';
19
+ const DEFAULT_NPM_TOKEN_SECRET = 'NPM_TOKEN';
20
+ const DEFAULT_GITHUB_TOKEN_SECRET = 'GITHUB_TOKEN';
21
+ /**
22
+ * (experimental) Represents the npm `package.json` file.
23
+ *
24
+ * @experimental
25
+ */
26
+ class NodePackage extends component_1.Component {
27
+ /**
28
+ * @experimental
29
+ */
30
+ constructor(project, options = {}) {
31
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
32
+ super(project);
33
+ this.keywords = new Set();
34
+ this.bin = {};
35
+ this.engines = {};
36
+ this.packageName = (_b = options.packageName) !== null && _b !== void 0 ? _b : project.name;
37
+ this.peerDependencyOptions = (_c = options.peerDependencyOptions) !== null && _c !== void 0 ? _c : {};
38
+ this.allowLibraryDependencies = (_d = options.allowLibraryDependencies) !== null && _d !== void 0 ? _d : true;
39
+ this.packageManager = (_e = options.packageManager) !== null && _e !== void 0 ? _e : NodePackageManager.YARN;
40
+ this.entrypoint = (_f = options.entrypoint) !== null && _f !== void 0 ? _f : 'lib/index.js';
41
+ this.lockFile = determineLockfile(this.packageManager);
42
+ this.project.annotateGenerated(`/${this.lockFile}`);
43
+ const { npmAccess, npmRegistry, npmRegistryUrl, npmTokenSecret, codeArtifactOptions, } = this.parseNpmOptions(options);
44
+ this.npmAccess = npmAccess;
45
+ this.npmRegistry = npmRegistry;
46
+ this.npmRegistryUrl = npmRegistryUrl;
47
+ this.npmTokenSecret = npmTokenSecret;
48
+ this.codeArtifactOptions = codeArtifactOptions;
49
+ this.processDeps(options);
50
+ const prev = (_g = this.readPackageJson()) !== null && _g !== void 0 ? _g : {};
51
+ // empty objects are here to preserve order for backwards compatibility
52
+ this.manifest = {
53
+ name: this.packageName,
54
+ description: options.description,
55
+ repository: !options.repository ? undefined : {
56
+ type: 'git',
57
+ url: options.repository,
58
+ directory: options.repositoryDirectory,
59
+ },
60
+ bin: () => this.renderBin(),
61
+ scripts: () => this.renderScripts(),
62
+ author: this.renderAuthor(options),
63
+ devDependencies: {},
64
+ peerDependencies: {},
65
+ dependencies: {},
66
+ bundledDependencies: [],
67
+ keywords: () => this.renderKeywords(),
68
+ engines: () => this.renderEngines(),
69
+ main: this.entrypoint !== '' ? this.entrypoint : undefined,
70
+ license: () => { var _b; return (_b = this.license) !== null && _b !== void 0 ? _b : UNLICENSED; },
71
+ homepage: options.homepage,
72
+ publishConfig: () => this.renderPublishConfig(),
73
+ // in release CI builds we bump the version before we run "build" so we want
74
+ // to preserve the version number. otherwise, we always set it to 0.0.0
75
+ version: this.determineVersion(prev === null || prev === void 0 ? void 0 : prev.version),
76
+ bugs: (options.bugsEmail || options.bugsUrl) ? {
77
+ email: options.bugsEmail,
78
+ url: options.bugsUrl,
79
+ } : undefined,
80
+ };
81
+ // override any scripts from options (if specified)
82
+ for (const [cmdname, shell] of Object.entries((_h = options.scripts) !== null && _h !== void 0 ? _h : {})) {
83
+ project.addTask(cmdname, { exec: shell });
84
+ }
85
+ this.file = new json_1.JsonFile(this.project, 'package.json', {
86
+ obj: this.manifest,
87
+ readonly: false,
88
+ });
89
+ this.addKeywords(...(_j = options.keywords) !== null && _j !== void 0 ? _j : []);
90
+ this.addBin((_k = options.bin) !== null && _k !== void 0 ? _k : {});
91
+ // automatically add all executable files under "bin"
92
+ if ((_l = options.autoDetectBin) !== null && _l !== void 0 ? _l : true) {
93
+ this.autoDiscoverBinaries();
94
+ }
95
+ // node version
96
+ this.minNodeVersion = options.minNodeVersion;
97
+ this.maxNodeVersion = options.maxNodeVersion;
98
+ this.addNodeEngine();
99
+ // license
100
+ if ((_m = options.licensed) !== null && _m !== void 0 ? _m : true) {
101
+ this.license = (_o = options.license) !== null && _o !== void 0 ? _o : 'Apache-2.0';
102
+ }
103
+ }
104
+ /**
105
+ * (experimental) Defines normal dependencies.
106
+ *
107
+ * @param deps Names modules to install.
108
+ * @experimental
109
+ */
110
+ addDeps(...deps) {
111
+ for (const dep of deps) {
112
+ this.project.deps.addDependency(dep, dependencies_1.DependencyType.RUNTIME);
113
+ }
114
+ }
115
+ /**
116
+ * (experimental) Defines development/test dependencies.
117
+ *
118
+ * @param deps Names modules to install.
119
+ * @experimental
120
+ */
121
+ addDevDeps(...deps) {
122
+ for (const dep of deps) {
123
+ this.project.deps.addDependency(dep, dependencies_1.DependencyType.BUILD);
124
+ }
125
+ }
126
+ /**
127
+ * (experimental) Defines peer dependencies.
128
+ *
129
+ * When adding peer dependencies, a devDependency will also be added on the
130
+ * pinned version of the declared peer. This will ensure that you are testing
131
+ * your code against the minimum version required from your consumers.
132
+ *
133
+ * @param deps Names modules to install.
134
+ * @experimental
135
+ */
136
+ addPeerDeps(...deps) {
137
+ if (Object.keys(deps).length && !this.allowLibraryDependencies) {
138
+ throw new Error(`cannot add peer dependencies to an APP project: ${Object.keys(deps).join(',')}`);
139
+ }
140
+ for (const dep of deps) {
141
+ this.project.deps.addDependency(dep, dependencies_1.DependencyType.PEER);
142
+ }
143
+ }
144
+ /**
145
+ * (experimental) Defines bundled dependencies.
146
+ *
147
+ * Bundled dependencies will be added as normal dependencies as well as to the
148
+ * `bundledDependencies` section of your `package.json`.
149
+ *
150
+ * @param deps Names modules to install.
151
+ * @experimental
152
+ */
153
+ addBundledDeps(...deps) {
154
+ if (deps.length && !this.allowLibraryDependencies) {
155
+ throw new Error(`cannot add bundled dependencies to an APP project: ${deps.join(',')}`);
156
+ }
157
+ for (const dep of deps) {
158
+ this.project.deps.addDependency(dep, dependencies_1.DependencyType.BUNDLED);
159
+ }
160
+ }
161
+ /**
162
+ * (experimental) Adds an `engines` requirement to your package.
163
+ *
164
+ * @param engine The engine (e.g. `node`).
165
+ * @param version The semantic version requirement (e.g. `^10`).
166
+ * @experimental
167
+ */
168
+ addEngine(engine, version) {
169
+ this.engines[engine] = version;
170
+ }
171
+ /**
172
+ * (experimental) Adds keywords to package.json (deduplicated).
173
+ *
174
+ * @param keywords The keywords to add.
175
+ * @experimental
176
+ */
177
+ addKeywords(...keywords) {
178
+ for (const k of keywords) {
179
+ this.keywords.add(k);
180
+ }
181
+ }
182
+ /**
183
+ * @experimental
184
+ */
185
+ addBin(bins) {
186
+ for (const [k, v] of Object.entries(bins)) {
187
+ this.bin[k] = v;
188
+ }
189
+ }
190
+ /**
191
+ * (experimental) Override the contents of an npm package.json script.
192
+ *
193
+ * @param name The script name.
194
+ * @param command The command to execute.
195
+ * @experimental
196
+ */
197
+ setScript(name, command) {
198
+ this.file.addOverride(`scripts.${name}`, command);
199
+ }
200
+ /**
201
+ * (experimental) Removes the npm script (always successful).
202
+ *
203
+ * @param name The name of the script.
204
+ * @experimental
205
+ */
206
+ removeScript(name) {
207
+ this.file.addDeletionOverride(`scripts.${name}`);
208
+ }
209
+ /**
210
+ * (deprecated) Indicates if a script by the given name is defined.
211
+ *
212
+ * @param name The name of the script.
213
+ * @deprecated Use `project.tasks.tryFind(name)`
214
+ */
215
+ hasScript(name) {
216
+ return this.project.tasks.tryFind(name) !== undefined;
217
+ }
218
+ /**
219
+ * (experimental) Directly set fields in `package.json`.
220
+ *
221
+ * @param name field name.
222
+ * @param value field value.
223
+ * @experimental
224
+ * @escape true
225
+ */
226
+ addField(name, value) {
227
+ this.manifest[name] = value;
228
+ }
229
+ /**
230
+ * (experimental) Sets the package version.
231
+ *
232
+ * @param version Package version.
233
+ * @experimental
234
+ */
235
+ addVersion(version) {
236
+ this.manifest.version = version;
237
+ }
238
+ /**
239
+ * (experimental) Returns the command to execute in order to install all dependencies (always frozen).
240
+ *
241
+ * @experimental
242
+ */
243
+ get installCommand() {
244
+ return this.renderInstallCommand(true);
245
+ }
246
+ /**
247
+ * (experimental) Renders `yarn install` or `npm install` with lockfile update (not frozen).
248
+ *
249
+ * @experimental
250
+ */
251
+ get installAndUpdateLockfileCommand() {
252
+ return this.renderInstallCommand(false);
253
+ }
254
+ /**
255
+ * (experimental) Render a package manager specific command to upgrade all requested dependencies.
256
+ *
257
+ * @experimental
258
+ */
259
+ renderUpgradePackagesCommand(exclude, include) {
260
+ const project = this.project;
261
+ function upgradePackages(command) {
262
+ return () => {
263
+ if (exclude.length === 0 && !include) {
264
+ // request to upgrade all packages
265
+ // separated for asthetic reasons.
266
+ return command;
267
+ }
268
+ // filter by exclude and include.
269
+ return `${command} ${project.deps.all
270
+ .map(d => d.name)
271
+ .filter(d => include ? include.includes(d) : true)
272
+ .filter(d => !exclude.includes(d))
273
+ .join(' ')}`;
274
+ };
275
+ }
276
+ let lazy = undefined;
277
+ switch (this.packageManager) {
278
+ case NodePackageManager.YARN:
279
+ lazy = upgradePackages('yarn upgrade');
280
+ break;
281
+ case NodePackageManager.NPM:
282
+ lazy = upgradePackages('npm update');
283
+ break;
284
+ case NodePackageManager.PNPM:
285
+ lazy = upgradePackages('pnpm update');
286
+ break;
287
+ default:
288
+ throw new Error(`unexpected package manager ${this.packageManager}`);
289
+ }
290
+ // return a lazy function so that dependencies include ones that were
291
+ // added post project instantiation (i.e using project.addDeps)
292
+ return lazy;
293
+ }
294
+ // ---------------------------------------------------------------------------------------
295
+ /**
296
+ * (experimental) Called before synthesis.
297
+ *
298
+ * @experimental
299
+ */
300
+ preSynthesize() {
301
+ super.preSynthesize();
302
+ this._renderedDeps = this.renderDependencies();
303
+ }
304
+ /**
305
+ * (experimental) Called after synthesis.
306
+ *
307
+ * Order is *not* guaranteed.
308
+ *
309
+ * @experimental
310
+ */
311
+ postSynthesize() {
312
+ super.postSynthesize();
313
+ const outdir = this.project.outdir;
314
+ util_1.exec(this.renderInstallCommand(this.isAutomatedBuild), { cwd: outdir });
315
+ this.resolveDepsAndWritePackageJson(outdir);
316
+ }
317
+ /**
318
+ * (experimental) The command which executes "projen".
319
+ *
320
+ * @experimental
321
+ */
322
+ get projenCommand() {
323
+ return this.project.projenCommand;
324
+ }
325
+ /**
326
+ * Returns `true` if we are running within a CI build.
327
+ */
328
+ get isAutomatedBuild() {
329
+ return util_1.isTruthy(process.env.CI);
330
+ }
331
+ determineVersion(currVersion) {
332
+ if (!this.isReleaseBuild) {
333
+ return '0.0.0';
334
+ }
335
+ return currVersion !== null && currVersion !== void 0 ? currVersion : '0.0.0';
336
+ }
337
+ /**
338
+ * Returns `true` if this is a CI release build.
339
+ */
340
+ get isReleaseBuild() {
341
+ return util_1.isTruthy(process.env.RELEASE);
342
+ }
343
+ // -------------------------------------------------------------------------------------------
344
+ parseNpmOptions(options) {
345
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k;
346
+ let npmRegistryUrl = options.npmRegistryUrl;
347
+ if (options.npmRegistry) {
348
+ if (npmRegistryUrl) {
349
+ throw new Error('cannot use the deprecated "npmRegistry" together with "npmRegistryUrl". please use "npmRegistryUrl" instead.');
350
+ }
351
+ npmRegistryUrl = `https://${options.npmRegistry}`;
352
+ }
353
+ const npmr = url_1.parse(npmRegistryUrl !== null && npmRegistryUrl !== void 0 ? npmRegistryUrl : DEFAULT_NPM_REGISTRY_URL);
354
+ if (!npmr || !npmr.hostname || !npmr.href) {
355
+ throw new Error(`unable to determine npm registry host from url ${npmRegistryUrl}. Is this really a URL?`);
356
+ }
357
+ const npmAccess = (_b = options.npmAccess) !== null && _b !== void 0 ? _b : defaultNpmAccess(this.packageName);
358
+ if (!isScoped(this.packageName) && npmAccess === NpmAccess.RESTRICTED) {
359
+ throw new Error(`"npmAccess" cannot be RESTRICTED for non-scoped npm package "${this.packageName}"`);
360
+ }
361
+ const isAwsCodeArtifact = release_1.isAwsCodeArtifactRegistry(npmRegistryUrl);
362
+ if (isAwsCodeArtifact) {
363
+ if (options.npmTokenSecret) {
364
+ throw new Error('"npmTokenSecret" must not be specified when publishing AWS CodeArtifact.');
365
+ }
366
+ }
367
+ else {
368
+ if (((_c = options.codeArtifactOptions) === null || _c === void 0 ? void 0 : _c.accessKeyIdSecret) || ((_d = options.codeArtifactOptions) === null || _d === void 0 ? void 0 : _d.secretAccessKeySecret) || ((_e = options.codeArtifactOptions) === null || _e === void 0 ? void 0 : _e.roleToAssume)) {
369
+ throw new Error('codeArtifactOptions must only be specified when publishing AWS CodeArtifact.');
370
+ }
371
+ }
372
+ // apply defaults for AWS CodeArtifact
373
+ let codeArtifactOptions;
374
+ if (isAwsCodeArtifact) {
375
+ codeArtifactOptions = {
376
+ accessKeyIdSecret: (_g = (_f = options.codeArtifactOptions) === null || _f === void 0 ? void 0 : _f.accessKeyIdSecret) !== null && _g !== void 0 ? _g : 'AWS_ACCESS_KEY_ID',
377
+ secretAccessKeySecret: (_j = (_h = options.codeArtifactOptions) === null || _h === void 0 ? void 0 : _h.secretAccessKeySecret) !== null && _j !== void 0 ? _j : 'AWS_SECRET_ACCESS_KEY',
378
+ roleToAssume: (_k = options.codeArtifactOptions) === null || _k === void 0 ? void 0 : _k.roleToAssume,
379
+ };
380
+ }
381
+ return {
382
+ npmAccess,
383
+ npmRegistry: npmr.hostname + this.renderNpmRegistryPath(npmr.pathname),
384
+ npmRegistryUrl: npmr.href,
385
+ npmTokenSecret: defaultNpmToken(options.npmTokenSecret, npmr.hostname),
386
+ codeArtifactOptions,
387
+ };
388
+ }
389
+ addNodeEngine() {
390
+ if (!this.minNodeVersion && !this.maxNodeVersion) {
391
+ return;
392
+ }
393
+ let nodeVersion = '';
394
+ if (this.minNodeVersion) {
395
+ nodeVersion += `>= ${this.minNodeVersion}`;
396
+ }
397
+ if (this.maxNodeVersion) {
398
+ nodeVersion += ` <= ${this.maxNodeVersion}`;
399
+ }
400
+ this.addEngine('node', nodeVersion);
401
+ }
402
+ renderNpmRegistryPath(path) {
403
+ if (!path || path == '/') {
404
+ return '';
405
+ }
406
+ else {
407
+ return path;
408
+ }
409
+ }
410
+ renderInstallCommand(frozen) {
411
+ switch (this.packageManager) {
412
+ case NodePackageManager.YARN:
413
+ return [
414
+ 'yarn install',
415
+ '--check-files',
416
+ ...frozen ? ['--frozen-lockfile'] : [],
417
+ ].join(' ');
418
+ case NodePackageManager.NPM:
419
+ return frozen
420
+ ? 'npm ci'
421
+ : 'npm install';
422
+ case NodePackageManager.PNPM:
423
+ return [
424
+ 'pnpm i',
425
+ ...frozen ? ['--frozen-lockfile'] : [],
426
+ ].join(' ');
427
+ default:
428
+ throw new Error(`unexpected package manager ${this.packageManager}`);
429
+ }
430
+ }
431
+ processDeps(options) {
432
+ var _b, _c, _d, _e;
433
+ this.addDeps(...(_b = options.deps) !== null && _b !== void 0 ? _b : []);
434
+ this.addDevDeps(...(_c = options.devDeps) !== null && _c !== void 0 ? _c : []);
435
+ this.addPeerDeps(...(_d = options.peerDeps) !== null && _d !== void 0 ? _d : []);
436
+ this.addBundledDeps(...(_e = options.bundledDeps) !== null && _e !== void 0 ? _e : []);
437
+ }
438
+ renderDependencies() {
439
+ var _b, _c, _d;
440
+ const devDependencies = {};
441
+ const peerDependencies = {};
442
+ const dependencies = {};
443
+ const bundledDependencies = new Array();
444
+ // synthetic dependencies: add a pinned build dependency to ensure we are
445
+ // testing against the minimum requirement of the peer.
446
+ const pinned = (_b = this.peerDependencyOptions.pinnedDevDependency) !== null && _b !== void 0 ? _b : true;
447
+ if (pinned) {
448
+ for (const dep of this.project.deps.all.filter(d => d.type === dependencies_1.DependencyType.PEER)) {
449
+ let req = dep.name;
450
+ // skip if we already have a runtime dependency on this peer
451
+ if (this.project.deps.tryGetDependency(dep.name, dependencies_1.DependencyType.RUNTIME)) {
452
+ continue;
453
+ }
454
+ if (dep.version) {
455
+ const ver = (_c = semver.minVersion(dep.version)) === null || _c === void 0 ? void 0 : _c.version;
456
+ if (!ver) {
457
+ throw new Error(`unable to determine minimum semver for peer dependency ${dep.name}@${dep.version}`);
458
+ }
459
+ req += '@' + ver;
460
+ }
461
+ this.addDevDeps(req);
462
+ }
463
+ }
464
+ for (const dep of this.project.deps.all) {
465
+ const version = (_d = dep.version) !== null && _d !== void 0 ? _d : '*';
466
+ switch (dep.type) {
467
+ case dependencies_1.DependencyType.BUNDLED:
468
+ bundledDependencies.push(dep.name);
469
+ if (this.project.deps.all.find(d => d.name === dep.name && d.type === dependencies_1.DependencyType.PEER)) {
470
+ throw new Error(`unable to bundle "${dep.name}". it cannot appear as a peer dependency`);
471
+ }
472
+ // also add as a runtime dependency
473
+ dependencies[dep.name] = version;
474
+ break;
475
+ case dependencies_1.DependencyType.PEER:
476
+ peerDependencies[dep.name] = version;
477
+ break;
478
+ case dependencies_1.DependencyType.RUNTIME:
479
+ dependencies[dep.name] = version;
480
+ break;
481
+ case dependencies_1.DependencyType.TEST:
482
+ case dependencies_1.DependencyType.DEVENV:
483
+ case dependencies_1.DependencyType.BUILD:
484
+ devDependencies[dep.name] = version;
485
+ break;
486
+ }
487
+ }
488
+ // update the manifest we are about to save into `package.json`
489
+ this.manifest.devDependencies = devDependencies;
490
+ this.manifest.peerDependencies = peerDependencies;
491
+ this.manifest.dependencies = dependencies;
492
+ this.manifest.bundledDependencies = bundledDependencies;
493
+ // nothing further to do if package.json file does not exist
494
+ const pkg = this.readPackageJson();
495
+ if (!pkg) {
496
+ return { devDependencies, peerDependencies, dependencies };
497
+ }
498
+ const readDeps = (user, current = {}) => {
499
+ for (const [name, userVersion] of Object.entries(user)) {
500
+ const currentVersion = current[name];
501
+ // respect user version if it's not '*' or if current version is undefined
502
+ if (userVersion !== '*' || !currentVersion || currentVersion === '*') {
503
+ continue;
504
+ }
505
+ // memoize current version in memory so it is preserved when saving
506
+ user[name] = currentVersion;
507
+ }
508
+ // report removals
509
+ for (const name of Object.keys(current !== null && current !== void 0 ? current : {})) {
510
+ if (!user[name]) {
511
+ this.project.logger.verbose(`${name}: removed`);
512
+ }
513
+ }
514
+ };
515
+ readDeps(devDependencies, pkg.devDependencies);
516
+ readDeps(dependencies, pkg.dependencies);
517
+ readDeps(peerDependencies, pkg.peerDependencies);
518
+ return { devDependencies, dependencies, peerDependencies };
519
+ }
520
+ resolveDepsAndWritePackageJson(outdir) {
521
+ const root = path_1.join(outdir, 'package.json');
522
+ const pkg = fs_extra_1.readJsonSync(root);
523
+ const resolveDeps = (current, user) => {
524
+ const result = {};
525
+ current = current !== null && current !== void 0 ? current : {};
526
+ user = user !== null && user !== void 0 ? user : {};
527
+ for (const [name, currentDefinition] of Object.entries(user)) {
528
+ // find actual version from node_modules
529
+ let desiredVersion = currentDefinition;
530
+ if (currentDefinition === '*') {
531
+ try {
532
+ const modulePath = require.resolve(`${name}/package.json`, { paths: [outdir] });
533
+ const module = fs_extra_1.readJsonSync(modulePath);
534
+ desiredVersion = `^${module.version}`;
535
+ }
536
+ catch (e) { }
537
+ if (!desiredVersion) {
538
+ this.project.logger.warn(`unable to resolve version for ${name} from installed modules`);
539
+ continue;
540
+ }
541
+ }
542
+ if (currentDefinition !== desiredVersion) {
543
+ this.project.logger.verbose(`${name}: ${currentDefinition} => ${desiredVersion}`);
544
+ }
545
+ result[name] = desiredVersion;
546
+ }
547
+ // print removed packages
548
+ for (const name of Object.keys(current)) {
549
+ if (!result[name]) {
550
+ this.project.logger.verbose(`${name} removed`);
551
+ }
552
+ }
553
+ return util_1.sorted(result);
554
+ };
555
+ const rendered = this._renderedDeps;
556
+ if (!rendered) {
557
+ throw new Error('assertion failed');
558
+ }
559
+ pkg.dependencies = resolveDeps(pkg.dependencies, rendered.dependencies);
560
+ pkg.devDependencies = resolveDeps(pkg.devDependencies, rendered.devDependencies);
561
+ pkg.peerDependencies = resolveDeps(pkg.peerDependencies, rendered.peerDependencies);
562
+ util_1.writeFile(root, JSON.stringify(pkg, undefined, 2));
563
+ }
564
+ renderPublishConfig() {
565
+ // omit values if they are the same as the npm defaults
566
+ return _resolve_1.resolve({
567
+ registry: this.npmRegistryUrl !== DEFAULT_NPM_REGISTRY_URL ? this.npmRegistryUrl : undefined,
568
+ access: this.npmAccess !== defaultNpmAccess(this.packageName) ? this.npmAccess : undefined,
569
+ }, { omitEmpty: true });
570
+ }
571
+ renderKeywords() {
572
+ const kwds = Array.from(this.keywords);
573
+ return util_1.sorted(kwds.sort());
574
+ }
575
+ renderEngines() {
576
+ return util_1.sorted(this.engines);
577
+ }
578
+ autoDiscoverBinaries() {
579
+ const binrel = 'bin';
580
+ const bindir = path_1.join(this.project.outdir, binrel);
581
+ if (fs_extra_1.existsSync(bindir)) {
582
+ for (const file of fs_extra_1.readdirSync(bindir)) {
583
+ try {
584
+ fs_extra_1.accessSync(path_1.join(bindir, file), fs_extra_1.constants.X_OK);
585
+ this.bin[file] = path_1.join(binrel, file).replace(/\\/g, '/');
586
+ }
587
+ catch (e) {
588
+ // not executable, skip
589
+ }
590
+ }
591
+ }
592
+ }
593
+ renderAuthor(options) {
594
+ var _b;
595
+ let author;
596
+ if (options.authorName) {
597
+ author = {
598
+ name: options.authorName,
599
+ email: options.authorEmail,
600
+ url: options.authorUrl,
601
+ organization: (_b = options.authorOrganization) !== null && _b !== void 0 ? _b : false,
602
+ };
603
+ }
604
+ else {
605
+ if (options.authorEmail || options.authorUrl || options.authorOrganization !== undefined) {
606
+ throw new Error('"authorName" is required if specifying "authorEmail" or "authorUrl"');
607
+ }
608
+ }
609
+ return author;
610
+ }
611
+ renderBin() {
612
+ return util_1.sorted(this.bin);
613
+ }
614
+ renderScripts() {
615
+ const result = {};
616
+ for (const task of this.project.tasks.all.sort((x, y) => x.name.localeCompare(y.name))) {
617
+ result[task.name] = this.npmScriptForTask(task);
618
+ }
619
+ return result;
620
+ }
621
+ npmScriptForTask(task) {
622
+ return `${this.projenCommand} ${task.name}`;
623
+ }
624
+ readPackageJson() {
625
+ const file = path_1.join(this.project.outdir, 'package.json');
626
+ if (!fs_extra_1.existsSync(file)) {
627
+ return undefined;
628
+ }
629
+ return fs_extra_1.readJsonSync(file);
630
+ }
631
+ }
632
+ exports.NodePackage = NodePackage;
633
+ _a = JSII_RTTI_SYMBOL_1;
634
+ NodePackage[_a] = { fqn: "projen.javascript.NodePackage", version: "0.46.8" };
635
+ /**
636
+ * (experimental) The node package manager to use.
637
+ *
638
+ * @experimental
639
+ */
640
+ var NodePackageManager;
641
+ (function (NodePackageManager) {
642
+ NodePackageManager["YARN"] = "yarn";
643
+ NodePackageManager["NPM"] = "npm";
644
+ NodePackageManager["PNPM"] = "pnpm";
645
+ })(NodePackageManager = exports.NodePackageManager || (exports.NodePackageManager = {}));
646
+ /**
647
+ * (experimental) Npm package access level.
648
+ *
649
+ * @experimental
650
+ */
651
+ var NpmAccess;
652
+ (function (NpmAccess) {
653
+ NpmAccess["PUBLIC"] = "public";
654
+ NpmAccess["RESTRICTED"] = "restricted";
655
+ })(NpmAccess = exports.NpmAccess || (exports.NpmAccess = {}));
656
+ /**
657
+ * Determines if an npm package is "scoped" (i.e. it starts with "xxx@").
658
+ */
659
+ function isScoped(packageName) {
660
+ return packageName.includes('@');
661
+ }
662
+ function defaultNpmAccess(packageName) {
663
+ return isScoped(packageName) ? NpmAccess.RESTRICTED : NpmAccess.PUBLIC;
664
+ }
665
+ function defaultNpmToken(npmToken, registry) {
666
+ // if we are publishing to AWS CdodeArtifact, no NPM_TOKEN used (will be requested using AWS CLI later).
667
+ if (release_1.isAwsCodeArtifactRegistry(registry)) {
668
+ return undefined;
669
+ }
670
+ // if we are publishing to GitHub Packages, default to GITHUB_TOKEN.
671
+ const isGitHubPackages = registry === GITHUB_PACKAGES_REGISTRY;
672
+ return npmToken !== null && npmToken !== void 0 ? npmToken : (isGitHubPackages ? DEFAULT_GITHUB_TOKEN_SECRET : DEFAULT_NPM_TOKEN_SECRET);
673
+ }
674
+ exports.defaultNpmToken = defaultNpmToken;
675
+ function determineLockfile(packageManager) {
676
+ if (packageManager === NodePackageManager.YARN) {
677
+ return 'yarn.lock';
678
+ }
679
+ else if (packageManager === NodePackageManager.NPM) {
680
+ return 'package-lock.json';
681
+ }
682
+ else if (packageManager === NodePackageManager.PNPM) {
683
+ return 'pnpm-lock.yaml';
684
+ }
685
+ throw new Error(`unsupported package manager ${packageManager}`);
686
+ }
687
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1wYWNrYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2phdmFzY3JpcHQvbm9kZS1wYWNrYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0JBQTRCO0FBQzVCLDZCQUF3QztBQUN4Qyx1Q0FBd0Y7QUFDeEYsaUNBQWlDO0FBQ2pDLDBDQUFxRDtBQUNyRCw0Q0FBeUM7QUFDekMsa0RBQWlEO0FBQ2pELGtDQUFtQztBQUVuQyx3Q0FBdUQ7QUFFdkQsa0NBQTREO0FBRTVELE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQztBQUNoQyxNQUFNLHdCQUF3QixHQUFHLDZCQUE2QixDQUFDO0FBQy9ELE1BQU0sd0JBQXdCLEdBQUcsb0JBQW9CLENBQUM7QUFDdEQsTUFBTSx3QkFBd0IsR0FBRyxXQUFXLENBQUM7QUFDN0MsTUFBTSwyQkFBMkIsR0FBRyxjQUFjLENBQUM7Ozs7OztBQW9IbkQsTUFBYSxXQUFZLFNBQVEscUJBQVM7Ozs7SUFtRHhDLFlBQVksT0FBZ0IsRUFBRSxVQUE4QixFQUFFOztRQUM1RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFSQSxhQUFRLEdBQWdCLElBQUksR0FBRyxFQUFFLENBQUM7UUFDbEMsUUFBRyxHQUEyQixFQUFFLENBQUM7UUFDakMsWUFBTyxHQUEyQixFQUFFLENBQUM7UUFRcEQsSUFBSSxDQUFDLFdBQVcsU0FBRyxPQUFPLENBQUMsV0FBVyxtQ0FBSSxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxxQkFBcUIsU0FBRyxPQUFPLENBQUMscUJBQXFCLG1DQUFJLEVBQUUsQ0FBQztRQUNqRSxJQUFJLENBQUMsd0JBQXdCLFNBQUcsT0FBTyxDQUFDLHdCQUF3QixtQ0FBSSxJQUFJLENBQUM7UUFDekUsSUFBSSxDQUFDLGNBQWMsU0FBRyxPQUFPLENBQUMsY0FBYyxtQ0FBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7UUFDeEUsSUFBSSxDQUFDLFVBQVUs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Q3pCO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsY0FBYyxFQUFFLENBQUMsQ0FBQztBQUNuRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgcGFyc2UgYXMgdXJscGFyc2UgfSBmcm9tICd1cmwnO1xuaW1wb3J0IHsgYWNjZXNzU3luYywgY29uc3RhbnRzLCBleGlzdHNTeW5jLCByZWFkZGlyU3luYywgcmVhZEpzb25TeW5jIH0gZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0ICogYXMgc2VtdmVyIGZyb20gJ3NlbXZlcic7XG5pbXBvcnQgeyByZXNvbHZlIGFzIHJlc29sdmVKc29uIH0gZnJvbSAnLi4vX3Jlc29sdmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50JztcbmltcG9ydCB7IERlcGVuZGVuY3lUeXBlIH0gZnJvbSAnLi4vZGVwZW5kZW5jaWVzJztcbmltcG9ydCB7IEpzb25GaWxlIH0gZnJvbSAnLi4vanNvbic7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vcHJvamVjdCc7XG5pbXBvcnQgeyBpc0F3c0NvZGVBcnRpZmFjdFJlZ2lzdHJ5IH0gZnJvbSAnLi4vcmVsZWFzZSc7XG5pbXBvcnQgeyBUYXNrIH0gZnJvbSAnLi4vdGFzayc7XG5pbXBvcnQgeyBleGVjLCBpc1RydXRoeSwgc29ydGVkLCB3cml0ZUZpbGUgfSBmcm9tICcuLi91dGlsJztcblxuY29uc3QgVU5MSUNFTlNFRCA9ICdVTkxJQ0VOU0VEJztcbmNvbnN0IERFRkFVTFRfTlBNX1JFR0lTVFJZX1VSTCA9ICdodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy8nO1xuY29uc3QgR0lUSFVCX1BBQ0tBR0VTX1JFR0lTVFJZID0gJ25wbS5wa2cuZ2l0aHViLmNvbSc7XG5jb25zdCBERUZBVUxUX05QTV9UT0tFTl9TRUNSRVQgPSAnTlBNX1RPS0VOJztcbmNvbnN0IERFRkFVTFRfR0lUSFVCX1RPS0VOX1NFQ1JFVCA9ICdHSVRIVUJfVE9LRU4nO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5vZGVQYWNrYWdlT3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcGFja2FnZU5hbWU/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGRlcHM/OiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBkZXZEZXBzPzogc3RyaW5nW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHBlZXJEZXBzPzogc3RyaW5nW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGJ1bmRsZWREZXBzPzogc3RyaW5nW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcGVlckRlcGVuZGVuY3lPcHRpb25zPzogUGVlckRlcGVuZGVuY3lPcHRpb25zO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBhbGxvd0xpYnJhcnlEZXBlbmRlbmNpZXM/OiBib29sZWFuO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGtleXdvcmRzPzogc3RyaW5nW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBlbnRyeXBvaW50Pzogc3RyaW5nO1xuXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYmluPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYXV0b0RldGVjdEJpbj86IGJvb2xlYW47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgc2NyaXB0cz86IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcGFja2FnZU1hbmFnZXI/OiBOb2RlUGFja2FnZU1hbmFnZXI7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHJlcG9zaXRvcnk/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHJlcG9zaXRvcnlEaXJlY3Rvcnk/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBhdXRob3JOYW1lPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBhdXRob3JFbWFpbD86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGF1dGhvclVybD86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYXV0aG9yT3JnYW5pemF0aW9uPzogYm9vbGVhbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGhvbWVwYWdlPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgc3RhYmlsaXR5Pzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgbWluTm9kZVZlcnNpb24/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgbWF4Tm9kZVZlcnNpb24/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGxpY2Vuc2U/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGxpY2Vuc2VkPzogYm9vbGVhbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBucG1SZWdpc3RyeVVybD86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IG5wbVJlZ2lzdHJ5Pzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYnVnc1VybD86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBidWdzRW1haWw/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgbnBtQWNjZXNzPzogTnBtQWNjZXNzO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgbnBtVG9rZW5TZWNyZXQ/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY29kZUFydGlmYWN0T3B0aW9ucz86IENvZGVBcnRpZmFjdE9wdGlvbnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZUFydGlmYWN0T3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBhY2Nlc3NLZXlJZFNlY3JldD86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHNlY3JldEFjY2Vzc0tleVNlY3JldD86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcm9sZVRvQXNzdW1lPzogc3RyaW5nO1xufVxuXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgTm9kZVBhY2thZ2UgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IHBhY2thZ2VOYW1lOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgZW50cnlwb2ludDogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGFsbG93TGlicmFyeURlcGVuZGVuY2llczogYm9vbGVhbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IHBhY2thZ2VNYW5hZ2VyOiBOb2RlUGFja2FnZU1hbmFnZXI7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IG1hbmlmZXN0OiBhbnk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgbWluTm9kZVZlcnNpb24/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IG1heE5vZGVWZXJzaW9uPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBsaWNlbnNlPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBucG1SZWdpc3RyeVVybDogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBucG1SZWdpc3RyeTogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgbnBtVG9rZW5TZWNyZXQ/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY29kZUFydGlmYWN0T3B0aW9ucz86IENvZGVBcnRpZmFjdE9wdGlvbnM7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgbnBtQWNjZXNzOiBOcG1BY2Nlc3M7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGxvY2tGaWxlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBrZXl3b3JkczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYmluOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIHByaXZhdGUgcmVhZG9ubHkgZW5naW5lczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICBwcml2YXRlIHJlYWRvbmx5IHBlZXJEZXBlbmRlbmN5T3B0aW9uczogUGVlckRlcGVuZGVuY3lPcHRpb25zO1xuICBwcml2YXRlIHJlYWRvbmx5IGZpbGU6IEpzb25GaWxlO1xuICBwcml2YXRlIF9yZW5kZXJlZERlcHM/OiBOcG1EZXBlbmRlbmNpZXM7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgb3B0aW9uczogTm9kZVBhY2thZ2VPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHRoaXMucGFja2FnZU5hbWUgPSBvcHRpb25zLnBhY2thZ2VOYW1lID8/IHByb2plY3QubmFtZTtcbiAgICB0aGlzLnBlZXJEZXBlbmRlbmN5T3B0aW9ucyA9IG9wdGlvbnMucGVlckRlcGVuZGVuY3lPcHRpb25zID8/IHt9O1xuICAgIHRoaXMuYWxsb3dMaWJyYXJ5RGVwZW5kZW5jaWVzID0gb3B0aW9ucy5hbGxvd0xpYnJhcnlEZXBlbmRlbmNpZXMgPz8gdHJ1ZTtcbiAgICB0aGlzLnBhY2thZ2VNYW5hZ2VyID0gb3B0aW9ucy5wYWNrYWdlTWFuYWdlciA/PyBOb2RlUGFja2FnZU1hbmFnZXIuWUFSTjtcbiAgICB0aGlzLmVudHJ5cG9pbnQgPSBvcHRpb25zLmVudHJ5cG9pbnQgPz8gJ2xpYi9pbmRleC5qcyc7XG4gICAgdGhpcy5sb2NrRmlsZSA9IGRldGVybWluZUxvY2tmaWxlKHRoaXMucGFja2FnZU1hbmFnZXIpO1xuXG4gICAgdGhpcy5wcm9qZWN0LmFubm90YXRlR2VuZXJhdGVkKGAvJHt0aGlzLmxvY2tGaWxlfWApO1xuXG4gICAgY29uc3Qge1xuICAgICAgbnBtQWNjZXNzLCBucG1SZWdpc3RyeSwgbnBtUmVnaXN0cnlVcmwsIG5wbVRva2VuU2VjcmV0LCBjb2RlQXJ0aWZhY3RPcHRpb25zLFxuICAgIH0gPSB0aGlzLnBhcnNlTnBtT3B0aW9ucyhvcHRpb25zKTtcbiAgICB0aGlzLm5wbUFjY2VzcyA9IG5wbUFjY2VzcztcbiAgICB0aGlzLm5wbVJlZ2lzdHJ5ID0gbnBtUmVnaXN0cnk7XG4gICAgdGhpcy5ucG1SZWdpc3RyeVVybCA9IG5wbVJlZ2lzdHJ5VXJsO1xuICAgIHRoaXMubnBtVG9rZW5TZWNyZXQgPSBucG1Ub2tlblNlY3JldDtcbiAgICB0aGlzLmNvZGVBcnRpZmFjdE9wdGlvbnMgPSBjb2RlQXJ0aWZhY3RPcHRpb25zO1xuXG4gICAgdGhpcy5wcm9jZXNzRGVwcyhvcHRpb25zKTtcblxuICAgIGNvbnN0IHByZXYgPSB0aGlzLnJlYWRQYWNrYWdlSnNvbigpID8/IHt9O1xuXG4gICAgLy8gZW1wdHkgb2JqZWN0cyBhcmUgaGVyZSB0byBwcmVzZXJ2ZSBvcmRlciBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICB0aGlzLm1hbmlmZXN0ID0ge1xuICAgICAgbmFtZTogdGhpcy5wYWNrYWdlTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBvcHRpb25zLmRlc2NyaXB0aW9uLFxuICAgICAgcmVwb3NpdG9yeTogIW9wdGlvbnMucmVwb3NpdG9yeSA/IHVuZGVmaW5lZCA6IHtcbiAgICAgICAgdHlwZTogJ2dpdCcsXG4gICAgICAgIHVybDogb3B0aW9ucy5yZXBvc2l0b3J5LFxuICAgICAgICBkaXJlY3Rvcnk6IG9wdGlvbnMucmVwb3NpdG9yeURpcmVjdG9yeSxcbiAgICAgIH0sXG4gICAgICBiaW46ICgpID0+IHRoaXMucmVuZGVyQmluKCksXG4gICAgICBzY3JpcHRzOiAoKSA9PiB0aGlzLnJlbmRlclNjcmlwdHMoKSxcbiAgICAgIGF1dGhvcjogdGhpcy5yZW5kZXJBdXRob3Iob3B0aW9ucyksXG4gICAgICBkZXZEZXBlbmRlbmNpZXM6IHt9LFxuICAgICAgcGVlckRlcGVuZGVuY2llczoge30sXG4gICAgICBkZXBlbmRlbmNpZXM6IHt9LFxuICAgICAgYnVuZGxlZERlcGVuZGVuY2llczogW10sXG4gICAgICBrZXl3b3JkczogKCkgPT4gdGhpcy5yZW5kZXJLZXl3b3JkcygpLFxuICAgICAgZW5naW5lczogKCkgPT4gdGhpcy5yZW5kZXJFbmdpbmVzKCksXG4gICAgICBtYWluOiB0aGlzLmVudHJ5cG9pbnQgIT09ICcnID8gdGhpcy5lbnRyeXBvaW50IDogdW5kZWZpbmVkLFxuICAgICAgbGljZW5zZTogKCkgPT4gdGhpcy5saWNlbnNlID8/IFVOTElDRU5TRUQsXG4gICAgICBob21lcGFnZTogb3B0aW9ucy5ob21lcGFnZSxcbiAgICAgIHB1Ymxpc2hDb25maWc6ICgpID0+IHRoaXMucmVuZGVyUHVibGlzaENvbmZpZygpLFxuXG4gICAgICAvLyBpbiByZWxlYXNlIENJIGJ1aWxkcyB3ZSBidW1wIHRoZSB2ZXJzaW9uIGJlZm9yZSB3ZSBydW4gXCJidWlsZFwiIHNvIHdlIHdhbnRcbiAgICAgIC8vIHRvIHByZXNlcnZlIHRoZSB2ZXJzaW9uIG51bWJlci4gb3RoZXJ3aXNlLCB3ZSBhbHdheXMgc2V0IGl0IHRvIDAuMC4wXG4gICAgICB2ZXJzaW9uOiB0aGlzLmRldGVybWluZVZlcnNpb24ocHJldj8udmVyc2lvbiksXG4gICAgICBidWdzOiAob3B0aW9ucy5idWdzRW1haWwgfHwgb3B0aW9ucy5idWdzVXJsKSA/IHtcbiAgICAgICAgZW1haWw6IG9wdGlvbnMuYnVnc0VtYWlsLFxuICAgICAgICB1cmw6IG9wdGlvbnMuYnVnc1VybCxcbiAgICAgIH0gOiB1bmRlZmluZWQsXG4gICAgfTtcblxuICAgIC8vIG92ZXJyaWRlIGFueSBzY3JpcHRzIGZyb20gb3B0aW9ucyAoaWYgc3BlY2lmaWVkKVxuICAgIGZvciAoY29uc3QgW2NtZG5hbWUsIHNoZWxsXSBvZiBPYmplY3QuZW50cmllcyhvcHRpb25zLnNjcmlwdHMgPz8ge30pKSB7XG4gICAgICBwcm9qZWN0LmFkZFRhc2soY21kbmFtZSwgeyBleGVjOiBzaGVsbCB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmZpbGUgPSBuZXcgSnNvbkZpbGUodGhpcy5wcm9qZWN0LCAncGFja2FnZS5qc29uJywge1xuICAgICAgb2JqOiB0aGlzLm1hbmlmZXN0LFxuICAgICAgcmVhZG9ubHk6IGZhbHNlLCAvLyB3ZSB3YW50IFwieWFybiBhZGRcIiB0byB3b3JrIGFuZCB3ZSBoYXZlIGFudGktdGFtcGVyXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZEtleXdvcmRzKC4uLm9wdGlvbnMua2V5d29yZHMgPz8gW10pO1xuICAgIHRoaXMuYWRkQmluKG9wdGlvbnMuYmluID8/IHt9KTtcblxuICAgIC8vIGF1dG9tYXRpY2FsbHkgYWRkIGFsbCBleGVjdXRhYmxlIGZpbGVzIHVuZGVyIFwiYmluXCJcbiAgICBpZiAob3B0aW9ucy5hdXRvRGV0ZWN0QmluID8/IHRydWUpIHtcbiAgICAgIHRoaXMuYXV0b0Rpc2NvdmVyQmluYXJpZXMoKTtcbiAgICB9XG5cbiAgICAvLyBub2RlIHZlcnNpb25cbiAgICB0aGlzLm1pbk5vZGVWZXJzaW9uID0gb3B0aW9ucy5taW5Ob2RlVmVyc2lvbjtcbiAgICB0aGlzLm1heE5vZGVWZXJzaW9uID0gb3B0aW9ucy5tYXhOb2RlVmVyc2lvbjtcbiAgICB0aGlzLmFkZE5vZGVFbmdpbmUoKTtcblxuICAgIC8vIGxpY2Vuc2VcbiAgICBpZiAob3B0aW9ucy5saWNlbnNlZCA/PyB0cnVlKSB7XG4gICAgICB0aGlzLmxpY2Vuc2UgPSBvcHRpb25zLmxpY2Vuc2UgPz8gJ0FwYWNoZS0yLjAnO1xuICAgIH1cbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBhZGREZXBzKC4uLmRlcHM6IHN0cmluZ1tdKSB7XG4gICAgZm9yIChjb25zdCBkZXAgb2YgZGVwcykge1xuICAgICAgdGhpcy5wcm9qZWN0LmRlcHMuYWRkRGVwZW5kZW5jeShkZXAsIERlcGVuZGVuY3lUeXBlLlJVTlRJTUUpO1xuICAgIH1cbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWRkRGV2RGVwcyguLi5kZXBzOiBzdHJpbmdbXSkge1xuICAgIGZvciAoY29uc3QgZGVwIG9mIGRlcHMpIHtcbiAgICAgIHRoaXMucHJvamVjdC5kZXBzLmFkZERlcGVuZGVuY3koZGVwLCBEZXBlbmRlbmN5VHlwZS5CVUlMRCk7XG5cbiAgICB9XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWRkUGVlckRlcHMoLi4uZGVwczogc3RyaW5nW10pIHtcbiAgICBpZiAoT2JqZWN0LmtleXMoZGVwcykubGVuZ3RoICYmICF0aGlzLmFsbG93TGlicmFyeURlcGVuZGVuY2llcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjYW5ub3QgYWRkIHBlZXIgZGVwZW5kZW5jaWVzIHRvIGFuIEFQUCBwcm9qZWN0OiAke09iamVjdC5rZXlzKGRlcHMpLmpvaW4oJywnKX1gKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGRlcCBvZiBkZXBzKSB7XG4gICAgICB0aGlzLnByb2plY3QuZGVwcy5hZGREZXBlbmRlbmN5KGRlcCwgRGVwZW5kZW5jeVR5cGUuUEVFUik7XG4gICAgfVxuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWRkQnVuZGxlZERlcHMoLi4uZGVwczogc3RyaW5nW10pIHtcbiAgICBpZiAoZGVwcy5sZW5ndGggJiYgIXRoaXMuYWxsb3dMaWJyYXJ5RGVwZW5kZW5jaWVzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGNhbm5vdCBhZGQgYnVuZGxlZCBkZXBlbmRlbmNpZXMgdG8gYW4gQVBQIHByb2plY3Q6ICR7ZGVwcy5qb2luKCcsJyl9YCk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBkZXAgb2YgZGVwcykge1xuICAgICAgdGhpcy5wcm9qZWN0LmRlcHMuYWRkRGVwZW5kZW5jeShkZXAsIERlcGVuZGVuY3lUeXBlLkJVTkRMRUQpO1xuICAgIH1cbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWRkRW5naW5lKGVuZ2luZTogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgICB0aGlzLmVuZ2luZXNbZW5naW5lXSA9IHZlcnNpb247XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBhZGRLZXl3b3JkcyguLi5rZXl3b3Jkczogc3RyaW5nW10pIHtcbiAgICBmb3IgKGNvbnN0IGsgb2Yga2V5d29yZHMpIHtcbiAgICAgIHRoaXMua2V5d29yZHMuYWRkKGspO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhZGRCaW4oYmluczogUmVjb3JkPHN0cmluZywgc3RyaW5nPikge1xuICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKGJpbnMpKSB7XG4gICAgICB0aGlzLmJpbltrXSA9IHY7XG4gICAgfVxuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc2V0U2NyaXB0KG5hbWU6IHN0cmluZywgY29tbWFuZDogc3RyaW5nKSB7XG4gICAgdGhpcy5maWxlLmFkZE92ZXJyaWRlKGBzY3JpcHRzLiR7bmFtZX1gLCBjb21tYW5kKTtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVtb3ZlU2NyaXB0KG5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuZmlsZS5hZGREZWxldGlvbk92ZXJyaWRlKGBzY3JpcHRzLiR7bmFtZX1gKTtcbiAgfVxuXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgaGFzU2NyaXB0KG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZChuYW1lKSAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWRkRmllbGQobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5tYW5pZmVzdFtuYW1lXSA9IHZhbHVlO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIGFkZFZlcnNpb24odmVyc2lvbjogc3RyaW5nKSB7XG4gICAgdGhpcy5tYW5pZmVzdC52ZXJzaW9uID0gdmVyc2lvbjtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgZ2V0IGluc3RhbGxDb21tYW5kKCkge1xuICAgIHJldHVybiB0aGlzLnJlbmRlckluc3RhbGxDb21tYW5kKHRydWUpO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgZ2V0IGluc3RhbGxBbmRVcGRhdGVMb2NrZmlsZUNvbW1hbmQoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVuZGVySW5zdGFsbENvbW1hbmQoZmFsc2UpO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlbmRlclVwZ3JhZGVQYWNrYWdlc0NvbW1hbmQoZXhjbHVkZTogc3RyaW5nW10sIGluY2x1ZGU/OiBzdHJpbmdbXSk6IHN0cmluZyB7XG5cbiAgICBjb25zdCBwcm9qZWN0ID0gdGhpcy5wcm9qZWN0O1xuICAgIGZ1bmN0aW9uIHVwZ3JhZGVQYWNrYWdlcyhjb21tYW5kOiBzdHJpbmcpIHtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGlmIChleGNsdWRlLmxlbmd0aCA9PT0gMCAmJiAhaW5jbHVkZSkge1xuICAgICAgICAgIC8vIHJlcXVlc3QgdG8gdXBncmFkZSBhbGwgcGFja2FnZXNcbiAgICAgICAgICAvLyBzZXBhcmF0ZWQgZm9yIGFzdGhldGljIHJlYXNvbnMuXG4gICAgICAgICAgcmV0dXJuIGNvbW1hbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBmaWx0ZXIgYnkgZXhjbHVkZSBhbmQgaW5jbHVkZS5cbiAgICAgICAgcmV0dXJuIGAke2NvbW1hbmR9ICR7cHJvamVjdC5kZXBzLmFsbFxuICAgICAgICAgIC5tYXAoZCA9PiBkLm5hbWUpXG4gICAgICAgICAgLmZpbHRlcihkID0+IGluY2x1ZGUgPyBpbmNsdWRlLmluY2x1ZGVzKGQpIDogdHJ1ZSlcbiAgICAgICAgICAuZmlsdGVyKGQgPT4gIWV4Y2x1ZGUuaW5jbHVkZXMoZCkpXG4gICAgICAgICAgLmpvaW4oJyAnKX1gO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBsZXQgbGF6eSA9IHVuZGVmaW5lZDtcbiAgICBzd2l0Y2ggKHRoaXMucGFja2FnZU1hbmFnZXIpIHtcbiAgICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLllBUk46XG4gICAgICAgIGxhenkgPSB1cGdyYWRlUGFja2FnZXMoJ3lhcm4gdXBncmFkZScpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLk5QTTpcbiAgICAgICAgbGF6eSA9IHVwZ3JhZGVQYWNrYWdlcygnbnBtIHVwZGF0ZScpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE06XG4gICAgICAgIGxhenkgPSB1cGdyYWRlUGFja2FnZXMoJ3BucG0gdXBkYXRlJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIHBhY2thZ2UgbWFuYWdlciAke3RoaXMucGFja2FnZU1hbmFnZXJ9YCk7XG4gICAgfVxuXG4gICAgLy8gcmV0dXJuIGEgbGF6eSBmdW5jdGlvbiBzbyB0aGF0IGRlcGVuZGVuY2llcyBpbmNsdWRlIG9uZXMgdGhhdCB3ZXJlXG4gICAgLy8gYWRkZWQgcG9zdCBwcm9qZWN0IGluc3RhbnRpYXRpb24gKGkuZSB1c2luZyBwcm9qZWN0LmFkZERlcHMpXG4gICAgcmV0dXJuIGxhenkgYXMgdW5rbm93biBhcyBzdHJpbmc7XG5cbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHB1YmxpYyBwcmVTeW50aGVzaXplKCkge1xuICAgIHN1cGVyLnByZVN5bnRoZXNpemUoKTtcbiAgICB0aGlzLl9yZW5kZXJlZERlcHMgPSB0aGlzLnJlbmRlckRlcGVuZGVuY2llcygpO1xuICB9XG5cbiAgcHVibGljIHBvc3RTeW50aGVzaXplKCkge1xuICAgIHN1cGVyLnBvc3RTeW50aGVzaXplKCk7XG5cbiAgICBjb25zdCBvdXRkaXIgPSB0aGlzLnByb2plY3Qub3V0ZGlyO1xuXG4gICAgZXhlYyh0aGlzLnJlbmRlckluc3RhbGxDb21tYW5kKHRoaXMuaXNBdXRvbWF0ZWRCdWlsZCksIHsgY3dkOiBvdXRkaXIgfSk7XG5cbiAgICB0aGlzLnJlc29sdmVEZXBzQW5kV3JpdGVQYWNrYWdlSnNvbihvdXRkaXIpO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBnZXQgcHJvamVuQ29tbWFuZCgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9qZWN0LnByb2plbkNvbW1hbmQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBgdHJ1ZWAgaWYgd2UgYXJlIHJ1bm5pbmcgd2l0aGluIGEgQ0kgYnVpbGQuXG4gICAqL1xuICBwcml2YXRlIGdldCBpc0F1dG9tYXRlZEJ1aWxkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1RydXRoeShwcm9jZXNzLmVudi5DSSk7XG4gIH1cblxuICBwcml2YXRlIGRldGVybWluZVZlcnNpb24oY3VyclZlcnNpb24/OiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuaXNSZWxlYXNlQnVpbGQpIHtcbiAgICAgIHJldHVybiAnMC4wLjAnO1xuICAgIH1cblxuICAgIHJldHVybiBjdXJyVmVyc2lvbiA/PyAnMC4wLjAnO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYHRydWVgIGlmIHRoaXMgaXMgYSBDSSByZWxlYXNlIGJ1aWxkLlxuICAgKi9cbiAgcHJpdmF0ZSBnZXQgaXNSZWxlYXNlQnVpbGQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVHJ1dGh5KHByb2Nlc3MuZW52LlJFTEVBU0UpO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHByaXZhdGUgcGFyc2VOcG1PcHRpb25zKG9wdGlvbnM6IE5vZGVQYWNrYWdlT3B0aW9ucykge1xuICAgIGxldCBucG1SZWdpc3RyeVVybCA9IG9wdGlvbnMubnBtUmVnaXN0cnlVcmw7XG4gICAgaWYgKG9wdGlvbnMubnBtUmVnaXN0cnkpIHtcbiAgICAgIGlmIChucG1SZWdpc3RyeVVybCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Nhbm5vdCB1c2UgdGhlIGRlcHJlY2F0ZWQgXCJucG1SZWdpc3RyeVwiIHRvZ2V0aGVyIHdpdGggXCJucG1SZWdpc3RyeVVybFwiLiBwbGVhc2UgdXNlIFwibnBtUmVnaXN0cnlVcmxcIiBpbnN0ZWFkLicpO1xuICAgICAgfVxuXG4gICAgICBucG1SZWdpc3RyeVVybCA9IGBodHRwczovLyR7b3B0aW9ucy5ucG1SZWdpc3RyeX1gO1xuICAgIH1cblxuICAgIGNvbnN0IG5wbXIgPSB1cmxwYXJzZShucG1SZWdpc3RyeVVybCA/PyBERUZBVUxUX05QTV9SRUdJU1RSWV9VUkwpO1xuICAgIGlmICghbnBtciB8fCAhbnBtci5ob3N0bmFtZSB8fCAhbnBtci5ocmVmKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuYWJsZSB0byBkZXRlcm1pbmUgbnBtIHJlZ2lzdHJ5IGhvc3QgZnJvbSB1cmwgJHtucG1SZWdpc3RyeVVybH0uIElzIHRoaXMgcmVhbGx5IGEgVVJMP2ApO1xuICAgIH1cblxuICAgIGNvbnN0IG5wbUFjY2VzcyA9IG9wdGlvbnMubnBtQWNjZXNzID8/IGRlZmF1bHROcG1BY2Nlc3ModGhpcy5wYWNrYWdlTmFtZSk7XG4gICAgaWYgKCFpc1Njb3BlZCh0aGlzLnBhY2thZ2VOYW1lKSAmJiBucG1BY2Nlc3MgPT09IE5wbUFjY2Vzcy5SRVNUUklDVEVEKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFwibnBtQWNjZXNzXCIgY2Fubm90IGJlIFJFU1RSSUNURUQgZm9yIG5vbi1zY29wZWQgbnBtIHBhY2thZ2UgXCIke3RoaXMucGFja2FnZU5hbWV9XCJgKTtcbiAgICB9XG5cbiAgICBjb25zdCBpc0F3c0NvZGVBcnRpZmFjdCA9IGlzQXdzQ29kZUFydGlmYWN0UmVnaXN0cnkobnBtUmVnaXN0cnlVcmwpO1xuICAgIGlmIChpc0F3c0NvZGVBcnRpZmFjdCkge1xuICAgICAgaWYgKG9wdGlvbnMubnBtVG9rZW5TZWNyZXQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdcIm5wbVRva2VuU2VjcmV0XCIgbXVzdCBub3QgYmUgc3BlY2lmaWVkIHdoZW4gcHVibGlzaGluZyBBV1MgQ29kZUFydGlmYWN0LicpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAob3B0aW9ucy5jb2RlQXJ0aWZhY3RPcHRpb25zPy5hY2Nlc3NLZXlJZFNlY3JldCB8fFxuICAgICAgICBvcHRpb25zLmNvZGVBcnRpZmFjdE9wdGlvbnM/LnNlY3JldEFjY2Vzc0tleVNlY3JldCB8fFxuICAgICAgICBvcHRpb25zLmNvZGVBcnRpZmFjdE9wdGlvbnM/LnJvbGVUb0Fzc3VtZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NvZGVBcnRpZmFjdE9wdGlvbnMgbXVzdCBvbmx5IGJlIHNwZWNpZmllZCB3aGVuIHB1Ymxpc2hpbmcgQVdTIENvZGVBcnRpZmFjdC4nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBhcHBseSBkZWZhdWx0cyBmb3IgQVdTIENvZGVBcnRpZmFjdFxuICAgIGxldCBjb2RlQXJ0aWZhY3RPcHRpb25zOiBDb2RlQXJ0aWZhY3RPcHRpb25zIHzCoHVuZGVmaW5lZDtcbiAgICBpZiAoaXNBd3NDb2RlQXJ0aWZhY3QpIHtcbiAgICAgIGNvZGVBcnRpZmFjdE9wdGlvbnMgPSB7XG4gICAgICAgIGFjY2Vzc0tleUlkU2VjcmV0OiBvcHRpb25zLmNvZGVBcnRpZmFjdE9wdGlvbnM/LmFjY2Vzc0tleUlkU2VjcmV0ID8/ICdBV1NfQUNDRVNTX0tFWV9JRCcsXG4gICAgICAgIHNlY3JldEFjY2Vzc0tleVNlY3JldDogb3B0aW9ucy5jb2RlQXJ0aWZhY3RPcHRpb25zPy5zZWNyZXRBY2Nlc3NLZXlTZWNyZXQgPz8gJ0FXU19TRUNSRVRfQUNDRVNTX0tFWScsXG4gICAgICAgIHJvbGVUb0Fzc3VtZTogb3B0aW9ucy5jb2RlQXJ0aWZhY3RPcHRpb25zPy5yb2xlVG9Bc3N1bWUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBucG1BY2Nlc3MsXG4gICAgICBucG1SZWdpc3RyeTogbnBtci5ob3N0bmFtZSArIHRoaXMucmVuZGVyTnBtUmVnaXN0cnlQYXRoKG5wbXIucGF0aG5hbWUhKSxcbiAgICAgIG5wbVJlZ2lzdHJ5VXJsOiBucG1yLmhyZWYsXG4gICAgICBucG1Ub2tlblNlY3JldDogZGVmYXVsdE5wbVRva2VuKG9wdGlvbnMubnBtVG9rZW5TZWNyZXQsIG5wbXIuaG9zdG5hbWUpLFxuICAgICAgY29kZUFydGlmYWN0T3B0aW9ucyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhZGROb2RlRW5naW5lKCkge1xuICAgIGlmICghdGhpcy5taW5Ob2RlVmVyc2lvbiAmJiAhdGhpcy5tYXhOb2RlVmVyc2lvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBub2RlVmVyc2lvbiA9ICcnO1xuICAgIGlmICh0aGlzLm1pbk5vZGVWZXJzaW9uKSB7XG4gICAgICBub2RlVmVyc2lvbiArPSBgPj0gJHt0aGlzLm1pbk5vZGVWZXJzaW9ufWA7XG4gICAgfVxuICAgIGlmICh0aGlzLm1heE5vZGVWZXJzaW9uKSB7XG4gICAgICBub2RlVmVyc2lvbiArPSBgIDw9ICR7dGhpcy5tYXhOb2RlVmVyc2lvbn1gO1xuICAgIH1cbiAgICB0aGlzLmFkZEVuZ2luZSgnbm9kZScsIG5vZGVWZXJzaW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyTnBtUmVnaXN0cnlQYXRoKHBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gICAgaWYgKCFwYXRoIHx8IHBhdGggPT0gJy8nKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwYXRoO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVySW5zdGFsbENvbW1hbmQoZnJvemVuOiBib29sZWFuKSB7XG4gICAgc3dpdGNoICh0aGlzLnBhY2thZ2VNYW5hZ2VyKSB7XG4gICAgICBjYXNlIE5vZGVQYWNrYWdlTWFuYWdlci5ZQVJOOlxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICd5YXJuIGluc3RhbGwnLFxuICAgICAgICAgICctLWNoZWNrLWZpbGVzJywgLy8gZW5zdXJlIGFsbCBtb2R1bGVzIGV4aXN0IChlc3BlY2lhbGx5IHByb2plbiB3aGljaCB3YXMganVzdCByZW1vdmVkKS5cbiAgICAgICAgICAuLi5mcm96ZW4gPyBbJy0tZnJvemVuLWxvY2tmaWxlJ10gOiBbXSxcbiAgICAgICAgXS5qb2luKCcgJyk7XG5cbiAgICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLk5QTTpcbiAgICAgICAgcmV0dXJuIGZyb3plblxuICAgICAgICAgID8gJ25wbSBjaSdcbiAgICAgICAgICA6ICducG0gaW5zdGFsbCc7XG5cbiAgICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE06XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgJ3BucG0gaScsXG4gICAgICAgICAgLi4uZnJvemVuID8gWyctLWZyb3plbi1sb2NrZmlsZSddIDogW10sXG4gICAgICAgIF0uam9pbignICcpO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuZXhwZWN0ZWQgcGFja2FnZSBtYW5hZ2VyICR7dGhpcy5wYWNrYWdlTWFuYWdlcn1gKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NEZXBzKG9wdGlvbnM6IE5vZGVQYWNrYWdlT3B0aW9ucykge1xuICAgIHRoaXMuYWRkRGVwcyguLi5vcHRpb25zLmRlcHMgPz8gW10pO1xuICAgIHRoaXMuYWRkRGV2RGVwcyguLi5vcHRpb25zLmRldkRlcHMgPz8gW10pO1xuICAgIHRoaXMuYWRkUGVlckRlcHMoLi4ub3B0aW9ucy5wZWVyRGVwcyA/PyBbXSk7XG4gICAgdGhpcy5hZGRCdW5kbGVkRGVwcyguLi5vcHRpb25zLmJ1bmRsZWREZXBzID8/IFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyRGVwZW5kZW5jaWVzKCk6IE5wbURlcGVuZGVuY2llcyB7XG4gICAgY29uc3QgZGV2RGVwZW5kZW5jaWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgY29uc3QgcGVlckRlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgIGNvbnN0IGRlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgIGNvbnN0IGJ1bmRsZWREZXBlbmRlbmNpZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gICAgLy8gc3ludGhldGljIGRlcGVuZGVuY2llczogYWRkIGEgcGlubmVkIGJ1aWxkIGRlcGVuZGVuY3kgdG8gZW5zdXJlIHdlIGFyZVxuICAgIC8vIHRlc3RpbmcgYWdhaW5zdCB0aGUgbWluaW11bSByZXF1aXJlbWVudCBvZiB0aGUgcGVlci5cbiAgICBjb25zdCBwaW5uZWQgPSB0aGlzLnBlZXJEZXBlbmRlbmN5T3B0aW9ucy5waW5uZWREZXZEZXBlbmRlbmN5ID8/IHRydWU7XG4gICAgaWYgKHBpbm5lZCkge1xuICAgICAgZm9yIChjb25zdCBkZXAgb2YgdGhpcy5wcm9qZWN0LmRlcHMuYWxsLmZpbHRlcihkID0+IGQudHlwZSA9PT0gRGVwZW5kZW5jeVR5cGUuUEVFUikpIHtcbiAgICAgICAgbGV0IHJlcSA9IGRlcC5uYW1lO1xuXG4gICAgICAgIC8vIHNraXAgaWYgd2UgYWxyZWFkeSBoYXZlIGEgcnVudGltZSBkZXBlbmRlbmN5IG9uIHRoaXMgcGVlclxuICAgICAgICBpZiAodGhpcy5wcm9qZWN0LmRlcHMudHJ5R2V0RGVwZW5kZW5jeShkZXAubmFtZSwgRGVwZW5kZW5jeVR5cGUuUlVOVElNRSkpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkZXAudmVyc2lvbikge1xuICAgICAgICAgIGNvbnN0IHZlciA9IHNlbXZlci5taW5WZXJzaW9uKGRlcC52ZXJzaW9uKT8udmVyc2lvbjtcbiAgICAgICAgICBpZiAoIXZlcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmFibGUgdG8gZGV0ZXJtaW5lIG1pbmltdW0gc2VtdmVyIGZvciBwZWVyIGRlcGVuZGVuY3kgJHtkZXAubmFtZX1AJHtkZXAudmVyc2lvbn1gKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXEgKz0gJ0AnICsgdmVyO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYWRkRGV2RGVwcyhyZXEpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgZGVwIG9mIHRoaXMucHJvamVjdC5kZXBzLmFsbCkge1xuICAgICAgY29uc3QgdmVyc2lvbiA9IGRlcC52ZXJzaW9uID8/ICcqJztcblxuICAgICAgc3dpdGNoIChkZXAudHlwZSkge1xuICAgICAgICBjYXNlIERlcGVuZGVuY3lUeXBlLkJVTkRMRUQ6XG4gICAgICAgICAgYnVuZGxlZERlcGVuZGVuY2llcy5wdXNoKGRlcC5uYW1lKTtcblxuICAgICAgICAgIGlmICh0aGlzLnByb2plY3QuZGVwcy5hbGwuZmluZChkID0+IGQubmFtZSA9PT0gZGVwLm5hbWUgJiYgZC50eXBlID09PSBEZXBlbmRlbmN5VHlwZS5QRUVSKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmFibGUgdG8gYnVuZGxlIFwiJHtkZXAubmFtZX1cIi4gaXQgY2Fubm90IGFwcGVhciBhcyBhIHBlZXIgZGVwZW5kZW5jeWApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIGFsc28gYWRkIGFzIGEgcnVudGltZSBkZXBlbmRlbmN5XG4gICAgICAgICAgZGVwZW5kZW5jaWVzW2RlcC5uYW1lXSA9IHZlcnNpb247XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBEZXBlbmRlbmN5VHlwZS5QRUVSOlxuICAgICAgICAgIHBlZXJEZXBlbmRlbmNpZXNbZGVwLm5hbWVdID0gdmVyc2lvbjtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIERlcGVuZGVuY3lUeXBlLlJVTlRJTUU6XG4gICAgICAgICAgZGVwZW5kZW5jaWVzW2RlcC5uYW1lXSA9IHZlcnNpb247XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBEZXBlbmRlbmN5VHlwZS5URVNUOlxuICAgICAgICBjYXNlIERlcGVuZGVuY3lUeXBlLkRFVkVOVjpcbiAgICAgICAgY2FzZSBEZXBlbmRlbmN5VHlwZS5CVUlMRDpcbiAgICAgICAgICBkZXZEZXBlbmRlbmNpZXNbZGVwLm5hbWVdID0gdmVyc2lvbjtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB1cGRhdGUgdGhlIG1hbmlmZXN0IHdlIGFyZSBhYm91dCB0byBzYXZlIGludG8gYHBhY2thZ2UuanNvbmBcbiAgICB0aGlzLm1hbmlmZXN0LmRldkRlcGVuZGVuY2llcyA9IGRldkRlcGVuZGVuY2llcztcbiAgICB0aGlzLm1hbmlmZXN0LnBlZXJEZXBlbmRlbmNpZXMgPSBwZWVyRGVwZW5kZW5jaWVzO1xuICAgIHRoaXMubWFuaWZlc3QuZGVwZW5kZW5jaWVzID0gZGVwZW5kZW5jaWVzO1xuICAgIHRoaXMubWFuaWZlc3QuYnVuZGxlZERlcGVuZGVuY2llcyA9IGJ1bmRsZWREZXBlbmRlbmNpZXM7XG5cbiAgICAvLyBub3RoaW5nIGZ1cnRoZXIgdG8gZG8gaWYgcGFja2FnZS5qc29uIGZpbGUgZG9lcyBub3QgZXhpc3RcbiAgICBjb25zdCBwa2cgPSB0aGlzLnJlYWRQYWNrYWdlSnNvbigpO1xuICAgIGlmICghcGtnKSB7XG4gICAgICByZXR1cm4geyBkZXZEZXBlbmRlbmNpZXMsIHBlZXJEZXBlbmRlbmNpZXMsIGRlcGVuZGVuY2llcyB9O1xuICAgIH1cblxuICAgIGNvbnN0IHJlYWREZXBzID0gKHVzZXI6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sIGN1cnJlbnQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fSkgPT4ge1xuICAgICAgZm9yIChjb25zdCBbbmFtZSwgdXNlclZlcnNpb25dIG9mIE9iamVjdC5lbnRyaWVzKHVzZXIpKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRWZXJzaW9uID0gY3VycmVudFtuYW1lXTtcblxuICAgICAgICAvLyByZXNwZWN0IHVzZXIgdmVyc2lvbiBpZiBpdCdzIG5vdCAnKicgb3IgaWYgY3VycmVudCB2ZXJzaW9uIGlzIHVuZGVmaW5lZFxuICAgICAgICBpZiAodXNlclZlcnNpb24gIT09ICcqJyB8fCAhY3VycmVudFZlcnNpb24gfHwgY3VycmVudFZlcnNpb24gPT09ICcqJykge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gbWVtb2l6ZSBjdXJyZW50IHZlcnNpb24gaW4gbWVtb3J5IHNvIGl0IGlzIHByZXNlcnZlZCB3aGVuIHNhdmluZ1xuICAgICAgICB1c2VyW25hbWVdID0gY3VycmVudFZlcnNpb247XG4gICAgICB9XG5cbiAgICAgIC8vIHJlcG9ydCByZW1vdmFsc1xuICAgICAgZm9yIChjb25zdCBuYW1lIG9mIE9iamVjdC5rZXlzKGN1cnJlbnQgPz8ge30pKSB7XG4gICAgICAgIGlmICghdXNlcltuYW1lXSkge1xuICAgICAgICAgIHRoaXMucHJvamVjdC5sb2dnZXIudmVyYm9zZShgJHtuYW1lfTogcmVtb3ZlZGApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIHJlYWREZXBzKGRldkRlcGVuZGVuY2llcywgcGtnLmRldkRlcGVuZGVuY2llcyk7XG4gICAgcmVhZERlcHMoZGVwZW5kZW5jaWVzLCBwa2cuZGVwZW5kZW5jaWVzKTtcbiAgICByZWFkRGVwcyhwZWVyRGVwZW5kZW5jaWVzLCBwa2cucGVlckRlcGVuZGVuY2llcyk7XG5cbiAgICByZXR1cm4geyBkZXZEZXBlbmRlbmNpZXMsIGRlcGVuZGVuY2llcywgcGVlckRlcGVuZGVuY2llcyB9O1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlRGVwc0FuZFdyaXRlUGFja2FnZUpzb24ob3V0ZGlyOiBzdHJpbmcpIHtcbiAgICBjb25zdCByb290ID0gam9pbihvdXRkaXIsICdwYWNrYWdlLmpzb24nKTtcbiAgICBjb25zdCBwa2cgPSByZWFkSnNvblN5bmMocm9vdCk7XG5cbiAgICBjb25zdCByZXNvbHZlRGVwcyA9IChjdXJyZW50OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfSwgdXNlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPikgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgICBjdXJyZW50ID0gY3VycmVudCA/PyB7fTtcbiAgICAgIHVzZXIgPSB1c2VyID8/IHt9O1xuXG4gICAgICBmb3IgKGNvbnN0IFtuYW1lLCBjdXJyZW50RGVmaW5pdGlvbl0gb2YgT2JqZWN0LmVudHJpZXModXNlcikpIHtcbiAgICAgICAgLy8gZmluZCBhY3R1YWwgdmVyc2lvbiBmcm9tIG5vZGVfbW9kdWxlc1xuICAgICAgICBsZXQgZGVzaXJlZFZlcnNpb24gPSBjdXJyZW50RGVmaW5pdGlvbjtcblxuICAgICAgICBpZiAoY3VycmVudERlZmluaXRpb24gPT09ICcqJykge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBtb2R1bGVQYXRoID0gcmVxdWlyZS5yZXNvbHZlKGAke25hbWV9L3BhY2thZ2UuanNvbmAsIHsgcGF0aHM6IFtvdXRkaXJdIH0pO1xuICAgICAgICAgICAgY29uc3QgbW9kdWxlID0gcmVhZEpzb25TeW5jKG1vZHVsZVBhdGgpO1xuICAgICAgICAgICAgZGVzaXJlZFZlcnNpb24gPSBgXiR7bW9kdWxlLnZlcnNpb259YDtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7IH1cblxuICAgICAgICAgIGlmICghZGVzaXJlZFZlcnNpb24pIHtcbiAgICAgICAgICAgIHRoaXMucHJvamVjdC5sb2dnZXIud2FybihgdW5hYmxlIHRvIHJlc29sdmUgdmVyc2lvbiBmb3IgJHtuYW1lfSBmcm9tIGluc3RhbGxlZCBtb2R1bGVzYCk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY3VycmVudERlZmluaXRpb24gIT09IGRlc2lyZWRWZXJzaW9uKSB7XG4gICAgICAgICAgdGhpcy5wcm9qZWN0LmxvZ2dlci52ZXJib3NlKGAke25hbWV9OiAke2N1cnJlbnREZWZpbml0aW9ufSA9PiAke2Rlc2lyZWRWZXJzaW9ufWApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzdWx0W25hbWVdID0gZGVzaXJlZFZlcnNpb247XG4gICAgICB9XG5cbiAgICAgIC8vIHByaW50IHJlbW92ZWQgcGFja2FnZXNcbiAgICAgIGZvciAoY29uc3QgbmFtZSBvZiBPYmplY3Qua2V5cyhjdXJyZW50KSkge1xuICAgICAgICBpZiAoIXJlc3VsdFtuYW1lXSkge1xuICAgICAgICAgIHRoaXMucHJvamVjdC5sb2dnZXIudmVyYm9zZShgJHtuYW1lfSByZW1vdmVkYCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHNvcnRlZChyZXN1bHQpO1xuICAgIH07XG5cbiAgICBjb25zdCByZW5kZXJlZCA9IHRoaXMuX3JlbmRlcmVkRGVwcztcbiAgICBpZiAoIXJlbmRlcmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Fzc2VydGlvbiBmYWlsZWQnKTtcbiAgICB9XG4gICAgcGtnLmRlcGVuZGVuY2llcyA9IHJlc29sdmVEZXBzKHBrZy5kZXBlbmRlbmNpZXMsIHJlbmRlcmVkLmRlcGVuZGVuY2llcyk7XG4gICAgcGtnLmRldkRlcGVuZGVuY2llcyA9IHJlc29sdmVEZXBzKHBrZy5kZXZEZXBlbmRlbmNpZXMsIHJlbmRlcmVkLmRldkRlcGVuZGVuY2llcyk7XG4gICAgcGtnLnBlZXJEZXBlbmRlbmNpZXMgPSByZXNvbHZlRGVwcyhwa2cucGVlckRlcGVuZGVuY2llcywgcmVuZGVyZWQucGVlckRlcGVuZGVuY2llcyk7XG5cbiAgICB3cml0ZUZpbGUocm9vdCwgSlNPTi5zdHJpbmdpZnkocGtnLCB1bmRlZmluZWQsIDIpKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyUHVibGlzaENvbmZpZygpIHtcbiAgICAvLyBvbWl0IHZhbHVlcyBpZiB0aGV5IGFyZSB0aGUgc2FtZSBhcyB0aGUgbnBtIGRlZmF1bHRzXG4gICAgcmV0dXJuIHJlc29sdmVKc29uKHtcbiAgICAgIHJlZ2lzdHJ5OiB0aGlzLm5wbVJlZ2lzdHJ5VXJsICE9PSBERUZBVUxUX05QTV9SRUdJU1RSWV9VUkwgPyB0aGlzLm5wbVJlZ2lzdHJ5VXJsIDogdW5kZWZpbmVkLFxuICAgICAgYWNjZXNzOiB0aGlzLm5wbUFjY2VzcyAhPT0gZGVmYXVsdE5wbUFjY2Vzcyh0aGlzLnBhY2thZ2VOYW1lKSA/IHRoaXMubnBtQWNjZXNzIDogdW5kZWZpbmVkLFxuICAgIH0sIHsgb21pdEVtcHR5OiB0cnVlIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJLZXl3b3JkcygpIHtcbiAgICBjb25zdCBrd2RzID0gQXJyYXkuZnJvbSh0aGlzLmtleXdvcmRzKTtcbiAgICByZXR1cm4gc29ydGVkKGt3ZHMuc29ydCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyRW5naW5lcygpIHtcbiAgICByZXR1cm4gc29ydGVkKHRoaXMuZW5naW5lcyk7XG4gIH1cblxuICBwcml2YXRlIGF1dG9EaXNjb3ZlckJpbmFyaWVzKCkge1xuICAgIGNvbnN0IGJpbnJlbCA9ICdiaW4nO1xuICAgIGNvbnN0IGJpbmRpciA9IGpvaW4odGhpcy5wcm9qZWN0Lm91dGRpciwgYmlucmVsKTtcbiAgICBpZiAoZXhpc3RzU3luYyhiaW5kaXIpKSB7XG4gICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgcmVhZGRpclN5bmMoYmluZGlyKSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGFjY2Vzc1N5bmMoam9pbihiaW5kaXIsIGZpbGUpLCBjb25zdGFudHMuWF9PSyk7XG4gICAgICAgICAgdGhpcy5iaW5bZmlsZV0gPSBqb2luKGJpbnJlbCwgZmlsZSkucmVwbGFjZSgvXFxcXC9nLCAnLycpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgLy8gbm90IGV4ZWN1dGFibGUsIHNraXBcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQXV0aG9yKG9wdGlvbnM6IE5vZGVQYWNrYWdlT3B0aW9ucykge1xuICAgIGxldCBhdXRob3I7XG4gICAgaWYgKG9wdGlvbnMuYXV0aG9yTmFtZSkge1xuICAgICAgYXV0aG9yID0ge1xuICAgICAgICBuYW1lOiBvcHRpb25zLmF1dGhvck5hbWUsXG4gICAgICAgIGVtYWlsOiBvcHRpb25zLmF1dGhvckVtYWlsLFxuICAgICAgICB1cmw6IG9wdGlvbnMuYXV0aG9yVXJsLFxuICAgICAgICBvcmdhbml6YXRpb246IG9wdGlvbnMuYXV0aG9yT3JnYW5pemF0aW9uID8/IGZhbHNlLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKG9wdGlvbnMuYXV0aG9yRW1haWwgfHwgb3B0aW9ucy5hdXRob3JVcmwgfHwgb3B0aW9ucy5hdXRob3JPcmdhbml6YXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1wiYXV0aG9yTmFtZVwiIGlzIHJlcXVpcmVkIGlmIHNwZWNpZnlpbmcgXCJhdXRob3JFbWFpbFwiIG9yIFwiYXV0aG9yVXJsXCInKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGF1dGhvcjtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQmluKCkge1xuICAgIHJldHVybiBzb3J0ZWQodGhpcy5iaW4pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJTY3JpcHRzKCkge1xuICAgIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG4gICAgZm9yIChjb25zdCB0YXNrIG9mIHRoaXMucHJvamVjdC50YXNrcy5hbGwuc29ydCgoeCwgeSkgPT4geC5uYW1lLmxvY2FsZUNvbXBhcmUoeS5uYW1lKSkpIHtcbiAgICAgIHJlc3VsdFt0YXNrLm5hbWVdID0gdGhpcy5ucG1TY3JpcHRGb3JUYXNrKHRhc2spO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuXG4gIHByaXZhdGUgbnBtU2NyaXB0Rm9yVGFzayh0YXNrOiBUYXNrKSB7XG4gICAgcmV0dXJuIGAke3RoaXMucHJvamVuQ29tbWFuZH0gJHt0YXNrLm5hbWV9YDtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZFBhY2thZ2VKc29uKCkge1xuICAgIGNvbnN0IGZpbGUgPSBqb2luKHRoaXMucHJvamVjdC5vdXRkaXIsICdwYWNrYWdlLmpzb24nKTtcbiAgICBpZiAoIWV4aXN0c1N5bmMoZmlsZSkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlYWRKc29uU3luYyhmaWxlKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBlZXJEZXBlbmRlbmN5T3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcGlubmVkRGV2RGVwZW5kZW5jeT86IGJvb2xlYW47XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBlbnVtIE5vZGVQYWNrYWdlTWFuYWdlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgWUFSTiA9ICd5YXJuJyxcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgTlBNID0gJ25wbScsXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBQTlBNID0gJ3BucG0nXG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgZW51bSBOcG1BY2Nlc3Mge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgUFVCTElDID0gJ3B1YmxpYycsXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBSRVNUUklDVEVEID0gJ3Jlc3RyaWN0ZWQnXG59XG5cbmludGVyZmFjZSBOcG1EZXBlbmRlbmNpZXMge1xuICByZWFkb25seSBkZXBlbmRlbmNpZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHJlYWRvbmx5IGRldkRlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgcmVhZG9ubHkgcGVlckRlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIGFuIG5wbSBwYWNrYWdlIGlzIFwic2NvcGVkXCIgKGkuZS4gaXQgc3RhcnRzIHdpdGggXCJ4eHhAXCIpLlxuICovXG5mdW5jdGlvbiBpc1Njb3BlZChwYWNrYWdlTmFtZTogc3RyaW5nKSB7XG4gIHJldHVybiBwYWNrYWdlTmFtZS5pbmNsdWRlcygnQCcpO1xufVxuXG5mdW5jdGlvbiBkZWZhdWx0TnBtQWNjZXNzKHBhY2thZ2VOYW1lOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGlzU2NvcGVkKHBhY2thZ2VOYW1lKSA/IE5wbUFjY2Vzcy5SRVNUUklDVEVEIDogTnBtQWNjZXNzLlBVQkxJQztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHROcG1Ub2tlbihucG1Ub2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkLCByZWdpc3RyeTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gIC8vIGlmIHdlIGFyZSBwdWJsaXNoaW5nIHRvIEFXUyBDZG9kZUFydGlmYWN0LCBubyBOUE1fVE9LRU4gdXNlZCAod2lsbCBiZSByZXF1ZXN0ZWQgdXNpbmcgQVdTIENMSSBsYXRlcikuXG4gIGlmIChpc0F3c0NvZGVBcnRpZmFjdFJlZ2lzdHJ5KHJlZ2lzdHJ5KSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBpZiB3ZSBhcmUgcHVibGlzaGluZyB0byBHaXRIdWIgUGFja2FnZXMsIGRlZmF1bHQgdG8gR0lUSFVCX1RPS0VOLlxuICBjb25zdCBpc0dpdEh1YlBhY2thZ2VzID0gcmVnaXN0cnkgPT09IEdJVEhVQl9QQUNLQUdFU19SRUdJU1RSWTtcbiAgcmV0dXJuIG5wbVRva2VuID8/IChpc0dpdEh1YlBhY2thZ2VzID8gREVGQVVMVF9HSVRIVUJfVE9LRU5fU0VDUkVUIDogREVGQVVMVF9OUE1fVE9LRU5fU0VDUkVUKTtcbn1cblxuZnVuY3Rpb24gZGV0ZXJtaW5lTG9ja2ZpbGUocGFja2FnZU1hbmFnZXI6IE5vZGVQYWNrYWdlTWFuYWdlcikge1xuICBpZiAocGFja2FnZU1hbmFnZXIgPT09IE5vZGVQYWNrYWdlTWFuYWdlci5ZQVJOKSB7XG4gICAgcmV0dXJuICd5YXJuLmxvY2snO1xuICB9IGVsc2UgaWYgKHBhY2thZ2VNYW5hZ2VyID09PSBOb2RlUGFja2FnZU1hbmFnZXIuTlBNKSB7XG4gICAgcmV0dXJuICdwYWNrYWdlLWxvY2suanNvbic7XG4gIH0gZWxzZSBpZiAocGFja2FnZU1hbmFnZXIgPT09IE5vZGVQYWNrYWdlTWFuYWdlci5QTlBNKSB7XG4gICAgcmV0dXJuICdwbnBtLWxvY2sueWFtbCc7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYHVuc3VwcG9ydGVkIHBhY2thZ2UgbWFuYWdlciAke3BhY2thZ2VNYW5hZ2VyfWApO1xufSJdfQ==