mirror of
https://github.com/oven-sh/bun
synced 2026-02-17 06:12:08 +00:00
Compare commits
3 Commits
claude/fix
...
claude/min
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
12cf8fb371 | ||
|
|
87c329698f | ||
|
|
fd1fc4a487 |
@@ -10,4 +10,4 @@ preload = "./test/preload.ts"
|
||||
|
||||
[install]
|
||||
linker = "isolated"
|
||||
minimumReleaseAge = 1
|
||||
minimumReleaseAge = 1440 # 1 day
|
||||
|
||||
@@ -223,11 +223,11 @@ For complete documentation refer to [Package manager > Global cache](https://bun
|
||||
|
||||
## Minimum release age
|
||||
|
||||
To protect against supply chain attacks where malicious packages are quickly published, you can configure a minimum age requirement for npm packages. Package versions published more recently than the specified threshold (in seconds) will be filtered out during installation.
|
||||
To protect against supply chain attacks where malicious packages are quickly published, you can configure a minimum age requirement for npm packages. Package versions published more recently than the specified threshold (in minutes) will be filtered out during installation.
|
||||
|
||||
```bash
|
||||
# Only install package versions published at least 3 days ago
|
||||
$ bun add @types/bun --minimum-release-age 259200 # seconds
|
||||
$ bun add @types/bun --minimum-release-age 4320 # minutes
|
||||
```
|
||||
|
||||
You can also configure this in `bunfig.toml`:
|
||||
@@ -235,7 +235,7 @@ You can also configure this in `bunfig.toml`:
|
||||
```toml
|
||||
[install]
|
||||
# Only install package versions published at least 3 days ago
|
||||
minimumReleaseAge = 259200 # seconds
|
||||
minimumReleaseAge = 4320 # minutes
|
||||
|
||||
# Exclude trusted packages from the age gate
|
||||
minimumReleaseAgeExcludes = ["@types/node", "typescript"]
|
||||
@@ -289,7 +289,7 @@ concurrentScripts = 16 # (cpu count or GOMAXPROCS) x2
|
||||
linker = "hoisted"
|
||||
|
||||
# minimum age config
|
||||
minimumReleaseAge = 259200 # seconds
|
||||
minimumReleaseAge = 4320 # minutes
|
||||
minimumReleaseAgeExcludes = ["@types/node", "typescript"]
|
||||
```
|
||||
|
||||
|
||||
@@ -612,12 +612,12 @@ Valid values are:
|
||||
|
||||
### `install.minimumReleaseAge`
|
||||
|
||||
Configure a minimum age (in seconds) for npm package versions. Package versions published more recently than this threshold will be filtered out during installation. Default is `null` (disabled).
|
||||
Configure a minimum age (in minutes) for npm package versions. Package versions published more recently than this threshold will be filtered out during installation. Default is `null` (disabled).
|
||||
|
||||
```toml
|
||||
[install]
|
||||
# Only install package versions published at least 3 days ago
|
||||
minimumReleaseAge = 259200
|
||||
minimumReleaseAge = 4320 # minutes
|
||||
# These packages will bypass the 3-day minimum age requirement
|
||||
minimumReleaseAgeExcludes = ["@types/bun", "typescript"]
|
||||
```
|
||||
|
||||
@@ -695,15 +695,15 @@ pub const Bunfig = struct {
|
||||
|
||||
if (install_obj.get("minimumReleaseAge")) |min_age| {
|
||||
switch (min_age.data) {
|
||||
.e_number => |days| {
|
||||
if (days.value < 0) {
|
||||
try this.addError(min_age.loc, "Expected positive number of seconds for minimumReleaseAge");
|
||||
.e_number => |minutes| {
|
||||
if (minutes.value < 0) {
|
||||
try this.addError(min_age.loc, "Expected positive number of minutes for minimumReleaseAge");
|
||||
return;
|
||||
}
|
||||
install.minimum_release_age_ms = days.value * std.time.ms_per_s;
|
||||
install.minimum_release_age_ms = minutes.value * std.time.ms_per_min;
|
||||
},
|
||||
else => {
|
||||
try this.addError(min_age.loc, "Expected number of seconds for minimumReleaseAge");
|
||||
try this.addError(min_age.loc, "Expected number of minutes for minimumReleaseAge");
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ const shared_params = [_]ParamType{
|
||||
clap.parseParam("--omit <dev|optional|peer>... Exclude 'dev', 'optional', or 'peer' dependencies from install") catch unreachable,
|
||||
clap.parseParam("--lockfile-only Generate a lockfile without installing dependencies") catch unreachable,
|
||||
clap.parseParam("--linker <STR> Linker strategy (one of \"isolated\" or \"hoisted\")") catch unreachable,
|
||||
clap.parseParam("--minimum-release-age <NUM> Only install packages published at least N seconds ago (security feature)") catch unreachable,
|
||||
clap.parseParam("--minimum-release-age <NUM> Only resolve package versions that are at least this old (e.g., 1440 for 1 day)") catch unreachable,
|
||||
clap.parseParam("--cpu <STR>... Override CPU architecture for optional dependencies (e.g., x64, arm64, * for all)") catch unreachable,
|
||||
clap.parseParam("--os <STR>... Override operating system for optional dependencies (e.g., linux, darwin, * for all)") catch unreachable,
|
||||
clap.parseParam("-h, --help Print this help menu") catch unreachable,
|
||||
@@ -836,16 +836,16 @@ pub fn parse(allocator: std.mem.Allocator, comptime subcommand: Subcommand) !Com
|
||||
cli.save_text_lockfile = true;
|
||||
}
|
||||
|
||||
if (args.option("--minimum-release-age")) |min_age_secs| {
|
||||
const secs = std.fmt.parseFloat(f64, min_age_secs) catch {
|
||||
Output.errGeneric("Expected --minimum-release-age to be a positive number: {s}", .{min_age_secs});
|
||||
if (args.option("--minimum-release-age")) |min_age_mins| {
|
||||
const mins = std.fmt.parseFloat(f64, min_age_mins) catch {
|
||||
Output.errGeneric("Expected --minimum-release-age to be a positive number: {s}", .{min_age_mins});
|
||||
Global.crash();
|
||||
};
|
||||
if (secs < 0) {
|
||||
Output.errGeneric("Expected --minimum-release-age to be a positive number: {s}", .{min_age_secs});
|
||||
if (mins < 0) {
|
||||
Output.errGeneric("Expected --minimum-release-age to be a positive number: {s}", .{min_age_mins});
|
||||
Global.crash();
|
||||
}
|
||||
cli.minimum_release_age_ms = secs * std.time.ms_per_s;
|
||||
cli.minimum_release_age_ms = mins * std.time.ms_per_min;
|
||||
}
|
||||
|
||||
const omit_values = args.options("--omit");
|
||||
|
||||
@@ -11,9 +11,9 @@ describe("minimum-release-age", () => {
|
||||
let mockRegistryServer: Server;
|
||||
let mockRegistryUrl: string;
|
||||
const currentTime = Date.now();
|
||||
const SECONDS_PER_DAY = 24 * 60 * 60;
|
||||
const MS_PER_SECOND = 1000;
|
||||
const DAY_MS = SECONDS_PER_DAY * MS_PER_SECOND;
|
||||
const MINUTES_PER_DAY = 24 * 60;
|
||||
const MS_PER_MINUTE = 60 * 1000;
|
||||
const DAY_MS = MINUTES_PER_DAY * MS_PER_MINUTE;
|
||||
|
||||
// Helper to create ISO timestamp for a given number of days ago
|
||||
const daysAgo = (days: number) => new Date(currentTime - days * DAY_MS).toISOString();
|
||||
@@ -828,7 +828,7 @@ describe("minimum-release-age", () => {
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -851,7 +851,7 @@ describe("minimum-release-age", () => {
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${9.5 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${9.5 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -877,7 +877,7 @@ describe("minimum-release-age", () => {
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -905,7 +905,7 @@ describe("minimum-release-age", () => {
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${1.8 * SECONDS_PER_DAY}`, "--verbose"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${1.8 * MINUTES_PER_DAY}`, "--verbose"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -945,7 +945,7 @@ describe("minimum-release-age", () => {
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${1.8 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${1.8 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -984,7 +984,7 @@ describe("minimum-release-age", () => {
|
||||
//
|
||||
// Result: Selects 1.0.6 (gave up finding stable version)
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -1011,7 +1011,7 @@ describe("minimum-release-age", () => {
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${3 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${3 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -1039,7 +1039,7 @@ describe("minimum-release-age", () => {
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${3 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${3 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -1064,7 +1064,7 @@ describe("minimum-release-age", () => {
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${10 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${10 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -1095,7 +1095,7 @@ describe("minimum-release-age", () => {
|
||||
});
|
||||
|
||||
await using proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${3 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${3 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -1127,7 +1127,7 @@ describe("minimum-release-age", () => {
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${3 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${3 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -1180,7 +1180,7 @@ describe("minimum-release-age", () => {
|
||||
// - 1.1.0 (15 days): PASSES age gate, but beyond search window (3 + 7 = 10 days)
|
||||
// - Should return 1.1.0 as best_version before breaking, not error!
|
||||
await using proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${3 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${3 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -1209,7 +1209,7 @@ describe("minimum-release-age", () => {
|
||||
},
|
||||
}),
|
||||
"bunfig.toml": `[install]
|
||||
minimumReleaseAge = ${5 * SECONDS_PER_DAY}
|
||||
minimumReleaseAge = ${5 * MINUTES_PER_DAY}
|
||||
minimumReleaseAgeExcludes = ["excluded-package"]
|
||||
registry = "${mockRegistryUrl}"`,
|
||||
});
|
||||
@@ -1242,7 +1242,7 @@ registry = "${mockRegistryUrl}"`,
|
||||
dependencies: { "regular-package": "*" },
|
||||
}),
|
||||
"bunfig.toml": `[install]
|
||||
minimumReleaseAge = ${5 * SECONDS_PER_DAY}
|
||||
minimumReleaseAge = ${5 * MINUTES_PER_DAY}
|
||||
registry = "${mockRegistryUrl}"`,
|
||||
});
|
||||
|
||||
@@ -1268,13 +1268,13 @@ registry = "${mockRegistryUrl}"`,
|
||||
dependencies: { "regular-package": "*" },
|
||||
}),
|
||||
"bunfig.toml": `[install]
|
||||
minimumReleaseAge = ${10 * SECONDS_PER_DAY}
|
||||
minimumReleaseAge = ${10 * MINUTES_PER_DAY}
|
||||
registry = "${mockRegistryUrl}"`,
|
||||
});
|
||||
|
||||
// CLI says 5 days, bunfig says 10 days
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -1297,7 +1297,7 @@ registry = "${mockRegistryUrl}"`,
|
||||
dependencies: { "regular-package": "*" },
|
||||
}),
|
||||
"bunfig.toml": `[install]
|
||||
minimumReleaseAge = ${10 * SECONDS_PER_DAY}
|
||||
minimumReleaseAge = ${10 * MINUTES_PER_DAY}
|
||||
registry = "${mockRegistryUrl}"`,
|
||||
});
|
||||
|
||||
@@ -1321,7 +1321,7 @@ registry = "${mockRegistryUrl}"`,
|
||||
// Create a fake home directory with global bunfig
|
||||
using globalConfigDir = tempDir("global-config", {
|
||||
".bunfig.toml": `[install]
|
||||
minimumReleaseAge = ${5 * SECONDS_PER_DAY}
|
||||
minimumReleaseAge = ${5 * MINUTES_PER_DAY}
|
||||
registry = "${mockRegistryUrl}"`,
|
||||
});
|
||||
|
||||
@@ -1357,7 +1357,7 @@ registry = "${mockRegistryUrl}"`,
|
||||
// Create a fake home directory with global bunfig
|
||||
using globalConfigDir = tempDir("global-config-override", {
|
||||
".bunfig.toml": `[install]
|
||||
minimumReleaseAge = ${10 * SECONDS_PER_DAY}
|
||||
minimumReleaseAge = ${10 * MINUTES_PER_DAY}
|
||||
registry = "${mockRegistryUrl}"`,
|
||||
});
|
||||
|
||||
@@ -1367,7 +1367,7 @@ registry = "${mockRegistryUrl}"`,
|
||||
dependencies: { "regular-package": "*" },
|
||||
}),
|
||||
"bunfig.toml": `[install]
|
||||
minimumReleaseAge = ${5 * SECONDS_PER_DAY}
|
||||
minimumReleaseAge = ${5 * MINUTES_PER_DAY}
|
||||
registry = "${mockRegistryUrl}"`,
|
||||
});
|
||||
|
||||
@@ -1407,7 +1407,7 @@ registry = "${mockRegistryUrl}"`,
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * SECONDS_PER_DAY}`, "--verbose"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * MINUTES_PER_DAY}`, "--verbose"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -1440,7 +1440,7 @@ registry = "${mockRegistryUrl}"`,
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -1471,7 +1471,7 @@ registry = "${mockRegistryUrl}"`,
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -1497,12 +1497,12 @@ registry = "${mockRegistryUrl}"`,
|
||||
dependencies: { "regular-package": "*" },
|
||||
}),
|
||||
"bunfig.toml": `[install]
|
||||
minimumReleaseAge = ${5 * SECONDS_PER_DAY}
|
||||
minimumReleaseAge = ${5 * MINUTES_PER_DAY}
|
||||
registry = "${mockRegistryUrl}"`,
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -1531,7 +1531,7 @@ registry = "${mockRegistryUrl}"`,
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -1561,7 +1561,7 @@ registry = "${mockRegistryUrl}"`,
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * SECONDS_PER_DAY}`, "--dry-run"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * MINUTES_PER_DAY}`, "--dry-run"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -1601,7 +1601,7 @@ registry = "${mockRegistryUrl}"`,
|
||||
|
||||
// Now update with minimum-release-age
|
||||
proc = Bun.spawn({
|
||||
cmd: [bunExe(), "update", "--minimum-release-age", `${5 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "update", "--minimum-release-age", `${5 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -1625,7 +1625,7 @@ registry = "${mockRegistryUrl}"`,
|
||||
}),
|
||||
".npmrc": `registry=${mockRegistryUrl}`,
|
||||
"bunfig.toml": `[install]
|
||||
minimumReleaseAge = ${5 * SECONDS_PER_DAY}
|
||||
minimumReleaseAge = ${5 * MINUTES_PER_DAY}
|
||||
registry = "${mockRegistryUrl}"`,
|
||||
});
|
||||
|
||||
@@ -1679,7 +1679,7 @@ registry = "${mockRegistryUrl}"`,
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -1710,7 +1710,7 @@ registry = "${mockRegistryUrl}"`,
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -1745,7 +1745,7 @@ registry = "${mockRegistryUrl}"`,
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -1775,7 +1775,7 @@ registry = "${mockRegistryUrl}"`,
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -1828,7 +1828,7 @@ registry = "${mockRegistryUrl}"`,
|
||||
"install",
|
||||
"--frozen-lockfile",
|
||||
"--minimum-release-age",
|
||||
`${5 * SECONDS_PER_DAY}`,
|
||||
`${5 * MINUTES_PER_DAY}`,
|
||||
"--no-verify",
|
||||
],
|
||||
cwd: String(dir),
|
||||
@@ -1876,7 +1876,7 @@ registry = "${mockRegistryUrl}"`,
|
||||
"install",
|
||||
"--frozen-lockfile",
|
||||
"--minimum-release-age",
|
||||
`${5 * SECONDS_PER_DAY}`,
|
||||
`${5 * MINUTES_PER_DAY}`,
|
||||
"--no-verify",
|
||||
],
|
||||
cwd: String(dir),
|
||||
@@ -1942,7 +1942,7 @@ linker = "${linker}"
|
||||
// - stable-package (latest): 3.2.0 is 30 days old → select 3.2.0 (passes gate, is latest)
|
||||
// - stable-package (3.0.0): pinned to 3.0.0 (legacy workspace - no age check on exact versions)
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -2094,7 +2094,7 @@ linker = "${linker}"
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -2119,7 +2119,7 @@ linker = "${linker}"
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -2146,7 +2146,7 @@ linker = "${linker}"
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -2175,7 +2175,7 @@ linker = "${linker}"
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -2202,7 +2202,7 @@ linker = "${linker}"
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -2235,7 +2235,7 @@ linker = "${linker}"
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -2263,7 +2263,7 @@ linker = "${linker}"
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
@@ -2289,7 +2289,7 @@ linker = "${linker}"
|
||||
});
|
||||
|
||||
const proc = Bun.spawn({
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * SECONDS_PER_DAY}`, "--no-verify"],
|
||||
cmd: [bunExe(), "install", "--minimum-release-age", `${5 * MINUTES_PER_DAY}`, "--no-verify"],
|
||||
cwd: String(dir),
|
||||
env: bunEnv,
|
||||
stdout: "pipe",
|
||||
|
||||
Reference in New Issue
Block a user