greenbump 0.2.0 → 0.4.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/CHANGELOG.md +93 -0
- package/CONTRIBUTING.md +52 -0
- package/README.md +40 -0
- package/SECURITY.md +38 -0
- package/action-dist/index.cjs +241 -1
- package/action.yml +1 -1
- package/competitive-analysis.md +304 -0
- package/dist/cli.js +22 -0
- package/dist/cli.js.map +1 -1
- package/dist/engine/change-detector.js +152 -0
- package/dist/engine/change-detector.js.map +1 -0
- package/dist/engine/dep-graph.js +101 -0
- package/dist/engine/dep-graph.js.map +1 -0
- package/dist/engine/git.js +9 -0
- package/dist/engine/git.js.map +1 -1
- package/dist/engine/run.js +22 -1
- package/dist/engine/run.js.map +1 -1
- package/dist/engine/staged-fix.js +108 -0
- package/dist/engine/staged-fix.js.map +1 -0
- package/dist/engine/stages.js +125 -0
- package/dist/engine/stages.js.map +1 -0
- package/dist/engine/verify.js +121 -0
- package/dist/engine/verify.js.map +1 -0
- package/dist/format.js +20 -0
- package/dist/format.js.map +1 -1
- package/examples/greenbump.yml +37 -0
- package/examples/legacy-repo/package.json +12 -0
- package/examples/legacy-repo/test.js +17 -0
- package/examples/multi-file-repo/models/todo.js +8 -0
- package/examples/multi-file-repo/models/user.js +11 -0
- package/examples/multi-file-repo/package.json +12 -0
- package/examples/multi-file-repo/services/session.js +9 -0
- package/examples/multi-file-repo/test.js +19 -0
- package/optimization-roadmap.md +772 -0
- package/package.json +4 -6
- package/dist/agent/fixer.test.js +0 -224
- package/dist/agent/fixer.test.js.map +0 -1
- package/dist/engine/batch.test.js +0 -59
- package/dist/engine/batch.test.js.map +0 -1
- package/dist/engine/checks.test.js +0 -92
- package/dist/engine/checks.test.js.map +0 -1
- package/dist/engine/ecosystems/parsers.test.js +0 -255
- package/dist/engine/ecosystems/parsers.test.js.map +0 -1
- package/dist/engine/git.test.js +0 -111
- package/dist/engine/git.test.js.map +0 -1
- package/dist/engine/run.test.js +0 -47
- package/dist/engine/run.test.js.map +0 -1
- package/dist/engine/workspace.test.js +0 -95
- package/dist/engine/workspace.test.js.map +0 -1
- package/dist/exitcode.test.js +0 -62
- package/dist/exitcode.test.js.map +0 -1
- package/dist/report.test.js +0 -56
- package/dist/report.test.js.map +0 -1
package/dist/report.test.js
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { test } from "node:test";
|
|
2
|
-
import assert from "node:assert/strict";
|
|
3
|
-
import { readFile } from "node:fs/promises";
|
|
4
|
-
import { join } from "node:path";
|
|
5
|
-
import { buildReport, writeReport, REPORT_SCHEMA_VERSION } from "./report.js";
|
|
6
|
-
import { withTmpDir } from "./test-utils.js";
|
|
7
|
-
function summary(overrides = {}) {
|
|
8
|
-
return {
|
|
9
|
-
dep: "lodash",
|
|
10
|
-
from: "4.17.20",
|
|
11
|
-
to: "4.17.21",
|
|
12
|
-
packageManager: "npm",
|
|
13
|
-
baselineGreen: true,
|
|
14
|
-
neededFix: false,
|
|
15
|
-
fixed: true,
|
|
16
|
-
unverifiable: false,
|
|
17
|
-
needsReview: false,
|
|
18
|
-
committed: true,
|
|
19
|
-
rounds: 0,
|
|
20
|
-
usage: { inputTokens: 0, outputTokens: 0 },
|
|
21
|
-
editedFiles: [],
|
|
22
|
-
testFilesTouched: [],
|
|
23
|
-
durationMs: 0,
|
|
24
|
-
...overrides,
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
test("buildReport: wraps a single run in the same array envelope as a batch", () => {
|
|
28
|
-
const envelope = buildReport([summary()]);
|
|
29
|
-
assert.equal(envelope.schemaVersion, REPORT_SCHEMA_VERSION);
|
|
30
|
-
assert.ok(Array.isArray(envelope.runs));
|
|
31
|
-
assert.equal(envelope.runs.length, 1);
|
|
32
|
-
assert.ok(typeof envelope.generatedAt === "string" && !Number.isNaN(Date.parse(envelope.generatedAt)));
|
|
33
|
-
});
|
|
34
|
-
test("buildReport: batch of results, mixing successes and failures, keeps the array shape", () => {
|
|
35
|
-
const failure = { dep: "axios", error: "install failed", fatal: true };
|
|
36
|
-
const envelope = buildReport([summary({ dep: "lodash" }), failure]);
|
|
37
|
-
assert.equal(envelope.runs.length, 2);
|
|
38
|
-
});
|
|
39
|
-
test("writeReport: round-trips through disk with schema and fields intact", async () => {
|
|
40
|
-
await withTmpDir(async (dir) => {
|
|
41
|
-
const failure = { dep: "axios", error: "install failed", fatal: true };
|
|
42
|
-
const envelope = buildReport([summary({ dep: "lodash", rounds: 3 }), failure]);
|
|
43
|
-
const path = join(dir, "report.json");
|
|
44
|
-
await writeReport(path, envelope);
|
|
45
|
-
const raw = await readFile(path, "utf8");
|
|
46
|
-
const parsed = JSON.parse(raw);
|
|
47
|
-
assert.equal(parsed.schemaVersion, 1);
|
|
48
|
-
assert.equal(parsed.runs.length, 2);
|
|
49
|
-
assert.equal(parsed.runs[0].dep, "lodash");
|
|
50
|
-
assert.equal(parsed.runs[0].rounds, 3);
|
|
51
|
-
assert.equal(parsed.runs[1].dep, "axios");
|
|
52
|
-
assert.equal(parsed.runs[1].error, "install failed");
|
|
53
|
-
assert.equal(parsed.runs[1].fatal, true);
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
//# sourceMappingURL=report.test.js.map
|
package/dist/report.test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"report.test.js","sourceRoot":"","sources":["../src/report.test.ts"],"names":[],"mappings":"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"}
|