{"code":"import{z}from\"zod\";import{AUTH_BASE_URL_MODES,DEPLOYMENT_EXPOSURES,DEPLOYMENT_MODES,SECRET_PROVIDERS,STORAGE_PROVIDERS}from\"./constants.js\";const configMetaSchema=z.object({version:z.literal(1),updatedAt:z.string(),source:z.enum([\"onboard\",\"configure\",\"doctor\"])});const llmConfigSchema=z.object({provider:z.enum([\"claude\",\"openai\"]),apiKey:z.string().optional()});const databaseBackupConfigSchema=z.object({enabled:z.boolean().default(true),intervalMinutes:z.number().int().min(1).max(7*24*60).default(60),retentionDays:z.number().int().min(1).max(3650).default(30),dir:z.string().default(\"~/.paperclip/instances/default/data/backups\")});const databaseConfigSchema=z.object({mode:z.enum([\"embedded-postgres\",\"postgres\"]).default(\"embedded-postgres\"),connectionString:z.string().optional(),embeddedPostgresDataDir:z.string().default(\"~/.paperclip/instances/default/db\"),embeddedPostgresPort:z.number().int().min(1).max(65535).default(54329),backup:databaseBackupConfigSchema.default({enabled:true,intervalMinutes:60,retentionDays:30,dir:\"~/.paperclip/instances/default/data/backups\"})});const loggingConfigSchema=z.object({mode:z.enum([\"file\",\"cloud\"]),logDir:z.string().default(\"~/.paperclip/instances/default/logs\")});const serverConfigSchema=z.object({deploymentMode:z.enum(DEPLOYMENT_MODES).default(\"local_trusted\"),exposure:z.enum(DEPLOYMENT_EXPOSURES).default(\"private\"),host:z.string().default(\"127.0.0.1\"),port:z.number().int().min(1).max(65535).default(3100),allowedHostnames:z.array(z.string().min(1)).default([]),serveUi:z.boolean().default(true)});const authConfigSchema=z.object({baseUrlMode:z.enum(AUTH_BASE_URL_MODES).default(\"auto\"),publicBaseUrl:z.string().url().optional(),disableSignUp:z.boolean().default(false)});const storageLocalDiskConfigSchema=z.object({baseDir:z.string().default(\"~/.paperclip/instances/default/data/storage\")});const storageS3ConfigSchema=z.object({bucket:z.string().min(1).default(\"paperclip\"),region:z.string().min(1).default(\"us-east-1\"),endpoint:z.string().optional(),prefix:z.string().default(\"\"),forcePathStyle:z.boolean().default(false)});const storageConfigSchema=z.object({provider:z.enum(STORAGE_PROVIDERS).default(\"local_disk\"),localDisk:storageLocalDiskConfigSchema.default({baseDir:\"~/.paperclip/instances/default/data/storage\"}),s3:storageS3ConfigSchema.default({bucket:\"paperclip\",region:\"us-east-1\",prefix:\"\",forcePathStyle:false})});const secretsLocalEncryptedConfigSchema=z.object({keyFilePath:z.string().default(\"~/.paperclip/instances/default/secrets/master.key\")});const secretsConfigSchema=z.object({provider:z.enum(SECRET_PROVIDERS).default(\"local_encrypted\"),strictMode:z.boolean().default(false),localEncrypted:secretsLocalEncryptedConfigSchema.default({keyFilePath:\"~/.paperclip/instances/default/secrets/master.key\"})});const paperclipConfigSchema=z.object({$meta:configMetaSchema,llm:llmConfigSchema.optional(),database:databaseConfigSchema,logging:loggingConfigSchema,server:serverConfigSchema,auth:authConfigSchema.default({baseUrlMode:\"auto\",disableSignUp:false}),storage:storageConfigSchema.default({provider:\"local_disk\",localDisk:{baseDir:\"~/.paperclip/instances/default/data/storage\"},s3:{bucket:\"paperclip\",region:\"us-east-1\",prefix:\"\",forcePathStyle:false}}),secrets:secretsConfigSchema.default({provider:\"local_encrypted\",strictMode:false,localEncrypted:{keyFilePath:\"~/.paperclip/instances/default/secrets/master.key\"}})}).superRefine((value,ctx)=>{if(value.server.deploymentMode===\"local_trusted\"){if(value.server.exposure!==\"private\"){ctx.addIssue({code:z.ZodIssueCode.custom,message:\"server.exposure must be private when deploymentMode is local_trusted\",path:[\"server\",\"exposure\"]})}return}if(value.auth.baseUrlMode===\"explicit\"&&!value.auth.publicBaseUrl){ctx.addIssue({code:z.ZodIssueCode.custom,message:\"auth.publicBaseUrl is required when auth.baseUrlMode is explicit\",path:[\"auth\",\"publicBaseUrl\"]})}if(value.server.exposure===\"public\"&&value.auth.baseUrlMode!==\"explicit\"){ctx.addIssue({code:z.ZodIssueCode.custom,message:\"auth.baseUrlMode must be explicit when deploymentMode=authenticated and exposure=public\",path:[\"auth\",\"baseUrlMode\"]})}if(value.server.exposure===\"public\"&&!value.auth.publicBaseUrl){ctx.addIssue({code:z.ZodIssueCode.custom,message:\"auth.publicBaseUrl is required when deploymentMode=authenticated and exposure=public\",path:[\"auth\",\"publicBaseUrl\"]})}});export{authConfigSchema,configMetaSchema,databaseBackupConfigSchema,databaseConfigSchema,llmConfigSchema,loggingConfigSchema,paperclipConfigSchema,secretsConfigSchema,secretsLocalEncryptedConfigSchema,serverConfigSchema,storageConfigSchema,storageLocalDiskConfigSchema,storageS3ConfigSchema};\n","warnings":[],"map":{"version":3,"mappings":"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","names":[],"ignoreList":[],"sources":["/var/www/paperclip.westilt.com/packages/shared/src/config-schema.ts"],"sourcesContent":[null]}}