renovate 40.0.0-next.3 → 40.0.0-next.31

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 (683) hide show
  1. package/dist/config/decrypt/legacy.js +0 -1
  2. package/dist/config/decrypt/legacy.js.map +1 -1
  3. package/dist/config/decrypt.d.ts +3 -1
  4. package/dist/config/decrypt.js +56 -13
  5. package/dist/config/decrypt.js.map +1 -1
  6. package/dist/config/migrate-validate.js +3 -2
  7. package/dist/config/migrate-validate.js.map +1 -1
  8. package/dist/config/migration.js +2 -1
  9. package/dist/config/migration.js.map +1 -1
  10. package/dist/config/migrations/custom/rebase-stale-prs-migration.js +1 -1
  11. package/dist/config/migrations/custom/rebase-stale-prs-migration.js.map +1 -1
  12. package/dist/config/options/index.js +4 -3
  13. package/dist/config/options/index.js.map +1 -1
  14. package/dist/config/parse.js +2 -2
  15. package/dist/config/parse.js.map +1 -1
  16. package/dist/config/presets/gitea/index.js +0 -1
  17. package/dist/config/presets/gitea/index.js.map +1 -1
  18. package/dist/config/presets/github/index.js +0 -1
  19. package/dist/config/presets/github/index.js.map +1 -1
  20. package/dist/config/presets/gitlab/index.js +1 -1
  21. package/dist/config/presets/gitlab/index.js.map +1 -1
  22. package/dist/config/presets/http/index.js +1 -2
  23. package/dist/config/presets/http/index.js.map +1 -1
  24. package/dist/config/presets/index.js +0 -7
  25. package/dist/config/presets/index.js.map +1 -1
  26. package/dist/config/presets/internal/custom-managers.js +3 -4
  27. package/dist/config/presets/internal/custom-managers.js.map +1 -1
  28. package/dist/config/presets/internal/group.js +30 -1
  29. package/dist/config/presets/internal/group.js.map +1 -1
  30. package/dist/config/presets/internal/index.js +1 -3
  31. package/dist/config/presets/internal/index.js.map +1 -1
  32. package/dist/config/presets/internal/workarounds.js +1 -0
  33. package/dist/config/presets/internal/workarounds.js.map +1 -1
  34. package/dist/config/presets/parse.js +2 -1
  35. package/dist/config/presets/parse.js.map +1 -1
  36. package/dist/config/schema.d.ts +2 -2
  37. package/dist/config/types.d.ts +4 -1
  38. package/dist/config/types.js.map +1 -1
  39. package/dist/config/validation.js +3 -5
  40. package/dist/config/validation.js.map +1 -1
  41. package/dist/config-validator.js +0 -1
  42. package/dist/config-validator.js.map +1 -1
  43. package/dist/constants/category.js +0 -1
  44. package/dist/constants/category.js.map +1 -1
  45. package/dist/data/monorepo.json +5 -1
  46. package/dist/data/source-urls.json +1 -0
  47. package/dist/instrumentation/index.js +17 -13
  48. package/dist/instrumentation/index.js.map +1 -1
  49. package/dist/instrumentation/utils.js +1 -1
  50. package/dist/instrumentation/utils.js.map +1 -1
  51. package/dist/logger/cmd-serializer.js +0 -1
  52. package/dist/logger/cmd-serializer.js.map +1 -1
  53. package/dist/logger/config-serializer.js +0 -1
  54. package/dist/logger/config-serializer.js.map +1 -1
  55. package/dist/logger/index.js +1 -4
  56. package/dist/logger/index.js.map +1 -1
  57. package/dist/logger/once.js +4 -2
  58. package/dist/logger/once.js.map +1 -1
  59. package/dist/logger/pretty-stdout.js +0 -1
  60. package/dist/logger/pretty-stdout.js.map +1 -1
  61. package/dist/logger/renovate-logger.js +1 -1
  62. package/dist/logger/renovate-logger.js.map +1 -1
  63. package/dist/logger/utils.js +6 -11
  64. package/dist/logger/utils.js.map +1 -1
  65. package/dist/modules/datasource/api.js +2 -0
  66. package/dist/modules/datasource/api.js.map +1 -1
  67. package/dist/modules/datasource/artifactory/index.js +1 -2
  68. package/dist/modules/datasource/artifactory/index.js.map +1 -1
  69. package/dist/modules/datasource/aws-eks-addon/index.d.ts +11 -0
  70. package/dist/modules/datasource/aws-eks-addon/index.js +75 -0
  71. package/dist/modules/datasource/aws-eks-addon/index.js.map +1 -0
  72. package/dist/modules/datasource/aws-eks-addon/schema.d.ts +40 -0
  73. package/dist/modules/datasource/aws-eks-addon/schema.js +31 -0
  74. package/dist/modules/datasource/aws-eks-addon/schema.js.map +1 -0
  75. package/dist/modules/datasource/aws-machine-image/index.js +6 -5
  76. package/dist/modules/datasource/aws-machine-image/index.js.map +1 -1
  77. package/dist/modules/datasource/azure-pipelines-tasks/index.js +11 -1
  78. package/dist/modules/datasource/azure-pipelines-tasks/index.js.map +1 -1
  79. package/dist/modules/datasource/azure-pipelines-tasks/schema.d.ts +16 -0
  80. package/dist/modules/datasource/azure-pipelines-tasks/schema.js +2 -0
  81. package/dist/modules/datasource/azure-pipelines-tasks/schema.js.map +1 -1
  82. package/dist/modules/datasource/bazel/index.js +0 -1
  83. package/dist/modules/datasource/bazel/index.js.map +1 -1
  84. package/dist/modules/datasource/bitrise/index.js +1 -1
  85. package/dist/modules/datasource/bitrise/index.js.map +1 -1
  86. package/dist/modules/datasource/cdnjs/schema.d.ts +2 -2
  87. package/dist/modules/datasource/conda/index.js +18 -1
  88. package/dist/modules/datasource/conda/index.js.map +1 -1
  89. package/dist/modules/datasource/conda/prefix-dev.d.ts +3 -0
  90. package/dist/modules/datasource/conda/prefix-dev.js +83 -0
  91. package/dist/modules/datasource/conda/prefix-dev.js.map +1 -0
  92. package/dist/modules/datasource/conda/schema/prefix-dev.d.ts +189 -0
  93. package/dist/modules/datasource/conda/schema/prefix-dev.js +31 -0
  94. package/dist/modules/datasource/conda/schema/prefix-dev.js.map +1 -0
  95. package/dist/modules/datasource/conda/types.d.ts +1 -20
  96. package/dist/modules/datasource/conda/types.js.map +1 -1
  97. package/dist/modules/datasource/cpan/index.js +1 -1
  98. package/dist/modules/datasource/cpan/index.js.map +1 -1
  99. package/dist/modules/datasource/crate/index.js +3 -3
  100. package/dist/modules/datasource/crate/index.js.map +1 -1
  101. package/dist/modules/datasource/custom/formats/html.js +1 -1
  102. package/dist/modules/datasource/custom/formats/html.js.map +1 -1
  103. package/dist/modules/datasource/custom/formats/yaml.js +1 -1
  104. package/dist/modules/datasource/custom/formats/yaml.js.map +1 -1
  105. package/dist/modules/datasource/custom/index.js +4 -2
  106. package/dist/modules/datasource/custom/index.js.map +1 -1
  107. package/dist/modules/datasource/custom/schema.d.ts +22 -22
  108. package/dist/modules/datasource/custom/utils.js +1 -0
  109. package/dist/modules/datasource/custom/utils.js.map +1 -1
  110. package/dist/modules/datasource/dart/index.js +1 -1
  111. package/dist/modules/datasource/dart/index.js.map +1 -1
  112. package/dist/modules/datasource/dart-version/index.js +1 -1
  113. package/dist/modules/datasource/dart-version/index.js.map +1 -1
  114. package/dist/modules/datasource/datasource.js +0 -1
  115. package/dist/modules/datasource/datasource.js.map +1 -1
  116. package/dist/modules/datasource/deb/index.js +2 -2
  117. package/dist/modules/datasource/deb/index.js.map +1 -1
  118. package/dist/modules/datasource/deno/index.js +1 -1
  119. package/dist/modules/datasource/deno/index.js.map +1 -1
  120. package/dist/modules/datasource/deno/schema.d.ts +1 -1
  121. package/dist/modules/datasource/devbox/index.js +0 -1
  122. package/dist/modules/datasource/devbox/index.js.map +1 -1
  123. package/dist/modules/datasource/docker/common.js +5 -2
  124. package/dist/modules/datasource/docker/common.js.map +1 -1
  125. package/dist/modules/datasource/docker/index.js +10 -8
  126. package/dist/modules/datasource/docker/index.js.map +1 -1
  127. package/dist/modules/datasource/docker/schema.d.ts +5 -5
  128. package/dist/modules/datasource/docker/schema.js +2 -1
  129. package/dist/modules/datasource/docker/schema.js.map +1 -1
  130. package/dist/modules/datasource/flutter-version/index.js +1 -1
  131. package/dist/modules/datasource/flutter-version/index.js.map +1 -1
  132. package/dist/modules/datasource/galaxy/schema.d.ts +1 -1
  133. package/dist/modules/datasource/galaxy-collection/schema.d.ts +8 -8
  134. package/dist/modules/datasource/git-refs/index.js +1 -1
  135. package/dist/modules/datasource/git-refs/index.js.map +1 -1
  136. package/dist/modules/datasource/gitea-releases/schema.d.ts +2 -2
  137. package/dist/modules/datasource/gitea-tags/schema.d.ts +4 -4
  138. package/dist/modules/datasource/github-release-attachments/index.js +2 -2
  139. package/dist/modules/datasource/github-release-attachments/index.js.map +1 -1
  140. package/dist/modules/datasource/gitlab-packages/index.js +1 -1
  141. package/dist/modules/datasource/gitlab-packages/index.js.map +1 -1
  142. package/dist/modules/datasource/gitlab-releases/index.js +1 -3
  143. package/dist/modules/datasource/gitlab-releases/index.js.map +1 -1
  144. package/dist/modules/datasource/go/base.js +1 -1
  145. package/dist/modules/datasource/go/base.js.map +1 -1
  146. package/dist/modules/datasource/go/index.js +1 -1
  147. package/dist/modules/datasource/go/index.js.map +1 -1
  148. package/dist/modules/datasource/go/releases-direct.js +7 -4
  149. package/dist/modules/datasource/go/releases-direct.js.map +1 -1
  150. package/dist/modules/datasource/go/releases-goproxy.js +1 -1
  151. package/dist/modules/datasource/go/releases-goproxy.js.map +1 -1
  152. package/dist/modules/datasource/golang-version/index.js +2 -2
  153. package/dist/modules/datasource/golang-version/index.js.map +1 -1
  154. package/dist/modules/datasource/gradle-version/index.js +1 -1
  155. package/dist/modules/datasource/gradle-version/index.js.map +1 -1
  156. package/dist/modules/datasource/helm/index.js +1 -1
  157. package/dist/modules/datasource/helm/index.js.map +1 -1
  158. package/dist/modules/datasource/hex/index.js +1 -1
  159. package/dist/modules/datasource/hex/index.js.map +1 -1
  160. package/dist/modules/datasource/hex/schema.d.ts +11 -11
  161. package/dist/modules/datasource/hexpm-bob/index.js +1 -1
  162. package/dist/modules/datasource/hexpm-bob/index.js.map +1 -1
  163. package/dist/modules/datasource/index.js +4 -4
  164. package/dist/modules/datasource/index.js.map +1 -1
  165. package/dist/modules/datasource/java-version/index.js +0 -1
  166. package/dist/modules/datasource/java-version/index.js.map +1 -1
  167. package/dist/modules/datasource/jenkins-plugins/index.js +1 -1
  168. package/dist/modules/datasource/jenkins-plugins/index.js.map +1 -1
  169. package/dist/modules/datasource/maven/index.js +35 -27
  170. package/dist/modules/datasource/maven/index.js.map +1 -1
  171. package/dist/modules/datasource/maven/types.d.ts +3 -6
  172. package/dist/modules/datasource/maven/types.js.map +1 -1
  173. package/dist/modules/datasource/maven/util.d.ts +4 -5
  174. package/dist/modules/datasource/maven/util.js +94 -157
  175. package/dist/modules/datasource/maven/util.js.map +1 -1
  176. package/dist/modules/datasource/node-version/index.js +1 -1
  177. package/dist/modules/datasource/node-version/index.js.map +1 -1
  178. package/dist/modules/datasource/npm/index.js +1 -1
  179. package/dist/modules/datasource/npm/index.js.map +1 -1
  180. package/dist/modules/datasource/npm/npmrc.js +1 -1
  181. package/dist/modules/datasource/npm/npmrc.js.map +1 -1
  182. package/dist/modules/datasource/nuget/index.js +1 -1
  183. package/dist/modules/datasource/nuget/index.js.map +1 -1
  184. package/dist/modules/datasource/nuget/v2.js +1 -1
  185. package/dist/modules/datasource/nuget/v2.js.map +1 -1
  186. package/dist/modules/datasource/nuget/v3.js +6 -6
  187. package/dist/modules/datasource/nuget/v3.js.map +1 -1
  188. package/dist/modules/datasource/orb/index.js +1 -1
  189. package/dist/modules/datasource/orb/index.js.map +1 -1
  190. package/dist/modules/datasource/packagist/index.js +2 -2
  191. package/dist/modules/datasource/packagist/index.js.map +1 -1
  192. package/dist/modules/datasource/packagist/schema.d.ts +25 -25
  193. package/dist/modules/datasource/pod/index.js +2 -2
  194. package/dist/modules/datasource/pod/index.js.map +1 -1
  195. package/dist/modules/datasource/postprocess-release.js +1 -1
  196. package/dist/modules/datasource/postprocess-release.js.map +1 -1
  197. package/dist/modules/datasource/pypi/index.js +1 -1
  198. package/dist/modules/datasource/pypi/index.js.map +1 -1
  199. package/dist/modules/datasource/python-version/index.js +1 -1
  200. package/dist/modules/datasource/python-version/index.js.map +1 -1
  201. package/dist/modules/datasource/repology/index.js +1 -1
  202. package/dist/modules/datasource/repology/index.js.map +1 -1
  203. package/dist/modules/datasource/ruby-version/index.js +1 -1
  204. package/dist/modules/datasource/ruby-version/index.js.map +1 -1
  205. package/dist/modules/datasource/rubygems/index.js +2 -2
  206. package/dist/modules/datasource/rubygems/index.js.map +1 -1
  207. package/dist/modules/datasource/rubygems/versions-endpoint-cache.js +2 -2
  208. package/dist/modules/datasource/rubygems/versions-endpoint-cache.js.map +1 -1
  209. package/dist/modules/datasource/sbt-package/index.js +1 -1
  210. package/dist/modules/datasource/sbt-package/index.js.map +1 -1
  211. package/dist/modules/datasource/sbt-plugin/index.js +1 -1
  212. package/dist/modules/datasource/sbt-plugin/index.js.map +1 -1
  213. package/dist/modules/datasource/schema.d.ts +4 -4
  214. package/dist/modules/datasource/terraform-module/index.js +1 -1
  215. package/dist/modules/datasource/terraform-module/index.js.map +1 -1
  216. package/dist/modules/datasource/terraform-provider/index.js +2 -3
  217. package/dist/modules/datasource/terraform-provider/index.js.map +1 -1
  218. package/dist/modules/datasource/types.d.ts +1 -0
  219. package/dist/modules/datasource/types.js.map +1 -1
  220. package/dist/modules/datasource/unity3d/index.d.ts +4 -1
  221. package/dist/modules/datasource/unity3d/index.js +36 -42
  222. package/dist/modules/datasource/unity3d/index.js.map +1 -1
  223. package/dist/modules/datasource/unity3d/schema.d.ts +47 -0
  224. package/dist/modules/datasource/unity3d/schema.js +17 -0
  225. package/dist/modules/datasource/unity3d/schema.js.map +1 -0
  226. package/dist/modules/manager/api.js +2 -0
  227. package/dist/modules/manager/api.js.map +1 -1
  228. package/dist/modules/manager/argocd/extract.js +1 -1
  229. package/dist/modules/manager/argocd/extract.js.map +1 -1
  230. package/dist/modules/manager/argocd/schema.d.ts +10 -10
  231. package/dist/modules/manager/asdf/upgradeable-tooling.js +94 -0
  232. package/dist/modules/manager/asdf/upgradeable-tooling.js.map +1 -1
  233. package/dist/modules/manager/azure-pipelines/schema.d.ts +32 -32
  234. package/dist/modules/manager/batect/schema.d.ts +4 -4
  235. package/dist/modules/manager/batect-wrapper/artifacts.js +1 -1
  236. package/dist/modules/manager/batect-wrapper/artifacts.js.map +1 -1
  237. package/dist/modules/manager/bazel/rules/docker.d.ts +6 -6
  238. package/dist/modules/manager/bazel/rules/git.d.ts +10 -10
  239. package/dist/modules/manager/bazel/rules/git.js +9 -2
  240. package/dist/modules/manager/bazel/rules/git.js.map +1 -1
  241. package/dist/modules/manager/bazel/rules/go.d.ts +5 -5
  242. package/dist/modules/manager/bazel/rules/maven.d.ts +7 -7
  243. package/dist/modules/manager/bazel/rules/oci.d.ts +6 -6
  244. package/dist/modules/manager/bazel-module/parser/fragments.d.ts +40 -40
  245. package/dist/modules/manager/bazel-module/parser/maven.d.ts +40 -40
  246. package/dist/modules/manager/bazel-module/parser/oci.d.ts +17 -17
  247. package/dist/modules/manager/bazel-module/rules.d.ts +40 -40
  248. package/dist/modules/manager/bun/artifacts.js +0 -1
  249. package/dist/modules/manager/bun/artifacts.js.map +1 -1
  250. package/dist/modules/manager/bundler/artifacts.js +0 -1
  251. package/dist/modules/manager/bundler/artifacts.js.map +1 -1
  252. package/dist/modules/manager/bundler/extract.js +2 -1
  253. package/dist/modules/manager/bundler/extract.js.map +1 -1
  254. package/dist/modules/manager/cake/index.js +4 -2
  255. package/dist/modules/manager/cake/index.js.map +1 -1
  256. package/dist/modules/manager/cargo/artifacts.js +5 -7
  257. package/dist/modules/manager/cargo/artifacts.js.map +1 -1
  258. package/dist/modules/manager/cargo/schema.d.ts +114 -114
  259. package/dist/modules/manager/cocoapods/artifacts.js +1 -2
  260. package/dist/modules/manager/cocoapods/artifacts.js.map +1 -1
  261. package/dist/modules/manager/composer/artifacts.js +1 -2
  262. package/dist/modules/manager/composer/artifacts.js.map +1 -1
  263. package/dist/modules/manager/composer/schema.d.ts +26 -26
  264. package/dist/modules/manager/composer/schema.js +1 -1
  265. package/dist/modules/manager/composer/schema.js.map +1 -1
  266. package/dist/modules/manager/composer/utils.d.ts +1 -0
  267. package/dist/modules/manager/composer/utils.js +18 -6
  268. package/dist/modules/manager/composer/utils.js.map +1 -1
  269. package/dist/modules/manager/copier/artifacts.js +0 -1
  270. package/dist/modules/manager/copier/artifacts.js.map +1 -1
  271. package/dist/modules/manager/crossplane/schema.d.ts +2 -2
  272. package/dist/modules/manager/custom/jsonata/index.js +4 -0
  273. package/dist/modules/manager/custom/jsonata/index.js.map +1 -1
  274. package/dist/modules/manager/custom/jsonata/schema.d.ts +21 -21
  275. package/dist/modules/manager/custom/regex/index.js +2 -0
  276. package/dist/modules/manager/custom/regex/index.js.map +1 -1
  277. package/dist/modules/manager/deps-edn/extract.js +2 -1
  278. package/dist/modules/manager/deps-edn/extract.js.map +1 -1
  279. package/dist/modules/manager/devbox/artifacts.d.ts +1 -1
  280. package/dist/modules/manager/devbox/artifacts.js +28 -11
  281. package/dist/modules/manager/devbox/artifacts.js.map +1 -1
  282. package/dist/modules/manager/devbox/schema.js +1 -1
  283. package/dist/modules/manager/devbox/schema.js.map +1 -1
  284. package/dist/modules/manager/devcontainer/extract.js +43 -1
  285. package/dist/modules/manager/devcontainer/extract.js.map +1 -1
  286. package/dist/modules/manager/devcontainer/index.js +11 -1
  287. package/dist/modules/manager/devcontainer/index.js.map +1 -1
  288. package/dist/modules/manager/devcontainer/schema.d.ts +7 -3
  289. package/dist/modules/manager/devcontainer/schema.js +3 -1
  290. package/dist/modules/manager/devcontainer/schema.js.map +1 -1
  291. package/dist/modules/manager/docker-compose/schema.d.ts +6 -6
  292. package/dist/modules/manager/fingerprint.generated.js +86 -85
  293. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  294. package/dist/modules/manager/flux/artifacts.js +0 -1
  295. package/dist/modules/manager/flux/artifacts.js.map +1 -1
  296. package/dist/modules/manager/flux/extract.js +27 -24
  297. package/dist/modules/manager/flux/extract.js.map +1 -1
  298. package/dist/modules/manager/flux/schema.d.ts +94 -94
  299. package/dist/modules/manager/github-actions/extract.js +60 -39
  300. package/dist/modules/manager/github-actions/extract.js.map +1 -1
  301. package/dist/modules/manager/github-actions/schema.d.ts +66 -0
  302. package/dist/modules/manager/github-actions/schema.js +38 -0
  303. package/dist/modules/manager/github-actions/schema.js.map +1 -0
  304. package/dist/modules/manager/gitlabci/extract.d.ts +1 -5
  305. package/dist/modules/manager/gitlabci/extract.js +27 -126
  306. package/dist/modules/manager/gitlabci/extract.js.map +1 -1
  307. package/dist/modules/manager/gitlabci/schema.d.ts +55 -0
  308. package/dist/modules/manager/gitlabci/schema.js +63 -0
  309. package/dist/modules/manager/gitlabci/schema.js.map +1 -0
  310. package/dist/modules/manager/gitlabci-include/extract.js +6 -54
  311. package/dist/modules/manager/gitlabci-include/extract.js.map +1 -1
  312. package/dist/modules/manager/gitlabci-include/schema.d.ts +13 -0
  313. package/dist/modules/manager/gitlabci-include/schema.js +46 -0
  314. package/dist/modules/manager/gitlabci-include/schema.js.map +1 -0
  315. package/dist/modules/manager/glasskube/schema.d.ts +8 -8
  316. package/dist/modules/manager/gomod/artifacts.js +24 -10
  317. package/dist/modules/manager/gomod/artifacts.js.map +1 -1
  318. package/dist/modules/manager/gomod/extract.js +23 -0
  319. package/dist/modules/manager/gomod/extract.js.map +1 -1
  320. package/dist/modules/manager/gomod/line-parser.js +16 -0
  321. package/dist/modules/manager/gomod/line-parser.js.map +1 -1
  322. package/dist/modules/manager/gomod/update.js +2 -2
  323. package/dist/modules/manager/gomod/update.js.map +1 -1
  324. package/dist/modules/manager/gradle/artifacts.js +0 -1
  325. package/dist/modules/manager/gradle/artifacts.js.map +1 -1
  326. package/dist/modules/manager/gradle/extract/catalog.js +1 -1
  327. package/dist/modules/manager/gradle/extract/catalog.js.map +1 -1
  328. package/dist/modules/manager/gradle/parser/assignments.js +2 -2
  329. package/dist/modules/manager/gradle/parser/assignments.js.map +1 -1
  330. package/dist/modules/manager/gradle/parser/handlers.d.ts +1 -2
  331. package/dist/modules/manager/gradle/parser/handlers.js +10 -25
  332. package/dist/modules/manager/gradle/parser/handlers.js.map +1 -1
  333. package/dist/modules/manager/gradle/parser/registry-urls.js +11 -3
  334. package/dist/modules/manager/gradle/parser/registry-urls.js.map +1 -1
  335. package/dist/modules/manager/gradle-wrapper/artifacts.js +1 -2
  336. package/dist/modules/manager/gradle-wrapper/artifacts.js.map +1 -1
  337. package/dist/modules/manager/helmfile/artifacts.js +0 -1
  338. package/dist/modules/manager/helmfile/artifacts.js.map +1 -1
  339. package/dist/modules/manager/helmfile/extract.js +4 -0
  340. package/dist/modules/manager/helmfile/extract.js.map +1 -1
  341. package/dist/modules/manager/helmfile/schema.d.ts +9 -9
  342. package/dist/modules/manager/helmv3/artifacts.js +0 -1
  343. package/dist/modules/manager/helmv3/artifacts.js.map +1 -1
  344. package/dist/modules/manager/helmv3/utils.js +3 -1
  345. package/dist/modules/manager/helmv3/utils.js.map +1 -1
  346. package/dist/modules/manager/hermit/artifacts.js +0 -1
  347. package/dist/modules/manager/hermit/artifacts.js.map +1 -1
  348. package/dist/modules/manager/homebrew/extract.js +0 -1
  349. package/dist/modules/manager/homebrew/extract.js.map +1 -1
  350. package/dist/modules/manager/jsonnet-bundler/artifacts.js +0 -1
  351. package/dist/modules/manager/jsonnet-bundler/artifacts.js.map +1 -1
  352. package/dist/modules/manager/kustomize/artifacts.d.ts +2 -0
  353. package/dist/modules/manager/kustomize/artifacts.js +154 -0
  354. package/dist/modules/manager/kustomize/artifacts.js.map +1 -0
  355. package/dist/modules/manager/kustomize/common.d.ts +3 -0
  356. package/dist/modules/manager/kustomize/common.js +22 -0
  357. package/dist/modules/manager/kustomize/common.js.map +1 -0
  358. package/dist/modules/manager/kustomize/index.d.ts +1 -0
  359. package/dist/modules/manager/kustomize/index.js +3 -1
  360. package/dist/modules/manager/kustomize/index.js.map +1 -1
  361. package/dist/modules/manager/kustomize/types.d.ts +4 -0
  362. package/dist/modules/manager/kustomize/types.js.map +1 -1
  363. package/dist/modules/manager/maven/extract.js +3 -1
  364. package/dist/modules/manager/maven/extract.js.map +1 -1
  365. package/dist/modules/manager/maven-wrapper/artifacts.js +0 -1
  366. package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
  367. package/dist/modules/manager/mise/extract.js +1 -1
  368. package/dist/modules/manager/mise/extract.js.map +1 -1
  369. package/dist/modules/manager/mix/artifacts.js +64 -14
  370. package/dist/modules/manager/mix/artifacts.js.map +1 -1
  371. package/dist/modules/manager/mix/index.d.ts +1 -0
  372. package/dist/modules/manager/mix/index.js +2 -1
  373. package/dist/modules/manager/mix/index.js.map +1 -1
  374. package/dist/modules/manager/nix/artifacts.js +0 -1
  375. package/dist/modules/manager/nix/artifacts.js.map +1 -1
  376. package/dist/modules/manager/nix/extract.js +1 -1
  377. package/dist/modules/manager/nix/extract.js.map +1 -1
  378. package/dist/modules/manager/nix/schema.d.ts +18 -18
  379. package/dist/modules/manager/npm/artifacts.js +0 -1
  380. package/dist/modules/manager/npm/artifacts.js.map +1 -1
  381. package/dist/modules/manager/npm/extract/yarn.js +2 -2
  382. package/dist/modules/manager/npm/extract/yarn.js.map +1 -1
  383. package/dist/modules/manager/npm/post-update/npm.js +0 -1
  384. package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
  385. package/dist/modules/manager/npm/post-update/pnpm.js +13 -2
  386. package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
  387. package/dist/modules/manager/npm/post-update/rules.js +11 -1
  388. package/dist/modules/manager/npm/post-update/rules.js.map +1 -1
  389. package/dist/modules/manager/npm/post-update/yarn.js +0 -1
  390. package/dist/modules/manager/npm/post-update/yarn.js.map +1 -1
  391. package/dist/modules/manager/npm/schema.d.ts +13 -13
  392. package/dist/modules/manager/npm/update/dependency/index.js +1 -1
  393. package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
  394. package/dist/modules/manager/nuget/artifacts.js +1 -2
  395. package/dist/modules/manager/nuget/artifacts.js.map +1 -1
  396. package/dist/modules/manager/nuget/package-tree.js +4 -0
  397. package/dist/modules/manager/nuget/package-tree.js.map +1 -1
  398. package/dist/modules/manager/nuget/schema.d.ts +8 -8
  399. package/dist/modules/manager/nuget/util.js +4 -1
  400. package/dist/modules/manager/nuget/util.js.map +1 -1
  401. package/dist/modules/manager/ocb/schema.d.ts +6 -6
  402. package/dist/modules/manager/pep621/processors/pdm.js +0 -1
  403. package/dist/modules/manager/pep621/processors/pdm.js.map +1 -1
  404. package/dist/modules/manager/pep621/processors/uv.js +0 -1
  405. package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
  406. package/dist/modules/manager/pep621/schema.d.ts +59 -54
  407. package/dist/modules/manager/pep621/schema.js +2 -0
  408. package/dist/modules/manager/pep621/schema.js.map +1 -1
  409. package/dist/modules/manager/pep621/utils.js +1 -1
  410. package/dist/modules/manager/pep621/utils.js.map +1 -1
  411. package/dist/modules/manager/pip-compile/common.js +0 -1
  412. package/dist/modules/manager/pip-compile/common.js.map +1 -1
  413. package/dist/modules/manager/pip_requirements/artifacts.js +0 -1
  414. package/dist/modules/manager/pip_requirements/artifacts.js.map +1 -1
  415. package/dist/modules/manager/pipenv/artifacts.js +0 -1
  416. package/dist/modules/manager/pipenv/artifacts.js.map +1 -1
  417. package/dist/modules/manager/pixi/artifacts.d.ts +3 -0
  418. package/dist/modules/manager/pixi/artifacts.js +84 -0
  419. package/dist/modules/manager/pixi/artifacts.js.map +1 -0
  420. package/dist/modules/manager/pixi/extract.d.ts +2 -0
  421. package/dist/modules/manager/pixi/extract.js +53 -0
  422. package/dist/modules/manager/pixi/extract.js.map +1 -0
  423. package/dist/modules/manager/pixi/index.d.ts +11 -0
  424. package/dist/modules/manager/pixi/index.js +22 -0
  425. package/dist/modules/manager/pixi/index.js.map +1 -0
  426. package/dist/modules/manager/pixi/lockfile.d.ts +6 -0
  427. package/dist/modules/manager/pixi/lockfile.js +25 -0
  428. package/dist/modules/manager/pixi/lockfile.js.map +1 -0
  429. package/dist/modules/manager/pixi/schema.d.ts +14 -0
  430. package/dist/modules/manager/pixi/schema.js +14 -0
  431. package/dist/modules/manager/pixi/schema.js.map +1 -0
  432. package/dist/modules/manager/poetry/artifacts.js +3 -4
  433. package/dist/modules/manager/poetry/artifacts.js.map +1 -1
  434. package/dist/modules/manager/poetry/extract.js +2 -1
  435. package/dist/modules/manager/poetry/extract.js.map +1 -1
  436. package/dist/modules/manager/poetry/schema.d.ts +48 -48
  437. package/dist/modules/manager/pub/artifacts.js +0 -1
  438. package/dist/modules/manager/pub/artifacts.js.map +1 -1
  439. package/dist/modules/manager/pub/schema.d.ts +8 -8
  440. package/dist/modules/manager/scalafmt/extract.js +1 -1
  441. package/dist/modules/manager/scalafmt/extract.js.map +1 -1
  442. package/dist/modules/manager/sveltos/schema.d.ts +12 -12
  443. package/dist/modules/manager/terraform/lockfile/hash.d.ts +1 -1
  444. package/dist/modules/manager/types.d.ts +6 -2
  445. package/dist/modules/manager/types.js.map +1 -1
  446. package/dist/modules/manager/vendir/schema.d.ts +4 -4
  447. package/dist/modules/platform/api.d.ts +1 -1
  448. package/dist/modules/platform/azure/azure-helper.js +2 -2
  449. package/dist/modules/platform/azure/azure-helper.js.map +1 -1
  450. package/dist/modules/platform/azure/index.js +14 -14
  451. package/dist/modules/platform/azure/index.js.map +1 -1
  452. package/dist/modules/platform/bitbucket/comments.js +4 -4
  453. package/dist/modules/platform/bitbucket/comments.js.map +1 -1
  454. package/dist/modules/platform/bitbucket/index.d.ts +1 -0
  455. package/dist/modules/platform/bitbucket/index.js +54 -44
  456. package/dist/modules/platform/bitbucket/index.js.map +1 -1
  457. package/dist/modules/platform/bitbucket/schema.d.ts +11 -11
  458. package/dist/modules/platform/bitbucket/utils.js +3 -3
  459. package/dist/modules/platform/bitbucket/utils.js.map +1 -1
  460. package/dist/modules/platform/bitbucket-server/index.d.ts +3 -3
  461. package/dist/modules/platform/bitbucket-server/index.js +81 -81
  462. package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
  463. package/dist/modules/platform/bitbucket-server/pr-cache.d.ts +23 -0
  464. package/dist/modules/platform/bitbucket-server/pr-cache.js +125 -0
  465. package/dist/modules/platform/bitbucket-server/pr-cache.js.map +1 -0
  466. package/dist/modules/platform/bitbucket-server/schema.d.ts +75 -0
  467. package/dist/modules/platform/bitbucket-server/schema.js +14 -1
  468. package/dist/modules/platform/bitbucket-server/schema.js.map +1 -1
  469. package/dist/modules/platform/bitbucket-server/types.d.ts +8 -2
  470. package/dist/modules/platform/bitbucket-server/types.js.map +1 -1
  471. package/dist/modules/platform/bitbucket-server/utils.d.ts +0 -2
  472. package/dist/modules/platform/bitbucket-server/utils.js +6 -52
  473. package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
  474. package/dist/modules/platform/codecommit/codecommit-client.js +6 -6
  475. package/dist/modules/platform/codecommit/codecommit-client.js.map +1 -1
  476. package/dist/modules/platform/codecommit/index.js +24 -24
  477. package/dist/modules/platform/codecommit/index.js.map +1 -1
  478. package/dist/modules/platform/gerrit/client.js +13 -2
  479. package/dist/modules/platform/gerrit/client.js.map +1 -1
  480. package/dist/modules/platform/gerrit/utils.js +1 -1
  481. package/dist/modules/platform/gerrit/utils.js.map +1 -1
  482. package/dist/modules/platform/gitea/gitea-helper.d.ts +1 -0
  483. package/dist/modules/platform/gitea/gitea-helper.js +16 -0
  484. package/dist/modules/platform/gitea/gitea-helper.js.map +1 -1
  485. package/dist/modules/platform/gitea/index.d.ts +1 -0
  486. package/dist/modules/platform/gitea/index.js +26 -7
  487. package/dist/modules/platform/gitea/index.js.map +1 -1
  488. package/dist/modules/platform/gitea/schema.d.ts +8 -8
  489. package/dist/modules/platform/gitea/types.d.ts +1 -1
  490. package/dist/modules/platform/gitea/types.js.map +1 -1
  491. package/dist/modules/platform/github/common.d.ts +2 -0
  492. package/dist/modules/platform/github/common.js +16 -0
  493. package/dist/modules/platform/github/common.js.map +1 -1
  494. package/dist/modules/platform/github/index.d.ts +1 -1
  495. package/dist/modules/platform/github/index.js +87 -82
  496. package/dist/modules/platform/github/index.js.map +1 -1
  497. package/dist/modules/platform/github/issue.d.ts +12 -12
  498. package/dist/modules/platform/github/massage-markdown-links.js +2 -2
  499. package/dist/modules/platform/github/massage-markdown-links.js.map +1 -1
  500. package/dist/modules/platform/github/pr.js +3 -3
  501. package/dist/modules/platform/github/pr.js.map +1 -1
  502. package/dist/modules/platform/github/schema.d.ts +76 -76
  503. package/dist/modules/platform/github/schema.js +3 -1
  504. package/dist/modules/platform/github/schema.js.map +1 -1
  505. package/dist/modules/platform/gitlab/index.d.ts +1 -0
  506. package/dist/modules/platform/gitlab/index.js +70 -43
  507. package/dist/modules/platform/gitlab/index.js.map +1 -1
  508. package/dist/modules/platform/index.js +0 -1
  509. package/dist/modules/platform/index.js.map +1 -1
  510. package/dist/modules/platform/scm.d.ts +1 -1
  511. package/dist/modules/versioning/api.js +2 -0
  512. package/dist/modules/versioning/api.js.map +1 -1
  513. package/dist/modules/versioning/composer/index.js +10 -0
  514. package/dist/modules/versioning/composer/index.js.map +1 -1
  515. package/dist/modules/versioning/conda/index.d.ts +41 -0
  516. package/dist/modules/versioning/conda/index.js +178 -0
  517. package/dist/modules/versioning/conda/index.js.map +1 -0
  518. package/dist/modules/versioning/hashicorp/convertor.d.ts +2 -1
  519. package/dist/modules/versioning/hashicorp/convertor.js +13 -8
  520. package/dist/modules/versioning/hashicorp/convertor.js.map +1 -1
  521. package/dist/modules/versioning/hex/index.js +3 -3
  522. package/dist/modules/versioning/hex/index.js.map +1 -1
  523. package/dist/modules/versioning/npm/index.js +2 -1
  524. package/dist/modules/versioning/npm/index.js.map +1 -1
  525. package/dist/modules/versioning/schema.js +1 -1
  526. package/dist/modules/versioning/schema.js.map +1 -1
  527. package/dist/modules/versioning/types.d.ts +4 -0
  528. package/dist/modules/versioning/types.js.map +1 -1
  529. package/dist/proxy.js +2 -1
  530. package/dist/proxy.js.map +1 -1
  531. package/dist/renovate.js +2 -2
  532. package/dist/renovate.js.map +1 -1
  533. package/dist/util/cache/package/decorator.js +2 -2
  534. package/dist/util/cache/package/decorator.js.map +1 -1
  535. package/dist/util/cache/package/redis.js +0 -1
  536. package/dist/util/cache/package/redis.js.map +1 -1
  537. package/dist/util/cache/package/types.d.ts +1 -1
  538. package/dist/util/cache/package/types.js.map +1 -1
  539. package/dist/util/cache/repository/impl/base.d.ts +1 -1
  540. package/dist/util/cache/repository/schema.d.ts +4 -4
  541. package/dist/util/cache/repository/types.d.ts +3 -0
  542. package/dist/util/cache/repository/types.js.map +1 -1
  543. package/dist/util/env.d.ts +4 -0
  544. package/dist/util/env.js +22 -0
  545. package/dist/util/env.js.map +1 -0
  546. package/dist/util/exec/containerbase.js +18 -12
  547. package/dist/util/exec/containerbase.js.map +1 -1
  548. package/dist/util/exec/index.js +5 -2
  549. package/dist/util/exec/index.js.map +1 -1
  550. package/dist/util/exec/types.d.ts +0 -2
  551. package/dist/util/exec/types.js.map +1 -1
  552. package/dist/util/exec/utils.d.ts +1 -1
  553. package/dist/util/exec/utils.js +6 -5
  554. package/dist/util/exec/utils.js.map +1 -1
  555. package/dist/util/git/author.js +1 -1
  556. package/dist/util/git/author.js.map +1 -1
  557. package/dist/util/git/config.js +0 -1
  558. package/dist/util/git/config.js.map +1 -1
  559. package/dist/util/git/error.js +4 -2
  560. package/dist/util/git/error.js.map +1 -1
  561. package/dist/util/git/index.js +73 -46
  562. package/dist/util/git/index.js.map +1 -1
  563. package/dist/util/git/private-key.js +1 -1
  564. package/dist/util/git/private-key.js.map +1 -1
  565. package/dist/util/github/graphql/query-adapters/releases-query-adapter.d.ts +2 -2
  566. package/dist/util/github/graphql/query-adapters/tags-query-adapter.d.ts +2 -2
  567. package/dist/util/http/auth.js +0 -1
  568. package/dist/util/http/auth.js.map +1 -1
  569. package/dist/util/http/bitbucket-server.d.ts +5 -4
  570. package/dist/util/http/bitbucket-server.js +21 -20
  571. package/dist/util/http/bitbucket-server.js.map +1 -1
  572. package/dist/util/http/bitbucket.d.ts +6 -5
  573. package/dist/util/http/bitbucket.js +34 -31
  574. package/dist/util/http/bitbucket.js.map +1 -1
  575. package/dist/util/http/cache/abstract-http-cache-provider.js +2 -2
  576. package/dist/util/http/cache/abstract-http-cache-provider.js.map +1 -1
  577. package/dist/util/http/cache/memory-http-cache-provider.d.ts +10 -0
  578. package/dist/util/http/cache/memory-http-cache-provider.js +29 -0
  579. package/dist/util/http/cache/memory-http-cache-provider.js.map +1 -0
  580. package/dist/util/http/cache/schema.d.ts +2 -2
  581. package/dist/util/http/errors.d.ts +2 -0
  582. package/dist/util/http/errors.js +8 -0
  583. package/dist/util/http/errors.js.map +1 -0
  584. package/dist/util/http/gerrit.d.ts +6 -4
  585. package/dist/util/http/gerrit.js +11 -12
  586. package/dist/util/http/gerrit.js.map +1 -1
  587. package/dist/util/http/gitea.d.ts +5 -4
  588. package/dist/util/http/gitea.js +14 -13
  589. package/dist/util/http/gitea.js.map +1 -1
  590. package/dist/util/http/github.d.ts +14 -8
  591. package/dist/util/http/github.js +65 -60
  592. package/dist/util/http/github.js.map +1 -1
  593. package/dist/util/http/gitlab.d.ts +7 -5
  594. package/dist/util/http/gitlab.js +58 -46
  595. package/dist/util/http/gitlab.js.map +1 -1
  596. package/dist/util/http/got.d.ts +9 -0
  597. package/dist/util/http/got.js +54 -0
  598. package/dist/util/http/got.js.map +1 -0
  599. package/dist/util/http/host-rules.d.ts +2 -1
  600. package/dist/util/http/host-rules.js +5 -4
  601. package/dist/util/http/host-rules.js.map +1 -1
  602. package/dist/util/http/http.d.ts +93 -0
  603. package/dist/util/http/http.js +346 -0
  604. package/dist/util/http/http.js.map +1 -0
  605. package/dist/util/http/index.d.ts +6 -74
  606. package/dist/util/http/index.js +5 -359
  607. package/dist/util/http/index.js.map +1 -1
  608. package/dist/util/http/legacy.js +4 -1
  609. package/dist/util/http/legacy.js.map +1 -1
  610. package/dist/util/http/types.d.ts +9 -16
  611. package/dist/util/http/types.js.map +1 -1
  612. package/dist/util/stats.d.ts +10 -0
  613. package/dist/util/stats.js +45 -1
  614. package/dist/util/stats.js.map +1 -1
  615. package/dist/util/string.d.ts +15 -0
  616. package/dist/util/string.js +75 -0
  617. package/dist/util/string.js.map +1 -1
  618. package/dist/util/toml.d.ts +1 -0
  619. package/dist/util/toml.js +6 -0
  620. package/dist/util/toml.js.map +1 -1
  621. package/dist/util/url.js +3 -8
  622. package/dist/util/url.js.map +1 -1
  623. package/dist/util/yaml.js +2 -6
  624. package/dist/util/yaml.js.map +1 -1
  625. package/dist/workers/global/config/parse/env.js +3 -2
  626. package/dist/workers/global/config/parse/env.js.map +1 -1
  627. package/dist/workers/global/config/parse/file.js +19 -9
  628. package/dist/workers/global/config/parse/file.js.map +1 -1
  629. package/dist/workers/global/config/parse/host-rules-from-env.js +6 -2
  630. package/dist/workers/global/config/parse/host-rules-from-env.js.map +1 -1
  631. package/dist/workers/global/config/parse/index.js +5 -0
  632. package/dist/workers/global/config/parse/index.js.map +1 -1
  633. package/dist/workers/repository/cache.js +1 -2
  634. package/dist/workers/repository/cache.js.map +1 -1
  635. package/dist/workers/repository/config-migration/branch/migrated-data.js +2 -0
  636. package/dist/workers/repository/config-migration/branch/migrated-data.js.map +1 -1
  637. package/dist/workers/repository/index.js +1 -0
  638. package/dist/workers/repository/index.js.map +1 -1
  639. package/dist/workers/repository/init/merge.js +6 -3
  640. package/dist/workers/repository/init/merge.js.map +1 -1
  641. package/dist/workers/repository/onboarding/pr/config-description.js +3 -1
  642. package/dist/workers/repository/onboarding/pr/config-description.js.map +1 -1
  643. package/dist/workers/repository/process/extract-update.js +0 -1
  644. package/dist/workers/repository/process/extract-update.js.map +1 -1
  645. package/dist/workers/repository/process/fingerprint-fields.js +0 -1
  646. package/dist/workers/repository/process/fingerprint-fields.js.map +1 -1
  647. package/dist/workers/repository/process/libyear.js +2 -2
  648. package/dist/workers/repository/process/libyear.js.map +1 -1
  649. package/dist/workers/repository/process/lookup/index.js +13 -4
  650. package/dist/workers/repository/process/lookup/index.js.map +1 -1
  651. package/dist/workers/repository/process/vulnerabilities.js +1 -1
  652. package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
  653. package/dist/workers/repository/process/write.js +1 -8
  654. package/dist/workers/repository/process/write.js.map +1 -1
  655. package/dist/workers/repository/reconfigure/validate.js +1 -0
  656. package/dist/workers/repository/reconfigure/validate.js.map +1 -1
  657. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +10 -1
  658. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
  659. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js +1 -1
  660. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js.map +1 -1
  661. package/dist/workers/repository/update/pr/changelog/github/index.js +6 -3
  662. package/dist/workers/repository/update/pr/changelog/github/index.js.map +1 -1
  663. package/dist/workers/repository/update/pr/changelog/gitlab/index.js +1 -1
  664. package/dist/workers/repository/update/pr/changelog/gitlab/index.js.map +1 -1
  665. package/dist/workers/repository/update/pr/changelog/source.js +1 -0
  666. package/dist/workers/repository/update/pr/changelog/source.js.map +1 -1
  667. package/dist/workers/repository/updates/flatten.js +8 -4
  668. package/dist/workers/repository/updates/flatten.js.map +1 -1
  669. package/dist/workers/repository/updates/generate.js +1 -2
  670. package/dist/workers/repository/updates/generate.js.map +1 -1
  671. package/dist/workers/types.d.ts +1 -4
  672. package/dist/workers/types.js.map +1 -1
  673. package/package.json +69 -72
  674. package/renovate-schema.json +15 -1
  675. package/dist/modules/manager/github-actions/types.d.ts +0 -30
  676. package/dist/modules/manager/github-actions/types.js +0 -3
  677. package/dist/modules/manager/github-actions/types.js.map +0 -1
  678. package/dist/modules/manager/gitlabci/common.d.ts +0 -6
  679. package/dist/modules/manager/gitlabci/common.js +0 -30
  680. package/dist/modules/manager/gitlabci/common.js.map +0 -1
  681. package/dist/modules/manager/gitlabci/types.d.ts +0 -35
  682. package/dist/modules/manager/gitlabci/types.js +0 -3
  683. package/dist/modules/manager/gitlabci/types.js.map +0 -1
