proofscan 0.7.1 → 0.7.3

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 (53) hide show
  1. package/dist/cli.js +5 -2
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/config.d.ts.map +1 -1
  4. package/dist/commands/config.js +3 -0
  5. package/dist/commands/config.js.map +1 -1
  6. package/dist/commands/index.d.ts +1 -0
  7. package/dist/commands/index.d.ts.map +1 -1
  8. package/dist/commands/index.js +2 -0
  9. package/dist/commands/index.js.map +1 -1
  10. package/dist/commands/secrets.d.ts +19 -0
  11. package/dist/commands/secrets.d.ts.map +1 -0
  12. package/dist/commands/secrets.js +387 -0
  13. package/dist/commands/secrets.js.map +1 -0
  14. package/dist/config/add.d.ts +2 -0
  15. package/dist/config/add.d.ts.map +1 -1
  16. package/dist/config/add.js.map +1 -1
  17. package/dist/secrets/index.d.ts +2 -0
  18. package/dist/secrets/index.d.ts.map +1 -1
  19. package/dist/secrets/index.js +4 -0
  20. package/dist/secrets/index.js.map +1 -1
  21. package/dist/secrets/management.d.ts +112 -0
  22. package/dist/secrets/management.d.ts.map +1 -0
  23. package/dist/secrets/management.js +488 -0
  24. package/dist/secrets/management.js.map +1 -0
  25. package/dist/secrets/providers/dpapi.d.ts +16 -0
  26. package/dist/secrets/providers/dpapi.d.ts.map +1 -1
  27. package/dist/secrets/providers/dpapi.js +43 -12
  28. package/dist/secrets/providers/dpapi.js.map +1 -1
  29. package/dist/secrets/resolve.d.ts +51 -0
  30. package/dist/secrets/resolve.d.ts.map +1 -0
  31. package/dist/secrets/resolve.js +113 -0
  32. package/dist/secrets/resolve.js.map +1 -0
  33. package/dist/secrets/secretize.d.ts +12 -2
  34. package/dist/secrets/secretize.d.ts.map +1 -1
  35. package/dist/secrets/secretize.js +12 -4
  36. package/dist/secrets/secretize.js.map +1 -1
  37. package/dist/secrets/store.d.ts +4 -0
  38. package/dist/secrets/store.d.ts.map +1 -1
  39. package/dist/secrets/store.js +12 -0
  40. package/dist/secrets/store.js.map +1 -1
  41. package/dist/secrets/types.d.ts +1 -1
  42. package/dist/secrets/types.d.ts.map +1 -1
  43. package/dist/secrets/types.js +2 -2
  44. package/dist/secrets/types.js.map +1 -1
  45. package/dist/utils/clipboard.d.ts +4 -0
  46. package/dist/utils/clipboard.d.ts.map +1 -1
  47. package/dist/utils/clipboard.js +6 -0
  48. package/dist/utils/clipboard.js.map +1 -1
  49. package/dist/utils/secret-input.d.ts +22 -0
  50. package/dist/utils/secret-input.d.ts.map +1 -0
  51. package/dist/utils/secret-input.js +84 -0
  52. package/dist/utils/secret-input.js.map +1 -0
  53. package/package.json +1 -1
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Secret reference resolution (Phase 3.6)
3
+ *
4
+ * Resolves secret references (dpapi:<id>, keychain:<id>, plain:<id>) in env vars
5
+ * to their plaintext values at runtime.
6
+ *
7
+ * Security:
8
+ * - Plaintext is only held in memory during process spawn
9
+ * - Never written to disk, logs, or config files
10
+ * - Original env with refs is not modified
11
+ */
12
+ /** Result of resolving env secrets */
13
+ export interface ResolveEnvSecretsResult {
14
+ /** Resolved env (with plaintext values) - SENSITIVE, in-memory only */
15
+ envResolved: Record<string, string>;
16
+ /** Secret refs that were successfully resolved */
17
+ resolvedRefs: string[];
18
+ /** Errors encountered during resolution */
19
+ errors: ResolveError[];
20
+ /** Whether resolution was fully successful */
21
+ success: boolean;
22
+ }
23
+ /** Error during secret resolution */
24
+ export interface ResolveError {
25
+ /** Environment key */
26
+ key: string;
27
+ /** Secret reference that failed */
28
+ ref: string;
29
+ /** Error message */
30
+ message: string;
31
+ /** Suggested fix command */
32
+ suggestion?: string;
33
+ }
34
+ /**
35
+ * Resolve secret references in env vars to plaintext values
36
+ *
37
+ * This function should be called just before spawning a child process.
38
+ * The returned envResolved should be passed to spawn() and then
39
+ * immediately discarded (not stored or logged).
40
+ *
41
+ * @param env - Environment variables potentially containing secret refs
42
+ * @param connectorId - Connector ID for error messages and suggestions
43
+ * @param configDir - Config directory (default: ~/.proofscan)
44
+ * @returns Resolved env and any errors
45
+ */
46
+ export declare function resolveEnvSecrets(env: Record<string, string> | undefined, connectorId: string, configDir?: string): Promise<ResolveEnvSecretsResult>;
47
+ /**
48
+ * Format resolution errors for user display
49
+ */
50
+ export declare function formatResolveErrors(errors: ResolveError[], connectorId: string): string[];
51
+ //# sourceMappingURL=resolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/secrets/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,sCAAsC;AACtC,MAAM,WAAW,uBAAuB;IACtC,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,kDAAkD;IAClD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,2CAA2C;IAC3C,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qCAAqC;AACrC,MAAM,WAAW,YAAY;IAC3B,sBAAsB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,mCAAmC;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EACvC,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,uBAAuB,CAAC,CAoElC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBzF"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Secret reference resolution (Phase 3.6)
3
+ *
4
+ * Resolves secret references (dpapi:<id>, keychain:<id>, plain:<id>) in env vars
5
+ * to their plaintext values at runtime.
6
+ *
7
+ * Security:
8
+ * - Plaintext is only held in memory during process spawn
9
+ * - Never written to disk, logs, or config files
10
+ * - Original env with refs is not modified
11
+ */
12
+ import { SqliteSecretStore } from './store.js';
13
+ import { parseSecretRef } from './types.js';
14
+ import { getDefaultConfigDir } from '../utils/config-path.js';
15
+ /**
16
+ * Resolve secret references in env vars to plaintext values
17
+ *
18
+ * This function should be called just before spawning a child process.
19
+ * The returned envResolved should be passed to spawn() and then
20
+ * immediately discarded (not stored or logged).
21
+ *
22
+ * @param env - Environment variables potentially containing secret refs
23
+ * @param connectorId - Connector ID for error messages and suggestions
24
+ * @param configDir - Config directory (default: ~/.proofscan)
25
+ * @returns Resolved env and any errors
26
+ */
27
+ export async function resolveEnvSecrets(env, connectorId, configDir) {
28
+ if (!env || Object.keys(env).length === 0) {
29
+ return {
30
+ envResolved: {},
31
+ resolvedRefs: [],
32
+ errors: [],
33
+ success: true,
34
+ };
35
+ }
36
+ const dir = configDir || getDefaultConfigDir();
37
+ const store = new SqliteSecretStore(dir);
38
+ const envResolved = {};
39
+ const resolvedRefs = [];
40
+ const errors = [];
41
+ try {
42
+ for (const [key, value] of Object.entries(env)) {
43
+ // Check if value is a secret reference
44
+ const parsed = parseSecretRef(value);
45
+ if (parsed) {
46
+ // Resolve the secret
47
+ try {
48
+ const plaintext = await store.retrieve(parsed.id);
49
+ if (plaintext === null) {
50
+ // Secret not found
51
+ errors.push({
52
+ key,
53
+ ref: value,
54
+ message: `Secret not found: ${value}`,
55
+ suggestion: `pfscan secrets set ${connectorId} ${key}`,
56
+ });
57
+ // Keep the reference as-is (will cause spawn failure)
58
+ envResolved[key] = value;
59
+ }
60
+ else {
61
+ // Successfully resolved
62
+ envResolved[key] = plaintext;
63
+ resolvedRefs.push(value);
64
+ // TODO: Update last_used_at in store
65
+ }
66
+ }
67
+ catch (err) {
68
+ // Decryption or other error
69
+ const msg = err instanceof Error ? err.message : String(err);
70
+ errors.push({
71
+ key,
72
+ ref: value,
73
+ message: `Failed to resolve secret: ${msg}`,
74
+ suggestion: `pfscan secrets set ${connectorId} ${key}`,
75
+ });
76
+ envResolved[key] = value;
77
+ }
78
+ }
79
+ else {
80
+ // Not a secret reference - pass through as-is
81
+ envResolved[key] = value;
82
+ }
83
+ }
84
+ return {
85
+ envResolved,
86
+ resolvedRefs,
87
+ errors,
88
+ success: errors.length === 0,
89
+ };
90
+ }
91
+ finally {
92
+ store.close();
93
+ }
94
+ }
95
+ /**
96
+ * Format resolution errors for user display
97
+ */
98
+ export function formatResolveErrors(errors, connectorId) {
99
+ if (errors.length === 0) {
100
+ return [];
101
+ }
102
+ const lines = [
103
+ `Failed to resolve ${errors.length} secret(s) for connector '${connectorId}':`,
104
+ ];
105
+ for (const err of errors) {
106
+ lines.push(` ${err.key}: ${err.message}`);
107
+ if (err.suggestion) {
108
+ lines.push(` Fix: ${err.suggestion}`);
109
+ }
110
+ }
111
+ return lines;
112
+ }
113
+ //# sourceMappingURL=resolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/secrets/resolve.ts"],"names":[],"mappings":"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"}
@@ -20,10 +20,18 @@ export interface SecretizeKeyResult {
20
20
  originalValue: string;
21
21
  /** New value (may be dpapi:xxx or original) */
22
22
  newValue: string;
23
- /** Action taken */
24
- action: 'stored' | 'placeholder' | 'skipped';
23
+ /**
24
+ * Action taken:
25
+ * - 'stored': Secret successfully encrypted and stored
26
+ * - 'placeholder': Placeholder value detected (e.g., "YOUR_API_KEY")
27
+ * - 'skipped': Not a secret key (e.g., NODE_ENV)
28
+ * - 'error': Failed to store secret (encryption error, etc.)
29
+ */
30
+ action: 'stored' | 'placeholder' | 'skipped' | 'error';
25
31
  /** Secret reference if stored */
26
32
  secretRef?: string;
33
+ /** Error message if action is 'error' */
34
+ error?: string;
27
35
  }
