renovate 43.113.0 → 43.114.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/types.d.ts +3 -2
- package/dist/config/types.js.map +1 -1
- package/dist/modules/datasource/common.js.map +1 -1
- package/dist/modules/datasource/types.d.ts +4 -3
- package/dist/modules/manager/fingerprint.generated.js +1 -1
- package/dist/modules/manager/fingerprint.generated.js.map +1 -1
- package/dist/modules/manager/mise/upgradeable-tooling.js +8 -0
- package/dist/modules/manager/mise/upgradeable-tooling.js.map +1 -1
- package/dist/modules/manager/types.d.ts +3 -2
- package/dist/modules/platform/github/schema.d.ts +2 -2
- package/dist/util/exec/containerbase.js.map +1 -1
- package/dist/util/exec/types.d.ts +24 -2
- package/dist/util/exec/types.js +74 -1
- package/dist/util/exec/types.js.map +1 -0
- package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +17 -4
- package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
- package/dist/workers/types.d.ts +2 -1
- package/package.json +1 -1
- package/renovate-schema.json +2 -2
package/dist/config/types.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { Category } from "../constants/category.js";
|
|
|
2
2
|
import { PlatformId } from "../constants/platforms.js";
|
|
3
3
|
import { LogLevelRemap } from "../logger/types.js";
|
|
4
4
|
import { ManagerName } from "../manager-list.generated.js";
|
|
5
|
+
import { ConstraintName, ToolName } from "../util/exec/types.js";
|
|
5
6
|
import { Timestamp } from "../util/timestamp.js";
|
|
6
7
|
import { GitNoVerifyOption } from "../util/git/types.js";
|
|
7
8
|
import { RepoSortMethod, SortMethod } from "../modules/platform/types.js";
|
|
@@ -268,7 +269,7 @@ interface PostUpgradeTasks {
|
|
|
268
269
|
dataFileTemplate?: string;
|
|
269
270
|
fileFilters?: string[];
|
|
270
271
|
executionMode: ExecutionMode;
|
|
271
|
-
installTools?: Record<
|
|
272
|
+
installTools?: Partial<Record<ToolName, Record<never, never>>>;
|
|
272
273
|
}
|
|
273
274
|
type UpdateConfig<T extends RenovateSharedConfig = RenovateSharedConfig> = Partial<Record<UpdateType, T | null>>;
|
|
274
275
|
type RenovateRepository = string | (RenovateConfig & {
|
|
@@ -374,7 +375,7 @@ interface RenovateConfig extends LegacyAdminConfig, RenovateSharedConfig, Update
|
|
|
374
375
|
fetchChangeLogs?: FetchChangeLogsOptions;
|
|
375
376
|
secrets?: Record<string, string>;
|
|
376
377
|
variables?: Record<string, string>;
|
|
377
|
-
constraints?: Record<
|
|
378
|
+
constraints?: Partial<Record<ConstraintName, string>>;
|
|
378
379
|
skipInstalls?: boolean | null;
|
|
379
380
|
constraintsFiltering?: ConstraintsFilter;
|
|
380
381
|
checkedBranches?: string[];
|
package/dist/config/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../lib/config/types.ts"],"sourcesContent":["import type { Category, PlatformId } from '../constants/index.ts';\nimport type { LogLevelRemap } from '../logger/types.ts';\nimport type { ManagerName } from '../manager-list.generated.ts';\nimport type { CustomManager } from '../modules/manager/custom/types.ts';\nimport type { RepoSortMethod, SortMethod } from '../modules/platform/types.ts';\nimport type {\n AutoMergeType,\n HostRule,\n Nullish,\n RangeStrategy,\n SkipReason,\n} from '../types/index.ts';\nimport type { StageName } from '../types/skip-reason.ts';\nimport type { GitNoVerifyOption } from '../util/git/types.ts';\nimport type { MergeConfidence } from '../util/merge-confidence/types.ts';\nimport type { Timestamp } from '../util/timestamp.ts';\n\nexport type RenovateConfigStage =\n | 'global'\n | 'inherit'\n | 'repository'\n | 'package'\n | 'branch'\n | 'pr';\n\nexport type RenovateSplit =\n | 'init'\n | 'onboarding'\n | 'extract'\n | 'lookup'\n | 'update';\n\nexport type RepositoryCacheConfig = 'disabled' | 'enabled' | 'reset';\nexport type RepositoryCacheType = 'local' | (string & {});\nexport type DryRunConfig = 'extract' | 'lookup' | 'full';\nexport type RequiredConfig = 'required' | 'optional' | 'ignored';\n\nexport interface GroupConfig extends Record<string, unknown> {\n branchName?: string;\n branchTopic?: string;\n}\n\nexport type RecreateWhen = 'auto' | 'never' | 'always';\nexport type PlatformCommitOptions = 'auto' | 'disabled' | 'enabled';\n\nexport type BinarySource = 'docker' | 'global' | 'install' | 'hermit';\n\n// TODO: Proper typings\n/**\n * Any configuration that could be used either top-level in a repository config (or Global, Inherited or Shareable Preset configuration), or:\n *\n * - in a datasource-specific configuration\n * - in a manager-specific configuration\n * - in a Package Rule\n *\n * @see RenovateConfig for the superset of all configuration allowed in a given repository\n *\n */\nexport interface RenovateSharedConfig {\n $schema?: string;\n abandonmentThreshold?: Nullish<string>;\n addLabels?: string[];\n assignAutomerge?: boolean;\n autoApprove?: boolean;\n autoReplaceGlobalMatch?: boolean;\n automerge?: boolean;\n automergeSchedule?: string[];\n automergeStrategy?: MergeStrategy;\n automergeType?: AutoMergeType;\n azureWorkItemId?: number;\n branchName?: string;\n branchNameStrict?: boolean;\n branchPrefix?: string;\n branchPrefixOld?: string;\n bumpVersions?: BumpVersionConfig[];\n commitBody?: string;\n commitBodyTable?: boolean;\n commitMessage?: string;\n commitMessageAction?: string;\n commitMessageExtra?: string;\n commitMessageLowerCase?: 'auto' | 'never';\n commitMessagePrefix?: string;\n commitMessageTopic?: string;\n confidential?: boolean;\n configValidationError?: boolean;\n changelogUrl?: string;\n dependencyDashboardApproval?: boolean;\n draftPR?: boolean;\n enabled?: boolean;\n enabledManagers?: string[];\n encrypted?: Record<string, string>;\n extends?: string[];\n extractVersion?: string;\n managerFilePatterns?: string[];\n followTag?: string;\n force?: RenovateConfig;\n gitIgnoredAuthors?: string[];\n group?: GroupConfig;\n groupName?: string;\n groupSlug?: string;\n hashedBranchLength?: number;\n ignoreDeps?: string[];\n ignorePaths?: string[];\n ignoreTests?: boolean;\n ignoreUnstable?: boolean;\n includePaths?: string[];\n internalChecksAsSuccess?: boolean;\n internalChecksFilter?: 'strict' | 'flexible' | 'none';\n keepUpdatedLabel?: string;\n labels?: string[];\n manager?: string;\n milestone?: number;\n minimumReleaseAge?: Nullish<string>;\n npmrc?: string;\n npmrcMerge?: boolean;\n npmToken?: string;\n\n pinDigests?: boolean;\n platformAutomerge?: boolean;\n platformCommit?: PlatformCommitOptions;\n postUpgradeTasks?: PostUpgradeTasks;\n prBodyColumns?: string[];\n prBodyDefinitions?: Record<string, string>;\n prBodyHeadingDefinitions?: Record<string, string>;\n prBodyNotes?: string[];\n prCreation?: 'immediate' | 'not-pending' | 'status-success' | 'approval';\n prFooter?: string;\n prHeader?: string;\n prPriority?: number;\n prTitle?: string;\n prTitleStrict?: boolean;\n productLinks?: Record<string, string>;\n pruneBranchAfterAutomerge?: boolean;\n rangeStrategy?: RangeStrategy;\n rebaseLabel?: string;\n rebaseWhen?: string;\n recreateClosed?: boolean;\n recreateWhen?: RecreateWhen;\n repository?: string;\n repositoryCache?: RepositoryCacheConfig;\n repositoryCacheType?: RepositoryCacheType;\n respectLatest?: boolean;\n rollbackPrs?: boolean;\n schedule?: string[];\n semanticCommitScope?: string | null;\n semanticCommitType?: string;\n semanticCommits?: 'auto' | 'enabled' | 'disabled';\n separateMajorMinor?: boolean;\n separateMinorPatch?: boolean;\n separateMultipleMajor?: boolean;\n separateMultipleMinor?: boolean;\n skipArtifactsUpdate?: boolean;\n stopUpdatingLabel?: string;\n suppressNotifications?: string[];\n timezone?: string;\n unicodeEmoji?: boolean;\n updateNotScheduled?: boolean;\n versioning?: string;\n versionCompatibility?: string;\n}\n\n/**\n * Contains all options with globalOnly=true && inheritConfigSupport=true\n */\nexport interface GlobalInheritableConfig {\n bbUseDevelopmentBranch?: boolean;\n configFileNames?: string[];\n onboarding?: boolean;\n onboardingAutoCloseAge?: number;\n onboardingBranch?: string;\n onboardingCommitMessage?: string;\n onboardingConfig?: RenovateConfig;\n onboardingConfigFileName?: string;\n onboardingNoDeps?: 'auto' | 'enabled' | 'disabled';\n onboardingPrTitle?: string;\n}\n\n// Config options used only within the global worker\n// The below should contain config options where stage=global\n/** @deprecated use `RepoGlobalConfig` instead **/\nexport interface GlobalOnlyConfigLegacy {\n autodiscover?: boolean;\n autodiscoverFilter?: string[] | string;\n autodiscoverNamespaces?: string[];\n autodiscoverProjects?: string[];\n autodiscoverTopics?: string[];\n baseDir?: string;\n cacheDir?: string;\n containerbaseDir?: string;\n detectHostRulesFromEnv?: boolean;\n dockerCliOptions?: string;\n endpoint?: string;\n forceCli?: boolean;\n gitNoVerify?: GitNoVerifyOption[];\n gitPrivateKey?: string;\n gitPrivateKeyPassphrase?: string;\n globalExtends?: string[];\n mergeConfidenceDatasources?: string[];\n mergeConfidenceEndpoint?: string;\n platform?: PlatformId;\n processEnv?: Record<string, string>;\n prCommitsPerRunLimit?: number;\n privateKey?: string;\n privateKeyOld?: string;\n privateKeyPath?: string;\n privateKeyPathOld?: string;\n redisPrefix?: string;\n redisUrl?: string;\n repositories?: RenovateRepository[];\n useCloudMetadataServices?: boolean;\n deleteConfigFile?: boolean;\n deleteAdditionalConfigFile?: boolean;\n}\n\n/**\n * Any global-only configuration set by self-hosted administrators.\n *\n * Used within the repository worker.\n *\n * Should only contain config options where globalOnly=true.\n */\nexport interface RepoGlobalConfig extends GlobalInheritableConfig {\n allowedCommands?: string[];\n allowCustomCrateRegistries?: boolean;\n allowPlugins?: boolean;\n allowScripts?: boolean;\n allowShellExecutorForPostUpgradeCommands?: boolean;\n allowedEnv?: string[];\n allowedHeaders?: string[];\n binarySource?: BinarySource;\n cacheDir?: string;\n cacheHardTtlMinutes?: number;\n cacheTtlOverride?: Record<string, number>;\n containerbaseDir?: string;\n customEnvVariables?: Record<string, string>;\n dockerChildPrefix?: string;\n dockerCliOptions?: string;\n dockerSidecarImage?: string;\n dockerUser?: string;\n dryRun?: DryRunConfig;\n encryptedWarning?: string;\n endpoint?: string;\n executionTimeout?: number;\n exposeAllEnv?: boolean;\n gitTimeout?: number;\n githubTokenWarn?: boolean;\n includeMirrors?: boolean;\n localDir?: string;\n migratePresets?: Record<string, string>;\n platform?: PlatformId;\n prCacheSyncMaxPages?: number;\n presetCachePersistence?: boolean;\n httpCacheTtlDays?: number;\n autodiscoverRepoSort?: RepoSortMethod;\n autodiscoverRepoOrder?: SortMethod;\n userAgent?: string;\n dockerMaxPages?: number;\n s3Endpoint?: string;\n s3PathStyle?: boolean;\n cachePrivatePackages?: boolean;\n repositoryCacheForceLocal?: boolean;\n configFileNames?: string[];\n ignorePrAuthor?: boolean;\n allowedUnsafeExecutions?: AllowedUnsafeExecution[];\n onboardingAutoCloseAge?: number;\n toolSettings?: ToolSettingsOptions;\n}\n\n/**\n * Those options are global only but still passed into the repository worker config.\n *\n * @deprecated https://github.com/renovatebot/renovate/issues/39693\n */\nexport interface LegacyAdminConfig {\n baseDir?: string;\n localDir?: string;\n\n logContext?: string;\n\n onboarding?: boolean;\n onboardingBranch?: string;\n onboardingNoDeps?: 'auto' | 'enabled' | 'disabled';\n onboardingRebaseCheckbox?: boolean;\n onboardingConfig?: RenovateConfig;\n onboardingConfigFileName?: string;\n\n optimizeForDisabled?: boolean;\n\n persistRepoData?: boolean;\n\n prCommitsPerRunLimit?: number;\n\n requireConfig?: RequiredConfig;\n\n useCloudMetadataServices?: boolean;\n\n writeDiscoveredRepos?: string;\n}\n\nexport type ExecutionMode = 'branch' | 'update';\n\nexport interface PostUpgradeTasks {\n commands?: string[];\n workingDirTemplate?: string;\n dataFileTemplate?: string;\n fileFilters?: string[];\n executionMode: ExecutionMode;\n installTools?: Record<string, Record<never, never>>;\n}\n\nexport type UpdateConfig<\n T extends RenovateSharedConfig = RenovateSharedConfig,\n> = Partial<Record<UpdateType, T | null>>;\n\nexport type RenovateRepository =\n | string\n | (RenovateConfig & {\n repository: string;\n });\n\nexport type UseBaseBranchConfigType = 'merge' | 'none';\nexport type ConstraintsFilter = 'strict' | 'none';\nexport type MinimumReleaseAgeBehaviour =\n | 'timestamp-required'\n | 'timestamp-optional';\n\nexport const allowedStatusCheckStrings = [\n 'minimumReleaseAge',\n 'mergeConfidence',\n 'configValidation',\n 'artifactError',\n] as const;\nexport type StatusCheckKey = (typeof allowedStatusCheckStrings)[number];\ntype UserEnv = Record<string, string>;\n\n/**\n * Computed properties, for internal use only\n */\nexport interface RenovateInternalConfig {\n /** computed base branch from patterns - for internal use only */\n baseBranches?: string[];\n currentCompatibility?: string;\n datasource?: string;\n hasBaseBranches?: boolean;\n isFork?: boolean;\n isVulnerabilityAlert?: boolean;\n\n /** What is this used for? */\n remediations?: unknown;\n /** What is this used for? */\n vulnerabilityAlertsOnly?: boolean;\n}\n\n// TODO: Proper typings\n/**\n * Configuration that could be used either top-level in a repository config (or Global, Inherited or Shareable Preset configuration).\n *\n * This is a superset of any configuration that a Renovate user (not self-hosted administrator) can set.\n */\nexport interface RenovateConfig\n extends\n LegacyAdminConfig,\n RenovateSharedConfig,\n UpdateConfig<PackageRule>,\n AssigneesAndReviewersConfig,\n ConfigMigration,\n RenovateInternalConfig {\n s3Endpoint?: string;\n s3PathStyle?: boolean;\n reportFormatting?: boolean;\n reportPath?: string;\n reportType?: 'logging' | 'file' | 's3' | null;\n depName?: string;\n /** user configurable base branch patterns*/\n baseBranchPatterns?: string[];\n useBaseBranchConfig?: UseBaseBranchConfigType;\n baseBranch?: string;\n defaultBranch?: string;\n branchList?: string[];\n cloneSubmodules?: boolean;\n cloneSubmodulesFilter?: string[];\n description?: string | string[];\n detectGlobalManagerConfig?: boolean;\n errors?: ValidationMessage[];\n forkModeDisallowMaintainerEdits?: boolean;\n forkProcessing?: 'auto' | 'enabled' | 'disabled';\n forkToken?: string;\n\n gitAuthor?: string;\n\n hostRules?: HostRule[];\n\n inheritConfig?: boolean;\n inheritConfigFileName?: string;\n inheritConfigRepoName?: string;\n inheritConfigStrict?: boolean;\n\n ignorePresets?: string[];\n\n fileList?: string[];\n configWarningReuseIssue?: boolean;\n dependencyDashboard?: boolean;\n dependencyDashboardAutoclose?: boolean;\n dependencyDashboardChecks?: Record<string, string>;\n dependencyDashboardIssue?: number;\n dependencyDashboardTitle?: string;\n dependencyDashboardHeader?: string;\n dependencyDashboardFooter?: string;\n dependencyDashboardLabels?: string[];\n dependencyDashboardOSVVulnerabilitySummary?: 'none' | 'all' | 'unresolved';\n dependencyDashboardReportAbandonment?: boolean;\n mode?: 'silent' | 'full';\n packageFile?: string;\n packageRules?: PackageRule[];\n postUpdateOptions?: string[];\n branchConcurrentLimit?: number | null;\n parentOrg?: string;\n prConcurrentLimit?: number;\n commitHourlyLimit?: number;\n prHourlyLimit?: number;\n\n printConfig?: boolean;\n\n pruneStaleBranches?: boolean;\n\n defaultRegistryUrls?: string[];\n registryUrls?: string[] | null;\n registryAliases?: Record<string, string>;\n\n /**\n * What is this used for?\n * @deprecated\n */\n renovateJsonPresent?: boolean;\n\n repoIsOnboarded?: boolean;\n repoIsActivated?: boolean;\n\n topLevelOrg?: string;\n updateInternalDeps?: boolean;\n updateType?: UpdateType;\n\n warnings?: ValidationMessage[];\n vulnerabilityAlerts?: RenovateSharedConfig;\n osvVulnerabilityAlerts?: boolean;\n vulnerabilitySeverity?: string;\n customManagers?: CustomManager[];\n customDatasources?: Record<string, CustomDatasourceConfig>;\n\n fetchChangeLogs?: FetchChangeLogsOptions;\n secrets?: Record<string, string>;\n variables?: Record<string, string>;\n\n constraints?: Record<string, string>;\n skipInstalls?: boolean | null;\n\n constraintsFiltering?: ConstraintsFilter;\n\n checkedBranches?: string[];\n customizeDashboard?: Record<string, string>;\n\n statusCheckNames?: Record<StatusCheckKey, string | null>;\n /**\n * User configured environment variables that Renovate uses when executing package manager commands\n */\n env?: UserEnv;\n logLevelRemap?: LogLevelRemap[];\n\n branchTopic?: string;\n additionalBranchPrefix?: string;\n sharedVariableName?: string;\n minimumGroupSize?: number;\n configFileNames?: string[];\n minimumReleaseAgeBehaviour?: MinimumReleaseAgeBehaviour;\n toolSettings?: ToolSettingsOptions;\n}\n\nconst CustomDatasourceFormats = [\n 'html',\n 'json',\n 'plain',\n 'toml',\n 'yaml',\n] as const;\nexport type CustomDatasourceFormats = (typeof CustomDatasourceFormats)[number];\n\nexport interface CustomDatasourceConfig {\n defaultRegistryUrlTemplate?: string;\n format?: CustomDatasourceFormats;\n transformTemplates?: string[];\n}\n\n/**\n * The superset of all configuration that a self-hosted administrator can set, alongside all repository-level configuration.\n *\n */\nexport interface AllConfig\n extends RenovateConfig, GlobalOnlyConfigLegacy, RepoGlobalConfig {\n password?: string;\n token?: string;\n username?: string;\n}\n\nexport interface AssigneesAndReviewersConfig {\n assigneesFromCodeOwners?: boolean;\n expandCodeOwnersGroups?: boolean;\n assignees?: string[];\n assigneesSampleSize?: number;\n ignoreReviewers?: string[];\n reviewersFromCodeOwners?: boolean;\n reviewers?: string[];\n reviewersSampleSize?: number;\n additionalReviewers?: string[];\n filterUnavailableUsers?: boolean;\n}\n\nexport type UpdateType =\n | 'major'\n | 'minor'\n | 'patch'\n | 'pin'\n | 'digest'\n | 'pinDigest'\n | 'lockFileMaintenance'\n | 'lockfileUpdate'\n | 'rollback'\n | 'bump'\n | 'replacement';\n\n// These are the update types which can have configuration\nexport const UpdateTypesOptions = [\n 'major',\n 'minor',\n 'patch',\n 'pin',\n 'digest',\n 'pinDigest',\n 'lockFileMaintenance',\n 'rollback',\n 'replacement',\n] as const;\n\nexport type UpdateTypeOptions = (typeof UpdateTypesOptions)[number];\n\nexport type FetchChangeLogsOptions = 'off' | 'branch' | 'pr';\n\nexport type MatchStringsStrategy = 'any' | 'recursive' | 'combination';\n\nexport type MergeStrategy =\n | 'auto'\n | 'fast-forward'\n | 'merge-commit'\n | 'rebase'\n | 'rebase-merge'\n | 'squash';\n\n// This list should be added to as any new unsafe execution commands should be permitted\nexport type AllowedUnsafeExecution =\n | 'bazelModDeps'\n | 'goGenerate'\n | 'gradleWrapper';\n\n// TODO: Proper typings\nexport interface PackageRule\n extends RenovateSharedConfig, RenovateInternalConfig, UpdateConfig {\n allowedVersions?: string;\n description?: string | string[];\n matchBaseBranches?: string[];\n matchCategories?: string[];\n matchConfidence?: MergeConfidence[];\n matchCurrentAge?: string;\n matchCurrentValue?: string;\n matchCurrentVersion?: string;\n matchDatasources?: string[];\n matchDepNames?: string[];\n matchDepTypes?: string[];\n matchFileNames?: string[];\n matchManagers?: string[];\n matchNewValue?: string;\n matchPackageNames?: string[];\n matchRepositories?: string[];\n matchSourceUrls?: string[];\n matchRegistryUrls?: string[];\n matchUpdateTypes?: UpdateType[];\n matchJsonata?: string[];\n overrideDatasource?: string;\n overrideDepName?: string;\n overridePackageName?: string;\n registryUrls?: string[] | null;\n replacementName?: string;\n replacementVersion?: string;\n sourceUrl?: string;\n sourceDirectory?: string;\n vulnerabilitySeverity?: string;\n vulnerabilityFixVersion?: string;\n}\n\nexport interface ValidationMessage {\n topic: string;\n message: string;\n}\n\nexport type AllowedParents =\n | '.'\n | 'bumpVersions'\n | 'customDatasources'\n | 'customManagers'\n | 'hostRules'\n | 'logLevelRemap'\n | 'packageRules'\n | 'postUpgradeTasks'\n | 'vulnerabilityAlerts'\n | 'toolSettings'\n | ManagerName\n | UpdateTypeOptions;\nexport interface RenovateOptionBase {\n /**\n * If true, the option can only be configured by people with access to the Renovate instance.\n * Furthermore, the option should be documented in docs/usage/self-hosted-configuration.md.\n */\n globalOnly?: boolean;\n\n inheritConfigSupport?: boolean;\n\n allowedValues?: string[];\n\n allowString?: boolean;\n\n cli?: boolean;\n\n description: string;\n\n env?: false | string;\n\n /**\n * Do not validate object children\n */\n freeChoice?: boolean;\n\n mergeable?: boolean;\n\n autogenerated?: boolean;\n\n name: string;\n\n parents?: AllowedParents[];\n\n stage?: RenovateConfigStage;\n\n experimental?: boolean;\n\n experimentalDescription?: string;\n\n experimentalIssues?: number[];\n\n advancedUse?: boolean;\n\n /**\n * This is used to add a deprecation message in the docs\n */\n deprecationMsg?: string;\n\n /**\n * For internal use only: add it to any config option that supports regex or glob matching\n */\n patternMatch?: boolean;\n\n /**\n * For internal use only: add it to any config option of type integer that supports negative integers\n */\n allowNegative?: boolean;\n\n /**\n * Managers which support this option, leave undefined if all managers support it.\n */\n supportedManagers?: string[];\n\n /**\n * Platforms which support this option, leave undefined if all platforms support it.\n */\n supportedPlatforms?: PlatformId[];\n\n /**\n * Conditions that must be met for this option to be required.\n */\n requiredIf?: RenovateRequiredOption[];\n}\n\nexport interface RenovateRequiredOption {\n siblingProperties: { property: string; value: string }[];\n}\n\nexport interface RenovateArrayOption<\n T extends string | number | Record<string, unknown> = Record<string, unknown>,\n> extends RenovateOptionBase {\n default?: T[] | null;\n mergeable?: boolean;\n type: 'array';\n subType?: 'string' | 'object' | 'number';\n}\n\nexport interface RenovateStringArrayOption extends RenovateArrayOption<string> {\n format?: 'regex';\n subType: 'string';\n}\n\nexport interface RenovateNumberArrayOption extends RenovateArrayOption<number> {\n subType: 'number';\n}\n\nexport interface RenovateBooleanOption extends RenovateOptionBase {\n default?: boolean | null;\n type: 'boolean';\n}\n\nexport interface RenovateIntegerOption extends RenovateOptionBase {\n default?: number | null;\n type: 'integer';\n}\n\nexport interface RenovateStringOption extends RenovateOptionBase {\n default?: string | null;\n format?: 'regex';\n\n // Not used\n replaceLineReturns?: boolean;\n type: 'string';\n}\n\nexport interface RenovateObjectOption extends RenovateOptionBase {\n default?: any;\n additionalProperties?: Record<string, unknown> | boolean;\n mergeable?: boolean;\n type: 'object';\n}\n\nexport type RenovateOptions =\n | RenovateStringOption\n | RenovateNumberArrayOption\n | RenovateStringArrayOption\n | RenovateIntegerOption\n | RenovateBooleanOption\n | RenovateArrayOption\n | RenovateObjectOption;\n\nexport interface PackageRuleInputConfig extends RenovateConfig {\n versioning?: string;\n packageFile?: string;\n lockFiles?: string[];\n depType?: string;\n depTypes?: string[];\n depName?: string;\n packageName?: string | null;\n newValue?: string | null;\n currentValue?: string | null;\n currentVersion?: string;\n lockedVersion?: string;\n updateType?: UpdateType;\n mergeConfidenceLevel?: MergeConfidence | undefined;\n isBump?: boolean;\n sourceUrl?: string | null;\n categories?: string[];\n baseBranch?: string;\n manager?: string;\n datasource?: string;\n packageRules?: (PackageRule & PackageRuleInputConfig)[];\n releaseTimestamp?: Timestamp | null;\n repository?: string;\n currentVersionAgeInDays?: number;\n currentVersionTimestamp?: string;\n enabled?: boolean;\n skipReason?: SkipReason;\n skipStage?: StageName;\n}\n\nexport interface ConfigMigration {\n configMigration?: boolean;\n}\n\nexport interface MigratedConfig {\n /**\n * Indicates whether there was a migration applied to the configuration.\n *\n * @returns\n * `false` if the configuration does not need migrating, and `migratedConfig` can be ignored\n * `true` if the configuration was migrated, and if so, `migratedConfig` should be used instead of the provided config\n */\n isMigrated: boolean;\n migratedConfig: RenovateConfig;\n}\n\nexport interface MigratedRenovateConfig extends RenovateConfig {\n endpoints?: HostRule[];\n pathRules: PackageRule[];\n packages: PackageRule[];\n\n node?: RenovateConfig;\n travis?: RenovateConfig;\n gradle?: RenovateConfig;\n}\n\nexport interface ManagerConfig extends RenovateConfig {\n manager: string;\n categories?: Category[];\n}\n\nexport interface ValidationResult {\n errors: ValidationMessage[];\n warnings: ValidationMessage[];\n}\n\nexport interface BumpVersionConfig {\n bumpType?: string;\n filePatterns: string[];\n matchStrings: string[];\n name?: string;\n}\n\nexport interface ToolSettingsOptions {\n jvmMaxMemory?: number;\n jvmMemory?: number;\n nodeMaxMemory?: number;\n}\n"],"mappings":";AAsUA,MAAa,4BAA4B;CACvC;CACA;CACA;CACA;CACD;AAuMD,MAAa,qBAAqB;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD"}
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../lib/config/types.ts"],"sourcesContent":["import type { Category, PlatformId } from '../constants/index.ts';\nimport type { LogLevelRemap } from '../logger/types.ts';\nimport type { ManagerName } from '../manager-list.generated.ts';\nimport type { CustomManager } from '../modules/manager/custom/types.ts';\nimport type { RepoSortMethod, SortMethod } from '../modules/platform/types.ts';\nimport type {\n AutoMergeType,\n HostRule,\n Nullish,\n RangeStrategy,\n SkipReason,\n} from '../types/index.ts';\nimport type { StageName } from '../types/skip-reason.ts';\nimport type { ConstraintName, ToolName } from '../util/exec/types.ts';\nimport type { GitNoVerifyOption } from '../util/git/types.ts';\nimport type { MergeConfidence } from '../util/merge-confidence/types.ts';\nimport type { Timestamp } from '../util/timestamp.ts';\n\nexport type RenovateConfigStage =\n | 'global'\n | 'inherit'\n | 'repository'\n | 'package'\n | 'branch'\n | 'pr';\n\nexport type RenovateSplit =\n | 'init'\n | 'onboarding'\n | 'extract'\n | 'lookup'\n | 'update';\n\nexport type RepositoryCacheConfig = 'disabled' | 'enabled' | 'reset';\nexport type RepositoryCacheType = 'local' | (string & {});\nexport type DryRunConfig = 'extract' | 'lookup' | 'full';\nexport type RequiredConfig = 'required' | 'optional' | 'ignored';\n\nexport interface GroupConfig extends Record<string, unknown> {\n branchName?: string;\n branchTopic?: string;\n}\n\nexport type RecreateWhen = 'auto' | 'never' | 'always';\nexport type PlatformCommitOptions = 'auto' | 'disabled' | 'enabled';\n\nexport type BinarySource = 'docker' | 'global' | 'install' | 'hermit';\n\n// TODO: Proper typings\n/**\n * Any configuration that could be used either top-level in a repository config (or Global, Inherited or Shareable Preset configuration), or:\n *\n * - in a datasource-specific configuration\n * - in a manager-specific configuration\n * - in a Package Rule\n *\n * @see RenovateConfig for the superset of all configuration allowed in a given repository\n *\n */\nexport interface RenovateSharedConfig {\n $schema?: string;\n abandonmentThreshold?: Nullish<string>;\n addLabels?: string[];\n assignAutomerge?: boolean;\n autoApprove?: boolean;\n autoReplaceGlobalMatch?: boolean;\n automerge?: boolean;\n automergeSchedule?: string[];\n automergeStrategy?: MergeStrategy;\n automergeType?: AutoMergeType;\n azureWorkItemId?: number;\n branchName?: string;\n branchNameStrict?: boolean;\n branchPrefix?: string;\n branchPrefixOld?: string;\n bumpVersions?: BumpVersionConfig[];\n commitBody?: string;\n commitBodyTable?: boolean;\n commitMessage?: string;\n commitMessageAction?: string;\n commitMessageExtra?: string;\n commitMessageLowerCase?: 'auto' | 'never';\n commitMessagePrefix?: string;\n commitMessageTopic?: string;\n confidential?: boolean;\n configValidationError?: boolean;\n changelogUrl?: string;\n dependencyDashboardApproval?: boolean;\n draftPR?: boolean;\n enabled?: boolean;\n enabledManagers?: string[];\n encrypted?: Record<string, string>;\n extends?: string[];\n extractVersion?: string;\n managerFilePatterns?: string[];\n followTag?: string;\n force?: RenovateConfig;\n gitIgnoredAuthors?: string[];\n group?: GroupConfig;\n groupName?: string;\n groupSlug?: string;\n hashedBranchLength?: number;\n ignoreDeps?: string[];\n ignorePaths?: string[];\n ignoreTests?: boolean;\n ignoreUnstable?: boolean;\n includePaths?: string[];\n internalChecksAsSuccess?: boolean;\n internalChecksFilter?: 'strict' | 'flexible' | 'none';\n keepUpdatedLabel?: string;\n labels?: string[];\n manager?: string;\n milestone?: number;\n minimumReleaseAge?: Nullish<string>;\n npmrc?: string;\n npmrcMerge?: boolean;\n npmToken?: string;\n\n pinDigests?: boolean;\n platformAutomerge?: boolean;\n platformCommit?: PlatformCommitOptions;\n postUpgradeTasks?: PostUpgradeTasks;\n prBodyColumns?: string[];\n prBodyDefinitions?: Record<string, string>;\n prBodyHeadingDefinitions?: Record<string, string>;\n prBodyNotes?: string[];\n prCreation?: 'immediate' | 'not-pending' | 'status-success' | 'approval';\n prFooter?: string;\n prHeader?: string;\n prPriority?: number;\n prTitle?: string;\n prTitleStrict?: boolean;\n productLinks?: Record<string, string>;\n pruneBranchAfterAutomerge?: boolean;\n rangeStrategy?: RangeStrategy;\n rebaseLabel?: string;\n rebaseWhen?: string;\n recreateClosed?: boolean;\n recreateWhen?: RecreateWhen;\n repository?: string;\n repositoryCache?: RepositoryCacheConfig;\n repositoryCacheType?: RepositoryCacheType;\n respectLatest?: boolean;\n rollbackPrs?: boolean;\n schedule?: string[];\n semanticCommitScope?: string | null;\n semanticCommitType?: string;\n semanticCommits?: 'auto' | 'enabled' | 'disabled';\n separateMajorMinor?: boolean;\n separateMinorPatch?: boolean;\n separateMultipleMajor?: boolean;\n separateMultipleMinor?: boolean;\n skipArtifactsUpdate?: boolean;\n stopUpdatingLabel?: string;\n suppressNotifications?: string[];\n timezone?: string;\n unicodeEmoji?: boolean;\n updateNotScheduled?: boolean;\n versioning?: string;\n versionCompatibility?: string;\n}\n\n/**\n * Contains all options with globalOnly=true && inheritConfigSupport=true\n */\nexport interface GlobalInheritableConfig {\n bbUseDevelopmentBranch?: boolean;\n configFileNames?: string[];\n onboarding?: boolean;\n onboardingAutoCloseAge?: number;\n onboardingBranch?: string;\n onboardingCommitMessage?: string;\n onboardingConfig?: RenovateConfig;\n onboardingConfigFileName?: string;\n onboardingNoDeps?: 'auto' | 'enabled' | 'disabled';\n onboardingPrTitle?: string;\n}\n\n// Config options used only within the global worker\n// The below should contain config options where stage=global\n/** @deprecated use `RepoGlobalConfig` instead **/\nexport interface GlobalOnlyConfigLegacy {\n autodiscover?: boolean;\n autodiscoverFilter?: string[] | string;\n autodiscoverNamespaces?: string[];\n autodiscoverProjects?: string[];\n autodiscoverTopics?: string[];\n baseDir?: string;\n cacheDir?: string;\n containerbaseDir?: string;\n detectHostRulesFromEnv?: boolean;\n dockerCliOptions?: string;\n endpoint?: string;\n forceCli?: boolean;\n gitNoVerify?: GitNoVerifyOption[];\n gitPrivateKey?: string;\n gitPrivateKeyPassphrase?: string;\n globalExtends?: string[];\n mergeConfidenceDatasources?: string[];\n mergeConfidenceEndpoint?: string;\n platform?: PlatformId;\n processEnv?: Record<string, string>;\n prCommitsPerRunLimit?: number;\n privateKey?: string;\n privateKeyOld?: string;\n privateKeyPath?: string;\n privateKeyPathOld?: string;\n redisPrefix?: string;\n redisUrl?: string;\n repositories?: RenovateRepository[];\n useCloudMetadataServices?: boolean;\n deleteConfigFile?: boolean;\n deleteAdditionalConfigFile?: boolean;\n}\n\n/**\n * Any global-only configuration set by self-hosted administrators.\n *\n * Used within the repository worker.\n *\n * Should only contain config options where globalOnly=true.\n */\nexport interface RepoGlobalConfig extends GlobalInheritableConfig {\n allowedCommands?: string[];\n allowCustomCrateRegistries?: boolean;\n allowPlugins?: boolean;\n allowScripts?: boolean;\n allowShellExecutorForPostUpgradeCommands?: boolean;\n allowedEnv?: string[];\n allowedHeaders?: string[];\n binarySource?: BinarySource;\n cacheDir?: string;\n cacheHardTtlMinutes?: number;\n cacheTtlOverride?: Record<string, number>;\n containerbaseDir?: string;\n customEnvVariables?: Record<string, string>;\n dockerChildPrefix?: string;\n dockerCliOptions?: string;\n dockerSidecarImage?: string;\n dockerUser?: string;\n dryRun?: DryRunConfig;\n encryptedWarning?: string;\n endpoint?: string;\n executionTimeout?: number;\n exposeAllEnv?: boolean;\n gitTimeout?: number;\n githubTokenWarn?: boolean;\n includeMirrors?: boolean;\n localDir?: string;\n migratePresets?: Record<string, string>;\n platform?: PlatformId;\n prCacheSyncMaxPages?: number;\n presetCachePersistence?: boolean;\n httpCacheTtlDays?: number;\n autodiscoverRepoSort?: RepoSortMethod;\n autodiscoverRepoOrder?: SortMethod;\n userAgent?: string;\n dockerMaxPages?: number;\n s3Endpoint?: string;\n s3PathStyle?: boolean;\n cachePrivatePackages?: boolean;\n repositoryCacheForceLocal?: boolean;\n configFileNames?: string[];\n ignorePrAuthor?: boolean;\n allowedUnsafeExecutions?: AllowedUnsafeExecution[];\n onboardingAutoCloseAge?: number;\n toolSettings?: ToolSettingsOptions;\n}\n\n/**\n * Those options are global only but still passed into the repository worker config.\n *\n * @deprecated https://github.com/renovatebot/renovate/issues/39693\n */\nexport interface LegacyAdminConfig {\n baseDir?: string;\n localDir?: string;\n\n logContext?: string;\n\n onboarding?: boolean;\n onboardingBranch?: string;\n onboardingNoDeps?: 'auto' | 'enabled' | 'disabled';\n onboardingRebaseCheckbox?: boolean;\n onboardingConfig?: RenovateConfig;\n onboardingConfigFileName?: string;\n\n optimizeForDisabled?: boolean;\n\n persistRepoData?: boolean;\n\n prCommitsPerRunLimit?: number;\n\n requireConfig?: RequiredConfig;\n\n useCloudMetadataServices?: boolean;\n\n writeDiscoveredRepos?: string;\n}\n\nexport type ExecutionMode = 'branch' | 'update';\n\nexport interface PostUpgradeTasks {\n commands?: string[];\n workingDirTemplate?: string;\n dataFileTemplate?: string;\n fileFilters?: string[];\n executionMode: ExecutionMode;\n installTools?: Partial<Record<ToolName, Record<never, never>>>;\n}\n\nexport type UpdateConfig<\n T extends RenovateSharedConfig = RenovateSharedConfig,\n> = Partial<Record<UpdateType, T | null>>;\n\nexport type RenovateRepository =\n | string\n | (RenovateConfig & {\n repository: string;\n });\n\nexport type UseBaseBranchConfigType = 'merge' | 'none';\nexport type ConstraintsFilter = 'strict' | 'none';\nexport type MinimumReleaseAgeBehaviour =\n | 'timestamp-required'\n | 'timestamp-optional';\n\nexport const allowedStatusCheckStrings = [\n 'minimumReleaseAge',\n 'mergeConfidence',\n 'configValidation',\n 'artifactError',\n] as const;\nexport type StatusCheckKey = (typeof allowedStatusCheckStrings)[number];\ntype UserEnv = Record<string, string>;\n\n/**\n * Computed properties, for internal use only\n */\nexport interface RenovateInternalConfig {\n /** computed base branch from patterns - for internal use only */\n baseBranches?: string[];\n currentCompatibility?: string;\n datasource?: string;\n hasBaseBranches?: boolean;\n isFork?: boolean;\n isVulnerabilityAlert?: boolean;\n\n /** What is this used for? */\n remediations?: unknown;\n /** What is this used for? */\n vulnerabilityAlertsOnly?: boolean;\n}\n\n// TODO: Proper typings\n/**\n * Configuration that could be used either top-level in a repository config (or Global, Inherited or Shareable Preset configuration).\n *\n * This is a superset of any configuration that a Renovate user (not self-hosted administrator) can set.\n */\nexport interface RenovateConfig\n extends\n LegacyAdminConfig,\n RenovateSharedConfig,\n UpdateConfig<PackageRule>,\n AssigneesAndReviewersConfig,\n ConfigMigration,\n RenovateInternalConfig {\n s3Endpoint?: string;\n s3PathStyle?: boolean;\n reportFormatting?: boolean;\n reportPath?: string;\n reportType?: 'logging' | 'file' | 's3' | null;\n depName?: string;\n /** user configurable base branch patterns*/\n baseBranchPatterns?: string[];\n useBaseBranchConfig?: UseBaseBranchConfigType;\n baseBranch?: string;\n defaultBranch?: string;\n branchList?: string[];\n cloneSubmodules?: boolean;\n cloneSubmodulesFilter?: string[];\n description?: string | string[];\n detectGlobalManagerConfig?: boolean;\n errors?: ValidationMessage[];\n forkModeDisallowMaintainerEdits?: boolean;\n forkProcessing?: 'auto' | 'enabled' | 'disabled';\n forkToken?: string;\n\n gitAuthor?: string;\n\n hostRules?: HostRule[];\n\n inheritConfig?: boolean;\n inheritConfigFileName?: string;\n inheritConfigRepoName?: string;\n inheritConfigStrict?: boolean;\n\n ignorePresets?: string[];\n\n fileList?: string[];\n configWarningReuseIssue?: boolean;\n dependencyDashboard?: boolean;\n dependencyDashboardAutoclose?: boolean;\n dependencyDashboardChecks?: Record<string, string>;\n dependencyDashboardIssue?: number;\n dependencyDashboardTitle?: string;\n dependencyDashboardHeader?: string;\n dependencyDashboardFooter?: string;\n dependencyDashboardLabels?: string[];\n dependencyDashboardOSVVulnerabilitySummary?: 'none' | 'all' | 'unresolved';\n dependencyDashboardReportAbandonment?: boolean;\n mode?: 'silent' | 'full';\n packageFile?: string;\n packageRules?: PackageRule[];\n postUpdateOptions?: string[];\n branchConcurrentLimit?: number | null;\n parentOrg?: string;\n prConcurrentLimit?: number;\n commitHourlyLimit?: number;\n prHourlyLimit?: number;\n\n printConfig?: boolean;\n\n pruneStaleBranches?: boolean;\n\n defaultRegistryUrls?: string[];\n registryUrls?: string[] | null;\n registryAliases?: Record<string, string>;\n\n /**\n * What is this used for?\n * @deprecated\n */\n renovateJsonPresent?: boolean;\n\n repoIsOnboarded?: boolean;\n repoIsActivated?: boolean;\n\n topLevelOrg?: string;\n updateInternalDeps?: boolean;\n updateType?: UpdateType;\n\n warnings?: ValidationMessage[];\n vulnerabilityAlerts?: RenovateSharedConfig;\n osvVulnerabilityAlerts?: boolean;\n vulnerabilitySeverity?: string;\n customManagers?: CustomManager[];\n customDatasources?: Record<string, CustomDatasourceConfig>;\n\n fetchChangeLogs?: FetchChangeLogsOptions;\n secrets?: Record<string, string>;\n variables?: Record<string, string>;\n\n constraints?: Partial<Record<ConstraintName, string>>;\n skipInstalls?: boolean | null;\n\n constraintsFiltering?: ConstraintsFilter;\n\n checkedBranches?: string[];\n customizeDashboard?: Record<string, string>;\n\n statusCheckNames?: Record<StatusCheckKey, string | null>;\n /**\n * User configured environment variables that Renovate uses when executing package manager commands\n */\n env?: UserEnv;\n logLevelRemap?: LogLevelRemap[];\n\n branchTopic?: string;\n additionalBranchPrefix?: string;\n sharedVariableName?: string;\n minimumGroupSize?: number;\n configFileNames?: string[];\n minimumReleaseAgeBehaviour?: MinimumReleaseAgeBehaviour;\n toolSettings?: ToolSettingsOptions;\n}\n\nconst CustomDatasourceFormats = [\n 'html',\n 'json',\n 'plain',\n 'toml',\n 'yaml',\n] as const;\nexport type CustomDatasourceFormats = (typeof CustomDatasourceFormats)[number];\n\nexport interface CustomDatasourceConfig {\n defaultRegistryUrlTemplate?: string;\n format?: CustomDatasourceFormats;\n transformTemplates?: string[];\n}\n\n/**\n * The superset of all configuration that a self-hosted administrator can set, alongside all repository-level configuration.\n *\n */\nexport interface AllConfig\n extends RenovateConfig, GlobalOnlyConfigLegacy, RepoGlobalConfig {\n password?: string;\n token?: string;\n username?: string;\n}\n\nexport interface AssigneesAndReviewersConfig {\n assigneesFromCodeOwners?: boolean;\n expandCodeOwnersGroups?: boolean;\n assignees?: string[];\n assigneesSampleSize?: number;\n ignoreReviewers?: string[];\n reviewersFromCodeOwners?: boolean;\n reviewers?: string[];\n reviewersSampleSize?: number;\n additionalReviewers?: string[];\n filterUnavailableUsers?: boolean;\n}\n\nexport type UpdateType =\n | 'major'\n | 'minor'\n | 'patch'\n | 'pin'\n | 'digest'\n | 'pinDigest'\n | 'lockFileMaintenance'\n | 'lockfileUpdate'\n | 'rollback'\n | 'bump'\n | 'replacement';\n\n// These are the update types which can have configuration\nexport const UpdateTypesOptions = [\n 'major',\n 'minor',\n 'patch',\n 'pin',\n 'digest',\n 'pinDigest',\n 'lockFileMaintenance',\n 'rollback',\n 'replacement',\n] as const;\n\nexport type UpdateTypeOptions = (typeof UpdateTypesOptions)[number];\n\nexport type FetchChangeLogsOptions = 'off' | 'branch' | 'pr';\n\nexport type MatchStringsStrategy = 'any' | 'recursive' | 'combination';\n\nexport type MergeStrategy =\n | 'auto'\n | 'fast-forward'\n | 'merge-commit'\n | 'rebase'\n | 'rebase-merge'\n | 'squash';\n\n// This list should be added to as any new unsafe execution commands should be permitted\nexport type AllowedUnsafeExecution =\n | 'bazelModDeps'\n | 'goGenerate'\n | 'gradleWrapper';\n\n// TODO: Proper typings\nexport interface PackageRule\n extends RenovateSharedConfig, RenovateInternalConfig, UpdateConfig {\n allowedVersions?: string;\n description?: string | string[];\n matchBaseBranches?: string[];\n matchCategories?: string[];\n matchConfidence?: MergeConfidence[];\n matchCurrentAge?: string;\n matchCurrentValue?: string;\n matchCurrentVersion?: string;\n matchDatasources?: string[];\n matchDepNames?: string[];\n matchDepTypes?: string[];\n matchFileNames?: string[];\n matchManagers?: string[];\n matchNewValue?: string;\n matchPackageNames?: string[];\n matchRepositories?: string[];\n matchSourceUrls?: string[];\n matchRegistryUrls?: string[];\n matchUpdateTypes?: UpdateType[];\n matchJsonata?: string[];\n overrideDatasource?: string;\n overrideDepName?: string;\n overridePackageName?: string;\n registryUrls?: string[] | null;\n replacementName?: string;\n replacementVersion?: string;\n sourceUrl?: string;\n sourceDirectory?: string;\n vulnerabilitySeverity?: string;\n vulnerabilityFixVersion?: string;\n}\n\nexport interface ValidationMessage {\n topic: string;\n message: string;\n}\n\nexport type AllowedParents =\n | '.'\n | 'bumpVersions'\n | 'customDatasources'\n | 'customManagers'\n | 'hostRules'\n | 'logLevelRemap'\n | 'packageRules'\n | 'postUpgradeTasks'\n | 'vulnerabilityAlerts'\n | 'toolSettings'\n | ManagerName\n | UpdateTypeOptions;\nexport interface RenovateOptionBase {\n /**\n * If true, the option can only be configured by people with access to the Renovate instance.\n * Furthermore, the option should be documented in docs/usage/self-hosted-configuration.md.\n */\n globalOnly?: boolean;\n\n inheritConfigSupport?: boolean;\n\n allowedValues?: string[];\n\n allowString?: boolean;\n\n cli?: boolean;\n\n description: string;\n\n env?: false | string;\n\n /**\n * Do not validate object children\n */\n freeChoice?: boolean;\n\n mergeable?: boolean;\n\n autogenerated?: boolean;\n\n name: string;\n\n parents?: AllowedParents[];\n\n stage?: RenovateConfigStage;\n\n experimental?: boolean;\n\n experimentalDescription?: string;\n\n experimentalIssues?: number[];\n\n advancedUse?: boolean;\n\n /**\n * This is used to add a deprecation message in the docs\n */\n deprecationMsg?: string;\n\n /**\n * For internal use only: add it to any config option that supports regex or glob matching\n */\n patternMatch?: boolean;\n\n /**\n * For internal use only: add it to any config option of type integer that supports negative integers\n */\n allowNegative?: boolean;\n\n /**\n * Managers which support this option, leave undefined if all managers support it.\n */\n supportedManagers?: string[];\n\n /**\n * Platforms which support this option, leave undefined if all platforms support it.\n */\n supportedPlatforms?: PlatformId[];\n\n /**\n * Conditions that must be met for this option to be required.\n */\n requiredIf?: RenovateRequiredOption[];\n}\n\nexport interface RenovateRequiredOption {\n siblingProperties: { property: string; value: string }[];\n}\n\nexport interface RenovateArrayOption<\n T extends string | number | Record<string, unknown> = Record<string, unknown>,\n> extends RenovateOptionBase {\n default?: T[] | null;\n mergeable?: boolean;\n type: 'array';\n subType?: 'string' | 'object' | 'number';\n}\n\nexport interface RenovateStringArrayOption extends RenovateArrayOption<string> {\n format?: 'regex';\n subType: 'string';\n}\n\nexport interface RenovateNumberArrayOption extends RenovateArrayOption<number> {\n subType: 'number';\n}\n\nexport interface RenovateBooleanOption extends RenovateOptionBase {\n default?: boolean | null;\n type: 'boolean';\n}\n\nexport interface RenovateIntegerOption extends RenovateOptionBase {\n default?: number | null;\n type: 'integer';\n}\n\nexport interface RenovateStringOption extends RenovateOptionBase {\n default?: string | null;\n format?: 'regex';\n\n // Not used\n replaceLineReturns?: boolean;\n type: 'string';\n}\n\nexport interface RenovateObjectOption extends RenovateOptionBase {\n default?: any;\n additionalProperties?: Record<string, unknown> | boolean;\n mergeable?: boolean;\n type: 'object';\n}\n\nexport type RenovateOptions =\n | RenovateStringOption\n | RenovateNumberArrayOption\n | RenovateStringArrayOption\n | RenovateIntegerOption\n | RenovateBooleanOption\n | RenovateArrayOption\n | RenovateObjectOption;\n\nexport interface PackageRuleInputConfig extends RenovateConfig {\n versioning?: string;\n packageFile?: string;\n lockFiles?: string[];\n depType?: string;\n depTypes?: string[];\n depName?: string;\n packageName?: string | null;\n newValue?: string | null;\n currentValue?: string | null;\n currentVersion?: string;\n lockedVersion?: string;\n updateType?: UpdateType;\n mergeConfidenceLevel?: MergeConfidence | undefined;\n isBump?: boolean;\n sourceUrl?: string | null;\n categories?: string[];\n baseBranch?: string;\n manager?: string;\n datasource?: string;\n packageRules?: (PackageRule & PackageRuleInputConfig)[];\n releaseTimestamp?: Timestamp | null;\n repository?: string;\n currentVersionAgeInDays?: number;\n currentVersionTimestamp?: string;\n enabled?: boolean;\n skipReason?: SkipReason;\n skipStage?: StageName;\n}\n\nexport interface ConfigMigration {\n configMigration?: boolean;\n}\n\nexport interface MigratedConfig {\n /**\n * Indicates whether there was a migration applied to the configuration.\n *\n * @returns\n * `false` if the configuration does not need migrating, and `migratedConfig` can be ignored\n * `true` if the configuration was migrated, and if so, `migratedConfig` should be used instead of the provided config\n */\n isMigrated: boolean;\n migratedConfig: RenovateConfig;\n}\n\nexport interface MigratedRenovateConfig extends RenovateConfig {\n endpoints?: HostRule[];\n pathRules: PackageRule[];\n packages: PackageRule[];\n\n node?: RenovateConfig;\n travis?: RenovateConfig;\n gradle?: RenovateConfig;\n}\n\nexport interface ManagerConfig extends RenovateConfig {\n manager: string;\n categories?: Category[];\n}\n\nexport interface ValidationResult {\n errors: ValidationMessage[];\n warnings: ValidationMessage[];\n}\n\nexport interface BumpVersionConfig {\n bumpType?: string;\n filePatterns: string[];\n matchStrings: string[];\n name?: string;\n}\n\nexport interface ToolSettingsOptions {\n jvmMaxMemory?: number;\n jvmMemory?: number;\n nodeMaxMemory?: number;\n}\n"],"mappings":";AAuUA,MAAa,4BAA4B;CACvC;CACA;CACA;CACA;CACD;AAuMD,MAAa,qBAAqB;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","names":["datasources","allVersioning.get"],"sources":["../../../lib/modules/datasource/common.ts"],"sourcesContent":["import {\n isNonEmptyArray,\n isNonEmptyStringAndNotWhitespace,\n} from '@sindresorhus/is';\nimport { logger } from '../../logger/index.ts';\nimport { filterMap } from '../../util/filter-map.ts';\nimport { regEx } from '../../util/regex.ts';\nimport * as allVersioning from '../versioning/index.ts';\nimport { defaultVersioning } from '../versioning/index.ts';\nimport datasources from './api.ts';\nimport { CustomDatasource } from './custom/index.ts';\nimport type {\n DatasourceApi,\n GetPkgReleasesConfig,\n ReleaseResult,\n} from './types.ts';\n\nexport function getDatasourceFor(datasource: string): DatasourceApi | null {\n if (datasource?.startsWith('custom.')) {\n return getDatasourceFor(CustomDatasource.id);\n }\n return datasources.get(datasource) ?? null;\n}\n\nexport function getDefaultVersioning(\n datasourceName: string | undefined,\n): string {\n if (!datasourceName) {\n return defaultVersioning.id;\n }\n\n const datasource = getDatasourceFor(datasourceName);\n\n if (!datasource) {\n logger.warn({ datasourceName }, 'Missing datasource!');\n return defaultVersioning.id;\n }\n\n if (!datasource.defaultVersioning) {\n return defaultVersioning.id;\n }\n\n return datasource.defaultVersioning;\n}\n\nexport function isGetPkgReleasesConfig(\n input: unknown,\n): input is GetPkgReleasesConfig {\n return (\n isNonEmptyStringAndNotWhitespace(\n (input as GetPkgReleasesConfig).datasource,\n ) &&\n isNonEmptyStringAndNotWhitespace(\n (input as GetPkgReleasesConfig).packageName,\n )\n );\n}\n\nexport function applyVersionCompatibility(\n releaseResult: ReleaseResult,\n versionCompatibility: string | undefined,\n currentCompatibility: string | undefined,\n): ReleaseResult {\n if (!versionCompatibility) {\n return releaseResult;\n }\n\n const versionCompatibilityRegEx = regEx(versionCompatibility);\n releaseResult.releases = filterMap(releaseResult.releases, (release) => {\n const regexResult = versionCompatibilityRegEx.exec(release.version);\n if (!regexResult?.groups?.version) {\n logger.trace(\n { releaseVersion: release.version, versionCompatibility },\n 'versionCompatibility: Does not match regex',\n );\n return null;\n }\n if (regexResult?.groups?.compatibility !== currentCompatibility) {\n logger.trace(\n { releaseVersion: release.version, versionCompatibility },\n 'versionCompatibility: Does not match compatibility',\n );\n return null;\n }\n logger.trace(\n {\n releaseVersion: release.version,\n versionCompatibility,\n version: regexResult.groups.version,\n compatibility: regexResult.groups.compatibility,\n },\n 'versionCompatibility: matches',\n );\n release.versionOrig ??= release.version;\n release.version = regexResult.groups.version;\n return release;\n });\n\n return releaseResult;\n}\n\nexport function applyExtractVersion(\n releaseResult: ReleaseResult,\n extractVersion: string | undefined,\n): ReleaseResult {\n if (!extractVersion) {\n return releaseResult;\n }\n\n const extractVersionRegEx = regEx(extractVersion);\n releaseResult.releases = filterMap(releaseResult.releases, (release) => {\n const version = extractVersionRegEx.exec(release.version)?.groups?.version;\n if (!version) {\n return null;\n }\n\n release.versionOrig = release.version;\n release.version = version;\n return release;\n });\n\n return releaseResult;\n}\n\nexport function filterValidVersions<\n Config extends Pick<GetPkgReleasesConfig, 'versioning' | 'datasource'>,\n>(releaseResult: ReleaseResult, config: Config): ReleaseResult {\n const versioningName =\n config.versioning ?? getDefaultVersioning(config.datasource);\n const versioning = allVersioning.get(versioningName);\n\n releaseResult.releases = filterMap(releaseResult.releases, (release) =>\n versioning.isVersion(release.version) ? release : null,\n );\n\n return releaseResult;\n}\n\nexport function sortAndRemoveDuplicates<\n Config extends Pick<GetPkgReleasesConfig, 'versioning' | 'datasource'>,\n>(releaseResult: ReleaseResult, config: Config): ReleaseResult {\n const versioningName =\n config.versioning ?? getDefaultVersioning(config.datasource);\n const versioning = allVersioning.get(versioningName);\n\n releaseResult.releases = releaseResult.releases.sort((a, b) =>\n versioning.sortVersions(a.version, b.version),\n );\n\n // Once releases are sorted, deduplication is straightforward and efficient\n let previousVersion: string | null = null;\n releaseResult.releases = filterMap(releaseResult.releases, (release) => {\n if (previousVersion === release.version) {\n return null;\n }\n previousVersion = release.version;\n return release;\n });\n\n return releaseResult;\n}\n\nexport function applyConstraintsFiltering<\n Config extends Pick<\n GetPkgReleasesConfig,\n | 'constraintsFiltering'\n | 'versioning'\n | 'datasource'\n | 'constraints'\n | 'packageName'\n >,\n>(releaseResult: ReleaseResult, config: Config): ReleaseResult {\n if (config?.constraintsFiltering !== 'strict') {\n for (const release of releaseResult.releases) {\n delete release.constraints;\n }\n\n return releaseResult;\n }\n\n const versioningName =\n config.versioning ?? getDefaultVersioning(config.datasource);\n const versioning = allVersioning.get(versioningName);\n\n const configConstraints = config.constraints;\n const filteredReleases: string[] = [];\n const startingLength = releaseResult.releases.length;\n releaseResult.releases = filterMap(releaseResult.releases, (release) => {\n const releaseConstraints = release.constraints;\n delete release.constraints;\n\n if (!configConstraints || !releaseConstraints) {\n return release;\n }\n\n for (const [name, configConstraint] of Object.entries(configConstraints)) {\n if (!versioning.isValid(configConstraint)) {\n logger.once.warn(\n {\n packageName: config.packageName,\n constraint: configConstraint,\n versioning: versioningName,\n },\n 'Invalid constraint used with strict constraintsFiltering',\n );\n continue;\n }\n\n const constraint = releaseConstraints[name];\n if (!isNonEmptyArray(constraint)) {\n // A release with no constraints is OK\n continue;\n }\n\n let satisfiesConstraints = false;\n for (const releaseConstraint of constraint) {\n if (!releaseConstraint) {\n satisfiesConstraints = true;\n logger.once.debug(\n {\n packageName: config.packageName,\n versioning: versioningName,\n constraint: releaseConstraint,\n },\n 'Undefined release constraint',\n );\n break;\n }\n\n if (!versioning.isValid(releaseConstraint)) {\n logger.once.debug(\n {\n packageName: config.packageName,\n versioning: versioningName,\n constraint: releaseConstraint,\n },\n 'Invalid release constraint',\n );\n break;\n }\n\n if (configConstraint === releaseConstraint) {\n satisfiesConstraints = true;\n break;\n }\n\n if (versioning.subset?.(configConstraint, releaseConstraint)) {\n satisfiesConstraints = true;\n break;\n }\n\n if (versioning.matches(configConstraint, releaseConstraint)) {\n satisfiesConstraints = true;\n break;\n }\n }\n\n if (!satisfiesConstraints) {\n filteredReleases.push(release.version);\n return null;\n }\n }\n\n return release;\n });\n\n if (filteredReleases.length) {\n const count = filteredReleases.length;\n const packageName = config.packageName;\n const releases = filteredReleases.join(', ');\n logger.debug(\n `Filtered out ${count} non-matching releases out of ${startingLength} total for ${packageName} due to constraintsFiltering=strict: ${releases}`,\n );\n }\n\n return releaseResult;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"common.js","names":["datasources","allVersioning.get"],"sources":["../../../lib/modules/datasource/common.ts"],"sourcesContent":["import {\n isNonEmptyArray,\n isNonEmptyStringAndNotWhitespace,\n} from '@sindresorhus/is';\nimport { logger } from '../../logger/index.ts';\nimport type { ConstraintName } from '../../util/exec/types.ts';\nimport { filterMap } from '../../util/filter-map.ts';\nimport { regEx } from '../../util/regex.ts';\nimport * as allVersioning from '../versioning/index.ts';\nimport { defaultVersioning } from '../versioning/index.ts';\nimport datasources from './api.ts';\nimport { CustomDatasource } from './custom/index.ts';\nimport type {\n DatasourceApi,\n GetPkgReleasesConfig,\n ReleaseResult,\n} from './types.ts';\n\nexport function getDatasourceFor(datasource: string): DatasourceApi | null {\n if (datasource?.startsWith('custom.')) {\n return getDatasourceFor(CustomDatasource.id);\n }\n return datasources.get(datasource) ?? null;\n}\n\nexport function getDefaultVersioning(\n datasourceName: string | undefined,\n): string {\n if (!datasourceName) {\n return defaultVersioning.id;\n }\n\n const datasource = getDatasourceFor(datasourceName);\n\n if (!datasource) {\n logger.warn({ datasourceName }, 'Missing datasource!');\n return defaultVersioning.id;\n }\n\n if (!datasource.defaultVersioning) {\n return defaultVersioning.id;\n }\n\n return datasource.defaultVersioning;\n}\n\nexport function isGetPkgReleasesConfig(\n input: unknown,\n): input is GetPkgReleasesConfig {\n return (\n isNonEmptyStringAndNotWhitespace(\n (input as GetPkgReleasesConfig).datasource,\n ) &&\n isNonEmptyStringAndNotWhitespace(\n (input as GetPkgReleasesConfig).packageName,\n )\n );\n}\n\nexport function applyVersionCompatibility(\n releaseResult: ReleaseResult,\n versionCompatibility: string | undefined,\n currentCompatibility: string | undefined,\n): ReleaseResult {\n if (!versionCompatibility) {\n return releaseResult;\n }\n\n const versionCompatibilityRegEx = regEx(versionCompatibility);\n releaseResult.releases = filterMap(releaseResult.releases, (release) => {\n const regexResult = versionCompatibilityRegEx.exec(release.version);\n if (!regexResult?.groups?.version) {\n logger.trace(\n { releaseVersion: release.version, versionCompatibility },\n 'versionCompatibility: Does not match regex',\n );\n return null;\n }\n if (regexResult?.groups?.compatibility !== currentCompatibility) {\n logger.trace(\n { releaseVersion: release.version, versionCompatibility },\n 'versionCompatibility: Does not match compatibility',\n );\n return null;\n }\n logger.trace(\n {\n releaseVersion: release.version,\n versionCompatibility,\n version: regexResult.groups.version,\n compatibility: regexResult.groups.compatibility,\n },\n 'versionCompatibility: matches',\n );\n release.versionOrig ??= release.version;\n release.version = regexResult.groups.version;\n return release;\n });\n\n return releaseResult;\n}\n\nexport function applyExtractVersion(\n releaseResult: ReleaseResult,\n extractVersion: string | undefined,\n): ReleaseResult {\n if (!extractVersion) {\n return releaseResult;\n }\n\n const extractVersionRegEx = regEx(extractVersion);\n releaseResult.releases = filterMap(releaseResult.releases, (release) => {\n const version = extractVersionRegEx.exec(release.version)?.groups?.version;\n if (!version) {\n return null;\n }\n\n release.versionOrig = release.version;\n release.version = version;\n return release;\n });\n\n return releaseResult;\n}\n\nexport function filterValidVersions<\n Config extends Pick<GetPkgReleasesConfig, 'versioning' | 'datasource'>,\n>(releaseResult: ReleaseResult, config: Config): ReleaseResult {\n const versioningName =\n config.versioning ?? getDefaultVersioning(config.datasource);\n const versioning = allVersioning.get(versioningName);\n\n releaseResult.releases = filterMap(releaseResult.releases, (release) =>\n versioning.isVersion(release.version) ? release : null,\n );\n\n return releaseResult;\n}\n\nexport function sortAndRemoveDuplicates<\n Config extends Pick<GetPkgReleasesConfig, 'versioning' | 'datasource'>,\n>(releaseResult: ReleaseResult, config: Config): ReleaseResult {\n const versioningName =\n config.versioning ?? getDefaultVersioning(config.datasource);\n const versioning = allVersioning.get(versioningName);\n\n releaseResult.releases = releaseResult.releases.sort((a, b) =>\n versioning.sortVersions(a.version, b.version),\n );\n\n // Once releases are sorted, deduplication is straightforward and efficient\n let previousVersion: string | null = null;\n releaseResult.releases = filterMap(releaseResult.releases, (release) => {\n if (previousVersion === release.version) {\n return null;\n }\n previousVersion = release.version;\n return release;\n });\n\n return releaseResult;\n}\n\nexport function applyConstraintsFiltering<\n Config extends Pick<\n GetPkgReleasesConfig,\n | 'constraintsFiltering'\n | 'versioning'\n | 'datasource'\n | 'constraints'\n | 'packageName'\n >,\n>(releaseResult: ReleaseResult, config: Config): ReleaseResult {\n if (config?.constraintsFiltering !== 'strict') {\n for (const release of releaseResult.releases) {\n delete release.constraints;\n }\n\n return releaseResult;\n }\n\n const versioningName =\n config.versioning ?? getDefaultVersioning(config.datasource);\n const versioning = allVersioning.get(versioningName);\n\n const configConstraints = config.constraints;\n const filteredReleases: string[] = [];\n const startingLength = releaseResult.releases.length;\n releaseResult.releases = filterMap(releaseResult.releases, (release) => {\n const releaseConstraints = release.constraints;\n delete release.constraints;\n\n if (!configConstraints || !releaseConstraints) {\n return release;\n }\n\n for (const [name, configConstraint] of Object.entries(\n configConstraints,\n ) as [ConstraintName, string][]) {\n if (!versioning.isValid(configConstraint)) {\n logger.once.warn(\n {\n packageName: config.packageName,\n constraint: configConstraint,\n versioning: versioningName,\n },\n 'Invalid constraint used with strict constraintsFiltering',\n );\n continue;\n }\n\n const constraint = releaseConstraints[name];\n if (!isNonEmptyArray(constraint)) {\n // A release with no constraints is OK\n continue;\n }\n\n let satisfiesConstraints = false;\n for (const releaseConstraint of constraint) {\n if (!releaseConstraint) {\n satisfiesConstraints = true;\n logger.once.debug(\n {\n packageName: config.packageName,\n versioning: versioningName,\n constraint: releaseConstraint,\n },\n 'Undefined release constraint',\n );\n break;\n }\n\n if (!versioning.isValid(releaseConstraint)) {\n logger.once.debug(\n {\n packageName: config.packageName,\n versioning: versioningName,\n constraint: releaseConstraint,\n },\n 'Invalid release constraint',\n );\n break;\n }\n\n if (configConstraint === releaseConstraint) {\n satisfiesConstraints = true;\n break;\n }\n\n if (versioning.subset?.(configConstraint, releaseConstraint)) {\n satisfiesConstraints = true;\n break;\n }\n\n if (versioning.matches(configConstraint, releaseConstraint)) {\n satisfiesConstraints = true;\n break;\n }\n }\n\n if (!satisfiesConstraints) {\n filteredReleases.push(release.version);\n return null;\n }\n }\n\n return release;\n });\n\n if (filteredReleases.length) {\n const count = filteredReleases.length;\n const packageName = config.packageName;\n const releases = filteredReleases.join(', ');\n logger.debug(\n `Filtered out ${count} non-matching releases out of ${startingLength} total for ${packageName} due to constraintsFiltering=strict: ${releases}`,\n );\n }\n\n return releaseResult;\n}\n"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ConstraintName } from "../../util/exec/types.js";
|
|
1
2
|
import { Timestamp } from "../../util/timestamp.js";
|
|
2
3
|
import { ModuleApi } from "../../types/base.js";
|
|
3
4
|
import { ConstraintsFilter, CustomDatasourceConfig } from "../../config/types.js";
|
|
@@ -28,7 +29,7 @@ interface GetReleasesConfig {
|
|
|
28
29
|
packageName: string;
|
|
29
30
|
registryUrl?: string;
|
|
30
31
|
currentValue?: string;
|
|
31
|
-
constraints?: Record<
|
|
32
|
+
constraints?: Partial<Record<ConstraintName, string>>;
|
|
32
33
|
constraintsFiltering?: ConstraintsFilter;
|
|
33
34
|
}
|
|
34
35
|
interface GetPkgReleasesConfig {
|
|
@@ -44,7 +45,7 @@ interface GetPkgReleasesConfig {
|
|
|
44
45
|
extractVersion?: string;
|
|
45
46
|
versionCompatibility?: string;
|
|
46
47
|
currentCompatibility?: string;
|
|
47
|
-
constraints?: Record<
|
|
48
|
+
constraints?: Partial<Record<ConstraintName, string>>;
|
|
48
49
|
replacementName?: string;
|
|
49
50
|
replacementVersion?: string;
|
|
50
51
|
constraintsFiltering?: ConstraintsFilter;
|
|
@@ -63,7 +64,7 @@ interface Release {
|
|
|
63
64
|
/** The original value to which `extractVersion` was applied */
|
|
64
65
|
versionOrig?: string;
|
|
65
66
|
newDigest?: string | null;
|
|
66
|
-
constraints?: Record<
|
|
67
|
+
constraints?: Partial<Record<ConstraintName, string[]>>;
|
|
67
68
|
dependencies?: Record<string, string>;
|
|
68
69
|
devDependencies?: Record<string, string>;
|
|
69
70
|
registryUrl?: string;
|
|
@@ -69,7 +69,7 @@ hashMap.set("maven", "fd6bfc21be851ed076eabea1a91a89b25eb82129734c7cb0c2e684385c
|
|
|
69
69
|
hashMap.set("maven-wrapper", "9a868d1328f911eb72f9e65a64d46c86ae347aab0153d1cf4e9a62ad9e0d6cb0");
|
|
70
70
|
hashMap.set("meteor", "4a93a326b27bedfe52118e27e06f39fecd7c55bd4cd7fccec4cb120cac14cec4");
|
|
71
71
|
hashMap.set("mint", "b816a49c8525716454d0a2bc9127916d5b27e5cca7b2aa2030312f218942af3e");
|
|
72
|
-
hashMap.set("mise", "
|
|
72
|
+
hashMap.set("mise", "38177382f3785cfe7cce92994bfb429b68f5165e6eef1bdcd2c7a3d8d5414da2");
|
|
73
73
|
hashMap.set("mix", "1116e1adf1c18c866f0a9e6fa065c4fb9da055d8d150e625344899bb94095481");
|
|
74
74
|
hashMap.set("nix", "f3ffec2f14e7261de8068895b91392e992dcef208fbaf52110d6862e4712c031");
|
|
75
75
|
hashMap.set("nodenv", "ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fingerprint.generated.js","names":[],"sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','1fbc76f78daa14a8c9ab1142e9d1e05c746c0419a9f1455e4279f476590d0c04');\nhashMap.set('ansible-galaxy','8226d47128f2018825d4d6f84794e3183eb79c706045fa7e88491edd5e64106f');\nhashMap.set('ant','7d6414a195345c60a25a9d92c4b17c0b6df90be086fc5559150e2e5496976890');\nhashMap.set('argocd','5d35b1992e53130bf83b0e59a0f90ccd3a78919974c69044f306dc5d162f48ce');\nhashMap.set('asdf','1f6fcf620e9c6cd35991380cb6eafb94ec60cd77cbd13335ebe3a1d9727416c9');\nhashMap.set('azure-pipelines','4f635b0ecd388ee266d992e8281fd40e3db2f5867d86fc1cbce72dc33a66e796');\nhashMap.set('batect','fad98996bea8626525ab925f83a6ae0ce9262c53770e7aa7cb448a1e0f1ddf21');\nhashMap.set('batect-wrapper','d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939');\nhashMap.set('bazel','c6e0ad88ea468664c3a33263baf7452d83d2d37ff09ba920e18f64ee81fd0acb');\nhashMap.set('bazel-module','ff071fcf8b53036956627d2a430ccdf256e30bee4d7e80c329379879d836a931');\nhashMap.set('bazelisk','b6ec532dfa7c8f82ad4084df864ac6276e87c27285369323902afc146d3537ac');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','09eb044219d74331fea135f50121b7d4d146333eb97e4ccbfa9ddf0eb4012963');\nhashMap.set('bitrise','478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42');\nhashMap.set('buildkite','a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','1322232bf1d0c4fa796e31a00488453bdcd00d4958431d9e424c1635e60a99bd');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','6d7e9d2018ac03e15f19e8b40ef70dd87d509d5affca24bc464d085899880a25');\nhashMap.set('cake','288c3c36a50371b26957fa71992cc335228d53563c75597b36919ac7286e96eb');\nhashMap.set('cargo','308d7ab4c6d24027b050bf659dfab0e510d9a22f8134695a7c68214908ee4634');\nhashMap.set('cdnurl','d3edf6cdc38e92eb43ff5a2b4e8df6a6a13154cf83244725c39e28d7e6ea9177');\nhashMap.set('circleci','135937d4720718304adb0ba998516f8ce38c3220ccd18b00b8c70c62b45df4da');\nhashMap.set('cloudbuild','8c0c739f7e4082bbfe8e3fdffebaf43e26f70a1314d95b306e9b93e4f4297886');\nhashMap.set('cocoapods','b6ac3b4a6b8a5b32daed37bf695fe177cdb1b4a94ae7f7fb2f4c4c096c0a004c');\nhashMap.set('composer','cdb6895574020cec402e0b878e4078b62f1acfd0392a861cbb523036634f6383');\nhashMap.set('conan','aecc3917d77146db4e57dd12944be1beff860e90b7ebdd2d8fbc449fc1a06574');\nhashMap.set('copier','faa3b79991256a6fc0957fdcd530a1bc8aee65913d5aff2b1b4d226dcd44d008');\nhashMap.set('cpanfile','6a1d67d9c8751123deaf0c7f3ac38a07024e960c140f8228fcbcb93954fdca01');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deps-edn','c87dd5e88587147ad1a78f047b814f3c4aa60d6de30d0c49d849391eeaf1b64c');\nhashMap.set('devbox','bcf5334e8a21190baaa25436acf2f17fbf095504262a4e9ee7c62ffb644eb716');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','5441af5b5abf8d347e46002d47f02f85743401bda28232f49fb7b3bbb772a4fb');\nhashMap.set('dockerfile','322b95f7e55dd78d7fe71306a6f649479eca61c60d75bb10b23604a230dbdd08');\nhashMap.set('droneci','237c8de87b9bf653fb943b56e84e99c45f6d86ae27d86e599b3f3f99c35ba8ee');\nhashMap.set('fleet','d73d5d35f10df0599a561d9c8d25f3935350407d0e3bd3a1d1545295f278912e');\nhashMap.set('flux','427e0c1a5b1d8337503a9a568a76532fbde0bab8b355fa8f47312de50eadf2f6');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','fbbf1c7b7b6f4166fa3beee96a3283d007b388e9ecb6a14f76123c8ab8c78071');\nhashMap.set('github-actions','d8f83c65da1e80b639ad44a0d8641e7e97b1d93a1b6c873603333d337ad02011');\nhashMap.set('gitlabci','0dec44dd398bfc5b3c19d0929bea2fef7f386c94acfd1b1d7bc2a31d81d96fd6');\nhashMap.set('gitlabci-include','354cfc4ea327c6d5cd5bee1f17763832efc7f5402e9fd22c579239fccb9c6dab');\nhashMap.set('glasskube','253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70');\nhashMap.set('gleam','b717a48c525ad6b1d434c6a9db828ddebbb85e94519e89ddc4040878e3600e84');\nhashMap.set('gomod','82e877b22c0dd0217368760bb5d38430657fff63d07c289793a866f0845d2976');\nhashMap.set('gradle','f430d8d768b56889ad1e5a69965841e85cc700e364d15db7bce680e8a5d6f821');\nhashMap.set('gradle-wrapper','90d2ecb9d0b113f8e946d4ea221c040f17f91af846e1ff4f9fc1514ad4324b74');\nhashMap.set('haskell-cabal','d796ec6859e63ab4f1b7030c4016071202c3a44c7c11d4a9131d7e2ba19b396d');\nhashMap.set('helm-requirements','4d90e5e18a380876ad48e21e1ad88ea62e25d973a1ddaa3763447fc0a9f9915b');\nhashMap.set('helm-values','b5c52c6a27d805557418c585c5d3030c95ee641d53057021f3fe060f81b6e1af');\nhashMap.set('helmfile','e5783484b81247279563da3c835afe4002edfc412e13fb91877818ca44ae65f2');\nhashMap.set('helmsman','ef9680c612f702c7f07aea9b6e5d811e91214dcfa5755c9f3803e9528090935e');\nhashMap.set('helmv3','7724bf6cc3ff4afec1809899f619a332f4350049b9578b5c4634514b4448cf2b');\nhashMap.set('hermit','672c328e4baea3a1ccd2cde2364db01c8033a8c077bf63a5b914fc20ee1de838');\nhashMap.set('homeassistant-manifest','05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f');\nhashMap.set('homebrew','56ef90301143874355fd2ed25dff7c646875f701f97422d02e01d45608a88f31');\nhashMap.set('html','67c5f3c5c58e96f5dd257ba5987d900cf7fef81d667c3640e96c847b37de35a8');\nhashMap.set('jenkins','268ebfc8a1caf3edeb2192c2b1b2fa4bf18a78a3e731ba20a6c104940a5539f3');\nhashMap.set('jsonnet-bundler','4b73c32ddc3fe45d9777106d45b116777a2960e6e631256a6553060e602f893c');\nhashMap.set('kotlin-script','99ef296792a0ca575ed31d3defb514b05a58083dc01c52ea0890c69d867ba1dd');\nhashMap.set('kubernetes','321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de');\nhashMap.set('kustomize','1e44d6ef8622252dac6d9649fb04badd12d4827eb2a55f74792aa9de2b915775');\nhashMap.set('leiningen','133fca2c3423f53f2ccc22518153ddbcafbf0f4812376c77e952eb3d24d81f85');\nhashMap.set('maven','fd6bfc21be851ed076eabea1a91a89b25eb82129734c7cb0c2e684385cf1ea69');\nhashMap.set('maven-wrapper','9a868d1328f911eb72f9e65a64d46c86ae347aab0153d1cf4e9a62ad9e0d6cb0');\nhashMap.set('meteor','4a93a326b27bedfe52118e27e06f39fecd7c55bd4cd7fccec4cb120cac14cec4');\nhashMap.set('mint','b816a49c8525716454d0a2bc9127916d5b27e5cca7b2aa2030312f218942af3e');\nhashMap.set('mise','6192273014bff02a3e0c68aa8a52c3563398adb4c7d3f7141c25f8736f488748');\nhashMap.set('mix','1116e1adf1c18c866f0a9e6fa065c4fb9da055d8d150e625344899bb94095481');\nhashMap.set('nix','f3ffec2f14e7261de8068895b91392e992dcef208fbaf52110d6862e4712c031');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','eaf9fe4981de8f7504227f3be88445f60f87ba74f9b9c7e54284bc2bb41320b3');\nhashMap.set('nuget','42175b1906e8e91ae0731a13d92d0df065108063665f8a36150aeae73aafdc78');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','32233a1a8a2725699d7448ba438e3d0b78141f7799cd2b588de278d41e26ed10');\nhashMap.set('pep621','f503497a4adef31b29572176e9a69d52fa9b0bfe3477b6e228c906aeb4861de5');\nhashMap.set('pep723','b96683163de63ed93207ec0538066705b1e58a1cd5b8bd11c63fc28b26bddba1');\nhashMap.set('pip-compile','89152ad6c89f278395f32d289dc3890823c233366547d228e97dd1319aa144b5');\nhashMap.set('pip_requirements','d5c474c524bc7adc1aae065da0531bd22d9f7f52523b018f2461f6c29e12fdf3');\nhashMap.set('pip_setup','0175fe550c19d9bd31c978bd83fdc088cb40fcacd5d6751f640164274ae64e61');\nhashMap.set('pipenv','50f5a54ed714fd3d738c1aa9a353cf3aab767899acdcb763088d4bd04f3a737b');\nhashMap.set('pixi','b17af6eaa33e7babcc52cfc9a617c7801c0efb1125bbd6d0d4e9f6fe33afd353');\nhashMap.set('poetry','7f227b8b912b405df7735e9dc7c178f03021844f0c027d4b321c023c330c390a');\nhashMap.set('pre-commit','a6a6e847fdb0f56650e66ef7d69e68de752b390913f79ac31d1a7ec5955d03da');\nhashMap.set('pub','0fbad9f77579fcec3a623c6feab56e71934c67a79bb8f4f0f847452051d2a0ba');\nhashMap.set('puppet','ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45');\nhashMap.set('pyenv','9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182');\nhashMap.set('quadlet','e355e13e104351a8b3516a8e272fc5f7e625c9f39b0c492ba27283a36227c2d4');\nhashMap.set('renovate-config-presets','a394fe55f8b6ba356f29f76efd9f0d34b56baceb111e6d92f95b29b5ca50ac67');\nhashMap.set('ruby-version','2db2140d9eee8c555e729a4de0396fa2d78846d3149890ee12fa515bd654be97');\nhashMap.set('runtime-version','b582b168c0cc595e39010feb10f4b97a82683eb269e9598216fbb11cc186e160');\nhashMap.set('sbt','74125bd9c76a5724092258cd1dee1ea99fc0d735b463a2b64fedc5d950efde2a');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','7dea08c5708625e753bd56918bc214df7fb4d8543a26e936926a21ab43b5f785');\nhashMap.set('sveltos','167a5cc79098803be3b815a28cc40ef3361c455751e1d6a7a99ba91bfce26709');\nhashMap.set('swift','79ec9a6a2a8bb4853bb78bbb3a2a6e64e3b32b0ddeb312385abb3a14366ad505');\nhashMap.set('tekton','4e35c75bba4abc9c3cf49c55da6c19db4f4e9181d1fd9583288ab55ef7c944fd');\nhashMap.set('terraform','5bd62ce12c23896b8ecb2385a60a3cb9eb72badf10f9984bfed38f50f9262266');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','b8474c65383a702602eee432cc1434f9a49a1ef886d1213de92d7a84fb98b9cd');\nhashMap.set('terragrunt-version','eea6087b33717d22ede2fc68c2f64df8390b75abe82110ed831a180648feb51d');\nhashMap.set('tflint-plugin','4a975f0cc1aa22cd258aa835de3dc98d7a5c0d1cee0a1092324338968e08a827');\nhashMap.set('travis','bb482a0195cd009ec3896a6227bb95617f5c84bedb518c7d971e50c62235d9ca');\nhashMap.set('typst','d080a79fbd961c6e21fcc505d544b7e0ff2126142acb1dcabdf6abbcd9339248');\nhashMap.set('unity3d','f13e25e115e3443f4e16cf31578acffa78fb1a5e23339680a92d8d6de6052920');\nhashMap.set('velaci','fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac09af7de');\nhashMap.set('vendir','4627230d3b7698c41aac192d57b65b091c860c8f858c89d6af4b06ed6a32fae6');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('jsonata','3b5f465b586993f92c8490e70885e7eecce9b6556bcc376dd9c11db8ee9e6960');\nhashMap.set('regex','7b643b49e498465cf91b25b8b840bb1fec8c8a3a59bfa8f97a39c976675325a0');"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fingerprint.generated.js","names":[],"sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','1fbc76f78daa14a8c9ab1142e9d1e05c746c0419a9f1455e4279f476590d0c04');\nhashMap.set('ansible-galaxy','8226d47128f2018825d4d6f84794e3183eb79c706045fa7e88491edd5e64106f');\nhashMap.set('ant','7d6414a195345c60a25a9d92c4b17c0b6df90be086fc5559150e2e5496976890');\nhashMap.set('argocd','5d35b1992e53130bf83b0e59a0f90ccd3a78919974c69044f306dc5d162f48ce');\nhashMap.set('asdf','1f6fcf620e9c6cd35991380cb6eafb94ec60cd77cbd13335ebe3a1d9727416c9');\nhashMap.set('azure-pipelines','4f635b0ecd388ee266d992e8281fd40e3db2f5867d86fc1cbce72dc33a66e796');\nhashMap.set('batect','fad98996bea8626525ab925f83a6ae0ce9262c53770e7aa7cb448a1e0f1ddf21');\nhashMap.set('batect-wrapper','d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939');\nhashMap.set('bazel','c6e0ad88ea468664c3a33263baf7452d83d2d37ff09ba920e18f64ee81fd0acb');\nhashMap.set('bazel-module','ff071fcf8b53036956627d2a430ccdf256e30bee4d7e80c329379879d836a931');\nhashMap.set('bazelisk','b6ec532dfa7c8f82ad4084df864ac6276e87c27285369323902afc146d3537ac');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','09eb044219d74331fea135f50121b7d4d146333eb97e4ccbfa9ddf0eb4012963');\nhashMap.set('bitrise','478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42');\nhashMap.set('buildkite','a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','1322232bf1d0c4fa796e31a00488453bdcd00d4958431d9e424c1635e60a99bd');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','6d7e9d2018ac03e15f19e8b40ef70dd87d509d5affca24bc464d085899880a25');\nhashMap.set('cake','288c3c36a50371b26957fa71992cc335228d53563c75597b36919ac7286e96eb');\nhashMap.set('cargo','308d7ab4c6d24027b050bf659dfab0e510d9a22f8134695a7c68214908ee4634');\nhashMap.set('cdnurl','d3edf6cdc38e92eb43ff5a2b4e8df6a6a13154cf83244725c39e28d7e6ea9177');\nhashMap.set('circleci','135937d4720718304adb0ba998516f8ce38c3220ccd18b00b8c70c62b45df4da');\nhashMap.set('cloudbuild','8c0c739f7e4082bbfe8e3fdffebaf43e26f70a1314d95b306e9b93e4f4297886');\nhashMap.set('cocoapods','b6ac3b4a6b8a5b32daed37bf695fe177cdb1b4a94ae7f7fb2f4c4c096c0a004c');\nhashMap.set('composer','cdb6895574020cec402e0b878e4078b62f1acfd0392a861cbb523036634f6383');\nhashMap.set('conan','aecc3917d77146db4e57dd12944be1beff860e90b7ebdd2d8fbc449fc1a06574');\nhashMap.set('copier','faa3b79991256a6fc0957fdcd530a1bc8aee65913d5aff2b1b4d226dcd44d008');\nhashMap.set('cpanfile','6a1d67d9c8751123deaf0c7f3ac38a07024e960c140f8228fcbcb93954fdca01');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deps-edn','c87dd5e88587147ad1a78f047b814f3c4aa60d6de30d0c49d849391eeaf1b64c');\nhashMap.set('devbox','bcf5334e8a21190baaa25436acf2f17fbf095504262a4e9ee7c62ffb644eb716');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','5441af5b5abf8d347e46002d47f02f85743401bda28232f49fb7b3bbb772a4fb');\nhashMap.set('dockerfile','322b95f7e55dd78d7fe71306a6f649479eca61c60d75bb10b23604a230dbdd08');\nhashMap.set('droneci','237c8de87b9bf653fb943b56e84e99c45f6d86ae27d86e599b3f3f99c35ba8ee');\nhashMap.set('fleet','d73d5d35f10df0599a561d9c8d25f3935350407d0e3bd3a1d1545295f278912e');\nhashMap.set('flux','427e0c1a5b1d8337503a9a568a76532fbde0bab8b355fa8f47312de50eadf2f6');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','fbbf1c7b7b6f4166fa3beee96a3283d007b388e9ecb6a14f76123c8ab8c78071');\nhashMap.set('github-actions','d8f83c65da1e80b639ad44a0d8641e7e97b1d93a1b6c873603333d337ad02011');\nhashMap.set('gitlabci','0dec44dd398bfc5b3c19d0929bea2fef7f386c94acfd1b1d7bc2a31d81d96fd6');\nhashMap.set('gitlabci-include','354cfc4ea327c6d5cd5bee1f17763832efc7f5402e9fd22c579239fccb9c6dab');\nhashMap.set('glasskube','253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70');\nhashMap.set('gleam','b717a48c525ad6b1d434c6a9db828ddebbb85e94519e89ddc4040878e3600e84');\nhashMap.set('gomod','82e877b22c0dd0217368760bb5d38430657fff63d07c289793a866f0845d2976');\nhashMap.set('gradle','f430d8d768b56889ad1e5a69965841e85cc700e364d15db7bce680e8a5d6f821');\nhashMap.set('gradle-wrapper','90d2ecb9d0b113f8e946d4ea221c040f17f91af846e1ff4f9fc1514ad4324b74');\nhashMap.set('haskell-cabal','d796ec6859e63ab4f1b7030c4016071202c3a44c7c11d4a9131d7e2ba19b396d');\nhashMap.set('helm-requirements','4d90e5e18a380876ad48e21e1ad88ea62e25d973a1ddaa3763447fc0a9f9915b');\nhashMap.set('helm-values','b5c52c6a27d805557418c585c5d3030c95ee641d53057021f3fe060f81b6e1af');\nhashMap.set('helmfile','e5783484b81247279563da3c835afe4002edfc412e13fb91877818ca44ae65f2');\nhashMap.set('helmsman','ef9680c612f702c7f07aea9b6e5d811e91214dcfa5755c9f3803e9528090935e');\nhashMap.set('helmv3','7724bf6cc3ff4afec1809899f619a332f4350049b9578b5c4634514b4448cf2b');\nhashMap.set('hermit','672c328e4baea3a1ccd2cde2364db01c8033a8c077bf63a5b914fc20ee1de838');\nhashMap.set('homeassistant-manifest','05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f');\nhashMap.set('homebrew','56ef90301143874355fd2ed25dff7c646875f701f97422d02e01d45608a88f31');\nhashMap.set('html','67c5f3c5c58e96f5dd257ba5987d900cf7fef81d667c3640e96c847b37de35a8');\nhashMap.set('jenkins','268ebfc8a1caf3edeb2192c2b1b2fa4bf18a78a3e731ba20a6c104940a5539f3');\nhashMap.set('jsonnet-bundler','4b73c32ddc3fe45d9777106d45b116777a2960e6e631256a6553060e602f893c');\nhashMap.set('kotlin-script','99ef296792a0ca575ed31d3defb514b05a58083dc01c52ea0890c69d867ba1dd');\nhashMap.set('kubernetes','321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de');\nhashMap.set('kustomize','1e44d6ef8622252dac6d9649fb04badd12d4827eb2a55f74792aa9de2b915775');\nhashMap.set('leiningen','133fca2c3423f53f2ccc22518153ddbcafbf0f4812376c77e952eb3d24d81f85');\nhashMap.set('maven','fd6bfc21be851ed076eabea1a91a89b25eb82129734c7cb0c2e684385cf1ea69');\nhashMap.set('maven-wrapper','9a868d1328f911eb72f9e65a64d46c86ae347aab0153d1cf4e9a62ad9e0d6cb0');\nhashMap.set('meteor','4a93a326b27bedfe52118e27e06f39fecd7c55bd4cd7fccec4cb120cac14cec4');\nhashMap.set('mint','b816a49c8525716454d0a2bc9127916d5b27e5cca7b2aa2030312f218942af3e');\nhashMap.set('mise','38177382f3785cfe7cce92994bfb429b68f5165e6eef1bdcd2c7a3d8d5414da2');\nhashMap.set('mix','1116e1adf1c18c866f0a9e6fa065c4fb9da055d8d150e625344899bb94095481');\nhashMap.set('nix','f3ffec2f14e7261de8068895b91392e992dcef208fbaf52110d6862e4712c031');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','eaf9fe4981de8f7504227f3be88445f60f87ba74f9b9c7e54284bc2bb41320b3');\nhashMap.set('nuget','42175b1906e8e91ae0731a13d92d0df065108063665f8a36150aeae73aafdc78');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','32233a1a8a2725699d7448ba438e3d0b78141f7799cd2b588de278d41e26ed10');\nhashMap.set('pep621','f503497a4adef31b29572176e9a69d52fa9b0bfe3477b6e228c906aeb4861de5');\nhashMap.set('pep723','b96683163de63ed93207ec0538066705b1e58a1cd5b8bd11c63fc28b26bddba1');\nhashMap.set('pip-compile','89152ad6c89f278395f32d289dc3890823c233366547d228e97dd1319aa144b5');\nhashMap.set('pip_requirements','d5c474c524bc7adc1aae065da0531bd22d9f7f52523b018f2461f6c29e12fdf3');\nhashMap.set('pip_setup','0175fe550c19d9bd31c978bd83fdc088cb40fcacd5d6751f640164274ae64e61');\nhashMap.set('pipenv','50f5a54ed714fd3d738c1aa9a353cf3aab767899acdcb763088d4bd04f3a737b');\nhashMap.set('pixi','b17af6eaa33e7babcc52cfc9a617c7801c0efb1125bbd6d0d4e9f6fe33afd353');\nhashMap.set('poetry','7f227b8b912b405df7735e9dc7c178f03021844f0c027d4b321c023c330c390a');\nhashMap.set('pre-commit','a6a6e847fdb0f56650e66ef7d69e68de752b390913f79ac31d1a7ec5955d03da');\nhashMap.set('pub','0fbad9f77579fcec3a623c6feab56e71934c67a79bb8f4f0f847452051d2a0ba');\nhashMap.set('puppet','ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45');\nhashMap.set('pyenv','9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182');\nhashMap.set('quadlet','e355e13e104351a8b3516a8e272fc5f7e625c9f39b0c492ba27283a36227c2d4');\nhashMap.set('renovate-config-presets','a394fe55f8b6ba356f29f76efd9f0d34b56baceb111e6d92f95b29b5ca50ac67');\nhashMap.set('ruby-version','2db2140d9eee8c555e729a4de0396fa2d78846d3149890ee12fa515bd654be97');\nhashMap.set('runtime-version','b582b168c0cc595e39010feb10f4b97a82683eb269e9598216fbb11cc186e160');\nhashMap.set('sbt','74125bd9c76a5724092258cd1dee1ea99fc0d735b463a2b64fedc5d950efde2a');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','7dea08c5708625e753bd56918bc214df7fb4d8543a26e936926a21ab43b5f785');\nhashMap.set('sveltos','167a5cc79098803be3b815a28cc40ef3361c455751e1d6a7a99ba91bfce26709');\nhashMap.set('swift','79ec9a6a2a8bb4853bb78bbb3a2a6e64e3b32b0ddeb312385abb3a14366ad505');\nhashMap.set('tekton','4e35c75bba4abc9c3cf49c55da6c19db4f4e9181d1fd9583288ab55ef7c944fd');\nhashMap.set('terraform','5bd62ce12c23896b8ecb2385a60a3cb9eb72badf10f9984bfed38f50f9262266');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','b8474c65383a702602eee432cc1434f9a49a1ef886d1213de92d7a84fb98b9cd');\nhashMap.set('terragrunt-version','eea6087b33717d22ede2fc68c2f64df8390b75abe82110ed831a180648feb51d');\nhashMap.set('tflint-plugin','4a975f0cc1aa22cd258aa835de3dc98d7a5c0d1cee0a1092324338968e08a827');\nhashMap.set('travis','bb482a0195cd009ec3896a6227bb95617f5c84bedb518c7d971e50c62235d9ca');\nhashMap.set('typst','d080a79fbd961c6e21fcc505d544b7e0ff2126142acb1dcabdf6abbcd9339248');\nhashMap.set('unity3d','f13e25e115e3443f4e16cf31578acffa78fb1a5e23339680a92d8d6de6052920');\nhashMap.set('velaci','fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac09af7de');\nhashMap.set('vendir','4627230d3b7698c41aac192d57b65b091c860c8f858c89d6af4b06ed6a32fae6');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('jsonata','3b5f465b586993f92c8490e70885e7eecce9b6556bcc376dd9c11db8ee9e6960');\nhashMap.set('regex','7b643b49e498465cf91b25b8b840bb1fec8c8a3a59bfa8f97a39c976675325a0');"],"mappings":"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"}
|
|
@@ -323,6 +323,14 @@ const miseRegistryTooling = {
|
|
|
323
323
|
extractVersion: "^v(?<version>\\S+)"
|
|
324
324
|
}
|
|
325
325
|
},
|
|
326
|
+
openfga: {
|
|
327
|
+
misePluginUrl: "https://mise.jdx.dev/registry.html#tools",
|
|
328
|
+
config: {
|
|
329
|
+
packageName: "openfga/openfga",
|
|
330
|
+
datasource: GithubReleasesDatasource.id,
|
|
331
|
+
extractVersion: "^v(?<version>\\S+)"
|
|
332
|
+
}
|
|
333
|
+
},
|
|
326
334
|
packer: {
|
|
327
335
|
misePluginUrl: "https://mise.jdx.dev/registry.html#tools",
|
|
328
336
|
config: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgradeable-tooling.js","names":["semverPartialVersioning.id","regexVersioning.id","semverVersioning.id"],"sources":["../../../../lib/modules/manager/mise/upgradeable-tooling.ts"],"sourcesContent":["import { regEx } from '../../../util/regex.ts';\nimport { GithubReleasesDatasource } from '../../datasource/github-releases/index.ts';\nimport { GithubTagsDatasource } from '../../datasource/github-tags/index.ts';\nimport { HexpmBobDatasource } from '../../datasource/hexpm-bob/index.ts';\nimport { JavaVersionDatasource } from '../../datasource/java-version/index.ts';\nimport { NodeVersionDatasource } from '../../datasource/node-version/index.ts';\nimport { NpmDatasource } from '../../datasource/npm/index.ts';\nimport { RubyVersionDatasource } from '../../datasource/ruby-version/index.ts';\nimport * as regexVersioning from '../../versioning/regex/index.ts';\nimport * as semverVersioning from '../../versioning/semver/index.ts';\nimport * as semverPartialVersioning from '../../versioning/semver-partial/index.ts';\nimport type { ToolingConfig } from '../asdf/upgradeable-tooling.ts';\nimport { upgradeableTooling } from '../asdf/upgradeable-tooling.ts';\n\nexport interface ToolingDefinition {\n config: ToolingConfig;\n misePluginUrl?: string;\n}\n\nexport const asdfTooling = upgradeableTooling;\n\nfunction shortJavaVersioning(version: string): { versioning?: string } {\n if (regEx(/^\\d+(\\.\\d+)?$/).test(version)) {\n return { versioning: semverPartialVersioning.id };\n }\n return {};\n}\n\nconst miseCoreTooling: Record<string, ToolingDefinition> = {\n bun: {\n misePluginUrl: 'https://mise.jdx.dev/lang/bun.html',\n config: {\n packageName: 'oven-sh/bun',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^bun-v(?<version>\\\\S+)',\n },\n },\n deno: {\n misePluginUrl: 'https://mise.jdx.dev/lang/deno.html',\n config: {\n packageName: 'denoland/deno',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n elixir: {\n misePluginUrl: 'https://mise.jdx.dev/lang/elixir.html',\n config: {\n datasource: HexpmBobDatasource.id,\n },\n },\n erlang: {\n misePluginUrl: 'https://mise.jdx.dev/lang/erlang.html',\n config: {\n packageName: 'erlang/otp',\n datasource: GithubTagsDatasource.id,\n extractVersion: '^OTP-(?<version>\\\\S+)',\n versioning: `${regexVersioning.id}:^(?<major>\\\\d+?)\\\\.(?<minor>\\\\d+?)(\\\\.(?<patch>\\\\d+))?$`,\n },\n },\n go: {\n misePluginUrl: 'https://mise.jdx.dev/lang/go.html',\n config: {\n packageName: 'golang/go',\n datasource: GithubTagsDatasource.id,\n extractVersion: '^go(?<version>\\\\S+)',\n },\n },\n java: {\n misePluginUrl: 'https://mise.jdx.dev/lang/java.html',\n config: (version) => {\n // no prefix is shorthand for openjdk\n const versionMatch = regEx(/^(\\d\\S+)/).exec(version)?.[1];\n if (versionMatch) {\n return {\n datasource: JavaVersionDatasource.id,\n packageName: 'java-jdk',\n currentValue: versionMatch,\n ...shortJavaVersioning(versionMatch),\n };\n }\n const openJdkMatches = regEx(/^openjdk-(?<version>\\d\\S+)/).exec(\n version,\n )?.groups;\n if (openJdkMatches) {\n return {\n datasource: JavaVersionDatasource.id,\n packageName: 'java-jdk',\n currentValue: openJdkMatches.version,\n ...shortJavaVersioning(openJdkMatches.version),\n };\n }\n const adoptOpenJdkMatches = regEx(/^adoptopenjdk-(?<version>\\d\\S+)/).exec(\n version,\n )?.groups;\n if (adoptOpenJdkMatches) {\n return {\n datasource: JavaVersionDatasource.id,\n packageName: 'java-jdk',\n currentValue: adoptOpenJdkMatches.version,\n ...shortJavaVersioning(adoptOpenJdkMatches.version),\n };\n }\n const temurinJdkMatches = regEx(/^temurin-(?<version>\\d\\S+)/).exec(\n version,\n )?.groups;\n if (temurinJdkMatches) {\n return {\n datasource: JavaVersionDatasource.id,\n packageName: 'java-jdk',\n currentValue: temurinJdkMatches.version,\n ...shortJavaVersioning(temurinJdkMatches.version),\n };\n }\n const correttoJdkMatches = regEx(/^corretto-(?<version>\\d\\S+)/).exec(\n version,\n )?.groups;\n if (correttoJdkMatches) {\n return {\n datasource: JavaVersionDatasource.id,\n packageName: 'java-jdk',\n currentValue: correttoJdkMatches.version,\n ...shortJavaVersioning(correttoJdkMatches.version),\n };\n }\n const zuluJdkMatches = regEx(/^zulu-(?<version>\\d\\S+)/).exec(\n version,\n )?.groups;\n if (zuluJdkMatches) {\n return {\n datasource: JavaVersionDatasource.id,\n packageName: 'java-jdk',\n currentValue: zuluJdkMatches.version,\n ...shortJavaVersioning(zuluJdkMatches.version),\n };\n }\n const oracleGraalvmJdkMatches = regEx(\n /^oracle-graalvm-(?<version>\\d\\S+)/,\n ).exec(version)?.groups;\n if (oracleGraalvmJdkMatches) {\n return {\n datasource: JavaVersionDatasource.id,\n packageName: 'java-jdk',\n currentValue: oracleGraalvmJdkMatches.version,\n ...shortJavaVersioning(oracleGraalvmJdkMatches.version),\n };\n }\n\n return undefined;\n },\n },\n node: {\n misePluginUrl: 'https://mise.jdx.dev/lang/node.html',\n config: {\n packageName: 'node',\n datasource: NodeVersionDatasource.id,\n },\n },\n python: {\n misePluginUrl: 'https://mise.jdx.dev/lang/python.html',\n config: {\n packageName: 'python/cpython',\n datasource: GithubTagsDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n ruby: {\n misePluginUrl: 'https://mise.jdx.dev/lang/ruby.html',\n config: {\n packageName: 'ruby-version',\n datasource: RubyVersionDatasource.id,\n versioning: semverVersioning.id,\n },\n },\n rust: {\n misePluginUrl: 'https://mise.jdx.dev/lang/rust.html',\n config: {\n packageName: 'rust-lang/rust',\n datasource: GithubTagsDatasource.id,\n },\n },\n swift: {\n misePluginUrl: 'https://mise.jdx.dev/lang/swift.html',\n config: {\n packageName: 'swift-lang/swift',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^swift-(?<version>\\\\S+)',\n },\n },\n zig: {\n misePluginUrl: 'https://mise.jdx.dev/lang/zig.html',\n config: {\n packageName: 'ziglang/zig',\n datasource: GithubTagsDatasource.id,\n },\n },\n};\n\nconst miseRegistryTooling: Record<string, ToolingDefinition> = {\n actionlint: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'rhysd/actionlint',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n astro: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'astronomer/astro-cli',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n 'aws-cli': {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'aws/aws-cli',\n },\n },\n 'aws-vault': {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: '99designs/aws-vault',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n buf: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'bufbuild/buf',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n caddy: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'caddyserver/caddy',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n ccache: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'ccache/ccache',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n committed: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'crate-ci/committed',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n conan: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'conan-io/conan',\n datasource: GithubReleasesDatasource.id,\n },\n },\n consul: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'hashicorp/consul',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n gh: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'cli/cli',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n 'dotenv-linter': {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'dotenv-linter/dotenv-linter',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n hivemind: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'DarthSim/hivemind',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n hk: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'jdx/hk',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n jq: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'jqlang/jq',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^jq-(?<version>\\\\S+)',\n },\n },\n kafka: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: (version) => {\n const apacheMatches = /^apache-(?<version>\\d\\S+)/.exec(version)?.groups;\n if (apacheMatches) {\n return {\n datasource: GithubTagsDatasource.id,\n packageName: 'apache/kafka',\n currentValue: apacheMatches.version,\n };\n }\n\n return undefined;\n },\n },\n lefthook: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'evilmartians/lefthook',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n localstack: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'localstack/localstack',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n lychee: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'lycheeverse/lychee',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^lychee-v(?<version>\\\\S+)',\n },\n },\n npm: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'npm',\n datasource: NpmDatasource.id,\n },\n },\n opentofu: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'opentofu/opentofu',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n packer: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'hashicorp/packer',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n pipx: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'pypa/pipx',\n datasource: GithubReleasesDatasource.id,\n },\n },\n pkl: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'apple/pkl',\n datasource: GithubReleasesDatasource.id,\n },\n },\n prettier: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'prettier/prettier',\n datasource: GithubReleasesDatasource.id,\n },\n },\n protoc: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'protocolbuffers/protobuf',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n redis: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'redis/redis',\n datasource: GithubReleasesDatasource.id,\n },\n },\n ruff: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'astral-sh/ruff',\n datasource: GithubReleasesDatasource.id,\n },\n },\n rumdl: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'rvben/rumdl',\n datasource: GithubReleasesDatasource.id,\n },\n },\n shellcheck: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'koalaman/shellcheck',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n skeema: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'skeema/skeema',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n sops: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'getsops/sops',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n sqlite: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'sqlite/sqlite',\n datasource: GithubTagsDatasource.id,\n extractVersion: '^version-(?<version>\\\\S+)',\n },\n },\n stripe: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'stripe/stripe-cli',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n swiftformat: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'nicklockwood/SwiftFormat',\n datasource: GithubReleasesDatasource.id,\n },\n },\n swiftlint: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'realm/SwiftLint',\n datasource: GithubReleasesDatasource.id,\n },\n },\n taplo: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'tamasfe/taplo',\n datasource: GithubReleasesDatasource.id,\n },\n },\n tart: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'cirruslabs/tart',\n datasource: GithubReleasesDatasource.id,\n },\n },\n terragrunt: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'gruntwork-io/terragrunt',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n tilt: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'tilt-dev/tilt',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n tusd: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'tus/tusd',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n usage: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'jdx/usage',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n};\n\nexport const miseTooling: Record<string, ToolingDefinition> = {\n ...miseCoreTooling,\n ...miseRegistryTooling,\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"upgradeable-tooling.js","names":["semverPartialVersioning.id","regexVersioning.id","semverVersioning.id"],"sources":["../../../../lib/modules/manager/mise/upgradeable-tooling.ts"],"sourcesContent":["import { regEx } from '../../../util/regex.ts';\nimport { GithubReleasesDatasource } from '../../datasource/github-releases/index.ts';\nimport { GithubTagsDatasource } from '../../datasource/github-tags/index.ts';\nimport { HexpmBobDatasource } from '../../datasource/hexpm-bob/index.ts';\nimport { JavaVersionDatasource } from '../../datasource/java-version/index.ts';\nimport { NodeVersionDatasource } from '../../datasource/node-version/index.ts';\nimport { NpmDatasource } from '../../datasource/npm/index.ts';\nimport { RubyVersionDatasource } from '../../datasource/ruby-version/index.ts';\nimport * as regexVersioning from '../../versioning/regex/index.ts';\nimport * as semverVersioning from '../../versioning/semver/index.ts';\nimport * as semverPartialVersioning from '../../versioning/semver-partial/index.ts';\nimport type { ToolingConfig } from '../asdf/upgradeable-tooling.ts';\nimport { upgradeableTooling } from '../asdf/upgradeable-tooling.ts';\n\nexport interface ToolingDefinition {\n config: ToolingConfig;\n misePluginUrl?: string;\n}\n\nexport const asdfTooling = upgradeableTooling;\n\nfunction shortJavaVersioning(version: string): { versioning?: string } {\n if (regEx(/^\\d+(\\.\\d+)?$/).test(version)) {\n return { versioning: semverPartialVersioning.id };\n }\n return {};\n}\n\nconst miseCoreTooling: Record<string, ToolingDefinition> = {\n bun: {\n misePluginUrl: 'https://mise.jdx.dev/lang/bun.html',\n config: {\n packageName: 'oven-sh/bun',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^bun-v(?<version>\\\\S+)',\n },\n },\n deno: {\n misePluginUrl: 'https://mise.jdx.dev/lang/deno.html',\n config: {\n packageName: 'denoland/deno',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n elixir: {\n misePluginUrl: 'https://mise.jdx.dev/lang/elixir.html',\n config: {\n datasource: HexpmBobDatasource.id,\n },\n },\n erlang: {\n misePluginUrl: 'https://mise.jdx.dev/lang/erlang.html',\n config: {\n packageName: 'erlang/otp',\n datasource: GithubTagsDatasource.id,\n extractVersion: '^OTP-(?<version>\\\\S+)',\n versioning: `${regexVersioning.id}:^(?<major>\\\\d+?)\\\\.(?<minor>\\\\d+?)(\\\\.(?<patch>\\\\d+))?$`,\n },\n },\n go: {\n misePluginUrl: 'https://mise.jdx.dev/lang/go.html',\n config: {\n packageName: 'golang/go',\n datasource: GithubTagsDatasource.id,\n extractVersion: '^go(?<version>\\\\S+)',\n },\n },\n java: {\n misePluginUrl: 'https://mise.jdx.dev/lang/java.html',\n config: (version) => {\n // no prefix is shorthand for openjdk\n const versionMatch = regEx(/^(\\d\\S+)/).exec(version)?.[1];\n if (versionMatch) {\n return {\n datasource: JavaVersionDatasource.id,\n packageName: 'java-jdk',\n currentValue: versionMatch,\n ...shortJavaVersioning(versionMatch),\n };\n }\n const openJdkMatches = regEx(/^openjdk-(?<version>\\d\\S+)/).exec(\n version,\n )?.groups;\n if (openJdkMatches) {\n return {\n datasource: JavaVersionDatasource.id,\n packageName: 'java-jdk',\n currentValue: openJdkMatches.version,\n ...shortJavaVersioning(openJdkMatches.version),\n };\n }\n const adoptOpenJdkMatches = regEx(/^adoptopenjdk-(?<version>\\d\\S+)/).exec(\n version,\n )?.groups;\n if (adoptOpenJdkMatches) {\n return {\n datasource: JavaVersionDatasource.id,\n packageName: 'java-jdk',\n currentValue: adoptOpenJdkMatches.version,\n ...shortJavaVersioning(adoptOpenJdkMatches.version),\n };\n }\n const temurinJdkMatches = regEx(/^temurin-(?<version>\\d\\S+)/).exec(\n version,\n )?.groups;\n if (temurinJdkMatches) {\n return {\n datasource: JavaVersionDatasource.id,\n packageName: 'java-jdk',\n currentValue: temurinJdkMatches.version,\n ...shortJavaVersioning(temurinJdkMatches.version),\n };\n }\n const correttoJdkMatches = regEx(/^corretto-(?<version>\\d\\S+)/).exec(\n version,\n )?.groups;\n if (correttoJdkMatches) {\n return {\n datasource: JavaVersionDatasource.id,\n packageName: 'java-jdk',\n currentValue: correttoJdkMatches.version,\n ...shortJavaVersioning(correttoJdkMatches.version),\n };\n }\n const zuluJdkMatches = regEx(/^zulu-(?<version>\\d\\S+)/).exec(\n version,\n )?.groups;\n if (zuluJdkMatches) {\n return {\n datasource: JavaVersionDatasource.id,\n packageName: 'java-jdk',\n currentValue: zuluJdkMatches.version,\n ...shortJavaVersioning(zuluJdkMatches.version),\n };\n }\n const oracleGraalvmJdkMatches = regEx(\n /^oracle-graalvm-(?<version>\\d\\S+)/,\n ).exec(version)?.groups;\n if (oracleGraalvmJdkMatches) {\n return {\n datasource: JavaVersionDatasource.id,\n packageName: 'java-jdk',\n currentValue: oracleGraalvmJdkMatches.version,\n ...shortJavaVersioning(oracleGraalvmJdkMatches.version),\n };\n }\n\n return undefined;\n },\n },\n node: {\n misePluginUrl: 'https://mise.jdx.dev/lang/node.html',\n config: {\n packageName: 'node',\n datasource: NodeVersionDatasource.id,\n },\n },\n python: {\n misePluginUrl: 'https://mise.jdx.dev/lang/python.html',\n config: {\n packageName: 'python/cpython',\n datasource: GithubTagsDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n ruby: {\n misePluginUrl: 'https://mise.jdx.dev/lang/ruby.html',\n config: {\n packageName: 'ruby-version',\n datasource: RubyVersionDatasource.id,\n versioning: semverVersioning.id,\n },\n },\n rust: {\n misePluginUrl: 'https://mise.jdx.dev/lang/rust.html',\n config: {\n packageName: 'rust-lang/rust',\n datasource: GithubTagsDatasource.id,\n },\n },\n swift: {\n misePluginUrl: 'https://mise.jdx.dev/lang/swift.html',\n config: {\n packageName: 'swift-lang/swift',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^swift-(?<version>\\\\S+)',\n },\n },\n zig: {\n misePluginUrl: 'https://mise.jdx.dev/lang/zig.html',\n config: {\n packageName: 'ziglang/zig',\n datasource: GithubTagsDatasource.id,\n },\n },\n};\n\nconst miseRegistryTooling: Record<string, ToolingDefinition> = {\n actionlint: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'rhysd/actionlint',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n astro: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'astronomer/astro-cli',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n 'aws-cli': {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n datasource: GithubTagsDatasource.id,\n packageName: 'aws/aws-cli',\n },\n },\n 'aws-vault': {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n datasource: GithubReleasesDatasource.id,\n packageName: '99designs/aws-vault',\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n buf: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'bufbuild/buf',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n caddy: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'caddyserver/caddy',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n ccache: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'ccache/ccache',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n committed: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'crate-ci/committed',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n conan: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'conan-io/conan',\n datasource: GithubReleasesDatasource.id,\n },\n },\n consul: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'hashicorp/consul',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n gh: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'cli/cli',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n 'dotenv-linter': {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'dotenv-linter/dotenv-linter',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n hivemind: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'DarthSim/hivemind',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n hk: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'jdx/hk',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n jq: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'jqlang/jq',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^jq-(?<version>\\\\S+)',\n },\n },\n kafka: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: (version) => {\n const apacheMatches = /^apache-(?<version>\\d\\S+)/.exec(version)?.groups;\n if (apacheMatches) {\n return {\n datasource: GithubTagsDatasource.id,\n packageName: 'apache/kafka',\n currentValue: apacheMatches.version,\n };\n }\n\n return undefined;\n },\n },\n lefthook: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'evilmartians/lefthook',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n localstack: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'localstack/localstack',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n lychee: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'lycheeverse/lychee',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^lychee-v(?<version>\\\\S+)',\n },\n },\n npm: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'npm',\n datasource: NpmDatasource.id,\n },\n },\n opentofu: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'opentofu/opentofu',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n openfga: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'openfga/openfga',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n packer: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'hashicorp/packer',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n pipx: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'pypa/pipx',\n datasource: GithubReleasesDatasource.id,\n },\n },\n pkl: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'apple/pkl',\n datasource: GithubReleasesDatasource.id,\n },\n },\n prettier: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'prettier/prettier',\n datasource: GithubReleasesDatasource.id,\n },\n },\n protoc: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'protocolbuffers/protobuf',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n redis: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'redis/redis',\n datasource: GithubReleasesDatasource.id,\n },\n },\n ruff: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'astral-sh/ruff',\n datasource: GithubReleasesDatasource.id,\n },\n },\n rumdl: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'rvben/rumdl',\n datasource: GithubReleasesDatasource.id,\n },\n },\n shellcheck: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'koalaman/shellcheck',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n skeema: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'skeema/skeema',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n sops: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'getsops/sops',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n sqlite: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'sqlite/sqlite',\n datasource: GithubTagsDatasource.id,\n extractVersion: '^version-(?<version>\\\\S+)',\n },\n },\n stripe: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'stripe/stripe-cli',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n swiftformat: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'nicklockwood/SwiftFormat',\n datasource: GithubReleasesDatasource.id,\n },\n },\n swiftlint: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'realm/SwiftLint',\n datasource: GithubReleasesDatasource.id,\n },\n },\n taplo: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'tamasfe/taplo',\n datasource: GithubReleasesDatasource.id,\n },\n },\n tart: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'cirruslabs/tart',\n datasource: GithubReleasesDatasource.id,\n },\n },\n terragrunt: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'gruntwork-io/terragrunt',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n tilt: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'tilt-dev/tilt',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n tusd: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'tus/tusd',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n usage: {\n misePluginUrl: 'https://mise.jdx.dev/registry.html#tools',\n config: {\n packageName: 'jdx/usage',\n datasource: GithubReleasesDatasource.id,\n extractVersion: '^v(?<version>\\\\S+)',\n },\n },\n};\n\nexport const miseTooling: Record<string, ToolingDefinition> = {\n ...miseCoreTooling,\n ...miseRegistryTooling,\n};\n"],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Category } from "../../constants/category.js";
|
|
2
|
+
import { ConstraintName } from "../../util/exec/types.js";
|
|
2
3
|
import { Timestamp } from "../../util/timestamp.js";
|
|
3
4
|
import { RegistryStrategy } from "../datasource/types.js";
|
|
4
5
|
import { FileChange } from "../../util/git/types.js";
|
|
@@ -26,7 +27,7 @@ interface ExtractConfig extends CustomExtractConfig {
|
|
|
26
27
|
}
|
|
27
28
|
interface UpdateArtifactsConfig {
|
|
28
29
|
isLockFileMaintenance?: boolean;
|
|
29
|
-
constraints?: Record<
|
|
30
|
+
constraints?: Partial<Record<ConstraintName, string>>;
|
|
30
31
|
composerIgnorePlatformReqs?: string[];
|
|
31
32
|
goGetDirs?: string[];
|
|
32
33
|
currentValue?: string;
|
|
@@ -304,7 +305,7 @@ type ManagerApi = ManagerApiBase & ({
|
|
|
304
305
|
lockFileNames?: string[];
|
|
305
306
|
});
|
|
306
307
|
interface PostUpdateConfig<T = Record<string, any>> extends Record<string, any>, ManagerData<T> {
|
|
307
|
-
constraints?: Record<
|
|
308
|
+
constraints?: Partial<Record<ConstraintName, string>> | null;
|
|
308
309
|
updatedPackageFiles?: FileChange[];
|
|
309
310
|
postUpdateOptions?: string[];
|
|
310
311
|
skipArtifactsUpdate?: boolean;
|
|
@@ -14,7 +14,7 @@ declare const GithubVulnerabilityAlerts: z.ZodEffects<z.ZodEffects<z.ZodArray<z.
|
|
|
14
14
|
};
|
|
15
15
|
security_vulnerability: {
|
|
16
16
|
package: {
|
|
17
|
-
ecosystem: "
|
|
17
|
+
ecosystem: "composer" | "maven" | "npm" | "rust" | "go" | "actions" | "nuget" | "pip" | "rubygems";
|
|
18
18
|
name: string;
|
|
19
19
|
};
|
|
20
20
|
vulnerable_version_range: string;
|
|
@@ -39,7 +39,7 @@ declare const GithubVulnerabilityAlerts: z.ZodEffects<z.ZodEffects<z.ZodArray<z.
|
|
|
39
39
|
};
|
|
40
40
|
security_vulnerability: {
|
|
41
41
|
package: {
|
|
42
|
-
ecosystem: "
|
|
42
|
+
ecosystem: "composer" | "maven" | "npm" | "rust" | "go" | "actions" | "nuget" | "pip" | "rubygems";
|
|
43
43
|
name: string;
|
|
44
44
|
};
|
|
45
45
|
vulnerable_version_range: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"containerbase.js","names":["semverVersioningId","rubyVersioningId","composerVersioningId","pep440VersioningId","semverCoercedVersioningId","gradleVersioningId","mavenVersioningId","nodeVersioningId","condaVersioningId","pythonVersioningId","allVersioning.get"],"sources":["../../../lib/util/exec/containerbase.ts"],"sourcesContent":["import { isString } from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport { GlobalConfig } from '../../config/global.ts';\nimport { logger } from '../../logger/index.ts';\nimport type { ReleaseResult } from '../../modules/datasource/index.ts';\nimport { id as composerVersioningId } from '../../modules/versioning/composer/index.ts';\nimport { id as condaVersioningId } from '../../modules/versioning/conda/index.ts';\nimport { id as gradleVersioningId } from '../../modules/versioning/gradle/index.ts';\nimport * as allVersioning from '../../modules/versioning/index.ts';\nimport { id as mavenVersioningId } from '../../modules/versioning/maven/index.ts';\nimport { id as nodeVersioningId } from '../../modules/versioning/node/index.ts';\nimport { id as npmVersioningId } from '../../modules/versioning/npm/index.ts';\nimport { id as pep440VersioningId } from '../../modules/versioning/pep440/index.ts';\nimport { id as pythonVersioningId } from '../../modules/versioning/python/index.ts';\nimport { id as rubyVersioningId } from '../../modules/versioning/ruby/index.ts';\nimport { id as semverVersioningId } from '../../modules/versioning/semver/index.ts';\nimport { id as semverCoercedVersioningId } from '../../modules/versioning/semver-coerced/index.ts';\nimport { getEnv } from '../env.ts';\nimport type { Opt, ToolConfig, ToolConstraint } from './types.ts';\n\nconst allToolConfig: Record<string, ToolConfig> = {\n bazelisk: {\n datasource: 'github-releases',\n packageName: 'bazelbuild/bazelisk',\n versioning: semverVersioningId,\n },\n bun: {\n datasource: 'github-releases',\n packageName: 'oven-sh/bun',\n extractVersion: '^bun-v(?<version>.*)$',\n versioning: npmVersioningId,\n },\n bundler: {\n datasource: 'rubygems',\n packageName: 'bundler',\n versioning: rubyVersioningId,\n },\n cocoapods: {\n datasource: 'rubygems',\n packageName: 'cocoapods',\n versioning: rubyVersioningId,\n },\n composer: {\n datasource: 'github-releases',\n packageName: 'containerbase/composer-prebuild',\n versioning: composerVersioningId,\n },\n conan: {\n datasource: 'pypi',\n packageName: 'conan',\n versioning: pep440VersioningId,\n },\n copier: {\n datasource: 'pypi',\n packageName: 'copier',\n versioning: pep440VersioningId,\n },\n corepack: {\n datasource: 'npm',\n packageName: 'corepack',\n versioning: npmVersioningId,\n },\n devbox: {\n datasource: 'github-releases',\n packageName: 'jetify-com/devbox',\n versioning: semverVersioningId,\n },\n dotnet: {\n datasource: 'dotnet-version',\n packageName: 'dotnet-sdk',\n versioning: semverVersioningId,\n },\n erlang: {\n datasource: 'github-releases',\n packageName: 'containerbase/erlang-prebuild',\n versioning: semverCoercedVersioningId,\n },\n elixir: {\n datasource: 'github-releases',\n packageName: 'elixir-lang/elixir',\n versioning: semverVersioningId,\n },\n flux: {\n datasource: 'github-releases',\n packageName: 'fluxcd/flux2',\n versioning: semverVersioningId,\n },\n gleam: {\n datasource: 'github-releases',\n packageName: 'gleam-lang/gleam',\n versioning: semverVersioningId,\n },\n golang: {\n datasource: 'github-releases',\n packageName: 'containerbase/golang-prebuild',\n versioning: npmVersioningId,\n },\n gradle: {\n datasource: 'gradle-version',\n packageName: 'gradle',\n versioning: gradleVersioningId,\n },\n hashin: {\n datasource: 'pypi',\n packageName: 'hashin',\n versioning: pep440VersioningId,\n },\n helm: {\n datasource: 'github-releases',\n packageName: 'helm/helm',\n versioning: semverVersioningId,\n },\n helmfile: {\n datasource: 'github-releases',\n packageName: 'helmfile/helmfile',\n versioning: semverVersioningId,\n },\n java: {\n datasource: 'java-version',\n packageName: 'java?system=true',\n versioning: npmVersioningId,\n },\n /* not used in Renovate */\n 'java-maven': {\n datasource: 'java-version',\n packageName: 'java?system=true',\n versioning: mavenVersioningId,\n },\n jb: {\n datasource: 'github-releases',\n packageName: 'jsonnet-bundler/jsonnet-bundler',\n versioning: semverVersioningId,\n },\n kustomize: {\n datasource: 'github-releases',\n packageName: 'kubernetes-sigs/kustomize',\n extractVersion: '^kustomize/v(?<version>.*)$',\n versioning: semverVersioningId,\n },\n maven: {\n datasource: 'github-releases',\n packageName: 'containerbase/maven-prebuild',\n versioning: mavenVersioningId,\n },\n nix: {\n datasource: 'github-releases',\n packageName: 'containerbase/nix-prebuild',\n versioning: semverVersioningId,\n },\n node: {\n datasource: 'github-releases',\n packageName: 'containerbase/node-prebuild',\n versioning: nodeVersioningId,\n },\n npm: {\n datasource: 'npm',\n packageName: 'npm',\n versioning: npmVersioningId,\n },\n pdm: {\n datasource: 'github-releases',\n packageName: 'pdm-project/pdm',\n versioning: semverVersioningId,\n },\n php: {\n datasource: 'github-releases',\n packageName: 'containerbase/php-prebuild',\n versioning: composerVersioningId,\n },\n 'pip-tools': {\n datasource: 'pypi',\n packageName: 'pip-tools',\n versioning: pep440VersioningId,\n },\n pipenv: {\n datasource: 'pypi',\n packageName: 'pipenv',\n versioning: pep440VersioningId,\n },\n pnpm: {\n datasource: 'npm',\n packageName: 'pnpm',\n versioning: npmVersioningId,\n },\n pixi: {\n datasource: 'github-releases',\n packageName: 'prefix-dev/pixi',\n versioning: condaVersioningId,\n extractVersion: '^v(?<version>.*)$',\n },\n poetry: {\n datasource: 'pypi',\n packageName: 'poetry',\n versioning: pep440VersioningId,\n },\n python: {\n datasource: 'github-releases',\n packageName: 'containerbase/python-prebuild',\n versioning: pythonVersioningId,\n },\n ruby: {\n datasource: 'github-releases',\n packageName: 'containerbase/ruby-prebuild',\n versioning: rubyVersioningId,\n },\n rust: {\n datasource: 'docker',\n packageName: 'rust',\n versioning: semverVersioningId,\n },\n uv: {\n datasource: 'pypi',\n packageName: 'uv',\n versioning: pep440VersioningId,\n },\n yarn: {\n datasource: 'npm',\n packageName: 'yarn',\n versioning: npmVersioningId,\n },\n 'yarn-slim': {\n datasource: 'npm',\n packageName: 'yarn',\n versioning: npmVersioningId,\n },\n dart: {\n datasource: 'dart-version',\n packageName: 'dart',\n versioning: npmVersioningId,\n },\n flutter: {\n datasource: 'github-releases',\n packageName: 'containerbase/flutter-prebuild',\n versioning: npmVersioningId,\n },\n vendir: {\n datasource: 'github-releases',\n packageName: 'carvel-dev/vendir',\n versioning: semverVersioningId,\n },\n};\n\nlet _getPkgReleases: Promise<\n typeof import('../../modules/datasource/index.ts')\n> | null = null;\n\nasync function getPkgReleases(\n toolConfig: ToolConfig,\n): Promise<ReleaseResult | null> {\n _getPkgReleases ??= import('../../modules/datasource/index.ts');\n const { getPkgReleases } = await _getPkgReleases;\n return getPkgReleases(toolConfig);\n}\n\nexport function supportsDynamicInstall(toolName: string): boolean {\n return !!allToolConfig[toolName];\n}\n\nexport function isContainerbase(): boolean {\n return !!getEnv().CONTAINERBASE;\n}\n\nexport function isDynamicInstall(\n toolConstraints?: Opt<ToolConstraint[]>,\n): boolean {\n if (GlobalConfig.get('binarySource') !== 'install') {\n return false;\n }\n if (!isContainerbase()) {\n logger.debug('Falling back to binarySource=global');\n return false;\n }\n return (\n !toolConstraints ||\n toolConstraints.every((toolConstraint) =>\n supportsDynamicInstall(toolConstraint.toolName),\n )\n );\n}\n\nfunction isStable(\n version: string,\n versioningApi: allVersioning.VersioningApi,\n latest?: string,\n): boolean {\n if (!versioningApi.isStable(version)) {\n return false;\n }\n if (isString(latest)) {\n if (versioningApi.isGreaterThan(version, latest)) {\n return false;\n }\n }\n return true;\n}\n\nexport async function resolveConstraint(\n toolConstraint: ToolConstraint,\n): Promise<string> {\n const { toolName } = toolConstraint;\n const toolConfig = allToolConfig[toolName];\n if (!toolConfig) {\n throw new Error(`Invalid tool to install: ${toolName}`);\n }\n\n const versioning = allVersioning.get(toolConfig.versioning);\n let constraint = toolConstraint.constraint;\n if (constraint) {\n if (versioning.isValid(constraint)) {\n if (versioning.isSingleVersion(constraint)) {\n return constraint.replace(/^=+/, '').trim();\n }\n } else {\n logger.warn(\n { toolName, constraint, versioning: toolConfig.versioning },\n 'Invalid tool constraint',\n );\n constraint = undefined;\n }\n }\n\n const pkgReleases = await getPkgReleases(toolConfig);\n const releases = pkgReleases?.releases ?? [];\n\n if (!releases?.length) {\n logger.warn({ toolConfig }, 'No tool releases found.');\n throw new Error('No tool releases found.');\n }\n\n const matchingReleases = releases.filter(\n (r) => !constraint || versioning.matches(r.version, constraint),\n );\n\n const stableMatchingVersion = matchingReleases\n .filter((r) => isStable(r.version, versioning, pkgReleases?.tags?.latest))\n .pop()?.version;\n if (stableMatchingVersion) {\n logger.debug(\n { toolName, constraint, resolvedVersion: stableMatchingVersion },\n 'Resolved stable matching version',\n );\n return stableMatchingVersion;\n }\n\n const unstableMatchingVersion = matchingReleases.pop()?.version;\n if (unstableMatchingVersion) {\n logger.debug(\n { toolName, constraint, resolvedVersion: unstableMatchingVersion },\n 'Resolved unstable matching version',\n );\n return unstableMatchingVersion;\n }\n\n const stableVersion = releases\n .filter((r) => isStable(r.version, versioning, pkgReleases?.tags?.latest))\n .pop()?.version;\n if (stableVersion) {\n logger.warn(\n { toolName, constraint, stableVersion },\n 'No matching tool versions found for constraint - using latest stable version',\n );\n }\n\n const highestVersion = releases.pop()!.version;\n logger.warn(\n { toolName, constraint, highestVersion },\n 'No matching or stable tool versions found - using an unstable version',\n );\n return highestVersion;\n}\n\nexport async function generateInstallCommands(\n toolConstraints: Opt<ToolConstraint[]>,\n): Promise<string[]> {\n const installCommands: string[] = [];\n if (toolConstraints?.length) {\n for (const toolConstraint of toolConstraints) {\n const toolVersion = await resolveConstraint(toolConstraint);\n const { toolName } = toolConstraint;\n const installCommand = `install-tool ${toolName} ${quote(toolVersion)}`;\n installCommands.push(installCommand);\n }\n }\n return installCommands;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"containerbase.js","names":["semverVersioningId","rubyVersioningId","composerVersioningId","pep440VersioningId","semverCoercedVersioningId","gradleVersioningId","mavenVersioningId","nodeVersioningId","condaVersioningId","pythonVersioningId","allVersioning.get"],"sources":["../../../lib/util/exec/containerbase.ts"],"sourcesContent":["import { isString } from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport { GlobalConfig } from '../../config/global.ts';\nimport { logger } from '../../logger/index.ts';\nimport type { ReleaseResult } from '../../modules/datasource/index.ts';\nimport { id as composerVersioningId } from '../../modules/versioning/composer/index.ts';\nimport { id as condaVersioningId } from '../../modules/versioning/conda/index.ts';\nimport { id as gradleVersioningId } from '../../modules/versioning/gradle/index.ts';\nimport * as allVersioning from '../../modules/versioning/index.ts';\nimport { id as mavenVersioningId } from '../../modules/versioning/maven/index.ts';\nimport { id as nodeVersioningId } from '../../modules/versioning/node/index.ts';\nimport { id as npmVersioningId } from '../../modules/versioning/npm/index.ts';\nimport { id as pep440VersioningId } from '../../modules/versioning/pep440/index.ts';\nimport { id as pythonVersioningId } from '../../modules/versioning/python/index.ts';\nimport { id as rubyVersioningId } from '../../modules/versioning/ruby/index.ts';\nimport { id as semverVersioningId } from '../../modules/versioning/semver/index.ts';\nimport { id as semverCoercedVersioningId } from '../../modules/versioning/semver-coerced/index.ts';\nimport { getEnv } from '../env.ts';\nimport type { Opt, ToolConfig, ToolConstraint, ToolName } from './types.ts';\n\nconst allToolConfig: Record<ToolName, ToolConfig> = {\n bazelisk: {\n datasource: 'github-releases',\n packageName: 'bazelbuild/bazelisk',\n versioning: semverVersioningId,\n },\n bun: {\n datasource: 'github-releases',\n packageName: 'oven-sh/bun',\n extractVersion: '^bun-v(?<version>.*)$',\n versioning: npmVersioningId,\n },\n bundler: {\n datasource: 'rubygems',\n packageName: 'bundler',\n versioning: rubyVersioningId,\n },\n cocoapods: {\n datasource: 'rubygems',\n packageName: 'cocoapods',\n versioning: rubyVersioningId,\n },\n composer: {\n datasource: 'github-releases',\n packageName: 'containerbase/composer-prebuild',\n versioning: composerVersioningId,\n },\n conan: {\n datasource: 'pypi',\n packageName: 'conan',\n versioning: pep440VersioningId,\n },\n copier: {\n datasource: 'pypi',\n packageName: 'copier',\n versioning: pep440VersioningId,\n },\n corepack: {\n datasource: 'npm',\n packageName: 'corepack',\n versioning: npmVersioningId,\n },\n devbox: {\n datasource: 'github-releases',\n packageName: 'jetify-com/devbox',\n versioning: semverVersioningId,\n },\n dotnet: {\n datasource: 'dotnet-version',\n packageName: 'dotnet-sdk',\n versioning: semverVersioningId,\n },\n erlang: {\n datasource: 'github-releases',\n packageName: 'containerbase/erlang-prebuild',\n versioning: semverCoercedVersioningId,\n },\n elixir: {\n datasource: 'github-releases',\n packageName: 'elixir-lang/elixir',\n versioning: semverVersioningId,\n },\n flux: {\n datasource: 'github-releases',\n packageName: 'fluxcd/flux2',\n versioning: semverVersioningId,\n },\n gleam: {\n datasource: 'github-releases',\n packageName: 'gleam-lang/gleam',\n versioning: semverVersioningId,\n },\n golang: {\n datasource: 'github-releases',\n packageName: 'containerbase/golang-prebuild',\n versioning: npmVersioningId,\n },\n gradle: {\n datasource: 'gradle-version',\n packageName: 'gradle',\n versioning: gradleVersioningId,\n },\n hashin: {\n datasource: 'pypi',\n packageName: 'hashin',\n versioning: pep440VersioningId,\n },\n helm: {\n datasource: 'github-releases',\n packageName: 'helm/helm',\n versioning: semverVersioningId,\n },\n helmfile: {\n datasource: 'github-releases',\n packageName: 'helmfile/helmfile',\n versioning: semverVersioningId,\n },\n java: {\n datasource: 'java-version',\n packageName: 'java?system=true',\n versioning: npmVersioningId,\n },\n /* not used in Renovate */\n 'java-maven': {\n datasource: 'java-version',\n packageName: 'java?system=true',\n versioning: mavenVersioningId,\n },\n jb: {\n datasource: 'github-releases',\n packageName: 'jsonnet-bundler/jsonnet-bundler',\n versioning: semverVersioningId,\n },\n kustomize: {\n datasource: 'github-releases',\n packageName: 'kubernetes-sigs/kustomize',\n extractVersion: '^kustomize/v(?<version>.*)$',\n versioning: semverVersioningId,\n },\n maven: {\n datasource: 'github-releases',\n packageName: 'containerbase/maven-prebuild',\n versioning: mavenVersioningId,\n },\n nix: {\n datasource: 'github-releases',\n packageName: 'containerbase/nix-prebuild',\n versioning: semverVersioningId,\n },\n node: {\n datasource: 'github-releases',\n packageName: 'containerbase/node-prebuild',\n versioning: nodeVersioningId,\n },\n npm: {\n datasource: 'npm',\n packageName: 'npm',\n versioning: npmVersioningId,\n },\n pdm: {\n datasource: 'github-releases',\n packageName: 'pdm-project/pdm',\n versioning: semverVersioningId,\n },\n php: {\n datasource: 'github-releases',\n packageName: 'containerbase/php-prebuild',\n versioning: composerVersioningId,\n },\n 'pip-tools': {\n datasource: 'pypi',\n packageName: 'pip-tools',\n versioning: pep440VersioningId,\n },\n pipenv: {\n datasource: 'pypi',\n packageName: 'pipenv',\n versioning: pep440VersioningId,\n },\n pnpm: {\n datasource: 'npm',\n packageName: 'pnpm',\n versioning: npmVersioningId,\n },\n pixi: {\n datasource: 'github-releases',\n packageName: 'prefix-dev/pixi',\n versioning: condaVersioningId,\n extractVersion: '^v(?<version>.*)$',\n },\n poetry: {\n datasource: 'pypi',\n packageName: 'poetry',\n versioning: pep440VersioningId,\n },\n python: {\n datasource: 'github-releases',\n packageName: 'containerbase/python-prebuild',\n versioning: pythonVersioningId,\n },\n ruby: {\n datasource: 'github-releases',\n packageName: 'containerbase/ruby-prebuild',\n versioning: rubyVersioningId,\n },\n rust: {\n datasource: 'docker',\n packageName: 'rust',\n versioning: semverVersioningId,\n },\n uv: {\n datasource: 'pypi',\n packageName: 'uv',\n versioning: pep440VersioningId,\n },\n yarn: {\n datasource: 'npm',\n packageName: 'yarn',\n versioning: npmVersioningId,\n },\n 'yarn-slim': {\n datasource: 'npm',\n packageName: 'yarn',\n versioning: npmVersioningId,\n },\n dart: {\n datasource: 'dart-version',\n packageName: 'dart',\n versioning: npmVersioningId,\n },\n flutter: {\n datasource: 'github-releases',\n packageName: 'containerbase/flutter-prebuild',\n versioning: npmVersioningId,\n },\n vendir: {\n datasource: 'github-releases',\n packageName: 'carvel-dev/vendir',\n versioning: semverVersioningId,\n },\n};\n\nlet _getPkgReleases: Promise<\n typeof import('../../modules/datasource/index.ts')\n> | null = null;\n\nasync function getPkgReleases(\n toolConfig: ToolConfig,\n): Promise<ReleaseResult | null> {\n _getPkgReleases ??= import('../../modules/datasource/index.ts');\n const { getPkgReleases } = await _getPkgReleases;\n return getPkgReleases(toolConfig);\n}\n\nexport function supportsDynamicInstall(toolName: ToolName): boolean {\n return !!allToolConfig[toolName];\n}\n\nexport function isContainerbase(): boolean {\n return !!getEnv().CONTAINERBASE;\n}\n\nexport function isDynamicInstall(\n toolConstraints?: Opt<ToolConstraint[]>,\n): boolean {\n if (GlobalConfig.get('binarySource') !== 'install') {\n return false;\n }\n if (!isContainerbase()) {\n logger.debug('Falling back to binarySource=global');\n return false;\n }\n return (\n !toolConstraints ||\n toolConstraints.every((toolConstraint) =>\n supportsDynamicInstall(toolConstraint.toolName),\n )\n );\n}\n\nfunction isStable(\n version: string,\n versioningApi: allVersioning.VersioningApi,\n latest?: string,\n): boolean {\n if (!versioningApi.isStable(version)) {\n return false;\n }\n if (isString(latest)) {\n if (versioningApi.isGreaterThan(version, latest)) {\n return false;\n }\n }\n return true;\n}\n\nexport async function resolveConstraint(\n toolConstraint: ToolConstraint,\n): Promise<string> {\n const { toolName } = toolConstraint;\n const toolConfig = allToolConfig[toolName];\n if (!toolConfig) {\n throw new Error(`Invalid tool to install: ${toolName}`);\n }\n\n const versioning = allVersioning.get(toolConfig.versioning);\n let constraint = toolConstraint.constraint;\n if (constraint) {\n if (versioning.isValid(constraint)) {\n if (versioning.isSingleVersion(constraint)) {\n return constraint.replace(/^=+/, '').trim();\n }\n } else {\n logger.warn(\n { toolName, constraint, versioning: toolConfig.versioning },\n 'Invalid tool constraint',\n );\n constraint = undefined;\n }\n }\n\n const pkgReleases = await getPkgReleases(toolConfig);\n const releases = pkgReleases?.releases ?? [];\n\n if (!releases?.length) {\n logger.warn({ toolConfig }, 'No tool releases found.');\n throw new Error('No tool releases found.');\n }\n\n const matchingReleases = releases.filter(\n (r) => !constraint || versioning.matches(r.version, constraint),\n );\n\n const stableMatchingVersion = matchingReleases\n .filter((r) => isStable(r.version, versioning, pkgReleases?.tags?.latest))\n .pop()?.version;\n if (stableMatchingVersion) {\n logger.debug(\n { toolName, constraint, resolvedVersion: stableMatchingVersion },\n 'Resolved stable matching version',\n );\n return stableMatchingVersion;\n }\n\n const unstableMatchingVersion = matchingReleases.pop()?.version;\n if (unstableMatchingVersion) {\n logger.debug(\n { toolName, constraint, resolvedVersion: unstableMatchingVersion },\n 'Resolved unstable matching version',\n );\n return unstableMatchingVersion;\n }\n\n const stableVersion = releases\n .filter((r) => isStable(r.version, versioning, pkgReleases?.tags?.latest))\n .pop()?.version;\n if (stableVersion) {\n logger.warn(\n { toolName, constraint, stableVersion },\n 'No matching tool versions found for constraint - using latest stable version',\n );\n }\n\n const highestVersion = releases.pop()!.version;\n logger.warn(\n { toolName, constraint, highestVersion },\n 'No matching or stable tool versions found - using an unstable version',\n );\n return highestVersion;\n}\n\nexport async function generateInstallCommands(\n toolConstraints: Opt<ToolConstraint[]>,\n): Promise<string[]> {\n const installCommands: string[] = [];\n if (toolConstraints?.length) {\n for (const toolConstraint of toolConstraints) {\n const toolVersion = await resolveConstraint(toolConstraint);\n const { toolName } = toolConstraint;\n const installCommand = `install-tool ${toolName} ${quote(toolVersion)}`;\n installCommands.push(installCommand);\n }\n }\n return installCommands;\n}\n"],"mappings":"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"}
|
|
@@ -1,8 +1,30 @@
|
|
|
1
1
|
import { Options } from "execa";
|
|
2
2
|
|
|
3
3
|
//#region lib/util/exec/types.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* A `tool` that Containerbase supports.
|
|
6
|
+
*
|
|
7
|
+
* TODO #41849 replace with upstream types
|
|
8
|
+
*/
|
|
9
|
+
declare const toolNames: readonly ["bazelisk", "bun", "bundler", "cocoapods", "composer", "conan", "copier", "corepack", "devbox", "dotnet", "erlang", "elixir", "flux", "gleam", "golang", "gradle", "hashin", "helm", "helmfile", "java", "java-maven", "jb", "kustomize", "maven", "nix", "node", "npm", "pdm", "php", "pip-tools", "pipenv", "pnpm", "pixi", "poetry", "python", "ruby", "rust", "uv", "yarn", "yarn-slim", "dart", "flutter", "vendir"];
|
|
10
|
+
type ToolName = (typeof toolNames)[number];
|
|
11
|
+
declare function isToolName(value: unknown): value is ToolName;
|
|
12
|
+
/**
|
|
13
|
+
* Additional constraints that can be specified for some Managers, but are **not** tools that Containerbase supports.
|
|
14
|
+
*/
|
|
15
|
+
declare const additionalConstraintNames: readonly ["go", "gomodMod", "jenkins", "pipTools"];
|
|
16
|
+
/**
|
|
17
|
+
* Additional constraints that can be specified for some Managers, but are **not** tools that Containerbase supports.
|
|
18
|
+
*/
|
|
19
|
+
type AdditionalConstraintName = (typeof additionalConstraintNames)[number];
|
|
20
|
+
declare function isAdditionalConstraintName(value: unknown): value is AdditionalConstraintName;
|
|
21
|
+
/**
|
|
22
|
+
* A name usable as a key in a `constraints` record, which may be tools that Containerbase supports.
|
|
23
|
+
*/
|
|
24
|
+
type ConstraintName = ToolName | AdditionalConstraintName;
|
|
25
|
+
declare function isConstraintName(value: unknown): value is ConstraintName;
|
|
4
26
|
interface ToolConstraint {
|
|
5
|
-
toolName:
|
|
27
|
+
toolName: ToolName;
|
|
6
28
|
constraint?: string | null;
|
|
7
29
|
}
|
|
8
30
|
interface ToolConfig {
|
|
@@ -69,5 +91,5 @@ interface CommandWithOptions {
|
|
|
69
91
|
shell?: boolean | string;
|
|
70
92
|
}
|
|
71
93
|
//#endregion
|
|
72
|
-
export { CommandWithOptions, DataListener, DockerOptions, ExecOptions, ExecResult, ExtraEnv, Opt, OutputListeners, RawExecOptions, ToolConfig, ToolConstraint, VolumeOption, VolumesPair };
|
|
94
|
+
export { AdditionalConstraintName, CommandWithOptions, ConstraintName, DataListener, DockerOptions, ExecOptions, ExecResult, ExtraEnv, Opt, OutputListeners, RawExecOptions, ToolConfig, ToolConstraint, ToolName, VolumeOption, VolumesPair, isAdditionalConstraintName, isConstraintName, isToolName };
|
|
73
95
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/util/exec/types.js
CHANGED
|
@@ -1 +1,74 @@
|
|
|
1
|
-
|
|
1
|
+
import { isString } from "@sindresorhus/is";
|
|
2
|
+
//#region lib/util/exec/types.ts
|
|
3
|
+
/**
|
|
4
|
+
* A `tool` that Containerbase supports.
|
|
5
|
+
*
|
|
6
|
+
* TODO #41849 replace with upstream types
|
|
7
|
+
*/
|
|
8
|
+
const toolNames = [
|
|
9
|
+
"bazelisk",
|
|
10
|
+
"bun",
|
|
11
|
+
"bundler",
|
|
12
|
+
"cocoapods",
|
|
13
|
+
"composer",
|
|
14
|
+
"conan",
|
|
15
|
+
"copier",
|
|
16
|
+
"corepack",
|
|
17
|
+
"devbox",
|
|
18
|
+
"dotnet",
|
|
19
|
+
"erlang",
|
|
20
|
+
"elixir",
|
|
21
|
+
"flux",
|
|
22
|
+
"gleam",
|
|
23
|
+
"golang",
|
|
24
|
+
"gradle",
|
|
25
|
+
"hashin",
|
|
26
|
+
"helm",
|
|
27
|
+
"helmfile",
|
|
28
|
+
"java",
|
|
29
|
+
"java-maven",
|
|
30
|
+
"jb",
|
|
31
|
+
"kustomize",
|
|
32
|
+
"maven",
|
|
33
|
+
"nix",
|
|
34
|
+
"node",
|
|
35
|
+
"npm",
|
|
36
|
+
"pdm",
|
|
37
|
+
"php",
|
|
38
|
+
"pip-tools",
|
|
39
|
+
"pipenv",
|
|
40
|
+
"pnpm",
|
|
41
|
+
"pixi",
|
|
42
|
+
"poetry",
|
|
43
|
+
"python",
|
|
44
|
+
"ruby",
|
|
45
|
+
"rust",
|
|
46
|
+
"uv",
|
|
47
|
+
"yarn",
|
|
48
|
+
"yarn-slim",
|
|
49
|
+
"dart",
|
|
50
|
+
"flutter",
|
|
51
|
+
"vendir"
|
|
52
|
+
];
|
|
53
|
+
function isToolName(value) {
|
|
54
|
+
return isString(value) && toolNames.includes(value);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Additional constraints that can be specified for some Managers, but are **not** tools that Containerbase supports.
|
|
58
|
+
*/
|
|
59
|
+
const additionalConstraintNames = [
|
|
60
|
+
"go",
|
|
61
|
+
"gomodMod",
|
|
62
|
+
"jenkins",
|
|
63
|
+
"pipTools"
|
|
64
|
+
];
|
|
65
|
+
function isAdditionalConstraintName(value) {
|
|
66
|
+
return isString(value) && additionalConstraintNames.includes(value);
|
|
67
|
+
}
|
|
68
|
+
function isConstraintName(value) {
|
|
69
|
+
return isToolName(value) || isAdditionalConstraintName(value);
|
|
70
|
+
}
|
|
71
|
+
//#endregion
|
|
72
|
+
export { isAdditionalConstraintName, isConstraintName, isToolName };
|
|
73
|
+
|
|
74
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../lib/util/exec/types.ts"],"sourcesContent":["import { isString } from '@sindresorhus/is';\nimport type { Options as ExecaOptions } from 'execa';\n\n/**\n * A `tool` that Containerbase supports.\n *\n * TODO #41849 replace with upstream types\n */\nconst toolNames = [\n 'bazelisk',\n 'bun',\n 'bundler',\n 'cocoapods',\n 'composer',\n 'conan',\n 'copier',\n 'corepack',\n 'devbox',\n 'dotnet',\n 'erlang',\n 'elixir',\n 'flux',\n 'gleam',\n 'golang',\n 'gradle',\n 'hashin',\n 'helm',\n 'helmfile',\n 'java',\n 'java-maven',\n 'jb',\n 'kustomize',\n 'maven',\n 'nix',\n 'node',\n 'npm',\n 'pdm',\n 'php',\n 'pip-tools',\n 'pipenv',\n 'pnpm',\n 'pixi',\n 'poetry',\n 'python',\n 'ruby',\n 'rust',\n 'uv',\n 'yarn',\n 'yarn-slim',\n 'dart',\n 'flutter',\n 'vendir',\n] as const;\n\nexport type ToolName = (typeof toolNames)[number];\n\nexport function isToolName(value: unknown): value is ToolName {\n return isString(value) && toolNames.includes(value as ToolName);\n}\n\n/**\n * Additional constraints that can be specified for some Managers, but are **not** tools that Containerbase supports.\n */\nconst additionalConstraintNames = [\n /**\n * Used in the `gomod` manager to specify the version of the Go toolchain to use.\n *\n * In precedence order:\n *\n * 1. config: `constraints.go`\n * 1. `go.mod`: `toolchain` directive\n * 1. `go.mod`: `go` directive\n *\n * NOTE that the `constraints.golang` is not used (https://github.com/renovatebot/renovate/issues/42601)\n *\n * @deprecated TODO remove in #42600\n */\n 'go',\n /**\n * Used in the `gomod` manager to specify a tag for `github.com/marwan-at-work/mod`.\n *\n * Must be prefixed with `v`.\n *\n * @see https://github.com/marwan-at-work/mod\n */\n 'gomodMod',\n /**\n * Used in the `jenkins-plugins` datasource to specify a minimum version of the Jenkins that a plugin must support.\n */\n 'jenkins',\n /**\n * Used in the `pip-compile` manager datasource to specify a version of `pip-tools` to use.\n *\n * @deprecated TODO remove in #42599\n */\n 'pipTools',\n] as const;\n\n/**\n * Additional constraints that can be specified for some Managers, but are **not** tools that Containerbase supports.\n */\nexport type AdditionalConstraintName =\n (typeof additionalConstraintNames)[number];\n\nexport function isAdditionalConstraintName(\n value: unknown,\n): value is AdditionalConstraintName {\n return (\n isString(value) &&\n additionalConstraintNames.includes(value as AdditionalConstraintName)\n );\n}\n\n/**\n * A name usable as a key in a `constraints` record, which may be tools that Containerbase supports.\n */\nexport type ConstraintName = ToolName | AdditionalConstraintName;\n\nexport function isConstraintName(value: unknown): value is ConstraintName {\n return isToolName(value) || isAdditionalConstraintName(value);\n}\n\nexport interface ToolConstraint {\n toolName: ToolName;\n constraint?: string | null;\n}\n\nexport interface ToolConfig {\n datasource: string;\n extractVersion?: string;\n packageName: string;\n versioning: string;\n}\n\nexport type Opt<T> = T | null | undefined;\n\nexport type VolumesPair = [string, string];\nexport type VolumeOption = Opt<string | VolumesPair>;\n\nexport interface DockerOptions {\n volumes?: Opt<VolumeOption[]>;\n envVars?: Opt<Opt<string>[]>;\n cwd?: Opt<string>;\n}\n\nexport type DataListener = (chunk: any) => void;\nexport interface OutputListeners {\n stdout?: DataListener[];\n stderr?: DataListener[];\n}\n\nexport interface RawExecOptions extends ExecaOptions {\n maxBuffer?: number | undefined;\n cwd?: string;\n outputListeners?: OutputListeners;\n}\n\nexport interface ExecResult {\n stdout: string;\n stderr: string;\n /**\n * The process' exit code in the case of a failure.\n *\n * This is only set if using `ignoreFailure` when executing a command\n *\n */\n exitCode?: number;\n}\n\nexport type ExtraEnv<T = unknown> = Record<string, T>;\n\nexport interface ExecOptions {\n cwd?: string;\n cwdFile?: string;\n env?: Opt<ExtraEnv>;\n extraEnv?: Opt<ExtraEnv>;\n docker?: Opt<DockerOptions>;\n toolConstraints?: Opt<ToolConstraint[]>;\n preCommands?: Opt<string[]>;\n ignoreStdout?: boolean;\n // Following are pass-through to child process\n maxBuffer?: number | undefined;\n timeout?: number | undefined;\n shell?: boolean | string | undefined;\n}\n\n/**\n * configuration that can be configured on a per-command basis, that doesn't make sense to be on the `RawExecOptions`\n */\nexport interface CommandWithOptions {\n command: string[];\n\n /** do not throw errors when a command fails, but do log that an error occurred */\n ignoreFailure?: boolean;\n\n /**\n * Execute the `command` within a shell\n *\n * WARNING this can result in security issues if this includes user-controlled commands\n * **/\n shell?: boolean | string;\n}\n"],"mappings":";;;;;;;AAQA,MAAM,YAAY;CAChB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAID,SAAgB,WAAW,OAAmC;AAC5D,QAAO,SAAS,MAAM,IAAI,UAAU,SAAS,MAAkB;;;;;AAMjE,MAAM,4BAA4B;CAchC;CAQA;CAIA;CAMA;CACD;AAQD,SAAgB,2BACd,OACmC;AACnC,QACE,SAAS,MAAM,IACf,0BAA0B,SAAS,MAAkC;;AASzE,SAAgB,iBAAiB,OAAyC;AACxE,QAAO,WAAW,MAAM,IAAI,2BAA2B,MAAM"}
|
|
@@ -10,6 +10,7 @@ import { getGitEnvironmentVariables } from "../../../../util/git/auth.js";
|
|
|
10
10
|
import { exec } from "../../../../util/exec/index.js";
|
|
11
11
|
import { getRepoStatus } from "../../../../util/git/index.js";
|
|
12
12
|
import { mergeChildConfig } from "../../../../config/utils.js";
|
|
13
|
+
import { isConstraintName, isToolName } from "../../../../util/exec/types.js";
|
|
13
14
|
import "../../../../config/index.js";
|
|
14
15
|
import { isArray, isNonEmptyArray } from "@sindresorhus/is";
|
|
15
16
|
import upath from "upath";
|
|
@@ -79,10 +80,22 @@ async function postUpgradeCommandsExecutor(filteredUpgradeCommands, config) {
|
|
|
79
80
|
if (dataFilePath) execOpts.env = { RENOVATE_POST_UPGRADE_COMMAND_DATA_FILE: dataFilePath };
|
|
80
81
|
if (upgrade.postUpgradeTasks?.installTools) {
|
|
81
82
|
execOpts.toolConstraints ??= [];
|
|
82
|
-
for (const [tool] of Object.entries(upgrade.postUpgradeTasks?.installTools))
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
for (const [tool] of Object.entries(upgrade.postUpgradeTasks?.installTools)) {
|
|
84
|
+
const validTool = isToolName(tool);
|
|
85
|
+
const validConstraint = isConstraintName(tool);
|
|
86
|
+
if (!validTool) {
|
|
87
|
+
logger.warn({
|
|
88
|
+
tool,
|
|
89
|
+
validTool,
|
|
90
|
+
validConstraint
|
|
91
|
+
}, `Skipping ${validConstraint ? "valid" : "invalid"} constraint that is not a tool that Containerbase knows`);
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
execOpts.toolConstraints.push({
|
|
95
|
+
toolName: tool,
|
|
96
|
+
constraint: upgrade.constraints?.[tool]
|
|
97
|
+
});
|
|
98
|
+
}
|
|
86
99
|
}
|
|
87
100
|
const execResult = await exec(compiledCmd, execOpts);
|
|
88
101
|
logger.debug({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-post-upgrade-commands.js","names":[],"sources":["../../../../../lib/workers/repository/update/branch/execute-post-upgrade-commands.ts"],"sourcesContent":["// TODO #22198\nimport { isArray, isNonEmptyArray } from '@sindresorhus/is';\nimport crypto from 'crypto';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../../../config/global.ts';\nimport { mergeChildConfig } from '../../../../config/index.ts';\nimport { addMeta, logger } from '../../../../logger/index.ts';\nimport type { ArtifactError } from '../../../../modules/manager/types.ts';\nimport { coerceArray } from '../../../../util/array.ts';\nimport { exec } from '../../../../util/exec/index.ts';\nimport type { ExecOptions } from '../../../../util/exec/types.ts';\nimport {\n ensureLocalDir,\n localPathIsFile,\n outputCacheFile,\n privateCacheDir,\n readLocalFile,\n writeLocalFile,\n} from '../../../../util/fs/index.ts';\nimport { getGitEnvironmentVariables } from '../../../../util/git/auth.ts';\nimport { getRepoStatus } from '../../../../util/git/index.ts';\nimport type { FileChange } from '../../../../util/git/types.ts';\nimport { minimatch } from '../../../../util/minimatch.ts';\nimport { regEx } from '../../../../util/regex.ts';\nimport { sanitize } from '../../../../util/sanitize.ts';\nimport { compile } from '../../../../util/template/index.ts';\nimport type { BranchConfig, BranchUpgradeConfig } from '../../../types.ts';\n\nexport interface PostUpgradeCommandsExecutionResult {\n updatedArtifacts: FileChange[];\n artifactErrors: ArtifactError[];\n}\n\nexport async function postUpgradeCommandsExecutor(\n filteredUpgradeCommands: BranchUpgradeConfig[],\n config: BranchConfig,\n): Promise<PostUpgradeCommandsExecutionResult> {\n let updatedArtifacts = [...(config.updatedArtifacts ?? [])];\n const artifactErrors = [...(config.artifactErrors ?? [])];\n const allowedCommands = GlobalConfig.get('allowedCommands');\n\n for (const upgrade of filteredUpgradeCommands) {\n addMeta({ dep: upgrade.depName });\n logger.trace(\n {\n tasks: upgrade.postUpgradeTasks,\n allowedCommands,\n },\n `Checking for post-upgrade tasks`,\n );\n const commands = upgrade.postUpgradeTasks?.commands;\n const dataFileTemplate = upgrade.postUpgradeTasks?.dataFileTemplate;\n const fileFilters = upgrade.postUpgradeTasks?.fileFilters ?? ['**/*'];\n if (isNonEmptyArray(commands)) {\n // Persist updated files in file system so any executed commands can see them\n const previouslyModifiedFiles =\n config.updatedPackageFiles!.concat(updatedArtifacts);\n for (const file of previouslyModifiedFiles) {\n const canWriteFile = await localPathIsFile(file.path);\n if (file.type === 'addition' && !file.isSymlink && canWriteFile) {\n let contents: Buffer | null;\n if (typeof file.contents === 'string') {\n contents = Buffer.from(file.contents);\n } else {\n contents = file.contents;\n }\n // TODO #22198\n await writeLocalFile(file.path, contents!);\n }\n }\n\n let dataFilePath: string | null = null;\n if (dataFileTemplate) {\n const dataFileContent = sanitize(\n compile(dataFileTemplate, mergeChildConfig(config, upgrade)),\n );\n logger.debug(\n { dataFileTemplate },\n 'Processed post-upgrade commands data file template.',\n );\n\n const dataFileName = `post-upgrade-data-file-${crypto.randomBytes(8).toString('hex')}.tmp`;\n dataFilePath = upath.join(privateCacheDir(), dataFileName);\n\n try {\n await outputCacheFile(dataFilePath, dataFileContent);\n\n logger.debug(\n { dataFilePath, dataFileContent },\n 'Created post-upgrade commands data file.',\n );\n } catch (error) {\n artifactErrors.push({\n stderr: sanitize(\n `Failed to create post-upgrade commands data file at ${dataFilePath}, reason: ${error.message}`,\n ),\n });\n\n dataFilePath = null;\n }\n }\n\n const workingDirTemplate = upgrade.postUpgradeTasks?.workingDirTemplate;\n let workingDir = GlobalConfig.get('localDir');\n\n if (workingDirTemplate) {\n workingDir = sanitize(\n compile(workingDirTemplate, mergeChildConfig(config, upgrade)),\n );\n workingDir = await ensureLocalDir(workingDir);\n logger.trace(\n { workingDirTemplate },\n 'Processed post-upgrade commands working directory template.',\n );\n }\n\n for (const cmd of commands) {\n const compiledCmd = compile(cmd, mergeChildConfig(config, upgrade));\n if (compiledCmd !== cmd) {\n logger.debug(\n { rawCmd: cmd, compiledCmd },\n 'Post-upgrade command has been compiled',\n );\n }\n if (\n allowedCommands!.some((pattern) => regEx(pattern).test(compiledCmd))\n ) {\n try {\n logger.trace({ cmd: compiledCmd }, 'Executing post-upgrade task');\n\n const execOpts: ExecOptions = {\n // WARNING to self-hosted administrators: always run post-upgrade commands with `shell` mode on, which has the risk of arbitrary environment variable access or additional command execution\n // It is very likely this will be susceptible to these risks, even if you allowlist (via `allowedCommands`), as there may be special characters included in the given commands that can be leveraged here\n shell: GlobalConfig.get(\n 'allowShellExecutorForPostUpgradeCommands',\n false,\n ),\n\n cwd: workingDir,\n extraEnv: getGitEnvironmentVariables(),\n };\n if (dataFilePath) {\n execOpts.env = {\n RENOVATE_POST_UPGRADE_COMMAND_DATA_FILE: dataFilePath,\n };\n }\n if (upgrade.postUpgradeTasks?.installTools) {\n execOpts.toolConstraints ??= [];\n\n for (const [tool] of Object.entries(\n upgrade.postUpgradeTasks?.installTools,\n )) {\n execOpts.toolConstraints.push({\n toolName: tool,\n constraint: upgrade.constraints?.[tool],\n });\n }\n }\n const execResult = await exec(compiledCmd, execOpts);\n\n logger.debug(\n { cmd: compiledCmd, ...execResult },\n 'Executed post-upgrade task',\n );\n } catch (error) {\n artifactErrors.push({\n fileName: upgrade.packageFile,\n stderr: sanitize(error.message),\n });\n }\n } else {\n logger.warn(\n {\n cmd: compiledCmd,\n allowedCommands,\n },\n 'Post-upgrade task did not match any on allowedCommands list',\n );\n artifactErrors.push({\n fileName: upgrade.packageFile,\n stderr: sanitize(\n `Post-upgrade command '${compiledCmd}' has not been added to the allowed list in allowedCommands`,\n ),\n });\n }\n }\n\n const status = await getRepoStatus();\n\n logger.trace({ status }, 'git status after post-upgrade tasks');\n\n logger.debug(\n {\n addedCount: status.not_added?.length,\n modifiedCount: status.modified?.length,\n deletedCount: status.deleted?.length,\n renamedCount: status.renamed?.length,\n },\n 'git status counts after post-upgrade tasks',\n );\n\n const addedOrModifiedFiles = [\n ...coerceArray(status.not_added),\n ...coerceArray(status.modified),\n ...coerceArray(status.renamed?.map((x) => x.to)),\n ];\n const changedFiles = [\n ...addedOrModifiedFiles,\n ...coerceArray(status.deleted),\n ...coerceArray(status.renamed?.map((x) => x.from)),\n ];\n\n // Check for files which were previously deleted but have been re-added without modification\n const previouslyDeletedFiles = updatedArtifacts.filter(\n (ua) => ua.type === 'deletion',\n );\n for (const previouslyDeletedFile of previouslyDeletedFiles) {\n /* v8 ignore if -- TODO: needs test */\n if (!changedFiles.includes(previouslyDeletedFile.path)) {\n logger.debug(\n { file: previouslyDeletedFile.path },\n 'Previously deleted file has been restored without modification',\n );\n updatedArtifacts = updatedArtifacts.filter(\n (ua) =>\n !(\n ua.type === 'deletion' && ua.path === previouslyDeletedFile.path\n ),\n );\n }\n }\n\n logger.trace({ addedOrModifiedFiles }, 'Added or modified files');\n logger.debug(\n `Checking ${addedOrModifiedFiles.length} added or modified files for post-upgrade changes`,\n );\n\n const fileExcludes: string[] = [];\n if (config.npmrc) {\n fileExcludes.push('.npmrc');\n }\n\n for (const relativePath of addedOrModifiedFiles) {\n if (\n fileExcludes.some((pattern) =>\n minimatch(pattern, { dot: true }).match(relativePath),\n )\n ) {\n continue;\n }\n\n let fileMatched = false;\n for (const pattern of fileFilters) {\n if (minimatch(pattern, { dot: true }).match(relativePath)) {\n fileMatched = true;\n logger.debug(\n { file: relativePath, pattern },\n 'Post-upgrade file saved',\n );\n const existingContent = await readLocalFile(relativePath);\n const existingUpdatedArtifacts = updatedArtifacts.find(\n (ua) => ua.path === relativePath,\n );\n if (existingUpdatedArtifacts?.type === 'addition') {\n existingUpdatedArtifacts.contents = existingContent;\n } else {\n updatedArtifacts.push({\n type: 'addition',\n path: relativePath,\n contents: existingContent,\n });\n }\n // If the file is deleted by a previous post-update command, remove the deletion from updatedArtifacts\n updatedArtifacts = updatedArtifacts.filter(\n (ua) => !(ua.type === 'deletion' && ua.path === relativePath),\n );\n }\n }\n if (!fileMatched) {\n logger.debug(\n { file: relativePath },\n 'Post-upgrade file did not match any file filters',\n );\n }\n }\n\n for (const relativePath of coerceArray(status.deleted)) {\n for (const pattern of fileFilters) {\n if (minimatch(pattern, { dot: true }).match(relativePath)) {\n if (\n !updatedArtifacts.some(\n (ua) => ua.path === relativePath && ua.type === 'deletion',\n )\n ) {\n logger.debug(\n { file: relativePath, pattern },\n 'Post-upgrade file removed',\n );\n updatedArtifacts.push({\n type: 'deletion',\n path: relativePath,\n });\n }\n // If the file is created or modified by a previous post-update command, remove the modification from updatedArtifacts\n updatedArtifacts = updatedArtifacts.filter(\n (ua) => !(ua.type === 'addition' && ua.path === relativePath),\n );\n }\n }\n }\n }\n }\n return { updatedArtifacts, artifactErrors };\n}\n\nexport default async function executePostUpgradeCommands(\n config: BranchConfig,\n): Promise<PostUpgradeCommandsExecutionResult | null> {\n const hasChangedFiles =\n (isArray(config.updatedPackageFiles) &&\n config.updatedPackageFiles.length > 0) ||\n (isArray(config.updatedArtifacts) && config.updatedArtifacts.length > 0);\n\n if (!hasChangedFiles) {\n /* Only run post-upgrade tasks if there are changes to package files... */\n logger.debug('No changes to package files, skipping post-upgrade tasks');\n return null;\n }\n\n const branchUpgradeCommands: BranchUpgradeConfig[] = [\n {\n manager: config.manager,\n depName: config.upgrades.map(({ depName }) => depName).join(' '),\n branchName: config.branchName,\n postUpgradeTasks:\n config.postUpgradeTasks!.executionMode === 'branch'\n ? config.postUpgradeTasks\n : undefined,\n },\n ];\n\n const updateUpgradeCommands: BranchUpgradeConfig[] = config.upgrades.filter(\n ({ postUpgradeTasks }) =>\n !postUpgradeTasks?.executionMode ||\n postUpgradeTasks.executionMode === 'update',\n );\n\n const { updatedArtifacts, artifactErrors } =\n await postUpgradeCommandsExecutor(updateUpgradeCommands, config);\n return postUpgradeCommandsExecutor(branchUpgradeCommands, {\n ...config,\n updatedArtifacts,\n artifactErrors,\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAiCA,eAAsB,4BACpB,yBACA,QAC6C;CAC7C,IAAI,mBAAmB,CAAC,GAAI,OAAO,oBAAoB,EAAE,CAAE;CAC3D,MAAM,iBAAiB,CAAC,GAAI,OAAO,kBAAkB,EAAE,CAAE;CACzD,MAAM,kBAAkB,aAAa,IAAI,kBAAkB;AAE3D,MAAK,MAAM,WAAW,yBAAyB;AAC7C,UAAQ,EAAE,KAAK,QAAQ,SAAS,CAAC;AACjC,SAAO,MACL;GACE,OAAO,QAAQ;GACf;GACD,EACD,kCACD;EACD,MAAM,WAAW,QAAQ,kBAAkB;EAC3C,MAAM,mBAAmB,QAAQ,kBAAkB;EACnD,MAAM,cAAc,QAAQ,kBAAkB,eAAe,CAAC,OAAO;AACrE,MAAI,gBAAgB,SAAS,EAAE;GAE7B,MAAM,0BACJ,OAAO,oBAAqB,OAAO,iBAAiB;AACtD,QAAK,MAAM,QAAQ,yBAAyB;IAC1C,MAAM,eAAe,MAAM,gBAAgB,KAAK,KAAK;AACrD,QAAI,KAAK,SAAS,cAAc,CAAC,KAAK,aAAa,cAAc;KAC/D,IAAI;AACJ,SAAI,OAAO,KAAK,aAAa,SAC3B,YAAW,OAAO,KAAK,KAAK,SAAS;SAErC,YAAW,KAAK;AAGlB,WAAM,eAAe,KAAK,MAAM,SAAU;;;GAI9C,IAAI,eAA8B;AAClC,OAAI,kBAAkB;IACpB,MAAM,kBAAkB,SACtB,QAAQ,kBAAkB,iBAAiB,QAAQ,QAAQ,CAAC,CAC7D;AACD,WAAO,MACL,EAAE,kBAAkB,EACpB,sDACD;IAED,MAAM,eAAe,0BAA0B,OAAO,YAAY,EAAE,CAAC,SAAS,MAAM,CAAC;AACrF,mBAAe,MAAM,KAAK,iBAAiB,EAAE,aAAa;AAE1D,QAAI;AACF,WAAM,gBAAgB,cAAc,gBAAgB;AAEpD,YAAO,MACL;MAAE;MAAc;MAAiB,EACjC,2CACD;aACM,OAAO;AACd,oBAAe,KAAK,EAClB,QAAQ,SACN,uDAAuD,aAAa,YAAY,MAAM,UACvF,EACF,CAAC;AAEF,oBAAe;;;GAInB,MAAM,qBAAqB,QAAQ,kBAAkB;GACrD,IAAI,aAAa,aAAa,IAAI,WAAW;AAE7C,OAAI,oBAAoB;AACtB,iBAAa,SACX,QAAQ,oBAAoB,iBAAiB,QAAQ,QAAQ,CAAC,CAC/D;AACD,iBAAa,MAAM,eAAe,WAAW;AAC7C,WAAO,MACL,EAAE,oBAAoB,EACtB,8DACD;;AAGH,QAAK,MAAM,OAAO,UAAU;IAC1B,MAAM,cAAc,QAAQ,KAAK,iBAAiB,QAAQ,QAAQ,CAAC;AACnE,QAAI,gBAAgB,IAClB,QAAO,MACL;KAAE,QAAQ;KAAK;KAAa,EAC5B,yCACD;AAEH,QACE,gBAAiB,MAAM,YAAY,MAAM,QAAQ,CAAC,KAAK,YAAY,CAAC,CAEpE,KAAI;AACF,YAAO,MAAM,EAAE,KAAK,aAAa,EAAE,8BAA8B;KAEjE,MAAM,WAAwB;MAG5B,OAAO,aAAa,IAClB,4CACA,MACD;MAED,KAAK;MACL,UAAU,4BAA4B;MACvC;AACD,SAAI,aACF,UAAS,MAAM,EACb,yCAAyC,cAC1C;AAEH,SAAI,QAAQ,kBAAkB,cAAc;AAC1C,eAAS,oBAAoB,EAAE;AAE/B,WAAK,MAAM,CAAC,SAAS,OAAO,QAC1B,QAAQ,kBAAkB,aAC3B,CACC,UAAS,gBAAgB,KAAK;OAC5B,UAAU;OACV,YAAY,QAAQ,cAAc;OACnC,CAAC;;KAGN,MAAM,aAAa,MAAM,KAAK,aAAa,SAAS;AAEpD,YAAO,MACL;MAAE,KAAK;MAAa,GAAG;MAAY,EACnC,6BACD;aACM,OAAO;AACd,oBAAe,KAAK;MAClB,UAAU,QAAQ;MAClB,QAAQ,SAAS,MAAM,QAAQ;MAChC,CAAC;;SAEC;AACL,YAAO,KACL;MACE,KAAK;MACL;MACD,EACD,8DACD;AACD,oBAAe,KAAK;MAClB,UAAU,QAAQ;MAClB,QAAQ,SACN,yBAAyB,YAAY,6DACtC;MACF,CAAC;;;GAIN,MAAM,SAAS,MAAM,eAAe;AAEpC,UAAO,MAAM,EAAE,QAAQ,EAAE,sCAAsC;AAE/D,UAAO,MACL;IACE,YAAY,OAAO,WAAW;IAC9B,eAAe,OAAO,UAAU;IAChC,cAAc,OAAO,SAAS;IAC9B,cAAc,OAAO,SAAS;IAC/B,EACD,6CACD;GAED,MAAM,uBAAuB;IAC3B,GAAG,YAAY,OAAO,UAAU;IAChC,GAAG,YAAY,OAAO,SAAS;IAC/B,GAAG,YAAY,OAAO,SAAS,KAAK,MAAM,EAAE,GAAG,CAAC;IACjD;GACD,MAAM,eAAe;IACnB,GAAG;IACH,GAAG,YAAY,OAAO,QAAQ;IAC9B,GAAG,YAAY,OAAO,SAAS,KAAK,MAAM,EAAE,KAAK,CAAC;IACnD;GAGD,MAAM,yBAAyB,iBAAiB,QAC7C,OAAO,GAAG,SAAS,WACrB;AACD,QAAK,MAAM,yBAAyB;;AAElC,OAAI,CAAC,aAAa,SAAS,sBAAsB,KAAK,EAAE;AACtD,WAAO,MACL,EAAE,MAAM,sBAAsB,MAAM,EACpC,iEACD;AACD,uBAAmB,iBAAiB,QACjC,OACC,EACE,GAAG,SAAS,cAAc,GAAG,SAAS,sBAAsB,MAEjE;;AAIL,UAAO,MAAM,EAAE,sBAAsB,EAAE,0BAA0B;AACjE,UAAO,MACL,YAAY,qBAAqB,OAAO,mDACzC;GAED,MAAM,eAAyB,EAAE;AACjC,OAAI,OAAO,MACT,cAAa,KAAK,SAAS;AAG7B,QAAK,MAAM,gBAAgB,sBAAsB;AAC/C,QACE,aAAa,MAAM,YACjB,UAAU,SAAS,EAAE,KAAK,MAAM,CAAC,CAAC,MAAM,aAAa,CACtD,CAED;IAGF,IAAI,cAAc;AAClB,SAAK,MAAM,WAAW,YACpB,KAAI,UAAU,SAAS,EAAE,KAAK,MAAM,CAAC,CAAC,MAAM,aAAa,EAAE;AACzD,mBAAc;AACd,YAAO,MACL;MAAE,MAAM;MAAc;MAAS,EAC/B,0BACD;KACD,MAAM,kBAAkB,MAAM,cAAc,aAAa;KACzD,MAAM,2BAA2B,iBAAiB,MAC/C,OAAO,GAAG,SAAS,aACrB;AACD,SAAI,0BAA0B,SAAS,WACrC,0BAAyB,WAAW;SAEpC,kBAAiB,KAAK;MACpB,MAAM;MACN,MAAM;MACN,UAAU;MACX,CAAC;AAGJ,wBAAmB,iBAAiB,QACjC,OAAO,EAAE,GAAG,SAAS,cAAc,GAAG,SAAS,cACjD;;AAGL,QAAI,CAAC,YACH,QAAO,MACL,EAAE,MAAM,cAAc,EACtB,mDACD;;AAIL,QAAK,MAAM,gBAAgB,YAAY,OAAO,QAAQ,CACpD,MAAK,MAAM,WAAW,YACpB,KAAI,UAAU,SAAS,EAAE,KAAK,MAAM,CAAC,CAAC,MAAM,aAAa,EAAE;AACzD,QACE,CAAC,iBAAiB,MACf,OAAO,GAAG,SAAS,gBAAgB,GAAG,SAAS,WACjD,EACD;AACA,YAAO,MACL;MAAE,MAAM;MAAc;MAAS,EAC/B,4BACD;AACD,sBAAiB,KAAK;MACpB,MAAM;MACN,MAAM;MACP,CAAC;;AAGJ,uBAAmB,iBAAiB,QACjC,OAAO,EAAE,GAAG,SAAS,cAAc,GAAG,SAAS,cACjD;;;;AAMX,QAAO;EAAE;EAAkB;EAAgB;;AAG7C,eAA8B,2BAC5B,QACoD;AAMpD,KAAI,EAJD,QAAQ,OAAO,oBAAoB,IAClC,OAAO,oBAAoB,SAAS,KACrC,QAAQ,OAAO,iBAAiB,IAAI,OAAO,iBAAiB,SAAS,IAElD;AAEpB,SAAO,MAAM,2DAA2D;AACxE,SAAO;;CAGT,MAAM,wBAA+C,CACnD;EACE,SAAS,OAAO;EAChB,SAAS,OAAO,SAAS,KAAK,EAAE,cAAc,QAAQ,CAAC,KAAK,IAAI;EAChE,YAAY,OAAO;EACnB,kBACE,OAAO,iBAAkB,kBAAkB,WACvC,OAAO,mBACP,KAAA;EACP,CACF;CAQD,MAAM,EAAE,kBAAkB,mBACxB,MAAM,4BAP6C,OAAO,SAAS,QAClE,EAAE,uBACD,CAAC,kBAAkB,iBACnB,iBAAiB,kBAAkB,SACtC,EAG0D,OAAO;AAClE,QAAO,4BAA4B,uBAAuB;EACxD,GAAG;EACH;EACA;EACD,CAAC"}
|
|
1
|
+
{"version":3,"file":"execute-post-upgrade-commands.js","names":[],"sources":["../../../../../lib/workers/repository/update/branch/execute-post-upgrade-commands.ts"],"sourcesContent":["// TODO #22198\nimport { isArray, isNonEmptyArray } from '@sindresorhus/is';\nimport crypto from 'crypto';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../../../config/global.ts';\nimport { mergeChildConfig } from '../../../../config/index.ts';\nimport { addMeta, logger } from '../../../../logger/index.ts';\nimport type { ArtifactError } from '../../../../modules/manager/types.ts';\nimport { coerceArray } from '../../../../util/array.ts';\nimport { exec } from '../../../../util/exec/index.ts';\nimport {\n type ExecOptions,\n isConstraintName,\n isToolName,\n} from '../../../../util/exec/types.ts';\nimport {\n ensureLocalDir,\n localPathIsFile,\n outputCacheFile,\n privateCacheDir,\n readLocalFile,\n writeLocalFile,\n} from '../../../../util/fs/index.ts';\nimport { getGitEnvironmentVariables } from '../../../../util/git/auth.ts';\nimport { getRepoStatus } from '../../../../util/git/index.ts';\nimport type { FileChange } from '../../../../util/git/types.ts';\nimport { minimatch } from '../../../../util/minimatch.ts';\nimport { regEx } from '../../../../util/regex.ts';\nimport { sanitize } from '../../../../util/sanitize.ts';\nimport { compile } from '../../../../util/template/index.ts';\nimport type { BranchConfig, BranchUpgradeConfig } from '../../../types.ts';\n\nexport interface PostUpgradeCommandsExecutionResult {\n updatedArtifacts: FileChange[];\n artifactErrors: ArtifactError[];\n}\n\nexport async function postUpgradeCommandsExecutor(\n filteredUpgradeCommands: BranchUpgradeConfig[],\n config: BranchConfig,\n): Promise<PostUpgradeCommandsExecutionResult> {\n let updatedArtifacts = [...(config.updatedArtifacts ?? [])];\n const artifactErrors = [...(config.artifactErrors ?? [])];\n const allowedCommands = GlobalConfig.get('allowedCommands');\n\n for (const upgrade of filteredUpgradeCommands) {\n addMeta({ dep: upgrade.depName });\n logger.trace(\n {\n tasks: upgrade.postUpgradeTasks,\n allowedCommands,\n },\n `Checking for post-upgrade tasks`,\n );\n const commands = upgrade.postUpgradeTasks?.commands;\n const dataFileTemplate = upgrade.postUpgradeTasks?.dataFileTemplate;\n const fileFilters = upgrade.postUpgradeTasks?.fileFilters ?? ['**/*'];\n if (isNonEmptyArray(commands)) {\n // Persist updated files in file system so any executed commands can see them\n const previouslyModifiedFiles =\n config.updatedPackageFiles!.concat(updatedArtifacts);\n for (const file of previouslyModifiedFiles) {\n const canWriteFile = await localPathIsFile(file.path);\n if (file.type === 'addition' && !file.isSymlink && canWriteFile) {\n let contents: Buffer | null;\n if (typeof file.contents === 'string') {\n contents = Buffer.from(file.contents);\n } else {\n contents = file.contents;\n }\n // TODO #22198\n await writeLocalFile(file.path, contents!);\n }\n }\n\n let dataFilePath: string | null = null;\n if (dataFileTemplate) {\n const dataFileContent = sanitize(\n compile(dataFileTemplate, mergeChildConfig(config, upgrade)),\n );\n logger.debug(\n { dataFileTemplate },\n 'Processed post-upgrade commands data file template.',\n );\n\n const dataFileName = `post-upgrade-data-file-${crypto.randomBytes(8).toString('hex')}.tmp`;\n dataFilePath = upath.join(privateCacheDir(), dataFileName);\n\n try {\n await outputCacheFile(dataFilePath, dataFileContent);\n\n logger.debug(\n { dataFilePath, dataFileContent },\n 'Created post-upgrade commands data file.',\n );\n } catch (error) {\n artifactErrors.push({\n stderr: sanitize(\n `Failed to create post-upgrade commands data file at ${dataFilePath}, reason: ${error.message}`,\n ),\n });\n\n dataFilePath = null;\n }\n }\n\n const workingDirTemplate = upgrade.postUpgradeTasks?.workingDirTemplate;\n let workingDir = GlobalConfig.get('localDir');\n\n if (workingDirTemplate) {\n workingDir = sanitize(\n compile(workingDirTemplate, mergeChildConfig(config, upgrade)),\n );\n workingDir = await ensureLocalDir(workingDir);\n logger.trace(\n { workingDirTemplate },\n 'Processed post-upgrade commands working directory template.',\n );\n }\n\n for (const cmd of commands) {\n const compiledCmd = compile(cmd, mergeChildConfig(config, upgrade));\n if (compiledCmd !== cmd) {\n logger.debug(\n { rawCmd: cmd, compiledCmd },\n 'Post-upgrade command has been compiled',\n );\n }\n if (\n allowedCommands!.some((pattern) => regEx(pattern).test(compiledCmd))\n ) {\n try {\n logger.trace({ cmd: compiledCmd }, 'Executing post-upgrade task');\n\n const execOpts: ExecOptions = {\n // WARNING to self-hosted administrators: always run post-upgrade commands with `shell` mode on, which has the risk of arbitrary environment variable access or additional command execution\n // It is very likely this will be susceptible to these risks, even if you allowlist (via `allowedCommands`), as there may be special characters included in the given commands that can be leveraged here\n shell: GlobalConfig.get(\n 'allowShellExecutorForPostUpgradeCommands',\n false,\n ),\n\n cwd: workingDir,\n extraEnv: getGitEnvironmentVariables(),\n };\n if (dataFilePath) {\n execOpts.env = {\n RENOVATE_POST_UPGRADE_COMMAND_DATA_FILE: dataFilePath,\n };\n }\n if (upgrade.postUpgradeTasks?.installTools) {\n execOpts.toolConstraints ??= [];\n\n for (const [tool] of Object.entries(\n upgrade.postUpgradeTasks?.installTools,\n )) {\n const validTool = isToolName(tool);\n const validConstraint = isConstraintName(tool);\n if (!validTool) {\n logger.warn(\n {\n tool,\n validTool,\n validConstraint,\n },\n `Skipping ${validConstraint ? 'valid' : 'invalid'} constraint that is not a tool that Containerbase knows`,\n );\n continue;\n }\n\n execOpts.toolConstraints.push({\n toolName: tool,\n constraint: upgrade.constraints?.[tool],\n });\n }\n }\n const execResult = await exec(compiledCmd, execOpts);\n\n logger.debug(\n { cmd: compiledCmd, ...execResult },\n 'Executed post-upgrade task',\n );\n } catch (error) {\n artifactErrors.push({\n fileName: upgrade.packageFile,\n stderr: sanitize(error.message),\n });\n }\n } else {\n logger.warn(\n {\n cmd: compiledCmd,\n allowedCommands,\n },\n 'Post-upgrade task did not match any on allowedCommands list',\n );\n artifactErrors.push({\n fileName: upgrade.packageFile,\n stderr: sanitize(\n `Post-upgrade command '${compiledCmd}' has not been added to the allowed list in allowedCommands`,\n ),\n });\n }\n }\n\n const status = await getRepoStatus();\n\n logger.trace({ status }, 'git status after post-upgrade tasks');\n\n logger.debug(\n {\n addedCount: status.not_added?.length,\n modifiedCount: status.modified?.length,\n deletedCount: status.deleted?.length,\n renamedCount: status.renamed?.length,\n },\n 'git status counts after post-upgrade tasks',\n );\n\n const addedOrModifiedFiles = [\n ...coerceArray(status.not_added),\n ...coerceArray(status.modified),\n ...coerceArray(status.renamed?.map((x) => x.to)),\n ];\n const changedFiles = [\n ...addedOrModifiedFiles,\n ...coerceArray(status.deleted),\n ...coerceArray(status.renamed?.map((x) => x.from)),\n ];\n\n // Check for files which were previously deleted but have been re-added without modification\n const previouslyDeletedFiles = updatedArtifacts.filter(\n (ua) => ua.type === 'deletion',\n );\n for (const previouslyDeletedFile of previouslyDeletedFiles) {\n /* v8 ignore if -- TODO: needs test */\n if (!changedFiles.includes(previouslyDeletedFile.path)) {\n logger.debug(\n { file: previouslyDeletedFile.path },\n 'Previously deleted file has been restored without modification',\n );\n updatedArtifacts = updatedArtifacts.filter(\n (ua) =>\n !(\n ua.type === 'deletion' && ua.path === previouslyDeletedFile.path\n ),\n );\n }\n }\n\n logger.trace({ addedOrModifiedFiles }, 'Added or modified files');\n logger.debug(\n `Checking ${addedOrModifiedFiles.length} added or modified files for post-upgrade changes`,\n );\n\n const fileExcludes: string[] = [];\n if (config.npmrc) {\n fileExcludes.push('.npmrc');\n }\n\n for (const relativePath of addedOrModifiedFiles) {\n if (\n fileExcludes.some((pattern) =>\n minimatch(pattern, { dot: true }).match(relativePath),\n )\n ) {\n continue;\n }\n\n let fileMatched = false;\n for (const pattern of fileFilters) {\n if (minimatch(pattern, { dot: true }).match(relativePath)) {\n fileMatched = true;\n logger.debug(\n { file: relativePath, pattern },\n 'Post-upgrade file saved',\n );\n const existingContent = await readLocalFile(relativePath);\n const existingUpdatedArtifacts = updatedArtifacts.find(\n (ua) => ua.path === relativePath,\n );\n if (existingUpdatedArtifacts?.type === 'addition') {\n existingUpdatedArtifacts.contents = existingContent;\n } else {\n updatedArtifacts.push({\n type: 'addition',\n path: relativePath,\n contents: existingContent,\n });\n }\n // If the file is deleted by a previous post-update command, remove the deletion from updatedArtifacts\n updatedArtifacts = updatedArtifacts.filter(\n (ua) => !(ua.type === 'deletion' && ua.path === relativePath),\n );\n }\n }\n if (!fileMatched) {\n logger.debug(\n { file: relativePath },\n 'Post-upgrade file did not match any file filters',\n );\n }\n }\n\n for (const relativePath of coerceArray(status.deleted)) {\n for (const pattern of fileFilters) {\n if (minimatch(pattern, { dot: true }).match(relativePath)) {\n if (\n !updatedArtifacts.some(\n (ua) => ua.path === relativePath && ua.type === 'deletion',\n )\n ) {\n logger.debug(\n { file: relativePath, pattern },\n 'Post-upgrade file removed',\n );\n updatedArtifacts.push({\n type: 'deletion',\n path: relativePath,\n });\n }\n // If the file is created or modified by a previous post-update command, remove the modification from updatedArtifacts\n updatedArtifacts = updatedArtifacts.filter(\n (ua) => !(ua.type === 'addition' && ua.path === relativePath),\n );\n }\n }\n }\n }\n }\n return { updatedArtifacts, artifactErrors };\n}\n\nexport default async function executePostUpgradeCommands(\n config: BranchConfig,\n): Promise<PostUpgradeCommandsExecutionResult | null> {\n const hasChangedFiles =\n (isArray(config.updatedPackageFiles) &&\n config.updatedPackageFiles.length > 0) ||\n (isArray(config.updatedArtifacts) && config.updatedArtifacts.length > 0);\n\n if (!hasChangedFiles) {\n /* Only run post-upgrade tasks if there are changes to package files... */\n logger.debug('No changes to package files, skipping post-upgrade tasks');\n return null;\n }\n\n const branchUpgradeCommands: BranchUpgradeConfig[] = [\n {\n manager: config.manager,\n depName: config.upgrades.map(({ depName }) => depName).join(' '),\n branchName: config.branchName,\n postUpgradeTasks:\n config.postUpgradeTasks!.executionMode === 'branch'\n ? config.postUpgradeTasks\n : undefined,\n },\n ];\n\n const updateUpgradeCommands: BranchUpgradeConfig[] = config.upgrades.filter(\n ({ postUpgradeTasks }) =>\n !postUpgradeTasks?.executionMode ||\n postUpgradeTasks.executionMode === 'update',\n );\n\n const { updatedArtifacts, artifactErrors } =\n await postUpgradeCommandsExecutor(updateUpgradeCommands, config);\n return postUpgradeCommandsExecutor(branchUpgradeCommands, {\n ...config,\n updatedArtifacts,\n artifactErrors,\n });\n}\n"],"mappings":"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"}
|
package/dist/workers/types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ConstraintName } from "../util/exec/types.js";
|
|
1
2
|
import { Timestamp } from "../util/timestamp.js";
|
|
2
3
|
import { Release } from "../modules/datasource/types.js";
|
|
3
4
|
import { FileChange } from "../util/git/types.js";
|
|
@@ -86,7 +87,7 @@ interface BranchUpgradeConfig extends Merge<RenovateConfig, PackageDependency>,
|
|
|
86
87
|
sourceRepo?: string;
|
|
87
88
|
sourceRepoOrg?: string;
|
|
88
89
|
sourceRepoName?: string;
|
|
89
|
-
constraints?: Record<
|
|
90
|
+
constraints?: Partial<Record<ConstraintName, string>>;
|
|
90
91
|
}
|
|
91
92
|
type PrBlockedBy = 'BranchAutomerge' | 'NeedsApproval' | 'AwaitingTests' | 'RateLimited' | 'Error';
|
|
92
93
|
type BranchResult = 'already-existed' | 'automerged' | 'done' | 'error' | 'needs-approval' | 'needs-pr-approval' | 'not-scheduled' | 'no-work' | 'pending' | 'pr-created' | 'pr-edited' | 'pr-limit-reached' | 'commit-per-run-limit-reached' | 'commit-hourly-limit-reached' | 'branch-limit-reached' | 'rebase' | 'update-not-scheduled' | 'minimum-group-size-not-met';
|
package/package.json
CHANGED
package/renovate-schema.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$id": "https://docs.renovatebot.com/renovate-schema.json",
|
|
3
|
-
"title": "JSON schema for Renovate 43.
|
|
3
|
+
"title": "JSON schema for Renovate 43.114.0 config files (https://renovatebot.com/)",
|
|
4
4
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
5
|
-
"x-renovate-version": "43.
|
|
5
|
+
"x-renovate-version": "43.114.0",
|
|
6
6
|
"allowComments": true,
|
|
7
7
|
"type": "object",
|
|
8
8
|
"properties": {
|