Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@vwinterdev/env-validator-vite

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@vwinterdev/env-validator-vite - npm Package Compare versions

Package was removed
Sorry, it seems this package was removed from the registry
Comparing version
1.0.1
to
1.0.2
+297
dist/index.cjs
//#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": {