28
36
  /**
29
37
  * Result of secretizing an env object
@@ -37,6 +45,8 @@ export interface SecretizeResult {
37
45
  storedCount: number;
38
46
  /** Count of placeholders detected */
39
47
  placeholderCount: number;
48
+ /** Count of storage errors (encryption failures, etc.) */
49
+ errorCount: number;
40
50
  /** Provider type used for storage (dpapi, keychain, or plain) */
41
51
  providerType?: ProviderType;
42
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"secretize.d.ts","sourceRoot":"","sources":["../../src/secrets/secretize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM/C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,mBAAmB;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,qBAAqB;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,MAAM,EAAE,QAAQ,GAAG,aAAa,GAAG,SAAS,CAAC;IAC7C,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,sCAAsC;IACtC,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,gBAAgB,EAAE,MAAM,CAAC;IACzB,iEAAiE;IACjE,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,CAiF1B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,oDAAoD;IACpD,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,kBAAkB,EAAE,EAC7B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,sBAA2B,GACnC,MAAM,EAAE,CAwBV;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAI9C"}
1
+ {"version":3,"file":"secretize.d.ts","sourceRoot":"","sources":["../../src/secrets/secretize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM/C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,mBAAmB;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,qBAAqB;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,MAAM,EAAE,QAAQ,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC;IACvD,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,sCAAsC;IACtC,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,gBAAgB,EAAE,MAAM,CAAC;IACzB,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,CAoF1B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,oDAAoD;IACpD,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,kBAAkB,EAAE,EAC7B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,sBAA2B,GACnC,MAAM,EAAE,CA4BV;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAI9C"}
@@ -30,6 +30,7 @@ export async function secretizeEnv(env, options) {
30
30
  const processedEnv = {};
31
31
  let storedCount = 0;
32
32
  let placeholderCount = 0;
33
+ let errorCount = 0;
33
34
  // Use provided store or create new one
34
35
  // When processing multiple connectors, caller should provide a shared store
35
36
  // to avoid opening/closing the database repeatedly
@@ -57,17 +58,18 @@ export async function secretizeEnv(env, options) {
57
58
  storedCount++;
58
59
  }
59
60
  catch (error) {
60
- // If storing fails, keep original value and treat as placeholder (warn)
61
+ // If storing fails, keep original value and report as error
61
62
  // This prevents partial failures from breaking the entire operation
62
- console.error(`Warning: Failed to store secret for ${key}: ${error instanceof Error ? error.message : String(error)}`);
63
+ const errorMessage = error instanceof Error ? error.message : String(error);
63
64
  processedEnv[key] = value;
64
65
  results.push({
65
66
  key,
66
67
  originalValue: value,
67
68
  newValue: value,
68
- action: 'placeholder',
69
+ action: 'error',
70
+ error: errorMessage,
69
71
  });
70
- placeholderCount++;
72
+ errorCount++;
71
73
  }
72
74
  }
73
75
  else if (detection.action === 'warn') {
@@ -103,6 +105,7 @@ export async function secretizeEnv(env, options) {
103
105
  results,
104
106
  storedCount,
105
107
  placeholderCount,
108
+ errorCount,
106
109
  providerType,
107
110
  };
108
111
  }
@@ -134,6 +137,11 @@ export function formatSecretizeOutput(results, connectorId, options = {}) {
134
137
  else if (result.action === 'placeholder') {
135
138
  lines.push(` ⚠ placeholder detected: ${connectorId}.transport.env.${result.key}`);
136
139
  }
140
+ else if (result.action === 'error') {
141
+ // Show encryption/storage errors clearly
142
+ const errorMsg = result.error ? `: ${result.error}` : '';
143
+ lines.push(` ✖ storage failed: ${connectorId}.transport.env.${result.key}${errorMsg}`);
144
+ }
137
145
  }
138
146
  return lines;
139
147
  }
