gigadrive 2.10.0 → 2.11.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/dist/index.mjs CHANGED
@@ -9,7 +9,7 @@ import { Effect as Effect29, Layer, LogLevel, Logger } from "effect";
9
9
  // package.json
10
10
  var package_default = {
11
11
  name: "gigadrive",
12
- version: "2.10.0",
12
+ version: "2.11.0",
13
13
  repository: {
14
14
  type: "git",
15
15
  url: "https://github.com/Gigadrive/sdk.git",
@@ -3062,7 +3062,7 @@ var describeMicroVm = (vm, now = Date.now()) => {
3062
3062
  `Image: ${vm.image.name}`,
3063
3063
  `Size: ${vm.vcpus} vCPU, ${formatMemory(vm.memoryMb)} memory, ${formatMemory(vm.diskMb)} disk`,
3064
3064
  `Region: ${vm.region}`,
3065
- `Network: ${vm.network.egress === "deny" ? "outbound traffic blocked" : vm.network.allow && vm.network.allow.length > 0 ? `only ${vm.network.allow.join(", ")} (and DNS)` : "internet access"}`,
3065
+ `Network: ${vm.network.egress === "deny" ? "outbound traffic blocked" : vm.network.allow && vm.network.allow.length > 0 ? `only ${vm.network.allow.join(", ")}` : "internet access"}`,
3066
3066
  `Previews: ${vm.network.previews === "private" ? "private (preview token required)" : "public"}`,
3067
3067
  `Application: ${vm.applicationId}`,
3068
3068
  `Created: ${vm.createdAt}`
@@ -3336,12 +3336,14 @@ var createInput = (flags) => Effect22.gen(function* () {
3336
3336
  });
3337
3337
  }
3338
3338
  if (flags.allowEgress.length > 32) {
3339
- return yield* new InvalidMicroVmOptionsError({ message: "--allow-egress takes at most 32 networks." });
3339
+ return yield* new InvalidMicroVmOptionsError({ message: "--allow-egress takes at most 32 entries." });
3340
3340
  }
3341
- const badNetwork = flags.allowEgress.find((network) => !/^\d{1,3}(\.\d{1,3}){3}\/\d{1,2}$/.test(network.trim()));
3342
- if (badNetwork !== void 0) {
3341
+ const network = /^\d{1,3}(\.\d{1,3}){3}\/\d{1,2}$/;
3342
+ const domain = /^(\*\.)?([a-z0-9-]+\.)+[a-z0-9-]*[a-z][a-z0-9-]*\.?$/i;
3343
+ const badEntry = flags.allowEgress.find((entry) => !network.test(entry.trim()) && !domain.test(entry.trim()));
3344
+ if (badEntry !== void 0) {
3343
3345
  return yield* new InvalidMicroVmOptionsError({
3344
- message: `--allow-egress must be an IPv4 network such as 140.82.112.0/20 (got ${badNetwork}).`
3346
+ message: `--allow-egress must be a domain name such as api.openai.com or *.github.com, or an IPv4 network such as 140.82.112.0/20 (got ${badEntry}).`
3345
3347
  });
3346
3348
  }
3347
3349
  const badPort = flags.ports.find((port) => !Number.isInteger(port) || port < 1 || port > 65535);
@@ -3434,7 +3436,7 @@ var createCommand = Command12.make(
3434
3436
  ),
3435
3437
  allowEgress: Options7.text("allow-egress").pipe(
3436
3438
  Options7.withDescription(
3437
- "Only reach this public IPv4 network, such as 140.82.112.0/20, besides DNS (repeatable, up to 32)"
3439
+ "Only reach this domain name (api.openai.com, *.github.com for every subdomain) or public IPv4 network (140.82.112.0/20) (repeatable, up to 32)"
3438
3440
  ),
3439
3441
  Options7.repeated
3440
3442
  ),