renovate 39.176.4 → 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 +28 -24
- package/renovate-schema.json +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/pip-compile/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import upath from 'upath';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { readLocalFile } from '../../../util/fs';\nimport { ensureLocalPath } from '../../../util/fs/util';\nimport { extractPackageFile as extractRequirementsFile } from '../pip_requirements/extract';\nimport { extractPackageFile as extractSetupPyFile } from '../pip_setup';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFile,\n PackageFileContent,\n} from '../types';\nimport { extractHeaderCommand, matchManager } from './common';\nimport type { DependencyBetweenFiles, PipCompileArgs } from './types';\nimport {\n generateMermaidGraph,\n inferCommandExecDir,\n sortPackageFiles,\n} from './utils';\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n _config: ExtractConfig,\n): PackageFileContent | null {\n logger.trace('pip-compile.extractPackageFile()');\n const manager = matchManager(packageFile);\n switch (manager) {\n case 'pip_setup':\n return extractSetupPyFile(content, packageFile, _config);\n case 'pip_requirements':\n return extractRequirementsFile(content);\n case 'unknown':\n logger.warn(\n { packageFile },\n `pip-compile: could not determine manager for source file`,\n );\n return null;\n default:\n logger.warn(\n { packageFile, manager },\n `pip-compile: support for manager is not yet implemented`,\n );\n return null;\n }\n}\n\nexport async function extractAllPackageFiles(\n config: ExtractConfig,\n fileMatches: string[],\n): Promise<PackageFile[] | null> {\n logger.trace('pip-compile.extractAllPackageFiles()');\n const lockFileArgs = new Map<string, PipCompileArgs>();\n const depsBetweenFiles: DependencyBetweenFiles[] = [];\n const packageFiles = new Map<string, PackageFile>();\n const lockFileSources = new Map<string, PackageFile[]>();\n for (const fileMatch of fileMatches) {\n const fileContent = await readLocalFile(fileMatch, 'utf8');\n if (!fileContent) {\n logger.debug(`pip-compile: no content found for fileMatch ${fileMatch}`);\n continue;\n }\n let compileArgs: PipCompileArgs;\n let compileDir: string;\n try {\n compileArgs = extractHeaderCommand(fileContent, fileMatch);\n compileDir = inferCommandExecDir(fileMatch, compileArgs.outputFile);\n } catch (error) {\n logger.warn(\n { fileMatch, errorMessage: error.message },\n 'pip-compile error',\n );\n continue;\n }\n lockFileArgs.set(fileMatch, compileArgs);\n for (const constraint of coerceArray(compileArgs.constraintsFiles)) {\n depsBetweenFiles.push({\n sourceFile: constraint,\n outputFile: fileMatch,\n type: 'constraint',\n });\n }\n const lockedDeps = extractRequirementsFile(fileContent)?.deps;\n if (!lockedDeps) {\n logger.debug(\n { fileMatch },\n 'pip-compile: Failed to extract dependencies from lock file',\n );\n continue;\n }\n\n for (const relativeSourceFile of compileArgs.sourceFiles) {\n const packageFile = upath.normalizeTrim(\n upath.join(compileDir, relativeSourceFile),\n );\n try {\n ensureLocalPath(packageFile);\n } catch {\n logger.warn(\n { fileMatch, packageFile },\n 'pip-compile: Source file path outside of repository',\n );\n continue;\n }\n depsBetweenFiles.push({\n sourceFile: packageFile,\n outputFile: fileMatch,\n type: 'requirement',\n });\n if (fileMatches.includes(packageFile)) {\n // TODO(not7cd): do something about it\n logger.warn(\n { sourceFile: packageFile, lockFile: fileMatch },\n 'pip-compile: lock file acts as source file for another lock file',\n );\n continue;\n }\n if (packageFiles.has(packageFile)) {\n logger.debug(\n `pip-compile: ${packageFile} used in multiple output files`,\n );\n const existingPackageFile = packageFiles.get(packageFile)!;\n existingPackageFile.lockFiles!.push(fileMatch);\n extendWithIndirectDeps(existingPackageFile, lockedDeps);\n const source = lockFileSources.get(fileMatch) ?? [];\n source.push(existingPackageFile);\n lockFileSources.set(fileMatch, source);\n continue;\n }\n const content = await readLocalFile(packageFile, 'utf8');\n if (!content) {\n logger.debug(`pip-compile: No content for source file ${packageFile}`);\n continue;\n }\n\n const packageFileContent = extractPackageFile(\n content,\n packageFile,\n config,\n );\n if (packageFileContent) {\n if (packageFileContent.managerData?.requirementsFiles) {\n packageFileContent.managerData.requirementsFiles =\n packageFileContent.managerData.requirementsFiles.map(\n (file: string) => upath.normalize(upath.join(compileDir, file)),\n );\n for (const file of packageFileContent.managerData.requirementsFiles) {\n depsBetweenFiles.push({\n sourceFile: file,\n outputFile: packageFile,\n type: 'requirement',\n });\n }\n }\n if (packageFileContent.managerData?.constraintsFiles) {\n packageFileContent.managerData.constraintsFiles =\n packageFileContent.managerData.constraintsFiles.map(\n (file: string) => upath.normalize(upath.join(compileDir, file)),\n );\n for (const file of packageFileContent.managerData.constraintsFiles) {\n depsBetweenFiles.push({\n sourceFile: file,\n outputFile: packageFile,\n type: 'requirement',\n });\n }\n }\n for (const dep of packageFileContent.deps) {\n const lockedVersion = lockedDeps?.find(\n (lockedDep) => lockedDep.packageName! === dep.packageName!,\n )?.currentVersion;\n if (lockedVersion) {\n dep.lockedVersion = lockedVersion;\n } else {\n logger.warn(\n { depName: dep.depName, lockFile: fileMatch },\n 'pip-compile: dependency not found in lock file',\n );\n }\n }\n extendWithIndirectDeps(packageFileContent, lockedDeps);\n const newPackageFile: PackageFile = {\n ...packageFileContent,\n lockFiles: [fileMatch],\n packageFile,\n };\n packageFiles.set(packageFile, newPackageFile);\n const source = lockFileSources.get(fileMatch) ?? [];\n source.push(newPackageFile);\n lockFileSources.set(fileMatch, source);\n } else {\n logger.warn(\n { packageFile },\n 'pip-compile: failed to find dependencies in source file',\n );\n }\n }\n }\n if (packageFiles.size === 0) {\n return null;\n }\n const result: PackageFile[] = sortPackageFiles(\n depsBetweenFiles,\n packageFiles,\n );\n\n // This needs to go in reverse order to handle transitive dependencies\n for (const packageFile of [...result].reverse()) {\n for (const reqFile of packageFile.managerData?.requirementsFiles ?? []) {\n let sourceFiles: PackageFile[] | undefined = undefined;\n if (fileMatches.includes(reqFile)) {\n sourceFiles = lockFileSources.get(reqFile);\n } else if (packageFiles.has(reqFile)) {\n sourceFiles = [packageFiles.get(reqFile)!];\n }\n if (!sourceFiles) {\n logger.warn(\n { packageFile: packageFile.packageFile, requirementsFile: reqFile },\n 'pip-compile: Package file references a file which does not appear to be a requirements file managed by pip-compile',\n );\n continue;\n }\n // These get reversed before merging so that we keep the last instance of any common\n // lock files, since a file that -r includes multiple lock files needs to be updated after\n // all of the lock files it includes\n const files = new Set([...packageFile.lockFiles!].reverse());\n for (const sourceFile of sourceFiles) {\n const merged = new Set(files);\n for (const lockFile of [...sourceFile.lockFiles!].reverse()) {\n merged.add(lockFile);\n }\n sourceFile.lockFiles = Array.from(merged).reverse();\n }\n }\n }\n logger.debug(\n 'pip-compile: dependency graph:\\n' +\n generateMermaidGraph(depsBetweenFiles, lockFileArgs),\n );\n return result;\n}\n\nfunction extendWithIndirectDeps(\n packageFileContent: PackageFileContent,\n lockedDeps: PackageDependency[],\n): void {\n for (const lockedDep of lockedDeps) {\n if (\n !packageFileContent.deps.find(\n (dep) => lockedDep.packageName! === dep.packageName!,\n )\n ) {\n packageFileContent.deps.push(indirectDep(lockedDep));\n }\n }\n}\n\n/**\n * As indirect dependecies don't exist in the package file, we need to\n * create them from the lock file.\n *\n * By removing currentValue and currentVersion, we ensure that they\n * are handled like unconstrained dependencies with locked version.\n * Such packages are updated when their update strategy\n * is set to 'update-lockfile',\n * see: lib/workers/repository/process/lookup/index.ts.\n *\n * By disabling them by default, we won't create noise by updating them.\n * Unless they have vulnerability alert, then they are forced to be updated.\n * @param dep dependency extracted from lock file (requirements.txt)\n * @returns unconstrained dependency with locked version\n */\nfunction indirectDep(dep: PackageDependency): PackageDependency {\n const result = {\n ...dep,\n lockedVersion: dep.currentVersion,\n depType: 'indirect',\n enabled: false,\n };\n delete result.currentValue;\n delete result.currentVersion;\n return result;\n}\n"]}
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/pip-compile/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import upath from 'upath';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { readLocalFile } from '../../../util/fs';\nimport { ensureLocalPath } from '../../../util/fs/util';\nimport { extractPackageFile as extractRequirementsFile } from '../pip_requirements/extract';\nimport { extractPackageFile as extractSetupPyFile } from '../pip_setup';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFile,\n PackageFileContent,\n} from '../types';\nimport { extractHeaderCommand, matchManager } from './common';\nimport type { DependencyBetweenFiles, PipCompileArgs } from './types';\nimport {\n generateMermaidGraph,\n inferCommandExecDir,\n sortPackageFiles,\n} from './utils';\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n _config: ExtractConfig,\n): PackageFileContent | null {\n logger.trace('pip-compile.extractPackageFile()');\n const manager = matchManager(packageFile);\n switch (manager) {\n case 'pip_setup':\n return extractSetupPyFile(content, packageFile, _config);\n case 'pip_requirements':\n return extractRequirementsFile(content);\n case 'unknown':\n logger.warn(\n { packageFile },\n `pip-compile: could not determine manager for source file`,\n );\n return null;\n default:\n logger.warn(\n { packageFile, manager },\n `pip-compile: support for manager is not yet implemented`,\n );\n return null;\n }\n}\n\nexport async function extractAllPackageFiles(\n config: ExtractConfig,\n fileMatches: string[],\n): Promise<PackageFile[] | null> {\n logger.trace('pip-compile.extractAllPackageFiles()');\n const lockFileArgs = new Map<string, PipCompileArgs>();\n const depsBetweenFiles: DependencyBetweenFiles[] = [];\n const packageFiles = new Map<string, PackageFile>();\n const lockFileSources = new Map<string, PackageFile[]>();\n for (const fileMatch of fileMatches) {\n const fileContent = await readLocalFile(fileMatch, 'utf8');\n if (!fileContent) {\n logger.debug(`pip-compile: no content found for fileMatch ${fileMatch}`);\n continue;\n }\n let compileArgs: PipCompileArgs;\n let compileDir: string;\n try {\n compileArgs = extractHeaderCommand(fileContent, fileMatch);\n compileDir = inferCommandExecDir(fileMatch, compileArgs.outputFile);\n } catch (error) {\n logger.warn(\n { fileMatch, errorMessage: error.message },\n 'pip-compile error',\n );\n continue;\n }\n lockFileArgs.set(fileMatch, compileArgs);\n for (const constraint of coerceArray(compileArgs.constraintsFiles)) {\n depsBetweenFiles.push({\n sourceFile: constraint,\n outputFile: fileMatch,\n type: 'constraint',\n });\n }\n const lockedDeps = extractRequirementsFile(fileContent)?.deps;\n if (!lockedDeps) {\n logger.debug(\n { fileMatch },\n 'pip-compile: Failed to extract dependencies from lock file',\n );\n continue;\n }\n\n for (const relativeSourceFile of compileArgs.sourceFiles) {\n const packageFile = upath.normalizeTrim(\n upath.join(compileDir, relativeSourceFile),\n );\n try {\n ensureLocalPath(packageFile);\n } catch {\n logger.warn(\n { fileMatch, packageFile },\n 'pip-compile: Source file path outside of repository',\n );\n continue;\n }\n depsBetweenFiles.push({\n sourceFile: packageFile,\n outputFile: fileMatch,\n type: 'requirement',\n });\n if (fileMatches.includes(packageFile)) {\n // TODO(not7cd): do something about it\n logger.warn(\n { sourceFile: packageFile, lockFile: fileMatch },\n 'pip-compile: lock file acts as source file for another lock file',\n );\n continue;\n }\n if (packageFiles.has(packageFile)) {\n logger.debug(\n `pip-compile: ${packageFile} used in multiple output files`,\n );\n const existingPackageFile = packageFiles.get(packageFile)!;\n existingPackageFile.lockFiles!.push(fileMatch);\n extendWithIndirectDeps(existingPackageFile, lockedDeps);\n const source = lockFileSources.get(fileMatch) ?? [];\n source.push(existingPackageFile);\n lockFileSources.set(fileMatch, source);\n continue;\n }\n const content = await readLocalFile(packageFile, 'utf8');\n if (!content) {\n logger.debug(`pip-compile: No content for source file ${packageFile}`);\n continue;\n }\n\n const packageFileContent = extractPackageFile(\n content,\n packageFile,\n config,\n );\n if (packageFileContent) {\n if (packageFileContent.managerData?.requirementsFiles) {\n packageFileContent.managerData.requirementsFiles =\n packageFileContent.managerData.requirementsFiles.map(\n (file: string) => upath.normalize(upath.join(compileDir, file)),\n );\n for (const file of packageFileContent.managerData.requirementsFiles) {\n depsBetweenFiles.push({\n sourceFile: file,\n outputFile: packageFile,\n type: 'requirement',\n });\n }\n }\n if (packageFileContent.managerData?.constraintsFiles) {\n packageFileContent.managerData.constraintsFiles =\n packageFileContent.managerData.constraintsFiles.map(\n (file: string) => upath.normalize(upath.join(compileDir, file)),\n );\n for (const file of packageFileContent.managerData.constraintsFiles) {\n depsBetweenFiles.push({\n sourceFile: file,\n outputFile: packageFile,\n type: 'requirement',\n });\n }\n }\n for (const dep of packageFileContent.deps) {\n const lockedVersion = lockedDeps?.find(\n (lockedDep) => lockedDep.packageName === dep.packageName,\n )?.currentVersion;\n if (lockedVersion) {\n dep.lockedVersion = lockedVersion;\n } else {\n logger.warn(\n { depName: dep.depName, lockFile: fileMatch },\n 'pip-compile: dependency not found in lock file',\n );\n }\n }\n extendWithIndirectDeps(packageFileContent, lockedDeps);\n const newPackageFile: PackageFile = {\n ...packageFileContent,\n lockFiles: [fileMatch],\n packageFile,\n };\n packageFiles.set(packageFile, newPackageFile);\n const source = lockFileSources.get(fileMatch) ?? [];\n source.push(newPackageFile);\n lockFileSources.set(fileMatch, source);\n } else {\n logger.warn(\n { packageFile },\n 'pip-compile: failed to find dependencies in source file',\n );\n }\n }\n }\n if (packageFiles.size === 0) {\n return null;\n }\n const result: PackageFile[] = sortPackageFiles(\n depsBetweenFiles,\n packageFiles,\n );\n\n // This needs to go in reverse order to handle transitive dependencies\n for (const packageFile of [...result].reverse()) {\n for (const reqFile of packageFile.managerData?.requirementsFiles ?? []) {\n let sourceFiles: PackageFile[] | undefined = undefined;\n if (fileMatches.includes(reqFile)) {\n sourceFiles = lockFileSources.get(reqFile);\n } else if (packageFiles.has(reqFile)) {\n sourceFiles = [packageFiles.get(reqFile)!];\n }\n if (!sourceFiles) {\n logger.warn(\n { packageFile: packageFile.packageFile, requirementsFile: reqFile },\n 'pip-compile: Package file references a file which does not appear to be a requirements file managed by pip-compile',\n );\n continue;\n }\n // These get reversed before merging so that we keep the last instance of any common\n // lock files, since a file that -r includes multiple lock files needs to be updated after\n // all of the lock files it includes\n const files = new Set([...packageFile.lockFiles!].reverse());\n for (const sourceFile of sourceFiles) {\n const merged = new Set(files);\n for (const lockFile of [...sourceFile.lockFiles!].reverse()) {\n merged.add(lockFile);\n }\n sourceFile.lockFiles = Array.from(merged).reverse();\n }\n }\n }\n logger.debug(\n 'pip-compile: dependency graph:\\n' +\n generateMermaidGraph(depsBetweenFiles, lockFileArgs),\n );\n return result;\n}\n\nfunction extendWithIndirectDeps(\n packageFileContent: PackageFileContent,\n lockedDeps: PackageDependency[],\n): void {\n for (const lockedDep of lockedDeps) {\n if (\n !packageFileContent.deps.find(\n (dep) => lockedDep.packageName === dep.packageName,\n )\n ) {\n packageFileContent.deps.push(indirectDep(lockedDep));\n }\n }\n}\n\n/**\n * As indirect dependecies don't exist in the package file, we need to\n * create them from the lock file.\n *\n * By removing currentValue and currentVersion, we ensure that they\n * are handled like unconstrained dependencies with locked version.\n * Such packages are updated when their update strategy\n * is set to 'update-lockfile',\n * see: lib/workers/repository/process/lookup/index.ts.\n *\n * By disabling them by default, we won't create noise by updating them.\n * Unless they have vulnerability alert, then they are forced to be updated.\n * @param dep dependency extracted from lock file (requirements.txt)\n * @returns unconstrained dependency with locked version\n */\nfunction indirectDep(dep: PackageDependency): PackageDependency {\n const result = {\n ...dep,\n lockedVersion: dep.currentVersion,\n depType: 'indirect',\n enabled: false,\n };\n delete result.currentValue;\n delete result.currentVersion;\n return result;\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../lib/modules/manager/pip-compile/types.ts"],"names":[],"mappings":"","sourcesContent":["// managers supported by pip-tools mapped to Renovate's internal names\nexport type SupportedManagers =\n | 'pip_requirements'\n | 'pip_setup'\n | 'setup-cfg'\n | 'pep621';\n\nexport type CommandType = 'pip-compile' | 'uv' | 'custom';\n\nexport interface PipCompileArgs {\n argv: string[]; // all arguments as a list\n command: string;\n commandType: CommandType;\n constraintsFiles?: string[];\n extra?: string[];\n allExtras?: boolean;\n extraIndexUrl?: string[];\n indexUrl?: string;\n noEmitIndexUrl?: boolean;\n emitIndexUrl?: boolean;\n outputFile?: string;\n sourceFiles: string[]; // positional arguments\n}\n\nexport interface DependencyBetweenFiles {\n sourceFile: string;\n outputFile: string;\n type: 'requirement' | 'constraint';\n}\n"]}
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../lib/modules/manager/pip-compile/types.ts"],"names":[],"mappings":"","sourcesContent":["// managers supported by pip-tools mapped to Renovate's internal names\nexport type SupportedManagers =\n | 'pip_requirements'\n | 'pip_setup'\n | 'setup-cfg'\n | 'pep621';\n\nexport type CommandType = 'pip-compile' | 'uv' | 'custom';\n\nexport interface PipCompileArgs {\n argv: string[]; // all arguments as a list\n command: string;\n commandType: CommandType;\n constraintsFiles?: string[];\n pythonVersion?: string;\n extra?: string[];\n allExtras?: boolean;\n extraIndexUrl?: string[];\n indexUrl?: string;\n noEmitIndexUrl?: boolean;\n emitIndexUrl?: boolean;\n outputFile?: string;\n sourceFiles: string[]; // positional arguments\n}\n\nexport interface DependencyBetweenFiles {\n sourceFile: string;\n outputFile: string;\n type: 'requirement' | 'constraint';\n}\n"]}
|
@@ -37,7 +37,7 @@ function getPythonConstraint(pyProjectContent, existingLockFileContent) {
|
|
37
37
|
function getPoetryRequirement(pyProjectContent, existingLockFileContent) {
|
38
38
|
// Read Poetry version from first line of poetry.lock
|
39
39
|
const firstLine = existingLockFileContent.split('\n')[0];
|
40
|
-
const poetryVersionMatch =
|
40
|
+
const poetryVersionMatch = /by Poetry ([\d\\.]+)/.exec(firstLine);
|
41
41
|
if (poetryVersionMatch?.[1]) {
|
42
42
|
const poetryVersion = poetryVersionMatch[1];
|
43
43
|
logger_1.logger.debug(`Using poetry version ${poetryVersion} from poetry.lock header`);
|
@@ -118,7 +118,7 @@ async function getSourceCredentialVars(pyprojectContent, packageFileName) {
|
|
118
118
|
}
|
119
119
|
async function updateArtifacts({ packageFileName, updatedDeps, newPackageFileContent, config, }) {
|
120
120
|
logger_1.logger.debug(`poetry.updateArtifacts(${packageFileName})`);
|
121
|
-
const isLockFileMaintenance = config
|
121
|
+
const { isLockFileMaintenance } = config;
|
122
122
|
if (!is_1.default.nonEmptyArray(updatedDeps) && !isLockFileMaintenance) {
|
123
123
|
logger_1.logger.debug('No updated poetry deps - returning null');
|
124
124
|
return null;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/poetry/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport type { HostRule } from '../../../types';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions } from '../../../util/exec/types';\nimport {\n deleteLocalFile,\n ensureCacheDir,\n getSiblingFileName,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport { getGitEnvironmentVariables } from '../../../util/git/auth';\nimport { find } from '../../../util/host-rules';\nimport { regEx } from '../../../util/regex';\nimport { Result } from '../../../util/result';\nimport { parse as parseToml } from '../../../util/toml';\nimport { parseUrl } from '../../../util/url';\nimport { PypiDatasource } from '../../datasource/pypi';\nimport { getGoogleAuthHostRule } from '../../datasource/util';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\nimport { Lockfile, PoetrySchemaToml } from './schema';\nimport type { PoetryFile, PoetrySource } from './types';\n\nexport function getPythonConstraint(\n pyProjectContent: string,\n existingLockFileContent: string,\n): string | null {\n // Read Python version from `pyproject.toml` first as it could have been updated\n const pyprojectPythonConstraint = Result.parse(\n pyProjectContent,\n PoetrySchemaToml.transform(\n ({ packageFileContent }) =>\n packageFileContent.deps.find((dep) => dep.depName === 'python')\n ?.currentValue,\n ),\n ).unwrapOrNull();\n if (pyprojectPythonConstraint) {\n logger.debug('Using python version from pyproject.toml');\n return pyprojectPythonConstraint;\n }\n\n const lockfilePythonConstraint = Result.parse(\n existingLockFileContent,\n Lockfile.transform(({ pythonVersions }) => pythonVersions),\n ).unwrapOrNull();\n if (lockfilePythonConstraint) {\n logger.debug('Using python version from poetry.lock');\n return lockfilePythonConstraint;\n }\n\n return null;\n}\n\nexport function getPoetryRequirement(\n pyProjectContent: string,\n existingLockFileContent: string,\n): undefined | string | null {\n // Read Poetry version from first line of poetry.lock\n const firstLine = existingLockFileContent.split('\\n')[0];\n const poetryVersionMatch = firstLine.match(/by Poetry ([\\d\\\\.]+)/);\n if (poetryVersionMatch?.[1]) {\n const poetryVersion = poetryVersionMatch[1];\n logger.debug(\n `Using poetry version ${poetryVersion} from poetry.lock header`,\n );\n return poetryVersion;\n }\n\n const { val: lockfilePoetryConstraint } = Result.parse(\n existingLockFileContent,\n Lockfile.transform(({ poetryConstraint }) => poetryConstraint),\n ).unwrap();\n if (lockfilePoetryConstraint) {\n logger.debug(\n `Using poetry version ${lockfilePoetryConstraint} from poetry.lock metadata`,\n );\n return lockfilePoetryConstraint;\n }\n\n const { val: pyprojectPoetryConstraint } = Result.parse(\n pyProjectContent,\n PoetrySchemaToml.transform(({ poetryRequirement }) => poetryRequirement),\n ).unwrap();\n if (pyprojectPoetryConstraint) {\n logger.debug(\n `Using poetry version ${pyprojectPoetryConstraint} from pyproject.toml`,\n );\n return pyprojectPoetryConstraint;\n }\n\n return null;\n}\n\nfunction getPoetrySources(content: string, fileName: string): PoetrySource[] {\n let pyprojectFile: PoetryFile;\n try {\n pyprojectFile = parseToml(content) as PoetryFile;\n } catch (err) {\n logger.debug({ err }, 'Error parsing pyproject.toml file');\n return [];\n }\n if (!pyprojectFile.tool?.poetry) {\n logger.debug(`${fileName} contains no poetry section`);\n return [];\n }\n\n const sources = pyprojectFile.tool?.poetry?.source ?? [];\n const sourceArray: PoetrySource[] = [];\n for (const source of sources) {\n if (source.name && source.url) {\n sourceArray.push({ name: source.name, url: source.url });\n }\n }\n return sourceArray;\n}\n\nasync function getMatchingHostRule(url: string | undefined): Promise<HostRule> {\n const scopedMatch = find({ hostType: PypiDatasource.id, url });\n const hostRule = is.nonEmptyObject(scopedMatch) ? scopedMatch : find({ url });\n if (hostRule && Object.keys(hostRule).length !== 0) {\n return hostRule;\n }\n\n const parsedUrl = parseUrl(url);\n if (!parsedUrl) {\n logger.once.debug(`Failed to parse URL ${url}`);\n return {};\n }\n\n if (parsedUrl.hostname.endsWith('.pkg.dev')) {\n const hostRule = await getGoogleAuthHostRule();\n if (hostRule && Object.keys(hostRule).length !== 0) {\n return hostRule;\n }\n logger.once.debug(`Could not get Google access token (url=${url})`);\n }\n\n return {};\n}\n\nasync function getSourceCredentialVars(\n pyprojectContent: string,\n packageFileName: string,\n): Promise<NodeJS.ProcessEnv> {\n const poetrySources = getPoetrySources(pyprojectContent, packageFileName);\n const envVars: NodeJS.ProcessEnv = {};\n\n for (const source of poetrySources) {\n const matchingHostRule = await getMatchingHostRule(source.url);\n const formattedSourceName = source.name\n .replace(regEx(/(\\.|-)+/g), '_')\n .toUpperCase();\n if (matchingHostRule.username) {\n envVars[`POETRY_HTTP_BASIC_${formattedSourceName}_USERNAME`] =\n matchingHostRule.username;\n }\n if (matchingHostRule.password) {\n envVars[`POETRY_HTTP_BASIC_${formattedSourceName}_PASSWORD`] =\n matchingHostRule.password;\n }\n }\n return envVars;\n}\n\nexport async function updateArtifacts({\n packageFileName,\n updatedDeps,\n newPackageFileContent,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`poetry.updateArtifacts(${packageFileName})`);\n const isLockFileMaintenance = config.updateType === 'lockFileMaintenance';\n\n if (!is.nonEmptyArray(updatedDeps) && !isLockFileMaintenance) {\n logger.debug('No updated poetry deps - returning null');\n return null;\n }\n // Try poetry.lock first\n let lockFileName = getSiblingFileName(packageFileName, 'poetry.lock');\n let existingLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!existingLockFileContent) {\n // Try pyproject.lock next\n lockFileName = getSiblingFileName(packageFileName, 'pyproject.lock');\n existingLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!existingLockFileContent) {\n logger.debug(`No lock file found`);\n return null;\n }\n }\n logger.debug(`Updating ${lockFileName}`);\n try {\n await writeLocalFile(packageFileName, newPackageFileContent);\n const cmd: string[] = [];\n if (isLockFileMaintenance) {\n await deleteLocalFile(lockFileName);\n cmd.push('poetry update --lock --no-interaction');\n } else {\n cmd.push(\n `poetry update --lock --no-interaction ${updatedDeps\n .map((dep) => dep.depName)\n .filter(is.string)\n .map((dep) => quote(dep))\n .join(' ')}`,\n );\n }\n const pythonConstraint =\n config?.constraints?.python ??\n getPythonConstraint(newPackageFileContent, existingLockFileContent);\n const poetryConstraint =\n config.constraints?.poetry ??\n getPoetryRequirement(newPackageFileContent, existingLockFileContent);\n const extraEnv = {\n ...(await getSourceCredentialVars(\n newPackageFileContent,\n packageFileName,\n )),\n ...getGitEnvironmentVariables(['poetry']),\n PIP_CACHE_DIR: await ensureCacheDir('pip'),\n };\n\n const execOptions: ExecOptions = {\n cwdFile: packageFileName,\n extraEnv,\n docker: {},\n userConfiguredEnv: config.env,\n toolConstraints: [\n { toolName: 'python', constraint: pythonConstraint },\n { toolName: 'poetry', constraint: poetryConstraint },\n ],\n };\n await exec(cmd, execOptions);\n const newPoetryLockContent = await readLocalFile(lockFileName, 'utf8');\n if (existingLockFileContent === newPoetryLockContent) {\n logger.debug(`${lockFileName} is unchanged`);\n return null;\n }\n logger.debug(`Returning updated ${lockFileName}`);\n return [\n {\n file: {\n type: 'addition',\n path: lockFileName,\n contents: newPoetryLockContent,\n },\n },\n ];\n } catch (err) {\n // istanbul ignore if\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.debug({ err }, `Failed to update ${lockFileName} file`);\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: `${String(err.stdout)}\\n${String(err.stderr)}`,\n },\n },\n ];\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/poetry/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport type { HostRule } from '../../../types';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions } from '../../../util/exec/types';\nimport {\n deleteLocalFile,\n ensureCacheDir,\n getSiblingFileName,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport { getGitEnvironmentVariables } from '../../../util/git/auth';\nimport { find } from '../../../util/host-rules';\nimport { regEx } from '../../../util/regex';\nimport { Result } from '../../../util/result';\nimport { parse as parseToml } from '../../../util/toml';\nimport { parseUrl } from '../../../util/url';\nimport { PypiDatasource } from '../../datasource/pypi';\nimport { getGoogleAuthHostRule } from '../../datasource/util';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\nimport { Lockfile, PoetrySchemaToml } from './schema';\nimport type { PoetryFile, PoetrySource } from './types';\n\nexport function getPythonConstraint(\n pyProjectContent: string,\n existingLockFileContent: string,\n): string | null {\n // Read Python version from `pyproject.toml` first as it could have been updated\n const pyprojectPythonConstraint = Result.parse(\n pyProjectContent,\n PoetrySchemaToml.transform(\n ({ packageFileContent }) =>\n packageFileContent.deps.find((dep) => dep.depName === 'python')\n ?.currentValue,\n ),\n ).unwrapOrNull();\n if (pyprojectPythonConstraint) {\n logger.debug('Using python version from pyproject.toml');\n return pyprojectPythonConstraint;\n }\n\n const lockfilePythonConstraint = Result.parse(\n existingLockFileContent,\n Lockfile.transform(({ pythonVersions }) => pythonVersions),\n ).unwrapOrNull();\n if (lockfilePythonConstraint) {\n logger.debug('Using python version from poetry.lock');\n return lockfilePythonConstraint;\n }\n\n return null;\n}\n\nexport function getPoetryRequirement(\n pyProjectContent: string,\n existingLockFileContent: string,\n): undefined | string | null {\n // Read Poetry version from first line of poetry.lock\n const firstLine = existingLockFileContent.split('\\n')[0];\n const poetryVersionMatch = /by Poetry ([\\d\\\\.]+)/.exec(firstLine);\n if (poetryVersionMatch?.[1]) {\n const poetryVersion = poetryVersionMatch[1];\n logger.debug(\n `Using poetry version ${poetryVersion} from poetry.lock header`,\n );\n return poetryVersion;\n }\n\n const { val: lockfilePoetryConstraint } = Result.parse(\n existingLockFileContent,\n Lockfile.transform(({ poetryConstraint }) => poetryConstraint),\n ).unwrap();\n if (lockfilePoetryConstraint) {\n logger.debug(\n `Using poetry version ${lockfilePoetryConstraint} from poetry.lock metadata`,\n );\n return lockfilePoetryConstraint;\n }\n\n const { val: pyprojectPoetryConstraint } = Result.parse(\n pyProjectContent,\n PoetrySchemaToml.transform(({ poetryRequirement }) => poetryRequirement),\n ).unwrap();\n if (pyprojectPoetryConstraint) {\n logger.debug(\n `Using poetry version ${pyprojectPoetryConstraint} from pyproject.toml`,\n );\n return pyprojectPoetryConstraint;\n }\n\n return null;\n}\n\nfunction getPoetrySources(content: string, fileName: string): PoetrySource[] {\n let pyprojectFile: PoetryFile;\n try {\n pyprojectFile = parseToml(content) as PoetryFile;\n } catch (err) {\n logger.debug({ err }, 'Error parsing pyproject.toml file');\n return [];\n }\n if (!pyprojectFile.tool?.poetry) {\n logger.debug(`${fileName} contains no poetry section`);\n return [];\n }\n\n const sources = pyprojectFile.tool?.poetry?.source ?? [];\n const sourceArray: PoetrySource[] = [];\n for (const source of sources) {\n if (source.name && source.url) {\n sourceArray.push({ name: source.name, url: source.url });\n }\n }\n return sourceArray;\n}\n\nasync function getMatchingHostRule(url: string | undefined): Promise<HostRule> {\n const scopedMatch = find({ hostType: PypiDatasource.id, url });\n const hostRule = is.nonEmptyObject(scopedMatch) ? scopedMatch : find({ url });\n if (hostRule && Object.keys(hostRule).length !== 0) {\n return hostRule;\n }\n\n const parsedUrl = parseUrl(url);\n if (!parsedUrl) {\n logger.once.debug(`Failed to parse URL ${url}`);\n return {};\n }\n\n if (parsedUrl.hostname.endsWith('.pkg.dev')) {\n const hostRule = await getGoogleAuthHostRule();\n if (hostRule && Object.keys(hostRule).length !== 0) {\n return hostRule;\n }\n logger.once.debug(`Could not get Google access token (url=${url})`);\n }\n\n return {};\n}\n\nasync function getSourceCredentialVars(\n pyprojectContent: string,\n packageFileName: string,\n): Promise<NodeJS.ProcessEnv> {\n const poetrySources = getPoetrySources(pyprojectContent, packageFileName);\n const envVars: NodeJS.ProcessEnv = {};\n\n for (const source of poetrySources) {\n const matchingHostRule = await getMatchingHostRule(source.url);\n const formattedSourceName = source.name\n .replace(regEx(/(\\.|-)+/g), '_')\n .toUpperCase();\n if (matchingHostRule.username) {\n envVars[`POETRY_HTTP_BASIC_${formattedSourceName}_USERNAME`] =\n matchingHostRule.username;\n }\n if (matchingHostRule.password) {\n envVars[`POETRY_HTTP_BASIC_${formattedSourceName}_PASSWORD`] =\n matchingHostRule.password;\n }\n }\n return envVars;\n}\n\nexport async function updateArtifacts({\n packageFileName,\n updatedDeps,\n newPackageFileContent,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`poetry.updateArtifacts(${packageFileName})`);\n const { isLockFileMaintenance } = config;\n\n if (!is.nonEmptyArray(updatedDeps) && !isLockFileMaintenance) {\n logger.debug('No updated poetry deps - returning null');\n return null;\n }\n // Try poetry.lock first\n let lockFileName = getSiblingFileName(packageFileName, 'poetry.lock');\n let existingLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!existingLockFileContent) {\n // Try pyproject.lock next\n lockFileName = getSiblingFileName(packageFileName, 'pyproject.lock');\n existingLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!existingLockFileContent) {\n logger.debug(`No lock file found`);\n return null;\n }\n }\n logger.debug(`Updating ${lockFileName}`);\n try {\n await writeLocalFile(packageFileName, newPackageFileContent);\n const cmd: string[] = [];\n if (isLockFileMaintenance) {\n await deleteLocalFile(lockFileName);\n cmd.push('poetry update --lock --no-interaction');\n } else {\n cmd.push(\n `poetry update --lock --no-interaction ${updatedDeps\n .map((dep) => dep.depName)\n .filter(is.string)\n .map((dep) => quote(dep))\n .join(' ')}`,\n );\n }\n const pythonConstraint =\n config?.constraints?.python ??\n getPythonConstraint(newPackageFileContent, existingLockFileContent);\n const poetryConstraint =\n config.constraints?.poetry ??\n getPoetryRequirement(newPackageFileContent, existingLockFileContent);\n const extraEnv = {\n ...(await getSourceCredentialVars(\n newPackageFileContent,\n packageFileName,\n )),\n ...getGitEnvironmentVariables(['poetry']),\n PIP_CACHE_DIR: await ensureCacheDir('pip'),\n };\n\n const execOptions: ExecOptions = {\n cwdFile: packageFileName,\n extraEnv,\n docker: {},\n userConfiguredEnv: config.env,\n toolConstraints: [\n { toolName: 'python', constraint: pythonConstraint },\n { toolName: 'poetry', constraint: poetryConstraint },\n ],\n };\n await exec(cmd, execOptions);\n const newPoetryLockContent = await readLocalFile(lockFileName, 'utf8');\n if (existingLockFileContent === newPoetryLockContent) {\n logger.debug(`${lockFileName} is unchanged`);\n return null;\n }\n logger.debug(`Returning updated ${lockFileName}`);\n return [\n {\n file: {\n type: 'addition',\n path: lockFileName,\n contents: newPoetryLockContent,\n },\n },\n ];\n } catch (err) {\n // istanbul ignore if\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.debug({ err }, `Failed to update ${lockFileName} file`);\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: `${String(err.stdout)}\\n${String(err.stderr)}`,\n },\n },\n ];\n }\n}\n"]}
|
@@ -3,10 +3,10 @@ export interface PreCommitConfig {
|
|
3
3
|
}
|
4
4
|
export interface PreCommitHook {
|
5
5
|
language?: string;
|
6
|
-
additional_dependencies?:
|
6
|
+
additional_dependencies?: string[];
|
7
7
|
}
|
8
8
|
export interface PreCommitDependency {
|
9
9
|
repo: string;
|
10
|
-
hooks?:
|
10
|
+
hooks?: PreCommitHook[];
|
11
11
|
rev: string;
|
12
12
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../lib/modules/manager/pre-commit/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface PreCommitConfig {\n repos: PreCommitDependency[];\n}\n\nexport interface PreCommitHook {\n language?: string;\n additional_dependencies?:
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../lib/modules/manager/pre-commit/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface PreCommitConfig {\n repos: PreCommitDependency[];\n}\n\nexport interface PreCommitHook {\n language?: string;\n additional_dependencies?: string[];\n}\n\nexport interface PreCommitDependency {\n repo: string;\n hooks?: PreCommitHook[];\n rev: string;\n}\n"]}
|
@@ -13,7 +13,7 @@ const SDK_NAMES = ['dart', 'flutter'];
|
|
13
13
|
const PUB_GET_COMMAND = 'pub get --no-precompile';
|
14
14
|
async function updateArtifacts({ packageFileName, updatedDeps, newPackageFileContent, config, }) {
|
15
15
|
logger_1.logger.debug(`pub.updateArtifacts(${packageFileName})`);
|
16
|
-
const isLockFileMaintenance = config
|
16
|
+
const { isLockFileMaintenance } = config;
|
17
17
|
if (is_1.default.emptyArray(updatedDeps) && !isLockFileMaintenance) {
|
18
18
|
logger_1.logger.debug('No updated pub deps - returning null');
|
19
19
|
return null;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/pub/artifacts.ts"],"names":[],"mappings":";;AAiBA,0CAiFC;;AAlGD,kEAAkC;AAClC,iCAA8B;AAC9B,sEAAoE;AACpE,4CAAyC;AACzC,6CAA0C;AAE1C,yCAI0B;AAE1B,mCAAyD;AAEzD,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACtC,MAAM,eAAe,GAAG,yBAAyB,CAAC;AAE3C,KAAK,UAAU,eAAe,CAAC,EACpC,eAAe,EACf,WAAW,EACX,qBAAqB,EACrB,MAAM,GACS;IACf,eAAM,CAAC,KAAK,CAAC,uBAAuB,eAAe,GAAG,CAAC,CAAC;IACxD,MAAM,qBAAqB,GAAG,MAAM,CAAC
|
1
|
+
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/pub/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions } from '../../../util/exec/types';\nimport {\n getSiblingFileName,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport type { UpdateArtifact, UpdateArtifactsResult, Upgrade } from '../types';\nimport { parsePubspec, parsePubspecLock } from './utils';\n\nconst SDK_NAMES = ['dart', 'flutter'];\nconst PUB_GET_COMMAND = 'pub get --no-precompile';\n\nexport async function updateArtifacts({\n packageFileName,\n updatedDeps,\n newPackageFileContent,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`pub.updateArtifacts(${packageFileName})`);\n const { isLockFileMaintenance } = config;\n\n if (is.emptyArray(updatedDeps) && !isLockFileMaintenance) {\n logger.debug('No updated pub deps - returning null');\n return null;\n }\n\n const lockFileName = getSiblingFileName(packageFileName, 'pubspec.lock');\n const oldLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!oldLockFileContent) {\n logger.debug('No pubspec.lock found');\n return null;\n }\n\n try {\n await writeLocalFile(packageFileName, newPackageFileContent);\n\n const isFlutter = newPackageFileContent.includes('sdk: flutter');\n const toolName = isFlutter ? 'flutter' : 'dart';\n const cmd = getExecCommand(toolName, updatedDeps, isLockFileMaintenance);\n\n let constraint = config.constraints?.[toolName];\n if (!constraint) {\n const pubspec = parsePubspec(packageFileName, newPackageFileContent);\n const pubspecToolName = isFlutter ? 'flutter' : 'sdk';\n constraint = pubspec?.environment[pubspecToolName];\n\n if (!constraint) {\n const pubspecLock = parsePubspecLock(lockFileName, oldLockFileContent);\n constraint = pubspecLock?.sdks[toolName];\n }\n }\n\n const execOptions: ExecOptions = {\n cwdFile: packageFileName,\n docker: {},\n userConfiguredEnv: config.env,\n toolConstraints: [\n {\n toolName,\n constraint,\n },\n ],\n };\n\n await exec(cmd, execOptions);\n const newLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (oldLockFileContent === newLockFileContent) {\n return null;\n }\n return [\n {\n file: {\n type: 'addition',\n path: lockFileName,\n contents: newLockFileContent,\n },\n },\n ];\n } catch (err) {\n // istanbul ignore if\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.warn({ lockfile: lockFileName, err }, `Failed to update lock file`);\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n\nfunction getExecCommand(\n toolName: string,\n updatedDeps: Upgrade<Record<string, unknown>>[],\n isLockFileMaintenance: boolean | undefined,\n): string {\n if (isLockFileMaintenance) {\n return `${toolName} pub upgrade`;\n } else {\n const depNames = updatedDeps.map((dep) => dep.depName).filter(is.string);\n if (depNames.length === 1 && SDK_NAMES.includes(depNames[0])) {\n return `${toolName} ${PUB_GET_COMMAND}`;\n }\n // If there are two updated dependencies and both of them are SDK updates (Dart and Flutter),\n // we use Flutter over Dart to run `pub get` as it is a Flutter project.\n else if (\n depNames.length === 2 &&\n depNames.filter((depName) => SDK_NAMES.includes(depName)).length === 2\n ) {\n return `flutter ${PUB_GET_COMMAND}`;\n } else {\n const depNamesCmd = depNames\n .filter((depName) => !SDK_NAMES.includes(depName))\n .map(quote)\n .join(' ');\n return `${toolName} pub upgrade ${depNamesCmd}`;\n }\n }\n}\n"]}
|
@@ -95,8 +95,7 @@ function searchKeysForState(state) {
|
|
95
95
|
function getMatch(str, state) {
|
96
96
|
const keys = searchKeysForState(state);
|
97
97
|
let result = null;
|
98
|
-
for (
|
99
|
-
const key = keys[i];
|
98
|
+
for (const key of keys) {
|
100
99
|
const regex = regExps[key];
|
101
100
|
const label = searchLabels[key];
|
102
101
|
const match = regex.exec(str);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/swift/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import { regEx } from '../../../util/regex';\nimport { GitTagsDatasource } from '../../datasource/git-tags';\nimport type { PackageDependency, PackageFileContent } from '../types';\nimport type { MatchResult } from './types';\n\nconst regExps = {\n wildcard: regEx(/^.*?/),\n space: regEx(/(\\s+|\\/\\/[^\\n]*|\\/\\*.*\\*\\/)+/s),\n depsKeyword: regEx(/dependencies/),\n colon: regEx(/:/),\n beginSection: regEx(/\\[/),\n endSection: regEx(/],?/),\n package: regEx(/\\s*.\\s*package\\s*\\(\\s*/),\n urlKey: regEx(/url/),\n stringLiteral: regEx(/\"[^\"]+\"/),\n comma: regEx(/,/),\n from: regEx(/from/),\n rangeOp: regEx(/\\.\\.[.<]/),\n exactVersion: regEx(/\\.\\s*exact\\s*\\(\\s*/),\n exactVersionLabel: regEx(/\\s*exact:/),\n};\n\nconst WILDCARD = 'wildcard';\nconst SPACE = 'space';\nconst DEPS = 'depsKeyword';\nconst COLON = 'colon';\nconst BEGIN_SECTION = 'beginSection';\nconst END_SECTION = 'endSection';\nconst PACKAGE = 'package';\nconst URL_KEY = 'urlKey';\nconst STRING_LITERAL = 'stringLiteral';\nconst COMMA = 'comma';\nconst FROM = 'from';\nconst RANGE_OP = 'rangeOp';\nconst EXACT_VERSION = 'exactVersion';\nconst EXACT_VERSION_LABEL = 'exactVersionLabel';\n\nconst searchLabels = {\n wildcard: WILDCARD,\n space: SPACE,\n depsKeyword: DEPS,\n colon: COLON,\n beginSection: BEGIN_SECTION,\n endSection: END_SECTION,\n package: PACKAGE,\n urlKey: URL_KEY,\n stringLiteral: STRING_LITERAL,\n comma: COMMA,\n from: FROM,\n rangeOp: RANGE_OP,\n exactVersion: EXACT_VERSION,\n exactVersionLabel: EXACT_VERSION_LABEL,\n};\n\nfunction searchKeysForState(state: string | null): (keyof typeof regExps)[] {\n switch (state) {\n case 'dependencies':\n return [SPACE, COLON, WILDCARD];\n case 'dependencies:':\n return [SPACE, BEGIN_SECTION, WILDCARD];\n case 'dependencies: [':\n return [SPACE, PACKAGE, END_SECTION];\n case '.package(':\n return [SPACE, URL_KEY, PACKAGE, END_SECTION];\n case '.package(url':\n return [SPACE, COLON, PACKAGE, END_SECTION];\n case '.package(url:':\n return [SPACE, STRING_LITERAL, PACKAGE, END_SECTION];\n case '.package(url: [depName]':\n return [SPACE, COMMA, PACKAGE, END_SECTION];\n case '.package(url: [depName],':\n return [\n SPACE,\n FROM,\n STRING_LITERAL,\n RANGE_OP,\n EXACT_VERSION,\n EXACT_VERSION_LABEL,\n PACKAGE,\n END_SECTION,\n ];\n case '.package(url: [depName], .exact(':\n return [SPACE, STRING_LITERAL, PACKAGE, END_SECTION];\n case '.package(url: [depName], exact:':\n return [SPACE, STRING_LITERAL, PACKAGE, END_SECTION];\n case '.package(url: [depName], from':\n return [SPACE, COLON, PACKAGE, END_SECTION];\n case '.package(url: [depName], from:':\n return [SPACE, STRING_LITERAL, PACKAGE, END_SECTION];\n case '.package(url: [depName], [value]':\n return [SPACE, RANGE_OP, PACKAGE, END_SECTION];\n case '.package(url: [depName], [rangeFrom][rangeOp]':\n return [SPACE, STRING_LITERAL, PACKAGE, END_SECTION];\n default:\n return [DEPS];\n }\n}\nfunction getMatch(str: string, state: string | null): MatchResult | null {\n const keys = searchKeysForState(state);\n let result: MatchResult | null = null;\n for (let i = 0; i < keys.length; i += 1) {\n const key = keys[i];\n const regex = regExps[key];\n const label = searchLabels[key];\n const match = regex.exec(str);\n if (match) {\n const idx = match.index;\n const substr = match[0];\n const len = substr.length;\n if (idx === 0) {\n return { idx, len, label, substr };\n }\n if (!result || idx < result.idx) {\n result = { idx, len, label, substr };\n }\n }\n }\n return result;\n}\n\nfunction getDepName(url: string | null): string | null {\n // istanbul ignore if\n if (!url) {\n return null;\n }\n try {\n const { host, pathname } = new URL(url);\n if (host === 'github.com' || host === 'gitlab.com') {\n return pathname\n .replace(regEx(/^\\//), '')\n .replace(regEx(/\\.git$/), '')\n .replace(regEx(/\\/$/), '');\n }\n return url;\n } catch {\n return null;\n }\n}\n\nexport function extractPackageFile(content: string): PackageFileContent | null {\n if (!content) {\n return null;\n }\n\n const deps: PackageDependency[] = [];\n const result: PackageFileContent = {\n deps,\n };\n\n let restStr = content;\n let state: string | null = null;\n let match = getMatch(restStr, state);\n\n let packageName: string | null = null;\n let currentValue: string | null = null;\n\n function yieldDep(): void {\n // istanbul ignore if\n if (!packageName) {\n return;\n }\n const depName = getDepName(packageName);\n if (depName && currentValue) {\n const dep: PackageDependency = {\n datasource: GitTagsDatasource.id,\n depName,\n packageName,\n currentValue,\n };\n\n deps.push(dep);\n }\n packageName = null;\n currentValue = null;\n }\n\n while (match) {\n const { idx, len, label, substr } = match;\n\n switch (state) {\n case null:\n if (deps.length) {\n break;\n }\n if (label === DEPS) {\n state = 'dependencies';\n }\n break;\n case 'dependencies':\n if (label === COLON) {\n state = 'dependencies:';\n } else if (label !== SPACE) {\n state = null;\n }\n break;\n case 'dependencies:':\n if (label === BEGIN_SECTION) {\n state = 'dependencies: [';\n } else if (label !== SPACE) {\n state = null;\n }\n break;\n case 'dependencies: [':\n if (label === END_SECTION) {\n yieldDep();\n state = null;\n } else if (label === PACKAGE) {\n yieldDep();\n state = '.package(';\n }\n break;\n case '.package(':\n if (label === END_SECTION) {\n yieldDep();\n state = null;\n } else if (label === URL_KEY) {\n state = '.package(url';\n } else if (label === PACKAGE) {\n yieldDep();\n }\n break;\n case '.package(url':\n if (label === END_SECTION) {\n yieldDep();\n state = null;\n } else if (label === COLON) {\n state = '.package(url:';\n } else if (label === PACKAGE) {\n yieldDep();\n state = '.package(';\n }\n break;\n case '.package(url:':\n if (label === END_SECTION) {\n yieldDep();\n state = null;\n } else if (label === STRING_LITERAL) {\n packageName = substr\n .replace(regEx(/^\"/), '')\n .replace(regEx(/\"$/), '');\n state = '.package(url: [depName]';\n } else if (label === PACKAGE) {\n yieldDep();\n state = '.package(';\n }\n break;\n case '.package(url: [depName]':\n if (label === END_SECTION) {\n yieldDep();\n state = null;\n } else if (label === COMMA) {\n state = '.package(url: [depName],';\n } else if (label === PACKAGE) {\n yieldDep();\n state = '.package(';\n }\n break;\n case '.package(url: [depName],':\n if (label === END_SECTION) {\n yieldDep();\n state = null;\n } else if (label === FROM) {\n currentValue = substr;\n state = '.package(url: [depName], from';\n } else if (label === STRING_LITERAL) {\n currentValue = substr;\n state = '.package(url: [depName], [value]';\n } else if (label === RANGE_OP) {\n currentValue = substr;\n state = '.package(url: [depName], [rangeFrom][rangeOp]';\n } else if (label === EXACT_VERSION) {\n state = '.package(url: [depName], .exact(';\n } else if (label === EXACT_VERSION_LABEL) {\n state = '.package(url: [depName], exact:';\n } else if (label === PACKAGE) {\n yieldDep();\n state = '.package(';\n }\n break;\n case '.package(url: [depName], .exact(':\n if (label === END_SECTION) {\n yieldDep();\n state = null;\n } else if (label === STRING_LITERAL) {\n currentValue = substr.slice(1, substr.length - 1);\n yieldDep();\n } else if (label === PACKAGE) {\n yieldDep();\n state = '.package(';\n }\n break;\n case '.package(url: [depName], exact:':\n if (label === END_SECTION) {\n yieldDep();\n state = null;\n } else if (label === STRING_LITERAL) {\n currentValue = substr.slice(1, substr.length - 1);\n yieldDep();\n state = 'dependencies: [';\n } else if (label === PACKAGE) {\n yieldDep();\n state = '.package(';\n }\n break;\n case '.package(url: [depName], from':\n if (label === END_SECTION) {\n yieldDep();\n state = null;\n } else if (label === COLON) {\n currentValue += substr;\n state = '.package(url: [depName], from:';\n } else if (label === SPACE) {\n currentValue += substr;\n } else if (label === PACKAGE) {\n yieldDep();\n state = '.package(';\n }\n break;\n case '.package(url: [depName], from:':\n if (label === END_SECTION) {\n yieldDep();\n state = null;\n } else if (label === STRING_LITERAL) {\n currentValue += substr;\n yieldDep();\n state = 'dependencies: [';\n } else if (label === SPACE) {\n currentValue += substr;\n } else if (label === PACKAGE) {\n yieldDep();\n state = '.package(';\n }\n break;\n case '.package(url: [depName], [value]':\n if (label === END_SECTION) {\n yieldDep();\n state = null;\n } else if (label === RANGE_OP) {\n currentValue += substr;\n state = '.package(url: [depName], [rangeFrom][rangeOp]';\n } else if (label === SPACE) {\n currentValue += substr;\n } else if (label === PACKAGE) {\n yieldDep();\n state = '.package(';\n }\n break;\n case '.package(url: [depName], [rangeFrom][rangeOp]':\n if (label === END_SECTION) {\n yieldDep();\n state = null;\n } else if (label === STRING_LITERAL) {\n currentValue += substr;\n state = 'dependencies: [';\n } else if (label === SPACE) {\n currentValue += substr;\n } else if (label === PACKAGE) {\n yieldDep();\n state = '.package(';\n }\n break;\n }\n restStr = restStr.slice(idx + len);\n match = getMatch(restStr, state);\n }\n return deps.length ? result : null;\n}\n"]}
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/swift/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import { regEx } from '../../../util/regex';\nimport { GitTagsDatasource } from '../../datasource/git-tags';\nimport type { PackageDependency, PackageFileContent } from '../types';\nimport type { MatchResult } from './types';\n\nconst regExps = {\n wildcard: regEx(/^.*?/),\n space: regEx(/(\\s+|\\/\\/[^\\n]*|\\/\\*.*\\*\\/)+/s),\n depsKeyword: regEx(/dependencies/),\n colon: regEx(/:/),\n beginSection: regEx(/\\[/),\n endSection: regEx(/],?/),\n package: regEx(/\\s*.\\s*package\\s*\\(\\s*/),\n urlKey: regEx(/url/),\n stringLiteral: regEx(/\"[^\"]+\"/),\n comma: regEx(/,/),\n from: regEx(/from/),\n rangeOp: regEx(/\\.\\.[.<]/),\n exactVersion: regEx(/\\.\\s*exact\\s*\\(\\s*/),\n exactVersionLabel: regEx(/\\s*exact:/),\n};\n\nconst WILDCARD = 'wildcard';\nconst SPACE = 'space';\nconst DEPS = 'depsKeyword';\nconst COLON = 'colon';\nconst BEGIN_SECTION = 'beginSection';\nconst END_SECTION = 'endSection';\nconst PACKAGE = 'package';\nconst URL_KEY = 'urlKey';\nconst STRING_LITERAL = 'stringLiteral';\nconst COMMA = 'comma';\nconst FROM = 'from';\nconst RANGE_OP = 'rangeOp';\nconst EXACT_VERSION = 'exactVersion';\nconst EXACT_VERSION_LABEL = 'exactVersionLabel';\n\nconst searchLabels = {\n wildcard: WILDCARD,\n space: SPACE,\n depsKeyword: DEPS,\n colon: COLON,\n beginSection: BEGIN_SECTION,\n endSection: END_SECTION,\n package: PACKAGE,\n urlKey: URL_KEY,\n stringLiteral: STRING_LITERAL,\n comma: COMMA,\n from: FROM,\n rangeOp: RANGE_OP,\n exactVersion: EXACT_VERSION,\n exactVersionLabel: EXACT_VERSION_LABEL,\n};\n\nfunction searchKeysForState(state: string | null): (keyof typeof regExps)[] {\n switch (state) {\n case 'dependencies':\n return [SPACE, COLON, WILDCARD];\n case 'dependencies:':\n return [SPACE, BEGIN_SECTION, WILDCARD];\n case 'dependencies: [':\n return [SPACE, PACKAGE, END_SECTION];\n case '.package(':\n return [SPACE, URL_KEY, PACKAGE, END_SECTION];\n case '.package(url':\n return [SPACE, COLON, PACKAGE, END_SECTION];\n case '.package(url:':\n return [SPACE, STRING_LITERAL, PACKAGE, END_SECTION];\n case '.package(url: [depName]':\n return [SPACE, COMMA, PACKAGE, END_SECTION];\n case '.package(url: [depName],':\n return [\n SPACE,\n FROM,\n STRING_LITERAL,\n RANGE_OP,\n EXACT_VERSION,\n EXACT_VERSION_LABEL,\n PACKAGE,\n END_SECTION,\n ];\n case '.package(url: [depName], .exact(':\n return [SPACE, STRING_LITERAL, PACKAGE, END_SECTION];\n case '.package(url: [depName], exact:':\n return [SPACE, STRING_LITERAL, PACKAGE, END_SECTION];\n case '.package(url: [depName], from':\n return [SPACE, COLON, PACKAGE, END_SECTION];\n case '.package(url: [depName], from:':\n return [SPACE, STRING_LITERAL, PACKAGE, END_SECTION];\n case '.package(url: [depName], [value]':\n return [SPACE, RANGE_OP, PACKAGE, END_SECTION];\n case '.package(url: [depName], [rangeFrom][rangeOp]':\n return [SPACE, STRING_LITERAL, PACKAGE, END_SECTION];\n default:\n return [DEPS];\n }\n}\nfunction getMatch(str: string, state: string | null): MatchResult | null {\n const keys = searchKeysForState(state);\n let result: MatchResult | null = null;\n for (const key of keys) {\n const regex = regExps[key];\n const label = searchLabels[key];\n const match = regex.exec(str);\n if (match) {\n const idx = match.index;\n const substr = match[0];\n const len = substr.length;\n if (idx === 0) {\n return { idx, len, label, substr };\n }\n if (!result || idx < result.idx) {\n result = { idx, len, label, substr };\n }\n }\n }\n return result;\n}\n\nfunction getDepName(url: string | null): string | null {\n // istanbul ignore if\n if (!url) {\n return null;\n }\n try {\n const { host, pathname } = new URL(url);\n if (host === 'github.com' || host === 'gitlab.com') {\n return pathname\n .replace(regEx(/^\\//), '')\n .replace(regEx(/\\.git$/), '')\n .replace(regEx(/\\/$/), '');\n }\n return url;\n } catch {\n return null;\n }\n}\n\nexport function extractPackageFile(content: string): PackageFileContent | null {\n if (!content) {\n return null;\n }\n\n const deps: PackageDependency[] = [];\n const result: PackageFileContent = {\n deps,\n };\n\n let restStr = content;\n let state: string | null = null;\n let match = getMatch(restStr, state);\n\n let packageName: string | null = null;\n let currentValue: string | null = null;\n\n function yieldDep(): void {\n // istanbul ignore if\n if (!packageName) {\n return;\n }\n const depName = getDepName(packageName);\n if (depName && currentValue) {\n const dep: PackageDependency = {\n datasource: GitTagsDatasource.id,\n depName,\n packageName,\n currentValue,\n };\n\n deps.push(dep);\n }\n packageName = null;\n currentValue = null;\n }\n\n while (match) {\n const { idx, len, label, substr } = match;\n\n switch (state) {\n case null:\n if (deps.length) {\n break;\n }\n if (label === DEPS) {\n state = 'dependencies';\n }\n break;\n case 'dependencies':\n if (label === COLON) {\n state = 'dependencies:';\n } else if (label !== SPACE) {\n state = null;\n }\n break;\n case 'dependencies:':\n if (label === BEGIN_SECTION) {\n state = 'dependencies: [';\n } else if (label !== SPACE) {\n state = null;\n }\n break;\n case 'dependencies: [':\n if (label === END_SECTION) {\n yieldDep();\n state = null;\n } else if (label === PACKAGE) {\n yieldDep();\n state = '.package(';\n }\n break;\n case '.package(':\n if (label === END_SECTION) {\n yieldDep();\n state = null;\n } else if (label === URL_KEY) {\n state = '.package(url';\n } else if (label === PACKAGE) {\n yieldDep();\n }\n break;\n case '.package(url':\n if (label === END_SECTION) {\n yieldDep();\n state = null;\n } else if (label === COLON) {\n state = '.package(url:';\n } else if (label === PACKAGE) {\n yieldDep();\n state = '.package(';\n }\n break;\n case '.package(url:':\n if (label === END_SECTION) {\n yieldDep();\n state = null;\n } else if (label === STRING_LITERAL) {\n packageName = substr\n .replace(regEx(/^\"/), '')\n .replace(regEx(/\"$/), '');\n state = '.package(url: [depName]';\n } else if (label === PACKAGE) {\n yieldDep();\n state = '.package(';\n }\n break;\n case '.package(url: [depName]':\n if (label === END_SECTION) {\n yieldDep();\n state = null;\n } else if (label === COMMA) {\n state = '.package(url: [depName],';\n } else if (label === PACKAGE) {\n yieldDep();\n state = '.package(';\n }\n break;\n case '.package(url: [depName],':\n if (label === END_SECTION) {\n yieldDep();\n state = null;\n } else if (label === FROM) {\n currentValue = substr;\n state = '.package(url: [depName], from';\n } else if (label === STRING_LITERAL) {\n currentValue = substr;\n state = '.package(url: [depName], [value]';\n } else if (label === RANGE_OP) {\n currentValue = substr;\n state = '.package(url: [depName], [rangeFrom][rangeOp]';\n } else if (label === EXACT_VERSION) {\n state = '.package(url: [depName], .exact(';\n } else if (label === EXACT_VERSION_LABEL) {\n state = '.package(url: [depName], exact:';\n } else if (label === PACKAGE) {\n yieldDep();\n state = '.package(';\n }\n break;\n case '.package(url: [depName], .exact(':\n if (label === END_SECTION) {\n yieldDep();\n state = null;\n } else if (label === STRING_LITERAL) {\n currentValue = substr.slice(1, substr.length - 1);\n yieldDep();\n } else if (label === PACKAGE) {\n yieldDep();\n state = '.package(';\n }\n break;\n case '.package(url: [depName], exact:':\n if (label === END_SECTION) {\n yieldDep();\n state = null;\n } else if (label === STRING_LITERAL) {\n currentValue = substr.slice(1, substr.length - 1);\n yieldDep();\n state = 'dependencies: [';\n } else if (label === PACKAGE) {\n yieldDep();\n state = '.package(';\n }\n break;\n case '.package(url: [depName], from':\n if (label === END_SECTION) {\n yieldDep();\n state = null;\n } else if (label === COLON) {\n currentValue += substr;\n state = '.package(url: [depName], from:';\n } else if (label === SPACE) {\n currentValue += substr;\n } else if (label === PACKAGE) {\n yieldDep();\n state = '.package(';\n }\n break;\n case '.package(url: [depName], from:':\n if (label === END_SECTION) {\n yieldDep();\n state = null;\n } else if (label === STRING_LITERAL) {\n currentValue += substr;\n yieldDep();\n state = 'dependencies: [';\n } else if (label === SPACE) {\n currentValue += substr;\n } else if (label === PACKAGE) {\n yieldDep();\n state = '.package(';\n }\n break;\n case '.package(url: [depName], [value]':\n if (label === END_SECTION) {\n yieldDep();\n state = null;\n } else if (label === RANGE_OP) {\n currentValue += substr;\n state = '.package(url: [depName], [rangeFrom][rangeOp]';\n } else if (label === SPACE) {\n currentValue += substr;\n } else if (label === PACKAGE) {\n yieldDep();\n state = '.package(';\n }\n break;\n case '.package(url: [depName], [rangeFrom][rangeOp]':\n if (label === END_SECTION) {\n yieldDep();\n state = null;\n } else if (label === STRING_LITERAL) {\n currentValue += substr;\n state = 'dependencies: [';\n } else if (label === SPACE) {\n currentValue += substr;\n } else if (label === PACKAGE) {\n yieldDep();\n state = '.package(';\n }\n break;\n }\n restStr = restStr.slice(idx + len);\n match = getMatch(restStr, state);\n }\n return deps.length ? result : null;\n}\n"]}
|
@@ -34,10 +34,10 @@ class RequiredProviderExtractor extends base_1.TerraformProviderExtractor {
|
|
34
34
|
else {
|
35
35
|
// block declaration aws = { source = 'aws', version = '2.0.0' }
|
36
36
|
dep = {
|
37
|
-
currentValue: value
|
37
|
+
currentValue: value.version,
|
38
38
|
managerData: {
|
39
39
|
moduleName: requiredProviderName,
|
40
|
-
source: value
|
40
|
+
source: value.source,
|
41
41
|
},
|
42
42
|
};
|
43
43
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"required-provider.js","sourceRoot":"","sources":["../../../../../../lib/modules/manager/terraform/extractors/terraform-block/required-provider.ts"],"names":[],"mappings":";;;;AAAA,kEAAkC;AAElC,qCAAwD;AAOxD,MAAa,yBAA0B,SAAQ,iCAA0B;IACvE,YAAY;QACV,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,CACL,OAAgC,EAChC,KAAqB;QAErB,MAAM,eAAe,GAAG,OAAO,EAAE,SAAS,CAAC;QAC3C,IAAI,YAAE,CAAC,eAAe,CAAC,eAAe,CAAC,EAAE,CAAC;YACxC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,YAAY,GAAwB,EAAE,CAAC;QAC7C,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;YAC7C,MAAM,iBAAiB,GAAG,cAAc,CAAC,kBAAkB,CAAC;YAC5D,IAAI,YAAE,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBAC1C,SAAS;YACX,CAAC;YAED,MAAM,OAAO,GACX,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC5C,KAAK,MAAM,CAAC,oBAAoB,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;gBACpD,oCAAoC;gBACpC,IAAI,GAAsB,CAAC;gBAC3B,IAAI,YAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;oBACrB,GAAG,GAAG;wBACJ,YAAY,EAAE,KAAK;wBACnB,WAAW,EAAE;4BACX,UAAU,EAAE,oBAAoB;yBACjC;qBACF,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,gEAAgE;oBAChE,GAAG,GAAG;wBACJ,YAAY,EAAE,KAAK,CAAC,
|
1
|
+
{"version":3,"file":"required-provider.js","sourceRoot":"","sources":["../../../../../../lib/modules/manager/terraform/extractors/terraform-block/required-provider.ts"],"names":[],"mappings":";;;;AAAA,kEAAkC;AAElC,qCAAwD;AAOxD,MAAa,yBAA0B,SAAQ,iCAA0B;IACvE,YAAY;QACV,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,CACL,OAAgC,EAChC,KAAqB;QAErB,MAAM,eAAe,GAAG,OAAO,EAAE,SAAS,CAAC;QAC3C,IAAI,YAAE,CAAC,eAAe,CAAC,eAAe,CAAC,EAAE,CAAC;YACxC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,YAAY,GAAwB,EAAE,CAAC;QAC7C,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;YAC7C,MAAM,iBAAiB,GAAG,cAAc,CAAC,kBAAkB,CAAC;YAC5D,IAAI,YAAE,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBAC1C,SAAS;YACX,CAAC;YAED,MAAM,OAAO,GACX,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC5C,KAAK,MAAM,CAAC,oBAAoB,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;gBACpD,oCAAoC;gBACpC,IAAI,GAAsB,CAAC;gBAC3B,IAAI,YAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;oBACrB,GAAG,GAAG;wBACJ,YAAY,EAAE,KAAK;wBACnB,WAAW,EAAE;4BACX,UAAU,EAAE,oBAAoB;yBACjC;qBACF,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,gEAAgE;oBAChE,GAAG,GAAG;wBACJ,YAAY,EAAE,KAAK,CAAC,OAAO;wBAC3B,WAAW,EAAE;4BACX,UAAU,EAAE,oBAAoB;4BAChC,MAAM,EAAE,KAAK,CAAC,MAAM;yBACrB;qBACF,CAAC;gBACJ,CAAC;gBACD,YAAY,CAAC,IAAI,CACf,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAC/D,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAlDD,8DAkDC","sourcesContent":["import is from '@sindresorhus/is';\nimport type { PackageDependency } from '../../../types';\nimport { TerraformProviderExtractor } from '../../base';\nimport type {\n TerraformDefinitionFile,\n TerraformRequiredProvider,\n} from '../../hcl/types';\nimport type { ProviderLock } from '../../lockfile/types';\n\nexport class RequiredProviderExtractor extends TerraformProviderExtractor {\n getCheckList(): string[] {\n return ['required_providers'];\n }\n\n extract(\n hclRoot: TerraformDefinitionFile,\n locks: ProviderLock[],\n ): PackageDependency[] {\n const terraformBlocks = hclRoot?.terraform;\n if (is.nullOrUndefined(terraformBlocks)) {\n return [];\n }\n\n const dependencies: PackageDependency[] = [];\n for (const terraformBlock of terraformBlocks) {\n const requiredProviders = terraformBlock.required_providers;\n if (is.nullOrUndefined(requiredProviders)) {\n continue;\n }\n\n const entries: [string, TerraformRequiredProvider | string][] =\n requiredProviders.flatMap(Object.entries);\n for (const [requiredProviderName, value] of entries) {\n // name = version declaration method\n let dep: PackageDependency;\n if (is.string(value)) {\n dep = {\n currentValue: value,\n managerData: {\n moduleName: requiredProviderName,\n },\n };\n } else {\n // block declaration aws = { source = 'aws', version = '2.0.0' }\n dep = {\n currentValue: value.version,\n managerData: {\n moduleName: requiredProviderName,\n source: value.source,\n },\n };\n }\n dependencies.push(\n this.analyzeTerraformProvider(dep, locks, 'required_provider'),\n );\n }\n }\n return dependencies;\n }\n}\n"]}
|
@@ -8,9 +8,7 @@ export interface TerraformBlock {
|
|
8
8
|
required_providers?: TerraformRequiredProviderBlock[];
|
9
9
|
required_version?: string;
|
10
10
|
}
|
11
|
-
export
|
12
|
-
[s: string]: TerraformRequiredProvider | string;
|
13
|
-
}
|
11
|
+
export type TerraformRequiredProviderBlock = Record<string, TerraformRequiredProvider | string>;
|
14
12
|
export interface TerraformRequiredProvider {
|
15
13
|
source?: string;
|
16
14
|
version?: string;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/terraform/hcl/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface TerraformDefinitionFile {\n terraform?: TerraformBlock[];\n module?: Record<string, TerraformModule[]>;\n resource?: TerraformResources;\n provider?: Record<string, TerraformProvider[]>;\n}\n\nexport interface TerraformBlock {\n required_providers?: TerraformRequiredProviderBlock[];\n required_version?: string;\n}\n\nexport
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/terraform/hcl/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface TerraformDefinitionFile {\n terraform?: TerraformBlock[];\n module?: Record<string, TerraformModule[]>;\n resource?: TerraformResources;\n provider?: Record<string, TerraformProvider[]>;\n}\n\nexport interface TerraformBlock {\n required_providers?: TerraformRequiredProviderBlock[];\n required_version?: string;\n}\n\nexport type TerraformRequiredProviderBlock = Record<\n string,\n TerraformRequiredProvider | string\n>;\n\nexport interface TerraformRequiredProvider {\n source?: string;\n version?: string;\n}\n\nexport interface TerraformModule {\n source?: string;\n version?: string;\n}\n\nexport interface TerraformResources {\n helm_release?: Record<string, TerraformHelmRelease>;\n tfe_workspace?: Record<string, TerraformWorkspace>;\n [s: string]: unknown; // generic docker resources\n}\n\nexport interface TerraformProvider {\n alias?: string;\n version?: string;\n}\n\nexport interface TerraformHelmRelease {\n version?: string;\n repository?: string;\n chart?: string;\n}\n\nexport interface TerraformWorkspace {\n terraform_version?: string;\n}\n"]}
|
@@ -88,7 +88,7 @@ async function updateArtifacts({ packageFileName, updatedDeps, config, }) {
|
|
88
88
|
return null;
|
89
89
|
}
|
90
90
|
const updates = [];
|
91
|
-
if (config.
|
91
|
+
if (config.isLockFileMaintenance) {
|
92
92
|
// update all locks in the file during maintenance --> only update version in constraints
|
93
93
|
const maintenanceUpdates = await updateAllLocks(locks);
|
94
94
|
updates.push(...maintenanceUpdates);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/terraform/lockfile/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../../logger';\nimport * as p from '../../../../util/promises';\nimport { escapeRegExp, regEx } from '../../../../util/regex';\nimport type { GetPkgReleasesConfig } from '../../../datasource';\nimport { getPkgReleases } from '../../../datasource';\nimport { get as getVersioning } from '../../../versioning';\nimport type {\n UpdateArtifact,\n UpdateArtifactsResult,\n Upgrade,\n} from '../../types';\nimport { massageProviderLookupName } from '../util';\nimport { TerraformProviderHash } from './hash';\nimport type { ProviderLock, ProviderLockUpdate } from './types';\nimport {\n extractLocks,\n findLockFile,\n isPinnedVersion,\n massageNewValue,\n readLockFile,\n writeLockUpdates,\n} from './util';\n\nasync function updateAllLocks(\n locks: ProviderLock[],\n): Promise<ProviderLockUpdate[]> {\n const updates = await p.map(\n locks,\n async (lock) => {\n const updateConfig: GetPkgReleasesConfig = {\n versioning: 'hashicorp',\n datasource: 'terraform-provider',\n packageName: lock.packageName,\n };\n const { releases } = (await getPkgReleases(updateConfig)) ?? {};\n if (!releases) {\n return null;\n }\n const versioning = getVersioning(updateConfig.versioning);\n const versionsList = releases.map((release) => release.version);\n const newVersion = versioning.getSatisfyingVersion(\n versionsList,\n lock.constraints,\n );\n\n // if the new version is the same as the last, signal that no update is needed\n if (!newVersion || newVersion === lock.version) {\n return null;\n }\n const update: ProviderLockUpdate = {\n newVersion,\n newConstraint: lock.constraints,\n newHashes:\n (await TerraformProviderHash.createHashes(\n lock.registryUrl,\n lock.packageName,\n newVersion,\n )) ?? [],\n ...lock,\n };\n return update;\n },\n { concurrency: 4 },\n );\n\n return updates.filter(is.truthy);\n}\n\nexport function getNewConstraint(\n dep: Upgrade<Record<string, unknown>>,\n oldConstraint: string | undefined,\n): string | undefined {\n const {\n currentValue,\n currentVersion,\n newValue: rawNewValue,\n newVersion,\n packageName,\n } = dep;\n\n const newValue = massageNewValue(rawNewValue);\n\n if (oldConstraint && currentValue && newValue && currentValue === newValue) {\n logger.debug(\n `Leaving constraints \"${oldConstraint}\" unchanged for \"${packageName}\" as current and new values are the same`,\n );\n return oldConstraint;\n }\n\n if (\n oldConstraint &&\n currentValue &&\n newValue &&\n oldConstraint.includes(currentValue)\n ) {\n logger.debug(\n `Updating constraint \"${oldConstraint}\" to replace \"${currentValue}\" with \"${newValue}\" for \"${packageName}\"`,\n );\n //remove surplus .0 version\n return oldConstraint.replace(\n regEx(`(,\\\\s|^)${escapeRegExp(currentValue)}(\\\\.0)*`),\n `$1${newValue}`,\n );\n }\n\n if (\n oldConstraint &&\n currentVersion &&\n newVersion &&\n oldConstraint.includes(currentVersion)\n ) {\n logger.debug(\n `Updating constraint \"${oldConstraint}\" to replace \"${currentVersion}\" with \"${newVersion}\" for \"${packageName}\"`,\n );\n return oldConstraint.replace(currentVersion, newVersion);\n }\n\n if (isPinnedVersion(newValue)) {\n logger.debug(`Pinning constraint for \"${packageName}\" to \"${newVersion}\"`);\n return newVersion;\n }\n\n logger.debug(\n `Could not detect constraint to update for \"${packageName}\" so setting to newValue \"${newValue}\"`,\n );\n return newValue;\n}\n\nexport async function updateArtifacts({\n packageFileName,\n updatedDeps,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`terraform.updateArtifacts(${packageFileName})`);\n\n const lockFilePath = await findLockFile(packageFileName);\n\n if (!lockFilePath) {\n logger.debug('No .terraform.lock.hcl found');\n return null;\n }\n\n try {\n const lockFileContent = await readLockFile(lockFilePath);\n if (!lockFileContent) {\n logger.debug('No .terraform.lock.hcl found');\n return null;\n }\n const locks = extractLocks(lockFileContent);\n if (!locks) {\n logger.debug('No Locks in .terraform.lock.hcl found');\n return null;\n }\n\n const updates: ProviderLockUpdate[] = [];\n if (config.updateType === 'lockFileMaintenance') {\n // update all locks in the file during maintenance --> only update version in constraints\n const maintenanceUpdates = await updateAllLocks(locks);\n updates.push(...maintenanceUpdates);\n } else {\n const providerDeps = updatedDeps.filter((dep) =>\n // TODO #22198\n ['provider', 'required_provider'].includes(dep.depType!),\n );\n logger.debug(`Found ${providerDeps.length} provider deps`);\n for (const dep of providerDeps) {\n massageProviderLookupName(dep);\n const { registryUrls, newVersion, packageName } = dep;\n\n const updateLock = locks.find(\n (value) => value.packageName === packageName,\n );\n // istanbul ignore if: needs test\n if (!updateLock) {\n logger.debug(`Skipping. No lock found for \"${packageName}\"`);\n continue;\n }\n if (dep.isLockfileUpdate) {\n const versioning = getVersioning(dep.versioning);\n const satisfyingVersion = versioning.getSatisfyingVersion(\n [dep.newVersion!],\n updateLock.constraints,\n );\n\n if (!satisfyingVersion) {\n logger.debug(\n `Skipping. Lockfile update with \"${newVersion}\" does not statisfy constraints \"${updateLock.constraints}\" for \"${packageName}\"`,\n );\n continue;\n }\n }\n\n // use registryURL defined in the update and fall back to the one defined in the lockfile\n const registryUrl = registryUrls?.[0] ?? updateLock.registryUrl;\n\n const newConstraint = getNewConstraint(dep, updateLock.constraints);\n const update: ProviderLockUpdate = {\n // TODO #22198\n newVersion: newVersion!,\n newConstraint: newConstraint!,\n newHashes:\n (await TerraformProviderHash.createHashes(\n registryUrl,\n updateLock.packageName,\n newVersion!,\n )) ?? /* istanbul ignore next: needs test */ [],\n ...updateLock,\n };\n updates.push(update);\n }\n }\n // if no updates have been found or there are failed hashes abort\n if (\n updates.length === 0 ||\n updates.some((value) => !value.newHashes?.length)\n ) {\n logger.debug('No updates found or hash creation failed');\n return null;\n }\n logger.debug(`Writing updates to ${lockFilePath}`);\n const res = writeLockUpdates(updates, lockFilePath, lockFileContent);\n return [res];\n } catch (err) {\n /* istanbul ignore next */\n return [\n {\n artifactError: {\n lockFile: lockFilePath,\n stderr: err.message,\n },\n },\n ];\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/terraform/lockfile/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../../logger';\nimport * as p from '../../../../util/promises';\nimport { escapeRegExp, regEx } from '../../../../util/regex';\nimport type { GetPkgReleasesConfig } from '../../../datasource';\nimport { getPkgReleases } from '../../../datasource';\nimport { get as getVersioning } from '../../../versioning';\nimport type {\n UpdateArtifact,\n UpdateArtifactsResult,\n Upgrade,\n} from '../../types';\nimport { massageProviderLookupName } from '../util';\nimport { TerraformProviderHash } from './hash';\nimport type { ProviderLock, ProviderLockUpdate } from './types';\nimport {\n extractLocks,\n findLockFile,\n isPinnedVersion,\n massageNewValue,\n readLockFile,\n writeLockUpdates,\n} from './util';\n\nasync function updateAllLocks(\n locks: ProviderLock[],\n): Promise<ProviderLockUpdate[]> {\n const updates = await p.map(\n locks,\n async (lock) => {\n const updateConfig: GetPkgReleasesConfig = {\n versioning: 'hashicorp',\n datasource: 'terraform-provider',\n packageName: lock.packageName,\n };\n const { releases } = (await getPkgReleases(updateConfig)) ?? {};\n if (!releases) {\n return null;\n }\n const versioning = getVersioning(updateConfig.versioning);\n const versionsList = releases.map((release) => release.version);\n const newVersion = versioning.getSatisfyingVersion(\n versionsList,\n lock.constraints,\n );\n\n // if the new version is the same as the last, signal that no update is needed\n if (!newVersion || newVersion === lock.version) {\n return null;\n }\n const update: ProviderLockUpdate = {\n newVersion,\n newConstraint: lock.constraints,\n newHashes:\n (await TerraformProviderHash.createHashes(\n lock.registryUrl,\n lock.packageName,\n newVersion,\n )) ?? [],\n ...lock,\n };\n return update;\n },\n { concurrency: 4 },\n );\n\n return updates.filter(is.truthy);\n}\n\nexport function getNewConstraint(\n dep: Upgrade<Record<string, unknown>>,\n oldConstraint: string | undefined,\n): string | undefined {\n const {\n currentValue,\n currentVersion,\n newValue: rawNewValue,\n newVersion,\n packageName,\n } = dep;\n\n const newValue = massageNewValue(rawNewValue);\n\n if (oldConstraint && currentValue && newValue && currentValue === newValue) {\n logger.debug(\n `Leaving constraints \"${oldConstraint}\" unchanged for \"${packageName}\" as current and new values are the same`,\n );\n return oldConstraint;\n }\n\n if (\n oldConstraint &&\n currentValue &&\n newValue &&\n oldConstraint.includes(currentValue)\n ) {\n logger.debug(\n `Updating constraint \"${oldConstraint}\" to replace \"${currentValue}\" with \"${newValue}\" for \"${packageName}\"`,\n );\n //remove surplus .0 version\n return oldConstraint.replace(\n regEx(`(,\\\\s|^)${escapeRegExp(currentValue)}(\\\\.0)*`),\n `$1${newValue}`,\n );\n }\n\n if (\n oldConstraint &&\n currentVersion &&\n newVersion &&\n oldConstraint.includes(currentVersion)\n ) {\n logger.debug(\n `Updating constraint \"${oldConstraint}\" to replace \"${currentVersion}\" with \"${newVersion}\" for \"${packageName}\"`,\n );\n return oldConstraint.replace(currentVersion, newVersion);\n }\n\n if (isPinnedVersion(newValue)) {\n logger.debug(`Pinning constraint for \"${packageName}\" to \"${newVersion}\"`);\n return newVersion;\n }\n\n logger.debug(\n `Could not detect constraint to update for \"${packageName}\" so setting to newValue \"${newValue}\"`,\n );\n return newValue;\n}\n\nexport async function updateArtifacts({\n packageFileName,\n updatedDeps,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`terraform.updateArtifacts(${packageFileName})`);\n\n const lockFilePath = await findLockFile(packageFileName);\n\n if (!lockFilePath) {\n logger.debug('No .terraform.lock.hcl found');\n return null;\n }\n\n try {\n const lockFileContent = await readLockFile(lockFilePath);\n if (!lockFileContent) {\n logger.debug('No .terraform.lock.hcl found');\n return null;\n }\n const locks = extractLocks(lockFileContent);\n if (!locks) {\n logger.debug('No Locks in .terraform.lock.hcl found');\n return null;\n }\n\n const updates: ProviderLockUpdate[] = [];\n if (config.isLockFileMaintenance) {\n // update all locks in the file during maintenance --> only update version in constraints\n const maintenanceUpdates = await updateAllLocks(locks);\n updates.push(...maintenanceUpdates);\n } else {\n const providerDeps = updatedDeps.filter((dep) =>\n // TODO #22198\n ['provider', 'required_provider'].includes(dep.depType!),\n );\n logger.debug(`Found ${providerDeps.length} provider deps`);\n for (const dep of providerDeps) {\n massageProviderLookupName(dep);\n const { registryUrls, newVersion, packageName } = dep;\n\n const updateLock = locks.find(\n (value) => value.packageName === packageName,\n );\n // istanbul ignore if: needs test\n if (!updateLock) {\n logger.debug(`Skipping. No lock found for \"${packageName}\"`);\n continue;\n }\n if (dep.isLockfileUpdate) {\n const versioning = getVersioning(dep.versioning);\n const satisfyingVersion = versioning.getSatisfyingVersion(\n [dep.newVersion!],\n updateLock.constraints,\n );\n\n if (!satisfyingVersion) {\n logger.debug(\n `Skipping. Lockfile update with \"${newVersion}\" does not statisfy constraints \"${updateLock.constraints}\" for \"${packageName}\"`,\n );\n continue;\n }\n }\n\n // use registryURL defined in the update and fall back to the one defined in the lockfile\n const registryUrl = registryUrls?.[0] ?? updateLock.registryUrl;\n\n const newConstraint = getNewConstraint(dep, updateLock.constraints);\n const update: ProviderLockUpdate = {\n // TODO #22198\n newVersion: newVersion!,\n newConstraint: newConstraint!,\n newHashes:\n (await TerraformProviderHash.createHashes(\n registryUrl,\n updateLock.packageName,\n newVersion!,\n )) ?? /* istanbul ignore next: needs test */ [],\n ...updateLock,\n };\n updates.push(update);\n }\n }\n // if no updates have been found or there are failed hashes abort\n if (\n updates.length === 0 ||\n updates.some((value) => !value.newHashes?.length)\n ) {\n logger.debug('No updates found or hash creation failed');\n return null;\n }\n logger.debug(`Writing updates to ${lockFilePath}`);\n const res = writeLockUpdates(updates, lockFilePath, lockFileContent);\n return [res];\n } catch (err) {\n /* istanbul ignore next */\n return [\n {\n artifactError: {\n lockFile: lockFilePath,\n stderr: err.message,\n },\n },\n ];\n }\n}\n"]}
|
@@ -4,7 +4,7 @@ exports.updateArtifacts = updateArtifacts;
|
|
4
4
|
const logger_1 = require("../../../logger");
|
5
5
|
const index_1 = require("../terraform/lockfile/index");
|
6
6
|
async function updateArtifacts(artifact) {
|
7
|
-
if (artifact.config.
|
7
|
+
if (!artifact.config.isLockFileMaintenance) {
|
8
8
|
logger_1.logger.debug(`UpdateType ${artifact.config.updateType} is not supported for terragrunt`);
|
9
9
|
return null;
|
10
10
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/terragrunt/artifacts.ts"],"names":[],"mappings":";;AAIA,0CAaC;AAjBD,4CAAyC;AACzC,uDAA0F;AAGnF,KAAK,UAAU,eAAe,CACnC,QAAwB;IAExB,IAAI,QAAQ,CAAC,MAAM,CAAC,
|
1
|
+
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/terragrunt/artifacts.ts"],"names":[],"mappings":";;AAIA,0CAaC;AAjBD,4CAAyC;AACzC,uDAA0F;AAGnF,KAAK,UAAU,eAAe,CACnC,QAAwB;IAExB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;QAC3C,eAAM,CAAC,KAAK,CACV,cACE,QAAQ,CAAC,MAAM,CAAC,UAClB,kCAAkC,CACnC,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,MAAM,IAAA,uBAAwB,EAAC,QAAQ,CAAC,CAAC;AAClD,CAAC","sourcesContent":["import { logger } from '../../../logger';\nimport { updateArtifacts as updateTerraformArtifacts } from '../terraform/lockfile/index';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\n\nexport async function updateArtifacts(\n artifact: UpdateArtifact,\n): Promise<UpdateArtifactsResult[] | null> {\n if (!artifact.config.isLockFileMaintenance) {\n logger.debug(\n `UpdateType ${\n artifact.config.updateType as string\n } is not supported for terragrunt`,\n );\n return null;\n }\n\n return await updateTerraformArtifacts(artifact);\n}\n"]}
|