@@ -1 +1 @@
1
- {"version":3,"file":"secretize.js","sourceRoot":"","sources":["../../src/secrets/secretize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"secretize.js","sourceRoot":"","sources":["../../src/secrets/secretize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,oEAAoE;AACpE,MAAM,sBAAsB,GAAG,EAAE,CAAC;AA4ElC;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAA2B,EAC3B,OAAyB;IAEzB,MAAM,OAAO,GAAyB,EAAE,CAAC;IACzC,MAAM,YAAY,GAA2B,EAAE,CAAC;IAChD,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,uCAAuC;IACvC,4EAA4E;IAC5E,mDAAmD;IACnD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAChE,MAAM,gBAAgB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,8BAA8B;IACvE,MAAM,YAAY,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;IAE7C,IAAI,CAAC;QACH,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAE3C,IAAI,SAAS,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBACjC,gFAAgF;gBAChF,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE;wBAC3C,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,kBAAkB,GAAG,EAAE;qBACtD,CAAC,CAAC;oBAEH,YAAY,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC;oBAC1C,OAAO,CAAC,IAAI,CAAC;wBACX,GAAG;wBACH,aAAa,EAAE,KAAK;wBACpB,QAAQ,EAAE,WAAW,CAAC,SAAS;wBAC/B,MAAM,EAAE,QAAQ;wBAChB,SAAS,EAAE,WAAW,CAAC,SAAS;qBACjC,CAAC,CAAC;oBACH,WAAW,EAAE,CAAC;gBAChB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,4DAA4D;oBAC5D,oEAAoE;oBACpE,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC5E,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBAC1B,OAAO,CAAC,IAAI,CAAC;wBACX,GAAG;wBACH,aAAa,EAAE,KAAK;wBACpB,QAAQ,EAAE,KAAK;wBACf,MAAM,EAAE,OAAO;wBACf,KAAK,EAAE,YAAY;qBACpB,CAAC,CAAC;oBACH,UAAU,EAAE,CAAC;gBACf,CAAC;YACH,CAAC;iBAAM,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACvC,uDAAuD;gBACvD,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC1B,OAAO,CAAC,IAAI,CAAC;oBACX,GAAG;oBACH,aAAa,EAAE,KAAK;oBACpB,QAAQ,EAAE,KAAK;oBACf,MAAM,EAAE,aAAa;iBACtB,CAAC,CAAC;gBACH,gBAAgB,EAAE,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,mCAAmC;gBACnC,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC1B,OAAO,CAAC,IAAI,CAAC;oBACX,GAAG;oBACH,aAAa,EAAE,KAAK;oBACpB,QAAQ,EAAE,KAAK;oBACf,MAAM,EAAE,SAAS;iBAClB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,IAAI,gBAAgB,EAAE,CAAC;YACrB,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,OAAO;QACL,GAAG,EAAE,YAAY;QACjB,OAAO;QACP,WAAW;QACX,gBAAgB;QAChB,UAAU;QACV,YAAY;KACb,CAAC;AACJ,CAAC;AAUD;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAA6B,EAC7B,WAAmB,EACnB,UAAkC,EAAE;IAEpC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,4DAA4D;IAC5D,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IAClE,IAAI,OAAO,CAAC,YAAY,KAAK,OAAO,IAAI,gBAAgB,EAAE,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;QAC7F,KAAK,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;QACpF,KAAK,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;IACzF,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACnD,0EAA0E;YAC1E,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,sBAAsB;gBAC/D,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,GAAG,KAAK;gBAC3D,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,sBAAsB,WAAW,kBAAkB,MAAM,CAAC,GAAG,OAAO,QAAQ,EAAE,CAAC,CAAC;QAC7F,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YAC3C,KAAK,CAAC,IAAI,CAAC,6BAA6B,WAAW,kBAAkB,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QACrF,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YACrC,yCAAyC;YACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,uBAAuB,WAAW,kBAAkB,MAAM,CAAC,GAAG,GAAG,QAAQ,EAAE,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,mDAAmD;IACnD,0EAA0E;IAC1E,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -21,6 +21,10 @@ export declare class SqliteSecretStore implements ISecretStore {
21
21
  delete(id: string): Promise<boolean>;
22
22
  list(): Promise<string[]>;
23
23
  getMeta(id: string): Promise<SecretMeta | null>;
24
+ /**
25
+ * Get creation timestamp for a secret
26
+ */
27
+ getCreatedAt(id: string): Promise<Date | null>;
24
28
  /**
25
29
  * Get the provider type in use
26
30
  */
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/secrets/store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,UAAU,EAEV,iBAAiB,EACjB,YAAY,EACb,MAAM,YAAY,CAAC;AAsBpB;;GAEG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IACpD,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,MAAM,CAAS;gBAEX,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,mBAAmB;IAiB9D,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,UAAU;IAMZ,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA0BvE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA8B5C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOpC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQpC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAQzB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAiBrD;;OAEG;IACH,eAAe,IAAI,YAAY;IAI/B;;OAEG;IACH,KAAK,IAAI,MAAM;IAQf,KAAK,IAAI,IAAI;CAMd;AAKD;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAKpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAKvC"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/secrets/store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,UAAU,EAEV,iBAAiB,EACjB,YAAY,EACb,MAAM,YAAY,CAAC;AAsBpB;;GAEG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IACpD,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,MAAM,CAAS;gBAEX,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,mBAAmB;IAiB9D,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,UAAU;IAMZ,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA0BvE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA8B5C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOpC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQpC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAQzB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAiBrD;;OAEG;IACG,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAapD;;OAEG;IACH,eAAe,IAAI,YAAY;IAI/B;;OAEG;IACH,KAAK,IAAI,MAAM;IAQf,KAAK,IAAI,IAAI;CAMd;AAKD;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAKpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAKvC"}
@@ -129,6 +129,18 @@ export class SqliteSecretStore {
129
129
  return null;
130
130
  }
131
131
  }
132
+ /**
133
+ * Get creation timestamp for a secret
134
+ */
135
+ async getCreatedAt(id) {
136
+ this.ensureOpen();
137
+ const stmt = this.db.prepare(`SELECT created_at FROM secrets WHERE id = ?`);
138
+ const row = stmt.get(id);
139
+ if (!row) {
140
+ return null;
141
+ }
142
+ return new Date(row.created_at);
143
+ }
132
144
  /**
133
145
  * Get the provider type in use
134
146
  */
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/secrets/store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AASpC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,8BAA8B;AAC9B,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B,sBAAsB;AACtB,MAAM,iBAAiB,GAAG;;;;;;;;;;;CAWzB,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,iBAAiB;IACpB,EAAE,CAAoB;IACtB,QAAQ,CAAsB;IAC9B,MAAM,GAAG,KAAK,CAAC;IAEvB,YAAY,SAAkB,EAAE,QAA8B;QAC5D,MAAM,GAAG,GAAG,SAAS,IAAI,mBAAmB,EAAE,CAAC;QAE/C,0BAA0B;QAC1B,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpC,gBAAgB;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACvC,IAAI,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;QAE/B,oBAAoB;QACpB,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,8CAA8C;QAC9C,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,eAAe,EAAE,CAAC;IAChD,CAAC;IAEO,UAAU;QAChB,gBAAgB;QAChB,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAW,CAAC;QAElF,IAAI,cAAc,GAAG,kBAAkB,EAAE,CAAC;YACxC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAChC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,kBAAkB,kBAAkB,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAEO,UAAU;QAChB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAiB,EAAE,IAAiB;QAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,qBAAqB;QACrB,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QAEpB,wBAAwB;QACxB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAE1D,qBAAqB;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEpD,uBAAuB;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;KAG5B,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAC;QAEjF,OAAO;YACL,EAAE;YACF,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;SACjD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAE5B,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAA+D,CAAC;QAEvF,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;QAED,+BAA+B;QAC/B,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI;YAClD,CAAC,CAAC,IAAI,CAAC,QAAQ;YACf,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE9B,4DAA4D;QAC5D,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,8BAA8B,GAAG,CAAC,QAAQ,6CAA6C;gBACvF,uDAAuD,GAAG,CAAC,QAAQ,gBAAgB,CACpF,CAAC;QACJ,CAAC;QAED,qBAAqB;QACrB,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,SAAS,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC;QAChF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAsB,CAAC;QAC5C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;QAC3E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAA6C,CAAC;QAErE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAe,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;QACtE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAuB,CAAC;QAC5C,OAAO,GAAG,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;CACF;AAED,qBAAqB;AACrB,IAAI,WAAW,GAA6B,IAAI,CAAC;AAEjD;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,SAAkB;IAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,WAAW,EAAE,CAAC;QAChB,WAAW,CAAC,KAAK,EAAE,CAAC;QACpB,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/secrets/store.ts"],"names":[],"mappings":"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"}
@@ -110,7 +110,7 @@ export interface ISecretStore {
110
110
  close(): void;
111
111
  }
112
112
  /**
113
- * Secret reference pattern: "dpapi:<id>" or "keychain:<id>"
113
+ * Secret reference pattern: "dpapi:<id>", "keychain:<id>", or "plain:<id>"
114
114
  */
115
115
  export declare const SECRET_REF_PATTERN: RegExp;
116
116
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/secrets/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,+BAA+B;IAC/B,QAAQ,EAAE,YAAY,CAAC;IACvB,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,+BAA+B;IAC/B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAE5B,kEAAkE;IAClE,WAAW,IAAI,OAAO,CAAC;IAEvB;;;;OAIG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5C;;;;OAIG;IACH,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAExE;;;;OAIG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAE7C;;;OAGG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAErC;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAErC;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE1B;;;OAGG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAEhD;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,QAAwC,CAAC;AAExE;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,YAAY,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAOzF;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAExE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAElD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/secrets/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,+BAA+B;IAC/B,QAAQ,EAAE,YAAY,CAAC;IACvB,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,+BAA+B;IAC/B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAE5B,kEAAkE;IAClE,WAAW,IAAI,OAAO,CAAC;IAEvB;;;;OAIG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5C;;;;OAIG;IACH,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAExE;;;;OAIG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAE7C;;;OAGG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAErC;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAErC;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE1B;;;OAGG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAEhD;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,QAA8C,CAAC;AAE9E;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,YAAY,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAOzF;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAExE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAElD"}
@@ -5,9 +5,9 @@
5
5
  * Uses platform-specific encryption (Windows DPAPI or keychain on macOS).
6
6
  */
7
7
  /**
8
- * Secret reference pattern: "dpapi:<id>" or "keychain:<id>"
8
+ * Secret reference pattern: "dpapi:<id>", "keychain:<id>", or "plain:<id>"
9
9
  */
10
- export const SECRET_REF_PATTERN = /^(dpapi|keychain):([a-zA-Z0-9_-]+)$/;
10
+ export const SECRET_REF_PATTERN = /^(dpapi|keychain|plain):([a-zA-Z0-9_-]+)$/;
11
11
  /**
12
12
  * Parse a secret reference string
13
13
  * @param ref - Reference string like "dpapi:abc123"
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/secrets/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA0HH;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,qCAAqC,CAAC;AAExE;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAiB;QAClC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;KACb,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,QAAsB,EAAE,EAAU;IAC9D,OAAO,GAAG,QAAQ,IAAI,EAAE,EAAE,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/secrets/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA0HH;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,2CAA2C,CAAC;AAE9E;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAiB;QAClC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;KACb,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,QAAsB,EAAE,EAAU;IAC9D,OAAO,GAAG,QAAQ,IAAI,EAAE,EAAE,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC"}
@@ -10,6 +10,10 @@
10
10
  * - Linux: wl-paste (Wayland), fallback to xclip (X11)
11
11
  */
12
12
  export declare function readClipboard(): string;
13
+ /**
14
+ * Async wrapper for readClipboard
15
+ */
16
+ export declare function getClipboardContent(): Promise<string>;
13
17
  /**
14
18
  * Check if clipboard tools are available
15
19
  */
@@ -1 +1 @@
1
- {"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../src/utils/clipboard.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;;;;;;GAOG;AACH,wBAAgB,aAAa,IAAI,MAAM,CA+CtC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CA4B9C"}
1
+ {"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../src/utils/clipboard.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;;;;;;GAOG;AACH,wBAAgB,aAAa,IAAI,MAAM,CA+CtC;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CAE3D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CA4B9C"}
@@ -52,6 +52,12 @@ export function readClipboard() {
52
52
  'Hint: Use --file <path> or pipe JSON via stdin instead.');
53
53
  }
