UNPKG

@intlayer/config

Version:

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

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