{"version":3,"sources":["../../../src/utils/zod/ids.ts","../../../src/utils/zod/presets.ts","../../../src/utils/zod/ignite.ts"],"names":["z"],"mappings":"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","sourcesContent":["import {z} from 'zod';\nimport {type Id, type IdPrefixes, validateId} from '../../rest/index.ts';\n\n/**\n * Generate a Zod schema for an ID prefix\n * @param prefix - Prefix of the ID\n * @returns A Zod schema that resolve to a valid ID\n * @public\n *\n * @example\n * ```ts\n * const patSchema = hopId('pat');\n * const pat = patSchema.parse(possiblyAPat);\n *\n * // `pat` is now a valid token typed as `Id<'pat'>`\n * pat; // => pat_NTIzNzY2NjU2NjU1ODkyNDk\n * ```\n */\nexport function hopId<Prefix extends IdPrefixes>(prefix: Prefix) {\n\treturn z\n\t\t.string()\n\t\t.refine(\n\t\t\t(value): value is Id<Prefix> => validateId(value, prefix),\n\t\t\t`Id must be a valid \\`${prefix}\\` id`,\n\t\t);\n}\n","import {z} from 'zod';\n\nexport const presetFormSchema = z.object({\n\tv: z.literal(1),\n\tfields: z.array(\n\t\tz.object({\n\t\t\tinput: z.discriminatedUnion('type', [\n\t\t\t\tz.object({\n\t\t\t\t\ttype: z.literal('string'),\n\t\t\t\t\tdefault: z.string().optional(),\n\t\t\t\t\tautogen: z.enum(['PROJECT_NAMESPACE', 'SECURE_TOKEN']).optional(),\n\t\t\t\t\tmax_length: z.number().optional(),\n\t\t\t\t\tvalidator: z.string().optional(),\n\t\t\t\t}),\n\t\t\t\tz.object({\n\t\t\t\t\ttype: z.literal('range'),\n\t\t\t\t\tdefault: z.number().optional(),\n\t\t\t\t\tmin: z.number(),\n\t\t\t\t\tmax: z.number(),\n\t\t\t\t\tincrement: z.number().optional(),\n\t\t\t\t\tunit: z.string().optional(),\n\t\t\t\t}),\n\t\t\t]),\n\t\t\ttitle: z.string(),\n\t\t\trequired: z.boolean().optional().default(false),\n\t\t\tdescription: z.string().optional(),\n\t\t\tmap_to: z.array(\n\t\t\t\tz.discriminatedUnion('type', [\n\t\t\t\t\tz.object({\n\t\t\t\t\t\ttype: z.literal('env'),\n\t\t\t\t\t\tkey: z.string(),\n\t\t\t\t\t}),\n\t\t\t\t\tz.object({\n\t\t\t\t\t\ttype: z.literal('volume_size'),\n\t\t\t\t\t}),\n\t\t\t\t]),\n\t\t\t),\n\t\t}),\n\t),\n});\n","import {z} from 'zod';\nimport {\n\tContainerStrategy,\n\tRestartPolicy,\n\tRuntimeType,\n\tVolumeFormat,\n} from '../../rest/types/ignite.ts';\nimport {byteUnits, parseSize, isValidByteString} from '../../util/size.ts';\n\nexport const deploymentMetaDataSchema = z.object({\n\tpreset: z.string().optional(),\n\tnext_steps_dismissed: z.boolean().optional(),\n\tcontainer_port_mappings: z.record(z.string(), z.set(z.string())).optional(),\n\tcreated_first_gateway: z.boolean().optional(),\n\tignored_boarding: z.boolean().optional(),\n\tmax_container_storage: z.string().optional(),\n});\n\nconst UNIX_DIR_REGEX = /^\\/([a-zA-Z0-9_\\-]+\\/)*([a-zA-Z0-9_\\-]+)$/g;\n\nconst MIN_VOLUME_SIZE_BYTES = 1024 * 1024 * 1024;\nconst MAX_VOLUME_SIZE_BYTES = 500 * 1024 * 1024 * 1024;\n\nconst MIN_RAM_SIZE_BYTES = 134217728;\n\nexport const volumeFormatSchema = z.nativeEnum(VolumeFormat);\n\nexport const volumeSchema = z\n\t.object({\n\t\tfs: volumeFormatSchema,\n\t\tsize: z\n\t\t\t.string()\n\t\t\t.transform(value => value.toUpperCase())\n\t\t\t.refine(\n\t\t\t\tisValidByteString,\n\t\t\t\t`Must be a valid byte string, e.g. 1gb. Supported units are ${byteUnits.join(\n\t\t\t\t\t', ',\n\t\t\t\t)}`,\n\t\t\t)\n\t\t\t.refine(v => {\n\t\t\t\ttry {\n\t\t\t\t\tconst size = parseSize(v);\n\n\t\t\t\t\treturn size >= MIN_VOLUME_SIZE_BYTES && size <= MAX_VOLUME_SIZE_BYTES;\n\t\t\t\t} catch (err) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}, `Volume size must be at least 1gb`)\n\t\t\t.transform(v => v.toLowerCase()),\n\t\tmountpath: z\n\t\t\t.string()\n\t\t\t.regex(\n\t\t\t\tUNIX_DIR_REGEX,\n\t\t\t\t\"Must be a valid unix directory path, e.g. '/data'\",\n\t\t\t),\n\t})\n\t.required();\n\nexport const buildSettingsSchema = z.object({\n\troot_directory: z\n\t\t.string()\n\t\t.regex(UNIX_DIR_REGEX, \"Must be a valid unix directory path, e.g. '/data'\")\n\t\t.or(\n\t\t\tz\n\t\t\t\t.string()\n\t\t\t\t.refine(v => v === '' || v === '/')\n\t\t\t\t.transform(() => '/'),\n\t\t),\n});\n\nexport const deploymentRuntimeTypeSchema = z.nativeEnum(RuntimeType);\n\nexport const containerResourcesSchema = z.object({\n\tvcpu: z.number().min(0.5).max(16).optional(),\n\tcpu: z.number().min(0.5).max(16).optional(),\n\tram: z\n\t\t.string()\n\t\t.transform(value => value.toUpperCase())\n\t\t.refine(isValidByteString)\n\t\t.refine(v => {\n\t\t\tconst size = parseSize(v);\n\t\t\treturn size >= MIN_RAM_SIZE_BYTES;\n\t\t})\n\t\t.transform(v => v.toLowerCase()),\n});\n\nexport const deploymentEnvSchema = z\n\t.record(z.string().min(1).max(128), z.string())\n\t.optional();\n\nexport const containerStrategySchema = z.nativeEnum(ContainerStrategy);\n\nexport const deploymentNameSchema = z\n\t.string()\n\t.regex(/^[a-zA-Z0-9-]*$/g, \"Must be alphanumeric and can include '-'\");\n\nexport const restartPolicySchema = z.nativeEnum(RestartPolicy);\n\nexport const deploymentConfigSchema = z.object({\n\tversion: z.string().default('2022-12-28'),\n\trestart_policy: restartPolicySchema\n\t\t.optional()\n\t\t.default(RestartPolicy.ON_FAILURE),\n\ttype: deploymentRuntimeTypeSchema,\n\tcmd: z.array(z.string()).optional(),\n\timage: z.union([\n\t\tz.object({\n\t\t\tname: z.string(),\n\t\t\tauth: z\n\t\t\t\t.object({\n\t\t\t\t\tusername: z.string(),\n\t\t\t\t\tpassword: z.string(),\n\t\t\t\t})\n\t\t\t\t.nullable()\n\t\t\t\t.optional(),\n\t\t}),\n\t\tz.object({\n\t\t\tname: z.string().optional(),\n\t\t\tgh_repo: z.object({\n\t\t\t\trepo_id: z.number(),\n\t\t\t\tfull_name: z.string(),\n\t\t\t\tbranch: z.string(),\n\t\t\t}),\n\t\t\tauth: z.null().optional(),\n\t\t}),\n\t]),\n\tvolume: volumeSchema.optional(),\n\tenv: deploymentEnvSchema,\n\tentrypoint: z\n\t\t.array(z.string())\n\t\t.optional()\n\t\t.transform(v => (!v?.length ? null : v))\n\t\t.nullable(),\n\tcontainer_strategy: containerStrategySchema\n\t\t.optional()\n\t\t.default(ContainerStrategy.MANUAL),\n\tresources: containerResourcesSchema,\n});\n"]}