54
54
  }
55
+ /**
56
+ * Async wrapper for readClipboard
57
+ */
58
+ export async function getClipboardContent() {
59
+ return readClipboard();
60
+ }
55
61
  /**
56
62
  * Check if clipboard tools are available
57
63
  */
@@ -1 +1 @@
1
- {"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../../src/utils/clipboard.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAE9B;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IAEtB,IAAI,CAAC;QACH,IAAI,OAAe,CAAC;QAEpB,QAAQ,EAAE,EAAE,CAAC;YACX,KAAK,OAAO;gBACV,oCAAoC;gBACpC,OAAO,GAAG,yDAAyD,CAAC;gBACpE,MAAM;YAER,KAAK,QAAQ;gBACX,iBAAiB;gBACjB,OAAO,GAAG,SAAS,CAAC;gBACpB,MAAM;YAER,KAAK,OAAO;gBACV,+DAA+D;gBAC/D,IAAI,CAAC;oBACH,OAAO,QAAQ,CAAC,mCAAmC,EAAE;wBACnD,QAAQ,EAAE,OAAO;wBACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;qBAChC,CAAC,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC;oBACP,oBAAoB;oBACpB,OAAO,GAAG,+BAA+B,CAAC;gBAC5C,CAAC;gBACD,MAAM;YAER;gBACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE;YAChC,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACzE,MAAM,IAAI,KAAK,CACb,6BAA6B,OAAO,IAAI;YACxC,yDAAyD,CAC1D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IAEtB,IAAI,CAAC;QACH,QAAQ,EAAE,EAAE,CAAC;YACX,KAAK,OAAO;gBACV,QAAQ,CAAC,6CAA6C,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC3E,OAAO,IAAI,CAAC;YAEd,KAAK,QAAQ;gBACX,QAAQ,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC7C,OAAO,IAAI,CAAC;YAEd,KAAK,OAAO;gBACV,IAAI,CAAC;oBACH,QAAQ,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC9C,OAAO,IAAI,CAAC;gBACd,CAAC;gBAAC,MAAM,CAAC;oBACP,QAAQ,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC3C,OAAO,IAAI,CAAC;gBACd,CAAC;YAEH;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../../src/utils/clipboard.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAE9B;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IAEtB,IAAI,CAAC;QACH,IAAI,OAAe,CAAC;QAEpB,QAAQ,EAAE,EAAE,CAAC;YACX,KAAK,OAAO;gBACV,oCAAoC;gBACpC,OAAO,GAAG,yDAAyD,CAAC;gBACpE,MAAM;YAER,KAAK,QAAQ;gBACX,iBAAiB;gBACjB,OAAO,GAAG,SAAS,CAAC;gBACpB,MAAM;YAER,KAAK,OAAO;gBACV,+DAA+D;gBAC/D,IAAI,CAAC;oBACH,OAAO,QAAQ,CAAC,mCAAmC,EAAE;wBACnD,QAAQ,EAAE,OAAO;wBACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;qBAChC,CAAC,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC;oBACP,oBAAoB;oBACpB,OAAO,GAAG,+BAA+B,CAAC;gBAC5C,CAAC;gBACD,MAAM;YAER;gBACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE;YAChC,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACzE,MAAM,IAAI,KAAK,CACb,6BAA6B,OAAO,IAAI;YACxC,yDAAyD,CAC1D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,OAAO,aAAa,EAAE,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IAEtB,IAAI,CAAC;QACH,QAAQ,EAAE,EAAE,CAAC;YACX,KAAK,OAAO;gBACV,QAAQ,CAAC,6CAA6C,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC3E,OAAO,IAAI,CAAC;YAEd,KAAK,QAAQ;gBACX,QAAQ,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC7C,OAAO,IAAI,CAAC;YAEd,KAAK,OAAO;gBACV,IAAI,CAAC;oBACH,QAAQ,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC9C,OAAO,IAAI,CAAC;gBACd,CAAC;gBAAC,MAAM,CAAC;oBACP,QAAQ,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC3C,OAAO,IAAI,CAAC;gBACd,CAAC;YAEH;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Secret input utilities (Phase 3.6)
3
+ *
4
+ * Provides secure methods for reading secrets from user input without echoing.
5
+ * Never logs, prints, or writes the secret value to disk.
6
+ */
7
+ /**
8
+ * Read a secret from stdin without echoing to the terminal.
9
+ * Uses raw mode to prevent any character display.
10
+ *
11
+ * @returns The entered secret (trimmed)
12
+ */
13
+ export declare function readSecretHidden(): Promise<string>;
14
+ /**
15
+ * Read a secret from the system clipboard.
16
+ * Trims whitespace from the result.
17
+ *
18
+ * @returns The clipboard content (trimmed)
19
+ * @throws Error if clipboard is empty or unavailable
20
+ */
21
+ export declare function readSecretFromClipboard(): Promise<string>;
22
+ //# sourceMappingURL=secret-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret-input.d.ts","sourceRoot":"","sources":["../../src/utils/secret-input.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;;;;GAKG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CA8DxD;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC,CAQ/D"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Secret input utilities (Phase 3.6)
3
+ *
4
+ * Provides secure methods for reading secrets from user input without echoing.
5
+ * Never logs, prints, or writes the secret value to disk.
6
+ */
7
+ import * as readline from 'readline';
8
+ import { getClipboardContent } from './clipboard.js';
9
+ /**
10
+ * Read a secret from stdin without echoing to the terminal.
11
+ * Uses raw mode to prevent any character display.
12
+ *
13
+ * @returns The entered secret (trimmed)
14
+ */
15
+ export async function readSecretHidden() {
16
+ return new Promise((resolve) => {
17
+ const rl = readline.createInterface({
18
+ input: process.stdin,
19
+ output: process.stdout,
20
+ terminal: true,
21
+ });
22
+ // Disable echo if possible
23
+ if (process.stdin.isTTY) {
24
+ process.stdin.setRawMode(true);
25
+ }
26
+ let input = '';
27
+ const onData = (key) => {
28
+ const char = key.toString();
29
+ // Handle Enter (CR or LF)
30
+ if (char === '\r' || char === '\n') {
31
+ if (process.stdin.isTTY) {
32
+ process.stdin.setRawMode(false);
33
+ }
34
+ process.stdin.removeListener('data', onData);
35
+ rl.close();
36
+ process.stdout.write('\n');
37
+ resolve(input);
38
+ return;
39
+ }
40
+ // Handle Ctrl+C - clean up and let the process handle termination
41
+ if (char === '\x03') {
42
+ if (process.stdin.isTTY) {
43
+ process.stdin.setRawMode(false);
44
+ }
45
+ process.stdin.removeListener('data', onData);
46
+ rl.close();
47
+ process.stdout.write('\n');
48
+ // Send SIGINT to allow cleanup handlers to run
49
+ process.kill(process.pid, 'SIGINT');
50
+ return;
51
+ }
52
+ // Handle Backspace
53
+ if (char === '\x7f' || char === '\x08') {
54
+ if (input.length > 0) {
55
+ input = input.slice(0, -1);
56
+ // Don't echo anything
57
+ }
58
+ return;
59
+ }
60
+ // Regular character
61
+ if (char.length === 1 && char.charCodeAt(0) >= 32) {
62
+ input += char;
63
+ // Don't echo anything
64
+ }
65
+ };
66
+ process.stdin.on('data', onData);
67
+ process.stdin.resume();
68
+ });
69
+ }
70
+ /**
71
+ * Read a secret from the system clipboard.
72
+ * Trims whitespace from the result.
73
+ *
74
+ * @returns The clipboard content (trimmed)
75
+ * @throws Error if clipboard is empty or unavailable
76
+ */
77
+ export async function readSecretFromClipboard() {
78
+ const content = await getClipboardContent();
79
+ if (!content || content.trim().length === 0) {
80
+ throw new Error('Clipboard is empty');
81
+ }
82
+ return content.trim();
83
+ }
84
+ //# sourceMappingURL=secret-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret-input.js","sourceRoot":"","sources":["../../src/utils/secret-input.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "proofscan",
3
- "version": "0.7.1",
3
+ "version": "0.7.3",
4
4
  "description": "MCP Server scanner - eliminate black boxes by capturing JSON-RPC from connection to tools/list",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",