@karmaniverous/get-dotenv 6.2.4 → 6.4.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.
Files changed (49) hide show
  1. package/README.md +1 -0
  2. package/dist/chunks/{AwsRestJsonProtocol-Bq1HE-Ln.mjs → AwsRestJsonProtocol-fYZqn-kW.mjs} +2 -2
  3. package/dist/chunks/{createCli-BY6_cfZr.mjs → createCli-BnRdfRRL.mjs} +7 -6
  4. package/dist/chunks/{externalDataInterceptor-CbsdEYa-.mjs → externalDataInterceptor-CILOLqbB.mjs} +2 -2
  5. package/dist/chunks/{getSSOTokenFromFile-hUSpR7Wf.mjs → getSSOTokenFromFile-BwMkZ_yT.mjs} +1 -1
  6. package/dist/chunks/{index-C_wqbTwI.mjs → index-0-nP97ri.mjs} +7 -6
  7. package/dist/chunks/{index-CeCufHlm.mjs → index-70Dm0f1N.mjs} +11 -10
  8. package/dist/chunks/{index-BPYF6K_G.mjs → index-BhVOypA1.mjs} +9 -8
  9. package/dist/chunks/{index-cIunyiUQ.mjs → index-CcwT4HJK.mjs} +6 -5
  10. package/dist/chunks/{index-BpCF5UKx.mjs → index-D8UL3w94.mjs} +6 -5
  11. package/dist/chunks/{index-Cu7rdyqN.mjs → index-DLNhHC15.mjs} +9 -8
  12. package/dist/chunks/{index-Dp1Ip6Ra.mjs → index-DWqbxY8Y.mjs} +11 -10
  13. package/dist/chunks/{index-c7zKtEuy.mjs → index-Du51s-Z0.mjs} +8 -7
  14. package/dist/chunks/{index-B5JKTBOL.mjs → index-DuSz0ul6.mjs} +8 -7
  15. package/dist/chunks/{index-DWAtHEA-.mjs → index-OeNCYa8T.mjs} +6 -5
  16. package/dist/chunks/{index-DyU5pKKi.mjs → index-_FP0whjC.mjs} +6 -5
  17. package/dist/chunks/{index-BEJFiHMX.mjs → index-o5zJ9PWL.mjs} +15 -15
  18. package/dist/chunks/{index-Bc3h0a95.mjs → index-r0Me7-sT.mjs} +112 -6
  19. package/dist/chunks/{loadSso-w1eTVg0O.mjs → loadSso-CLR1fKci.mjs} +8 -7
  20. package/dist/chunks/{loader-DnhPeGfq.mjs → loader-CePOf74i.mjs} +1 -0
  21. package/dist/chunks/{parseKnownFiles-B9cDK21V.mjs → parseKnownFiles-BQvmJ0HK.mjs} +1 -1
  22. package/dist/chunks/readDotenvCascade-DfFkWMjs.mjs +546 -0
  23. package/dist/chunks/{readMergedOptions-Nt0TR7dX.mjs → readMergedOptions-B7VdLROn.mjs} +62 -272
  24. package/dist/chunks/{resolveCliOptions-TFRzhB2c.mjs → resolveCliOptions-pgUXHJtj.mjs} +2 -1
  25. package/dist/chunks/{sdk-stream-mixin-BZoJ5jy9.mjs → sdk-stream-mixin-ecbbBR0l.mjs} +1 -1
  26. package/dist/chunks/{spawnEnv-CN8a7cNR.mjs → spawnEnv-CQwFu7ZJ.mjs} +2 -1
  27. package/dist/chunks/{types-DJ-BGABd.mjs → types-CVDR-Sjk.mjs} +1 -1
  28. package/dist/cli.d.ts +218 -84
  29. package/dist/cli.mjs +10 -10
  30. package/dist/cliHost.d.ts +218 -84
  31. package/dist/cliHost.mjs +8 -7
  32. package/dist/config.mjs +2 -1
  33. package/dist/env-overlay.d.ts +304 -2
  34. package/dist/env-overlay.mjs +38 -1
  35. package/dist/getdotenv.cli.mjs +10 -10
  36. package/dist/index.d.ts +703 -86
  37. package/dist/index.mjs +862 -13
  38. package/dist/plugins-aws.d.ts +153 -19
  39. package/dist/plugins-aws.mjs +5 -4
  40. package/dist/plugins-batch.d.ts +153 -19
  41. package/dist/plugins-batch.mjs +5 -4
  42. package/dist/plugins-cmd.d.ts +153 -19
  43. package/dist/plugins-cmd.mjs +7 -6
  44. package/dist/plugins-init.d.ts +153 -19
  45. package/dist/plugins-init.mjs +4 -4
  46. package/dist/plugins.d.ts +153 -19
  47. package/dist/plugins.mjs +9 -9
  48. package/package.json +1 -1
  49. package/dist/chunks/overlayEnv-Bs2kVayG.mjs +0 -234
