@cdktn/provider-project 0.7.24

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 (330) hide show
  1. package/.jsii +419 -0
  2. package/API.md +4154 -0
  3. package/CLAUDE.md +172 -0
  4. package/LICENSE +355 -0
  5. package/README.md +82 -0
  6. package/lib/alert-open-prs.d.ts +14 -0
  7. package/lib/alert-open-prs.js +67 -0
  8. package/lib/auto-approve.d.ts +11 -0
  9. package/lib/auto-approve.js +70 -0
  10. package/lib/auto-close-community-issues.d.ts +15 -0
  11. package/lib/auto-close-community-issues.js +104 -0
  12. package/lib/automerge.d.ts +11 -0
  13. package/lib/automerge.js +67 -0
  14. package/lib/cdktf-config.d.ts +33 -0
  15. package/lib/cdktf-config.js +134 -0
  16. package/lib/copyright-headers.d.ts +4 -0
  17. package/lib/copyright-headers.js +44 -0
  18. package/lib/customized-license.d.ts +8 -0
  19. package/lib/customized-license.js +19 -0
  20. package/lib/dependabot.d.ts +8 -0
  21. package/lib/dependabot.js +40 -0
  22. package/lib/deprecate-packages.d.ts +14 -0
  23. package/lib/deprecate-packages.js +91 -0
  24. package/lib/force-release.d.ts +12 -0
  25. package/lib/force-release.js +112 -0
  26. package/lib/github-issues.d.ts +15 -0
  27. package/lib/github-issues.js +33 -0
  28. package/lib/index.d.ts +53 -0
  29. package/lib/index.js +447 -0
  30. package/lib/lock-issues.d.ts +13 -0
  31. package/lib/lock-issues.js +54 -0
  32. package/lib/package-info.d.ts +14 -0
  33. package/lib/package-info.js +7 -0
  34. package/lib/provider-upgrade.d.ts +17 -0
  35. package/lib/provider-upgrade.js +145 -0
  36. package/lib/readme.d.ts +21 -0
  37. package/lib/readme.js +147 -0
  38. package/lib/scripts/check-for-upgrades.d.ts +15 -0
  39. package/lib/scripts/check-for-upgrades.js +186 -0
  40. package/lib/scripts/should-release.d.ts +13 -0
  41. package/lib/scripts/should-release.js +96 -0
  42. package/lib/util/random-cron.d.ts +18 -0
  43. package/lib/util/random-cron.js +33 -0
  44. package/mise.toml +2 -0
  45. package/node_modules/camel-case/LICENSE +21 -0
  46. package/node_modules/camel-case/README.md +47 -0
  47. package/node_modules/camel-case/dist/index.d.ts +5 -0
  48. package/node_modules/camel-case/dist/index.js +23 -0
  49. package/node_modules/camel-case/dist/index.js.map +1 -0
  50. package/node_modules/camel-case/dist/index.spec.d.ts +1 -0
  51. package/node_modules/camel-case/dist/index.spec.js +26 -0
  52. package/node_modules/camel-case/dist/index.spec.js.map +1 -0
  53. package/node_modules/camel-case/dist.es2015/index.d.ts +5 -0
  54. package/node_modules/camel-case/dist.es2015/index.js +17 -0
  55. package/node_modules/camel-case/dist.es2015/index.js.map +1 -0
  56. package/node_modules/camel-case/dist.es2015/index.spec.d.ts +1 -0
  57. package/node_modules/camel-case/dist.es2015/index.spec.js +24 -0
  58. package/node_modules/camel-case/dist.es2015/index.spec.js.map +1 -0
  59. package/node_modules/camel-case/package.json +89 -0
  60. package/node_modules/capital-case/LICENSE +21 -0
  61. package/node_modules/capital-case/README.md +37 -0
  62. package/node_modules/capital-case/dist/index.d.ts +4 -0
  63. package/node_modules/capital-case/dist/index.js +16 -0
  64. package/node_modules/capital-case/dist/index.js.map +1 -0
  65. package/node_modules/capital-case/dist/index.spec.d.ts +1 -0
  66. package/node_modules/capital-case/dist/index.spec.js +24 -0
  67. package/node_modules/capital-case/dist/index.spec.js.map +1 -0
  68. package/node_modules/capital-case/dist.es2015/index.d.ts +4 -0
  69. package/node_modules/capital-case/dist.es2015/index.js +11 -0
  70. package/node_modules/capital-case/dist.es2015/index.js.map +1 -0
  71. package/node_modules/capital-case/dist.es2015/index.spec.d.ts +1 -0
  72. package/node_modules/capital-case/dist.es2015/index.spec.js +22 -0
  73. package/node_modules/capital-case/dist.es2015/index.spec.js.map +1 -0
  74. package/node_modules/capital-case/package.json +90 -0
  75. package/node_modules/change-case/LICENSE +21 -0
  76. package/node_modules/change-case/README.md +44 -0
  77. package/node_modules/change-case/dist/index.d.ts +11 -0
  78. package/node_modules/change-case/dist/index.js +15 -0
  79. package/node_modules/change-case/dist/index.js.map +1 -0
  80. package/node_modules/change-case/dist/index.spec.d.ts +1 -0
  81. package/node_modules/change-case/dist/index.spec.js +9 -0
  82. package/node_modules/change-case/dist/index.spec.js.map +1 -0
  83. package/node_modules/change-case/dist.es2015/index.d.ts +11 -0
  84. package/node_modules/change-case/dist.es2015/index.js +12 -0
  85. package/node_modules/change-case/dist.es2015/index.js.map +1 -0
  86. package/node_modules/change-case/dist.es2015/index.spec.d.ts +1 -0
  87. package/node_modules/change-case/dist.es2015/index.spec.js +7 -0
  88. package/node_modules/change-case/dist.es2015/index.spec.js.map +1 -0
  89. package/node_modules/change-case/package.json +101 -0
  90. package/node_modules/constant-case/LICENSE +21 -0
  91. package/node_modules/constant-case/README.md +37 -0
  92. package/node_modules/constant-case/dist/index.d.ts +3 -0
  93. package/node_modules/constant-case/dist/index.js +12 -0
  94. package/node_modules/constant-case/dist/index.js.map +1 -0
  95. package/node_modules/constant-case/dist/index.spec.d.ts +1 -0
  96. package/node_modules/constant-case/dist/index.spec.js +26 -0
  97. package/node_modules/constant-case/dist/index.spec.js.map +1 -0
  98. package/node_modules/constant-case/dist.es2015/index.d.ts +3 -0
  99. package/node_modules/constant-case/dist.es2015/index.js +8 -0
  100. package/node_modules/constant-case/dist.es2015/index.js.map +1 -0
  101. package/node_modules/constant-case/dist.es2015/index.spec.d.ts +1 -0
  102. package/node_modules/constant-case/dist.es2015/index.spec.js +24 -0
  103. package/node_modules/constant-case/dist.es2015/index.spec.js.map +1 -0
  104. package/node_modules/constant-case/package.json +90 -0
  105. package/node_modules/dot-case/LICENSE +21 -0
  106. package/node_modules/dot-case/README.md +37 -0
  107. package/node_modules/dot-case/dist/index.d.ts +3 -0
  108. package/node_modules/dot-case/dist/index.js +11 -0
  109. package/node_modules/dot-case/dist/index.js.map +1 -0
  110. package/node_modules/dot-case/dist/index.spec.d.ts +1 -0
  111. package/node_modules/dot-case/dist/index.spec.js +26 -0
  112. package/node_modules/dot-case/dist/index.spec.js.map +1 -0
  113. package/node_modules/dot-case/dist.es2015/index.d.ts +3 -0
  114. package/node_modules/dot-case/dist.es2015/index.js +7 -0
  115. package/node_modules/dot-case/dist.es2015/index.js.map +1 -0
  116. package/node_modules/dot-case/dist.es2015/index.spec.d.ts +1 -0
  117. package/node_modules/dot-case/dist.es2015/index.spec.js +24 -0
  118. package/node_modules/dot-case/dist.es2015/index.spec.js.map +1 -0
  119. package/node_modules/dot-case/package.json +89 -0
  120. package/node_modules/fs-extra/LICENSE +15 -0
  121. package/node_modules/fs-extra/README.md +262 -0
  122. package/node_modules/fs-extra/lib/copy/copy-sync.js +169 -0
  123. package/node_modules/fs-extra/lib/copy/copy.js +235 -0
  124. package/node_modules/fs-extra/lib/copy/index.js +7 -0
  125. package/node_modules/fs-extra/lib/empty/index.js +39 -0
  126. package/node_modules/fs-extra/lib/ensure/file.js +69 -0
  127. package/node_modules/fs-extra/lib/ensure/index.js +23 -0
  128. package/node_modules/fs-extra/lib/ensure/link.js +64 -0
  129. package/node_modules/fs-extra/lib/ensure/symlink-paths.js +99 -0
  130. package/node_modules/fs-extra/lib/ensure/symlink-type.js +31 -0
  131. package/node_modules/fs-extra/lib/ensure/symlink.js +82 -0
  132. package/node_modules/fs-extra/lib/fs/index.js +128 -0
  133. package/node_modules/fs-extra/lib/index.js +16 -0
  134. package/node_modules/fs-extra/lib/json/index.js +16 -0
  135. package/node_modules/fs-extra/lib/json/jsonfile.js +11 -0
  136. package/node_modules/fs-extra/lib/json/output-json-sync.js +12 -0
  137. package/node_modules/fs-extra/lib/json/output-json.js +12 -0
  138. package/node_modules/fs-extra/lib/mkdirs/index.js +14 -0
  139. package/node_modules/fs-extra/lib/mkdirs/make-dir.js +27 -0
  140. package/node_modules/fs-extra/lib/mkdirs/utils.js +21 -0
  141. package/node_modules/fs-extra/lib/move/index.js +7 -0
  142. package/node_modules/fs-extra/lib/move/move-sync.js +54 -0
  143. package/node_modules/fs-extra/lib/move/move.js +75 -0
  144. package/node_modules/fs-extra/lib/output-file/index.js +40 -0
  145. package/node_modules/fs-extra/lib/path-exists/index.js +12 -0
  146. package/node_modules/fs-extra/lib/remove/index.js +22 -0
  147. package/node_modules/fs-extra/lib/remove/rimraf.js +302 -0
  148. package/node_modules/fs-extra/lib/util/stat.js +154 -0
  149. package/node_modules/fs-extra/lib/util/utimes.js +26 -0
  150. package/node_modules/fs-extra/package.json +67 -0
  151. package/node_modules/graceful-fs/LICENSE +15 -0
  152. package/node_modules/graceful-fs/README.md +143 -0
  153. package/node_modules/graceful-fs/clone.js +23 -0
  154. package/node_modules/graceful-fs/graceful-fs.js +448 -0
  155. package/node_modules/graceful-fs/legacy-streams.js +118 -0
  156. package/node_modules/graceful-fs/package.json +53 -0
  157. package/node_modules/graceful-fs/polyfills.js +355 -0
  158. package/node_modules/header-case/LICENSE +21 -0
  159. package/node_modules/header-case/README.md +37 -0
  160. package/node_modules/header-case/dist/index.d.ts +3 -0
  161. package/node_modules/header-case/dist/index.js +11 -0
  162. package/node_modules/header-case/dist/index.js.map +1 -0
  163. package/node_modules/header-case/dist/index.spec.d.ts +1 -0
  164. package/node_modules/header-case/dist/index.spec.js +24 -0
  165. package/node_modules/header-case/dist/index.spec.js.map +1 -0
  166. package/node_modules/header-case/dist.es2015/index.d.ts +3 -0
  167. package/node_modules/header-case/dist.es2015/index.js +7 -0
  168. package/node_modules/header-case/dist.es2015/index.js.map +1 -0
  169. package/node_modules/header-case/dist.es2015/index.spec.d.ts +1 -0
  170. package/node_modules/header-case/dist.es2015/index.spec.js +22 -0
  171. package/node_modules/header-case/dist.es2015/index.spec.js.map +1 -0
  172. package/node_modules/header-case/package.json +89 -0
  173. package/node_modules/jsonfile/LICENSE +15 -0
  174. package/node_modules/jsonfile/README.md +230 -0
  175. package/node_modules/jsonfile/index.js +88 -0
  176. package/node_modules/jsonfile/package.json +40 -0
  177. package/node_modules/jsonfile/utils.js +14 -0
  178. package/node_modules/lower-case/LICENSE +21 -0
  179. package/node_modules/lower-case/README.md +35 -0
  180. package/node_modules/lower-case/dist/index.d.ts +8 -0
  181. package/node_modules/lower-case/dist/index.js +53 -0
  182. package/node_modules/lower-case/dist/index.js.map +1 -0
  183. package/node_modules/lower-case/dist/index.spec.d.ts +1 -0
  184. package/node_modules/lower-case/dist/index.spec.js +36 -0
  185. package/node_modules/lower-case/dist/index.spec.js.map +1 -0
  186. package/node_modules/lower-case/dist.es2015/index.d.ts +8 -0
  187. package/node_modules/lower-case/dist.es2015/index.js +48 -0
  188. package/node_modules/lower-case/dist.es2015/index.js.map +1 -0
  189. package/node_modules/lower-case/dist.es2015/index.spec.d.ts +1 -0
  190. package/node_modules/lower-case/dist.es2015/index.spec.js +34 -0
  191. package/node_modules/lower-case/dist.es2015/index.spec.js.map +1 -0
  192. package/node_modules/lower-case/package.json +87 -0
  193. package/node_modules/no-case/LICENSE +21 -0
  194. package/node_modules/no-case/README.md +37 -0
  195. package/node_modules/no-case/dist/index.d.ts +10 -0
  196. package/node_modules/no-case/dist/index.js +35 -0
  197. package/node_modules/no-case/dist/index.js.map +1 -0
  198. package/node_modules/no-case/dist/index.spec.d.ts +1 -0
  199. package/node_modules/no-case/dist/index.spec.js +59 -0
  200. package/node_modules/no-case/dist/index.spec.js.map +1 -0
  201. package/node_modules/no-case/dist.es2015/index.d.ts +10 -0
  202. package/node_modules/no-case/dist.es2015/index.js +31 -0
  203. package/node_modules/no-case/dist.es2015/index.js.map +1 -0
  204. package/node_modules/no-case/dist.es2015/index.spec.d.ts +1 -0
  205. package/node_modules/no-case/dist.es2015/index.spec.js +57 -0
  206. package/node_modules/no-case/dist.es2015/index.spec.js.map +1 -0
  207. package/node_modules/no-case/package.json +85 -0
  208. package/node_modules/param-case/LICENSE +21 -0
  209. package/node_modules/param-case/README.md +37 -0
  210. package/node_modules/param-case/dist/index.d.ts +3 -0
  211. package/node_modules/param-case/dist/index.js +11 -0
  212. package/node_modules/param-case/dist/index.js.map +1 -0
  213. package/node_modules/param-case/dist/index.spec.d.ts +1 -0
  214. package/node_modules/param-case/dist/index.spec.js +24 -0
  215. package/node_modules/param-case/dist/index.spec.js.map +1 -0
  216. package/node_modules/param-case/dist.es2015/index.d.ts +3 -0
  217. package/node_modules/param-case/dist.es2015/index.js +7 -0
  218. package/node_modules/param-case/dist.es2015/index.js.map +1 -0
  219. package/node_modules/param-case/dist.es2015/index.spec.d.ts +1 -0
  220. package/node_modules/param-case/dist.es2015/index.spec.js +22 -0
  221. package/node_modules/param-case/dist.es2015/index.spec.js.map +1 -0
  222. package/node_modules/param-case/package.json +91 -0
  223. package/node_modules/pascal-case/LICENSE +21 -0
  224. package/node_modules/pascal-case/README.md +47 -0
  225. package/node_modules/pascal-case/dist/index.d.ts +5 -0
  226. package/node_modules/pascal-case/dist/index.js +24 -0
  227. package/node_modules/pascal-case/dist/index.js.map +1 -0
  228. package/node_modules/pascal-case/dist/index.spec.d.ts +1 -0
  229. package/node_modules/pascal-case/dist/index.spec.js +25 -0
  230. package/node_modules/pascal-case/dist/index.spec.js.map +1 -0
  231. package/node_modules/pascal-case/dist.es2015/index.d.ts +5 -0
  232. package/node_modules/pascal-case/dist.es2015/index.js +18 -0
  233. package/node_modules/pascal-case/dist.es2015/index.js.map +1 -0
  234. package/node_modules/pascal-case/dist.es2015/index.spec.d.ts +1 -0
  235. package/node_modules/pascal-case/dist.es2015/index.spec.js +23 -0
  236. package/node_modules/pascal-case/dist.es2015/index.spec.js.map +1 -0
  237. package/node_modules/pascal-case/package.json +90 -0
  238. package/node_modules/path-case/LICENSE +21 -0
  239. package/node_modules/path-case/README.md +37 -0
  240. package/node_modules/path-case/dist/index.d.ts +3 -0
  241. package/node_modules/path-case/dist/index.js +11 -0
  242. package/node_modules/path-case/dist/index.js.map +1 -0
  243. package/node_modules/path-case/dist/index.spec.d.ts +1 -0
  244. package/node_modules/path-case/dist/index.spec.js +24 -0
  245. package/node_modules/path-case/dist/index.spec.js.map +1 -0
  246. package/node_modules/path-case/dist.es2015/index.d.ts +3 -0
  247. package/node_modules/path-case/dist.es2015/index.js +7 -0
  248. package/node_modules/path-case/dist.es2015/index.js.map +1 -0
  249. package/node_modules/path-case/dist.es2015/index.spec.d.ts +1 -0
  250. package/node_modules/path-case/dist.es2015/index.spec.js +22 -0
  251. package/node_modules/path-case/dist.es2015/index.spec.js.map +1 -0
  252. package/node_modules/path-case/package.json +88 -0
  253. package/node_modules/sentence-case/LICENSE +21 -0
  254. package/node_modules/sentence-case/README.md +37 -0
  255. package/node_modules/sentence-case/dist/index.d.ts +4 -0
  256. package/node_modules/sentence-case/dist/index.js +19 -0
  257. package/node_modules/sentence-case/dist/index.js.map +1 -0
  258. package/node_modules/sentence-case/dist/index.spec.d.ts +1 -0
  259. package/node_modules/sentence-case/dist/index.spec.js +24 -0
  260. package/node_modules/sentence-case/dist/index.spec.js.map +1 -0
  261. package/node_modules/sentence-case/dist.es2015/index.d.ts +4 -0
  262. package/node_modules/sentence-case/dist.es2015/index.js +14 -0
  263. package/node_modules/sentence-case/dist.es2015/index.js.map +1 -0
  264. package/node_modules/sentence-case/dist.es2015/index.spec.d.ts +1 -0
  265. package/node_modules/sentence-case/dist.es2015/index.spec.js +22 -0
  266. package/node_modules/sentence-case/dist.es2015/index.spec.js.map +1 -0
  267. package/node_modules/sentence-case/package.json +89 -0
  268. package/node_modules/snake-case/LICENSE +21 -0
  269. package/node_modules/snake-case/README.md +37 -0
  270. package/node_modules/snake-case/dist/index.d.ts +3 -0
  271. package/node_modules/snake-case/dist/index.js +11 -0
  272. package/node_modules/snake-case/dist/index.js.map +1 -0
  273. package/node_modules/snake-case/dist/index.spec.d.ts +1 -0
  274. package/node_modules/snake-case/dist/index.spec.js +25 -0
  275. package/node_modules/snake-case/dist/index.spec.js.map +1 -0
  276. package/node_modules/snake-case/dist.es2015/index.d.ts +3 -0
  277. package/node_modules/snake-case/dist.es2015/index.js +7 -0
  278. package/node_modules/snake-case/dist.es2015/index.js.map +1 -0
  279. package/node_modules/snake-case/dist.es2015/index.spec.d.ts +1 -0
  280. package/node_modules/snake-case/dist.es2015/index.spec.js +23 -0
  281. package/node_modules/snake-case/dist.es2015/index.spec.js.map +1 -0
  282. package/node_modules/snake-case/package.json +90 -0
  283. package/node_modules/tslib/CopyrightNotice.txt +15 -0
  284. package/node_modules/tslib/LICENSE.txt +12 -0
  285. package/node_modules/tslib/README.md +164 -0
  286. package/node_modules/tslib/SECURITY.md +41 -0
  287. package/node_modules/tslib/modules/index.d.ts +38 -0
  288. package/node_modules/tslib/modules/index.js +70 -0
  289. package/node_modules/tslib/modules/package.json +3 -0
  290. package/node_modules/tslib/package.json +47 -0
  291. package/node_modules/tslib/tslib.d.ts +460 -0
  292. package/node_modules/tslib/tslib.es6.html +1 -0
  293. package/node_modules/tslib/tslib.es6.js +402 -0
  294. package/node_modules/tslib/tslib.es6.mjs +401 -0
  295. package/node_modules/tslib/tslib.html +1 -0
  296. package/node_modules/tslib/tslib.js +484 -0
  297. package/node_modules/universalify/LICENSE +20 -0
  298. package/node_modules/universalify/README.md +76 -0
  299. package/node_modules/universalify/index.js +24 -0
  300. package/node_modules/universalify/package.json +34 -0
  301. package/node_modules/upper-case/README.md +34 -0
  302. package/node_modules/upper-case/dist/index.d.ts +8 -0
  303. package/node_modules/upper-case/dist/index.js +49 -0
  304. package/node_modules/upper-case/dist/index.js.map +1 -0
  305. package/node_modules/upper-case/dist/index.spec.d.ts +1 -0
  306. package/node_modules/upper-case/dist/index.spec.js +34 -0
  307. package/node_modules/upper-case/dist/index.spec.js.map +1 -0
  308. package/node_modules/upper-case/dist.es2015/index.d.ts +8 -0
  309. package/node_modules/upper-case/dist.es2015/index.js +44 -0
  310. package/node_modules/upper-case/dist.es2015/index.js.map +1 -0
  311. package/node_modules/upper-case/dist.es2015/index.spec.d.ts +1 -0
  312. package/node_modules/upper-case/dist.es2015/index.spec.js +32 -0
  313. package/node_modules/upper-case/dist.es2015/index.spec.js.map +1 -0
  314. package/node_modules/upper-case/package.json +86 -0
  315. package/node_modules/upper-case-first/LICENSE +21 -0
  316. package/node_modules/upper-case-first/README.md +32 -0
  317. package/node_modules/upper-case-first/dist/index.d.ts +4 -0
  318. package/node_modules/upper-case-first/dist/index.js +11 -0
  319. package/node_modules/upper-case-first/dist/index.js.map +1 -0
  320. package/node_modules/upper-case-first/dist/index.spec.d.ts +1 -0
  321. package/node_modules/upper-case-first/dist/index.spec.js +20 -0
  322. package/node_modules/upper-case-first/dist/index.spec.js.map +1 -0
  323. package/node_modules/upper-case-first/dist.es2015/index.d.ts +4 -0
  324. package/node_modules/upper-case-first/dist.es2015/index.js +7 -0
  325. package/node_modules/upper-case-first/dist.es2015/index.js.map +1 -0
  326. package/node_modules/upper-case-first/dist.es2015/index.spec.d.ts +1 -0
  327. package/node_modules/upper-case-first/dist.es2015/index.spec.js +18 -0
  328. package/node_modules/upper-case-first/dist.es2015/index.spec.js.map +1 -0
  329. package/node_modules/upper-case-first/package.json +87 -0
  330. package/package.json +181 -0
