renovate 43.266.0 → 43.268.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/presets/internal/workarounds.preset.js +34 -0
- package/dist/config/presets/internal/workarounds.preset.js.map +1 -1
- package/dist/data/monorepo.js +3 -0
- package/dist/modules/datasource/docker/ecr.js +1 -1
- package/dist/modules/datasource/docker/ecr.js.map +1 -1
- package/dist/modules/manager/fingerprint.generated.js +1 -1
- package/dist/modules/manager/fingerprint.generated.js.map +1 -1
- package/dist/modules/manager/npm/extract/index.js +16 -1
- package/dist/modules/manager/npm/extract/index.js.map +1 -1
- package/dist/modules/manager/npm/extract/pnpm.js +24 -1
- package/dist/modules/manager/npm/extract/pnpm.js.map +1 -1
- package/dist/modules/manager/npm/schema.js +9 -1
- package/dist/modules/manager/npm/schema.js.map +1 -1
- package/dist/util/git/index.d.ts +2 -1
- package/dist/util/git/index.js +14 -1
- package/dist/util/git/index.js.map +1 -1
- package/dist/util/git/types.js.map +1 -1
- package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +23 -8
- package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
- package/package.json +1 -1
- package/renovate-schema.json +2 -2
|
@@ -169,6 +169,40 @@ const presets = {
|
|
|
169
169
|
],
|
|
170
170
|
versioning: "regex:^(?<major>\\d+)?(\\.(?<minor>\\d+))?(\\.(?<patch>\\d+))?([\\._+](?<build>(\\d\\.?)+)(LTS)?)?(-(?<compatibility>.*))?$"
|
|
171
171
|
},
|
|
172
|
+
{
|
|
173
|
+
description: "Use docker versioning for major-only Java image tags so rolling tags (e.g. 21-jre) are not upgraded to full-precision tags (e.g. 21.0.11_10-jre).",
|
|
174
|
+
matchCurrentValue: "/^\\d+(-|$)/",
|
|
175
|
+
matchDatasources: ["docker"],
|
|
176
|
+
matchPackageNames: [
|
|
177
|
+
"eclipse-temurin",
|
|
178
|
+
"amazoncorretto",
|
|
179
|
+
"adoptopenjdk",
|
|
180
|
+
"openjdk",
|
|
181
|
+
"java",
|
|
182
|
+
"java-jdk",
|
|
183
|
+
"java-jre",
|
|
184
|
+
"sapmachine",
|
|
185
|
+
"/^azul/zulu-openjdk/",
|
|
186
|
+
"/^bellsoft/liberica-openj(dk|re)-/",
|
|
187
|
+
"/^cimg/openjdk/"
|
|
188
|
+
],
|
|
189
|
+
versioning: "docker"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
description: "Use docker versioning for major-only Java image tags so rolling tags (e.g. 21-jre) are not upgraded to full-precision tags (e.g. 21.0.11_10-jre).",
|
|
193
|
+
matchCurrentValue: "/^\\d+(-|$)/",
|
|
194
|
+
matchDatasources: ["docker"],
|
|
195
|
+
matchDepNames: [
|
|
196
|
+
"eclipse-temurin",
|
|
197
|
+
"amazoncorretto",
|
|
198
|
+
"adoptopenjdk",
|
|
199
|
+
"openjdk",
|
|
200
|
+
"java",
|
|
201
|
+
"java-jre",
|
|
202
|
+
"sapmachine"
|
|
203
|
+
],
|
|
204
|
+
versioning: "docker"
|
|
205
|
+
},
|
|
172
206
|
{
|
|
173
207
|
allowedVersions: "/^(?:jdk|jdk-all|jre)-(?:8|11|17|21|25)(?:\\.|-|$)/",
|
|
174
208
|
description: "Limit Java runtime versions to LTS releases. To receive all major releases add `workarounds:javaLTSVersions` to the `ignorePresets` array.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workarounds.preset.js","names":[],"sources":["../../../../lib/config/presets/internal/workarounds.preset.ts"],"sourcesContent":["import type { Preset } from '../types.ts';\n\nexport const presets: Record<string, Preset> = {\n all: {\n description: [\n 'Apply crowd-sourced workarounds for known problems with packages.',\n ],\n extends: [\n 'workarounds:mavenCommonsAncientVersion',\n 'workarounds:ignoreSpringCloudNumeric',\n 'workarounds:ignoreWeb3jCoreWithOldReleaseTimestamp',\n 'workarounds:ignoreHttp4sDigestMilestones',\n 'workarounds:typesNodeVersioning',\n 'workarounds:nodeDockerVersioning',\n 'workarounds:doNotUpgradeFromAlpineStableToEdge',\n 'workarounds:supportRedHatImageVersion',\n 'workarounds:javaLTSVersions',\n 'workarounds:disableEclipseLifecycleMapping',\n 'workarounds:disableGradleReplacements',\n 'workarounds:disableMavenParentRoot',\n 'workarounds:containerbase',\n 'workarounds:bitnamiDockerImageVersioning',\n 'workarounds:clamavDockerImageVersioning',\n 'workarounds:grafanaDockerImageVersioning',\n 'workarounds:k3sKubernetesVersioning',\n 'workarounds:rke2KubernetesVersioning',\n 'workarounds:libericaJdkDockerVersioning',\n 'workarounds:ubuntuDockerVersioning',\n ],\n ignoreDeps: [], // Hack to improve onboarding PR description\n },\n bitnamiDockerImageVersioning: {\n description: 'Use custom regex versioning for bitnami images',\n packageRules: [\n {\n matchCurrentValue:\n '/^(?<major>\\\\d+)(?:\\\\.(?<minor>\\\\d+)(?:\\\\.(?<patch>\\\\d+))?)?-(?<compatibility>.+)-(?<build>\\\\d+)(?:-r(?<revision>\\\\d+))?$/',\n matchDatasources: ['docker'],\n matchPackageNames: [\n 'bitnami/**',\n 'docker.io/bitnami/**',\n 'gcr.io/bitnami-containers/**',\n '*-docker.pkg.dev/vmw-app-catalog/**',\n ],\n versioning:\n 'regex:^(?<major>\\\\d+)(?:\\\\.(?<minor>\\\\d+)(?:\\\\.(?<patch>\\\\d+))?)?(:?-(?<compatibility>.+)-(?<build>\\\\d+)(?:-r(?<revision>\\\\d+))?)?$',\n },\n ],\n },\n clamavDockerImageVersioning: {\n description: 'Use custom regex versioning for ClamAV images',\n packageRules: [\n {\n matchDatasources: ['docker'],\n matchPackageNames: ['clamav/clamav', 'clamav/clamav-debian'],\n versioning:\n 'regex:^(?<major>\\\\d+)\\\\.(?<minor>\\\\d+)(\\\\.(?<patch>\\\\d+))?(-(?<build>\\\\d+))?(_(?<compatibility>.+))?$',\n },\n ],\n },\n containerbase: {\n description: 'Add some containerbase overrides.',\n packageRules: [\n {\n description:\n 'Use node versioning for `(containerbase|renovate)/node` images',\n matchDatasources: ['docker'],\n matchPackageNames: [\n '/^(?:(?:docker|ghcr)\\\\.io/)?(?:containerbase|renovate)/node$/',\n ],\n versioning: 'node',\n },\n ],\n },\n disableEclipseLifecycleMapping: {\n description: 'Disable Eclipse m2e lifecycle-mapping placeholder package.',\n packageRules: [\n {\n enabled: false,\n matchDatasources: ['maven'],\n matchPackageNames: ['org.eclipse.m2e:lifecycle-mapping'],\n },\n ],\n },\n disableGradleReplacements: {\n description: 'Disable package replacement updates for gradle dependencies.',\n packageRules: [\n {\n enabled: false,\n matchManagers: ['gradle'],\n matchUpdateTypes: ['replacement'],\n },\n ],\n },\n disableMavenParentRoot: {\n description:\n 'Avoid version fetching for Maven packages detected as project root.',\n packageRules: [\n {\n enabled: false,\n matchDepTypes: ['parent-root'],\n matchManagers: ['maven'],\n },\n ],\n },\n doNotUpgradeFromAlpineStableToEdge: {\n description: 'Do not upgrade from Alpine stable to edge.',\n packageRules: [\n {\n allowedVersions: '<20000000',\n matchCurrentVersion: '!/^\\\\d{8}$/',\n matchDatasources: ['docker'],\n matchDepNames: ['alpine'],\n },\n {\n allowedVersions: '<20000000',\n matchCurrentVersion: '!/^\\\\d{8}$/',\n matchDatasources: ['docker'],\n matchPackageNames: ['alpine'],\n },\n ],\n },\n grafanaDockerImageVersioning: {\n description: 'Support security releases on Grafana (product) images',\n packageRules: [\n {\n matchDatasources: ['docker'],\n matchPackageNames: [\n 'grafana/grafana',\n 'docker.io/grafana/grafana',\n 'grafana/grafana-enterprise',\n 'docker.io/grafana/grafana-enterprise',\n ],\n versioning:\n 'regex:^(?<major>\\\\d+)\\\\.(?<minor>\\\\d+)\\\\.(?<patch>\\\\d+)(?:-security-(?<build>\\\\d+))?(?:-(?<compatibility>.*))?$',\n },\n ],\n },\n ignoreHttp4sDigestMilestones: {\n description: 'Ignore `http4s` digest-based `1.x` milestones.',\n packageRules: [\n {\n allowedVersions: `!/^1\\\\.0-\\\\d+-[a-fA-F0-9]{7}$/`,\n matchManagers: ['sbt'],\n matchPackageNames: ['org.http4s:**'],\n },\n ],\n },\n ignoreSpringCloudNumeric: {\n description: 'Ignore spring cloud `1.x` releases.',\n packageRules: [\n {\n allowedVersions: '/^[A-Z]/',\n matchDatasources: ['maven'],\n matchPackageNames: [\n 'org.springframework.cloud:spring-cloud-starter-parent',\n ],\n },\n ],\n },\n ignoreWeb3jCoreWithOldReleaseTimestamp: {\n description: 'Ignore `web3j` `5.0.0` release.',\n packageRules: [\n {\n allowedVersions: '!/^5\\\\.0\\\\.0/',\n matchDatasources: ['maven'],\n matchPackageNames: ['org.web3j:core'],\n },\n ],\n },\n javaLTSVersions: {\n description: 'Limit Java runtime versions to LTS releases.',\n packageRules: [\n {\n allowedVersions: '/^(?:8|11|17|21|25)(?:\\\\.|-|$)/',\n description:\n 'Limit Java runtime versions to LTS releases. To receive all major releases add `workarounds:javaLTSVersions` to the `ignorePresets` array.',\n matchDatasources: ['docker', 'java-version'],\n matchPackageNames: [\n 'eclipse-temurin',\n 'amazoncorretto',\n 'adoptopenjdk',\n 'openjdk',\n 'java',\n 'java-jdk',\n 'java-jre',\n 'sapmachine',\n '/^azul/zulu-openjdk/',\n '/^bellsoft/liberica-openj(dk|re)-/',\n '/^cimg/openjdk/',\n ],\n versioning:\n 'regex:^(?<major>\\\\d+)?(\\\\.(?<minor>\\\\d+))?(\\\\.(?<patch>\\\\d+))?([\\\\._+](?<build>(\\\\d\\\\.?)+)(LTS)?)?(-(?<compatibility>.*))?$',\n },\n {\n allowedVersions: '/^(?:8|11|17|21|25)(?:\\\\.|-|$)/',\n description:\n 'Limit Java runtime versions to LTS releases. To receive all major releases add `workarounds:javaLTSVersions` to the `ignorePresets` array.',\n matchDatasources: ['docker', 'java-version'],\n matchDepNames: [\n 'eclipse-temurin',\n 'amazoncorretto',\n 'adoptopenjdk',\n 'openjdk',\n 'java',\n 'java-jre',\n 'sapmachine',\n ],\n versioning:\n 'regex:^(?<major>\\\\d+)?(\\\\.(?<minor>\\\\d+))?(\\\\.(?<patch>\\\\d+))?([\\\\._+](?<build>(\\\\d\\\\.?)+)(LTS)?)?(-(?<compatibility>.*))?$',\n },\n {\n allowedVersions: '/^(?:jdk|jdk-all|jre)-(?:8|11|17|21|25)(?:\\\\.|-|$)/',\n description:\n 'Limit Java runtime versions to LTS releases. To receive all major releases add `workarounds:javaLTSVersions` to the `ignorePresets` array.',\n matchDatasources: ['docker'],\n matchPackageNames: [\n 'bellsoft/hardened-liberica-runtime-container',\n 'bellsoft/liberica-runtime-container',\n ],\n },\n ],\n },\n k3sKubernetesVersioning: {\n description: 'Use custom regex versioning for k3s-io/k3s',\n packageRules: [\n {\n matchDatasources: ['github-releases'],\n matchPackageNames: ['k3s-io/k3s'],\n versioning:\n 'regex:^v(?<major>\\\\d+)\\\\.(?<minor>\\\\d+)\\\\.(?<patch>\\\\d+)(?:-(?<prerelease>[a-z]+\\\\d+))?(?<compatibility>\\\\+k3s)(?<build>\\\\d+)$',\n },\n ],\n },\n libericaJdkDockerVersioning: {\n description:\n 'Use custom regex versioning for bellsoft/liberica-runtime-container',\n packageRules: [\n {\n description: 'Liberica JDK Lite version optimized for the Cloud',\n matchCurrentValue: '/^jdk-[^a][^l]{2}/',\n matchDatasources: ['docker'],\n matchPackageNames: [\n 'bellsoft/hardened-liberica-runtime-container',\n 'bellsoft/liberica-runtime-container',\n ],\n versioning:\n 'regex:^jdk-(?<major>\\\\d+)?(\\\\.(?<minor>\\\\d+))?(\\\\.(?<patch>\\\\d+))?([\\\\._+](?<build>(\\\\d\\\\.?)+))?(-(?<compatibility>.*))?$',\n },\n {\n description:\n 'Liberica JDK that can be used to create a custom runtime with a help of jlink tool',\n matchCurrentValue: '/^jdk-all/',\n matchDatasources: ['docker'],\n matchPackageNames: [\n 'bellsoft/hardened-liberica-runtime-container',\n 'bellsoft/liberica-runtime-container',\n ],\n versioning:\n 'regex:^jdk-all-(?<major>\\\\d+)?(\\\\.(?<minor>\\\\d+))?(\\\\.(?<patch>\\\\d+))?([\\\\._+](?<build>(\\\\d\\\\.?)+))?(-(?<compatibility>.*))?$',\n },\n {\n description:\n 'Liberica JRE (only the runtime without the rest of JDK tools) for running Java applications',\n matchCurrentValue: '/^jre-/',\n matchDatasources: ['docker'],\n matchPackageNames: [\n 'bellsoft/hardened-liberica-runtime-container',\n 'bellsoft/liberica-runtime-container',\n ],\n versioning:\n 'regex:^jre-(?<major>\\\\d+)?(\\\\.(?<minor>\\\\d+))?(\\\\.(?<patch>\\\\d+))?([\\\\._+](?<build>(\\\\d\\\\.?)+))?(-(?<compatibility>.*))?$',\n },\n ],\n },\n mavenCommonsAncientVersion: {\n description: 'Fix some problems with very old Maven commons versions.',\n packageRules: [\n {\n allowedVersions: '!/^200\\\\d{5}(\\\\.\\\\d+)?/',\n matchDatasources: ['maven', 'sbt-package'],\n matchPackageNames: ['commons-**'],\n },\n ],\n },\n nodeDockerVersioning: {\n description: 'Use node versioning for `node` docker images.',\n packageRules: [\n {\n matchDatasources: ['docker'],\n // copied from https://github.com/renovatebot/renovate/blob/a471762e137619c06e73a678d6b63ca984da7dba/lib/config/presets/internal/group.ts#L351\n matchPackageNames: [\n '/(?:^|/)node$/', // node or ends with \"/node, except those below\"\n '!calico/node',\n '!docker.io/calico/node',\n '!ghcr.io/devcontainers/features/node',\n '!kindest/node',\n '!docker.io/kindest/node',\n ],\n versionCompatibility: '^(?<version>[^-]+)(?<compatibility>-.*)?$',\n versioning: 'node',\n },\n ],\n },\n rke2KubernetesVersioning: {\n description: 'Use custom regex versioning for rancher/rke2',\n packageRules: [\n {\n matchDatasources: ['github-releases'],\n matchPackageNames: ['rancher/rke2'],\n versioning:\n 'regex:^v(?<major>\\\\d+)\\\\.(?<minor>\\\\d+)\\\\.(?<patch>\\\\d+)(?:-(?<prerelease>[a-z]+\\\\d+))?(?<compatibility>\\\\+rke2r)(?<build>\\\\d+)$',\n },\n ],\n },\n supportRedHatImageVersion: {\n description:\n 'Use specific versioning for Red Hat-maintained container images.',\n packageRules: [\n {\n matchDatasources: ['docker'],\n matchPackageNames: [\n 'registry.access.redhat.com/rhel',\n 'registry.access.redhat.com/rhel-atomic',\n 'registry.access.redhat.com/rhel-init',\n 'registry.access.redhat.com/rhel-minimal',\n 'registry.access.redhat.com/rhceph/**',\n 'registry.access.redhat.com/rhgs3/**',\n 'registry.access.redhat.com/rhel7**',\n 'registry.access.redhat.com/rhel8/**',\n 'registry.access.redhat.com/rhel9/**',\n 'registry.access.redhat.com/rhscl/**',\n 'registry.access.redhat.com/ubi*{,/}**',\n 'redhat/**',\n ],\n versioning: 'redhat',\n },\n ],\n },\n typesNodeVersioning: {\n description: 'Use node versioning for `@types/node`.',\n packageRules: [\n {\n matchManagers: ['npm'],\n matchPackageNames: ['@types/node'],\n versioning: `node`,\n },\n ],\n },\n ubuntuDockerVersioning: {\n description: 'Use ubuntu versioning for `ubuntu` docker images.',\n packageRules: [\n {\n matchDatasources: ['docker'],\n matchDepNames: ['ubuntu'],\n versioning: 'ubuntu',\n },\n ],\n },\n};\n"],"mappings":";AAEA,MAAa,UAAkC;CAC7C,KAAK;EACH,aAAa,CACX,mEACF;EACA,SAAS;GACP;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF;EACA,YAAY,CAAC;CACf;CACA,8BAA8B;EAC5B,aAAa;EACb,cAAc,CACZ;GACE,mBACE;GACF,kBAAkB,CAAC,QAAQ;GAC3B,mBAAmB;IACjB;IACA;IACA;IACA;GACF;GACA,YACE;EACJ,CACF;CACF;CACA,6BAA6B;EAC3B,aAAa;EACb,cAAc,CACZ;GACE,kBAAkB,CAAC,QAAQ;GAC3B,mBAAmB,CAAC,iBAAiB,sBAAsB;GAC3D,YACE;EACJ,CACF;CACF;CACA,eAAe;EACb,aAAa;EACb,cAAc,CACZ;GACE,aACE;GACF,kBAAkB,CAAC,QAAQ;GAC3B,mBAAmB,CACjB,+DACF;GACA,YAAY;EACd,CACF;CACF;CACA,gCAAgC;EAC9B,aAAa;EACb,cAAc,CACZ;GACE,SAAS;GACT,kBAAkB,CAAC,OAAO;GAC1B,mBAAmB,CAAC,mCAAmC;EACzD,CACF;CACF;CACA,2BAA2B;EACzB,aAAa;EACb,cAAc,CACZ;GACE,SAAS;GACT,eAAe,CAAC,QAAQ;GACxB,kBAAkB,CAAC,aAAa;EAClC,CACF;CACF;CACA,wBAAwB;EACtB,aACE;EACF,cAAc,CACZ;GACE,SAAS;GACT,eAAe,CAAC,aAAa;GAC7B,eAAe,CAAC,OAAO;EACzB,CACF;CACF;CACA,oCAAoC;EAClC,aAAa;EACb,cAAc,CACZ;GACE,iBAAiB;GACjB,qBAAqB;GACrB,kBAAkB,CAAC,QAAQ;GAC3B,eAAe,CAAC,QAAQ;EAC1B,GACA;GACE,iBAAiB;GACjB,qBAAqB;GACrB,kBAAkB,CAAC,QAAQ;GAC3B,mBAAmB,CAAC,QAAQ;EAC9B,CACF;CACF;CACA,8BAA8B;EAC5B,aAAa;EACb,cAAc,CACZ;GACE,kBAAkB,CAAC,QAAQ;GAC3B,mBAAmB;IACjB;IACA;IACA;IACA;GACF;GACA,YACE;EACJ,CACF;CACF;CACA,8BAA8B;EAC5B,aAAa;EACb,cAAc,CACZ;GACE,iBAAiB;GACjB,eAAe,CAAC,KAAK;GACrB,mBAAmB,CAAC,eAAe;EACrC,CACF;CACF;CACA,0BAA0B;EACxB,aAAa;EACb,cAAc,CACZ;GACE,iBAAiB;GACjB,kBAAkB,CAAC,OAAO;GAC1B,mBAAmB,CACjB,uDACF;EACF,CACF;CACF;CACA,wCAAwC;EACtC,aAAa;EACb,cAAc,CACZ;GACE,iBAAiB;GACjB,kBAAkB,CAAC,OAAO;GAC1B,mBAAmB,CAAC,gBAAgB;EACtC,CACF;CACF;CACA,iBAAiB;EACf,aAAa;EACb,cAAc;GACZ;IACE,iBAAiB;IACjB,aACE;IACF,kBAAkB,CAAC,UAAU,cAAc;IAC3C,mBAAmB;KACjB;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;IACF;IACA,YACE;GACJ;GACA;IACE,iBAAiB;IACjB,aACE;IACF,kBAAkB,CAAC,UAAU,cAAc;IAC3C,eAAe;KACb;KACA;KACA;KACA;KACA;KACA;KACA;IACF;IACA,YACE;GACJ;GACA;IACE,iBAAiB;IACjB,aACE;IACF,kBAAkB,CAAC,QAAQ;IAC3B,mBAAmB,CACjB,gDACA,qCACF;GACF;EACF;CACF;CACA,yBAAyB;EACvB,aAAa;EACb,cAAc,CACZ;GACE,kBAAkB,CAAC,iBAAiB;GACpC,mBAAmB,CAAC,YAAY;GAChC,YACE;EACJ,CACF;CACF;CACA,6BAA6B;EAC3B,aACE;EACF,cAAc;GACZ;IACE,aAAa;IACb,mBAAmB;IACnB,kBAAkB,CAAC,QAAQ;IAC3B,mBAAmB,CACjB,gDACA,qCACF;IACA,YACE;GACJ;GACA;IACE,aACE;IACF,mBAAmB;IACnB,kBAAkB,CAAC,QAAQ;IAC3B,mBAAmB,CACjB,gDACA,qCACF;IACA,YACE;GACJ;GACA;IACE,aACE;IACF,mBAAmB;IACnB,kBAAkB,CAAC,QAAQ;IAC3B,mBAAmB,CACjB,gDACA,qCACF;IACA,YACE;GACJ;EACF;CACF;CACA,4BAA4B;EAC1B,aAAa;EACb,cAAc,CACZ;GACE,iBAAiB;GACjB,kBAAkB,CAAC,SAAS,aAAa;GACzC,mBAAmB,CAAC,YAAY;EAClC,CACF;CACF;CACA,sBAAsB;EACpB,aAAa;EACb,cAAc,CACZ;GACE,kBAAkB,CAAC,QAAQ;GAE3B,mBAAmB;IACjB;IACA;IACA;IACA;IACA;IACA;GACF;GACA,sBAAsB;GACtB,YAAY;EACd,CACF;CACF;CACA,0BAA0B;EACxB,aAAa;EACb,cAAc,CACZ;GACE,kBAAkB,CAAC,iBAAiB;GACpC,mBAAmB,CAAC,cAAc;GAClC,YACE;EACJ,CACF;CACF;CACA,2BAA2B;EACzB,aACE;EACF,cAAc,CACZ;GACE,kBAAkB,CAAC,QAAQ;GAC3B,mBAAmB;IACjB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,YAAY;EACd,CACF;CACF;CACA,qBAAqB;EACnB,aAAa;EACb,cAAc,CACZ;GACE,eAAe,CAAC,KAAK;GACrB,mBAAmB,CAAC,aAAa;GACjC,YAAY;EACd,CACF;CACF;CACA,wBAAwB;EACtB,aAAa;EACb,cAAc,CACZ;GACE,kBAAkB,CAAC,QAAQ;GAC3B,eAAe,CAAC,QAAQ;GACxB,YAAY;EACd,CACF;CACF;AACF"}
|
|
1
|
+
{"version":3,"file":"workarounds.preset.js","names":[],"sources":["../../../../lib/config/presets/internal/workarounds.preset.ts"],"sourcesContent":["import type { Preset } from '../types.ts';\n\nexport const presets: Record<string, Preset> = {\n all: {\n description: [\n 'Apply crowd-sourced workarounds for known problems with packages.',\n ],\n extends: [\n 'workarounds:mavenCommonsAncientVersion',\n 'workarounds:ignoreSpringCloudNumeric',\n 'workarounds:ignoreWeb3jCoreWithOldReleaseTimestamp',\n 'workarounds:ignoreHttp4sDigestMilestones',\n 'workarounds:typesNodeVersioning',\n 'workarounds:nodeDockerVersioning',\n 'workarounds:doNotUpgradeFromAlpineStableToEdge',\n 'workarounds:supportRedHatImageVersion',\n 'workarounds:javaLTSVersions',\n 'workarounds:disableEclipseLifecycleMapping',\n 'workarounds:disableGradleReplacements',\n 'workarounds:disableMavenParentRoot',\n 'workarounds:containerbase',\n 'workarounds:bitnamiDockerImageVersioning',\n 'workarounds:clamavDockerImageVersioning',\n 'workarounds:grafanaDockerImageVersioning',\n 'workarounds:k3sKubernetesVersioning',\n 'workarounds:rke2KubernetesVersioning',\n 'workarounds:libericaJdkDockerVersioning',\n 'workarounds:ubuntuDockerVersioning',\n ],\n ignoreDeps: [], // Hack to improve onboarding PR description\n },\n bitnamiDockerImageVersioning: {\n description: 'Use custom regex versioning for bitnami images',\n packageRules: [\n {\n matchCurrentValue:\n '/^(?<major>\\\\d+)(?:\\\\.(?<minor>\\\\d+)(?:\\\\.(?<patch>\\\\d+))?)?-(?<compatibility>.+)-(?<build>\\\\d+)(?:-r(?<revision>\\\\d+))?$/',\n matchDatasources: ['docker'],\n matchPackageNames: [\n 'bitnami/**',\n 'docker.io/bitnami/**',\n 'gcr.io/bitnami-containers/**',\n '*-docker.pkg.dev/vmw-app-catalog/**',\n ],\n versioning:\n 'regex:^(?<major>\\\\d+)(?:\\\\.(?<minor>\\\\d+)(?:\\\\.(?<patch>\\\\d+))?)?(:?-(?<compatibility>.+)-(?<build>\\\\d+)(?:-r(?<revision>\\\\d+))?)?$',\n },\n ],\n },\n clamavDockerImageVersioning: {\n description: 'Use custom regex versioning for ClamAV images',\n packageRules: [\n {\n matchDatasources: ['docker'],\n matchPackageNames: ['clamav/clamav', 'clamav/clamav-debian'],\n versioning:\n 'regex:^(?<major>\\\\d+)\\\\.(?<minor>\\\\d+)(\\\\.(?<patch>\\\\d+))?(-(?<build>\\\\d+))?(_(?<compatibility>.+))?$',\n },\n ],\n },\n containerbase: {\n description: 'Add some containerbase overrides.',\n packageRules: [\n {\n description:\n 'Use node versioning for `(containerbase|renovate)/node` images',\n matchDatasources: ['docker'],\n matchPackageNames: [\n '/^(?:(?:docker|ghcr)\\\\.io/)?(?:containerbase|renovate)/node$/',\n ],\n versioning: 'node',\n },\n ],\n },\n disableEclipseLifecycleMapping: {\n description: 'Disable Eclipse m2e lifecycle-mapping placeholder package.',\n packageRules: [\n {\n enabled: false,\n matchDatasources: ['maven'],\n matchPackageNames: ['org.eclipse.m2e:lifecycle-mapping'],\n },\n ],\n },\n disableGradleReplacements: {\n description: 'Disable package replacement updates for gradle dependencies.',\n packageRules: [\n {\n enabled: false,\n matchManagers: ['gradle'],\n matchUpdateTypes: ['replacement'],\n },\n ],\n },\n disableMavenParentRoot: {\n description:\n 'Avoid version fetching for Maven packages detected as project root.',\n packageRules: [\n {\n enabled: false,\n matchDepTypes: ['parent-root'],\n matchManagers: ['maven'],\n },\n ],\n },\n doNotUpgradeFromAlpineStableToEdge: {\n description: 'Do not upgrade from Alpine stable to edge.',\n packageRules: [\n {\n allowedVersions: '<20000000',\n matchCurrentVersion: '!/^\\\\d{8}$/',\n matchDatasources: ['docker'],\n matchDepNames: ['alpine'],\n },\n {\n allowedVersions: '<20000000',\n matchCurrentVersion: '!/^\\\\d{8}$/',\n matchDatasources: ['docker'],\n matchPackageNames: ['alpine'],\n },\n ],\n },\n grafanaDockerImageVersioning: {\n description: 'Support security releases on Grafana (product) images',\n packageRules: [\n {\n matchDatasources: ['docker'],\n matchPackageNames: [\n 'grafana/grafana',\n 'docker.io/grafana/grafana',\n 'grafana/grafana-enterprise',\n 'docker.io/grafana/grafana-enterprise',\n ],\n versioning:\n 'regex:^(?<major>\\\\d+)\\\\.(?<minor>\\\\d+)\\\\.(?<patch>\\\\d+)(?:-security-(?<build>\\\\d+))?(?:-(?<compatibility>.*))?$',\n },\n ],\n },\n ignoreHttp4sDigestMilestones: {\n description: 'Ignore `http4s` digest-based `1.x` milestones.',\n packageRules: [\n {\n allowedVersions: `!/^1\\\\.0-\\\\d+-[a-fA-F0-9]{7}$/`,\n matchManagers: ['sbt'],\n matchPackageNames: ['org.http4s:**'],\n },\n ],\n },\n ignoreSpringCloudNumeric: {\n description: 'Ignore spring cloud `1.x` releases.',\n packageRules: [\n {\n allowedVersions: '/^[A-Z]/',\n matchDatasources: ['maven'],\n matchPackageNames: [\n 'org.springframework.cloud:spring-cloud-starter-parent',\n ],\n },\n ],\n },\n ignoreWeb3jCoreWithOldReleaseTimestamp: {\n description: 'Ignore `web3j` `5.0.0` release.',\n packageRules: [\n {\n allowedVersions: '!/^5\\\\.0\\\\.0/',\n matchDatasources: ['maven'],\n matchPackageNames: ['org.web3j:core'],\n },\n ],\n },\n javaLTSVersions: {\n description: 'Limit Java runtime versions to LTS releases.',\n packageRules: [\n {\n allowedVersions: '/^(?:8|11|17|21|25)(?:\\\\.|-|$)/',\n description:\n 'Limit Java runtime versions to LTS releases. To receive all major releases add `workarounds:javaLTSVersions` to the `ignorePresets` array.',\n matchDatasources: ['docker', 'java-version'],\n matchPackageNames: [\n 'eclipse-temurin',\n 'amazoncorretto',\n 'adoptopenjdk',\n 'openjdk',\n 'java',\n 'java-jdk',\n 'java-jre',\n 'sapmachine',\n '/^azul/zulu-openjdk/',\n '/^bellsoft/liberica-openj(dk|re)-/',\n '/^cimg/openjdk/',\n ],\n versioning:\n 'regex:^(?<major>\\\\d+)?(\\\\.(?<minor>\\\\d+))?(\\\\.(?<patch>\\\\d+))?([\\\\._+](?<build>(\\\\d\\\\.?)+)(LTS)?)?(-(?<compatibility>.*))?$',\n },\n {\n allowedVersions: '/^(?:8|11|17|21|25)(?:\\\\.|-|$)/',\n description:\n 'Limit Java runtime versions to LTS releases. To receive all major releases add `workarounds:javaLTSVersions` to the `ignorePresets` array.',\n matchDatasources: ['docker', 'java-version'],\n matchDepNames: [\n 'eclipse-temurin',\n 'amazoncorretto',\n 'adoptopenjdk',\n 'openjdk',\n 'java',\n 'java-jre',\n 'sapmachine',\n ],\n versioning:\n 'regex:^(?<major>\\\\d+)?(\\\\.(?<minor>\\\\d+))?(\\\\.(?<patch>\\\\d+))?([\\\\._+](?<build>(\\\\d\\\\.?)+)(LTS)?)?(-(?<compatibility>.*))?$',\n },\n {\n description:\n 'Use docker versioning for major-only Java image tags so rolling tags (e.g. 21-jre) are not upgraded to full-precision tags (e.g. 21.0.11_10-jre).',\n matchCurrentValue: '/^\\\\d+(-|$)/',\n matchDatasources: ['docker'],\n matchPackageNames: [\n 'eclipse-temurin',\n 'amazoncorretto',\n 'adoptopenjdk',\n 'openjdk',\n 'java',\n 'java-jdk',\n 'java-jre',\n 'sapmachine',\n '/^azul/zulu-openjdk/',\n '/^bellsoft/liberica-openj(dk|re)-/',\n '/^cimg/openjdk/',\n ],\n versioning: 'docker',\n },\n {\n description:\n 'Use docker versioning for major-only Java image tags so rolling tags (e.g. 21-jre) are not upgraded to full-precision tags (e.g. 21.0.11_10-jre).',\n matchCurrentValue: '/^\\\\d+(-|$)/',\n matchDatasources: ['docker'],\n matchDepNames: [\n 'eclipse-temurin',\n 'amazoncorretto',\n 'adoptopenjdk',\n 'openjdk',\n 'java',\n 'java-jre',\n 'sapmachine',\n ],\n versioning: 'docker',\n },\n {\n allowedVersions: '/^(?:jdk|jdk-all|jre)-(?:8|11|17|21|25)(?:\\\\.|-|$)/',\n description:\n 'Limit Java runtime versions to LTS releases. To receive all major releases add `workarounds:javaLTSVersions` to the `ignorePresets` array.',\n matchDatasources: ['docker'],\n matchPackageNames: [\n 'bellsoft/hardened-liberica-runtime-container',\n 'bellsoft/liberica-runtime-container',\n ],\n },\n ],\n },\n k3sKubernetesVersioning: {\n description: 'Use custom regex versioning for k3s-io/k3s',\n packageRules: [\n {\n matchDatasources: ['github-releases'],\n matchPackageNames: ['k3s-io/k3s'],\n versioning:\n 'regex:^v(?<major>\\\\d+)\\\\.(?<minor>\\\\d+)\\\\.(?<patch>\\\\d+)(?:-(?<prerelease>[a-z]+\\\\d+))?(?<compatibility>\\\\+k3s)(?<build>\\\\d+)$',\n },\n ],\n },\n libericaJdkDockerVersioning: {\n description:\n 'Use custom regex versioning for bellsoft/liberica-runtime-container',\n packageRules: [\n {\n description: 'Liberica JDK Lite version optimized for the Cloud',\n matchCurrentValue: '/^jdk-[^a][^l]{2}/',\n matchDatasources: ['docker'],\n matchPackageNames: [\n 'bellsoft/hardened-liberica-runtime-container',\n 'bellsoft/liberica-runtime-container',\n ],\n versioning:\n 'regex:^jdk-(?<major>\\\\d+)?(\\\\.(?<minor>\\\\d+))?(\\\\.(?<patch>\\\\d+))?([\\\\._+](?<build>(\\\\d\\\\.?)+))?(-(?<compatibility>.*))?$',\n },\n {\n description:\n 'Liberica JDK that can be used to create a custom runtime with a help of jlink tool',\n matchCurrentValue: '/^jdk-all/',\n matchDatasources: ['docker'],\n matchPackageNames: [\n 'bellsoft/hardened-liberica-runtime-container',\n 'bellsoft/liberica-runtime-container',\n ],\n versioning:\n 'regex:^jdk-all-(?<major>\\\\d+)?(\\\\.(?<minor>\\\\d+))?(\\\\.(?<patch>\\\\d+))?([\\\\._+](?<build>(\\\\d\\\\.?)+))?(-(?<compatibility>.*))?$',\n },\n {\n description:\n 'Liberica JRE (only the runtime without the rest of JDK tools) for running Java applications',\n matchCurrentValue: '/^jre-/',\n matchDatasources: ['docker'],\n matchPackageNames: [\n 'bellsoft/hardened-liberica-runtime-container',\n 'bellsoft/liberica-runtime-container',\n ],\n versioning:\n 'regex:^jre-(?<major>\\\\d+)?(\\\\.(?<minor>\\\\d+))?(\\\\.(?<patch>\\\\d+))?([\\\\._+](?<build>(\\\\d\\\\.?)+))?(-(?<compatibility>.*))?$',\n },\n ],\n },\n mavenCommonsAncientVersion: {\n description: 'Fix some problems with very old Maven commons versions.',\n packageRules: [\n {\n allowedVersions: '!/^200\\\\d{5}(\\\\.\\\\d+)?/',\n matchDatasources: ['maven', 'sbt-package'],\n matchPackageNames: ['commons-**'],\n },\n ],\n },\n nodeDockerVersioning: {\n description: 'Use node versioning for `node` docker images.',\n packageRules: [\n {\n matchDatasources: ['docker'],\n // copied from https://github.com/renovatebot/renovate/blob/a471762e137619c06e73a678d6b63ca984da7dba/lib/config/presets/internal/group.ts#L351\n matchPackageNames: [\n '/(?:^|/)node$/', // node or ends with \"/node, except those below\"\n '!calico/node',\n '!docker.io/calico/node',\n '!ghcr.io/devcontainers/features/node',\n '!kindest/node',\n '!docker.io/kindest/node',\n ],\n versionCompatibility: '^(?<version>[^-]+)(?<compatibility>-.*)?$',\n versioning: 'node',\n },\n ],\n },\n rke2KubernetesVersioning: {\n description: 'Use custom regex versioning for rancher/rke2',\n packageRules: [\n {\n matchDatasources: ['github-releases'],\n matchPackageNames: ['rancher/rke2'],\n versioning:\n 'regex:^v(?<major>\\\\d+)\\\\.(?<minor>\\\\d+)\\\\.(?<patch>\\\\d+)(?:-(?<prerelease>[a-z]+\\\\d+))?(?<compatibility>\\\\+rke2r)(?<build>\\\\d+)$',\n },\n ],\n },\n supportRedHatImageVersion: {\n description:\n 'Use specific versioning for Red Hat-maintained container images.',\n packageRules: [\n {\n matchDatasources: ['docker'],\n matchPackageNames: [\n 'registry.access.redhat.com/rhel',\n 'registry.access.redhat.com/rhel-atomic',\n 'registry.access.redhat.com/rhel-init',\n 'registry.access.redhat.com/rhel-minimal',\n 'registry.access.redhat.com/rhceph/**',\n 'registry.access.redhat.com/rhgs3/**',\n 'registry.access.redhat.com/rhel7**',\n 'registry.access.redhat.com/rhel8/**',\n 'registry.access.redhat.com/rhel9/**',\n 'registry.access.redhat.com/rhscl/**',\n 'registry.access.redhat.com/ubi*{,/}**',\n 'redhat/**',\n ],\n versioning: 'redhat',\n },\n ],\n },\n typesNodeVersioning: {\n description: 'Use node versioning for `@types/node`.',\n packageRules: [\n {\n matchManagers: ['npm'],\n matchPackageNames: ['@types/node'],\n versioning: `node`,\n },\n ],\n },\n ubuntuDockerVersioning: {\n description: 'Use ubuntu versioning for `ubuntu` docker images.',\n packageRules: [\n {\n matchDatasources: ['docker'],\n matchDepNames: ['ubuntu'],\n versioning: 'ubuntu',\n },\n ],\n },\n};\n"],"mappings":";AAEA,MAAa,UAAkC;CAC7C,KAAK;EACH,aAAa,CACX,mEACF;EACA,SAAS;GACP;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF;EACA,YAAY,CAAC;CACf;CACA,8BAA8B;EAC5B,aAAa;EACb,cAAc,CACZ;GACE,mBACE;GACF,kBAAkB,CAAC,QAAQ;GAC3B,mBAAmB;IACjB;IACA;IACA;IACA;GACF;GACA,YACE;EACJ,CACF;CACF;CACA,6BAA6B;EAC3B,aAAa;EACb,cAAc,CACZ;GACE,kBAAkB,CAAC,QAAQ;GAC3B,mBAAmB,CAAC,iBAAiB,sBAAsB;GAC3D,YACE;EACJ,CACF;CACF;CACA,eAAe;EACb,aAAa;EACb,cAAc,CACZ;GACE,aACE;GACF,kBAAkB,CAAC,QAAQ;GAC3B,mBAAmB,CACjB,+DACF;GACA,YAAY;EACd,CACF;CACF;CACA,gCAAgC;EAC9B,aAAa;EACb,cAAc,CACZ;GACE,SAAS;GACT,kBAAkB,CAAC,OAAO;GAC1B,mBAAmB,CAAC,mCAAmC;EACzD,CACF;CACF;CACA,2BAA2B;EACzB,aAAa;EACb,cAAc,CACZ;GACE,SAAS;GACT,eAAe,CAAC,QAAQ;GACxB,kBAAkB,CAAC,aAAa;EAClC,CACF;CACF;CACA,wBAAwB;EACtB,aACE;EACF,cAAc,CACZ;GACE,SAAS;GACT,eAAe,CAAC,aAAa;GAC7B,eAAe,CAAC,OAAO;EACzB,CACF;CACF;CACA,oCAAoC;EAClC,aAAa;EACb,cAAc,CACZ;GACE,iBAAiB;GACjB,qBAAqB;GACrB,kBAAkB,CAAC,QAAQ;GAC3B,eAAe,CAAC,QAAQ;EAC1B,GACA;GACE,iBAAiB;GACjB,qBAAqB;GACrB,kBAAkB,CAAC,QAAQ;GAC3B,mBAAmB,CAAC,QAAQ;EAC9B,CACF;CACF;CACA,8BAA8B;EAC5B,aAAa;EACb,cAAc,CACZ;GACE,kBAAkB,CAAC,QAAQ;GAC3B,mBAAmB;IACjB;IACA;IACA;IACA;GACF;GACA,YACE;EACJ,CACF;CACF;CACA,8BAA8B;EAC5B,aAAa;EACb,cAAc,CACZ;GACE,iBAAiB;GACjB,eAAe,CAAC,KAAK;GACrB,mBAAmB,CAAC,eAAe;EACrC,CACF;CACF;CACA,0BAA0B;EACxB,aAAa;EACb,cAAc,CACZ;GACE,iBAAiB;GACjB,kBAAkB,CAAC,OAAO;GAC1B,mBAAmB,CACjB,uDACF;EACF,CACF;CACF;CACA,wCAAwC;EACtC,aAAa;EACb,cAAc,CACZ;GACE,iBAAiB;GACjB,kBAAkB,CAAC,OAAO;GAC1B,mBAAmB,CAAC,gBAAgB;EACtC,CACF;CACF;CACA,iBAAiB;EACf,aAAa;EACb,cAAc;GACZ;IACE,iBAAiB;IACjB,aACE;IACF,kBAAkB,CAAC,UAAU,cAAc;IAC3C,mBAAmB;KACjB;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;IACF;IACA,YACE;GACJ;GACA;IACE,iBAAiB;IACjB,aACE;IACF,kBAAkB,CAAC,UAAU,cAAc;IAC3C,eAAe;KACb;KACA;KACA;KACA;KACA;KACA;KACA;IACF;IACA,YACE;GACJ;GACA;IACE,aACE;IACF,mBAAmB;IACnB,kBAAkB,CAAC,QAAQ;IAC3B,mBAAmB;KACjB;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;IACF;IACA,YAAY;GACd;GACA;IACE,aACE;IACF,mBAAmB;IACnB,kBAAkB,CAAC,QAAQ;IAC3B,eAAe;KACb;KACA;KACA;KACA;KACA;KACA;KACA;IACF;IACA,YAAY;GACd;GACA;IACE,iBAAiB;IACjB,aACE;IACF,kBAAkB,CAAC,QAAQ;IAC3B,mBAAmB,CACjB,gDACA,qCACF;GACF;EACF;CACF;CACA,yBAAyB;EACvB,aAAa;EACb,cAAc,CACZ;GACE,kBAAkB,CAAC,iBAAiB;GACpC,mBAAmB,CAAC,YAAY;GAChC,YACE;EACJ,CACF;CACF;CACA,6BAA6B;EAC3B,aACE;EACF,cAAc;GACZ;IACE,aAAa;IACb,mBAAmB;IACnB,kBAAkB,CAAC,QAAQ;IAC3B,mBAAmB,CACjB,gDACA,qCACF;IACA,YACE;GACJ;GACA;IACE,aACE;IACF,mBAAmB;IACnB,kBAAkB,CAAC,QAAQ;IAC3B,mBAAmB,CACjB,gDACA,qCACF;IACA,YACE;GACJ;GACA;IACE,aACE;IACF,mBAAmB;IACnB,kBAAkB,CAAC,QAAQ;IAC3B,mBAAmB,CACjB,gDACA,qCACF;IACA,YACE;GACJ;EACF;CACF;CACA,4BAA4B;EAC1B,aAAa;EACb,cAAc,CACZ;GACE,iBAAiB;GACjB,kBAAkB,CAAC,SAAS,aAAa;GACzC,mBAAmB,CAAC,YAAY;EAClC,CACF;CACF;CACA,sBAAsB;EACpB,aAAa;EACb,cAAc,CACZ;GACE,kBAAkB,CAAC,QAAQ;GAE3B,mBAAmB;IACjB;IACA;IACA;IACA;IACA;IACA;GACF;GACA,sBAAsB;GACtB,YAAY;EACd,CACF;CACF;CACA,0BAA0B;EACxB,aAAa;EACb,cAAc,CACZ;GACE,kBAAkB,CAAC,iBAAiB;GACpC,mBAAmB,CAAC,cAAc;GAClC,YACE;EACJ,CACF;CACF;CACA,2BAA2B;EACzB,aACE;EACF,cAAc,CACZ;GACE,kBAAkB,CAAC,QAAQ;GAC3B,mBAAmB;IACjB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,YAAY;EACd,CACF;CACF;CACA,qBAAqB;EACnB,aAAa;EACb,cAAc,CACZ;GACE,eAAe,CAAC,KAAK;GACrB,mBAAmB,CAAC,aAAa;GACjC,YAAY;EACd,CACF;CACF;CACA,wBAAwB;EACtB,aAAa;EACb,cAAc,CACZ;GACE,kBAAkB,CAAC,QAAQ;GAC3B,eAAe,CAAC,QAAQ;GACxB,YAAY;EACd,CACF;CACF;AACF"}
|
package/dist/data/monorepo.js
CHANGED
|
@@ -342,6 +342,7 @@ var repoGroups = {
|
|
|
342
342
|
"enumeratum": "https://github.com/lloydmeta/enumeratum",
|
|
343
343
|
"envelop": "https://github.com/n1ru4l/envelop",
|
|
344
344
|
"error-prone": "https://github.com/google/error-prone",
|
|
345
|
+
"error-prone-support": "https://github.com/PicnicSupermarket/error-prone-support",
|
|
345
346
|
"eslint": "https://github.com/eslint/eslint",
|
|
346
347
|
"eslint-config-globex": "https://github.com/GlobexDesignsInc/eslint-config-globex",
|
|
347
348
|
"eslint-stylistic": "https://github.com/eslint-stylistic/eslint-stylistic",
|
|
@@ -621,10 +622,12 @@ var repoGroups = {
|
|
|
621
622
|
"serenity-js": "https://github.com/serenity-js/serenity-js",
|
|
622
623
|
"serilog-ui": "https://github.com/serilog-contrib/serilog-ui",
|
|
623
624
|
"servicestack": "https://github.com/ServiceStack/ServiceStack",
|
|
625
|
+
"serwist": "https://github.com/serwist/serwist",
|
|
624
626
|
"shedlock": "https://github.com/lukas-krecan/ShedLock",
|
|
625
627
|
"shiki": "https://github.com/shikijs/shiki",
|
|
626
628
|
"shopify-app-bridge": "https://github.com/Shopify/app-bridge",
|
|
627
629
|
"sitecore-jss": "https://github.com/Sitecore/jss",
|
|
630
|
+
"size-limit": "https://github.com/ai/size-limit",
|
|
628
631
|
"skiasharp": ["https://github.com/mono/SkiaSharp", "https://go.microsoft.com/fwlink/?linkid=868515"],
|
|
629
632
|
"slack-net": "https://github.com/soxtoby/SlackNet",
|
|
630
633
|
"slf4j": "https://github.com/qos-ch/slf4j",
|
|
@@ -3,7 +3,7 @@ import { addSecretForSanitizing } from "../../../util/sanitize.js";
|
|
|
3
3
|
import { logger } from "../../../logger/index.js";
|
|
4
4
|
import { ECR } from "@aws-sdk/client-ecr";
|
|
5
5
|
//#region lib/modules/datasource/docker/ecr.ts
|
|
6
|
-
const ecrRegex = regEx(/\d+\.(?:dkr\.ecr|dkr-ecr)(?:-fips)?\.([-a-z0-9]+)\.(?:amazonaws\.com|on\.aws)/);
|
|
6
|
+
const ecrRegex = regEx(/\d+\.(?:dkr\.ecr|dkr-ecr)(?:-fips)?\.([-a-z0-9]+)\.(?:amazonaws\.com|on\.aws|amazonaws\.com\.cn|on\.amazonwebservices\.com\.cn|amazonaws\.eu|on\.amazonwebservices\.eu|c2s\.ic\.gov|on\.aws\.ic\.gov|sc2s\.sgov\.gov|on\.aws\.scloud|scloud\.adc-e\.uk|on\.cloud-aws\.adc-e\.uk|csp\.hci\.ic\.gov|on\.aws\.hci\.ic\.gov|)/);
|
|
7
7
|
const ecrPublicRegex = regEx(/public\.ecr\.aws|ecr-public\.aws\.com/);
|
|
8
8
|
async function getECRAuthToken(region, opts) {
|
|
9
9
|
const config = { region };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecr.js","names":[],"sources":["../../../../lib/modules/datasource/docker/ecr.ts"],"sourcesContent":["import type { ECRClientConfig } from '@aws-sdk/client-ecr';\nimport { ECR } from '@aws-sdk/client-ecr';\nimport { logger } from '../../../logger/index.ts';\nimport type { HostRule } from '../../../types/index.ts';\nimport type { HttpError } from '../../../util/http/index.ts';\nimport type { HttpResponse } from '../../../util/http/types.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { addSecretForSanitizing } from '../../../util/sanitize.ts';\n\nexport const ecrRegex = regEx(\n /\\d+\\.(?:dkr\\.ecr|dkr-ecr)(?:-fips)?\\.([-a-z0-9]+)\\.(?:amazonaws\\.com|on\\.aws)/,\n);\nexport const ecrPublicRegex = regEx(/public\\.ecr\\.aws|ecr-public\\.aws\\.com/);\n\nexport async function getECRAuthToken(\n region: string,\n opts: HostRule,\n): Promise<string | null> {\n const config: ECRClientConfig = { region };\n if (opts.username === `AWS` && opts.password) {\n logger.trace(\n `AWS user specified, encoding basic auth credentials for ECR registry`,\n );\n return Buffer.from(`AWS:${opts.password}`).toString('base64');\n }\n if (opts.username && opts.password) {\n logger.trace(\n `Using AWS accessKey to get Authorization token for ECR registry`,\n );\n config.credentials = {\n accessKeyId: opts.username,\n secretAccessKey: opts.password,\n ...(opts.token && { sessionToken: opts.token }),\n };\n }\n\n const ecr = new ECR(config);\n try {\n const data = await ecr.getAuthorizationToken({});\n const authorizationToken = data?.authorizationData?.[0]?.authorizationToken;\n if (authorizationToken) {\n // sanitize token\n addSecretForSanitizing(authorizationToken);\n return authorizationToken;\n }\n logger.warn(\n 'Could not extract authorizationToken from ECR getAuthorizationToken response',\n );\n } catch (err) {\n logger.trace({ err }, 'err');\n logger.warn('ECR getAuthorizationToken error');\n }\n return null;\n}\n\n// https://docs.aws.amazon.com/AmazonECR/latest/APIReference/API_DescribeRepositories.html#ECR-DescribeRepositories-request-maxResults\nexport function isECRMaxResultsResponse(resp: HttpResponse<unknown>): boolean {\n const body = resp.body as { errors?: { message?: string }[] } | undefined;\n return !!(\n resp.statusCode === 405 &&\n resp.headers?.['docker-distribution-api-version'] &&\n body?.errors?.[0]?.message?.includes(\n 'Member must have value less than or equal to 1000',\n )\n );\n}\n\nexport function isECRMaxResultsError(err: HttpError): boolean {\n const resp = err.response as HttpResponse<unknown> | undefined;\n return !!resp && isECRMaxResultsResponse(resp);\n}\n"],"mappings":";;;;;AASA,MAAa,WAAW,MACtB
|
|
1
|
+
{"version":3,"file":"ecr.js","names":[],"sources":["../../../../lib/modules/datasource/docker/ecr.ts"],"sourcesContent":["import type { ECRClientConfig } from '@aws-sdk/client-ecr';\nimport { ECR } from '@aws-sdk/client-ecr';\nimport { logger } from '../../../logger/index.ts';\nimport type { HostRule } from '../../../types/index.ts';\nimport type { HttpError } from '../../../util/http/index.ts';\nimport type { HttpResponse } from '../../../util/http/types.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { addSecretForSanitizing } from '../../../util/sanitize.ts';\n\nexport const ecrRegex = regEx(\n /\\d+\\.(?:dkr\\.ecr|dkr-ecr)(?:-fips)?\\.([-a-z0-9]+)\\.(?:amazonaws\\.com|on\\.aws|amazonaws\\.com\\.cn|on\\.amazonwebservices\\.com\\.cn|amazonaws\\.eu|on\\.amazonwebservices\\.eu|c2s\\.ic\\.gov|on\\.aws\\.ic\\.gov|sc2s\\.sgov\\.gov|on\\.aws\\.scloud|scloud\\.adc-e\\.uk|on\\.cloud-aws\\.adc-e\\.uk|csp\\.hci\\.ic\\.gov|on\\.aws\\.hci\\.ic\\.gov|)/,\n);\nexport const ecrPublicRegex = regEx(/public\\.ecr\\.aws|ecr-public\\.aws\\.com/);\n\nexport async function getECRAuthToken(\n region: string,\n opts: HostRule,\n): Promise<string | null> {\n const config: ECRClientConfig = { region };\n if (opts.username === `AWS` && opts.password) {\n logger.trace(\n `AWS user specified, encoding basic auth credentials for ECR registry`,\n );\n return Buffer.from(`AWS:${opts.password}`).toString('base64');\n }\n if (opts.username && opts.password) {\n logger.trace(\n `Using AWS accessKey to get Authorization token for ECR registry`,\n );\n config.credentials = {\n accessKeyId: opts.username,\n secretAccessKey: opts.password,\n ...(opts.token && { sessionToken: opts.token }),\n };\n }\n\n const ecr = new ECR(config);\n try {\n const data = await ecr.getAuthorizationToken({});\n const authorizationToken = data?.authorizationData?.[0]?.authorizationToken;\n if (authorizationToken) {\n // sanitize token\n addSecretForSanitizing(authorizationToken);\n return authorizationToken;\n }\n logger.warn(\n 'Could not extract authorizationToken from ECR getAuthorizationToken response',\n );\n } catch (err) {\n logger.trace({ err }, 'err');\n logger.warn('ECR getAuthorizationToken error');\n }\n return null;\n}\n\n// https://docs.aws.amazon.com/AmazonECR/latest/APIReference/API_DescribeRepositories.html#ECR-DescribeRepositories-request-maxResults\nexport function isECRMaxResultsResponse(resp: HttpResponse<unknown>): boolean {\n const body = resp.body as { errors?: { message?: string }[] } | undefined;\n return !!(\n resp.statusCode === 405 &&\n resp.headers?.['docker-distribution-api-version'] &&\n body?.errors?.[0]?.message?.includes(\n 'Member must have value less than or equal to 1000',\n )\n );\n}\n\nexport function isECRMaxResultsError(err: HttpError): boolean {\n const resp = err.response as HttpResponse<unknown> | undefined;\n return !!resp && isECRMaxResultsResponse(resp);\n}\n"],"mappings":";;;;;AASA,MAAa,WAAW,MACtB,2TACF;AACA,MAAa,iBAAiB,MAAM,uCAAuC;AAE3E,eAAsB,gBACpB,QACA,MACwB;CACxB,MAAM,SAA0B,EAAE,OAAO;CACzC,IAAI,KAAK,aAAa,SAAS,KAAK,UAAU;EAC5C,OAAO,MACL,sEACF;EACA,OAAO,OAAO,KAAK,OAAO,KAAK,UAAU,CAAC,CAAC,SAAS,QAAQ;CAC9D;CACA,IAAI,KAAK,YAAY,KAAK,UAAU;EAClC,OAAO,MACL,iEACF;EACA,OAAO,cAAc;GACnB,aAAa,KAAK;GAClB,iBAAiB,KAAK;GACtB,GAAI,KAAK,SAAS,EAAE,cAAc,KAAK,MAAM;EAC/C;CACF;CAEA,MAAM,MAAM,IAAI,IAAI,MAAM;CAC1B,IAAI;EAEF,MAAM,sBAAqB,MADR,IAAI,sBAAsB,CAAC,CAAC,EAAA,EACd,oBAAoB,EAAE,EAAE;EACzD,IAAI,oBAAoB;GAEtB,uBAAuB,kBAAkB;GACzC,OAAO;EACT;EACA,OAAO,KACL,8EACF;CACF,SAAS,KAAK;EACZ,OAAO,MAAM,EAAE,IAAI,GAAG,KAAK;EAC3B,OAAO,KAAK,iCAAiC;CAC/C;CACA,OAAO;AACT;AAGA,SAAgB,wBAAwB,MAAsC;CAC5E,MAAM,OAAO,KAAK;CAClB,OAAO,CAAC,EACN,KAAK,eAAe,OACpB,KAAK,UAAU,sCACf,MAAM,SAAS,EAAE,EAAE,SAAS,SAC1B,mDACF;AAEJ;AAEA,SAAgB,qBAAqB,KAAyB;CAC5D,MAAM,OAAO,IAAI;CACjB,OAAO,CAAC,CAAC,QAAQ,wBAAwB,IAAI;AAC/C"}
|
|
@@ -74,7 +74,7 @@ hashMap.set("mise", "a5a62a5b5ae6d7429c6e4b8a15a6bf8937126605d9e5f2c15751e66a4f5
|
|
|
74
74
|
hashMap.set("mix", "ead2078c33550ec8695298c053f549866e1701fa096440d4228e3e51f8f1e49c");
|
|
75
75
|
hashMap.set("nix", "95f0827f7ec9a3bfd5119534f129aad6cf26b28e99d55aec0945f08bbfff9fb1");
|
|
76
76
|
hashMap.set("nodenv", "ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8");
|
|
77
|
-
hashMap.set("npm", "
|
|
77
|
+
hashMap.set("npm", "9f4e4a953c941fb64bb4dc86bf83ecc2c91cf937c034edd65d355f9ccdf73d45");
|
|
78
78
|
hashMap.set("nuget", "54c1e149b47e4f588e99857e3e62b420f50649a868a28944a0c82a7b7fb530e7");
|
|
79
79
|
hashMap.set("nvm", "3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322");
|
|
80
80
|
hashMap.set("ocb", "032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fingerprint.generated.js","names":[],"sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','1d3568f42393d697f8f96d461b72077ee7a1044b654e87667a12f861b3083111');\nhashMap.set('ansible-galaxy','8226d47128f2018825d4d6f84794e3183eb79c706045fa7e88491edd5e64106f');\nhashMap.set('ant','2df5943cf0ed19a21b94df13729dbb925655548130caf37e3e22bebaed518e17');\nhashMap.set('argocd','5d35b1992e53130bf83b0e59a0f90ccd3a78919974c69044f306dc5d162f48ce');\nhashMap.set('asdf','0407066010ebb3d7ad4c1afe6b9a3615a3c11d64dc3cf0674cb9dfc3ea272273');\nhashMap.set('azure-pipelines','4f635b0ecd388ee266d992e8281fd40e3db2f5867d86fc1cbce72dc33a66e796');\nhashMap.set('batect','fad98996bea8626525ab925f83a6ae0ce9262c53770e7aa7cb448a1e0f1ddf21');\nhashMap.set('batect-wrapper','d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939');\nhashMap.set('bazel','c6e0ad88ea468664c3a33263baf7452d83d2d37ff09ba920e18f64ee81fd0acb');\nhashMap.set('bazel-module','b1324dc15e77012a667d33c48c14dec90aa25832593c6c47c219d57931bd1def');\nhashMap.set('bazelisk','49e6bd1fc8f03facd06e517dc64596833b90ee0a079a45cff78f0eeb3c3566f8');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','59c0503494ab1442b127914503c01b97ac17b6742b19c632292d5aa24de115cd');\nhashMap.set('bitrise','478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42');\nhashMap.set('buildkite','a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','2df1756b14b3d690e5ad1295bc1e78d8a8d7b967a552fd7b8e3274866a5acf3e');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','6731d919540235a39154d189d4c917fc4aee6b3b99194c4baf1aa9c7cc5c4f8b');\nhashMap.set('cake','65ad4f28c318675b9edb49dbd11d677f42c762b01b3f5a25dd3b2f345ecd387e');\nhashMap.set('cargo','65b1485dc3e69910bf196910acbe3c54111d8dbf9ee431bc813b9ebcef3b0f62');\nhashMap.set('cdnurl','d3edf6cdc38e92eb43ff5a2b4e8df6a6a13154cf83244725c39e28d7e6ea9177');\nhashMap.set('circleci','91cbeb33ea20f9838e2c81a1195eb806f0b38fa282bc3679f62552f20575ca85');\nhashMap.set('cloudbuild','8c0c739f7e4082bbfe8e3fdffebaf43e26f70a1314d95b306e9b93e4f4297886');\nhashMap.set('cocoapods','08310c39254947632d42058f74f755e9d3f3019c2edeeaf52b5142917085e2df');\nhashMap.set('composer','991a845be7ede562df4abfb005caf5e22cded077cec46711f8c008e468fbd633');\nhashMap.set('conan','b846e8812d65d4201dc0bf7c1d5c344e3a1edaaff6441010875171028be2f0fb');\nhashMap.set('copier','3ff250122cf49d52f23fcd3686274b0e86a99d0cb8bfa7e3e2ee3dd3b3babd56');\nhashMap.set('cpanfile','07813fec3f3c2197056500e9266a0553b9774c02f2c74d5ca2e213188c7c12d3');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deno','9fbc30b9ee7b8eb6ccbc1ef459b3c983bdb1dff38f43b51013056ce7b94ceced');\nhashMap.set('deps-edn','c87dd5e88587147ad1a78f047b814f3c4aa60d6de30d0c49d849391eeaf1b64c');\nhashMap.set('devbox','ac472ae4897dc1df85326dbd89a8c3488579ae2b180014ffcf085ce422e19dbd');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','5441af5b5abf8d347e46002d47f02f85743401bda28232f49fb7b3bbb772a4fb');\nhashMap.set('dockerfile','322b95f7e55dd78d7fe71306a6f649479eca61c60d75bb10b23604a230dbdd08');\nhashMap.set('droneci','237c8de87b9bf653fb943b56e84e99c45f6d86ae27d86e599b3f3f99c35ba8ee');\nhashMap.set('fleet','d73d5d35f10df0599a561d9c8d25f3935350407d0e3bd3a1d1545295f278912e');\nhashMap.set('flux','22de4afb277e579dcbc7ec765eca2ddc5e4b1bb39d49e762e8af026fa062c53f');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','4b633aedb8a792727f5e5d0b123a6b5a1b01429ea3153c567e2258523816205c');\nhashMap.set('github-actions','a85781cdcfe5557acfb087bafbc78cc0d61a3f0d0d011d5e1cb6a5ba0fb8760b');\nhashMap.set('gitlabci','0dec44dd398bfc5b3c19d0929bea2fef7f386c94acfd1b1d7bc2a31d81d96fd6');\nhashMap.set('gitlabci-include','ef696c478c2ac1723b3aca070ba9779be0e702fff0844054251ba0029523d0eb');\nhashMap.set('glasskube','253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70');\nhashMap.set('gleam','e7ee3392d1f900fc1299308c8e930db9288790c6d0b6c35f1a62e55683090d34');\nhashMap.set('gomod','9ab033fb37fbf3b212232019ba2d36e247acc9831f7c17818a40cb155606abfe');\nhashMap.set('gradle','65487851c4592d9f6b7889137576c4e2dd6a98b8bee6db9c999d67bfc13d5247');\nhashMap.set('gradle-wrapper','f85031e7feb4e811aa5f29c589a30f8076a078e5bbf366fb65fb28b5a47d2c44');\nhashMap.set('haskell-cabal','f232d0e883235f74ed71fd9de4a7468e5fcbda9a1af5beb56c24657f7bf2e891');\nhashMap.set('helm-requirements','4d90e5e18a380876ad48e21e1ad88ea62e25d973a1ddaa3763447fc0a9f9915b');\nhashMap.set('helm-values','b5c52c6a27d805557418c585c5d3030c95ee641d53057021f3fe060f81b6e1af');\nhashMap.set('helmfile','5bbc18bf059640191e2237408ca3b442556834e5c1c05d3317e82e7e097ae1f2');\nhashMap.set('helmsman','ef9680c612f702c7f07aea9b6e5d811e91214dcfa5755c9f3803e9528090935e');\nhashMap.set('helmv3','86799a6d3fba17b1f4c8017d308cba44a1efcf6d6290371263b8cf14be9e16ae');\nhashMap.set('hermit','f30ba5fe8ee46997c1f3d15235e6ff64c96d7ce5e439ee99f8008580348fe0da');\nhashMap.set('homeassistant-manifest','05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f');\nhashMap.set('homebrew','56ef90301143874355fd2ed25dff7c646875f701f97422d02e01d45608a88f31');\nhashMap.set('html','67c5f3c5c58e96f5dd257ba5987d900cf7fef81d667c3640e96c847b37de35a8');\nhashMap.set('jenkins','268ebfc8a1caf3edeb2192c2b1b2fa4bf18a78a3e731ba20a6c104940a5539f3');\nhashMap.set('jsonnet-bundler','f918a7f378dc207cadf291e7481006008c69623f690902ed921e1e33db270b78');\nhashMap.set('kotlin-script','99ef296792a0ca575ed31d3defb514b05a58083dc01c52ea0890c69d867ba1dd');\nhashMap.set('kubernetes','321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de');\nhashMap.set('kustomize','c6ee547378d5c5619a0fe94be35f9838e0f006b4807a896e9caefefa20efacf7');\nhashMap.set('leiningen','133fca2c3423f53f2ccc22518153ddbcafbf0f4812376c77e952eb3d24d81f85');\nhashMap.set('maven','2bf7b65d51718daf3eec4f30c0fc7f2f045f4f8f24862bebe17c2174abb606b9');\nhashMap.set('maven-wrapper','976ed8a59cf43b0c765b1a49ebc5669478e78278cf48f4ce3d0deb49647d10e3');\nhashMap.set('meteor','4a93a326b27bedfe52118e27e06f39fecd7c55bd4cd7fccec4cb120cac14cec4');\nhashMap.set('mint','248fe4f1ea5c985921c286785792c97e06fc41f402b2d45df82f6aecd17f710e');\nhashMap.set('mise','a5a62a5b5ae6d7429c6e4b8a15a6bf8937126605d9e5f2c15751e66a4f5b3418');\nhashMap.set('mix','ead2078c33550ec8695298c053f549866e1701fa096440d4228e3e51f8f1e49c');\nhashMap.set('nix','95f0827f7ec9a3bfd5119534f129aad6cf26b28e99d55aec0945f08bbfff9fb1');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','8c173b17fcce19d1be44d0d548809de5fb3d7e45adf3ce5fd6d7ebe699e94d6c');\nhashMap.set('nuget','54c1e149b47e4f588e99857e3e62b420f50649a868a28944a0c82a7b7fb530e7');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','32233a1a8a2725699d7448ba438e3d0b78141f7799cd2b588de278d41e26ed10');\nhashMap.set('pep621','fffd093eaf6de3cab7b2f6b57e57715aa240fcd958954f31fbc47f18e1730a4d');\nhashMap.set('pep723','b96683163de63ed93207ec0538066705b1e58a1cd5b8bd11c63fc28b26bddba1');\nhashMap.set('pip-compile','fd26981e4e865b8fece492ff78faf34701af62bb8f39397445780eb81b66b7db');\nhashMap.set('pip_requirements','edaf5ec21e63fd252e6737b294f215d59068b0bba1dea92b9d4510dbb872c837');\nhashMap.set('pip_setup','0175fe550c19d9bd31c978bd83fdc088cb40fcacd5d6751f640164274ae64e61');\nhashMap.set('pipenv','1d0af710667f6dce377feae9aa238b21fe5e0e75e75758a70f5e9758c6cb6678');\nhashMap.set('pixi','7d183aaae4370a0c62496bbff60ad12fd4dd46822630541f712f437dcea021e1');\nhashMap.set('poetry','0211739556f8193c70fa69cbf66c60e688042fd7dc7a2fe08f9f328b35ad1f82');\nhashMap.set('pre-commit','a6a6e847fdb0f56650e66ef7d69e68de752b390913f79ac31d1a7ec5955d03da');\nhashMap.set('proto','412053d4550026b4ace490b46e970915b87ec1abf0b0a0c6c8c58ccf1fc16843');\nhashMap.set('pub','aad0dd6524158fda5345d75662f337b275c6c46b29f051ba94201d42c22b0da8');\nhashMap.set('puppet','ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45');\nhashMap.set('pyenv','9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182');\nhashMap.set('quadlet','e355e13e104351a8b3516a8e272fc5f7e625c9f39b0c492ba27283a36227c2d4');\nhashMap.set('renovate-config','2a4e4fb671aed5d0c900b8d54c31bfef46ca36d0f4e16b00ff73377b9c09fb69');\nhashMap.set('ruby-version','2db2140d9eee8c555e729a4de0396fa2d78846d3149890ee12fa515bd654be97');\nhashMap.set('runtime-version','b582b168c0cc595e39010feb10f4b97a82683eb269e9598216fbb11cc186e160');\nhashMap.set('rust-toolchain','e957f1f1563af4e5fbd1c552ca15632b7808d9d2e51ec0da6022a1f84372caec');\nhashMap.set('sbt','74125bd9c76a5724092258cd1dee1ea99fc0d735b463a2b64fedc5d950efde2a');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','7dea08c5708625e753bd56918bc214df7fb4d8543a26e936926a21ab43b5f785');\nhashMap.set('sveltos','05b3158e88771ed4629e171592cf4f1bf0ff342f8aeae89be0b340c630cc6d8e');\nhashMap.set('swift','56cdc6fe4cd00519f953459f94323c71677f6bde007537eef891154fb8696db1');\nhashMap.set('tekton','fdc5b9b5edec2a90cda2f858f3ebc532aa8efb1187d1e0b7c89b07796e9cb6cd');\nhashMap.set('terraform','374c6e681a1b2a40c6d914a94485f15e68051f651972cd2dd3415ed4725eb74c');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','142c3f0549c4152297615b5bbf3a78ba8f7ce6a0cebcea63b81e9815dca40494');\nhashMap.set('terragrunt-version','eea6087b33717d22ede2fc68c2f64df8390b75abe82110ed831a180648feb51d');\nhashMap.set('tflint-plugin','4a975f0cc1aa22cd258aa835de3dc98d7a5c0d1cee0a1092324338968e08a827');\nhashMap.set('travis','bb482a0195cd009ec3896a6227bb95617f5c84bedb518c7d971e50c62235d9ca');\nhashMap.set('typst','d080a79fbd961c6e21fcc505d544b7e0ff2126142acb1dcabdf6abbcd9339248');\nhashMap.set('unity3d','f13e25e115e3443f4e16cf31578acffa78fb1a5e23339680a92d8d6de6052920');\nhashMap.set('velaci','fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac09af7de');\nhashMap.set('vendir','dfd7b905577b362093ce72e6ee597308f97c83678ddb15d6455a1627969b8b7d');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('xcodegen','dad511d88a9ce1dbdde8b9731f3da7f2bdaa4ca8a083294ee58d56da62ab1683');\nhashMap.set('jsonata','46efac5bda6737cccacf2d89ce1d384ee410876c5557b4c02be2275b7c1d862d');\nhashMap.set('regex','dbe6889ea021a05127fed06226d73366fdada2ae577147a5c027996fd325416e');"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fingerprint.generated.js","names":[],"sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','1d3568f42393d697f8f96d461b72077ee7a1044b654e87667a12f861b3083111');\nhashMap.set('ansible-galaxy','8226d47128f2018825d4d6f84794e3183eb79c706045fa7e88491edd5e64106f');\nhashMap.set('ant','2df5943cf0ed19a21b94df13729dbb925655548130caf37e3e22bebaed518e17');\nhashMap.set('argocd','5d35b1992e53130bf83b0e59a0f90ccd3a78919974c69044f306dc5d162f48ce');\nhashMap.set('asdf','0407066010ebb3d7ad4c1afe6b9a3615a3c11d64dc3cf0674cb9dfc3ea272273');\nhashMap.set('azure-pipelines','4f635b0ecd388ee266d992e8281fd40e3db2f5867d86fc1cbce72dc33a66e796');\nhashMap.set('batect','fad98996bea8626525ab925f83a6ae0ce9262c53770e7aa7cb448a1e0f1ddf21');\nhashMap.set('batect-wrapper','d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939');\nhashMap.set('bazel','c6e0ad88ea468664c3a33263baf7452d83d2d37ff09ba920e18f64ee81fd0acb');\nhashMap.set('bazel-module','b1324dc15e77012a667d33c48c14dec90aa25832593c6c47c219d57931bd1def');\nhashMap.set('bazelisk','49e6bd1fc8f03facd06e517dc64596833b90ee0a079a45cff78f0eeb3c3566f8');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','59c0503494ab1442b127914503c01b97ac17b6742b19c632292d5aa24de115cd');\nhashMap.set('bitrise','478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42');\nhashMap.set('buildkite','a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','2df1756b14b3d690e5ad1295bc1e78d8a8d7b967a552fd7b8e3274866a5acf3e');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','6731d919540235a39154d189d4c917fc4aee6b3b99194c4baf1aa9c7cc5c4f8b');\nhashMap.set('cake','65ad4f28c318675b9edb49dbd11d677f42c762b01b3f5a25dd3b2f345ecd387e');\nhashMap.set('cargo','65b1485dc3e69910bf196910acbe3c54111d8dbf9ee431bc813b9ebcef3b0f62');\nhashMap.set('cdnurl','d3edf6cdc38e92eb43ff5a2b4e8df6a6a13154cf83244725c39e28d7e6ea9177');\nhashMap.set('circleci','91cbeb33ea20f9838e2c81a1195eb806f0b38fa282bc3679f62552f20575ca85');\nhashMap.set('cloudbuild','8c0c739f7e4082bbfe8e3fdffebaf43e26f70a1314d95b306e9b93e4f4297886');\nhashMap.set('cocoapods','08310c39254947632d42058f74f755e9d3f3019c2edeeaf52b5142917085e2df');\nhashMap.set('composer','991a845be7ede562df4abfb005caf5e22cded077cec46711f8c008e468fbd633');\nhashMap.set('conan','b846e8812d65d4201dc0bf7c1d5c344e3a1edaaff6441010875171028be2f0fb');\nhashMap.set('copier','3ff250122cf49d52f23fcd3686274b0e86a99d0cb8bfa7e3e2ee3dd3b3babd56');\nhashMap.set('cpanfile','07813fec3f3c2197056500e9266a0553b9774c02f2c74d5ca2e213188c7c12d3');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deno','9fbc30b9ee7b8eb6ccbc1ef459b3c983bdb1dff38f43b51013056ce7b94ceced');\nhashMap.set('deps-edn','c87dd5e88587147ad1a78f047b814f3c4aa60d6de30d0c49d849391eeaf1b64c');\nhashMap.set('devbox','ac472ae4897dc1df85326dbd89a8c3488579ae2b180014ffcf085ce422e19dbd');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','5441af5b5abf8d347e46002d47f02f85743401bda28232f49fb7b3bbb772a4fb');\nhashMap.set('dockerfile','322b95f7e55dd78d7fe71306a6f649479eca61c60d75bb10b23604a230dbdd08');\nhashMap.set('droneci','237c8de87b9bf653fb943b56e84e99c45f6d86ae27d86e599b3f3f99c35ba8ee');\nhashMap.set('fleet','d73d5d35f10df0599a561d9c8d25f3935350407d0e3bd3a1d1545295f278912e');\nhashMap.set('flux','22de4afb277e579dcbc7ec765eca2ddc5e4b1bb39d49e762e8af026fa062c53f');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','4b633aedb8a792727f5e5d0b123a6b5a1b01429ea3153c567e2258523816205c');\nhashMap.set('github-actions','a85781cdcfe5557acfb087bafbc78cc0d61a3f0d0d011d5e1cb6a5ba0fb8760b');\nhashMap.set('gitlabci','0dec44dd398bfc5b3c19d0929bea2fef7f386c94acfd1b1d7bc2a31d81d96fd6');\nhashMap.set('gitlabci-include','ef696c478c2ac1723b3aca070ba9779be0e702fff0844054251ba0029523d0eb');\nhashMap.set('glasskube','253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70');\nhashMap.set('gleam','e7ee3392d1f900fc1299308c8e930db9288790c6d0b6c35f1a62e55683090d34');\nhashMap.set('gomod','9ab033fb37fbf3b212232019ba2d36e247acc9831f7c17818a40cb155606abfe');\nhashMap.set('gradle','65487851c4592d9f6b7889137576c4e2dd6a98b8bee6db9c999d67bfc13d5247');\nhashMap.set('gradle-wrapper','f85031e7feb4e811aa5f29c589a30f8076a078e5bbf366fb65fb28b5a47d2c44');\nhashMap.set('haskell-cabal','f232d0e883235f74ed71fd9de4a7468e5fcbda9a1af5beb56c24657f7bf2e891');\nhashMap.set('helm-requirements','4d90e5e18a380876ad48e21e1ad88ea62e25d973a1ddaa3763447fc0a9f9915b');\nhashMap.set('helm-values','b5c52c6a27d805557418c585c5d3030c95ee641d53057021f3fe060f81b6e1af');\nhashMap.set('helmfile','5bbc18bf059640191e2237408ca3b442556834e5c1c05d3317e82e7e097ae1f2');\nhashMap.set('helmsman','ef9680c612f702c7f07aea9b6e5d811e91214dcfa5755c9f3803e9528090935e');\nhashMap.set('helmv3','86799a6d3fba17b1f4c8017d308cba44a1efcf6d6290371263b8cf14be9e16ae');\nhashMap.set('hermit','f30ba5fe8ee46997c1f3d15235e6ff64c96d7ce5e439ee99f8008580348fe0da');\nhashMap.set('homeassistant-manifest','05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f');\nhashMap.set('homebrew','56ef90301143874355fd2ed25dff7c646875f701f97422d02e01d45608a88f31');\nhashMap.set('html','67c5f3c5c58e96f5dd257ba5987d900cf7fef81d667c3640e96c847b37de35a8');\nhashMap.set('jenkins','268ebfc8a1caf3edeb2192c2b1b2fa4bf18a78a3e731ba20a6c104940a5539f3');\nhashMap.set('jsonnet-bundler','f918a7f378dc207cadf291e7481006008c69623f690902ed921e1e33db270b78');\nhashMap.set('kotlin-script','99ef296792a0ca575ed31d3defb514b05a58083dc01c52ea0890c69d867ba1dd');\nhashMap.set('kubernetes','321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de');\nhashMap.set('kustomize','c6ee547378d5c5619a0fe94be35f9838e0f006b4807a896e9caefefa20efacf7');\nhashMap.set('leiningen','133fca2c3423f53f2ccc22518153ddbcafbf0f4812376c77e952eb3d24d81f85');\nhashMap.set('maven','2bf7b65d51718daf3eec4f30c0fc7f2f045f4f8f24862bebe17c2174abb606b9');\nhashMap.set('maven-wrapper','976ed8a59cf43b0c765b1a49ebc5669478e78278cf48f4ce3d0deb49647d10e3');\nhashMap.set('meteor','4a93a326b27bedfe52118e27e06f39fecd7c55bd4cd7fccec4cb120cac14cec4');\nhashMap.set('mint','248fe4f1ea5c985921c286785792c97e06fc41f402b2d45df82f6aecd17f710e');\nhashMap.set('mise','a5a62a5b5ae6d7429c6e4b8a15a6bf8937126605d9e5f2c15751e66a4f5b3418');\nhashMap.set('mix','ead2078c33550ec8695298c053f549866e1701fa096440d4228e3e51f8f1e49c');\nhashMap.set('nix','95f0827f7ec9a3bfd5119534f129aad6cf26b28e99d55aec0945f08bbfff9fb1');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','9f4e4a953c941fb64bb4dc86bf83ecc2c91cf937c034edd65d355f9ccdf73d45');\nhashMap.set('nuget','54c1e149b47e4f588e99857e3e62b420f50649a868a28944a0c82a7b7fb530e7');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','32233a1a8a2725699d7448ba438e3d0b78141f7799cd2b588de278d41e26ed10');\nhashMap.set('pep621','fffd093eaf6de3cab7b2f6b57e57715aa240fcd958954f31fbc47f18e1730a4d');\nhashMap.set('pep723','b96683163de63ed93207ec0538066705b1e58a1cd5b8bd11c63fc28b26bddba1');\nhashMap.set('pip-compile','fd26981e4e865b8fece492ff78faf34701af62bb8f39397445780eb81b66b7db');\nhashMap.set('pip_requirements','edaf5ec21e63fd252e6737b294f215d59068b0bba1dea92b9d4510dbb872c837');\nhashMap.set('pip_setup','0175fe550c19d9bd31c978bd83fdc088cb40fcacd5d6751f640164274ae64e61');\nhashMap.set('pipenv','1d0af710667f6dce377feae9aa238b21fe5e0e75e75758a70f5e9758c6cb6678');\nhashMap.set('pixi','7d183aaae4370a0c62496bbff60ad12fd4dd46822630541f712f437dcea021e1');\nhashMap.set('poetry','0211739556f8193c70fa69cbf66c60e688042fd7dc7a2fe08f9f328b35ad1f82');\nhashMap.set('pre-commit','a6a6e847fdb0f56650e66ef7d69e68de752b390913f79ac31d1a7ec5955d03da');\nhashMap.set('proto','412053d4550026b4ace490b46e970915b87ec1abf0b0a0c6c8c58ccf1fc16843');\nhashMap.set('pub','aad0dd6524158fda5345d75662f337b275c6c46b29f051ba94201d42c22b0da8');\nhashMap.set('puppet','ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45');\nhashMap.set('pyenv','9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182');\nhashMap.set('quadlet','e355e13e104351a8b3516a8e272fc5f7e625c9f39b0c492ba27283a36227c2d4');\nhashMap.set('renovate-config','2a4e4fb671aed5d0c900b8d54c31bfef46ca36d0f4e16b00ff73377b9c09fb69');\nhashMap.set('ruby-version','2db2140d9eee8c555e729a4de0396fa2d78846d3149890ee12fa515bd654be97');\nhashMap.set('runtime-version','b582b168c0cc595e39010feb10f4b97a82683eb269e9598216fbb11cc186e160');\nhashMap.set('rust-toolchain','e957f1f1563af4e5fbd1c552ca15632b7808d9d2e51ec0da6022a1f84372caec');\nhashMap.set('sbt','74125bd9c76a5724092258cd1dee1ea99fc0d735b463a2b64fedc5d950efde2a');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','7dea08c5708625e753bd56918bc214df7fb4d8543a26e936926a21ab43b5f785');\nhashMap.set('sveltos','05b3158e88771ed4629e171592cf4f1bf0ff342f8aeae89be0b340c630cc6d8e');\nhashMap.set('swift','56cdc6fe4cd00519f953459f94323c71677f6bde007537eef891154fb8696db1');\nhashMap.set('tekton','fdc5b9b5edec2a90cda2f858f3ebc532aa8efb1187d1e0b7c89b07796e9cb6cd');\nhashMap.set('terraform','374c6e681a1b2a40c6d914a94485f15e68051f651972cd2dd3415ed4725eb74c');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','142c3f0549c4152297615b5bbf3a78ba8f7ce6a0cebcea63b81e9815dca40494');\nhashMap.set('terragrunt-version','eea6087b33717d22ede2fc68c2f64df8390b75abe82110ed831a180648feb51d');\nhashMap.set('tflint-plugin','4a975f0cc1aa22cd258aa835de3dc98d7a5c0d1cee0a1092324338968e08a827');\nhashMap.set('travis','bb482a0195cd009ec3896a6227bb95617f5c84bedb518c7d971e50c62235d9ca');\nhashMap.set('typst','d080a79fbd961c6e21fcc505d544b7e0ff2126142acb1dcabdf6abbcd9339248');\nhashMap.set('unity3d','f13e25e115e3443f4e16cf31578acffa78fb1a5e23339680a92d8d6de6052920');\nhashMap.set('velaci','fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac09af7de');\nhashMap.set('vendir','dfd7b905577b362093ce72e6ee597308f97c83678ddb15d6455a1627969b8b7d');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('xcodegen','dad511d88a9ce1dbdde8b9731f3da7f2bdaa4ca8a083294ee58d56da62ab1683');\nhashMap.set('jsonata','46efac5bda6737cccacf2d89ce1d384ee410876c5557b4c02be2275b7c1d862d');\nhashMap.set('regex','dbe6889ea021a05127fed06226d73366fdada2ae577147a5c027996fd325416e');"],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { PnpmWorkspaceFile } from "../schema.js";
|
|
|
5
5
|
import { resolveNpmrc } from "../npmrc.js";
|
|
6
6
|
import { getExtractedConstraints } from "./common/dependency.js";
|
|
7
7
|
import { extractPackageJson, hasPackageManager } from "./common/package-file.js";
|
|
8
|
-
import { extractPnpmWorkspaceFile } from "./pnpm.js";
|
|
8
|
+
import { applyPnpmWorkspaceRegistries, extractPnpmWorkspaceFile } from "./pnpm.js";
|
|
9
9
|
import { extractYarnCatalogs, isZeroInstall } from "./yarn.js";
|
|
10
10
|
import { postExtract } from "./post/index.js";
|
|
11
11
|
import { loadConfigFromLegacyYarnrc, loadConfigFromYarnrcYml, resolveRegistryUrl } from "./yarnrc.js";
|
|
@@ -54,6 +54,20 @@ async function extractPackageFile(content, packageFile, config) {
|
|
|
54
54
|
const legacyYarnrcFileName = await findLocalSiblingOrParent(packageFile, ".yarnrc");
|
|
55
55
|
const repoLegacyYarnrc = legacyYarnrcFileName ? await readLocalFile(legacyYarnrcFileName, "utf8") : null;
|
|
56
56
|
if (isString(repoLegacyYarnrc) && repoLegacyYarnrc.trim().length > 0) yarnrcConfig = loadConfigFromLegacyYarnrc(repoLegacyYarnrc);
|
|
57
|
+
let pnpmWorkspaceRegistry;
|
|
58
|
+
let pnpmWorkspaceRegistries;
|
|
59
|
+
const pnpmWorkspaceYamlFileName = await findLocalSiblingOrParent(packageFile, "pnpm-workspace.yaml");
|
|
60
|
+
const repoPnpmWorkspaceYaml = pnpmWorkspaceYamlFileName ? await readLocalFile(pnpmWorkspaceYamlFileName, "utf8") : null;
|
|
61
|
+
if (isNonEmptyStringAndNotWhitespace(repoPnpmWorkspaceYaml)) {
|
|
62
|
+
const parsed = await PnpmWorkspaceFile.safeParseAsync(repoPnpmWorkspaceYaml);
|
|
63
|
+
if (parsed.success) {
|
|
64
|
+
pnpmWorkspaceRegistry = parsed.data.registry;
|
|
65
|
+
pnpmWorkspaceRegistries = parsed.data.registries;
|
|
66
|
+
} else logger.debug({
|
|
67
|
+
packageFile: pnpmWorkspaceYamlFileName,
|
|
68
|
+
err: parsed.error
|
|
69
|
+
}, "Failed to parse pnpm-workspace.yaml");
|
|
70
|
+
}
|
|
57
71
|
if (res.deps.length === 0) {
|
|
58
72
|
logger.debug("Package file has no deps");
|
|
59
73
|
if (!(!!res.managerData?.packageJsonName || !!res.packageFileVersion || !!npmrc || workspacesPackages)) {
|
|
@@ -75,6 +89,7 @@ async function extractPackageFile(content, packageFile, config) {
|
|
|
75
89
|
if (registryUrlFromYarnrcConfig && dep.datasource === NpmDatasource.id) dep.registryUrls = [registryUrlFromYarnrcConfig];
|
|
76
90
|
}
|
|
77
91
|
}
|
|
92
|
+
applyPnpmWorkspaceRegistries(res.deps, pnpmWorkspaceRegistries, pnpmWorkspaceRegistry);
|
|
78
93
|
return {
|
|
79
94
|
...res,
|
|
80
95
|
npmrc,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../lib/modules/manager/npm/extract/index.ts"],"sourcesContent":["import {\n isArray,\n isNonEmptyObject,\n isNonEmptyStringAndNotWhitespace,\n isString,\n} from '@sindresorhus/is';\nimport upath from 'upath';\nimport { logger } from '../../../../logger/index.ts';\nimport {\n findLocalSiblingOrParent,\n getSiblingFileName,\n readLocalFile,\n} from '../../../../util/fs/index.ts';\nimport { NpmDatasource } from '../../../datasource/npm/index.ts';\n\nimport type {\n ExtractConfig,\n PackageFile,\n PackageFileContent,\n} from '../../types.ts';\nimport { resolveNpmrc } from '../npmrc.ts';\nimport { PnpmWorkspaceFile, type YarnConfig } from '../schema.ts';\nimport type { NpmLockFiles, NpmManagerData } from '../types.ts';\nimport { getExtractedConstraints } from './common/dependency.ts';\nimport {\n extractPackageJson,\n hasPackageManager,\n} from './common/package-file.ts';\nimport { extractPnpmWorkspaceFile } from './pnpm.ts';\nimport { postExtract } from './post/index.ts';\nimport type { NpmPackage } from './types.ts';\nimport { extractYarnCatalogs, isZeroInstall } from './yarn.ts';\nimport {\n loadConfigFromLegacyYarnrc,\n loadConfigFromYarnrcYml,\n resolveRegistryUrl,\n} from './yarnrc.ts';\n\nfunction hasMultipleLockFiles(lockFiles: NpmLockFiles): boolean {\n return Object.values(lockFiles).filter(isString).length > 1;\n}\n\nexport async function extractPackageFile(\n content: string,\n packageFile: string,\n config: ExtractConfig,\n): Promise<PackageFileContent<NpmManagerData> | null> {\n logger.trace(`npm.extractPackageFile(${packageFile})`);\n logger.trace({ content });\n let packageJson: NpmPackage;\n try {\n packageJson = JSON.parse(content);\n } catch {\n logger.debug({ packageFile }, `Invalid JSON`);\n return null;\n }\n\n const res = extractPackageJson(packageJson, packageFile);\n if (!res) {\n return null;\n }\n\n let workspacesPackages: string[] | undefined;\n if (isArray(packageJson.workspaces)) {\n workspacesPackages = packageJson.workspaces;\n } else {\n workspacesPackages = packageJson.workspaces?.packages;\n }\n\n const lockFiles: NpmLockFiles = {\n yarnLock: 'yarn.lock',\n packageLock: 'package-lock.json',\n shrinkwrapJson: 'npm-shrinkwrap.json',\n pnpmShrinkwrap: 'pnpm-lock.yaml',\n };\n\n for (const [key, val] of Object.entries(lockFiles) as [\n 'yarnLock' | 'packageLock' | 'shrinkwrapJson' | 'pnpmShrinkwrap',\n string,\n ][]) {\n const filePath = getSiblingFileName(packageFile, val);\n if (await readLocalFile(filePath, 'utf8')) {\n lockFiles[key] = filePath;\n } else {\n lockFiles[key] = undefined;\n }\n }\n lockFiles.npmLock = lockFiles.packageLock ?? lockFiles.shrinkwrapJson;\n delete lockFiles.packageLock;\n delete lockFiles.shrinkwrapJson;\n\n if (hasMultipleLockFiles(lockFiles)) {\n logger.warn(\n 'Updating multiple npm lock files is deprecated and support will be removed in future versions.',\n );\n }\n\n const { npmrc, npmrcFileName } = await resolveNpmrc(packageFile, config);\n\n const yarnrcYmlFileName = await findLocalSiblingOrParent(\n packageFile,\n '.yarnrc.yml',\n );\n const yarnZeroInstall = yarnrcYmlFileName\n ? await isZeroInstall(yarnrcYmlFileName)\n : false;\n\n let yarnrcConfig: YarnConfig | null = null;\n const repoYarnrcYml = yarnrcYmlFileName\n ? await readLocalFile(yarnrcYmlFileName, 'utf8')\n : null;\n if (isString(repoYarnrcYml) && repoYarnrcYml.trim().length > 0) {\n yarnrcConfig = loadConfigFromYarnrcYml(repoYarnrcYml);\n }\n\n const legacyYarnrcFileName = await findLocalSiblingOrParent(\n packageFile,\n '.yarnrc',\n );\n const repoLegacyYarnrc = legacyYarnrcFileName\n ? await readLocalFile(legacyYarnrcFileName, 'utf8')\n : null;\n if (isString(repoLegacyYarnrc) && repoLegacyYarnrc.trim().length > 0) {\n yarnrcConfig = loadConfigFromLegacyYarnrc(repoLegacyYarnrc);\n }\n\n if (res.deps.length === 0) {\n logger.debug('Package file has no deps');\n if (\n !(\n !!res.managerData?.packageJsonName ||\n !!res.packageFileVersion ||\n !!npmrc ||\n workspacesPackages\n )\n ) {\n logger.debug('Skipping file');\n return null;\n }\n }\n let skipInstalls = config.skipInstalls;\n if (skipInstalls === null) {\n const hasFancyRefs = !!res.deps.some(\n (dep) =>\n !!dep.currentValue?.startsWith('file:') ||\n !!dep.currentValue?.startsWith('npm:'),\n );\n if ((hasFancyRefs && !!lockFiles.npmLock) || yarnZeroInstall) {\n // https://github.com/npm/cli/issues/1432\n // Explanation:\n // - npm install --package-lock-only is buggy for transitive deps in file: and npm: references\n // - So we set skipInstalls to false if file: or npm: refs are found *and* the user hasn't explicitly set the value already\n // - Also, do not skip install if Yarn zero-install is used\n logger.debug('Automatically setting skipInstalls to false');\n skipInstalls = false;\n } else {\n skipInstalls = true;\n }\n }\n\n const extractedConstraints = getExtractedConstraints(res.deps);\n\n if (yarnrcConfig) {\n for (const dep of res.deps) {\n // v8 ignore else -- TODO: add tests #40625\n if (dep.depName) {\n const registryUrlFromYarnrcConfig = resolveRegistryUrl(\n dep.packageName ?? dep.depName,\n yarnrcConfig,\n );\n if (\n registryUrlFromYarnrcConfig &&\n dep.datasource === NpmDatasource.id\n ) {\n dep.registryUrls = [registryUrlFromYarnrcConfig];\n }\n }\n }\n }\n\n return {\n ...res,\n npmrc,\n managerData: {\n ...res.managerData,\n ...lockFiles,\n yarnZeroInstall,\n hasPackageManager:\n isNonEmptyStringAndNotWhitespace(packageJson.packageManager) ||\n isNonEmptyObject(packageJson.devEngines?.packageManager),\n workspacesPackages,\n npmrcFileName, // store npmrc file name so we can later tell if it came from the workspace or not\n },\n skipInstalls,\n extractedConstraints,\n };\n}\n\nexport async function extractAllPackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n): Promise<PackageFile<NpmManagerData>[]> {\n const npmFiles: PackageFile<NpmManagerData>[] = [];\n for (const packageFile of packageFiles) {\n const content = await readLocalFile(packageFile, 'utf8');\n if (content) {\n // pnpm workspace files are their own package file, defined via managerFilePatterns.\n if (packageFile.endsWith('pnpm-workspace.yaml')) {\n logger.trace(\n { packageFile },\n `Extracting as a pnpm-workspace.yaml file`,\n );\n const parsedPnpmWorkspaceYaml =\n await PnpmWorkspaceFile.safeParseAsync(content);\n if (parsedPnpmWorkspaceYaml.success) {\n logger.trace(\n { packageFile },\n `Extracting file as a pnpm workspace YAML file`,\n );\n const deps = await extractPnpmWorkspaceFile(\n parsedPnpmWorkspaceYaml.data,\n packageFile,\n );\n // v8 ignore else -- TODO: add test #40625\n if (deps) {\n npmFiles.push({\n ...deps,\n packageFile,\n });\n }\n } else {\n logger.warn(\n { packageFile, err: parsedPnpmWorkspaceYaml.error },\n `Failed to parse pnpm-workspace.yaml file`,\n );\n }\n } else {\n if (packageFile.endsWith('json')) {\n logger.trace({ packageFile }, `Extracting as a package.json file`);\n\n const deps = await extractPackageFile(content, packageFile, config);\n // v8 ignore else -- TODO: add tests #40625\n if (deps) {\n npmFiles.push({\n ...deps,\n packageFile,\n });\n }\n } else {\n logger.trace({ packageFile }, `Extracting as a .yarnrc.yml file`);\n\n const yarnConfig = loadConfigFromYarnrcYml(content);\n\n // v8 ignore else -- TODO: add tests #40625\n if (yarnConfig?.catalogs || yarnConfig?.catalog) {\n const hasPackageManagerResult = await hasPackageManager(\n upath.dirname(packageFile),\n );\n const catalogsDeps = await extractYarnCatalogs(\n { catalog: yarnConfig.catalog, catalogs: yarnConfig.catalogs },\n packageFile,\n hasPackageManagerResult,\n );\n // v8 ignore else -- TODO: add tests #40625\n if (catalogsDeps) {\n npmFiles.push({\n ...catalogsDeps,\n packageFile,\n });\n }\n }\n }\n }\n } else {\n logger.debug({ packageFile }, `No content found`);\n }\n }\n\n await postExtract(npmFiles);\n return npmFiles;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../lib/modules/manager/npm/extract/index.ts"],"sourcesContent":["import {\n isArray,\n isNonEmptyObject,\n isNonEmptyStringAndNotWhitespace,\n isString,\n} from '@sindresorhus/is';\nimport upath from 'upath';\nimport { logger } from '../../../../logger/index.ts';\nimport {\n findLocalSiblingOrParent,\n getSiblingFileName,\n readLocalFile,\n} from '../../../../util/fs/index.ts';\nimport { NpmDatasource } from '../../../datasource/npm/index.ts';\n\nimport type {\n ExtractConfig,\n PackageFile,\n PackageFileContent,\n} from '../../types.ts';\nimport { resolveNpmrc } from '../npmrc.ts';\nimport { PnpmWorkspaceFile, type YarnConfig } from '../schema.ts';\nimport type { NpmLockFiles, NpmManagerData } from '../types.ts';\nimport { getExtractedConstraints } from './common/dependency.ts';\nimport {\n extractPackageJson,\n hasPackageManager,\n} from './common/package-file.ts';\nimport {\n applyPnpmWorkspaceRegistries,\n extractPnpmWorkspaceFile,\n} from './pnpm.ts';\nimport { postExtract } from './post/index.ts';\nimport type { NpmPackage } from './types.ts';\nimport { extractYarnCatalogs, isZeroInstall } from './yarn.ts';\nimport {\n loadConfigFromLegacyYarnrc,\n loadConfigFromYarnrcYml,\n resolveRegistryUrl,\n} from './yarnrc.ts';\n\nfunction hasMultipleLockFiles(lockFiles: NpmLockFiles): boolean {\n return Object.values(lockFiles).filter(isString).length > 1;\n}\n\nexport async function extractPackageFile(\n content: string,\n packageFile: string,\n config: ExtractConfig,\n): Promise<PackageFileContent<NpmManagerData> | null> {\n logger.trace(`npm.extractPackageFile(${packageFile})`);\n logger.trace({ content });\n let packageJson: NpmPackage;\n try {\n packageJson = JSON.parse(content);\n } catch {\n logger.debug({ packageFile }, `Invalid JSON`);\n return null;\n }\n\n const res = extractPackageJson(packageJson, packageFile);\n if (!res) {\n return null;\n }\n\n let workspacesPackages: string[] | undefined;\n if (isArray(packageJson.workspaces)) {\n workspacesPackages = packageJson.workspaces;\n } else {\n workspacesPackages = packageJson.workspaces?.packages;\n }\n\n const lockFiles: NpmLockFiles = {\n yarnLock: 'yarn.lock',\n packageLock: 'package-lock.json',\n shrinkwrapJson: 'npm-shrinkwrap.json',\n pnpmShrinkwrap: 'pnpm-lock.yaml',\n };\n\n for (const [key, val] of Object.entries(lockFiles) as [\n 'yarnLock' | 'packageLock' | 'shrinkwrapJson' | 'pnpmShrinkwrap',\n string,\n ][]) {\n const filePath = getSiblingFileName(packageFile, val);\n if (await readLocalFile(filePath, 'utf8')) {\n lockFiles[key] = filePath;\n } else {\n lockFiles[key] = undefined;\n }\n }\n lockFiles.npmLock = lockFiles.packageLock ?? lockFiles.shrinkwrapJson;\n delete lockFiles.packageLock;\n delete lockFiles.shrinkwrapJson;\n\n if (hasMultipleLockFiles(lockFiles)) {\n logger.warn(\n 'Updating multiple npm lock files is deprecated and support will be removed in future versions.',\n );\n }\n\n const { npmrc, npmrcFileName } = await resolveNpmrc(packageFile, config);\n\n const yarnrcYmlFileName = await findLocalSiblingOrParent(\n packageFile,\n '.yarnrc.yml',\n );\n const yarnZeroInstall = yarnrcYmlFileName\n ? await isZeroInstall(yarnrcYmlFileName)\n : false;\n\n let yarnrcConfig: YarnConfig | null = null;\n const repoYarnrcYml = yarnrcYmlFileName\n ? await readLocalFile(yarnrcYmlFileName, 'utf8')\n : null;\n if (isString(repoYarnrcYml) && repoYarnrcYml.trim().length > 0) {\n yarnrcConfig = loadConfigFromYarnrcYml(repoYarnrcYml);\n }\n\n const legacyYarnrcFileName = await findLocalSiblingOrParent(\n packageFile,\n '.yarnrc',\n );\n const repoLegacyYarnrc = legacyYarnrcFileName\n ? await readLocalFile(legacyYarnrcFileName, 'utf8')\n : null;\n if (isString(repoLegacyYarnrc) && repoLegacyYarnrc.trim().length > 0) {\n yarnrcConfig = loadConfigFromLegacyYarnrc(repoLegacyYarnrc);\n }\n\n let pnpmWorkspaceRegistry: string | undefined;\n let pnpmWorkspaceRegistries: Record<string, string> | undefined;\n const pnpmWorkspaceYamlFileName = await findLocalSiblingOrParent(\n packageFile,\n 'pnpm-workspace.yaml',\n );\n const repoPnpmWorkspaceYaml = pnpmWorkspaceYamlFileName\n ? await readLocalFile(pnpmWorkspaceYamlFileName, 'utf8')\n : null;\n if (isNonEmptyStringAndNotWhitespace(repoPnpmWorkspaceYaml)) {\n const parsed = await PnpmWorkspaceFile.safeParseAsync(\n repoPnpmWorkspaceYaml,\n );\n if (parsed.success) {\n pnpmWorkspaceRegistry = parsed.data.registry;\n pnpmWorkspaceRegistries = parsed.data.registries;\n } else {\n logger.debug(\n { packageFile: pnpmWorkspaceYamlFileName, err: parsed.error },\n 'Failed to parse pnpm-workspace.yaml',\n );\n }\n }\n\n if (res.deps.length === 0) {\n logger.debug('Package file has no deps');\n if (\n !(\n !!res.managerData?.packageJsonName ||\n !!res.packageFileVersion ||\n !!npmrc ||\n workspacesPackages\n )\n ) {\n logger.debug('Skipping file');\n return null;\n }\n }\n let skipInstalls = config.skipInstalls;\n if (skipInstalls === null) {\n const hasFancyRefs = !!res.deps.some(\n (dep) =>\n !!dep.currentValue?.startsWith('file:') ||\n !!dep.currentValue?.startsWith('npm:'),\n );\n if ((hasFancyRefs && !!lockFiles.npmLock) || yarnZeroInstall) {\n // https://github.com/npm/cli/issues/1432\n // Explanation:\n // - npm install --package-lock-only is buggy for transitive deps in file: and npm: references\n // - So we set skipInstalls to false if file: or npm: refs are found *and* the user hasn't explicitly set the value already\n // - Also, do not skip install if Yarn zero-install is used\n logger.debug('Automatically setting skipInstalls to false');\n skipInstalls = false;\n } else {\n skipInstalls = true;\n }\n }\n\n const extractedConstraints = getExtractedConstraints(res.deps);\n\n if (yarnrcConfig) {\n for (const dep of res.deps) {\n // v8 ignore else -- TODO: add tests #40625\n if (dep.depName) {\n const registryUrlFromYarnrcConfig = resolveRegistryUrl(\n dep.packageName ?? dep.depName,\n yarnrcConfig,\n );\n if (\n registryUrlFromYarnrcConfig &&\n dep.datasource === NpmDatasource.id\n ) {\n dep.registryUrls = [registryUrlFromYarnrcConfig];\n }\n }\n }\n }\n\n // Applied after the yarnrc resolution so pnpm-workspace.yaml wins in pnpm repos\n applyPnpmWorkspaceRegistries(\n res.deps,\n pnpmWorkspaceRegistries,\n pnpmWorkspaceRegistry,\n );\n\n return {\n ...res,\n npmrc,\n managerData: {\n ...res.managerData,\n ...lockFiles,\n yarnZeroInstall,\n hasPackageManager:\n isNonEmptyStringAndNotWhitespace(packageJson.packageManager) ||\n isNonEmptyObject(packageJson.devEngines?.packageManager),\n workspacesPackages,\n npmrcFileName, // store npmrc file name so we can later tell if it came from the workspace or not\n },\n skipInstalls,\n extractedConstraints,\n };\n}\n\nexport async function extractAllPackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n): Promise<PackageFile<NpmManagerData>[]> {\n const npmFiles: PackageFile<NpmManagerData>[] = [];\n for (const packageFile of packageFiles) {\n const content = await readLocalFile(packageFile, 'utf8');\n if (content) {\n // pnpm workspace files are their own package file, defined via managerFilePatterns.\n if (packageFile.endsWith('pnpm-workspace.yaml')) {\n logger.trace(\n { packageFile },\n `Extracting as a pnpm-workspace.yaml file`,\n );\n const parsedPnpmWorkspaceYaml =\n await PnpmWorkspaceFile.safeParseAsync(content);\n if (parsedPnpmWorkspaceYaml.success) {\n logger.trace(\n { packageFile },\n `Extracting file as a pnpm workspace YAML file`,\n );\n const deps = await extractPnpmWorkspaceFile(\n parsedPnpmWorkspaceYaml.data,\n packageFile,\n );\n // v8 ignore else -- TODO: add test #40625\n if (deps) {\n npmFiles.push({\n ...deps,\n packageFile,\n });\n }\n } else {\n logger.warn(\n { packageFile, err: parsedPnpmWorkspaceYaml.error },\n `Failed to parse pnpm-workspace.yaml file`,\n );\n }\n } else {\n if (packageFile.endsWith('json')) {\n logger.trace({ packageFile }, `Extracting as a package.json file`);\n\n const deps = await extractPackageFile(content, packageFile, config);\n // v8 ignore else -- TODO: add tests #40625\n if (deps) {\n npmFiles.push({\n ...deps,\n packageFile,\n });\n }\n } else {\n logger.trace({ packageFile }, `Extracting as a .yarnrc.yml file`);\n\n const yarnConfig = loadConfigFromYarnrcYml(content);\n\n // v8 ignore else -- TODO: add tests #40625\n if (yarnConfig?.catalogs || yarnConfig?.catalog) {\n const hasPackageManagerResult = await hasPackageManager(\n upath.dirname(packageFile),\n );\n const catalogsDeps = await extractYarnCatalogs(\n { catalog: yarnConfig.catalog, catalogs: yarnConfig.catalogs },\n packageFile,\n hasPackageManagerResult,\n );\n // v8 ignore else -- TODO: add tests #40625\n if (catalogsDeps) {\n npmFiles.push({\n ...catalogsDeps,\n packageFile,\n });\n }\n }\n }\n }\n } else {\n logger.debug({ packageFile }, `No content found`);\n }\n }\n\n await postExtract(npmFiles);\n return npmFiles;\n}\n"],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { GlobalConfig } from "../../../../config/global.js";
|
|
|
2
2
|
import { logger } from "../../../../logger/index.js";
|
|
3
3
|
import { parseSingleYaml, parseYaml } from "../../../../util/yaml.js";
|
|
4
4
|
import { findLocalSiblingOrParent, getSiblingFileName, localPathExists, readLocalFile } from "../../../../util/fs/index.js";
|
|
5
|
+
import { NpmDatasource } from "../../../datasource/npm/index.js";
|
|
5
6
|
import { extractDependency } from "./common/dependency.js";
|
|
6
7
|
import { pnpmWorkspaceOverrides } from "../dep-types.js";
|
|
7
8
|
import { extractCatalogDeps } from "./common/catalogs.js";
|
|
@@ -150,6 +151,8 @@ async function extractPnpmWorkspaceFile(workspaceFile, packageFile) {
|
|
|
150
151
|
...extractDependency(depType, packageName, overridesVal)
|
|
151
152
|
});
|
|
152
153
|
}
|
|
154
|
+
const { registry, registries } = workspaceFile;
|
|
155
|
+
applyPnpmWorkspaceRegistries(deps, registries, registry);
|
|
153
156
|
let pnpmShrinkwrap;
|
|
154
157
|
const filePath = getSiblingFileName(packageFile, "pnpm-lock.yaml");
|
|
155
158
|
if (await readLocalFile(filePath, "utf8")) pnpmShrinkwrap = filePath;
|
|
@@ -171,7 +174,27 @@ function pnpmCatalogsToArray({ catalog: defaultCatalogDeps, catalogs: namedCatal
|
|
|
171
174
|
});
|
|
172
175
|
return result;
|
|
173
176
|
}
|
|
177
|
+
function applyPnpmWorkspaceRegistries(deps, registries, registry) {
|
|
178
|
+
if (!(registry ?? registries)) return;
|
|
179
|
+
for (const dep of deps) {
|
|
180
|
+
const lookupName = dep.packageName ?? dep.depName;
|
|
181
|
+
if (lookupName && dep.datasource === NpmDatasource.id) {
|
|
182
|
+
const registryUrl = resolveRegistryUrl(lookupName, registries, registry);
|
|
183
|
+
if (registryUrl) dep.registryUrls = [registryUrl];
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
function resolveRegistryUrl(packageName, registries, defaultRegistry) {
|
|
188
|
+
if (registries) {
|
|
189
|
+
for (const scope in registries) {
|
|
190
|
+
if (scope === "default") continue;
|
|
191
|
+
if (packageName.startsWith(`${scope}/`)) return registries[scope];
|
|
192
|
+
}
|
|
193
|
+
if (registries.default) return registries.default;
|
|
194
|
+
}
|
|
195
|
+
return defaultRegistry ?? null;
|
|
196
|
+
}
|
|
174
197
|
//#endregion
|
|
175
|
-
export { detectPnpmWorkspaces, extractPnpmFilters, extractPnpmWorkspaceFile, findPnpmWorkspace, getPnpmLock };
|
|
198
|
+
export { applyPnpmWorkspaceRegistries, detectPnpmWorkspaces, extractPnpmFilters, extractPnpmWorkspaceFile, findPnpmWorkspace, getPnpmLock, resolveRegistryUrl };
|
|
176
199
|
|
|
177
200
|
//# sourceMappingURL=pnpm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pnpm.js","names":[],"sources":["../../../../../lib/modules/manager/npm/extract/pnpm.ts"],"sourcesContent":["import { parsePkgAndParentSelector } from '@pnpm/parse-overrides';\nimport {\n isNonEmptyObject,\n isNumber,\n isObject,\n isPlainObject,\n isString,\n} from '@sindresorhus/is';\nimport { findPackages } from 'find-packages';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../../../config/global.ts';\nimport { logger } from '../../../../logger/index.ts';\nimport {\n findLocalSiblingOrParent,\n getSiblingFileName,\n localPathExists,\n readLocalFile,\n} from '../../../../util/fs/index.ts';\nimport { parseSingleYaml, parseYaml } from '../../../../util/yaml.ts';\nimport type { PackageFile, PackageFileContent } from '../../types.ts';\nimport { pnpmWorkspaceOverrides } from '../dep-types.ts';\nimport type { PnpmDependency, PnpmLockFile } from '../post-update/types.ts';\nimport type { PnpmCatalogs, PnpmWorkspaceFile } from '../schema.ts';\nimport type { NpmManagerData } from '../types.ts';\nimport { extractCatalogDeps } from './common/catalogs.ts';\nimport { extractDependency } from './common/dependency.ts';\nimport type { Catalog, LockFile } from './types.ts';\n\nfunction isPnpmLockfile(obj: any): obj is PnpmLockFile {\n return isPlainObject(obj) && 'lockfileVersion' in obj;\n}\n\nexport async function extractPnpmFilters(\n fileName: string,\n): Promise<string[] | undefined> {\n try {\n // TODO: use schema (#9610,#22198)\n const contents = parseSingleYaml<PnpmWorkspaceFile>(\n (await readLocalFile(fileName, 'utf8'))!,\n );\n if (\n !Array.isArray(contents.packages) ||\n !contents.packages.every((item) => isString(item))\n ) {\n logger.trace(\n { fileName },\n 'Failed to find required \"packages\" array in pnpm-workspace.yaml',\n );\n return undefined;\n }\n return contents.packages;\n } catch (err) {\n logger.trace({ fileName, err }, 'Failed to parse pnpm-workspace.yaml');\n return undefined;\n }\n}\n\nexport async function findPnpmWorkspace(\n packageFile: string,\n): Promise<{ lockFilePath: string; workspaceYamlPath: string } | null> {\n // search for pnpm-workspace.yaml\n const workspaceYamlPath = await findLocalSiblingOrParent(\n packageFile,\n 'pnpm-workspace.yaml',\n );\n if (!workspaceYamlPath) {\n logger.trace(\n { packageFile },\n 'Failed to locate pnpm-workspace.yaml in a parent directory.',\n );\n return null;\n }\n\n // search for pnpm-lock.yaml next to pnpm-workspace.yaml\n const pnpmLockfilePath = getSiblingFileName(\n workspaceYamlPath,\n 'pnpm-lock.yaml',\n );\n if (!(await localPathExists(pnpmLockfilePath))) {\n logger.trace(\n { workspaceYamlPath, packageFile },\n 'Failed to find a pnpm-lock.yaml sibling for the workspace.',\n );\n return null;\n }\n\n return {\n lockFilePath: pnpmLockfilePath,\n workspaceYamlPath,\n };\n}\n\nexport async function detectPnpmWorkspaces(\n packageFiles: Partial<PackageFile<NpmManagerData>>[],\n): Promise<void> {\n logger.debug(`Detecting pnpm Workspaces`);\n const packagePathCache = new Map<string, string[] | null>();\n\n for (const p of packageFiles) {\n const { packageFile, managerData } = p;\n const pnpmShrinkwrap = managerData?.pnpmShrinkwrap;\n\n // check if pnpmShrinkwrap-file has already been provided\n if (pnpmShrinkwrap) {\n logger.trace(\n { packageFile, pnpmShrinkwrap },\n 'Found an existing pnpm shrinkwrap file; skipping pnpm monorepo check.',\n );\n continue;\n }\n\n // search for corresponding pnpm workspace\n // TODO #22198\n const pnpmWorkspace = await findPnpmWorkspace(packageFile!);\n if (pnpmWorkspace === null) {\n continue;\n }\n const { workspaceYamlPath, lockFilePath } = pnpmWorkspace;\n\n // check if package matches workspace filter\n if (!packagePathCache.has(workspaceYamlPath)) {\n const filters = await extractPnpmFilters(workspaceYamlPath);\n // TODO: types (#22198)\n const localDir = GlobalConfig.get('localDir');\n const packages = await findPackages(\n upath.dirname(upath.join(localDir, workspaceYamlPath)),\n {\n patterns: filters,\n // Match the ignores used in @pnpm/find-workspace-packages\n ignore: ['**/node_modules/**', '**/bower_components/**'],\n },\n );\n const packagePaths = packages.map((pkg) =>\n upath.join(pkg.dir, 'package.json'),\n );\n packagePathCache.set(workspaceYamlPath, packagePaths);\n }\n const packagePaths = packagePathCache.get(workspaceYamlPath);\n\n const isPackageInWorkspace = packagePaths?.some((p) =>\n p.endsWith(packageFile!),\n );\n\n if (isPackageInWorkspace) {\n p.managerData ??= {};\n p.managerData.pnpmShrinkwrap = lockFilePath;\n } else {\n logger.trace(\n { packageFile, workspaceYamlPath },\n `Didn't find the package in the pnpm workspace`,\n );\n }\n }\n}\n\nexport async function getPnpmLock(filePath: string): Promise<LockFile> {\n try {\n const pnpmLockRaw = await readLocalFile(filePath, 'utf8');\n if (!pnpmLockRaw) {\n throw new Error('Unable to read pnpm-lock.yaml');\n }\n\n // pnpm writes a multi-document YAML lockfile when `pnpm-workspace.yaml`\n // declares `configDependencies`; the env document (config-deps + integrity\n // metadata) is unconditionally prepended before the main lockfile, so the\n // main lockfile is always the last document.\n // https://pnpm.io/config-dependencies.\n const parsedDocs = parseYaml(pnpmLockRaw);\n const lockParsed = parsedDocs.at(-1);\n if (!isPnpmLockfile(lockParsed)) {\n throw new Error('Invalid or empty lockfile');\n }\n logger.trace({ lockParsed }, 'pnpm lockfile parsed');\n\n // field lockfileVersion is type string in lockfileVersion = 6 and type number in < 6\n const lockfileVersion: number = isNumber(lockParsed.lockfileVersion)\n ? lockParsed.lockfileVersion\n : parseFloat(lockParsed.lockfileVersion);\n\n const lockedVersions = getLockedVersions(lockParsed);\n const lockedCatalogVersions = getLockedCatalogVersions(lockParsed);\n\n return {\n lockedVersionsWithPath: lockedVersions,\n lockedVersionsWithCatalog: lockedCatalogVersions,\n lockfileVersion,\n };\n } catch (err) {\n logger.debug({ filePath, err }, 'Warning: Exception parsing pnpm lockfile');\n return { lockedVersions: {} };\n }\n}\n\nfunction getLockedCatalogVersions(\n lockParsed: PnpmLockFile,\n): Record<string, Record<string, string>> {\n const lockedVersions: Record<string, Record<string, string>> = {};\n\n if (isNonEmptyObject(lockParsed.catalogs)) {\n for (const [catalog, dependencies] of Object.entries(lockParsed.catalogs)) {\n const versions: Record<string, string> = {};\n\n for (const [dep, versionCarrier] of Object.entries(dependencies)) {\n versions[dep] = versionCarrier.version;\n }\n\n lockedVersions[catalog] = versions;\n }\n }\n\n return lockedVersions;\n}\n\nfunction getLockedVersions(\n lockParsed: PnpmLockFile,\n): Record<string, Record<string, Record<string, string>>> {\n const lockedVersions: Record<\n string,\n Record<string, Record<string, string>>\n > = {};\n\n // monorepo\n if (isNonEmptyObject(lockParsed.importers)) {\n for (const [importer, imports] of Object.entries(lockParsed.importers)) {\n lockedVersions[importer] = getLockedDependencyVersions(imports);\n }\n }\n // normal repo\n else {\n lockedVersions['.'] = getLockedDependencyVersions(lockParsed);\n }\n\n return lockedVersions;\n}\n\nfunction getLockedDependencyVersions(\n obj: PnpmLockFile | Record<string, PnpmDependency>,\n): Record<string, Record<string, string>> {\n const dependencyTypes = [\n 'dependencies',\n 'devDependencies',\n 'optionalDependencies',\n ] as const;\n\n const res: Record<string, Record<string, string>> = {};\n for (const depType of dependencyTypes) {\n res[depType] = {};\n for (const [pkgName, versionCarrier] of Object.entries(\n obj[depType] ?? {},\n )) {\n let version: string;\n if (isObject(versionCarrier)) {\n version = versionCarrier.version;\n } else {\n version = versionCarrier;\n }\n\n const pkgVersion = version.split('(')[0].trim();\n res[depType][pkgName] = pkgVersion;\n }\n }\n\n return res;\n}\n\nexport async function extractPnpmWorkspaceFile(\n workspaceFile: PnpmWorkspaceFile,\n packageFile: string,\n): Promise<PackageFileContent<NpmManagerData> | null> {\n logger.trace(`pnpm.extractPnpmWorkspaceFile(${packageFile})`);\n\n const pnpmCatalogs = pnpmCatalogsToArray(workspaceFile);\n\n const deps = extractCatalogDeps(pnpmCatalogs);\n\n if (workspaceFile.overrides) {\n for (const [overridesKey, overridesVal] of Object.entries(\n workspaceFile.overrides,\n )) {\n // flat syntax: `parent>parent>child`\n const packageName =\n parsePkgAndParentSelector(overridesKey).targetPkg.name;\n const depType = pnpmWorkspaceOverrides;\n deps.push({\n depName: overridesKey,\n packageName,\n depType,\n ...extractDependency(depType, packageName, overridesVal),\n });\n }\n }\n\n let pnpmShrinkwrap;\n const filePath = getSiblingFileName(packageFile, 'pnpm-lock.yaml');\n\n if (await readLocalFile(filePath, 'utf8')) {\n pnpmShrinkwrap = filePath;\n }\n\n return {\n deps,\n managerData: {\n pnpmShrinkwrap,\n },\n };\n}\n\nfunction pnpmCatalogsToArray({\n catalog: defaultCatalogDeps,\n catalogs: namedCatalogs,\n}: PnpmCatalogs): Catalog[] {\n const result: Catalog[] = [];\n\n if (defaultCatalogDeps !== undefined) {\n result.push({ name: 'default', dependencies: defaultCatalogDeps });\n }\n\n if (!namedCatalogs) {\n return result;\n }\n\n for (const [name, dependencies] of Object.entries(namedCatalogs)) {\n result.push({\n name,\n dependencies,\n });\n }\n\n return result;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pnpm.js","names":[],"sources":["../../../../../lib/modules/manager/npm/extract/pnpm.ts"],"sourcesContent":["import { parsePkgAndParentSelector } from '@pnpm/parse-overrides';\nimport {\n isNonEmptyObject,\n isNumber,\n isObject,\n isPlainObject,\n isString,\n} from '@sindresorhus/is';\nimport { findPackages } from 'find-packages';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../../../config/global.ts';\nimport { logger } from '../../../../logger/index.ts';\nimport {\n findLocalSiblingOrParent,\n getSiblingFileName,\n localPathExists,\n readLocalFile,\n} from '../../../../util/fs/index.ts';\nimport { parseSingleYaml, parseYaml } from '../../../../util/yaml.ts';\nimport { NpmDatasource } from '../../../datasource/npm/index.ts';\nimport type {\n PackageDependency,\n PackageFile,\n PackageFileContent,\n} from '../../types.ts';\nimport { pnpmWorkspaceOverrides } from '../dep-types.ts';\nimport type { PnpmDependency, PnpmLockFile } from '../post-update/types.ts';\nimport type { PnpmCatalogs, PnpmWorkspaceFile } from '../schema.ts';\nimport type { NpmManagerData } from '../types.ts';\nimport { extractCatalogDeps } from './common/catalogs.ts';\nimport { extractDependency } from './common/dependency.ts';\nimport type { Catalog, LockFile } from './types.ts';\n\nfunction isPnpmLockfile(obj: any): obj is PnpmLockFile {\n return isPlainObject(obj) && 'lockfileVersion' in obj;\n}\n\nexport async function extractPnpmFilters(\n fileName: string,\n): Promise<string[] | undefined> {\n try {\n // TODO: use schema (#9610,#22198)\n const contents = parseSingleYaml<PnpmWorkspaceFile>(\n (await readLocalFile(fileName, 'utf8'))!,\n );\n if (\n !Array.isArray(contents.packages) ||\n !contents.packages.every((item) => isString(item))\n ) {\n logger.trace(\n { fileName },\n 'Failed to find required \"packages\" array in pnpm-workspace.yaml',\n );\n return undefined;\n }\n return contents.packages;\n } catch (err) {\n logger.trace({ fileName, err }, 'Failed to parse pnpm-workspace.yaml');\n return undefined;\n }\n}\n\nexport async function findPnpmWorkspace(\n packageFile: string,\n): Promise<{ lockFilePath: string; workspaceYamlPath: string } | null> {\n // search for pnpm-workspace.yaml\n const workspaceYamlPath = await findLocalSiblingOrParent(\n packageFile,\n 'pnpm-workspace.yaml',\n );\n if (!workspaceYamlPath) {\n logger.trace(\n { packageFile },\n 'Failed to locate pnpm-workspace.yaml in a parent directory.',\n );\n return null;\n }\n\n // search for pnpm-lock.yaml next to pnpm-workspace.yaml\n const pnpmLockfilePath = getSiblingFileName(\n workspaceYamlPath,\n 'pnpm-lock.yaml',\n );\n if (!(await localPathExists(pnpmLockfilePath))) {\n logger.trace(\n { workspaceYamlPath, packageFile },\n 'Failed to find a pnpm-lock.yaml sibling for the workspace.',\n );\n return null;\n }\n\n return {\n lockFilePath: pnpmLockfilePath,\n workspaceYamlPath,\n };\n}\n\nexport async function detectPnpmWorkspaces(\n packageFiles: Partial<PackageFile<NpmManagerData>>[],\n): Promise<void> {\n logger.debug(`Detecting pnpm Workspaces`);\n const packagePathCache = new Map<string, string[] | null>();\n\n for (const p of packageFiles) {\n const { packageFile, managerData } = p;\n const pnpmShrinkwrap = managerData?.pnpmShrinkwrap;\n\n // check if pnpmShrinkwrap-file has already been provided\n if (pnpmShrinkwrap) {\n logger.trace(\n { packageFile, pnpmShrinkwrap },\n 'Found an existing pnpm shrinkwrap file; skipping pnpm monorepo check.',\n );\n continue;\n }\n\n // search for corresponding pnpm workspace\n // TODO #22198\n const pnpmWorkspace = await findPnpmWorkspace(packageFile!);\n if (pnpmWorkspace === null) {\n continue;\n }\n const { workspaceYamlPath, lockFilePath } = pnpmWorkspace;\n\n // check if package matches workspace filter\n if (!packagePathCache.has(workspaceYamlPath)) {\n const filters = await extractPnpmFilters(workspaceYamlPath);\n // TODO: types (#22198)\n const localDir = GlobalConfig.get('localDir');\n const packages = await findPackages(\n upath.dirname(upath.join(localDir, workspaceYamlPath)),\n {\n patterns: filters,\n // Match the ignores used in @pnpm/find-workspace-packages\n ignore: ['**/node_modules/**', '**/bower_components/**'],\n },\n );\n const packagePaths = packages.map((pkg) =>\n upath.join(pkg.dir, 'package.json'),\n );\n packagePathCache.set(workspaceYamlPath, packagePaths);\n }\n const packagePaths = packagePathCache.get(workspaceYamlPath);\n\n const isPackageInWorkspace = packagePaths?.some((p) =>\n p.endsWith(packageFile!),\n );\n\n if (isPackageInWorkspace) {\n p.managerData ??= {};\n p.managerData.pnpmShrinkwrap = lockFilePath;\n } else {\n logger.trace(\n { packageFile, workspaceYamlPath },\n `Didn't find the package in the pnpm workspace`,\n );\n }\n }\n}\n\nexport async function getPnpmLock(filePath: string): Promise<LockFile> {\n try {\n const pnpmLockRaw = await readLocalFile(filePath, 'utf8');\n if (!pnpmLockRaw) {\n throw new Error('Unable to read pnpm-lock.yaml');\n }\n\n // pnpm writes a multi-document YAML lockfile when `pnpm-workspace.yaml`\n // declares `configDependencies`; the env document (config-deps + integrity\n // metadata) is unconditionally prepended before the main lockfile, so the\n // main lockfile is always the last document.\n // https://pnpm.io/config-dependencies.\n const parsedDocs = parseYaml(pnpmLockRaw);\n const lockParsed = parsedDocs.at(-1);\n if (!isPnpmLockfile(lockParsed)) {\n throw new Error('Invalid or empty lockfile');\n }\n logger.trace({ lockParsed }, 'pnpm lockfile parsed');\n\n // field lockfileVersion is type string in lockfileVersion = 6 and type number in < 6\n const lockfileVersion: number = isNumber(lockParsed.lockfileVersion)\n ? lockParsed.lockfileVersion\n : parseFloat(lockParsed.lockfileVersion);\n\n const lockedVersions = getLockedVersions(lockParsed);\n const lockedCatalogVersions = getLockedCatalogVersions(lockParsed);\n\n return {\n lockedVersionsWithPath: lockedVersions,\n lockedVersionsWithCatalog: lockedCatalogVersions,\n lockfileVersion,\n };\n } catch (err) {\n logger.debug({ filePath, err }, 'Warning: Exception parsing pnpm lockfile');\n return { lockedVersions: {} };\n }\n}\n\nfunction getLockedCatalogVersions(\n lockParsed: PnpmLockFile,\n): Record<string, Record<string, string>> {\n const lockedVersions: Record<string, Record<string, string>> = {};\n\n if (isNonEmptyObject(lockParsed.catalogs)) {\n for (const [catalog, dependencies] of Object.entries(lockParsed.catalogs)) {\n const versions: Record<string, string> = {};\n\n for (const [dep, versionCarrier] of Object.entries(dependencies)) {\n versions[dep] = versionCarrier.version;\n }\n\n lockedVersions[catalog] = versions;\n }\n }\n\n return lockedVersions;\n}\n\nfunction getLockedVersions(\n lockParsed: PnpmLockFile,\n): Record<string, Record<string, Record<string, string>>> {\n const lockedVersions: Record<\n string,\n Record<string, Record<string, string>>\n > = {};\n\n // monorepo\n if (isNonEmptyObject(lockParsed.importers)) {\n for (const [importer, imports] of Object.entries(lockParsed.importers)) {\n lockedVersions[importer] = getLockedDependencyVersions(imports);\n }\n }\n // normal repo\n else {\n lockedVersions['.'] = getLockedDependencyVersions(lockParsed);\n }\n\n return lockedVersions;\n}\n\nfunction getLockedDependencyVersions(\n obj: PnpmLockFile | Record<string, PnpmDependency>,\n): Record<string, Record<string, string>> {\n const dependencyTypes = [\n 'dependencies',\n 'devDependencies',\n 'optionalDependencies',\n ] as const;\n\n const res: Record<string, Record<string, string>> = {};\n for (const depType of dependencyTypes) {\n res[depType] = {};\n for (const [pkgName, versionCarrier] of Object.entries(\n obj[depType] ?? {},\n )) {\n let version: string;\n if (isObject(versionCarrier)) {\n version = versionCarrier.version;\n } else {\n version = versionCarrier;\n }\n\n const pkgVersion = version.split('(')[0].trim();\n res[depType][pkgName] = pkgVersion;\n }\n }\n\n return res;\n}\n\nexport async function extractPnpmWorkspaceFile(\n workspaceFile: PnpmWorkspaceFile,\n packageFile: string,\n): Promise<PackageFileContent<NpmManagerData> | null> {\n logger.trace(`pnpm.extractPnpmWorkspaceFile(${packageFile})`);\n\n const pnpmCatalogs = pnpmCatalogsToArray(workspaceFile);\n\n const deps = extractCatalogDeps(pnpmCatalogs);\n\n if (workspaceFile.overrides) {\n for (const [overridesKey, overridesVal] of Object.entries(\n workspaceFile.overrides,\n )) {\n // flat syntax: `parent>parent>child`\n const packageName =\n parsePkgAndParentSelector(overridesKey).targetPkg.name;\n const depType = pnpmWorkspaceOverrides;\n deps.push({\n depName: overridesKey,\n packageName,\n depType,\n ...extractDependency(depType, packageName, overridesVal),\n });\n }\n }\n\n const { registry, registries } = workspaceFile;\n applyPnpmWorkspaceRegistries(deps, registries, registry);\n\n let pnpmShrinkwrap;\n const filePath = getSiblingFileName(packageFile, 'pnpm-lock.yaml');\n\n if (await readLocalFile(filePath, 'utf8')) {\n pnpmShrinkwrap = filePath;\n }\n\n return {\n deps,\n managerData: {\n pnpmShrinkwrap,\n },\n };\n}\n\nfunction pnpmCatalogsToArray({\n catalog: defaultCatalogDeps,\n catalogs: namedCatalogs,\n}: PnpmCatalogs): Catalog[] {\n const result: Catalog[] = [];\n\n if (defaultCatalogDeps !== undefined) {\n result.push({ name: 'default', dependencies: defaultCatalogDeps });\n }\n\n if (!namedCatalogs) {\n return result;\n }\n\n for (const [name, dependencies] of Object.entries(namedCatalogs)) {\n result.push({\n name,\n dependencies,\n });\n }\n\n return result;\n}\n\nexport function applyPnpmWorkspaceRegistries(\n deps: PackageDependency[],\n registries: Record<string, string> | undefined,\n registry: string | undefined,\n): void {\n if (!(registry ?? registries)) {\n return;\n }\n for (const dep of deps) {\n const lookupName = dep.packageName ?? dep.depName;\n if (lookupName && dep.datasource === NpmDatasource.id) {\n const registryUrl = resolveRegistryUrl(lookupName, registries, registry);\n if (registryUrl) {\n dep.registryUrls = [registryUrl];\n }\n }\n }\n}\n\nexport function resolveRegistryUrl(\n packageName: string,\n registries: Record<string, string> | undefined,\n defaultRegistry: string | undefined,\n): string | null {\n if (registries) {\n for (const scope in registries) {\n // `default` is the fallback registry, not a scope\n if (scope === 'default') {\n continue;\n }\n // pnpm scope keys keep the leading `@`, e.g. `@my-org`\n if (packageName.startsWith(`${scope}/`)) {\n return registries[scope];\n }\n }\n if (registries.default) {\n return registries.default;\n }\n }\n return defaultRegistry ?? null;\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { Json, LooseRecord, Nullish, Yaml } from "../../../util/schema-utils/index.js";
|
|
2
2
|
import { z } from "zod/v4";
|
|
3
3
|
//#region lib/modules/manager/npm/schema.ts
|
|
4
|
+
function hasEnvVar(value) {
|
|
5
|
+
return value.includes("${");
|
|
6
|
+
}
|
|
7
|
+
function withoutEnvVarRegistries(registries) {
|
|
8
|
+
return Object.fromEntries(Object.entries(registries).filter(([, url]) => !hasEnvVar(url)));
|
|
9
|
+
}
|
|
4
10
|
const PnpmCatalogs = z.object({
|
|
5
11
|
catalog: z.optional(z.record(z.string(), z.string())),
|
|
6
12
|
catalogs: z.optional(z.record(z.string(), z.record(z.string(), z.string())))
|
|
@@ -17,7 +23,9 @@ const PnpmWorkspaceFile = Yaml.pipe(z.object({
|
|
|
17
23
|
packages: z.array(z.string()).optional(),
|
|
18
24
|
minimumReleaseAge: Nullish(z.number()),
|
|
19
25
|
minimumReleaseAgeExclude: z.array(z.string()).optional(),
|
|
20
|
-
overrides: z.record(z.string(), z.string()).optional()
|
|
26
|
+
overrides: z.record(z.string(), z.string()).optional(),
|
|
27
|
+
registry: Nullish(z.string()),
|
|
28
|
+
registries: Nullish(z.record(z.string(), z.string()).transform(withoutEnvVarRegistries))
|
|
21
29
|
}).and(PnpmCatalogs));
|
|
22
30
|
const PackageManager = z.string().transform((val) => val.split("@")).transform(([name, ...version]) => ({
|
|
23
31
|
name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/manager/npm/schema.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport {\n Json,\n LooseRecord,\n Nullish,\n Yaml,\n} from '../../../util/schema-utils/index.ts';\n\nexport const PnpmCatalogs = z.object({\n catalog: z.optional(z.record(z.string(), z.string())),\n catalogs: z.optional(z.record(z.string(), z.record(z.string(), z.string()))),\n});\nexport type PnpmCatalogs = z.infer<typeof PnpmCatalogs>;\n\nexport const YarnCatalogs = z.object({\n catalog: z.optional(z.record(z.string(), z.string())),\n catalogs: z\n .optional(z.record(z.string(), z.record(z.string(), z.string())))\n .catch(undefined),\n});\nexport type YarnCatalogs = z.infer<typeof YarnCatalogs>;\n\nexport const YarnConfig = Yaml.pipe(\n z\n .object({\n npmRegistryServer: z.string().optional(),\n npmScopes: z\n .record(\n z.string(),\n z.object({\n npmRegistryServer: z.string().optional(),\n }),\n )\n .optional(),\n })\n .and(YarnCatalogs),\n);\nexport type YarnConfig = z.infer<typeof YarnConfig>;\n\nexport const PnpmWorkspaceFile = Yaml.pipe(\n z\n .object({\n packages: z.array(z.string()).optional(),\n minimumReleaseAge: Nullish(z.number()),\n minimumReleaseAgeExclude: z.array(z.string()).optional(),\n overrides: z.record(z.string(), z.string()).optional(),\n })\n .and(PnpmCatalogs),\n);\nexport type PnpmWorkspaceFile = z.infer<typeof PnpmWorkspaceFile>;\n\nexport const PackageManager = z\n .string()\n .transform((val) => val.split('@'))\n .transform(([name, ...version]) => ({ name, version: version.join('@') }));\n\nconst DevEngineDependency = z.object({\n name: z.string(),\n version: z.string().optional(),\n});\n\nconst DevEngine = z.object({\n packageManager: DevEngineDependency.or(\n z.array(DevEngineDependency),\n ).optional(),\n});\n\nexport const PackageJson = Json.pipe(\n z.object({\n devEngines: DevEngine.optional(),\n engines: LooseRecord(z.string()).optional(),\n dependencies: LooseRecord(z.string()).optional(),\n devDependencies: LooseRecord(z.string()).optional(),\n peerDependencies: LooseRecord(z.string()).optional(),\n packageManager: PackageManager.optional(),\n volta: LooseRecord(z.string()).optional(),\n }),\n);\n\nexport type PackageJson = z.infer<typeof PackageJson>;\n\nexport const PackageLockV3 = z.object({\n lockfileVersion: z.literal(3),\n packages: LooseRecord(\n z\n .string()\n .transform((x) => x.replace(/^node_modules\\//, ''))\n .refine((x) => x.trim() !== ''),\n z.object({ version: z.string() }),\n ),\n});\n\nexport const PackageLockPreV3 = z\n .object({\n lockfileVersion: z.union([z.literal(2), z.literal(1)]),\n dependencies: LooseRecord(z.object({ version: z.string() })),\n })\n .transform(({ lockfileVersion, dependencies: packages }) => ({\n lockfileVersion,\n packages,\n }));\n\nexport const PackageLock = Json.pipe(\n z.union([PackageLockV3, PackageLockPreV3]),\n).transform(({ packages, lockfileVersion }) => {\n const lockedVersions: Record<string, string> = {};\n for (const [entry, val] of Object.entries(packages)) {\n lockedVersions[entry] = val.version;\n }\n return { lockedVersions, lockfileVersion };\n});\n"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/manager/npm/schema.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport {\n Json,\n LooseRecord,\n Nullish,\n Yaml,\n} from '../../../util/schema-utils/index.ts';\n\n// pnpm ignores registry URLs containing `${...}` env-var interpolation since v11.5.3\nfunction hasEnvVar(value: string): boolean {\n return value.includes('${');\n}\n\nfunction withoutEnvVarRegistries(\n registries: Record<string, string>,\n): Record<string, string> {\n return Object.fromEntries(\n Object.entries(registries).filter(([, url]) => !hasEnvVar(url)),\n );\n}\n\nexport const PnpmCatalogs = z.object({\n catalog: z.optional(z.record(z.string(), z.string())),\n catalogs: z.optional(z.record(z.string(), z.record(z.string(), z.string()))),\n});\nexport type PnpmCatalogs = z.infer<typeof PnpmCatalogs>;\n\nexport const YarnCatalogs = z.object({\n catalog: z.optional(z.record(z.string(), z.string())),\n catalogs: z\n .optional(z.record(z.string(), z.record(z.string(), z.string())))\n .catch(undefined),\n});\nexport type YarnCatalogs = z.infer<typeof YarnCatalogs>;\n\nexport const YarnConfig = Yaml.pipe(\n z\n .object({\n npmRegistryServer: z.string().optional(),\n npmScopes: z\n .record(\n z.string(),\n z.object({\n npmRegistryServer: z.string().optional(),\n }),\n )\n .optional(),\n })\n .and(YarnCatalogs),\n);\nexport type YarnConfig = z.infer<typeof YarnConfig>;\n\nexport const PnpmWorkspaceFile = Yaml.pipe(\n z\n .object({\n packages: z.array(z.string()).optional(),\n minimumReleaseAge: Nullish(z.number()),\n minimumReleaseAgeExclude: z.array(z.string()).optional(),\n overrides: z.record(z.string(), z.string()).optional(),\n registry: Nullish(z.string()),\n registries: Nullish(\n z.record(z.string(), z.string()).transform(withoutEnvVarRegistries),\n ),\n })\n .and(PnpmCatalogs),\n);\nexport type PnpmWorkspaceFile = z.infer<typeof PnpmWorkspaceFile>;\n\nexport const PackageManager = z\n .string()\n .transform((val) => val.split('@'))\n .transform(([name, ...version]) => ({ name, version: version.join('@') }));\n\nconst DevEngineDependency = z.object({\n name: z.string(),\n version: z.string().optional(),\n});\n\nconst DevEngine = z.object({\n packageManager: DevEngineDependency.or(\n z.array(DevEngineDependency),\n ).optional(),\n});\n\nexport const PackageJson = Json.pipe(\n z.object({\n devEngines: DevEngine.optional(),\n engines: LooseRecord(z.string()).optional(),\n dependencies: LooseRecord(z.string()).optional(),\n devDependencies: LooseRecord(z.string()).optional(),\n peerDependencies: LooseRecord(z.string()).optional(),\n packageManager: PackageManager.optional(),\n volta: LooseRecord(z.string()).optional(),\n }),\n);\n\nexport type PackageJson = z.infer<typeof PackageJson>;\n\nexport const PackageLockV3 = z.object({\n lockfileVersion: z.literal(3),\n packages: LooseRecord(\n z\n .string()\n .transform((x) => x.replace(/^node_modules\\//, ''))\n .refine((x) => x.trim() !== ''),\n z.object({ version: z.string() }),\n ),\n});\n\nexport const PackageLockPreV3 = z\n .object({\n lockfileVersion: z.union([z.literal(2), z.literal(1)]),\n dependencies: LooseRecord(z.object({ version: z.string() })),\n })\n .transform(({ lockfileVersion, dependencies: packages }) => ({\n lockfileVersion,\n packages,\n }));\n\nexport const PackageLock = Json.pipe(\n z.union([PackageLockV3, PackageLockPreV3]),\n).transform(({ packages, lockfileVersion }) => {\n const lockedVersions: Record<string, string> = {};\n for (const [entry, val] of Object.entries(packages)) {\n lockedVersions[entry] = val.version;\n }\n return { lockedVersions, lockfileVersion };\n});\n"],"mappings":"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"}
|
package/dist/util/git/index.d.ts
CHANGED
|
@@ -25,6 +25,7 @@ declare function setUserRepoConfig({ gitIgnoredAuthors, gitAuthor }: RenovateCon
|
|
|
25
25
|
declare function getSubmodules(): Promise<string[]>;
|
|
26
26
|
declare function cloneSubmodules(shouldClone: boolean, cloneSubmodulesFilter: string[] | undefined): Promise<void>;
|
|
27
27
|
declare function isCloned(): boolean;
|
|
28
|
+
declare function isFileModeEnabled(): Promise<boolean>;
|
|
28
29
|
declare const syncGit: () => Promise<void>;
|
|
29
30
|
declare function getRepoStatus(path?: string): Promise<StatusResult>;
|
|
30
31
|
declare function branchExists(branchName: string): boolean;
|
|
@@ -135,5 +136,5 @@ declare function diffCommitTree(parentCommitSha: LongCommitSha, commitSha: LongC
|
|
|
135
136
|
declare function syncForkWithUpstream(branchName: string): Promise<void>;
|
|
136
137
|
declare function getRemotes(): Promise<string[]>;
|
|
137
138
|
//#endregion
|
|
138
|
-
export { GIT_MINIMUM_VERSION, RENOVATE_FORK_UPSTREAM, branchExists, checkoutBranch, checkoutBranchFromRemote, clearRenovateRefs, cloneSubmodules, commitFiles, createSimpleGit, deleteBranch, diffCommitTree, fetchBranch, fetchRevSpec, forcePushToRemote, getBranchCommit, getBranchFiles, getBranchFilesFromCommit, getBranchLastCommitTime, getBranchList, getBranchUpdateDate, getCommitMessages, getCommitTreeSha, getFile, getFileList, getFiles, getRemotes, getRepoStatus, getSubmodules, getUrl, gitRetry, hasDiff, initRepo, isBranchBehindBase, isBranchConflicted, isBranchModified, isCloned, mergeBranch, mergeToLocal, prepareCommit, pushCommit, pushCommitToRenovateRef, resetHardFromRemote, resetToCommit, setGitAuthor, setNoVerify, setPrivateKey, setUserRepoConfig, syncForkWithUpstream, syncGit, validateGitVersion, writeGitAuthor };
|
|
139
|
+
export { GIT_MINIMUM_VERSION, RENOVATE_FORK_UPSTREAM, branchExists, checkoutBranch, checkoutBranchFromRemote, clearRenovateRefs, cloneSubmodules, commitFiles, createSimpleGit, deleteBranch, diffCommitTree, fetchBranch, fetchRevSpec, forcePushToRemote, getBranchCommit, getBranchFiles, getBranchFilesFromCommit, getBranchLastCommitTime, getBranchList, getBranchUpdateDate, getCommitMessages, getCommitTreeSha, getFile, getFileList, getFiles, getRemotes, getRepoStatus, getSubmodules, getUrl, gitRetry, hasDiff, initRepo, isBranchBehindBase, isBranchConflicted, isBranchModified, isCloned, isFileModeEnabled, mergeBranch, mergeToLocal, prepareCommit, pushCommit, pushCommitToRenovateRef, resetHardFromRemote, resetToCommit, setGitAuthor, setNoVerify, setPrivateKey, setUserRepoConfig, syncForkWithUpstream, syncGit, validateGitVersion, writeGitAuthor };
|
|
139
140
|
//# sourceMappingURL=index.d.ts.map
|