@maverickcer/env-cap 0.2.0
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.
- package/LICENSE +21 -0
- package/README.md +279 -0
- package/dist/.dts/build/assemble-project.d.ts +47 -0
- package/dist/.dts/build/assemble-project.d.ts.map +1 -0
- package/dist/.dts/build/change-model.d.ts +62 -0
- package/dist/.dts/build/change-model.d.ts.map +1 -0
- package/dist/.dts/build/check-artifacts.d.ts +48 -0
- package/dist/.dts/build/check-artifacts.d.ts.map +1 -0
- package/dist/.dts/build/citation-verification.d.ts +62 -0
- package/dist/.dts/build/citation-verification.d.ts.map +1 -0
- package/dist/.dts/build/compatibility.d.ts +76 -0
- package/dist/.dts/build/compatibility.d.ts.map +1 -0
- package/dist/.dts/build/contract-model.d.ts +92 -0
- package/dist/.dts/build/contract-model.d.ts.map +1 -0
- package/dist/.dts/build/deep-equal.d.ts +9 -0
- package/dist/.dts/build/deep-equal.d.ts.map +1 -0
- package/dist/.dts/build/deep-freeze.d.ts +20 -0
- package/dist/.dts/build/deep-freeze.d.ts.map +1 -0
- package/dist/.dts/build/dependency-graph.d.ts +168 -0
- package/dist/.dts/build/dependency-graph.d.ts.map +1 -0
- package/dist/.dts/build/dependency-model.d.ts +79 -0
- package/dist/.dts/build/dependency-model.d.ts.map +1 -0
- package/dist/.dts/build/discover.d.ts +25 -0
- package/dist/.dts/build/discover.d.ts.map +1 -0
- package/dist/.dts/build/display-path.d.ts +24 -0
- package/dist/.dts/build/display-path.d.ts.map +1 -0
- package/dist/.dts/build/docs.d.ts +176 -0
- package/dist/.dts/build/docs.d.ts.map +1 -0
- package/dist/.dts/build/env-example.d.ts +85 -0
- package/dist/.dts/build/env-example.d.ts.map +1 -0
- package/dist/.dts/build/errors.d.ts +78 -0
- package/dist/.dts/build/errors.d.ts.map +1 -0
- package/dist/.dts/build/evidence-cache.d.ts +74 -0
- package/dist/.dts/build/evidence-cache.d.ts.map +1 -0
- package/dist/.dts/build/evidence-model.d.ts +50 -0
- package/dist/.dts/build/evidence-model.d.ts.map +1 -0
- package/dist/.dts/build/evidence-reference.d.ts +67 -0
- package/dist/.dts/build/evidence-reference.d.ts.map +1 -0
- package/dist/.dts/build/evidence-snapshot.d.ts +123 -0
- package/dist/.dts/build/evidence-snapshot.d.ts.map +1 -0
- package/dist/.dts/build/exclusive-group.d.ts +19 -0
- package/dist/.dts/build/exclusive-group.d.ts.map +1 -0
- package/dist/.dts/build/finding-model.d.ts +79 -0
- package/dist/.dts/build/finding-model.d.ts.map +1 -0
- package/dist/.dts/build/generate-documentation.d.ts +176 -0
- package/dist/.dts/build/generate-documentation.d.ts.map +1 -0
- package/dist/.dts/build/generate-env-artifacts.d.ts +176 -0
- package/dist/.dts/build/generate-env-artifacts.d.ts.map +1 -0
- package/dist/.dts/build/generate-evidence.d.ts +77 -0
- package/dist/.dts/build/generate-evidence.d.ts.map +1 -0
- package/dist/.dts/build/generate-manifest.d.ts +101 -0
- package/dist/.dts/build/generate-manifest.d.ts.map +1 -0
- package/dist/.dts/build/generate-usage.d.ts +95 -0
- package/dist/.dts/build/generate-usage.d.ts.map +1 -0
- package/dist/.dts/build/generated-banner.d.ts +52 -0
- package/dist/.dts/build/generated-banner.d.ts.map +1 -0
- package/dist/.dts/build/glob.d.ts +18 -0
- package/dist/.dts/build/glob.d.ts.map +1 -0
- package/dist/.dts/build/governance-fields.d.ts +34 -0
- package/dist/.dts/build/governance-fields.d.ts.map +1 -0
- package/dist/.dts/build/humanize-key.d.ts +14 -0
- package/dist/.dts/build/humanize-key.d.ts.map +1 -0
- package/dist/.dts/build/index.d.ts +107 -0
- package/dist/.dts/build/index.d.ts.map +1 -0
- package/dist/.dts/build/lifecycle-model.d.ts +64 -0
- package/dist/.dts/build/lifecycle-model.d.ts.map +1 -0
- package/dist/.dts/build/link.d.ts +215 -0
- package/dist/.dts/build/link.d.ts.map +1 -0
- package/dist/.dts/build/literal-eval.d.ts +23 -0
- package/dist/.dts/build/literal-eval.d.ts.map +1 -0
- package/dist/.dts/build/live-expirations.d.ts +47 -0
- package/dist/.dts/build/live-expirations.d.ts.map +1 -0
- package/dist/.dts/build/manifest-snapshot.d.ts +229 -0
- package/dist/.dts/build/manifest-snapshot.d.ts.map +1 -0
- package/dist/.dts/build/manifest.d.ts +31 -0
- package/dist/.dts/build/manifest.d.ts.map +1 -0
- package/dist/.dts/build/map-utils.d.ts +8 -0
- package/dist/.dts/build/map-utils.d.ts.map +1 -0
- package/dist/.dts/build/ownership-model.d.ts +57 -0
- package/dist/.dts/build/ownership-model.d.ts.map +1 -0
- package/dist/.dts/build/parse.d.ts +199 -0
- package/dist/.dts/build/parse.d.ts.map +1 -0
- package/dist/.dts/build/reference-projections.d.ts +156 -0
- package/dist/.dts/build/reference-projections.d.ts.map +1 -0
- package/dist/.dts/build/resolution/resolve-import.d.ts +53 -0
- package/dist/.dts/build/resolution/resolve-import.d.ts.map +1 -0
- package/dist/.dts/build/resolution/resolve-package-schema.d.ts +83 -0
- package/dist/.dts/build/resolution/resolve-package-schema.d.ts.map +1 -0
- package/dist/.dts/build/resolution/resolve-tsconfig-paths.d.ts +101 -0
- package/dist/.dts/build/resolution/resolve-tsconfig-paths.d.ts.map +1 -0
- package/dist/.dts/build/resolution/resolve-within-root.d.ts +35 -0
- package/dist/.dts/build/resolution/resolve-within-root.d.ts.map +1 -0
- package/dist/.dts/build/resolve-import.d.ts +50 -0
- package/dist/.dts/build/resolve-import.d.ts.map +1 -0
- package/dist/.dts/build/resolve-package-schema.d.ts +99 -0
- package/dist/.dts/build/resolve-package-schema.d.ts.map +1 -0
- package/dist/.dts/build/resolve-tsconfig-paths.d.ts +100 -0
- package/dist/.dts/build/resolve-tsconfig-paths.d.ts.map +1 -0
- package/dist/.dts/build/resolve-within-root.d.ts +35 -0
- package/dist/.dts/build/resolve-within-root.d.ts.map +1 -0
- package/dist/.dts/build/sarif.d.ts +66 -0
- package/dist/.dts/build/sarif.d.ts.map +1 -0
- package/dist/.dts/build/scan-dependencies.d.ts +47 -0
- package/dist/.dts/build/scan-dependencies.d.ts.map +1 -0
- package/dist/.dts/build/sort-by-identity.d.ts +14 -0
- package/dist/.dts/build/sort-by-identity.d.ts.map +1 -0
- package/dist/.dts/build/source-position.d.ts +69 -0
- package/dist/.dts/build/source-position.d.ts.map +1 -0
- package/dist/.dts/build/tool-version.d.ts +8 -0
- package/dist/.dts/build/tool-version.d.ts.map +1 -0
- package/dist/.dts/build/types.d.ts +53 -0
- package/dist/.dts/build/types.d.ts.map +1 -0
- package/dist/.dts/build/usage-report.d.ts +124 -0
- package/dist/.dts/build/usage-report.d.ts.map +1 -0
- package/dist/.dts/cli/filesystem.d.ts +3 -0
- package/dist/.dts/cli/filesystem.d.ts.map +1 -0
- package/dist/.dts/eslint-plugin/glob.d.ts +18 -0
- package/dist/.dts/eslint-plugin/glob.d.ts.map +1 -0
- package/dist/.dts/eslint-plugin/index.d.ts +27 -0
- package/dist/.dts/eslint-plugin/index.d.ts.map +1 -0
- package/dist/.dts/eslint-plugin/no-node-fs.d.ts +25 -0
- package/dist/.dts/eslint-plugin/no-node-fs.d.ts.map +1 -0
- package/dist/.dts/eslint-plugin/no-raw-process-env.d.ts +23 -0
- package/dist/.dts/eslint-plugin/no-raw-process-env.d.ts.map +1 -0
- package/dist/.dts/evidence/define-projection.d.ts +51 -0
- package/dist/.dts/evidence/define-projection.d.ts.map +1 -0
- package/dist/.dts/evidence/index.d.ts +23 -0
- package/dist/.dts/evidence/index.d.ts.map +1 -0
- package/dist/.dts/helpers/index.d.ts +135 -0
- package/dist/.dts/helpers/index.d.ts.map +1 -0
- package/dist/.dts/helpers/processors.d.ts +32 -0
- package/dist/.dts/helpers/processors.d.ts.map +1 -0
- package/dist/.dts/helpers/validators.d.ts +68 -0
- package/dist/.dts/helpers/validators.d.ts.map +1 -0
- package/dist/.dts/node/index.d.ts +2 -0
- package/dist/.dts/node/index.d.ts.map +1 -0
- package/dist/.dts/runtime/cache.d.ts +20 -0
- package/dist/.dts/runtime/cache.d.ts.map +1 -0
- package/dist/.dts/runtime/create.d.ts +20 -0
- package/dist/.dts/runtime/create.d.ts.map +1 -0
- package/dist/.dts/runtime/document.d.ts +181 -0
- package/dist/.dts/runtime/document.d.ts.map +1 -0
- package/dist/.dts/runtime/errors.d.ts +55 -0
- package/dist/.dts/runtime/errors.d.ts.map +1 -0
- package/dist/.dts/runtime/index.d.ts +24 -0
- package/dist/.dts/runtime/index.d.ts.map +1 -0
- package/dist/.dts/runtime/registry.d.ts +12 -0
- package/dist/.dts/runtime/registry.d.ts.map +1 -0
- package/dist/.dts/runtime/reset.d.ts +8 -0
- package/dist/.dts/runtime/reset.d.ts.map +1 -0
- package/dist/.dts/runtime/types.d.ts +175 -0
- package/dist/.dts/runtime/types.d.ts.map +1 -0
- package/dist/.dts/runtime/validate.d.ts +14 -0
- package/dist/.dts/runtime/validate.d.ts.map +1 -0
- package/dist/build.cjs +83 -0
- package/dist/build.cjs.map +1 -0
- package/dist/build.d.cts +1 -0
- package/dist/build.d.ts +1 -0
- package/dist/build.js +19 -0
- package/dist/build.js.map +1 -0
- package/dist/cli/index.js +134 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/eslint-plugin/index.cjs +12 -0
- package/dist/eslint-plugin/index.cjs.map +1 -0
- package/dist/eslint-plugin/index.d.cts +1 -0
- package/dist/eslint-plugin/index.d.ts +1 -0
- package/dist/eslint-plugin/index.js +5 -0
- package/dist/eslint-plugin/index.js.map +1 -0
- package/dist/evidence.cjs +7 -0
- package/dist/evidence.cjs.map +1 -0
- package/dist/evidence.d.cts +1 -0
- package/dist/evidence.d.ts +1 -0
- package/dist/evidence.js +5 -0
- package/dist/evidence.js.map +1 -0
- package/dist/helpers.cjs +8 -0
- package/dist/helpers.cjs.map +1 -0
- package/dist/helpers.d.cts +1 -0
- package/dist/helpers.d.ts +1 -0
- package/dist/helpers.js +5 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.cjs +15 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/node.cjs +13 -0
- package/dist/node.cjs.map +1 -0
- package/dist/node.d.cts +1 -0
- package/dist/node.d.ts +1 -0
- package/dist/node.js +7 -0
- package/dist/node.js.map +1 -0
- package/package.json +183 -0
- package/schemas/contract-model.schema.json +321 -0
- package/schemas/env-cap-report.schema.json +2369 -0
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core contract types for env-cap.
|
|
3
|
+
*
|
|
4
|
+
* These types are intentionally minimal: an `EnvDefinition` describes how to
|
|
5
|
+
* turn one raw environment value into one typed, validated application
|
|
6
|
+
* value. There is no `optional`/`required` flag anywhere in this file --
|
|
7
|
+
* requiredness is just a validator that rejects `undefined`/empty values.
|
|
8
|
+
*
|
|
9
|
+
* Documentation fields (description, owner, expiresAt, category, ...) live
|
|
10
|
+
* entirely in {@link documentEnv} (see `document.ts`), not here -- this file is
|
|
11
|
+
* the runtime's whole vocabulary, and every field in it is read by
|
|
12
|
+
* `validate.ts`/`create.ts`/`errors.ts` at runtime. If a field is only ever
|
|
13
|
+
* read by the generator, it belongs in `document.ts`, not here. `context` is
|
|
14
|
+
* the one exception worth calling out: it's also read by the build package
|
|
15
|
+
* for documentation display (see ADR 0022), but it belongs here rather than
|
|
16
|
+
* in `documentEnv()` because `validate.ts` reads it too, to decide pipeline
|
|
17
|
+
* participation -- the same bar `default`/`processor`/`validator` already
|
|
18
|
+
* clear.
|
|
19
|
+
*/
|
|
20
|
+
/** The raw, unprocessed source of environment values (e.g. `process.env`, a resolved secrets bag). */
|
|
21
|
+
export type RawEnv = Readonly<Record<string, unknown>>;
|
|
22
|
+
/** Processes a raw value into a typed, ready-to-use application value. Must not read any other key. */
|
|
23
|
+
export type Processor<T> = (value: unknown) => T;
|
|
24
|
+
/**
|
|
25
|
+
* Validates an already-processed value; return `true` when valid, or a human-readable error
|
|
26
|
+
* string when invalid.
|
|
27
|
+
*
|
|
28
|
+
* @remarks
|
|
29
|
+
* Receives the full raw env for conditional validation (e.g. "required only if X").
|
|
30
|
+
*/
|
|
31
|
+
export type Validator<T> = (value: T, rawEnv: RawEnv) => true | string;
|
|
32
|
+
/**
|
|
33
|
+
* A default may be a literal value, or a zero-arg thunk evaluated lazily when the raw value is
|
|
34
|
+
* undefined.
|
|
35
|
+
*
|
|
36
|
+
* @remarks
|
|
37
|
+
* The union is redundant at the type level (`unknown` alone already accepts a
|
|
38
|
+
* function) -- it's kept because this type is public API, and collapsing it to bare `unknown`
|
|
39
|
+
* would erase the one thing a reader of the generated `.d.ts` needs to learn here.
|
|
40
|
+
*/
|
|
41
|
+
export type DefaultValue = unknown | (() => unknown);
|
|
42
|
+
/** Configuration for one schema entry: how to default, process, and validate a single raw environment value. */
|
|
43
|
+
export interface EnvDefinition<T> {
|
|
44
|
+
/** Literal fallback or lazy thunk used when the raw value is `undefined`. */
|
|
45
|
+
default?: DefaultValue;
|
|
46
|
+
/** Converts the raw (or defaulted) value to `T`; passed through unprocessed when omitted. */
|
|
47
|
+
processor?: Processor<T>;
|
|
48
|
+
/** Rejects an invalid processed value; return `true` to accept it. */
|
|
49
|
+
validator?: Validator<T>;
|
|
50
|
+
/**
|
|
51
|
+
* The validation context this variable belongs to (e.g. `"server"`,
|
|
52
|
+
* `"production"`, `"worker"`) -- entirely application-defined; env-cap
|
|
53
|
+
* never interprets, detects, or infers this string. Omitted (the
|
|
54
|
+
* default) means the variable participates in every {@link validateEnv}
|
|
55
|
+
* run regardless of `activeContexts`. A variable belongs to at most one
|
|
56
|
+
* validation context -- see ADR 0022 for why this is a single `string`
|
|
57
|
+
* and not `string[]`; do not widen it to an array to let one variable
|
|
58
|
+
* join multiple contexts, that reintroduces the AND/OR ambiguity this
|
|
59
|
+
* design deliberately avoids.
|
|
60
|
+
*
|
|
61
|
+
* @remarks
|
|
62
|
+
* Validation contexts are a participation filter only -- not
|
|
63
|
+
* authentication, authorization, or a bundling/security boundary. See
|
|
64
|
+
* ADR 0022's Formal Invariants.
|
|
65
|
+
*/
|
|
66
|
+
context?: string;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* A schema is a map of variable name -> definition.
|
|
70
|
+
*
|
|
71
|
+
* @remarks
|
|
72
|
+
* `EnvDefinition<any>` is used only as the generic *bound* here (never surfaced to consumers):
|
|
73
|
+
* TypeScript infers a precise, per-key literal type for `S` from the object passed to
|
|
74
|
+
* {@link createEnv}, so the resolved contract type (see {@link InferEnvValue}) stays fully
|
|
75
|
+
* strict. This is the same variance workaround used by schema libraries like zod/trpc for
|
|
76
|
+
* heterogeneous generic maps.
|
|
77
|
+
*/
|
|
78
|
+
export type EnvSchema = Record<string, EnvDefinition<any>>;
|
|
79
|
+
type UnwrapDefault<D> = D extends {
|
|
80
|
+
default: infer Def;
|
|
81
|
+
} ? Def extends () => infer R ? R : Def : never;
|
|
82
|
+
/**
|
|
83
|
+
* Resolves the application-facing type for one schema entry: processor return type, else the
|
|
84
|
+
* default's type, else `string` (the shape raw process.env values naturally arrive in).
|
|
85
|
+
*
|
|
86
|
+
* @remarks
|
|
87
|
+
* Same documented generic-bound variance workaround as {@link EnvSchema} above --
|
|
88
|
+
* `any` here is never surfaced to a consumer's inferred type.
|
|
89
|
+
*/
|
|
90
|
+
export type InferEnvValue<D extends EnvDefinition<any>> = D extends {
|
|
91
|
+
/** Narrows to the processor's return type when one is present. */
|
|
92
|
+
processor: Processor<infer P>;
|
|
93
|
+
} ? P : [UnwrapDefault<D>] extends [never] ? string : UnwrapDefault<D>;
|
|
94
|
+
/** The internal, non-enumerable identity + metadata attached to every contract created by `createEnv`. */
|
|
95
|
+
export interface ContractInternals<S extends EnvSchema = EnvSchema> {
|
|
96
|
+
readonly id: symbol;
|
|
97
|
+
readonly name: string;
|
|
98
|
+
readonly source: string | undefined;
|
|
99
|
+
readonly schema: S;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* The object returned by {@link createEnv}. Each key is a lazily-resolved getter backed by the
|
|
103
|
+
* runtime cache -- there is no global env object, only per-feature contracts like this one.
|
|
104
|
+
*
|
|
105
|
+
* @remarks
|
|
106
|
+
* `toString()` is intersected in (rather than left to the ambient `Object.prototype`
|
|
107
|
+
* declaration) because `create.ts` genuinely overrides it to return a redacted
|
|
108
|
+
* `EnvContract("name")` representation, never resolved values -- see ADR 0006. Declaring
|
|
109
|
+
* it here means the type accurately describes what calling `String(contract)` returns.
|
|
110
|
+
*/
|
|
111
|
+
export type EnvContract<S extends EnvSchema> = {
|
|
112
|
+
readonly [K in keyof S]: InferEnvValue<S[K]>;
|
|
113
|
+
} & {
|
|
114
|
+
/** Returns the redacted `EnvContract("name")` representation, never resolved values -- see ADR 0006. */
|
|
115
|
+
toString(): string;
|
|
116
|
+
};
|
|
117
|
+
export interface validateEnvOptions {
|
|
118
|
+
/** The raw source of environment values, e.g. `process.env` or a resolved secrets bag. */
|
|
119
|
+
values: RawEnv;
|
|
120
|
+
/**
|
|
121
|
+
* Every contract to validate -- typically the `contracts` array imported
|
|
122
|
+
* from a generated manifest (see {@link build.generateEnvManifest}). Pass all of them
|
|
123
|
+
* in one call: {@link validateEnv} only ever initializes once per process, so
|
|
124
|
+
* a second call returns the first call's cached result without
|
|
125
|
+
* re-running anything, even if it passes a different manifest.
|
|
126
|
+
*/
|
|
127
|
+
manifest: readonly EnvContract<any>[];
|
|
128
|
+
/**
|
|
129
|
+
* The validation contexts active for this run (e.g. `["server",
|
|
130
|
+
* "production"]`) -- entirely application-defined; env-cap never
|
|
131
|
+
* detects or infers these, the caller always computes and passes them
|
|
132
|
+
* explicitly. A variable whose `context` isn't in this list is skipped
|
|
133
|
+
* entirely (no default/processor/validator runs for it, and it stays in
|
|
134
|
+
* its not-ready state, exactly as if this run had never happened for
|
|
135
|
+
* it) -- see ADR 0022. A variable with no `context` always participates,
|
|
136
|
+
* regardless of what's passed here. Omitted (the default) behaves as an
|
|
137
|
+
* empty list: only variables with no `context` participate.
|
|
138
|
+
*
|
|
139
|
+
* @remarks
|
|
140
|
+
* Not part of the validation cache's identity -- {@link validateEnv}
|
|
141
|
+
* remains one-shot per process exactly as before this option existed. A
|
|
142
|
+
* second call does not re-evaluate `activeContexts`; it returns the
|
|
143
|
+
* first call's result outright. Different active contexts belong to
|
|
144
|
+
* different processes (e.g. a server process and a browser bundle),
|
|
145
|
+
* never to two calls within the same one.
|
|
146
|
+
*/
|
|
147
|
+
activeContexts?: readonly string[];
|
|
148
|
+
}
|
|
149
|
+
/** Aggregate counts from a completed {@link validateEnv} run. */
|
|
150
|
+
export interface validateEnvResult {
|
|
151
|
+
/** Number of contracts in the manifest that were validated. */
|
|
152
|
+
readonly contractCount: number;
|
|
153
|
+
/** Total number of variables validated across all contracts. */
|
|
154
|
+
readonly variableCount: number;
|
|
155
|
+
}
|
|
156
|
+
export interface CreateEnvOptions {
|
|
157
|
+
/**
|
|
158
|
+
* A short, stable label for this contract (e.g. "payments", "database").
|
|
159
|
+
* Used in error messages. Defaults to an auto-generated anonymous label if
|
|
160
|
+
* omitted -- providing one is strongly recommended for readable validation
|
|
161
|
+
* errors.
|
|
162
|
+
*/
|
|
163
|
+
name?: string;
|
|
164
|
+
/**
|
|
165
|
+
* Pass `import.meta.url` here so validation errors point at the file that
|
|
166
|
+
* declared the failing variable (e.g. "features/payments/env.schema.ts")
|
|
167
|
+
* instead of just the short `name` label. There is no portable way for
|
|
168
|
+
* `createEnv` to discover its caller's module URL on its own -- this is
|
|
169
|
+
* always correct and never goes stale, since it's supplied by the JS
|
|
170
|
+
* engine rather than hand-typed.
|
|
171
|
+
*/
|
|
172
|
+
source?: string;
|
|
173
|
+
}
|
|
174
|
+
export {};
|
|
175
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runtime/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { validateEnvOptions, validateEnvResult } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Validates every variable in every contract in `options.manifest` against
|
|
4
|
+
* `options.values`, then caches the results.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* Idempotent: the first successful (or failed) call is authoritative for the life of the
|
|
8
|
+
* process -- later calls return (or re-throw) that same outcome without re-running any
|
|
9
|
+
* processor or validator. Concurrent in-flight calls share one underlying run.
|
|
10
|
+
*
|
|
11
|
+
* @throws {EnvValidationError} If any variable fails processing or validation.
|
|
12
|
+
*/
|
|
13
|
+
export declare function validateEnv(options: validateEnvOptions): Promise<validateEnvResult>;
|
|
14
|
+
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/runtime/validate.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEvE;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA4CzF"}
|