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.cjs CHANGED
@@ -32,7 +32,7 @@ var import_effect31 = require("effect");
32
32
  // package.json
33
33
  var package_default = {
34
34
  name: "gigadrive",
35
- version: "2.10.0",
35
+ version: "2.11.0",
36
36
  repository: {
37
37
  type: "git",
38
38
  url: "https://github.com/Gigadrive/sdk.git",
@@ -3072,7 +3072,7 @@ var describeMicroVm = (vm, now = Date.now()) => {
3072
3072
  `Image: ${vm.image.name}`,
3073
3073
  `Size: ${vm.vcpus} vCPU, ${formatMemory(vm.memoryMb)} memory, ${formatMemory(vm.diskMb)} disk`,
3074
3074
  `Region: ${vm.region}`,
3075
- `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"}`,
3075
+ `Network: ${vm.network.egress === "deny" ? "outbound traffic blocked" : vm.network.allow && vm.network.allow.length > 0 ? `only ${vm.network.allow.join(", ")}` : "internet access"}`,
3076
3076
  `Previews: ${vm.network.previews === "private" ? "private (preview token required)" : "public"}`,
3077
3077
  `Application: ${vm.applicationId}`,
3078
3078
  `Created: ${vm.createdAt}`
@@ -3346,12 +3346,14 @@ var createInput = (flags) => import_effect24.Effect.gen(function* () {
3346
3346
  });
3347
3347
  }
3348
3348
  if (flags.allowEgress.length > 32) {
3349
- return yield* new InvalidMicroVmOptionsError({ message: "--allow-egress takes at most 32 networks." });
3349
+ return yield* new InvalidMicroVmOptionsError({ message: "--allow-egress takes at most 32 entries." });
3350
3350
  }
3351
- const badNetwork = flags.allowEgress.find((network) => !/^\d{1,3}(\.\d{1,3}){3}\/\d{1,2}$/.test(network.trim()));
3352
- if (badNetwork !== void 0) {
3351
+ const network = /^\d{1,3}(\.\d{1,3}){3}\/\d{1,2}$/;
3352
+ const domain = /^(\*\.)?([a-z0-9-]+\.)+[a-z0-9-]*[a-z][a-z0-9-]*\.?$/i;
3353
+ const badEntry = flags.allowEgress.find((entry) => !network.test(entry.trim()) && !domain.test(entry.trim()));
3354
+ if (badEntry !== void 0) {
3353
3355
  return yield* new InvalidMicroVmOptionsError({
3354
- message: `--allow-egress must be an IPv4 network such as 140.82.112.0/20 (got ${badNetwork}).`
3356
+ 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}).`
3355
3357
  });
3356
3358
  }
3357
3359
  const badPort = flags.ports.find((port) => !Number.isInteger(port) || port < 1 || port > 65535);
@@ -3444,7 +3446,7 @@ var createCommand = import_cli12.Command.make(
3444
3446
  ),
3445
3447
  allowEgress: import_cli12.Options.text("allow-egress").pipe(
3446
3448
  import_cli12.Options.withDescription(
3447
- "Only reach this public IPv4 network, such as 140.82.112.0/20, besides DNS (repeatable, up to 32)"
3449
+ "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)"
3448
3450
  ),
3449
3451
  import_cli12.Options.repeated
3450
3452
  ),