@chriscode/hush 3.0.0 → 3.0.1

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/dist/cli.js CHANGED
@@ -2,6 +2,7 @@
2
2
  import { createRequire } from 'node:module';
3
3
  import pc from 'picocolors';
4
4
  import { encryptCommand } from './commands/encrypt.js';
5
+ import { decryptCommand } from './commands/decrypt.js';
5
6
  import { editCommand } from './commands/edit.js';
6
7
  import { setCommand } from './commands/set.js';
7
8
  import { runCommand } from './commands/run.js';
@@ -46,6 +47,9 @@ ${pc.bold('Debugging Commands:')}
46
47
  resolve <target> Show what variables a target receives (AI-safe)
47
48
  trace <key> Trace a variable through sources and targets (AI-safe)
48
49
 
50
+ ${pc.bold('Advanced Commands:')}
51
+ decrypt --force Write secrets to disk (requires confirmation, last resort)
52
+
49
53
  ${pc.bold('Options:')}
50
54
  -e, --env <env> Environment: development or production (default: development)
51
55
  -r, --root <dir> Root directory (default: current directory)
@@ -300,6 +304,9 @@ async function main() {
300
304
  case 'encrypt':
301
305
  await encryptCommand({ root });
302
306
  break;
307
+ case 'decrypt':
308
+ await decryptCommand({ root, env, force });
309
+ break;
303
310
  case 'run':
304
311
  await runCommand({ root, env, target, command: cmdArgs });
305
312
  break;
@@ -0,0 +1,3 @@
1
+ import type { DecryptOptions } from '../types.js';
2
+ export declare function decryptCommand(options: DecryptOptions): Promise<void>;
3
+ //# sourceMappingURL=decrypt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decrypt.d.ts","sourceRoot":"","sources":["../../src/commands/decrypt.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAU,MAAM,aAAa,CAAC;AAmD1D,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA8F3E"}
@@ -0,0 +1,129 @@
1
+ import { createInterface } from 'node:readline';
2
+ import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
3
+ import { join } from 'node:path';
4
+ import pc from 'picocolors';
5
+ import { loadConfig } from '../config/loader.js';
6
+ import { filterVarsForTarget } from '../core/filter.js';
7
+ import { interpolateVars, getUnresolvedVars } from '../core/interpolate.js';
8
+ import { mergeVars } from '../core/merge.js';
9
+ import { parseEnvContent, parseEnvFile } from '../core/parse.js';
10
+ import { decrypt as sopsDecrypt } from '../core/sops.js';
11
+ import { formatVars } from '../formats/index.js';
12
+ import { FORMAT_OUTPUT_FILES } from '../types.js';
13
+ function getEncryptedPath(sourcePath) {
14
+ return sourcePath + '.encrypted';
15
+ }
16
+ async function confirmDangerousOperation() {
17
+ if (!process.stdin.isTTY) {
18
+ console.error(pc.red('\nError: decrypt --force requires interactive confirmation.'));
19
+ console.error(pc.dim('This command cannot be run in non-interactive environments.'));
20
+ console.error(pc.dim('\nUse "hush run -- <command>" instead to inject secrets into memory.'));
21
+ return false;
22
+ }
23
+ console.log('');
24
+ console.log(pc.red('━'.repeat(70)));
25
+ console.log(pc.red(pc.bold(' ⚠️ WARNING: WRITING PLAINTEXT SECRETS TO DISK')));
26
+ console.log(pc.red('━'.repeat(70)));
27
+ console.log('');
28
+ console.log(pc.yellow(' This will create unencrypted .env files that:'));
29
+ console.log(pc.dim(' • Can be read by AI assistants, scripts, and other tools'));
30
+ console.log(pc.dim(' • May accidentally be committed to git'));
31
+ console.log(pc.dim(' • Defeat the "encrypted at rest" security model'));
32
+ console.log('');
33
+ console.log(pc.green(' Recommended alternative:'));
34
+ console.log(pc.cyan(' hush run -- <your-command>'));
35
+ console.log(pc.dim(' Decrypts to memory only, secrets never touch disk.'));
36
+ console.log('');
37
+ console.log(pc.red('━'.repeat(70)));
38
+ console.log('');
39
+ const rl = createInterface({
40
+ input: process.stdin,
41
+ output: process.stdout,
42
+ });
43
+ return new Promise((resolve) => {
44
+ rl.question(`${pc.bold('Type "yes" to proceed:')} `, (answer) => {
45
+ rl.close();
46
+ if (answer.toLowerCase() === 'yes') {
47
+ console.log('');
48
+ resolve(true);
49
+ }
50
+ else {
51
+ console.log(pc.dim('\nAborted. No files were written.'));
52
+ resolve(false);
53
+ }
54
+ });
55
+ });
56
+ }
57
+ export async function decryptCommand(options) {
58
+ const { root, env, force } = options;
59
+ if (!force) {
60
+ console.error(pc.red('Error: decrypt requires --force flag'));
61
+ console.error('');
62
+ console.error(pc.dim('This command writes plaintext secrets to disk, which is generally unsafe.'));
63
+ console.error(pc.dim('Use "hush run -- <command>" instead for memory-only decryption.'));
64
+ console.error('');
65
+ console.error(pc.dim('If you really need plaintext files:'));
66
+ console.error(pc.cyan(' hush decrypt --force'));
67
+ process.exit(1);
68
+ }
69
+ const confirmed = await confirmDangerousOperation();
70
+ if (!confirmed) {
71
+ process.exit(0);
72
+ }
73
+ const config = loadConfig(root);
74
+ console.log(pc.yellow(`⚠️ Writing unencrypted secrets for ${env}...`));
75
+ const sharedEncrypted = join(root, getEncryptedPath(config.sources.shared));
76
+ const envEncrypted = join(root, getEncryptedPath(config.sources[env]));
77
+ const localPath = join(root, '.env.local');
78
+ const varSources = [];
79
+ if (existsSync(sharedEncrypted)) {
80
+ const content = sopsDecrypt(sharedEncrypted);
81
+ const vars = parseEnvContent(content);
82
+ varSources.push(vars);
83
+ console.log(pc.dim(` ${config.sources.shared}.encrypted: ${vars.length} vars`));
84
+ }
85
+ if (existsSync(envEncrypted)) {
86
+ const content = sopsDecrypt(envEncrypted);
87
+ const vars = parseEnvContent(content);
88
+ varSources.push(vars);
89
+ console.log(pc.dim(` ${config.sources[env]}.encrypted: ${vars.length} vars`));
90
+ }
91
+ if (existsSync(localPath)) {
92
+ const vars = parseEnvFile(localPath);
93
+ varSources.push(vars);
94
+ console.log(pc.dim(` .env.local: ${vars.length} vars (overrides)`));
95
+ }
96
+ if (varSources.length === 0) {
97
+ console.error(pc.red('No encrypted files found'));
98
+ console.error(pc.dim(`Expected: ${sharedEncrypted}`));
99
+ process.exit(1);
100
+ }
101
+ const merged = mergeVars(...varSources);
102
+ const interpolated = interpolateVars(merged);
103
+ const unresolved = getUnresolvedVars(interpolated);
104
+ if (unresolved.length > 0) {
105
+ console.warn(pc.yellow(` Warning: ${unresolved.length} vars have unresolved references`));
106
+ }
107
+ console.log(pc.yellow(`\n⚠️ Writing to ${config.targets.length} targets:`));
108
+ for (const target of config.targets) {
109
+ const targetDir = join(root, target.path);
110
+ const filtered = filterVarsForTarget(interpolated, target);
111
+ if (filtered.length === 0) {
112
+ console.log(pc.dim(` ${target.path}/ - no matching vars, skipped`));
113
+ continue;
114
+ }
115
+ const outputFilename = FORMAT_OUTPUT_FILES[target.format][env];
116
+ const outputPath = join(targetDir, outputFilename);
117
+ if (!existsSync(targetDir)) {
118
+ mkdirSync(targetDir, { recursive: true });
119
+ }
120
+ const content = formatVars(filtered, target.format);
121
+ writeFileSync(outputPath, content, 'utf-8');
122
+ const relativePath = target.path === '.' ? outputFilename : `${target.path}/${outputFilename}`;
123
+ console.log(pc.yellow(` ⚠️ ${relativePath}`) +
124
+ pc.dim(` (${target.format}, ${filtered.length} vars)`));
125
+ }
126
+ console.log('');
127
+ console.log(pc.yellow('⚠️ Decryption complete - plaintext secrets on disk'));
128
+ console.log(pc.dim(' Delete these files when done, or use "hush run" next time.'));
129
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAmpChD,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA0CvE"}
1
+ {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAopChD,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA0CvE"}
@@ -102,6 +102,7 @@ npx hush run -e production -- npm build # Production
102
102
  ### Commands to AVOID:
103
103
  - \`cat .env\` - Never read plaintext .env files directly
104
104
  - \`hush list\` - Shows actual secret values (use \`hush inspect\` instead)
105
+ - \`hush decrypt --force\` - Writes plaintext to disk (use \`hush run\` instead)
105
106
 
106
107
  ---
107
108
 
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type { OutputFormat, Environment, Target, SourceFiles, HushConfig, EnvVar, EncryptOptions, EditOptions, PushOptions, StatusOptions, InitOptions, ListOptions, } from './types.js';
1
+ export type { OutputFormat, Environment, Target, SourceFiles, HushConfig, EnvVar, DecryptOptions, EncryptOptions, EditOptions, PushOptions, StatusOptions, InitOptions, ListOptions, } from './types.js';
2
2
  export { DEFAULT_SOURCES, FORMAT_OUTPUT_FILES } from './types.js';
3
3
  export { loadConfig, findConfigPath, validateConfig } from './config/loader.js';
4
4
  export { parseEnvContent, parseEnvFile, varsToRecord, recordToVars } from './core/parse.js';
@@ -9,6 +9,7 @@ export { decrypt, encrypt, edit, isSopsInstalled, isAgeKeyConfigured } from './c
9
9
  export { maskValue, maskVars, formatMaskedVar } from './core/mask.js';
10
10
  export type { MaskedVar } from './core/mask.js';
11
11
  export { formatVars, formatDotenv, formatWrangler, formatJson, formatShell } from './formats/index.js';
12
+ export { decryptCommand } from './commands/decrypt.js';
12
13
  export { encryptCommand } from './commands/encrypt.js';
13
14
  export { editCommand } from './commands/edit.js';
14
15
  export { statusCommand } from './commands/status.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,YAAY,EACZ,WAAW,EACX,MAAM,EACN,WAAW,EACX,UAAU,EACV,MAAM,EACN,cAAc,EACd,WAAW,EACX,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAElE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEhF,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAChH,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEvG,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,YAAY,EACZ,WAAW,EACX,MAAM,EACN,WAAW,EACX,UAAU,EACV,MAAM,EACN,cAAc,EACd,cAAc,EACd,WAAW,EACX,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAElE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEhF,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAChH,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEvG,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -7,6 +7,7 @@ export { mergeVars } from './core/merge.js';
7
7
  export { decrypt, encrypt, edit, isSopsInstalled, isAgeKeyConfigured } from './core/sops.js';
8
8
  export { maskValue, maskVars, formatMaskedVar } from './core/mask.js';
9
9
  export { formatVars, formatDotenv, formatWrangler, formatJson, formatShell } from './formats/index.js';
10
+ export { decryptCommand } from './commands/decrypt.js';
10
11
  export { encryptCommand } from './commands/encrypt.js';
11
12
  export { editCommand } from './commands/edit.js';
12
13
  export { statusCommand } from './commands/status.js';
package/dist/types.d.ts CHANGED
@@ -27,6 +27,11 @@ export interface EnvVar {
27
27
  export interface EncryptOptions {
28
28
  root: string;
29
29
  }
30
+ export interface DecryptOptions {
31
+ root: string;
32
+ env: Environment;
33
+ force: boolean;
34
+ }
30
35
  export interface EditOptions {
31
36
  root: string;
32
37
  file?: 'shared' | 'development' | 'production' | 'local';
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chriscode/hush",
3
- "version": "3.0.0",
3
+ "version": "3.0.1",
4
4
  "description": "SOPS-based secrets management for monorepos. Encrypt once, decrypt everywhere.",
5
5
  "type": "module",
6
6
  "bin": {