UNPKG

@intlayer/config

Version:

Retrieve Intlayer configurations and manage environment variables for both server-side and client-side environments.

1 lines 12.9 kB
{"version":3,"file":"configurationSchema.cjs","names":["z","AiProviders"],"sources":["../../../src/configFile/configurationSchema.ts"],"sourcesContent":["import { AiProviders } from '@intlayer/types/config';\nimport z from 'zod';\n\nexport const internationalizationSchema = z.object({\n locales: z.array(z.string()).min(1),\n requiredLocales: z.array(z.string()).optional(),\n strictMode: z.enum(['strict', 'inclusive', 'loose']).optional(),\n defaultLocale: z.string().optional(),\n});\n\n/**\n * Cross-realm-safe `Date` check.\n *\n * Configuration files are executed inside a `node:vm` sandbox, so a `Date`\n * created there is an instance of the sandbox realm's `Date`, not the host\n * realm's. `instanceof Date` (used by `z.date()`) therefore returns `false`\n * for those values, which would reject a perfectly valid `Date`.\n */\nconst isDateLike = (value: unknown): value is Date =>\n value instanceof Date ||\n Object.prototype.toString.call(value) === '[object Date]';\n\n/**\n * Cookie expiry: a number of days, an absolute `Date`, or an ISO date string\n * (the form a `Date` takes once the configuration is serialized).\n */\nconst cookieExpiresSchema = z.union([\n z.custom<Date>(isDateLike, { message: 'Expected a Date' }),\n z.number(),\n z.string().refine((value) => !Number.isNaN(Date.parse(value)), {\n message: 'Expected a valid date string',\n }),\n]);\n\nexport const cookiesAttributesSchema = z.object({\n type: z.literal('cookie'),\n name: z.string().optional(),\n domain: z.string().optional(),\n path: z.string().optional(),\n secure: z.boolean().optional(),\n httpOnly: z.boolean().optional(),\n sameSite: z.enum(['strict', 'lax', 'none']).optional(),\n expires: cookieExpiresSchema.optional(),\n maxAge: z.number().optional(),\n});\n\nexport const storageAttributesSchema = z.object({\n type: z.enum(['localStorage', 'sessionStorage', 'header']),\n name: z.string().optional(),\n});\n\nexport const storageSchema = z.union([\n z.literal(false),\n z.enum(['cookie', 'localStorage', 'sessionStorage', 'header']),\n cookiesAttributesSchema,\n storageAttributesSchema,\n z.array(\n z.union([\n z.enum(['cookie', 'localStorage', 'sessionStorage', 'header']),\n cookiesAttributesSchema,\n storageAttributesSchema,\n ])\n ),\n]);\n\nexport const rewriteRuleSchema = z.object({\n canonical: z.string(),\n localized: z.record(z.string(), z.string()),\n});\n\nexport const rewriteRulesSchema = z.object({\n rules: z.array(rewriteRuleSchema),\n});\n\nexport const rewriteObjectSchema = z.object({\n url: rewriteRulesSchema,\n nextjs: rewriteRulesSchema.optional(),\n vite: rewriteRulesSchema.optional(),\n});\n\nexport const routingSchema = z.object({\n rewrite: z\n .union([\n z.record(z.string(), z.record(z.string(), z.string())),\n rewriteObjectSchema,\n ])\n .optional(),\n mode: z\n .enum(['prefix-no-default', 'prefix-all', 'no-prefix', 'search-params'])\n .optional(),\n storage: storageSchema.optional(),\n basePath: z.string().optional(),\n domains: z.record(z.string(), z.string()).optional(),\n});\n\nexport const systemSchema = z.object({\n baseDir: z.string().optional(),\n moduleAugmentationDir: z.string().optional(),\n unmergedDictionariesDir: z.string().optional(),\n remoteDictionariesDir: z.string().optional(),\n dictionariesDir: z.string().optional(),\n dynamicDictionariesDir: z.string().optional(),\n fetchDictionariesDir: z.string().optional(),\n typesDir: z.string().optional(),\n mainDir: z.string().optional(),\n configDir: z.string().optional(),\n cacheDir: z.string().optional(),\n tempDir: z.string().optional(),\n});\n\nexport const contentSchema = z.object({\n fileExtensions: z.array(z.string()).optional(),\n contentDir: z.array(z.string()).optional(),\n codeDir: z.array(z.string()).optional(),\n excludedPath: z.array(z.string()).optional(),\n watch: z.boolean().optional(),\n formatCommand: z.string().optional(),\n});\n\nexport const editorSchema = z.object({\n applicationURL: z.union([z.url(), z.literal('')]).optional(),\n editorURL: z.union([z.url(), z.literal('')]).optional(),\n cmsURL: z.union([z.url(), z.literal('')]).optional(),\n backendURL: z.union([z.url(), z.literal('')]).optional(),\n port: z.number().int().positive().max(65535).optional(),\n enabled: z.boolean().optional(),\n clientId: z.string().optional(),\n clientSecret: z.string().optional(),\n dictionaryPriorityStrategy: z\n .enum(['local_first', 'distant_first'])\n .optional(),\n liveSync: z.boolean().optional(),\n liveSyncPort: z.number().int().positive().max(65535).optional(),\n liveSyncURL: z.union([z.url(), z.literal('')]).optional(),\n});\n\nexport const logSchema = z.object({\n mode: z.enum(['default', 'verbose', 'disabled']).optional(),\n prefix: z.string().optional(),\n error: z.function().optional(),\n log: z.function().optional(),\n info: z.function().optional(),\n warn: z.function().optional(),\n});\n\nexport const aiSchema = z.object({\n provider: z.enum(AiProviders).optional(),\n apiKey: z.string().optional(),\n model: z.string().optional(),\n temperature: z.number().min(0).max(2).optional(),\n applicationContext: z.string().optional(),\n baseURL: z.url().optional(),\n dataSerialization: z.enum(['json', 'toon']).optional(),\n});\n\nexport const buildSchema = z.object({\n mode: z.enum(['auto', 'manual']).optional(),\n optimize: z.boolean().optional(),\n importMode: z.enum(['static', 'dynamic', 'fetch']).optional(),\n traversePattern: z.array(z.string()).optional(),\n outputFormat: z.array(z.enum(['cjs', 'esm'])).optional(),\n cache: z.boolean().optional(),\n require: z.unknown().optional(),\n checkTypes: z.boolean().optional(),\n});\n\nexport const compilerSchema = z.object({\n enabled: z.union([z.boolean(), z.literal('build-only')]).optional(),\n dictionaryKeyPrefix: z.string().optional(),\n transformPattern: z.union([z.string(), z.array(z.string())]).optional(),\n excludePattern: z.union([z.string(), z.array(z.string())]).optional(),\n output: z.unknown().optional(),\n noMetadata: z.boolean().optional(),\n saveComponents: z.boolean().optional(),\n});\n\nexport const dictionarySchema = z.object({\n fill: z.unknown().optional(),\n contentAutoTransformation: z\n .union([\n z.boolean(),\n z.object({\n markdown: z.boolean().optional(),\n html: z.boolean().optional(),\n insertion: z.boolean().optional(),\n }),\n ])\n .optional(),\n location: z.string().optional(),\n locale: z.string().optional(),\n title: z.string().optional(),\n});\n\nexport const intlayerConfigSchema = z.object({\n internationalization: internationalizationSchema.optional(),\n routing: routingSchema.optional(),\n content: contentSchema.optional(),\n system: systemSchema.optional(),\n editor: editorSchema.optional(),\n log: logSchema.optional(),\n ai: aiSchema.optional(),\n build: buildSchema.optional(),\n compiler: compilerSchema.optional(),\n dictionary: dictionarySchema.optional(),\n plugins: z.array(z.unknown()).optional(),\n schemas: z.record(z.string(), z.unknown()).optional(),\n metadata: z\n .object({\n name: z.string().optional(),\n version: z.string().optional(),\n doc: z.string().optional(),\n })\n .optional(),\n});\n"],"mappings":"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"}