@platforma-sdk/package-builder-lib 1.4.0 → 1.4.2
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/_virtual/_rolldown/runtime.cjs +2 -3
- package/dist/_virtual/_rolldown/runtime.js +1 -2
- package/dist/core/archive.cjs +1 -2
- package/dist/core/archive.cjs.map +1 -1
- package/dist/core/archive.js +1 -2
- package/dist/core/conda/builder.cjs +1 -2
- package/dist/core/conda/builder.cjs.map +1 -1
- package/dist/core/conda/builder.js +1 -2
- package/dist/core/conda/builder.js.map +1 -1
- package/dist/core/conda/validate-spec.cjs +1 -2
- package/dist/core/conda/validate-spec.js +1 -2
- package/dist/core/core.cjs +11 -12
- package/dist/core/core.cjs.map +1 -1
- package/dist/core/core.d.ts +3 -5
- package/dist/core/core.d.ts.map +1 -1
- package/dist/core/core.js +13 -13
- package/dist/core/core.js.map +1 -1
- package/dist/core/docker-conda.cjs +1 -2
- package/dist/core/docker-conda.js +1 -2
- package/dist/core/docker-coverage.cjs +1 -2
- package/dist/core/docker-coverage.d.ts +1 -3
- package/dist/core/docker-coverage.d.ts.map +1 -1
- package/dist/core/docker-coverage.js +3 -3
- package/dist/core/docker-coverage.js.map +1 -1
- package/dist/core/docker-python.cjs +1 -2
- package/dist/core/docker-python.js +1 -2
- package/dist/core/docker.cjs +3 -5
- package/dist/core/docker.cjs.map +1 -1
- package/dist/core/docker.js +3 -5
- package/dist/core/docker.js.map +1 -1
- package/dist/core/envs.cjs +1 -2
- package/dist/core/envs.d.ts +0 -1
- package/dist/core/envs.js +1 -2
- package/dist/core/package-info.cjs +13 -12
- package/dist/core/package-info.cjs.map +1 -1
- package/dist/core/package-info.d.ts +4 -5
- package/dist/core/package-info.d.ts.map +1 -1
- package/dist/core/package-info.js +13 -12
- package/dist/core/package-info.js.map +1 -1
- package/dist/core/paths.cjs +1 -2
- package/dist/core/paths.cjs.map +1 -1
- package/dist/core/paths.js +1 -2
- package/dist/core/paths.js.map +1 -1
- package/dist/core/push-guard.cjs +1 -2
- package/dist/core/push-guard.cjs.map +1 -1
- package/dist/core/push-guard.d.ts +0 -2
- package/dist/core/push-guard.d.ts.map +1 -1
- package/dist/core/push-guard.js +1 -2
- package/dist/core/resolver.cjs +1 -2
- package/dist/core/resolver.js +1 -2
- package/dist/core/schemas/artifacts.cjs +1 -2
- package/dist/core/schemas/artifacts.d.ts +1 -169
- package/dist/core/schemas/artifacts.d.ts.map +1 -1
- package/dist/core/schemas/artifacts.js +1 -2
- package/dist/core/schemas/entrypoints.cjs +1 -2
- package/dist/core/schemas/entrypoints.d.ts +1 -352
- package/dist/core/schemas/entrypoints.d.ts.map +1 -1
- package/dist/core/schemas/entrypoints.js +1 -2
- package/dist/core/schemas/sw-json.cjs +1 -2
- package/dist/core/schemas/sw-json.js +1 -2
- package/dist/core/storage.cjs +1 -2
- package/dist/core/storage.js +1 -2
- package/dist/core/sw-json-render.cjs +1 -2
- package/dist/core/sw-json-render.js +1 -2
- package/dist/core/util.cjs +1 -2
- package/dist/core/util.cjs.map +1 -1
- package/dist/core/util.d.ts +0 -1
- package/dist/core/util.js +1 -2
- package/dist/defaults.cjs +1 -2
- package/dist/defaults.d.ts +0 -1
- package/dist/defaults.js +1 -2
- package/dist/index.cjs +1 -2
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/package.json +20 -15
- package/src/core/__tests__/docker-build.test.ts +51 -0
- package/src/core/conda/builder.ts +1 -1
- package/src/core/docker.ts +2 -7
package/dist/defaults.d.ts
CHANGED
|
@@ -22,6 +22,5 @@ export declare const DEV_DOCKER_REGISTRY = "public.ecr.aws/miresearch/pl-contain
|
|
|
22
22
|
export declare const DEV_DOCKER_PUSH_TARGET = "ecr://public.ecr.aws/miresearch/pl-containers";
|
|
23
23
|
export declare const AWS_DEV_PROFILE = "research-poweruser";
|
|
24
24
|
export declare const DOCKER_BUILD_PLATFORM = "linux/amd64";
|
|
25
|
-
//#endregion
|
|
26
25
|
export { defaults_d_exports };
|
|
27
26
|
//# sourceMappingURL=defaults.d.ts.map
|
package/dist/defaults.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
2
|
-
|
|
2
|
+
// src/defaults.ts
|
|
3
3
|
var defaults_exports = /* @__PURE__ */ __exportAll({
|
|
4
4
|
AWS_DEV_PROFILE: () => AWS_DEV_PROFILE,
|
|
5
5
|
BIN_REGISTRY_DOWNLOAD_URL: () => BIN_REGISTRY_DOWNLOAD_URL,
|
|
@@ -42,7 +42,6 @@ const DEV_DOCKER_REGISTRY = "public.ecr.aws/miresearch/pl-containers";
|
|
|
42
42
|
const DEV_DOCKER_PUSH_TARGET = `ecr://${DEV_DOCKER_REGISTRY}`;
|
|
43
43
|
const AWS_DEV_PROFILE = "research-poweruser";
|
|
44
44
|
const DOCKER_BUILD_PLATFORM = "linux/amd64";
|
|
45
|
-
//#endregion
|
|
46
45
|
export { AWS_DEV_PROFILE, BIN_REGISTRY_DOWNLOAD_URL, BIN_REGISTRY_NAME, CONDA_DATA_LOCATION, CONDA_DOCKER_BASE_IMAGE, CONDA_FROZEN_ENV_SPEC_FILE, CONDA_MICROMAMBA_VERSION, CONDA_SOURCE_ENV_SPEC_FILE, DEV_BINARY_UPLOAD_TARGET, DEV_BIN_REGISTRY_NAME, DEV_DOCKER_PUSH_TARGET, DEV_DOCKER_REGISTRY, DOCKER_BUILD_PLATFORM, DOCKER_DOCKERFILE, DOCKER_PLACEHOLDER_PKG, DOCKER_REGISTRY, NO_SOFTWARE_PLACEHOLDER, PYTHON_DOCKER_BASE_IMAGE, PYTHON_REQUIREMENTS_FILE, defaults_exports };
|
|
47
46
|
|
|
48
47
|
//# sourceMappingURL=defaults.js.map
|
package/dist/index.cjs
CHANGED
|
@@ -5,11 +5,10 @@ const require_util = require("./core/util.cjs");
|
|
|
5
5
|
const require_docker_coverage = require("./core/docker-coverage.cjs");
|
|
6
6
|
const require_core = require("./core/core.cjs");
|
|
7
7
|
const require_push_guard = require("./core/push-guard.cjs");
|
|
8
|
-
|
|
8
|
+
// src/index.ts
|
|
9
9
|
function createBuilder(logger, opts) {
|
|
10
10
|
return new require_core.Core(logger, opts);
|
|
11
11
|
}
|
|
12
|
-
//#endregion
|
|
13
12
|
exports.assertDockerCoverage = require_docker_coverage.assertDockerCoverage;
|
|
14
13
|
exports.assertDockerPushIntent = require_push_guard.assertDockerPushIntent;
|
|
15
14
|
exports.createBuilder = createBuilder;
|
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,6 @@ import { defaults_d_exports } from "./defaults.js";
|
|
|
5
5
|
import { PushIntent, assertDockerPushIntent } from "./core/push-guard.js";
|
|
6
6
|
import { DockerCoverage, assertDockerCoverage, descriptorHasNoDockerVariant, softwareEntrypointsWithoutDocker } from "./core/docker-coverage.js";
|
|
7
7
|
import winston from "winston";
|
|
8
|
-
//#region src/index.d.ts
|
|
9
8
|
/** The logger the engine and its callers pass around. */
|
|
10
9
|
export type Logger = winston.Logger;
|
|
11
10
|
/**
|
|
@@ -18,6 +17,5 @@ export type Builder = Pick<Core, "buildMode" | "targetPlatform" | "allPlatforms"
|
|
|
18
17
|
export declare function createBuilder(logger: winston.Logger, opts?: {
|
|
19
18
|
packageRoot?: string;
|
|
20
19
|
}): Builder;
|
|
21
|
-
//#endregion
|
|
22
20
|
export { type DockerCoverage, type PushIntent, assertDockerCoverage, assertDockerPushIntent, defaults_d_exports as defaults, descriptorHasNoDockerVariant, envs_d_exports as envs, softwareEntrypointsWithoutDocker, util_d_exports as util };
|
|
23
21
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/index.ts"],"mappings":";;;;;;;;YAeY,SAAS,QAAQ;;;;;;;YAQjB,UAAU,KACpB;wBAiBc,cAAc,QAAQ,QAAQ,QAAQ;EAAS;IAAyB"}
|
package/dist/index.js
CHANGED
|
@@ -4,11 +4,10 @@ import { util_exports } from "./core/util.js";
|
|
|
4
4
|
import { assertDockerCoverage, descriptorHasNoDockerVariant, softwareEntrypointsWithoutDocker } from "./core/docker-coverage.js";
|
|
5
5
|
import { Core } from "./core/core.js";
|
|
6
6
|
import { assertDockerPushIntent } from "./core/push-guard.js";
|
|
7
|
-
|
|
7
|
+
// src/index.ts
|
|
8
8
|
function createBuilder(logger, opts) {
|
|
9
9
|
return new Core(logger, opts);
|
|
10
10
|
}
|
|
11
|
-
//#endregion
|
|
12
11
|
export { assertDockerCoverage, assertDockerPushIntent, createBuilder, defaults_exports as defaults, descriptorHasNoDockerVariant, envs_exports as envs, softwareEntrypointsWithoutDocker, util_exports as util };
|
|
13
12
|
|
|
14
13
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@platforma-sdk/package-builder-lib",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.2",
|
|
4
4
|
"description": "MiLaboratories Platforma Package builder engine (library)",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -21,26 +21,31 @@
|
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@aws-sdk/client-s3": "3.
|
|
25
|
-
"@aws-sdk/lib-storage": "3.
|
|
24
|
+
"@aws-sdk/client-s3": "3.1157.0",
|
|
25
|
+
"@aws-sdk/lib-storage": "3.1157.0",
|
|
26
|
+
"@milaboratories/resolve-helper": "1.1.3",
|
|
26
27
|
"archiver": "^7.0.1",
|
|
27
|
-
"undici": "~7.
|
|
28
|
+
"undici": "~7.30.1",
|
|
28
29
|
"winston": "^3.17.0",
|
|
29
|
-
"yaml": "^2.
|
|
30
|
-
"zod": "~3.25.76"
|
|
31
|
-
"@milaboratories/resolve-helper": "1.1.3"
|
|
30
|
+
"yaml": "^2.9.1",
|
|
31
|
+
"zod": "~3.25.76"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@
|
|
34
|
+
"@milaboratories/build-configs": "2.0.2",
|
|
35
|
+
"@milaboratories/ts-builder": "1.7.3",
|
|
36
|
+
"@milaboratories/ts-configs": "1.4.0",
|
|
37
|
+
"@platforma-open/milaboratories.runenv-python-3": "1.16.1",
|
|
35
38
|
"@types/archiver": "^6.0.3",
|
|
36
|
-
"@types/node": "~24.
|
|
37
|
-
"@vitest/coverage-istanbul": "^4.1.
|
|
39
|
+
"@types/node": "~24.19.2",
|
|
40
|
+
"@vitest/coverage-istanbul": "^4.1.12",
|
|
38
41
|
"typescript": "7.0.2",
|
|
39
|
-
"vite": "^8.
|
|
40
|
-
"vitest": "^4.1.
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
"
|
|
42
|
+
"vite": "^8.3.5",
|
|
43
|
+
"vitest": "^4.1.12"
|
|
44
|
+
},
|
|
45
|
+
"repository": {
|
|
46
|
+
"type": "git",
|
|
47
|
+
"url": "git+https://github.com/milaboratory/platforma.git",
|
|
48
|
+
"directory": "lib/node/package-builder-lib"
|
|
44
49
|
},
|
|
45
50
|
"scripts": {
|
|
46
51
|
"build": "ts-builder build --target node",
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { describe, it, expect, afterEach, vi } from "vitest";
|
|
2
|
+
|
|
3
|
+
const { spawnMock } = vi.hoisted(() => ({ spawnMock: vi.fn() }));
|
|
4
|
+
vi.mock("node:child_process", () => ({ spawnSync: spawnMock }));
|
|
5
|
+
|
|
6
|
+
const docker = await import("../docker");
|
|
7
|
+
|
|
8
|
+
afterEach(() => {
|
|
9
|
+
vi.clearAllMocks();
|
|
10
|
+
vi.unstubAllEnvs();
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
function runBuild() {
|
|
14
|
+
spawnMock.mockReturnValue({ status: 0 });
|
|
15
|
+
docker.build("/ctx", "/ctx/Dockerfile", "local:tag", "pkg/main", "1.0.0");
|
|
16
|
+
expect(spawnMock).toHaveBeenCalledTimes(1);
|
|
17
|
+
const [cmd, args, opts] = spawnMock.mock.calls[0] as [
|
|
18
|
+
string,
|
|
19
|
+
string[],
|
|
20
|
+
{ env: NodeJS.ProcessEnv },
|
|
21
|
+
];
|
|
22
|
+
return { cmd, args, env: opts.env };
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
describe("docker.build", () => {
|
|
26
|
+
it("passes no buildx-only attestation flags, so podman accepts the command", () => {
|
|
27
|
+
const { cmd, args } = runBuild();
|
|
28
|
+
expect(cmd).toBe("docker");
|
|
29
|
+
expect(args[0]).toBe("build");
|
|
30
|
+
expect(args.some((a) => a.startsWith("--provenance") || a.startsWith("--sbom"))).toBe(false);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it("disables buildx default attestations through the environment", () => {
|
|
34
|
+
const { env } = runBuild();
|
|
35
|
+
expect(env.BUILDX_NO_DEFAULT_ATTESTATIONS).toBe("1");
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it("overrides a user value that would enable default attestations", () => {
|
|
39
|
+
vi.stubEnv("BUILDX_NO_DEFAULT_ATTESTATIONS", "0");
|
|
40
|
+
const { env } = runBuild();
|
|
41
|
+
expect(env.BUILDX_NO_DEFAULT_ATTESTATIONS).toBe("1");
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it("pins the build platform", () => {
|
|
45
|
+
const { args } = runBuild();
|
|
46
|
+
expect(args.slice(args.indexOf("--platform"), args.indexOf("--platform") + 2)).toEqual([
|
|
47
|
+
"--platform",
|
|
48
|
+
"linux/amd64",
|
|
49
|
+
]);
|
|
50
|
+
});
|
|
51
|
+
});
|
package/src/core/docker.ts
CHANGED
|
@@ -114,13 +114,6 @@ export function build(
|
|
|
114
114
|
// regardless of host arch (cross-compile via qemu on non-x64 hosts).
|
|
115
115
|
"--platform",
|
|
116
116
|
defaults.DOCKER_BUILD_PLATFORM,
|
|
117
|
-
// Disable buildkit's SLSA provenance + SBOM attestations. They embed
|
|
118
|
-
// build-time timestamps into the manifest list, which produces a fresh
|
|
119
|
-
// image digest on every build of identical source. That breaks the
|
|
120
|
-
// content-addressable tag scheme (every dev rebuild re-pushes a new
|
|
121
|
-
// tag) and defeats publishDockerImage's `remoteImageExists` smart-skip.
|
|
122
|
-
"--provenance=false",
|
|
123
|
-
"--sbom=false",
|
|
124
117
|
"-t",
|
|
125
118
|
tag,
|
|
126
119
|
context,
|
|
@@ -138,6 +131,8 @@ export function build(
|
|
|
138
131
|
env: {
|
|
139
132
|
...process.env, // PATH variable from parent process affects execution
|
|
140
133
|
HOME: process.env.HOME || os.homedir(), // Ensure HOME is set
|
|
134
|
+
// Disables buildx default provenance so the image ID stays stable; podman ignores it.
|
|
135
|
+
BUILDX_NO_DEFAULT_ATTESTATIONS: "1",
|
|
141
136
|
},
|
|
142
137
|
},
|
|
143
138
|
);
|