@containerbase/base 14.45.0 → 14.47.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/README.md +33 -1
- package/data/tools.json +23 -23
- package/dist/containerbase.d.ts +46 -0
- package/dist/containerbase.js +84 -0
- package/dist/data.d.ts +53 -15
- package/dist/data.js +23 -23
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -33,7 +33,7 @@ The raw data and its json schema are also exported, for consumers which don't us
|
|
|
33
33
|
import tools from '@containerbase/base/tools.json' with { type: 'json' };
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
-
The zod schemas live behind a separate entry point, so the default export
|
|
36
|
+
The zod schemas live behind a separate entry point, so the default export only depends on `semver`:
|
|
37
37
|
|
|
38
38
|
```ts
|
|
39
39
|
import { SupportedTools, ToolName } from '@containerbase/base/zod';
|
|
@@ -74,6 +74,38 @@ isToolVersionsFormat(
|
|
|
74
74
|
); // false
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
+
The containerbase image embeds the tool-versions data, a reader running in the image can use it when the site can't be reached:
|
|
78
|
+
|
|
79
|
+
```ts
|
|
80
|
+
import {
|
|
81
|
+
isContainerbase,
|
|
82
|
+
toolVersionsFormatPath,
|
|
83
|
+
toolVersionsPath,
|
|
84
|
+
} from '@containerbase/base';
|
|
85
|
+
|
|
86
|
+
if (isContainerbase()) {
|
|
87
|
+
// eg. '/usr/local/containerbase/tool-versions/v1/node.json'
|
|
88
|
+
const file = `${toolVersionsPath}/${toolVersionsFormatPath}/node.json`;
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
`isContainerbase()` checks the `CONTAINERBASE` variable the image sets, pass another environment to check that one instead of `process.env`.
|
|
93
|
+
|
|
94
|
+
`validateContainerbaseVersion()` reads the version of the image from `/usr/local/containerbase/version` (`containerbaseVersionFile`) and throws when the image doesn't support everything this package describes: it needs the same major version as this package and the same or a newer minor or patch version.
|
|
95
|
+
Development images, whose version is a git sha or `0.0.0-…`, aren't checked; a missing or empty version file throws.
|
|
96
|
+
Call it on startup when `isContainerbase()` is true; `isCompatibleVersion(imageVersion)` does the comparison without reading the file, and `packageVersion` is the version it compares with:
|
|
97
|
+
|
|
98
|
+
```ts
|
|
99
|
+
import {
|
|
100
|
+
isContainerbase,
|
|
101
|
+
validateContainerbaseVersion,
|
|
102
|
+
} from '@containerbase/base';
|
|
103
|
+
|
|
104
|
+
if (isContainerbase()) {
|
|
105
|
+
await validateContainerbaseVersion(); // eg. '14.2.0', or throws
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
77
109
|
The schemas ignore unknown keys and accept any arch name, so additive changes of the format don't break a reader; readers ignore files of an arch they don't know.
|
|
78
110
|
|
|
79
111
|
## Contents
|
package/data/tools.json
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"tools": {
|
|
3
|
-
"android-sdk-cmdline-tools": { "parent": "java" },
|
|
4
|
-
"apko": {},
|
|
5
|
-
"apm": {},
|
|
6
|
-
"bazelisk": {},
|
|
3
|
+
"android-sdk-cmdline-tools": { "parent": "java", "minVersion": "1" },
|
|
4
|
+
"apko": { "minVersion": "0.1.1" },
|
|
5
|
+
"apm": { "minVersion": "0.4.0" },
|
|
6
|
+
"bazelisk": { "minVersion": "0.0.1" },
|
|
7
7
|
"bower": { "type": "npm", "parent": "node", "deprecated": true },
|
|
8
|
-
"buf": {},
|
|
9
|
-
"buildx": { "parent": "docker" },
|
|
8
|
+
"buf": { "minVersion": "0.1.0" },
|
|
9
|
+
"buildx": { "parent": "docker", "minVersion": "0.2.0" },
|
|
10
10
|
"bun": { "minVersion": "0.5.3" },
|
|
11
11
|
"bundler": { "type": "gem", "parent": "ruby" },
|
|
12
12
|
"cabal": { "minVersion": "3.4.1.0" },
|
|
13
13
|
"checkov": { "type": "pip", "parent": "python" },
|
|
14
14
|
"cocoapods": { "type": "gem", "parent": "ruby" },
|
|
15
|
-
"composer": { "parent": "php" },
|
|
15
|
+
"composer": { "parent": "php", "minVersion": "1.0.0" },
|
|
16
16
|
"conan": { "type": "pip", "parent": "python" },
|
|
17
17
|
"copier": { "type": "pip", "parent": "python" },
|
|
18
18
|
"corepack": { "type": "npm", "parent": "node" },
|
|
19
19
|
"dart": { "minVersion": "2.0.0" },
|
|
20
20
|
"deno": { "minVersion": "2.0.1" },
|
|
21
|
-
"devbox": {},
|
|
21
|
+
"devbox": { "minVersion": "0.0.6" },
|
|
22
22
|
"docker": { "minVersion": "20.10.0" },
|
|
23
23
|
"docker-compose": { "parent": "docker", "minVersion": "2.0.1" },
|
|
24
24
|
"dotnet": { "minVersion": "6.0.100" },
|
|
25
|
-
"elixir": { "parent": "erlang" },
|
|
25
|
+
"elixir": { "parent": "erlang", "minVersion": "1.4.3" },
|
|
26
26
|
"erlang": { "minVersion": "24.2.0.0" },
|
|
27
27
|
"flutter": { "minVersion": "1.22.6" },
|
|
28
28
|
"flux": { "minVersion": "0.6.0" },
|
|
@@ -31,28 +31,28 @@
|
|
|
31
31
|
"git": { "root": true, "minVersion": "2.48.0" },
|
|
32
32
|
"git-lfs": { "parent": "git", "minVersion": "2.6.0" },
|
|
33
33
|
"gleam": { "minVersion": "0.23.0" },
|
|
34
|
-
"golang": {},
|
|
35
|
-
"gradle": { "parent": "java" },
|
|
34
|
+
"golang": { "minVersion": "1.9.0" },
|
|
35
|
+
"gradle": { "parent": "java", "minVersion": "1.0" },
|
|
36
36
|
"hashin": { "type": "pip", "parent": "python" },
|
|
37
37
|
"helm": { "minVersion": "3.1.0" },
|
|
38
|
-
"helmfile": {},
|
|
38
|
+
"helmfile": { "minVersion": "0.145.0" },
|
|
39
39
|
"java": { "minVersion": "8.0.302+8" },
|
|
40
40
|
"java-jdk": { "minVersion": "8.0.302+8" },
|
|
41
41
|
"java-jre": { "minVersion": "8.0.302+8" },
|
|
42
|
-
"jb": {},
|
|
42
|
+
"jb": { "minVersion": "0.2.0" },
|
|
43
43
|
"jq": { "minVersion": "1.7.1" },
|
|
44
44
|
"kas": { "type": "pip", "parent": "python" },
|
|
45
45
|
"kubectl": { "minVersion": "1.13.11" },
|
|
46
46
|
"kustomize": { "minVersion": "3.3.0" },
|
|
47
47
|
"lerna": { "type": "npm", "parent": "node", "deprecated": true },
|
|
48
|
-
"maven": { "parent": "java" },
|
|
48
|
+
"maven": { "parent": "java", "minVersion": "3.0.4" },
|
|
49
49
|
"mise": { "minVersion": "2024.1.0" },
|
|
50
|
-
"mono": {},
|
|
50
|
+
"mono": { "minVersion": "6.14.1" },
|
|
51
51
|
"nix": { "minVersion": "2.10.3" },
|
|
52
|
-
"node": {},
|
|
52
|
+
"node": { "minVersion": "8.7.0" },
|
|
53
53
|
"npm": { "type": "npm", "parent": "node" },
|
|
54
|
-
"nub": {},
|
|
55
|
-
"nuget": { "parent": "mono" },
|
|
54
|
+
"nub": { "minVersion": "0.0.34" },
|
|
55
|
+
"nuget": { "parent": "mono", "minVersion": "3.4.4" },
|
|
56
56
|
"paket": { "type": "dotnet", "parent": "dotnet" },
|
|
57
57
|
"pdm": { "type": "pip", "parent": "python" },
|
|
58
58
|
"php": {
|
|
@@ -69,21 +69,21 @@
|
|
|
69
69
|
"python": { "minVersion": "2.7.18" },
|
|
70
70
|
"renovate": { "type": "npm", "parent": "node" },
|
|
71
71
|
"ruby": { "minVersion": "2.7.7" },
|
|
72
|
-
"rust": {},
|
|
72
|
+
"rust": { "minVersion": "1.7.0" },
|
|
73
73
|
"sbt": { "parent": "java", "minVersion": "0.13.17" },
|
|
74
|
-
"scala": { "parent": "java" },
|
|
74
|
+
"scala": { "parent": "java", "minVersion": "2.11.2" },
|
|
75
75
|
"skopeo": { "minVersion": "1.14.0" },
|
|
76
76
|
"sops": { "minVersion": "3.8.0" },
|
|
77
77
|
"swift": {
|
|
78
78
|
"minVersion": "5.7",
|
|
79
79
|
"distroMinVersion": { "resolute": "6.4.0" }
|
|
80
80
|
},
|
|
81
|
-
"terraform": {},
|
|
81
|
+
"terraform": { "minVersion": "0.1.0" },
|
|
82
82
|
"tofu": { "minVersion": "1.6.3" },
|
|
83
83
|
"uv": { "type": "pip", "parent": "python" },
|
|
84
|
-
"vendir": {},
|
|
84
|
+
"vendir": { "minVersion": "0.4.0" },
|
|
85
85
|
"vp": { "parent": "node", "minVersion": "0.3.1" },
|
|
86
|
-
"wally": {},
|
|
86
|
+
"wally": { "minVersion": "0.3.0" },
|
|
87
87
|
"yarn": { "type": "npm", "parent": "node" },
|
|
88
88
|
"yarn-slim": { "type": "npm", "parent": "node" }
|
|
89
89
|
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where the containerbase image embeds the tool-versions data: the extracted
|
|
3
|
+
* release archive, with the root `index.json` and one folder per format, eg.
|
|
4
|
+
* `v1/<tool>.json`.
|
|
5
|
+
*/
|
|
6
|
+
export declare const toolVersionsPath = "/usr/local/containerbase/tool-versions";
|
|
7
|
+
/**
|
|
8
|
+
* The file in which the containerbase image records its version.
|
|
9
|
+
*/
|
|
10
|
+
export declare const containerbaseVersionFile = "/usr/local/containerbase/version";
|
|
11
|
+
/**
|
|
12
|
+
* The version of this package, which is released with the same version as
|
|
13
|
+
* containerbase itself.
|
|
14
|
+
*/
|
|
15
|
+
export declare const packageVersion: string;
|
|
16
|
+
/**
|
|
17
|
+
* Checks if the process runs in a containerbase image, whose environment sets
|
|
18
|
+
* `CONTAINERBASE`.
|
|
19
|
+
*
|
|
20
|
+
* @param env the environment to check, `process.env` by default
|
|
21
|
+
*/
|
|
22
|
+
export declare function isContainerbase(env?: Record<string, string | undefined>): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Checks if a containerbase image supports everything this package describes:
|
|
25
|
+
* the image has the same major version and the same or a newer minor or patch
|
|
26
|
+
* version.
|
|
27
|
+
*
|
|
28
|
+
* @param imageVersion the version of the image, eg. from
|
|
29
|
+
* `containerbaseVersionFile`
|
|
30
|
+
* @param version the version to compare with, this package's by default
|
|
31
|
+
* @returns `false` for another major, an older image or a version which can't
|
|
32
|
+
* be parsed
|
|
33
|
+
*/
|
|
34
|
+
export declare function isCompatibleVersion(imageVersion: string, version?: string): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Reads the version of the containerbase image and throws when it isn't
|
|
37
|
+
* compatible with this package, see `isCompatibleVersion`. Call it only when
|
|
38
|
+
* `isContainerbase()` is true.
|
|
39
|
+
*
|
|
40
|
+
* Development images, whose version is a git sha or `0.0.0-…`, aren't checked.
|
|
41
|
+
* A missing or empty version file still throws.
|
|
42
|
+
*
|
|
43
|
+
* @param file the version file to read, `containerbaseVersionFile` by default
|
|
44
|
+
* @returns the version of the image
|
|
45
|
+
*/
|
|
46
|
+
export declare function validateContainerbaseVersion(file?: string): Promise<string>;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
// semver has no exports map, native ESM needs the file extension
|
|
4
|
+
import semverGte from 'semver/functions/gte.js';
|
|
5
|
+
import semverParse from 'semver/functions/parse.js';
|
|
6
|
+
/**
|
|
7
|
+
* Where the containerbase image embeds the tool-versions data: the extracted
|
|
8
|
+
* release archive, with the root `index.json` and one folder per format, eg.
|
|
9
|
+
* `v1/<tool>.json`.
|
|
10
|
+
*/
|
|
11
|
+
export const toolVersionsPath = '/usr/local/containerbase/tool-versions';
|
|
12
|
+
/**
|
|
13
|
+
* The file in which the containerbase image records its version.
|
|
14
|
+
*/
|
|
15
|
+
export const containerbaseVersionFile = '/usr/local/containerbase/version';
|
|
16
|
+
/**
|
|
17
|
+
* The version of this package, which is released with the same version as
|
|
18
|
+
* containerbase itself.
|
|
19
|
+
*/
|
|
20
|
+
export const packageVersion = createRequire(import.meta.url)('../package.json').version;
|
|
21
|
+
/**
|
|
22
|
+
* Checks if the process runs in a containerbase image, whose environment sets
|
|
23
|
+
* `CONTAINERBASE`.
|
|
24
|
+
*
|
|
25
|
+
* @param env the environment to check, `process.env` by default
|
|
26
|
+
*/
|
|
27
|
+
export function isContainerbase(env = process.env) {
|
|
28
|
+
return !!env.CONTAINERBASE;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Checks if a containerbase image supports everything this package describes:
|
|
32
|
+
* the image has the same major version and the same or a newer minor or patch
|
|
33
|
+
* version.
|
|
34
|
+
*
|
|
35
|
+
* @param imageVersion the version of the image, eg. from
|
|
36
|
+
* `containerbaseVersionFile`
|
|
37
|
+
* @param version the version to compare with, this package's by default
|
|
38
|
+
* @returns `false` for another major, an older image or a version which can't
|
|
39
|
+
* be parsed
|
|
40
|
+
*/
|
|
41
|
+
export function isCompatibleVersion(imageVersion, version = packageVersion) {
|
|
42
|
+
const image = semverParse(imageVersion.trim());
|
|
43
|
+
const pkg = semverParse(version);
|
|
44
|
+
return !!image && !!pkg && image.major === pkg.major && semverGte(image, pkg);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Checks if an image version comes from a release. Development builds write
|
|
48
|
+
* the git sha or `0.0.0-PLACEHOLDER` instead.
|
|
49
|
+
*/
|
|
50
|
+
function isReleaseVersion(imageVersion) {
|
|
51
|
+
const image = semverParse(imageVersion);
|
|
52
|
+
return (!!image && !(image.major === 0 && image.minor === 0 && image.patch === 0));
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Reads the version of the containerbase image and throws when it isn't
|
|
56
|
+
* compatible with this package, see `isCompatibleVersion`. Call it only when
|
|
57
|
+
* `isContainerbase()` is true.
|
|
58
|
+
*
|
|
59
|
+
* Development images, whose version is a git sha or `0.0.0-…`, aren't checked.
|
|
60
|
+
* A missing or empty version file still throws.
|
|
61
|
+
*
|
|
62
|
+
* @param file the version file to read, `containerbaseVersionFile` by default
|
|
63
|
+
* @returns the version of the image
|
|
64
|
+
*/
|
|
65
|
+
export async function validateContainerbaseVersion(file = containerbaseVersionFile) {
|
|
66
|
+
let content;
|
|
67
|
+
try {
|
|
68
|
+
content = await readFile(file, 'utf8');
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
const { code, message } = err;
|
|
72
|
+
throw new Error(code === 'ENOENT'
|
|
73
|
+
? `The containerbase image version file ${file} is missing`
|
|
74
|
+
: `The containerbase image version file ${file} can't be read: ${message}`, { cause: err });
|
|
75
|
+
}
|
|
76
|
+
const imageVersion = content.trim();
|
|
77
|
+
if (!imageVersion) {
|
|
78
|
+
throw new Error(`The containerbase image version file ${file} is empty`);
|
|
79
|
+
}
|
|
80
|
+
if (isReleaseVersion(imageVersion) && !isCompatibleVersion(imageVersion)) {
|
|
81
|
+
throw new Error(`The containerbase image version ${imageVersion} is not compatible with @containerbase/base ${packageVersion}, it needs the same major version and the same or a newer minor or patch version`);
|
|
82
|
+
}
|
|
83
|
+
return imageVersion;
|
|
84
|
+
}
|
package/dist/data.d.ts
CHANGED
|
@@ -4,18 +4,28 @@
|
|
|
4
4
|
export declare const tools: {
|
|
5
5
|
readonly 'android-sdk-cmdline-tools': {
|
|
6
6
|
readonly parent: "java";
|
|
7
|
+
readonly minVersion: "1";
|
|
8
|
+
};
|
|
9
|
+
readonly apko: {
|
|
10
|
+
readonly minVersion: "0.1.1";
|
|
11
|
+
};
|
|
12
|
+
readonly apm: {
|
|
13
|
+
readonly minVersion: "0.4.0";
|
|
14
|
+
};
|
|
15
|
+
readonly bazelisk: {
|
|
16
|
+
readonly minVersion: "0.0.1";
|
|
7
17
|
};
|
|
8
|
-
readonly apko: {};
|
|
9
|
-
readonly apm: {};
|
|
10
|
-
readonly bazelisk: {};
|
|
11
18
|
readonly bower: {
|
|
12
19
|
readonly type: "npm";
|
|
13
20
|
readonly parent: "node";
|
|
14
21
|
readonly deprecated: true;
|
|
15
22
|
};
|
|
16
|
-
readonly buf: {
|
|
23
|
+
readonly buf: {
|
|
24
|
+
readonly minVersion: "0.1.0";
|
|
25
|
+
};
|
|
17
26
|
readonly buildx: {
|
|
18
27
|
readonly parent: "docker";
|
|
28
|
+
readonly minVersion: "0.2.0";
|
|
19
29
|
};
|
|
20
30
|
readonly bun: {
|
|
21
31
|
readonly minVersion: "0.5.3";
|
|
@@ -37,6 +47,7 @@ export declare const tools: {
|
|
|
37
47
|
};
|
|
38
48
|
readonly composer: {
|
|
39
49
|
readonly parent: "php";
|
|
50
|
+
readonly minVersion: "1.0.0";
|
|
40
51
|
};
|
|
41
52
|
readonly conan: {
|
|
42
53
|
readonly type: "pip";
|
|
@@ -56,7 +67,9 @@ export declare const tools: {
|
|
|
56
67
|
readonly deno: {
|
|
57
68
|
readonly minVersion: "2.0.1";
|
|
58
69
|
};
|
|
59
|
-
readonly devbox: {
|
|
70
|
+
readonly devbox: {
|
|
71
|
+
readonly minVersion: "0.0.6";
|
|
72
|
+
};
|
|
60
73
|
readonly docker: {
|
|
61
74
|
readonly minVersion: "20.10.0";
|
|
62
75
|
};
|
|
@@ -69,6 +82,7 @@ export declare const tools: {
|
|
|
69
82
|
};
|
|
70
83
|
readonly elixir: {
|
|
71
84
|
readonly parent: "erlang";
|
|
85
|
+
readonly minVersion: "1.4.3";
|
|
72
86
|
};
|
|
73
87
|
readonly erlang: {
|
|
74
88
|
readonly minVersion: "24.2.0.0";
|
|
@@ -96,9 +110,12 @@ export declare const tools: {
|
|
|
96
110
|
readonly gleam: {
|
|
97
111
|
readonly minVersion: "0.23.0";
|
|
98
112
|
};
|
|
99
|
-
readonly golang: {
|
|
113
|
+
readonly golang: {
|
|
114
|
+
readonly minVersion: "1.9.0";
|
|
115
|
+
};
|
|
100
116
|
readonly gradle: {
|
|
101
117
|
readonly parent: "java";
|
|
118
|
+
readonly minVersion: "1.0";
|
|
102
119
|
};
|
|
103
120
|
readonly hashin: {
|
|
104
121
|
readonly type: "pip";
|
|
@@ -107,7 +124,9 @@ export declare const tools: {
|
|
|
107
124
|
readonly helm: {
|
|
108
125
|
readonly minVersion: "3.1.0";
|
|
109
126
|
};
|
|
110
|
-
readonly helmfile: {
|
|
127
|
+
readonly helmfile: {
|
|
128
|
+
readonly minVersion: "0.145.0";
|
|
129
|
+
};
|
|
111
130
|
readonly java: {
|
|
112
131
|
readonly minVersion: "8.0.302+8";
|
|
113
132
|
};
|
|
@@ -117,7 +136,9 @@ export declare const tools: {
|
|
|
117
136
|
readonly 'java-jre': {
|
|
118
137
|
readonly minVersion: "8.0.302+8";
|
|
119
138
|
};
|
|
120
|
-
readonly jb: {
|
|
139
|
+
readonly jb: {
|
|
140
|
+
readonly minVersion: "0.2.0";
|
|
141
|
+
};
|
|
121
142
|
readonly jq: {
|
|
122
143
|
readonly minVersion: "1.7.1";
|
|
123
144
|
};
|
|
@@ -138,22 +159,30 @@ export declare const tools: {
|
|
|
138
159
|
};
|
|
139
160
|
readonly maven: {
|
|
140
161
|
readonly parent: "java";
|
|
162
|
+
readonly minVersion: "3.0.4";
|
|
141
163
|
};
|
|
142
164
|
readonly mise: {
|
|
143
165
|
readonly minVersion: "2024.1.0";
|
|
144
166
|
};
|
|
145
|
-
readonly mono: {
|
|
167
|
+
readonly mono: {
|
|
168
|
+
readonly minVersion: "6.14.1";
|
|
169
|
+
};
|
|
146
170
|
readonly nix: {
|
|
147
171
|
readonly minVersion: "2.10.3";
|
|
148
172
|
};
|
|
149
|
-
readonly node: {
|
|
173
|
+
readonly node: {
|
|
174
|
+
readonly minVersion: "8.7.0";
|
|
175
|
+
};
|
|
150
176
|
readonly npm: {
|
|
151
177
|
readonly type: "npm";
|
|
152
178
|
readonly parent: "node";
|
|
153
179
|
};
|
|
154
|
-
readonly nub: {
|
|
180
|
+
readonly nub: {
|
|
181
|
+
readonly minVersion: "0.0.34";
|
|
182
|
+
};
|
|
155
183
|
readonly nuget: {
|
|
156
184
|
readonly parent: "mono";
|
|
185
|
+
readonly minVersion: "3.4.4";
|
|
157
186
|
};
|
|
158
187
|
readonly paket: {
|
|
159
188
|
readonly type: "dotnet";
|
|
@@ -204,13 +233,16 @@ export declare const tools: {
|
|
|
204
233
|
readonly ruby: {
|
|
205
234
|
readonly minVersion: "2.7.7";
|
|
206
235
|
};
|
|
207
|
-
readonly rust: {
|
|
236
|
+
readonly rust: {
|
|
237
|
+
readonly minVersion: "1.7.0";
|
|
238
|
+
};
|
|
208
239
|
readonly sbt: {
|
|
209
240
|
readonly parent: "java";
|
|
210
241
|
readonly minVersion: "0.13.17";
|
|
211
242
|
};
|
|
212
243
|
readonly scala: {
|
|
213
244
|
readonly parent: "java";
|
|
245
|
+
readonly minVersion: "2.11.2";
|
|
214
246
|
};
|
|
215
247
|
readonly skopeo: {
|
|
216
248
|
readonly minVersion: "1.14.0";
|
|
@@ -224,7 +256,9 @@ export declare const tools: {
|
|
|
224
256
|
readonly resolute: "6.4.0";
|
|
225
257
|
};
|
|
226
258
|
};
|
|
227
|
-
readonly terraform: {
|
|
259
|
+
readonly terraform: {
|
|
260
|
+
readonly minVersion: "0.1.0";
|
|
261
|
+
};
|
|
228
262
|
readonly tofu: {
|
|
229
263
|
readonly minVersion: "1.6.3";
|
|
230
264
|
};
|
|
@@ -232,12 +266,16 @@ export declare const tools: {
|
|
|
232
266
|
readonly type: "pip";
|
|
233
267
|
readonly parent: "python";
|
|
234
268
|
};
|
|
235
|
-
readonly vendir: {
|
|
269
|
+
readonly vendir: {
|
|
270
|
+
readonly minVersion: "0.4.0";
|
|
271
|
+
};
|
|
236
272
|
readonly vp: {
|
|
237
273
|
readonly parent: "node";
|
|
238
274
|
readonly minVersion: "0.3.1";
|
|
239
275
|
};
|
|
240
|
-
readonly wally: {
|
|
276
|
+
readonly wally: {
|
|
277
|
+
readonly minVersion: "0.3.0";
|
|
278
|
+
};
|
|
241
279
|
readonly yarn: {
|
|
242
280
|
readonly type: "npm";
|
|
243
281
|
readonly parent: "node";
|
package/dist/data.js
CHANGED
|
@@ -2,29 +2,29 @@
|
|
|
2
2
|
* All tools `install-tool` supports, sorted by name.
|
|
3
3
|
*/
|
|
4
4
|
export const tools = {
|
|
5
|
-
'android-sdk-cmdline-tools': { parent: 'java' },
|
|
6
|
-
apko: {},
|
|
7
|
-
apm: {},
|
|
8
|
-
bazelisk: {},
|
|
5
|
+
'android-sdk-cmdline-tools': { parent: 'java', minVersion: '1' },
|
|
6
|
+
apko: { minVersion: '0.1.1' },
|
|
7
|
+
apm: { minVersion: '0.4.0' },
|
|
8
|
+
bazelisk: { minVersion: '0.0.1' },
|
|
9
9
|
bower: { type: 'npm', parent: 'node', deprecated: true },
|
|
10
|
-
buf: {},
|
|
11
|
-
buildx: { parent: 'docker' },
|
|
10
|
+
buf: { minVersion: '0.1.0' },
|
|
11
|
+
buildx: { parent: 'docker', minVersion: '0.2.0' },
|
|
12
12
|
bun: { minVersion: '0.5.3' },
|
|
13
13
|
bundler: { type: 'gem', parent: 'ruby' },
|
|
14
14
|
cabal: { minVersion: '3.4.1.0' },
|
|
15
15
|
checkov: { type: 'pip', parent: 'python' },
|
|
16
16
|
cocoapods: { type: 'gem', parent: 'ruby' },
|
|
17
|
-
composer: { parent: 'php' },
|
|
17
|
+
composer: { parent: 'php', minVersion: '1.0.0' },
|
|
18
18
|
conan: { type: 'pip', parent: 'python' },
|
|
19
19
|
copier: { type: 'pip', parent: 'python' },
|
|
20
20
|
corepack: { type: 'npm', parent: 'node' },
|
|
21
21
|
dart: { minVersion: '2.0.0' },
|
|
22
22
|
deno: { minVersion: '2.0.1' },
|
|
23
|
-
devbox: {},
|
|
23
|
+
devbox: { minVersion: '0.0.6' },
|
|
24
24
|
docker: { minVersion: '20.10.0' },
|
|
25
25
|
'docker-compose': { parent: 'docker', minVersion: '2.0.1' },
|
|
26
26
|
dotnet: { minVersion: '6.0.100' },
|
|
27
|
-
elixir: { parent: 'erlang' },
|
|
27
|
+
elixir: { parent: 'erlang', minVersion: '1.4.3' },
|
|
28
28
|
erlang: { minVersion: '24.2.0.0' },
|
|
29
29
|
flutter: { minVersion: '1.22.6' },
|
|
30
30
|
flux: { minVersion: '0.6.0' },
|
|
@@ -33,28 +33,28 @@ export const tools = {
|
|
|
33
33
|
git: { root: true, minVersion: '2.48.0' },
|
|
34
34
|
'git-lfs': { parent: 'git', minVersion: '2.6.0' },
|
|
35
35
|
gleam: { minVersion: '0.23.0' },
|
|
36
|
-
golang: {},
|
|
37
|
-
gradle: { parent: 'java' },
|
|
36
|
+
golang: { minVersion: '1.9.0' },
|
|
37
|
+
gradle: { parent: 'java', minVersion: '1.0' },
|
|
38
38
|
hashin: { type: 'pip', parent: 'python' },
|
|
39
39
|
helm: { minVersion: '3.1.0' },
|
|
40
|
-
helmfile: {},
|
|
40
|
+
helmfile: { minVersion: '0.145.0' },
|
|
41
41
|
java: { minVersion: '8.0.302+8' },
|
|
42
42
|
'java-jdk': { minVersion: '8.0.302+8' },
|
|
43
43
|
'java-jre': { minVersion: '8.0.302+8' },
|
|
44
|
-
jb: {},
|
|
44
|
+
jb: { minVersion: '0.2.0' },
|
|
45
45
|
jq: { minVersion: '1.7.1' },
|
|
46
46
|
kas: { type: 'pip', parent: 'python' },
|
|
47
47
|
kubectl: { minVersion: '1.13.11' },
|
|
48
48
|
kustomize: { minVersion: '3.3.0' },
|
|
49
49
|
lerna: { type: 'npm', parent: 'node', deprecated: true },
|
|
50
|
-
maven: { parent: 'java' },
|
|
50
|
+
maven: { parent: 'java', minVersion: '3.0.4' },
|
|
51
51
|
mise: { minVersion: '2024.1.0' },
|
|
52
|
-
mono: {},
|
|
52
|
+
mono: { minVersion: '6.14.1' },
|
|
53
53
|
nix: { minVersion: '2.10.3' },
|
|
54
|
-
node: {},
|
|
54
|
+
node: { minVersion: '8.7.0' },
|
|
55
55
|
npm: { type: 'npm', parent: 'node' },
|
|
56
|
-
nub: {},
|
|
57
|
-
nuget: { parent: 'mono' },
|
|
56
|
+
nub: { minVersion: '0.0.34' },
|
|
57
|
+
nuget: { parent: 'mono', minVersion: '3.4.4' },
|
|
58
58
|
paket: { type: 'dotnet', parent: 'dotnet' },
|
|
59
59
|
pdm: { type: 'pip', parent: 'python' },
|
|
60
60
|
php: { minVersion: '7.4.0', distroMinVersion: { resolute: '8.1.31' } },
|
|
@@ -68,18 +68,18 @@ export const tools = {
|
|
|
68
68
|
python: { minVersion: '2.7.18' },
|
|
69
69
|
renovate: { type: 'npm', parent: 'node' },
|
|
70
70
|
ruby: { minVersion: '2.7.7' },
|
|
71
|
-
rust: {},
|
|
71
|
+
rust: { minVersion: '1.7.0' },
|
|
72
72
|
sbt: { parent: 'java', minVersion: '0.13.17' },
|
|
73
|
-
scala: { parent: 'java' },
|
|
73
|
+
scala: { parent: 'java', minVersion: '2.11.2' },
|
|
74
74
|
skopeo: { minVersion: '1.14.0' },
|
|
75
75
|
sops: { minVersion: '3.8.0' },
|
|
76
76
|
swift: { minVersion: '5.7', distroMinVersion: { resolute: '6.4.0' } },
|
|
77
|
-
terraform: {},
|
|
77
|
+
terraform: { minVersion: '0.1.0' },
|
|
78
78
|
tofu: { minVersion: '1.6.3' },
|
|
79
79
|
uv: { type: 'pip', parent: 'python' },
|
|
80
|
-
vendir: {},
|
|
80
|
+
vendir: { minVersion: '0.4.0' },
|
|
81
81
|
vp: { parent: 'node', minVersion: '0.3.1' },
|
|
82
|
-
wally: {},
|
|
82
|
+
wally: { minVersion: '0.3.0' },
|
|
83
83
|
yarn: { type: 'npm', parent: 'node' },
|
|
84
84
|
'yarn-slim': { type: 'npm', parent: 'node' },
|
|
85
85
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { tools } from './data.ts';
|
|
|
2
2
|
import type { DistroCode } from './types.ts';
|
|
3
3
|
export type { DistroCode, InstallToolType, ToolMetadata, ToolType, } from './types.ts';
|
|
4
4
|
export type { FileIntegrity, FileReference, FormatIndex, ToolFile, ToolIndex, ToolVersion, ToolVersions, VersionFiles, VersionIntegrity, } from './tool-versions-types.ts';
|
|
5
|
+
export { containerbaseVersionFile, isCompatibleVersion, isContainerbase, packageVersion, toolVersionsPath, validateContainerbaseVersion, } from './containerbase.ts';
|
|
5
6
|
export { isToolVersionsFormat, toolVersionsFormat, toolVersionsFormatPath, } from './tool-versions-format.ts';
|
|
6
7
|
export { tools };
|
|
7
8
|
/**
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { tools } from "./data.js";
|
|
2
|
+
export { containerbaseVersionFile, isCompatibleVersion, isContainerbase, packageVersion, toolVersionsPath, validateContainerbaseVersion, } from "./containerbase.js";
|
|
2
3
|
export { isToolVersionsFormat, toolVersionsFormat, toolVersionsFormatPath, } from "./tool-versions-format.js";
|
|
3
4
|
export { tools };
|
|
4
5
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@containerbase/base",
|
|
3
|
-
"version": "14.
|
|
3
|
+
"version": "14.47.0",
|
|
4
4
|
"description": "Metadata about the tools supported by containerbase",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"containerbase",
|
|
@@ -31,7 +31,11 @@
|
|
|
31
31
|
"data",
|
|
32
32
|
"dist"
|
|
33
33
|
],
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"semver": "^7.8.5"
|
|
36
|
+
},
|
|
34
37
|
"devDependencies": {
|
|
38
|
+
"@types/semver": "7.8.0",
|
|
35
39
|
"zod": "4.6.7"
|
|
36
40
|
},
|
|
37
41
|
"peerDependencies": {
|