renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
251 lines (247 loc) • 7.47 kB
TypeScript
import { VersioningName } from "../../versioning-list.generated.js";
import { Options } from "execa";
//#region lib/util/exec/types.d.ts
interface ConstraintDefinition {
name: string;
description?: string;
}
/**
* A `tool` that Containerbase supports.
*
* TODO #41849 replace with upstream types
*/
declare const toolDefinitions: [{
readonly name: 'bazelisk';
}, {
readonly name: 'bun';
}, {
readonly name: 'bundler';
}, {
readonly name: 'cocoapods';
}, {
readonly name: 'composer';
}, {
readonly name: 'conan';
}, {
readonly name: 'copier';
}, {
readonly name: 'corepack';
}, {
readonly name: 'deno';
}, {
readonly name: 'devbox';
}, {
readonly name: 'dotnet';
}, {
readonly name: 'erlang';
}, {
readonly name: 'elixir';
}, {
readonly name: 'flux';
}, {
readonly name: 'gleam';
}, {
readonly name: 'golang';
}, {
readonly name: 'gradle';
}, {
readonly name: 'hashin';
}, {
readonly name: 'helm';
}, {
readonly name: 'helmfile';
}, {
readonly name: 'java';
}, {
readonly name: 'java-maven';
}, {
readonly name: 'jb';
}, {
readonly name: 'kustomize';
}, {
readonly name: 'maven';
}, {
readonly name: 'mise';
}, {
readonly name: 'nix';
}, {
readonly name: 'node';
}, {
readonly name: 'npm';
}, {
readonly name: 'pdm';
}, {
readonly name: 'php';
}, {
readonly name: 'pip-tools';
}, {
readonly name: 'pipenv';
}, {
readonly name: 'pnpm';
}, {
readonly name: 'pixi';
}, {
readonly name: 'poetry';
}, {
readonly name: 'python';
}, {
readonly name: 'ruby';
readonly description: 'Also used in the `rubygems` Datasource';
}, {
readonly name: 'rust';
}, {
readonly name: 'uv';
}, {
readonly name: 'yarn';
}, {
readonly name: 'yarn-slim';
}, {
readonly name: 'dart';
}, {
readonly name: 'flutter';
}, {
readonly name: 'vendir';
}];
/**
* A `tool` that Containerbase supports.
*/
type ToolName = (typeof toolDefinitions)[number]['name'];
/**
* A `tool` that Containerbase supports.
*/
declare const toolNames: ToolName[];
declare function isToolName(value: unknown): value is ToolName;
/**
* Additional constraints that can be specified for some Managers, but are **not** tools that Containerbase supports, with optional description.
*/
declare const additionalConstraintDefinitions: [{
readonly name: 'go';
readonly description: `Used in the \`gomod\` manager to specify the version of the Go toolchain to use.
In precedence order:
1. config: \`constraints.go\`
1. \`go.mod\`: \`toolchain\` directive
1. \`go.mod\`: \`go\` directive
NOTE that the \`constraints.golang\` is not used (https://github.com/renovatebot/renovate/issues/42601)
`;
}, {
readonly name: 'gomodMod';
readonly description: `Used in the \`gomod\` manager to specify a tag for [\`github.com/marwan-at-work/mod\`](https://github.com/marwan-at-work/mod).
Must be prefixed with \`v\`.`;
}, {
readonly name: 'jenkins';
readonly description: 'Used in the `jenkins-plugins` datasource to specify a minimum version of Jenkins that a plugin must support.';
}, {
readonly name: 'pipTools';
readonly description: 'Used in the `pip-compile` manager to specify a version of `pip-tools` to use. @deprecated TODO remove in #42599';
}, {
readonly name: 'platform';
readonly description: 'Used in the `rubygems` datasource to specify the `platform` that the Gem dependency supports.';
}, {
readonly name: 'rubygems';
readonly description: 'Used in the `rubygems` datasource to specify the version of the `rubygems` tool that is needed to use this Gem.';
}, {
readonly name: 'vscode';
readonly description: 'Used in the `npm` manager to track the version of VSCode that the package is compatible with.';
}, {
readonly name: 'dotnet-sdk';
readonly description: 'Used in the `nuget` manager to track .NET SDK version required.';
}, {
readonly name: 'perl';
readonly description: 'Used in the `cpanfile` manager to track Perl version required.';
}, {
readonly name: '%goMod';
readonly description: 'Used in the `gomod` manager to determine the [minimum version of Go required to use this module](https://go.dev/ref/mod#go-mod-file-go).\n\nNote that this is prefixed with a `%` to explicilty note that this is not a tool that Containerbase knows.';
}];
/**
* Additional constraints that can be specified for some Managers, but are **not** tools that Containerbase supports.
*/
type AdditionalConstraintName = (typeof additionalConstraintDefinitions)[number]['name'];
/**
* Additional constraints that can be specified for some Managers, but are **not** tools that Containerbase supports.
*/
declare const additionalConstraintNames: AdditionalConstraintName[];
declare function isAdditionalConstraintName(value: unknown): value is AdditionalConstraintName;
/**
* A name usable as a key in a `constraints` record, which may be tools that Containerbase supports.
*/
type ConstraintName = ToolName | AdditionalConstraintName;
declare function isConstraintName(value: unknown): value is ConstraintName;
interface ToolConstraint {
toolName: ToolName;
constraint?: string | null;
}
interface ToolConfig {
datasource: string;
extractVersion?: string;
packageName: string;
versioning: VersioningName;
}
type Opt<T> = T | null | undefined;
type VolumesPair = [string, string];
type VolumeOption = Opt<string | VolumesPair>;
interface DockerOptions {
volumes?: Opt<VolumeOption[]>;
envVars?: Opt<Opt<string>[]>;
cwd?: Opt<string>;
}
type DataListener = (chunk: any) => void;
interface OutputListeners {
stdout?: DataListener[];
stderr?: DataListener[];
}
interface OutputWriter {
write(chunk: Buffer): void;
toString(): string;
}
interface OutputWriters {
stdout?: OutputWriter;
stderr?: OutputWriter;
}
interface RawExecOptions extends Options {
maxBuffer?: number | undefined;
cwd?: string;
outputListeners?: OutputListeners;
outputWriters?: OutputWriters;
}
interface ExecResult {
stdout: string;
stderr: string;
/**
* The process' exit code in the case of a failure.
*
* This is only set if using `ignoreFailure` when executing a command
*
*/
exitCode?: number;
}
type ExtraEnv<T = unknown> = Record<string, T>;
interface ExecOptions {
cwd?: string;
cwdFile?: string;
env?: Opt<ExtraEnv>;
extraEnv?: Opt<ExtraEnv>;
docker?: Opt<DockerOptions>;
toolConstraints?: Opt<ToolConstraint[]>;
preCommands?: Opt<string[]>;
ignoreStdout?: boolean;
maxBuffer?: number | undefined;
timeout?: number | undefined;
shell?: boolean | string | undefined;
}
/**
* configuration that can be configured on a per-command basis, that doesn't make sense to be on the `RawExecOptions`
*/
interface CommandWithOptions {
command: string[];
/** do not throw errors when a command fails, but do log that an error occurred */
ignoreFailure?: boolean;
/**
* Execute the `command` within a shell
*
* WARNING this can result in security issues if this includes user-controlled commands
* **/
shell?: boolean | string;
}
//#endregion
export { AdditionalConstraintName, CommandWithOptions, ConstraintDefinition, ConstraintName, DataListener, DockerOptions, ExecOptions, ExecResult, ExtraEnv, Opt, OutputListeners, OutputWriter, OutputWriters, RawExecOptions, ToolConfig, ToolConstraint, ToolName, VolumeOption, VolumesPair, additionalConstraintDefinitions, additionalConstraintNames, isAdditionalConstraintName, isConstraintName, isToolName, toolDefinitions, toolNames };
//# sourceMappingURL=types.d.ts.map