arkenv 1.0.0-alpha.2 → 1.0.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors-C_uh86xh.mjs","names":[],"sources":["../src/coercion/morphs.ts","../src/coercion/shared.ts","../src/coercion/environment.ts","../src/utils/redact.ts","../src/utils/errors.ts"],"sourcesContent":["/**\n * Attempt to coerce a value to a number.\n *\n * If the input is already a number, returns it unchanged.\n * If the input is a string that can be parsed as a number, returns the parsed number.\n * Otherwise, returns the original value unchanged.\n *\n * @internal\n * @param s - The value to coerce\n * @returns The coerced number or the original value\n */\nexport const coerceNumber = (s: unknown) => {\n\tif (typeof s === \"number\") return s;\n\tif (typeof s !== \"string\" || !s.trim()) return s;\n\tif (s.trim() === \"NaN\") return Number.NaN;\n\tconst n = Number(s);\n\treturn Number.isNaN(n) ? s : n;\n};\n\n/**\n * Attempt to coerce a value to a boolean.\n *\n * Convert the strings \"true\" and \"false\" to their boolean equivalents.\n * All other values are returned unchanged.\n *\n * @internal\n * @param s - The value to coerce\n * @returns The coerced boolean or the original value\n */\nexport const coerceBoolean = (s: unknown) => {\n\tif (s === \"true\") return true;\n\tif (s === \"false\") return false;\n\treturn s;\n};\n\n/**\n * Attempt to parse a value as JSON.\n *\n * If the input is a string that starts with `{` or `[` and can be parsed as JSON,\n * returns the parsed object or array. Otherwise, returns the original value unchanged.\n *\n * @internal\n * @param s - The value to parse\n * @returns The parsed JSON or the original value\n */\nexport const coerceJson = (s: unknown) => {\n\tif (typeof s !== \"string\") return s;\n\tconst trimmed = s.trim();\n\tif (trimmed[0] !== \"{\" && trimmed[0] !== \"[\") return s;\n\ttry {\n\t\treturn JSON.parse(trimmed);\n\t} catch {\n\t\treturn s;\n\t}\n};\n\n/**\n * Attempt to coerce a value to a Date.\n *\n * If the input is already a Date, returns it unchanged.\n * If the input is a valid date string, returns a Date object.\n * Otherwise, returns the original value unchanged.\n *\n * @internal\n * @param s - The value to coerce\n * @returns The coerced Date or the original value\n */\nexport const coerceDate = (s: unknown) => {\n\tif (s instanceof Date) return s;\n\tif (typeof s !== \"string\" || !s.trim()) return s;\n\tconst d = new Date(s);\n\treturn Number.isNaN(d.getTime()) ? s : d;\n};\n","import type { Dict } from \"@repo/types\";\nimport { coerceBoolean, coerceDate, coerceJson, coerceNumber } from \"./morphs\";\n\n/**\n * Remove keys with empty string values from an environment record.\n *\n * When a key is set to `\"\"` (e.g. `PORT=` in a `.env` file), deleting it\n * allows the validator to treat it as missing so that defaults apply.\n *\n * @param env The environment variables record\n * @returns A new record with empty string keys removed\n */\nexport const stripEmptyStrings = (env: Dict<string>): Dict<string> => {\n\tconst result: Dict<string> = {};\n\tfor (const key in env) {\n\t\tconst value = env[key];\n\t\tif (value !== \"\") {\n\t\t\tresult[key] = value;\n\t\t}\n\t}\n\treturn result;\n};\n\n/**\n * A marker used in the coercion path to indicate that the target\n * is the *elements* of an array, rather than the array property itself.\n */\nexport const ARRAY_ITEM_MARKER = \"*\";\n\n/**\n * @internal\n * Information about a path in the schema that requires coercion.\n */\nexport type CoercionTarget = {\n\tpath: string[];\n\ttype: \"primitive\" | \"array\" | \"object\" | \"date\";\n};\n\n/**\n * Options for coercion behavior.\n */\nexport type CoerceOptions = {\n\t/**\n\t * format to use for array parsing\n\t * @default \"comma\"\n\t */\n\tarrayFormat?: \"comma\" | \"json\";\n};\n\n/**\n * Internal representation of a JSON Schema node for coercion traversal.\n */\ntype JsonSchemaNode = {\n\ttype?: string | string[];\n\tconst?: unknown;\n\tenum?: unknown[];\n\tformat?: string;\n\tproperties?: Record<string, unknown>;\n\titems?: unknown | unknown[];\n\tanyOf?: unknown[];\n\tallOf?: unknown[];\n\toneOf?: unknown[];\n};\n\n/**\n * Find all paths in a JSON Schema that require coercion.\n *\n * Prioritize \"number\", \"integer\", \"boolean\", \"array\", \"object\", and \"date\" types.\n *\n * @param node The JSON Schema node to traverse\n * @param path The current path segments in the schema tree\n * @returns An array of coercion targets containing their path and type\n */\nexport const findCoercionPaths = (\n\tnode: unknown,\n\tpath: string[] = [],\n): CoercionTarget[] => {\n\tconst results: CoercionTarget[] = [];\n\tif (!node || typeof node !== \"object\" || Array.isArray(node)) return results;\n\n\tconst n = node as JsonSchemaNode;\n\n\tif (\"const\" in n) {\n\t\tconst t = typeof n.const;\n\t\tif (t === \"number\" || t === \"boolean\") {\n\t\t\tresults.push({ path: [...path], type: \"primitive\" });\n\t\t}\n\t}\n\n\tif (\"enum\" in n && Array.isArray(n.enum)) {\n\t\tif (n.enum.some((v) => typeof v === \"number\" || typeof v === \"boolean\")) {\n\t\t\tresults.push({ path: [...path], type: \"primitive\" });\n\t\t}\n\t}\n\n\tconst type = n.type;\n\tif (type === \"number\" || type === \"integer\" || type === \"boolean\") {\n\t\tresults.push({ path: [...path], type: \"primitive\" });\n\t} else if (\n\t\ttype === \"string\" &&\n\t\t\"format\" in n &&\n\t\t(n.format === \"date-time\" || n.format === \"date\")\n\t) {\n\t\tresults.push({ path: [...path], type: \"date\" });\n\t} else if (type === \"object\") {\n\t\tif (n.properties && Object.keys(n.properties).length > 0) {\n\t\t\tresults.push({ path: [...path], type: \"object\" });\n\t\t\tfor (const key in n.properties) {\n\t\t\t\tresults.push(...findCoercionPaths(n.properties[key], [...path, key]));\n\t\t\t}\n\t\t}\n\t} else if (type === \"array\") {\n\t\tresults.push({ path: [...path], type: \"array\" });\n\t\tif (n.items) {\n\t\t\tif (Array.isArray(n.items)) {\n\t\t\t\tn.items.forEach((item, index) => {\n\t\t\t\t\tresults.push(...findCoercionPaths(item, [...path, String(index)]));\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tresults.push(\n\t\t\t\t\t...findCoercionPaths(n.items, [...path, ARRAY_ITEM_MARKER]),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (const comb of [\"anyOf\", \"allOf\", \"oneOf\"] as const) {\n\t\tif (n[comb] && Array.isArray(n[comb])) {\n\t\t\tfor (const branch of n[comb]) {\n\t\t\t\tresults.push(...findCoercionPaths(branch, path));\n\t\t\t}\n\t\t}\n\t}\n\n\tconst seen = new Set<string>();\n\treturn results.filter((t) => {\n\t\tconst key = t.path.join(\"/\") + \":\" + t.type;\n\t\treturn seen.has(key) ? false : seen.add(key);\n\t});\n};\n\n/**\n * Apply coercion to a data object based on identified paths.\n *\n * @param data The input environment data object to coerce\n * @param targets The coercion targets mapping paths to types\n * @param options The coercion options, including array parsing format\n * @returns The coerced data object\n */\nexport const applyCoercion = <T = unknown>(\n\tdata: T,\n\ttargets: CoercionTarget[],\n\toptions: CoerceOptions = {},\n): T => {\n\tconst { arrayFormat = \"comma\" } = options;\n\n\tconst splitString = (val: string) => {\n\t\tif (arrayFormat === \"json\") {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(val);\n\t\t\t} catch {\n\t\t\t\treturn val;\n\t\t\t}\n\t\t}\n\t\treturn val.trim() ? val.split(\",\").map((s) => s.trim()) : [];\n\t};\n\n\tconst coerceValue = (val: unknown, type: CoercionTarget[\"type\"]): unknown => {\n\t\tif (type === \"array\" && typeof val === \"string\") {\n\t\t\treturn splitString(val);\n\t\t}\n\t\tif (type === \"object\" && typeof val === \"string\") {\n\t\t\treturn coerceJson(val);\n\t\t}\n\t\tif (type === \"date\" && typeof val === \"string\") {\n\t\t\treturn coerceDate(val);\n\t\t}\n\t\tif (type === \"primitive\") {\n\t\t\tif (Array.isArray(val)) {\n\t\t\t\treturn val.map((item) => {\n\t\t\t\t\tif (typeof item !== \"string\") return item;\n\t\t\t\t\tconst n = coerceNumber(item);\n\t\t\t\t\treturn typeof n === \"number\" ? n : coerceBoolean(item);\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (typeof val !== \"string\") return val;\n\t\t\tconst n = coerceNumber(val);\n\t\t\treturn typeof n === \"number\" ? n : coerceBoolean(val);\n\t\t}\n\t\treturn val;\n\t};\n\n\tif (typeof data !== \"object\" || data === null) {\n\t\tconst root = targets.find((t) => t.path.length === 0);\n\t\tif (root) {\n\t\t\treturn coerceValue(data, root.type) as T;\n\t\t}\n\t\treturn data;\n\t}\n\n\tconst sorted = [...targets].sort((a, b) => a.path.length - b.path.length);\n\n\tconst updateAtPath = (\n\t\tcurrent: any,\n\t\tpath: string[],\n\t\tfn: (val: any) => any,\n\t): any => {\n\t\tif (path.length === 0) {\n\t\t\treturn fn(current);\n\t\t}\n\n\t\tconst [key, ...rest] = path;\n\n\t\tif (key === ARRAY_ITEM_MARKER) {\n\t\t\tif (Array.isArray(current)) {\n\t\t\t\tlet changed = false;\n\t\t\t\tconst nextArr = current.map((item) => {\n\t\t\t\t\tconst nextVal = updateAtPath(item, rest, fn);\n\t\t\t\t\tif (nextVal !== item) {\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t}\n\t\t\t\t\treturn nextVal;\n\t\t\t\t});\n\t\t\t\treturn changed ? nextArr : current;\n\t\t\t}\n\t\t\treturn current;\n\t\t}\n\n\t\tif (!current || typeof current !== \"object\") {\n\t\t\treturn current;\n\t\t}\n\n\t\tif (Array.isArray(current)) {\n\t\t\tconst index = Number(key);\n\t\t\tif (!Number.isNaN(index) && index >= 0 && index < current.length) {\n\t\t\t\tconst nextVal = updateAtPath(current[index], rest, fn);\n\t\t\t\tif (nextVal !== current[index]) {\n\t\t\t\t\tconst copy = [...current];\n\t\t\t\t\tcopy[index] = nextVal;\n\t\t\t\t\treturn copy;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn current;\n\t\t}\n\n\t\tif (Object.hasOwn(current, key)) {\n\t\t\tconst nextVal = updateAtPath(current[key], rest, fn);\n\t\t\tif (nextVal !== current[key]) {\n\t\t\t\treturn {\n\t\t\t\t\t...current,\n\t\t\t\t\t[key]: nextVal,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\treturn current;\n\t};\n\n\tlet result = data;\n\tfor (const t of sorted) {\n\t\tif (t.path.length > 0) {\n\t\t\tresult = updateAtPath(result, t.path, (val) => coerceValue(val, t.type));\n\t\t}\n\t}\n\treturn result;\n};\n","import type { Dict } from \"@repo/types\";\nimport { applyCoercion, findCoercionPaths, stripEmptyStrings } from \"./shared\";\n\n/**\n * Prepare an environment record by optionally stripping empty strings and applying coercion.\n *\n * @param env The raw environment variables\n * @param emptyAsUndefined Whether to strip empty string values before processing\n * @param arrayFormat The format to use for array coercion\n * @param getSchema Optional callback that returns a JSON Schema and whether it exists,\n * used to determine coercion targets. When omitted, no coercion is performed.\n * @returns The processed environment, the coerced environment, and any missing schema keys\n */\nexport function coerceEnvironment(\n\tenv: Dict<string>,\n\temptyAsUndefined: boolean,\n\tarrayFormat: \"comma\" | \"json\",\n\tgetSchema?: () => {\n\t\tschema: unknown;\n\t\thasSchema: boolean;\n\t\tmissingKeys?: string[];\n\t},\n): {\n\tprocessedEnv: Dict<string>;\n\tcoercedEnv: Record<string, unknown>;\n\tmissingKeys: string[];\n} {\n\tconst processedEnv = emptyAsUndefined ? stripEmptyStrings(env) : env;\n\tlet coercedEnv: Record<string, unknown> = { ...processedEnv };\n\tconst missingKeys: string[] = [];\n\n\tif (getSchema) {\n\t\tconst result = getSchema();\n\t\tmissingKeys.push(...(result.missingKeys || []));\n\t\tif (result.hasSchema) {\n\t\t\tcoercedEnv = applyCoercion(coercedEnv, findCoercionPaths(result.schema), {\n\t\t\t\tarrayFormat,\n\t\t\t}) as Record<string, unknown>;\n\t\t}\n\t}\n\n\treturn { processedEnv, coercedEnv, missingKeys };\n}\n","/**\n * Regex pattern matching sensitive environment variable names.\n *\n * Matches keywords commonly associated with secrets (e.g. secret, key, token,\n * password, pass, auth, jwt, cert, credential, db_url). Excludes public keys\n * via the `shouldRedact` helper.\n *\n * @see {@link shouldRedact}\n */\nconst SENSITIVE_PATTERN =\n\t/secret|(_|^)key(_|$)|token|(_|^)password(_|$)|(_|^)pass(_|$)|(_|^)auth(_|$)|jwt|cert|credential|database_url|db_url/i;\n\n/**\n * Check if debug secrets mode is enabled.\n *\n * Debug secrets mode can be enabled programmatically via the `debugSecrets` config option,\n * or globally by setting the `ARKENV_DEBUG_SECRETS` environment variable to `\"true\"` or `\"1\"`.\n *\n * @param configSecrets Programmatic override option for debugging secrets\n * @returns A boolean indicating if debug secrets mode is active\n */\nexport function isDebugSecrets(configSecrets?: boolean): boolean {\n\tif (configSecrets !== undefined) return configSecrets;\n\tif (typeof process === \"undefined\") return false;\n\tconst val = process.env.ARKENV_DEBUG_SECRETS;\n\treturn val === \"true\" || val === \"1\";\n}\n\n/**\n * Determine if an environment variable path matches sensitive keyword patterns.\n *\n * By default, environment variables that contain sensitive keywords (e.g. 'secret', 'key',\n * 'token', 'password', 'auth', 'jwt', 'cert', 'credential', 'db_url') are flagged for redaction,\n * unless they are explicitly marked as public (e.g., matching 'public').\n *\n * Redaction prevents sensitive values from being logged or printed to the terminal\n * when environment validation fails.\n *\n * @param path The environment variable name/path under validation\n * @returns A boolean indicating if the path is sensitive and should be redacted\n */\nexport function shouldRedact(path: string): boolean {\n\treturn SENSITIVE_PATTERN.test(path) && !/public/i.test(path);\n}\n\n/**\n * Safely format and serialize an environment value for error reporting.\n *\n * Serializes primitive values and objects while redacting sensitive values if debugSecrets is disabled.\n * Limits object and array serialization to the first 3 keys/elements to prevent excessively large log outputs.\n *\n * @param val The raw received environment variable value\n * @param path The variable name/path under validation\n * @param options Configuration options, including debugSecrets override\n * @returns The formatted string representation of the value\n */\nexport function safeStringify(\n\tval: unknown,\n\tpath: string,\n\toptions?: { debugSecrets?: boolean },\n): string {\n\tconst debug = isDebugSecrets(options?.debugSecrets);\n\n\tif (val === undefined) return \"missing\";\n\tif (val === null) return \"null\";\n\n\tif (!debug && shouldRedact(path)) {\n\t\treturn \"[REDACTED]\";\n\t}\n\n\tif (typeof val === \"string\") return JSON.stringify(val);\n\tif (\n\t\ttypeof val === \"number\" ||\n\t\ttypeof val === \"boolean\" ||\n\t\ttypeof val === \"bigint\"\n\t) {\n\t\treturn String(val);\n\t}\n\tif (typeof val === \"symbol\") return val.toString();\n\tif (typeof val === \"function\") return \"[Function]\";\n\n\tif (val && typeof val === \"object\") {\n\t\ttry {\n\t\t\tif (Array.isArray(val)) {\n\t\t\t\tconst res = val.slice(0, 3).map((x) => safeStringify(x, path, options));\n\t\t\t\tif (val.length > 3) res.push(`...(+${val.length - 3} more)`);\n\t\t\t\treturn `[${res.join(\", \")}]`;\n\t\t\t}\n\t\t\tconst keys = Object.keys(val);\n\t\t\tconst res = keys\n\t\t\t\t.slice(0, 3)\n\t\t\t\t.map((k) => `${k}: ${safeStringify((val as any)[k], path, options)}`);\n\t\t\tif (keys.length > 3) res.push(`...(+${keys.length - 3} more)`);\n\t\t\treturn `{ ${res.join(\", \")} }`;\n\t\t} catch {\n\t\t\treturn Object.prototype.toString.call(val);\n\t\t}\n\t}\n\n\treturn String(val);\n}\n","import type { ArkError } from \"arktype\";\nimport {\n\tArkEnvError,\n\ttype EnvIssue,\n\ttype EnvIssueCode,\n\ttype EnvIssueMeta,\n\ttype SafeArkEnvResult,\n} from \"@/core\";\nimport { isDebugSecrets, safeStringify, shouldRedact } from \"./redact\";\nimport { styleText } from \"./style-text\";\n\n/**\n * Mapping of ArkType validation error codes to normalized EnvIssueCode classification codes.\n *\n * These codes are runtime strings produced by the ArkType validator and are not\n * exported as a public type or constant by the ArkType library. The mapping is\n * maintained manually based on ArkType's internal error reporting behavior.\n *\n * @see https://arktype.io/docs/intro\n * @internal\n */\nconst ARKTYPE_CODE_MAP = {\n\trequired: \"MISSING_VARIABLE\",\n\tpattern: \"PATTERN_MISMATCH\",\n\tmin: \"VALUE_TOO_SMALL\",\n\tminLength: \"VALUE_TOO_SMALL\",\n\tmax: \"VALUE_TOO_LARGE\",\n\tmaxLength: \"VALUE_TOO_LARGE\",\n\tdivisor: \"INVALID_TYPE\",\n\tintersection: \"INVALID_TYPE\",\n\tunion: \"INVALID_TYPE\",\n\tunit: \"INVALID_TYPE\",\n\tproto: \"INVALID_TYPE\",\n\tdomain: \"INVALID_TYPE\",\n\texactLength: \"INVALID_FORMAT\",\n\tbefore: \"INVALID_FORMAT\",\n\tafter: \"INVALID_FORMAT\",\n\tpredicate: \"CUSTOM\",\n} satisfies Record<ArkError[\"code\"], EnvIssueCode>;\n\n/**\n * Map an ArkType validation error code to a normalized EnvIssueCode.\n *\n * @param engineCode The raw code returned by the ArkType engine\n * @returns The normalized EnvIssueCode classification\n * @internal\n */\nexport function mapArkTypeCode(engineCode: string): EnvIssueCode {\n\treturn engineCode in ARKTYPE_CODE_MAP\n\t\t? ARKTYPE_CODE_MAP[engineCode as keyof typeof ARKTYPE_CODE_MAP]\n\t\t: \"INVALID_FORMAT\";\n}\n\n/**\n * Extract validation boundary metadata from an ArkType error object.\n *\n * @param error The raw error object from ArkType\n * @returns An object containing normalized min and/or max values if present\n * @internal\n */\nexport function getArkTypeMeta(error: any): { min?: number; max?: number } {\n\tconst min = error.min ?? error.rule;\n\tconst max = error.max;\n\treturn {\n\t\t...(typeof min === \"number\" ? { min } : {}),\n\t\t...(typeof max === \"number\" ? { max } : {}),\n\t};\n}\n\n/**\n * Mapping of Standard Schema validation issue codes to normalized EnvIssueCode classification codes.\n *\n * This serves as an internal translation map specifically for Standard Schema validators\n * (such as Zod or Valibot) to map their engine-specific error keys to our unified union type.\n * It is not a duplicate Source of Truth for the allowed issue codes themselves, which are\n * defined solely by the `EnvIssueCode` type in `core.ts`.\n *\n * @internal\n */\nconst STANDARD_CODE_MAP = {\n\ttoo_small: \"VALUE_TOO_SMALL\",\n\ttoo_big: \"VALUE_TOO_LARGE\",\n\tinvalid_string: \"INVALID_FORMAT\",\n\tinvalid_date: \"INVALID_FORMAT\",\n\tcustom: \"INVALID_FORMAT\",\n} satisfies Record<string, EnvIssueCode>;\n\n/**\n * Map a Standard Schema validation issue to a normalized EnvIssueCode.\n *\n * @param engineCode The raw issue code from the Standard Schema engine\n * @param message The error message associated with the issue\n * @param receivedVal The raw value received by the validator\n * @returns The normalized EnvIssueCode classification\n * @internal\n */\nexport function mapStandardCode(\n\tengineCode: string,\n\tmessage: string,\n\treceivedVal: unknown,\n): EnvIssueCode {\n\tconst msg = message.toLowerCase();\n\tif (\n\t\t(engineCode === \"invalid_type\" &&\n\t\t\t(receivedVal === undefined || receivedVal === \"undefined\")) ||\n\t\tmsg === \"required\"\n\t) {\n\t\treturn \"MISSING_VARIABLE\";\n\t}\n\tif (engineCode in STANDARD_CODE_MAP) {\n\t\treturn STANDARD_CODE_MAP[engineCode as keyof typeof STANDARD_CODE_MAP];\n\t}\n\tif (/regex|pattern|match/.test(msg)) {\n\t\treturn \"PATTERN_MISMATCH\";\n\t}\n\treturn \"INVALID_TYPE\";\n}\n\n/**\n * Extract validation boundary metadata from a Standard Schema issue.\n *\n * @param issue The raw issue from Standard Schema\n * @returns An object containing normalized min and/or max values if present\n * @internal\n */\nexport function getStandardMeta(issue: any): { min?: number; max?: number } {\n\tconst min = issue.minimum ?? issue.min;\n\tconst max = issue.maximum ?? issue.max;\n\treturn {\n\t\t...(typeof min === \"number\" ? { min } : {}),\n\t\t...(typeof max === \"number\" ? { max } : {}),\n\t};\n}\n\n/**\n * Execute a parser function and return a SafeArkEnvResult.\n *\n * @param parseFn The function that parses the environment variables and might throw an ArkEnvError\n * @returns A SafeArkEnvResult containing either the parsed data or the caught ArkEnvError\n * @internal\n */\nexport function safeExecute<T>(parseFn: () => T): SafeArkEnvResult<T> {\n\ttry {\n\t\treturn { success: true, data: parseFn() };\n\t} catch (error) {\n\t\tif (error instanceof ArkEnvError) {\n\t\t\treturn { success: false, issues: error.issues };\n\t\t}\n\t\tthrow error;\n\t}\n}\n\n/**\n * Build a normalized {@link EnvIssue}.\n *\n * @param path The dot-separated property path/name of the environment variable\n * @param message The descriptive, user-friendly error message\n * @param code The normalized classification code for the issue\n * @param meta Additional validation metadata and engine codes\n * @param expected The expected type or value shape description\n * @param received The raw value received (redacted in string formatting if sensitive)\n * @returns A fully populated EnvIssue\n * @internal\n */\nexport function buildEnvIssue(\n\tpath: string,\n\tmessage: string,\n\tcode: EnvIssueCode,\n\tmeta?: EnvIssueMeta,\n\texpected?: string,\n\treceived?: unknown,\n): EnvIssue {\n\tconst issue: EnvIssue = { path, message, code, meta: meta ?? {} };\n\tif (expected) issue.expected = expected;\n\tif (received !== undefined) issue.received = received;\n\treturn issue;\n}\n\n/**\n * Format a Standard Schema validation issue message, appending a `(was …)` suffix\n * and redacting sensitive values when appropriate.\n *\n * @param baseMessage The raw message from the Standard Schema validator\n * @param code The normalized issue code\n * @param expected The expected type description, if any\n * @param receivedVal The raw value received by the validator\n * @param path The environment variable name/path under validation\n * @param config Optional config containing the debugSecrets override\n * @returns The formatted message string\n * @internal\n */\nexport function formatStandardIssueMessage(\n\tbaseMessage: string,\n\tcode: EnvIssueCode,\n\texpected: string | undefined,\n\treceivedVal: unknown,\n\tpath: string,\n\tconfig?: { debugSecrets?: boolean },\n): string {\n\tif (code === \"MISSING_VARIABLE\") {\n\t\treturn expected ? `must be ${expected} (was missing)` : \"is required\";\n\t}\n\n\tif (baseMessage.includes(\"(was \")) return baseMessage;\n\n\tconst debug = isDebugSecrets(config?.debugSecrets);\n\tconst displayVal =\n\t\t!debug && shouldRedact(path)\n\t\t\t? \"[REDACTED]\"\n\t\t\t: safeStringify(receivedVal, path, config);\n\tconst suffix = `(was ${styleText(\"cyan\", displayVal)})`;\n\n\treturn expected && !baseMessage.includes(\"Expected\")\n\t\t? `must be ${expected} ${suffix}`\n\t\t: `${baseMessage} ${suffix}`;\n}\n\n/**\n * Redact the value inside an existing `(was <value>)` substring within a message.\n *\n * ArkType already embeds `(was …)` in its error messages; this helper swaps the\n * raw value for `[REDACTED]` when the path is sensitive and debug mode is off,\n * and styles the result in cyan.\n *\n * @param message The message containing `(was <value>)`\n * @param path The environment variable name/path under validation\n * @param debugSecrets Optional override for debug secrets mode\n * @returns The message with redacted/styled `(was …)` value\n * @internal\n */\nexport function redactMessageWasValue(\n\tmessage: string,\n\tpath: string,\n\tdebugSecrets?: boolean,\n): string {\n\tconst valueMatch = message.match(/\\(was (.*)\\)/);\n\tif (!valueMatch?.[1]) return message;\n\n\tconst value = valueMatch[1];\n\tconst debug = isDebugSecrets(debugSecrets);\n\tconst displayedValue = !debug && shouldRedact(path) ? \"[REDACTED]\" : value;\n\n\tif (displayedValue.includes(\"\\x1b[\")) return message;\n\n\treturn message.replace(\n\t\t`(was ${value})`,\n\t\t`(was ${styleText(\"cyan\", displayedValue)})`,\n\t);\n}\n"],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- const e=require(`./core-CA13n2Iu.cjs`),t=e=>{if(typeof e==`number`||typeof e!=`string`||!e.trim())return e;if(e.trim()===`NaN`)return NaN;let t=Number(e);return Number.isNaN(t)?e:t},n=e=>e===`true`?!0:e===`false`?!1:e,r=e=>{if(typeof e!=`string`)return e;let t=e.trim();if(t[0]!==`{`&&t[0]!==`[`)return e;try{return JSON.parse(t)}catch{return e}},i=e=>{if(e instanceof Date||typeof e!=`string`||!e.trim())return e;let t=new Date(e);return Number.isNaN(t.getTime())?e:t},a=e=>{let t={};for(let n in e){let r=e[n];r!==``&&(t[n]=r)}return t},o=(e,t=[])=>{let n=[];if(!e||typeof e!=`object`||Array.isArray(e))return n;let r=e;if(`const`in r){let e=typeof r.const;(e===`number`||e===`boolean`)&&n.push({path:[...t],type:`primitive`})}`enum`in r&&Array.isArray(r.enum)&&r.enum.some(e=>typeof e==`number`||typeof e==`boolean`)&&n.push({path:[...t],type:`primitive`});let i=r.type;if(i===`number`||i===`integer`||i===`boolean`)n.push({path:[...t],type:`primitive`});else if(i===`string`&&`format`in r&&(r.format===`date-time`||r.format===`date`))n.push({path:[...t],type:`date`});else if(i===`object`){if(r.properties&&Object.keys(r.properties).length>0){n.push({path:[...t],type:`object`});for(let e in r.properties)n.push(...o(r.properties[e],[...t,e]))}}else i===`array`&&(n.push({path:[...t],type:`array`}),r.items&&(Array.isArray(r.items)?r.items.forEach((e,r)=>{n.push(...o(e,[...t,String(r)]))}):n.push(...o(r.items,[...t,`*`]))));for(let e of[`anyOf`,`allOf`,`oneOf`])if(r[e]&&Array.isArray(r[e]))for(let i of r[e])n.push(...o(i,t));let a=new Set;return n.filter(e=>{let t=e.path.join(`/`)+`:`+e.type;return a.has(t)?!1:a.add(t)})},s=(e,a,o={})=>{let{arrayFormat:s=`comma`}=o,c=e=>{if(s===`json`)try{return JSON.parse(e)}catch{return e}return e.trim()?e.split(`,`).map(e=>e.trim()):[]},l=(e,a)=>{if(a===`array`&&typeof e==`string`)return c(e);if(a===`object`&&typeof e==`string`)return r(e);if(a===`date`&&typeof e==`string`)return i(e);if(a===`primitive`){if(Array.isArray(e))return e.map(e=>{if(typeof e!=`string`)return e;let r=t(e);return typeof r==`number`?r:n(e)});if(typeof e!=`string`)return e;let r=t(e);return typeof r==`number`?r:n(e)}return e};if(typeof e!=`object`||!e){let t=a.find(e=>e.path.length===0);return t?l(e,t.type):e}let u=[...a].sort((e,t)=>e.path.length-t.path.length),d=(e,t,n)=>{if(t.length===0)return n(e);let[r,...i]=t;if(r===`*`){if(Array.isArray(e)){let t=!1,r=e.map(e=>{let r=d(e,i,n);return r!==e&&(t=!0),r});return t?r:e}return e}if(!e||typeof e!=`object`)return e;if(Array.isArray(e)){let t=Number(r);if(!Number.isNaN(t)&&t>=0&&t<e.length){let r=d(e[t],i,n);if(r!==e[t]){let n=[...e];return n[t]=r,n}}return e}if(Object.hasOwn(e,r)){let t=d(e[r],i,n);if(t!==e[r])return{...e,[r]:t}}return e},f=e;for(let e of u)e.path.length>0&&(f=d(f,e.path,t=>l(t,e.type)));return f};function c(e,t,n,r){let i=t?a(e):e,c={...i},l=[];if(r){let e=r();l.push(...e.missingKeys||[]),e.hasSchema&&(c=s(c,o(e.schema),{arrayFormat:n}))}return{processedEnv:i,coercedEnv:c,missingKeys:l}}const l=/secret|(_|^)key(_|$)|token|(_|^)password(_|$)|(_|^)pass(_|$)|(_|^)auth(_|$)|jwt|cert|credential|database_url|db_url/i;function u(e){if(e!==void 0)return e;if(typeof process>`u`)return!1;let t=process.env.ARKENV_DEBUG_SECRETS;return t===`true`||t===`1`}function d(e){return l.test(e)&&!/public/i.test(e)}function f(e,t,n){let r=u(n?.debugSecrets);if(e===void 0)return`missing`;if(e===null)return`null`;if(!r&&d(t))return`[REDACTED]`;if(typeof e==`string`)return JSON.stringify(e);if(typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`)return String(e);if(typeof e==`symbol`)return e.toString();if(typeof e==`function`)return`[Function]`;if(e&&typeof e==`object`)try{if(Array.isArray(e)){let r=e.slice(0,3).map(e=>f(e,t,n));return e.length>3&&r.push(`...(+${e.length-3} more)`),`[${r.join(`, `)}]`}let r=Object.keys(e),i=r.slice(0,3).map(r=>`${r}: ${f(e[r],t,n)}`);return r.length>3&&i.push(`...(+${r.length-3} more)`),`{ ${i.join(`, `)} }`}catch{return Object.prototype.toString.call(e)}return String(e)}const p={required:`MISSING_VARIABLE`,pattern:`PATTERN_MISMATCH`,min:`VALUE_TOO_SMALL`,minLength:`VALUE_TOO_SMALL`,max:`VALUE_TOO_LARGE`,maxLength:`VALUE_TOO_LARGE`,divisor:`INVALID_TYPE`,intersection:`INVALID_TYPE`,union:`INVALID_TYPE`,unit:`INVALID_TYPE`,proto:`INVALID_TYPE`,domain:`INVALID_TYPE`,exactLength:`INVALID_FORMAT`,before:`INVALID_FORMAT`,after:`INVALID_FORMAT`,predicate:`CUSTOM`};function m(e){return e in p?p[e]:`INVALID_FORMAT`}function h(e){let t=e.min??e.rule,n=e.max;return{...typeof t==`number`?{min:t}:{},...typeof n==`number`?{max:n}:{}}}const g={too_small:`VALUE_TOO_SMALL`,too_big:`VALUE_TOO_LARGE`,invalid_string:`INVALID_FORMAT`,invalid_date:`INVALID_FORMAT`,custom:`INVALID_FORMAT`};function _(e,t,n){let r=t.toLowerCase();return e===`invalid_type`&&(n===void 0||n===`undefined`)||r===`required`?`MISSING_VARIABLE`:e in g?g[e]:/regex|pattern|match/.test(r)?`PATTERN_MISMATCH`:`INVALID_TYPE`}function v(e){let t=e.minimum??e.min,n=e.maximum??e.max;return{...typeof t==`number`?{min:t}:{},...typeof n==`number`?{max:n}:{}}}function y(t){try{return{success:!0,data:t()}}catch(t){if(t instanceof e.t)return{success:!1,issues:t.issues};throw t}}function b(e,t,n,r,i,a){let o={path:e,message:t,code:n,meta:r??{}};return i&&(o.expected=i),a!==void 0&&(o.received=a),o}function x(t,n,r,i,a,o){if(n===`MISSING_VARIABLE`)return r?`must be ${r} (was missing)`:`is required`;if(t.includes(`(was `))return t;let s=`(was ${e.r(`cyan`,!u(o?.debugSecrets)&&d(a)?`[REDACTED]`:f(i,a,o))})`;return r&&!t.includes(`Expected`)?`must be ${r} ${s}`:`${t} ${s}`}function S(t,n,r){let i=t.match(/\(was (.*)\)/);if(!i?.[1])return t;let a=i[1],o=!u(r)&&d(n)?`[REDACTED]`:a;return o.includes(`\x1B[`)?t:t.replace(`(was ${a})`,`(was ${e.r(`cyan`,o)})`)}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return b}});
2
-
3
- // CJS Interop Shim
4
- if (module.exports && module.exports.default) {
5
- Object.assign(module.exports.default, module.exports);
6
- module.exports = module.exports.default;
7
- }
8
-
@@ -1,210 +0,0 @@
1
- import * as _$arktype_internal_keywords_string_ts0 from "arktype/internal/keywords/string.ts";
2
- import * as _$arktype_internal_attributes_ts0 from "arktype/internal/attributes.ts";
3
- import * as _$arktype from "arktype";
4
- import { Type, type } from "arktype";
5
-
6
- //#region ../internal/scope/dist/index.d.ts
7
- //#region src/root.d.ts
8
- /**
9
- * The root scope for the ArkEnv library,
10
- * containing extensions to the ArkType scopes with ArkEnv-specific types
11
- * like `string.host` and `number.port`.
12
- */
13
- declare const $: _$arktype.Scope<{
14
- string: _$arktype.Submodule<{
15
- trim: _$arktype.Submodule<_$arktype_internal_keywords_string_ts0.trim.$ & {
16
- " arkInferred": (In: string) => _$arktype_internal_attributes_ts0.To<string>;
17
- }>;
18
- normalize: _$arktype.Submodule<_$arktype_internal_keywords_string_ts0.normalize.$ & {
19
- " arkInferred": (In: string) => _$arktype_internal_attributes_ts0.To<string>;
20
- }>;
21
- root: string;
22
- alpha: string;
23
- alphanumeric: string;
24
- hex: string;
25
- base64: _$arktype.Submodule<{
26
- root: string;
27
- url: string;
28
- } & {
29
- " arkInferred": string;
30
- }>;
31
- capitalize: _$arktype.Submodule<_$arktype_internal_keywords_string_ts0.capitalize.$ & {
32
- " arkInferred": (In: string) => _$arktype_internal_attributes_ts0.To<string>;
33
- }>;
34
- creditCard: string;
35
- date: _$arktype.Submodule<_$arktype_internal_keywords_string_ts0.stringDate.$ & {
36
- " arkInferred": string;
37
- }>;
38
- digits: string;
39
- email: string;
40
- integer: _$arktype.Submodule<_$arktype_internal_keywords_string_ts0.stringInteger.$ & {
41
- " arkInferred": string;
42
- }>;
43
- ip: _$arktype.Submodule<_$arktype_internal_keywords_string_ts0.ip.$ & {
44
- " arkInferred": string;
45
- }>;
46
- json: _$arktype.Submodule<_$arktype_internal_keywords_string_ts0.stringJson.$ & {
47
- " arkInferred": string;
48
- }>;
49
- lower: _$arktype.Submodule<_$arktype_internal_keywords_string_ts0.lower.$ & {
50
- " arkInferred": (In: string) => _$arktype_internal_attributes_ts0.To<string>;
51
- }>;
52
- numeric: _$arktype.Submodule<_$arktype_internal_keywords_string_ts0.stringNumeric.$ & {
53
- " arkInferred": string;
54
- }>;
55
- regex: string;
56
- semver: string;
57
- upper: _$arktype.Submodule<{
58
- root: (In: string) => _$arktype_internal_attributes_ts0.To<string>;
59
- preformatted: string;
60
- } & {
61
- " arkInferred": (In: string) => _$arktype_internal_attributes_ts0.To<string>;
62
- }>;
63
- url: _$arktype.Submodule<_$arktype_internal_keywords_string_ts0.url.$ & {
64
- " arkInferred": string;
65
- }>;
66
- uuid: _$arktype.Submodule<_$arktype_internal_keywords_string_ts0.uuid.$ & {
67
- " arkInferred": string;
68
- }>;
69
- " arkInferred": string;
70
- host: string;
71
- }>;
72
- number: _$arktype.Submodule<{
73
- NaN: number;
74
- Infinity: number;
75
- root: number;
76
- integer: number;
77
- " arkInferred": number;
78
- epoch: number;
79
- safe: number;
80
- NegativeInfinity: number;
81
- port: number;
82
- }>;
83
- }>;
84
- type $ = (typeof $)["t"]; //#endregion
85
- //#endregion
86
- //#region ../internal/types/dist/helpers.d.ts
87
- type Dict<T> = Record<string, T | undefined>;
88
- //#endregion
89
- //#region ../internal/types/dist/standard-schema.d.ts
90
- /**
91
- * @see https://github.com/standard-schema/standard-schema/tree/3130ce43fdd848d9ab49dbb0458d04f18459961c/packages/spec
92
- *
93
- * Copied from standard-schema (MIT License)
94
- * Copyright (c) 2024 Colin McDannell
95
- */
96
- /** The Standard Typed interface. This is a base type extended by other specs. */
97
- interface StandardTypedV1<Input = unknown, Output = Input> {
98
- /** The Standard properties. */
99
- readonly "~standard": StandardTypedV1.Props<Input, Output>;
100
- }
101
- declare namespace StandardTypedV1 {
102
- /** The Standard Typed properties interface. */
103
- interface Props<Input = unknown, Output = Input> {
104
- /** The version number of the standard. */
105
- readonly version: 1;
106
- /** The vendor name of the schema library. */
107
- readonly vendor: string;
108
- /** Inferred types associated with the schema. */
109
- readonly types?: Types<Input, Output> | undefined;
110
- }
111
- /** The Standard Typed types interface. */
112
- interface Types<Input = unknown, Output = Input> {
113
- /** The input type of the schema. */
114
- readonly input: Input;
115
- /** The output type of the schema. */
116
- readonly output: Output;
117
- }
118
- /** Infers the input type of a Standard Typed. */
119
- type InferInput<Schema extends StandardTypedV1> = NonNullable<Schema["~standard"]["types"]>["input"];
120
- /** Infers the output type of a Standard Typed. */
121
- type InferOutput<Schema extends StandardTypedV1> = NonNullable<Schema["~standard"]["types"]>["output"];
122
- }
123
- /** The Standard Schema interface. */
124
- interface StandardSchemaV1<Input = unknown, Output = Input> {
125
- /** The Standard Schema properties. */
126
- readonly "~standard": StandardSchemaV1.Props<Input, Output>;
127
- }
128
- declare namespace StandardSchemaV1 {
129
- /** The Standard Schema properties interface. */
130
- interface Props<Input = unknown, Output = Input> extends StandardTypedV1.Props<Input, Output> {
131
- /** Validates unknown input values. */
132
- readonly validate: (value: unknown, options?: StandardSchemaV1.Options | undefined) => Result<Output> | Promise<Result<Output>>;
133
- }
134
- /** The result interface of the validate function. */
135
- type Result<Output> = SuccessResult<Output> | FailureResult;
136
- /** The result interface if validation succeeds. */
137
- interface SuccessResult<Output> {
138
- /** The typed output value. */
139
- readonly value: Output;
140
- /** A falsy value for `issues` indicates success. */
141
- readonly issues?: undefined;
142
- }
143
- interface Options {
144
- /** Explicit support for additional vendor-specific parameters, if needed. */
145
- readonly libraryOptions?: Record<string, unknown> | undefined;
146
- }
147
- /** The result interface if validation fails. */
148
- interface FailureResult {
149
- /** The issues of failed validation. */
150
- readonly issues: ReadonlyArray<Issue>;
151
- }
152
- /** The issue interface of the failure output. */
153
- interface Issue {
154
- /** The error message of the issue. */
155
- readonly message: string;
156
- /** The path of the issue, if any. */
157
- readonly path?: ReadonlyArray<PropertyKey | PathSegment> | undefined;
158
- }
159
- /** The path segment interface of the issue. */
160
- interface PathSegment {
161
- /** The key representing a path segment. */
162
- readonly key: PropertyKey;
163
- }
164
- /** The Standard types interface. */
165
- interface Types<Input = unknown, Output = Input> extends StandardTypedV1.Types<Input, Output> {}
166
- /** Infers the input type of a Standard. */
167
- type InferInput<Schema extends StandardTypedV1> = StandardTypedV1.InferInput<Schema>;
168
- /** Infers the output type of a Standard. */
169
- type InferOutput<Schema extends StandardTypedV1> = StandardTypedV1.InferOutput<Schema>;
170
- }
171
- //#endregion
172
- //#region ../internal/types/dist/infer-type.d.ts
173
- /**
174
- * Extract the inferred type from a schema definition.
175
- * Supports both ArkType type definitions and Standard Schema 1.0 validators.
176
- *
177
- * For Standard Schema validators (e.g., Zod, Valibot), extracts the output type.
178
- * For ArkType definitions, checks the call signature or type properties.
179
- *
180
- * @template T - The schema definition to infer from
181
- */
182
- type InferType<T> = T extends StandardSchemaV1<infer _Input, infer Output> ? Output : T extends ((value: Dict<string>) => infer R) ? R extends type.errors ? never : R : T extends {
183
- t: infer U;
184
- } ? U : T extends type.Any<infer U, infer _Scope> ? U : never;
185
- //#endregion
186
- //#region ../internal/types/dist/schema.d.ts
187
- type SchemaShape = Record<string, unknown>;
188
- /**
189
- * @internal
190
- *
191
- * Compiled ArkType schema accepted by ArkEnv.
192
- * Produced by `arktype.type(...)` or `scope(...)`.
193
- *
194
- * Represents an already-constructed ArkType `Type` instance that
195
- * defines the full environment schema.
196
- *
197
- * This form bypasses schema validation and is intended for advanced
198
- * or programmatic use cases where schemas are constructed dynamically.
199
- */
200
- type CompiledEnvSchema = Type<SchemaShape, $>;
201
- //#endregion
202
- export { Dict as a, StandardSchemaV1 as i, SchemaShape as n, $ as o, InferType as r, CompiledEnvSchema as t };
203
-
204
- // CJS Interop Shim
205
- if (module.exports && module.exports.default) {
206
- Object.assign(module.exports.default, module.exports);
207
- module.exports = module.exports.default;
208
- }
209
-
210
- //# sourceMappingURL=index-Do-2CL1V.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-Do-2CL1V.d.cts","names":["_$arktype","_$arktype_internal_keywords_string_ts0","_$arktype_internal_attributes_ts0","$","trim","To","Submodule","normalize","capitalize","stringDate","stringInteger","ip","stringJson","lower","stringNumeric","url","uuid","Scope","string","In","root","alpha","alphanumeric","hex","base64","creditCard","date","digits","email","integer","json","numeric","regex","semver","upper","preformatted","host","number","NaN","Infinity","epoch","safe","NegativeInfinity","port","Dict","T","Record","StandardTypedV1","Input","Output","Props","Schema","Types","NonNullable","version","vendor","types","input","output","InferInput","InferOutput","StandardSchemaV1","Options","Result","Promise","SuccessResult","FailureResult","Record","Issue","ReadonlyArray","PropertyKey","PathSegment","validate","value","options","issues","libraryOptions","message","path","key","StandardJSONSchemaV1","Converter","Target","jsonSchema","target","type","Dict","StandardSchemaV1","InferType","T","errors","Any","_Input","Output","value","R","t","U","_Scope","$","Type","SchemaShape","Record","CompiledEnvSchema"],"sources":["../../internal/scope/dist/index.d.ts","../../internal/types/dist/helpers.d.ts","../../internal/types/dist/standard-schema.d.ts","../../internal/types/dist/infer-type.d.ts","../../internal/types/dist/schema.d.ts"],"mappings":"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"}
@@ -1,204 +0,0 @@
1
- import * as _$arktype from "arktype";
2
- import { Type, type } from "arktype";
3
- import * as _$arktype_internal_keywords_string_ts0 from "arktype/internal/keywords/string.ts";
4
- import * as _$arktype_internal_attributes_ts0 from "arktype/internal/attributes.ts";
5
-
6
- //#region ../internal/scope/dist/index.d.ts
7
- //#region src/root.d.ts
8
- /**
9
- * The root scope for the ArkEnv library,
10
- * containing extensions to the ArkType scopes with ArkEnv-specific types
11
- * like `string.host` and `number.port`.
12
- */
13
- declare const $: _$arktype.Scope<{
14
- string: _$arktype.Submodule<{
15
- trim: _$arktype.Submodule<_$arktype_internal_keywords_string_ts0.trim.$ & {
16
- " arkInferred": (In: string) => _$arktype_internal_attributes_ts0.To<string>;
17
- }>;
18
- normalize: _$arktype.Submodule<_$arktype_internal_keywords_string_ts0.normalize.$ & {
19
- " arkInferred": (In: string) => _$arktype_internal_attributes_ts0.To<string>;
20
- }>;
21
- root: string;
22
- alpha: string;
23
- alphanumeric: string;
24
- hex: string;
25
- base64: _$arktype.Submodule<{
26
- root: string;
27
- url: string;
28
- } & {
29
- " arkInferred": string;
30
- }>;
31
- capitalize: _$arktype.Submodule<_$arktype_internal_keywords_string_ts0.capitalize.$ & {
32
- " arkInferred": (In: string) => _$arktype_internal_attributes_ts0.To<string>;
33
- }>;
34
- creditCard: string;
35
- date: _$arktype.Submodule<_$arktype_internal_keywords_string_ts0.stringDate.$ & {
36
- " arkInferred": string;
37
- }>;
38
- digits: string;
39
- email: string;
40
- integer: _$arktype.Submodule<_$arktype_internal_keywords_string_ts0.stringInteger.$ & {
41
- " arkInferred": string;
42
- }>;
43
- ip: _$arktype.Submodule<_$arktype_internal_keywords_string_ts0.ip.$ & {
44
- " arkInferred": string;
45
- }>;
46
- json: _$arktype.Submodule<_$arktype_internal_keywords_string_ts0.stringJson.$ & {
47
- " arkInferred": string;
48
- }>;
49
- lower: _$arktype.Submodule<_$arktype_internal_keywords_string_ts0.lower.$ & {
50
- " arkInferred": (In: string) => _$arktype_internal_attributes_ts0.To<string>;
51
- }>;
52
- numeric: _$arktype.Submodule<_$arktype_internal_keywords_string_ts0.stringNumeric.$ & {
53
- " arkInferred": string;
54
- }>;
55
- regex: string;
56
- semver: string;
57
- upper: _$arktype.Submodule<{
58
- root: (In: string) => _$arktype_internal_attributes_ts0.To<string>;
59
- preformatted: string;
60
- } & {
61
- " arkInferred": (In: string) => _$arktype_internal_attributes_ts0.To<string>;
62
- }>;
63
- url: _$arktype.Submodule<_$arktype_internal_keywords_string_ts0.url.$ & {
64
- " arkInferred": string;
65
- }>;
66
- uuid: _$arktype.Submodule<_$arktype_internal_keywords_string_ts0.uuid.$ & {
67
- " arkInferred": string;
68
- }>;
69
- " arkInferred": string;
70
- host: string;
71
- }>;
72
- number: _$arktype.Submodule<{
73
- NaN: number;
74
- Infinity: number;
75
- root: number;
76
- integer: number;
77
- " arkInferred": number;
78
- epoch: number;
79
- safe: number;
80
- NegativeInfinity: number;
81
- port: number;
82
- }>;
83
- }>;
84
- type $ = (typeof $)["t"]; //#endregion
85
- //#endregion
86
- //#region ../internal/types/dist/helpers.d.ts
87
- type Dict<T> = Record<string, T | undefined>;
88
- //#endregion
89
- //#region ../internal/types/dist/standard-schema.d.ts
90
- /**
91
- * @see https://github.com/standard-schema/standard-schema/tree/3130ce43fdd848d9ab49dbb0458d04f18459961c/packages/spec
92
- *
93
- * Copied from standard-schema (MIT License)
94
- * Copyright (c) 2024 Colin McDannell
95
- */
96
- /** The Standard Typed interface. This is a base type extended by other specs. */
97
- interface StandardTypedV1<Input = unknown, Output = Input> {
98
- /** The Standard properties. */
99
- readonly "~standard": StandardTypedV1.Props<Input, Output>;
100
- }
101
- declare namespace StandardTypedV1 {
102
- /** The Standard Typed properties interface. */
103
- interface Props<Input = unknown, Output = Input> {
104
- /** The version number of the standard. */
105
- readonly version: 1;
106
- /** The vendor name of the schema library. */
107
- readonly vendor: string;
108
- /** Inferred types associated with the schema. */
109
- readonly types?: Types<Input, Output> | undefined;
110
- }
111
- /** The Standard Typed types interface. */
112
- interface Types<Input = unknown, Output = Input> {
113
- /** The input type of the schema. */
114
- readonly input: Input;
115
- /** The output type of the schema. */
116
- readonly output: Output;
117
- }
118
- /** Infers the input type of a Standard Typed. */
119
- type InferInput<Schema extends StandardTypedV1> = NonNullable<Schema["~standard"]["types"]>["input"];
120
- /** Infers the output type of a Standard Typed. */
121
- type InferOutput<Schema extends StandardTypedV1> = NonNullable<Schema["~standard"]["types"]>["output"];
122
- }
123
- /** The Standard Schema interface. */
124
- interface StandardSchemaV1<Input = unknown, Output = Input> {
125
- /** The Standard Schema properties. */
126
- readonly "~standard": StandardSchemaV1.Props<Input, Output>;
127
- }
128
- declare namespace StandardSchemaV1 {
129
- /** The Standard Schema properties interface. */
130
- interface Props<Input = unknown, Output = Input> extends StandardTypedV1.Props<Input, Output> {
131
- /** Validates unknown input values. */
132
- readonly validate: (value: unknown, options?: StandardSchemaV1.Options | undefined) => Result<Output> | Promise<Result<Output>>;
133
- }
134
- /** The result interface of the validate function. */
135
- type Result<Output> = SuccessResult<Output> | FailureResult;
136
- /** The result interface if validation succeeds. */
137
- interface SuccessResult<Output> {
138
- /** The typed output value. */
139
- readonly value: Output;
140
- /** A falsy value for `issues` indicates success. */
141
- readonly issues?: undefined;
142
- }
143
- interface Options {
144
- /** Explicit support for additional vendor-specific parameters, if needed. */
145
- readonly libraryOptions?: Record<string, unknown> | undefined;
146
- }
147
- /** The result interface if validation fails. */
148
- interface FailureResult {
149
- /** The issues of failed validation. */
150
- readonly issues: ReadonlyArray<Issue>;
151
- }
152
- /** The issue interface of the failure output. */
153
- interface Issue {
154
- /** The error message of the issue. */
155
- readonly message: string;
156
- /** The path of the issue, if any. */
157
- readonly path?: ReadonlyArray<PropertyKey | PathSegment> | undefined;
158
- }
159
- /** The path segment interface of the issue. */
160
- interface PathSegment {
161
- /** The key representing a path segment. */
162
- readonly key: PropertyKey;
163
- }
164
- /** The Standard types interface. */
165
- interface Types<Input = unknown, Output = Input> extends StandardTypedV1.Types<Input, Output> {}
166
- /** Infers the input type of a Standard. */
167
- type InferInput<Schema extends StandardTypedV1> = StandardTypedV1.InferInput<Schema>;
168
- /** Infers the output type of a Standard. */
169
- type InferOutput<Schema extends StandardTypedV1> = StandardTypedV1.InferOutput<Schema>;
170
- }
171
- //#endregion
172
- //#region ../internal/types/dist/infer-type.d.ts
173
- /**
174
- * Extract the inferred type from a schema definition.
175
- * Supports both ArkType type definitions and Standard Schema 1.0 validators.
176
- *
177
- * For Standard Schema validators (e.g., Zod, Valibot), extracts the output type.
178
- * For ArkType definitions, checks the call signature or type properties.
179
- *
180
- * @template T - The schema definition to infer from
181
- */
182
- type InferType<T> = T extends StandardSchemaV1<infer _Input, infer Output> ? Output : T extends ((value: Dict<string>) => infer R) ? R extends type.errors ? never : R : T extends {
183
- t: infer U;
184
- } ? U : T extends type.Any<infer U, infer _Scope> ? U : never;
185
- //#endregion
186
- //#region ../internal/types/dist/schema.d.ts
187
- type SchemaShape = Record<string, unknown>;
188
- /**
189
- * @internal
190
- *
191
- * Compiled ArkType schema accepted by ArkEnv.
192
- * Produced by `arktype.type(...)` or `scope(...)`.
193
- *
194
- * Represents an already-constructed ArkType `Type` instance that
195
- * defines the full environment schema.
196
- *
197
- * This form bypasses schema validation and is intended for advanced
198
- * or programmatic use cases where schemas are constructed dynamically.
199
- */
200
- type CompiledEnvSchema = Type<SchemaShape, $>;
201
- //#endregion
202
- export { Dict as a, StandardSchemaV1 as i, SchemaShape as n, $ as o, InferType as r, CompiledEnvSchema as t };
203
-
204
- //# sourceMappingURL=index-NbQAnciD.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-NbQAnciD.d.mts","names":["_$arktype","_$arktype_internal_keywords_string_ts0","_$arktype_internal_attributes_ts0","$","trim","To","Submodule","normalize","capitalize","stringDate","stringInteger","ip","stringJson","lower","stringNumeric","url","uuid","Scope","string","In","root","alpha","alphanumeric","hex","base64","creditCard","date","digits","email","integer","json","numeric","regex","semver","upper","preformatted","host","number","NaN","Infinity","epoch","safe","NegativeInfinity","port","Dict","T","Record","StandardTypedV1","Input","Output","Props","Schema","Types","NonNullable","version","vendor","types","input","output","InferInput","InferOutput","StandardSchemaV1","Options","Result","Promise","SuccessResult","FailureResult","Record","Issue","ReadonlyArray","PropertyKey","PathSegment","validate","value","options","issues","libraryOptions","message","path","key","StandardJSONSchemaV1","Converter","Target","jsonSchema","target","type","Dict","StandardSchemaV1","InferType","T","errors","Any","_Input","Output","value","R","t","U","_Scope","$","Type","SchemaShape","Record","CompiledEnvSchema"],"sources":["../../internal/scope/dist/index.d.ts","../../internal/types/dist/helpers.d.ts","../../internal/types/dist/standard-schema.d.ts","../../internal/types/dist/infer-type.d.ts","../../internal/types/dist/schema.d.ts"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/arkenv.ts","../src/schema.ts","../src/index.ts"],"mappings":";;;;;;;;;;;;;;AA0BA;;;;;;;;;KAAY,SAAA,QAAiB,MAAA,CAAG,QAAA,CAAS,GAAA,EAAK,CAAA;;;;;;AAQ9C;KAAY,KAAA,MAAW,CAAA,SAAU,WAAA,GAC9B,OAAA,CAAQ,GAAA,CAAI,MAAA,CAAG,KAAA,CAAM,CAAA,EAAG,CAAA,KACxB,SAAA,CAAU,CAAA;;;;;;;KAQR,kBAAA,GAAqB,IAAA;;;;KAKd,YAAA;EAfM;;;EAmBjB,GAAA,GAAM,kBAAA;EAlBI;;;EAsBV,MAAA;EAtB0B;;;;;AACX;;;;;AAahB;;;;EAuBC,eAAA;EAnBM;;;;;;;;EA6BN,WAAA;EAkCW;;;;EA5BX,YAAA;EA6B0B;;;;;;;;;EAlB1B,gBAAA;EAkBE;;;;;;;EATF,IAAA;AAAA;AAwBD;;;AAAA,KAhBY,YAAA,WAAuB,WAAA,OAChC,OAAA,CAAQ,GAAA,CAAI,MAAA,CAAG,KAAA,CAAM,CAAA,EAAG,CAAA,KACxB,SAAA,CAAU,CAAA;;;;;;;;;;;;;iBAcG,MAAA,iBAAuB,WAAA,CAAA,CACtC,GAAA,EAAK,SAAA,CAAU,CAAA,GACf,MAAA,GAAS,YAAA;EAAiB,IAAA;AAAA,IACxB,OAAA,CAAQ,GAAA,CAAI,MAAA,CAAG,KAAA,CAAM,CAAA,EAAG,CAAA;AAAA,iBACX,MAAA,WAAiB,iBAAA,CAAA,CAChC,GAAA,EAAK,CAAA,EACL,MAAA,GAAS,YAAA;EAAiB,IAAA;AAAA,IACxB,SAAA,CAAU,CAAA;AAAA,iBACG,MAAA,iBACC,WAAA,kBACA,SAAA,CAAU,CAAA,IAAK,iBAAA,CAAA,CAC9B,GAAA,EAAK,CAAA,EAAG,MAAA,GAAS,YAAA;EAAiB,IAAA;AAAA,IAAiB,YAAA,CAAa,CAAA,EAAG,CAAA;AAAA,iBACrD,MAAA,iBAAuB,WAAA,CAAA,CACtC,GAAA,EAAK,SAAA,CAAU,CAAA,GACf,MAAA,EAAQ,YAAA;EAAiB,IAAA;AAAA,IACvB,gBAAA,CAAiB,OAAA,CAAQ,GAAA,CAAI,MAAA,CAAG,KAAA,CAAM,CAAA,EAAG,CAAA;AAAA,iBAC5B,MAAA,WAAiB,iBAAA,CAAA,CAChC,GAAA,EAAK,CAAA,EACL,MAAA,EAAQ,YAAA;EAAiB,IAAA;AAAA,IACvB,gBAAA,CAAiB,SAAA,CAAU,CAAA;AAAA,iBACd,MAAA,iBACC,WAAA,kBACA,SAAA,CAAU,CAAA,IAAK,iBAAA,CAAA,CAE/B,GAAA,EAAK,CAAA,EACL,MAAA,EAAQ,YAAA;EAAiB,IAAA;AAAA,IACvB,gBAAA,CAAiB,YAAA,CAAa,CAAA,EAAG,CAAA;;;;;;;;;;;iBCrJpB,aAAA,CAAc,MAAA;;;;;;;;;ADiB9B;;;cEZa,IAAA,8BAAI,UAAA"}