proofscan 0.7.2 → 0.7.4

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 (46) hide show
  1. package/dist/cli.js +9 -2
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/index.d.ts +1 -0
  4. package/dist/commands/index.d.ts.map +1 -1
  5. package/dist/commands/index.js +2 -0
  6. package/dist/commands/index.js.map +1 -1
  7. package/dist/commands/secrets.d.ts +19 -0
  8. package/dist/commands/secrets.d.ts.map +1 -0
  9. package/dist/commands/secrets.js +393 -0
  10. package/dist/commands/secrets.js.map +1 -0
  11. package/dist/secrets/index.d.ts +2 -0
  12. package/dist/secrets/index.d.ts.map +1 -1
  13. package/dist/secrets/index.js +4 -0
  14. package/dist/secrets/index.js.map +1 -1
  15. package/dist/secrets/management.d.ts +112 -0
  16. package/dist/secrets/management.d.ts.map +1 -0
  17. package/dist/secrets/management.js +488 -0
  18. package/dist/secrets/management.js.map +1 -0
  19. package/dist/secrets/resolve.d.ts +51 -0
  20. package/dist/secrets/resolve.d.ts.map +1 -0
  21. package/dist/secrets/resolve.js +113 -0
  22. package/dist/secrets/resolve.js.map +1 -0
  23. package/dist/secrets/store.d.ts +4 -0
  24. package/dist/secrets/store.d.ts.map +1 -1
  25. package/dist/secrets/store.js +12 -0
  26. package/dist/secrets/store.js.map +1 -1
  27. package/dist/secrets/types.d.ts +1 -1
  28. package/dist/secrets/types.d.ts.map +1 -1
  29. package/dist/secrets/types.js +2 -2
  30. package/dist/secrets/types.js.map +1 -1
  31. package/dist/shell/repl.d.ts.map +1 -1
  32. package/dist/shell/repl.js +9 -1
  33. package/dist/shell/repl.js.map +1 -1
  34. package/dist/shell/types.d.ts +9 -0
  35. package/dist/shell/types.d.ts.map +1 -1
  36. package/dist/shell/types.js +29 -0
  37. package/dist/shell/types.js.map +1 -1
  38. package/dist/utils/clipboard.d.ts +4 -0
  39. package/dist/utils/clipboard.d.ts.map +1 -1
  40. package/dist/utils/clipboard.js +6 -0
  41. package/dist/utils/clipboard.js.map +1 -1
  42. package/dist/utils/secret-input.d.ts +22 -0
  43. package/dist/utils/secret-input.d.ts.map +1 -0
  44. package/dist/utils/secret-input.js +84 -0
  45. package/dist/utils/secret-input.js.map +1 -0
  46. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -25,7 +25,7 @@ import { setOutputOptions } from './utils/output.js';
25
25
  const require = createRequire(import.meta.url);
26
26
  const packageJson = require('../package.json');
27
27
  const VERSION = packageJson.version;
28
- import { createConfigCommand, createConnectorsCommand, createScanCommand, createMonitorCommand, createSessionsCommand, createArchiveCommand, createViewCommand, createTreeCommand, createExploreCommand, createStatusCommand, createEventsCommand, createRpcCommand, createSummaryCommand, createPermissionsCommand, createRecordCommand, createDoctorCommand, createShellCommand, } from './commands/index.js';
28
+ import { createConfigCommand, createConnectorsCommand, createScanCommand, createMonitorCommand, createSessionsCommand, createArchiveCommand, createViewCommand, createTreeCommand, createExploreCommand, createStatusCommand, createEventsCommand, createRpcCommand, createSummaryCommand, createPermissionsCommand, createRecordCommand, createDoctorCommand, createShellCommand, createSecretsCommand, } from './commands/index.js';
29
29
  const program = new Command();
30
30
  // Global state for config path
31
31
  let globalConfigPath;