@@ -167,7 +167,6 @@ async function updateHermitPackage(update) {
167
167
  }
168
168
  const execOptions = {
169
169
  docker: {},
170
- userConfiguredEnv: update?.config?.env,
171
170
  cwdFile: update.packageFileName,
172
171
  };
173
172
  const fromPackages = from.map(shlex_1.quote).join(' ');
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/hermit/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import { quote } from 'shlex';\nimport upath from 'upath';\nimport { logger } from '../../../logger';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions } from '../../../util/exec/types';\nimport { localPathIsSymbolicLink, readLocalSymlink } from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport * as p from '../../../util/promises';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\nimport type { ReadContentResult } from './types';\n\n/**\n * updateArtifacts runs hermit install for each updated dependencies\n */\nexport async function updateArtifacts(\n update: UpdateArtifact,\n): Promise<UpdateArtifactsResult[] | null> {\n const { packageFileName } = update;\n try {\n await updateHermitPackage(update);\n } catch (err) {\n const execErr: UpdateHermitError = err;\n logger.debug({ err }, `error updating hermit packages.`);\n return [\n {\n artifactError: {\n lockFile: `from: ${execErr.from}, to: ${execErr.to}`,\n stderr: execErr.stderr,\n },\n },\n ];\n }\n\n logger.debug(`scanning the changes after update`);\n\n let updateResult: UpdateArtifactsResult[] | null = null;\n\n try {\n updateResult = await getUpdateResult(packageFileName);\n logger.debug({ updateResult }, `update result for hermit`);\n } catch (err) {\n logger.debug({ err }, 'Error getting hermet update results');\n return [\n {\n artifactError: {\n stderr: err.message,\n },\n },\n ];\n }\n\n return updateResult;\n}\n\n/**\n * getContent returns the content of either link or a normal file\n */\nasync function getContent(file: string): Promise<ReadContentResult> {\n let contents: string | null = '';\n const isSymlink = await localPathIsSymbolicLink(file);\n\n if (isSymlink) {\n contents = await readLocalSymlink(file);\n }\n\n if (contents === null) {\n throw new Error(`error getting content for ${file}`);\n }\n\n return {\n isSymlink,\n contents,\n };\n}\n\n/**\n * getAddResult returns the UpdateArtifactsResult for the added files\n */\nfunction getAddResult(\n path: string,\n contentRes: ReadContentResult,\n): UpdateArtifactsResult {\n return {\n file: {\n type: 'addition',\n path,\n contents: contentRes.contents,\n isSymlink: contentRes.isSymlink,\n isExecutable: contentRes.isExecutable,\n },\n };\n}\n\n/**\n * getDeleteResult returns the UpdateArtifactsResult for deleted files\n */\nfunction getDeleteResult(path: string): UpdateArtifactsResult {\n return {\n file: {\n type: 'deletion',\n path,\n },\n };\n}\n\n/**\n * getUpdateResult will return the update result after `hermit install`\n * has been performed for all packages\n */\nasync function getUpdateResult(\n packageFileName: string,\n): Promise<UpdateArtifactsResult[]> {\n const hermitFolder = `${upath.dirname(packageFileName)}/`;\n const hermitChanges = await getRepoStatus(hermitFolder);\n logger.debug(\n { hermitChanges, hermitFolder },\n `hermit changes after package update`,\n );\n\n // handle added files\n const added = await p.map(\n [...hermitChanges.created, ...hermitChanges.not_added],\n async (path: string): Promise<UpdateArtifactsResult> => {\n const contents = await getContent(path);\n\n return getAddResult(path, contents);\n },\n );\n\n const deleted = hermitChanges.deleted.map(getDeleteResult);\n\n const modified = await p.map(\n hermitChanges.modified,\n async (path: string): Promise<UpdateArtifactsResult[]> => {\n const contents = await getContent(path);\n return [\n getDeleteResult(path), // delete existing link\n getAddResult(path, contents), // add a new link\n ];\n },\n );\n\n const renamed = await p.map(\n hermitChanges.renamed,\n async (renamed): Promise<UpdateArtifactsResult[]> => {\n const from = renamed.from;\n const to = renamed.to;\n const toContents = await getContent(to);\n\n return [getDeleteResult(from), getAddResult(to, toContents)];\n },\n );\n\n return [\n // rename will need to go first, because\n // it needs to create the new link for the new version\n // for the modified links to use\n ...renamed.flat(),\n ...modified.flat(),\n ...added,\n ...deleted,\n ];\n}\n\n/**\n * getHermitPackage returns the hermit package for running the hermit install\n */\nfunction getHermitPackage(name: string, version: string): string {\n return `${name}-${version}`;\n}\n\n/**\n * updateHermitPackage runs hermit install for the given package\n */\nasync function updateHermitPackage(update: UpdateArtifact): Promise<void> {\n logger.trace({ update }, `hermit.updateHermitPackage()`);\n\n const toInstall = [];\n const from = [];\n // storing the old package for replacement\n const toUninstall = [];\n\n for (const pkg of update.updatedDeps) {\n if (!pkg.depName || !pkg.currentVersion || !pkg.newValue) {\n logger.debug(\n {\n depName: pkg.depName,\n currentVersion: pkg.currentVersion,\n newValue: pkg.newValue,\n },\n 'missing package update information',\n );\n\n throw new UpdateHermitError(\n getHermitPackage(pkg.depName ?? '', pkg.currentVersion ?? ''),\n getHermitPackage(pkg.depName ?? '', pkg.newValue ?? ''),\n 'invalid package to update',\n );\n }\n\n const depName = pkg.depName;\n const newName = pkg.newName;\n const currentVersion = pkg.currentVersion;\n const newValue = pkg.newValue;\n const fromPackage = getHermitPackage(depName, currentVersion);\n // newName will be available for replacement\n const toPackage = getHermitPackage(newName ?? depName, newValue);\n toInstall.push(toPackage);\n from.push(fromPackage);\n // skips uninstall for version only replacement\n if (pkg.updateType === 'replacement' && newName !== depName) {\n toUninstall.push(depName);\n }\n }\n\n const execOptions: ExecOptions = {\n docker: {},\n userConfiguredEnv: update?.config?.env,\n cwdFile: update.packageFileName,\n };\n\n const fromPackages = from.map(quote).join(' ');\n\n // when a name replacement happens, need to uninstall the old package\n if (toUninstall.length > 0) {\n const packagesToUninstall = toUninstall.join(' ');\n const uninstallCommands = `./hermit uninstall ${packagesToUninstall}`;\n\n try {\n const result = await exec(uninstallCommands, execOptions);\n logger.trace(\n { stdout: result.stdout },\n `hermit uninstall command stdout`,\n );\n } catch (e) {\n logger.warn({ err: e }, `error uninstall hermit package for replacement`);\n throw new UpdateHermitError(\n fromPackages,\n packagesToUninstall,\n e.stderr,\n e.stdout,\n );\n }\n }\n\n const packagesToInstall = toInstall.join(' ');\n\n const execCommands = `./hermit install ${packagesToInstall}`;\n logger.debug(\n {\n packageFile: update.packageFileName,\n packagesToInstall,\n },\n `performing updates`,\n );\n\n try {\n const result = await exec(execCommands, execOptions);\n logger.trace({ stdout: result.stdout }, `hermit command stdout`);\n } catch (e) {\n logger.warn({ err: e }, `error updating hermit package`);\n throw new UpdateHermitError(\n fromPackages,\n packagesToInstall,\n e.stderr,\n e.stdout,\n );\n }\n}\n\nexport class UpdateHermitError extends Error {\n stdout: string;\n stderr: string;\n from: string;\n to: string;\n\n constructor(from: string, to: string, stderr: string, stdout = '') {\n super();\n this.stdout = stdout;\n this.stderr = stderr;\n this.from = from;\n this.to = to;\n }\n}\n"]}
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/hermit/artifacts.ts"],"names":[],"mappings":";;;AAcA,0CAsCC;;AApDD,iCAA8B;AAC9B,0DAA0B;AAC1B,4CAAyC;AACzC,6CAA0C;AAE1C,yCAA6E;AAC7E,2CAAkD;AAClD,kEAA4C;AAI5C;;GAEG;AACI,KAAK,UAAU,eAAe,CACnC,MAAsB;IAEtB,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAsB,GAAG,CAAC;QACvC,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,iCAAiC,CAAC,CAAC;QACzD,OAAO;YACL;gBACE,aAAa,EAAE;oBACb,QAAQ,EAAE,SAAS,OAAO,CAAC,IAAI,SAAS,OAAO,CAAC,EAAE,EAAE;oBACpD,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB;aACF;SACF,CAAC;IACJ,CAAC;IAED,eAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAElD,IAAI,YAAY,GAAmC,IAAI,CAAC;IAExD,IAAI,CAAC;QACH,YAAY,GAAG,MAAM,eAAe,CAAC,eAAe,CAAC,CAAC;QACtD,eAAM,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,EAAE,0BAA0B,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,qCAAqC,CAAC,CAAC;QAC7D,OAAO;YACL;gBACE,aAAa,EAAE;oBACb,MAAM,EAAE,GAAG,CAAC,OAAO;iBACpB;aACF;SACF,CAAC;IACJ,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,UAAU,CAAC,IAAY;IACpC,IAAI,QAAQ,GAAkB,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,MAAM,IAAA,4BAAuB,EAAC,IAAI,CAAC,CAAC;IAEtD,IAAI,SAAS,EAAE,CAAC;QACd,QAAQ,GAAG,MAAM,IAAA,qBAAgB,EAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,OAAO;QACL,SAAS;QACT,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CACnB,IAAY,EACZ,UAA6B;IAE7B,OAAO;QACL,IAAI,EAAE;YACJ,IAAI,EAAE,UAAU;YAChB,IAAI;YACJ,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,YAAY,EAAE,UAAU,CAAC,YAAY;SACtC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO;QACL,IAAI,EAAE;YACJ,IAAI,EAAE,UAAU;YAChB,IAAI;SACL;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,eAAe,CAC5B,eAAuB;IAEvB,MAAM,YAAY,GAAG,GAAG,eAAK,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC;IAC1D,MAAM,aAAa,GAAG,MAAM,IAAA,mBAAa,EAAC,YAAY,CAAC,CAAC;IACxD,eAAM,CAAC,KAAK,CACV,EAAE,aAAa,EAAE,YAAY,EAAE,EAC/B,qCAAqC,CACtC,CAAC;IAEF,qBAAqB;IACrB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CACvB,CAAC,GAAG,aAAa,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC,EACtD,KAAK,EAAE,IAAY,EAAkC,EAAE;QACrD,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;QAExC,OAAO,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC,CACF,CAAC;IAEF,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAE3D,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,GAAG,CAC1B,aAAa,CAAC,QAAQ,EACtB,KAAK,EAAE,IAAY,EAAoC,EAAE;QACvD,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO;YACL,eAAe,CAAC,IAAI,CAAC,EAAE,uBAAuB;YAC9C,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,iBAAiB;SAChD,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,GAAG,CACzB,aAAa,CAAC,OAAO,EACrB,KAAK,EAAE,OAAO,EAAoC,EAAE;QAClD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1B,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;QAExC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;IAC/D,CAAC,CACF,CAAC;IAEF,OAAO;QACL,wCAAwC;QACxC,sDAAsD;QACtD,gCAAgC;QAChC,GAAG,OAAO,CAAC,IAAI,EAAE;QACjB,GAAG,QAAQ,CAAC,IAAI,EAAE;QAClB,GAAG,KAAK;QACR,GAAG,OAAO;KACX,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,IAAY,EAAE,OAAe;IACrD,OAAO,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAAC,MAAsB;IACvD,eAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,8BAA8B,CAAC,CAAC;IAEzD,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,0CAA0C;IAC1C,MAAM,WAAW,GAAG,EAAE,CAAC;IAEvB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACzD,eAAM,CAAC,KAAK,CACV;gBACE,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,cAAc,EAAE,GAAG,CAAC,cAAc;gBAClC,QAAQ,EAAE,GAAG,CAAC,QAAQ;aACvB,EACD,oCAAoC,CACrC,CAAC;YAEF,MAAM,IAAI,iBAAiB,CACzB,gBAAgB,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,EAC7D,gBAAgB,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,EACvD,2BAA2B,CAC5B,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,MAAM,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC;QAC1C,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAC9B,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAC9D,4CAA4C;QAC5C,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,IAAI,OAAO,EAAE,QAAQ,CAAC,CAAC;QACjE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvB,+CAA+C;QAC/C,IAAI,GAAG,CAAC,UAAU,KAAK,aAAa,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YAC5D,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAgB;QAC/B,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,MAAM,CAAC,eAAe;KAChC,CAAC;IAEF,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,aAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE/C,qEAAqE;IACrE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,mBAAmB,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,iBAAiB,GAAG,sBAAsB,mBAAmB,EAAE,CAAC;QAEtE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAA,WAAI,EAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;YAC1D,eAAM,CAAC,KAAK,CACV,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EACzB,iCAAiC,CAClC,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,gDAAgD,CAAC,CAAC;YAC1E,MAAM,IAAI,iBAAiB,CACzB,YAAY,EACZ,mBAAmB,EACnB,CAAC,CAAC,MAAM,EACR,CAAC,CAAC,MAAM,CACT,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,iBAAiB,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE9C,MAAM,YAAY,GAAG,oBAAoB,iBAAiB,EAAE,CAAC;IAC7D,eAAM,CAAC,KAAK,CACV;QACE,WAAW,EAAE,MAAM,CAAC,eAAe;QACnC,iBAAiB;KAClB,EACD,oBAAoB,CACrB,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAA,WAAI,EAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QACrD,eAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC;IACnE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,+BAA+B,CAAC,CAAC;QACzD,MAAM,IAAI,iBAAiB,CACzB,YAAY,EACZ,iBAAiB,EACjB,CAAC,CAAC,MAAM,EACR,CAAC,CAAC,MAAM,CACT,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAa,iBAAkB,SAAQ,KAAK;IAC1C,MAAM,CAAS;IACf,MAAM,CAAS;IACf,IAAI,CAAS;IACb,EAAE,CAAS;IAEX,YAAY,IAAY,EAAE,EAAU,EAAE,MAAc,EAAE,MAAM,GAAG,EAAE;QAC/D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;CACF;AAbD,8CAaC","sourcesContent":["import { quote } from 'shlex';\nimport upath from 'upath';\nimport { logger } from '../../../logger';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions } from '../../../util/exec/types';\nimport { localPathIsSymbolicLink, readLocalSymlink } from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport * as p from '../../../util/promises';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\nimport type { ReadContentResult } from './types';\n\n/**\n * updateArtifacts runs hermit install for each updated dependencies\n */\nexport async function updateArtifacts(\n update: UpdateArtifact,\n): Promise<UpdateArtifactsResult[] | null> {\n const { packageFileName } = update;\n try {\n await updateHermitPackage(update);\n } catch (err) {\n const execErr: UpdateHermitError = err;\n logger.debug({ err }, `error updating hermit packages.`);\n return [\n {\n artifactError: {\n lockFile: `from: ${execErr.from}, to: ${execErr.to}`,\n stderr: execErr.stderr,\n },\n },\n ];\n }\n\n logger.debug(`scanning the changes after update`);\n\n let updateResult: UpdateArtifactsResult[] | null = null;\n\n try {\n updateResult = await getUpdateResult(packageFileName);\n logger.debug({ updateResult }, `update result for hermit`);\n } catch (err) {\n logger.debug({ err }, 'Error getting hermet update results');\n return [\n {\n artifactError: {\n stderr: err.message,\n },\n },\n ];\n }\n\n return updateResult;\n}\n\n/**\n * getContent returns the content of either link or a normal file\n */\nasync function getContent(file: string): Promise<ReadContentResult> {\n let contents: string | null = '';\n const isSymlink = await localPathIsSymbolicLink(file);\n\n if (isSymlink) {\n contents = await readLocalSymlink(file);\n }\n\n if (contents === null) {\n throw new Error(`error getting content for ${file}`);\n }\n\n return {\n isSymlink,\n contents,\n };\n}\n\n/**\n * getAddResult returns the UpdateArtifactsResult for the added files\n */\nfunction getAddResult(\n path: string,\n contentRes: ReadContentResult,\n): UpdateArtifactsResult {\n return {\n file: {\n type: 'addition',\n path,\n contents: contentRes.contents,\n isSymlink: contentRes.isSymlink,\n isExecutable: contentRes.isExecutable,\n },\n };\n}\n\n/**\n * getDeleteResult returns the UpdateArtifactsResult for deleted files\n */\nfunction getDeleteResult(path: string): UpdateArtifactsResult {\n return {\n file: {\n type: 'deletion',\n path,\n },\n };\n}\n\n/**\n * getUpdateResult will return the update result after `hermit install`\n * has been performed for all packages\n */\nasync function getUpdateResult(\n packageFileName: string,\n): Promise<UpdateArtifactsResult[]> {\n const hermitFolder = `${upath.dirname(packageFileName)}/`;\n const hermitChanges = await getRepoStatus(hermitFolder);\n logger.debug(\n { hermitChanges, hermitFolder },\n `hermit changes after package update`,\n );\n\n // handle added files\n const added = await p.map(\n [...hermitChanges.created, ...hermitChanges.not_added],\n async (path: string): Promise<UpdateArtifactsResult> => {\n const contents = await getContent(path);\n\n return getAddResult(path, contents);\n },\n );\n\n const deleted = hermitChanges.deleted.map(getDeleteResult);\n\n const modified = await p.map(\n hermitChanges.modified,\n async (path: string): Promise<UpdateArtifactsResult[]> => {\n const contents = await getContent(path);\n return [\n getDeleteResult(path), // delete existing link\n getAddResult(path, contents), // add a new link\n ];\n },\n );\n\n const renamed = await p.map(\n hermitChanges.renamed,\n async (renamed): Promise<UpdateArtifactsResult[]> => {\n const from = renamed.from;\n const to = renamed.to;\n const toContents = await getContent(to);\n\n return [getDeleteResult(from), getAddResult(to, toContents)];\n },\n );\n\n return [\n // rename will need to go first, because\n // it needs to create the new link for the new version\n // for the modified links to use\n ...renamed.flat(),\n ...modified.flat(),\n ...added,\n ...deleted,\n ];\n}\n\n/**\n * getHermitPackage returns the hermit package for running the hermit install\n */\nfunction getHermitPackage(name: string, version: string): string {\n return `${name}-${version}`;\n}\n\n/**\n * updateHermitPackage runs hermit install for the given package\n */\nasync function updateHermitPackage(update: UpdateArtifact): Promise<void> {\n logger.trace({ update }, `hermit.updateHermitPackage()`);\n\n const toInstall = [];\n const from = [];\n // storing the old package for replacement\n const toUninstall = [];\n\n for (const pkg of update.updatedDeps) {\n if (!pkg.depName || !pkg.currentVersion || !pkg.newValue) {\n logger.debug(\n {\n depName: pkg.depName,\n currentVersion: pkg.currentVersion,\n newValue: pkg.newValue,\n },\n 'missing package update information',\n );\n\n throw new UpdateHermitError(\n getHermitPackage(pkg.depName ?? '', pkg.currentVersion ?? ''),\n getHermitPackage(pkg.depName ?? '', pkg.newValue ?? ''),\n 'invalid package to update',\n );\n }\n\n const depName = pkg.depName;\n const newName = pkg.newName;\n const currentVersion = pkg.currentVersion;\n const newValue = pkg.newValue;\n const fromPackage = getHermitPackage(depName, currentVersion);\n // newName will be available for replacement\n const toPackage = getHermitPackage(newName ?? depName, newValue);\n toInstall.push(toPackage);\n from.push(fromPackage);\n // skips uninstall for version only replacement\n if (pkg.updateType === 'replacement' && newName !== depName) {\n toUninstall.push(depName);\n }\n }\n\n const execOptions: ExecOptions = {\n docker: {},\n cwdFile: update.packageFileName,\n };\n\n const fromPackages = from.map(quote).join(' ');\n\n // when a name replacement happens, need to uninstall the old package\n if (toUninstall.length > 0) {\n const packagesToUninstall = toUninstall.join(' ');\n const uninstallCommands = `./hermit uninstall ${packagesToUninstall}`;\n\n try {\n const result = await exec(uninstallCommands, execOptions);\n logger.trace(\n { stdout: result.stdout },\n `hermit uninstall command stdout`,\n );\n } catch (e) {\n logger.warn({ err: e }, `error uninstall hermit package for replacement`);\n throw new UpdateHermitError(\n fromPackages,\n packagesToUninstall,\n e.stderr,\n e.stdout,\n );\n }\n }\n\n const packagesToInstall = toInstall.join(' ');\n\n const execCommands = `./hermit install ${packagesToInstall}`;\n logger.debug(\n {\n packageFile: update.packageFileName,\n packagesToInstall,\n },\n `performing updates`,\n );\n\n try {\n const result = await exec(execCommands, execOptions);\n logger.trace({ stdout: result.stdout }, `hermit command stdout`);\n } catch (e) {\n logger.warn({ err: e }, `error updating hermit package`);\n throw new UpdateHermitError(\n fromPackages,\n packagesToInstall,\n e.stderr,\n e.stdout,\n );\n }\n}\n\nexport class UpdateHermitError extends Error {\n stdout: string;\n stderr: string;\n from: string;\n to: string;\n\n constructor(from: string, to: string, stderr: string, stdout = '') {\n super();\n this.stdout = stdout;\n this.stderr = stderr;\n this.from = from;\n this.to = to;\n }\n}\n"]}
@@ -46,7 +46,6 @@ function extractUrl(content) {
46
46
  if (i === -1) {
47
47
  return null;
48
48
  }
49
- /* istanbul ignore else */
50
49
  if ((0, util_1.isSpace)(content[i])) {
51
50
  i += 1;
52
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/homebrew/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport type { SkipReason } from '../../../types';\nimport { regEx } from '../../../util/regex';\nimport { GithubTagsDatasource } from '../../datasource/github-tags';\nimport type { PackageDependency, PackageFileContent } from '../types';\nimport type { UrlPathParsedResult } from './types';\nimport { isSpace, removeComments, skip } from './util';\n\nfunction parseSha256(idx: number, content: string): string | null {\n let i = idx;\n i += 'sha256'.length;\n i = skip(i, content, (c) => isSpace(c));\n if (content[i] !== '\"' && content[i] !== \"'\") {\n return null;\n }\n i += 1;\n const j = skip(i, content, (c) => c !== '\"' && c !== \"'\");\n const sha256 = content.slice(i, j);\n return sha256;\n}\n\nfunction extractSha256(content: string): string | null {\n const sha256RegExp = regEx(/(^|\\s)sha256(\\s)/);\n let i = content.search(sha256RegExp);\n if (isSpace(content[i])) {\n i += 1;\n }\n return parseSha256(i, content);\n}\n\nfunction parseUrl(idx: number, content: string): string | null {\n let i = idx;\n i += 'url'.length;\n i = skip(i, content, (c) => isSpace(c));\n const chr = content[i];\n if (chr !== '\"' && chr !== \"'\") {\n return null;\n }\n i += 1;\n const j = skip(i, content, (c) => c !== '\"' && c !== \"'\" && !isSpace(c));\n const url = content.slice(i, j);\n return url;\n}\n\nfunction extractUrl(content: string): string | null {\n const urlRegExp = regEx(/(^|\\s)url(\\s)/);\n let i = content.search(urlRegExp);\n // content.search() returns -1 if not found\n if (i === -1) {\n return null;\n }\n /* istanbul ignore else */\n if (isSpace(content[i])) {\n i += 1;\n }\n return parseUrl(i, content);\n}\n\nexport function parseUrlPath(\n urlStr: string | null | undefined,\n): UrlPathParsedResult | null {\n if (!urlStr) {\n return null;\n }\n try {\n const url = new URL(urlStr);\n if (url.hostname !== 'github.com') {\n return null;\n }\n let s = url.pathname.split('/');\n s = s.filter((val) => val);\n const ownerName = s[0];\n const repoName = s[1];\n let currentValue: string | undefined;\n if (s[2] === 'archive') {\n // old archive url in form: [...]/archive/<tag>.tar.gz\n currentValue = s[3];\n if (currentValue === 'refs') {\n // new archive url in form: [...]/archive/refs/tags/<tag>.tar.gz\n currentValue = s[5];\n }\n const targz = currentValue.slice(\n currentValue.length - 7,\n currentValue.length,\n );\n if (targz === '.tar.gz') {\n currentValue = currentValue.substring(0, currentValue.length - 7);\n }\n } else if (s[2] === 'releases' && s[3] === 'download') {\n currentValue = s[4];\n }\n if (!currentValue) {\n return null;\n }\n return { currentValue, ownerName, repoName };\n } catch {\n return null;\n }\n}\n\n/* This function parses the \"class className < Formula\" header\n and returns the className and index of the character just after the header */\nfunction parseClassHeader(idx: number, content: string): string | null {\n let i = idx;\n i += 'class'.length;\n i = skip(i, content, (c) => isSpace(c));\n // Skip all non space and non '<' characters\n let j = skip(i, content, (c) => !isSpace(c) && c !== '<');\n const className = content.slice(i, j);\n i = j;\n // Skip spaces\n i = skip(i, content, (c) => isSpace(c));\n if (content[i] === '<') {\n i += 1;\n } else {\n return null;\n } // Skip spaces\n i = skip(i, content, (c) => isSpace(c));\n // Skip non-spaces\n j = skip(i, content, (c) => !isSpace(c));\n if (content.slice(i, j) !== 'Formula') {\n return null;\n }\n return className;\n}\n\nfunction extractClassName(content: string): string | null {\n const classRegExp = regEx(/(^|\\s)class\\s/);\n let i = content.search(classRegExp);\n if (isSpace(content[i])) {\n i += 1;\n }\n return parseClassHeader(i, content);\n}\n\n// TODO: Maybe check if quotes/double-quotes are balanced (#9591)\nexport function extractPackageFile(content: string): PackageFileContent | null {\n logger.trace('extractPackageFile()');\n /*\n 1. match \"class className < Formula\"\n 2. extract className\n 3. extract url field (get depName from url)\n 4. extract sha256 field\n */\n const cleanContent = removeComments(content);\n const className = extractClassName(cleanContent);\n if (!className) {\n logger.debug('Invalid class definition');\n return null;\n }\n const url = extractUrl(cleanContent);\n if (!url) {\n logger.debug('Invalid URL field');\n }\n const urlPathResult = parseUrlPath(url);\n let skipReason: SkipReason | undefined;\n let currentValue: string | null = null;\n let ownerName: string | null = null;\n let repoName: string | null = null;\n if (urlPathResult) {\n currentValue = urlPathResult.currentValue;\n ownerName = urlPathResult.ownerName;\n repoName = urlPathResult.repoName;\n } else {\n logger.debug('Error: Unsupported URL field');\n skipReason = 'unsupported-url';\n }\n const sha256 = extractSha256(cleanContent);\n if (!sha256 || sha256.length !== 64) {\n logger.debug('Error: Invalid sha256 field');\n skipReason = 'invalid-sha256';\n }\n const dep: PackageDependency = {\n // TODO: types (#22198)\n depName: `${ownerName}/${repoName}`,\n managerData: { ownerName, repoName, sha256, url },\n currentValue,\n datasource: GithubTagsDatasource.id,\n };\n if (skipReason) {\n dep.skipReason = skipReason;\n if (skipReason === 'unsupported-url') {\n dep.depName = className;\n dep.datasource = undefined;\n }\n }\n const deps = [dep];\n return { deps };\n}\n"]}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/homebrew/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport type { SkipReason } from '../../../types';\nimport { regEx } from '../../../util/regex';\nimport { GithubTagsDatasource } from '../../datasource/github-tags';\nimport type { PackageDependency, PackageFileContent } from '../types';\nimport type { UrlPathParsedResult } from './types';\nimport { isSpace, removeComments, skip } from './util';\n\nfunction parseSha256(idx: number, content: string): string | null {\n let i = idx;\n i += 'sha256'.length;\n i = skip(i, content, (c) => isSpace(c));\n if (content[i] !== '\"' && content[i] !== \"'\") {\n return null;\n }\n i += 1;\n const j = skip(i, content, (c) => c !== '\"' && c !== \"'\");\n const sha256 = content.slice(i, j);\n return sha256;\n}\n\nfunction extractSha256(content: string): string | null {\n const sha256RegExp = regEx(/(^|\\s)sha256(\\s)/);\n let i = content.search(sha256RegExp);\n if (isSpace(content[i])) {\n i += 1;\n }\n return parseSha256(i, content);\n}\n\nfunction parseUrl(idx: number, content: string): string | null {\n let i = idx;\n i += 'url'.length;\n i = skip(i, content, (c) => isSpace(c));\n const chr = content[i];\n if (chr !== '\"' && chr !== \"'\") {\n return null;\n }\n i += 1;\n const j = skip(i, content, (c) => c !== '\"' && c !== \"'\" && !isSpace(c));\n const url = content.slice(i, j);\n return url;\n}\n\nfunction extractUrl(content: string): string | null {\n const urlRegExp = regEx(/(^|\\s)url(\\s)/);\n let i = content.search(urlRegExp);\n // content.search() returns -1 if not found\n if (i === -1) {\n return null;\n }\n if (isSpace(content[i])) {\n i += 1;\n }\n return parseUrl(i, content);\n}\n\nexport function parseUrlPath(\n urlStr: string | null | undefined,\n): UrlPathParsedResult | null {\n if (!urlStr) {\n return null;\n }\n try {\n const url = new URL(urlStr);\n if (url.hostname !== 'github.com') {\n return null;\n }\n let s = url.pathname.split('/');\n s = s.filter((val) => val);\n const ownerName = s[0];\n const repoName = s[1];\n let currentValue: string | undefined;\n if (s[2] === 'archive') {\n // old archive url in form: [...]/archive/<tag>.tar.gz\n currentValue = s[3];\n if (currentValue === 'refs') {\n // new archive url in form: [...]/archive/refs/tags/<tag>.tar.gz\n currentValue = s[5];\n }\n const targz = currentValue.slice(\n currentValue.length - 7,\n currentValue.length,\n );\n if (targz === '.tar.gz') {\n currentValue = currentValue.substring(0, currentValue.length - 7);\n }\n } else if (s[2] === 'releases' && s[3] === 'download') {\n currentValue = s[4];\n }\n if (!currentValue) {\n return null;\n }\n return { currentValue, ownerName, repoName };\n } catch {\n return null;\n }\n}\n\n/* This function parses the \"class className < Formula\" header\n and returns the className and index of the character just after the header */\nfunction parseClassHeader(idx: number, content: string): string | null {\n let i = idx;\n i += 'class'.length;\n i = skip(i, content, (c) => isSpace(c));\n // Skip all non space and non '<' characters\n let j = skip(i, content, (c) => !isSpace(c) && c !== '<');\n const className = content.slice(i, j);\n i = j;\n // Skip spaces\n i = skip(i, content, (c) => isSpace(c));\n if (content[i] === '<') {\n i += 1;\n } else {\n return null;\n } // Skip spaces\n i = skip(i, content, (c) => isSpace(c));\n // Skip non-spaces\n j = skip(i, content, (c) => !isSpace(c));\n if (content.slice(i, j) !== 'Formula') {\n return null;\n }\n return className;\n}\n\nfunction extractClassName(content: string): string | null {\n const classRegExp = regEx(/(^|\\s)class\\s/);\n let i = content.search(classRegExp);\n if (isSpace(content[i])) {\n i += 1;\n }\n return parseClassHeader(i, content);\n}\n\n// TODO: Maybe check if quotes/double-quotes are balanced (#9591)\nexport function extractPackageFile(content: string): PackageFileContent | null {\n logger.trace('extractPackageFile()');\n /*\n 1. match \"class className < Formula\"\n 2. extract className\n 3. extract url field (get depName from url)\n 4. extract sha256 field\n */\n const cleanContent = removeComments(content);\n const className = extractClassName(cleanContent);\n if (!className) {\n logger.debug('Invalid class definition');\n return null;\n }\n const url = extractUrl(cleanContent);\n if (!url) {\n logger.debug('Invalid URL field');\n }\n const urlPathResult = parseUrlPath(url);\n let skipReason: SkipReason | undefined;\n let currentValue: string | null = null;\n let ownerName: string | null = null;\n let repoName: string | null = null;\n if (urlPathResult) {\n currentValue = urlPathResult.currentValue;\n ownerName = urlPathResult.ownerName;\n repoName = urlPathResult.repoName;\n } else {\n logger.debug('Error: Unsupported URL field');\n skipReason = 'unsupported-url';\n }\n const sha256 = extractSha256(cleanContent);\n if (!sha256 || sha256.length !== 64) {\n logger.debug('Error: Invalid sha256 field');\n skipReason = 'invalid-sha256';\n }\n const dep: PackageDependency = {\n // TODO: types (#22198)\n depName: `${ownerName}/${repoName}`,\n managerData: { ownerName, repoName, sha256, url },\n currentValue,\n datasource: GithubTagsDatasource.id,\n };\n if (skipReason) {\n dep.skipReason = skipReason;\n if (skipReason === 'unsupported-url') {\n dep.depName = className;\n dep.datasource = undefined;\n }\n }\n const deps = [dep];\n return { deps };\n}\n"]}
@@ -32,7 +32,6 @@ async function updateArtifacts(updateArtifact) {
32
32
  const execOptions = {
33
33
  cwdFile: packageFileName,
34
34
  docker: {},
35
- userConfiguredEnv: config.env,
36
35
  toolConstraints: [jsonnetBundlerToolConstraint],
37
36
  };
38
37
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/jsonnet-bundler/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import { quote } from 'shlex';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions, ToolConstraint } from '../../../util/exec/types';\nimport { readLocalFile } from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport { regEx } from '../../../util/regex';\nimport type {\n PackageDependency,\n UpdateArtifact,\n UpdateArtifactsResult,\n} from '../types';\n\nfunction dependencyUrl(dep: PackageDependency): string {\n const url = dep.packageName!;\n if (dep.managerData?.subdir) {\n return url.concat('/', dep.managerData.subdir);\n }\n return url;\n}\n\nexport async function updateArtifacts(\n updateArtifact: UpdateArtifact,\n): Promise<UpdateArtifactsResult[] | null> {\n const { packageFileName, updatedDeps, config } = updateArtifact;\n logger.trace({ packageFileName }, 'jsonnet-bundler.updateArtifacts()');\n\n const lockFileName = packageFileName.replace(regEx(/\\.json$/), '.lock.json');\n const existingLockFileContent = await readLocalFile(lockFileName, 'utf8');\n\n if (!existingLockFileContent) {\n logger.debug('No jsonnetfile.lock.json found');\n return null;\n }\n\n const jsonnetBundlerToolConstraint: ToolConstraint = {\n toolName: 'jb',\n constraint: config.constraints?.jb,\n };\n\n const execOptions: ExecOptions = {\n cwdFile: packageFileName,\n docker: {},\n userConfiguredEnv: config.env,\n toolConstraints: [jsonnetBundlerToolConstraint],\n };\n\n try {\n if (config.isLockFileMaintenance) {\n await exec('jb update', execOptions);\n } else {\n const dependencyUrls = updatedDeps.map(dependencyUrl);\n if (dependencyUrls.length > 0) {\n await exec(\n `jb update ${dependencyUrls.map(quote).join(' ')}`,\n execOptions,\n );\n }\n }\n\n const status = await getRepoStatus();\n\n if (status.isClean()) {\n return null;\n }\n\n const res: UpdateArtifactsResult[] = [];\n\n for (const f of coerceArray(status.modified)) {\n res.push({\n file: {\n type: 'addition',\n path: f,\n contents: await readLocalFile(f),\n },\n });\n }\n for (const f of coerceArray(status.not_added)) {\n res.push({\n file: {\n type: 'addition',\n path: f,\n contents: await readLocalFile(f),\n },\n });\n }\n for (const f of coerceArray(status.deleted)) {\n res.push({\n file: {\n type: 'deletion',\n path: f,\n },\n });\n }\n\n return res;\n } catch (err) /* istanbul ignore next */ {\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: err.stderr,\n },\n },\n ];\n }\n}\n"]}
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/jsonnet-bundler/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import { quote } from 'shlex';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions, ToolConstraint } from '../../../util/exec/types';\nimport { readLocalFile } from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport { regEx } from '../../../util/regex';\nimport type {\n PackageDependency,\n UpdateArtifact,\n UpdateArtifactsResult,\n} from '../types';\n\nfunction dependencyUrl(dep: PackageDependency): string {\n const url = dep.packageName!;\n if (dep.managerData?.subdir) {\n return url.concat('/', dep.managerData.subdir);\n }\n return url;\n}\n\nexport async function updateArtifacts(\n updateArtifact: UpdateArtifact,\n): Promise<UpdateArtifactsResult[] | null> {\n const { packageFileName, updatedDeps, config } = updateArtifact;\n logger.trace({ packageFileName }, 'jsonnet-bundler.updateArtifacts()');\n\n const lockFileName = packageFileName.replace(regEx(/\\.json$/), '.lock.json');\n const existingLockFileContent = await readLocalFile(lockFileName, 'utf8');\n\n if (!existingLockFileContent) {\n logger.debug('No jsonnetfile.lock.json found');\n return null;\n }\n\n const jsonnetBundlerToolConstraint: ToolConstraint = {\n toolName: 'jb',\n constraint: config.constraints?.jb,\n };\n\n const execOptions: ExecOptions = {\n cwdFile: packageFileName,\n docker: {},\n toolConstraints: [jsonnetBundlerToolConstraint],\n };\n\n try {\n if (config.isLockFileMaintenance) {\n await exec('jb update', execOptions);\n } else {\n const dependencyUrls = updatedDeps.map(dependencyUrl);\n if (dependencyUrls.length > 0) {\n await exec(\n `jb update ${dependencyUrls.map(quote).join(' ')}`,\n execOptions,\n );\n }\n }\n\n const status = await getRepoStatus();\n\n if (status.isClean()) {\n return null;\n }\n\n const res: UpdateArtifactsResult[] = [];\n\n for (const f of coerceArray(status.modified)) {\n res.push({\n file: {\n type: 'addition',\n path: f,\n contents: await readLocalFile(f),\n },\n });\n }\n for (const f of coerceArray(status.not_added)) {\n res.push({\n file: {\n type: 'addition',\n path: f,\n contents: await readLocalFile(f),\n },\n });\n }\n for (const f of coerceArray(status.deleted)) {\n res.push({\n file: {\n type: 'deletion',\n path: f,\n },\n });\n }\n\n return res;\n } catch (err) /* istanbul ignore next */ {\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: err.stderr,\n },\n },\n ];\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import type { UpdateArtifact, UpdateArtifactsResult } from '../types';
2
+ export declare function updateArtifacts({ packageFileName, updatedDeps, newPackageFileContent, config, }: UpdateArtifact): Promise<UpdateArtifactsResult[] | null>;
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateArtifacts = updateArtifacts;
4
+ const tslib_1 = require("tslib");
5
+ const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
6
+ const shlex_1 = require("shlex");
7
+ const upath_1 = tslib_1.__importDefault(require("upath"));
8
+ const error_messages_1 = require("../../../constants/error-messages");
9
+ const logger_1 = require("../../../logger");
10
+ const exec_1 = require("../../../util/exec");
11
+ const fs_1 = require("../../../util/fs");
12
+ const git_1 = require("../../../util/git");
13
+ const docker_1 = require("../../datasource/docker");
14
+ const helm_1 = require("../../datasource/helm");
15
+ const common_1 = require("./common");
16
+ const extract_1 = require("./extract");
17
+ async function localExistingChartPath(chartHome, dependencyName, version) {
18
+ const folderName = `${dependencyName}-${version}`;
19
+ const path = upath_1.default.join(chartHome, folderName);
20
+ const pathExists = await (0, fs_1.localPathExists)(path);
21
+ return pathExists ? path : null;
22
+ }
23
+ function helmRepositoryArgs(repository, depName, datasource) {
24
+ switch (datasource) {
25
+ case helm_1.HelmDatasource.id:
26
+ return `--repo ${(0, shlex_1.quote)(repository)} ${depName}`;
27
+ case docker_1.DockerDatasource.id:
28
+ return (0, shlex_1.quote)(`oci://${repository}`);
29
+ /* v8 ignore next 2: should never happen */
30
+ default:
31
+ throw new Error(`Unknown datasource: ${datasource}`);
32
+ }
33
+ }
34
+ async function inflateHelmChart(flagEnabled, execOptions, chartHome, depName, repository, currentVersion, newVersion, datasource) {
35
+ const currentChartExistingPath = await localExistingChartPath(chartHome, depName, currentVersion);
36
+ if (!flagEnabled && is_1.default.nullOrUndefined(currentChartExistingPath)) {
37
+ logger_1.logger.debug(`Not inflating Helm chart for ${depName} as kustomizeInflateHelmCharts is not enabled and the current version isn't inflated`);
38
+ return;
39
+ }
40
+ if (is_1.default.nonEmptyString(currentChartExistingPath) &&
41
+ is_1.default.nonEmptyString(newVersion)) {
42
+ logger_1.logger.debug(`Deleting previous helm chart: ${currentChartExistingPath}`);
43
+ await (0, fs_1.deleteLocalFile)(currentChartExistingPath);
44
+ }
45
+ const versionToPull = newVersion ?? currentVersion;
46
+ const versionToPullExistingPath = await localExistingChartPath(chartHome, depName, versionToPull);
47
+ if (is_1.default.nonEmptyString(versionToPullExistingPath)) {
48
+ logger_1.logger.debug(`Helm chart ${depName} version ${versionToPull} already exists at ${versionToPullExistingPath}`);
49
+ return;
50
+ }
51
+ const folderName = `${depName}-${versionToPull}`;
52
+ const untarDir = upath_1.default.join(chartHome, folderName);
53
+ logger_1.logger.debug(`Pulling helm chart ${depName} version ${versionToPull} to ${untarDir}`);
54
+ const cmd = `helm pull --untar --untardir ${(0, shlex_1.quote)(untarDir)} ` +
55
+ `--version ${(0, shlex_1.quote)(versionToPull)} ${helmRepositoryArgs(repository, depName, datasource)}`;
56
+ await (0, exec_1.exec)(cmd, execOptions);
57
+ }
58
+ async function updateArtifacts({ packageFileName, updatedDeps, newPackageFileContent, config, }) {
59
+ logger_1.logger.debug(`kustomize.updateArtifacts(${packageFileName})`);
60
+ const project = (0, extract_1.parseKustomize)(newPackageFileContent);
61
+ const isUpdateOptionInflateChartArchives = config.postUpdateOptions?.includes('kustomizeInflateHelmCharts') === true;
62
+ if (is_1.default.nullOrUndefined(project)) {
63
+ return [
64
+ {
65
+ artifactError: {
66
+ stderr: 'Failed to parse new package file content',
67
+ },
68
+ },
69
+ ];
70
+ }
71
+ const chartHome = (0, fs_1.getSiblingFileName)(packageFileName, project.helmGlobals?.chartHome ?? 'charts');
72
+ try {
73
+ const helmToolConstraint = {
74
+ toolName: 'helm',
75
+ constraint: config.constraints?.helm,
76
+ };
77
+ const execOptions = {
78
+ docker: {},
79
+ extraEnv: (0, common_1.generateHelmEnvs)(config),
80
+ toolConstraints: [helmToolConstraint],
81
+ };
82
+ for (const dependency of updatedDeps) {
83
+ if (!dependency.currentVersion) {
84
+ continue;
85
+ }
86
+ if (dependency.newVersion === dependency.currentVersion) {
87
+ continue;
88
+ }
89
+ if (!is_1.default.nonEmptyString(dependency.depName)) {
90
+ continue;
91
+ }
92
+ if (dependency.depType !== 'HelmChart') {
93
+ continue;
94
+ }
95
+ let repository = null;
96
+ switch (dependency.datasource) {
97
+ case helm_1.HelmDatasource.id:
98
+ repository = dependency.registryUrls?.[0];
99
+ break;
100
+ case docker_1.DockerDatasource.id:
101
+ repository = dependency.packageName;
102
+ break;
103
+ }
104
+ if (is_1.default.nullOrUndefined(repository)) {
105
+ continue;
106
+ }
107
+ await inflateHelmChart(isUpdateOptionInflateChartArchives, execOptions, chartHome, dependency.depName, repository, dependency.currentVersion, dependency.newVersion, dependency.datasource);
108
+ }
109
+ const status = await (0, git_1.getRepoStatus)();
110
+ const chartsAddition = status?.not_added ?? [];
111
+ const chartsDeletion = status?.deleted ?? [];
112
+ const fileChanges = [];
113
+ for (const file of chartsAddition) {
114
+ // only add artifacts in the chartHome path
115
+ if (!file.startsWith(chartHome)) {
116
+ continue;
117
+ }
118
+ fileChanges.push({
119
+ file: {
120
+ type: 'addition',
121
+ path: file,
122
+ contents: await (0, fs_1.readLocalFile)(file),
123
+ },
124
+ });
125
+ }
126
+ for (const file of chartsDeletion) {
127
+ // only add artifacts in the chartHome path
128
+ if (!file.startsWith(chartHome)) {
129
+ continue;
130
+ }
131
+ fileChanges.push({
132
+ file: {
133
+ type: 'deletion',
134
+ path: file,
135
+ },
136
+ });
137
+ }
138
+ return fileChanges.length > 0 ? fileChanges : null;
139
+ }
140
+ catch (err) {
141
+ if (err.message === error_messages_1.TEMPORARY_ERROR) {
142
+ throw err;
143
+ }
144
+ logger_1.logger.debug({ err }, 'Failed to inflate helm chart');
145
+ return [
146
+ {
147
+ artifactError: {
148
+ stderr: err.message,
149
+ },
150
+ },
151
+ ];
152
+ }
153
+ }
154
+ //# sourceMappingURL=artifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/kustomize/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport upath from 'upath';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions, ToolConstraint } from '../../../util/exec/types';\nimport {\n deleteLocalFile,\n getSiblingFileName,\n localPathExists,\n readLocalFile,\n} from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport { DockerDatasource } from '../../datasource/docker';\nimport { HelmDatasource } from '../../datasource/helm';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\nimport { generateHelmEnvs } from './common';\nimport { parseKustomize } from './extract';\n\nasync function localExistingChartPath(\n chartHome: string,\n dependencyName: string,\n version?: string,\n): Promise<string | null> {\n const folderName = `${dependencyName}-${version}`;\n const path = upath.join(chartHome, folderName);\n const pathExists = await localPathExists(path);\n\n return pathExists ? path : null;\n}\n\nfunction helmRepositoryArgs(\n repository: string,\n depName: string,\n datasource?: string,\n): string {\n switch (datasource) {\n case HelmDatasource.id:\n return `--repo ${quote(repository)} ${depName}`;\n case DockerDatasource.id:\n return quote(`oci://${repository}`);\n /* v8 ignore next 2: should never happen */\n default:\n throw new Error(`Unknown datasource: ${datasource}`);\n }\n}\n\nasync function inflateHelmChart(\n flagEnabled: boolean,\n execOptions: ExecOptions,\n chartHome: string,\n depName: string,\n repository: string,\n currentVersion: string,\n newVersion?: string,\n datasource?: string,\n): Promise<void> {\n const currentChartExistingPath = await localExistingChartPath(\n chartHome,\n depName,\n currentVersion,\n );\n\n if (!flagEnabled && is.nullOrUndefined(currentChartExistingPath)) {\n logger.debug(\n `Not inflating Helm chart for ${depName} as kustomizeInflateHelmCharts is not enabled and the current version isn't inflated`,\n );\n return;\n }\n\n if (\n is.nonEmptyString(currentChartExistingPath) &&\n is.nonEmptyString(newVersion)\n ) {\n logger.debug(`Deleting previous helm chart: ${currentChartExistingPath}`);\n await deleteLocalFile(currentChartExistingPath);\n }\n\n const versionToPull = newVersion ?? currentVersion;\n const versionToPullExistingPath = await localExistingChartPath(\n chartHome,\n depName,\n versionToPull,\n );\n\n if (is.nonEmptyString(versionToPullExistingPath)) {\n logger.debug(\n `Helm chart ${depName} version ${versionToPull} already exists at ${versionToPullExistingPath}`,\n );\n return;\n }\n\n const folderName = `${depName}-${versionToPull}`;\n const untarDir = upath.join(chartHome, folderName);\n logger.debug(\n `Pulling helm chart ${depName} version ${versionToPull} to ${untarDir}`,\n );\n\n const cmd =\n `helm pull --untar --untardir ${quote(untarDir)} ` +\n `--version ${quote(versionToPull)} ${helmRepositoryArgs(repository, depName, datasource)}`;\n\n await exec(cmd, execOptions);\n}\n\nexport async function updateArtifacts({\n packageFileName,\n updatedDeps,\n newPackageFileContent,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`kustomize.updateArtifacts(${packageFileName})`);\n const project = parseKustomize(newPackageFileContent);\n const isUpdateOptionInflateChartArchives =\n config.postUpdateOptions?.includes('kustomizeInflateHelmCharts') === true;\n if (is.nullOrUndefined(project)) {\n return [\n {\n artifactError: {\n stderr: 'Failed to parse new package file content',\n },\n },\n ];\n }\n\n const chartHome = getSiblingFileName(\n packageFileName,\n project.helmGlobals?.chartHome ?? 'charts',\n );\n\n try {\n const helmToolConstraint: ToolConstraint = {\n toolName: 'helm',\n constraint: config.constraints?.helm,\n };\n\n const execOptions: ExecOptions = {\n docker: {},\n extraEnv: generateHelmEnvs(config),\n toolConstraints: [helmToolConstraint],\n };\n\n for (const dependency of updatedDeps) {\n if (!dependency.currentVersion) {\n continue;\n }\n\n if (dependency.newVersion === dependency.currentVersion) {\n continue;\n }\n\n if (!is.nonEmptyString(dependency.depName)) {\n continue;\n }\n\n if (dependency.depType !== 'HelmChart') {\n continue;\n }\n\n let repository = null;\n\n switch (dependency.datasource) {\n case HelmDatasource.id:\n repository = dependency.registryUrls?.[0];\n break;\n case DockerDatasource.id:\n repository = dependency.packageName;\n break;\n }\n\n if (is.nullOrUndefined(repository)) {\n continue;\n }\n\n await inflateHelmChart(\n isUpdateOptionInflateChartArchives,\n execOptions,\n chartHome,\n dependency.depName,\n repository,\n dependency.currentVersion,\n dependency.newVersion,\n dependency.datasource,\n );\n }\n\n const status = await getRepoStatus();\n const chartsAddition = status?.not_added ?? [];\n const chartsDeletion = status?.deleted ?? [];\n\n const fileChanges: UpdateArtifactsResult[] = [];\n\n for (const file of chartsAddition) {\n // only add artifacts in the chartHome path\n if (!file.startsWith(chartHome)) {\n continue;\n }\n fileChanges.push({\n file: {\n type: 'addition',\n path: file,\n contents: await readLocalFile(file),\n },\n });\n }\n\n for (const file of chartsDeletion) {\n // only add artifacts in the chartHome path\n if (!file.startsWith(chartHome)) {\n continue;\n }\n fileChanges.push({\n file: {\n type: 'deletion',\n path: file,\n },\n });\n }\n\n return fileChanges.length > 0 ? fileChanges : null;\n } catch (err) {\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.debug({ err }, 'Failed to inflate helm chart');\n return [\n {\n artifactError: {\n stderr: err.message,\n },\n },\n ];\n }\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import type { ExtraEnv } from '../../../util/exec/types';
2
+ import type { UpdateArtifactsConfig } from '../types';
3
+ export declare function generateHelmEnvs(config: UpdateArtifactsConfig): ExtraEnv;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateHelmEnvs = generateHelmEnvs;
4
+ const tslib_1 = require("tslib");
5
+ const semver_1 = tslib_1.__importDefault(require("semver"));
6
+ const upath_1 = tslib_1.__importDefault(require("upath"));
7
+ const fs_1 = require("../../../util/fs");
8
+ function generateHelmEnvs(config) {
9
+ const cacheDir = (0, fs_1.privateCacheDir)();
10
+ const envs = {
11
+ // set cache and config files to a path in privateCacheDir to prevent file and credential leakage
12
+ HELM_REGISTRY_CONFIG: upath_1.default.join(cacheDir, 'registry.json'),
13
+ HELM_REPOSITORY_CONFIG: upath_1.default.join(cacheDir, 'repositories.yaml'),
14
+ HELM_REPOSITORY_CACHE: upath_1.default.join(cacheDir, 'repositories'),
15
+ };
16
+ if (config.constraints?.helm &&
17
+ !semver_1.default.intersects(config.constraints.helm, '>=3.8.0')) {
18
+ envs.HELM_EXPERIMENTAL_OCI = '1';
19
+ }
20
+ return envs;
21
+ }
22
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../lib/modules/manager/kustomize/common.ts"],"names":[],"mappings":";;AAMA,4CAkBC;;AAxBD,4DAA4B;AAC5B,0DAA0B;AAE1B,yCAAmD;AAGnD,SAAgB,gBAAgB,CAAC,MAA6B;IAC5D,MAAM,QAAQ,GAAG,IAAA,oBAAe,GAAE,CAAC;IAEnC,MAAM,IAAI,GAAa;QACrB,iGAAiG;QACjG,oBAAoB,EAAE,eAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC;QAC3D,sBAAsB,EAAE,eAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC;QACjE,qBAAqB,EAAE,eAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC;KAC5D,CAAC;IAEF,IACE,MAAM,CAAC,WAAW,EAAE,IAAI;QACxB,CAAC,gBAAM,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,EACtD,CAAC;QACD,IAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC;IACnC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import semver from 'semver';\nimport upath from 'upath';\nimport type { ExtraEnv } from '../../../util/exec/types';\nimport { privateCacheDir } from '../../../util/fs';\nimport type { UpdateArtifactsConfig } from '../types';\n\nexport function generateHelmEnvs(config: UpdateArtifactsConfig): ExtraEnv {\n const cacheDir = privateCacheDir();\n\n const envs: ExtraEnv = {\n // set cache and config files to a path in privateCacheDir to prevent file and credential leakage\n HELM_REGISTRY_CONFIG: upath.join(cacheDir, 'registry.json'),\n HELM_REPOSITORY_CONFIG: upath.join(cacheDir, 'repositories.yaml'),\n HELM_REPOSITORY_CACHE: upath.join(cacheDir, 'repositories'),\n };\n\n if (\n config.constraints?.helm &&\n !semver.intersects(config.constraints.helm, '>=3.8.0')\n ) {\n envs.HELM_EXPERIMENTAL_OCI = '1';\n }\n\n return envs;\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import type { Category } from '../../../constants';
2
+ export { updateArtifacts } from './artifacts';
2
3
  export { extractPackageFile } from './extract';
3
4
  export declare const url = "https://kubectl.docs.kubernetes.io/references/kustomize";
4
5
  export declare const categories: Category[];
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.supportedDatasources = exports.defaultConfig = exports.categories = exports.url = exports.extractPackageFile = void 0;
3
+ exports.supportedDatasources = exports.defaultConfig = exports.categories = exports.url = exports.extractPackageFile = exports.updateArtifacts = void 0;
4
4
  const docker_1 = require("../../datasource/docker");
5
5
  const git_tags_1 = require("../../datasource/git-tags");
6
6
  const github_tags_1 = require("../../datasource/github-tags");
7
7
  const helm_1 = require("../../datasource/helm");
8
+ var artifacts_1 = require("./artifacts");
9
+ Object.defineProperty(exports, "updateArtifacts", { enumerable: true, get: function () { return artifacts_1.updateArtifacts; } });
8
10
  var extract_1 = require("./extract");
9
11
  Object.defineProperty(exports, "extractPackageFile", { enumerable: true, get: function () { return extract_1.extractPackageFile; } });
10
12
  exports.url = 'https://kubectl.docs.kubernetes.io/references/kustomize';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/manager/kustomize/index.ts"],"names":[],"mappings":";;;AACA,oDAA2D;AAC3D,wDAA8D;AAC9D,8DAAoE;AACpE,gDAAuD;AACvD,qCAA+C;AAAtC,6GAAA,kBAAkB,OAAA;AAEd,QAAA,GAAG,GAAG,yDAAyD,CAAC;AAChE,QAAA,UAAU,GAAe,CAAC,YAAY,CAAC,CAAC;AAExC,QAAA,aAAa,GAAG;IAC3B,SAAS,EAAE,CAAC,6BAA6B,CAAC;IAC1C,UAAU,EAAE,KAAK;CAClB,CAAC;AAEW,QAAA,oBAAoB,GAAG;IAClC,yBAAgB,CAAC,EAAE;IACnB,4BAAiB,CAAC,EAAE;IACpB,kCAAoB,CAAC,EAAE;IACvB,qBAAc,CAAC,EAAE;CAClB,CAAC","sourcesContent":["import type { Category } from '../../../constants';\nimport { DockerDatasource } from '../../datasource/docker';\nimport { GitTagsDatasource } from '../../datasource/git-tags';\nimport { GithubTagsDatasource } from '../../datasource/github-tags';\nimport { HelmDatasource } from '../../datasource/helm';\nexport { extractPackageFile } from './extract';\n\nexport const url = 'https://kubectl.docs.kubernetes.io/references/kustomize';\nexport const categories: Category[] = ['kubernetes'];\n\nexport const defaultConfig = {\n fileMatch: ['(^|/)kustomization\\\\.ya?ml$'],\n pinDigests: false,\n};\n\nexport const supportedDatasources = [\n DockerDatasource.id,\n GitTagsDatasource.id,\n GithubTagsDatasource.id,\n HelmDatasource.id,\n];\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/manager/kustomize/index.ts"],"names":[],"mappings":";;;AACA,oDAA2D;AAC3D,wDAA8D;AAC9D,8DAAoE;AACpE,gDAAuD;AACvD,yCAA8C;AAArC,4GAAA,eAAe,OAAA;AACxB,qCAA+C;AAAtC,6GAAA,kBAAkB,OAAA;AAEd,QAAA,GAAG,GAAG,yDAAyD,CAAC;AAChE,QAAA,UAAU,GAAe,CAAC,YAAY,CAAC,CAAC;AAExC,QAAA,aAAa,GAAG;IAC3B,SAAS,EAAE,CAAC,6BAA6B,CAAC;IAC1C,UAAU,EAAE,KAAK;CAClB,CAAC;AAEW,QAAA,oBAAoB,GAAG;IAClC,yBAAgB,CAAC,EAAE;IACnB,4BAAiB,CAAC,EAAE;IACpB,kCAAoB,CAAC,EAAE;IACvB,qBAAc,CAAC,EAAE;CAClB,CAAC","sourcesContent":["import type { Category } from '../../../constants';\nimport { DockerDatasource } from '../../datasource/docker';\nimport { GitTagsDatasource } from '../../datasource/git-tags';\nimport { GithubTagsDatasource } from '../../datasource/github-tags';\nimport { HelmDatasource } from '../../datasource/helm';\nexport { updateArtifacts } from './artifacts';\nexport { extractPackageFile } from './extract';\n\nexport const url = 'https://kubectl.docs.kubernetes.io/references/kustomize';\nexport const categories: Category[] = ['kubernetes'];\n\nexport const defaultConfig = {\n fileMatch: ['(^|/)kustomization\\\\.ya?ml$'],\n pinDigests: false,\n};\n\nexport const supportedDatasources = [\n DockerDatasource.id,\n GitTagsDatasource.id,\n GithubTagsDatasource.id,\n HelmDatasource.id,\n];\n"]}
@@ -9,6 +9,9 @@ export interface HelmChart {
9
9
  repo: string;
10
10
  version: string;
11
11
  }
12
+ export interface HelmGlobals {
13
+ chartHome?: string;
14
+ }
12
15
  export interface Kustomize {
13
16
  kind?: string;
14
17
  bases?: string[];
@@ -16,4 +19,5 @@ export interface Kustomize {
16
19
  components?: string[];
17
20
  images?: Image[];
18
21
  helmCharts?: HelmChart[];
22
+ helmGlobals?: HelmGlobals;
19
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../lib/modules/manager/kustomize/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface Image {\n name: string;\n newTag?: string;\n newName?: string;\n digest?: string;\n}\n\nexport interface HelmChart {\n name: string;\n repo: string;\n version: string;\n}\n\nexport interface Kustomize {\n kind?: string;\n bases?: string[]; // deprecated since kustomize v2.1.0\n resources?: string[];\n components?: string[];\n images?: Image[];\n helmCharts?: HelmChart[];\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../lib/modules/manager/kustomize/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface Image {\n name: string;\n newTag?: string;\n newName?: string;\n digest?: string;\n}\n\nexport interface HelmChart {\n name: string;\n repo: string;\n version: string;\n}\n\nexport interface HelmGlobals {\n chartHome?: string;\n}\n\nexport interface Kustomize {\n kind?: string;\n bases?: string[]; // deprecated since kustomize v2.1.0\n resources?: string[];\n components?: string[];\n images?: Image[];\n helmCharts?: HelmChart[];\n helmGlobals?: HelmGlobals;\n}\n"]}
@@ -395,7 +395,9 @@ function resolveParents(packages) {
395
395
  const dep = applyProps(rawDep, name, extractedProps[name]);
396
396
  if (dep.depType === 'parent') {
397
397
  const parentPkg = extractedPackages[pkg.parent];
398
- if (parentPkg && !parentPkg.parent) {
398
+ const hasParentWithNoParent = parentPkg && !parentPkg.parent;
399
+ const hasParentWithExternalParent = parentPkg && !packageFileNames.includes(parentPkg.parent);
400
+ if (hasParentWithNoParent || hasParentWithExternalParent) {
399
401
  rootDeps.add(dep.depName);
400
402
  }
401
403
  }