package/dist/cli.d.ts CHANGED
@@ -1,6 +1,218 @@
1
1
  import { z, ZodObject } from 'zod';
2
2
  import { OptionValues, Command, InferCommandArguments, Option, CommandUnknownOpts } from '@commander-js/extra-typings';
3
3
 
4
+ /**
5
+ * Dotenv provenance model (descriptor-only).
6
+ *
7
+ * Requirements addressed:
8
+ * - Host ctx carries a dotenv provenance mapping describing per-key origin and override history.
9
+ * - Provenance is descriptor-only (no value payloads).
10
+ * - Provenance is an ordered stack per key in ascending precedence; the last entry is effective.
11
+ * - Explicit unsets are represented as `op: 'unset'` without requiring deletion of keys from the env map.
12
+ */
13
+ /**
14
+ * Provenance kind for an entry in {@link DotenvProvenance}.
15
+ *
16
+ * @public
17
+ */
18
+ type DotenvProvenanceKind = 'file' | 'config' | 'vars' | 'dynamic';
19
+ /**
20
+ * Operation represented by a provenance entry.
21
+ *
22
+ * @public
23
+ */
24
+ type DotenvProvenanceOp = 'set' | 'unset';
25
+ /**
26
+ * Base shape for all provenance entries.
27
+ *
28
+ * @public
29
+ */
30
+ interface DotenvProvenanceEntryBase {
31
+ /**
32
+ * The kind of provenance entry.
33
+ */
34
+ kind: DotenvProvenanceKind;
35
+ /**
36
+ * The operation applied at this layer.
37
+ */
38
+ op: DotenvProvenanceOp;
39
+ }
40
+ /**
41
+ * Provenance entry representing a value sourced from a dotenv file in the cascade.
42
+ *
43
+ * @public
44
+ */
45
+ interface DotenvFileProvenanceEntry extends DotenvProvenanceEntryBase {
46
+ /** Discriminator. */
47
+ kind: 'file';
48
+ /** Global vs env-scoped file. */
49
+ scope: 'global' | 'env';
50
+ /** Public vs private file. */
51
+ privacy: 'public' | 'private';
52
+ /** Environment name (required when scope is `env`). */
53
+ env?: string;
54
+ /**
55
+ * The corresponding `paths[]` entry as provided by the caller/CLI.
56
+ * This is not an absolute path by policy.
57
+ */
58
+ path: string;
59
+ /**
60
+ * The computed dotenv filename token (e.g., `.env`, `.env.dev`, `.env.local`, `.env.dev.local`).
61
+ */
62
+ file: string;
63
+ }
64
+ /**
65
+ * Provenance entry representing a value sourced from config overlays (`vars` / `envVars`).
66
+ *
67
+ * @public
68
+ */
69
+ interface DotenvConfigProvenanceEntry extends DotenvProvenanceEntryBase {
70
+ /** Discriminator. */
71
+ kind: 'config';
72
+ /** Global vs env-scoped config slice. */
73
+ scope: 'global' | 'env';
74
+ /** Public vs private on the privacy axis (`local` config maps to `private`). */
75
+ privacy: 'public' | 'private';
76
+ /** Environment name (required when scope is `env`). */
77
+ env?: string;
78
+ /** Packaged vs project config origin. */
79
+ configScope: 'packaged' | 'project';
80
+ /** Public vs local config file. */
81
+ configPrivacy: 'public' | 'local';
82
+ }
83
+ /**
84
+ * Provenance entry representing explicit variables overrides.
85
+ *
86
+ * Notes:
87
+ * - This kind represents values injected via `vars` (CLI/programmatic), not dotenv files.
88
+ *
89
+ * @public
90
+ */
91
+ interface DotenvVarsProvenanceEntry extends DotenvProvenanceEntryBase {
92
+ /** Discriminator. */
93
+ kind: 'vars';
94
+ }
95
+ /**
96
+ * Source tier for dynamic variables.
97
+ *
98
+ * @public
99
+ */
100
+ type DotenvDynamicSource = 'config' | 'programmatic' | 'dynamicPath';
101
+ /**
102
+ * Provenance entry representing dynamic variables.
103
+ *
104
+ * @public
105
+ */
106
+ interface DotenvDynamicProvenanceEntry extends DotenvProvenanceEntryBase {
107
+ /** Discriminator. */
108
+ kind: 'dynamic';
109
+ /** Dynamic source tier. */
110
+ dynamicSource: DotenvDynamicSource;
111
+ /**
112
+ * The `dynamicPath` value as provided by the caller/CLI when `dynamicSource` is `dynamicPath`.
113
+ * This is not resolved to an absolute path by provenance policy.
114
+ */
115
+ dynamicPath?: string;
116
+ }
117
+ /**
118
+ * Union of all supported provenance entry shapes.
119
+ *
120
+ * @public
121
+ */
122
+ type DotenvProvenanceEntry = DotenvFileProvenanceEntry | DotenvConfigProvenanceEntry | DotenvVarsProvenanceEntry | DotenvDynamicProvenanceEntry;
123
+ /**
124
+ * Per-key provenance history.
125
+ *
126
+ * Each key maps to an array of entries ordered in ascending precedence (lower to higher).
127
+ *
128
+ * @public
129
+ */
130
+ type DotenvProvenance = Record<string, DotenvProvenanceEntry[]>;
131
+
132
+ /**
133
+ * Resolved CLI options schema.
134
+ * For the current step this mirrors the RAW schema; later stages may further
135
+ * narrow types post-resolution in the host pipeline.
136
+ */
137
+ /**
138
+ * CLI options schema (resolved).
139
+ *
140
+ * Today this mirrors {@link getDotenvCliOptionsSchemaRaw}, but is kept as a distinct export
141
+ * so future resolution steps can narrow or materialize defaults without breaking the API.
142
+ *
143
+ * @public
144
+ */
145
+ declare const getDotenvCliOptionsSchemaResolved: z.ZodObject<{
146
+ defaultEnv: z.ZodOptional<z.ZodString>;
147
+ dotenvToken: z.ZodOptional<z.ZodString>;
148
+ dynamicPath: z.ZodOptional<z.ZodString>;
149
+ dynamic: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
150
+ env: z.ZodOptional<z.ZodString>;
151
+ excludeDynamic: z.ZodOptional<z.ZodBoolean>;
152
+ excludeEnv: z.ZodOptional<z.ZodBoolean>;
153
+ excludeGlobal: z.ZodOptional<z.ZodBoolean>;
154
+ excludePrivate: z.ZodOptional<z.ZodBoolean>;
155
+ excludePublic: z.ZodOptional<z.ZodBoolean>;
156
+ loadProcess: z.ZodOptional<z.ZodBoolean>;
157
+ log: z.ZodOptional<z.ZodBoolean>;
158
+ logger: z.ZodDefault<z.ZodUnknown>;
159
+ outputPath: z.ZodOptional<z.ZodString>;
160
+ privateToken: z.ZodOptional<z.ZodString>;
161
+ debug: z.ZodOptional<z.ZodBoolean>;
162
+ strict: z.ZodOptional<z.ZodBoolean>;
163
+ capture: z.ZodOptional<z.ZodBoolean>;
164
+ trace: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodArray<z.ZodString>]>>;
165
+ redact: z.ZodOptional<z.ZodBoolean>;
166
+ warnEntropy: z.ZodOptional<z.ZodBoolean>;
167
+ entropyThreshold: z.ZodOptional<z.ZodNumber>;
168
+ entropyMinLength: z.ZodOptional<z.ZodNumber>;
169
+ entropyWhitelist: z.ZodOptional<z.ZodArray<z.ZodString>>;
170
+ redactPatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
171
+ paths: z.ZodOptional<z.ZodString>;
172
+ pathsDelimiter: z.ZodOptional<z.ZodString>;
173
+ pathsDelimiterPattern: z.ZodOptional<z.ZodString>;
174
+ scripts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
175
+ shell: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
176
+ vars: z.ZodOptional<z.ZodString>;
177
+ varsAssignor: z.ZodOptional<z.ZodString>;
178
+ varsAssignorPattern: z.ZodOptional<z.ZodString>;
179
+ varsDelimiter: z.ZodOptional<z.ZodString>;
180
+ varsDelimiterPattern: z.ZodOptional<z.ZodString>;
181
+ }, z.core.$strip>;
182
+
183
+ /**
184
+ * Resolved programmatic options schema (post-inheritance).
185
+ * For now, this mirrors the RAW schema; future stages may materialize defaults
186
+ * and narrow shapes as resolution is wired into the host.
187
+ */
188
+ /**
189
+ * Programmatic options schema (resolved).
190
+ *
191
+ * Today this mirrors {@link getDotenvOptionsSchemaRaw}, but is kept as a distinct export
192
+ * so future resolution steps can narrow or materialize defaults without breaking the API.
193
+ *
194
+ * @public
195
+ */
196
+ declare const getDotenvOptionsSchemaResolved: z.ZodObject<{
197
+ defaultEnv: z.ZodOptional<z.ZodString>;
198
+ dotenvToken: z.ZodOptional<z.ZodString>;
199
+ dynamicPath: z.ZodOptional<z.ZodString>;
200
+ dynamic: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
201
+ env: z.ZodOptional<z.ZodString>;
202
+ excludeDynamic: z.ZodOptional<z.ZodBoolean>;
203
+ excludeEnv: z.ZodOptional<z.ZodBoolean>;
204
+ excludeGlobal: z.ZodOptional<z.ZodBoolean>;
205
+ excludePrivate: z.ZodOptional<z.ZodBoolean>;
206
+ excludePublic: z.ZodOptional<z.ZodBoolean>;
207
+ loadProcess: z.ZodOptional<z.ZodBoolean>;
208
+ log: z.ZodOptional<z.ZodBoolean>;
209
+ logger: z.ZodDefault<z.ZodUnknown>;
210
+ outputPath: z.ZodOptional<z.ZodString>;
211
+ paths: z.ZodOptional<z.ZodArray<z.ZodString>>;
212
+ privateToken: z.ZodOptional<z.ZodString>;
213
+ vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodString>>>;
214
+ }, z.core.$strip>;
215
+
4
216
  /**
5
217
  * Minimal root options shape shared by CLI and generator layers.
6
218
  * Keep keys optional to respect exactOptionalPropertyTypes semantics.
@@ -115,6 +327,12 @@ interface GetDotenvCliCtx<TOptions extends GetDotenvOptions = GetDotenvOptions>
115
327
  * Final composed dotenv environment for this invocation.
116
328
  */
