{"version":3,"file":"validators.cjs","names":["z"],"sources":["../../src/api-client/validators.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport type SessionMetaData = z.infer<typeof Session>;\n\nconst RuleMatcherValidator = z.object({\n  exact: z.string().optional(),\n  startsWith: z.string().optional(),\n  regex: z.string().optional(),\n});\n\nconst KeyValueMatcherValidator = z.object({\n  key: RuleMatcherValidator.optional(),\n  value: RuleMatcherValidator.optional(),\n});\n\nconst RuleMatchValidator = z.object({\n  path: RuleMatcherValidator.optional(),\n  method: z.array(z.string()).optional(),\n  queryString: z.array(KeyValueMatcherValidator).optional(),\n  headers: z.array(KeyValueMatcherValidator).optional(),\n});\n\nexport const InjectionRuleValidator = z.object({\n  domain: z.string(),\n  // headers are only sent in requests\n  headers: z.record(z.string()).optional(),\n  // headerNames are returned in responses\n  headerNames: z.array(z.string()).optional(),\n  match: RuleMatchValidator.optional(),\n});\n\nexport const ForwardRuleValidator = z.object({\n  domain: z.string(),\n  forwardURL: z.string(),\n  match: RuleMatchValidator.optional(),\n});\n\nexport const NetworkPolicyTransformValidator = z.object({\n  headers: z.record(z.string()).optional(),\n});\n\nexport const NetworkPolicyRuleValidator = z.object({\n  match: RuleMatchValidator.optional(),\n  transform: z.array(NetworkPolicyTransformValidator).optional(),\n  forwardURL: z.string().optional(),\n});\n\nexport const V2NetworkPolicyObjectValidator = z.object({\n  allow: z\n    .union([\n      z.array(z.string()),\n      z.record(z.array(NetworkPolicyRuleValidator)),\n    ])\n    .optional(),\n  subnets: z\n    .object({\n      allow: z.array(z.string()).optional(),\n      deny: z.array(z.string()).optional(),\n    })\n    .optional(),\n});\n\nconst NetworkPolicyModeValidator = z.union([\n  z.object({ mode: z.literal(\"allow-all\") }).passthrough(),\n  z.object({ mode: z.literal(\"deny-all\") }).passthrough(),\n]);\n\nconst LegacyCustomNetworkPolicyValidator = z\n  .object({\n    mode: z.literal(\"custom\"),\n    allowedDomains: z.array(z.string()).optional(),\n    allowedCIDRs: z.array(z.string()).optional(),\n    deniedCIDRs: z.array(z.string()).optional(),\n    injectionRules: z.array(InjectionRuleValidator).optional(),\n    forwardRules: z.array(ForwardRuleValidator).optional(),\n  })\n  .passthrough();\n\nexport const NetworkPolicyRequestValidator = z.union([\n  NetworkPolicyModeValidator,\n  V2NetworkPolicyObjectValidator.passthrough(),\n]);\n\nexport const NetworkPolicyResponseValidator = z.union([\n  NetworkPolicyModeValidator,\n  LegacyCustomNetworkPolicyValidator,\n]);\n\nexport const Session = z.object({\n  id: z.string(),\n  memory: z.number(),\n  vcpus: z.number(),\n  region: z.string(),\n  runtime: z.string(),\n  timeout: z.number(),\n  status: z.enum([\n    \"pending\",\n    \"running\",\n    \"stopping\",\n    \"stopped\",\n    \"failed\",\n    \"aborted\",\n    \"snapshotting\",\n  ]),\n  requestedAt: z.number(),\n  startedAt: z.number().optional(),\n  requestedStopAt: z.number().optional(),\n  stoppedAt: z.number().optional(),\n  abortedAt: z.number().optional(),\n  duration: z.number().optional(),\n  sourceSnapshotId: z.string().optional(),\n  snapshottedAt: z.number().optional(),\n  createdAt: z.number(),\n  cwd: z.string(),\n  updatedAt: z.number(),\n  interactivePort: z.number().optional(),\n  networkPolicy: NetworkPolicyResponseValidator.optional(),\n  activeCpuDurationMs: z.number().optional(),\n  networkTransfer: z.object({\n    ingress: z.number(),\n    egress: z.number(),\n  }).optional(),\n});\n\nexport type SandboxRouteData = z.infer<typeof SandboxRoute>;\n\nexport const SandboxRoute = z.object({\n  url: z.string(),\n  subdomain: z.string(),\n  port: z.number(),\n});\n\nexport type SnapshotMetadata = z.infer<typeof Snapshot>;\n\nexport const Snapshot = z.object({\n  id: z.string(),\n  sourceSessionId: z.string(),\n  region: z.string(),\n  status: z.enum([\"created\", \"deleted\", \"failed\"]),\n  sizeBytes: z.number(),\n  expiresAt: z.number().optional(),\n  createdAt: z.number(),\n  updatedAt: z.number(),\n  lastUsedAt: z.number().optional(),\n  creationMethod: z.string().optional(),\n  parentId: z.string().optional(),\n});\n\nexport const CursorPagination = z.object({\n  count: z.number(),\n  next: z.string().nullable(),\n});\n\nexport type CommandData = z.infer<typeof Command>;\n\nexport const Command = z.object({\n  id: z.string(),\n  name: z.string(),\n  args: z.array(z.string()),\n  cwd: z.string(),\n  sessionId: z.string(),\n  exitCode: z.number().nullable(),\n  startedAt: z.number(),\n});\n\nconst CommandFinished = Command.extend({\n  exitCode: z.number(),\n});\n\nexport const SessionResponse = z.object({\n  session: Session.passthrough(),\n});\n\nexport const SessionAndRoutesResponse = SessionResponse.extend({\n  routes: z.array(SandboxRoute),\n});\n\nexport const SessionsResponse = z.object({\n  sessions: z.array(Session.passthrough()),\n  pagination: CursorPagination,\n});\n\nexport const CommandResponse = z.object({\n  command: Command,\n});\n\nexport type CommandFinishedData = z.infer<typeof CommandFinishedResponse>[\"command\"];\n\nexport const CommandFinishedResponse = z.object({\n  command: CommandFinished,\n});\n\nexport const EmptyResponse = z.object({});\n\nconst LogLineBase = z.object({ data: z.string() });\nexport const LogLineStdout = LogLineBase.extend({\n  stream: z.literal(\"stdout\"),\n});\nexport const LogLineStderr = LogLineBase.extend({\n  stream: z.literal(\"stderr\"),\n});\n\nexport const LogError = z.object({\n  stream: z.literal(\"error\"),\n  data: z.object({\n    code: z.string(),\n    message: z.string(),\n  }),\n});\n\nexport const LogLine = z.discriminatedUnion(\"stream\", [\n  LogLineStdout,\n  LogLineStderr,\n  LogError,\n]);\n\nexport const SnapshotsResponse = z.object({\n  snapshots: z.array(Snapshot),\n  pagination: CursorPagination,\n});\n\nexport const SnapshotTreeNode = z.object({\n  snapshot: Snapshot,\n  siblings: z.array(Snapshot),\n  count: z.string(),\n});\n\nexport type SnapshotTreeNodeData = z.infer<typeof SnapshotTreeNode>;\n\nexport const SnapshotTreeResponse = z.object({\n  snapshots: z.array(SnapshotTreeNode),\n  pagination: CursorPagination,\n});\n\nexport const CreateSnapshotResponse = z.object({\n  snapshot: Snapshot,\n  session: Session.passthrough(),\n});\n\nexport const SnapshotResponse = z.object({\n  snapshot: Snapshot,\n});\n\nexport const Sandbox = z.object({\n  name: z.string(),\n  persistent: z.boolean(),\n  region: z.string().optional(),\n  vcpus: z.number().optional(),\n  memory: z.number().optional(),\n  runtime: z.string().optional(),\n  timeout: z.number().optional(),\n  networkPolicy: NetworkPolicyResponseValidator.optional(),\n  totalEgressBytes: z.number().optional(),\n  totalIngressBytes: z.number().optional(),\n  totalActiveCpuDurationMs: z.number().optional(),\n  totalDurationMs: z.number().optional(),\n  createdAt: z.number(),\n  updatedAt: z.number(),\n  currentSessionId: z.string(),\n  currentSnapshotId: z.string().optional(),\n  status: Session.shape.status,\n  statusUpdatedAt: z.number().optional(),\n  cwd: z.string().optional(),\n  tags: z.record(z.string()).optional(),\n  snapshotExpiration: z.number().optional(),\n  keepLastSnapshots: z\n    .object({\n      count: z.number(),\n      expiration: z.number().optional(),\n      deleteEvicted: z.boolean().optional(),\n    })\n    .optional(),\n});\n\nexport type SandboxMetaData = z.infer<typeof Sandbox>;\n\nexport const StopSessionResponse = z.object({\n  session: Session.passthrough(),\n  sandbox: Sandbox.optional(),\n  snapshot: Snapshot.optional(),\n});\n\nexport const SandboxAndSessionResponse = z.object({\n  sandbox: Sandbox,\n  session: Session.passthrough(),\n  routes: z.array(SandboxRoute),\n  resumed: z.boolean().optional(),\n});\n\nexport const SandboxesPaginationResponse = z.object({\n  sandboxes: z.array(Sandbox),\n  pagination: CursorPagination,\n});\n\nexport const UpdateSandboxResponse = z.object({\n  sandbox: Sandbox,\n  routes: z.array(SandboxRoute).optional(),\n});\n"],"mappings":"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"}