@@ -0,0 +1,22 @@
1
+ 'use strict'
2
+
3
+ const fs = require('graceful-fs')
4
+ const u = require('universalify').fromCallback
5
+ const rimraf = require('./rimraf')
6
+
7
+ function remove (path, callback) {
8
+ // Node 14.14.0+
9
+ if (fs.rm) return fs.rm(path, { recursive: true, force: true }, callback)
10
+ rimraf(path, callback)
11
+ }
12
+
13
+ function removeSync (path) {
14
+ // Node 14.14.0+
15
+ if (fs.rmSync) return fs.rmSync(path, { recursive: true, force: true })
16
+ rimraf.sync(path)
17
+ }
18
+
19
+ module.exports = {
20
+ remove: u(remove),
21
+ removeSync
22
+ }
@@ -0,0 +1,302 @@
1
+ 'use strict'
2
+
3
+ const fs = require('graceful-fs')
4
+ const path = require('path')
5
+ const assert = require('assert')
6
+
7
+ const isWindows = (process.platform === 'win32')
8
+
9
+ function defaults (options) {
10
+ const methods = [
11
+ 'unlink',
12
+ 'chmod',
13
+ 'stat',
14
+ 'lstat',
15
+ 'rmdir',
16
+ 'readdir'
17
+ ]
18
+ methods.forEach(m => {
19
+ options[m] = options[m] || fs[m]
20
+ m = m + 'Sync'
21
+ options[m] = options[m] || fs[m]
22
+ })
23
+
24
+ options.maxBusyTries = options.maxBusyTries || 3
25
+ }
26
+
27
+ function rimraf (p, options, cb) {
28
+ let busyTries = 0
29
+
30
+ if (typeof options === 'function') {
31
+ cb = options
32
+ options = {}
33
+ }
34
+
35
+ assert(p, 'rimraf: missing path')
36
+ assert.strictEqual(typeof p, 'string', 'rimraf: path should be a string')
37
+ assert.strictEqual(typeof cb, 'function', 'rimraf: callback function required')
38
+ assert(options, 'rimraf: invalid options argument provided')
39
+ assert.strictEqual(typeof options, 'object', 'rimraf: options should be object')
40
+
41
+ defaults(options)
42
+
43
+ rimraf_(p, options, function CB (er) {
44
+ if (er) {
45
+ if ((er.code === 'EBUSY' || er.code === 'ENOTEMPTY' || er.code === 'EPERM') &&
46
+ busyTries < options.maxBusyTries) {
47
+ busyTries++
48
+ const time = busyTries * 100
49
+ // try again, with the same exact callback as this one.
50
+ return setTimeout(() => rimraf_(p, options, CB), time)
51
+ }
52
+
53
+ // already gone
54
+ if (er.code === 'ENOENT') er = null
55
+ }
56
+
57
+ cb(er)
58
+ })
59
+ }
60
+
61
+ // Two possible strategies.
62
+ // 1. Assume it's a file. unlink it, then do the dir stuff on EPERM or EISDIR
63
+ // 2. Assume it's a directory. readdir, then do the file stuff on ENOTDIR
64
+ //
65
+ // Both result in an extra syscall when you guess wrong. However, there
66
+ // are likely far more normal files in the world than directories. This
67
+ // is based on the assumption that a the average number of files per
68
+ // directory is >= 1.
69
+ //
70
+ // If anyone ever complains about this, then I guess the strategy could
71
+ // be made configurable somehow. But until then, YAGNI.
72
+ function rimraf_ (p, options, cb) {
73
+ assert(p)
74
+ assert(options)
75
+ assert(typeof cb === 'function')
76
+
77
+ // sunos lets the root user unlink directories, which is... weird.
78
+ // so we have to lstat here and make sure it's not a dir.
79
+ options.lstat(p, (er, st) => {
80
+ if (er && er.code === 'ENOENT') {
81
+ return cb(null)
82
+ }
83
+
84
+ // Windows can EPERM on stat. Life is suffering.
85
+ if (er && er.code === 'EPERM' && isWindows) {
86
+ return fixWinEPERM(p, options, er, cb)
87
+ }
88
+
89
+ if (st && st.isDirectory()) {
90
+ return rmdir(p, options, er, cb)
91
+ }
92
+
93
+ options.unlink(p, er => {
94
+ if (er) {
95
+ if (er.code === 'ENOENT') {
96
+ return cb(null)
97
+ }
98
+ if (er.code === 'EPERM') {
99
+ return (isWindows)
100
+ ? fixWinEPERM(p, options, er, cb)
101
+ : rmdir(p, options, er, cb)
102
+ }
103
+ if (er.code === 'EISDIR') {
104
+ return rmdir(p, options, er, cb)
105
+ }
106
+ }
107
+ return cb(er)
108
+ })
109
+ })
110
+ }
111
+
112
+ function fixWinEPERM (p, options, er, cb) {
113
+ assert(p)
114
+ assert(options)
115
+ assert(typeof cb === 'function')
116
+
117
+ options.chmod(p, 0o666, er2 => {
118
+ if (er2) {
119
+ cb(er2.code === 'ENOENT' ? null : er)
120
+ } else {
121
+ options.stat(p, (er3, stats) => {
122
+ if (er3) {
123
+ cb(er3.code === 'ENOENT' ? null : er)
124
+ } else if (stats.isDirectory()) {
125
+ rmdir(p, options, er, cb)
126
+ } else {
127
+ options.unlink(p, cb)
128
+ }
129
+ })
130
+ }
131
+ })
132
+ }
133
+
134
+ function fixWinEPERMSync (p, options, er) {
135
+ let stats
136
+
137
+ assert(p)
138
+ assert(options)
139
+
140
+ try {
141
+ options.chmodSync(p, 0o666)
142
+ } catch (er2) {
143
+ if (er2.code === 'ENOENT') {
144
+ return
145
+ } else {
146
+ throw er
147
+ }
148
+ }
149
+
150
+ try {
151
+ stats = options.statSync(p)
152
+ } catch (er3) {
153
+ if (er3.code === 'ENOENT') {
154
+ return
155
+ } else {
156
+ throw er
157
+ }
158
+ }
159
+
160
+ if (stats.isDirectory()) {
161
+ rmdirSync(p, options, er)
162
+ } else {
163
+ options.unlinkSync(p)
164
+ }
165
+ }
166
+
167
+ function rmdir (p, options, originalEr, cb) {
168
+ assert(p)
169
+ assert(options)
170
+ assert(typeof cb === 'function')
171
+
172
+ // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS)
173
+ // if we guessed wrong, and it's not a directory, then
174
+ // raise the original error.
175
+ options.rmdir(p, er => {
176
+ if (er && (er.code === 'ENOTEMPTY' || er.code === 'EEXIST' || er.code === 'EPERM')) {
177
+ rmkids(p, options, cb)
178
+ } else if (er && er.code === 'ENOTDIR') {
179
+ cb(originalEr)
180
+ } else {
181
+ cb(er)
182
+ }
183
+ })
184
+ }
185
+
186
+ function rmkids (p, options, cb) {
187
+ assert(p)
188
+ assert(options)
189
+ assert(typeof cb === 'function')
190
+
191
+ options.readdir(p, (er, files) => {
192
+ if (er) return cb(er)
193
+
194
+ let n = files.length
195
+ let errState
196
+
197
+ if (n === 0) return options.rmdir(p, cb)
198
+
199
+ files.forEach(f => {
200
+ rimraf(path.join(p, f), options, er => {
201
+ if (errState) {
202
+ return
203
+ }
204
+ if (er) return cb(errState = er)
205
+ if (--n === 0) {
206
+ options.rmdir(p, cb)
207
+ }
208
+ })
209
+ })
210
+ })
211
+ }
212
+
213
+ // this looks simpler, and is strictly *faster*, but will
214
+ // tie up the JavaScript thread and fail on excessively
215
+ // deep directory trees.
216
+ function rimrafSync (p, options) {
217
+ let st
218
+
219
+ options = options || {}
220
+ defaults(options)
221
+
222
+ assert(p, 'rimraf: missing path')
223
+ assert.strictEqual(typeof p, 'string', 'rimraf: path should be a string')
224
+ assert(options, 'rimraf: missing options')
225
+ assert.strictEqual(typeof options, 'object', 'rimraf: options should be object')
226
+
227
+ try {
228
+ st = options.lstatSync(p)
229
+ } catch (er) {
230
+ if (er.code === 'ENOENT') {
231
+ return
232
+ }
233
+
234
+ // Windows can EPERM on stat. Life is suffering.
235
+ if (er.code === 'EPERM' && isWindows) {
236
+ fixWinEPERMSync(p, options, er)
237
+ }
238
+ }
239
+
240
+ try {
241
+ // sunos lets the root user unlink directories, which is... weird.
242
+ if (st && st.isDirectory()) {
243
+ rmdirSync(p, options, null)
244
+ } else {
245
+ options.unlinkSync(p)
246
+ }
247
+ } catch (er) {
248
+ if (er.code === 'ENOENT') {
249
+ return
250
+ } else if (er.code === 'EPERM') {
251
+ return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er)
252
+ } else if (er.code !== 'EISDIR') {
253
+ throw er
254
+ }
255
+ rmdirSync(p, options, er)
256
+ }
257
+ }
258
+
259
+ function rmdirSync (p, options, originalEr) {
260
+ assert(p)
261
+ assert(options)
262
+
263
+ try {
264
+ options.rmdirSync(p)
265
+ } catch (er) {
266
+ if (er.code === 'ENOTDIR') {
267
+ throw originalEr
268
+ } else if (er.code === 'ENOTEMPTY' || er.code === 'EEXIST' || er.code === 'EPERM') {
269
+ rmkidsSync(p, options)
270
+ } else if (er.code !== 'ENOENT') {
271
+ throw er
272
+ }
273
+ }
274
+ }
275
+
276
+ function rmkidsSync (p, options) {
277
+ assert(p)
278
+ assert(options)
279
+ options.readdirSync(p).forEach(f => rimrafSync(path.join(p, f), options))
280
+
281
+ if (isWindows) {
282
+ // We only end up here once we got ENOTEMPTY at least once, and
283
+ // at this point, we are guaranteed to have removed all the kids.
284
+ // So, we know that it won't be ENOENT or ENOTDIR or anything else.
285
+ // try really hard to delete stuff on windows, because it has a
286
+ // PROFOUNDLY annoying habit of not closing handles promptly when
287
+ // files are deleted, resulting in spurious ENOTEMPTY errors.
288
+ const startTime = Date.now()
289
+ do {
290
+ try {
291
+ const ret = options.rmdirSync(p, options)
292
+ return ret
293
+ } catch {}
294
+ } while (Date.now() - startTime < 500) // give up after 500ms
295
+ } else {
296
+ const ret = options.rmdirSync(p, options)
297
+ return ret
298
+ }
299
+ }
300
+
301
+ module.exports = rimraf
302
+ rimraf.sync = rimrafSync
@@ -0,0 +1,154 @@
1
+ 'use strict'
2
+
3
+ const fs = require('../fs')
4
+ const path = require('path')
5
+ const util = require('util')
6
+
7
+ function getStats (src, dest, opts) {
8
+ const statFunc = opts.dereference
9
+ ? (file) => fs.stat(file, { bigint: true })
10
+ : (file) => fs.lstat(file, { bigint: true })
11
+ return Promise.all([
12
+ statFunc(src),
13
+ statFunc(dest).catch(err => {
14
+ if (err.code === 'ENOENT') return null
15
+ throw err
16
+ })
17
+ ]).then(([srcStat, destStat]) => ({ srcStat, destStat }))
18
+ }
19
+
20
+ function getStatsSync (src, dest, opts) {
21
+ let destStat
22
+ const statFunc = opts.dereference
23
+ ? (file) => fs.statSync(file, { bigint: true })
24
+ : (file) => fs.lstatSync(file, { bigint: true })
25
+ const srcStat = statFunc(src)
26
+ try {
27
+ destStat = statFunc(dest)
28
+ } catch (err) {
29
+ if (err.code === 'ENOENT') return { srcStat, destStat: null }
30
+ throw err
31
+ }
32
+ return { srcStat, destStat }
33
+ }
34
+
35
+ function checkPaths (src, dest, funcName, opts, cb) {
36
+ util.callbackify(getStats)(src, dest, opts, (err, stats) => {
37
+ if (err) return cb(err)
38
+ const { srcStat, destStat } = stats
39
+
40
+ if (destStat) {
41
+ if (areIdentical(srcStat, destStat)) {
42
+ const srcBaseName = path.basename(src)
43
+ const destBaseName = path.basename(dest)
44
+ if (funcName === 'move' &&
45
+ srcBaseName !== destBaseName &&
46
+ srcBaseName.toLowerCase() === destBaseName.toLowerCase()) {
47
+ return cb(null, { srcStat, destStat, isChangingCase: true })
48
+ }
49
+ return cb(new Error('Source and destination must not be the same.'))
50
+ }
51
+ if (srcStat.isDirectory() && !destStat.isDirectory()) {
52
+ return cb(new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`))
53
+ }
54
+ if (!srcStat.isDirectory() && destStat.isDirectory()) {
55
+ return cb(new Error(`Cannot overwrite directory '${dest}' with non-directory '${src}'.`))
56
+ }
57
+ }
58
+
59
+ if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {
60
+ return cb(new Error(errMsg(src, dest, funcName)))
61
+ }
62
+ return cb(null, { srcStat, destStat })
63
+ })
64
+ }
65
+
66
+ function checkPathsSync (src, dest, funcName, opts) {
67
+ const { srcStat, destStat } = getStatsSync(src, dest, opts)
68
+
69
+ if (destStat) {
70
+ if (areIdentical(srcStat, destStat)) {
71
+ const srcBaseName = path.basename(src)
72
+ const destBaseName = path.basename(dest)
73
+ if (funcName === 'move' &&
74
+ srcBaseName !== destBaseName &&
75
+ srcBaseName.toLowerCase() === destBaseName.toLowerCase()) {
76
+ return { srcStat, destStat, isChangingCase: true }
77
+ }
78
+ throw new Error('Source and destination must not be the same.')
79
+ }
80
+ if (srcStat.isDirectory() && !destStat.isDirectory()) {
81
+ throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`)
82
+ }
83
+ if (!srcStat.isDirectory() && destStat.isDirectory()) {
84
+ throw new Error(`Cannot overwrite directory '${dest}' with non-directory '${src}'.`)
85
+ }
86
+ }
87
+
88
+ if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {
89
+ throw new Error(errMsg(src, dest, funcName))
90
+ }
91
+ return { srcStat, destStat }
92
+ }
93
+
94
+ // recursively check if dest parent is a subdirectory of src.
95
+ // It works for all file types including symlinks since it
96
+ // checks the src and dest inodes. It starts from the deepest
97
+ // parent and stops once it reaches the src parent or the root path.
98
+ function checkParentPaths (src, srcStat, dest, funcName, cb) {
99
+ const srcParent = path.resolve(path.dirname(src))
100
+ const destParent = path.resolve(path.dirname(dest))
101
+ if (destParent === srcParent || destParent === path.parse(destParent).root) return cb()
102
+ fs.stat(destParent, { bigint: true }, (err, destStat) => {
103
+ if (err) {
104
+ if (err.code === 'ENOENT') return cb()
105
+ return cb(err)
106
+ }
107
+ if (areIdentical(srcStat, destStat)) {
108
+ return cb(new Error(errMsg(src, dest, funcName)))
109
+ }
110
+ return checkParentPaths(src, srcStat, destParent, funcName, cb)
111
+ })
112
+ }
113
+
114
+ function checkParentPathsSync (src, srcStat, dest, funcName) {
115
+ const srcParent = path.resolve(path.dirname(src))
116
+ const destParent = path.resolve(path.dirname(dest))
117
+ if (destParent === srcParent || destParent === path.parse(destParent).root) return
118
+ let destStat
119
+ try {
120
+ destStat = fs.statSync(destParent, { bigint: true })
121
+ } catch (err) {
122
+ if (err.code === 'ENOENT') return
123
+ throw err
124
+ }
125
+ if (areIdentical(srcStat, destStat)) {
126
+ throw new Error(errMsg(src, dest, funcName))
127
+ }
128
+ return checkParentPathsSync(src, srcStat, destParent, funcName)
129
+ }
130
+
131
+ function areIdentical (srcStat, destStat) {
132
+ return destStat.ino && destStat.dev && destStat.ino === srcStat.ino && destStat.dev === srcStat.dev
133
+ }
134
+
135
+ // return true if dest is a subdir of src, otherwise false.
136
+ // It only checks the path strings.
137
+ function isSrcSubdir (src, dest) {
138
+ const srcArr = path.resolve(src).split(path.sep).filter(i => i)
139
+ const destArr = path.resolve(dest).split(path.sep).filter(i => i)
140
+ return srcArr.reduce((acc, cur, i) => acc && destArr[i] === cur, true)
141
+ }
142
+
143
+ function errMsg (src, dest, funcName) {
144
+ return `Cannot ${funcName} '${src}' to a subdirectory of itself, '${dest}'.`
145
+ }
146
+
147
+ module.exports = {
148
+ checkPaths,
149
+ checkPathsSync,
150
+ checkParentPaths,
151
+ checkParentPathsSync,
152
+ isSrcSubdir,
153
+ areIdentical
154
+ }
@@ -0,0 +1,26 @@
1
+ 'use strict'
2
+
3
+ const fs = require('graceful-fs')
4
+
5
+ function utimesMillis (path, atime, mtime, callback) {
6
+ // if (!HAS_MILLIS_RES) return fs.utimes(path, atime, mtime, callback)
7
+ fs.open(path, 'r+', (err, fd) => {
8
+ if (err) return callback(err)
9
+ fs.futimes(fd, atime, mtime, futimesErr => {
10
+ fs.close(fd, closeErr => {
11
+ if (callback) callback(futimesErr || closeErr)
12
+ })
13
+ })
14
+ })
15
+ }
16
+
17
+ function utimesMillisSync (path, atime, mtime) {
18
+ const fd = fs.openSync(path, 'r+')
19
+ fs.futimesSync(fd, atime, mtime)
20
+ return fs.closeSync(fd)
21
+ }
22
+
23
+ module.exports = {
24
+ utimesMillis,
25
+ utimesMillisSync
26
+ }
@@ -0,0 +1,67 @@
1
+ {
2
+ "name": "fs-extra",
3
+ "version": "10.1.0",
4
+ "description": "fs-extra contains methods that aren't included in the vanilla Node.js fs package. Such as recursive mkdir, copy, and remove.",
5
+ "engines": {
6
+ "node": ">=12"
7
+ },
8
+ "homepage": "https://github.com/jprichardson/node-fs-extra",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "https://github.com/jprichardson/node-fs-extra"
12
+ },
13
+ "keywords": [
14
+ "fs",
15
+ "file",
16
+ "file system",
17
+ "copy",
18
+ "directory",
19
+ "extra",
20
+ "mkdirp",
21
+ "mkdir",
22
+ "mkdirs",
23
+ "recursive",
24
+ "json",
25
+ "read",
26
+ "write",
27
+ "extra",
28
+ "delete",
29
+ "remove",
30
+ "touch",
31
+ "create",
32
+ "text",
33
+ "output",
34
+ "move",
35
+ "promise"
36
+ ],
37
+ "author": "JP Richardson <jprichardson@gmail.com>",
38
+ "license": "MIT",
39
+ "dependencies": {
40
+ "graceful-fs": "^4.2.0",
41
+ "jsonfile": "^6.0.1",
42
+ "universalify": "^2.0.0"
43
+ },
44
+ "devDependencies": {
45
+ "at-least-node": "^1.0.0",
46
+ "klaw": "^2.1.1",
47
+ "klaw-sync": "^3.0.2",
48
+ "minimist": "^1.1.1",
49
+ "mocha": "^5.0.5",
50
+ "nyc": "^15.0.0",
51
+ "proxyquire": "^2.0.1",
52
+ "read-dir-files": "^0.1.1",
53
+ "standard": "^16.0.3"
54
+ },
55
+ "main": "./lib/index.js",
56
+ "files": [
57
+ "lib/",
58
+ "!lib/**/__tests__/"
59
+ ],
60
+ "scripts": {
61
+ "lint": "standard",
62
+ "test-find": "find ./lib/**/__tests__ -name *.test.js | xargs mocha",
63
+ "test": "npm run lint && npm run unit",
64
+ "unit": "nyc node test.js"
65
+ },
66
+ "sideEffects": false
67
+ }
@@ -0,0 +1,15 @@
1
+ The ISC License
2
+
3
+ Copyright (c) 2011-2022 Isaac Z. Schlueter, Ben Noordhuis, and Contributors
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any
6
+ purpose with or without fee is hereby granted, provided that the above
7
+ copyright notice and this permission notice appear in all copies.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
15
+ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.