117
329
  dotenv: ProcessEnv;
330
+ /**
331
+ * Dotenv provenance history for {@link GetDotenvCliCtx.dotenv}.
332
+ *
333
+ * Descriptor-only: does not include value payloads.
334
+ */
335
+ dotenvProvenance: DotenvProvenance;
118
336
  /**
119
337
  * Optional runtime plugin state bag. Plugins may publish non-sensitive metadata here.
120
338
  */
@@ -142,90 +360,6 @@ interface BrandOptions {
142
360
  helpHeader?: string;
143
361
  }
144
362
 
145
- /**
146
- * Resolved CLI options schema.
147
- * For the current step this mirrors the RAW schema; later stages may further
148
- * narrow types post-resolution in the host pipeline.
149
- */
150
- /**
151
- * CLI options schema (resolved).
152
- *
153
- * Today this mirrors {@link getDotenvCliOptionsSchemaRaw}, but is kept as a distinct export
154
- * so future resolution steps can narrow or materialize defaults without breaking the API.
155
- *
156
- * @public
157
- */
158
- declare const getDotenvCliOptionsSchemaResolved: z.ZodObject<{
159
- defaultEnv: z.ZodOptional<z.ZodString>;
160
- dotenvToken: z.ZodOptional<z.ZodString>;
161
- dynamicPath: z.ZodOptional<z.ZodString>;
162
- dynamic: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
163
- env: z.ZodOptional<z.ZodString>;
164
- excludeDynamic: z.ZodOptional<z.ZodBoolean>;
165
- excludeEnv: z.ZodOptional<z.ZodBoolean>;
166
- excludeGlobal: z.ZodOptional<z.ZodBoolean>;
167
- excludePrivate: z.ZodOptional<z.ZodBoolean>;
168
- excludePublic: z.ZodOptional<z.ZodBoolean>;
169
- loadProcess: z.ZodOptional<z.ZodBoolean>;
170
- log: z.ZodOptional<z.ZodBoolean>;
171
- logger: z.ZodDefault<z.ZodUnknown>;
172
- outputPath: z.ZodOptional<z.ZodString>;
173
- privateToken: z.ZodOptional<z.ZodString>;
174
- debug: z.ZodOptional<z.ZodBoolean>;
175
- strict: z.ZodOptional<z.ZodBoolean>;
176
- capture: z.ZodOptional<z.ZodBoolean>;
177
- trace: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodArray<z.ZodString>]>>;
178
- redact: z.ZodOptional<z.ZodBoolean>;
179
- warnEntropy: z.ZodOptional<z.ZodBoolean>;
180
- entropyThreshold: z.ZodOptional<z.ZodNumber>;
181
- entropyMinLength: z.ZodOptional<z.ZodNumber>;
182
- entropyWhitelist: z.ZodOptional<z.ZodArray<z.ZodString>>;
183
- redactPatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
184
- paths: z.ZodOptional<z.ZodString>;
185
- pathsDelimiter: z.ZodOptional<z.ZodString>;
186
- pathsDelimiterPattern: z.ZodOptional<z.ZodString>;
187
- scripts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
188
- shell: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
189
- vars: z.ZodOptional<z.ZodString>;
190
- varsAssignor: z.ZodOptional<z.ZodString>;
191
- varsAssignorPattern: z.ZodOptional<z.ZodString>;
192
- varsDelimiter: z.ZodOptional<z.ZodString>;
193
- varsDelimiterPattern: z.ZodOptional<z.ZodString>;
194
- }, z.core.$strip>;
195
-
196
- /**
197
- * Resolved programmatic options schema (post-inheritance).
198
- * For now, this mirrors the RAW schema; future stages may materialize defaults
199
- * and narrow shapes as resolution is wired into the host.
200
- */
201
- /**
202
- * Programmatic options schema (resolved).
203
- *
204
- * Today this mirrors {@link getDotenvOptionsSchemaRaw}, but is kept as a distinct export
205
- * so future resolution steps can narrow or materialize defaults without breaking the API.
206
- *
207
- * @public
208
- */
209
- declare const getDotenvOptionsSchemaResolved: z.ZodObject<{
210
- defaultEnv: z.ZodOptional<z.ZodString>;
211
- dotenvToken: z.ZodOptional<z.ZodString>;
212
- dynamicPath: z.ZodOptional<z.ZodString>;
213
- dynamic: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
214
- env: z.ZodOptional<z.ZodString>;
215
- excludeDynamic: z.ZodOptional<z.ZodBoolean>;
216
- excludeEnv: z.ZodOptional<z.ZodBoolean>;
217
- excludeGlobal: z.ZodOptional<z.ZodBoolean>;
218
- excludePrivate: z.ZodOptional<z.ZodBoolean>;
219
- excludePublic: z.ZodOptional<z.ZodBoolean>;
220
- loadProcess: z.ZodOptional<z.ZodBoolean>;
221
- log: z.ZodOptional<z.ZodBoolean>;
222
- logger: z.ZodDefault<z.ZodUnknown>;
223
- outputPath: z.ZodOptional<z.ZodString>;
224
- paths: z.ZodOptional<z.ZodArray<z.ZodString>>;
225
- privateToken: z.ZodOptional<z.ZodString>;
226
- vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodString>>>;
227
- }, z.core.$strip>;
228
-
229
363
  /**
230
364
  * Canonical programmatic options and helpers for get-dotenv.
231
365
  *
package/dist/cli.mjs CHANGED
@@ -1,25 +1,26 @@
1
- export { c as createCli } from './chunks/createCli-BY6_cfZr.mjs';
1
+ export { c as createCli } from './chunks/createCli-BnRdfRRL.mjs';
2
2
  import 'zod';
3
3
  import 'path';
4
- import './chunks/loader-DnhPeGfq.mjs';
4
+ import './chunks/loader-CePOf74i.mjs';
5
5
  import 'fs-extra';
6
6
  import 'package-directory';
7
7
  import 'url';
8
8
  import 'yaml';
9
+ import 'node:path';
9
10
  import './chunks/loadModuleDefault-Dj8B3Stt.mjs';
10
11
  import 'crypto';
11
- import './chunks/readMergedOptions-Nt0TR7dX.mjs';
12
- import '@commander-js/extra-typings';
13
- import './chunks/overlayEnv-Bs2kVayG.mjs';
14
12
  import 'nanoid';
13
+ import './chunks/readMergedOptions-B7VdLROn.mjs';
14
+ import '@commander-js/extra-typings';
15
+ import './chunks/readDotenvCascade-DfFkWMjs.mjs';
15
16
  import 'dotenv';
16
17
  import 'execa';
17
18
  import './chunks/helpConfig-CGejgwWW.mjs';
18
- import './chunks/resolveCliOptions-TFRzhB2c.mjs';
19
+ import './chunks/resolveCliOptions-pgUXHJtj.mjs';
19
20
  import './chunks/validate-CDl0rE6k.mjs';
20
21
  import './plugins-aws.mjs';
21
- import './chunks/spawnEnv-CN8a7cNR.mjs';
22
- import './chunks/index-CeCufHlm.mjs';
22
+ import './chunks/spawnEnv-CQwFu7ZJ.mjs';
23
+ import './chunks/index-70Dm0f1N.mjs';
23
24
  import 'buffer';
24
25
  import 'os';
25
26
  import 'node:fs/promises';
@@ -31,9 +32,8 @@ import 'node:fs';
31
32
  import './plugins-batch.mjs';
32
33
  import './chunks/invoke-DuRPU1oC.mjs';
33
34
  import 'globby';
34
- import './chunks/index-Bc3h0a95.mjs';
35
+ import './chunks/index-r0Me7-sT.mjs';
35
36
  import './plugins-init.mjs';
36
37
  import 'node:process';
37
38
  import 'readline/promises';
38
- import 'node:path';
39
39
  import 'node:url';
package/dist/cliHost.d.ts CHANGED
@@ -2,6 +2,218 @@ import { OptionValues, Command, InferCommandArguments, Option, CommandUnknownOpt
2
2
  import { z, ZodObject } from 'zod';
3
3
  export { z } from 'zod';
4
4
 
5
+ /**
6
+ * Dotenv provenance model (descriptor-only).
7
+ *
8
+ * Requirements addressed:
9
+ * - Host ctx carries a dotenv provenance mapping describing per-key origin and override history.
10
+ * - Provenance is descriptor-only (no value payloads).
11
+ * - Provenance is an ordered stack per key in ascending precedence; the last entry is effective.
12
+ * - Explicit unsets are represented as `op: 'unset'` without requiring deletion of keys from the env map.
13
+ */
14
+ /**
15
+ * Provenance kind for an entry in {@link DotenvProvenance}.
16
+ *
17
+ * @public
18
+ */
19
+ type DotenvProvenanceKind = 'file' | 'config' | 'vars' | 'dynamic';
20
+ /**
21
+ * Operation represented by a provenance entry.
22
+ *
23
+ * @public
24
+ */
25
+ type DotenvProvenanceOp = 'set' | 'unset';
26
+ /**
27
+ * Base shape for all provenance entries.
28
+ *
29
+ * @public
30
+ */
31
+ interface DotenvProvenanceEntryBase {
32
+ /**
33
+ * The kind of provenance entry.
34
+ */
35
+ kind: DotenvProvenanceKind;
36
+ /**
37
+ * The operation applied at this layer.
38
+ */
39
+ op: DotenvProvenanceOp;
40
+ }
41
+ /**
42
+ * Provenance entry representing a value sourced from a dotenv file in the cascade.
43
+ *
44
+ * @public
45
+ */
46
+ interface DotenvFileProvenanceEntry extends DotenvProvenanceEntryBase {
47
+ /** Discriminator. */
48
+ kind: 'file';
49
+ /** Global vs env-scoped file. */
50
+ scope: 'global' | 'env';
51
+ /** Public vs private file. */
52
+ privacy: 'public' | 'private';
53
+ /** Environment name (required when scope is `env`). */
54
+ env?: string;
55
+ /**
56
+ * The corresponding `paths[]` entry as provided by the caller/CLI.
57
+ * This is not an absolute path by policy.
58
+ */
59
+ path: string;
60
+ /**
61
+ * The computed dotenv filename token (e.g., `.env`, `.env.dev`, `.env.local`, `.env.dev.local`).
62
+ */
63
+ file: string;
64
+ }
65
+ /**
66
+ * Provenance entry representing a value sourced from config overlays (`vars` / `envVars`).
67
+ *
68
+ * @public
69
+ */
70
+ interface DotenvConfigProvenanceEntry extends DotenvProvenanceEntryBase {
71
+ /** Discriminator. */
72
+ kind: 'config';
73
+ /** Global vs env-scoped config slice. */
74
+ scope: 'global' | 'env';
75
+ /** Public vs private on the privacy axis (`local` config maps to `private`). */
76
+ privacy: 'public' | 'private';
77
+ /** Environment name (required when scope is `env`). */
78
+ env?: string;
79
+ /** Packaged vs project config origin. */
80
+ configScope: 'packaged' | 'project';
81
+ /** Public vs local config file. */
82
+ configPrivacy: 'public' | 'local';
83
+ }
84
+ /**
85
+ * Provenance entry representing explicit variables overrides.
86
+ *
87
+ * Notes:
88
+ * - This kind represents values injected via `vars` (CLI/programmatic), not dotenv files.
89
+ *
90
+ * @public
91
+ */
92
+ interface DotenvVarsProvenanceEntry extends DotenvProvenanceEntryBase {
93
+ /** Discriminator. */
94
+ kind: 'vars';
95
+ }
96
+ /**
97
+ * Source tier for dynamic variables.
98
+ *
99
+ * @public
100
+ */
101
+ type DotenvDynamicSource = 'config' | 'programmatic' | 'dynamicPath';
102
+ /**
103
+ * Provenance entry representing dynamic variables.
104
+ *
105
+ * @public
106
+ */
107
+ interface DotenvDynamicProvenanceEntry extends DotenvProvenanceEntryBase {
108
+ /** Discriminator. */
109
+ kind: 'dynamic';
110
+ /** Dynamic source tier. */
111
+ dynamicSource: DotenvDynamicSource;
112
+ /**
113
+ * The `dynamicPath` value as provided by the caller/CLI when `dynamicSource` is `dynamicPath`.
114
+ * This is not resolved to an absolute path by provenance policy.
115
+ */
116
+ dynamicPath?: string;
117
+ }
118
+ /**
119
+ * Union of all supported provenance entry shapes.
120
+ *
121
+ * @public
122
+ */
123
+ type DotenvProvenanceEntry = DotenvFileProvenanceEntry | DotenvConfigProvenanceEntry | DotenvVarsProvenanceEntry | DotenvDynamicProvenanceEntry;
124
+ /**
125
+ * Per-key provenance history.
126
+ *
127
+ * Each key maps to an array of entries ordered in ascending precedence (lower to higher).
128
+ *
129
+ * @public
130
+ */
131
+ type DotenvProvenance = Record<string, DotenvProvenanceEntry[]>;
132
+
133
+ /**
134
+ * Resolved CLI options schema.
135
+ * For the current step this mirrors the RAW schema; later stages may further
136
+ * narrow types post-resolution in the host pipeline.
137
+ */
138
+ /**
139
+ * CLI options schema (resolved).
140
+ *
141
+ * Today this mirrors {@link getDotenvCliOptionsSchemaRaw}, but is kept as a distinct export
142
+ * so future resolution steps can narrow or materialize defaults without breaking the API.
143
+ *
144
+ * @public
145
+ */
146
+ declare const getDotenvCliOptionsSchemaResolved: z.ZodObject<{
147
+ defaultEnv: z.ZodOptional<z.ZodString>;
148
+ dotenvToken: z.ZodOptional<z.ZodString>;
149
+ dynamicPath: z.ZodOptional<z.ZodString>;
150
+ dynamic: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
151
+ env: z.ZodOptional<z.ZodString>;
152
+ excludeDynamic: z.ZodOptional<z.ZodBoolean>;
153
+ excludeEnv: z.ZodOptional<z.ZodBoolean>;
154
+ excludeGlobal: z.ZodOptional<z.ZodBoolean>;
155
+ excludePrivate: z.ZodOptional<z.ZodBoolean>;
156
+ excludePublic: z.ZodOptional<z.ZodBoolean>;
157
+ loadProcess: z.ZodOptional<z.ZodBoolean>;
158
+ log: z.ZodOptional<z.ZodBoolean>;
159
+ logger: z.ZodDefault<z.ZodUnknown>;
160
+ outputPath: z.ZodOptional<z.ZodString>;
161
+ privateToken: z.ZodOptional<z.ZodString>;
162
+ debug: z.ZodOptional<z.ZodBoolean>;
163
+ strict: z.ZodOptional<z.ZodBoolean>;
164
+ capture: z.ZodOptional<z.ZodBoolean>;
165
+ trace: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodArray<z.ZodString>]>>;
166
+ redact: z.ZodOptional<z.ZodBoolean>;
167
+ warnEntropy: z.ZodOptional<z.ZodBoolean>;
168
+ entropyThreshold: z.ZodOptional<z.ZodNumber>;
169
+ entropyMinLength: z.ZodOptional<z.ZodNumber>;
170
+ entropyWhitelist: z.ZodOptional<z.ZodArray<z.ZodString>>;
171
+ redactPatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
172
+ paths: z.ZodOptional<z.ZodString>;
173
+ pathsDelimiter: z.ZodOptional<z.ZodString>;
174
+ pathsDelimiterPattern: z.ZodOptional<z.ZodString>;
175
+ scripts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
176
+ shell: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
177
+ vars: z.ZodOptional<z.ZodString>;
178
+ varsAssignor: z.ZodOptional<z.ZodString>;
179
+ varsAssignorPattern: z.ZodOptional<z.ZodString>;
180
+ varsDelimiter: z.ZodOptional<z.ZodString>;
181
+ varsDelimiterPattern: z.ZodOptional<z.ZodString>;
182
+ }, z.core.$strip>;
183
+
184
+ /**
185
+ * Resolved programmatic options schema (post-inheritance).
186
+ * For now, this mirrors the RAW schema; future stages may materialize defaults
187
+ * and narrow shapes as resolution is wired into the host.
188
+ */
189
+ /**
190
+ * Programmatic options schema (resolved).
191
+ *
192
+ * Today this mirrors {@link getDotenvOptionsSchemaRaw}, but is kept as a distinct export
193
+ * so future resolution steps can narrow or materialize defaults without breaking the API.
194
+ *
195
+ * @public
196
+ */
197
+ declare const getDotenvOptionsSchemaResolved: z.ZodObject<{
198
+ defaultEnv: z.ZodOptional<z.ZodString>;
199
+ dotenvToken: z.ZodOptional<z.ZodString>;
200
+ dynamicPath: z.ZodOptional<z.ZodString>;
201
+ dynamic: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
202
+ env: z.ZodOptional<z.ZodString>;
203
+ excludeDynamic: z.ZodOptional<z.ZodBoolean>;
204
+ excludeEnv: z.ZodOptional<z.ZodBoolean>;
205
+ excludeGlobal: z.ZodOptional<z.ZodBoolean>;
206
+ excludePrivate: z.ZodOptional<z.ZodBoolean>;
207
+ excludePublic: z.ZodOptional<z.ZodBoolean>;
208
+ loadProcess: z.ZodOptional<z.ZodBoolean>;
209
+ log: z.ZodOptional<z.ZodBoolean>;
210
+ logger: z.ZodDefault<z.ZodUnknown>;
211
+ outputPath: z.ZodOptional<z.ZodString>;
212
+ paths: z.ZodOptional<z.ZodArray<z.ZodString>>;
213
+ privateToken: z.ZodOptional<z.ZodString>;
214
+ vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodString>>>;
215
+ }, z.core.$strip>;
216
+
5
217
  /**
6
218
  * Minimal root options shape shared by CLI and generator layers.
7
219
  * Keep keys optional to respect exactOptionalPropertyTypes semantics.
@@ -121,6 +333,12 @@ interface GetDotenvCliCtx<TOptions extends GetDotenvOptions = GetDotenvOptions>
121
333
  * Final composed dotenv environment for this invocation.
122
334
  */
