@git.zone/tsrust 1.9.1 → 1.10.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.
Files changed (46) hide show
  1. package/dist_ts/00_commitinfo_data.js +2 -2
  2. package/dist_ts/index.d.ts +1 -0
  3. package/dist_ts/index.js +2 -1
  4. package/dist_ts/mod_artifact/classes.artifactassembler.d.ts +6 -0
  5. package/dist_ts/mod_artifact/classes.artifactassembler.js +169 -6
  6. package/dist_ts/mod_artifact/index.d.ts +1 -1
  7. package/dist_ts/mod_artifact/index.js +2 -2
  8. package/dist_ts/mod_cargo/classes.cargorunner.js +8 -5
  9. package/dist_ts/mod_cli/classes.tsrustcli.d.ts +1 -0
  10. package/dist_ts/mod_cli/classes.tsrustcli.js +30 -3
  11. package/dist_ts/mod_cli/helpers.targets.d.ts +2 -0
  12. package/dist_ts/mod_cli/helpers.targets.js +1 -1
  13. package/dist_ts/mod_matrix/classes.matrixcommandrunner.d.ts +25 -0
  14. package/dist_ts/mod_matrix/classes.matrixcommandrunner.js +266 -0
  15. package/dist_ts/mod_matrix/classes.nativematrixbuilder.d.ts +64 -0
  16. package/dist_ts/mod_matrix/classes.nativematrixbuilder.js +1084 -0
  17. package/dist_ts/mod_matrix/helpers.matrixconfig.d.ts +30 -0
  18. package/dist_ts/mod_matrix/helpers.matrixconfig.js +129 -0
  19. package/dist_ts/mod_matrix/index.d.ts +3 -0
  20. package/dist_ts/mod_matrix/index.js +4 -0
  21. package/dist_ts/mod_provenance/classes.gitstate.d.ts +1 -0
  22. package/dist_ts/mod_provenance/classes.gitstate.js +13 -3
  23. package/dist_ts/mod_provenance/classes.provenancestore.d.ts +1 -0
  24. package/dist_ts/mod_provenance/classes.provenancestore.js +5 -1
  25. package/dist_ts/mod_provenance/index.d.ts +1 -1
  26. package/dist_ts/mod_provenance/index.js +2 -2
  27. package/dist_ts/mod_toolchain/classes.toolchainmanager.d.ts +6 -0
  28. package/dist_ts/mod_toolchain/classes.toolchainmanager.js +211 -40
  29. package/package.json +2 -2
  30. package/readme.hints.md +12 -1
  31. package/readme.md +69 -2
  32. package/ts/00_commitinfo_data.ts +1 -1
  33. package/ts/index.ts +1 -0
  34. package/ts/mod_artifact/classes.artifactassembler.ts +201 -5
  35. package/ts/mod_artifact/index.ts +2 -0
  36. package/ts/mod_cargo/classes.cargorunner.ts +9 -4
  37. package/ts/mod_cli/classes.tsrustcli.ts +34 -2
  38. package/ts/mod_cli/helpers.targets.ts +3 -0
  39. package/ts/mod_matrix/classes.matrixcommandrunner.ts +294 -0
  40. package/ts/mod_matrix/classes.nativematrixbuilder.ts +1472 -0
  41. package/ts/mod_matrix/helpers.matrixconfig.ts +222 -0
  42. package/ts/mod_matrix/index.ts +23 -0
  43. package/ts/mod_provenance/classes.gitstate.ts +13 -2
  44. package/ts/mod_provenance/classes.provenancestore.ts +4 -0
  45. package/ts/mod_provenance/index.ts +1 -0
  46. package/ts/mod_toolchain/classes.toolchainmanager.ts +236 -43
