{"version":3,"file":"query-params.mjs","sources":["../../../src/validation/route-validators/query-params.ts"],"sourcesContent":["import * as z from 'zod/v4';\n\n/**\n * Standard query parameter validators that can be reused across different route validators\n *\n * These schemas provide the basic structure validation for common Strapi API query parameters.\n * They can be used as building blocks for both generic validation and schema-aware validation.\n */\n\n/**\n * Fields parameter validation\n * Supports: 'title', ['title', 'name'], or '*'\n */\nexport const queryFieldsSchema = z\n .union([z.string(), z.array(z.string())])\n .describe('Select specific fields to return in the response');\n\n/**\n * Populate parameter validation\n * Supports: '*', 'relation', ['relation1', 'relation2'], or complex objects\n */\nexport const queryPopulateSchema = z\n .union([z.literal('*'), z.string(), z.array(z.string()), z.record(z.string(), z.any())])\n .describe('Specify which relations to populate in the response');\n\n/**\n * Sort parameter validation\n * Supports: 'name', ['name', 'title'], { name: 'asc' }, or [{ name: 'desc' }]\n */\nexport const querySortSchema = z\n .union([\n z.string(),\n z.array(z.string()),\n z.record(z.string(), z.enum(['asc', 'desc'])),\n z.array(z.record(z.string(), z.enum(['asc', 'desc']))),\n ])\n .describe('Sort the results by specified fields');\n\n/**\n * Pagination parameter validation\n * Supports both page-based and offset-based pagination\n */\nexport const paginationSchema = z\n .intersection(\n z.object({\n withCount: z.boolean().optional().describe('Include total count in response'),\n }),\n z.union([\n z\n .object({\n page: z.number().int().positive().describe('Page number (1-based)'),\n pageSize: z.number().int().positive().describe('Number of entries per page'),\n })\n .describe('Page-based pagination'),\n z\n .object({\n start: z.number().int().min(0).describe('Number of entries to skip'),\n limit: z.number().int().positive().describe('Maximum number of entries to return'),\n })\n .describe('Offset-based pagination'),\n ])\n )\n .describe('Pagination parameters');\n\n/**\n * Filters parameter validation\n * Supports any object structure for filtering\n */\nexport const filtersSchema = z.record(z.string(), z.any()).describe('Apply filters to the query');\n\n/**\n * Locale parameter validation\n * Used for internationalization\n */\nexport const localeSchema = z.string().describe('Specify the locale for localized content');\n\n/**\n * Status parameter validation\n * Used for draft & publish functionality\n */\nexport const statusSchema = z.enum(['draft', 'published']).describe('Filter by publication status');\n\n/**\n * Search query parameter validation\n * Used for text search functionality\n */\nexport const searchQuerySchema = z.string().describe('Search query string');\n\n/**\n * Complete collection of all standard query parameter schemas\n * This object provides easy access to all available query parameter validators\n */\nexport const queryParameterSchemas = {\n fields: queryFieldsSchema,\n populate: queryPopulateSchema,\n sort: querySortSchema,\n pagination: paginationSchema,\n filters: filtersSchema,\n locale: localeSchema,\n status: statusSchema,\n _q: searchQuerySchema,\n} as const;\n\n/**\n * Query parameter names supported by Strapi's API\n */\nexport type QueryParam = keyof typeof queryParameterSchemas;\n"],"names":["queryFieldsSchema","z","union","string","array","describe","queryPopulateSchema","literal","record","any","querySortSchema","enum","paginationSchema","intersection","object","withCount","boolean","optional","page","number","int","positive","pageSize","start","min","limit","filtersSchema","localeSchema","statusSchema","searchQuerySchema","queryParameterSchemas","fields","populate","sort","pagination","filters","locale","status","_q"],"mappings":"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"}