123
335
  dotenv: ProcessEnv;
336
+ /**
337
+ * Dotenv provenance history for {@link GetDotenvCliCtx.dotenv}.
338
+ *
339
+ * Descriptor-only: does not include value payloads.
340
+ */
341
+ dotenvProvenance: DotenvProvenance;
124
342
  /**
125
343
  * Optional runtime plugin state bag. Plugins may publish non-sensitive metadata here.
126
344
  */
@@ -148,90 +366,6 @@ interface BrandOptions {
148
366
  helpHeader?: string;
149
367
  }
150
368
 
151
- /**
152
- * Resolved CLI options schema.
153
- * For the current step this mirrors the RAW schema; later stages may further
154
- * narrow types post-resolution in the host pipeline.
155
- */
156
- /**
157
- * CLI options schema (resolved).
158
- *
159
- * Today this mirrors {@link getDotenvCliOptionsSchemaRaw}, but is kept as a distinct export
160
- * so future resolution steps can narrow or materialize defaults without breaking the API.
161
- *
162
- * @public
163
- */
164
- declare const getDotenvCliOptionsSchemaResolved: z.ZodObject<{
165
- defaultEnv: z.ZodOptional<z.ZodString>;
166
- dotenvToken: z.ZodOptional<z.ZodString>;
167
- dynamicPath: z.ZodOptional<z.ZodString>;
168
- dynamic: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
169
- env: z.ZodOptional<z.ZodString>;
170
- excludeDynamic: z.ZodOptional<z.ZodBoolean>;
171
- excludeEnv: z.ZodOptional<z.ZodBoolean>;
172
- excludeGlobal: z.ZodOptional<z.ZodBoolean>;
173
- excludePrivate: z.ZodOptional<z.ZodBoolean>;
174
- excludePublic: z.ZodOptional<z.ZodBoolean>;
175
- loadProcess: z.ZodOptional<z.ZodBoolean>;
176
- log: z.ZodOptional<z.ZodBoolean>;
177
- logger: z.ZodDefault<z.ZodUnknown>;
178
- outputPath: z.ZodOptional<z.ZodString>;
179
- privateToken: z.ZodOptional<z.ZodString>;
180
- debug: z.ZodOptional<z.ZodBoolean>;
181
- strict: z.ZodOptional<z.ZodBoolean>;
182
- capture: z.ZodOptional<z.ZodBoolean>;
183
- trace: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodArray<z.ZodString>]>>;
184
- redact: z.ZodOptional<z.ZodBoolean>;
185
- warnEntropy: z.ZodOptional<z.ZodBoolean>;
186
- entropyThreshold: z.ZodOptional<z.ZodNumber>;
187
- entropyMinLength: z.ZodOptional<z.ZodNumber>;
188
- entropyWhitelist: z.ZodOptional<z.ZodArray<z.ZodString>>;
189
- redactPatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
190
- paths: z.ZodOptional<z.ZodString>;
191
- pathsDelimiter: z.ZodOptional<z.ZodString>;
192
- pathsDelimiterPattern: z.ZodOptional<z.ZodString>;
193
- scripts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
194
- shell: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
195
- vars: z.ZodOptional<z.ZodString>;
196
- varsAssignor: z.ZodOptional<z.ZodString>;
197
- varsAssignorPattern: z.ZodOptional<z.ZodString>;
198
- varsDelimiter: z.ZodOptional<z.ZodString>;
199
- varsDelimiterPattern: z.ZodOptional<z.ZodString>;
200
- }, z.core.$strip>;
201
-
202
- /**
203
- * Resolved programmatic options schema (post-inheritance).
204
- * For now, this mirrors the RAW schema; future stages may materialize defaults
205
- * and narrow shapes as resolution is wired into the host.
206
- */
207
- /**
208
- * Programmatic options schema (resolved).
209
- *
210
- * Today this mirrors {@link getDotenvOptionsSchemaRaw}, but is kept as a distinct export
211
- * so future resolution steps can narrow or materialize defaults without breaking the API.
212
- *
213
- * @public
214
- */
215
- declare const getDotenvOptionsSchemaResolved: z.ZodObject<{
216
- defaultEnv: z.ZodOptional<z.ZodString>;
217
- dotenvToken: z.ZodOptional<z.ZodString>;
218
- dynamicPath: z.ZodOptional<z.ZodString>;
219
- dynamic: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
220
- env: z.ZodOptional<z.ZodString>;
221
- excludeDynamic: z.ZodOptional<z.ZodBoolean>;
222
- excludeEnv: z.ZodOptional<z.ZodBoolean>;
223
- excludeGlobal: z.ZodOptional<z.ZodBoolean>;
224
- excludePrivate: z.ZodOptional<z.ZodBoolean>;
225
- excludePublic: z.ZodOptional<z.ZodBoolean>;
226
- loadProcess: z.ZodOptional<z.ZodBoolean>;
227
- log: z.ZodOptional<z.ZodBoolean>;
228
- logger: z.ZodDefault<z.ZodUnknown>;
229
- outputPath: z.ZodOptional<z.ZodString>;
230
- paths: z.ZodOptional<z.ZodArray<z.ZodString>>;
231
- privateToken: z.ZodOptional<z.ZodString>;
232
- vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodString>>>;
233
- }, z.core.$strip>;
234
-
235
369
  /**
236
370
  * Canonical programmatic options and helpers for get-dotenv.
237
371
  *