@@ -0,0 +1,30 @@
1
+ import { type INormalizedTarget, type ITsrustConfig } from '../mod_cli/helpers.targets.js';
2
+ export declare const matrixHostKeys: readonly ["linux_amd64", "linux_arm64", "macos_amd64", "macos_arm64"];
3
+ export type TMatrixHost = (typeof matrixHostKeys)[number];
4
+ export interface ITsrustLocalMatrixBuilderConfig {
5
+ transport: 'local';
6
+ }
7
+ export interface ITsrustSshMatrixBuilderConfig {
8
+ transport: 'ssh';
9
+ destinationEnv: string;
10
+ temporaryRootEnv: string;
11
+ }
12
+ export type TTsrustMatrixBuilderConfig = ITsrustLocalMatrixBuilderConfig | ITsrustSshMatrixBuilderConfig;
13
+ export interface ITsrustMatrixConfig {
14
+ builders: Partial<Record<TMatrixHost, TTsrustMatrixBuilderConfig>>;
15
+ smokeTestArgs?: string[];
16
+ forwardEnvironment?: string[];
17
+ }
18
+ export interface IResolvedMatrixWorker {
19
+ host: TMatrixHost;
20
+ hostTriple: string;
21
+ config: TTsrustMatrixBuilderConfig;
22
+ targets: INormalizedTarget[];
23
+ }
24
+ export interface IResolvedMatrixPlan {
25
+ workers: IResolvedMatrixWorker[];
26
+ expectedTargets: INormalizedTarget[];
27
+ smokeTestArgs?: string[];
28
+ forwardEnvironment: string[];
29
+ }
30
+ export declare const resolveMatrixPlan: (configArg: ITsrustConfig) => IResolvedMatrixPlan;
@@ -0,0 +1,129 @@
1
+ import { configuredAssemblyTargets, resolveBuildTargets, targetAliasMap, } from '../mod_cli/helpers.targets.js';
2
+ export const matrixHostKeys = [
3
+ 'linux_amd64',
4
+ 'linux_arm64',
5
+ 'macos_amd64',
6
+ 'macos_arm64',
7
+ ];
8
+ const environmentNamePattern = /^[A-Za-z_][A-Za-z0-9_]*$/;
9
+ const matrixHostKeySet = new Set(matrixHostKeys);
10
+ const isRecord = (valueArg) => !!valueArg && typeof valueArg === 'object' && !Array.isArray(valueArg);
11
+ const assertClosedKeys = (valueArg, allowedKeysArg, labelArg) => {
12
+ const allowedKeys = new Set(allowedKeysArg);
13
+ const unexpectedKeys = Object.keys(valueArg).filter((key) => !allowedKeys.has(key));
14
+ if (unexpectedKeys.length > 0) {
15
+ throw new Error(`${labelArg} contains unsupported keys: ${unexpectedKeys.join(', ')}`);
16
+ }
17
+ };
18
+ const validateBuilder = (hostArg, valueArg) => {
19
+ if (!isRecord(valueArg)) {
20
+ throw new Error(`matrix.builders.${hostArg} must be an object`);
21
+ }
22
+ if (valueArg.transport === 'local') {
23
+ assertClosedKeys(valueArg, ['transport'], `matrix.builders.${hostArg}`);
24
+ return { transport: 'local' };
25
+ }
26
+ if (valueArg.transport === 'ssh') {
27
+ assertClosedKeys(valueArg, ['transport', 'destinationEnv', 'temporaryRootEnv'], `matrix.builders.${hostArg}`);
28
+ if (typeof valueArg.destinationEnv !== 'string' ||
29
+ !environmentNamePattern.test(valueArg.destinationEnv)) {
30
+ throw new Error(`matrix.builders.${hostArg}.destinationEnv must name an environment variable`);
31
+ }
32
+ if (typeof valueArg.temporaryRootEnv !== 'string' ||
33
+ !environmentNamePattern.test(valueArg.temporaryRootEnv)) {
34
+ throw new Error(`matrix.builders.${hostArg}.temporaryRootEnv must name an environment variable`);
35
+ }
36
+ return {
37
+ transport: 'ssh',
38
+ destinationEnv: valueArg.destinationEnv,
39
+ temporaryRootEnv: valueArg.temporaryRootEnv,
40
+ };
41
+ }
42
+ throw new Error(`matrix.builders.${hostArg}.transport must be local or ssh`);
43
+ };
44
+ const validateSmokeTestArgs = (valueArg) => {
45
+ if (valueArg === undefined)
46
+ return undefined;
47
+ if (!Array.isArray(valueArg) ||
48
+ valueArg.length === 0 ||
49
+ valueArg.some((argument) => typeof argument !== 'string' || argument.includes('\0') || /[\r\n]/.test(argument))) {
50
+ throw new Error('matrix.smokeTestArgs must be a non-empty array of single-line strings');
51
+ }
52
+ return [...valueArg];
53
+ };
54
+ const validateForwardEnvironment = (valueArg) => {
55
+ if (valueArg === undefined)
56
+ return [];
57
+ if (!Array.isArray(valueArg) ||
58
+ valueArg.some((environmentName) => typeof environmentName !== 'string' ||
59
+ !environmentNamePattern.test(environmentName))) {
60
+ throw new Error('matrix.forwardEnvironment must contain environment variable names');
61
+ }
62
+ return [...new Set(valueArg)];
63
+ };
64
+ export const resolveMatrixPlan = (configArg) => {
65
+ const matrixValue = configArg.matrix;
66
+ if (!isRecord(matrixValue)) {
67
+ throw new Error('tsrust matrix commands require a matrix configuration');
68
+ }
69
+ assertClosedKeys(matrixValue, ['builders', 'smokeTestArgs', 'forwardEnvironment'], 'matrix');
70
+ if (!isRecord(matrixValue.builders) || Object.keys(matrixValue.builders).length === 0) {
71
+ throw new Error('matrix.builders must define at least one build worker');
72
+ }
73
+ const workers = [];
74
+ let localWorkerCount = 0;
75
+ for (const [host, rawBuilder] of Object.entries(matrixValue.builders)) {
76
+ if (!matrixHostKeySet.has(host)) {
77
+ throw new Error(`Unsupported matrix builder host: ${host}`);
78
+ }
79
+ const matrixHost = host;
80
+ const builderConfig = validateBuilder(matrixHost, rawBuilder);
81
+ if (builderConfig.transport === 'local')
82
+ localWorkerCount += 1;
83
+ const hostTriple = targetAliasMap[matrixHost];
84
+ const targets = resolveBuildTargets(configArg, hostTriple);
85
+ if (targets.length === 0) {
86
+ throw new Error(`matrix builder ${matrixHost} has no configured targets`);
87
+ }
88
+ const expectedFamily = matrixHost.startsWith('linux_') ? 'linux' : 'macos';
89
+ const crossFamilyTarget = targets.find((target) => !target.friendly.startsWith(`${expectedFamily}_`));
90
+ if (crossFamilyTarget) {
91
+ throw new Error(`matrix builder ${matrixHost} cannot own cross-family target ${crossFamilyTarget.friendly}`);
92
+ }
93
+ workers.push({ host: matrixHost, hostTriple, config: builderConfig, targets });
94
+ }
95
+ if (localWorkerCount > 1) {
96
+ throw new Error('matrix.builders may define at most one local worker');
97
+ }
98
+ const expectedTargets = configuredAssemblyTargets(configArg);
99
+ if (expectedTargets.length === 0) {
100
+ throw new Error('tsrust matrix commands require configured targets');
101
+ }
102
+ const expectedByTriple = new Map(expectedTargets.map((target) => [target.triple, target]));
103
+ const ownerByTriple = new Map();
104
+ for (const worker of workers) {
105
+ for (const target of worker.targets) {
106
+ if (!expectedByTriple.has(target.triple)) {
107
+ throw new Error(`matrix builder ${worker.host} selected unexpected target ${target.friendly}`);
108
+ }
109
+ const existingOwner = ownerByTriple.get(target.triple);
110
+ if (existingOwner) {
111
+ throw new Error(`matrix target ${target.friendly} is assigned to both ${existingOwner} and ${worker.host}`);
112
+ }
113
+ ownerByTriple.set(target.triple, worker.host);
114
+ }
115
+ }
116
+ const missingTargets = expectedTargets.filter((target) => !ownerByTriple.has(target.triple));
117
+ if (missingTargets.length > 0) {
118
+ throw new Error(`matrix builders do not cover configured targets: ${missingTargets
119
+ .map((target) => target.friendly)
120
+ .join(', ')}`);
121
+ }
122
+ return {
123
+ workers,
124
+ expectedTargets,
125
+ smokeTestArgs: validateSmokeTestArgs(matrixValue.smokeTestArgs),
126
+ forwardEnvironment: validateForwardEnvironment(matrixValue.forwardEnvironment),
127
+ };
128
+ };
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5tYXRyaXhjb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfbWF0cml4L2hlbHBlcnMubWF0cml4Y29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsbUJBQW1CLEVBQ25CLGNBQWMsR0FHZixNQUFNLCtCQUErQixDQUFDO0FBRXZDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixhQUFhO0lBQ2IsYUFBYTtJQUNiLGFBQWE7SUFDYixhQUFhO0NBQ0wsQ0FBQztBQXNDWCxNQUFNLHNCQUFzQixHQUFHLDBCQUEwQixDQUFDO0FBQzFELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLENBQVMsY0FBYyxDQUFDLENBQUM7QUFFekQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxRQUFpQixFQUF1QyxFQUFFLENBQzFFLENBQUMsQ0FBQyxRQUFRLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUV6RSxNQUFNLGdCQUFnQixHQUFHLENBQ3ZCLFFBQWlDLEVBQ2pDLGNBQXdCLEVBQ3hCLFFBQWdCLEVBQ1YsRUFBRTtJQUNSLE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwRixJQUFJLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLFFBQVEsK0JBQStCLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxD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
@@ -0,0 +1,3 @@
1
+ export { MatrixCommandRunner, type IMatrixCommandOptions, type IMatrixCommandResult, type IMatrixCommandRunner, } from './classes.matrixcommandrunner.js';
2
+ export { NativeMatrixBuilder, type INativeMatrixBuilderOptions, type INativeMatrixBuildResult, type INativeMatrixCheckResult, } from './classes.nativematrixbuilder.js';
3
+ export { matrixHostKeys, resolveMatrixPlan, type IResolvedMatrixPlan, type IResolvedMatrixWorker, type ITsrustLocalMatrixBuilderConfig, type ITsrustMatrixConfig, type ITsrustSshMatrixBuilderConfig, type TMatrixHost, type TTsrustMatrixBuilderConfig, } from './helpers.matrixconfig.js';
@@ -0,0 +1,4 @@
1
+ export { MatrixCommandRunner, } from './classes.matrixcommandrunner.js';
2
+ export { NativeMatrixBuilder, } from './classes.nativematrixbuilder.js';
3
+ export { matrixHostKeys, resolveMatrixPlan, } from './helpers.matrixconfig.js';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfbWF0cml4L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxtQkFBbUIsR0FJcEIsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxQyxPQUFPLEVBQ0wsbUJBQW1CLEdBSXBCLE1BQU0sa0NBQWtDLENBQUM7QUFDMUMsT0FBTyxFQUNMLGNBQWMsRUFDZCxpQkFBaUIsR0FRbEIsTUFBTSwyQkFBMkIsQ0FBQyJ9
@@ -2,6 +2,7 @@ export interface IGitSnapshot {
2
2
  available: boolean;
3
3
  commit: string;
4
4
  status: string;
5
+ unsafeIndexFlags?: string;
5
6
  }