@@ -52,6 +52,7 @@ Management:
52
52
  archive, a Archive and prune old data
53
53
  config, c Configuration management
54
54
  connectors Connector management
55
+ secrets Secret management (list, set, edit, prune, export, import)
55
56
  doctor Diagnose and fix database issues
56
57
 
57
58
  Shortcuts:
@@ -160,6 +161,12 @@ program.addCommand(createRecordCommand(getConfigPath));
160
161
  program.addCommand(createDoctorCommand(getConfigPath));
161
162
  // shell (Phase 4: interactive REPL)
162
163
  program.addCommand(createShellCommand(getConfigPath));
164
+ // secrets (Phase 3.6: secret management)
165
+ program.addCommand(createSecretsCommand(getConfigPath));
166
+ // Alias: secret = secrets (common typo/singular form)
167
+ const secretCmd = createSecretsCommand(getConfigPath);
168
+ secretCmd.name('secret').description('Alias for secrets');
169
+ program.addCommand(secretCmd);
163
170
  // ============================================================
164
171
  // Default action: pfscan → pfscan view
165
172
  // ============================================================
@@ -172,7 +179,7 @@ function hasSubcommand() {
172
179
  const knownCommands = new Set([
173
180
  'view', 'v', 'tree', 't', 'explore', 'e', 'status', 'st',
174
181
  'scan', 's', 'archive', 'a', 'config', 'c',
175
- 'connectors', 'connector', 'sessions', 'monitor', 'events', 'rpc', 'summary', 'permissions', 'record', 'doctor', 'shell', 'help'
182
+ 'connectors', 'connector', 'sessions', 'monitor', 'events', 'rpc', 'summary', 'permissions', 'record', 'doctor', 'shell', 'secrets', 'secret', 'help'
176
183
  ]);
177
184
  for (let i = 2; i < process.argv.length; i++) {
178
185
  const arg = process.argv[i];
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,iCAAiC;AACjC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAC/C,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;AACpC,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,+BAA+B;AAC/B,IAAI,gBAAoC,CAAC;AAEzC,SAAS,aAAa;IACpB,OAAO,iBAAiB,CAAC,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,yBAAyB;AACzB,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCnB,CAAC;AAEF,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,kEAAkE,CAAC;KAC/E,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;KACpD,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;KACzC,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC;KACzC,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC;KAClC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE;IACjC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IAChC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC;IAC/B,gBAAgB,CAAC;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,+DAA+D;AAC/D,2CAA2C;AAC3C,+DAA+D;AAE/D,yBAAyB;AACzB,MAAM,OAAO,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;AACjD,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAE5B,kBAAkB;AAClB,MAAM,IAAI,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAC9C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;AAC7C,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAEzB,OAAO;AACP,MAAM,OAAO,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;AACjD,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAE5B,kBAAkB;AAClB,MAAM,IAAI,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAC9C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;AAC7C,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAEzB,UAAU;AACV,MAAM,UAAU,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;AACvD,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAE/B,qBAAqB;AACrB,MAAM,IAAI,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;AACjD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;AAChD,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAEzB,SAAS;AACT,MAAM,SAAS,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;AACrD,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAE9B,qBAAqB;AACrB,MAAM,KAAK,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;AACjD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;AACjD,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAE1B,+DAA+D;AAC/D,mDAAmD;AACnD,+DAA+D;AAE/D,OAAO;AACP,MAAM,OAAO,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;AACjD,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAE5B,kBAAkB;AAClB,MAAM,IAAI,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAC9C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;AAC7C,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAEzB,UAAU;AACV,MAAM,UAAU,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;AACvD,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAE/B,qBAAqB;AACrB,MAAM,IAAI,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;AACjD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;AAChD,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAEzB,SAAS;AACT,MAAM,SAAS,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;AACrD,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAE9B,oBAAoB;AACpB,MAAM,IAAI,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;AAChD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;AAC/C,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAEzB,aAAa;AACb,OAAO,CAAC,UAAU,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC,CAAC;AAE3D,8CAA8C;AAC9C,MAAM,YAAY,GAAG,uBAAuB,CAAC,aAAa,CAAC,CAAC;AAC5D,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;AACnE,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAEjC,8EAA8E;AAC9E,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC,CAAC;AAEzD,4DAA4D;AAC5D,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAC;AAExD,+CAA+C;AAC/C,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC;AAEvD,sCAAsC;AACtC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC;AAEpD,wDAAwD;AACxD,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAC;AAExD,mDAAmD;AACnD,OAAO,CAAC,UAAU,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC,CAAC;AAE5D,mCAAmC;AACnC,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC;AAEvD,6CAA6C;AAC7C,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC;AAEvD,oCAAoC;AACpC,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC;AAEtD,yCAAyC;AACzC,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAC;AAExD,sDAAsD;AACtD,MAAM,SAAS,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;AACtD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;AAC1D,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAE9B,+DAA+D;AAC/D,uCAAuC;AACvC,+DAA+D;AAE/D,uEAAuE;AACvE,SAAS,WAAW;IAClB,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxE,CAAC;AAED,0EAA0E;AAC1E,SAAS,aAAa;IACpB,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;QAC5B,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI;QACxD,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG;QAC1C,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM;KACtJ,CAAC,CAAC;IAEH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,qCAAqC;QACrC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,0CAA0C;YAC1C,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;gBACvC,CAAC,EAAE,CAAC;YACN,CAAC;YACD,SAAS;QACX,CAAC;QACD,0DAA0D;QAC1D,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,4EAA4E;AAC5E,uEAAuE;AACvE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;IACvC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,gBAAgB;AAChB,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -15,4 +15,5 @@ export * from './permissions.js';
15
15
  export * from './record.js';
16
16
  export * from './doctor.js';
17
17
  export * from './shell.js';
18
+ export * from './secrets.js';
18
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAG7B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAG5B,cAAc,UAAU,CAAC;AAGzB,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAG7B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAG5B,cAAc,UAAU,CAAC;AAGzB,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,cAAc,CAAC"}
@@ -20,4 +20,6 @@ export * from './record.js';
20
20
  export * from './doctor.js';
21
21
  // Phase 4: Shell REPL
22
22
  export * from './shell.js';
23
+ // Phase 3.6: Secrets management
24
+ export * from './secrets.js';
23
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAE7B,yBAAyB;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAE5B,yBAAyB;AACzB,cAAc,UAAU,CAAC;AAEzB,uBAAuB;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAE5B,sBAAsB;AACtB,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAE7B,yBAAyB;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAE5B,yBAAyB;AACzB,cAAc,UAAU,CAAC;AAEzB,uBAAuB;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAE5B,sBAAsB;AACtB,cAAc,YAAY,CAAC;AAE3B,gCAAgC;AAChC,cAAc,cAAc,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Secrets management command (Phase 3.6)
3
+ *
4
+ * Provides commands for managing secrets:
5
+ * - list: Show all secrets with their bindings
6
+ * - set: Store a secret for a connector/key
7
+ * - edit: Interactive wizard to fill missing placeholders
8
+ * - prune: Remove orphan secrets not referenced by config
9
+ * - export: Export secrets to encrypted bundle
10
+ * - import: Import secrets from encrypted bundle
11
+ *
12
+ * Security: Never print plaintext secrets to console, logs, or files.
13
+ */
14
+ import { Command } from 'commander';
15
+ /**
16
+ * Create the secrets command group
17
+ */
18
+ export declare function createSecretsCommand(getConfigPath: () => string): Command;
19
+ //# sourceMappingURL=secrets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../src/commands/secrets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,MAAM,GAAG,OAAO,CA2YzE"}
@@ -0,0 +1,393 @@
1
+ /**
2
+ * Secrets management command (Phase 3.6)
3
+ *
4
+ * Provides commands for managing secrets:
5
+ * - list: Show all secrets with their bindings
6
+ * - set: Store a secret for a connector/key
7
+ * - edit: Interactive wizard to fill missing placeholders
8
+ * - prune: Remove orphan secrets not referenced by config
9
+ * - export: Export secrets to encrypted bundle
10
+ * - import: Import secrets from encrypted bundle
11
+ *
12
+ * Security: Never print plaintext secrets to console, logs, or files.
13
+ */
14
+ import { Command } from 'commander';
15
+ import { output, outputError, getOutputOptions } from '../utils/output.js';
16
+ import { existsSync, readFileSync } from 'fs';
17
+ import { dirname } from 'path';
18
+ import { listSecretBindings, setSecret, pruneOrphanSecrets, exportSecrets, importSecrets, } from '../secrets/index.js';
19
+ import { detectSecret } from '../secrets/detection.js';
20
+ import { readSecretHidden, readSecretFromClipboard } from '../utils/secret-input.js';
21
+ /**
22
+ * Create the secrets command group
23
+ */
24
+ export function createSecretsCommand(getConfigPath) {
25
+ const secrets = new Command('secrets')
26
+ .description('Secret management (list, set, edit, prune, export, import)');
27
+ // ============================================================
28
+ // secrets list
29
+ // ============================================================
30
+ secrets
31
+ .command('list')
32
+ .description('List all stored secrets with bindings')
33
+ .option('--json', 'Output in JSON format')
34
+ .option('--orphans', 'Show only orphan secrets (not bound to any config)')
35
+ .action(async (options) => {
36
+ try {
37
+ const configPath = getConfigPath();
38
+ const configDir = dirname(configPath);
39
+ const bindings = await listSecretBindings(configDir, configPath);
40
+ if (options.orphans) {
41
+ const orphans = bindings.filter(b => b.status === 'ORPHAN');
42
+ if (getOutputOptions().json || options.json) {
43
+ output(orphans);
44
+ }
45
+ else {
46
+ if (orphans.length === 0) {
47
+ output('No orphan secrets found.');
48
+ }
49
+ else {
50
+ output(`Found ${orphans.length} orphan secret(s):\n`);
51
+ for (const b of orphans) {
52
+ output(` ${b.secret_ref} (created: ${b.created_at})`);
53
+ }
54
+ }
55
+ }
56
+ return;
57
+ }
58
+ if (getOutputOptions().json || options.json) {
59
+ output(bindings);
60
+ }
61
+ else {
62
+ if (bindings.length === 0) {
63
+ output('No secrets stored.');
64
+ output('\nTo add secrets, use:');
65
+ output(' pfscan secrets set <connector> <ENV_KEY>');
66
+ return;
67
+ }
68
+ output(`Found ${bindings.length} secret(s):\n`);
69
+ output(' CONNECTOR ENV_KEY STATUS PROVIDER CREATED');
70
+ output(' ───────────────── ───────────────────────── ──────── ──────── ───────────────────');
71
+ for (const b of bindings) {
72
+ const connector = (b.connector_id || '-').padEnd(17);
73
+ const key = (b.env_key || '-').padEnd(25);
74
+ const status = b.status.padEnd(8);
75
+ const provider = b.provider.padEnd(8);
76
+ const created = b.created_at.slice(0, 19);
77
+ output(` ${connector} ${key} ${status} ${provider} ${created}`);
78
+ }
79
+ }
80
+ }
81
+ catch (err) {
82
+ const msg = err instanceof Error ? err.message : String(err);
83
+ outputError(`Failed to list secrets: ${msg}`);
84
+ process.exit(1);
85
+ }
86
+ });
87
+ // ============================================================
88
+ // secrets set
89
+ // ============================================================
90
+ secrets
91
+ .command('set <connector> <envKey>')
92
+ .description('Set a secret value for a connector environment variable')
93
+ .option('--clip', 'Read secret from clipboard instead of prompting')
94
+ .action(async (connectorId, envKey, options) => {
95
+ try {
96
+ const configPath = getConfigPath();
97
+ // Validate connector exists
98
+ if (!existsSync(configPath)) {
99
+ outputError(`Config file not found: ${configPath}`);
100
+ process.exit(1);
101
+ }
102
+ let config;
103
+ try {
104
+ config = JSON.parse(readFileSync(configPath, 'utf-8'));
105
+ }
106
+ catch (parseErr) {
107
+ outputError(`Invalid config file format: ${parseErr instanceof SyntaxError ? 'JSON parse error' : 'Read error'}`);
108
+ process.exit(1);
109
+ }
110
+ const connector = config.connectors?.find(c => c.id === connectorId);
111
+ if (!connector) {
112
+ outputError(`Connector not found: ${connectorId}`);
113
+ outputError(`Available connectors: ${config.connectors?.map(c => c.id).join(', ') || 'none'}`);
114
+ process.exit(1);
115
+ }
116
+ // Read secret value
117
+ let secretValue;
118
+ if (options.clip) {
119
+ output(`Reading secret for ${connectorId}.${envKey} from clipboard...`);
120
+ secretValue = await readSecretFromClipboard();
121
+ }
122
+ else {
123
+ output(`Enter secret for ${connectorId}.${envKey}:`);
124
+ secretValue = await readSecretHidden();
125
+ }
126
+ if (!secretValue || secretValue.trim().length === 0) {
127
+ outputError('Secret value cannot be empty');
128
+ process.exit(1);
129
+ }
130
+ // Store secret and update config
131
+ const result = await setSecret({
132
+ configPath,
133
+ connectorId,
134
+ envKey,
135
+ secretValue: secretValue.trim(),
136
+ });
137
+ output(`\n Secret stored: ${result.secretRef}`);
138
+ output(` Config updated: ${connectorId}.transport.env.${envKey}`);
139
+ }
140
+ catch (err) {
141
+ const msg = err instanceof Error ? err.message : String(err);
142
+ outputError(`Failed to set secret: ${msg}`);
143
+ process.exit(1);
144
+ }
145
+ });
146
+ // ============================================================
147
+ // secrets edit
148
+ // ============================================================
149
+ secrets
150
+ .command('edit [connector]')
151
+ .description('Interactive wizard to fill missing/placeholder secrets')
152
+ .option('--clip', 'Read secrets from clipboard')
153
+ .action(async (connectorId, options) => {
154
+ try {
155
+ const configPath = getConfigPath();
156
+ if (!existsSync(configPath)) {
157
+ outputError(`Config file not found: ${configPath}`);
158
+ process.exit(1);
159
+ }
160
+ let config;
161
+ try {
162
+ config = JSON.parse(readFileSync(configPath, 'utf-8'));
163
+ }
164
+ catch (parseErr) {
165
+ outputError(`Invalid config file format: ${parseErr instanceof SyntaxError ? 'JSON parse error' : 'Read error'}`);
166
+ process.exit(1);
167
+ }
168
+ const connectors = connectorId
169
+ ? config.connectors?.filter(c => c.id === connectorId)
170
+ : config.connectors;
171
+ if (!connectors || connectors.length === 0) {
172
+ if (connectorId) {
173
+ outputError(`Connector not found: ${connectorId}`);
174
+ }
175
+ else {
176
+ outputError('No connectors configured');
177
+ }
178
+ process.exit(1);
179
+ }
180
+ // Find all missing/placeholder secrets
181
+ const missing = [];
182
+ for (const conn of connectors) {
183
+ // Only stdio transport has env
184
+ if (conn.transport?.type !== 'stdio')
185
+ continue;
186
+ const env = conn.transport.env;
187
+ if (!env)
188
+ continue;
189
+ for (const [key, value] of Object.entries(env)) {
190
+ const detection = detectSecret(key, value);
191
+ if (detection.action === 'warn') {
192
+ // Placeholder detected
193
+ missing.push({
194
+ connector: conn,
195
+ key,
196
+ value: value,
197
+ reason: 'placeholder',
198
+ });
199
+ }
200
+ else if (detection.action === 'store' && !value.match(/^(dpapi|keychain|plain):[a-zA-Z0-9_-]+$/)) {
201
+ // Secret key but not yet stored (raw value)
202
+ missing.push({
203
+ connector: conn,
204
+ key,
205
+ value: value,
206
+ reason: 'raw-secret',
207
+ });
208
+ }
209
+ }
210
+ }
211
+ if (missing.length === 0) {
212
+ output('All secrets are properly configured.');
213
+ return;
214
+ }
215
+ output(`Found ${missing.length} secret(s) to configure:\n`);
216
+ let updated = 0;
217
+ for (let i = 0; i < missing.length; i++) {
218
+ const item = missing[i];
219
+ const label = `[${i + 1}/${missing.length}]`;
220
+ output(`${label} ${item.connector.id}.${item.key}`);
221
+ output(` Current: ${item.reason === 'placeholder' ? '(placeholder)' : '(not stored)'}`);
222
+ let secretValue;
223
+ if (options.clip) {
224
+ output(' Reading from clipboard...');
225
+ secretValue = await readSecretFromClipboard();
226
+ }
227
+ else {
228
+ output(' Enter value (or press Enter to skip):');
229
+ secretValue = await readSecretHidden();
230
+ }
231
+ if (!secretValue || secretValue.trim().length === 0) {
232
+ output(' Skipped.\n');
233
+ continue;
234
+ }
235
+ await setSecret({
236
+ configPath,
237
+ connectorId: item.connector.id,
238
+ envKey: item.key,
239
+ secretValue: secretValue.trim(),
240
+ });
241
+ output(' Stored.\n');
242
+ updated++;
243
+ }
244
+ output(`\nUpdated ${updated} of ${missing.length} secret(s).`);
245
+ }
246
+ catch (err) {
247
+ const msg = err instanceof Error ? err.message : String(err);
248
+ outputError(`Failed to edit secrets: ${msg}`);
249
+ process.exit(1);
250
+ }
251
+ });
252
+ // ============================================================
253
+ // secrets prune
254
+ // ============================================================
255
+ secrets
256
+ .command('prune')
257
+ .description('Remove orphan secrets not referenced by config')
258
+ .option('--dry-run', 'Show what would be removed without actually removing')
259
+ .option('--older-than <days>', 'Only prune secrets older than N days', parseInt)
260
+ .action(async (options) => {
261
+ try {
262
+ const configPath = getConfigPath();
263
+ const configDir = dirname(configPath);
264
+ // Validate olderThan option
265
+ const olderThanDays = options.olderThan;
266
+ if (olderThanDays !== undefined && (isNaN(olderThanDays) || olderThanDays < 0)) {
267
+ outputError('--older-than must be a positive number');
268
+ process.exit(1);
269
+ }
270
+ const result = await pruneOrphanSecrets({
271
+ configDir,
272
+ configPath,
273
+ dryRun: options.dryRun,
274
+ olderThanDays,
275
+ });
276
+ if (getOutputOptions().json) {
277
+ output(result);
278
+ }
279
+ else {
280
+ if (result.orphanCount === 0) {
281
+ output('No orphan secrets found.');
282
+ }
283
+ else if (options.dryRun) {
284
+ output(`Would remove ${result.orphanCount} orphan secret(s):`);
285
+ for (const id of result.removedIds) {
286
+ output(` - ${id}`);
287
+ }
288
+ }
289
+ else {
290
+ output(`Removed ${result.removedCount} orphan secret(s).`);
291
+ }
292
+ }
293
+ }
294
+ catch (err) {
295
+ const msg = err instanceof Error ? err.message : String(err);
296
+ outputError(`Failed to prune secrets: ${msg}`);
297
+ process.exit(1);
298
+ }
299
+ });
300
+ // ============================================================
301
+ // secrets export
302
+ // ============================================================
303
+ secrets
304
+ .command('export')
305
+ .description('Export secrets to encrypted bundle file')
306
+ .option('-o, --output <file>', 'Output file path (required)')
307
+ .option('--format <format>', 'Output format (json)', 'json')
308
+ .action(async (options) => {
309
+ try {
310
+ // Validate required -o option with friendly hint
311
+ if (!options.output) {
312
+ outputError('Required: -o, --output <file>');
313
+ output('Example: pfscan secrets export -o proofscan-secrets.export.json');
314
+ process.exit(1);
315
+ }
316
+ const configPath = getConfigPath();
317
+ const configDir = dirname(configPath);
318
+ output('Enter passphrase to encrypt the export:');
319
+ const passphrase = await readSecretHidden();
320
+ if (!passphrase || passphrase.length < 12) {
321
+ outputError('Passphrase must be at least 12 characters');
322
+ process.exit(1);
323
+ }
324
+ output('Confirm passphrase:');
325
+ const confirm = await readSecretHidden();
326
+ if (passphrase !== confirm) {
327
+ outputError('Passphrases do not match');
328
+ process.exit(1);
329
+ }
330
+ output('\nExporting secrets...');
331
+ const result = await exportSecrets({
332
+ configDir,
333
+ configPath,
334
+ outputPath: options.output,
335
+ passphrase,
336
+ });
337
+ output(`\nExported ${result.exportedCount} secret(s) to: ${options.output}`);
338
+ output('\nIMPORTANT: Store this file securely. It contains encrypted secrets.');
339
+ output(' You will need the passphrase to import on another machine.');
340
+ }
341
+ catch (err) {
342
+ const msg = err instanceof Error ? err.message : String(err);
343
+ outputError(`Failed to export secrets: ${msg}`);
344
+ process.exit(1);
345
+ }
346
+ });
347
+ // ============================================================
348
+ // secrets import
349
+ // ============================================================
350
+ secrets
351
+ .command('import <file>')
352
+ .description('Import secrets from encrypted bundle file')
353
+ .option('--overwrite', 'Overwrite existing secrets with same connector/key')
354
+ .option('--skip', 'Skip existing secrets (default)')
355
+ .action(async (file, options) => {
356
+ try {
357
+ const configPath = getConfigPath();
358
+ const configDir = dirname(configPath);
359
+ if (!existsSync(file)) {
360
+ outputError(`File not found: ${file}`);
361
+ process.exit(1);
362
+ }
363
+ output('Enter passphrase to decrypt the import:');
364
+ const passphrase = await readSecretHidden();
365
+ if (!passphrase) {
366
+ outputError('Passphrase is required');
367
+ process.exit(1);
368
+ }
369
+ output('\nImporting secrets...');
370
+ const result = await importSecrets({
371
+ configDir,
372
+ configPath,
373
+ inputPath: file,
374
+ passphrase,
375
+ overwrite: options.overwrite ?? false,
376
+ });
377
+ output(`\nImported ${result.importedCount} secret(s).`);
378
+ if (result.skippedCount > 0) {
379
+ output(`Skipped ${result.skippedCount} existing secret(s).`);
380
+ }
381
+ if (result.errorCount > 0) {
382
+ output(`Failed to import ${result.errorCount} secret(s).`);
383
+ }
384
+ }
385
+ catch (err) {
386
+ const msg = err instanceof Error ? err.message : String(err);
387
+ outputError(`Failed to import secrets: ${msg}`);
388
+ process.exit(1);
389
+ }
390
+ });
391
+ return secrets;
392
+ }
393
+ //# sourceMappingURL=secrets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/commands/secrets.ts"],"names":[],"mappings":"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"}
@@ -9,4 +9,6 @@ export { redactDeep, redactValue, redactEnv, redactionSummary, isRedacted, REDAC
9
9
  export { SqliteSecretStore, getSecretStore, closeSecretStore, } from './store.js';
10
10
  export { PlainProvider, DpapiProvider, getBestProvider, getProvider, } from './providers/index.js';
11
11
  export { secretizeEnv, formatSecretizeOutput, isSecretizeAvailable, type SecretizeKeyResult, type SecretizeResult, type SecretizeOptions, type FormatSecretizeOptions, } from './secretize.js';
12
+ export { listSecretBindings, setSecret, pruneOrphanSecrets, exportSecrets, importSecrets, type SecretBindingInfo, type SetSecretOptions, type SetSecretResult, type PruneOptions, type PruneResult, type ExportOptions, type ExportResult, type ImportOptions, type ImportResult, type ImportError, } from './management.js';
13
+ export { resolveEnvSecrets, formatResolveErrors, type ResolveEnvSecretsResult, type ResolveError, } from './resolve.js';
12
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/secrets/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,YAAY,CAAC;AAG3B,OAAO,EACL,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,KAAK,qBAAqB,GAC3B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,UAAU,EACV,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,aAAa,EACb,aAAa,EACb,eAAe,EACf,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,GAC5B,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/secrets/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,YAAY,CAAC;AAG3B,OAAO,EACL,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,KAAK,qBAAqB,GAC3B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,UAAU,EACV,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,aAAa,EACb,aAAa,EACb,eAAe,EACf,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,GAC5B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,uBAAuB,EAC5B,KAAK,YAAY,GAClB,MAAM,cAAc,CAAC"}
@@ -15,4 +15,8 @@ export { SqliteSecretStore, getSecretStore, closeSecretStore, } from './store.js
15
15
  export { PlainProvider, DpapiProvider, getBestProvider, getProvider, } from './providers/index.js';
16
16
  // Secretize
17
17
  export { secretizeEnv, formatSecretizeOutput, isSecretizeAvailable, } from './secretize.js';
18
+ // Management (Phase 3.6)
19
+ export { listSecretBindings, setSecret, pruneOrphanSecrets, exportSecrets, importSecrets, } from './management.js';
20
+ // Resolution (Phase 3.6)
21
+ export { resolveEnvSecrets, formatResolveErrors, } from './resolve.js';
18
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/secrets/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,uBAAuB;AACvB,cAAc,YAAY,CAAC;AAE3B,sBAAsB;AACtB,OAAO,EACL,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,YAAY,GAEb,MAAM,gBAAgB,CAAC;AAExB,sBAAsB;AACtB,OAAO,EACL,UAAU,EACV,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,YAAY,GAGb,MAAM,gBAAgB,CAAC;AAExB,QAAQ;AACR,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,YAAY;AACZ,OAAO,EACL,aAAa,EACb,aAAa,EACb,eAAe,EACf,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAE9B,YAAY;AACZ,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,GAKrB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/secrets/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,uBAAuB;AACvB,cAAc,YAAY,CAAC;AAE3B,sBAAsB;AACtB,OAAO,EACL,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,YAAY,GAEb,MAAM,gBAAgB,CAAC;AAExB,sBAAsB;AACtB,OAAO,EACL,UAAU,EACV,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,YAAY,GAGb,MAAM,gBAAgB,CAAC;AAExB,QAAQ;AACR,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,YAAY;AACZ,OAAO,EACL,aAAa,EACb,aAAa,EACb,eAAe,EACf,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAE9B,YAAY;AACZ,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,GAKrB,MAAM,gBAAgB,CAAC;AAExB,yBAAyB;AACzB,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,kBAAkB,EAClB,aAAa,EACb,aAAa,GAWd,MAAM,iBAAiB,CAAC;AAEzB,yBAAyB;AACzB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GAGpB,MAAM,cAAc,CAAC"}