@vwinterdev/env-validator-vite
Advanced tools
+297
| //#region src/types.ts | ||
| let SchemaVariant = /* @__PURE__ */ function(SchemaVariant$1) { | ||
| SchemaVariant$1["STRING"] = "string"; | ||
| SchemaVariant$1["URL"] = "url"; | ||
| SchemaVariant$1["EMAIL"] = "email"; | ||
| SchemaVariant$1["UUID"] = "uuid"; | ||
| SchemaVariant$1["IP"] = "ip"; | ||
| SchemaVariant$1["DATETIME"] = "datetime"; | ||
| SchemaVariant$1["MIN_LENGTH"] = "minLength"; | ||
| SchemaVariant$1["MAX_LENGTH"] = "maxLength"; | ||
| SchemaVariant$1["LENGTH"] = "length"; | ||
| SchemaVariant$1["REGEX"] = "regex"; | ||
| SchemaVariant$1["NUMBER"] = "number"; | ||
| SchemaVariant$1["INTEGER"] = "integer"; | ||
| SchemaVariant$1["POSITIVE_NUMBER"] = "positiveNumber"; | ||
| SchemaVariant$1["NEGATIVE_NUMBER"] = "negativeNumber"; | ||
| SchemaVariant$1["MIN_NUMBER"] = "minNumber"; | ||
| SchemaVariant$1["MAX_NUMBER"] = "maxNumber"; | ||
| SchemaVariant$1["BOOLEAN"] = "boolean"; | ||
| SchemaVariant$1["DATE"] = "date"; | ||
| SchemaVariant$1["ENUM"] = "enum"; | ||
| return SchemaVariant$1; | ||
| }({}); | ||
| //#endregion | ||
| //#region src/validators.ts | ||
| const EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; | ||
| const UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i; | ||
| const IPV4_REGEX = /^(\d{1,3}\.){3}\d{1,3}$/; | ||
| const DATETIME_REGEX = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z?$/; | ||
| const validators = { | ||
| string: (value) => { | ||
| const isValid = typeof value === "string" && value.trim() !== ""; | ||
| return { | ||
| success: isValid, | ||
| error: isValid ? void 0 : "Must be a non-empty string", | ||
| value | ||
| }; | ||
| }, | ||
| url: (value) => { | ||
| try { | ||
| new URL(value); | ||
| return { | ||
| success: true, | ||
| value | ||
| }; | ||
| } catch { | ||
| return { | ||
| success: false, | ||
| error: "Invalid URL" | ||
| }; | ||
| } | ||
| }, | ||
| email: (value) => { | ||
| const isValid = EMAIL_REGEX.test(value); | ||
| return { | ||
| success: isValid, | ||
| error: isValid ? void 0 : "Invalid email", | ||
| value | ||
| }; | ||
| }, | ||
| uuid: (value) => { | ||
| const isValid = UUID_REGEX.test(value); | ||
| return { | ||
| success: isValid, | ||
| error: isValid ? void 0 : "Invalid UUID", | ||
| value | ||
| }; | ||
| }, | ||
| ip: (value) => { | ||
| if (IPV4_REGEX.test(value)) { | ||
| const parts = value.split("."); | ||
| if (parts.length === 4) { | ||
| const isValid$1 = parts.every((part) => { | ||
| const num = parseInt(part, 10); | ||
| return !isNaN(num) && num >= 0 && num <= 255 && String(num) === part.trim(); | ||
| }); | ||
| return { | ||
| success: isValid$1, | ||
| error: isValid$1 ? void 0 : "Invalid IPv4 address", | ||
| value | ||
| }; | ||
| } | ||
| } | ||
| const isValid = /^([0-9a-fA-F]{0,4}:){2,7}[0-9a-fA-F]{0,4}$/.test(value); | ||
| return { | ||
| success: isValid, | ||
| error: isValid ? void 0 : "Invalid IP address", | ||
| value | ||
| }; | ||
| }, | ||
| datetime: (value) => { | ||
| const isValid = DATETIME_REGEX.test(value) && !isNaN(Date.parse(value)); | ||
| return { | ||
| success: isValid, | ||
| error: isValid ? void 0 : "Invalid datetime (ISO 8601)", | ||
| value | ||
| }; | ||
| }, | ||
| number: (value) => { | ||
| const num = Number(value); | ||
| const isValid = !isNaN(num) && isFinite(num) && value.trim() !== ""; | ||
| return { | ||
| success: isValid, | ||
| error: isValid ? void 0 : "Invalid number", | ||
| value: isValid ? num : void 0 | ||
| }; | ||
| }, | ||
| integer: (value) => { | ||
| const num = Number(value); | ||
| const isValid = !isNaN(num) && isFinite(num) && Number.isInteger(num) && value.trim() !== ""; | ||
| return { | ||
| success: isValid, | ||
| error: isValid ? void 0 : "Invalid integer", | ||
| value: isValid ? num : void 0 | ||
| }; | ||
| }, | ||
| positiveNumber: (value) => { | ||
| const num = Number(value); | ||
| const isValid = !isNaN(num) && isFinite(num) && num > 0; | ||
| return { | ||
| success: isValid, | ||
| error: isValid ? void 0 : "Must be a positive number", | ||
| value: isValid ? num : void 0 | ||
| }; | ||
| }, | ||
| negativeNumber: (value) => { | ||
| const num = Number(value); | ||
| const isValid = !isNaN(num) && isFinite(num) && num < 0; | ||
| return { | ||
| success: isValid, | ||
| error: isValid ? void 0 : "Must be a negative number", | ||
| value: isValid ? num : void 0 | ||
| }; | ||
| }, | ||
| boolean: (value) => { | ||
| const lower = value.toLowerCase().trim(); | ||
| if (lower === "true" || lower === "1") return { | ||
| success: true, | ||
| value: true | ||
| }; | ||
| if (lower === "false" || lower === "0" || value === "") return { | ||
| success: true, | ||
| value: false | ||
| }; | ||
| return { | ||
| success: false, | ||
| error: "Invalid boolean (use \"true\", \"false\", \"1\", or \"0\")" | ||
| }; | ||
| }, | ||
| date: (value) => { | ||
| const date = new Date(value); | ||
| const isValid = !isNaN(date.getTime()); | ||
| return { | ||
| success: isValid, | ||
| error: isValid ? void 0 : "Invalid date", | ||
| value: isValid ? date : void 0 | ||
| }; | ||
| }, | ||
| minLength: (min) => (value) => ({ | ||
| success: value.length >= min, | ||
| error: value.length < min ? `Must be at least ${min} characters` : void 0, | ||
| value | ||
| }), | ||
| maxLength: (max) => (value) => ({ | ||
| success: value.length <= max, | ||
| error: value.length > max ? `Must be at most ${max} characters` : void 0, | ||
| value | ||
| }), | ||
| length: (len) => (value) => ({ | ||
| success: value.length === len, | ||
| error: value.length !== len ? `Must be exactly ${len} characters` : void 0, | ||
| value | ||
| }), | ||
| regex: (pattern) => (value) => { | ||
| const isValid = (typeof pattern === "string" ? new RegExp(pattern) : pattern).test(value); | ||
| return { | ||
| success: isValid, | ||
| error: isValid ? void 0 : "Value does not match pattern", | ||
| value | ||
| }; | ||
| }, | ||
| minNumber: (min) => (value) => { | ||
| const num = Number(value); | ||
| const isValid = !isNaN(num) && isFinite(num) && num >= min; | ||
| return { | ||
| success: isValid, | ||
| error: isValid ? void 0 : `Must be at least ${min}`, | ||
| value: isValid ? num : void 0 | ||
| }; | ||
| }, | ||
| maxNumber: (max) => (value) => { | ||
| const num = Number(value); | ||
| const isValid = !isNaN(num) && isFinite(num) && num <= max; | ||
| return { | ||
| success: isValid, | ||
| error: isValid ? void 0 : `Must be at most ${max}`, | ||
| value: isValid ? num : void 0 | ||
| }; | ||
| }, | ||
| enum: (options) => (value) => { | ||
| const isValid = options.includes(value); | ||
| return { | ||
| success: isValid, | ||
| error: isValid ? void 0 : `Must be one of: ${options.join(", ")}`, | ||
| value | ||
| }; | ||
| } | ||
| }; | ||
| //#endregion | ||
| //#region src/index.ts | ||
| const validatorMap = { | ||
| [SchemaVariant.STRING]: validators.string, | ||
| [SchemaVariant.URL]: validators.url, | ||
| [SchemaVariant.EMAIL]: validators.email, | ||
| [SchemaVariant.UUID]: validators.uuid, | ||
| [SchemaVariant.IP]: validators.ip, | ||
| [SchemaVariant.DATETIME]: validators.datetime, | ||
| [SchemaVariant.NUMBER]: validators.number, | ||
| [SchemaVariant.INTEGER]: validators.integer, | ||
| [SchemaVariant.POSITIVE_NUMBER]: validators.positiveNumber, | ||
| [SchemaVariant.NEGATIVE_NUMBER]: validators.negativeNumber, | ||
| [SchemaVariant.BOOLEAN]: validators.boolean, | ||
| [SchemaVariant.DATE]: validators.date, | ||
| [SchemaVariant.MIN_LENGTH]: validators.minLength, | ||
| [SchemaVariant.MAX_LENGTH]: validators.maxLength, | ||
| [SchemaVariant.LENGTH]: validators.length, | ||
| [SchemaVariant.REGEX]: validators.regex, | ||
| [SchemaVariant.MIN_NUMBER]: validators.minNumber, | ||
| [SchemaVariant.MAX_NUMBER]: validators.maxNumber, | ||
| [SchemaVariant.ENUM]: validators.enum | ||
| }; | ||
| function validateEnv(schema, env) { | ||
| const errors = []; | ||
| for (const [key, value] of Object.entries(schema)) { | ||
| if (!(key in env) || env[key] === void 0 || env[key] === null) { | ||
| errors.push({ | ||
| path: key, | ||
| message: "Variable is required" | ||
| }); | ||
| continue; | ||
| } | ||
| const envValue = String(env[key]); | ||
| let validator; | ||
| if (typeof value === "string") { | ||
| const validatorFn = validatorMap[value]; | ||
| if (!validatorFn) throw new Error(`Unknown schema variant: ${value}`); | ||
| if (typeof validatorFn === "function") if (validatorFn.length === 1) validator = validatorFn; | ||
| else throw new Error(`Invalid validator for ${value}`); | ||
| else throw new Error(`Invalid validator for ${value}`); | ||
| } else if (typeof value === "object" && value !== null && "schema" in value) { | ||
| const schemaVariant = value.schema; | ||
| const validatorFn = validatorMap[schemaVariant]; | ||
| if (!validatorFn) throw new Error(`Unknown schema variant: ${schemaVariant}`); | ||
| validator = validatorFn(value.params); | ||
| } else throw new Error(`Invalid schema value for ${key}`); | ||
| const result = validator(envValue); | ||
| if (!result.success) errors.push({ | ||
| path: key, | ||
| message: result.error || "Validation failed" | ||
| }); | ||
| } | ||
| return errors.length === 0 ? { success: true } : { | ||
| success: false, | ||
| errors | ||
| }; | ||
| } | ||
| function envValidatorVite(options) { | ||
| return { | ||
| name: "env-validator", | ||
| enforce: "pre", | ||
| configResolved(config) { | ||
| const result = validateEnv(options, config.env); | ||
| if (!result.success) { | ||
| console.error("Environment variables validation error:"); | ||
| result.errors.forEach((err) => { | ||
| console.error(` - ${err.path}: ${err.message}`); | ||
| }); | ||
| console.error("\nFound environment variables:"); | ||
| const foundKeys = Object.keys(config.env); | ||
| if (foundKeys.length > 0) foundKeys.forEach((key) => { | ||
| console.error(` - ${key}`); | ||
| }); | ||
| else console.error(" (no variables found)"); | ||
| console.error("\nPlease check your .env file"); | ||
| throw new Error("Invalid environment variables"); | ||
| } | ||
| if (config.command === "serve") console.log("✓ All environment variables are valid\n"); | ||
| } | ||
| }; | ||
| } | ||
| //#endregion | ||
| exports.envValidatorVite = envValidatorVite; | ||
| //# sourceMappingURL=index.cjs.map |
| {"version":3,"file":"index.cjs","names":["isValid","validatorMap: Record<string, ValidatorFunction | ((params?: any) => ValidatorFunction)>","errors: Array<{ path: string; message: string }>","validator: ValidatorFunction"],"sources":["../src/types.ts","../src/validators.ts","../src/index.ts"],"sourcesContent":["export enum SchemaVariant {\n STRING = 'string',\n URL = 'url',\n EMAIL = 'email',\n UUID = 'uuid',\n IP = 'ip',\n DATETIME = 'datetime',\n MIN_LENGTH = 'minLength',\n MAX_LENGTH = 'maxLength',\n LENGTH = 'length',\n REGEX = 'regex',\n NUMBER = 'number',\n INTEGER = 'integer',\n POSITIVE_NUMBER = 'positiveNumber',\n NEGATIVE_NUMBER = 'negativeNumber',\n MIN_NUMBER = 'minNumber',\n MAX_NUMBER = 'maxNumber',\n BOOLEAN = 'boolean',\n DATE = 'date',\n ENUM = 'enum',\n}\n\nexport interface EnvValidatorSchemaValue {\n schema: SchemaVariant\n params?: string[] | number | boolean | string | RegExp\n}\n\nexport interface EnvValidatorSchema extends Record<string, SchemaVariant | EnvValidatorSchemaValue> {}\n\n","export interface ValidationResult {\n success: boolean\n error?: string\n value?: any\n}\n\nexport type Validator = (value: string) => ValidationResult\n\nconst URL_REGEX = /^https?:\\/\\/.+/\nconst EMAIL_REGEX = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/\nconst UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i\nconst IPV4_REGEX = /^(\\d{1,3}\\.){3}\\d{1,3}$/\nconst DATETIME_REGEX = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?Z?$/\nexport const validators = {\n string: (value: string): ValidationResult => {\n const isValid = typeof value === 'string' && value.trim() !== ''\n return {\n success: isValid,\n error: isValid ? undefined : 'Must be a non-empty string',\n value,\n }\n },\n\n url: (value: string): ValidationResult => {\n try {\n new URL(value)\n return { success: true, value }\n } catch {\n return { success: false, error: 'Invalid URL' }\n }\n },\n\n email: (value: string): ValidationResult => {\n const isValid = EMAIL_REGEX.test(value)\n return {\n success: isValid,\n error: isValid ? undefined : 'Invalid email',\n value,\n }\n },\n\n uuid: (value: string): ValidationResult => {\n const isValid = UUID_REGEX.test(value)\n return {\n success: isValid,\n error: isValid ? undefined : 'Invalid UUID',\n value,\n }\n },\n\n ip: (value: string): ValidationResult => {\n if (IPV4_REGEX.test(value)) {\n const parts = value.split('.')\n if (parts.length === 4) {\n const isValid = parts.every(part => {\n const num = parseInt(part, 10)\n return !isNaN(num) && num >= 0 && num <= 255 && String(num) === part.trim()\n })\n return {\n success: isValid,\n error: isValid ? undefined : 'Invalid IPv4 address',\n value,\n }\n }\n }\n \n const ipv6Regex = /^([0-9a-fA-F]{0,4}:){2,7}[0-9a-fA-F]{0,4}$/\n const isValid = ipv6Regex.test(value)\n return {\n success: isValid,\n error: isValid ? undefined : 'Invalid IP address',\n value,\n }\n },\n\n datetime: (value: string): ValidationResult => {\n const isValid = DATETIME_REGEX.test(value) && !isNaN(Date.parse(value))\n return {\n success: isValid,\n error: isValid ? undefined : 'Invalid datetime (ISO 8601)',\n value,\n }\n },\n\n number: (value: string): ValidationResult => {\n const num = Number(value)\n const isValid = !isNaN(num) && isFinite(num) && value.trim() !== ''\n return {\n success: isValid,\n error: isValid ? undefined : 'Invalid number',\n value: isValid ? num : undefined,\n }\n },\n\n integer: (value: string): ValidationResult => {\n const num = Number(value)\n const isValid = !isNaN(num) && isFinite(num) && Number.isInteger(num) && value.trim() !== ''\n return {\n success: isValid,\n error: isValid ? undefined : 'Invalid integer',\n value: isValid ? num : undefined,\n }\n },\n\n positiveNumber: (value: string): ValidationResult => {\n const num = Number(value)\n const isValid = !isNaN(num) && isFinite(num) && num > 0\n return {\n success: isValid,\n error: isValid ? undefined : 'Must be a positive number',\n value: isValid ? num : undefined,\n }\n },\n\n negativeNumber: (value: string): ValidationResult => {\n const num = Number(value)\n const isValid = !isNaN(num) && isFinite(num) && num < 0\n return {\n success: isValid,\n error: isValid ? undefined : 'Must be a negative number',\n value: isValid ? num : undefined,\n }\n },\n\n boolean: (value: string): ValidationResult => {\n const lower = value.toLowerCase().trim()\n if (lower === 'true' || lower === '1') {\n return { success: true, value: true }\n }\n if (lower === 'false' || lower === '0' || value === '') {\n return { success: true, value: false }\n }\n return {\n success: false,\n error: 'Invalid boolean (use \"true\", \"false\", \"1\", or \"0\")',\n }\n },\n\n date: (value: string): ValidationResult => {\n const date = new Date(value)\n const isValid = !isNaN(date.getTime())\n return {\n success: isValid,\n error: isValid ? undefined : 'Invalid date',\n value: isValid ? date : undefined,\n }\n },\n\n minLength: (min: number) => (value: string): ValidationResult => ({\n success: value.length >= min,\n error: value.length < min ? `Must be at least ${min} characters` : undefined,\n value,\n }),\n\n maxLength: (max: number) => (value: string): ValidationResult => ({\n success: value.length <= max,\n error: value.length > max ? `Must be at most ${max} characters` : undefined,\n value,\n }),\n\n length: (len: number) => (value: string): ValidationResult => ({\n success: value.length === len,\n error: value.length !== len ? `Must be exactly ${len} characters` : undefined,\n value,\n }),\n\n regex: (pattern: RegExp | string) => (value: string): ValidationResult => {\n const regex = typeof pattern === 'string' ? new RegExp(pattern) : pattern\n const isValid = regex.test(value)\n return {\n success: isValid,\n error: isValid ? undefined : 'Value does not match pattern',\n value,\n }\n },\n\n minNumber: (min: number) => (value: string): ValidationResult => {\n const num = Number(value)\n const isValid = !isNaN(num) && isFinite(num) && num >= min\n return {\n success: isValid,\n error: isValid ? undefined : `Must be at least ${min}`,\n value: isValid ? num : undefined,\n }\n },\n\n maxNumber: (max: number) => (value: string): ValidationResult => {\n const num = Number(value)\n const isValid = !isNaN(num) && isFinite(num) && num <= max\n return {\n success: isValid,\n error: isValid ? undefined : `Must be at most ${max}`,\n value: isValid ? num : undefined,\n }\n },\n\n enum: (options: string[]) => (value: string): ValidationResult => {\n const isValid = options.includes(value)\n return {\n success: isValid,\n error: isValid ? undefined : `Must be one of: ${options.join(', ')}`,\n value,\n }\n },\n}\n\n","import type { Plugin } from 'vite'\nimport { EnvValidatorSchema, SchemaVariant } from './types'\nimport { validators } from './validators'\n\n\ntype ValidatorFunction = (value: string) => { success: boolean; error?: string; value?: any }\n\nexport type { SchemaVariant, EnvValidatorSchema } from './types'\n\nconst validatorMap: Record<string, ValidatorFunction | ((params?: any) => ValidatorFunction)> = {\n [SchemaVariant.STRING]: validators.string,\n [SchemaVariant.URL]: validators.url,\n [SchemaVariant.EMAIL]: validators.email,\n [SchemaVariant.UUID]: validators.uuid,\n [SchemaVariant.IP]: validators.ip,\n [SchemaVariant.DATETIME]: validators.datetime,\n [SchemaVariant.NUMBER]: validators.number,\n [SchemaVariant.INTEGER]: validators.integer,\n [SchemaVariant.POSITIVE_NUMBER]: validators.positiveNumber,\n [SchemaVariant.NEGATIVE_NUMBER]: validators.negativeNumber,\n [SchemaVariant.BOOLEAN]: validators.boolean,\n [SchemaVariant.DATE]: validators.date,\n [SchemaVariant.MIN_LENGTH]: validators.minLength,\n [SchemaVariant.MAX_LENGTH]: validators.maxLength,\n [SchemaVariant.LENGTH]: validators.length,\n [SchemaVariant.REGEX]: validators.regex,\n [SchemaVariant.MIN_NUMBER]: validators.minNumber,\n [SchemaVariant.MAX_NUMBER]: validators.maxNumber,\n [SchemaVariant.ENUM]: validators.enum,\n}\n\nfunction validateEnv(\n schema: EnvValidatorSchema,\n env: Record<string, any>\n): { success: true } | { success: false; errors: Array<{ path: string; message: string }> } {\n const errors: Array<{ path: string; message: string }> = []\n\n for (const [key, value] of Object.entries(schema)) {\n if (!(key in env) || env[key] === undefined || env[key] === null) {\n errors.push({\n path: key,\n message: 'Variable is required',\n })\n continue\n }\n \n const envValue = String(env[key])\n \n let validator: ValidatorFunction\n \n if (typeof value === 'string') {\n const validatorFn = validatorMap[value]\n if (!validatorFn) {\n throw new Error(`Unknown schema variant: ${value}`)\n }\n if (typeof validatorFn === 'function') {\n if (validatorFn.length === 1) {\n validator = validatorFn as ValidatorFunction\n } else {\n throw new Error(`Invalid validator for ${value}`)\n }\n } else {\n throw new Error(`Invalid validator for ${value}`)\n }\n } else if (typeof value === 'object' && value !== null && 'schema' in value) {\n const schemaVariant = value.schema as SchemaVariant\n const validatorFn = validatorMap[schemaVariant]\n if (!validatorFn) {\n throw new Error(`Unknown schema variant: ${schemaVariant}`)\n }\n validator = (validatorFn as (params?: any) => ValidatorFunction)(value.params)\n } else {\n throw new Error(`Invalid schema value for ${key}`)\n }\n\n const result = validator(envValue)\n \n if (!result.success) {\n errors.push({\n path: key,\n message: result.error || 'Validation failed',\n })\n }\n }\n\n return errors.length === 0 \n ? { success: true as const }\n : { success: false as const, errors }\n}\n\n\n\nexport function envValidatorVite(options: EnvValidatorSchema): Plugin {\n return {\n name: 'env-validator',\n enforce: 'pre',\n\n configResolved(config) {\n const result = validateEnv(options, config.env)\n \n if (!result.success) {\n console.error('Environment variables validation error:')\n\n result.errors.forEach((err) => {\n console.error(` - ${err.path}: ${err.message}`)\n })\n\n console.error('\\nFound environment variables:')\n const foundKeys = Object.keys(config.env)\n if (foundKeys.length > 0) {\n foundKeys.forEach((key) => {\n console.error(` - ${key}`)\n })\n } else {\n console.error(' (no variables found)')\n }\n\n console.error('\\nPlease check your .env file')\n throw new Error('Invalid environment variables')\n }\n\n if (config.command === 'serve') {\n console.log('✓ All environment variables are valid\\n')\n }\n },\n }\n}\n"],"mappings":"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"} |
| import { Plugin } from "vite"; | ||
| //#region src/types.d.ts | ||
| declare enum SchemaVariant { | ||
| STRING = "string", | ||
| URL = "url", | ||
| EMAIL = "email", | ||
| UUID = "uuid", | ||
| IP = "ip", | ||
| DATETIME = "datetime", | ||
| MIN_LENGTH = "minLength", | ||
| MAX_LENGTH = "maxLength", | ||
| LENGTH = "length", | ||
| REGEX = "regex", | ||
| NUMBER = "number", | ||
| INTEGER = "integer", | ||
| POSITIVE_NUMBER = "positiveNumber", | ||
| NEGATIVE_NUMBER = "negativeNumber", | ||
| MIN_NUMBER = "minNumber", | ||
| MAX_NUMBER = "maxNumber", | ||
| BOOLEAN = "boolean", | ||
| DATE = "date", | ||
| ENUM = "enum", | ||
| } | ||
| interface EnvValidatorSchemaValue { | ||
| schema: SchemaVariant; | ||
| params?: string[] | number | boolean | string | RegExp; | ||
| } | ||
| interface EnvValidatorSchema extends Record<string, SchemaVariant | EnvValidatorSchemaValue> {} | ||
| //#endregion | ||
| //#region src/index.d.ts | ||
| declare function envValidatorVite(options: EnvValidatorSchema): Plugin; | ||
| //#endregion | ||
| export { type EnvValidatorSchema, type SchemaVariant, envValidatorVite }; | ||
| //# sourceMappingURL=index.d.cts.map |
| {"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/index.ts"],"sourcesContent":[],"mappings":";;;aAAY,aAAA;;;EAAA,KAAA,GAAA,OAAA;EAsBK,IAAA,GAAA,MAAA;EAKA,EAAA,GAAA,IAAA;EAA0C,QAAA,GAAA,UAAA;EAAgB,UAAA,GAAA,WAAA;EAA/B,UAAA,GAAA,WAAA;EAAM,MAAA,GAAA,QAAA;;;;ECiElC,eAAA,GAAA,gBAA0B;;;;;;;;UDtEzB,uBAAA;UACP;kDACwC;;UAGjC,kBAAA,SAA2B,eAAe,gBAAgB;;;AA3B/D,iBC4FI,gBAAA,CD5FS,OAAA,EC4FiB,kBD5FjB,CAAA,EC4FsC,MD5FtC"} |
+5
-5
| { | ||
| "name": "@vwinterdev/env-validator-vite", | ||
| "version": "1.0.1", | ||
| "version": "1.0.2", | ||
| "description": "Vite plugin for validating environment variables with built-in validators", | ||
| "type": "module", | ||
| "license": "MIT", | ||
@@ -10,3 +9,3 @@ "files": [ | ||
| ], | ||
| "main": "./dist/index.js", | ||
| "main": "./dist/index.cjs", | ||
| "module": "./dist/index.js", | ||
@@ -17,3 +16,4 @@ "types": "./dist/index.d.ts", | ||
| "types": "./dist/index.d.ts", | ||
| "import": "./dist/index.js" | ||
| "import": "./dist/index.js", | ||
| "require": "./dist/index.cjs" | ||
| }, | ||
@@ -29,3 +29,3 @@ "./package.json": "./package.json" | ||
| "peerDependencies": { | ||
| "vite": "^3.1.0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0" | ||
| "vite": "^5.0.0 || ^6.0.0 || ^7.0.0" | ||
| }, | ||
@@ -32,0 +32,0 @@ "devDependencies": { |
Unpublished package
Supply chain riskPackage version was not found on the registry. It may exist on a different registry and need to be configured to pull from that registry.
Found 1 instance in 1 package
Unpublished package
Supply chain riskPackage version was not found on the registry. It may exist on a different registry and need to be configured to pull from that registry.
Found 1 instance in 1 package
59270
81.95%10
66.67%617
89.85%No
NaN