{"version":3,"file":"settings.mjs","names":[],"sources":["../../src/schemas/settings.ts"],"sourcesContent":["import z from \"zod\";\nimport type { ControllerSchema } from \"../types.js\";\nimport { queryString } from \"./helpers/querystring.js\";\n\nconst settingsResponseSchema = z.object({\n\tai: z\n\t\t.object({\n\t\t\tenabled: z.boolean().meta({\n\t\t\t\tdescription: \"Whether AI features are enabled in the Lucid CMS config\",\n\t\t\t\texample: true,\n\t\t\t}),\n\t\t\tfeatures: z\n\t\t\t\t.object({\n\t\t\t\t\timageGeneration: z.boolean().meta({\n\t\t\t\t\t\tdescription: \"Whether AI image generation is enabled\",\n\t\t\t\t\t\texample: true,\n\t\t\t\t\t}),\n\t\t\t\t\taltGeneration: z.boolean().meta({\n\t\t\t\t\t\tdescription: \"Whether AI alt text generation is enabled\",\n\t\t\t\t\t\texample: true,\n\t\t\t\t\t}),\n\t\t\t\t\tcustomFieldGeneration: z.boolean().meta({\n\t\t\t\t\t\tdescription: \"Whether AI custom field generation is enabled\",\n\t\t\t\t\t\texample: true,\n\t\t\t\t\t}),\n\t\t\t\t})\n\t\t\t\t.strict(),\n\t\t})\n\t\t.strict()\n\t\t.optional(),\n\temail: z\n\t\t.object({\n\t\t\tsimulated: z.boolean().meta({\n\t\t\t\tdescription: \"Whether emails are simulated\",\n\t\t\t\texample: false,\n\t\t\t}),\n\t\t\ttemplates: z.array(z.string()).meta({\n\t\t\t\tdescription: \"The supported email templates\",\n\t\t\t\texample: [\"reset-password\", \"user-invite\"],\n\t\t\t}),\n\t\t\tfrom: z\n\t\t\t\t.object({\n\t\t\t\t\temail: z.email().meta({\n\t\t\t\t\t\tdescription: \"The default from address\",\n\t\t\t\t\t\texample: \"admin@lucidcms.io\",\n\t\t\t\t\t}),\n\t\t\t\t\tname: z.string().meta({\n\t\t\t\t\t\tdescription: \"The default from name\",\n\t\t\t\t\t\texample: \"Admin\",\n\t\t\t\t\t}),\n\t\t\t\t})\n\t\t\t\t.nullable(),\n\t\t})\n\t\t.optional(),\n\tmedia: z\n\t\t.object({\n\t\t\tenabled: z.boolean().meta({\n\t\t\t\tdescription:\n\t\t\t\t\t\"Whether media is supported. Based on if the media strategy has been set\",\n\t\t\t\texample: true,\n\t\t\t}),\n\t\t\tstorage: z.object({\n\t\t\t\ttotal: z.number().nullable().meta({\n\t\t\t\t\tdescription: \"The total available storage\",\n\t\t\t\t\texample: 1024,\n\t\t\t\t}),\n\t\t\t\tremaining: z.number().nullable().meta({\n\t\t\t\t\tdescription: \"The remaining storage left\",\n\t\t\t\t\texample: 136,\n\t\t\t\t}),\n\t\t\t\tused: z.number().nullable().meta({\n\t\t\t\t\tdescription: \"The total storage used so far\",\n\t\t\t\t\texample: 888,\n\t\t\t\t}),\n\t\t\t}),\n\t\t\tprocessed: z.object({\n\t\t\t\tstored: z.boolean().meta({\n\t\t\t\t\tdescription:\n\t\t\t\t\t\t\"Whether or not processed images are stored in you configured storage solution or not\",\n\t\t\t\t\texample: true,\n\t\t\t\t}),\n\t\t\t\timageLimit: z.number().meta({\n\t\t\t\t\tdescription:\n\t\t\t\t\t\t\"The number of processed images that can be stored. Once meta future images are generated on request\",\n\t\t\t\t\texample: 10,\n\t\t\t\t}),\n\t\t\t\ttotal: z.number().nullable().meta({\n\t\t\t\t\tdescription: \"How many processed images exist\",\n\t\t\t\t\texample: 100,\n\t\t\t\t}),\n\t\t\t}),\n\t\t})\n\t\t.optional(),\n\tlicense: z\n\t\t.object({\n\t\t\tkey: z.string().nullable().meta({\n\t\t\t\tdescription: \"The stored display version of the license key\",\n\t\t\t\texample: \"************************************************1A2B\",\n\t\t\t}),\n\t\t})\n\t\t.optional(),\n\tsystem: z\n\t\t.object({\n\t\t\truntime: z.string().meta({\n\t\t\t\tdescription: \"The runtime adapter key\",\n\t\t\t\texample: \"node\",\n\t\t\t}),\n\t\t\tdatabase: z.string().meta({\n\t\t\t\tdescription: \"The database adapter key\",\n\t\t\t\texample: \"sqlite\",\n\t\t\t}),\n\t\t\tkv: z.string().meta({\n\t\t\t\tdescription: \"The KV adapter key\",\n\t\t\t\texample: \"memory\",\n\t\t\t}),\n\t\t\tqueue: z.string().meta({\n\t\t\t\tdescription: \"The queue adapter key\",\n\t\t\t\texample: \"worker\",\n\t\t\t}),\n\t\t\tmedia: z.string().nullable().meta({\n\t\t\t\tdescription: \"The media adapter key\",\n\t\t\t\texample: \"file-system\",\n\t\t\t}),\n\t\t\temail: z.string().meta({\n\t\t\t\tdescription: \"The email adapter key\",\n\t\t\t\texample: \"smtp\",\n\t\t\t}),\n\t\t\timageProcessor: z.string().nullable().meta({\n\t\t\t\tdescription: \"The image processor key\",\n\t\t\t\texample: \"custom\",\n\t\t\t}),\n\t\t\talertEmail: z.email().nullable().meta({\n\t\t\t\tdescription: \"The email address system alerts are sent to\",\n\t\t\t\texample: \"alerts@example.com\",\n\t\t\t}),\n\t\t})\n\t\t.optional(),\n});\n\nexport const controllerSchemas = {\n\tgetSettings: {\n\t\tbody: undefined,\n\t\tquery: {\n\t\t\tstring: z\n\t\t\t\t.object({\n\t\t\t\t\tinclude: queryString.schema.include(\"email,media,license,system,ai\"),\n\t\t\t\t})\n\t\t\t\t.meta(queryString.meta),\n\t\t\tformatted: z.object({\n\t\t\t\tinclude: z\n\t\t\t\t\t.array(z.enum([\"email\", \"media\", \"license\", \"system\", \"ai\"]))\n\t\t\t\t\t.optional(),\n\t\t\t}),\n\t\t},\n\t\tparams: undefined,\n\t\tresponse: settingsResponseSchema,\n\t} satisfies ControllerSchema,\n\tclearKV: {\n\t\tbody: undefined,\n\t\tquery: {\n\t\t\tstring: undefined,\n\t\t\tformatted: undefined,\n\t\t},\n\t\tparams: undefined,\n\t\tresponse: undefined,\n\t} satisfies ControllerSchema,\n\tupdateSystemAlerts: {\n\t\tbody: z\n\t\t\t.object({\n\t\t\t\talertEmail: z.union([z.email(), z.literal(\"\"), z.null()]).meta({\n\t\t\t\t\tdescription: \"The email address system alerts are sent to\",\n\t\t\t\t\texample: \"alerts@example.com\",\n\t\t\t\t}),\n\t\t\t})\n\t\t\t.strict(),\n\t\tquery: {\n\t\t\tstring: undefined,\n\t\t\tformatted: undefined,\n\t\t},\n\t\tparams: undefined,\n\t\tresponse: undefined,\n\t} satisfies ControllerSchema,\n};\n"],"mappings":"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"}