{"version":3,"file":"schema.mjs","names":["constants"],"sources":["../../../../src/libs/collection/custom-fields/schema.ts"],"sourcesContent":["import z from \"zod\";\nimport constants from \"../../../constants/constants.js\";\nimport { adminCopyInputSchema } from \"../../i18n/index.js\";\nimport {\n\tfieldConditionOperators,\n\tfieldConditionTranslationScopes,\n} from \"./conditions/index.js\";\nimport { validateRangeConfig } from \"./fields/range/schema.js\";\n\nconst operatorsRequiringValue: string[] = [\n\t\"equals\",\n\t\"notEquals\",\n\t\"contains\",\n\t\"notContains\",\n];\n\nconst fieldConditionRuleSchema = z\n\t.object({\n\t\tfield: z.string().trim().min(1),\n\t\toperator: z.enum(fieldConditionOperators),\n\t\tvalue: z.union([z.string(), z.number(), z.boolean(), z.null()]).optional(),\n\t})\n\t.strict()\n\t.refine(\n\t\t(rule) =>\n\t\t\t!operatorsRequiringValue.includes(rule.operator) ||\n\t\t\trule.value !== undefined,\n\t\t{\n\t\t\tmessage: \"Condition rules with a comparison operator require a value\",\n\t\t},\n\t);\n\nconst fieldConditionSchema = z\n\t.object({\n\t\taction: z.enum([\"show\", \"hide\"]).optional(),\n\t\ttranslationScope: z.enum(fieldConditionTranslationScopes).optional(),\n\t\tgroups: z.array(z.array(fieldConditionRuleSchema)),\n\t})\n\t.strict();\n\n// TODO: test this through lucid.config.* - have a feeling it isnt being used properly\nconst customFieldSchema = z.object({\n\ttype: z.string(),\n\tkey: z\n\t\t.string()\n\t\t.refine((val) => !val.includes(constants.db.nameSeparator), {\n\t\t\tmessage: `Field key cannot contain '${constants.db.nameSeparator}'`,\n\t\t})\n\t\t.refine((val) => !val.startsWith(constants.db.generatedColumnPrefix), {\n\t\t\tmessage: `Field key cannot start with a '${constants.db.generatedColumnPrefix}' prefix`,\n\t\t}),\n\tcollection: z.union([z.string(), z.array(z.string())]).optional(),\n\tdetails: z\n\t\t.object({\n\t\t\tlabel: adminCopyInputSchema.optional(),\n\t\t\tsummary: adminCopyInputSchema.optional(),\n\t\t\ttrue: adminCopyInputSchema.optional(),\n\t\t\tfalse: adminCopyInputSchema.optional(),\n\t\t})\n\t\t.optional(),\n\tai: z\n\t\t.object({\n\t\t\tenabled: z.boolean().optional(),\n\t\t\tinstructions: z.string().optional(),\n\t\t\tguidance: z\n\t\t\t\t.array(\n\t\t\t\t\tz\n\t\t\t\t\t\t.object({\n\t\t\t\t\t\t\tkey: z.string().trim().min(1),\n\t\t\t\t\t\t\tlabel: adminCopyInputSchema,\n\t\t\t\t\t\t\tinstructions: z.string().trim().min(1),\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.strict(),\n\t\t\t\t)\n\t\t\t\t.optional(),\n\t\t\tcontext: z.function().optional(),\n\t\t})\n\t\t.optional(),\n\tdefault: z\n\t\t.union([\n\t\t\tz.boolean(),\n\t\t\tz.string(),\n\t\t\tz.number(),\n\t\t\tz.undefined(),\n\t\t\tz.object({}),\n\t\t\tz.array(z.any()),\n\t\t\tz.null(),\n\t\t])\n\t\t.optional(),\n\tlocalized: z.boolean().optional(),\n\ttime: z.boolean().optional(),\n\tmultiple: z.boolean().optional(),\n\tthumbs: z.union([z.literal(1), z.literal(2)]).optional(),\n\tmin: z.number().optional(),\n\tmax: z.number().optional(),\n\tstep: z.number().positive().optional(),\n\tindex: z.literal(true).optional(),\n\toutput: z.enum([\"nested\", \"inline\"]).optional(),\n\tdefaultOpen: z.boolean().optional(),\n\tui: z\n\t\t.object({\n\t\t\thidden: z.boolean().optional(),\n\t\t\tdisabled: z.boolean().optional(),\n\t\t\tcondition: fieldConditionSchema.optional(),\n\t\t\twidth: z\n\t\t\t\t.union([\n\t\t\t\t\tz.literal(12),\n\t\t\t\t\tz.literal(8),\n\t\t\t\t\tz.literal(6),\n\t\t\t\t\tz.literal(4),\n\t\t\t\t\tz.literal(3),\n\t\t\t\t])\n\t\t\t\t.optional(),\n\t\t})\n\t\t.optional(),\n\toptions: z\n\t\t.array(\n\t\t\tz.object({\n\t\t\t\tlabel: adminCopyInputSchema,\n\t\t\t\tvalue: z.string(),\n\t\t\t}),\n\t\t)\n\t\t.optional(),\n\tpresets: z.array(z.string()).optional(),\n\tlanguages: z.array(z.string()).optional(),\n\tvalidation: z\n\t\t.object({\n\t\t\tzod: z.any().optional(),\n\t\t\trequired: z.boolean().optional(),\n\t\t\tminItems: z.number().optional(),\n\t\t\tmaxItems: z.number().optional(),\n\t\t\textensions: z.array(z.string()).optional(),\n\t\t\twidth: z\n\t\t\t\t.object({\n\t\t\t\t\tmin: z.number().optional(),\n\t\t\t\t\tmax: z.number().optional(),\n\t\t\t\t})\n\t\t\t\t.optional(),\n\t\t\theight: z\n\t\t\t\t.object({\n\t\t\t\t\tmin: z.number().optional(),\n\t\t\t\t\tmax: z.number().optional(),\n\t\t\t\t})\n\t\t\t\t.optional(),\n\t\t\tmaxGroups: z.number().optional(),\n\t\t\tminGroups: z.number().optional(),\n\t\t})\n\t\t.optional(),\n});\n\nconst CustomFieldSchema = customFieldSchema.superRefine(validateRangeConfig);\n\nexport default CustomFieldSchema;\n"],"mappings":"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"}