putitoutthere 0.3.18 → 0.3.20
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/action.d.ts.map +1 -1
- package/dist/action.js +4 -0
- package/dist/action.js.map +1 -1
- package/dist/check/check-cargo-shape-findings.d.ts +4 -0
- package/dist/check/check-cargo-shape-findings.d.ts.map +1 -0
- package/dist/check/check-cargo-shape-findings.js +10 -0
- package/dist/check/check-cargo-shape-findings.js.map +1 -0
- package/dist/check/check-crates-package-metadata.d.ts +4 -0
- package/dist/check/check-crates-package-metadata.d.ts.map +1 -0
- package/dist/check/check-crates-package-metadata.js +11 -0
- package/dist/check/check-crates-package-metadata.js.map +1 -0
- package/dist/check/check-depends-on.d.ts +4 -0
- package/dist/check/check-depends-on.d.ts.map +1 -0
- package/dist/check/check-depends-on.js +13 -0
- package/dist/check/check-depends-on.js.map +1 -0
- package/dist/check/check-globs-match-tracked-files.d.ts +4 -0
- package/dist/check/check-globs-match-tracked-files.d.ts.map +1 -0
- package/dist/check/check-globs-match-tracked-files.js +18 -0
- package/dist/check/check-globs-match-tracked-files.js.map +1 -0
- package/dist/check/check-npm-repository.d.ts +4 -0
- package/dist/check/check-npm-repository.d.ts.map +1 -0
- package/dist/check/check-npm-repository.js +14 -0
- package/dist/check/check-npm-repository.js.map +1 -0
- package/dist/check/check-npm-target-triples.d.ts +4 -0
- package/dist/check/check-npm-target-triples.d.ts.map +1 -0
- package/dist/check/check-npm-target-triples.js +27 -0
- package/dist/check/check-npm-target-triples.js.map +1 -0
- package/dist/check/check-package-json-shape-findings.d.ts +4 -0
- package/dist/check/check-package-json-shape-findings.d.ts.map +1 -0
- package/dist/check/check-package-json-shape-findings.js +10 -0
- package/dist/check/check-package-json-shape-findings.js.map +1 -0
- package/dist/check/check-paths.d.ts +4 -0
- package/dist/check/check-paths.d.ts.map +1 -0
- package/dist/check/check-paths.js +13 -0
- package/dist/check/check-paths.js.map +1 -0
- package/dist/check/check-pypi-version.d.ts +4 -0
- package/dist/check/check-pypi-version.d.ts.map +1 -0
- package/dist/check/check-pypi-version.js +11 -0
- package/dist/check/check-pypi-version.js.map +1 -0
- package/dist/check/check-pyproject-and-bundle-cli.d.ts +4 -0
- package/dist/check/check-pyproject-and-bundle-cli.d.ts.map +1 -0
- package/dist/check/check-pyproject-and-bundle-cli.js +52 -0
- package/dist/check/check-pyproject-and-bundle-cli.js.map +1 -0
- package/dist/check/check-pyproject-shape-findings.d.ts +4 -0
- package/dist/check/check-pyproject-shape-findings.d.ts.map +1 -0
- package/dist/check/check-pyproject-shape-findings.js +10 -0
- package/dist/check/check-pyproject-shape-findings.js.map +1 -0
- package/dist/check/check-repo-url-match-findings.d.ts +4 -0
- package/dist/check/check-repo-url-match-findings.d.ts.map +1 -0
- package/dist/check/check-repo-url-match-findings.js +17 -0
- package/dist/check/check-repo-url-match-findings.js.map +1 -0
- package/dist/check/check-tag-template-collisions.d.ts +4 -0
- package/dist/check/check-tag-template-collisions.d.ts.map +1 -0
- package/dist/check/check-tag-template-collisions.js +22 -0
- package/dist/check/check-tag-template-collisions.js.map +1 -0
- package/dist/check/collect-bins-from-manifest.d.ts +2 -0
- package/dist/check/collect-bins-from-manifest.d.ts.map +1 -0
- package/dist/check/collect-bins-from-manifest.js +27 -0
- package/dist/check/collect-bins-from-manifest.js.map +1 -0
- package/dist/check/list-tracked-files.d.ts +2 -0
- package/dist/check/list-tracked-files.d.ts.map +1 -0
- package/dist/check/list-tracked-files.js +11 -0
- package/dist/check/list-tracked-files.js.map +1 -0
- package/dist/check/parse-cargo-toml.d.ts +2 -0
- package/dist/check/parse-cargo-toml.d.ts.map +1 -0
- package/dist/check/parse-cargo-toml.js +11 -0
- package/dist/check/parse-cargo-toml.js.map +1 -0
- package/dist/check/read-declared-bins.d.ts +2 -0
- package/dist/check/read-declared-bins.d.ts.map +1 -0
- package/dist/check/read-declared-bins.js +33 -0
- package/dist/check/read-declared-bins.js.map +1 -0
- package/dist/check/workspace-member-manifests.d.ts +2 -0
- package/dist/check/workspace-member-manifests.d.ts.map +1 -0
- package/dist/check/workspace-member-manifests.js +23 -0
- package/dist/check/workspace-member-manifests.js.map +1 -0
- package/dist/check.d.ts +6 -5
- package/dist/check.d.ts.map +1 -1
- package/dist/check.js +21 -307
- package/dist/check.js.map +1 -1
- package/dist/cli-bin.js +5 -2
- package/dist/cli-bin.js.map +1 -1
- package/dist/handlers/crates.d.ts +3 -16
- package/dist/handlers/crates.d.ts.map +1 -1
- package/dist/handlers/crates.js +16 -108
- package/dist/handlers/crates.js.map +1 -1
- package/dist/handlers/scan-dirty-outside-manifest.d.ts +21 -0
- package/dist/handlers/scan-dirty-outside-manifest.d.ts.map +1 -0
- package/dist/handlers/scan-dirty-outside-manifest.js +104 -0
- package/dist/handlers/scan-dirty-outside-manifest.js.map +1 -0
- package/dist/is-within-dir.d.ts +11 -0
- package/dist/is-within-dir.d.ts.map +1 -0
- package/dist/is-within-dir.js +13 -0
- package/dist/is-within-dir.js.map +1 -0
- package/dist/utils/bound-capture.d.ts +12 -0
- package/dist/utils/bound-capture.d.ts.map +1 -0
- package/dist/utils/bound-capture.js +22 -0
- package/dist/utils/bound-capture.js.map +1 -0
- package/dist/utils/exec-capture.d.ts +1 -0
- package/dist/utils/exec-capture.d.ts.map +1 -1
- package/dist/utils/exec-capture.js +18 -3
- package/dist/utils/exec-capture.js.map +1 -1
- package/dist/utils/flush-stdio.d.ts +16 -0
- package/dist/utils/flush-stdio.d.ts.map +1 -0
- package/dist/utils/flush-stdio.js +24 -0
- package/dist/utils/flush-stdio.js.map +1 -0
- package/dist/write-dependent-version-reqs.d.ts +50 -0
- package/dist/write-dependent-version-reqs.d.ts.map +1 -0
- package/dist/write-dependent-version-reqs.js +158 -0
- package/dist/write-dependent-version-reqs.js.map +1 -0
- package/package.json +1 -1
package/dist/action.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../src/action.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../src/action.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAoE1C"}
|
package/dist/action.js
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { pathToFileURL } from 'node:url';
|
|
11
11
|
import { run } from './cli.js';
|
|
12
|
+
import { flushStdio } from './utils/flush-stdio.js';
|
|
12
13
|
export async function main() {
|
|
13
14
|
const command = process.env.INPUT_COMMAND ?? '';
|
|
14
15
|
const workingDirectory = process.env.INPUT_WORKING_DIRECTORY ?? '';
|
|
@@ -20,6 +21,7 @@ export async function main() {
|
|
|
20
21
|
const failOnError = (process.env.INPUT_FAIL_ON_ERROR ?? 'true').toLowerCase() !== 'false';
|
|
21
22
|
if (!command) {
|
|
22
23
|
process.stderr.write('putitoutthere action: missing required input `command`\n');
|
|
24
|
+
await flushStdio();
|
|
23
25
|
process.exit(1);
|
|
24
26
|
}
|
|
25
27
|
// #276: write-version uses a different argv shape — `--path` (the
|
|
@@ -84,8 +86,10 @@ export async function main() {
|
|
|
84
86
|
const code = await run(argv);
|
|
85
87
|
if (code !== 0 && !failOnError) {
|
|
86
88
|
process.stderr.write(`putitoutthere action: ignoring non-zero exit (fail_on_error=false): ${code}\n`);
|
|
89
|
+
await flushStdio();
|
|
87
90
|
process.exit(0);
|
|
88
91
|
}
|
|
92
|
+
await flushStdio();
|
|
89
93
|
process.exit(code);
|
|
90
94
|
}
|
|
91
95
|
// Entry-point guard. Compare via `pathToFileURL` so the guard fires on
|
package/dist/action.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.js","sourceRoot":"","sources":["../src/action.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"action.js","sourceRoot":"","sources":["../src/action.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Package } from '../config.js';
|
|
2
|
+
import type { CheckFinding } from '../check.js';
|
|
3
|
+
export declare function checkCargoShapeFindings(packages: readonly Package[], cwd: string, findings: CheckFinding[]): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=check-cargo-shape-findings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-cargo-shape-findings.d.ts","sourceRoot":"","sources":["../../src/check/check-cargo-shape-findings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,YAAY,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC,CAOf"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { checkCargoShape } from '../preflight.js';
|
|
2
|
+
export async function checkCargoShapeFindings(packages, cwd, findings) {
|
|
3
|
+
for (const f of await checkCargoShape(packages, { cwd })) {
|
|
4
|
+
findings.push({
|
|
5
|
+
package: f.package,
|
|
6
|
+
message: `[${f.code}] ${f.cargoTomlPath}: ${f.detail}`,
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=check-cargo-shape-findings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-cargo-shape-findings.js","sourceRoot":"","sources":["../../src/check/check-cargo-shape-findings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,QAA4B,EAC5B,GAAW,EACX,QAAwB;IAExB,KAAK,MAAM,CAAC,IAAI,MAAM,eAAe,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QACzD,QAAQ,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,MAAM,EAAE;SACvD,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Package } from '../config.js';
|
|
2
|
+
import type { CheckFinding } from '../check.js';
|
|
3
|
+
export declare function checkCratesPackageMetadata(packages: readonly Package[], findings: CheckFinding[]): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=check-crates-package-metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-crates-package-metadata.d.ts","sourceRoot":"","sources":["../../src/check/check-crates-package-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,QAAQ,EAAE,YAAY,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC,CAOf"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ErrorCodes } from '../error-codes.js';
|
|
2
|
+
import { checkCratesMetadata } from '../preflight.js';
|
|
3
|
+
export async function checkCratesPackageMetadata(packages, findings) {
|
|
4
|
+
for (const f of await checkCratesMetadata(packages)) {
|
|
5
|
+
findings.push({
|
|
6
|
+
package: f.package,
|
|
7
|
+
message: `[${ErrorCodes.CRATES_MISSING_METADATA}] ${f.cargoTomlPath} missing required Cargo.toml [package] field(s): ${f.missing.join(', ')}. crates.io rejects the publish after cargo's verification build.`,
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=check-crates-package-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-crates-package-metadata.js","sourceRoot":"","sources":["../../src/check/check-crates-package-metadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,QAA4B,EAC5B,QAAwB;IAExB,KAAK,MAAM,CAAC,IAAI,MAAM,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,QAAQ,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,OAAO,EAAE,IAAI,UAAU,CAAC,uBAAuB,KAAK,CAAC,CAAC,aAAa,oDAAoD,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,mEAAmE;SAC/M,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-depends-on.d.ts","sourceRoot":"","sources":["../../src/check/check-depends-on.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI,CAQ3F"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { assertNoCycles } from '../cascade.js';
|
|
2
|
+
import { toError } from '../to-error.js';
|
|
3
|
+
export function checkDependsOn(packages, findings) {
|
|
4
|
+
try {
|
|
5
|
+
assertNoCycles(packages);
|
|
6
|
+
}
|
|
7
|
+
catch (err) {
|
|
8
|
+
findings.push({
|
|
9
|
+
message: toError(err).message,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=check-depends-on.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-depends-on.js","sourceRoot":"","sources":["../../src/check/check-depends-on.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAGzC,MAAM,UAAU,cAAc,CAAC,QAA4B,EAAE,QAAwB;IACnF,IAAI,CAAC;QACH,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,QAAQ,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO;SAC9B,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Package } from '../config.js';
|
|
2
|
+
import type { CheckFinding } from '../check.js';
|
|
3
|
+
export declare function checkGlobsMatchTrackedFiles(packages: readonly Package[], cwd: string, findings: CheckFinding[]): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=check-globs-match-tracked-files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-globs-match-tracked-files.d.ts","sourceRoot":"","sources":["../../src/check/check-globs-match-tracked-files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,YAAY,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC,CAYf"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { matchesAny } from '../glob.js';
|
|
2
|
+
import { listTrackedFiles } from './list-tracked-files.js';
|
|
3
|
+
export async function checkGlobsMatchTrackedFiles(packages, cwd, findings) {
|
|
4
|
+
const tracked = await listTrackedFiles(cwd);
|
|
5
|
+
if (tracked === null) {
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
for (const p of packages) {
|
|
9
|
+
const matched = tracked.some((f) => matchesAny(p.globs, f));
|
|
10
|
+
if (!matched) {
|
|
11
|
+
findings.push({
|
|
12
|
+
package: p.name,
|
|
13
|
+
message: `globs ${JSON.stringify(p.globs)} matched no tracked files. Empty globs mean the package will never cascade on a real commit.`,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=check-globs-match-tracked-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-globs-match-tracked-files.js","sourceRoot":"","sources":["../../src/check/check-globs-match-tracked-files.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,QAA4B,EAC5B,GAAW,EACX,QAAwB;IAExB,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAAA,OAAO;IAAA,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC;gBACZ,OAAO,EAAE,CAAC,CAAC,IAAI;gBACf,OAAO,EAAE,SAAS,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,8FAA8F;aACxI,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-npm-repository.d.ts","sourceRoot":"","sources":["../../src/check/check-npm-repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAW9G"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ErrorCodes } from '../error-codes.js';
|
|
2
|
+
import { checkProvenanceMetadata } from '../preflight.js';
|
|
3
|
+
export async function checkNpmRepository(packages, findings) {
|
|
4
|
+
for (const f of await checkProvenanceMetadata(packages)) {
|
|
5
|
+
const reason = f.reason === 'missing'
|
|
6
|
+
? `${f.packageJsonPath} not found`
|
|
7
|
+
: `${f.packageJsonPath} has missing or empty \`repository\``;
|
|
8
|
+
findings.push({
|
|
9
|
+
package: f.package,
|
|
10
|
+
message: `[${ErrorCodes.NPM_MISSING_REPOSITORY}] ${reason}. \`npm publish --provenance\` hard-requires a non-empty repository.url.`,
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=check-npm-repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-npm-repository.js","sourceRoot":"","sources":["../../src/check/check-npm-repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAG1D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,QAA4B,EAAE,QAAwB;IAC7F,KAAK,MAAM,CAAC,IAAI,MAAM,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxD,MAAM,MAAM,GACV,CAAC,CAAC,MAAM,KAAK,SAAS;YACpB,CAAC,CAAC,GAAG,CAAC,CAAC,eAAe,YAAY;YAClC,CAAC,CAAC,GAAG,CAAC,CAAC,eAAe,sCAAsC,CAAC;QACjE,QAAQ,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,OAAO,EAAE,IAAI,UAAU,CAAC,sBAAsB,KAAK,MAAM,0EAA0E;SACpI,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-npm-target-triples.d.ts","sourceRoot":"","sources":["../../src/check/check-npm-target-triples.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAI5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,QAAQ,EAAE,YAAY,EAAE,GACvB,IAAI,CAiBN"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { assertTripleSupported } from '../handlers/npm-platform.js';
|
|
2
|
+
import { toError } from '../to-error.js';
|
|
3
|
+
import { normalizeTarget } from '../types.js';
|
|
4
|
+
export function checkNpmTargetTriples(packages, findings) {
|
|
5
|
+
for (const p of packages) {
|
|
6
|
+
if (p.kind !== 'npm') {
|
|
7
|
+
continue;
|
|
8
|
+
}
|
|
9
|
+
const targets = p.targets;
|
|
10
|
+
if (!targets) {
|
|
11
|
+
continue;
|
|
12
|
+
}
|
|
13
|
+
for (const t of targets) {
|
|
14
|
+
const { triple } = normalizeTarget(t);
|
|
15
|
+
try {
|
|
16
|
+
assertTripleSupported(triple, p.name);
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
findings.push({
|
|
20
|
+
package: p.name,
|
|
21
|
+
message: toError(err).message,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=check-npm-target-triples.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-npm-target-triples.js","sourceRoot":"","sources":["../../src/check/check-npm-target-triples.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,eAAe,EAAoB,MAAM,aAAa,CAAC;AAGhE,MAAM,UAAU,qBAAqB,CACnC,QAA4B,EAC5B,QAAwB;IAExB,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAAA,SAAS;QAAA,CAAC;QACjC,MAAM,OAAO,GAAI,CAAiC,CAAC,OAAO,CAAC;QAC3D,IAAI,CAAC,OAAO,EAAE,CAAC;YAAA,SAAS;QAAA,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC;gBACH,qBAAqB,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,QAAQ,CAAC,IAAI,CAAC;oBACZ,OAAO,EAAE,CAAC,CAAC,IAAI;oBACf,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO;iBAC9B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Package } from '../config.js';
|
|
2
|
+
import type { CheckFinding } from '../check.js';
|
|
3
|
+
export declare function checkPackageJsonShapeFindings(packages: readonly Package[], findings: CheckFinding[]): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=check-package-json-shape-findings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-package-json-shape-findings.d.ts","sourceRoot":"","sources":["../../src/check/check-package-json-shape-findings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,wBAAsB,6BAA6B,CACjD,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,QAAQ,EAAE,YAAY,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC,CAOf"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { checkPackageJsonShape } from '../preflight.js';
|
|
2
|
+
export async function checkPackageJsonShapeFindings(packages, findings) {
|
|
3
|
+
for (const f of await checkPackageJsonShape(packages)) {
|
|
4
|
+
findings.push({
|
|
5
|
+
package: f.package,
|
|
6
|
+
message: `[${f.code}] ${f.packageJsonPath}: ${f.detail}`,
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=check-package-json-shape-findings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-package-json-shape-findings.js","sourceRoot":"","sources":["../../src/check/check-package-json-shape-findings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAGxD,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,QAA4B,EAC5B,QAAwB;IAExB,KAAK,MAAM,CAAC,IAAI,MAAM,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtD,QAAQ,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,eAAe,KAAK,CAAC,CAAC,MAAM,EAAE;SACzD,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-paths.d.ts","sourceRoot":"","sources":["../../src/check/check-paths.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,wBAAsB,UAAU,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAStG"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { stat } from 'node:fs/promises';
|
|
2
|
+
import { pathExists } from '../utils/path-exists.js';
|
|
3
|
+
export async function checkPaths(packages, findings) {
|
|
4
|
+
for (const p of packages) {
|
|
5
|
+
if (!(await pathExists(p.path)) || !(await stat(p.path)).isDirectory()) {
|
|
6
|
+
findings.push({
|
|
7
|
+
package: p.name,
|
|
8
|
+
message: `path "${p.path}" does not exist or is not a directory in the worktree`,
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=check-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-paths.js","sourceRoot":"","sources":["../../src/check/check-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAGxC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGrD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAA4B,EAAE,QAAwB;IACrF,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YACvE,QAAQ,CAAC,IAAI,CAAC;gBACZ,OAAO,EAAE,CAAC,CAAC,IAAI;gBACf,OAAO,EAAE,SAAS,CAAC,CAAC,IAAI,wDAAwD;aACjF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-pypi-version.d.ts","sourceRoot":"","sources":["../../src/check/check-pypi-version.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,QAAQ,EAAE,YAAY,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC,CAOf"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ErrorCodes } from '../error-codes.js';
|
|
2
|
+
import { checkPypiVersionSource } from '../preflight.js';
|
|
3
|
+
export async function checkPypiVersion(packages, findings) {
|
|
4
|
+
for (const f of await checkPypiVersionSource(packages)) {
|
|
5
|
+
findings.push({
|
|
6
|
+
package: f.package,
|
|
7
|
+
message: `[${ErrorCodes.PYPI_STATIC_VERSION}] ${f.pyprojectPath} declares a static \`[project].version\` literal. Use \`[project].dynamic = ["version"]\` with hatch-vcs (recommended), setuptools-scm, or the maturin Cargo.toml-driven path — putitoutthere does not edit pyproject.toml at release time, so a literal silently ships the previous release.`,
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=check-pypi-version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-pypi-version.js","sourceRoot":"","sources":["../../src/check/check-pypi-version.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAGzD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAA4B,EAC5B,QAAwB;IAExB,KAAK,MAAM,CAAC,IAAI,MAAM,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvD,QAAQ,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,OAAO,EAAE,IAAI,UAAU,CAAC,mBAAmB,KAAK,CAAC,CAAC,aAAa,+RAA+R;SAC/V,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Package } from '../config.js';
|
|
2
|
+
import type { CheckFinding } from '../check.js';
|
|
3
|
+
export declare function checkPyprojectAndBundleCli(packages: readonly Package[], cwd: string, findings: CheckFinding[]): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=check-pyproject-and-bundle-cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-pyproject-and-bundle-cli.d.ts","sourceRoot":"","sources":["../../src/check/check-pyproject-and-bundle-cli.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,YAAY,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC,CA0Cf"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { stat } from 'node:fs/promises';
|
|
2
|
+
import { isAbsolute, join, resolve } from 'node:path';
|
|
3
|
+
import { pathExists } from '../utils/path-exists.js';
|
|
4
|
+
import { readDeclaredBins } from './read-declared-bins.js';
|
|
5
|
+
export async function checkPyprojectAndBundleCli(packages, cwd, findings) {
|
|
6
|
+
for (const p of packages) {
|
|
7
|
+
if (p.kind !== 'pypi') {
|
|
8
|
+
continue;
|
|
9
|
+
}
|
|
10
|
+
const pyprojectPath = join(p.path, 'pyproject.toml');
|
|
11
|
+
if (!(await pathExists(pyprojectPath))) {
|
|
12
|
+
findings.push({
|
|
13
|
+
package: p.name,
|
|
14
|
+
message: `pyproject.toml not found at ${pyprojectPath}`,
|
|
15
|
+
});
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
if (p.build !== 'maturin' || p.bundle_cli === undefined) {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
const bundleCli = p.bundle_cli;
|
|
22
|
+
// `bundle_cli.crate_path` is documented as relative to the repo
|
|
23
|
+
// root (see config.ts: default = "."). Resolve against `cwd`,
|
|
24
|
+
// not the package path.
|
|
25
|
+
const cratePathAbs = isAbsolute(bundleCli.crate_path)
|
|
26
|
+
? bundleCli.crate_path
|
|
27
|
+
: resolve(cwd, bundleCli.crate_path);
|
|
28
|
+
const cargoTomlPath = join(cratePathAbs, 'Cargo.toml');
|
|
29
|
+
if (!(await pathExists(cratePathAbs)) || !(await stat(cratePathAbs)).isDirectory()) {
|
|
30
|
+
findings.push({
|
|
31
|
+
package: p.name,
|
|
32
|
+
message: `bundle_cli.crate_path "${bundleCli.crate_path}" does not exist or is not a directory`,
|
|
33
|
+
});
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
if (!(await pathExists(cargoTomlPath))) {
|
|
37
|
+
findings.push({
|
|
38
|
+
package: p.name,
|
|
39
|
+
message: `bundle_cli.crate_path "${bundleCli.crate_path}" has no Cargo.toml`,
|
|
40
|
+
});
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
const declaredBins = await readDeclaredBins(cargoTomlPath);
|
|
44
|
+
if (!declaredBins.includes(bundleCli.bin)) {
|
|
45
|
+
findings.push({
|
|
46
|
+
package: p.name,
|
|
47
|
+
message: `bundle_cli.bin "${bundleCli.bin}" is not declared as a [[bin]] in ${cargoTomlPath}. Declared bins: ${declaredBins.length === 0 ? '(none)' : declaredBins.join(', ')}.`,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=check-pyproject-and-bundle-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-pyproject-and-bundle-cli.js","sourceRoot":"","sources":["../../src/check/check-pyproject-and-bundle-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGtD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,QAA4B,EAC5B,GAAW,EACX,QAAwB;IAExB,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAAA,SAAS;QAAA,CAAC;QAClC,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACrD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC;gBACZ,OAAO,EAAE,CAAC,CAAC,IAAI;gBACf,OAAO,EAAE,+BAA+B,aAAa,EAAE;aACxD,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAAA,SAAS;QAAA,CAAC;QACpE,MAAM,SAAS,GAAG,CAAC,CAAC,UAAU,CAAC;QAC/B,gEAAgE;QAChE,8DAA8D;QAC9D,wBAAwB;QACxB,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC;YACnD,CAAC,CAAC,SAAS,CAAC,UAAU;YACtB,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;QACvC,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QACvD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YACnF,QAAQ,CAAC,IAAI,CAAC;gBACZ,OAAO,EAAE,CAAC,CAAC,IAAI;gBACf,OAAO,EAAE,0BAA0B,SAAS,CAAC,UAAU,wCAAwC;aAChG,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC;gBACZ,OAAO,EAAE,CAAC,CAAC,IAAI;gBACf,OAAO,EAAE,0BAA0B,SAAS,CAAC,UAAU,qBAAqB;aAC7E,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAC3D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1C,QAAQ,CAAC,IAAI,CAAC;gBACZ,OAAO,EAAE,CAAC,CAAC,IAAI;gBACf,OAAO,EAAE,mBAAmB,SAAS,CAAC,GAAG,qCAAqC,aAAa,oBAAoB,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;aACjL,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Package } from '../config.js';
|
|
2
|
+
import type { CheckFinding } from '../check.js';
|
|
3
|
+
export declare function checkPyprojectShapeFindings(packages: readonly Package[], findings: CheckFinding[]): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=check-pyproject-shape-findings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-pyproject-shape-findings.d.ts","sourceRoot":"","sources":["../../src/check/check-pyproject-shape-findings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,QAAQ,EAAE,YAAY,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC,CAOf"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { checkPyprojectShape } from '../preflight.js';
|
|
2
|
+
export async function checkPyprojectShapeFindings(packages, findings) {
|
|
3
|
+
for (const f of await checkPyprojectShape(packages)) {
|
|
4
|
+
findings.push({
|
|
5
|
+
package: f.package,
|
|
6
|
+
message: `[${f.code}] ${f.pyprojectPath}: ${f.detail}`,
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=check-pyproject-shape-findings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-pyproject-shape-findings.js","sourceRoot":"","sources":["../../src/check/check-pyproject-shape-findings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,QAA4B,EAC5B,QAAwB;IAExB,KAAK,MAAM,CAAC,IAAI,MAAM,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,QAAQ,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,MAAM,EAAE;SACvD,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Package } from '../config.js';
|
|
2
|
+
import type { CheckFinding } from '../check.js';
|
|
3
|
+
export declare function checkRepoUrlMatchFindings(packages: readonly Package[], findings: CheckFinding[]): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=check-repo-url-match-findings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-repo-url-match-findings.d.ts","sourceRoot":"","sources":["../../src/check/check-repo-url-match-findings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,QAAQ,EAAE,YAAY,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC,CAaf"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ErrorCodes } from '../error-codes.js';
|
|
2
|
+
import { checkRepoUrlMatch } from '../preflight.js';
|
|
3
|
+
export async function checkRepoUrlMatchFindings(packages, findings) {
|
|
4
|
+
// Sourced from GHA's process env at PR time when this runs inside the
|
|
5
|
+
// reusable workflow. Locally invoked `putitoutthere check` outside any
|
|
6
|
+
// GHA context will skip the check (the preflight returns no findings
|
|
7
|
+
// when GITHUB_REPOSITORY is unset), which is the right behaviour:
|
|
8
|
+
// there is no workflow source to disagree with.
|
|
9
|
+
const githubRepository = process.env.GITHUB_REPOSITORY;
|
|
10
|
+
for (const f of await checkRepoUrlMatch(packages, { githubRepository })) {
|
|
11
|
+
findings.push({
|
|
12
|
+
package: f.package,
|
|
13
|
+
message: `[${ErrorCodes.REPO_URL_MISMATCH}] ${f.manifestPath}: declared repository "${f.declaredOwnerRepo}" does not match GITHUB_REPOSITORY "${f.expectedOwnerRepo}". npm rejects \`--provenance\` publishes whose package.json#repository.url disagrees with the OIDC source claim (422); crates.io / PyPI trusted-publisher paths carry the same risk.`,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=check-repo-url-match-findings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-repo-url-match-findings.js","sourceRoot":"","sources":["../../src/check/check-repo-url-match-findings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,QAA4B,EAC5B,QAAwB;IAExB,sEAAsE;IACtE,uEAAuE;IACvE,qEAAqE;IACrE,kEAAkE;IAClE,gDAAgD;IAChD,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACvD,KAAK,MAAM,CAAC,IAAI,MAAM,iBAAiB,CAAC,QAAQ,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC;QACxE,QAAQ,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,OAAO,EAAE,IAAI,UAAU,CAAC,iBAAiB,KAAK,CAAC,CAAC,YAAY,0BAA0B,CAAC,CAAC,iBAAiB,uCAAuC,CAAC,CAAC,iBAAiB,uLAAuL;SAC3V,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-tag-template-collisions.d.ts","sourceRoot":"","sources":["../../src/check/check-tag-template-collisions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,QAAQ,EAAE,YAAY,EAAE,GACvB,IAAI,CAkBN"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { formatTag } from '../tag-template.js';
|
|
2
|
+
export function checkTagTemplateCollisions(packages, findings) {
|
|
3
|
+
// Templates collide when they resolve to the same tag at the same
|
|
4
|
+
// version — typically when `{name}` is omitted and every package
|
|
5
|
+
// thereafter races for one tag slot. A sentinel version is enough:
|
|
6
|
+
// differing templates differ on every version, identical templates
|
|
7
|
+
// collide on every version.
|
|
8
|
+
const seen = new Map();
|
|
9
|
+
for (const p of packages) {
|
|
10
|
+
const sentinel = formatTag(p.tag_format, { name: p.name, version: '0.0.0' });
|
|
11
|
+
const prior = seen.get(sentinel);
|
|
12
|
+
if (prior !== undefined) {
|
|
13
|
+
findings.push({
|
|
14
|
+
message: `tag_format collision: "${p.name}" and "${prior}" both resolve to tag "${sentinel}" at the same version. Include {name} in tag_format to disambiguate.`,
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
seen.set(sentinel, p.name);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=check-tag-template-collisions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-tag-template-collisions.js","sourceRoot":"","sources":["../../src/check/check-tag-template-collisions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,MAAM,UAAU,0BAA0B,CACxC,QAA4B,EAC5B,QAAwB;IAExB,kEAAkE;IAClE,iEAAiE;IACjE,mEAAmE;IACnE,mEAAmE;IACnE,4BAA4B;IAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC;gBACZ,OAAO,EAAE,0BAA0B,CAAC,CAAC,IAAI,UAAU,KAAK,0BAA0B,QAAQ,sEAAsE;aACjK,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collect-bins-from-manifest.d.ts","sourceRoot":"","sources":["../../src/check/collect-bins-from-manifest.ts"],"names":[],"mappings":"AAAA,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAqBjF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export function collectBinsFromManifest(parsed) {
|
|
2
|
+
const result = [];
|
|
3
|
+
const bins = parsed.bin;
|
|
4
|
+
if (Array.isArray(bins)) {
|
|
5
|
+
for (const entry of bins) {
|
|
6
|
+
if (typeof entry === 'object' && entry !== null) {
|
|
7
|
+
const name = entry.name;
|
|
8
|
+
if (typeof name === 'string') {
|
|
9
|
+
result.push(name);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
// Cargo's implicit-binary rule: a crate without any explicit [[bin]]
|
|
15
|
+
// table ships a binary named after `[package].name` when
|
|
16
|
+
// `src/main.rs` exists. Include that name as a candidate so the
|
|
17
|
+
// common single-binary shape (one crate, one bin, no [[bin]] block)
|
|
18
|
+
// doesn't spuriously fail this check.
|
|
19
|
+
if (result.length === 0) {
|
|
20
|
+
const pkg = parsed.package;
|
|
21
|
+
if (pkg && typeof pkg.name === 'string') {
|
|
22
|
+
result.push(pkg.name);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=collect-bins-from-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collect-bins-from-manifest.js","sourceRoot":"","sources":["../../src/check/collect-bins-from-manifest.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,uBAAuB,CAAC,MAA+B;IACrE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC;IACxB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;YACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAChD,MAAM,IAAI,GAAI,KAA4B,CAAC,IAAI,CAAC;gBAChD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAAA,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IACD,qEAAqE;IACrE,yDAAyD;IACzD,gEAAgE;IAChE,oEAAoE;IACpE,sCAAsC;IACtC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,MAAM,CAAC,OAAyC,CAAC;QAC7D,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAAA,CAAC;IACnE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-tracked-files.d.ts","sourceRoot":"","sources":["../../src/check/list-tracked-files.ts"],"names":[],"mappings":"AAEA,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAO5E"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { execCapture } from '../utils/exec-capture.js';
|
|
2
|
+
export async function listTrackedFiles(cwd) {
|
|
3
|
+
try {
|
|
4
|
+
const { stdout } = await execCapture('git', ['ls-files'], { cwd });
|
|
5
|
+
return stdout.split('\n').filter((l) => l.length > 0);
|
|
6
|
+
}
|
|
7
|
+
catch {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=list-tracked-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-tracked-files.js","sourceRoot":"","sources":["../../src/check/list-tracked-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAW;IAChD,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACnE,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-cargo-toml.d.ts","sourceRoot":"","sources":["../../src/check/parse-cargo-toml.ts"],"names":[],"mappings":"AAIA,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAM1F"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
import { parse as parseToml } from 'smol-toml';
|
|
3
|
+
export async function parseCargoToml(path) {
|
|
4
|
+
try {
|
|
5
|
+
return parseToml(await readFile(path, 'utf8'));
|
|
6
|
+
}
|
|
7
|
+
catch {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=parse-cargo-toml.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-cargo-toml.js","sourceRoot":"","sources":["../../src/check/parse-cargo-toml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAY;IAC/C,IAAI,CAAC;QACH,OAAO,SAAS,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-declared-bins.d.ts","sourceRoot":"","sources":["../../src/check/read-declared-bins.ts"],"names":[],"mappings":"AAIA,wBAAsB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAsB/E"}
|