@karmaniverous/get-dotenv 7.0.8 → 7.0.9

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.
@@ -6,19 +6,19 @@ import 'fs-extra';
6
6
  import 'node:path';
7
7
  import 'radash';
8
8
  import 'node:buffer';
9
- import { a as defaultsDeep, g as getDotenvCliOptions2Options, b as baseRootOptionDefaults, G as GetDotenvCli, c as attachRootOptions } from './readMergedOptions-BT1C87_u.mjs';
9
+ import { a as defaultsDeep, g as getDotenvCliOptions2Options, b as baseRootOptionDefaults, G as GetDotenvCli, c as attachRootOptions } from './readMergedOptions-_hjyCNZ7.mjs';
10
10
  import 'crypto';
11
11
  import 'url';
12
12
  import '@commander-js/extra-typings';
13
13
  import 'dotenv';
14
14
  import 'execa';
15
15
  import { t as toHelpConfig } from './helpConfig-CGejgwWW.mjs';
16
- import { r as resolveCliOptions } from './resolveCliOptions-BbfouWSK.mjs';
16
+ import { r as resolveCliOptions } from './resolveCliOptions-Dp7wPY1K.mjs';
17
17
  import { v as validateEnvAgainstSources } from './validate-CDl0rE6k.mjs';
18
18
  import { awsPlugin } from '../plugins-aws.mjs';
19
- import { a as awsWhoamiPlugin } from './index-CNXekCQC.mjs';
19
+ import { a as awsWhoamiPlugin } from './index-Cay5Gzhu.mjs';
20
20
  import { batchPlugin } from '../plugins-batch.mjs';
21
- import { c as cmdPlugin } from './index-DnG3N6yj.mjs';
21
+ import { c as cmdPlugin } from './index-xqvxTkr9.mjs';
22
22
  import { initPlugin } from '../plugins-init.mjs';
23
23
 
24
24
  const dbg = (...args) => {
@@ -88,6 +88,10 @@ function installRootHooks(program, defaults) {
88
88
  runAfterResolve: false,
89
89
  });
90
90
  propagateResolvedEnv(merged);
91
+ // Propagate debug flag to env so dbg() helpers and error boundary see it.
92
+ if (merged.debug) {
93
+ process.env.GETDOTENV_DEBUG = '1';
94
+ }
91
95
  // Refresh dynamic help text using the resolved config slices.
