renovate 40.0.0-next.2 → 40.0.0-next.20

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 (294) 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 +3 -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/index.js +1 -3
  29. package/dist/config/presets/internal/index.js.map +1 -1
  30. package/dist/config/schema.d.ts +2 -2
  31. package/dist/config/validation.js +3 -5
  32. package/dist/config/validation.js.map +1 -1
  33. package/dist/config-validator.js +0 -1
  34. package/dist/config-validator.js.map +1 -1
  35. package/dist/constants/category.js +0 -1
  36. package/dist/constants/category.js.map +1 -1
  37. package/dist/data/monorepo.json +2 -1
  38. package/dist/instrumentation/index.js +5 -3
  39. package/dist/instrumentation/index.js.map +1 -1
  40. package/dist/instrumentation/utils.js +1 -1
  41. package/dist/instrumentation/utils.js.map +1 -1
  42. package/dist/logger/cmd-serializer.js +0 -1
  43. package/dist/logger/cmd-serializer.js.map +1 -1
  44. package/dist/logger/config-serializer.js +0 -1
  45. package/dist/logger/config-serializer.js.map +1 -1
  46. package/dist/logger/index.js +0 -3
  47. package/dist/logger/index.js.map +1 -1
  48. package/dist/logger/once.js +4 -2
  49. package/dist/logger/once.js.map +1 -1
  50. package/dist/logger/pretty-stdout.js +0 -1
  51. package/dist/logger/pretty-stdout.js.map +1 -1
  52. package/dist/logger/renovate-logger.js +1 -1
  53. package/dist/logger/renovate-logger.js.map +1 -1
  54. package/dist/logger/utils.js +6 -11
  55. package/dist/logger/utils.js.map +1 -1
  56. package/dist/modules/datasource/artifactory/index.js +1 -1
  57. package/dist/modules/datasource/artifactory/index.js.map +1 -1
  58. package/dist/modules/datasource/azure-pipelines-tasks/index.js +11 -1
  59. package/dist/modules/datasource/azure-pipelines-tasks/index.js.map +1 -1
  60. package/dist/modules/datasource/azure-pipelines-tasks/schema.d.ts +16 -0
  61. package/dist/modules/datasource/azure-pipelines-tasks/schema.js +2 -0
  62. package/dist/modules/datasource/azure-pipelines-tasks/schema.js.map +1 -1
  63. package/dist/modules/datasource/crate/index.js +1 -1
  64. package/dist/modules/datasource/crate/index.js.map +1 -1
  65. package/dist/modules/datasource/custom/formats/html.js +1 -1
  66. package/dist/modules/datasource/custom/formats/html.js.map +1 -1
  67. package/dist/modules/datasource/custom/formats/yaml.js +1 -1
  68. package/dist/modules/datasource/custom/formats/yaml.js.map +1 -1
  69. package/dist/modules/datasource/custom/schema.d.ts +5 -5
  70. package/dist/modules/datasource/deb/index.js +1 -1
  71. package/dist/modules/datasource/deb/index.js.map +1 -1
  72. package/dist/modules/datasource/deno/schema.d.ts +8 -8
  73. package/dist/modules/datasource/docker/common.js +1 -1
  74. package/dist/modules/datasource/docker/common.js.map +1 -1
  75. package/dist/modules/datasource/docker/index.js +5 -3
  76. package/dist/modules/datasource/docker/index.js.map +1 -1
  77. package/dist/modules/datasource/docker/schema.d.ts +32 -32
  78. package/dist/modules/datasource/galaxy/schema.d.ts +1 -1
  79. package/dist/modules/datasource/galaxy-collection/schema.d.ts +3 -3
  80. package/dist/modules/datasource/gitea-releases/schema.d.ts +4 -4
  81. package/dist/modules/datasource/gitea-tags/schema.d.ts +4 -4
  82. package/dist/modules/datasource/github-release-attachments/index.js +2 -2
  83. package/dist/modules/datasource/github-release-attachments/index.js.map +1 -1
  84. package/dist/modules/datasource/go/base.js +1 -1
  85. package/dist/modules/datasource/go/base.js.map +1 -1
  86. package/dist/modules/datasource/go/releases-goproxy.js +1 -1
  87. package/dist/modules/datasource/go/releases-goproxy.js.map +1 -1
  88. package/dist/modules/datasource/golang-version/index.js +1 -1
  89. package/dist/modules/datasource/golang-version/index.js.map +1 -1
  90. package/dist/modules/datasource/hex/schema.d.ts +11 -11
  91. package/dist/modules/datasource/hexpm-bob/index.js +1 -1
  92. package/dist/modules/datasource/hexpm-bob/index.js.map +1 -1
  93. package/dist/modules/datasource/index.js +2 -2
  94. package/dist/modules/datasource/index.js.map +1 -1
  95. package/dist/modules/datasource/maven/util.js +1 -1
  96. package/dist/modules/datasource/maven/util.js.map +1 -1
  97. package/dist/modules/datasource/nuget/v2.js +1 -1
  98. package/dist/modules/datasource/nuget/v2.js.map +1 -1
  99. package/dist/modules/datasource/nuget/v3.js +1 -1
  100. package/dist/modules/datasource/nuget/v3.js.map +1 -1
  101. package/dist/modules/datasource/packagist/schema.d.ts +30 -30
  102. package/dist/modules/datasource/pod/index.js +1 -1
  103. package/dist/modules/datasource/pod/index.js.map +1 -1
  104. package/dist/modules/datasource/pypi/index.js +1 -1
  105. package/dist/modules/datasource/pypi/index.js.map +1 -1
  106. package/dist/modules/datasource/ruby-version/index.js +1 -1
  107. package/dist/modules/datasource/ruby-version/index.js.map +1 -1
  108. package/dist/modules/datasource/rubygems/index.js +1 -1
  109. package/dist/modules/datasource/rubygems/index.js.map +1 -1
  110. package/dist/modules/datasource/rubygems/versions-endpoint-cache.js +2 -2
  111. package/dist/modules/datasource/rubygems/versions-endpoint-cache.js.map +1 -1
  112. package/dist/modules/datasource/terraform-provider/index.js +1 -1
  113. package/dist/modules/datasource/terraform-provider/index.js.map +1 -1
  114. package/dist/modules/datasource/unity3d/index.d.ts +4 -1
  115. package/dist/modules/datasource/unity3d/index.js +36 -42
  116. package/dist/modules/datasource/unity3d/index.js.map +1 -1
  117. package/dist/modules/datasource/unity3d/schema.d.ts +47 -0
  118. package/dist/modules/datasource/unity3d/schema.js +17 -0
  119. package/dist/modules/datasource/unity3d/schema.js.map +1 -0
  120. package/dist/modules/manager/argocd/schema.d.ts +10 -10
  121. package/dist/modules/manager/azure-pipelines/schema.d.ts +10 -10
  122. package/dist/modules/manager/batect/schema.d.ts +6 -6
  123. package/dist/modules/manager/batect-wrapper/artifacts.js +1 -1
  124. package/dist/modules/manager/batect-wrapper/artifacts.js.map +1 -1
  125. package/dist/modules/manager/bazel/rules/docker.d.ts +9 -9
  126. package/dist/modules/manager/bazel/rules/git.d.ts +10 -10
  127. package/dist/modules/manager/bazel/rules/git.js +7 -1
  128. package/dist/modules/manager/bazel/rules/git.js.map +1 -1
  129. package/dist/modules/manager/bazel/rules/go.d.ts +5 -5
  130. package/dist/modules/manager/bazel/rules/oci.d.ts +3 -3
  131. package/dist/modules/manager/bazel-module/parser/fragments.d.ts +40 -40
  132. package/dist/modules/manager/bazel-module/parser/maven.d.ts +27 -27
  133. package/dist/modules/manager/bazel-module/parser/oci.d.ts +17 -17
  134. package/dist/modules/manager/bazel-module/rules.d.ts +40 -40
  135. package/dist/modules/manager/bundler/artifacts.js.map +1 -1
  136. package/dist/modules/manager/cargo/schema.d.ts +100 -100
  137. package/dist/modules/manager/circleci/schema.d.ts +6 -6
  138. package/dist/modules/manager/composer/schema.d.ts +40 -40
  139. package/dist/modules/manager/composer/utils.js +9 -6
  140. package/dist/modules/manager/composer/utils.js.map +1 -1
  141. package/dist/modules/manager/crossplane/schema.d.ts +2 -2
  142. package/dist/modules/manager/custom/jsonata/index.js +4 -0
  143. package/dist/modules/manager/custom/jsonata/index.js.map +1 -1
  144. package/dist/modules/manager/custom/jsonata/schema.d.ts +7 -7
  145. package/dist/modules/manager/devbox/artifacts.d.ts +1 -1
  146. package/dist/modules/manager/devbox/artifacts.js +29 -11
  147. package/dist/modules/manager/devbox/artifacts.js.map +1 -1
  148. package/dist/modules/manager/fingerprint.generated.js +68 -68
  149. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  150. package/dist/modules/manager/fleet/schema.d.ts +12 -12
  151. package/dist/modules/manager/flux/schema.d.ts +50 -50
  152. package/dist/modules/manager/glasskube/schema.d.ts +8 -8
  153. package/dist/modules/manager/gradle-wrapper/artifacts.js +1 -1
  154. package/dist/modules/manager/gradle-wrapper/artifacts.js.map +1 -1
  155. package/dist/modules/manager/maven/extract.js +3 -1
  156. package/dist/modules/manager/maven/extract.js.map +1 -1
  157. package/dist/modules/manager/mise/extract.js +1 -1
  158. package/dist/modules/manager/mise/extract.js.map +1 -1
  159. package/dist/modules/manager/nix/schema.d.ts +24 -24
  160. package/dist/modules/manager/npm/schema.d.ts +13 -13
  161. package/dist/modules/manager/nuget/schema.d.ts +8 -8
  162. package/dist/modules/manager/ocb/schema.d.ts +6 -6
  163. package/dist/modules/manager/pep621/schema.d.ts +55 -55
  164. package/dist/modules/manager/pep621/utils.js +1 -1
  165. package/dist/modules/manager/pep621/utils.js.map +1 -1
  166. package/dist/modules/manager/poetry/artifacts.js +3 -3
  167. package/dist/modules/manager/poetry/artifacts.js.map +1 -1
  168. package/dist/modules/manager/poetry/extract.js +2 -1
  169. package/dist/modules/manager/poetry/extract.js.map +1 -1
  170. package/dist/modules/manager/poetry/schema.d.ts +48 -48
  171. package/dist/modules/manager/sveltos/schema.d.ts +12 -12
  172. package/dist/modules/manager/terraform/lockfile/hash.d.ts +1 -1
  173. package/dist/modules/manager/vendir/schema.d.ts +27 -27
  174. package/dist/modules/platform/api.d.ts +1 -1
  175. package/dist/modules/platform/bitbucket/index.d.ts +1 -0
  176. package/dist/modules/platform/bitbucket/index.js +6 -1
  177. package/dist/modules/platform/bitbucket/index.js.map +1 -1
  178. package/dist/modules/platform/bitbucket/schema.d.ts +17 -17
  179. package/dist/modules/platform/bitbucket-server/index.d.ts +1 -1
  180. package/dist/modules/platform/bitbucket-server/index.js +13 -11
  181. package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
  182. package/dist/modules/platform/bitbucket-server/schema.d.ts +75 -0
  183. package/dist/modules/platform/bitbucket-server/schema.js +14 -1
  184. package/dist/modules/platform/bitbucket-server/schema.js.map +1 -1
  185. package/dist/modules/platform/bitbucket-server/types.d.ts +2 -1
  186. package/dist/modules/platform/bitbucket-server/types.js.map +1 -1
  187. package/dist/modules/platform/bitbucket-server/utils.d.ts +0 -2
  188. package/dist/modules/platform/bitbucket-server/utils.js +1 -51
  189. package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
  190. package/dist/modules/platform/gerrit/client.js +1 -1
  191. package/dist/modules/platform/gerrit/client.js.map +1 -1
  192. package/dist/modules/platform/gitea/index.d.ts +1 -0
  193. package/dist/modules/platform/gitea/index.js +11 -0
  194. package/dist/modules/platform/gitea/index.js.map +1 -1
  195. package/dist/modules/platform/gitea/schema.d.ts +8 -8
  196. package/dist/modules/platform/github/common.d.ts +2 -0
  197. package/dist/modules/platform/github/common.js +16 -0
  198. package/dist/modules/platform/github/common.js.map +1 -1
  199. package/dist/modules/platform/github/index.d.ts +1 -1
  200. package/dist/modules/platform/github/index.js +6 -4
  201. package/dist/modules/platform/github/index.js.map +1 -1
  202. package/dist/modules/platform/github/issue.d.ts +12 -12
  203. package/dist/modules/platform/github/schema.d.ts +65 -65
  204. package/dist/modules/platform/gitlab/index.d.ts +1 -0
  205. package/dist/modules/platform/gitlab/index.js +9 -0
  206. package/dist/modules/platform/gitlab/index.js.map +1 -1
  207. package/dist/modules/platform/scm.d.ts +1 -1
  208. package/dist/modules/versioning/composer/index.js +10 -0
  209. package/dist/modules/versioning/composer/index.js.map +1 -1
  210. package/dist/modules/versioning/npm/index.js +2 -1
  211. package/dist/modules/versioning/npm/index.js.map +1 -1
  212. package/dist/modules/versioning/schema.js +1 -1
  213. package/dist/modules/versioning/schema.js.map +1 -1
  214. package/dist/modules/versioning/types.d.ts +4 -0
  215. package/dist/modules/versioning/types.js.map +1 -1
  216. package/dist/proxy.js +2 -1
  217. package/dist/proxy.js.map +1 -1
  218. package/dist/renovate.js +2 -2
  219. package/dist/renovate.js.map +1 -1
  220. package/dist/util/cache/package/decorator.js +2 -2
  221. package/dist/util/cache/package/decorator.js.map +1 -1
  222. package/dist/util/cache/package/redis.js +0 -1
  223. package/dist/util/cache/package/redis.js.map +1 -1
  224. package/dist/util/cache/repository/impl/base.d.ts +1 -1
  225. package/dist/util/exec/containerbase.js +12 -12
  226. package/dist/util/exec/containerbase.js.map +1 -1
  227. package/dist/util/github/graphql/query-adapters/releases-query-adapter.d.ts +5 -5
  228. package/dist/util/http/auth.js +0 -1
  229. package/dist/util/http/auth.js.map +1 -1
  230. package/dist/util/http/bitbucket-server.d.ts +5 -4
  231. package/dist/util/http/bitbucket-server.js +17 -20
  232. package/dist/util/http/bitbucket-server.js.map +1 -1
  233. package/dist/util/http/bitbucket.d.ts +6 -5
  234. package/dist/util/http/bitbucket.js +30 -31
  235. package/dist/util/http/bitbucket.js.map +1 -1
  236. package/dist/util/http/cache/abstract-http-cache-provider.js +1 -1
  237. package/dist/util/http/cache/abstract-http-cache-provider.js.map +1 -1
  238. package/dist/util/http/cache/schema.d.ts +2 -2
  239. package/dist/util/http/errors.d.ts +2 -0
  240. package/dist/util/http/errors.js +8 -0
  241. package/dist/util/http/errors.js.map +1 -0
  242. package/dist/util/http/gerrit.d.ts +6 -4
  243. package/dist/util/http/gerrit.js +11 -12
  244. package/dist/util/http/gerrit.js.map +1 -1
  245. package/dist/util/http/gitea.d.ts +5 -4
  246. package/dist/util/http/gitea.js +12 -13
  247. package/dist/util/http/gitea.js.map +1 -1
  248. package/dist/util/http/github.d.ts +14 -8
  249. package/dist/util/http/github.js +64 -60
  250. package/dist/util/http/github.js.map +1 -1
  251. package/dist/util/http/gitlab.d.ts +7 -5
  252. package/dist/util/http/gitlab.js +56 -46
  253. package/dist/util/http/gitlab.js.map +1 -1
  254. package/dist/util/http/got.d.ts +9 -0
  255. package/dist/util/http/got.js +54 -0
  256. package/dist/util/http/got.js.map +1 -0
  257. package/dist/util/http/host-rules.d.ts +2 -1
  258. package/dist/util/http/host-rules.js.map +1 -1
  259. package/dist/util/http/http.d.ts +93 -0
  260. package/dist/util/http/http.js +339 -0
  261. package/dist/util/http/http.js.map +1 -0
  262. package/dist/util/http/index.d.ts +6 -74
  263. package/dist/util/http/index.js +5 -359
  264. package/dist/util/http/index.js.map +1 -1
  265. package/dist/util/http/legacy.js +4 -1
  266. package/dist/util/http/legacy.js.map +1 -1
  267. package/dist/util/http/types.d.ts +9 -16
  268. package/dist/util/http/types.js.map +1 -1
  269. package/dist/util/string.d.ts +15 -0
  270. package/dist/util/string.js +75 -0
  271. package/dist/util/string.js.map +1 -1
  272. package/dist/util/toml.d.ts +1 -0
  273. package/dist/util/toml.js +6 -0
  274. package/dist/util/toml.js.map +1 -1
  275. package/dist/util/url.js +3 -8
  276. package/dist/util/url.js.map +1 -1
  277. package/dist/util/yaml.js +2 -6
  278. package/dist/util/yaml.js.map +1 -1
  279. package/dist/workers/global/config/parse/env.js +3 -2
  280. package/dist/workers/global/config/parse/env.js.map +1 -1
  281. package/dist/workers/global/config/parse/file.js +19 -9
  282. package/dist/workers/global/config/parse/file.js.map +1 -1
  283. package/dist/workers/global/config/parse/host-rules-from-env.js +6 -2
  284. package/dist/workers/global/config/parse/host-rules-from-env.js.map +1 -1
  285. package/dist/workers/repository/cache.js +0 -1
  286. package/dist/workers/repository/cache.js.map +1 -1
  287. package/dist/workers/repository/onboarding/pr/config-description.js +3 -1
  288. package/dist/workers/repository/onboarding/pr/config-description.js.map +1 -1
  289. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js +1 -1
  290. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js.map +1 -1
  291. package/dist/workers/repository/update/pr/changelog/gitlab/index.js +1 -1
  292. package/dist/workers/repository/update/pr/changelog/gitlab/index.js.map +1 -1
  293. package/package.json +44 -49
  294. package/renovate-schema.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/terraform-provider/index.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO: types (#22198)\nimport is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { ExternalHostError } from '../../../types/errors/external-host-error';\nimport { cache } from '../../../util/cache/package/decorator';\nimport * as p from '../../../util/promises';\nimport { regEx } from '../../../util/regex';\nimport { asTimestamp } from '../../../util/timestamp';\nimport { joinUrlParts } from '../../../util/url';\nimport * as hashicorpVersioning from '../../versioning/hashicorp';\nimport { TerraformDatasource } from '../terraform-module/base';\nimport type { ServiceDiscoveryResult } from '../terraform-module/types';\nimport { createSDBackendURL } from '../terraform-module/utils';\nimport type { GetReleasesConfig, ReleaseResult } from '../types';\nimport type {\n TerraformBuild,\n TerraformProvider,\n TerraformProviderReleaseBackend,\n TerraformProviderVersions,\n TerraformRegistryBuildResponse,\n TerraformRegistryVersions,\n VersionDetailResponse,\n} from './types';\n\nexport class TerraformProviderDatasource extends TerraformDatasource {\n static override readonly id = 'terraform-provider';\n\n static readonly defaultRegistryUrls = [\n 'https://registry.terraform.io',\n 'https://releases.hashicorp.com',\n ];\n\n static repositoryRegex = regEx(/^hashicorp\\/(?<packageName>\\S+)$/);\n\n constructor() {\n super(TerraformProviderDatasource.id);\n }\n\n override readonly defaultRegistryUrls =\n TerraformProviderDatasource.defaultRegistryUrls;\n\n override readonly defaultVersioning = hashicorpVersioning.id;\n\n override readonly registryStrategy = 'hunt';\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is only supported for the latest version, and is determined from the `published_at` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the the `source` field in the results.';\n\n @cache({\n namespace: `datasource-${TerraformProviderDatasource.id}`,\n key: (getReleasesConfig: GetReleasesConfig) => {\n const url = getReleasesConfig.registryUrl;\n const repo = TerraformProviderDatasource.getRepository(getReleasesConfig);\n return `getReleases:${url}/${repo}`;\n },\n })\n async getReleases({\n packageName,\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n // istanbul ignore if\n if (!registryUrl) {\n return null;\n }\n logger.trace(\n `terraform-provider.getDependencies() packageName: ${packageName}`,\n );\n\n if (registryUrl === this.defaultRegistryUrls[1]) {\n return await this.queryReleaseBackend(packageName, registryUrl);\n }\n const repository = TerraformProviderDatasource.getRepository({\n packageName,\n });\n const serviceDiscovery =\n await this.getTerraformServiceDiscoveryResult(registryUrl);\n\n if (registryUrl === this.defaultRegistryUrls[0]) {\n return await this.queryRegistryExtendedApi(\n serviceDiscovery,\n registryUrl,\n repository,\n );\n }\n\n return await this.queryRegistryVersions(\n serviceDiscovery,\n registryUrl,\n repository,\n );\n }\n\n private static getRepository({ packageName }: GetReleasesConfig): string {\n return packageName.includes('/') ? packageName : `hashicorp/${packageName}`;\n }\n\n /**\n * this uses the api that terraform registry has in addition to the base api\n * this endpoint provides more information, such as release date\n * this api is undocumented.\n */\n private async queryRegistryExtendedApi(\n serviceDiscovery: ServiceDiscoveryResult,\n registryUrl: string,\n repository: string,\n ): Promise<ReleaseResult> {\n const backendURL = createSDBackendURL(\n registryUrl,\n 'providers.v1',\n serviceDiscovery,\n repository,\n );\n const res = (\n await this.http.getJsonUnchecked<TerraformProvider>(backendURL)\n ).body;\n const dep: ReleaseResult = {\n releases: res.versions.map((version) => ({\n version,\n })),\n };\n if (res.source) {\n dep.sourceUrl = res.source;\n }\n // set published date for latest release\n const latestVersion = dep.releases.find(\n (release) => res.version === release.version,\n );\n // istanbul ignore else\n if (latestVersion) {\n latestVersion.releaseTimestamp = asTimestamp(res.published_at);\n }\n dep.homepage = `${registryUrl}/providers/${repository}`;\n return dep;\n }\n\n /**\n * this version uses the Provider Registry Protocol that all registries are required to implement\n * https://www.terraform.io/internals/provider-registry-protocol\n */\n private async queryRegistryVersions(\n serviceDiscovery: ServiceDiscoveryResult,\n registryUrl: string,\n repository: string,\n ): Promise<ReleaseResult> {\n const backendURL = createSDBackendURL(\n registryUrl,\n 'providers.v1',\n serviceDiscovery,\n `${repository}/versions`,\n );\n const res = (\n await this.http.getJsonUnchecked<TerraformProviderVersions>(backendURL)\n ).body;\n const dep: ReleaseResult = {\n releases: res.versions.map(({ version }) => ({\n version,\n })),\n };\n return dep;\n }\n\n private async queryReleaseBackend(\n packageName: string,\n registryURL: string,\n ): Promise<ReleaseResult | null> {\n const hashicorpPackage = packageName.replace('hashicorp/', '');\n const backendLookUpName = `terraform-provider-${hashicorpPackage}`;\n const backendURL = joinUrlParts(\n registryURL,\n backendLookUpName,\n `index.json`,\n );\n const res = (\n await this.http.getJsonUnchecked<TerraformProviderReleaseBackend>(\n backendURL,\n )\n ).body;\n\n const dep: ReleaseResult = {\n releases: Object.keys(res.versions).map((version) => ({\n version,\n })),\n sourceUrl: joinUrlParts(\n 'https://github.com/terraform-providers',\n backendLookUpName,\n ),\n };\n return dep;\n }\n\n @cache({\n namespace: `datasource-${TerraformProviderDatasource.id}`,\n key: (registryURL: string, repository: string, version: string) =>\n `getBuilds:${registryURL}/${repository}/${version}`,\n })\n async getBuilds(\n registryURL: string,\n repository: string,\n version: string,\n ): Promise<TerraformBuild[] | null> {\n if (registryURL === TerraformProviderDatasource.defaultRegistryUrls[1]) {\n // check if registryURL === secondary backend\n const repositoryRegexResult =\n TerraformProviderDatasource.repositoryRegex.exec(repository)?.groups;\n if (!repositoryRegexResult) {\n // non hashicorp builds are not supported with releases.hashicorp.com\n return null;\n }\n const packageName = repositoryRegexResult.packageName;\n const backendLookUpName = `terraform-provider-${packageName}`;\n let versionReleaseBackend: VersionDetailResponse;\n try {\n versionReleaseBackend = await this.getReleaseBackendIndex(\n backendLookUpName,\n version,\n );\n } catch (err) {\n /* istanbul ignore next */\n if (err instanceof ExternalHostError) {\n throw err;\n }\n logger.debug(\n { err, backendLookUpName, version },\n `Failed to retrieve builds for ${backendLookUpName} ${version}`,\n );\n return null;\n }\n return versionReleaseBackend.builds;\n }\n\n // check public or private Terraform registry\n const serviceDiscovery =\n await this.getTerraformServiceDiscoveryResult(registryURL);\n if (!serviceDiscovery) {\n logger.trace(`Failed to retrieve service discovery from ${registryURL}`);\n return null;\n }\n const backendURL = createSDBackendURL(\n registryURL,\n 'providers.v1',\n serviceDiscovery,\n repository,\n );\n const versionsResponse = (\n await this.http.getJsonUnchecked<TerraformRegistryVersions>(\n `${backendURL}/versions`,\n )\n ).body;\n if (!versionsResponse.versions) {\n logger.trace(`Failed to retrieve version list for ${backendURL}`);\n return null;\n }\n const builds = versionsResponse.versions.find(\n (value) => value.version === version,\n );\n if (!builds) {\n logger.trace(\n `No builds found for ${repository}:${version} on ${registryURL}`,\n );\n return null;\n }\n const result = await p.map(\n builds.platforms,\n async (platform) => {\n const buildURL = `${backendURL}/${version}/download/${platform.os}/${platform.arch}`;\n try {\n const res = (\n await this.http.getJsonUnchecked<TerraformRegistryBuildResponse>(\n buildURL,\n )\n ).body;\n const newBuild: TerraformBuild = {\n name: repository,\n url: res.download_url,\n version,\n ...res,\n };\n return newBuild;\n } catch (err) {\n /* istanbul ignore next */\n if (err instanceof ExternalHostError) {\n throw err;\n }\n logger.debug({ err, url: buildURL }, 'Failed to retrieve build');\n return null;\n }\n },\n { concurrency: 4 },\n );\n\n const filteredResult = result.filter(is.truthy);\n return filteredResult.length === result.length ? filteredResult : null;\n }\n\n @cache({\n namespace: `datasource-${TerraformProviderDatasource.id}`,\n key: (zipHashUrl: string) => `getZipHashes:${zipHashUrl}`,\n })\n async getZipHashes(zipHashUrl: string): Promise<string[] | undefined> {\n // The hashes are formatted as the result of sha256sum in plain text, each line: <hash>\\t<filename>\n let rawHashData: string;\n try {\n rawHashData = (await this.http.get(zipHashUrl)).body;\n } catch (err) {\n /* istanbul ignore next */\n if (err instanceof ExternalHostError) {\n throw err;\n }\n logger.debug(\n { err, zipHashUrl },\n `Failed to retrieve zip hashes from ${zipHashUrl}`,\n );\n return undefined;\n }\n\n return rawHashData\n .trimEnd()\n .split('\\n')\n .map((line) => line.split(/\\s/)[0]);\n }\n\n @cache({\n namespace: `datasource-${TerraformProviderDatasource.id}`,\n key: (backendLookUpName: string, version: string) =>\n `getReleaseBackendIndex:${backendLookUpName}/${version}`,\n })\n async getReleaseBackendIndex(\n backendLookUpName: string,\n version: string,\n ): Promise<VersionDetailResponse> {\n return (\n await this.http.getJsonUnchecked<VersionDetailResponse>(\n `${TerraformProviderDatasource.defaultRegistryUrls[1]}/${backendLookUpName}/${version}/index.json`,\n )\n ).body;\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/terraform-provider/index.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO: types (#22198)\nimport is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { ExternalHostError } from '../../../types/errors/external-host-error';\nimport { cache } from '../../../util/cache/package/decorator';\nimport * as p from '../../../util/promises';\nimport { regEx } from '../../../util/regex';\nimport { asTimestamp } from '../../../util/timestamp';\nimport { joinUrlParts } from '../../../util/url';\nimport * as hashicorpVersioning from '../../versioning/hashicorp';\nimport { TerraformDatasource } from '../terraform-module/base';\nimport type { ServiceDiscoveryResult } from '../terraform-module/types';\nimport { createSDBackendURL } from '../terraform-module/utils';\nimport type { GetReleasesConfig, ReleaseResult } from '../types';\nimport type {\n TerraformBuild,\n TerraformProvider,\n TerraformProviderReleaseBackend,\n TerraformProviderVersions,\n TerraformRegistryBuildResponse,\n TerraformRegistryVersions,\n VersionDetailResponse,\n} from './types';\n\nexport class TerraformProviderDatasource extends TerraformDatasource {\n static override readonly id = 'terraform-provider';\n\n static readonly defaultRegistryUrls = [\n 'https://registry.terraform.io',\n 'https://releases.hashicorp.com',\n ];\n\n static repositoryRegex = regEx(/^hashicorp\\/(?<packageName>\\S+)$/);\n\n constructor() {\n super(TerraformProviderDatasource.id);\n }\n\n override readonly defaultRegistryUrls =\n TerraformProviderDatasource.defaultRegistryUrls;\n\n override readonly defaultVersioning = hashicorpVersioning.id;\n\n override readonly registryStrategy = 'hunt';\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is only supported for the latest version, and is determined from the `published_at` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the the `source` field in the results.';\n\n @cache({\n namespace: `datasource-${TerraformProviderDatasource.id}`,\n key: (getReleasesConfig: GetReleasesConfig) => {\n const url = getReleasesConfig.registryUrl;\n const repo = TerraformProviderDatasource.getRepository(getReleasesConfig);\n return `getReleases:${url}/${repo}`;\n },\n })\n async getReleases({\n packageName,\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n // istanbul ignore if\n if (!registryUrl) {\n return null;\n }\n logger.trace(\n `terraform-provider.getDependencies() packageName: ${packageName}`,\n );\n\n if (registryUrl === this.defaultRegistryUrls[1]) {\n return await this.queryReleaseBackend(packageName, registryUrl);\n }\n const repository = TerraformProviderDatasource.getRepository({\n packageName,\n });\n const serviceDiscovery =\n await this.getTerraformServiceDiscoveryResult(registryUrl);\n\n if (registryUrl === this.defaultRegistryUrls[0]) {\n return await this.queryRegistryExtendedApi(\n serviceDiscovery,\n registryUrl,\n repository,\n );\n }\n\n return await this.queryRegistryVersions(\n serviceDiscovery,\n registryUrl,\n repository,\n );\n }\n\n private static getRepository({ packageName }: GetReleasesConfig): string {\n return packageName.includes('/') ? packageName : `hashicorp/${packageName}`;\n }\n\n /**\n * this uses the api that terraform registry has in addition to the base api\n * this endpoint provides more information, such as release date\n * this api is undocumented.\n */\n private async queryRegistryExtendedApi(\n serviceDiscovery: ServiceDiscoveryResult,\n registryUrl: string,\n repository: string,\n ): Promise<ReleaseResult> {\n const backendURL = createSDBackendURL(\n registryUrl,\n 'providers.v1',\n serviceDiscovery,\n repository,\n );\n const res = (\n await this.http.getJsonUnchecked<TerraformProvider>(backendURL)\n ).body;\n const dep: ReleaseResult = {\n releases: res.versions.map((version) => ({\n version,\n })),\n };\n if (res.source) {\n dep.sourceUrl = res.source;\n }\n // set published date for latest release\n const latestVersion = dep.releases.find(\n (release) => res.version === release.version,\n );\n // istanbul ignore else\n if (latestVersion) {\n latestVersion.releaseTimestamp = asTimestamp(res.published_at);\n }\n dep.homepage = `${registryUrl}/providers/${repository}`;\n return dep;\n }\n\n /**\n * this version uses the Provider Registry Protocol that all registries are required to implement\n * https://www.terraform.io/internals/provider-registry-protocol\n */\n private async queryRegistryVersions(\n serviceDiscovery: ServiceDiscoveryResult,\n registryUrl: string,\n repository: string,\n ): Promise<ReleaseResult> {\n const backendURL = createSDBackendURL(\n registryUrl,\n 'providers.v1',\n serviceDiscovery,\n `${repository}/versions`,\n );\n const res = (\n await this.http.getJsonUnchecked<TerraformProviderVersions>(backendURL)\n ).body;\n const dep: ReleaseResult = {\n releases: res.versions.map(({ version }) => ({\n version,\n })),\n };\n return dep;\n }\n\n private async queryReleaseBackend(\n packageName: string,\n registryURL: string,\n ): Promise<ReleaseResult | null> {\n const hashicorpPackage = packageName.replace('hashicorp/', '');\n const backendLookUpName = `terraform-provider-${hashicorpPackage}`;\n const backendURL = joinUrlParts(\n registryURL,\n backendLookUpName,\n `index.json`,\n );\n const res = (\n await this.http.getJsonUnchecked<TerraformProviderReleaseBackend>(\n backendURL,\n )\n ).body;\n\n const dep: ReleaseResult = {\n releases: Object.keys(res.versions).map((version) => ({\n version,\n })),\n sourceUrl: joinUrlParts(\n 'https://github.com/terraform-providers',\n backendLookUpName,\n ),\n };\n return dep;\n }\n\n @cache({\n namespace: `datasource-${TerraformProviderDatasource.id}`,\n key: (registryURL: string, repository: string, version: string) =>\n `getBuilds:${registryURL}/${repository}/${version}`,\n })\n async getBuilds(\n registryURL: string,\n repository: string,\n version: string,\n ): Promise<TerraformBuild[] | null> {\n if (registryURL === TerraformProviderDatasource.defaultRegistryUrls[1]) {\n // check if registryURL === secondary backend\n const repositoryRegexResult =\n TerraformProviderDatasource.repositoryRegex.exec(repository)?.groups;\n if (!repositoryRegexResult) {\n // non hashicorp builds are not supported with releases.hashicorp.com\n return null;\n }\n const packageName = repositoryRegexResult.packageName;\n const backendLookUpName = `terraform-provider-${packageName}`;\n let versionReleaseBackend: VersionDetailResponse;\n try {\n versionReleaseBackend = await this.getReleaseBackendIndex(\n backendLookUpName,\n version,\n );\n } catch (err) {\n /* istanbul ignore next */\n if (err instanceof ExternalHostError) {\n throw err;\n }\n logger.debug(\n { err, backendLookUpName, version },\n `Failed to retrieve builds for ${backendLookUpName} ${version}`,\n );\n return null;\n }\n return versionReleaseBackend.builds;\n }\n\n // check public or private Terraform registry\n const serviceDiscovery =\n await this.getTerraformServiceDiscoveryResult(registryURL);\n if (!serviceDiscovery) {\n logger.trace(`Failed to retrieve service discovery from ${registryURL}`);\n return null;\n }\n const backendURL = createSDBackendURL(\n registryURL,\n 'providers.v1',\n serviceDiscovery,\n repository,\n );\n const versionsResponse = (\n await this.http.getJsonUnchecked<TerraformRegistryVersions>(\n `${backendURL}/versions`,\n )\n ).body;\n if (!versionsResponse.versions) {\n logger.trace(`Failed to retrieve version list for ${backendURL}`);\n return null;\n }\n const builds = versionsResponse.versions.find(\n (value) => value.version === version,\n );\n if (!builds) {\n logger.trace(\n `No builds found for ${repository}:${version} on ${registryURL}`,\n );\n return null;\n }\n const result = await p.map(\n builds.platforms,\n async (platform) => {\n const buildURL = `${backendURL}/${version}/download/${platform.os}/${platform.arch}`;\n try {\n const res = (\n await this.http.getJsonUnchecked<TerraformRegistryBuildResponse>(\n buildURL,\n )\n ).body;\n const newBuild: TerraformBuild = {\n name: repository,\n url: res.download_url,\n version,\n ...res,\n };\n return newBuild;\n } catch (err) {\n /* istanbul ignore next */\n if (err instanceof ExternalHostError) {\n throw err;\n }\n logger.debug({ err, url: buildURL }, 'Failed to retrieve build');\n return null;\n }\n },\n { concurrency: 4 },\n );\n\n const filteredResult = result.filter(is.truthy);\n return filteredResult.length === result.length ? filteredResult : null;\n }\n\n @cache({\n namespace: `datasource-${TerraformProviderDatasource.id}`,\n key: (zipHashUrl: string) => `getZipHashes:${zipHashUrl}`,\n })\n async getZipHashes(zipHashUrl: string): Promise<string[] | undefined> {\n // The hashes are formatted as the result of sha256sum in plain text, each line: <hash>\\t<filename>\n let rawHashData: string;\n try {\n rawHashData = (await this.http.getText(zipHashUrl)).body;\n } catch (err) {\n /* istanbul ignore next */\n if (err instanceof ExternalHostError) {\n throw err;\n }\n logger.debug(\n { err, zipHashUrl },\n `Failed to retrieve zip hashes from ${zipHashUrl}`,\n );\n return undefined;\n }\n\n return rawHashData\n .trimEnd()\n .split('\\n')\n .map((line) => line.split(/\\s/)[0]);\n }\n\n @cache({\n namespace: `datasource-${TerraformProviderDatasource.id}`,\n key: (backendLookUpName: string, version: string) =>\n `getReleaseBackendIndex:${backendLookUpName}/${version}`,\n })\n async getReleaseBackendIndex(\n backendLookUpName: string,\n version: string,\n ): Promise<VersionDetailResponse> {\n return (\n await this.http.getJsonUnchecked<VersionDetailResponse>(\n `${TerraformProviderDatasource.defaultRegistryUrls[1]}/${backendLookUpName}/${version}/index.json`,\n )\n ).body;\n }\n}\n"]}
@@ -1,15 +1,18 @@
1
1
  import { Datasource } from '../datasource';
2
2
  import type { GetReleasesConfig, ReleaseResult } from '../types';
3
3
  export declare class Unity3dDatasource extends Datasource {
4
+ static readonly baseUrl = "https://services.api.unity.com/unity/editor/release/v1/releases";
4
5
  static readonly homepage = "https://unity.com/";
5
6
  static readonly streams: Record<string, string>;
7
+ static readonly legacyStreams: Record<string, string>;
6
8
  static readonly id = "unity3d";
7
9
  readonly defaultRegistryUrls: string[];
8
10
  readonly defaultVersioning = "unity3d";
9
11
  readonly registryStrategy = "merge";
10
12
  readonly releaseTimestampSupport = true;
11
- readonly releaseTimestampNote = "The release timestamp is determined from the `pubDate` tag in the results.";
13
+ readonly releaseTimestampNote = "The release timestamp is determined from the `releaseDate` field in the results.";
12
14
  constructor();
15
+ translateStream(registryUrl: string): string;
13
16
  getByStream(registryUrl: string | undefined, withHash: boolean): Promise<ReleaseResult | null>;
14
17
  getReleases({ packageName, registryUrl, }: GetReleasesConfig): Promise<ReleaseResult | null>;
15
18
  }
@@ -2,69 +2,63 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Unity3dDatasource = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const xmldoc_1 = require("xmldoc");
6
- const logger_1 = require("../../../logger");
7
5
  const decorator_1 = require("../../../util/cache/package/decorator");
8
6
  const timestamp_1 = require("../../../util/timestamp");
9
7
  const Unity3dVersioning = tslib_1.__importStar(require("../../versioning/unity3d"));
10
8
  const datasource_1 = require("../datasource");
9
+ const schema_1 = require("./schema");
11
10
  class Unity3dDatasource extends datasource_1.Datasource {
11
+ static baseUrl = 'https://services.api.unity.com/unity/editor/release/v1/releases';
12
12
  static homepage = 'https://unity.com/';
13
13
  static streams = {
14
+ lts: `${Unity3dDatasource.baseUrl}?stream=LTS`,
15
+ tech: `${Unity3dDatasource.baseUrl}?stream=TECH`,
16
+ alpha: `${Unity3dDatasource.baseUrl}?stream=ALPHA`,
17
+ beta: `${Unity3dDatasource.baseUrl}?stream=BETA`,
18
+ };
19
+ static legacyStreams = {
14
20
  lts: `${Unity3dDatasource.homepage}releases/editor/lts-releases.xml`,
15
21
  stable: `${Unity3dDatasource.homepage}releases/editor/releases.xml`,
16
22
  beta: `${Unity3dDatasource.homepage}releases/editor/beta/latest.xml`,
17
23
  };
18
24
  static id = 'unity3d';
19
- defaultRegistryUrls = [
20
- Unity3dDatasource.streams.stable,
21
- Unity3dDatasource.streams.lts,
22
- ];
25
+ defaultRegistryUrls = [Unity3dDatasource.streams.lts];
23
26
  defaultVersioning = Unity3dVersioning.id;
24
27
  registryStrategy = 'merge';
25
28
  releaseTimestampSupport = true;
26
- releaseTimestampNote = 'The release timestamp is determined from the `pubDate` tag in the results.';
29
+ releaseTimestampNote = 'The release timestamp is determined from the `releaseDate` field in the results.';
27
30
  constructor() {
28
31
  super(Unity3dDatasource.id);
29
32
  }
30
- async getByStream(registryUrl, withHash) {
31
- let channel = undefined;
32
- try {
33
- const response = await this.http.get(registryUrl);
34
- const document = new xmldoc_1.XmlDocument(response.body);
35
- channel = document.childNamed('channel');
36
- }
37
- catch (err) {
38
- logger_1.logger.error({ err, registryUrl }, 'Failed to request releases from Unity3d datasource');
39
- return null;
40
- }
41
- if (!channel) {
42
- return {
43
- releases: [],
44
- homepage: Unity3dDatasource.homepage,
45
- registryUrl,
46
- };
33
+ translateStream(registryUrl) {
34
+ const legacyKey = Object.keys(Unity3dDatasource.legacyStreams).find((key) => Unity3dDatasource.legacyStreams[key] === registryUrl);
35
+ if (legacyKey) {
36
+ if (legacyKey === 'stable') {
37
+ return Unity3dDatasource.streams.lts;
38
+ }
39
+ return Unity3dDatasource.streams[legacyKey];
47
40
  }
48
- const releases = channel
49
- .childrenNamed('item')
50
- .map((itemNode) => {
51
- const versionWithHash = `${itemNode.childNamed('title')?.val} (${itemNode.childNamed('guid')?.val})`;
52
- const versionWithoutHash = itemNode.childNamed('title')?.val;
53
- const release = {
54
- version: withHash ? versionWithHash : versionWithoutHash,
55
- releaseTimestamp: (0, timestamp_1.asTimestamp)(itemNode.childNamed('pubDate')?.val),
56
- changelogUrl: itemNode.childNamed('link')?.val,
57
- isStable: registryUrl !== Unity3dDatasource.streams.beta,
58
- registryUrl,
59
- };
60
- return release;
61
- })
62
- .filter((release) => !!release);
63
- return {
64
- releases,
41
+ return registryUrl;
42
+ }
43
+ async getByStream(registryUrl, withHash) {
44
+ const translatedRegistryUrl = this.translateStream(registryUrl);
45
+ const response = await this.http.getJson(translatedRegistryUrl, schema_1.UnityReleasesJSON);
46
+ const result = {
47
+ releases: [],
65
48
  homepage: Unity3dDatasource.homepage,
66
- registryUrl,
49
+ registryUrl: translatedRegistryUrl,
67
50
  };
51
+ for (const release of response.body.results) {
52
+ result.releases.push({
53
+ version: withHash
54
+ ? `${release.version} (${release.shortRevision})`
55
+ : release.version,
56
+ releaseTimestamp: (0, timestamp_1.asTimestamp)(release.releaseDate),
57
+ changelogUrl: release.releaseNotes.url,
58
+ isStable: translatedRegistryUrl === Unity3dDatasource.streams.lts,
59
+ });
60
+ }
61
+ return result;
68
62
  }
69
63
  async getReleases({ packageName, registryUrl, }) {
70
64
  return await this.getByStream(registryUrl, packageName === 'm_EditorVersionWithRevision');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/unity3d/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { XmlElement } from 'xmldoc';\nimport { XmlDocument } from 'xmldoc';\nimport { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { asTimestamp } from '../../../util/timestamp';\nimport * as Unity3dVersioning from '../../versioning/unity3d';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types';\n\nexport class Unity3dDatasource extends Datasource {\n static readonly homepage = 'https://unity.com/';\n static readonly streams: Record<string, string> = {\n lts: `${Unity3dDatasource.homepage}releases/editor/lts-releases.xml`,\n stable: `${Unity3dDatasource.homepage}releases/editor/releases.xml`,\n beta: `${Unity3dDatasource.homepage}releases/editor/beta/latest.xml`,\n };\n\n static readonly id = 'unity3d';\n\n override readonly defaultRegistryUrls = [\n Unity3dDatasource.streams.stable,\n Unity3dDatasource.streams.lts,\n ];\n\n override readonly defaultVersioning = Unity3dVersioning.id;\n\n override readonly registryStrategy = 'merge';\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `pubDate` tag in the results.';\n\n constructor() {\n super(Unity3dDatasource.id);\n }\n\n async getByStream(\n registryUrl: string | undefined,\n withHash: boolean,\n ): Promise<ReleaseResult | null> {\n let channel: XmlElement | undefined = undefined;\n try {\n const response = await this.http.get(registryUrl!);\n const document = new XmlDocument(response.body);\n channel = document.childNamed('channel');\n } catch (err) {\n logger.error(\n { err, registryUrl },\n 'Failed to request releases from Unity3d datasource',\n );\n return null;\n }\n\n if (!channel) {\n return {\n releases: [],\n homepage: Unity3dDatasource.homepage,\n registryUrl,\n };\n }\n const releases = channel\n .childrenNamed('item')\n .map((itemNode) => {\n const versionWithHash = `${itemNode.childNamed('title')?.val} (${itemNode.childNamed('guid')?.val})`;\n const versionWithoutHash = itemNode.childNamed('title')?.val;\n const release: Release = {\n version: withHash ? versionWithHash : versionWithoutHash!,\n releaseTimestamp: asTimestamp(itemNode.childNamed('pubDate')?.val),\n changelogUrl: itemNode.childNamed('link')?.val,\n isStable: registryUrl !== Unity3dDatasource.streams.beta,\n registryUrl,\n };\n return release;\n })\n .filter((release) => !!release);\n\n return {\n releases,\n homepage: Unity3dDatasource.homepage,\n registryUrl,\n };\n }\n\n @cache({\n namespace: `datasource-${Unity3dDatasource.id}`,\n key: ({ registryUrl, packageName }: GetReleasesConfig) =>\n `${registryUrl}:${packageName}`,\n })\n async getReleases({\n packageName,\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n return await this.getByStream(\n registryUrl,\n packageName === 'm_EditorVersionWithRevision',\n );\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/unity3d/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { cache } from '../../../util/cache/package/decorator';\nimport { asTimestamp } from '../../../util/timestamp';\nimport * as Unity3dVersioning from '../../versioning/unity3d';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, ReleaseResult } from '../types';\nimport { UnityReleasesJSON } from './schema';\n\nexport class Unity3dDatasource extends Datasource {\n static readonly baseUrl =\n 'https://services.api.unity.com/unity/editor/release/v1/releases';\n static readonly homepage = 'https://unity.com/';\n static readonly streams: Record<string, string> = {\n lts: `${Unity3dDatasource.baseUrl}?stream=LTS`,\n tech: `${Unity3dDatasource.baseUrl}?stream=TECH`,\n alpha: `${Unity3dDatasource.baseUrl}?stream=ALPHA`,\n beta: `${Unity3dDatasource.baseUrl}?stream=BETA`,\n };\n static readonly legacyStreams: Record<string, string> = {\n lts: `${Unity3dDatasource.homepage}releases/editor/lts-releases.xml`,\n stable: `${Unity3dDatasource.homepage}releases/editor/releases.xml`,\n beta: `${Unity3dDatasource.homepage}releases/editor/beta/latest.xml`,\n };\n\n static readonly id = 'unity3d';\n\n override readonly defaultRegistryUrls = [Unity3dDatasource.streams.lts];\n\n override readonly defaultVersioning = Unity3dVersioning.id;\n\n override readonly registryStrategy = 'merge';\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `releaseDate` field in the results.';\n\n constructor() {\n super(Unity3dDatasource.id);\n }\n\n translateStream(registryUrl: string): string {\n const legacyKey = Object.keys(Unity3dDatasource.legacyStreams).find(\n (key) => Unity3dDatasource.legacyStreams[key] === registryUrl,\n );\n\n if (legacyKey) {\n if (legacyKey === 'stable') {\n return Unity3dDatasource.streams.lts;\n }\n\n return Unity3dDatasource.streams[legacyKey];\n }\n\n return registryUrl;\n }\n\n async getByStream(\n registryUrl: string | undefined,\n withHash: boolean,\n ): Promise<ReleaseResult | null> {\n const translatedRegistryUrl = this.translateStream(registryUrl!);\n\n const response = await this.http.getJson(\n translatedRegistryUrl,\n UnityReleasesJSON,\n );\n\n const result: ReleaseResult = {\n releases: [],\n homepage: Unity3dDatasource.homepage,\n registryUrl: translatedRegistryUrl,\n };\n\n for (const release of response.body.results) {\n result.releases.push({\n version: withHash\n ? `${release.version} (${release.shortRevision})`\n : release.version,\n releaseTimestamp: asTimestamp(release.releaseDate),\n changelogUrl: release.releaseNotes.url,\n isStable: translatedRegistryUrl === Unity3dDatasource.streams.lts,\n });\n }\n\n return result;\n }\n\n @cache({\n namespace: `datasource-${Unity3dDatasource.id}`,\n key: ({ registryUrl, packageName }: GetReleasesConfig) =>\n `${registryUrl}:${packageName}`,\n })\n async getReleases({\n packageName,\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n return await this.getByStream(\n registryUrl,\n packageName === 'm_EditorVersionWithRevision',\n );\n }\n}\n"]}
@@ -0,0 +1,47 @@
1
+ import { z } from 'zod';
2
+ export declare const UnityReleasesJSON: z.ZodObject<{
3
+ results: z.ZodArray<z.ZodObject<{
4
+ version: z.ZodString;
5
+ releaseDate: z.ZodString;
6
+ releaseNotes: z.ZodObject<{
7
+ url: z.ZodString;
8
+ }, "strip", z.ZodTypeAny, {
9
+ url: string;
10
+ }, {
11
+ url: string;
12
+ }>;
13
+ shortRevision: z.ZodString;
14
+ }, "strip", z.ZodTypeAny, {
15
+ version: string;
16
+ releaseDate: string;
17
+ releaseNotes: {
18
+ url: string;
19
+ };
20
+ shortRevision: string;
21
+ }, {
22
+ version: string;
23
+ releaseDate: string;
24
+ releaseNotes: {
25
+ url: string;
26
+ };
27
+ shortRevision: string;
28
+ }>, "many">;
29
+ }, "strip", z.ZodTypeAny, {
30
+ results: {
31
+ version: string;
32
+ releaseDate: string;
33
+ releaseNotes: {
34
+ url: string;
35
+ };
36
+ shortRevision: string;
37
+ }[];
38
+ }, {
39
+ results: {
40
+ version: string;
41
+ releaseDate: string;
42
+ releaseNotes: {
43
+ url: string;
44
+ };
45
+ shortRevision: string;
46
+ }[];
47
+ }>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnityReleasesJSON = void 0;
4
+ const zod_1 = require("zod");
5
+ const UnityReleaseNote = zod_1.z.object({
6
+ url: zod_1.z.string(),
7
+ });
8
+ const UnityRelease = zod_1.z.object({
9
+ version: zod_1.z.string(),
10
+ releaseDate: zod_1.z.string(),
11
+ releaseNotes: UnityReleaseNote,
12
+ shortRevision: zod_1.z.string(),
13
+ });
14
+ exports.UnityReleasesJSON = zod_1.z.object({
15
+ results: UnityRelease.array(),
16
+ });
17
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/unity3d/schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,MAAM,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChC,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE;CAChB,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5B,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;IACnB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,YAAY,EAAE,gBAAgB;IAC9B,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE;CAC1B,CAAC,CAAC;AAEU,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,YAAY,CAAC,KAAK,EAAE;CAC9B,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\n\nconst UnityReleaseNote = z.object({\n url: z.string(),\n});\n\nconst UnityRelease = z.object({\n version: z.string(),\n releaseDate: z.string(),\n releaseNotes: UnityReleaseNote,\n shortRevision: z.string(),\n});\n\nexport const UnityReleasesJSON = z.object({\n results: UnityRelease.array(),\n});\n"]}
@@ -172,8 +172,8 @@ export declare const Application: z.ZodObject<z.objectUtil.extendShape<{
172
172
  sources?: any[] | undefined;
173
173
  }>;
174
174
  }>, "strip", z.ZodTypeAny, {
175
- kind: "Application";
176
175
  apiVersion: string;
176
+ kind: "Application";
177
177
  spec: {
178
178
  source?: {
179
179
  repoURL: string;
@@ -193,8 +193,8 @@ export declare const Application: z.ZodObject<z.objectUtil.extendShape<{
193
193
  }[] | undefined;
194
194
  };
195
195
  }, {
196
- kind: "Application";
197
196
  apiVersion: string;
197
+ kind: "Application";
198
198
  spec: {
199
199
  source?: {
200
200
  repoURL: string;
@@ -345,8 +345,8 @@ export declare const ApplicationSet: z.ZodObject<z.objectUtil.extendShape<{
345
345
  };
346
346
  }>;
347
347
  }>, "strip", z.ZodTypeAny, {
348
- kind: "ApplicationSet";
349
348
  apiVersion: string;
349
+ kind: "ApplicationSet";
350
350
  spec: {
351
351
  template: {
352
352
  spec: {
@@ -370,8 +370,8 @@ export declare const ApplicationSet: z.ZodObject<z.objectUtil.extendShape<{
370
370
  };
371
371
  };
372
372
  }, {
373
- kind: "ApplicationSet";
374
373
  apiVersion: string;
374
+ kind: "ApplicationSet";
375
375
  spec: {
376
376
  template: {
377
377
  spec: {
@@ -456,8 +456,8 @@ export declare const ApplicationDefinition: z.ZodUnion<[z.ZodObject<z.objectUtil
456
456
  sources?: any[] | undefined;
457
457
  }>;
458
458
  }>, "strip", z.ZodTypeAny, {
459
- kind: "Application";
460
459
  apiVersion: string;
460
+ kind: "Application";
461
461
  spec: {
462
462
  source?: {
463
463
  repoURL: string;
@@ -477,8 +477,8 @@ export declare const ApplicationDefinition: z.ZodUnion<[z.ZodObject<z.objectUtil
477
477
  }[] | undefined;
478
478
  };
479
479
  }, {
480
- kind: "Application";
481
480
  apiVersion: string;
481
+ kind: "Application";
482
482
  spec: {
483
483
  source?: {
484
484
  repoURL: string;
@@ -628,8 +628,8 @@ export declare const ApplicationDefinition: z.ZodUnion<[z.ZodObject<z.objectUtil
628
628
  };
629
629
  }>;
630
630
  }>, "strip", z.ZodTypeAny, {
631
- kind: "ApplicationSet";
632
631
  apiVersion: string;
632
+ kind: "ApplicationSet";
633
633
  spec: {
634
634
  template: {
635
635
  spec: {
@@ -653,8 +653,8 @@ export declare const ApplicationDefinition: z.ZodUnion<[z.ZodObject<z.objectUtil
653
653
  };
654
654
  };
655
655
  }, {
656
- kind: "ApplicationSet";
657
656
  apiVersion: string;
657
+ kind: "ApplicationSet";
658
658
  spec: {
659
659
  template: {
660
660
  spec: {
@@ -673,8 +673,8 @@ export declare const ApplicationDefinition: z.ZodUnion<[z.ZodObject<z.objectUtil
673
673
  }>]>;
674
674
  export type ApplicationDefinition = z.infer<typeof ApplicationDefinition>;
675
675
  export declare const ApplicationDefinitionSchema: z.ZodPipeline<z.ZodEffects<z.ZodString, import("type-fest").JsonArray, string>, z.ZodEffects<z.ZodArray<z.ZodAny, "many">, ({
676
- kind: "Application";
677
676
  apiVersion: string;
677
+ kind: "Application";
678
678
  spec: {
679
679
  source?: {
680
680
  repoURL: string;
@@ -694,8 +694,8 @@ export declare const ApplicationDefinitionSchema: z.ZodPipeline<z.ZodEffects<z.Z
694
694
  }[] | undefined;
695
695
  };
696
696
  } | {
697
- kind: "ApplicationSet";
698
697
  apiVersion: string;
698
+ kind: "ApplicationSet";
699
699
  spec: {
700
700
  template: {
701
701
  spec: {
@@ -1287,19 +1287,19 @@ export declare const Repository: z.ZodObject<{
1287
1287
  name: z.ZodString;
1288
1288
  ref: z.ZodOptional<z.ZodString>;
1289
1289
  }, "strip", z.ZodTypeAny, {
1290
- name: string;
1291
1290
  type: "bitbucket" | "github" | "git";
1291
+ name: string;
1292
1292
  ref?: string | undefined;
1293
1293
  }, {
1294
- name: string;
1295
1294
  type: "bitbucket" | "github" | "git";
1295
+ name: string;
1296
1296
  ref?: string | undefined;
1297
1297
  }>;
1298
1298
  export type Repository = z.infer<typeof Repository>;
1299
1299
  export declare const Resources: z.ZodObject<{
1300
1300
  repositories: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodAny, "many">, {
1301
- name: string;
1302
1301
  type: "bitbucket" | "github" | "git";
1302
+ name: string;
1303
1303
  ref?: string | undefined;
1304
1304
  }[], any[]>>;
1305
1305
  containers: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodAny, "many">, {
@@ -1307,8 +1307,8 @@ export declare const Resources: z.ZodObject<{
1307
1307
  }[], any[]>>;
1308
1308
  }, "strip", z.ZodTypeAny, {
1309
1309
  repositories?: {
1310
- name: string;
1311
1310
  type: "bitbucket" | "github" | "git";
1311
+ name: string;
1312
1312
  ref?: string | undefined;
1313
1313
  }[] | undefined;
1314
1314
  containers?: {
@@ -1322,8 +1322,8 @@ export type Resources = z.infer<typeof Resources>;
1322
1322
  export declare const AzurePipelines: z.ZodObject<{
1323
1323
  resources: z.ZodOptional<z.ZodObject<{
1324
1324
  repositories: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodAny, "many">, {
1325
- name: string;
1326
1325
  type: "bitbucket" | "github" | "git";
1326
+ name: string;
1327
1327
  ref?: string | undefined;
1328
1328
  }[], any[]>>;
1329
1329
  containers: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodAny, "many">, {
@@ -1331,8 +1331,8 @@ export declare const AzurePipelines: z.ZodObject<{
1331
1331
  }[], any[]>>;
1332
1332
  }, "strip", z.ZodTypeAny, {
1333
1333
  repositories?: {
1334
- name: string;
1335
1334
  type: "bitbucket" | "github" | "git";
1335
+ name: string;
1336
1336
  ref?: string | undefined;
1337
1337
  }[] | undefined;
1338
1338
  containers?: {
@@ -1683,8 +1683,8 @@ export declare const AzurePipelines: z.ZodObject<{
1683
1683
  })[] | undefined;
1684
1684
  resources?: {
1685
1685
  repositories?: {
1686
- name: string;
1687
1686
  type: "bitbucket" | "github" | "git";
1687
+ name: string;
1688
1688
  ref?: string | undefined;
1689
1689
  }[] | undefined;
1690
1690
  containers?: {
@@ -1816,8 +1816,8 @@ export type AzurePipelines = z.infer<typeof AzurePipelines>;
1816
1816
  export declare const AzurePipelinesYaml: z.ZodPipeline<z.ZodEffects<z.ZodString, string | number | boolean | import("type-fest").JsonObject | import("type-fest").JsonValue[] | readonly import("type-fest").JsonValue[] | null, string>, z.ZodObject<{
1817
1817
  resources: z.ZodOptional<z.ZodObject<{
1818
1818
  repositories: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodAny, "many">, {
1819
- name: string;
1820
1819
  type: "bitbucket" | "github" | "git";
1820
+ name: string;
1821
1821
  ref?: string | undefined;
1822
1822
  }[], any[]>>;
1823
1823
  containers: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodAny, "many">, {
@@ -1825,8 +1825,8 @@ export declare const AzurePipelinesYaml: z.ZodPipeline<z.ZodEffects<z.ZodString,
1825
1825
  }[], any[]>>;
1826
1826
  }, "strip", z.ZodTypeAny, {
1827
1827
  repositories?: {
1828
- name: string;
1829
1828
  type: "bitbucket" | "github" | "git";
1829
+ name: string;
1830
1830
  ref?: string | undefined;
1831
1831
  }[] | undefined;
1832
1832
  containers?: {
@@ -2177,8 +2177,8 @@ export declare const AzurePipelinesYaml: z.ZodPipeline<z.ZodEffects<z.ZodString,
2177
2177
  })[] | undefined;
2178
2178
  resources?: {
2179
2179
  repositories?: {
2180
- name: string;
2181
2180
  type: "bitbucket" | "github" | "git";
2181
+ name: string;
2182
2182
  ref?: string | undefined;
2183
2183
  }[] | undefined;
2184
2184
  containers?: {
@@ -4,31 +4,31 @@ export declare const BatectConfigSchema: z.ZodEffects<z.ZodPipeline<z.ZodEffects
4
4
  containers: z.ZodCatch<z.ZodEffects<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodAny>, Record<string, string>, Record<string, any>>, string[], Record<string, any>>>;
5
5
  include: z.ZodCatch<z.ZodEffects<z.ZodArray<z.ZodAny, "many">, ({
6
6
  type: "git";
7
- ref: string;
8
7
  repo: string;
8
+ ref: string;
9
9
  } | {
10
- type: "file";
11
10
  path: string;
11
+ type: "file";
12
12
  } | {
13
13
  type: "file";
14
14
  path: string;
15
15
  })[], any[]>>;
16
16
  }, "strip", z.ZodTypeAny, {
17
+ containers: string[];
17
18
  include: ({
18
19
  type: "git";
19
- ref: string;
20
20
  repo: string;
21
+ ref: string;
21
22
  } | {
22
- type: "file";
23
23
  path: string;
24
+ type: "file";
24
25
  } | {
25
26
  type: "file";
26
27
  path: string;
27
28
  })[];
28
- containers: string[];
29
29
  }, {
30
- include?: unknown;
31
30
  containers?: unknown;
31
+ include?: unknown;
32
32
  }>>, {
33
33
  imageDependencies: PackageDependency<Record<string, any>>[];
34
34
  bundleDependencies: PackageDependency<Record<string, any>>[];
@@ -7,7 +7,7 @@ const http = new http_1.Http('batect-wrapper');
7
7
  async function updateArtifact(path, fileName, version) {
8
8
  const url = `https://github.com/batect/batect/releases/download/${version}/${fileName}`;
9
9
  try {
10
- const response = await http.get(url);
10
+ const response = await http.getText(url);
11
11
  const contents = response.body;
12
12
  return {
13
13
  file: { type: 'addition', path, contents },
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/batect-wrapper/artifacts.ts"],"names":[],"mappings":";;AAgCA,0CAcC;AA9CD,4CAAyC;AACzC,6CAA0C;AAG1C,MAAM,IAAI,GAAG,IAAI,WAAI,CAAC,gBAAgB,CAAC,CAAC;AAExC,KAAK,UAAU,cAAc,CAC3B,IAAY,EACZ,QAAgB,EAChB,OAAe;IAEf,MAAM,GAAG,GAAG,sDAAsD,OAAO,IAAI,QAAQ,EAAE,CAAC;IAExF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;QAE/B,OAAO;YACL,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC3C,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,gBAAgB,GAAW,GAAG,CAAC,QAAQ,EAAE,CAAC;QAEhD,OAAO;YACL,aAAa,EAAE;gBACb,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,YAAY,GAAG,YAAY,gBAAgB,EAAE;aACtD;SACF,CAAC;IACJ,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,EACpC,eAAe,EACf,MAAM,GACS;IACf,MAAM,OAAO,GAAG,MAAM,CAAC,UAAW,CAAC;IAEnC,eAAM,CAAC,KAAK,CACV,uCAAuC,eAAe,OAAO,OAAO,EAAE,CACvE,CAAC;IAEF,OAAO;QACL,MAAM,cAAc,CAAC,eAAe,EAAE,QAAQ,EAAE,OAAO,CAAC;QACxD,MAAM,cAAc,CAAC,GAAG,eAAe,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC;KACtE,CAAC;AACJ,CAAC","sourcesContent":["import { logger } from '../../../logger';\nimport { Http } from '../../../util/http';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\n\nconst http = new Http('batect-wrapper');\n\nasync function updateArtifact(\n path: string,\n fileName: string,\n version: string,\n): Promise<UpdateArtifactsResult> {\n const url = `https://github.com/batect/batect/releases/download/${version}/${fileName}`;\n\n try {\n const response = await http.get(url);\n const contents = response.body;\n\n return {\n file: { type: 'addition', path, contents },\n };\n } catch (err) {\n const errorDescription: string = err.toString();\n\n return {\n artifactError: {\n lockFile: path,\n stderr: `HTTP GET ${url} failed: ${errorDescription}`,\n },\n };\n }\n}\n\nexport async function updateArtifacts({\n packageFileName,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n const version = config.newVersion!;\n\n logger.debug(\n `Updating Batect wrapper scripts for ${packageFileName} to ${version}`,\n );\n\n return [\n await updateArtifact(packageFileName, 'batect', version),\n await updateArtifact(`${packageFileName}.cmd`, 'batect.cmd', version),\n ];\n}\n"]}
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/batect-wrapper/artifacts.ts"],"names":[],"mappings":";;AAgCA,0CAcC;AA9CD,4CAAyC;AACzC,6CAA0C;AAG1C,MAAM,IAAI,GAAG,IAAI,WAAI,CAAC,gBAAgB,CAAC,CAAC;AAExC,KAAK,UAAU,cAAc,CAC3B,IAAY,EACZ,QAAgB,EAChB,OAAe;IAEf,MAAM,GAAG,GAAG,sDAAsD,OAAO,IAAI,QAAQ,EAAE,CAAC;IAExF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;QAE/B,OAAO;YACL,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC3C,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,gBAAgB,GAAW,GAAG,CAAC,QAAQ,EAAE,CAAC;QAEhD,OAAO;YACL,aAAa,EAAE;gBACb,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,YAAY,GAAG,YAAY,gBAAgB,EAAE;aACtD;SACF,CAAC;IACJ,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,EACpC,eAAe,EACf,MAAM,GACS;IACf,MAAM,OAAO,GAAG,MAAM,CAAC,UAAW,CAAC;IAEnC,eAAM,CAAC,KAAK,CACV,uCAAuC,eAAe,OAAO,OAAO,EAAE,CACvE,CAAC;IAEF,OAAO;QACL,MAAM,cAAc,CAAC,eAAe,EAAE,QAAQ,EAAE,OAAO,CAAC;QACxD,MAAM,cAAc,CAAC,GAAG,eAAe,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC;KACtE,CAAC;AACJ,CAAC","sourcesContent":["import { logger } from '../../../logger';\nimport { Http } from '../../../util/http';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\n\nconst http = new Http('batect-wrapper');\n\nasync function updateArtifact(\n path: string,\n fileName: string,\n version: string,\n): Promise<UpdateArtifactsResult> {\n const url = `https://github.com/batect/batect/releases/download/${version}/${fileName}`;\n\n try {\n const response = await http.getText(url);\n const contents = response.body;\n\n return {\n file: { type: 'addition', path, contents },\n };\n } catch (err) {\n const errorDescription: string = err.toString();\n\n return {\n artifactError: {\n lockFile: path,\n stderr: `HTTP GET ${url} failed: ${errorDescription}`,\n },\n };\n }\n}\n\nexport async function updateArtifacts({\n packageFileName,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n const version = config.newVersion!;\n\n logger.debug(\n `Updating Batect wrapper scripts for ${packageFileName} to ${version}`,\n );\n\n return [\n await updateArtifact(packageFileName, 'batect', version),\n await updateArtifact(`${packageFileName}.cmd`, 'batect.cmd', version),\n ];\n}\n"]}
@@ -9,24 +9,24 @@ export declare const DockerTarget: z.ZodEffects<z.ZodObject<{
9
9
  repository: z.ZodString;
10
10
  registry: z.ZodString;
11
11
  }, "strip", z.ZodTypeAny, {
12
- name: string;
13
- registry: string;
14
- tag: string;
15
12
  repository: string;
16
13
  digest: string;
17
- rule: "container_pull" | "_container_pull";
18
- }, {
19
14
  name: string;
20
- registry: string;
21
15
  tag: string;
16
+ registry: string;
17
+ rule: "container_pull" | "_container_pull";
18
+ }, {
22
19
  repository: string;
23
20
  digest: string;
24
- rule: "container_pull" | "_container_pull";
25
- }>, PackageDependency<Record<string, any>>[], {
26
21
  name: string;
27
- registry: string;
28
22
  tag: string;
23
+ registry: string;
24
+ rule: "container_pull" | "_container_pull";
25
+ }>, PackageDependency<Record<string, any>>[], {
29
26
  repository: string;
30
27
  digest: string;
28
+ name: string;
29
+ tag: string;
30
+ registry: string;
31
31
  rule: "container_pull" | "_container_pull";
32
32
  }>;