6
7
  export declare function captureGitSnapshot(cwdArg: string): Promise<IGitSnapshot>;
7
8
  export declare function assertGitSnapshotUnchanged(beforeArg: IGitSnapshot, afterArg: IGitSnapshot): void;
@@ -10,14 +10,23 @@ export async function captureGitSnapshot(cwdArg) {
10
10
  commit = result.stdout.trim();
11
11
  }
12
12
  catch {
13
- return { available: false, commit: 'unknown', status: '' };
13
+ return { available: false, commit: 'unknown', status: '', unsafeIndexFlags: '' };
14
14
  }
15
15
  try {
16
16
  const status = await execFile('git', ['-C', cwdArg, 'status', '--porcelain=v1', '--untracked-files=all'], { encoding: 'utf8', maxBuffer: 16 * 1024 * 1024 });
17
+ const index = await execFile('git', ['-C', cwdArg, 'ls-files', '-v', '-z'], {
18
+ encoding: 'utf8',
19
+ maxBuffer: 16 * 1024 * 1024,
20
+ });
21
+ const unsafeIndexFlags = index.stdout
22
+ .split('\0')
23
+ .filter((entry) => entry.length > 0 && !entry.startsWith('H '))
24
+ .join('\0');
17
25
  return {
18
26
  available: true,
19
27
  commit,
20
28
  status: status.stdout,
29
+ unsafeIndexFlags,
21
30
  };
22
31
  }
