{
  "package": "@arki/env",
  "version": "0.1.0",
  "entries": [
    {
      "subpath": ".",
      "name": "contracts",
      "kind": "variable",
      "signature": "export declare const contracts: { string: (defaultValue?: string) => import(\"zod\").ZodDefault<import(\"zod\").ZodString> | import(\"zod\").ZodString; number: (defaultValue?: number) => import(\"zod\").ZodCoercedNumber<unknown> | import(\"zod\").ZodDefault<import(\"zod\").ZodCoercedNumber<unknown>>; port: (defaultValue?: number) => import(\"zod\").ZodDefault<import(\"zod\").ZodCoercedNumber<unknown>>; nodeEnv: () => import(\"zod\").ZodDefault<import(\"zod\").ZodEnum<{ development: \"development\"; production: \"production\"; test: \"test\"; }>>; boolean: (defaultValue?: boolean) => import(\"zod\").ZodPipe<import(\"zod\").ZodDefault<import(\"zod\").ZodEnum<{ 0: \"0\"; 1: \"1\"; false: \"false\"; true: \"true\"; }>>, import(\"zod\").ZodTransform<boolean, \"0\" | \"1\" | \"false\" | \"true\">>; logLevel: (defaultValue?: 'debug' | 'info' | 'warn' | 'error') => import(\"zod\").ZodDefault<import(\"zod\").ZodEnum<{ debug: \"debug\"; error: \"error\"; info: \"info\"; warn: \"warn\"; }>>; json: <T extends import(\"zod\").ZodType>(schema: T) => import(\"zod\").ZodPipe<import(\"zod\").ZodString, import(\"zod\").ZodTransform<Awaited<import(\"zod\").infer<T>>, string>>; csvArray: <T extends import(\"zod\").ZodType>(itemSchema: T) => import(\"zod\").ZodPreprocess<import(\"zod\").ZodArray<T>, unknown>; csvSet: <T extends import(\"zod\").ZodType>(itemSchema: T) => import(\"zod\").ZodPreprocess<import(\"zod\").ZodArray<T>, unknown>; url: (defaultValue?: string) => import(\"zod\").ZodDefault<import(\"zod\").ZodURL> | import(\"zod\").ZodURL; databaseUrl: () => import(\"zod\").ZodURL; redisUrl: () => import(\"zod\").ZodURL; };",
      "jsdocSummary": ""
    },
    {
      "subpath": "./contracts",
      "name": "commonContracts",
      "kind": "variable",
      "signature": "export declare const commonContracts: { string: (defaultValue?: string) => z.ZodDefault<z.ZodString> | z.ZodString; number: (defaultValue?: number) => z.ZodCoercedNumber<unknown> | z.ZodDefault<z.ZodCoercedNumber<unknown>>; port: (defaultValue?: number) => z.ZodDefault<z.ZodCoercedNumber<unknown>>; nodeEnv: () => z.ZodDefault<z.ZodEnum<{ development: \"development\"; production: \"production\"; test: \"test\"; }>>; boolean: (defaultValue?: boolean) => z.ZodPipe<z.ZodDefault<z.ZodEnum<{ 0: \"0\"; 1: \"1\"; false: \"false\"; true: \"true\"; }>>, z.ZodTransform<boolean, \"0\" | \"1\" | \"false\" | \"true\">>; logLevel: (defaultValue?: 'debug' | 'info' | 'warn' | 'error') => z.ZodDefault<z.ZodEnum<{ debug: \"debug\"; error: \"error\"; info: \"info\"; warn: \"warn\"; }>>; };",
      "jsdocSummary": ""
    },
    {
      "subpath": "./contracts",
      "name": "contracts",
      "kind": "variable",
      "signature": "export declare const contracts: { string: (defaultValue?: string) => import(\"zod\").ZodDefault<import(\"zod\").ZodString> | import(\"zod\").ZodString; number: (defaultValue?: number) => import(\"zod\").ZodCoercedNumber<unknown> | import(\"zod\").ZodDefault<import(\"zod\").ZodCoercedNumber<unknown>>; port: (defaultValue?: number) => import(\"zod\").ZodDefault<import(\"zod\").ZodCoercedNumber<unknown>>; nodeEnv: () => import(\"zod\").ZodDefault<import(\"zod\").ZodEnum<{ development: \"development\"; production: \"production\"; test: \"test\"; }>>; boolean: (defaultValue?: boolean) => import(\"zod\").ZodPipe<import(\"zod\").ZodDefault<import(\"zod\").ZodEnum<{ 0: \"0\"; 1: \"1\"; false: \"false\"; true: \"true\"; }>>, import(\"zod\").ZodTransform<boolean, \"0\" | \"1\" | \"false\" | \"true\">>; logLevel: (defaultValue?: 'debug' | 'info' | 'warn' | 'error') => import(\"zod\").ZodDefault<import(\"zod\").ZodEnum<{ debug: \"debug\"; error: \"error\"; info: \"info\"; warn: \"warn\"; }>>; json: <T extends import(\"zod\").ZodType>(schema: T) => import(\"zod\").ZodPipe<import(\"zod\").ZodString, import(\"zod\").ZodTransform<Awaited<import(\"zod\").infer<T>>, string>>; csvArray: <T extends import(\"zod\").ZodType>(itemSchema: T) => import(\"zod\").ZodPreprocess<import(\"zod\").ZodArray<T>, unknown>; csvSet: <T extends import(\"zod\").ZodType>(itemSchema: T) => import(\"zod\").ZodPreprocess<import(\"zod\").ZodArray<T>, unknown>; url: (defaultValue?: string) => import(\"zod\").ZodDefault<import(\"zod\").ZodURL> | import(\"zod\").ZodURL; databaseUrl: () => import(\"zod\").ZodURL; redisUrl: () => import(\"zod\").ZodURL; };",
      "jsdocSummary": ""
    },
    {
      "subpath": "./contracts",
      "name": "parseContracts",
      "kind": "variable",
      "signature": "export declare const parseContracts: { json: <T extends z.ZodType>(schema: T) => z.ZodPipe<z.ZodString, z.ZodTransform<Awaited<z.infer<T>>, string>>; csvArray: <T extends z.ZodType>(itemSchema: T) => z.ZodPreprocess<z.ZodArray<T>, unknown>; csvSet: <T extends z.ZodType>(itemSchema: T) => z.ZodPreprocess<z.ZodArray<T>, unknown>; };",
      "jsdocSummary": ""
    },
    {
      "subpath": "./contracts",
      "name": "urlContracts",
      "kind": "variable",
      "signature": "export declare const urlContracts: { url: (defaultValue?: string) => z.ZodDefault<z.ZodURL> | z.ZodURL; databaseUrl: () => z.ZodURL; redisUrl: () => z.ZodURL; };",
      "jsdocSummary": ""
    },
    {
      "subpath": "./core",
      "name": "contracts",
      "kind": "variable",
      "signature": "export declare const contracts: { string: (defaultValue?: string) => import(\"zod\").ZodDefault<import(\"zod\").ZodString> | import(\"zod\").ZodString; number: (defaultValue?: number) => import(\"zod\").ZodCoercedNumber<unknown> | import(\"zod\").ZodDefault<import(\"zod\").ZodCoercedNumber<unknown>>; port: (defaultValue?: number) => import(\"zod\").ZodDefault<import(\"zod\").ZodCoercedNumber<unknown>>; nodeEnv: () => import(\"zod\").ZodDefault<import(\"zod\").ZodEnum<{ development: \"development\"; production: \"production\"; test: \"test\"; }>>; boolean: (defaultValue?: boolean) => import(\"zod\").ZodPipe<import(\"zod\").ZodDefault<import(\"zod\").ZodEnum<{ 0: \"0\"; 1: \"1\"; false: \"false\"; true: \"true\"; }>>, import(\"zod\").ZodTransform<boolean, \"0\" | \"1\" | \"false\" | \"true\">>; logLevel: (defaultValue?: 'debug' | 'info' | 'warn' | 'error') => import(\"zod\").ZodDefault<import(\"zod\").ZodEnum<{ debug: \"debug\"; error: \"error\"; info: \"info\"; warn: \"warn\"; }>>; json: <T extends import(\"zod\").ZodType>(schema: T) => import(\"zod\").ZodPipe<import(\"zod\").ZodString, import(\"zod\").ZodTransform<Awaited<import(\"zod\").infer<T>>, string>>; csvArray: <T extends import(\"zod\").ZodType>(itemSchema: T) => import(\"zod\").ZodPreprocess<import(\"zod\").ZodArray<T>, unknown>; csvSet: <T extends import(\"zod\").ZodType>(itemSchema: T) => import(\"zod\").ZodPreprocess<import(\"zod\").ZodArray<T>, unknown>; url: (defaultValue?: string) => import(\"zod\").ZodDefault<import(\"zod\").ZodURL> | import(\"zod\").ZodURL; databaseUrl: () => import(\"zod\").ZodURL; redisUrl: () => import(\"zod\").ZodURL; };",
      "jsdocSummary": ""
    },
    {
      "subpath": "./core",
      "name": "defineEnv",
      "kind": "function",
      "signature": "export declare function defineEnv<TServer extends Record<string, StandardSchemaV1>, TClient extends Record<string, StandardSchemaV1> = NonNullable<unknown>, TShared extends Record<string, StandardSchemaV1> = NonNullable<unknown>, const TPrefix extends string = '', const TExtends extends Record<string, unknown>[] = []>(config: { /** * Label shown in validation-error logs, e.g. `'@acme/backend'`. Without it a misconfigured * deploy logs a bare \"Invalid environment variables\" with no hint which env failed — exactly the * blind failure this wrapper exists to prevent. */ name?: string; server: TServer; /** Client-side schema. Every key must start with `clientPrefix` (enforced by `createEnv`). */ client?: TClient; /** Prefix client keys must carry, e.g. `'VITE_'`. Defaults to `''` (no client vars). */ clientPrefix?: TPrefix; /** Shared vars available to both client and server, unprefixed (e.g. `NODE_ENV`). */ shared?: TShared; /** * Already-built envs to compose in (e.g. `@arki/auth`, `@arki/db`). Their parsed variables merge * into the result with full types; each was validated by its own `createEnv` at import time. */ extends?: TExtends; /** * Explicit runtime source. Omit it and `defineEnv` auto-builds one by reading `process.env` for * every declared key — correct for any server-side env. Provide it only when the auto-build would * be wrong: Vite/`start` apps whose client vars come from `import.meta.env` in the browser, or * keys with a fallback/alias (e.g. `DB_URL: process.env.DB_URL ?? process.env.DATABASE_URL`). */ runtimeEnv?: Record<string, string | boolean | number | undefined>; options?: { /** * `true` skips schema validation: values pass through raw. Default: validate on the first read, * in every environment, unless the process sets `SKIP_ENV_VALIDATION=1` (exactly `1`). That * variable is the only implicit opt-out, meant for Docker build stages that prerender without * secrets. `CI`, lint and `NODE_ENV` never skip. */ skipValidation?: boolean; /** * Treat empty-string env values as `undefined` so defaults apply (e.g. `PORT=` in `.env`, or a * Docker arg baked as `X=\"\"`). Defaults to `true` — set `false` only if an app intentionally * accepts `\"\"` as a valid required string. */ emptyStringAsUndefined?: boolean; onValidationError?: (issues: ValidationIssues) => never; }; }): CreateEnv<DefaultCombinedSchema<TServer, TClient, TShared>, TExtends>;",
      "jsdocSummary": "Thin, type-preserving wrapper over `@t3-oss/env-core`'s `createEnv`. Generic over the server, client, shared and composed schemas so the parsed env keeps its exact inferred types — the wrapper adds the ARKI defaults (auto `runtimeEnv`, validation on in every environment, a legible labelled error handler) without widening any value to `unknown`."
    },
    {
      "subpath": "./core",
      "name": "Redacted",
      "kind": "class",
      "signature": "export declare class Redacted<Value = string> { #private; constructor(value: Value); toString(): string; toJSON(): string; [inspect](): string; }",
      "jsdocSummary": "A value that prints as `[redacted]`. Read it with {@link reveal}."
    },
    {
      "subpath": "./core",
      "name": "reveal",
      "kind": "function",
      "signature": "export declare function reveal<Value>(value: Redacted<Value> | Value): Value;",
      "jsdocSummary": "The plain value of a secret. Also takes the raw value, because when validation is skipped (`skipValidation`, or `CI` builds) schemas do not run and the variable is still a plain string."
    },
    {
      "subpath": "./core",
      "name": "secret",
      "kind": "function",
      "signature": "export declare function secret<Schema extends StandardSchemaV1>(schema: Schema): SecretSchema<Schema>;",
      "jsdocSummary": "Validate with `schema` (any Standard Schema), then wrap the value in a {@link Redacted}. For an optional secret, call `.optional()`: `secret(z.string()).optional()`. The inner result passes straight through: an async inner schema yields a promise, so `defineEnv`'s synchronous check fails with the same `UnexpectedFailure` it would give without `secret`, and a throwing validator still throws."
    },
    {
      "subpath": "./dot",
      "name": "env",
      "kind": "function",
      "signature": "export declare function env<TSchema extends Record<string, StandardSchemaV1>>(options: EnvDotOptions<TSchema>): import(\"@arki/dot/plugin\").AuthoredPlugin<import(\"@arki/dot/plugin\").WireNeeds<import(\"@arki/dot/plugin\").EmptyShape>, import(\"@arki/dot/plugin\").ProvidedValues<{ env: Readonly<(Partial<Pick<import(\"@t3-oss/env-core\").StandardSchemaDictionary.InferOutput<TSchema & {}>, (import(\"@t3-oss/env-core\").StandardSchemaDictionary.InferOutput<TSchema & {}> extends infer T_1 ? { [K in keyof T_1]: undefined extends T_1[K] ? K : never; } : never)[keyof TSchema]>> & Omit<import(\"@t3-oss/env-core\").StandardSchemaDictionary.InferOutput<TSchema & {}>, (import(\"@t3-oss/env-core\").StandardSchemaDictionary.InferOutput<TSchema & {}> extends infer T_1 ? { [K in keyof T_1]: undefined extends T_1[K] ? K : never; } : never)[keyof TSchema]> extends infer T_2 ? T_2 extends Partial<Pick<import(\"@t3-oss/env-core\").StandardSchemaDictionary.InferOutput<TSchema & {}>, (import(\"@t3-oss/env-core\").StandardSchemaDictionary.InferOutput<TSchema & {}> extends infer T_1 ? { [K in keyof T_1]: undefined extends T_1[K] ? K : never; } : never)[keyof TSchema]>> & Omit<import(\"@t3-oss/env-core\").StandardSchemaDictionary.InferOutput<TSchema & {}>, (import(\"@t3-oss/env-core\").StandardSchemaDictionary.InferOutput<TSchema & {}> extends infer T_1 ? { [K in keyof T_1]: undefined extends T_1[K] ? K : never; } : never)[keyof TSchema]> ? T_2 extends Readonly<infer U> ? U : T_2 : never : never) & Omit<object, (import(\"@t3-oss/env-core\").StandardSchemaDictionary.InferOutput<TSchema & {}> extends infer T_1 ? { [K in keyof T_1]: undefined extends T_1[K] ? K : never; } : never)[keyof TSchema] | Exclude<keyof TSchema, (import(\"@t3-oss/env-core\").StandardSchemaDictionary.InferOutput<TSchema & {}> extends infer T_1 ? { [K in keyof T_1]: undefined extends T_1[K] ? K : never; } : never)[keyof TSchema]>> extends infer T ? { [P in keyof T]: T[P]; } : never>; }>, import(\"@arki/dot/plugin\").EmptyShape, \"env\", { env: Readonly<(Partial<Pick<import(\"@t3-oss/env-core\").StandardSchemaDictionary.InferOutput<TSchema & {}>, (import(\"@t3-oss/env-core\").StandardSchemaDictionary.InferOutput<TSchema & {}> extends infer T_1 ? { [K in keyof T_1]: undefined extends T_1[K] ? K : never; } : never)[keyof TSchema]>> & Omit<import(\"@t3-oss/env-core\").StandardSchemaDictionary.InferOutput<TSchema & {}>, (import(\"@t3-oss/env-core\").StandardSchemaDictionary.InferOutput<TSchema & {}> extends infer T_1 ? { [K in keyof T_1]: undefined extends T_1[K] ? K : never; } : never)[keyof TSchema]> extends infer T_2 ? T_2 extends Partial<Pick<import(\"@t3-oss/env-core\").StandardSchemaDictionary.InferOutput<TSchema & {}>, (import(\"@t3-oss/env-core\").StandardSchemaDictionary.InferOutput<TSchema & {}> extends infer T_1 ? { [K in keyof T_1]: undefined extends T_1[K] ? K : never; } : never)[keyof TSchema]>> & Omit<import(\"@t3-oss/env-core\").StandardSchemaDictionary.InferOutput<TSchema & {}>, (import(\"@t3-oss/env-core\").StandardSchemaDictionary.InferOutput<TSchema & {}> extends infer T_1 ? { [K in keyof T_1]: undefined extends T_1[K] ? K : never; } : never)[keyof TSchema]> ? T_2 extends Readonly<infer U> ? U : T_2 : never : never) & Omit<object, (import(\"@t3-oss/env-core\").StandardSchemaDictionary.InferOutput<TSchema & {}> extends infer T_1 ? { [K in keyof T_1]: undefined extends T_1[K] ? K : never; } : never)[keyof TSchema] | Exclude<keyof TSchema, (import(\"@t3-oss/env-core\").StandardSchemaDictionary.InferOutput<TSchema & {}> extends infer T_1 ? { [K in keyof T_1]: undefined extends T_1[K] ? K : never; } : never)[keyof TSchema]>> extends infer T ? { [P in keyof T]: T[P]; } : never>; }, import(\"@arki/dot/plugin\").EmptyPhases, import(\"@arki/dot/plugin\").DotLoggingHandle<undefined>, undefined>;",
      "jsdocSummary": "Build a DOT plugin that validates and publishes a typed `env` service."
    },
    {
      "subpath": "./dot",
      "name": "ENV_PLUGIN_ERROR_CODES",
      "kind": "variable",
      "signature": "export declare const ENV_PLUGIN_ERROR_CODES: { /** * The env failed its schema at boot. The message lists every bad key. * * @fix Set the listed variables, or fix their values, before booting the app. * @verify dot doctor --json | jq '.data' */ readonly invalidEnv: 'ARKI_ENV_PLUGIN_E001'; };",
      "jsdocSummary": ""
    },
    {
      "subpath": "./dot",
      "name": "EnvDotOptions",
      "kind": "type",
      "signature": "export type EnvDotOptions<TSchema extends Record<string, StandardSchemaV1>> = { /** One Standard Schema (Zod, Valibot, ArkType, ...) per env var the plugin validates. */ readonly schema: TSchema; /** * Forwarded to `defineEnv`. If `true`, the validator is skipped * entirely. By default the env is validated at boot, in every * environment, unless the process sets `SKIP_ENV_VALIDATION=1`. */ readonly skipValidation?: boolean; };",
      "jsdocSummary": "Options for the env DOT adapter."
    },
    {
      "subpath": "./dot",
      "name": "EnvServices",
      "kind": "type",
      "signature": "export type EnvServices<TSchema extends Record<string, StandardSchemaV1>> = { readonly env: ReturnType<typeof defineEnv<TSchema>>; };",
      "jsdocSummary": "The shape of services published by the env adapter."
    }
  ],
  "errorCodes": [
    "ARKI_ENV_PLUGIN_E001"
  ]
}
