@oneblink/release-cli 1.2.0-beta.2 → 1.2.0-beta.3

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 (429) hide show
  1. package/node_modules/@yarnpkg/lockfile/README.md +22 -0
  2. package/node_modules/@yarnpkg/lockfile/index.js +10273 -0
  3. package/node_modules/@yarnpkg/lockfile/package.json +19 -0
  4. package/node_modules/ansi-styles/index.js +165 -0
  5. package/node_modules/ansi-styles/license +9 -0
  6. package/node_modules/ansi-styles/package.json +60 -0
  7. package/node_modules/ansi-styles/readme.md +147 -0
  8. package/node_modules/balanced-match/.github/FUNDING.yml +2 -0
  9. package/node_modules/balanced-match/LICENSE.md +21 -0
  10. package/node_modules/balanced-match/README.md +97 -0
  11. package/node_modules/balanced-match/index.js +62 -0
  12. package/node_modules/balanced-match/package.json +52 -0
  13. package/node_modules/brace-expansion/LICENSE +21 -0
  14. package/node_modules/brace-expansion/README.md +129 -0
  15. package/node_modules/brace-expansion/index.js +201 -0
  16. package/node_modules/brace-expansion/package.json +51 -0
  17. package/node_modules/braces/CHANGELOG.md +184 -0
  18. package/node_modules/braces/LICENSE +21 -0
  19. package/node_modules/braces/README.md +593 -0
  20. package/node_modules/braces/index.js +170 -0
  21. package/node_modules/braces/lib/compile.js +57 -0
  22. package/node_modules/braces/lib/constants.js +57 -0
  23. package/node_modules/braces/lib/expand.js +113 -0
  24. package/node_modules/braces/lib/parse.js +333 -0
  25. package/node_modules/braces/lib/stringify.js +32 -0
  26. package/node_modules/braces/lib/utils.js +112 -0
  27. package/node_modules/braces/package.json +81 -0
  28. package/node_modules/chalk/index.js +228 -0
  29. package/node_modules/chalk/index.js.flow +93 -0
  30. package/node_modules/chalk/license +9 -0
  31. package/node_modules/chalk/package.json +75 -0
  32. package/node_modules/chalk/readme.md +314 -0
  33. package/node_modules/chalk/templates.js +128 -0
  34. package/node_modules/chalk/types/index.d.ts +97 -0
  35. package/node_modules/changelog-parser/.DS_Store +0 -0
  36. package/node_modules/changelog-parser/.travis.yml +7 -0
  37. package/node_modules/changelog-parser/CHANGELOG.md +128 -0
  38. package/node_modules/changelog-parser/CONTRIBUTING.md +55 -0
  39. package/node_modules/changelog-parser/LICENSE.md +15 -0
  40. package/node_modules/changelog-parser/README.md +247 -0
  41. package/node_modules/changelog-parser/bin/cli.js +19 -0
  42. package/node_modules/changelog-parser/index.js +201 -0
  43. package/node_modules/changelog-parser/package.json +54 -0
  44. package/node_modules/changelog-parser/test/fixtures/CHANGELOG.md +44 -0
  45. package/node_modules/changelog-parser/test/fixtures/expected.js +113 -0
  46. package/node_modules/changelog-parser/test/fixtures/remove-markdown-expected.js +113 -0
  47. package/node_modules/changelog-parser/test/index.js +105 -0
  48. package/node_modules/ci-info/CHANGELOG.md +78 -0
  49. package/node_modules/ci-info/LICENSE +21 -0
  50. package/node_modules/ci-info/README.md +108 -0
  51. package/node_modules/ci-info/index.js +66 -0
  52. package/node_modules/ci-info/package.json +40 -0
  53. package/node_modules/ci-info/vendors.json +153 -0
  54. package/node_modules/color-convert/CHANGELOG.md +54 -0
  55. package/node_modules/color-convert/LICENSE +21 -0
  56. package/node_modules/color-convert/README.md +68 -0
  57. package/node_modules/color-convert/conversions.js +868 -0
  58. package/node_modules/color-convert/index.js +78 -0
  59. package/node_modules/color-convert/package.json +50 -0
  60. package/node_modules/color-convert/route.js +97 -0
  61. package/node_modules/color-name/.eslintrc.json +43 -0
  62. package/node_modules/color-name/.npmignore +107 -0
  63. package/node_modules/color-name/LICENSE +8 -0
  64. package/node_modules/color-name/README.md +11 -0
  65. package/node_modules/color-name/index.js +152 -0
  66. package/node_modules/color-name/package.json +29 -0
  67. package/node_modules/color-name/test.js +7 -0
  68. package/node_modules/concat-map/.travis.yml +4 -0
  69. package/node_modules/concat-map/LICENSE +18 -0
  70. package/node_modules/concat-map/README.markdown +62 -0
  71. package/node_modules/concat-map/example/map.js +6 -0
  72. package/node_modules/concat-map/index.js +13 -0
  73. package/node_modules/concat-map/package.json +47 -0
  74. package/node_modules/concat-map/test/map.js +39 -0
  75. package/node_modules/escape-string-regexp/index.js +11 -0
  76. package/node_modules/escape-string-regexp/license +21 -0
  77. package/node_modules/escape-string-regexp/package.json +45 -0
  78. package/node_modules/escape-string-regexp/readme.md +27 -0
  79. package/node_modules/fill-range/LICENSE +21 -0
  80. package/node_modules/fill-range/README.md +237 -0
  81. package/node_modules/fill-range/index.js +249 -0
  82. package/node_modules/fill-range/package.json +73 -0
  83. package/node_modules/find-yarn-workspace-root/CHANGELOG.md +53 -0
  84. package/node_modules/find-yarn-workspace-root/LICENSE +201 -0
  85. package/node_modules/find-yarn-workspace-root/README.md +56 -0
  86. package/node_modules/find-yarn-workspace-root/index.d.ts +3 -0
  87. package/node_modules/find-yarn-workspace-root/index.js +53 -0
  88. package/node_modules/find-yarn-workspace-root/package.json +38 -0
  89. package/node_modules/fs-extra/CHANGELOG.md +842 -0
  90. package/node_modules/fs-extra/LICENSE +15 -0
  91. package/node_modules/fs-extra/README.md +261 -0
  92. package/node_modules/fs-extra/lib/copy/copy.js +246 -0
  93. package/node_modules/fs-extra/lib/copy/index.js +6 -0
  94. package/node_modules/fs-extra/lib/copy-sync/copy-sync.js +193 -0
  95. package/node_modules/fs-extra/lib/copy-sync/index.js +5 -0
  96. package/node_modules/fs-extra/lib/empty/index.js +48 -0
  97. package/node_modules/fs-extra/lib/ensure/file.js +49 -0
  98. package/node_modules/fs-extra/lib/ensure/index.js +23 -0
  99. package/node_modules/fs-extra/lib/ensure/link.js +61 -0
  100. package/node_modules/fs-extra/lib/ensure/symlink-paths.js +99 -0
  101. package/node_modules/fs-extra/lib/ensure/symlink-type.js +31 -0
  102. package/node_modules/fs-extra/lib/ensure/symlink.js +63 -0
  103. package/node_modules/fs-extra/lib/fs/index.js +104 -0
  104. package/node_modules/fs-extra/lib/index.js +28 -0
  105. package/node_modules/fs-extra/lib/json/index.js +16 -0
  106. package/node_modules/fs-extra/lib/json/jsonfile.js +12 -0
  107. package/node_modules/fs-extra/lib/json/output-json-sync.js +18 -0
  108. package/node_modules/fs-extra/lib/json/output-json.js +27 -0
  109. package/node_modules/fs-extra/lib/mkdirs/index.js +14 -0
  110. package/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js +54 -0
  111. package/node_modules/fs-extra/lib/mkdirs/mkdirs.js +63 -0
  112. package/node_modules/fs-extra/lib/mkdirs/win32.js +25 -0
  113. package/node_modules/fs-extra/lib/move/index.js +82 -0
  114. package/node_modules/fs-extra/lib/move-sync/index.js +117 -0
  115. package/node_modules/fs-extra/lib/output/index.js +40 -0
  116. package/node_modules/fs-extra/lib/path-exists/index.js +12 -0
  117. package/node_modules/fs-extra/lib/remove/index.js +9 -0
  118. package/node_modules/fs-extra/lib/remove/rimraf.js +314 -0
  119. package/node_modules/fs-extra/lib/util/buffer.js +12 -0
  120. package/node_modules/fs-extra/lib/util/utimes.js +79 -0
  121. package/node_modules/fs-extra/package.json +72 -0
  122. package/node_modules/fs.realpath/LICENSE +43 -0
  123. package/node_modules/fs.realpath/README.md +33 -0
  124. package/node_modules/fs.realpath/index.js +66 -0
  125. package/node_modules/fs.realpath/old.js +303 -0
  126. package/node_modules/fs.realpath/package.json +30 -0
  127. package/node_modules/glob/LICENSE +21 -0
  128. package/node_modules/glob/README.md +375 -0
  129. package/node_modules/glob/changelog.md +67 -0
  130. package/node_modules/glob/common.js +240 -0
  131. package/node_modules/glob/glob.js +790 -0
  132. package/node_modules/glob/package.json +50 -0
  133. package/node_modules/glob/sync.js +486 -0
  134. package/node_modules/graceful-fs/LICENSE +15 -0
  135. package/node_modules/graceful-fs/README.md +133 -0
  136. package/node_modules/graceful-fs/clone.js +23 -0
  137. package/node_modules/graceful-fs/graceful-fs.js +373 -0
  138. package/node_modules/graceful-fs/legacy-streams.js +118 -0
  139. package/node_modules/graceful-fs/package.json +54 -0
  140. package/node_modules/graceful-fs/polyfills.js +346 -0
  141. package/node_modules/has-flag/index.js +8 -0
  142. package/node_modules/has-flag/license +9 -0
  143. package/node_modules/has-flag/package.json +48 -0
  144. package/node_modules/has-flag/readme.md +70 -0
  145. package/node_modules/inflight/LICENSE +15 -0
  146. package/node_modules/inflight/README.md +37 -0
  147. package/node_modules/inflight/inflight.js +54 -0
  148. package/node_modules/inflight/package.json +33 -0
  149. package/node_modules/inherits/LICENSE +16 -0
  150. package/node_modules/inherits/README.md +42 -0
  151. package/node_modules/inherits/inherits.js +9 -0
  152. package/node_modules/inherits/inherits_browser.js +27 -0
  153. package/node_modules/inherits/package.json +33 -0
  154. package/node_modules/is-ci/CHANGELOG.md +14 -0
  155. package/node_modules/is-ci/LICENSE +21 -0
  156. package/node_modules/is-ci/README.md +50 -0
  157. package/node_modules/is-ci/bin.js +4 -0
  158. package/node_modules/is-ci/index.js +3 -0
  159. package/node_modules/is-ci/package.json +42 -0
  160. package/node_modules/is-docker/cli.js +5 -0
  161. package/node_modules/is-docker/index.d.ts +15 -0
  162. package/node_modules/is-docker/index.js +29 -0
  163. package/node_modules/is-docker/license +9 -0
  164. package/node_modules/is-docker/package.json +46 -0
  165. package/node_modules/is-docker/readme.md +27 -0
  166. package/node_modules/is-number/LICENSE +21 -0
  167. package/node_modules/is-number/README.md +187 -0
  168. package/node_modules/is-number/index.js +18 -0
  169. package/node_modules/is-number/package.json +86 -0
  170. package/node_modules/is-wsl/index.d.ts +15 -0
  171. package/node_modules/is-wsl/index.js +31 -0
  172. package/node_modules/is-wsl/license +9 -0
  173. package/node_modules/is-wsl/package.json +49 -0
  174. package/node_modules/is-wsl/readme.md +36 -0
  175. package/node_modules/isexe/.npmignore +2 -0
  176. package/node_modules/isexe/LICENSE +15 -0
  177. package/node_modules/isexe/README.md +51 -0
  178. package/node_modules/isexe/index.js +57 -0
  179. package/node_modules/isexe/mode.js +41 -0
  180. package/node_modules/isexe/package.json +35 -0
  181. package/node_modules/isexe/test/basic.js +221 -0
  182. package/node_modules/isexe/windows.js +42 -0
  183. package/node_modules/jsonfile/CHANGELOG.md +145 -0
  184. package/node_modules/jsonfile/LICENSE +15 -0
  185. package/node_modules/jsonfile/README.md +168 -0
  186. package/node_modules/jsonfile/index.js +134 -0
  187. package/node_modules/jsonfile/package.json +41 -0
  188. package/node_modules/klaw-sync/CHANGELOG.md +73 -0
  189. package/node_modules/klaw-sync/LICENSE +20 -0
  190. package/node_modules/klaw-sync/README.md +164 -0
  191. package/node_modules/klaw-sync/klaw-sync.js +29 -0
  192. package/node_modules/klaw-sync/package.json +51 -0
  193. package/node_modules/line-reader/LICENSE +20 -0
  194. package/node_modules/line-reader/README.md +75 -0
  195. package/node_modules/line-reader/lib/line_reader.js +174 -0
  196. package/node_modules/line-reader/package.json +18 -0
  197. package/node_modules/line-reader/test/data/empty_file.txt +0 -0
  198. package/node_modules/line-reader/test/data/multi_separator_file.txt +2 -0
  199. package/node_modules/line-reader/test/data/multibyte_file.txt +2 -0
  200. package/node_modules/line-reader/test/data/normal_file.txt +6 -0
  201. package/node_modules/line-reader/test/data/one_line_file.txt +1 -0
  202. package/node_modules/line-reader/test/data/separator_file.txt +2 -0
  203. package/node_modules/line-reader/test/data/three_line_file.txt +3 -0
  204. package/node_modules/line-reader/test/line_reader.js +222 -0
  205. package/node_modules/lru-cache/LICENSE +15 -0
  206. package/node_modules/lru-cache/README.md +166 -0
  207. package/node_modules/lru-cache/index.js +334 -0
  208. package/node_modules/lru-cache/package.json +38 -0
  209. package/node_modules/micromatch/CHANGELOG.md +109 -0
  210. package/node_modules/micromatch/LICENSE +21 -0
  211. package/node_modules/micromatch/README.md +1008 -0
  212. package/node_modules/micromatch/index.js +467 -0
  213. package/node_modules/micromatch/package.json +123 -0
  214. package/node_modules/minimatch/LICENSE +15 -0
  215. package/node_modules/minimatch/README.md +209 -0
  216. package/node_modules/minimatch/minimatch.js +923 -0
  217. package/node_modules/minimatch/package.json +34 -0
  218. package/node_modules/minimist/.travis.yml +8 -0
  219. package/node_modules/minimist/LICENSE +18 -0
  220. package/node_modules/minimist/example/parse.js +2 -0
  221. package/node_modules/minimist/index.js +245 -0
  222. package/node_modules/minimist/package.json +49 -0
  223. package/node_modules/minimist/readme.markdown +95 -0
  224. package/node_modules/minimist/test/all_bool.js +32 -0
  225. package/node_modules/minimist/test/bool.js +178 -0
  226. package/node_modules/minimist/test/dash.js +31 -0
  227. package/node_modules/minimist/test/default_bool.js +35 -0
  228. package/node_modules/minimist/test/dotted.js +22 -0
  229. package/node_modules/minimist/test/kv_short.js +16 -0
  230. package/node_modules/minimist/test/long.js +31 -0
  231. package/node_modules/minimist/test/num.js +36 -0
  232. package/node_modules/minimist/test/parse.js +197 -0
  233. package/node_modules/minimist/test/parse_modified.js +9 -0
  234. package/node_modules/minimist/test/proto.js +44 -0
  235. package/node_modules/minimist/test/short.js +67 -0
  236. package/node_modules/minimist/test/stop_early.js +15 -0
  237. package/node_modules/minimist/test/unknown.js +102 -0
  238. package/node_modules/minimist/test/whitespace.js +8 -0
  239. package/node_modules/nice-try/CHANGELOG.md +21 -0
  240. package/node_modules/nice-try/LICENSE +21 -0
  241. package/node_modules/nice-try/README.md +32 -0
  242. package/node_modules/nice-try/package.json +37 -0
  243. package/node_modules/nice-try/src/index.js +12 -0
  244. package/node_modules/once/LICENSE +15 -0
  245. package/node_modules/once/README.md +79 -0
  246. package/node_modules/once/once.js +42 -0
  247. package/node_modules/once/package.json +37 -0
  248. package/node_modules/open/index.d.ts +88 -0
  249. package/node_modules/open/index.js +195 -0
  250. package/node_modules/open/license +9 -0
  251. package/node_modules/open/package.json +64 -0
  252. package/node_modules/open/readme.md +154 -0
  253. package/node_modules/open/xdg-open +1066 -0
  254. package/node_modules/os-tmpdir/index.js +25 -0
  255. package/node_modules/os-tmpdir/license +21 -0
  256. package/node_modules/os-tmpdir/package.json +45 -0
  257. package/node_modules/os-tmpdir/readme.md +32 -0
  258. package/node_modules/patch-package/CHANGELOG.md +389 -0
  259. package/node_modules/patch-package/LICENSE +19 -0
  260. package/node_modules/patch-package/README.md +269 -0
  261. package/node_modules/patch-package/dist/PackageDetails.js +102 -0
  262. package/node_modules/patch-package/dist/PackageDetails.test.js +228 -0
  263. package/node_modules/patch-package/dist/applyPatches.js +261 -0
  264. package/node_modules/patch-package/dist/assertNever.js +8 -0
  265. package/node_modules/patch-package/dist/createIssue.js +83 -0
  266. package/node_modules/patch-package/dist/detectPackageManager.js +64 -0
  267. package/node_modules/patch-package/dist/filterFiles.js +17 -0
  268. package/node_modules/patch-package/dist/getAppRootPath.js +22 -0
  269. package/node_modules/patch-package/dist/getPackageResolution.js +85 -0
  270. package/node_modules/patch-package/dist/getPackageVersion.js +9 -0
  271. package/node_modules/patch-package/dist/index.js +161 -0
  272. package/node_modules/patch-package/dist/makePatch.js +231 -0
  273. package/node_modules/patch-package/dist/makeRegExp.js +28 -0
  274. package/node_modules/patch-package/dist/packageIsDevDependency.js +15 -0
  275. package/node_modules/patch-package/dist/packageIsDevDependency.test.js +32 -0
  276. package/node_modules/patch-package/dist/patch/apply.js +197 -0
  277. package/node_modules/patch-package/dist/patch/parse.js +330 -0
  278. package/node_modules/patch-package/dist/patch/read.js +49 -0
  279. package/node_modules/patch-package/dist/patch/reverse.js +96 -0
  280. package/node_modules/patch-package/dist/patchFs.js +20 -0
  281. package/node_modules/patch-package/dist/path.js +17 -0
  282. package/node_modules/patch-package/dist/resolveRelativeFileDependencies.js +21 -0
  283. package/node_modules/patch-package/dist/resolveRelativeFileDependencies.test.js +22 -0
  284. package/node_modules/patch-package/dist/spawnSafe.js +28 -0
  285. package/node_modules/patch-package/index.js +3 -0
  286. package/node_modules/patch-package/node_modules/cross-spawn/CHANGELOG.md +100 -0
  287. package/node_modules/patch-package/node_modules/cross-spawn/LICENSE +21 -0
  288. package/node_modules/patch-package/node_modules/cross-spawn/README.md +94 -0
  289. package/node_modules/patch-package/node_modules/cross-spawn/index.js +39 -0
  290. package/node_modules/patch-package/node_modules/cross-spawn/lib/enoent.js +59 -0
  291. package/node_modules/patch-package/node_modules/cross-spawn/lib/parse.js +125 -0
  292. package/node_modules/patch-package/node_modules/cross-spawn/lib/util/escape.js +45 -0
  293. package/node_modules/patch-package/node_modules/cross-spawn/lib/util/readShebang.js +32 -0
  294. package/node_modules/patch-package/node_modules/cross-spawn/lib/util/resolveCommand.js +47 -0
  295. package/node_modules/patch-package/node_modules/cross-spawn/package.json +80 -0
  296. package/node_modules/patch-package/node_modules/path-key/index.js +13 -0
  297. package/node_modules/patch-package/node_modules/path-key/license +21 -0
  298. package/node_modules/patch-package/node_modules/path-key/package.json +43 -0
  299. package/node_modules/patch-package/node_modules/path-key/readme.md +51 -0
  300. package/node_modules/patch-package/node_modules/rimraf/LICENSE +15 -0
  301. package/node_modules/patch-package/node_modules/rimraf/README.md +101 -0
  302. package/node_modules/patch-package/node_modules/rimraf/bin.js +50 -0
  303. package/node_modules/patch-package/node_modules/rimraf/package.json +33 -0
  304. package/node_modules/patch-package/node_modules/rimraf/rimraf.js +372 -0
  305. package/node_modules/patch-package/node_modules/semver/CHANGELOG.md +39 -0
  306. package/node_modules/patch-package/node_modules/semver/LICENSE +15 -0
  307. package/node_modules/patch-package/node_modules/semver/README.md +412 -0
  308. package/node_modules/patch-package/node_modules/semver/bin/semver +160 -0
  309. package/node_modules/patch-package/node_modules/semver/package.json +32 -0
  310. package/node_modules/patch-package/node_modules/semver/range.bnf +16 -0
  311. package/node_modules/patch-package/node_modules/semver/semver.js +1483 -0
  312. package/node_modules/patch-package/node_modules/shebang-command/index.js +19 -0
  313. package/node_modules/patch-package/node_modules/shebang-command/license +21 -0
  314. package/node_modules/patch-package/node_modules/shebang-command/package.json +43 -0
  315. package/node_modules/patch-package/node_modules/shebang-command/readme.md +39 -0
  316. package/node_modules/patch-package/node_modules/shebang-regex/index.js +2 -0
  317. package/node_modules/patch-package/node_modules/shebang-regex/license +21 -0
  318. package/node_modules/patch-package/node_modules/shebang-regex/package.json +36 -0
  319. package/node_modules/patch-package/node_modules/shebang-regex/readme.md +29 -0
  320. package/node_modules/patch-package/node_modules/slash/index.js +11 -0
  321. package/node_modules/patch-package/node_modules/slash/license +9 -0
  322. package/node_modules/patch-package/node_modules/slash/package.json +38 -0
  323. package/node_modules/patch-package/node_modules/slash/readme.md +44 -0
  324. package/node_modules/patch-package/node_modules/which/CHANGELOG.md +152 -0
  325. package/node_modules/patch-package/node_modules/which/LICENSE +15 -0
  326. package/node_modules/patch-package/node_modules/which/README.md +51 -0
  327. package/node_modules/patch-package/node_modules/which/bin/which +52 -0
  328. package/node_modules/patch-package/node_modules/which/package.json +34 -0
  329. package/node_modules/patch-package/node_modules/which/which.js +135 -0
  330. package/node_modules/patch-package/package.json +100 -0
  331. package/node_modules/path-is-absolute/index.js +20 -0
  332. package/node_modules/path-is-absolute/license +21 -0
  333. package/node_modules/path-is-absolute/package.json +47 -0
  334. package/node_modules/path-is-absolute/readme.md +59 -0
  335. package/node_modules/picomatch/CHANGELOG.md +120 -0
  336. package/node_modules/picomatch/LICENSE +21 -0
  337. package/node_modules/picomatch/README.md +691 -0
  338. package/node_modules/picomatch/index.js +3 -0
  339. package/node_modules/picomatch/lib/constants.js +179 -0
  340. package/node_modules/picomatch/lib/parse.js +1078 -0
  341. package/node_modules/picomatch/lib/picomatch.js +339 -0
  342. package/node_modules/picomatch/lib/scan.js +385 -0
  343. package/node_modules/picomatch/lib/utils.js +64 -0
  344. package/node_modules/picomatch/package.json +85 -0
  345. package/node_modules/remove-markdown/.npmignore +1 -0
  346. package/node_modules/remove-markdown/LICENSE +21 -0
  347. package/node_modules/remove-markdown/README.md +44 -0
  348. package/node_modules/remove-markdown/index.js +60 -0
  349. package/node_modules/remove-markdown/package.json +31 -0
  350. package/node_modules/remove-markdown/test/remove-markdown.js +139 -0
  351. package/node_modules/semver/CHANGELOG.md +111 -0
  352. package/node_modules/semver/LICENSE +15 -0
  353. package/node_modules/semver/README.md +566 -0
  354. package/node_modules/semver/bin/semver.js +173 -0
  355. package/node_modules/semver/classes/comparator.js +135 -0
  356. package/node_modules/semver/classes/index.js +5 -0
  357. package/node_modules/semver/classes/range.js +510 -0
  358. package/node_modules/semver/classes/semver.js +287 -0
  359. package/node_modules/semver/functions/clean.js +6 -0
  360. package/node_modules/semver/functions/cmp.js +48 -0
  361. package/node_modules/semver/functions/coerce.js +51 -0
  362. package/node_modules/semver/functions/compare-build.js +7 -0
  363. package/node_modules/semver/functions/compare-loose.js +3 -0
  364. package/node_modules/semver/functions/compare.js +5 -0
  365. package/node_modules/semver/functions/diff.js +23 -0
  366. package/node_modules/semver/functions/eq.js +3 -0
  367. package/node_modules/semver/functions/gt.js +3 -0
  368. package/node_modules/semver/functions/gte.js +3 -0
  369. package/node_modules/semver/functions/inc.js +15 -0
  370. package/node_modules/semver/functions/lt.js +3 -0
  371. package/node_modules/semver/functions/lte.js +3 -0
  372. package/node_modules/semver/functions/major.js +3 -0
  373. package/node_modules/semver/functions/minor.js +3 -0
  374. package/node_modules/semver/functions/neq.js +3 -0
  375. package/node_modules/semver/functions/parse.js +33 -0
  376. package/node_modules/semver/functions/patch.js +3 -0
  377. package/node_modules/semver/functions/prerelease.js +6 -0
  378. package/node_modules/semver/functions/rcompare.js +3 -0
  379. package/node_modules/semver/functions/rsort.js +3 -0
  380. package/node_modules/semver/functions/satisfies.js +10 -0
  381. package/node_modules/semver/functions/sort.js +3 -0
  382. package/node_modules/semver/functions/valid.js +6 -0
  383. package/node_modules/semver/index.js +48 -0
  384. package/node_modules/semver/internal/constants.js +17 -0
  385. package/node_modules/semver/internal/debug.js +9 -0
  386. package/node_modules/semver/internal/identifiers.js +23 -0
  387. package/node_modules/semver/internal/parse-options.js +11 -0
  388. package/node_modules/semver/internal/re.js +182 -0
  389. package/node_modules/semver/package.json +45 -0
  390. package/node_modules/semver/preload.js +2 -0
  391. package/node_modules/semver/range.bnf +16 -0
  392. package/node_modules/semver/ranges/gtr.js +4 -0
  393. package/node_modules/semver/ranges/intersects.js +7 -0
  394. package/node_modules/semver/ranges/ltr.js +4 -0
  395. package/node_modules/semver/ranges/max-satisfying.js +25 -0
  396. package/node_modules/semver/ranges/min-satisfying.js +24 -0
  397. package/node_modules/semver/ranges/min-version.js +60 -0
  398. package/node_modules/semver/ranges/outside.js +80 -0
  399. package/node_modules/semver/ranges/simplify.js +44 -0
  400. package/node_modules/semver/ranges/subset.js +222 -0
  401. package/node_modules/semver/ranges/to-comparators.js +8 -0
  402. package/node_modules/semver/ranges/valid.js +11 -0
  403. package/node_modules/supports-color/browser.js +5 -0
  404. package/node_modules/supports-color/index.js +131 -0
  405. package/node_modules/supports-color/license +9 -0
  406. package/node_modules/supports-color/package.json +57 -0
  407. package/node_modules/supports-color/readme.md +66 -0
  408. package/node_modules/tmp/LICENSE +21 -0
  409. package/node_modules/tmp/README.md +314 -0
  410. package/node_modules/tmp/lib/tmp.js +611 -0
  411. package/node_modules/tmp/package.json +42 -0
  412. package/node_modules/to-regex-range/LICENSE +21 -0
  413. package/node_modules/to-regex-range/README.md +305 -0
  414. package/node_modules/to-regex-range/index.js +288 -0
  415. package/node_modules/to-regex-range/package.json +92 -0
  416. package/node_modules/universalify/LICENSE +20 -0
  417. package/node_modules/universalify/README.md +76 -0
  418. package/node_modules/universalify/index.js +25 -0
  419. package/node_modules/universalify/package.json +38 -0
  420. package/node_modules/wrappy/LICENSE +15 -0
  421. package/node_modules/wrappy/README.md +36 -0
  422. package/node_modules/wrappy/package.json +33 -0
  423. package/node_modules/wrappy/wrappy.js +33 -0
  424. package/node_modules/yallist/LICENSE +15 -0
  425. package/node_modules/yallist/README.md +204 -0
  426. package/node_modules/yallist/iterator.js +8 -0
  427. package/node_modules/yallist/package.json +33 -0
  428. package/node_modules/yallist/yallist.js +426 -0
  429. package/package.json +5 -1
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const chalk_1 = __importDefault(require("chalk"));
7
+ const process_1 = __importDefault(require("process"));
8
+ const minimist_1 = __importDefault(require("minimist"));
9
+ const applyPatches_1 = require("./applyPatches");
10
+ const getAppRootPath_1 = require("./getAppRootPath");
11
+ const makePatch_1 = require("./makePatch");
12
+ const makeRegExp_1 = require("./makeRegExp");
13
+ const detectPackageManager_1 = require("./detectPackageManager");
14
+ const path_1 = require("./path");
15
+ const path_2 = require("path");
16
+ const slash = require("slash");
17
+ const is_ci_1 = __importDefault(require("is-ci"));
18
+ const appPath = getAppRootPath_1.getAppRootPath();
19
+ const argv = minimist_1.default(process_1.default.argv.slice(2), {
20
+ boolean: [
21
+ "use-yarn",
22
+ "case-sensitive-path-filtering",
23
+ "reverse",
24
+ "help",
25
+ "version",
26
+ "error-on-fail",
27
+ "create-issue",
28
+ ],
29
+ string: ["patch-dir"],
30
+ });
31
+ const packageNames = argv._;
32
+ console.log(chalk_1.default.bold("patch-package"),
33
+ // tslint:disable-next-line:no-var-requires
34
+ require(path_1.join(__dirname, "../package.json")).version);
35
+ if (argv.version || argv.v) {
36
+ // noop
37
+ }
38
+ else if (argv.help || argv.h) {
39
+ printHelp();
40
+ }
41
+ else {
42
+ const patchDir = slash(path_2.normalize((argv["patch-dir"] || "patches") + path_2.sep));
43
+ if (patchDir.startsWith("/")) {
44
+ throw new Error("--patch-dir must be a relative path");
45
+ }
46
+ if (packageNames.length) {
47
+ const includePaths = makeRegExp_1.makeRegExp(argv.include, "include", /.*/, argv["case-sensitive-path-filtering"]);
48
+ const excludePaths = makeRegExp_1.makeRegExp(argv.exclude, "exclude", /package\.json$/, argv["case-sensitive-path-filtering"]);
49
+ const packageManager = detectPackageManager_1.detectPackageManager(appPath, argv["use-yarn"] ? "yarn" : null);
50
+ const createIssue = argv["create-issue"];
51
+ packageNames.forEach((packagePathSpecifier) => {
52
+ makePatch_1.makePatch({
53
+ packagePathSpecifier,
54
+ appPath,
55
+ packageManager,
56
+ includePaths,
57
+ excludePaths,
58
+ patchDir,
59
+ createIssue,
60
+ });
61
+ });
62
+ }
63
+ else {
64
+ console.log("Applying patches...");
65
+ const reverse = !!argv["reverse"];
66
+ // don't want to exit(1) on postinsall locally.
67
+ // see https://github.com/ds300/patch-package/issues/86
68
+ const shouldExitWithError = !!argv["error-on-fail"] || is_ci_1.default || process_1.default.env.NODE_ENV === "test";
69
+ applyPatches_1.applyPatchesForApp({ appPath, reverse, patchDir, shouldExitWithError });
70
+ }
71
+ }
72
+ function printHelp() {
73
+ console.log(`
74
+ Usage:
75
+
76
+ 1. Patching packages
77
+ ====================
78
+
79
+ ${chalk_1.default.bold("patch-package")}
80
+
81
+ Without arguments, the ${chalk_1.default.bold("patch-package")} command will attempt to find and apply
82
+ patch files to your project. It looks for files named like
83
+
84
+ ./patches/<package-name>+<version>.patch
85
+
86
+ Options:
87
+
88
+ ${chalk_1.default.bold("--patch-dir <dirname>")}
89
+
90
+ Specify the name for the directory in which the patch files are located.
91
+
92
+ ${chalk_1.default.bold("--error-on-fail")}
93
+
94
+ Forces patch-package to exit with code 1 after failing.
95
+
96
+ When running locally patch-package always exits with 0 by default.
97
+ This happens even after failing to apply patches because otherwise
98
+ yarn.lock and package.json might get out of sync with node_modules,
99
+ which can be very confusing.
100
+
101
+ --error-on-fail is ${chalk_1.default.bold("switched on")} by default on CI.
102
+
103
+ See https://github.com/ds300/patch-package/issues/86 for background.
104
+
105
+ ${chalk_1.default.bold("--reverse")}
106
+
107
+ Un-applies all patches.
108
+
109
+ Note that this will fail if the patched files have changed since being
110
+ patched. In that case, you'll probably need to re-install 'node_modules'.
111
+
112
+ This option was added to help people using CircleCI avoid an issue around caching
113
+ and patch file updates (https://github.com/ds300/patch-package/issues/37),
114
+ but might be useful in other contexts too.
115
+
116
+
117
+ 2. Creating patch files
118
+ =======================
119
+
120
+ ${chalk_1.default.bold("patch-package")} <package-name>${chalk_1.default.italic("[ <package-name>]")}
121
+
122
+ When given package names as arguments, patch-package will create patch files
123
+ based on any changes you've made to the versions installed by yarn/npm.
124
+
125
+ Options:
126
+
127
+ ${chalk_1.default.bold("--create-issue")}
128
+
129
+ For packages whose source is hosted on GitHub this option opens a web
130
+ browser with a draft issue based on your diff.
131
+
132
+ ${chalk_1.default.bold("--use-yarn")}
133
+
134
+ By default, patch-package checks whether you use npm or yarn based on
135
+ which lockfile you have. If you have both, it uses npm by default.
136
+ Set this option to override that default and always use yarn.
137
+
138
+ ${chalk_1.default.bold("--exclude <regexp>")}
139
+
140
+ Ignore paths matching the regexp when creating patch files.
141
+ Paths are relative to the root dir of the package to be patched.
142
+
143
+ Default: 'package\\.json$'
144
+
145
+ ${chalk_1.default.bold("--include <regexp>")}
146
+
147
+ Only consider paths matching the regexp when creating patch files.
148
+ Paths are relative to the root dir of the package to be patched.
149
+
150
+ Default '.*'
151
+
152
+ ${chalk_1.default.bold("--case-sensitive-path-filtering")}
153
+
154
+ Make regexps used in --include or --exclude filters case-sensitive.
155
+
156
+ ${chalk_1.default.bold("--patch-dir")}
157
+
158
+ Specify the name for the directory in which to put the patch files.
159
+ `);
160
+ }
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrREFBeUI7QUFDekIsc0RBQTZCO0FBQzdCLHdEQUErQjtBQUUvQixpREFBbUQ7QUFDbkQscURBQWlEO0FBQ2pELDJDQUF1QztBQUN2Qyw2Q0FBeUM7QUFDekMsaUVBQTZEO0FBQzdELGlDQUE2QjtBQUM3QiwrQkFBcUM7QUFDckMsK0JBQStCO0FBQy9CLGtEQUF3QjtBQUV4QixNQUFNLE9BQU8sR0FBRywrQkFBYyxFQUFFLENBQUE7QUFDaEMsTUFBTSxJQUFJLEdBQUcsa0JBQVEsQ0FBQyxpQkFBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDM0MsT0FBTyxFQUFFO1FBQ1AsVUFBVTtRQUNWLCtCQUErQjtRQUMvQixTQUFTO1FBQ1QsTUFBTTtRQUNOLFNBQVM7UUFDVCxlQUFlO1FBQ2YsY0FBYztLQUNmO0lBQ0QsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDO0NBQ3RCLENBQUMsQ0FBQTtBQUNGLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUE7QUFFM0IsT0FBTyxDQUFDLEdBQUcsQ0FDVCxlQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztBQUMzQiwyQ0FBMkM7QUFDM0MsT0FBTyxDQUFDLFdBQUksQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDcEQsQ0FBQTtBQUVELElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFO0lBQzFCLE9BQU87Q0FDUjtLQUFNLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFO0lBQzlCLFNBQVMsRUFBRSxDQUFBO0NBQ1o7S0FBTTtJQUNMLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxnQkFBUyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxHQUFHLFVBQUcsQ0FBQyxDQUFDLENBQUE7SUFDekUsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQTtLQUN2RDtJQUNELElBQUksWUFBWSxDQUFDLE1BQU0sRUFBRTtRQUN2QixNQUFNLFlBQVksR0FBRyx1QkFBVSxDQUM3QixJQUFJLENBQUMsT0FBTyxFQUNaLFNBQVMsRUFDVCxJQUFJLEVBQ0osSUFBSSxDQUFDLCtCQUErQixDQUFDLENBQ3RDLENBQUE7UUFDRCxNQUFNLFlBQVksR0FBRyx1QkFBVSxDQUM3QixJQUFJLENBQUMsT0FBTyxFQUNaLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsSUFBSSxDQUFDLCtCQUErQixDQUFDLENBQ3RDLENBQUE7UUFDRCxNQUFNLGNBQWMsR0FBRywyQ0FBb0IsQ0FDekMsT0FBTyxFQUNQLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ2pDLENBQUE7UUFDRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDeEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLG9CQUE0QixFQUFFLEVBQUU7WUFDcEQscUJBQVMsQ0FBQztnQkFDUixvQkFBb0I7Z0JBQ3BCLE9BQU87Z0JBQ1AsY0FBYztnQkFDZCxZQUFZO2dCQUNaLFlBQVk7Z0JBQ1osUUFBUTtnQkFDUixXQUFXO2FBQ1osQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUE7S0FDSDtTQUFNO1FBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO1FBQ2xDLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDakMsK0NBQStDO1FBQy9DLHVEQUF1RDtRQUN2RCxNQUFNLG1CQUFtQixHQUN2QixDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLGVBQUksSUFBSSxpQkFBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFBO1FBQ3BFLGlDQUFrQixDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFBO0tBQ3hFO0NBQ0Y7QUFFRCxTQUFTLFNBQVM7SUFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQzs7Ozs7O01BTVIsZUFBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7OzJCQUVOLGVBQUssQ0FBQyxJQUFJLENBQ2pDLGVBQWUsQ0FDaEI7Ozs7Ozs7TUFPRyxlQUFLLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDOzs7O01BSW5DLGVBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7Ozs7Ozs7OzsyQkFTUixlQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQzs7OztNQUk5QyxlQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O01BZXZCLGVBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixlQUFLLENBQUMsTUFBTSxDQUMzRCxtQkFBbUIsQ0FDcEI7Ozs7Ozs7TUFPRyxlQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDOzs7OztNQUs1QixlQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQzs7Ozs7O01BTXhCLGVBQUssQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7Ozs7Ozs7TUFPaEMsZUFBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQzs7Ozs7OztNQU9oQyxlQUFLLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxDQUFDOzs7O01BSTdDLGVBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDOzs7Q0FHOUIsQ0FBQyxDQUFBO0FBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjaGFsayBmcm9tIFwiY2hhbGtcIlxuaW1wb3J0IHByb2Nlc3MgZnJvbSBcInByb2Nlc3NcIlxuaW1wb3J0IG1pbmltaXN0IGZyb20gXCJtaW5pbWlzdFwiXG5cbmltcG9ydCB7IGFwcGx5UGF0Y2hlc0ZvckFwcCB9IGZyb20gXCIuL2FwcGx5UGF0Y2hlc1wiXG5pbXBvcnQgeyBnZXRBcHBSb290UGF0aCB9IGZyb20gXCIuL2dldEFwcFJvb3RQYXRoXCJcbmltcG9ydCB7IG1ha2VQYXRjaCB9IGZyb20gXCIuL21ha2VQYXRjaFwiXG5pbXBvcnQgeyBtYWtlUmVnRXhwIH0gZnJvbSBcIi4vbWFrZVJlZ0V4cFwiXG5pbXBvcnQgeyBkZXRlY3RQYWNrYWdlTWFuYWdlciB9IGZyb20gXCIuL2RldGVjdFBhY2thZ2VNYW5hZ2VyXCJcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwiLi9wYXRoXCJcbmltcG9ydCB7IG5vcm1hbGl6ZSwgc2VwIH0gZnJvbSBcInBhdGhcIlxuaW1wb3J0IHNsYXNoID0gcmVxdWlyZShcInNsYXNoXCIpXG5pbXBvcnQgaXNDaSBmcm9tIFwiaXMtY2lcIlxuXG5jb25zdCBhcHBQYXRoID0gZ2V0QXBwUm9vdFBhdGgoKVxuY29uc3QgYXJndiA9IG1pbmltaXN0KHByb2Nlc3MuYXJndi5zbGljZSgyKSwge1xuICBib29sZWFuOiBbXG4gICAgXCJ1c2UteWFyblwiLFxuICAgIFwiY2FzZS1zZW5zaXRpdmUtcGF0aC1maWx0ZXJpbmdcIixcbiAgICBcInJldmVyc2VcIixcbiAgICBcImhlbHBcIixcbiAgICBcInZlcnNpb25cIixcbiAgICBcImVycm9yLW9uLWZhaWxcIixcbiAgICBcImNyZWF0ZS1pc3N1ZVwiLFxuICBdLFxuICBzdHJpbmc6IFtcInBhdGNoLWRpclwiXSxcbn0pXG5jb25zdCBwYWNrYWdlTmFtZXMgPSBhcmd2Ll9cblxuY29uc29sZS5sb2coXG4gIGNoYWxrLmJvbGQoXCJwYXRjaC1wYWNrYWdlXCIpLFxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tdmFyLXJlcXVpcmVzXG4gIHJlcXVpcmUoam9pbihfX2Rpcm5hbWUsIFwiLi4vcGFja2FnZS5qc29uXCIpKS52ZXJzaW9uLFxuKVxuXG5pZiAoYXJndi52ZXJzaW9uIHx8IGFyZ3Yudikge1xuICAvLyBub29wXG59IGVsc2UgaWYgKGFyZ3YuaGVscCB8fCBhcmd2LmgpIHtcbiAgcHJpbnRIZWxwKClcbn0gZWxzZSB7XG4gIGNvbnN0IHBhdGNoRGlyID0gc2xhc2gobm9ybWFsaXplKChhcmd2W1wicGF0Y2gtZGlyXCJdIHx8IFwicGF0Y2hlc1wiKSArIHNlcCkpXG4gIGlmIChwYXRjaERpci5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIi0tcGF0Y2gtZGlyIG11c3QgYmUgYSByZWxhdGl2ZSBwYXRoXCIpXG4gIH1cbiAgaWYgKHBhY2thZ2VOYW1lcy5sZW5ndGgpIHtcbiAgICBjb25zdCBpbmNsdWRlUGF0aHMgPSBtYWtlUmVnRXhwKFxuICAgICAgYXJndi5pbmNsdWRlLFxuICAgICAgXCJpbmNsdWRlXCIsXG4gICAgICAvLiovLFxuICAgICAgYXJndltcImNhc2Utc2Vuc2l0aXZlLXBhdGgtZmlsdGVyaW5nXCJdLFxuICAgIClcbiAgICBjb25zdCBleGNsdWRlUGF0aHMgPSBtYWtlUmVnRXhwKFxuICAgICAgYXJndi5leGNsdWRlLFxuICAgICAgXCJleGNsdWRlXCIsXG4gICAgICAvcGFja2FnZVxcLmpzb24kLyxcbiAgICAgIGFyZ3ZbXCJjYXNlLXNlbnNpdGl2ZS1wYXRoLWZpbHRlcmluZ1wiXSxcbiAgICApXG4gICAgY29uc3QgcGFja2FnZU1hbmFnZXIgPSBkZXRlY3RQYWNrYWdlTWFuYWdlcihcbiAgICAgIGFwcFBhdGgsXG4gICAgICBhcmd2W1widXNlLXlhcm5cIl0gPyBcInlhcm5cIiA6IG51bGwsXG4gICAgKVxuICAgIGNvbnN0IGNyZWF0ZUlzc3VlID0gYXJndltcImNyZWF0ZS1pc3N1ZVwiXVxuICAgIHBhY2thZ2VOYW1lcy5mb3JFYWNoKChwYWNrYWdlUGF0aFNwZWNpZmllcjogc3RyaW5nKSA9PiB7XG4gICAgICBtYWtlUGF0Y2goe1xuICAgICAgICBwYWNrYWdlUGF0aFNwZWNpZmllcixcbiAgICAgICAgYXBwUGF0aCxcbiAgICAgICAgcGFja2FnZU1hbmFnZXIsXG4gICAgICAgIGluY2x1ZGVQYXRocyxcbiAgICAgICAgZXhjbHVkZVBhdGhzLFxuICAgICAgICBwYXRjaERpcixcbiAgICAgICAgY3JlYXRlSXNzdWUsXG4gICAgICB9KVxuICAgIH0pXG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS5sb2coXCJBcHBseWluZyBwYXRjaGVzLi4uXCIpXG4gICAgY29uc3QgcmV2ZXJzZSA9ICEhYXJndltcInJldmVyc2VcIl1cbiAgICAvLyBkb24ndCB3YW50IHRvIGV4aXQoMSkgb24gcG9zdGluc2FsbCBsb2NhbGx5LlxuICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vZHMzMDAvcGF0Y2gtcGFja2FnZS9pc3N1ZXMvODZcbiAgICBjb25zdCBzaG91bGRFeGl0V2l0aEVycm9yID1cbiAgICAgICEhYXJndltcImVycm9yLW9uLWZhaWxcIl0gfHwgaXNDaSB8fCBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJ0ZXN0XCJcbiAgICBhcHBseVBhdGNoZXNGb3JBcHAoeyBhcHBQYXRoLCByZXZlcnNlLCBwYXRjaERpciwgc2hvdWxkRXhpdFdpdGhFcnJvciB9KVxuICB9XG59XG5cbmZ1bmN0aW9uIHByaW50SGVscCgpIHtcbiAgY29uc29sZS5sb2coYFxuVXNhZ2U6XG5cbiAgMS4gUGF0Y2hpbmcgcGFja2FnZXNcbiAgPT09PT09PT09PT09PT09PT09PT1cblxuICAgICR7Y2hhbGsuYm9sZChcInBhdGNoLXBhY2thZ2VcIil9XG5cbiAgV2l0aG91dCBhcmd1bWVudHMsIHRoZSAke2NoYWxrLmJvbGQoXG4gICAgXCJwYXRjaC1wYWNrYWdlXCIsXG4gICl9IGNvbW1hbmQgd2lsbCBhdHRlbXB0IHRvIGZpbmQgYW5kIGFwcGx5XG4gIHBhdGNoIGZpbGVzIHRvIHlvdXIgcHJvamVjdC4gSXQgbG9va3MgZm9yIGZpbGVzIG5hbWVkIGxpa2VcblxuICAgICAuL3BhdGNoZXMvPHBhY2thZ2UtbmFtZT4rPHZlcnNpb24+LnBhdGNoXG5cbiAgT3B0aW9uczpcblxuICAgICR7Y2hhbGsuYm9sZChcIi0tcGF0Y2gtZGlyIDxkaXJuYW1lPlwiKX1cblxuICAgICAgU3BlY2lmeSB0aGUgbmFtZSBmb3IgdGhlIGRpcmVjdG9yeSBpbiB3aGljaCB0aGUgcGF0Y2ggZmlsZXMgYXJlIGxvY2F0ZWQuXG4gICAgICBcbiAgICAke2NoYWxrLmJvbGQoXCItLWVycm9yLW9uLWZhaWxcIil9XG4gICAgXG4gICAgICBGb3JjZXMgcGF0Y2gtcGFja2FnZSB0byBleGl0IHdpdGggY29kZSAxIGFmdGVyIGZhaWxpbmcuXG4gICAgXG4gICAgICBXaGVuIHJ1bm5pbmcgbG9jYWxseSBwYXRjaC1wYWNrYWdlIGFsd2F5cyBleGl0cyB3aXRoIDAgYnkgZGVmYXVsdC5cbiAgICAgIFRoaXMgaGFwcGVucyBldmVuIGFmdGVyIGZhaWxpbmcgdG8gYXBwbHkgcGF0Y2hlcyBiZWNhdXNlIG90aGVyd2lzZSBcbiAgICAgIHlhcm4ubG9jayBhbmQgcGFja2FnZS5qc29uIG1pZ2h0IGdldCBvdXQgb2Ygc3luYyB3aXRoIG5vZGVfbW9kdWxlcyxcbiAgICAgIHdoaWNoIGNhbiBiZSB2ZXJ5IGNvbmZ1c2luZy5cbiAgICAgIFxuICAgICAgLS1lcnJvci1vbi1mYWlsIGlzICR7Y2hhbGsuYm9sZChcInN3aXRjaGVkIG9uXCIpfSBieSBkZWZhdWx0IG9uIENJLlxuICAgICAgXG4gICAgICBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2RzMzAwL3BhdGNoLXBhY2thZ2UvaXNzdWVzLzg2IGZvciBiYWNrZ3JvdW5kLlxuXG4gICAgJHtjaGFsay5ib2xkKFwiLS1yZXZlcnNlXCIpfVxuICAgICAgICBcbiAgICAgIFVuLWFwcGxpZXMgYWxsIHBhdGNoZXMuXG5cbiAgICAgIE5vdGUgdGhhdCB0aGlzIHdpbGwgZmFpbCBpZiB0aGUgcGF0Y2hlZCBmaWxlcyBoYXZlIGNoYW5nZWQgc2luY2UgYmVpbmdcbiAgICAgIHBhdGNoZWQuIEluIHRoYXQgY2FzZSwgeW91J2xsIHByb2JhYmx5IG5lZWQgdG8gcmUtaW5zdGFsbCAnbm9kZV9tb2R1bGVzJy5cblxuICAgICAgVGhpcyBvcHRpb24gd2FzIGFkZGVkIHRvIGhlbHAgcGVvcGxlIHVzaW5nIENpcmNsZUNJIGF2b2lkIGFuIGlzc3VlIGFyb3VuZCBjYWNoaW5nXG4gICAgICBhbmQgcGF0Y2ggZmlsZSB1cGRhdGVzIChodHRwczovL2dpdGh1Yi5jb20vZHMzMDAvcGF0Y2gtcGFja2FnZS9pc3N1ZXMvMzcpLFxuICAgICAgYnV0IG1pZ2h0IGJlIHVzZWZ1bCBpbiBvdGhlciBjb250ZXh0cyB0b28uXG4gICAgICBcblxuICAyLiBDcmVhdGluZyBwYXRjaCBmaWxlc1xuICA9PT09PT09PT09PT09PT09PT09PT09PVxuXG4gICAgJHtjaGFsay5ib2xkKFwicGF0Y2gtcGFja2FnZVwiKX0gPHBhY2thZ2UtbmFtZT4ke2NoYWxrLml0YWxpYyhcbiAgICBcIlsgPHBhY2thZ2UtbmFtZT5dXCIsXG4gICl9XG5cbiAgV2hlbiBnaXZlbiBwYWNrYWdlIG5hbWVzIGFzIGFyZ3VtZW50cywgcGF0Y2gtcGFja2FnZSB3aWxsIGNyZWF0ZSBwYXRjaCBmaWxlc1xuICBiYXNlZCBvbiBhbnkgY2hhbmdlcyB5b3UndmUgbWFkZSB0byB0aGUgdmVyc2lvbnMgaW5zdGFsbGVkIGJ5IHlhcm4vbnBtLlxuXG4gIE9wdGlvbnM6XG4gIFxuICAgICR7Y2hhbGsuYm9sZChcIi0tY3JlYXRlLWlzc3VlXCIpfVxuICAgIFxuICAgICAgIEZvciBwYWNrYWdlcyB3aG9zZSBzb3VyY2UgaXMgaG9zdGVkIG9uIEdpdEh1YiB0aGlzIG9wdGlvbiBvcGVucyBhIHdlYlxuICAgICAgIGJyb3dzZXIgd2l0aCBhIGRyYWZ0IGlzc3VlIGJhc2VkIG9uIHlvdXIgZGlmZi5cblxuICAgICR7Y2hhbGsuYm9sZChcIi0tdXNlLXlhcm5cIil9XG5cbiAgICAgICAgQnkgZGVmYXVsdCwgcGF0Y2gtcGFja2FnZSBjaGVja3Mgd2hldGhlciB5b3UgdXNlIG5wbSBvciB5YXJuIGJhc2VkIG9uXG4gICAgICAgIHdoaWNoIGxvY2tmaWxlIHlvdSBoYXZlLiBJZiB5b3UgaGF2ZSBib3RoLCBpdCB1c2VzIG5wbSBieSBkZWZhdWx0LlxuICAgICAgICBTZXQgdGhpcyBvcHRpb24gdG8gb3ZlcnJpZGUgdGhhdCBkZWZhdWx0IGFuZCBhbHdheXMgdXNlIHlhcm4uXG5cbiAgICAke2NoYWxrLmJvbGQoXCItLWV4Y2x1ZGUgPHJlZ2V4cD5cIil9XG5cbiAgICAgICAgSWdub3JlIHBhdGhzIG1hdGNoaW5nIHRoZSByZWdleHAgd2hlbiBjcmVhdGluZyBwYXRjaCBmaWxlcy5cbiAgICAgICAgUGF0aHMgYXJlIHJlbGF0aXZlIHRvIHRoZSByb290IGRpciBvZiB0aGUgcGFja2FnZSB0byBiZSBwYXRjaGVkLlxuXG4gICAgICAgIERlZmF1bHQ6ICdwYWNrYWdlXFxcXC5qc29uJCdcblxuICAgICR7Y2hhbGsuYm9sZChcIi0taW5jbHVkZSA8cmVnZXhwPlwiKX1cblxuICAgICAgICBPbmx5IGNvbnNpZGVyIHBhdGhzIG1hdGNoaW5nIHRoZSByZWdleHAgd2hlbiBjcmVhdGluZyBwYXRjaCBmaWxlcy5cbiAgICAgICAgUGF0aHMgYXJlIHJlbGF0aXZlIHRvIHRoZSByb290IGRpciBvZiB0aGUgcGFja2FnZSB0byBiZSBwYXRjaGVkLlxuXG4gICAgICAgIERlZmF1bHQgJy4qJ1xuXG4gICAgJHtjaGFsay5ib2xkKFwiLS1jYXNlLXNlbnNpdGl2ZS1wYXRoLWZpbHRlcmluZ1wiKX1cblxuICAgICAgICBNYWtlIHJlZ2V4cHMgdXNlZCBpbiAtLWluY2x1ZGUgb3IgLS1leGNsdWRlIGZpbHRlcnMgY2FzZS1zZW5zaXRpdmUuXG4gICAgXG4gICAgJHtjaGFsay5ib2xkKFwiLS1wYXRjaC1kaXJcIil9XG5cbiAgICAgICAgU3BlY2lmeSB0aGUgbmFtZSBmb3IgdGhlIGRpcmVjdG9yeSBpbiB3aGljaCB0byBwdXQgdGhlIHBhdGNoIGZpbGVzLlxuYClcbn1cbiJdfQ==
@@ -0,0 +1,231 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.makePatch = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const path_1 = require("./path");
9
+ const spawnSafe_1 = require("./spawnSafe");
10
+ const filterFiles_1 = require("./filterFiles");
11
+ const fs_extra_1 = require("fs-extra");
12
+ const rimraf_1 = require("rimraf");
13
+ const fs_extra_2 = require("fs-extra");
14
+ const tmp_1 = require("tmp");
15
+ const patchFs_1 = require("./patchFs");
16
+ const PackageDetails_1 = require("./PackageDetails");
17
+ const resolveRelativeFileDependencies_1 = require("./resolveRelativeFileDependencies");
18
+ const getPackageResolution_1 = require("./getPackageResolution");
19
+ const parse_1 = require("./patch/parse");
20
+ const zlib_1 = require("zlib");
21
+ const getPackageVersion_1 = require("./getPackageVersion");
22
+ const createIssue_1 = require("./createIssue");
23
+ function printNoPackageFoundError(packageName, packageJsonPath) {
24
+ console.error(`No such package ${packageName}
25
+
26
+ File not found: ${packageJsonPath}`);
27
+ }
28
+ function makePatch({ packagePathSpecifier, appPath, packageManager, includePaths, excludePaths, patchDir, createIssue, }) {
29
+ const packageDetails = PackageDetails_1.getPatchDetailsFromCliString(packagePathSpecifier);
30
+ if (!packageDetails) {
31
+ console.error("No such package", packagePathSpecifier);
32
+ return;
33
+ }
34
+ const appPackageJson = require(path_1.join(appPath, "package.json"));
35
+ const packagePath = path_1.join(appPath, packageDetails.path);
36
+ const packageJsonPath = path_1.join(packagePath, "package.json");
37
+ if (!fs_extra_1.existsSync(packageJsonPath)) {
38
+ printNoPackageFoundError(packagePathSpecifier, packageJsonPath);
39
+ process.exit(1);
40
+ }
41
+ const tmpRepo = tmp_1.dirSync({ unsafeCleanup: true });
42
+ const tmpRepoPackagePath = path_1.join(tmpRepo.name, packageDetails.path);
43
+ const tmpRepoNpmRoot = tmpRepoPackagePath.slice(0, -`/node_modules/${packageDetails.name}`.length);
44
+ const tmpRepoPackageJsonPath = path_1.join(tmpRepoNpmRoot, "package.json");
45
+ try {
46
+ const patchesDir = path_1.resolve(path_1.join(appPath, patchDir));
47
+ console.info(chalk_1.default.grey("•"), "Creating temporary folder");
48
+ // make a blank package.json
49
+ fs_extra_1.mkdirpSync(tmpRepoNpmRoot);
50
+ fs_extra_1.writeFileSync(tmpRepoPackageJsonPath, JSON.stringify({
51
+ dependencies: {
52
+ [packageDetails.name]: getPackageResolution_1.getPackageResolution({
53
+ packageDetails,
54
+ packageManager,
55
+ appPath,
56
+ }),
57
+ },
58
+ resolutions: resolveRelativeFileDependencies_1.resolveRelativeFileDependencies(appPath, appPackageJson.resolutions || {}),
59
+ }));
60
+ const packageVersion = getPackageVersion_1.getPackageVersion(path_1.join(path_1.resolve(packageDetails.path), "package.json"));
61
+ [".npmrc", ".yarnrc"].forEach((rcFile) => {
62
+ const rcPath = path_1.join(appPath, rcFile);
63
+ if (fs_extra_1.existsSync(rcPath)) {
64
+ fs_extra_2.copySync(rcPath, path_1.join(tmpRepo.name, rcFile));
65
+ }
66
+ });
67
+ if (packageManager === "yarn") {
68
+ console.info(chalk_1.default.grey("•"), `Installing ${packageDetails.name}@${packageVersion} with yarn`);
69
+ try {
70
+ // try first without ignoring scripts in case they are required
71
+ // this works in 99.99% of cases
72
+ spawnSafe_1.spawnSafeSync(`yarn`, ["install", "--ignore-engines"], {
73
+ cwd: tmpRepoNpmRoot,
74
+ logStdErrOnError: false,
75
+ });
76
+ }
77
+ catch (e) {
78
+ // try again while ignoring scripts in case the script depends on
79
+ // an implicit context which we havn't reproduced
80
+ spawnSafe_1.spawnSafeSync(`yarn`, ["install", "--ignore-engines", "--ignore-scripts"], {
81
+ cwd: tmpRepoNpmRoot,
82
+ });
83
+ }
84
+ }
85
+ else {
86
+ console.info(chalk_1.default.grey("•"), `Installing ${packageDetails.name}@${packageVersion} with npm`);
87
+ try {
88
+ // try first without ignoring scripts in case they are required
89
+ // this works in 99.99% of cases
90
+ spawnSafe_1.spawnSafeSync(`npm`, ["i", "--force"], {
91
+ cwd: tmpRepoNpmRoot,
92
+ logStdErrOnError: false,
93
+ stdio: "ignore",
94
+ });
95
+ }
96
+ catch (e) {
97
+ // try again while ignoring scripts in case the script depends on
98
+ // an implicit context which we havn't reproduced
99
+ spawnSafe_1.spawnSafeSync(`npm`, ["i", "--ignore-scripts", "--force"], {
100
+ cwd: tmpRepoNpmRoot,
101
+ stdio: "ignore",
102
+ });
103
+ }
104
+ }
105
+ const git = (...args) => spawnSafe_1.spawnSafeSync("git", args, {
106
+ cwd: tmpRepo.name,
107
+ env: Object.assign(Object.assign({}, process.env), { HOME: tmpRepo.name }),
108
+ maxBuffer: 1024 * 1024 * 100,
109
+ });
110
+ // remove nested node_modules just to be safe
111
+ rimraf_1.sync(path_1.join(tmpRepoPackagePath, "node_modules"));
112
+ // remove .git just to be safe
113
+ rimraf_1.sync(path_1.join(tmpRepoPackagePath, ".git"));
114
+ // commit the package
115
+ console.info(chalk_1.default.grey("•"), "Diffing your files with clean files");
116
+ fs_extra_1.writeFileSync(path_1.join(tmpRepo.name, ".gitignore"), "!/node_modules\n\n");
117
+ git("init");
118
+ git("config", "--local", "user.name", "patch-package");
119
+ git("config", "--local", "user.email", "patch@pack.age");
120
+ // remove ignored files first
121
+ filterFiles_1.removeIgnoredFiles(tmpRepoPackagePath, includePaths, excludePaths);
122
+ git("add", "-f", packageDetails.path);
123
+ git("commit", "--allow-empty", "-m", "init");
124
+ // replace package with user's version
125
+ rimraf_1.sync(tmpRepoPackagePath);
126
+ // pnpm installs packages as symlinks, copySync would copy only the symlink
127
+ fs_extra_2.copySync(fs_extra_1.realpathSync(packagePath), tmpRepoPackagePath);
128
+ // remove nested node_modules just to be safe
129
+ rimraf_1.sync(path_1.join(tmpRepoPackagePath, "node_modules"));
130
+ // remove .git just to be safe
131
+ rimraf_1.sync(path_1.join(tmpRepoPackagePath, ".git"));
132
+ // also remove ignored files like before
133
+ filterFiles_1.removeIgnoredFiles(tmpRepoPackagePath, includePaths, excludePaths);
134
+ // stage all files
135
+ git("add", "-f", packageDetails.path);
136
+ // get diff of changes
137
+ const diffResult = git("diff", "--cached", "--no-color", "--ignore-space-at-eol", "--no-ext-diff");
138
+ if (diffResult.stdout.length === 0) {
139
+ console.warn(`⁉️ Not creating patch file for package '${packagePathSpecifier}'`);
140
+ console.warn(`⁉️ There don't appear to be any changes.`);
141
+ process.exit(1);
142
+ return;
143
+ }
144
+ try {
145
+ parse_1.parsePatchFile(diffResult.stdout.toString());
146
+ }
147
+ catch (e) {
148
+ if (e.message.includes("Unexpected file mode string: 120000")) {
149
+ console.error(`
150
+ ⛔️ ${chalk_1.default.red.bold("ERROR")}
151
+
152
+ Your changes involve creating symlinks. patch-package does not yet support
153
+ symlinks.
154
+
155
+ ️Please use ${chalk_1.default.bold("--include")} and/or ${chalk_1.default.bold("--exclude")} to narrow the scope of your patch if
156
+ this was unintentional.
157
+ `);
158
+ }
159
+ else {
160
+ const outPath = "./patch-package-error.json.gz";
161
+ fs_extra_1.writeFileSync(outPath, zlib_1.gzipSync(JSON.stringify({
162
+ error: { message: e.message, stack: e.stack },
163
+ patch: diffResult.stdout.toString(),
164
+ })));
165
+ console.error(`
166
+ ⛔️ ${chalk_1.default.red.bold("ERROR")}
167
+
168
+ patch-package was unable to read the patch-file made by git. This should not
169
+ happen.
170
+
171
+ A diagnostic file was written to
172
+
173
+ ${outPath}
174
+
175
+ Please attach it to a github issue
176
+
177
+ https://github.com/ds300/patch-package/issues/new?title=New+patch+parse+failed&body=Please+attach+the+diagnostic+file+by+dragging+it+into+here+🙏
178
+
179
+ Note that this diagnostic file will contain code from the package you were
180
+ attempting to patch.
181
+
182
+ `);
183
+ }
184
+ process.exit(1);
185
+ return;
186
+ }
187
+ // maybe delete existing
188
+ patchFs_1.getPatchFiles(patchDir).forEach((filename) => {
189
+ const deets = PackageDetails_1.getPackageDetailsFromPatchFilename(filename);
190
+ if (deets && deets.path === packageDetails.path) {
191
+ fs_extra_1.unlinkSync(path_1.join(patchDir, filename));
192
+ }
193
+ });
194
+ const patchFileName = createPatchFileName({
195
+ packageDetails,
196
+ packageVersion,
197
+ });
198
+ const patchPath = path_1.join(patchesDir, patchFileName);
199
+ if (!fs_extra_1.existsSync(path_1.dirname(patchPath))) {
200
+ // scoped package
201
+ fs_extra_1.mkdirSync(path_1.dirname(patchPath));
202
+ }
203
+ fs_extra_1.writeFileSync(patchPath, diffResult.stdout);
204
+ console.log(`${chalk_1.default.green("✔")} Created file ${path_1.join(patchDir, patchFileName)}\n`);
205
+ if (createIssue) {
206
+ createIssue_1.openIssueCreationLink({
207
+ packageDetails,
208
+ patchFileContents: diffResult.stdout.toString(),
209
+ packageVersion,
210
+ });
211
+ }
212
+ else {
213
+ createIssue_1.maybePrintIssueCreationPrompt(packageDetails, packageManager);
214
+ }
215
+ }
216
+ catch (e) {
217
+ console.error(e);
218
+ throw e;
219
+ }
220
+ finally {
221
+ tmpRepo.removeCallback();
222
+ }
223
+ }
224
+ exports.makePatch = makePatch;
225
+ function createPatchFileName({ packageDetails, packageVersion, }) {
226
+ const packageNames = packageDetails.packageNames
227
+ .map((name) => name.replace(/\//g, "+"))
228
+ .join("++");
229
+ return `${packageNames}+${packageVersion}.patch`;
230
+ }
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZVBhdGNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21ha2VQYXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrREFBeUI7QUFDekIsaUNBQStDO0FBQy9DLDJDQUEyQztBQUUzQywrQ0FBa0Q7QUFDbEQsdUNBT2lCO0FBQ2pCLG1DQUF1QztBQUN2Qyx1Q0FBbUM7QUFDbkMsNkJBQTZCO0FBQzdCLHVDQUF5QztBQUN6QyxxREFJeUI7QUFDekIsdUZBQW1GO0FBQ25GLGlFQUE2RDtBQUM3RCx5Q0FBOEM7QUFDOUMsK0JBQStCO0FBQy9CLDJEQUF1RDtBQUN2RCwrQ0FHc0I7QUFFdEIsU0FBUyx3QkFBd0IsQ0FDL0IsV0FBbUIsRUFDbkIsZUFBdUI7SUFFdkIsT0FBTyxDQUFDLEtBQUssQ0FDWCxtQkFBbUIsV0FBVzs7b0JBRWQsZUFBZSxFQUFFLENBQ2xDLENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBZ0IsU0FBUyxDQUFDLEVBQ3hCLG9CQUFvQixFQUNwQixPQUFPLEVBQ1AsY0FBYyxFQUNkLFlBQVksRUFDWixZQUFZLEVBQ1osUUFBUSxFQUNSLFdBQVcsR0FTWjtJQUNDLE1BQU0sY0FBYyxHQUFHLDZDQUE0QixDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFFekUsSUFBSSxDQUFDLGNBQWMsRUFBRTtRQUNuQixPQUFPLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLG9CQUFvQixDQUFDLENBQUE7UUFDdEQsT0FBTTtLQUNQO0lBQ0QsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLFdBQUksQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQTtJQUM3RCxNQUFNLFdBQVcsR0FBRyxXQUFJLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN0RCxNQUFNLGVBQWUsR0FBRyxXQUFJLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFBO0lBRXpELElBQUksQ0FBQyxxQkFBVSxD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SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDaEIsTUFBTSxDQUFDLENBQUE7S0FDUjtZQUFTO1FBQ1IsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFBO0tBQ3pCO0FBQ0gsQ0FBQztBQWhSRCw4QkFnUkM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLEVBQzNCLGNBQWMsRUFDZCxjQUFjLEdBSWY7SUFDQyxNQUFNLFlBQVksR0FBRyxjQUFjLENBQUMsWUFBWTtTQUM3QyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUViLE9BQU8sR0FBRyxZQUFZLElBQUksY0FBYyxRQUFRLENBQUE7QUFDbEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjaGFsayBmcm9tIFwiY2hhbGtcIlxuaW1wb3J0IHsgam9pbiwgZGlybmFtZSwgcmVzb2x2ZSB9IGZyb20gXCIuL3BhdGhcIlxuaW1wb3J0IHsgc3Bhd25TYWZlU3luYyB9IGZyb20gXCIuL3NwYXduU2FmZVwiXG5pbXBvcnQgeyBQYWNrYWdlTWFuYWdlciB9IGZyb20gXCIuL2RldGVjdFBhY2thZ2VNYW5hZ2VyXCJcbmltcG9ydCB7IHJlbW92ZUlnbm9yZWRGaWxlcyB9IGZyb20gXCIuL2ZpbHRlckZpbGVzXCJcbmltcG9ydCB7XG4gIHdyaXRlRmlsZVN5bmMsXG4gIGV4aXN0c1N5bmMsXG4gIG1rZGlyU3luYyxcbiAgdW5saW5rU3luYyxcbiAgbWtkaXJwU3luYyxcbiAgcmVhbHBhdGhTeW5jLFxufSBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHsgc3luYyBhcyByaW1yYWYgfSBmcm9tIFwicmltcmFmXCJcbmltcG9ydCB7IGNvcHlTeW5jIH0gZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCB7IGRpclN5bmMgfSBmcm9tIFwidG1wXCJcbmltcG9ydCB7IGdldFBhdGNoRmlsZXMgfSBmcm9tIFwiLi9wYXRjaEZzXCJcbmltcG9ydCB7XG4gIGdldFBhdGNoRGV0YWlsc0Zyb21DbGlTdHJpbmcsXG4gIGdldFBhY2thZ2VEZXRhaWxzRnJvbVBhdGNoRmlsZW5hbWUsXG4gIFBhY2thZ2VEZXRhaWxzLFxufSBmcm9tIFwiLi9QYWNrYWdlRGV0YWlsc1wiXG5pbXBvcnQgeyByZXNvbHZlUmVsYXRpdmVGaWxlRGVwZW5kZW5jaWVzIH0gZnJvbSBcIi4vcmVzb2x2ZVJlbGF0aXZlRmlsZURlcGVuZGVuY2llc1wiXG5pbXBvcnQgeyBnZXRQYWNrYWdlUmVzb2x1dGlvbiB9IGZyb20gXCIuL2dldFBhY2thZ2VSZXNvbHV0aW9uXCJcbmltcG9ydCB7IHBhcnNlUGF0Y2hGaWxlIH0gZnJvbSBcIi4vcGF0Y2gvcGFyc2VcIlxuaW1wb3J0IHsgZ3ppcFN5bmMgfSBmcm9tIFwiemxpYlwiXG5pbXBvcnQgeyBnZXRQYWNrYWdlVmVyc2lvbiB9IGZyb20gXCIuL2dldFBhY2thZ2VWZXJzaW9uXCJcbmltcG9ydCB7XG4gIG1heWJlUHJpbnRJc3N1ZUNyZWF0aW9uUHJvbXB0LFxuICBvcGVuSXNzdWVDcmVhdGlvbkxpbmssXG59IGZyb20gXCIuL2NyZWF0ZUlzc3VlXCJcblxuZnVuY3Rpb24gcHJpbnROb1BhY2thZ2VGb3VuZEVycm9yKFxuICBwYWNrYWdlTmFtZTogc3RyaW5nLFxuICBwYWNrYWdlSnNvblBhdGg6IHN0cmluZyxcbikge1xuICBjb25zb2xlLmVycm9yKFxuICAgIGBObyBzdWNoIHBhY2thZ2UgJHtwYWNrYWdlTmFtZX1cblxuICBGaWxlIG5vdCBmb3VuZDogJHtwYWNrYWdlSnNvblBhdGh9YCxcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFrZVBhdGNoKHtcbiAgcGFja2FnZVBhdGhTcGVjaWZpZXIsXG4gIGFwcFBhdGgsXG4gIHBhY2thZ2VNYW5hZ2VyLFxuICBpbmNsdWRlUGF0aHMsXG4gIGV4Y2x1ZGVQYXRocyxcbiAgcGF0Y2hEaXIsXG4gIGNyZWF0ZUlzc3VlLFxufToge1xuICBwYWNrYWdlUGF0aFNwZWNpZmllcjogc3RyaW5nXG4gIGFwcFBhdGg6IHN0cmluZ1xuICBwYWNrYWdlTWFuYWdlcjogUGFja2FnZU1hbmFnZXJcbiAgaW5jbHVkZVBhdGhzOiBSZWdFeHBcbiAgZXhjbHVkZVBhdGhzOiBSZWdFeHBcbiAgcGF0Y2hEaXI6IHN0cmluZ1xuICBjcmVhdGVJc3N1ZTogYm9vbGVhblxufSkge1xuICBjb25zdCBwYWNrYWdlRGV0YWlscyA9IGdldFBhdGNoRGV0YWlsc0Zyb21DbGlTdHJpbmcocGFja2FnZVBhdGhTcGVjaWZpZXIpXG5cbiAgaWYgKCFwYWNrYWdlRGV0YWlscykge1xuICAgIGNvbnNvbGUuZXJyb3IoXCJObyBzdWNoIHBhY2thZ2VcIiwgcGFja2FnZVBhdGhTcGVjaWZpZXIpXG4gICAgcmV0dXJuXG4gIH1cbiAgY29uc3QgYXBwUGFja2FnZUpzb24gPSByZXF1aXJlKGpvaW4oYXBwUGF0aCwgXCJwYWNrYWdlLmpzb25cIikpXG4gIGNvbnN0IHBhY2thZ2VQYXRoID0gam9pbihhcHBQYXRoLCBwYWNrYWdlRGV0YWlscy5wYXRoKVxuICBjb25zdCBwYWNrYWdlSnNvblBhdGggPSBqb2luKHBhY2thZ2VQYXRoLCBcInBhY2thZ2UuanNvblwiKVxuXG4gIGlmICghZXhpc3RzU3luYyhwYWNrYWdlSnNvblBhdGgpKSB7XG4gICAgcHJpbnROb1BhY2thZ2VGb3VuZEVycm9yKHBhY2thZ2VQYXRoU3BlY2lmaWVyLCBwYWNrYWdlSnNvblBhdGgpXG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH1cblxuICBjb25zdCB0bXBSZXBvID0gZGlyU3luYyh7IHVuc2FmZUNsZWFudXA6IHRydWUgfSlcbiAgY29uc3QgdG1wUmVwb1BhY2thZ2VQYXRoID0gam9pbih0bXBSZXBvLm5hbWUsIHBhY2thZ2VEZXRhaWxzLnBhdGgpXG4gIGNvbnN0IHRtcFJlcG9OcG1Sb290ID0gdG1wUmVwb1BhY2thZ2VQYXRoLnNsaWNlKFxuICAgIDAsXG4gICAgLWAvbm9kZV9tb2R1bGVzLyR7cGFja2FnZURldGFpbHMubmFtZX1gLmxlbmd0aCxcbiAgKVxuXG4gIGNvbnN0IHRtcFJlcG9QYWNrYWdlSnNvblBhdGggPSBqb2luKHRtcFJlcG9OcG1Sb290LCBcInBhY2thZ2UuanNvblwiKVxuXG4gIHRyeSB7XG4gICAgY29uc3QgcGF0Y2hlc0RpciA9IHJlc29sdmUoam9pbihhcHBQYXRoLCBwYXRjaERpcikpXG5cbiAgICBjb25zb2xlLmluZm8oY2hhbGsuZ3JleShcIuKAolwiKSwgXCJDcmVhdGluZyB0ZW1wb3JhcnkgZm9sZGVyXCIpXG5cbiAgICAvLyBtYWtlIGEgYmxhbmsgcGFja2FnZS5qc29uXG4gICAgbWtkaXJwU3luYyh0bXBSZXBvTnBtUm9vdClcbiAgICB3cml0ZUZpbGVTeW5jKFxuICAgICAgdG1wUmVwb1BhY2thZ2VKc29uUGF0aCxcbiAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgZGVwZW5kZW5jaWVzOiB7XG4gICAgICAgICAgW3BhY2thZ2VEZXRhaWxzLm5hbWVdOiBnZXRQYWNrYWdlUmVzb2x1dGlvbih7XG4gICAgICAgICAgICBwYWNrYWdlRGV0YWlscyxcbiAgICAgICAgICAgIHBhY2thZ2VNYW5hZ2VyLFxuICAgICAgICAgICAgYXBwUGF0aCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVzb2x1dGlvbnM6IHJlc29sdmVSZWxhdGl2ZUZpbGVEZXBlbmRlbmNpZXMoXG4gICAgICAgICAgYXBwUGF0aCxcbiAgICAgICAgICBhcHBQYWNrYWdlSnNvbi5yZXNvbHV0aW9ucyB8fCB7fSxcbiAgICAgICAgKSxcbiAgICAgIH0pLFxuICAgIClcblxuICAgIGNvbnN0IHBhY2thZ2VWZXJzaW9uID0gZ2V0UGFja2FnZVZlcnNpb24oXG4gICAgICBqb2luKHJlc29sdmUocGFja2FnZURldGFpbHMucGF0aCksIFwicGFja2FnZS5qc29uXCIpLFxuICAgIClcblxuICAgIC8vIGNvcHkgLm5wbXJjLy55YXJucmMgaW4gY2FzZSBwYWNrYWdlcyBhcmUgaG9zdGVkIGluIHByaXZhdGUgcmVnaXN0cnlcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6YWxpZ25cbiAgICA7W1wiLm5wbXJjXCIsIFwiLnlhcm5yY1wiXS5mb3JFYWNoKChyY0ZpbGUpID0+IHtcbiAgICAgIGNvbnN0IHJjUGF0aCA9IGpvaW4oYXBwUGF0aCwgcmNGaWxlKVxuICAgICAgaWYgKGV4aXN0c1N5bmMocmNQYXRoKSkge1xuICAgICAgICBjb3B5U3luYyhyY1BhdGgsIGpvaW4odG1wUmVwby5uYW1lLCByY0ZpbGUpKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBpZiAocGFja2FnZU1hbmFnZXIgPT09IFwieWFyblwiKSB7XG4gICAgICBjb25zb2xlLmluZm8oXG4gICAgICAgIGNoYWxrLmdyZXkoXCLigKJcIiksXG4gICAgICAgIGBJbnN0YWxsaW5nICR7cGFja2FnZURldGFpbHMubmFtZX1AJHtwYWNrYWdlVmVyc2lvbn0gd2l0aCB5YXJuYCxcbiAgICAgIClcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIHRyeSBmaXJzdCB3aXRob3V0IGlnbm9yaW5nIHNjcmlwdHMgaW4gY2FzZSB0aGV5IGFyZSByZXF1aXJlZFxuICAgICAgICAvLyB0aGlzIHdvcmtzIGluIDk5Ljk5JSBvZiBjYXNlc1xuICAgICAgICBzcGF3blNhZmVTeW5jKGB5YXJuYCwgW1wiaW5zdGFsbFwiLCBcIi0taWdub3JlLWVuZ2luZXNcIl0sIHtcbiAgICAgICAgICBjd2Q6IHRtcFJlcG9OcG1Sb290LFxuICAgICAgICAgIGxvZ1N0ZEVyck9uRXJyb3I6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyB0cnkgYWdhaW4gd2hpbGUgaWdub3Jpbmcgc2NyaXB0cyBpbiBjYXNlIHRoZSBzY3JpcHQgZGVwZW5kcyBvblxuICAgICAgICAvLyBhbiBpbXBsaWNpdCBjb250ZXh0IHdoaWNoIHdlIGhhdm4ndCByZXByb2R1Y2VkXG4gICAgICAgIHNwYXduU2FmZVN5bmMoXG4gICAgICAgICAgYHlhcm5gLFxuICAgICAgICAgIFtcImluc3RhbGxcIiwgXCItLWlnbm9yZS1lbmdpbmVzXCIsIFwiLS1pZ25vcmUtc2NyaXB0c1wiXSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjd2Q6IHRtcFJlcG9OcG1Sb290LFxuICAgICAgICAgIH0sXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5pbmZvKFxuICAgICAgICBjaGFsay5ncmV5KFwi4oCiXCIpLFxuICAgICAgICBgSW5zdGFsbGluZyAke3BhY2thZ2VEZXRhaWxzLm5hbWV9QCR7cGFja2FnZVZlcnNpb259IHdpdGggbnBtYCxcbiAgICAgIClcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIHRyeSBmaXJzdCB3aXRob3V0IGlnbm9yaW5nIHNjcmlwdHMgaW4gY2FzZSB0aGV5IGFyZSByZXF1aXJlZFxuICAgICAgICAvLyB0aGlzIHdvcmtzIGluIDk5Ljk5JSBvZiBjYXNlc1xuICAgICAgICBzcGF3blNhZmVTeW5jKGBucG1gLCBbXCJpXCIsIFwiLS1mb3JjZVwiXSwge1xuICAgICAgICAgIGN3ZDogdG1wUmVwb05wbVJvb3QsXG4gICAgICAgICAgbG9nU3RkRXJyT25FcnJvcjogZmFsc2UsXG4gICAgICAgICAgc3RkaW86IFwiaWdub3JlXCIsXG4gICAgICAgIH0pXG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIHRyeSBhZ2FpbiB3aGlsZSBpZ25vcmluZyBzY3JpcHRzIGluIGNhc2UgdGhlIHNjcmlwdCBkZXBlbmRzIG9uXG4gICAgICAgIC8vIGFuIGltcGxpY2l0IGNvbnRleHQgd2hpY2ggd2UgaGF2bid0IHJlcHJvZHVjZWRcbiAgICAgICAgc3Bhd25TYWZlU3luYyhgbnBtYCwgW1wiaVwiLCBcIi0taWdub3JlLXNjcmlwdHNcIiwgXCItLWZvcmNlXCJdLCB7XG4gICAgICAgICAgY3dkOiB0bXBSZXBvTnBtUm9vdCxcbiAgICAgICAgICBzdGRpbzogXCJpZ25vcmVcIixcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnaXQgPSAoLi4uYXJnczogc3RyaW5nW10pID0+XG4gICAgICBzcGF3blNhZmVTeW5jKFwiZ2l0XCIsIGFyZ3MsIHtcbiAgICAgICAgY3dkOiB0bXBSZXBvLm5hbWUsXG4gICAgICAgIGVudjogeyAuLi5wcm9jZXNzLmVudiwgSE9NRTogdG1wUmVwby5uYW1lIH0sXG4gICAgICAgIG1heEJ1ZmZlcjogMTAyNCAqIDEwMjQgKiAxMDAsXG4gICAgICB9KVxuXG4gICAgLy8gcmVtb3ZlIG5lc3RlZCBub2RlX21vZHVsZXMganVzdCB0byBiZSBzYWZlXG4gICAgcmltcmFmKGpvaW4odG1wUmVwb1BhY2thZ2VQYXRoLCBcIm5vZGVfbW9kdWxlc1wiKSlcbiAgICAvLyByZW1vdmUgLmdpdCBqdXN0IHRvIGJlIHNhZmVcbiAgICByaW1yYWYoam9pbih0bXBSZXBvUGFja2FnZVBhdGgsIFwiLmdpdFwiKSlcblxuICAgIC8vIGNvbW1pdCB0aGUgcGFja2FnZVxuICAgIGNvbnNvbGUuaW5mbyhjaGFsay5ncmV5KFwi4oCiXCIpLCBcIkRpZmZpbmcgeW91ciBmaWxlcyB3aXRoIGNsZWFuIGZpbGVzXCIpXG4gICAgd3JpdGVGaWxlU3luYyhqb2luKHRtcFJlcG8ubmFtZSwgXCIuZ2l0aWdub3JlXCIpLCBcIiEvbm9kZV9tb2R1bGVzXFxuXFxuXCIpXG4gICAgZ2l0KFwiaW5pdFwiKVxuICAgIGdpdChcImNvbmZpZ1wiLCBcIi0tbG9jYWxcIiwgXCJ1c2VyLm5hbWVcIiwgXCJwYXRjaC1wYWNrYWdlXCIpXG4gICAgZ2l0KFwiY29uZmlnXCIsIFwiLS1sb2NhbFwiLCBcInVzZXIuZW1haWxcIiwgXCJwYXRjaEBwYWNrLmFnZVwiKVxuXG4gICAgLy8gcmVtb3ZlIGlnbm9yZWQgZmlsZXMgZmlyc3RcbiAgICByZW1vdmVJZ25vcmVkRmlsZXModG1wUmVwb1BhY2thZ2VQYXRoLCBpbmNsdWRlUGF0aHMsIGV4Y2x1ZGVQYXRocylcblxuICAgIGdpdChcImFkZFwiLCBcIi1mXCIsIHBhY2thZ2VEZXRhaWxzLnBhdGgpXG4gICAgZ2l0KFwiY29tbWl0XCIsIFwiLS1hbGxvdy1lbXB0eVwiLCBcIi1tXCIsIFwiaW5pdFwiKVxuXG4gICAgLy8gcmVwbGFjZSBwYWNrYWdlIHdpdGggdXNlcidzIHZlcnNpb25cbiAgICByaW1yYWYodG1wUmVwb1BhY2thZ2VQYXRoKVxuXG4gICAgLy8gcG5wbSBpbnN0YWxscyBwYWNrYWdlcyBhcyBzeW1saW5rcywgY29weVN5bmMgd291bGQgY29weSBvbmx5IHRoZSBzeW1saW5rXG4gICAgY29weVN5bmMocmVhbHBhdGhTeW5jKHBhY2thZ2VQYXRoKSwgdG1wUmVwb1BhY2thZ2VQYXRoKVxuXG4gICAgLy8gcmVtb3ZlIG5lc3RlZCBub2RlX21vZHVsZXMganVzdCB0byBiZSBzYWZlXG4gICAgcmltcmFmKGpvaW4odG1wUmVwb1BhY2thZ2VQYXRoLCBcIm5vZGVfbW9kdWxlc1wiKSlcbiAgICAvLyByZW1vdmUgLmdpdCBqdXN0IHRvIGJlIHNhZmVcbiAgICByaW1yYWYoam9pbih0bXBSZXBvUGFja2FnZVBhdGgsIFwiLmdpdFwiKSlcblxuICAgIC8vIGFsc28gcmVtb3ZlIGlnbm9yZWQgZmlsZXMgbGlrZSBiZWZvcmVcbiAgICByZW1vdmVJZ25vcmVkRmlsZXModG1wUmVwb1BhY2thZ2VQYXRoLCBpbmNsdWRlUGF0aHMsIGV4Y2x1ZGVQYXRocylcblxuICAgIC8vIHN0YWdlIGFsbCBmaWxlc1xuICAgIGdpdChcImFkZFwiLCBcIi1mXCIsIHBhY2thZ2VEZXRhaWxzLnBhdGgpXG5cbiAgICAvLyBnZXQgZGlmZiBvZiBjaGFuZ2VzXG4gICAgY29uc3QgZGlmZlJlc3VsdCA9IGdpdChcbiAgICAgIFwiZGlmZlwiLFxuICAgICAgXCItLWNhY2hlZFwiLFxuICAgICAgXCItLW5vLWNvbG9yXCIsXG4gICAgICBcIi0taWdub3JlLXNwYWNlLWF0LWVvbFwiLFxuICAgICAgXCItLW5vLWV4dC1kaWZmXCIsXG4gICAgKVxuXG4gICAgaWYgKGRpZmZSZXN1bHQuc3Rkb3V0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBg4oGJ77iPICBOb3QgY3JlYXRpbmcgcGF0Y2ggZmlsZSBmb3IgcGFja2FnZSAnJHtwYWNrYWdlUGF0aFNwZWNpZmllcn0nYCxcbiAgICAgIClcbiAgICAgIGNvbnNvbGUud2Fybihg4oGJ77iPICBUaGVyZSBkb24ndCBhcHBlYXIgdG8gYmUgYW55IGNoYW5nZXMuYClcbiAgICAgIHByb2Nlc3MuZXhpdCgxKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHBhcnNlUGF0Y2hGaWxlKGRpZmZSZXN1bHQuc3Rkb3V0LnRvU3RyaW5nKCkpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKFxuICAgICAgICAoZSBhcyBFcnJvcikubWVzc2FnZS5pbmNsdWRlcyhcIlVuZXhwZWN0ZWQgZmlsZSBtb2RlIHN0cmluZzogMTIwMDAwXCIpXG4gICAgICApIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgXG7im5TvuI8gJHtjaGFsay5yZWQuYm9sZChcIkVSUk9SXCIpfVxuXG4gIFlvdXIgY2hhbmdlcyBpbnZvbHZlIGNyZWF0aW5nIHN5bWxpbmtzLiBwYXRjaC1wYWNrYWdlIGRvZXMgbm90IHlldCBzdXBwb3J0XG4gIHN5bWxpbmtzLlxuICBcbiAg77iPUGxlYXNlIHVzZSAke2NoYWxrLmJvbGQoXCItLWluY2x1ZGVcIil9IGFuZC9vciAke2NoYWxrLmJvbGQoXG4gICAgICAgICAgXCItLWV4Y2x1ZGVcIixcbiAgICAgICAgKX0gdG8gbmFycm93IHRoZSBzY29wZSBvZiB5b3VyIHBhdGNoIGlmXG4gIHRoaXMgd2FzIHVuaW50ZW50aW9uYWwuXG5gKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgb3V0UGF0aCA9IFwiLi9wYXRjaC1wYWNrYWdlLWVycm9yLmpzb24uZ3pcIlxuICAgICAgICB3cml0ZUZpbGVTeW5jKFxuICAgICAgICAgIG91dFBhdGgsXG4gICAgICAgICAgZ3ppcFN5bmMoXG4gICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgIGVycm9yOiB7IG1lc3NhZ2U6IGUubWVzc2FnZSwgc3RhY2s6IGUuc3RhY2sgfSxcbiAgICAgICAgICAgICAgcGF0Y2g6IGRpZmZSZXN1bHQuc3Rkb3V0LnRvU3RyaW5nKCksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApLFxuICAgICAgICApXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFxu4puU77iPICR7Y2hhbGsucmVkLmJvbGQoXCJFUlJPUlwiKX1cbiAgICAgICAgXG4gIHBhdGNoLXBhY2thZ2Ugd2FzIHVuYWJsZSB0byByZWFkIHRoZSBwYXRjaC1maWxlIG1hZGUgYnkgZ2l0LiBUaGlzIHNob3VsZCBub3RcbiAgaGFwcGVuLlxuICBcbiAgQSBkaWFnbm9zdGljIGZpbGUgd2FzIHdyaXR0ZW4gdG9cbiAgXG4gICAgJHtvdXRQYXRofVxuICBcbiAgUGxlYXNlIGF0dGFjaCBpdCB0byBhIGdpdGh1YiBpc3N1ZVxuICBcbiAgICBodHRwczovL2dpdGh1Yi5jb20vZHMzMDAvcGF0Y2gtcGFja2FnZS9pc3N1ZXMvbmV3P3RpdGxlPU5ldytwYXRjaCtwYXJzZStmYWlsZWQmYm9keT1QbGVhc2UrYXR0YWNoK3RoZStkaWFnbm9zdGljK2ZpbGUrYnkrZHJhZ2dpbmcraXQraW50bytoZXJlK/CfmY9cbiAgXG4gIE5vdGUgdGhhdCB0aGlzIGRpYWdub3N0aWMgZmlsZSB3aWxsIGNvbnRhaW4gY29kZSBmcm9tIHRoZSBwYWNrYWdlIHlvdSB3ZXJlXG4gIGF0dGVtcHRpbmcgdG8gcGF0Y2guXG5cbmApXG4gICAgICB9XG4gICAgICBwcm9jZXNzLmV4aXQoMSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIG1heWJlIGRlbGV0ZSBleGlzdGluZ1xuICAgIGdldFBhdGNoRmlsZXMocGF0Y2hEaXIpLmZvckVhY2goKGZpbGVuYW1lKSA9PiB7XG4gICAgICBjb25zdCBkZWV0cyA9IGdldFBhY2thZ2VEZXRhaWxzRnJvbVBhdGNoRmlsZW5hbWUoZmlsZW5hbWUpXG4gICAgICBpZiAoZGVldHMgJiYgZGVldHMucGF0aCA9PT0gcGFja2FnZURldGFpbHMucGF0aCkge1xuICAgICAgICB1bmxpbmtTeW5jKGpvaW4ocGF0Y2hEaXIsIGZpbGVuYW1lKSlcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgY29uc3QgcGF0Y2hGaWxlTmFtZSA9IGNyZWF0ZVBhdGNoRmlsZU5hbWUoe1xuICAgICAgcGFja2FnZURldGFpbHMsXG4gICAgICBwYWNrYWdlVmVyc2lvbixcbiAgICB9KVxuXG4gICAgY29uc3QgcGF0Y2hQYXRoID0gam9pbihwYXRjaGVzRGlyLCBwYXRjaEZpbGVOYW1lKVxuICAgIGlmICghZXhpc3RzU3luYyhkaXJuYW1lKHBhdGNoUGF0aCkpKSB7XG4gICAgICAvLyBzY29wZWQgcGFja2FnZVxuICAgICAgbWtkaXJTeW5jKGRpcm5hbWUocGF0Y2hQYXRoKSlcbiAgICB9XG4gICAgd3JpdGVGaWxlU3luYyhwYXRjaFBhdGgsIGRpZmZSZXN1bHQuc3Rkb3V0KVxuICAgIGNvbnNvbGUubG9nKFxuICAgICAgYCR7Y2hhbGsuZ3JlZW4oXCLinJRcIil9IENyZWF0ZWQgZmlsZSAke2pvaW4ocGF0Y2hEaXIsIHBhdGNoRmlsZU5hbWUpfVxcbmAsXG4gICAgKVxuICAgIGlmIChjcmVhdGVJc3N1ZSkge1xuICAgICAgb3Blbklzc3VlQ3JlYXRpb25MaW5rKHtcbiAgICAgICAgcGFja2FnZURldGFpbHMsXG4gICAgICAgIHBhdGNoRmlsZUNvbnRlbnRzOiBkaWZmUmVzdWx0LnN0ZG91dC50b1N0cmluZygpLFxuICAgICAgICBwYWNrYWdlVmVyc2lvbixcbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIG1heWJlUHJpbnRJc3N1ZUNyZWF0aW9uUHJvbXB0KHBhY2thZ2VEZXRhaWxzLCBwYWNrYWdlTWFuYWdlcilcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLmVycm9yKGUpXG4gICAgdGhyb3cgZVxuICB9IGZpbmFsbHkge1xuICAgIHRtcFJlcG8ucmVtb3ZlQ2FsbGJhY2soKVxuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVBhdGNoRmlsZU5hbWUoe1xuICBwYWNrYWdlRGV0YWlscyxcbiAgcGFja2FnZVZlcnNpb24sXG59OiB7XG4gIHBhY2thZ2VEZXRhaWxzOiBQYWNrYWdlRGV0YWlsc1xuICBwYWNrYWdlVmVyc2lvbjogc3RyaW5nXG59KSB7XG4gIGNvbnN0IHBhY2thZ2VOYW1lcyA9IHBhY2thZ2VEZXRhaWxzLnBhY2thZ2VOYW1lc1xuICAgIC5tYXAoKG5hbWUpID0+IG5hbWUucmVwbGFjZSgvXFwvL2csIFwiK1wiKSlcbiAgICAuam9pbihcIisrXCIpXG5cbiAgcmV0dXJuIGAke3BhY2thZ2VOYW1lc30rJHtwYWNrYWdlVmVyc2lvbn0ucGF0Y2hgXG59XG4iXX0=
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.makeRegExp = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const makeRegExp = (reString, name, defaultValue, caseSensitive) => {
9
+ if (!reString) {
10
+ return defaultValue;
11
+ }
12
+ else {
13
+ try {
14
+ return new RegExp(reString, caseSensitive ? "" : "i");
15
+ }
16
+ catch (_) {
17
+ console.error(`${chalk_1.default.red.bold("***ERROR***")}
18
+ Invalid format for option --${name}
19
+
20
+ Unable to convert the string ${JSON.stringify(reString)} to a regular expression.
21
+ `);
22
+ process.exit(1);
23
+ return /unreachable/;
24
+ }
25
+ }
26
+ };
27
+ exports.makeRegExp = makeRegExp;
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZVJlZ0V4cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWtlUmVnRXhwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUF5QjtBQUVsQixNQUFNLFVBQVUsR0FBRyxDQUN4QixRQUFnQixFQUNoQixJQUFZLEVBQ1osWUFBb0IsRUFDcEIsYUFBc0IsRUFDZCxFQUFFO0lBQ1YsSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUNiLE9BQU8sWUFBWSxDQUFBO0tBQ3BCO1NBQU07UUFDTCxJQUFJO1lBQ0YsT0FBTyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ3REO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsZUFBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDOzhCQUN0QixJQUFJOztpQ0FFRCxJQUFJLENBQUMsU0FBUyxDQUMzQyxRQUFRLENBQ1Q7Q0FDRixDQUFDLENBQUE7WUFFSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ2YsT0FBTyxhQUFhLENBQUE7U0FDckI7S0FDRjtBQUNILENBQUMsQ0FBQTtBQXhCWSxRQUFBLFVBQVUsY0F3QnRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNoYWxrIGZyb20gXCJjaGFsa1wiXG5cbmV4cG9ydCBjb25zdCBtYWtlUmVnRXhwID0gKFxuICByZVN0cmluZzogc3RyaW5nLFxuICBuYW1lOiBzdHJpbmcsXG4gIGRlZmF1bHRWYWx1ZTogUmVnRXhwLFxuICBjYXNlU2Vuc2l0aXZlOiBib29sZWFuLFxuKTogUmVnRXhwID0+IHtcbiAgaWYgKCFyZVN0cmluZykge1xuICAgIHJldHVybiBkZWZhdWx0VmFsdWVcbiAgfSBlbHNlIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIG5ldyBSZWdFeHAocmVTdHJpbmcsIGNhc2VTZW5zaXRpdmUgPyBcIlwiIDogXCJpXCIpXG4gICAgfSBjYXRjaCAoXykge1xuICAgICAgY29uc29sZS5lcnJvcihgJHtjaGFsay5yZWQuYm9sZChcIioqKkVSUk9SKioqXCIpfVxuSW52YWxpZCBmb3JtYXQgZm9yIG9wdGlvbiAtLSR7bmFtZX1cblxuICBVbmFibGUgdG8gY29udmVydCB0aGUgc3RyaW5nICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgcmVTdHJpbmcsXG4gICl9IHRvIGEgcmVndWxhciBleHByZXNzaW9uLlxuYClcblxuICAgICAgcHJvY2Vzcy5leGl0KDEpXG4gICAgICByZXR1cm4gL3VucmVhY2hhYmxlL1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.packageIsDevDependency = void 0;
4
+ const path_1 = require("./path");
5
+ const fs_1 = require("fs");
6
+ function packageIsDevDependency({ appPath, packageDetails, }) {
7
+ const packageJsonPath = path_1.join(appPath, "package.json");
8
+ if (!fs_1.existsSync(packageJsonPath)) {
9
+ return false;
10
+ }
11
+ const { devDependencies } = require(packageJsonPath);
12
+ return Boolean(devDependencies && devDependencies[packageDetails.packageNames[0]]);
13
+ }
14
+ exports.packageIsDevDependency = packageIsDevDependency;
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZUlzRGV2RGVwZW5kZW5jeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wYWNrYWdlSXNEZXZEZXBlbmRlbmN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLGlDQUE2QjtBQUM3QiwyQkFBK0I7QUFFL0IsU0FBZ0Isc0JBQXNCLENBQUMsRUFDckMsT0FBTyxFQUNQLGNBQWMsR0FJZjtJQUNDLE1BQU0sZUFBZSxHQUFHLFdBQUksQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFDckQsSUFBSSxDQUFDLGVBQVUsQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUNoQyxPQUFPLEtBQUssQ0FBQTtLQUNiO0lBQ0QsTUFBTSxFQUFFLGVBQWUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUNwRCxPQUFPLE9BQU8sQ0FBQyxlQUFlLElBQUksZUFBZSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ3BGLENBQUM7QUFiRCx3REFhQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhdGNoZWRQYWNrYWdlRGV0YWlscyB9IGZyb20gXCIuL1BhY2thZ2VEZXRhaWxzXCJcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwiLi9wYXRoXCJcbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tIFwiZnNcIlxuXG5leHBvcnQgZnVuY3Rpb24gcGFja2FnZUlzRGV2RGVwZW5kZW5jeSh7XG4gIGFwcFBhdGgsXG4gIHBhY2thZ2VEZXRhaWxzLFxufToge1xuICBhcHBQYXRoOiBzdHJpbmdcbiAgcGFja2FnZURldGFpbHM6IFBhdGNoZWRQYWNrYWdlRGV0YWlsc1xufSkge1xuICBjb25zdCBwYWNrYWdlSnNvblBhdGggPSBqb2luKGFwcFBhdGgsIFwicGFja2FnZS5qc29uXCIpXG4gIGlmICghZXhpc3RzU3luYyhwYWNrYWdlSnNvblBhdGgpKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgY29uc3QgeyBkZXZEZXBlbmRlbmNpZXMgfSA9IHJlcXVpcmUocGFja2FnZUpzb25QYXRoKVxuICByZXR1cm4gQm9vbGVhbihkZXZEZXBlbmRlbmNpZXMgJiYgZGV2RGVwZW5kZW5jaWVzW3BhY2thZ2VEZXRhaWxzLnBhY2thZ2VOYW1lc1swXV0pXG59XG4iXX0=
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const packageIsDevDependency_1 = require("./packageIsDevDependency");
4
+ const path_1 = require("./path");
5
+ const path_2 = require("path");
6
+ const PackageDetails_1 = require("./PackageDetails");
7
+ const fs_1 = require("fs");
8
+ const appPath = path_2.normalize(path_1.join(__dirname, "../"));
9
+ describe(packageIsDevDependency_1.packageIsDevDependency, () => {
10
+ it("returns true if package is a dev dependency", () => {
11
+ expect(packageIsDevDependency_1.packageIsDevDependency({
12
+ appPath,
13
+ packageDetails: PackageDetails_1.getPackageDetailsFromPatchFilename("typescript+3.0.1.patch"),
14
+ })).toBe(true);
15
+ });
16
+ it("returns false if package is not a dev dependency", () => {
17
+ expect(packageIsDevDependency_1.packageIsDevDependency({
18
+ appPath,
19
+ packageDetails: PackageDetails_1.getPackageDetailsFromPatchFilename("chalk+3.0.1.patch"),
20
+ })).toBe(false);
21
+ });
22
+ it("returns false if package is a transitive dependency of a dev dependency", () => {
23
+ expect(fs_1.existsSync(path_1.join(appPath, "node_modules/cosmiconfig"))).toBe(true);
24
+ expect(packageIsDevDependency_1.packageIsDevDependency({
25
+ appPath,
26
+ packageDetails: PackageDetails_1.getPackageDetailsFromPatchFilename(
27
+ // cosmiconfig is a transitive dep of lint-staged
28
+ "cosmiconfig+3.0.1.patch"),
29
+ })).toBe(false);
30
+ });
31
+ });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZUlzRGV2RGVwZW5kZW5jeS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3BhY2thZ2VJc0RldkRlcGVuZGVuY3kudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFFQUFpRTtBQUNqRSxpQ0FBNkI7QUFDN0IsK0JBQWdDO0FBQ2hDLHFEQUFxRTtBQUNyRSwyQkFBK0I7QUFFL0IsTUFBTSxPQUFPLEdBQUcsZ0JBQVMsQ0FBQyxXQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUE7QUFFakQsUUFBUSxDQUFDLCtDQUFzQixFQUFFLEdBQUcsRUFBRTtJQUNwQyxFQUFFLENBQUMsNkNBQTZDLEVBQUUsR0FBRyxFQUFFO1FBQ3JELE1BQU0sQ0FDSiwrQ0FBc0IsQ0FBQztZQUNyQixPQUFPO1lBQ1AsY0FBYyxFQUFFLG1EQUFrQyxDQUNoRCx3QkFBd0IsQ0FDeEI7U0FDSCxDQUFDLENBQ0gsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDZCxDQUFDLENBQUMsQ0FBQTtJQUNGLEVBQUUsQ0FBQyxrREFBa0QsRUFBRSxHQUFHLEVBQUU7UUFDMUQsTUFBTSxDQUNKLCtDQUFzQixDQUFDO1lBQ3JCLE9BQU87WUFDUCxjQUFjLEVBQUUsbURBQWtDLENBQ2hELG1CQUFtQixDQUNuQjtTQUNILENBQUMsQ0FDSCxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNmLENBQUMsQ0FBQyxDQUFBO0lBQ0YsRUFBRSxDQUFDLHlFQUF5RSxFQUFFLEdBQUcsRUFBRTtRQUNqRixNQUFNLENBQUMsZUFBVSxDQUFDLFdBQUksQ0FBQyxPQUFPLEVBQUUsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3hFLE1BQU0sQ0FDSiwrQ0FBc0IsQ0FBQztZQUNyQixPQUFPO1lBQ1AsY0FBYyxFQUFFLG1EQUFrQztZQUNoRCxpREFBaUQ7WUFDakQseUJBQXlCLENBQ3pCO1NBQ0gsQ0FBQyxDQUNILENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2YsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhY2thZ2VJc0RldkRlcGVuZGVuY3kgfSBmcm9tIFwiLi9wYWNrYWdlSXNEZXZEZXBlbmRlbmN5XCJcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwiLi9wYXRoXCJcbmltcG9ydCB7IG5vcm1hbGl6ZSB9IGZyb20gXCJwYXRoXCJcbmltcG9ydCB7IGdldFBhY2thZ2VEZXRhaWxzRnJvbVBhdGNoRmlsZW5hbWUgfSBmcm9tIFwiLi9QYWNrYWdlRGV0YWlsc1wiXG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSBcImZzXCJcblxuY29uc3QgYXBwUGF0aCA9IG5vcm1hbGl6ZShqb2luKF9fZGlybmFtZSwgXCIuLi9cIikpXG5cbmRlc2NyaWJlKHBhY2thZ2VJc0RldkRlcGVuZGVuY3ksICgpID0+IHtcbiAgaXQoXCJyZXR1cm5zIHRydWUgaWYgcGFja2FnZSBpcyBhIGRldiBkZXBlbmRlbmN5XCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBwYWNrYWdlSXNEZXZEZXBlbmRlbmN5KHtcbiAgICAgICAgYXBwUGF0aCxcbiAgICAgICAgcGFja2FnZURldGFpbHM6IGdldFBhY2thZ2VEZXRhaWxzRnJvbVBhdGNoRmlsZW5hbWUoXG4gICAgICAgICAgXCJ0eXBlc2NyaXB0KzMuMC4xLnBhdGNoXCIsXG4gICAgICAgICkhLFxuICAgICAgfSksXG4gICAgKS50b0JlKHRydWUpXG4gIH0pXG4gIGl0KFwicmV0dXJucyBmYWxzZSBpZiBwYWNrYWdlIGlzIG5vdCBhIGRldiBkZXBlbmRlbmN5XCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBwYWNrYWdlSXNEZXZEZXBlbmRlbmN5KHtcbiAgICAgICAgYXBwUGF0aCxcbiAgICAgICAgcGFja2FnZURldGFpbHM6IGdldFBhY2thZ2VEZXRhaWxzRnJvbVBhdGNoRmlsZW5hbWUoXG4gICAgICAgICAgXCJjaGFsayszLjAuMS5wYXRjaFwiLFxuICAgICAgICApISxcbiAgICAgIH0pLFxuICAgICkudG9CZShmYWxzZSlcbiAgfSlcbiAgaXQoXCJyZXR1cm5zIGZhbHNlIGlmIHBhY2thZ2UgaXMgYSB0cmFuc2l0aXZlIGRlcGVuZGVuY3kgb2YgYSBkZXYgZGVwZW5kZW5jeVwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KGV4aXN0c1N5bmMoam9pbihhcHBQYXRoLCBcIm5vZGVfbW9kdWxlcy9jb3NtaWNvbmZpZ1wiKSkpLnRvQmUodHJ1ZSlcbiAgICBleHBlY3QoXG4gICAgICBwYWNrYWdlSXNEZXZEZXBlbmRlbmN5KHtcbiAgICAgICAgYXBwUGF0aCxcbiAgICAgICAgcGFja2FnZURldGFpbHM6IGdldFBhY2thZ2VEZXRhaWxzRnJvbVBhdGNoRmlsZW5hbWUoXG4gICAgICAgICAgLy8gY29zbWljb25maWcgaXMgYSB0cmFuc2l0aXZlIGRlcCBvZiBsaW50LXN0YWdlZFxuICAgICAgICAgIFwiY29zbWljb25maWcrMy4wLjEucGF0Y2hcIixcbiAgICAgICAgKSEsXG4gICAgICB9KSxcbiAgICApLnRvQmUoZmFsc2UpXG4gIH0pXG59KVxuIl19