renovate 39.176.3 → 40.0.0-next.1
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/migrations/custom/package-rules-migration.js.map +1 -1
- package/dist/config/migrations/migrations-service.d.ts +2 -2
- package/dist/config/migrations/migrations-service.js.map +1 -1
- package/dist/config/migrations/types.d.ts +1 -3
- package/dist/config/migrations/types.js.map +1 -1
- package/dist/config/options/index.js +1 -1
- package/dist/config/options/index.js.map +1 -1
- package/dist/config/presets/internal/group.js +0 -1
- package/dist/config/presets/internal/group.js.map +1 -1
- package/dist/config/presets/types.d.ts +4 -4
- package/dist/config/presets/types.js.map +1 -1
- package/dist/config-validator.js.map +1 -1
- package/dist/logger/utils.js +4 -2
- package/dist/logger/utils.js.map +1 -1
- package/dist/modules/datasource/artifactory/index.js +1 -1
- package/dist/modules/datasource/artifactory/index.js.map +1 -1
- package/dist/modules/datasource/conan/index.js +1 -1
- package/dist/modules/datasource/conan/index.js.map +1 -1
- package/dist/modules/datasource/crate/index.js.map +1 -1
- package/dist/modules/datasource/datasource.d.ts +1 -1
- package/dist/modules/datasource/datasource.js +3 -1
- package/dist/modules/datasource/datasource.js.map +1 -1
- package/dist/modules/datasource/deb/common.d.ts +3 -3
- package/dist/modules/datasource/deb/common.js.map +1 -1
- package/dist/modules/datasource/docker/ecr.js +1 -1
- package/dist/modules/datasource/docker/ecr.js.map +1 -1
- package/dist/modules/datasource/docker/index.js.map +1 -1
- package/dist/modules/datasource/hexpm-bob/index.js +1 -1
- package/dist/modules/datasource/hexpm-bob/index.js.map +1 -1
- package/dist/modules/datasource/nuget/v2.js +1 -1
- package/dist/modules/datasource/nuget/v2.js.map +1 -1
- package/dist/modules/datasource/pod/index.js +1 -2
- package/dist/modules/datasource/pod/index.js.map +1 -1
- package/dist/modules/datasource/rubygems/metadata-cache.js.map +1 -1
- package/dist/modules/datasource/sbt-plugin/index.js +1 -2
- package/dist/modules/datasource/sbt-plugin/index.js.map +1 -1
- package/dist/modules/manager/ansible-galaxy/collections-metadata.js +1 -2
- package/dist/modules/manager/ansible-galaxy/collections-metadata.js.map +1 -1
- package/dist/modules/manager/asdf/upgradeable-tooling.js +4 -4
- package/dist/modules/manager/asdf/upgradeable-tooling.js.map +1 -1
- package/dist/modules/manager/batect/extract.js.map +1 -1
- package/dist/modules/manager/bazel/artifacts.js +2 -2
- package/dist/modules/manager/bazel/artifacts.js.map +1 -1
- package/dist/modules/manager/bazel/common.js +1 -2
- package/dist/modules/manager/bazel/common.js.map +1 -1
- package/dist/modules/manager/bazel/parser.js +1 -1
- package/dist/modules/manager/bazel/parser.js.map +1 -1
- package/dist/modules/manager/bazel-module/parser/context.d.ts +4 -3
- package/dist/modules/manager/bazel-module/parser/context.js +9 -6
- package/dist/modules/manager/bazel-module/parser/context.js.map +1 -1
- package/dist/modules/manager/bazel-module/parser/extension-tags.js +10 -2
- package/dist/modules/manager/bazel-module/parser/extension-tags.js.map +1 -1
- package/dist/modules/manager/bazel-module/parser/fragments.d.ts +20 -2
- package/dist/modules/manager/bazel-module/parser/fragments.js +8 -2
- package/dist/modules/manager/bazel-module/parser/fragments.js.map +1 -1
- package/dist/modules/manager/bazel-module/parser/index.js +1 -1
- package/dist/modules/manager/bazel-module/parser/index.js.map +1 -1
- package/dist/modules/manager/bazel-module/parser/maven.d.ts +16 -0
- package/dist/modules/manager/bazel-module/parser/oci.d.ts +8 -0
- package/dist/modules/manager/bazel-module/parser/oci.js +4 -1
- package/dist/modules/manager/bazel-module/parser/oci.js.map +1 -1
- package/dist/modules/manager/bun/artifacts.js +1 -1
- package/dist/modules/manager/bun/artifacts.js.map +1 -1
- package/dist/modules/manager/bundler/extract.js.map +1 -1
- package/dist/modules/manager/cargo/artifacts.js +1 -1
- package/dist/modules/manager/cargo/artifacts.js.map +1 -1
- package/dist/modules/manager/cargo/extract.js.map +1 -1
- package/dist/modules/manager/cargo/types.d.ts +1 -3
- package/dist/modules/manager/cargo/types.js.map +1 -1
- package/dist/modules/manager/composer/utils.js +4 -4
- package/dist/modules/manager/composer/utils.js.map +1 -1
- package/dist/modules/manager/deps-edn/extract.js +3 -3
- package/dist/modules/manager/deps-edn/extract.js.map +1 -1
- package/dist/modules/manager/deps-edn/types.js.map +1 -1
- package/dist/modules/manager/dockerfile/extract.js +2 -3
- package/dist/modules/manager/dockerfile/extract.js.map +1 -1
- package/dist/modules/manager/fingerprint.generated.js +17 -17
- package/dist/modules/manager/fingerprint.generated.js.map +1 -1
- package/dist/modules/manager/flux/types.d.ts +3 -3
- package/dist/modules/manager/flux/types.js.map +1 -1
- package/dist/modules/manager/git-submodules/types.d.ts +2 -2
- package/dist/modules/manager/git-submodules/types.js.map +1 -1
- package/dist/modules/manager/github-actions/extract.js +2 -2
- package/dist/modules/manager/github-actions/extract.js.map +1 -1
- package/dist/modules/manager/glasskube/types.d.ts +2 -2
- package/dist/modules/manager/glasskube/types.js.map +1 -1
- package/dist/modules/manager/gleam/artifacts.js +1 -1
- package/dist/modules/manager/gleam/artifacts.js.map +1 -1
- package/dist/modules/manager/gradle/utils.js +6 -2
- package/dist/modules/manager/gradle/utils.js.map +1 -1
- package/dist/modules/manager/haskell-cabal/extract.js +1 -1
- package/dist/modules/manager/haskell-cabal/extract.js.map +1 -1
- package/dist/modules/manager/helmfile/artifacts.js +1 -1
- package/dist/modules/manager/helmfile/artifacts.js.map +1 -1
- package/dist/modules/manager/helmfile/extract.js +2 -2
- package/dist/modules/manager/helmfile/extract.js.map +1 -1
- package/dist/modules/manager/helmv3/artifacts.js +1 -1
- package/dist/modules/manager/helmv3/artifacts.js.map +1 -1
- package/dist/modules/manager/helmv3/extract.js.map +1 -1
- package/dist/modules/manager/helmv3/utils.js +1 -1
- package/dist/modules/manager/helmv3/utils.js.map +1 -1
- package/dist/modules/manager/homebrew/util.js +1 -2
- package/dist/modules/manager/homebrew/util.js.map +1 -1
- package/dist/modules/manager/jsonnet-bundler/extract.js +1 -1
- package/dist/modules/manager/jsonnet-bundler/extract.js.map +1 -1
- package/dist/modules/manager/leiningen/extract.js +1 -2
- package/dist/modules/manager/leiningen/extract.js.map +1 -1
- package/dist/modules/manager/maven/extract.js.map +1 -1
- package/dist/modules/manager/maven/update.js.map +1 -1
- package/dist/modules/manager/mise/upgradeable-tooling.js +7 -7
- package/dist/modules/manager/mise/upgradeable-tooling.js.map +1 -1
- package/dist/modules/manager/nix/extract.js +1 -1
- package/dist/modules/manager/nix/extract.js.map +1 -1
- package/dist/modules/manager/npm/extract/pnpm.js +1 -1
- package/dist/modules/manager/npm/extract/pnpm.js.map +1 -1
- package/dist/modules/manager/npm/post-update/index.js +1 -1
- package/dist/modules/manager/npm/post-update/index.js.map +1 -1
- package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
- package/dist/modules/manager/npm/update/dependency/index.js +1 -1
- package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
- package/dist/modules/manager/nuget/config-formatter.js +1 -2
- package/dist/modules/manager/nuget/config-formatter.js.map +1 -1
- package/dist/modules/manager/nuget/package-tree.js +1 -1
- package/dist/modules/manager/nuget/package-tree.js.map +1 -1
- package/dist/modules/manager/nuget/util.js +2 -2
- package/dist/modules/manager/nuget/util.js.map +1 -1
- package/dist/modules/manager/osgi/extract.js +3 -3
- package/dist/modules/manager/osgi/extract.js.map +1 -1
- package/dist/modules/manager/pep621/processors/pdm.js +1 -1
- package/dist/modules/manager/pep621/processors/pdm.js.map +1 -1
- package/dist/modules/manager/pep621/processors/uv.js +3 -2
- package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
- package/dist/modules/manager/pip-compile/artifacts.js +8 -2
- package/dist/modules/manager/pip-compile/artifacts.js.map +1 -1
- package/dist/modules/manager/pip-compile/common.d.ts +5 -3
- package/dist/modules/manager/pip-compile/common.js +34 -13
- package/dist/modules/manager/pip-compile/common.js.map +1 -1
- package/dist/modules/manager/pip-compile/extract.js.map +1 -1
- package/dist/modules/manager/pip-compile/types.d.ts +1 -0
- package/dist/modules/manager/pip-compile/types.js.map +1 -1
- package/dist/modules/manager/poetry/artifacts.js +2 -2
- package/dist/modules/manager/poetry/artifacts.js.map +1 -1
- package/dist/modules/manager/pre-commit/types.d.ts +2 -2
- package/dist/modules/manager/pre-commit/types.js.map +1 -1
- package/dist/modules/manager/pub/artifacts.js +1 -1
- package/dist/modules/manager/pub/artifacts.js.map +1 -1
- package/dist/modules/manager/swift/extract.js +1 -2
- package/dist/modules/manager/swift/extract.js.map +1 -1
- package/dist/modules/manager/terraform/extractors/terraform-block/required-provider.js +2 -2
- package/dist/modules/manager/terraform/extractors/terraform-block/required-provider.js.map +1 -1
- package/dist/modules/manager/terraform/hcl/types.d.ts +1 -3
- package/dist/modules/manager/terraform/hcl/types.js.map +1 -1
- package/dist/modules/manager/terraform/lockfile/index.js +1 -1
- package/dist/modules/manager/terraform/lockfile/index.js.map +1 -1
- package/dist/modules/manager/terragrunt/artifacts.js +1 -1
- package/dist/modules/manager/terragrunt/artifacts.js.map +1 -1
- package/dist/modules/manager/types.d.ts +1 -0
- package/dist/modules/manager/types.js.map +1 -1
- package/dist/modules/manager/woodpecker/types.d.ts +2 -2
- package/dist/modules/manager/woodpecker/types.js.map +1 -1
- package/dist/modules/platform/azure/azure-helper.js.map +1 -1
- package/dist/modules/platform/azure/index.js +1 -1
- package/dist/modules/platform/azure/index.js.map +1 -1
- package/dist/modules/platform/bitbucket/index.js.map +1 -1
- package/dist/modules/platform/bitbucket/utils.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/index.js +2 -2
- package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
- package/dist/modules/platform/gerrit/scm.js +1 -1
- package/dist/modules/platform/gerrit/scm.js.map +1 -1
- package/dist/modules/platform/gitea/index.js +6 -5
- package/dist/modules/platform/gitea/index.js.map +1 -1
- package/dist/modules/platform/gitea/pr-cache.d.ts +3 -2
- package/dist/modules/platform/gitea/pr-cache.js +21 -12
- package/dist/modules/platform/gitea/pr-cache.js.map +1 -1
- package/dist/modules/platform/github/index.js.map +1 -1
- package/dist/modules/platform/gitlab/index.js +20 -16
- package/dist/modules/platform/gitlab/index.js.map +1 -1
- package/dist/modules/platform/types.d.ts +2 -2
- package/dist/modules/platform/types.js.map +1 -1
- package/dist/modules/versioning/bazel-module/bzlmod-version.d.ts +1 -1
- package/dist/modules/versioning/bazel-module/bzlmod-version.js.map +1 -1
- package/dist/modules/versioning/generic.d.ts +2 -6
- package/dist/modules/versioning/generic.js.map +1 -1
- package/dist/modules/versioning/gradle/compare.d.ts +2 -2
- package/dist/modules/versioning/gradle/compare.js.map +1 -1
- package/dist/modules/versioning/gradle/index.js +1 -1
- package/dist/modules/versioning/gradle/index.js.map +1 -1
- package/dist/modules/versioning/pvp/range.js +2 -2
- package/dist/modules/versioning/pvp/range.js.map +1 -1
- package/dist/modules/versioning/rpm/index.js +5 -5
- package/dist/modules/versioning/rpm/index.js.map +1 -1
- package/dist/modules/versioning/semver-coerced/index.js +4 -4
- package/dist/modules/versioning/semver-coerced/index.js.map +1 -1
- package/dist/modules/versioning/types.d.ts +1 -3
- package/dist/modules/versioning/types.js.map +1 -1
- package/dist/types/git.d.ts +2 -2
- package/dist/types/git.js.map +1 -1
- package/dist/types/platform/github/index.d.ts +4 -4
- package/dist/types/platform/github/index.js.map +1 -1
- package/dist/types/platform/gitlab/index.d.ts +2 -2
- package/dist/types/platform/gitlab/index.js.map +1 -1
- package/dist/util/assign-keys.d.ts +1 -3
- package/dist/util/assign-keys.js.map +1 -1
- package/dist/util/cache/repository/http-cache.js +1 -1
- package/dist/util/cache/repository/http-cache.js.map +1 -1
- package/dist/util/exec/types.d.ts +2 -2
- package/dist/util/exec/types.js.map +1 -1
- package/dist/util/git/auth.js +1 -1
- package/dist/util/git/auth.js.map +1 -1
- package/dist/util/git/index.d.ts +10 -10
- package/dist/util/git/index.js +22 -26
- package/dist/util/git/index.js.map +1 -1
- package/dist/util/http/bitbucket.js.map +1 -1
- package/dist/util/http/cache/abstract-http-cache-provider.js +1 -1
- package/dist/util/http/cache/abstract-http-cache-provider.js.map +1 -1
- package/dist/util/http/index.js.map +1 -1
- package/dist/util/http/types.d.ts +3 -5
- package/dist/util/http/types.js.map +1 -1
- package/dist/util/pretty-time.js.map +1 -1
- package/dist/util/schema-utils.js.map +1 -1
- package/dist/util/stats.js +1 -0
- package/dist/util/stats.js.map +1 -1
- package/dist/workers/repository/dependency-dashboard.js +2 -2
- package/dist/workers/repository/dependency-dashboard.js.map +1 -1
- package/dist/workers/repository/init/config.d.ts +1 -2
- package/dist/workers/repository/init/config.js +0 -13
- package/dist/workers/repository/init/config.js.map +1 -1
- package/dist/workers/repository/init/merge.d.ts +2 -1
- package/dist/workers/repository/init/merge.js +13 -3
- package/dist/workers/repository/init/merge.js.map +1 -1
- package/dist/workers/repository/model/commit-message.js.map +1 -1
- package/dist/workers/repository/process/vulnerabilities.js +3 -1
- package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
- package/dist/workers/repository/process/write.js +1 -1
- package/dist/workers/repository/process/write.js.map +1 -1
- package/dist/workers/repository/reconfigure/validate.js +3 -1
- package/dist/workers/repository/reconfigure/validate.js.map +1 -1
- package/dist/workers/repository/update/branch/schedule.js +1 -1
- package/dist/workers/repository/update/branch/schedule.js.map +1 -1
- package/dist/workers/repository/update/pr/body/updates-table.js.map +1 -1
- package/dist/workers/repository/updates/generate.js +9 -0
- package/dist/workers/repository/updates/generate.js.map +1 -1
- package/package.json +32 -25
- package/renovate-schema.json +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/npm/post-update/index.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO: types (#22198)\nimport is from '@sindresorhus/is';\nimport deepmerge from 'deepmerge';\nimport upath from 'upath';\nimport { logger } from '../../../../logger';\nimport { ExternalHostError } from '../../../../types/errors/external-host-error';\nimport { getChildProcessEnv } from '../../../../util/exec/env';\nimport {\n ensureCacheDir,\n getSiblingFileName,\n readLocalFile,\n writeLocalFile,\n} from '../../../../util/fs';\nimport { getFile, getRepoStatus } from '../../../../util/git';\nimport type { FileChange } from '../../../../util/git/types';\nimport * as hostRules from '../../../../util/host-rules';\nimport { newlineRegex, regEx } from '../../../../util/regex';\nimport { ensureTrailingSlash } from '../../../../util/url';\nimport { dump, parseSingleYaml } from '../../../../util/yaml';\nimport { NpmDatasource } from '../../../datasource/npm';\nimport { scm } from '../../../platform/scm';\nimport type { PackageFile, PostUpdateConfig, Upgrade } from '../../types';\nimport { getZeroInstallPaths } from '../extract/yarn';\nimport type { NpmManagerData } from '../types';\nimport {\n composeLockFile,\n getNpmrcContent,\n parseLockFile,\n resetNpmrcContent,\n updateNpmrcContent,\n} from '../utils';\nimport * as npm from './npm';\nimport * as pnpm from './pnpm';\nimport { processHostRules } from './rules';\nimport type {\n AdditionalPackageFiles,\n ArtifactError,\n DetermineLockFileDirsResult,\n WriteExistingFilesResult,\n YarnRcYmlFile,\n} from './types';\nimport * as yarn from './yarn';\n\n// Strips empty values, deduplicates, and returns the directories from filenames\nconst getDirs = (arr: (string | null | undefined)[]): string[] =>\n Array.from(new Set(arr.filter(is.string)));\n\nexport function determineLockFileDirs(\n config: PostUpdateConfig,\n packageFiles: AdditionalPackageFiles,\n): DetermineLockFileDirsResult {\n const npmLockDirs: (string | undefined)[] = [];\n const yarnLockDirs: (string | undefined)[] = [];\n const pnpmShrinkwrapDirs: (string | undefined)[] = [];\n\n for (const upgrade of config.upgrades) {\n if (\n upgrade.updateType === 'lockFileMaintenance' ||\n upgrade.isRemediation === true ||\n upgrade.isLockfileUpdate === true\n ) {\n yarnLockDirs.push(upgrade.managerData?.yarnLock);\n npmLockDirs.push(upgrade.managerData?.npmLock);\n pnpmShrinkwrapDirs.push(upgrade.managerData?.pnpmShrinkwrap);\n }\n }\n\n if (\n config.upgrades.every(\n (upgrade: Upgrade) =>\n upgrade.updateType === 'lockFileMaintenance' ||\n upgrade.isLockfileUpdate,\n )\n ) {\n return {\n yarnLockDirs: getDirs(yarnLockDirs),\n npmLockDirs: getDirs(npmLockDirs),\n pnpmShrinkwrapDirs: getDirs(pnpmShrinkwrapDirs),\n };\n }\n\n function getPackageFile(\n fileName: string,\n ): Partial<PackageFile<NpmManagerData>> {\n logger.trace('Looking for packageFile: ' + fileName);\n\n for (const packageFile of packageFiles.npm!) {\n if (packageFile.packageFile === fileName) {\n logger.trace({ packageFile }, 'Found packageFile');\n return packageFile;\n }\n logger.trace('No match');\n }\n return {};\n }\n\n // TODO #22198\n for (const p of config.updatedPackageFiles!) {\n logger.trace(`Checking ${String(p.path)} for lock files`);\n const packageFile = getPackageFile(p.path);\n // istanbul ignore if\n if (!packageFile.managerData) {\n continue;\n }\n // push full lock file names and convert them later\n yarnLockDirs.push(packageFile.managerData.yarnLock);\n npmLockDirs.push(packageFile.managerData.npmLock);\n pnpmShrinkwrapDirs.push(packageFile.managerData.pnpmShrinkwrap);\n }\n\n return {\n yarnLockDirs: getDirs(yarnLockDirs),\n npmLockDirs: getDirs(npmLockDirs),\n pnpmShrinkwrapDirs: getDirs(pnpmShrinkwrapDirs),\n };\n}\n\nexport async function writeExistingFiles(\n config: PostUpdateConfig,\n packageFiles: AdditionalPackageFiles,\n): Promise<void> {\n if (!packageFiles.npm) {\n return;\n }\n const npmFiles = packageFiles.npm;\n logger.debug(\n { packageFiles: npmFiles.map((n) => n.packageFile) },\n 'Writing package.json files',\n );\n for (const packageFile of npmFiles) {\n // istanbul ignore if\n if (!packageFile.managerData) {\n continue;\n }\n // TODO #22198\n const basedir = upath.dirname(packageFile.packageFile!);\n const npmrc = packageFile.npmrc;\n const npmrcFilename = upath.join(basedir, '.npmrc');\n if (is.string(npmrc)) {\n try {\n await writeLocalFile(npmrcFilename, npmrc.replace(/\\n?$/, '\\n'));\n } catch (err) /* istanbul ignore next */ {\n logger.warn({ npmrcFilename, err }, 'Error writing .npmrc');\n }\n }\n const npmLock = packageFile.managerData.npmLock;\n if (npmLock) {\n const npmLockPath = npmLock;\n logger.debug(`Writing ${npmLock}`);\n let existingNpmLock: string;\n try {\n existingNpmLock = (await getFile(npmLock)) ?? '';\n } catch (err) /* istanbul ignore next */ {\n logger.warn({ err }, 'Error reading npm lock file');\n existingNpmLock = '';\n }\n const { detectedIndent, lockFileParsed: npmLockParsed } =\n parseLockFile(existingNpmLock);\n if (npmLockParsed) {\n const packageNames =\n 'packages' in npmLockParsed\n ? Object.keys(npmLockParsed.packages)\n : [];\n const widens: string[] = [];\n let lockFileChanged = false;\n for (const upgrade of config.upgrades) {\n if (upgrade.lockFiles && !upgrade.lockFiles.includes(npmLock)) {\n continue;\n }\n if (!upgrade.managerData) {\n continue;\n }\n if (\n upgrade.rangeStrategy === 'widen' &&\n upgrade.managerData.npmLock === npmLock\n ) {\n // TODO #22198\n widens.push(upgrade.depName!);\n }\n const { depName } = upgrade;\n for (const packageName of packageNames) {\n if (\n 'packages' in npmLockParsed &&\n (packageName === `node_modules/${depName}` ||\n packageName.startsWith(`node_modules/${depName}/`))\n ) {\n logger.trace({ packageName }, 'Massaging out package name');\n lockFileChanged = true;\n delete npmLockParsed.packages[packageName];\n }\n }\n }\n if (widens.length) {\n logger.debug(\n `Removing ${String(widens)} from ${npmLock} to force an update`,\n );\n lockFileChanged = true;\n try {\n if ('dependencies' in npmLockParsed && npmLockParsed.dependencies) {\n widens.forEach((depName) => {\n // TODO #22198\n delete npmLockParsed.dependencies![depName];\n });\n }\n } catch /* istanbul ignore next */ {\n logger.warn(\n { npmLock },\n 'Error massaging package-lock.json for widen',\n );\n }\n }\n if (lockFileChanged) {\n logger.debug('Massaging npm lock file before writing to disk');\n existingNpmLock = composeLockFile(npmLockParsed, detectedIndent);\n }\n await writeLocalFile(npmLockPath, existingNpmLock);\n }\n }\n }\n}\n\nexport async function writeUpdatedPackageFiles(\n config: PostUpdateConfig,\n): Promise<void> {\n logger.trace({ config }, 'writeUpdatedPackageFiles');\n logger.debug('Writing any updated package files');\n if (!config.updatedPackageFiles) {\n logger.debug('No files found');\n return;\n }\n const supportedLockFiles = ['package-lock.json', 'yarn.lock'];\n for (const packageFile of config.updatedPackageFiles) {\n if (packageFile.type !== 'addition') {\n continue;\n }\n if (\n supportedLockFiles.some((fileName) => packageFile.path.endsWith(fileName))\n ) {\n logger.debug(`Writing lock file: ${packageFile.path}`);\n // TODO #22198\n\n await writeLocalFile(packageFile.path, packageFile.contents!);\n continue;\n }\n if (\n !(\n packageFile.path.endsWith('package.json') ||\n packageFile.path.endsWith('pnpm-workspace.yaml')\n )\n ) {\n continue;\n }\n logger.debug(`Writing ${packageFile.path}`);\n await writeLocalFile(packageFile.path, packageFile.contents!);\n }\n}\n\n// istanbul ignore next\nasync function updateYarnOffline(\n lockFileDir: string,\n updatedArtifacts: FileChange[],\n): Promise<void> {\n try {\n const resolvedPaths: string[] = [];\n const yarnrcYml = await getFile(upath.join(lockFileDir, '.yarnrc.yml'));\n const yarnrc = await getFile(upath.join(lockFileDir, '.yarnrc'));\n\n // As .yarnrc.yml overrides .yarnrc in Yarn 1 (https://git.io/JUcco)\n // both files may exist, so check for .yarnrc.yml first\n if (yarnrcYml) {\n // Yarn 2 (offline cache and zero-installs)\n const paths = getZeroInstallPaths(yarnrcYml);\n resolvedPaths.push(...paths.map((p) => upath.join(lockFileDir, p)));\n } else if (yarnrc) {\n // Yarn 1 (offline mirror)\n const mirrorLine = yarnrc\n .split(newlineRegex)\n .find((line) => line.startsWith('yarn-offline-mirror '));\n if (mirrorLine) {\n const mirrorPath = ensureTrailingSlash(\n mirrorLine.split(' ')[1].replace(regEx(/\"/g), ''),\n );\n resolvedPaths.push(upath.join(lockFileDir, mirrorPath));\n }\n }\n logger.debug({ resolvedPaths }, 'updateYarnOffline resolvedPaths');\n\n if (resolvedPaths.length) {\n const status = await getRepoStatus();\n for (const f of status.modified.concat(status.not_added)) {\n if (resolvedPaths.some((p) => f.startsWith(p))) {\n updatedArtifacts.push({\n type: 'addition',\n path: f,\n contents: await readLocalFile(f),\n });\n }\n }\n for (const f of status.deleted || []) {\n if (resolvedPaths.some((p) => f.startsWith(p))) {\n updatedArtifacts.push({ type: 'deletion', path: f });\n }\n }\n }\n } catch (err) {\n logger.error({ err }, 'Error updating yarn offline packages');\n }\n}\n\n// TODO: move to ./yarn.ts\n// exported for testing\nexport async function updateYarnBinary(\n lockFileDir: string,\n updatedArtifacts: FileChange[],\n existingYarnrcYmlContent: string | undefined | null,\n): Promise<string | undefined | null> {\n let yarnrcYml = existingYarnrcYmlContent;\n try {\n const yarnrcYmlFilename = upath.join(lockFileDir, '.yarnrc.yml');\n yarnrcYml ??= (await getFile(yarnrcYmlFilename)) ?? undefined;\n const newYarnrcYml = await readLocalFile(yarnrcYmlFilename, 'utf8');\n if (!is.string(yarnrcYml) || !is.string(newYarnrcYml)) {\n return existingYarnrcYmlContent;\n }\n\n // TODO: use schema (#9610)\n const oldYarnPath = parseSingleYaml<YarnRcYmlFile>(yarnrcYml)?.yarnPath;\n const newYarnPath = parseSingleYaml<YarnRcYmlFile>(newYarnrcYml)?.yarnPath;\n if (\n !is.nonEmptyStringAndNotWhitespace(oldYarnPath) ||\n !is.nonEmptyStringAndNotWhitespace(newYarnPath)\n ) {\n return existingYarnrcYmlContent;\n }\n\n const oldYarnFullPath = upath.join(lockFileDir, oldYarnPath);\n const newYarnFullPath = upath.join(lockFileDir, newYarnPath);\n logger.debug({ oldYarnPath, newYarnPath }, 'Found updated Yarn binary');\n\n yarnrcYml = yarnrcYml.replace(oldYarnPath, newYarnPath);\n updatedArtifacts.push(\n {\n type: 'addition',\n path: yarnrcYmlFilename,\n contents: yarnrcYml,\n },\n {\n type: 'deletion',\n path: oldYarnFullPath,\n },\n {\n type: 'addition',\n path: newYarnFullPath,\n contents: await readLocalFile(newYarnFullPath, 'utf8'),\n isExecutable: true,\n },\n );\n } catch (err) /* istanbul ignore next */ {\n logger.error({ err }, 'Error updating Yarn binary');\n }\n return existingYarnrcYmlContent && yarnrcYml;\n}\n\nexport async function getAdditionalFiles(\n config: PostUpdateConfig<NpmManagerData>,\n packageFiles: AdditionalPackageFiles,\n): Promise<WriteExistingFilesResult> {\n logger.trace({ config }, 'getAdditionalFiles');\n const artifactErrors: ArtifactError[] = [];\n const updatedArtifacts: FileChange[] = [];\n if (!packageFiles.npm?.length) {\n return { artifactErrors, updatedArtifacts };\n }\n if (!config.updateLockFiles) {\n logger.debug('Skipping lock file generation');\n return { artifactErrors, updatedArtifacts };\n }\n logger.debug('Getting updated lock files');\n if (\n config.updateType === 'lockFileMaintenance' &&\n config.reuseExistingBranch &&\n (await scm.branchExists(config.branchName))\n ) {\n logger.debug('Skipping lockFileMaintenance update');\n return { artifactErrors, updatedArtifacts };\n }\n const dirs = determineLockFileDirs(config, packageFiles);\n logger.trace({ dirs }, 'lock file dirs');\n await writeExistingFiles(config, packageFiles);\n await writeUpdatedPackageFiles(config);\n\n const { additionalNpmrcContent, additionalYarnRcYml } = processHostRules();\n\n const env = {\n ...getChildProcessEnv(),\n NPM_CONFIG_CACHE: await ensureCacheDir('npm'),\n YARN_CACHE_FOLDER: await ensureCacheDir('yarn'),\n YARN_GLOBAL_FOLDER: await ensureCacheDir('berry'),\n npm_config_store: await ensureCacheDir('pnpm'),\n NODE_ENV: 'dev',\n };\n\n let token: string | undefined;\n try {\n ({ token } = hostRules.find({\n hostType: 'github',\n url: 'https://api.github.com/',\n }));\n token = token ? /* istanbul ignore next */ `${token}@` : token;\n } catch (err) /* istanbul ignore next */ {\n logger.warn({ err }, 'Error getting token for packageFile');\n }\n const tokenRe = regEx(`${token ?? ''}`, 'g', false);\n for (const npmLock of dirs.npmLockDirs) {\n const lockFileDir = upath.dirname(npmLock);\n const npmrcContent = await getNpmrcContent(lockFileDir);\n await updateNpmrcContent(lockFileDir, npmrcContent, additionalNpmrcContent);\n const fileName = upath.basename(npmLock);\n logger.debug(`Generating ${fileName} for ${lockFileDir}`);\n const upgrades = config.upgrades.filter(\n (upgrade) => upgrade.managerData?.npmLock === npmLock,\n );\n const res = await npm.generateLockFile(\n lockFileDir,\n env,\n fileName,\n config,\n upgrades,\n );\n if (res.error) {\n // istanbul ignore if\n if (res.stderr?.includes('No matching version found for')) {\n for (const upgrade of config.upgrades) {\n if (\n res.stderr.includes(\n `No matching version found for ${upgrade.depName}`,\n )\n ) {\n logger.debug(\n { dependency: upgrade.depName, type: 'npm' },\n 'lock file failed for the dependency being updated - skipping branch creation',\n );\n const err = new Error(\n 'lock file failed for the dependency being updated - skipping branch creation',\n );\n throw new ExternalHostError(err, NpmDatasource.id);\n }\n }\n }\n artifactErrors.push({\n lockFile: npmLock,\n stderr: res.stderr,\n });\n } else if (res.lockFile) {\n const existingContent = await getFile(\n npmLock,\n config.reuseExistingBranch ? config.branchName : config.baseBranch,\n );\n if (res.lockFile === existingContent) {\n logger.debug(`${npmLock} hasn't changed`);\n } else {\n logger.debug(`${npmLock} needs updating`);\n updatedArtifacts.push({\n type: 'addition',\n path: npmLock,\n // TODO: can this be undefined? (#22198)\n\n contents: res.lockFile.replace(tokenRe, ''),\n });\n }\n }\n await resetNpmrcContent(lockFileDir, npmrcContent);\n }\n\n for (const yarnLock of dirs.yarnLockDirs) {\n const lockFileDir = upath.dirname(yarnLock);\n const npmrcContent = await getNpmrcContent(lockFileDir);\n await updateNpmrcContent(lockFileDir, npmrcContent, additionalNpmrcContent);\n let yarnRcYmlFilename: string | undefined;\n let existingYarnrcYmlContent: string | undefined | null;\n if (additionalYarnRcYml) {\n yarnRcYmlFilename = getSiblingFileName(yarnLock, '.yarnrc.yml');\n existingYarnrcYmlContent = await readLocalFile(yarnRcYmlFilename, 'utf8');\n if (existingYarnrcYmlContent) {\n try {\n // TODO: use schema (#9610)\n const existingYarnrRcYml = parseSingleYaml<Record<string, unknown>>(\n existingYarnrcYmlContent,\n );\n\n const updatedYarnYrcYml = deepmerge(\n existingYarnrRcYml,\n yarn.fuzzyMatchAdditionalYarnrcYml(\n additionalYarnRcYml,\n existingYarnrRcYml,\n ),\n );\n\n await writeLocalFile(yarnRcYmlFilename, dump(updatedYarnYrcYml));\n logger.debug('Added authentication to .yarnrc.yml');\n } catch (err) {\n logger.warn({ err }, 'Error appending .yarnrc.yml content');\n }\n }\n }\n logger.debug(`Generating yarn.lock for ${lockFileDir}`);\n const lockFileName = upath.join(lockFileDir, 'yarn.lock');\n const upgrades = config.upgrades.filter(\n (upgrade) => upgrade.managerData?.yarnLock === yarnLock,\n );\n const res = await yarn.generateLockFile(lockFileDir, env, config, upgrades);\n if (res.error) {\n // istanbul ignore if\n if (res.stderr?.includes(`Couldn't find any versions for`)) {\n for (const upgrade of config.upgrades) {\n /* eslint-disable no-useless-escape */\n if (\n res.stderr.includes(\n `Couldn't find any versions for \\\\\\\"${upgrade.depName}\\\\\\\"`,\n )\n ) {\n logger.debug(\n { dependency: upgrade.depName, type: 'yarn' },\n 'lock file failed for the dependency being updated - skipping branch creation',\n );\n throw new ExternalHostError(\n new Error(\n 'lock file failed for the dependency being updated - skipping branch creation',\n ),\n NpmDatasource.id,\n );\n }\n /* eslint-enable no-useless-escape */\n }\n }\n artifactErrors.push({\n lockFile: yarnLock,\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n stderr: res.stderr || res.stdout,\n });\n } else {\n const existingContent = await getFile(\n lockFileName,\n config.reuseExistingBranch ? config.branchName : config.baseBranch,\n );\n if (res.lockFile === existingContent) {\n logger.debug(\"yarn.lock hasn't changed\");\n } else {\n logger.debug('yarn.lock needs updating');\n updatedArtifacts.push({\n type: 'addition',\n path: lockFileName,\n // TODO #22198\n contents: res.lockFile!,\n });\n await updateYarnOffline(lockFileDir, updatedArtifacts);\n }\n\n // istanbul ignore if: already tested seperately, needs additional test?\n if (upgrades.some(yarn.isYarnUpdate)) {\n existingYarnrcYmlContent = await updateYarnBinary(\n lockFileDir,\n updatedArtifacts,\n existingYarnrcYmlContent,\n );\n }\n }\n await resetNpmrcContent(lockFileDir, npmrcContent);\n // istanbul ignore if: needs test\n if (existingYarnrcYmlContent) {\n // TODO #22198\n await writeLocalFile(yarnRcYmlFilename!, existingYarnrcYmlContent);\n }\n }\n\n for (const pnpmShrinkwrap of dirs.pnpmShrinkwrapDirs) {\n const lockFileDir = upath.dirname(pnpmShrinkwrap);\n const npmrcContent = await getNpmrcContent(lockFileDir);\n await updateNpmrcContent(lockFileDir, npmrcContent, additionalNpmrcContent);\n logger.debug(`Generating pnpm-lock.yaml for ${lockFileDir}`);\n const upgrades = config.upgrades.filter(\n (upgrade) => upgrade.managerData?.pnpmShrinkwrap === pnpmShrinkwrap,\n );\n const res = await pnpm.generateLockFile(lockFileDir, env, config, upgrades);\n if (res.error) {\n // istanbul ignore if\n if (res.stdout?.includes(`No compatible version found:`)) {\n for (const upgrade of config.upgrades) {\n if (\n res.stdout.includes(\n `No compatible version found: ${upgrade.depName}`,\n )\n ) {\n logger.debug(\n { dependency: upgrade.depName, type: 'pnpm' },\n 'lock file failed for the dependency being updated - skipping branch creation',\n );\n throw new ExternalHostError(\n Error(\n 'lock file failed for the dependency being updated - skipping branch creation',\n ),\n NpmDatasource.id,\n );\n }\n }\n }\n artifactErrors.push({\n lockFile: pnpmShrinkwrap,\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n stderr: res.stderr || res.stdout,\n });\n } else {\n const existingContent = await getFile(\n pnpmShrinkwrap,\n config.reuseExistingBranch ? config.branchName : config.baseBranch,\n );\n if (res.lockFile === existingContent) {\n logger.debug(\"pnpm-lock.yaml hasn't changed\");\n } else {\n logger.debug('pnpm-lock.yaml needs updating');\n updatedArtifacts.push({\n type: 'addition',\n path: pnpmShrinkwrap,\n // TODO: can be undefined? (#22198)\n contents: res.lockFile!,\n });\n }\n }\n await resetNpmrcContent(lockFileDir, npmrcContent);\n }\n\n return { artifactErrors, updatedArtifacts };\n}\n"]}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/npm/post-update/index.ts"],"names":[],"mappings":";;AA+CA,sDAoEC;AAED,gDAsGC;AAED,4DAkCC;AAwDD,4CAkDC;AAED,gDA6QC;;AAxnBD,uBAAuB;AACvB,kEAAkC;AAClC,kEAAkC;AAClC,0DAA0B;AAC1B,+CAA4C;AAC5C,sFAAiF;AACjF,mDAA+D;AAC/D,4CAK6B;AAC7B,8CAA8D;AAE9D,+EAAyD;AACzD,kDAA6D;AAC7D,8CAA2D;AAC3D,gDAA8D;AAC9D,iDAAwD;AACxD,+CAA4C;AAE5C,0CAAsD;AAEtD,oCAMkB;AAClB,mDAA6B;AAC7B,qDAA+B;AAC/B,mCAA2C;AAQ3C,qDAA+B;AAE/B,gFAAgF;AAChF,MAAM,OAAO,GAAG,CAAC,GAAkC,EAAY,EAAE,CAC/D,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,YAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAE7C,SAAgB,qBAAqB,CACnC,MAAwB,EACxB,YAAoC;IAEpC,MAAM,WAAW,GAA2B,EAAE,CAAC;IAC/C,MAAM,YAAY,GAA2B,EAAE,CAAC;IAChD,MAAM,kBAAkB,GAA2B,EAAE,CAAC;IAEtD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,IACE,OAAO,CAAC,UAAU,KAAK,qBAAqB;YAC5C,OAAO,CAAC,aAAa,KAAK,IAAI;YAC9B,OAAO,CAAC,gBAAgB,KAAK,IAAI,EACjC,CAAC;YACD,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YACjD,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC/C,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,IACE,MAAM,CAAC,QAAQ,CAAC,KAAK,CACnB,CAAC,OAAgB,EAAE,EAAE,CACnB,OAAO,CAAC,UAAU,KAAK,qBAAqB;QAC5C,OAAO,CAAC,gBAAgB,CAC3B,EACD,CAAC;QACD,OAAO;YACL,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC;YACnC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC;YACjC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,CAAC;SAChD,CAAC;IACJ,CAAC;IAED,SAAS,cAAc,CACrB,QAAgB;QAEhB,eAAM,CAAC,KAAK,CAAC,2BAA2B,GAAG,QAAQ,CAAC,CAAC;QAErD,KAAK,MAAM,WAAW,IAAI,YAAY,CAAC,GAAI,EAAE,CAAC;YAC5C,IAAI,WAAW,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;gBACzC,eAAM,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,EAAE,mBAAmB,CAAC,CAAC;gBACnD,OAAO,WAAW,CAAC;YACrB,CAAC;YACD,eAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,cAAc;IACd,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,mBAAoB,EAAE,CAAC;QAC5C,eAAM,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3C,qBAAqB;QACrB,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,mDAAmD;QACnD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACpD,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAClD,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAClE,CAAC;IAED,OAAO;QACL,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC;QACnC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC;QACjC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,CAAC;KAChD,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,kBAAkB,CACtC,MAAwB,EACxB,YAAoC;IAEpC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC;IAClC,eAAM,CAAC,KAAK,CACV,EAAE,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,EACpD,4BAA4B,CAC7B,CAAC;IACF,KAAK,MAAM,WAAW,IAAI,QAAQ,EAAE,CAAC;QACnC,qBAAqB;QACrB,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,cAAc;QACd,MAAM,OAAO,GAAG,eAAK,CAAC,OAAO,CAAC,WAAW,CAAC,WAAY,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;QAChC,MAAM,aAAa,GAAG,eAAK,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACpD,IAAI,YAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,IAAA,mBAAc,EAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;YACnE,CAAC;YAAC,OAAO,GAAG,EAAE,0BAA0B,CAAC,CAAC;gBACxC,eAAM,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,sBAAsB,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC;QAChD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,WAAW,GAAG,OAAO,CAAC;YAC5B,eAAM,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;YACnC,IAAI,eAAuB,CAAC;YAC5B,IAAI,CAAC;gBACH,eAAe,GAAG,CAAC,MAAM,IAAA,aAAO,EAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YACnD,CAAC;YAAC,OAAO,GAAG,EAAE,0BAA0B,CAAC,CAAC;gBACxC,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,6BAA6B,CAAC,CAAC;gBACpD,eAAe,GAAG,EAAE,CAAC;YACvB,CAAC;YACD,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,GACrD,IAAA,qBAAa,EAAC,eAAe,CAAC,CAAC;YACjC,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,YAAY,GAChB,UAAU,IAAI,aAAa;oBACzB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;oBACrC,CAAC,CAAC,EAAE,CAAC;gBACT,MAAM,MAAM,GAAa,EAAE,CAAC;gBAC5B,IAAI,eAAe,GAAG,KAAK,CAAC;gBAC5B,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACtC,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;wBAC9D,SAAS;oBACX,CAAC;oBACD,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;wBACzB,SAAS;oBACX,CAAC;oBACD,IACE,OAAO,CAAC,aAAa,KAAK,OAAO;wBACjC,OAAO,CAAC,WAAW,CAAC,OAAO,KAAK,OAAO,EACvC,CAAC;wBACD,cAAc;wBACd,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAQ,CAAC,CAAC;oBAChC,CAAC;oBACD,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;oBAC5B,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;wBACvC,IACE,UAAU,IAAI,aAAa;4BAC3B,CAAC,WAAW,KAAK,gBAAgB,OAAO,EAAE;gCACxC,WAAW,CAAC,UAAU,CAAC,gBAAgB,OAAO,GAAG,CAAC,CAAC,EACrD,CAAC;4BACD,eAAM,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,EAAE,4BAA4B,CAAC,CAAC;4BAC5D,eAAe,GAAG,IAAI,CAAC;4BACvB,OAAO,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;wBAC7C,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClB,eAAM,CAAC,KAAK,CACV,YAAY,MAAM,CAAC,MAAM,CAAC,SAAS,OAAO,qBAAqB,CAChE,CAAC;oBACF,eAAe,GAAG,IAAI,CAAC;oBACvB,IAAI,CAAC;wBACH,IAAI,cAAc,IAAI,aAAa,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC;4BAClE,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gCACzB,cAAc;gCACd,OAAO,aAAa,CAAC,YAAa,CAAC,OAAO,CAAC,CAAC;4BAC9C,CAAC,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;oBAAC,MAAM,0BAA0B,CAAC,CAAC;wBAClC,eAAM,CAAC,IAAI,CACT,EAAE,OAAO,EAAE,EACX,6CAA6C,CAC9C,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,IAAI,eAAe,EAAE,CAAC;oBACpB,eAAM,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;oBAC/D,eAAe,GAAG,IAAA,uBAAe,EAAC,aAAa,EAAE,cAAc,CAAC,CAAC;gBACnE,CAAC;gBACD,MAAM,IAAA,mBAAc,EAAC,WAAW,EAAE,eAAe,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,wBAAwB,CAC5C,MAAwB;IAExB,eAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,0BAA0B,CAAC,CAAC;IACrD,eAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAChC,eAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC/B,OAAO;IACT,CAAC;IACD,MAAM,kBAAkB,GAAG,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;IAC9D,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;QACrD,IAAI,WAAW,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACpC,SAAS;QACX,CAAC;QACD,IACE,kBAAkB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAC1E,CAAC;YACD,eAAM,CAAC,KAAK,CAAC,sBAAsB,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;YACvD,cAAc;YAEd,MAAM,IAAA,mBAAc,EAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,QAAS,CAAC,CAAC;YAC9D,SAAS;QACX,CAAC;QACD,IACE,CAAC,CACC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;YACzC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CACjD,EACD,CAAC;YACD,SAAS;QACX,CAAC;QACD,eAAM,CAAC,KAAK,CAAC,WAAW,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5C,MAAM,IAAA,mBAAc,EAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,QAAS,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED,uBAAuB;AACvB,KAAK,UAAU,iBAAiB,CAC9B,WAAmB,EACnB,gBAA8B;IAE9B,IAAI,CAAC;QACH,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM,IAAA,aAAO,EAAC,eAAK,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,IAAA,aAAO,EAAC,eAAK,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;QAEjE,oEAAoE;QACpE,uDAAuD;QACvD,IAAI,SAAS,EAAE,CAAC;YACd,2CAA2C;YAC3C,MAAM,KAAK,GAAG,IAAA,0BAAmB,EAAC,SAAS,CAAC,CAAC;YAC7C,aAAa,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,CAAC;aAAM,IAAI,MAAM,EAAE,CAAC;YAClB,0BAA0B;YAC1B,MAAM,UAAU,GAAG,MAAM;iBACtB,KAAK,CAAC,oBAAY,CAAC;iBACnB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAC3D,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,UAAU,GAAG,IAAA,yBAAmB,EACpC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAClD,CAAC;gBACF,aAAa,CAAC,IAAI,CAAC,eAAK,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QACD,eAAM,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,EAAE,iCAAiC,CAAC,CAAC;QAEnE,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAa,GAAE,CAAC;YACrC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzD,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/C,gBAAgB,CAAC,IAAI,CAAC;wBACpB,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,CAAC;wBACP,QAAQ,EAAE,MAAM,IAAA,kBAAa,EAAC,CAAC,CAAC;qBACjC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;gBACrC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/C,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,sCAAsC,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED,0BAA0B;AAC1B,uBAAuB;AAChB,KAAK,UAAU,gBAAgB,CACpC,WAAmB,EACnB,gBAA8B,EAC9B,wBAAmD;IAEnD,IAAI,SAAS,GAAG,wBAAwB,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,iBAAiB,GAAG,eAAK,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QACjE,SAAS,KAAK,CAAC,MAAM,IAAA,aAAO,EAAC,iBAAiB,CAAC,CAAC,IAAI,SAAS,CAAC;QAC9D,MAAM,YAAY,GAAG,MAAM,IAAA,kBAAa,EAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QACpE,IAAI,CAAC,YAAE,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YACtD,OAAO,wBAAwB,CAAC;QAClC,CAAC;QAED,2BAA2B;QAC3B,MAAM,WAAW,GAAG,IAAA,sBAAe,EAAgB,SAAS,CAAC,EAAE,QAAQ,CAAC;QACxE,MAAM,WAAW,GAAG,IAAA,sBAAe,EAAgB,YAAY,CAAC,EAAE,QAAQ,CAAC;QAC3E,IACE,CAAC,YAAE,CAAC,8BAA8B,CAAC,WAAW,CAAC;YAC/C,CAAC,YAAE,CAAC,8BAA8B,CAAC,WAAW,CAAC,EAC/C,CAAC;YACD,OAAO,wBAAwB,CAAC;QAClC,CAAC;QAED,MAAM,eAAe,GAAG,eAAK,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC7D,MAAM,eAAe,GAAG,eAAK,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC7D,eAAM,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,2BAA2B,CAAC,CAAC;QAExE,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACxD,gBAAgB,CAAC,IAAI,CACnB;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,iBAAiB;YACvB,QAAQ,EAAE,SAAS;SACpB,EACD;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,eAAe;SACtB,EACD;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,eAAe;YACrB,QAAQ,EAAE,MAAM,IAAA,kBAAa,EAAC,eAAe,EAAE,MAAM,CAAC;YACtD,YAAY,EAAE,IAAI;SACnB,CACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,0BAA0B,CAAC,CAAC;QACxC,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,4BAA4B,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,wBAAwB,IAAI,SAAS,CAAC;AAC/C,CAAC;AAEM,KAAK,UAAU,kBAAkB,CACtC,MAAwC,EACxC,YAAoC;IAEpC,eAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC;IAC/C,MAAM,cAAc,GAAoB,EAAE,CAAC;IAC3C,MAAM,gBAAgB,GAAiB,EAAE,CAAC;IAC1C,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC;QAC9B,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC;IAC9C,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAC5B,eAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC9C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC;IAC9C,CAAC;IACD,eAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC3C,IACE,MAAM,CAAC,qBAAqB;QAC5B,MAAM,CAAC,mBAAmB;QAC1B,CAAC,MAAM,SAAG,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAC3C,CAAC;QACD,eAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACpD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC;IAC9C,CAAC;IACD,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACzD,eAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACzC,MAAM,kBAAkB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC/C,MAAM,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAEvC,MAAM,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,GAAG,IAAA,wBAAgB,GAAE,CAAC;IAE3E,MAAM,GAAG,GAAG;QACV,GAAG,IAAA,wBAAkB,GAAE;QACvB,gBAAgB,EAAE,MAAM,IAAA,mBAAc,EAAC,KAAK,CAAC;QAC7C,iBAAiB,EAAE,MAAM,IAAA,mBAAc,EAAC,MAAM,CAAC;QAC/C,kBAAkB,EAAE,MAAM,IAAA,mBAAc,EAAC,OAAO,CAAC;QACjD,gBAAgB,EAAE,MAAM,IAAA,mBAAc,EAAC,MAAM,CAAC;QAC9C,QAAQ,EAAE,KAAK;KAChB,CAAC;IAEF,IAAI,KAAyB,CAAC;IAC9B,IAAI,CAAC;QACH,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC;YAC1B,QAAQ,EAAE,QAAQ;YAClB,GAAG,EAAE,yBAAyB;SAC/B,CAAC,CAAC,CAAC;QACJ,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,0BAA0B,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;IACjE,CAAC;IAAC,OAAO,GAAG,EAAE,0BAA0B,CAAC,CAAC;QACxC,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,qCAAqC,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,OAAO,GAAG,IAAA,aAAK,EAAC,GAAG,KAAK,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACpD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,WAAW,GAAG,eAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,MAAM,IAAA,uBAAe,EAAC,WAAW,CAAC,CAAC;QACxD,MAAM,IAAA,0BAAkB,EAAC,WAAW,EAAE,YAAY,EAAE,sBAAsB,CAAC,CAAC;QAC5E,MAAM,QAAQ,GAAG,eAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzC,eAAM,CAAC,KAAK,CAAC,cAAc,QAAQ,QAAQ,WAAW,EAAE,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CACrC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,KAAK,OAAO,CACtD,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,gBAAgB,CACpC,WAAW,EACX,GAAG,EACH,QAAQ,EACR,MAAM,EACN,QAAQ,CACT,CAAC;QACF,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,qBAAqB;YACrB,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,+BAA+B,CAAC,EAAE,CAAC;gBAC1D,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACtC,IACE,GAAG,CAAC,MAAM,CAAC,QAAQ,CACjB,iCAAiC,OAAO,CAAC,OAAO,EAAE,CACnD,EACD,CAAC;wBACD,eAAM,CAAC,KAAK,CACV,EAAE,UAAU,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAC5C,8EAA8E,CAC/E,CAAC;wBACF,MAAM,GAAG,GAAG,IAAI,KAAK,CACnB,8EAA8E,CAC/E,CAAC;wBACF,MAAM,IAAI,uCAAiB,CAAC,GAAG,EAAE,mBAAa,CAAC,EAAE,CAAC,CAAC;oBACrD,CAAC;gBACH,CAAC;YACH,CAAC;YACD,cAAc,CAAC,IAAI,CAAC;gBAClB,QAAQ,EAAE,OAAO;gBACjB,MAAM,EAAE,GAAG,CAAC,MAAM;aACnB,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACxB,MAAM,eAAe,GAAG,MAAM,IAAA,aAAO,EACnC,OAAO,EACP,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CACnE,CAAC;YACF,IAAI,GAAG,CAAC,QAAQ,KAAK,eAAe,EAAE,CAAC;gBACrC,eAAM,CAAC,KAAK,CAAC,GAAG,OAAO,iBAAiB,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,eAAM,CAAC,KAAK,CAAC,GAAG,OAAO,iBAAiB,CAAC,CAAC;gBAC1C,gBAAgB,CAAC,IAAI,CAAC;oBACpB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,OAAO;oBACb,wCAAwC;oBAExC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;iBAC5C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,MAAM,IAAA,yBAAiB,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,eAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,MAAM,IAAA,uBAAe,EAAC,WAAW,CAAC,CAAC;QACxD,MAAM,IAAA,0BAAkB,EAAC,WAAW,EAAE,YAAY,EAAE,sBAAsB,CAAC,CAAC;QAC5E,IAAI,iBAAqC,CAAC;QAC1C,IAAI,wBAAmD,CAAC;QACxD,IAAI,mBAAmB,EAAE,CAAC;YACxB,iBAAiB,GAAG,IAAA,uBAAkB,EAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;YAChE,wBAAwB,GAAG,MAAM,IAAA,kBAAa,EAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;YAC1E,IAAI,wBAAwB,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,2BAA2B;oBAC3B,MAAM,kBAAkB,GAAG,IAAA,sBAAe,EACxC,wBAAwB,CACzB,CAAC;oBAEF,MAAM,iBAAiB,GAAG,IAAA,mBAAS,EACjC,kBAAkB,EAClB,IAAI,CAAC,6BAA6B,CAChC,mBAAmB,EACnB,kBAAkB,CACnB,CACF,CAAC;oBAEF,MAAM,IAAA,mBAAc,EAAC,iBAAiB,EAAE,IAAA,WAAI,EAAC,iBAAiB,CAAC,CAAC,CAAC;oBACjE,eAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;gBACtD,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,qCAAqC,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;QACH,CAAC;QACD,eAAM,CAAC,KAAK,CAAC,4BAA4B,WAAW,EAAE,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,eAAK,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CACrC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,KAAK,QAAQ,CACxD,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC5E,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,qBAAqB;YACrB,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,gCAAgC,CAAC,EAAE,CAAC;gBAC3D,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACtC,sCAAsC;oBACtC,IACE,GAAG,CAAC,MAAM,CAAC,QAAQ,CACjB,sCAAsC,OAAO,CAAC,OAAO,MAAM,CAC5D,EACD,CAAC;wBACD,eAAM,CAAC,KAAK,CACV,EAAE,UAAU,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAC7C,8EAA8E,CAC/E,CAAC;wBACF,MAAM,IAAI,uCAAiB,CACzB,IAAI,KAAK,CACP,8EAA8E,CAC/E,EACD,mBAAa,CAAC,EAAE,CACjB,CAAC;oBACJ,CAAC;oBACD,qCAAqC;gBACvC,CAAC;YACH,CAAC;YACD,cAAc,CAAC,IAAI,CAAC;gBAClB,QAAQ,EAAE,QAAQ;gBAClB,wEAAwE;gBACxE,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM;aACjC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,eAAe,GAAG,MAAM,IAAA,aAAO,EACnC,YAAY,EACZ,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CACnE,CAAC;YACF,IAAI,GAAG,CAAC,QAAQ,KAAK,eAAe,EAAE,CAAC;gBACrC,eAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,eAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBACzC,gBAAgB,CAAC,IAAI,CAAC;oBACpB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,YAAY;oBAClB,cAAc;oBACd,QAAQ,EAAE,GAAG,CAAC,QAAS;iBACxB,CAAC,CAAC;gBACH,MAAM,iBAAiB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;YACzD,CAAC;YAED,wEAAwE;YACxE,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;gBACrC,wBAAwB,GAAG,MAAM,gBAAgB,CAC/C,WAAW,EACX,gBAAgB,EAChB,wBAAwB,CACzB,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,IAAA,yBAAiB,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QACnD,iCAAiC;QACjC,IAAI,wBAAwB,EAAE,CAAC;YAC7B,cAAc;YACd,MAAM,IAAA,mBAAc,EAAC,iBAAkB,EAAE,wBAAwB,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACrD,MAAM,WAAW,GAAG,eAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,MAAM,IAAA,uBAAe,EAAC,WAAW,CAAC,CAAC;QACxD,MAAM,IAAA,0BAAkB,EAAC,WAAW,EAAE,YAAY,EAAE,sBAAsB,CAAC,CAAC;QAC5E,eAAM,CAAC,KAAK,CAAC,iCAAiC,WAAW,EAAE,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CACrC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,KAAK,cAAc,CACpE,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC5E,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,qBAAqB;YACrB,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,8BAA8B,CAAC,EAAE,CAAC;gBACzD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACtC,IACE,GAAG,CAAC,MAAM,CAAC,QAAQ,CACjB,gCAAgC,OAAO,CAAC,OAAO,EAAE,CAClD,EACD,CAAC;wBACD,eAAM,CAAC,KAAK,CACV,EAAE,UAAU,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAC7C,8EAA8E,CAC/E,CAAC;wBACF,MAAM,IAAI,uCAAiB,CACzB,KAAK,CACH,8EAA8E,CAC/E,EACD,mBAAa,CAAC,EAAE,CACjB,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YACD,cAAc,CAAC,IAAI,CAAC;gBAClB,QAAQ,EAAE,cAAc;gBACxB,wEAAwE;gBACxE,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM;aACjC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,eAAe,GAAG,MAAM,IAAA,aAAO,EACnC,cAAc,EACd,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CACnE,CAAC;YACF,IAAI,GAAG,CAAC,QAAQ,KAAK,eAAe,EAAE,CAAC;gBACrC,eAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,eAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;gBAC9C,gBAAgB,CAAC,IAAI,CAAC;oBACpB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,cAAc;oBACpB,mCAAmC;oBACnC,QAAQ,EAAE,GAAG,CAAC,QAAS;iBACxB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,MAAM,IAAA,yBAAiB,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC;AAC9C,CAAC","sourcesContent":["// TODO: types (#22198)\nimport is from '@sindresorhus/is';\nimport deepmerge from 'deepmerge';\nimport upath from 'upath';\nimport { logger } from '../../../../logger';\nimport { ExternalHostError } from '../../../../types/errors/external-host-error';\nimport { getChildProcessEnv } from '../../../../util/exec/env';\nimport {\n ensureCacheDir,\n getSiblingFileName,\n readLocalFile,\n writeLocalFile,\n} from '../../../../util/fs';\nimport { getFile, getRepoStatus } from '../../../../util/git';\nimport type { FileChange } from '../../../../util/git/types';\nimport * as hostRules from '../../../../util/host-rules';\nimport { newlineRegex, regEx } from '../../../../util/regex';\nimport { ensureTrailingSlash } from '../../../../util/url';\nimport { dump, parseSingleYaml } from '../../../../util/yaml';\nimport { NpmDatasource } from '../../../datasource/npm';\nimport { scm } from '../../../platform/scm';\nimport type { PackageFile, PostUpdateConfig, Upgrade } from '../../types';\nimport { getZeroInstallPaths } from '../extract/yarn';\nimport type { NpmManagerData } from '../types';\nimport {\n composeLockFile,\n getNpmrcContent,\n parseLockFile,\n resetNpmrcContent,\n updateNpmrcContent,\n} from '../utils';\nimport * as npm from './npm';\nimport * as pnpm from './pnpm';\nimport { processHostRules } from './rules';\nimport type {\n AdditionalPackageFiles,\n ArtifactError,\n DetermineLockFileDirsResult,\n WriteExistingFilesResult,\n YarnRcYmlFile,\n} from './types';\nimport * as yarn from './yarn';\n\n// Strips empty values, deduplicates, and returns the directories from filenames\nconst getDirs = (arr: (string | null | undefined)[]): string[] =>\n Array.from(new Set(arr.filter(is.string)));\n\nexport function determineLockFileDirs(\n config: PostUpdateConfig,\n packageFiles: AdditionalPackageFiles,\n): DetermineLockFileDirsResult {\n const npmLockDirs: (string | undefined)[] = [];\n const yarnLockDirs: (string | undefined)[] = [];\n const pnpmShrinkwrapDirs: (string | undefined)[] = [];\n\n for (const upgrade of config.upgrades) {\n if (\n upgrade.updateType === 'lockFileMaintenance' ||\n upgrade.isRemediation === true ||\n upgrade.isLockfileUpdate === true\n ) {\n yarnLockDirs.push(upgrade.managerData?.yarnLock);\n npmLockDirs.push(upgrade.managerData?.npmLock);\n pnpmShrinkwrapDirs.push(upgrade.managerData?.pnpmShrinkwrap);\n }\n }\n\n if (\n config.upgrades.every(\n (upgrade: Upgrade) =>\n upgrade.updateType === 'lockFileMaintenance' ||\n upgrade.isLockfileUpdate,\n )\n ) {\n return {\n yarnLockDirs: getDirs(yarnLockDirs),\n npmLockDirs: getDirs(npmLockDirs),\n pnpmShrinkwrapDirs: getDirs(pnpmShrinkwrapDirs),\n };\n }\n\n function getPackageFile(\n fileName: string,\n ): Partial<PackageFile<NpmManagerData>> {\n logger.trace('Looking for packageFile: ' + fileName);\n\n for (const packageFile of packageFiles.npm!) {\n if (packageFile.packageFile === fileName) {\n logger.trace({ packageFile }, 'Found packageFile');\n return packageFile;\n }\n logger.trace('No match');\n }\n return {};\n }\n\n // TODO #22198\n for (const p of config.updatedPackageFiles!) {\n logger.trace(`Checking ${String(p.path)} for lock files`);\n const packageFile = getPackageFile(p.path);\n // istanbul ignore if\n if (!packageFile.managerData) {\n continue;\n }\n // push full lock file names and convert them later\n yarnLockDirs.push(packageFile.managerData.yarnLock);\n npmLockDirs.push(packageFile.managerData.npmLock);\n pnpmShrinkwrapDirs.push(packageFile.managerData.pnpmShrinkwrap);\n }\n\n return {\n yarnLockDirs: getDirs(yarnLockDirs),\n npmLockDirs: getDirs(npmLockDirs),\n pnpmShrinkwrapDirs: getDirs(pnpmShrinkwrapDirs),\n };\n}\n\nexport async function writeExistingFiles(\n config: PostUpdateConfig,\n packageFiles: AdditionalPackageFiles,\n): Promise<void> {\n if (!packageFiles.npm) {\n return;\n }\n const npmFiles = packageFiles.npm;\n logger.debug(\n { packageFiles: npmFiles.map((n) => n.packageFile) },\n 'Writing package.json files',\n );\n for (const packageFile of npmFiles) {\n // istanbul ignore if\n if (!packageFile.managerData) {\n continue;\n }\n // TODO #22198\n const basedir = upath.dirname(packageFile.packageFile!);\n const npmrc = packageFile.npmrc;\n const npmrcFilename = upath.join(basedir, '.npmrc');\n if (is.string(npmrc)) {\n try {\n await writeLocalFile(npmrcFilename, npmrc.replace(/\\n?$/, '\\n'));\n } catch (err) /* istanbul ignore next */ {\n logger.warn({ npmrcFilename, err }, 'Error writing .npmrc');\n }\n }\n const npmLock = packageFile.managerData.npmLock;\n if (npmLock) {\n const npmLockPath = npmLock;\n logger.debug(`Writing ${npmLock}`);\n let existingNpmLock: string;\n try {\n existingNpmLock = (await getFile(npmLock)) ?? '';\n } catch (err) /* istanbul ignore next */ {\n logger.warn({ err }, 'Error reading npm lock file');\n existingNpmLock = '';\n }\n const { detectedIndent, lockFileParsed: npmLockParsed } =\n parseLockFile(existingNpmLock);\n if (npmLockParsed) {\n const packageNames =\n 'packages' in npmLockParsed\n ? Object.keys(npmLockParsed.packages)\n : [];\n const widens: string[] = [];\n let lockFileChanged = false;\n for (const upgrade of config.upgrades) {\n if (upgrade.lockFiles && !upgrade.lockFiles.includes(npmLock)) {\n continue;\n }\n if (!upgrade.managerData) {\n continue;\n }\n if (\n upgrade.rangeStrategy === 'widen' &&\n upgrade.managerData.npmLock === npmLock\n ) {\n // TODO #22198\n widens.push(upgrade.depName!);\n }\n const { depName } = upgrade;\n for (const packageName of packageNames) {\n if (\n 'packages' in npmLockParsed &&\n (packageName === `node_modules/${depName}` ||\n packageName.startsWith(`node_modules/${depName}/`))\n ) {\n logger.trace({ packageName }, 'Massaging out package name');\n lockFileChanged = true;\n delete npmLockParsed.packages[packageName];\n }\n }\n }\n if (widens.length) {\n logger.debug(\n `Removing ${String(widens)} from ${npmLock} to force an update`,\n );\n lockFileChanged = true;\n try {\n if ('dependencies' in npmLockParsed && npmLockParsed.dependencies) {\n widens.forEach((depName) => {\n // TODO #22198\n delete npmLockParsed.dependencies![depName];\n });\n }\n } catch /* istanbul ignore next */ {\n logger.warn(\n { npmLock },\n 'Error massaging package-lock.json for widen',\n );\n }\n }\n if (lockFileChanged) {\n logger.debug('Massaging npm lock file before writing to disk');\n existingNpmLock = composeLockFile(npmLockParsed, detectedIndent);\n }\n await writeLocalFile(npmLockPath, existingNpmLock);\n }\n }\n }\n}\n\nexport async function writeUpdatedPackageFiles(\n config: PostUpdateConfig,\n): Promise<void> {\n logger.trace({ config }, 'writeUpdatedPackageFiles');\n logger.debug('Writing any updated package files');\n if (!config.updatedPackageFiles) {\n logger.debug('No files found');\n return;\n }\n const supportedLockFiles = ['package-lock.json', 'yarn.lock'];\n for (const packageFile of config.updatedPackageFiles) {\n if (packageFile.type !== 'addition') {\n continue;\n }\n if (\n supportedLockFiles.some((fileName) => packageFile.path.endsWith(fileName))\n ) {\n logger.debug(`Writing lock file: ${packageFile.path}`);\n // TODO #22198\n\n await writeLocalFile(packageFile.path, packageFile.contents!);\n continue;\n }\n if (\n !(\n packageFile.path.endsWith('package.json') ||\n packageFile.path.endsWith('pnpm-workspace.yaml')\n )\n ) {\n continue;\n }\n logger.debug(`Writing ${packageFile.path}`);\n await writeLocalFile(packageFile.path, packageFile.contents!);\n }\n}\n\n// istanbul ignore next\nasync function updateYarnOffline(\n lockFileDir: string,\n updatedArtifacts: FileChange[],\n): Promise<void> {\n try {\n const resolvedPaths: string[] = [];\n const yarnrcYml = await getFile(upath.join(lockFileDir, '.yarnrc.yml'));\n const yarnrc = await getFile(upath.join(lockFileDir, '.yarnrc'));\n\n // As .yarnrc.yml overrides .yarnrc in Yarn 1 (https://git.io/JUcco)\n // both files may exist, so check for .yarnrc.yml first\n if (yarnrcYml) {\n // Yarn 2 (offline cache and zero-installs)\n const paths = getZeroInstallPaths(yarnrcYml);\n resolvedPaths.push(...paths.map((p) => upath.join(lockFileDir, p)));\n } else if (yarnrc) {\n // Yarn 1 (offline mirror)\n const mirrorLine = yarnrc\n .split(newlineRegex)\n .find((line) => line.startsWith('yarn-offline-mirror '));\n if (mirrorLine) {\n const mirrorPath = ensureTrailingSlash(\n mirrorLine.split(' ')[1].replace(regEx(/\"/g), ''),\n );\n resolvedPaths.push(upath.join(lockFileDir, mirrorPath));\n }\n }\n logger.debug({ resolvedPaths }, 'updateYarnOffline resolvedPaths');\n\n if (resolvedPaths.length) {\n const status = await getRepoStatus();\n for (const f of status.modified.concat(status.not_added)) {\n if (resolvedPaths.some((p) => f.startsWith(p))) {\n updatedArtifacts.push({\n type: 'addition',\n path: f,\n contents: await readLocalFile(f),\n });\n }\n }\n for (const f of status.deleted || []) {\n if (resolvedPaths.some((p) => f.startsWith(p))) {\n updatedArtifacts.push({ type: 'deletion', path: f });\n }\n }\n }\n } catch (err) {\n logger.error({ err }, 'Error updating yarn offline packages');\n }\n}\n\n// TODO: move to ./yarn.ts\n// exported for testing\nexport async function updateYarnBinary(\n lockFileDir: string,\n updatedArtifacts: FileChange[],\n existingYarnrcYmlContent: string | undefined | null,\n): Promise<string | undefined | null> {\n let yarnrcYml = existingYarnrcYmlContent;\n try {\n const yarnrcYmlFilename = upath.join(lockFileDir, '.yarnrc.yml');\n yarnrcYml ??= (await getFile(yarnrcYmlFilename)) ?? undefined;\n const newYarnrcYml = await readLocalFile(yarnrcYmlFilename, 'utf8');\n if (!is.string(yarnrcYml) || !is.string(newYarnrcYml)) {\n return existingYarnrcYmlContent;\n }\n\n // TODO: use schema (#9610)\n const oldYarnPath = parseSingleYaml<YarnRcYmlFile>(yarnrcYml)?.yarnPath;\n const newYarnPath = parseSingleYaml<YarnRcYmlFile>(newYarnrcYml)?.yarnPath;\n if (\n !is.nonEmptyStringAndNotWhitespace(oldYarnPath) ||\n !is.nonEmptyStringAndNotWhitespace(newYarnPath)\n ) {\n return existingYarnrcYmlContent;\n }\n\n const oldYarnFullPath = upath.join(lockFileDir, oldYarnPath);\n const newYarnFullPath = upath.join(lockFileDir, newYarnPath);\n logger.debug({ oldYarnPath, newYarnPath }, 'Found updated Yarn binary');\n\n yarnrcYml = yarnrcYml.replace(oldYarnPath, newYarnPath);\n updatedArtifacts.push(\n {\n type: 'addition',\n path: yarnrcYmlFilename,\n contents: yarnrcYml,\n },\n {\n type: 'deletion',\n path: oldYarnFullPath,\n },\n {\n type: 'addition',\n path: newYarnFullPath,\n contents: await readLocalFile(newYarnFullPath, 'utf8'),\n isExecutable: true,\n },\n );\n } catch (err) /* istanbul ignore next */ {\n logger.error({ err }, 'Error updating Yarn binary');\n }\n return existingYarnrcYmlContent && yarnrcYml;\n}\n\nexport async function getAdditionalFiles(\n config: PostUpdateConfig<NpmManagerData>,\n packageFiles: AdditionalPackageFiles,\n): Promise<WriteExistingFilesResult> {\n logger.trace({ config }, 'getAdditionalFiles');\n const artifactErrors: ArtifactError[] = [];\n const updatedArtifacts: FileChange[] = [];\n if (!packageFiles.npm?.length) {\n return { artifactErrors, updatedArtifacts };\n }\n if (!config.updateLockFiles) {\n logger.debug('Skipping lock file generation');\n return { artifactErrors, updatedArtifacts };\n }\n logger.debug('Getting updated lock files');\n if (\n config.isLockFileMaintenance &&\n config.reuseExistingBranch &&\n (await scm.branchExists(config.branchName))\n ) {\n logger.debug('Skipping lockFileMaintenance update');\n return { artifactErrors, updatedArtifacts };\n }\n const dirs = determineLockFileDirs(config, packageFiles);\n logger.trace({ dirs }, 'lock file dirs');\n await writeExistingFiles(config, packageFiles);\n await writeUpdatedPackageFiles(config);\n\n const { additionalNpmrcContent, additionalYarnRcYml } = processHostRules();\n\n const env = {\n ...getChildProcessEnv(),\n NPM_CONFIG_CACHE: await ensureCacheDir('npm'),\n YARN_CACHE_FOLDER: await ensureCacheDir('yarn'),\n YARN_GLOBAL_FOLDER: await ensureCacheDir('berry'),\n npm_config_store: await ensureCacheDir('pnpm'),\n NODE_ENV: 'dev',\n };\n\n let token: string | undefined;\n try {\n ({ token } = hostRules.find({\n hostType: 'github',\n url: 'https://api.github.com/',\n }));\n token = token ? /* istanbul ignore next */ `${token}@` : token;\n } catch (err) /* istanbul ignore next */ {\n logger.warn({ err }, 'Error getting token for packageFile');\n }\n const tokenRe = regEx(`${token ?? ''}`, 'g', false);\n for (const npmLock of dirs.npmLockDirs) {\n const lockFileDir = upath.dirname(npmLock);\n const npmrcContent = await getNpmrcContent(lockFileDir);\n await updateNpmrcContent(lockFileDir, npmrcContent, additionalNpmrcContent);\n const fileName = upath.basename(npmLock);\n logger.debug(`Generating ${fileName} for ${lockFileDir}`);\n const upgrades = config.upgrades.filter(\n (upgrade) => upgrade.managerData?.npmLock === npmLock,\n );\n const res = await npm.generateLockFile(\n lockFileDir,\n env,\n fileName,\n config,\n upgrades,\n );\n if (res.error) {\n // istanbul ignore if\n if (res.stderr?.includes('No matching version found for')) {\n for (const upgrade of config.upgrades) {\n if (\n res.stderr.includes(\n `No matching version found for ${upgrade.depName}`,\n )\n ) {\n logger.debug(\n { dependency: upgrade.depName, type: 'npm' },\n 'lock file failed for the dependency being updated - skipping branch creation',\n );\n const err = new Error(\n 'lock file failed for the dependency being updated - skipping branch creation',\n );\n throw new ExternalHostError(err, NpmDatasource.id);\n }\n }\n }\n artifactErrors.push({\n lockFile: npmLock,\n stderr: res.stderr,\n });\n } else if (res.lockFile) {\n const existingContent = await getFile(\n npmLock,\n config.reuseExistingBranch ? config.branchName : config.baseBranch,\n );\n if (res.lockFile === existingContent) {\n logger.debug(`${npmLock} hasn't changed`);\n } else {\n logger.debug(`${npmLock} needs updating`);\n updatedArtifacts.push({\n type: 'addition',\n path: npmLock,\n // TODO: can this be undefined? (#22198)\n\n contents: res.lockFile.replace(tokenRe, ''),\n });\n }\n }\n await resetNpmrcContent(lockFileDir, npmrcContent);\n }\n\n for (const yarnLock of dirs.yarnLockDirs) {\n const lockFileDir = upath.dirname(yarnLock);\n const npmrcContent = await getNpmrcContent(lockFileDir);\n await updateNpmrcContent(lockFileDir, npmrcContent, additionalNpmrcContent);\n let yarnRcYmlFilename: string | undefined;\n let existingYarnrcYmlContent: string | undefined | null;\n if (additionalYarnRcYml) {\n yarnRcYmlFilename = getSiblingFileName(yarnLock, '.yarnrc.yml');\n existingYarnrcYmlContent = await readLocalFile(yarnRcYmlFilename, 'utf8');\n if (existingYarnrcYmlContent) {\n try {\n // TODO: use schema (#9610)\n const existingYarnrRcYml = parseSingleYaml<Record<string, unknown>>(\n existingYarnrcYmlContent,\n );\n\n const updatedYarnYrcYml = deepmerge(\n existingYarnrRcYml,\n yarn.fuzzyMatchAdditionalYarnrcYml(\n additionalYarnRcYml,\n existingYarnrRcYml,\n ),\n );\n\n await writeLocalFile(yarnRcYmlFilename, dump(updatedYarnYrcYml));\n logger.debug('Added authentication to .yarnrc.yml');\n } catch (err) {\n logger.warn({ err }, 'Error appending .yarnrc.yml content');\n }\n }\n }\n logger.debug(`Generating yarn.lock for ${lockFileDir}`);\n const lockFileName = upath.join(lockFileDir, 'yarn.lock');\n const upgrades = config.upgrades.filter(\n (upgrade) => upgrade.managerData?.yarnLock === yarnLock,\n );\n const res = await yarn.generateLockFile(lockFileDir, env, config, upgrades);\n if (res.error) {\n // istanbul ignore if\n if (res.stderr?.includes(`Couldn't find any versions for`)) {\n for (const upgrade of config.upgrades) {\n /* eslint-disable no-useless-escape */\n if (\n res.stderr.includes(\n `Couldn't find any versions for \\\\\\\"${upgrade.depName}\\\\\\\"`,\n )\n ) {\n logger.debug(\n { dependency: upgrade.depName, type: 'yarn' },\n 'lock file failed for the dependency being updated - skipping branch creation',\n );\n throw new ExternalHostError(\n new Error(\n 'lock file failed for the dependency being updated - skipping branch creation',\n ),\n NpmDatasource.id,\n );\n }\n /* eslint-enable no-useless-escape */\n }\n }\n artifactErrors.push({\n lockFile: yarnLock,\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n stderr: res.stderr || res.stdout,\n });\n } else {\n const existingContent = await getFile(\n lockFileName,\n config.reuseExistingBranch ? config.branchName : config.baseBranch,\n );\n if (res.lockFile === existingContent) {\n logger.debug(\"yarn.lock hasn't changed\");\n } else {\n logger.debug('yarn.lock needs updating');\n updatedArtifacts.push({\n type: 'addition',\n path: lockFileName,\n // TODO #22198\n contents: res.lockFile!,\n });\n await updateYarnOffline(lockFileDir, updatedArtifacts);\n }\n\n // istanbul ignore if: already tested seperately, needs additional test?\n if (upgrades.some(yarn.isYarnUpdate)) {\n existingYarnrcYmlContent = await updateYarnBinary(\n lockFileDir,\n updatedArtifacts,\n existingYarnrcYmlContent,\n );\n }\n }\n await resetNpmrcContent(lockFileDir, npmrcContent);\n // istanbul ignore if: needs test\n if (existingYarnrcYmlContent) {\n // TODO #22198\n await writeLocalFile(yarnRcYmlFilename!, existingYarnrcYmlContent);\n }\n }\n\n for (const pnpmShrinkwrap of dirs.pnpmShrinkwrapDirs) {\n const lockFileDir = upath.dirname(pnpmShrinkwrap);\n const npmrcContent = await getNpmrcContent(lockFileDir);\n await updateNpmrcContent(lockFileDir, npmrcContent, additionalNpmrcContent);\n logger.debug(`Generating pnpm-lock.yaml for ${lockFileDir}`);\n const upgrades = config.upgrades.filter(\n (upgrade) => upgrade.managerData?.pnpmShrinkwrap === pnpmShrinkwrap,\n );\n const res = await pnpm.generateLockFile(lockFileDir, env, config, upgrades);\n if (res.error) {\n // istanbul ignore if\n if (res.stdout?.includes(`No compatible version found:`)) {\n for (const upgrade of config.upgrades) {\n if (\n res.stdout.includes(\n `No compatible version found: ${upgrade.depName}`,\n )\n ) {\n logger.debug(\n { dependency: upgrade.depName, type: 'pnpm' },\n 'lock file failed for the dependency being updated - skipping branch creation',\n );\n throw new ExternalHostError(\n Error(\n 'lock file failed for the dependency being updated - skipping branch creation',\n ),\n NpmDatasource.id,\n );\n }\n }\n }\n artifactErrors.push({\n lockFile: pnpmShrinkwrap,\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n stderr: res.stderr || res.stdout,\n });\n } else {\n const existingContent = await getFile(\n pnpmShrinkwrap,\n config.reuseExistingBranch ? config.branchName : config.baseBranch,\n );\n if (res.lockFile === existingContent) {\n logger.debug(\"pnpm-lock.yaml hasn't changed\");\n } else {\n logger.debug('pnpm-lock.yaml needs updating');\n updatedArtifacts.push({\n type: 'addition',\n path: pnpmShrinkwrap,\n // TODO: can be undefined? (#22198)\n contents: res.lockFile!,\n });\n }\n }\n await resetNpmrcContent(lockFileDir, npmrcContent);\n }\n\n return { artifactErrors, updatedArtifacts };\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pnpm.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/npm/post-update/pnpm.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../../../config/global';\nimport { TEMPORARY_ERROR } from '../../../../constants/error-messages';\nimport { logger } from '../../../../logger';\nimport { exec } from '../../../../util/exec';\nimport type {\n ExecOptions,\n ExtraEnv,\n ToolConstraint,\n} from '../../../../util/exec/types';\nimport { deleteLocalFile, readLocalFile } from '../../../../util/fs';\nimport { uniqueStrings } from '../../../../util/string';\nimport { parseSingleYaml } from '../../../../util/yaml';\nimport type { PostUpdateConfig, Upgrade } from '../../types';\nimport { getNodeToolConstraint } from './node-version';\nimport type { GenerateLockFileResult, PnpmLockFile } from './types';\nimport { getPackageManagerVersion, lazyLoadPackageJson } from './utils';\n\nfunction getPnpmConstraintFromUpgrades(upgrades: Upgrade[]): string | null {\n for (const upgrade of upgrades) {\n if (upgrade.depName === 'pnpm' && upgrade.newVersion) {\n return upgrade.newVersion;\n }\n }\n return null;\n}\n\nexport async function generateLockFile(\n lockFileDir: string,\n env: NodeJS.ProcessEnv,\n config: PostUpdateConfig,\n upgrades: Upgrade[] = [],\n): Promise<GenerateLockFileResult> {\n const lockFileName = upath.join(lockFileDir, 'pnpm-lock.yaml');\n logger.debug(`Spawning pnpm install to create ${lockFileName}`);\n let lockFile: string | null = null;\n let stdout: string | undefined;\n let stderr: string | undefined;\n const commands: string[] = [];\n try {\n const lazyPgkJson = lazyLoadPackageJson(lockFileDir);\n const pnpmToolConstraint: ToolConstraint = {\n toolName: 'pnpm',\n constraint:\n getPnpmConstraintFromUpgrades(upgrades) ?? // if pnpm is being upgraded, it comes first\n config.constraints?.pnpm ?? // from user config or extraction\n getPackageManagerVersion('pnpm', await lazyPgkJson.getValue()) ?? // look in package.json > packageManager or engines\n (await getConstraintFromLockFile(lockFileName)), // use lockfileVersion to find pnpm version range\n };\n\n const extraEnv: ExtraEnv = {\n NPM_CONFIG_CACHE: env.NPM_CONFIG_CACHE,\n npm_config_store: env.npm_config_store,\n };\n const execOptions: ExecOptions = {\n userConfiguredEnv: config.env,\n cwdFile: lockFileName,\n extraEnv,\n docker: {},\n toolConstraints: [\n await getNodeToolConstraint(config, upgrades, lockFileDir, lazyPgkJson),\n pnpmToolConstraint,\n ],\n };\n // istanbul ignore if\n if (GlobalConfig.get('exposeAllEnv')) {\n extraEnv.NPM_AUTH = env.NPM_AUTH;\n extraEnv.NPM_EMAIL = env.NPM_EMAIL;\n }\n\n let args = '--recursive --lockfile-only';\n if (!GlobalConfig.get('allowScripts') || config.ignoreScripts) {\n args += ' --ignore-scripts';\n args += ' --ignore-pnpmfile';\n }\n logger.trace({ args }, 'pnpm command options');\n\n const lockUpdates = upgrades.filter((upgrade) => upgrade.isLockfileUpdate);\n\n if (lockUpdates.length !== upgrades.length) {\n // This command updates the lock file based on package.json\n commands.push(`pnpm install ${args}`);\n }\n\n // rangeStrategy = update-lockfile\n if (lockUpdates.length) {\n logger.debug('Performing lockfileUpdate (pnpm)');\n commands.push(\n `pnpm update --no-save ${lockUpdates\n // TODO: types (#22198)\n .map((update) => `${update.packageName!}@${update.newVersion!}`)\n .filter(uniqueStrings)\n .map(quote)\n .join(' ')} ${args}`,\n );\n }\n\n // postUpdateOptions\n if (config.postUpdateOptions?.includes('pnpmDedupe')) {\n commands.push('pnpm dedupe --config.ignore-scripts=true');\n }\n\n if (upgrades.find((upgrade) => upgrade.isLockFileMaintenance)) {\n logger.debug(\n `Removing ${lockFileName} first due to lock file maintenance upgrade`,\n );\n try {\n await deleteLocalFile(lockFileName);\n } catch (err) /* istanbul ignore next */ {\n logger.debug(\n { err, lockFileName },\n 'Error removing `pnpm-lock.yaml` for lock file maintenance',\n );\n }\n }\n\n await exec(commands, execOptions);\n lockFile = await readLocalFile(lockFileName, 'utf8');\n } catch (err) /* istanbul ignore next */ {\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.debug(\n {\n commands,\n err,\n stdout,\n stderr,\n type: 'pnpm',\n },\n 'lock file error',\n );\n return { error: true, stderr: err.stderr, stdout: err.stdout };\n }\n return { lockFile };\n}\n\nexport async function getConstraintFromLockFile(\n lockFileName: string,\n): Promise<string | null> {\n let constraint: string | null = null;\n try {\n const lockfileContent = await readLocalFile(lockFileName, 'utf8');\n if (!lockfileContent) {\n logger.trace(`Empty pnpm lock file: ${lockFileName}`);\n return null;\n }\n // TODO: use schema (#9610)\n const pnpmLock = parseSingleYaml<PnpmLockFile>(lockfileContent);\n if (\n !is.number(pnpmLock?.lockfileVersion) &&\n !is.numericString(pnpmLock?.lockfileVersion)\n ) {\n logger.trace(`Invalid pnpm lockfile version: ${lockFileName}`);\n return null;\n }\n // find matching lockfileVersion and use its constraints\n // if no match found use lockfileVersion 5\n // lockfileVersion 5 is the minimum version required to generate the pnpm-lock.yaml file\n const { lowerConstraint, upperConstraint } = lockToPnpmVersionMapping.find(\n (m) => m.lockfileVersion === pnpmLock.lockfileVersion,\n ) ?? {\n lockfileVersion: 5.0,\n lowerConstraint: '>=3',\n upperConstraint: '<3.5.0',\n };\n constraint = lowerConstraint;\n if (upperConstraint) {\n constraint += ` ${upperConstraint}`;\n }\n } catch (err) {\n logger.warn({ err }, 'Error getting pnpm constraints from lock file');\n }\n return constraint;\n}\n\n/**\n * pnpm lockfiles have corresponding version numbers called \"lockfileVersion\"\n * each lockfileVersion can only be generated by a certain pnpm version range\n * eg. lockfileVersion: 5.4 can only be generated by pnpm version >=7 && <8\n * official list can be found here : https://github.com/pnpm/spec/tree/master/lockfile\n * we use the mapping present below to find the compatible pnpm version range for a given lockfileVersion\n *\n * the various terms used in the mapping are explained below:\n * lowerConstraint : lowest pnpm version that can generate the lockfileVersion\n * upperConstraint : highest pnpm version that can generate the lockfileVersion\n * lowerBound : highest pnpm version that is less than the lowerConstraint\n * upperBound : lowest pnpm version that is greater than the upperConstraint\n *\n * To handle future lockfileVersions, we need to:\n * 1. add a upperBound and upperConstraint to the current latest lockfileVersion\n * 2. add an object for the new lockfileVersion with lowerBound and lowerConstraint\n *\n * lockfileVersion from v6 on are strings\n */\nconst lockToPnpmVersionMapping: LockToPnpmVersionMapping[] = [\n { lockfileVersion: '9.0', lowerConstraint: '>=9' },\n {\n lockfileVersion: '6.0',\n lowerConstraint: '>=7.24.2',\n upperConstraint: '<9',\n },\n {\n lockfileVersion: 5.4,\n lowerConstraint: '>=7',\n upperConstraint: '<8',\n },\n {\n lockfileVersion: 5.3,\n lowerConstraint: '>=6',\n upperConstraint: '<7',\n },\n {\n lockfileVersion: 5.2,\n lowerConstraint: '>=5.10.0',\n upperConstraint: '<6',\n },\n {\n lockfileVersion: 5.1,\n lowerConstraint: '>=3.5.0',\n upperConstraint: '<5.9.3',\n },\n];\n\ntype LockToPnpmVersionMapping = {\n lockfileVersion: string | number;\n lowerConstraint: string;\n upperConstraint?: string;\n};\n"]}
|
1
|
+
{"version":3,"file":"pnpm.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/npm/post-update/pnpm.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../../../config/global';\nimport { TEMPORARY_ERROR } from '../../../../constants/error-messages';\nimport { logger } from '../../../../logger';\nimport { exec } from '../../../../util/exec';\nimport type {\n ExecOptions,\n ExtraEnv,\n ToolConstraint,\n} from '../../../../util/exec/types';\nimport { deleteLocalFile, readLocalFile } from '../../../../util/fs';\nimport { uniqueStrings } from '../../../../util/string';\nimport { parseSingleYaml } from '../../../../util/yaml';\nimport type { PostUpdateConfig, Upgrade } from '../../types';\nimport { getNodeToolConstraint } from './node-version';\nimport type { GenerateLockFileResult, PnpmLockFile } from './types';\nimport { getPackageManagerVersion, lazyLoadPackageJson } from './utils';\n\nfunction getPnpmConstraintFromUpgrades(upgrades: Upgrade[]): string | null {\n for (const upgrade of upgrades) {\n if (upgrade.depName === 'pnpm' && upgrade.newVersion) {\n return upgrade.newVersion;\n }\n }\n return null;\n}\n\nexport async function generateLockFile(\n lockFileDir: string,\n env: NodeJS.ProcessEnv,\n config: PostUpdateConfig,\n upgrades: Upgrade[] = [],\n): Promise<GenerateLockFileResult> {\n const lockFileName = upath.join(lockFileDir, 'pnpm-lock.yaml');\n logger.debug(`Spawning pnpm install to create ${lockFileName}`);\n let lockFile: string | null = null;\n let stdout: string | undefined;\n let stderr: string | undefined;\n const commands: string[] = [];\n try {\n const lazyPgkJson = lazyLoadPackageJson(lockFileDir);\n const pnpmToolConstraint: ToolConstraint = {\n toolName: 'pnpm',\n constraint:\n getPnpmConstraintFromUpgrades(upgrades) ?? // if pnpm is being upgraded, it comes first\n config.constraints?.pnpm ?? // from user config or extraction\n getPackageManagerVersion('pnpm', await lazyPgkJson.getValue()) ?? // look in package.json > packageManager or engines\n (await getConstraintFromLockFile(lockFileName)), // use lockfileVersion to find pnpm version range\n };\n\n const extraEnv: ExtraEnv = {\n NPM_CONFIG_CACHE: env.NPM_CONFIG_CACHE,\n npm_config_store: env.npm_config_store,\n };\n const execOptions: ExecOptions = {\n userConfiguredEnv: config.env,\n cwdFile: lockFileName,\n extraEnv,\n docker: {},\n toolConstraints: [\n await getNodeToolConstraint(config, upgrades, lockFileDir, lazyPgkJson),\n pnpmToolConstraint,\n ],\n };\n // istanbul ignore if\n if (GlobalConfig.get('exposeAllEnv')) {\n extraEnv.NPM_AUTH = env.NPM_AUTH;\n extraEnv.NPM_EMAIL = env.NPM_EMAIL;\n }\n\n let args = '--recursive --lockfile-only';\n if (!GlobalConfig.get('allowScripts') || config.ignoreScripts) {\n args += ' --ignore-scripts';\n args += ' --ignore-pnpmfile';\n }\n logger.trace({ args }, 'pnpm command options');\n\n const lockUpdates = upgrades.filter((upgrade) => upgrade.isLockfileUpdate);\n\n if (lockUpdates.length !== upgrades.length) {\n // This command updates the lock file based on package.json\n commands.push(`pnpm install ${args}`);\n }\n\n // rangeStrategy = update-lockfile\n if (lockUpdates.length) {\n logger.debug('Performing lockfileUpdate (pnpm)');\n commands.push(\n `pnpm update --no-save ${lockUpdates\n // TODO: types (#22198)\n .map((update) => `${update.packageName!}@${update.newVersion!}`)\n .filter(uniqueStrings)\n .map(quote)\n .join(' ')} ${args}`,\n );\n }\n\n // postUpdateOptions\n if (config.postUpdateOptions?.includes('pnpmDedupe')) {\n commands.push('pnpm dedupe --config.ignore-scripts=true');\n }\n\n if (upgrades.find((upgrade) => upgrade.isLockFileMaintenance)) {\n logger.debug(\n `Removing ${lockFileName} first due to lock file maintenance upgrade`,\n );\n try {\n await deleteLocalFile(lockFileName);\n } catch (err) /* istanbul ignore next */ {\n logger.debug(\n { err, lockFileName },\n 'Error removing `pnpm-lock.yaml` for lock file maintenance',\n );\n }\n }\n\n await exec(commands, execOptions);\n lockFile = await readLocalFile(lockFileName, 'utf8');\n } catch (err) /* istanbul ignore next */ {\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.debug(\n {\n commands,\n err,\n stdout,\n stderr,\n type: 'pnpm',\n },\n 'lock file error',\n );\n return { error: true, stderr: err.stderr, stdout: err.stdout };\n }\n return { lockFile };\n}\n\nexport async function getConstraintFromLockFile(\n lockFileName: string,\n): Promise<string | null> {\n let constraint: string | null = null;\n try {\n const lockfileContent = await readLocalFile(lockFileName, 'utf8');\n if (!lockfileContent) {\n logger.trace(`Empty pnpm lock file: ${lockFileName}`);\n return null;\n }\n // TODO: use schema (#9610)\n const pnpmLock = parseSingleYaml<PnpmLockFile>(lockfileContent);\n if (\n !is.number(pnpmLock?.lockfileVersion) &&\n !is.numericString(pnpmLock?.lockfileVersion)\n ) {\n logger.trace(`Invalid pnpm lockfile version: ${lockFileName}`);\n return null;\n }\n // find matching lockfileVersion and use its constraints\n // if no match found use lockfileVersion 5\n // lockfileVersion 5 is the minimum version required to generate the pnpm-lock.yaml file\n const { lowerConstraint, upperConstraint } = lockToPnpmVersionMapping.find(\n (m) => m.lockfileVersion === pnpmLock.lockfileVersion,\n ) ?? {\n lockfileVersion: 5.0,\n lowerConstraint: '>=3',\n upperConstraint: '<3.5.0',\n };\n constraint = lowerConstraint;\n if (upperConstraint) {\n constraint += ` ${upperConstraint}`;\n }\n } catch (err) {\n logger.warn({ err }, 'Error getting pnpm constraints from lock file');\n }\n return constraint;\n}\n\n/**\n * pnpm lockfiles have corresponding version numbers called \"lockfileVersion\"\n * each lockfileVersion can only be generated by a certain pnpm version range\n * eg. lockfileVersion: 5.4 can only be generated by pnpm version >=7 && <8\n * official list can be found here : https://github.com/pnpm/spec/tree/master/lockfile\n * we use the mapping present below to find the compatible pnpm version range for a given lockfileVersion\n *\n * the various terms used in the mapping are explained below:\n * lowerConstraint : lowest pnpm version that can generate the lockfileVersion\n * upperConstraint : highest pnpm version that can generate the lockfileVersion\n * lowerBound : highest pnpm version that is less than the lowerConstraint\n * upperBound : lowest pnpm version that is greater than the upperConstraint\n *\n * To handle future lockfileVersions, we need to:\n * 1. add a upperBound and upperConstraint to the current latest lockfileVersion\n * 2. add an object for the new lockfileVersion with lowerBound and lowerConstraint\n *\n * lockfileVersion from v6 on are strings\n */\nconst lockToPnpmVersionMapping: LockToPnpmVersionMapping[] = [\n { lockfileVersion: '9.0', lowerConstraint: '>=9' },\n {\n lockfileVersion: '6.0',\n lowerConstraint: '>=7.24.2',\n upperConstraint: '<9',\n },\n {\n lockfileVersion: 5.4,\n lowerConstraint: '>=7',\n upperConstraint: '<8',\n },\n {\n lockfileVersion: 5.3,\n lowerConstraint: '>=6',\n upperConstraint: '<7',\n },\n {\n lockfileVersion: 5.2,\n lowerConstraint: '>=5.10.0',\n upperConstraint: '<6',\n },\n {\n lockfileVersion: 5.1,\n lowerConstraint: '>=3.5.0',\n upperConstraint: '<5.9.3',\n },\n];\n\ninterface LockToPnpmVersionMapping {\n lockfileVersion: string | number;\n lowerConstraint: string;\n upperConstraint?: string;\n}\n"]}
|
@@ -105,7 +105,7 @@ function updateDependency({ fileContent, upgrade, }) {
|
|
105
105
|
overrideDepParents = managerData?.parents;
|
106
106
|
if (overrideDepParents) {
|
107
107
|
// old version when there is an object as a value in overrides block
|
108
|
-
const { depObjectReference, overrideDepName } = overrideDepPosition(parsedContents
|
108
|
+
const { depObjectReference, overrideDepName } = overrideDepPosition(parsedContents.overrides, overrideDepParents, depName);
|
109
109
|
if (depObjectReference) {
|
110
110
|
oldVersion = depObjectReference[overrideDepName];
|
111
111
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../lib/modules/manager/npm/update/dependency/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { dequal } from 'dequal';\nimport { logger } from '../../../../../logger';\nimport { escapeRegExp, regEx } from '../../../../../util/regex';\nimport { matchAt, replaceAt } from '../../../../../util/string';\nimport type { UpdateDependencyConfig, Upgrade } from '../../../types';\nimport type {\n DependenciesMeta,\n NpmPackage,\n OverrideDependency,\n RecursiveOverride,\n} from '../../extract/types';\nimport type { NpmDepType, NpmManagerData } from '../../types';\nimport { getNewGitValue, getNewNpmAliasValue } from './common';\nimport { updatePnpmCatalogDependency } from './pnpm';\n\nfunction renameObjKey(\n oldObj: DependenciesMeta,\n oldKey: string,\n newKey: string,\n): DependenciesMeta {\n const keys = Object.keys(oldObj);\n return keys.reduce((acc, key) => {\n if (key === oldKey) {\n acc[newKey] = oldObj[oldKey];\n } else {\n acc[key] = oldObj[key];\n }\n return acc;\n }, {} as DependenciesMeta);\n}\n\nfunction replaceAsString(\n parsedContents: NpmPackage,\n fileContent: string,\n depType:\n | NpmDepType\n | 'dependenciesMeta'\n | 'packageManager'\n | 'pnpm.overrides',\n depName: string,\n oldValue: string,\n newValue: string,\n parents?: string[],\n): string {\n if (depType === 'packageManager') {\n parsedContents[depType] = newValue;\n } else if (depType === 'pnpm.overrides') {\n parsedContents.pnpm!.overrides![depName] = newValue;\n } else if (depName === oldValue) {\n // The old value is the name of the dependency itself\n delete Object.assign(parsedContents[depType]!, {\n [newValue]: parsedContents[depType]![oldValue],\n })[oldValue];\n } else if (depType === 'dependenciesMeta') {\n if (oldValue !== newValue) {\n parsedContents.dependenciesMeta = renameObjKey(\n // TODO #22198\n parsedContents.dependenciesMeta!,\n oldValue,\n newValue,\n );\n }\n } else if (parents && depType === 'overrides') {\n // there is an object as a value in overrides block\n const { depObjectReference, overrideDepName } = overrideDepPosition(\n parsedContents[depType]!,\n parents,\n depName,\n );\n if (depObjectReference) {\n depObjectReference[overrideDepName] = newValue;\n }\n } else {\n // The old value is the version of the dependency\n parsedContents[depType]![depName] = newValue;\n }\n // Look for the old version number\n const searchString = `\"${oldValue}\"`;\n let newString = `\"${newValue}\"`;\n\n const escapedDepName = escapeRegExp(depName);\n const patchRe = regEx(`^(patch:${escapedDepName}@(npm:)?).*#`);\n const match = patchRe.exec(oldValue);\n if (match && depType === 'resolutions') {\n const patch = oldValue.replace(match[0], `${match[1]}${newValue}#`);\n parsedContents[depType]![depName] = patch;\n newString = `\"${patch}\"`;\n }\n\n // Skip ahead to depType section\n let searchIndex = fileContent.indexOf(`\"${depType}\"`) + depType.length;\n logger.trace(`Starting search at index ${searchIndex}`);\n // Iterate through the rest of the file\n for (; searchIndex < fileContent.length; searchIndex += 1) {\n // First check if we have a hit for the old version\n if (matchAt(fileContent, searchIndex, searchString)) {\n logger.trace(`Found match at index ${searchIndex}`);\n // Now test if the result matches\n const testContent = replaceAt(\n fileContent,\n searchIndex,\n searchString,\n newString,\n );\n // Compare the parsed JSON structure of old and new\n if (dequal(parsedContents, JSON.parse(testContent))) {\n return testContent;\n }\n }\n }\n // istanbul ignore next\n throw new Error();\n}\n\nexport function updateDependency({\n fileContent,\n upgrade,\n}: UpdateDependencyConfig): string | null {\n if (upgrade.depType?.startsWith('pnpm.catalog')) {\n return updatePnpmCatalogDependency({ fileContent, upgrade });\n }\n\n const { depType, managerData } = upgrade;\n const depName: string = managerData?.key || upgrade.depName;\n let { newValue } = upgrade;\n\n newValue = getNewGitValue(upgrade) ?? newValue;\n newValue = getNewNpmAliasValue(newValue, upgrade) ?? newValue;\n\n logger.debug(`npm.updateDependency(): ${depType}.${depName} = ${newValue}`);\n try {\n const parsedContents: NpmPackage = JSON.parse(fileContent);\n let overrideDepParents: string[] | undefined = undefined;\n // Save the old version\n let oldVersion: string | undefined;\n if (depType === 'packageManager') {\n oldVersion = parsedContents[depType];\n newValue = `${depName}@${newValue}`;\n } else if (isOverrideObject(upgrade)) {\n overrideDepParents = managerData?.parents;\n if (overrideDepParents) {\n // old version when there is an object as a value in overrides block\n const { depObjectReference, overrideDepName } = overrideDepPosition(\n parsedContents['overrides']!,\n overrideDepParents,\n depName,\n );\n if (depObjectReference) {\n oldVersion = depObjectReference[overrideDepName]!;\n }\n }\n } else if (depType === 'pnpm.overrides') {\n oldVersion = parsedContents.pnpm?.overrides?.[depName];\n } else {\n oldVersion = parsedContents[depType as NpmDepType]![depName] as string;\n }\n if (oldVersion === newValue) {\n logger.trace('Version is already updated');\n return fileContent;\n }\n\n // TODO #22198\n let newFileContent: string;\n if (upgrade.newName && upgrade.replacementApproach === 'alias') {\n newFileContent = replaceAsString(\n parsedContents,\n fileContent,\n depType as NpmDepType,\n depName,\n oldVersion!,\n `npm:${upgrade.newName}@${newValue}`,\n overrideDepParents,\n );\n } else {\n newFileContent = replaceAsString(\n parsedContents,\n fileContent,\n depType as NpmDepType,\n depName,\n oldVersion!,\n newValue!,\n overrideDepParents,\n );\n if (upgrade.newName) {\n newFileContent = replaceAsString(\n parsedContents,\n newFileContent,\n depType as NpmDepType,\n depName,\n depName,\n upgrade.newName,\n overrideDepParents,\n );\n }\n }\n // istanbul ignore if\n if (!newFileContent) {\n logger.debug(\n { fileContent, parsedContents, depType, depName, newValue },\n 'Warning: updateDependency error',\n );\n return fileContent;\n }\n if (parsedContents?.resolutions) {\n let depKey: string | undefined;\n if (parsedContents.resolutions[depName]) {\n depKey = depName;\n } else if (parsedContents.resolutions[`**/${depName}`]) {\n depKey = `**/${depName}`;\n }\n if (depKey) {\n // istanbul ignore if\n if (parsedContents.resolutions[depKey] !== oldVersion) {\n logger.debug(\n {\n depName,\n depKey,\n oldVersion,\n resolutionsVersion: parsedContents.resolutions[depKey],\n },\n 'Upgraded dependency exists in yarn resolutions but is different version',\n );\n }\n newFileContent = replaceAsString(\n parsedContents,\n newFileContent,\n 'resolutions',\n depKey,\n // TODO #22198\n parsedContents.resolutions[depKey]!,\n // TODO #22198\n newValue!,\n );\n if (upgrade.newName) {\n if (depKey === `**/${depName}`) {\n // handles the case where a replacement is in a resolution\n upgrade.newName = `**/${upgrade.newName}`;\n }\n newFileContent = replaceAsString(\n parsedContents,\n newFileContent,\n 'resolutions',\n depKey,\n depKey,\n upgrade.newName,\n );\n }\n }\n }\n if (parsedContents?.dependenciesMeta) {\n for (const [depKey] of Object.entries(parsedContents.dependenciesMeta)) {\n if (depKey.startsWith(depName + '@')) {\n newFileContent = replaceAsString(\n parsedContents,\n newFileContent,\n 'dependenciesMeta',\n depName,\n depKey,\n // TODO: types (#22198)\n `${depName}@${newValue}`,\n );\n }\n }\n }\n return newFileContent;\n } catch (err) {\n logger.debug({ err }, 'updateDependency error');\n return null;\n }\n}\n\nfunction overrideDepPosition(\n overrideBlock: OverrideDependency,\n parents: string[],\n depName: string,\n): {\n depObjectReference: Record<string, string>;\n overrideDepName: string;\n} {\n // get override dep position when its nested in an object\n const lastParent = parents[parents.length - 1];\n let overrideDep: OverrideDependency = overrideBlock;\n for (const parent of parents) {\n if (overrideDep) {\n overrideDep = overrideDep[parent] as Record<string, RecursiveOverride>;\n }\n }\n const overrideDepName = depName === lastParent ? '.' : depName;\n const depObjectReference = overrideDep as Record<string, string>;\n return { depObjectReference, overrideDepName };\n}\n\nfunction isOverrideObject(upgrade: Upgrade<NpmManagerData>): boolean {\n return (\n is.array(upgrade.managerData?.parents, is.nonEmptyStringAndNotWhitespace) &&\n upgrade.depType === 'overrides'\n );\n}\n"]}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../lib/modules/manager/npm/update/dependency/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { dequal } from 'dequal';\nimport { logger } from '../../../../../logger';\nimport { escapeRegExp, regEx } from '../../../../../util/regex';\nimport { matchAt, replaceAt } from '../../../../../util/string';\nimport type { UpdateDependencyConfig, Upgrade } from '../../../types';\nimport type {\n DependenciesMeta,\n NpmPackage,\n OverrideDependency,\n RecursiveOverride,\n} from '../../extract/types';\nimport type { NpmDepType, NpmManagerData } from '../../types';\nimport { getNewGitValue, getNewNpmAliasValue } from './common';\nimport { updatePnpmCatalogDependency } from './pnpm';\n\nfunction renameObjKey(\n oldObj: DependenciesMeta,\n oldKey: string,\n newKey: string,\n): DependenciesMeta {\n const keys = Object.keys(oldObj);\n return keys.reduce((acc, key) => {\n if (key === oldKey) {\n acc[newKey] = oldObj[oldKey];\n } else {\n acc[key] = oldObj[key];\n }\n return acc;\n }, {} as DependenciesMeta);\n}\n\nfunction replaceAsString(\n parsedContents: NpmPackage,\n fileContent: string,\n depType:\n | NpmDepType\n | 'dependenciesMeta'\n | 'packageManager'\n | 'pnpm.overrides',\n depName: string,\n oldValue: string,\n newValue: string,\n parents?: string[],\n): string {\n if (depType === 'packageManager') {\n parsedContents[depType] = newValue;\n } else if (depType === 'pnpm.overrides') {\n parsedContents.pnpm!.overrides![depName] = newValue;\n } else if (depName === oldValue) {\n // The old value is the name of the dependency itself\n delete Object.assign(parsedContents[depType]!, {\n [newValue]: parsedContents[depType]![oldValue],\n })[oldValue];\n } else if (depType === 'dependenciesMeta') {\n if (oldValue !== newValue) {\n parsedContents.dependenciesMeta = renameObjKey(\n // TODO #22198\n parsedContents.dependenciesMeta!,\n oldValue,\n newValue,\n );\n }\n } else if (parents && depType === 'overrides') {\n // there is an object as a value in overrides block\n const { depObjectReference, overrideDepName } = overrideDepPosition(\n parsedContents[depType]!,\n parents,\n depName,\n );\n if (depObjectReference) {\n depObjectReference[overrideDepName] = newValue;\n }\n } else {\n // The old value is the version of the dependency\n parsedContents[depType]![depName] = newValue;\n }\n // Look for the old version number\n const searchString = `\"${oldValue}\"`;\n let newString = `\"${newValue}\"`;\n\n const escapedDepName = escapeRegExp(depName);\n const patchRe = regEx(`^(patch:${escapedDepName}@(npm:)?).*#`);\n const match = patchRe.exec(oldValue);\n if (match && depType === 'resolutions') {\n const patch = oldValue.replace(match[0], `${match[1]}${newValue}#`);\n parsedContents[depType]![depName] = patch;\n newString = `\"${patch}\"`;\n }\n\n // Skip ahead to depType section\n let searchIndex = fileContent.indexOf(`\"${depType}\"`) + depType.length;\n logger.trace(`Starting search at index ${searchIndex}`);\n // Iterate through the rest of the file\n for (; searchIndex < fileContent.length; searchIndex += 1) {\n // First check if we have a hit for the old version\n if (matchAt(fileContent, searchIndex, searchString)) {\n logger.trace(`Found match at index ${searchIndex}`);\n // Now test if the result matches\n const testContent = replaceAt(\n fileContent,\n searchIndex,\n searchString,\n newString,\n );\n // Compare the parsed JSON structure of old and new\n if (dequal(parsedContents, JSON.parse(testContent))) {\n return testContent;\n }\n }\n }\n // istanbul ignore next\n throw new Error();\n}\n\nexport function updateDependency({\n fileContent,\n upgrade,\n}: UpdateDependencyConfig): string | null {\n if (upgrade.depType?.startsWith('pnpm.catalog')) {\n return updatePnpmCatalogDependency({ fileContent, upgrade });\n }\n\n const { depType, managerData } = upgrade;\n const depName: string = managerData?.key || upgrade.depName;\n let { newValue } = upgrade;\n\n newValue = getNewGitValue(upgrade) ?? newValue;\n newValue = getNewNpmAliasValue(newValue, upgrade) ?? newValue;\n\n logger.debug(`npm.updateDependency(): ${depType}.${depName} = ${newValue}`);\n try {\n const parsedContents: NpmPackage = JSON.parse(fileContent);\n let overrideDepParents: string[] | undefined = undefined;\n // Save the old version\n let oldVersion: string | undefined;\n if (depType === 'packageManager') {\n oldVersion = parsedContents[depType];\n newValue = `${depName}@${newValue}`;\n } else if (isOverrideObject(upgrade)) {\n overrideDepParents = managerData?.parents;\n if (overrideDepParents) {\n // old version when there is an object as a value in overrides block\n const { depObjectReference, overrideDepName } = overrideDepPosition(\n parsedContents.overrides!,\n overrideDepParents,\n depName,\n );\n if (depObjectReference) {\n oldVersion = depObjectReference[overrideDepName]!;\n }\n }\n } else if (depType === 'pnpm.overrides') {\n oldVersion = parsedContents.pnpm?.overrides?.[depName];\n } else {\n oldVersion = parsedContents[depType as NpmDepType]![depName] as string;\n }\n if (oldVersion === newValue) {\n logger.trace('Version is already updated');\n return fileContent;\n }\n\n // TODO #22198\n let newFileContent: string;\n if (upgrade.newName && upgrade.replacementApproach === 'alias') {\n newFileContent = replaceAsString(\n parsedContents,\n fileContent,\n depType as NpmDepType,\n depName,\n oldVersion!,\n `npm:${upgrade.newName}@${newValue}`,\n overrideDepParents,\n );\n } else {\n newFileContent = replaceAsString(\n parsedContents,\n fileContent,\n depType as NpmDepType,\n depName,\n oldVersion!,\n newValue!,\n overrideDepParents,\n );\n if (upgrade.newName) {\n newFileContent = replaceAsString(\n parsedContents,\n newFileContent,\n depType as NpmDepType,\n depName,\n depName,\n upgrade.newName,\n overrideDepParents,\n );\n }\n }\n // istanbul ignore if\n if (!newFileContent) {\n logger.debug(\n { fileContent, parsedContents, depType, depName, newValue },\n 'Warning: updateDependency error',\n );\n return fileContent;\n }\n if (parsedContents?.resolutions) {\n let depKey: string | undefined;\n if (parsedContents.resolutions[depName]) {\n depKey = depName;\n } else if (parsedContents.resolutions[`**/${depName}`]) {\n depKey = `**/${depName}`;\n }\n if (depKey) {\n // istanbul ignore if\n if (parsedContents.resolutions[depKey] !== oldVersion) {\n logger.debug(\n {\n depName,\n depKey,\n oldVersion,\n resolutionsVersion: parsedContents.resolutions[depKey],\n },\n 'Upgraded dependency exists in yarn resolutions but is different version',\n );\n }\n newFileContent = replaceAsString(\n parsedContents,\n newFileContent,\n 'resolutions',\n depKey,\n // TODO #22198\n parsedContents.resolutions[depKey]!,\n // TODO #22198\n newValue!,\n );\n if (upgrade.newName) {\n if (depKey === `**/${depName}`) {\n // handles the case where a replacement is in a resolution\n upgrade.newName = `**/${upgrade.newName}`;\n }\n newFileContent = replaceAsString(\n parsedContents,\n newFileContent,\n 'resolutions',\n depKey,\n depKey,\n upgrade.newName,\n );\n }\n }\n }\n if (parsedContents?.dependenciesMeta) {\n for (const [depKey] of Object.entries(parsedContents.dependenciesMeta)) {\n if (depKey.startsWith(depName + '@')) {\n newFileContent = replaceAsString(\n parsedContents,\n newFileContent,\n 'dependenciesMeta',\n depName,\n depKey,\n // TODO: types (#22198)\n `${depName}@${newValue}`,\n );\n }\n }\n }\n return newFileContent;\n } catch (err) {\n logger.debug({ err }, 'updateDependency error');\n return null;\n }\n}\n\nfunction overrideDepPosition(\n overrideBlock: OverrideDependency,\n parents: string[],\n depName: string,\n): {\n depObjectReference: Record<string, string>;\n overrideDepName: string;\n} {\n // get override dep position when its nested in an object\n const lastParent = parents[parents.length - 1];\n let overrideDep: OverrideDependency = overrideBlock;\n for (const parent of parents) {\n if (overrideDep) {\n overrideDep = overrideDep[parent] as Record<string, RecursiveOverride>;\n }\n }\n const overrideDepName = depName === lastParent ? '.' : depName;\n const depObjectReference = overrideDep as Record<string, string>;\n return { depObjectReference, overrideDepName };\n}\n\nfunction isOverrideObject(upgrade: Upgrade<NpmManagerData>): boolean {\n return (\n is.array(upgrade.managerData?.parents, is.nonEmptyStringAndNotWhitespace) &&\n upgrade.depType === 'overrides'\n );\n}\n"]}
|
@@ -82,8 +82,7 @@ function formatPackageSource(packageSourceMap) {
|
|
82
82
|
const charactersToEscape = (0, regex_1.regEx)(/[^A-Za-z0-9\-_.]/);
|
83
83
|
function escapeName(name) {
|
84
84
|
let escapedName = '';
|
85
|
-
for (
|
86
|
-
const char = name[i];
|
85
|
+
for (const char of name) {
|
87
86
|
if (char.match(charactersToEscape)) {
|
88
87
|
escapedName += `__x${char
|
89
88
|
.codePointAt(0)
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"config-formatter.js","sourceRoot":"","sources":["../../../../lib/modules/manager/nuget/config-formatter.ts"],"names":[],"mappings":";;AAYA,oDA0DC;;AAtED,kEAAkC;AAClC,4EAAsD;AACtD,+CAA4C;AAC5C,kDAAyD;AACzD,0DAAiE;AAQjE,SAAgB,oBAAoB,CAAC,UAAsB;IACzD,IAAI,QAAQ,GAAG,6EAA6E,CAAC;IAC7F,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAE7B,MAAM,WAAW,GAA8B,EAAE,CAAC;IAClD,MAAM,iBAAiB,GAAuB,EAAE,CAAC;IAEjD,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,MAAM,YAAY,GAChB,QAAQ,CAAC,IAAI,IAAI,kBAAkB,EAAE,oBAAoB,EAAE,CAAC;QAC9D,MAAM,YAAY,GAAG,IAAA,yBAAgB,EAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEpD,QAAQ,IAAI,0BAA0B,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAEnE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC;YAC5C,QAAQ,EAAE,uBAAe,CAAC,EAAE;YAC5B,GAAG,EAAE,QAAQ,CAAC,GAAG;SAClB,CAAC,CAAC;QAEH,IAAI,YAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,YAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/D,WAAW,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,YAAY;gBAClB,QAAQ;gBACR,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;QAED,IAAI,QAAQ,CAAC,2BAA2B,EAAE,CAAC;YACzC,iBAAiB,CAAC,IAAI,CAAC;gBACrB,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAE,QAAQ,CAAC,2BAA2B;aAC/C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,QAAQ,IAAI,qBAAqB,CAAC;IAElC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,QAAQ,IAAI,8BAA8B,CAAC;QAE3C,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,QAAQ,IAAI,oCAAoC,CAAC,UAAU,CAAC,CAAC;QAC/D,CAAC;QAED,QAAQ,IAAI,+BAA+B,CAAC;IAC9C,CAAC;IAED,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,QAAQ,IAAI,0BAA0B,CAAC;QACvC,KAAK,MAAM,gBAAgB,IAAI,iBAAiB,EAAE,CAAC;YACjD,QAAQ,IAAI,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;QACpD,CAAC;QACD,QAAQ,IAAI,yBAAyB,CAAC;IACxC,CAAC;IAED,QAAQ,IAAI,oBAAoB,CAAC;IAEjC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,0BAA0B,CACjC,YAA+B,EAC/B,IAAY;IAEZ,IAAI,OAAO,GAAG,aAAa,IAAI,YAAY,YAAY,CAAC,OAAO,IAAI,CAAC;IAEpE,IAAI,YAAY,CAAC,eAAe,EAAE,CAAC;QACjC,OAAO,IAAI,oBAAoB,YAAY,CAAC,eAAe,IAAI,CAAC;IAClE,CAAC;IAED,OAAO,GAAG,OAAO,MAAM,CAAC;AAC1B,CAAC;AAED,SAAS,oCAAoC,CAC3C,UAAmC;IAEnC,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAEhD,IAAI,uBAAuB,GAAG,IAAI,WAAW,KAAK,CAAC;IAEnD,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,uBAAuB,IAAI,8BAA8B,UAAU,CAAC,QAAQ,QAAQ,CAAC;IACvF,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,uBAAuB,IAAI,uCAAuC,UAAU,CAAC,QAAQ,QAAQ,CAAC;IAChG,CAAC;IAED,uBAAuB,IAAI,sDAAsD,CAAC;IAElF,uBAAuB,IAAI,KAAK,WAAW,KAAK,CAAC;IAEjD,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAED,SAAS,mBAAmB,CAAC,gBAAkC;IAC7D,IAAI,aAAa,GAAG,uBAAuB,gBAAgB,CAAC,IAAI,MAAM,CAAC;IAEvE,KAAK,MAAM,OAAO,IAAI,gBAAgB,CAAC,QAAQ,EAAE,CAAC;QAChD,aAAa,IAAI,qBAAqB,OAAO,QAAQ,CAAC;IACxD,CAAC;IAED,OAAO,GAAG,aAAa,oBAAoB,CAAC;AAC9C,CAAC;AAED,MAAM,kBAAkB,GAAG,IAAA,aAAK,EAAC,kBAAkB,CAAC,CAAC;AAErD,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,KAAK,
|
1
|
+
{"version":3,"file":"config-formatter.js","sourceRoot":"","sources":["../../../../lib/modules/manager/nuget/config-formatter.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport * as hostRules from '../../../util/host-rules';\nimport { regEx } from '../../../util/regex';\nimport { NugetDatasource } from '../../datasource/nuget';\nimport { parseRegistryUrl } from '../../datasource/nuget/common';\nimport type { ParsedRegistryUrl } from '../../datasource/nuget/types';\nimport type {\n PackageSourceCredential,\n PackageSourceMap,\n Registry,\n} from './types';\n\nexport function createNuGetConfigXml(registries: Registry[]): string {\n let contents = `<?xml version=\"1.0\" encoding=\"utf-8\"?>\\n<configuration>\\n<packageSources>\\n`;\n let unnamedRegistryCount = 0;\n\n const credentials: PackageSourceCredential[] = [];\n const packageSourceMaps: PackageSourceMap[] = [];\n\n for (const registry of registries) {\n const registryName =\n registry.name ?? `Package source ${++unnamedRegistryCount}`;\n const registryInfo = parseRegistryUrl(registry.url);\n\n contents += formatPackageSourceElement(registryInfo, registryName);\n\n const { password, username } = hostRules.find({\n hostType: NugetDatasource.id,\n url: registry.url,\n });\n\n if (is.nonEmptyString(password) || is.nonEmptyString(username)) {\n credentials.push({\n name: registryName,\n password,\n username,\n });\n }\n\n if (registry.sourceMappedPackagePatterns) {\n packageSourceMaps.push({\n name: registryName,\n patterns: registry.sourceMappedPackagePatterns,\n });\n }\n }\n\n contents += '</packageSources>\\n';\n\n if (credentials.length > 0) {\n contents += '<packageSourceCredentials>\\n';\n\n for (const credential of credentials) {\n contents += formatPackageSourceCredentialElement(credential);\n }\n\n contents += '</packageSourceCredentials>\\n';\n }\n\n if (packageSourceMaps.length > 0) {\n contents += '<packageSourceMapping>\\n';\n for (const packageSourceMap of packageSourceMaps) {\n contents += formatPackageSource(packageSourceMap);\n }\n contents += '</packageSourceMapping>';\n }\n\n contents += '</configuration>\\n';\n\n return contents;\n}\n\nfunction formatPackageSourceElement(\n registryInfo: ParsedRegistryUrl,\n name: string,\n): string {\n let element = `<add key=\"${name}\" value=\"${registryInfo.feedUrl}\" `;\n\n if (registryInfo.protocolVersion) {\n element += `protocolVersion=\"${registryInfo.protocolVersion}\" `;\n }\n\n return `${element}/>\\n`;\n}\n\nfunction formatPackageSourceCredentialElement(\n credential: PackageSourceCredential,\n): string {\n const escapedName = escapeName(credential.name);\n\n let packageSourceCredential = `<${escapedName}>\\n`;\n\n if (credential.username) {\n packageSourceCredential += `<add key=\"Username\" value=\"${credential.username}\" />\\n`;\n }\n\n if (credential.password) {\n packageSourceCredential += `<add key=\"ClearTextPassword\" value=\"${credential.password}\" />\\n`;\n }\n\n packageSourceCredential += `<add key=\"ValidAuthenticationTypes\" value=\"basic\" />`;\n\n packageSourceCredential += `</${escapedName}>\\n`;\n\n return packageSourceCredential;\n}\n\nfunction formatPackageSource(packageSourceMap: PackageSourceMap): string {\n let packageSource = `<packageSource key=\"${packageSourceMap.name}\">\\n`;\n\n for (const pattern of packageSourceMap.patterns) {\n packageSource += `<package pattern=\"${pattern}\" />\\n`;\n }\n\n return `${packageSource}</packageSource>\\n`;\n}\n\nconst charactersToEscape = regEx(/[^A-Za-z0-9\\-_.]/);\n\nfunction escapeName(name: string): string {\n let escapedName = '';\n for (const char of name) {\n if (char.match(charactersToEscape)) {\n escapedName += `__x${char\n .codePointAt(0)!\n .toString(16)\n .padStart(4, '0')}__`;\n } else {\n escapedName += char;\n }\n }\n\n return escapedName;\n}\n"]}
|
@@ -40,7 +40,7 @@ async function getDependentPackageFiles(packageFileName, isCentralManagement = f
|
|
40
40
|
.childrenNamed('ItemGroup')
|
41
41
|
.map((ig) => ig.childrenNamed('ProjectReference'))
|
42
42
|
.flat()
|
43
|
-
.map((pf) => pf.attr
|
43
|
+
.map((pf) => pf.attr.Include)
|
44
44
|
.filter(is_1.default.nonEmptyString);
|
45
45
|
const projectReferences = projectReferenceAttributes.map((a) => upath_1.default.normalize(a));
|
46
46
|
const normalizedRelativeProjectReferences = projectReferences.map((r) => reframeRelativePathToRootOfRepo(f, r));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"package-tree.js","sourceRoot":"","sources":["../../../../lib/modules/manager/nuget/package-tree.ts"],"names":[],"mappings":";;;AAeA,4DAgEC;;AA/ED,kEAAkC;AAClC,+DAAuD;AACvD,0DAA0B;AAC1B,4CAAyC;AACzC,uDAA0D;AAC1D,4CAAyC;AAEzC,iCAA+C;AAElC,QAAA,kBAAkB,GAAG,0BAA0B,CAAC;AAChD,QAAA,oBAAoB,GAAG,gBAAgB,CAAC;AAErD;;GAEG;AACI,KAAK,UAAU,wBAAwB,CAC5C,eAAuB,EACvB,mBAAmB,GAAG,KAAK;IAE3B,MAAM,YAAY,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAChD,MAAM,KAAK,GAAG,IAAI,4BAAK,EAAE,CAAC;IAE1B,IAAI,mBAAmB,EAAE,CAAC;QACxB,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,SAAS,GACb,eAAe,KAAK,0BAAkB;QACtC,eAAe,KAAK,4BAAoB;QACtC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,eAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAErC,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC7B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAEjB,IAAI,mBAAmB,IAAI,eAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAClE,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,IAAA,4BAAqB,EAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,SAAS;QACX,CAAC;QAED,MAAM,0BAA0B,GAAG,GAAG;aACnC,aAAa,CAAC,WAAW,CAAC;aAC1B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;aACjD,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,
|
1
|
+
{"version":3,"file":"package-tree.js","sourceRoot":"","sources":["../../../../lib/modules/manager/nuget/package-tree.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { Graph, hasCycle } from 'graph-data-structure';\nimport upath from 'upath';\nimport { logger } from '../../../logger';\nimport { minimatchFilter } from '../../../util/minimatch';\nimport { scm } from '../../platform/scm';\nimport type { ProjectFile } from './types';\nimport { readFileAsXmlDocument } from './util';\n\nexport const NUGET_CENTRAL_FILE = 'Directory.Packages.props';\nexport const MSBUILD_CENTRAL_FILE = 'Packages.props';\n\n/**\n * Get all leaf package files of ancestry that depend on packageFileName.\n */\nexport async function getDependentPackageFiles(\n packageFileName: string,\n isCentralManagement = false,\n): Promise<ProjectFile[]> {\n const packageFiles = await getAllPackageFiles();\n const graph = new Graph();\n\n if (isCentralManagement) {\n graph.addNode(packageFileName);\n }\n\n const parentDir =\n packageFileName === NUGET_CENTRAL_FILE ||\n packageFileName === MSBUILD_CENTRAL_FILE\n ? ''\n : upath.dirname(packageFileName);\n\n for (const f of packageFiles) {\n graph.addNode(f);\n\n if (isCentralManagement && upath.dirname(f).startsWith(parentDir)) {\n graph.addEdge(packageFileName, f);\n }\n }\n\n for (const f of packageFiles) {\n const doc = await readFileAsXmlDocument(f);\n if (!doc) {\n continue;\n }\n\n const projectReferenceAttributes = doc\n .childrenNamed('ItemGroup')\n .map((ig) => ig.childrenNamed('ProjectReference'))\n .flat()\n .map((pf) => pf.attr.Include)\n .filter(is.nonEmptyString);\n\n const projectReferences = projectReferenceAttributes.map((a) =>\n upath.normalize(a),\n );\n const normalizedRelativeProjectReferences = projectReferences.map((r) =>\n reframeRelativePathToRootOfRepo(f, r),\n );\n\n for (const ref of normalizedRelativeProjectReferences) {\n graph.addEdge(ref, f);\n }\n\n if (hasCycle(graph)) {\n throw new Error('Circular reference detected in NuGet package files');\n }\n }\n\n const deps = new Map<string, boolean>();\n recursivelyGetDependentPackageFiles(packageFileName, graph, deps);\n\n if (isCentralManagement) {\n // remove props file, as we don't need it\n deps.delete(packageFileName);\n }\n\n // deduplicate\n return Array.from(deps).map(([name, isLeaf]) => ({ name, isLeaf }));\n}\n\n/**\n * Traverse graph and find dependent package files at any level of ancestry\n */\nfunction recursivelyGetDependentPackageFiles(\n packageFileName: string,\n graph: Graph,\n deps: Map<string, boolean>,\n): void {\n const dependents = graph.adjacent(packageFileName);\n\n if (!dependents || dependents.size === 0) {\n deps.set(packageFileName, true);\n return;\n }\n\n deps.set(packageFileName, false);\n\n for (const dep of dependents) {\n recursivelyGetDependentPackageFiles(dep, graph, deps);\n }\n}\n\n/**\n * Take the path relative from a project file, and make it relative from the root of the repo\n */\nfunction reframeRelativePathToRootOfRepo(\n dependentProjectRelativePath: string,\n projectReference: string,\n): string {\n const virtualRepoRoot = '/';\n const absoluteDependentProjectPath = upath.resolve(\n virtualRepoRoot,\n dependentProjectRelativePath,\n );\n const absoluteProjectReferencePath = upath.resolve(\n upath.dirname(absoluteDependentProjectPath),\n projectReference,\n );\n const relativeProjectReferencePath = upath.relative(\n virtualRepoRoot,\n absoluteProjectReferencePath,\n );\n\n return relativeProjectReferencePath;\n}\n\n/**\n * Get a list of package files in localDir\n */\nasync function getAllPackageFiles(): Promise<string[]> {\n const allFiles = await scm.getFileList();\n const filteredPackageFiles = allFiles.filter(\n minimatchFilter('*.{cs,vb,fs}proj', { matchBase: true, nocase: true }),\n );\n\n logger.trace({ filteredPackageFiles }, 'Found package files');\n\n return filteredPackageFiles;\n}\n"]}
|
@@ -63,7 +63,7 @@ async function getConfiguredRegistries(packageFile) {
|
|
63
63
|
const sourceMappedPackagePatterns = packageSourceMapping
|
64
64
|
?.childWithAttribute('key', registry.name)
|
65
65
|
?.childrenNamed('package')
|
66
|
-
.map((packagePattern) => packagePattern.attr
|
66
|
+
.map((packagePattern) => packagePattern.attr.pattern);
|
67
67
|
registry.sourceMappedPackagePatterns = sourceMappedPackagePatterns;
|
68
68
|
}
|
69
69
|
for (const child of packageSources.children) {
|
@@ -82,7 +82,7 @@ async function getConfiguredRegistries(packageFile) {
|
|
82
82
|
const sourceMappedPackagePatterns = packageSourceMapping
|
83
83
|
?.childWithAttribute('key', child.attr.key)
|
84
84
|
?.childrenNamed('package')
|
85
|
-
.map((packagePattern) => packagePattern.attr
|
85
|
+
.map((packagePattern) => packagePattern.attr.pattern);
|
86
86
|
logger_1.logger.debug({
|
87
87
|
name: child.attr.key,
|
88
88
|
registryUrl,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../lib/modules/manager/nuget/util.ts"],"names":[],"mappings":"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","sourcesContent":["import upath from 'upath';\nimport type { XmlElement } from 'xmldoc';\nimport { XmlDocument } from 'xmldoc';\nimport { logger } from '../../../logger';\nimport {\n findLocalSiblingOrParent,\n findUpLocal,\n readLocalFile,\n} from '../../../util/fs';\nimport { minimatch } from '../../../util/minimatch';\nimport { regEx } from '../../../util/regex';\nimport { nugetOrg } from '../../datasource/nuget';\nimport { GlobalJson } from './schema';\nimport type { NugetPackageDependency, Registry } from './types';\n\nexport async function readFileAsXmlDocument(\n file: string,\n): Promise<XmlDocument | undefined> {\n try {\n // TODO #22198\n const doc = new XmlDocument((await readLocalFile(file, 'utf8'))!);\n // don't return empty documents\n return doc?.firstChild ? doc : undefined;\n } catch (err) {\n logger.debug({ err, file }, `failed to parse file as XML document`);\n return undefined;\n }\n}\n\n/**\n * The default `nuget.org` named registry.\n * @returns the default registry for NuGet\n */\nexport function getDefaultRegistries(): Registry[] {\n return [{ url: nugetOrg, name: 'nuget.org' }];\n}\n\nexport async function getConfiguredRegistries(\n packageFile: string,\n): Promise<Registry[] | undefined> {\n // Valid file names taken from https://github.com/NuGet/NuGet.Client/blob/f64621487c0b454eda4b98af853bf4a528bef72a/src/NuGet.Core/NuGet.Configuration/Settings/Settings.cs#L34\n const nuGetConfigFileNames = ['nuget.config', 'NuGet.config', 'NuGet.Config'];\n // normalize paths, otherwise startsWith can fail because of path delimitter mismatch\n const nuGetConfigPath = await findUpLocal(\n nuGetConfigFileNames,\n upath.dirname(packageFile),\n );\n if (!nuGetConfigPath) {\n return undefined;\n }\n\n logger.debug(`Found NuGet.config at ${nuGetConfigPath}`);\n const nuGetConfig = await readFileAsXmlDocument(nuGetConfigPath);\n\n if (!nuGetConfig) {\n return undefined;\n }\n\n const packageSources = nuGetConfig.childNamed('packageSources');\n\n if (!packageSources) {\n // If there are no packageSources, don't even look for any\n // disabledPackageSources\n // Even if NuGet default source (nuget.org) was among the\n // disabledPackageSources, Renovate will default to the default source\n // (nuget.org) anyway\n return undefined;\n }\n\n const packageSourceMapping = nuGetConfig.childNamed('packageSourceMapping');\n\n let registries = getDefaultRegistries();\n\n // Map optional source mapped package patterns to default registries\n for (const registry of registries) {\n const sourceMappedPackagePatterns = packageSourceMapping\n ?.childWithAttribute('key', registry.name)\n ?.childrenNamed('package')\n .map((packagePattern) => packagePattern.attr['pattern']);\n\n registry.sourceMappedPackagePatterns = sourceMappedPackagePatterns;\n }\n\n for (const child of packageSources.children) {\n if (child.type === 'element') {\n if (child.name === 'clear') {\n logger.debug(`clearing registry URLs`);\n registries.length = 0;\n } else if (child.name === 'add') {\n const isHttpUrl = regEx(/^https?:\\/\\//i).test(child.attr.value);\n if (isHttpUrl) {\n let registryUrl = child.attr.value;\n if (child.attr.protocolVersion) {\n registryUrl += `#protocolVersion=${child.attr.protocolVersion}`;\n }\n const sourceMappedPackagePatterns = packageSourceMapping\n ?.childWithAttribute('key', child.attr.key)\n ?.childrenNamed('package')\n .map((packagePattern) => packagePattern.attr['pattern']);\n\n logger.debug(\n {\n name: child.attr.key,\n registryUrl,\n sourceMappedPackagePatterns,\n },\n `Adding registry URL ${registryUrl}`,\n );\n\n registries.push({\n name: child.attr.key,\n url: registryUrl,\n sourceMappedPackagePatterns,\n });\n } else {\n logger.debug(\n { registryUrl: child.attr.value },\n 'ignoring local registry URL',\n );\n }\n }\n // child.name === 'remove' not supported\n }\n }\n\n const disabledPackageSources = nuGetConfig.childNamed(\n 'disabledPackageSources',\n );\n\n if (disabledPackageSources) {\n for (const child of disabledPackageSources.children) {\n if (\n child.type === 'element' &&\n child.name === 'add' &&\n child.attr.value === 'true'\n ) {\n const disabledRegistryKey = child.attr.key;\n registries = registries.filter((o) => o.name !== disabledRegistryKey);\n logger.debug(`Disabled registry with key: ${disabledRegistryKey}`);\n }\n }\n }\n\n return registries;\n}\n\nexport function findVersion(parsedXml: XmlDocument): XmlElement | null {\n for (const tag of ['Version', 'VersionPrefix']) {\n for (const l1Elem of parsedXml.childrenNamed('PropertyGroup')) {\n for (const l2Elem of l1Elem.childrenNamed(tag)) {\n return l2Elem;\n }\n }\n }\n return null;\n}\n\nexport function applyRegistries(\n dep: NugetPackageDependency,\n registries: Registry[] | undefined,\n): NugetPackageDependency {\n if (registries) {\n if (!registries.some((reg) => reg.sourceMappedPackagePatterns)) {\n dep.registryUrls = registries.map((reg) => reg.url);\n return dep;\n }\n\n const regs = registries.filter((r) => r.sourceMappedPackagePatterns);\n const map = new Map<string, Registry[]>(\n regs.flatMap((r) => r.sourceMappedPackagePatterns!.map((p) => [p, []])),\n );\n const depName = dep.depName;\n\n for (const reg of regs) {\n for (const pattern of reg.sourceMappedPackagePatterns!) {\n map.get(pattern)!.push(reg);\n }\n }\n\n const urls: string[] = [];\n\n for (const [pattern, regs] of [...map].sort(sortPatterns)) {\n if (minimatch(pattern, { nocase: true }).match(depName)) {\n urls.push(...regs.map((r) => r.url));\n break;\n }\n }\n\n if (urls.length) {\n dep.registryUrls = urls;\n }\n }\n return dep;\n}\n\n/*\n * Sorts patterns by specificity:\n * 1. Exact match patterns\n * 2. Wildcard match patterns\n */\nfunction sortPatterns(\n a: [string, Registry[]],\n b: [string, Registry[]],\n): number {\n if (a[0].endsWith('*') && !b[0].endsWith('*')) {\n return 1;\n }\n\n if (!a[0].endsWith('*') && b[0].endsWith('*')) {\n return -1;\n }\n\n return a[0].localeCompare(b[0]) * -1;\n}\n\nexport async function findGlobalJson(\n packageFile: string,\n): Promise<GlobalJson | null> {\n const globalJsonPath = await findLocalSiblingOrParent(\n packageFile,\n 'global.json',\n );\n if (!globalJsonPath) {\n return null;\n }\n\n const content = await readLocalFile(globalJsonPath, 'utf8');\n if (!content) {\n logger.debug({ packageFile, globalJsonPath }, 'Failed to read global.json');\n return null;\n }\n\n const result = await GlobalJson.safeParseAsync(content);\n if (!result.success) {\n logger.debug(\n { packageFile, globalJsonPath, err: result.error },\n 'Failed to parse global.json',\n );\n return null;\n }\n return result.data;\n}\n"]}
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../lib/modules/manager/nuget/util.ts"],"names":[],"mappings":"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","sourcesContent":["import upath from 'upath';\nimport type { XmlElement } from 'xmldoc';\nimport { XmlDocument } from 'xmldoc';\nimport { logger } from '../../../logger';\nimport {\n findLocalSiblingOrParent,\n findUpLocal,\n readLocalFile,\n} from '../../../util/fs';\nimport { minimatch } from '../../../util/minimatch';\nimport { regEx } from '../../../util/regex';\nimport { nugetOrg } from '../../datasource/nuget';\nimport { GlobalJson } from './schema';\nimport type { NugetPackageDependency, Registry } from './types';\n\nexport async function readFileAsXmlDocument(\n file: string,\n): Promise<XmlDocument | undefined> {\n try {\n // TODO #22198\n const doc = new XmlDocument((await readLocalFile(file, 'utf8'))!);\n // don't return empty documents\n return doc?.firstChild ? doc : undefined;\n } catch (err) {\n logger.debug({ err, file }, `failed to parse file as XML document`);\n return undefined;\n }\n}\n\n/**\n * The default `nuget.org` named registry.\n * @returns the default registry for NuGet\n */\nexport function getDefaultRegistries(): Registry[] {\n return [{ url: nugetOrg, name: 'nuget.org' }];\n}\n\nexport async function getConfiguredRegistries(\n packageFile: string,\n): Promise<Registry[] | undefined> {\n // Valid file names taken from https://github.com/NuGet/NuGet.Client/blob/f64621487c0b454eda4b98af853bf4a528bef72a/src/NuGet.Core/NuGet.Configuration/Settings/Settings.cs#L34\n const nuGetConfigFileNames = ['nuget.config', 'NuGet.config', 'NuGet.Config'];\n // normalize paths, otherwise startsWith can fail because of path delimitter mismatch\n const nuGetConfigPath = await findUpLocal(\n nuGetConfigFileNames,\n upath.dirname(packageFile),\n );\n if (!nuGetConfigPath) {\n return undefined;\n }\n\n logger.debug(`Found NuGet.config at ${nuGetConfigPath}`);\n const nuGetConfig = await readFileAsXmlDocument(nuGetConfigPath);\n\n if (!nuGetConfig) {\n return undefined;\n }\n\n const packageSources = nuGetConfig.childNamed('packageSources');\n\n if (!packageSources) {\n // If there are no packageSources, don't even look for any\n // disabledPackageSources\n // Even if NuGet default source (nuget.org) was among the\n // disabledPackageSources, Renovate will default to the default source\n // (nuget.org) anyway\n return undefined;\n }\n\n const packageSourceMapping = nuGetConfig.childNamed('packageSourceMapping');\n\n let registries = getDefaultRegistries();\n\n // Map optional source mapped package patterns to default registries\n for (const registry of registries) {\n const sourceMappedPackagePatterns = packageSourceMapping\n ?.childWithAttribute('key', registry.name)\n ?.childrenNamed('package')\n .map((packagePattern) => packagePattern.attr.pattern);\n\n registry.sourceMappedPackagePatterns = sourceMappedPackagePatterns;\n }\n\n for (const child of packageSources.children) {\n if (child.type === 'element') {\n if (child.name === 'clear') {\n logger.debug(`clearing registry URLs`);\n registries.length = 0;\n } else if (child.name === 'add') {\n const isHttpUrl = regEx(/^https?:\\/\\//i).test(child.attr.value);\n if (isHttpUrl) {\n let registryUrl = child.attr.value;\n if (child.attr.protocolVersion) {\n registryUrl += `#protocolVersion=${child.attr.protocolVersion}`;\n }\n const sourceMappedPackagePatterns = packageSourceMapping\n ?.childWithAttribute('key', child.attr.key)\n ?.childrenNamed('package')\n .map((packagePattern) => packagePattern.attr.pattern);\n\n logger.debug(\n {\n name: child.attr.key,\n registryUrl,\n sourceMappedPackagePatterns,\n },\n `Adding registry URL ${registryUrl}`,\n );\n\n registries.push({\n name: child.attr.key,\n url: registryUrl,\n sourceMappedPackagePatterns,\n });\n } else {\n logger.debug(\n { registryUrl: child.attr.value },\n 'ignoring local registry URL',\n );\n }\n }\n // child.name === 'remove' not supported\n }\n }\n\n const disabledPackageSources = nuGetConfig.childNamed(\n 'disabledPackageSources',\n );\n\n if (disabledPackageSources) {\n for (const child of disabledPackageSources.children) {\n if (\n child.type === 'element' &&\n child.name === 'add' &&\n child.attr.value === 'true'\n ) {\n const disabledRegistryKey = child.attr.key;\n registries = registries.filter((o) => o.name !== disabledRegistryKey);\n logger.debug(`Disabled registry with key: ${disabledRegistryKey}`);\n }\n }\n }\n\n return registries;\n}\n\nexport function findVersion(parsedXml: XmlDocument): XmlElement | null {\n for (const tag of ['Version', 'VersionPrefix']) {\n for (const l1Elem of parsedXml.childrenNamed('PropertyGroup')) {\n for (const l2Elem of l1Elem.childrenNamed(tag)) {\n return l2Elem;\n }\n }\n }\n return null;\n}\n\nexport function applyRegistries(\n dep: NugetPackageDependency,\n registries: Registry[] | undefined,\n): NugetPackageDependency {\n if (registries) {\n if (!registries.some((reg) => reg.sourceMappedPackagePatterns)) {\n dep.registryUrls = registries.map((reg) => reg.url);\n return dep;\n }\n\n const regs = registries.filter((r) => r.sourceMappedPackagePatterns);\n const map = new Map<string, Registry[]>(\n regs.flatMap((r) => r.sourceMappedPackagePatterns!.map((p) => [p, []])),\n );\n const depName = dep.depName;\n\n for (const reg of regs) {\n for (const pattern of reg.sourceMappedPackagePatterns!) {\n map.get(pattern)!.push(reg);\n }\n }\n\n const urls: string[] = [];\n\n for (const [pattern, regs] of [...map].sort(sortPatterns)) {\n if (minimatch(pattern, { nocase: true }).match(depName)) {\n urls.push(...regs.map((r) => r.url));\n break;\n }\n }\n\n if (urls.length) {\n dep.registryUrls = urls;\n }\n }\n return dep;\n}\n\n/*\n * Sorts patterns by specificity:\n * 1. Exact match patterns\n * 2. Wildcard match patterns\n */\nfunction sortPatterns(\n a: [string, Registry[]],\n b: [string, Registry[]],\n): number {\n if (a[0].endsWith('*') && !b[0].endsWith('*')) {\n return 1;\n }\n\n if (!a[0].endsWith('*') && b[0].endsWith('*')) {\n return -1;\n }\n\n return a[0].localeCompare(b[0]) * -1;\n}\n\nexport async function findGlobalJson(\n packageFile: string,\n): Promise<GlobalJson | null> {\n const globalJsonPath = await findLocalSiblingOrParent(\n packageFile,\n 'global.json',\n );\n if (!globalJsonPath) {\n return null;\n }\n\n const content = await readLocalFile(globalJsonPath, 'utf8');\n if (!content) {\n logger.debug({ packageFile, globalJsonPath }, 'Failed to read global.json');\n return null;\n }\n\n const result = await GlobalJson.safeParseAsync(content);\n if (!result.success) {\n logger.debug(\n { packageFile, globalJsonPath, err: result.error },\n 'Failed to parse global.json',\n );\n return null;\n }\n return result.data;\n}\n"]}
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.extractPackageFile = extractPackageFile;
|
4
4
|
const tslib_1 = require("tslib");
|
5
5
|
const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
|
6
|
-
const
|
6
|
+
const json5_1 = tslib_1.__importDefault(require("json5"));
|
7
7
|
const semver_1 = require("semver");
|
8
8
|
const logger_1 = require("../../../logger");
|
9
9
|
const maven_1 = require("../../datasource/maven");
|
@@ -16,7 +16,7 @@ function extractPackageFile(content, packageFile, _config) {
|
|
16
16
|
let featureModel;
|
17
17
|
try {
|
18
18
|
// Compendium R8 159.3: JS comments are supported
|
19
|
-
featureModel =
|
19
|
+
featureModel = json5_1.default.parse(content);
|
20
20
|
}
|
21
21
|
catch (err) {
|
22
22
|
logger_1.logger.warn({ packageFile, err }, 'Failed to parse osgi file');
|
@@ -32,7 +32,7 @@ function extractPackageFile(content, packageFile, _config) {
|
|
32
32
|
// OSGi Compendium R8 159.4: bundles entry
|
33
33
|
const allBundles = featureModel.bundles ?? [];
|
34
34
|
// The 'execution-environment' key is supported by the Sling/OSGi feature model implementation
|
35
|
-
const execEnvFramework = featureModel['execution-environment:JSON|false']?.
|
35
|
+
const execEnvFramework = featureModel['execution-environment:JSON|false']?.framework;
|
36
36
|
if (!is_1.default.nullOrUndefined(execEnvFramework)) {
|
37
37
|
allBundles.push(execEnvFramework);
|
38
38
|
}
|