92
96
  try {
93
97
  const ctx = program.getCtx();
@@ -140,6 +144,10 @@ function installRootHooks(program, defaults) {
140
144
  // builds a fresh `merged` and overwrites the options bag, so the env
141
145
  // propagated by preSubcommand is lost without this call.
142
146
  propagateResolvedEnv(merged);
147
+ // Propagate debug flag to env so dbg() helpers and error boundary see it.
148
+ if (merged.debug) {
149
+ process.env.GETDOTENV_DEBUG = '1';
150
+ }
143
151
  try {
144
152
  const ctx = program.getCtx();
145
153
  const helpCfg = toHelpConfig(merged, ctx.pluginConfigs);
@@ -273,6 +281,25 @@ function applyRootVisibility(program, visibility) {
273
281
  }
274
282
  }
275
283
 
284
+ /**
285
+ * Top-level error boundary for the CLI runner.
286
+ *
287
+ * Presents errors as clean one-line messages by default.
288
+ * When GETDOTENV_DEBUG is set, prints the full stack trace.
289
+ */
290
+ function handleCliError(err, argv) {
291
+ const isDebug = process.env.GETDOTENV_DEBUG === '1' ||
292
+ process.env.GETDOTENV_DEBUG === 'true' ||
293
+ (Array.isArray(argv) && argv.includes('--debug'));
294
+ const message = err instanceof Error ? err.message : String(err);
295
+ if (isDebug) {
296
+ console.error(err instanceof Error ? (err.stack ?? message) : message);
297
+ }
298
+ else {
299
+ console.error(`Error: ${message}`);
300
+ }
301
+ process.exitCode = 1;
302
+ }
276
303
  /**
277
304
  * Create a configured get-dotenv CLI host.
278
305
  * Applies defaults, installs root hooks, and composes plugins.
@@ -468,7 +495,12 @@ function createCli(opts = {}) {
468
495
  ? { helpHeader: opts.branding }
469
496
  : {}),
470
497
  });
471
- await program.parseAsync(['node', alias, ...argv]);
498
+ try {
499
+ await program.parseAsync(['node', alias, ...argv]);
500
+ }
501
+ catch (err) {
502
+ handleCliError(err, argv);
503
+ }
472
504
  };
473
505
  }
474
506
 
@@ -1,4 +1,4 @@
1
- import { d as definePlugin } from './readMergedOptions-BT1C87_u.mjs';
1
+ import { d as definePlugin } from './readMergedOptions-_hjyCNZ7.mjs';
2
2
  import 'execa';
3
3
  import 'radash';
4
4
  import 'node:buffer';
@@ -14,7 +14,6 @@ import './loader-C3DtD6HB.mjs';
14
14
  import 'package-directory';
15
15
  import 'yaml';
16
16
  import 'zod';
17
- import { STSClient, GetCallerIdentityCommand } from '@aws-sdk/client-sts';
18
17
 
19
18
  /**
20
19
  * Attach the default action for the `aws whoami` command.
@@ -26,6 +25,22 @@ import { STSClient, GetCallerIdentityCommand } from '@aws-sdk/client-sts';
26
25
  */
27
26
  function attachWhoamiDefaultAction(cli) {
28
27
  cli.action(async () => {
28
+ // Dynamic import: @aws-sdk/client-sts is an optional peer dependency.
29
+ // A static import would cause Node to fail at startup (even for -h)
30
+ // when the SDK is not installed in the consumer's project.
31
+ let GetCallerIdentityCommand;
32
+ let STSClient;
33
+ try {
34
+ const mod = await import('@aws-sdk/client-sts');
35
+ GetCallerIdentityCommand = mod.GetCallerIdentityCommand;
36
+ STSClient = mod.STSClient;
37
+ }
38
+ catch {
39
+ console.error('The aws whoami command requires @aws-sdk/client-sts.\n' +
40
+ 'Install it with: npm install @aws-sdk/client-sts');
41
+ process.exitCode = 1;
42
+ return;
43
+ }
29
44
  // The AWS SDK default providers will read credentials from process.env,
30
45
  // which the aws parent has already populated.
31
46
  const client = new STSClient();
@@ -1,5 +1,5 @@
1
1
  import { camel } from 'radash';
2
- import { r as readMergedOptions, a as defaultsDeep, g as getDotenvCliOptions2Options, d as definePlugin } from './readMergedOptions-BT1C87_u.mjs';
2
+ import { r as readMergedOptions, a as defaultsDeep, g as getDotenvCliOptions2Options, d as definePlugin } from './readMergedOptions-_hjyCNZ7.mjs';
3
3
  import 'execa';
4
4
  import 'node:buffer';
5
5
  import 'fs-extra';
@@ -17,7 +17,7 @@ import { z } from 'zod';
17
17
  import { r as resolveCommand, a as resolveShell, t as tokenize, s as shouldCapture, c as runCommand, b as buildSpawnEnv } from './spawnEnv-DvisqPiU.mjs';
18
18
  import { m as maybePreserveNodeEvalArgv, c as composeNestedEnv, s as stripOne } from './invoke-DuRPU1oC.mjs';
19
19
  import { f as dotenvExpandFromProcessEnv } from './readDotenvCascade-CfFPgLCp.mjs';
20
- import { b as baseGetDotenvCliOptions, r as resolveCliOptions } from './resolveCliOptions-BbfouWSK.mjs';
20
+ import { b as baseGetDotenvCliOptions, r as resolveCliOptions } from './resolveCliOptions-Dp7wPY1K.mjs';
21
21
 
22
22
  /** src/diagnostics/entropy.ts
23
23
  * Entropy diagnostics (presentation-only).
@@ -737,6 +737,19 @@ const attachRootOptions = (program, defaults) => {
737
737
  program.addOption(lf);
738
738
  program.setOptionGroup(lf, GROUP);
739
739
  }
740
+ // Debug ON/OFF (dynamic)
741
+ {
742
+ const dOn = program
743
+ .createDynamicOption('--debug', (cfg) => `enable debug logging to stderr ${onOff(true, Boolean(cfg.debug))}`)
744
+ .conflicts('debugOff');
745
+ program.addOption(dOn);
746
+ program.setOptionGroup(dOn, GROUP);
747
+ const dOff = program
748
+ .createDynamicOption('--debug-off', (cfg) => `enable debug logging to stderr ${onOff(false, !cfg.debug)}`)
749
+ .conflicts('debug');
750
+ program.addOption(dOff);
751
+ program.setOptionGroup(dOff, GROUP);
752
+ }
740
753
  // Capture flag (no default display; static)
741
754
  {
742
755
  const opt = new Option('--capture', 'capture child process stdio for commands (tests/CI)');
@@ -1,4 +1,4 @@
1
- import { b as baseRootOptionDefaults, a as defaultsDeep } from './readMergedOptions-BT1C87_u.mjs';
1
+ import { b as baseRootOptionDefaults, a as defaultsDeep } from './readMergedOptions-_hjyCNZ7.mjs';
2
2
  import 'radash';
3
3
  import 'node:buffer';
4
4
  import 'fs-extra';
@@ -1,4 +1,4 @@
1
- import { d as definePlugin } from './readMergedOptions-BT1C87_u.mjs';
1
+ import { d as definePlugin } from './readMergedOptions-_hjyCNZ7.mjs';
2
2
 
3
3
  /**
4
4
  * Create a namespace-only parent plugin (a group command) for composing plugins
package/dist/cli.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export { c as createCli } from './chunks/createCli-CUPiFVdZ.mjs';
1
+ export { c as createCli } from './chunks/createCli-CCxTLJ1j.mjs';
2
2
  import 'zod';
3
3
  import 'path';
4
4
  import './chunks/loader-C3DtD6HB.mjs';
@@ -13,22 +13,21 @@ import './chunks/loadModuleDefault-Dj8B3Stt.mjs';
13
13
  import 'crypto';
14
14
  import '@commander-js/extra-typings';
15
15
  import 'nanoid';
16
- import './chunks/readMergedOptions-BT1C87_u.mjs';
16
+ import './chunks/readMergedOptions-_hjyCNZ7.mjs';
17
17
  import './chunks/readDotenvCascade-CfFPgLCp.mjs';
18
18
  import 'dotenv';
19
19
  import 'execa';
20
20
  import './chunks/helpConfig-CGejgwWW.mjs';
21
- import './chunks/resolveCliOptions-BbfouWSK.mjs';
21
+ import './chunks/resolveCliOptions-Dp7wPY1K.mjs';
22
22
  import './chunks/validate-CDl0rE6k.mjs';
23
23
  import './plugins-aws.mjs';
24
24
  import './chunks/spawnEnv-DvisqPiU.mjs';
25
- import './chunks/index-CNXekCQC.mjs';
26
- import '@aws-sdk/client-sts';
25
+ import './chunks/index-Cay5Gzhu.mjs';
27
26
  import './plugins-batch.mjs';
28
27
  import './chunks/invoke-DuRPU1oC.mjs';
29
28
  import 'globby';
30
29
  import 'os';
31
- import './chunks/index-DnG3N6yj.mjs';
30
+ import './chunks/index-xqvxTkr9.mjs';
32
31
  import './plugins-init.mjs';
33
32
  import 'node:process';
34
33
  import 'readline/promises';
package/dist/cliHost.mjs CHANGED
@@ -1,7 +1,7 @@
1
- export { G as GetDotenvCli, d as definePlugin, r as readMergedOptions } from './chunks/readMergedOptions-BT1C87_u.mjs';
1
+ export { G as GetDotenvCli, d as definePlugin, r as readMergedOptions } from './chunks/readMergedOptions-_hjyCNZ7.mjs';
2
2
  export { b as buildSpawnEnv, r as resolveCommand, a as resolveShell, c as runCommand, d as runCommandResult, s as shouldCapture } from './chunks/spawnEnv-DvisqPiU.mjs';
3
- export { b as baseGetDotenvCliOptions, r as resolveCliOptions } from './chunks/resolveCliOptions-BbfouWSK.mjs';
4
- export { d as defineScripts, g as groupPlugins } from './chunks/types-BkQxnyZK.mjs';
3
+ export { b as baseGetDotenvCliOptions, r as resolveCliOptions } from './chunks/resolveCliOptions-Dp7wPY1K.mjs';
4
+ export { d as defineScripts, g as groupPlugins } from './chunks/types-zXDNhcST.mjs';
5
5
  export { t as toHelpConfig } from './chunks/helpConfig-CGejgwWW.mjs';
6
6
  export { c as composeNestedEnv, m as maybePreserveNodeEvalArgv, s as stripOne } from './chunks/invoke-DuRPU1oC.mjs';
7
7
  export { z } from 'zod';
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { c as createCli } from './chunks/createCli-CUPiFVdZ.mjs';
2
+ import { c as createCli } from './chunks/createCli-CCxTLJ1j.mjs';
3
3
  import 'zod';
4
4
  import 'path';
5
5
  import './chunks/loader-C3DtD6HB.mjs';
@@ -14,22 +14,21 @@ import './chunks/loadModuleDefault-Dj8B3Stt.mjs';
14
14
  import 'crypto';
15
15
  import '@commander-js/extra-typings';
16
16
  import 'nanoid';
17
- import './chunks/readMergedOptions-BT1C87_u.mjs';
17
+ import './chunks/readMergedOptions-_hjyCNZ7.mjs';
18
18
  import './chunks/readDotenvCascade-CfFPgLCp.mjs';
19
19
  import 'dotenv';
20
20
  import 'execa';
21
21
  import './chunks/helpConfig-CGejgwWW.mjs';
22
- import './chunks/resolveCliOptions-BbfouWSK.mjs';
22
+ import './chunks/resolveCliOptions-Dp7wPY1K.mjs';
23
23
  import './chunks/validate-CDl0rE6k.mjs';
24
24
  import './plugins-aws.mjs';
25
25
  import './chunks/spawnEnv-DvisqPiU.mjs';
26
- import './chunks/index-CNXekCQC.mjs';
27
- import '@aws-sdk/client-sts';
26
+ import './chunks/index-Cay5Gzhu.mjs';
28
27
  import './plugins-batch.mjs';
29
28
  import './chunks/invoke-DuRPU1oC.mjs';
30
29
  import 'globby';
31
30
  import 'os';
32
- import './chunks/index-DnG3N6yj.mjs';
31
+ import './chunks/index-xqvxTkr9.mjs';
33
32
  import './plugins-init.mjs';
34
33
  import 'node:process';
35
34
  import 'readline/promises';
package/dist/index.mjs CHANGED
@@ -1,8 +1,8 @@
1
- export { c as createCli } from './chunks/createCli-CUPiFVdZ.mjs';
2
- import { e as resolveGetDotenvOptions, w as writeDotenvFile } from './chunks/readMergedOptions-BT1C87_u.mjs';
3
- export { G as GetDotenvCli, f as assertLogger, b as baseRootOptionDefaults, a as defaultsDeep, h as defineDynamic, i as defineGetDotenvConfig, d as definePlugin, g as getDotenvCliOptions2Options, j as interpolateDeep, r as readMergedOptions } from './chunks/readMergedOptions-BT1C87_u.mjs';
1
+ export { c as createCli } from './chunks/createCli-CCxTLJ1j.mjs';
2
+ import { e as resolveGetDotenvOptions, w as writeDotenvFile } from './chunks/readMergedOptions-_hjyCNZ7.mjs';
3
+ export { G as GetDotenvCli, f as assertLogger, b as baseRootOptionDefaults, a as defaultsDeep, h as defineDynamic, i as defineGetDotenvConfig, d as definePlugin, g as getDotenvCliOptions2Options, j as interpolateDeep, r as readMergedOptions } from './chunks/readMergedOptions-_hjyCNZ7.mjs';
4
4
  export { b as buildSpawnEnv, s as shouldCapture, t as tokenize } from './chunks/spawnEnv-DvisqPiU.mjs';
5
- export { d as defineScripts, g as groupPlugins } from './chunks/types-BkQxnyZK.mjs';
5
+ export { d as defineScripts, g as groupPlugins } from './chunks/types-zXDNhcST.mjs';
6
6
  import { omit, pick } from 'radash';
7
7
  import { Buffer } from 'node:buffer';
8
8
  export { l as loadModuleDefault } from './chunks/loadModuleDefault-Dj8B3Stt.mjs';
@@ -10,8 +10,8 @@ import { InvalidArgumentError } from '@commander-js/extra-typings';
10
10
  import 'zod';
11
11
  import { nanoid } from 'nanoid';
12
12
  import path$1 from 'path';
13
- import { r as redactObject, m as maybeWarnEntropy } from './chunks/index-DnG3N6yj.mjs';
14
- export { a as redactDisplay, t as traceChildEnv } from './chunks/index-DnG3N6yj.mjs';
13
+ import { r as redactObject, m as maybeWarnEntropy } from './chunks/index-xqvxTkr9.mjs';
14
+ export { a as redactDisplay, t as traceChildEnv } from './chunks/index-xqvxTkr9.mjs';
15
15
  import { g as readDotenv, d as dotenvExpandAll, a as applyDynamicMap, l as loadAndApplyDynamic } from './chunks/readDotenvCascade-CfFPgLCp.mjs';
16
16
  export { h as dotenvExpand, f as dotenvExpandFromProcessEnv } from './chunks/readDotenvCascade-CfFPgLCp.mjs';
17
17
  import fs from 'fs-extra';
@@ -24,11 +24,10 @@ import 'package-directory';
24
24
  import 'yaml';
25
25
  import 'execa';
26
26
  import './chunks/helpConfig-CGejgwWW.mjs';
27
- import './chunks/resolveCliOptions-BbfouWSK.mjs';
27
+ import './chunks/resolveCliOptions-Dp7wPY1K.mjs';
28
28
  import './chunks/validate-CDl0rE6k.mjs';
29
29
  import './plugins-aws.mjs';
30
- import './chunks/index-CNXekCQC.mjs';
31
- import '@aws-sdk/client-sts';
30
+ import './chunks/index-Cay5Gzhu.mjs';
32
31
  import './plugins-batch.mjs';
33
32
  import './chunks/invoke-DuRPU1oC.mjs';
34
33
  import 'globby';
@@ -1,4 +1,4 @@
1
- import { r as readMergedOptions, d as definePlugin } from './chunks/readMergedOptions-BT1C87_u.mjs';
1
+ import { r as readMergedOptions, d as definePlugin } from './chunks/readMergedOptions-_hjyCNZ7.mjs';
2
2
  import 'execa';
3
3
  import { isObject } from 'radash';
4
4
  import 'node:buffer';
@@ -1,4 +1,4 @@
1
- import { r as readMergedOptions, d as definePlugin } from './chunks/readMergedOptions-BT1C87_u.mjs';
1
+ import { r as readMergedOptions, d as definePlugin } from './chunks/readMergedOptions-_hjyCNZ7.mjs';
2
2
  import 'execa';
3
3
  import 'radash';
4
4
  import 'node:buffer';
@@ -1,5 +1,5 @@
1
1
  import 'radash';
2
- import './chunks/readMergedOptions-BT1C87_u.mjs';
2
+ import './chunks/readMergedOptions-_hjyCNZ7.mjs';
3
3
  import 'execa';
4
4
  import 'node:buffer';
5
5
  import 'fs-extra';
@@ -14,9 +14,9 @@ import './chunks/loader-C3DtD6HB.mjs';
14
14
  import 'package-directory';
15
15
  import 'yaml';
16
16
  import 'zod';
17
- export { c as cmdPlugin } from './chunks/index-DnG3N6yj.mjs';
17
+ export { c as cmdPlugin } from './chunks/index-xqvxTkr9.mjs';
18
18
  import './chunks/readDotenvCascade-CfFPgLCp.mjs';
19
19
  import './chunks/loadModuleDefault-Dj8B3Stt.mjs';
20
20
  import './chunks/spawnEnv-DvisqPiU.mjs';
21
21
  import './chunks/invoke-DuRPU1oC.mjs';
22
- import './chunks/resolveCliOptions-BbfouWSK.mjs';
22
+ import './chunks/resolveCliOptions-Dp7wPY1K.mjs';
@@ -1,4 +1,4 @@
1
- import { r as readMergedOptions, d as definePlugin } from './chunks/readMergedOptions-BT1C87_u.mjs';
1
+ import { r as readMergedOptions, d as definePlugin } from './chunks/readMergedOptions-_hjyCNZ7.mjs';
2
2
  import 'execa';
3
3
  import 'radash';
4
4
  import 'node:buffer';
package/dist/plugins.mjs CHANGED
@@ -1,9 +1,9 @@
1
1
  export { awsPlugin, getAwsRegion } from './plugins-aws.mjs';
2
- export { a as awsWhoamiPlugin } from './chunks/index-CNXekCQC.mjs';
2
+ export { a as awsWhoamiPlugin } from './chunks/index-Cay5Gzhu.mjs';
3
3
  export { batchPlugin } from './plugins-batch.mjs';
4
- export { c as cmdPlugin } from './chunks/index-DnG3N6yj.mjs';
4
+ export { c as cmdPlugin } from './chunks/index-xqvxTkr9.mjs';
5
5
  export { initPlugin } from './plugins-init.mjs';
6
- import './chunks/readMergedOptions-BT1C87_u.mjs';
6
+ import './chunks/readMergedOptions-_hjyCNZ7.mjs';
7
7
  import 'zod';
8
8
  import '@commander-js/extra-typings';
9
9
  import './chunks/readDotenvCascade-CfFPgLCp.mjs';
@@ -22,11 +22,10 @@ import 'package-directory';
22
22
  import 'yaml';
23
23
  import 'execa';
24
24
  import './chunks/spawnEnv-DvisqPiU.mjs';
25
- import '@aws-sdk/client-sts';
26
25
  import './chunks/invoke-DuRPU1oC.mjs';
27
26
  import 'globby';
28
27
  import 'os';
29
- import './chunks/resolveCliOptions-BbfouWSK.mjs';
28
+ import './chunks/resolveCliOptions-Dp7wPY1K.mjs';
30
29
  import 'node:process';
31
30
  import 'readline/promises';
32
31
  import 'node:url';
package/package.json CHANGED
@@ -221,5 +221,5 @@
221
221
  },
222
222
  "type": "module",
223
223
  "types": "dist/index.d.ts",
224
- "version": "7.0.8"
224
+ "version": "7.0.9"
225
225
  }