23
32
  catch {
@@ -27,8 +36,9 @@ export async function captureGitSnapshot(cwdArg) {
27
36
  export function assertGitSnapshotUnchanged(beforeArg, afterArg) {
28
37
  if (beforeArg.available !== afterArg.available ||
29
38
  beforeArg.commit !== afterArg.commit ||
30
- beforeArg.status !== afterArg.status) {
39
+ beforeArg.status !== afterArg.status ||
40
+ (beforeArg.unsafeIndexFlags || '') !== (afterArg.unsafeIndexFlags || '')) {
31
41
  throw new Error('Git source state changed while Cargo was building');
32
42
  }
33
43
  }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5naXRzdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL21vZF9wcm92ZW5hbmNlL2NsYXNzZXMuZ2l0c3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLFlBQVksTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFFN0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7QUFRdkQsTUFBTSxDQUFDLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxNQUFjO0lBQ3JELElBQUksTUFBYyxDQUFDO0lBQ25CLElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0sUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQ3hFLFFBQVEsRUFBRSxNQUFNO1NBQ2pCLENBQUMsQ0FBQztRQUNILE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBQ0QsSUFBSSxDQUFDO1FBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxRQUFRLENBQzNCLEtBQUssRUFDTCxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLHVCQUF1QixDQUFDLEVBQ25FLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLEVBQUUsQ0FDbEQsQ0FBQztRQUNGLE9BQU87WUFDTCxTQUFTLEVBQUUsSUFBSTtZQUNmLE1BQU07WUFDTixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07U0FDdEIsQ0FBQztJQUNKLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsMEJBQTBCLENBQ3hDLFNBQXVCLEVBQ3ZCLFFBQXNCO0lBRXRCLElBQ0UsU0FBUyxDQUFDLFNBQVMsS0FBSyxRQUFRLENBQUMsU0FBUztRQUMxQyxTQUFTLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxNQUFNO1FBQ3BDLFNBQVMsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLE1BQU0sRUFDcEMsQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztJQUN2RSxDQUFDO0FBQ0gsQ0FBQyJ9
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5naXRzdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL21vZF9wcm92ZW5hbmNlL2NsYXNzZXMuZ2l0c3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLFlBQVksTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFFN0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7QUFTdkQsTUFBTSxDQUFDLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxNQUFjO0lBQ3JELElBQUksTUFBYyxDQUFDO0lBQ25CLElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0sUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQ3hFLFFBQVEsRUFBRSxNQUFNO1NBQ2pCLENBQUMsQ0FBQztRQUNILE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDbkYsQ0FBQztJQUNELElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0sUUFBUSxDQUMzQixLQUFLLEVBQ0wsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsQ0FBQyxFQUNuRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxFQUFFLENBQ2xELENBQUM7UUFDRixNQUFNLEtBQUssR0FBRyxNQUFNLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDMUUsUUFBUSxFQUFFLE1BQU07WUFDaEIsU0FBUyxFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSTtTQUM1QixDQUFDLENBQUM7UUFDSCxNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxNQUFNO2FBQ2xDLEtBQUssQ0FBQyxJQUFJLENBQUM7YUFDWCxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUM5RCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDZCxPQUFPO1lBQ0wsU0FBUyxFQUFFLElBQUk7WUFDZixNQUFNO1lBQ04sTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1lBQ3JCLGdCQUFnQjtTQUNqQixDQUFDO0lBQ0osQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSwwQkFBMEIsQ0FDeEMsU0FBdUIsRUFDdkIsUUFBc0I7SUFFdEIsSUFDRSxTQUFTLENBQUMsU0FBUyxLQUFLLFFBQVEsQ0FBQyxTQUFTO1FBQzFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLE1BQU07UUFDcEMsU0FBUyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsTUFBTTtRQUNwQyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUMsRUFDeEUsQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztJQUN2RSxDQUFDO0FBQ0gsQ0FBQyJ9
@@ -1,5 +1,6 @@
1
1
  import type { ITsrustBuildInfo } from '../mod_elf/index.js';
2
2
  export declare const PROVENANCE_SIDECAR_SUFFIX = ".tsrust-build.json";
3
+ export declare const MAX_PROVENANCE_SIDECAR_BYTES: number;
3
4
  export declare class ProvenanceStore {
4
5
  static sidecarPath(binaryPathArg: string): string;
5
6
  static sha256(binaryPathArg: string): Promise<string>;
@@ -5,6 +5,7 @@ import { ProvenanceStamper } from '../mod_elf/index.js';
5
5
  import { getHostIdentity, isLocalProcessRunning } from './helpers.owneridentity.js';
6
6
  const SIDECAR_FORMAT = 'tsrust.build-provenance.v2';
7
7
  export const PROVENANCE_SIDECAR_SUFFIX = '.tsrust-build.json';
8
+ export const MAX_PROVENANCE_SIDECAR_BYTES = 1024 * 1024;
8
9
  function isBuildInfo(valueArg) {
9
10
  if (!valueArg || typeof valueArg !== 'object' || Array.isArray(valueArg))
10
11
  return false;
@@ -144,6 +145,9 @@ export class ProvenanceStore {
144
145
  if (!sidecar.isFile() || sidecar.isSymbolicLink()) {
145
146
  throw new Error(`Provenance sidecar is not a regular file: ${sidecarPath}`);
146
147
  }
148
+ if (sidecar.size > MAX_PROVENANCE_SIDECAR_BYTES) {
149
+ throw new Error(`Provenance sidecar exceeds the size limit: ${sidecarPath}`);
150
+ }
147
151
  let parsed;
148
152
  try {
149
153
  parsed = JSON.parse(await fs.promises.readFile(sidecarPath, 'utf8'));
@@ -181,4 +185,4 @@ export class ProvenanceStore {
181
185
  return ProvenanceStore.readSidecar(binaryPathArg);
182
186
  }
183
187
  }
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5wcm92ZW5hbmNlc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfcHJvdmVuYW5jZS9jbGFzc2VzLnByb3ZlbmFuY2VzdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUN6QixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUU3QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFcEYsTUFBTSxjQUFjLEdBQUcsNEJBQTRCLENBQUM7QUFDcEQsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsb0JBQW9CLENBQUM7QUFROUQsU0FBUyxXQUFXLENBQUMsUUFBaUI7SUFDcEMsSUFBSSxDQUFDLFFBQVEsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUN2RixNQUFNLEtBQUssR0FBRyxRQUFtQyxDQUFDO0lBQ2xELE9BQU8sQ0FDTCxPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssUUFBUTtRQUNoQyxPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssUUFBUTtRQUNoQyxPQUFPLEtBQUssQ0FBQyxXQUFXLEtBQUssUUFBUTtRQUNyQyxPQUFPLEtBQUssQ0FBQyxjQUFjLEtBQUssUUFBUTtRQUN4QyxPQUFPLEtBQUssQ0FBQyxTQUFTLEtBQUssUUFBUTtRQUNuQyxPQUFPLEtBQUssQ0FBQyxPQUFPLEtBQUssUUFBUTtRQUNqQyxPQUFPLEtBQUssQ0FBQyxhQUFhLEtBQUssUUFBUTtRQUN2QyxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUssU0FBUyxJQUFJ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
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5wcm92ZW5hbmNlc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfcHJvdmVuYW5jZS9jbGFzc2VzLnByb3ZlbmFuY2VzdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUN6QixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUU3QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFcEYsTUFBTSxjQUFjLEdBQUcsNEJBQTRCLENBQUM7QUFDcEQsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsb0JBQW9CLENBQUM7QUFDOUQsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztBQVF4RCxTQUFTLFdBQVcsQ0FBQyxRQUFpQjtJQUNwQyxJQUFJLENBQUMsUUFBUSxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQ3ZGLE1BQU0sS0FBSyxHQUFHLFFBQW1DLENBQUM7SUFDbEQsT0FBTyxDQUNMLE9BQU8sS0FBSyxDQUFDLE1BQU0sS0FBSyxRQUFRO1FBQ2hDLE9BQU8sS0FBSyxDQUFDLE1BQU0sS0FBSyxRQUFRO1FBQ2hDLE9BQU8sS0FBSyxDQUFDLFdBQVcsS0FBSyxRQUFRO1FBQ3JDLE9BQU8sS0FBSyxDQUFDLGNBQWMsS0FBSyxRQUFRO1FBQ3hDLE9BQU8sS0FBSyxDQUFDLFNBQVMsS0FBSyxRQUFRO1FBQ25DLE9BQU8sS0FBSyxDQUFDLE9BQU8sS0FBSyxRQUFRO1FBQ2pDLE9BQU8sS0FBSyxDQUFDLGFB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
@@ -1,3 +1,3 @@
1
1
  export { captureGitSnapshot, assertGitSnapshotUnchanged, type IGitSnapshot, } from './classes.gitstate.js';
2
- export { ProvenanceStore, PROVENANCE_SIDECAR_SUFFIX, } from './classes.provenancestore.js';
2
+ export { ProvenanceStore, PROVENANCE_SIDECAR_SUFFIX, MAX_PROVENANCE_SIDECAR_BYTES, } from './classes.provenancestore.js';
3
3
  export { getHostIdentity, isLocalProcessRunning } from './helpers.owneridentity.js';
@@ -1,4 +1,4 @@
1
1
  export { captureGitSnapshot, assertGitSnapshotUnchanged, } from './classes.gitstate.js';
2
- export { ProvenanceStore, PROVENANCE_SIDECAR_SUFFIX, } from './classes.provenancestore.js';
2
+ export { ProvenanceStore, PROVENANCE_SIDECAR_SUFFIX, MAX_PROVENANCE_SIDECAR_BYTES, } from './classes.provenancestore.js';
3
3
  export { getHostIdentity, isLocalProcessRunning } from './helpers.owneridentity.js';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfcHJvdmVuYW5jZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLDBCQUEwQixHQUUzQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFDTCxlQUFlLEVBQ2YseUJBQXlCLEdBQzFCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDIn0=
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfcHJvdmVuYW5jZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLDBCQUEwQixHQUUzQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFDTCxlQUFlLEVBQ2YseUJBQXlCLEVBQ3pCLDRCQUE0QixHQUM3QixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxlQUFlLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQyJ9
@@ -5,6 +5,10 @@ export declare class ToolchainManager {
5
5
  static BIN_DIR: string;
6
6
  private shell;
7
7
  constructor();
8
+ private ensureSecureToolchainDirectory;
9
+ private isSecureToolchainExecutable;
10
+ private acquireInstallLock;
11
+ private releaseInstallLock;
8
12
  /**
9
13
  * Returns the Rust host triple for the current platform.
10
14
  */
@@ -12,10 +16,12 @@ export declare class ToolchainManager {
12
16
  /**
13
17
  * Checks if the bundled toolchain is already installed at TOOLCHAIN_DIR.
14
18
  */
19
+ private isInstalledUnlocked;
15
20
  isInstalled(): Promise<boolean>;
16
21
  /**
17
22
  * Downloads rustup-init and installs a minimal Rust toolchain to TOOLCHAIN_DIR.
18
23
  */
24
+ private installUnlocked;
19
25
  install(): Promise<void>;
20
26
  /**
21
27
  * Ensures the bundled toolchain is installed. Downloads if not present.