@clef-sh/core 0.1.28 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/README.md +1 -2
  2. package/dist/artifact/packer.d.ts +4 -3
  3. package/dist/artifact/packer.d.ts.map +1 -1
  4. package/dist/artifact/resolve.d.ts +3 -2
  5. package/dist/artifact/resolve.d.ts.map +1 -1
  6. package/dist/compliance/run.d.ts.map +1 -1
  7. package/dist/diff/engine.d.ts +18 -8
  8. package/dist/diff/engine.d.ts.map +1 -1
  9. package/dist/import/index.d.ts +5 -5
  10. package/dist/import/index.d.ts.map +1 -1
  11. package/dist/index.d.mts +12 -10
  12. package/dist/index.d.ts +12 -10
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +1080 -838
  15. package/dist/index.js.map +4 -4
  16. package/dist/index.mjs +1049 -794
  17. package/dist/index.mjs.map +4 -4
  18. package/dist/lint/runner.d.ts +7 -7
  19. package/dist/lint/runner.d.ts.map +1 -1
  20. package/dist/matrix/manager.d.ts +4 -16
  21. package/dist/matrix/manager.d.ts.map +1 -1
  22. package/dist/merge/driver.d.ts +2 -2
  23. package/dist/merge/driver.d.ts.map +1 -1
  24. package/dist/merge/metadata-driver.d.ts +5 -4
  25. package/dist/merge/metadata-driver.d.ts.map +1 -1
  26. package/dist/migration/backend.d.ts +10 -7
  27. package/dist/migration/backend.d.ts.map +1 -1
  28. package/dist/pack/backends/json-envelope.d.ts.map +1 -1
  29. package/dist/pack/types.d.ts +9 -3
  30. package/dist/pack/types.d.ts.map +1 -1
  31. package/dist/pending/metadata.d.ts +1 -3
  32. package/dist/pending/metadata.d.ts.map +1 -1
  33. package/dist/recipients/index.d.ts +4 -3
  34. package/dist/recipients/index.d.ts.map +1 -1
  35. package/dist/report/generator.d.ts +4 -3
  36. package/dist/report/generator.d.ts.map +1 -1
  37. package/dist/reset/manager.d.ts +21 -3
  38. package/dist/reset/manager.d.ts.map +1 -1
  39. package/dist/service-identity/manager.d.ts +6 -3
  40. package/dist/service-identity/manager.d.ts.map +1 -1
  41. package/dist/sops/client.d.ts +80 -55
  42. package/dist/sops/client.d.ts.map +1 -1
  43. package/dist/sops/linux-stdin-fifo.d.ts +31 -0
  44. package/dist/sops/linux-stdin-fifo.d.ts.map +1 -0
  45. package/dist/source/compose.d.ts +10 -0
  46. package/dist/source/compose.d.ts.map +1 -0
  47. package/dist/source/default-bulk.d.ts +12 -0
  48. package/dist/source/default-bulk.d.ts.map +1 -0
  49. package/dist/source/encryption-backend.d.ts +85 -0
  50. package/dist/source/encryption-backend.d.ts.map +1 -0
  51. package/dist/source/errors.d.ts +19 -0
  52. package/dist/source/errors.d.ts.map +1 -0
  53. package/dist/source/filesystem-storage-backend.d.ts +26 -0
  54. package/dist/source/filesystem-storage-backend.d.ts.map +1 -0
  55. package/dist/source/guards.d.ts +14 -0
  56. package/dist/source/guards.d.ts.map +1 -0
  57. package/dist/source/index.d.ts +10 -0
  58. package/dist/source/index.d.ts.map +1 -0
  59. package/dist/source/mock-source.d.ts +89 -0
  60. package/dist/source/mock-source.d.ts.map +1 -0
  61. package/dist/source/storage-backend.d.ts +61 -0
  62. package/dist/source/storage-backend.d.ts.map +1 -0
  63. package/dist/source/types.d.ts +212 -0
  64. package/dist/source/types.d.ts.map +1 -0
  65. package/dist/structure/manager.d.ts +17 -3
  66. package/dist/structure/manager.d.ts.map +1 -1
  67. package/dist/sync/manager.d.ts +7 -6
  68. package/dist/sync/manager.d.ts.map +1 -1
  69. package/dist/types/index.d.ts +10 -23
  70. package/dist/types/index.d.ts.map +1 -1
  71. package/package.json +3 -3
  72. package/dist/bulk/ops.d.ts +0 -57
  73. package/dist/bulk/ops.d.ts.map +0 -1
@@ -1,21 +1,21 @@
1
1
  import { ClefManifest, LintResult } from "../types";
2
2
  import { MatrixManager } from "../matrix/manager";
3
3
  import { SchemaValidator } from "../schema/validator";
4
- import { EncryptionBackend } from "../types";
4
+ import type { Lintable, SecretSource } from "../source/types";
5
5
  /**
6
6
  * Runs matrix completeness, schema validation, SOPS integrity, and key-drift checks.
7
7
  *
8
8
  * @example
9
9
  * ```ts
10
- * const runner = new LintRunner(matrixManager, schemaValidator, sopsClient);
10
+ * const runner = new LintRunner(matrixManager, schemaValidator, source);
11
11
  * const result = await runner.run(manifest, repoRoot);
12
12
  * ```
13
13
  */
14
14
  export declare class LintRunner {
15
15
  private readonly matrixManager;
16
16
  private readonly schemaValidator;
17
- private readonly sopsClient;
18
- constructor(matrixManager: MatrixManager, schemaValidator: SchemaValidator, sopsClient: EncryptionBackend);
17
+ private readonly source;
18
+ constructor(matrixManager: MatrixManager, schemaValidator: SchemaValidator, source: SecretSource & Lintable);
19
19
  /**
20
20
  * Lint the entire matrix: check missing files, schema errors, SOPS integrity,
21
21
  * single-recipient warnings, and cross-environment key drift.
@@ -25,10 +25,10 @@ export declare class LintRunner {
25
25
  */
26
26
  run(manifest: ClefManifest, repoRoot: string): Promise<LintResult>;
27
27
  /**
28
- * Cross-reference `.clef-meta.yaml` against the cipher's plaintext key
28
+ * Cross-reference cell metadata against the cipher's plaintext key
29
29
  * names for each existing cell. Reports orphan rotation records and
30
- * dual-state (pending + rotation) inconsistencies. Uses
31
- * {@link readSopsKeyNames} (plaintext YAML parse) — no decryption.
30
+ * dual-state (pending + rotation) inconsistencies. Uses the source's
31
+ * `listKeys` (no decryption).
32
32
  */
33
33
  private lintMetadataConsistency;
34
34
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/lint/runner.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EAEZ,UAAU,EAIX,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAI7C;;;;;;;;GAQG;AACH,qBAAa,UAAU;IAEnB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAFV,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,iBAAiB;IAGhD;;;;;;OAMG;IACG,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAmOxE;;;;;OAKG;YACW,uBAAuB;IAgDrC;;OAEG;YACW,qBAAqB;IAoGnC;;;;;OAKG;IACG,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAWzE"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/lint/runner.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EAEZ,UAAU,EAIX,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAW,QAAQ,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEvE;;;;;;;;GAQG;AACH,qBAAa,UAAU;IAEnB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFN,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,YAAY,GAAG,QAAQ;IAGlD;;;;;;OAMG;IACG,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAqOxE;;;;;OAKG;YACW,uBAAuB;IA0DrC;;OAEG;YACW,qBAAqB;IAoGnC;;;;;OAKG;IACG,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAczE"}
@@ -1,5 +1,4 @@
1
1
  import { ClefManifest, MatrixCell, MatrixStatus } from "../types";
2
- import { EncryptionBackend } from "../types";
3
2
  /**
4
3
  * Resolves and manages the namespace × environment matrix of encrypted files.
5
4
  *
@@ -25,28 +24,17 @@ export declare class MatrixManager {
25
24
  * @param repoRoot - Absolute path to the repository root.
26
25
  */
27
26
  detectMissingCells(manifest: ClefManifest, repoRoot: string): MatrixCell[];
28
- /**
29
- * Create an empty encrypted SOPS file for a missing matrix cell.
30
- *
31
- * @param cell - The cell to scaffold (must not already exist).
32
- * @param sopsClient - SOPS client used to write the initial encrypted file.
33
- * @param manifest - Parsed manifest used to determine the encryption backend.
34
- */
35
- scaffoldCell(cell: MatrixCell, sopsClient: EncryptionBackend, manifest: ClefManifest): Promise<void>;
36
27
  /**
37
28
  * Read each cell and return key counts, pending counts, and cross-environment issues.
38
29
  *
39
- * The SOPS client parameter is currently unused keys are read from the
40
- * plaintext YAML structure directly, no decryption needed. It is retained
41
- * in the signature for back-compat with callers that may need to swap to a
42
- * decrypt-based implementation later (e.g. for backends that don't expose
43
- * key names without decryption).
30
+ * Keys are read from the plaintext YAML structure directly no
31
+ * decryption needed. A future backend that doesn't expose key names
32
+ * without decryption would need its own implementation.
44
33
  *
45
34
  * @param manifest - Parsed manifest.
46
35
  * @param repoRoot - Absolute path to the repository root.
47
- * @param _sopsClient - Reserved for future use; pass any `EncryptionBackend`.
48
36
  */
49
- getMatrixStatus(manifest: ClefManifest, repoRoot: string, _sopsClient: EncryptionBackend): Promise<MatrixStatus[]>;
37
+ getMatrixStatus(manifest: ClefManifest, repoRoot: string): Promise<MatrixStatus[]>;
50
38
  /**
51
39
  * Read top-level key names from a SOPS file without decryption.
52
40
  * SOPS stores key names in plaintext — only values are encrypted.
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/matrix/manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAe,YAAY,EAAE,MAAM,UAAU,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAI7C;;;;;;;;GAQG;AACH,qBAAa,aAAa;IACxB;;;;;;OAMG;IACH,aAAa,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE;IAsBrE;;;;;OAKG;IACH,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE;IAI1E;;;;;;OAMG;IACG,YAAY,CAChB,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,iBAAiB,EAC7B,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,IAAI,CAAC;IAShB;;;;;;;;;;;;OAYG;IACG,eAAe,CACnB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,iBAAiB,GAC7B,OAAO,CAAC,YAAY,EAAE,CAAC;IAiE1B;;;OAGG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;;;;OAKG;IACH,sBAAsB,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;CAI7E"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/matrix/manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAe,YAAY,EAAE,MAAM,UAAU,CAAC;AAI/E;;;;;;;;GAQG;AACH,qBAAa,aAAa;IACxB;;;;;;OAMG;IACH,aAAa,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE;IAsBrE;;;;;OAKG;IACH,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE;IAI1E;;;;;;;;;OASG;IACG,eAAe,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAiExF;;;OAGG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;;;;OAKG;IACH,sBAAsB,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;CAI7E"}
@@ -1,4 +1,4 @@
1
- import { EncryptionBackend } from "../types";
1
+ import { MergeDecrypter } from "../types";
2
2
  /** Status of a single key in a three-way merge. */
3
3
  export type MergeKeyStatus = "unchanged" | "ours" | "theirs" | "both_added" | "conflict";
4
4
  /** One key's resolution in the three-way merge. */
@@ -43,7 +43,7 @@ export interface MergeResult {
43
43
  */
44
44
  export declare class SopsMergeDriver {
45
45
  private readonly sopsClient;
46
- constructor(sopsClient: EncryptionBackend);
46
+ constructor(sopsClient: MergeDecrypter);
47
47
  /**
48
48
  * Perform a three-way merge on three in-memory key/value maps.
49
49
  *
@@ -1 +1 @@
1
- {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/merge/driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,mDAAmD;AACnD,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,CAAC;AAEzF,mDAAmD;AACnD,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,cAAc,CAAC;IACvB,oGAAoG;IACpG,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,wEAAwE;IACxE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,4EAA4E;IAC5E,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,mCAAmC;AACnC,MAAM,WAAW,WAAW;IAC1B,6DAA6D;IAC7D,KAAK,EAAE,OAAO,CAAC;IACf,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,kCAAkC;IAClC,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,0EAA0E;IAC1E,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,iBAAiB;IAE1D;;;;;;;;;OASG;IACH,KAAK,CACH,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,WAAW;IAoEd;;;;;;;OAOG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAS/F"}
1
+ {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/merge/driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,mDAAmD;AACnD,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,CAAC;AAEzF,mDAAmD;AACnD,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,cAAc,CAAC;IACvB,oGAAoG;IACpG,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,wEAAwE;IACxE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,4EAA4E;IAC5E,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,mCAAmC;AACnC,MAAM,WAAW,WAAW;IAC1B,6DAA6D;IAC7D,KAAK,EAAE,OAAO,CAAC;IACf,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,kCAAkC;IAClC,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,0EAA0E;IAC1E,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,cAAc;IAEvD;;;;;;;;;OASG;IACH,KAAK,CACH,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,WAAW;IAoEd;;;;;;;OAOG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAS/F"}
@@ -8,10 +8,11 @@
8
8
  */
9
9
  export declare function mergeMetadataContents(oursContent: string, theirsContent: string): string;
10
10
  /**
11
- * Filesystem wrapper around {@link mergeMetadataContents}. Reads ours and
12
- * theirs, writes the merged result back to `oursPath` (the conventional
13
- * destination git passes as `%A`). Does not read `basePath` — see the
14
- * merge algorithm's docstring for why a base revision is not needed.
11
+ * Filesystem wrapper around `mergeMetadataContents` (internal). Reads
12
+ * ours and theirs, writes the merged result back to `oursPath` (the
13
+ * conventional destination git passes as `%A`). Does not read
14
+ * `basePath` — see the merge algorithm's docstring for why a base
15
+ * revision is not needed.
15
16
  */
16
17
  export declare function mergeMetadataFiles(_basePath: string, oursPath: string, theirsPath: string): void;
17
18
  //# sourceMappingURL=metadata-driver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata-driver.d.ts","sourceRoot":"","sources":["../../src/merge/metadata-driver.ts"],"names":[],"mappings":"AAgNA;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAQxF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAKhG"}
1
+ {"version":3,"file":"metadata-driver.d.ts","sourceRoot":"","sources":["../../src/merge/metadata-driver.ts"],"names":[],"mappings":"AAgNA;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAQxF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAKhG"}
@@ -1,4 +1,5 @@
1
- import { BackendType, ClefManifest, EncryptionBackend, EnvironmentSopsOverride } from "../types";
1
+ import { BackendType, ClefManifest, EnvironmentSopsOverride } from "../types";
2
+ import type { SecretSource } from "../source/types";
2
3
  import { MatrixManager } from "../matrix/manager";
3
4
  import { TransactionManager } from "../tx";
4
5
  export interface MigrationTarget {
@@ -43,19 +44,21 @@ export declare const BACKEND_KEY_FIELDS: Record<BackendType, keyof EnvironmentSo
43
44
  */
44
45
  export declare function buildSopsOverride(backend: BackendType, key: string | undefined): EnvironmentSopsOverride;
45
46
  export declare class BackendMigrator {
47
+ private readonly buildSource;
46
48
  private readonly matrixManager;
47
49
  private readonly tx;
48
- private readonly decryptBackend;
49
- private readonly encryptBackend;
50
50
  /**
51
- * @param encryption - Backend used for both decrypt and encrypt (standard case).
51
+ * @param buildSource - Factory that builds a `SecretSource` bound to a
52
+ * given manifest. Called twice during a real migration: once with the
53
+ * pre-migration manifest (for classification + decrypt) and once with
54
+ * the post-mutation manifest (for re-encrypt + verify). The factory
55
+ * pattern is required because the encryption layer of a composed
56
+ * source is bound to a manifest at construction.
52
57
  * @param matrixManager - Matrix resolver.
53
58
  * @param tx - Transaction manager that wraps the migration in a single git commit
54
59
  * so a partial failure rolls back ALL files + the manifest via `git reset --hard`.
55
- * @param targetEncryption - Optional separate backend for encrypt. Use when migrating
56
- * from cloud (decrypt via keyservice) to another backend (encrypt via local credentials).
57
60
  */
58
- constructor(encryption: EncryptionBackend, matrixManager: MatrixManager, tx: TransactionManager, targetEncryption?: EncryptionBackend);
61
+ constructor(buildSource: (manifest: ClefManifest) => SecretSource, matrixManager: MatrixManager, tx: TransactionManager);
59
62
  migrate(manifest: ClefManifest, repoRoot: string, options: MigrationOptions, onProgress?: (event: MigrationProgressEvent) => void): Promise<MigrationResult>;
60
63
  private updateManifestDoc;
61
64
  private checkAgeRecipientsWarning;
@@ -1 +1 @@
1
- {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/migration/backend.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,EAGxB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,WAAW,CAAC;IACrB,gFAAgF;IAChF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,eAAe,CAAC;IACxB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAID;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,uBAAuB,GAAG,SAAS,CAO7F,CAAC;AAMF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,MAAM,GAAG,SAAS,GACtB,uBAAuB,CAOzB;AAUD,qBAAa,eAAe;IAcxB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,EAAE;IAdrB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoB;IACnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoB;IAEnD;;;;;;;OAOG;gBAED,UAAU,EAAE,iBAAiB,EACZ,aAAa,EAAE,aAAa,EAC5B,EAAE,EAAE,kBAAkB,EACvC,gBAAgB,CAAC,EAAE,iBAAiB;IAMhC,OAAO,CACX,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,gBAAgB,EACzB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,GACnD,OAAO,CAAC,eAAe,CAAC;IAwM3B,OAAO,CAAC,iBAAiB;IA8BzB,OAAO,CAAC,yBAAyB;CAmBlC"}
1
+ {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/migration/backend.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,WAAW,EACX,YAAY,EACZ,uBAAuB,EAGxB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAW,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,WAAW,CAAC;IACrB,gFAAgF;IAChF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,eAAe,CAAC;IACxB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAID;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,uBAAuB,GAAG,SAAS,CAO7F,CAAC;AAMF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,MAAM,GAAG,SAAS,GACtB,uBAAuB,CAOzB;AAUD,qBAAa,eAAe;IAaxB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,EAAE;IAdrB;;;;;;;;;;OAUG;gBAEgB,WAAW,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,YAAY,EACrD,aAAa,EAAE,aAAa,EAC5B,EAAE,EAAE,kBAAkB;IAGnC,OAAO,CACX,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,gBAAgB,EACzB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,GACnD,OAAO,CAAC,eAAe,CAAC;IA0M3B,OAAO,CAAC,iBAAiB;IA8BzB,OAAO,CAAC,yBAAyB;CAmBlC"}
@@ -1 +1 @@
1
- {"version":3,"file":"json-envelope.d.ts","sourceRoot":"","sources":["../../../src/pack/backends/json-envelope.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5E;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6FAA6F;IAC7F,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IACrD,QAAQ,CAAC,EAAE,mBAAmB;IAC9B,QAAQ,CAAC,WAAW,sEAAsE;IAE1F,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAY7C,IAAI,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC;CA8BzD"}
1
+ {"version":3,"file":"json-envelope.d.ts","sourceRoot":"","sources":["../../../src/pack/backends/json-envelope.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5E;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6FAA6F;IAC7F,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IACrD,QAAQ,CAAC,EAAE,mBAAmB;IAC9B,QAAQ,CAAC,WAAW,sEAAsE;IAE1F,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAY7C,IAAI,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC;CA0BzD"}
@@ -1,13 +1,19 @@
1
- import type { ClefManifest, EncryptionBackend, SubprocessRunner } from "../types";
1
+ import type { ClefManifest, SubprocessRunner } from "../types";
2
2
  import type { KmsProvider } from "../kms";
3
3
  import type { PackResult } from "../artifact/types";
4
+ import type { SecretSource } from "../source/types";
4
5
  /**
5
6
  * Shared services a PackBackend may use. A backend is free to ignore any
6
7
  * field it does not need.
7
8
  */
8
9
  export interface PackServices {
9
- /** Decryption/encryption of SOPS source files in the matrix. */
10
- encryption: EncryptionBackend;
10
+ /**
11
+ * Plaintext-cell access to the matrix. Backends call `source.readCell`
12
+ * (typically via the shared `resolveIdentitySecrets` helper) to fetch
13
+ * decrypted values for an identity's scoped namespaces × environment.
14
+ * Encryption substrate is opaque to the backend.
15
+ */
16
+ source: SecretSource;
11
17
  /** KMS provider, already constructed. Undefined when the manifest does not require one. */
12
18
  kms?: KmsProvider;
13
19
  /** For subprocess access (git, external CLIs). Prefer this over child_process. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/pack/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,gEAAgE;IAChE,UAAU,EAAE,iBAAiB,CAAC;IAC9B,2FAA2F;IAC3F,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,kFAAkF;IAClF,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,QAAQ,EAAE,YAAY,CAAC;IACvB,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,QAAQ,EAAE,YAAY,CAAC;IACvB,8EAA8E;IAC9E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;CAC5D;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,oFAAoF;IACpF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,eAAe,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACrD;;;OAGG;IACH,IAAI,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACpD;AAED,gEAAgE;AAChE,MAAM,MAAM,kBAAkB,GAAG,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/pack/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,MAAM,EAAE,YAAY,CAAC;IACrB,2FAA2F;IAC3F,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,kFAAkF;IAClF,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,QAAQ,EAAE,YAAY,CAAC;IACvB,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,QAAQ,EAAE,YAAY,CAAC;IACvB,8EAA8E;IAC9E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;CAC5D;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,oFAAoF;IACpF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,eAAe,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACrD;;;OAGG;IACH,IAAI,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACpD;AAED,gEAAgE;AAChE,MAAM,MAAM,kBAAkB,GAAG,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC"}
@@ -21,8 +21,6 @@ interface CellMetadata {
21
21
  pending: PendingKey[];
22
22
  rotations: RotationRecord[];
23
23
  }
24
- /** @deprecated Use {@link CellMetadata}. Retained for external import compatibility. */
25
- type PendingMetadata = CellMetadata;
26
24
  /**
27
25
  * Derive the `.clef-meta.yaml` path from an `.enc.yaml` path.
28
26
  * Example: `database/dev.enc.yaml` → `database/dev.clef-meta.yaml`
@@ -67,5 +65,5 @@ declare function generateRandomValue(): string;
67
65
  * Same as {@link markPending} but retries once after `retryDelayMs` on transient failure.
68
66
  */
69
67
  declare function markPendingWithRetry(filePath: string, keys: string[], setBy: string, retryDelayMs?: number): Promise<void>;
70
- export { PendingKey, RotationRecord, CellMetadata, PendingMetadata, metadataPath, loadMetadata, saveMetadata, markPending, markPendingWithRetry, markResolved, getPendingKeys, isPending, recordRotation, removeRotation, getRotations, generateRandomValue, };
68
+ export { PendingKey, RotationRecord, CellMetadata, metadataPath, loadMetadata, saveMetadata, markPending, markPendingWithRetry, markResolved, getPendingKeys, isPending, recordRotation, removeRotation, getRotations, generateRandomValue, };
71
69
  //# sourceMappingURL=metadata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/pending/metadata.ts"],"names":[],"mappings":"AAoCA,UAAU,UAAU;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,IAAI,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,cAAc;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,UAAU,YAAY;IACpB,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,SAAS,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED,yFAAyF;AACzF,KAAK,eAAe,GAAG,YAAY,CAAC;AAEpC;;;GAGG;AACH,iBAAS,YAAY,CAAC,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAIvD;AAQD,yGAAyG;AACzG,iBAAe,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAiDnE;AAED,qEAAqE;AACrE,iBAAe,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBnF;AAED;;;GAGG;AACH,iBAAe,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYzF;AAED,8EAA8E;AAC9E,iBAAe,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAI3E;AAED,wFAAwF;AACxF,iBAAe,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAGjE;AAED,oFAAoF;AACpF,iBAAe,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGxE;AAED;;;;;;;;GAQG;AACH,iBAAe,cAAc,CAC3B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EAAE,EACd,SAAS,EAAE,MAAM,EACjB,GAAG,GAAE,IAAiB,GACrB,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED;;;;GAIG;AACH,iBAAe,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAI7E;AAED,mFAAmF;AACnF,iBAAe,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAGvE;AAED,kGAAkG;AAClG,iBAAS,mBAAmB,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,iBAAe,oBAAoB,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,MAAM,EACb,YAAY,SAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,OAAO,EACL,UAAU,EACV,cAAc,EACd,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,SAAS,EACT,cAAc,EACd,cAAc,EACd,YAAY,EACZ,mBAAmB,GACpB,CAAC"}
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/pending/metadata.ts"],"names":[],"mappings":"AAoCA,UAAU,UAAU;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,IAAI,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,cAAc;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,UAAU,YAAY;IACpB,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,SAAS,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED;;;GAGG;AACH,iBAAS,YAAY,CAAC,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAIvD;AAQD,yGAAyG;AACzG,iBAAe,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAiDnE;AAED,qEAAqE;AACrE,iBAAe,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBnF;AAED;;;GAGG;AACH,iBAAe,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYzF;AAED,8EAA8E;AAC9E,iBAAe,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAI3E;AAED,wFAAwF;AACxF,iBAAe,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAGjE;AAED,oFAAoF;AACpF,iBAAe,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGxE;AAED;;;;;;;;GAQG;AACH,iBAAe,cAAc,CAC3B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EAAE,EACd,SAAS,EAAE,MAAM,EACjB,GAAG,GAAE,IAAiB,GACrB,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED;;;;GAIG;AACH,iBAAe,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAI7E;AAED,mFAAmF;AACnF,iBAAe,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAGvE;AAED,kGAAkG;AAClG,iBAAS,mBAAmB,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,iBAAe,oBAAoB,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,MAAM,EACb,YAAY,SAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,OAAO,EACL,UAAU,EACV,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,SAAS,EACT,cAAc,EACd,cAAc,EACd,YAAY,EACZ,mBAAmB,GACpB,CAAC"}
@@ -1,4 +1,5 @@
1
- import { ClefManifest, EncryptionBackend } from "../types";
1
+ import { ClefManifest } from "../types";
2
+ import type { Rotatable, SecretSource } from "../source/types";
2
3
  import { MatrixManager } from "../matrix/manager";
3
4
  import { TransactionManager } from "../tx";
4
5
  export interface Recipient {
@@ -28,10 +29,10 @@ export interface RecipientsResult {
28
29
  * ```
29
30
  */
30
31
  export declare class RecipientManager {
31
- private readonly encryption;
32
+ private readonly source;
32
33
  private readonly matrixManager;
33
34
  private readonly tx;
34
- constructor(encryption: EncryptionBackend, matrixManager: MatrixManager, tx: TransactionManager);
35
+ constructor(source: SecretSource & Rotatable, matrixManager: MatrixManager, tx: TransactionManager);
35
36
  /**
36
37
  * List all age recipients declared in the manifest.
37
38
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/recipients/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAE3C,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAsFD;;;;;;;;;;;;GAYG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAFF,UAAU,EAAE,iBAAiB,EAC7B,aAAa,EAAE,aAAa,EAC5B,EAAE,EAAE,kBAAkB;IAGzC;;;;;;OAMG;IACG,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAchG;;;;;;;;;;OAUG;IACG,GAAG,CACP,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,gBAAgB,CAAC;IA0E5B;;;;;;;;;;OAUG;IACG,MAAM,CACV,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,gBAAgB,CAAC;CAiE7B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/recipients/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAW,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAE3C,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAsFD;;;;;;;;;;;;GAYG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAFF,MAAM,EAAE,YAAY,GAAG,SAAS,EAChC,aAAa,EAAE,aAAa,EAC5B,EAAE,EAAE,kBAAkB;IAGzC;;;;;;OAMG;IACG,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAchG;;;;;;;;;;OAUG;IACG,GAAG,CACP,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,gBAAgB,CAAC;IA2E5B;;;;;;;;;;OAUG;IACG,MAAM,CACV,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,gBAAgB,CAAC;CAkE7B"}
@@ -1,6 +1,7 @@
1
- import { ClefReport, EncryptionBackend, SubprocessRunner } from "../types";
1
+ import { ClefReport, SubprocessRunner } from "../types";
2
2
  import { MatrixManager } from "../matrix/manager";
3
3
  import { SchemaValidator } from "../schema/validator";
4
+ import type { Lintable, SecretSource } from "../source/types";
4
5
  /**
5
6
  * Orchestrates all data-gathering for a `clef report` invocation.
6
7
  * Matrix key counts are read from SOPS YAML directly (no decryption).
@@ -8,10 +9,10 @@ import { SchemaValidator } from "../schema/validator";
8
9
  */
9
10
  export declare class ReportGenerator {
10
11
  private readonly runner;
11
- private readonly sopsClient;
12
+ private readonly source;
12
13
  private readonly matrixManager;
13
14
  private readonly schemaValidator;
14
- constructor(runner: SubprocessRunner, sopsClient: EncryptionBackend, matrixManager: MatrixManager, schemaValidator: SchemaValidator);
15
+ constructor(runner: SubprocessRunner, source: SecretSource & Lintable, matrixManager: MatrixManager, schemaValidator: SchemaValidator);
15
16
  /**
16
17
  * Generate a full {@link ClefReport} for the given repository root.
17
18
  * Each section gathers data independently — partial failures return empty
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/report/generator.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,UAAU,EAEV,iBAAiB,EAQjB,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAOtD;;;;GAIG;AACH,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAHf,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,iBAAiB,EAC7B,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe;IAGnD;;;;;;;;OAQG;IACG,QAAQ,CACZ,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GACrE,OAAO,CAAC,UAAU,CAAC;YAwCR,iBAAiB;IAwD/B,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,sBAAsB;YAiBhB,gBAAgB;YAuBhB,SAAS;IA8CvB,OAAO,CAAC,YAAY;YAIN,WAAW;IAUzB,OAAO,CAAC,eAAe;IAmCvB,OAAO,CAAC,kBAAkB;CAM3B"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/report/generator.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,UAAU,EASV,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKtD,OAAO,KAAK,EAAW,QAAQ,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEvE;;;;GAIG;AACH,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAHf,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,YAAY,GAAG,QAAQ,EAC/B,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe;IAGnD;;;;;;;;OAQG;IACG,QAAQ,CACZ,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GACrE,OAAO,CAAC,UAAU,CAAC;YAwCR,iBAAiB;IAwD/B,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,sBAAsB;YAiBhB,gBAAgB;YAuBhB,SAAS;IA+CvB,OAAO,CAAC,YAAY;YAIN,WAAW;IAUzB,OAAO,CAAC,eAAe;IAmCvB,OAAO,CAAC,kBAAkB;CAM3B"}
@@ -1,4 +1,5 @@
1
- import { BackendType, ClefManifest, EncryptionBackend } from "../types";
1
+ import { BackendType, ClefManifest } from "../types";
2
+ import type { SecretSource } from "../source/types";
2
3
  import { MatrixManager } from "../matrix/manager";
3
4
  import { SchemaValidator } from "../schema/validator";
4
5
  import { TransactionManager } from "../tx";
@@ -68,10 +69,27 @@ export interface ResetResult {
68
69
  */
69
70
  export declare class ResetManager {
70
71
  private readonly matrixManager;
71
- private readonly encryption;
72
+ /**
73
+ * Factory rather than a single instance because reset can swap the
74
+ * SOPS backend mid-transaction (`opts.backend`). The encryption
75
+ * layer of a composed source is bound to a manifest at construction,
76
+ * so writing cells under the *new* backend requires a fresh source.
77
+ * Callers pass `(m) => composeSecretSource(storage(m), enc, m)` (or
78
+ * equivalent) so the manager can recompose after the manifest swap.
79
+ */
80
+ private readonly buildSource;
72
81
  private readonly schemaValidator;
73
82
  private readonly tx;
74
- constructor(matrixManager: MatrixManager, encryption: EncryptionBackend, schemaValidator: SchemaValidator, tx: TransactionManager);
83
+ constructor(matrixManager: MatrixManager,
84
+ /**
85
+ * Factory rather than a single instance because reset can swap the
86
+ * SOPS backend mid-transaction (`opts.backend`). The encryption
87
+ * layer of a composed source is bound to a manifest at construction,
88
+ * so writing cells under the *new* backend requires a fresh source.
89
+ * Callers pass `(m) => composeSecretSource(storage(m), enc, m)` (or
90
+ * equivalent) so the manager can recompose after the manifest swap.
91
+ */
92
+ buildSource: (manifest: ClefManifest) => SecretSource, schemaValidator: SchemaValidator, tx: TransactionManager);
75
93
  reset(opts: ResetOptions, manifest: ClefManifest, repoRoot: string): Promise<ResetResult>;
76
94
  /**
77
95
  * Resolve the scope into an explicit list of cells. Assumes the scope has
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/reset/manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAc,MAAM,UAAU,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAItD,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAG3C;;;GAGG;AACH,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7D,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,CAAC;IAClB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5C,cAAc,EAAE,OAAO,CAAC;IACxB,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAHF,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,iBAAiB,EAC7B,eAAe,EAAE,eAAe,EAChC,EAAE,EAAE,kBAAkB;IAGnC,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAwF/F;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY;IAcpB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc;CAkBvB;AAED,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CASvD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE;IAAE,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAAC,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,GAC7E,IAAI,CA2BN"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/reset/manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAc,MAAM,UAAU,CAAC;AACjE,OAAO,KAAK,EAAW,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAItD,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAG3C;;;GAGG;AACH,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7D,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,CAAC;IAClB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5C,cAAc,EAAE,OAAO,CAAC;IACxB,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAXF,aAAa,EAAE,aAAa;IAC7C;;;;;;;OAOG;IACc,WAAW,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,YAAY,EACrD,eAAe,EAAE,eAAe,EAChC,EAAE,EAAE,kBAAkB;IAGnC,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAwF/F;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY;IAcpB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc;CAkBvB;AAED,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CASvD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE;IAAE,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAAC,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,GAC7E,IAAI,CA2BN"}
@@ -1,4 +1,5 @@
1
- import { ClefManifest, EncryptionBackend, KmsConfig, ServiceIdentityDefinition, ServiceIdentityDriftIssue } from "../types";
1
+ import { ClefManifest, KmsConfig, ServiceIdentityDefinition, ServiceIdentityDriftIssue } from "../types";
2
+ import type { Rotatable, SecretSource } from "../source/types";
2
3
  import { MatrixManager } from "../matrix/manager";
3
4
  import { TransactionManager } from "../tx";
4
5
  /** Options for creating a new service identity. */
@@ -26,10 +27,12 @@ export interface CreateServiceIdentityOptions {
26
27
  * ```
27
28
  */
28
29
  export declare class ServiceIdentityManager {
29
- private readonly encryption;
30
+ private readonly source;
30
31
  private readonly matrixManager;
31
32
  private readonly tx;
32
- constructor(encryption: EncryptionBackend, matrixManager: MatrixManager, tx: TransactionManager);
33
+ constructor(source: SecretSource & Rotatable, matrixManager: MatrixManager, tx: TransactionManager);
34
+ /** Helper: cell → ref for the source seam. */
35
+ private ref;
33
36
  /**
34
37
  * Compute repo-relative paths for a set of cells plus the manifest. Used
35
38
  * to seed TransactionManager.run's `paths` argument.
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/service-identity/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/service-identity/manager.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,39 @@
1
- import { ClefManifest, DecryptedFile, EncryptionBackend, SopsMetadata, SubprocessRunner } from "../types";
1
+ import { DecryptedFile, MergeDecrypter, SopsMetadata, SubprocessRunner } from "../types";
2
+ import type { EncryptionBackend, EncryptionContext, RotateOptions } from "../source/encryption-backend";
2
3
  /**
3
- * Wraps the `sops` binary for encryption, decryption, re-encryption, and metadata extraction.
4
- * All decrypt/encrypt operations are piped via stdin/stdout — plaintext never touches disk.
4
+ * Wraps the `sops` binary for encryption, decryption, rotation, and metadata
5
+ * extraction. All blob operations are piped via stdin/stdout — plaintext
6
+ * never touches disk.
7
+ *
8
+ * `SopsClient` implements {@link EncryptionBackend} directly — pass it
9
+ * straight to `composeSecretSource(storage, client, manifest)` without
10
+ * any adapter. The legacy file-path methods (`encrypt(filePath, ...)`,
11
+ * `addRecipient`, `removeRecipient`, `reEncrypt`,
12
+ * `validateEncryption(filePath)`, `getMetadata(filePath)`) were removed
13
+ * in Phase 7. The only remaining file-path entry point is
14
+ * {@link decryptFile}, kept for the merge driver which receives temp
15
+ * file paths from git — the contract for that surface is
16
+ * {@link MergeDecrypter}.
5
17
  *
6
18
  * @example
7
19
  * ```ts
8
20
  * const client = new SopsClient(runner, "/home/user/.age/key.txt");
9
- * const decrypted = await client.decrypt("secrets/production.enc.yaml");
21
+ * const source = composeSecretSource(
22
+ * new FilesystemStorageBackend(manifest, repoRoot),
23
+ * client,
24
+ * manifest,
25
+ * );
26
+ * const cell = await source.readCell({ namespace: "db", environment: "prod" });
10
27
  * ```
11
28
  */
12
- export declare class SopsClient implements EncryptionBackend {
29
+ export declare class SopsClient implements EncryptionBackend, MergeDecrypter {
13
30
  private readonly runner;
14
31
  private readonly ageKeyFile?;
15
32
  private readonly ageKey?;
33
+ /** {@link EncryptionBackend} identifier. */
34
+ readonly id = "sops";
35
+ /** {@link EncryptionBackend} short description (used by `clef doctor`). */
36
+ readonly description = "SOPS-based encryption via the bundled `sops` binary";
16
37
  private readonly sopsCommand;
17
38
  private readonly keyserviceArgs;
18
39
  /**
@@ -36,77 +57,81 @@ export declare class SopsClient implements EncryptionBackend {
36
57
  constructor(runner: SubprocessRunner, ageKeyFile?: string | undefined, ageKey?: string | undefined, sopsPath?: string, keyserviceAddr?: string);
37
58
  private buildSopsEnv;
38
59
  /**
39
- * Decrypt a SOPS-encrypted file and return its values and metadata.
60
+ * Decrypt a SOPS-encrypted file by path. The only remaining file-path
61
+ * entry point on this class — kept for the merge driver, which
62
+ * receives temp filesystem paths from git that don't map onto a
63
+ * `CellRef`. Production `SecretSource` consumers should call
64
+ * `source.readCell` instead.
40
65
  *
41
66
  * @param filePath - Path to the `.enc.yaml` or `.enc.json` file.
42
67
  * @returns {@link DecryptedFile} with plaintext values in memory only.
43
68
  * @throws {@link SopsKeyNotFoundError} If no matching decryption key is available.
44
69
  * @throws {@link SopsDecryptionError} On any other decryption failure.
45
70
  */
46
- decrypt(filePath: string): Promise<DecryptedFile>;
71
+ decryptFile(filePath: string): Promise<DecryptedFile>;
47
72
  /**
48
- * Encrypt a key/value map and write it to an encrypted SOPS file.
73
+ * Determine whether a decrypt failure is caused by a missing/mismatched key (vs. some other
74
+ * SOPS error) without relying on stderr message text.
49
75
  *
50
- * @param filePath - Destination path for the encrypted file.
51
- * @param values - Flat key/value map to encrypt.
52
- * @param manifest - Manifest used to determine the encryption backend and key configuration.
53
- * @param environment - Optional environment name. When provided, per-env backend overrides
54
- * are resolved from the manifest. When omitted, the global `sops.default_backend` is used.
55
- * @throws {@link SopsEncryptionError} On encryption or write failure.
76
+ * For age backends: reads the file's recipient list and checks whether any of the configured
77
+ * private keys derive to a matching public key. For non-age backends (pgp, kms) we cannot
78
+ * perform an equivalent check, so those always return "other".
56
79
  */
57
- encrypt(filePath: string, values: Record<string, string>, manifest: ClefManifest, environment?: string): Promise<void>;
80
+ private classifyDecryptError;
81
+ private parseMetadataFromFile;
58
82
  /**
59
- * Rotate encryption by adding a new age recipient key to an existing SOPS file.
60
- *
61
- * @param filePath - Path to the encrypted file to re-encrypt.
62
- * @param newKey - New age public key to add as a recipient.
63
- * @throws {@link SopsEncryptionError} On failure.
83
+ * Parse SOPS metadata from a string (no IO). Used by both
84
+ * `parseMetadataFromFile` (after reading from disk) and the blob-shaped
85
+ * `getMetadataFromBlob` (which receives ciphertext directly from a
86
+ * BlobStore). The `label` is woven into error messages so callers can
87
+ * include the file path or cell ref the content came from.
64
88
  */
65
- reEncrypt(filePath: string, newKey: string): Promise<void>;
89
+ private parseMetadataFromContent;
90
+ private detectBackend;
91
+ private extractRecipients;
92
+ private buildEncryptArgs;
66
93
  /**
67
- * Add an age recipient to an existing SOPS file.
68
- *
69
- * @param filePath - Path to the encrypted file.
70
- * @param key - age public key to add as a recipient.
71
- * @throws {@link SopsEncryptionError} On failure.
94
+ * {@link EncryptionBackend.decrypt} decrypt SOPS-encrypted bytes (e.g.
95
+ * read from a `StorageBackend`) and return plaintext values + metadata.
96
+ * Plaintext lives only in memory.
72
97
  */
73
- addRecipient(filePath: string, key: string): Promise<void>;
98
+ decrypt(blob: string, ctx: EncryptionContext): Promise<DecryptedFile>;
74
99
  /**
75
- * Remove an age recipient from an existing SOPS file.
76
- *
77
- * @param filePath - Path to the encrypted file.
78
- * @param key - age public key to remove.
79
- * @throws {@link SopsEncryptionError} On failure.
100
+ * {@link EncryptionBackend.encrypt} encrypt plaintext values into a
101
+ * SOPS-formatted ciphertext blob. Returns the bytes as a string;
102
+ * caller (typically a `StorageBackend`) decides where to put them.
103
+ * Plaintext is piped via stdin only.
80
104
  */
81
- removeRecipient(filePath: string, key: string): Promise<void>;
105
+ encrypt(values: Record<string, string>, ctx: EncryptionContext): Promise<string>;
82
106
  /**
83
- * Check whether a file contains valid SOPS encryption metadata.
107
+ * {@link EncryptionBackend.rotate} add or remove recipients from an
108
+ * encrypted SOPS blob via stdin/stdout. Drops the in-place `-i` flag
109
+ * the deleted file-path-shaped methods used, so SOPS writes the
110
+ * rotated ciphertext to stdout instead of back to a file. Plaintext
111
+ * stays inside the SOPS subprocess; no plaintext window exists in
112
+ * this Node process.
84
113
  *
85
- * @param filePath - Path to the file to check.
86
- * @returns `true` if valid SOPS metadata is present; `false` otherwise. Never throws.
114
+ * Single SOPS invocation can both add and remove recipients
115
+ * simultaneously (matches the CLI flag set).
87
116
  */
88
- validateEncryption(filePath: string): Promise<boolean>;
117
+ rotate(blob: string, opts: RotateOptions, ctx: EncryptionContext): Promise<string>;
89
118
  /**
90
- * Extract SOPS metadata (backend, recipients, last-modified timestamp) from an encrypted file
91
- * without decrypting its values.
92
- *
93
- * @param filePath - Path to the encrypted file.
94
- * @returns {@link SopsMetadata} parsed from the file's `sops:` block.
95
- * @throws {@link SopsDecryptionError} If the file cannot be read or parsed.
119
+ * {@link EncryptionBackend.getMetadata} extract SOPS metadata from a
120
+ * ciphertext blob without decrypting. Pure parser, no IO, no
121
+ * subprocess.
96
122
  */
97
- getMetadata(filePath: string): Promise<SopsMetadata>;
123
+ getMetadata(content: string): SopsMetadata;
98
124
  /**
99
- * Determine whether a decrypt failure is caused by a missing/mismatched key (vs. some other
100
- * SOPS error) without relying on stderr message text.
101
- *
102
- * For age backends: reads the file's recipient list and checks whether any of the configured
103
- * private keys derive to a matching public key. For non-age backends (pgp, kms) we cannot
104
- * perform an equivalent check, so those always return "other".
125
+ * {@link EncryptionBackend.validateEncryption} whether `content` is a
126
+ * valid SOPS-encrypted blob (parses + has the `sops:` metadata
127
+ * block). Never throws.
105
128
  */
106
- private classifyDecryptError;
107
- private parseMetadataFromFile;
108
- private detectBackend;
109
- private extractRecipients;
110
- private buildEncryptArgs;
129
+ validateEncryption(content: string): boolean;
130
+ /**
131
+ * Blob-shaped variant of `classifyDecryptError`. Same logic as the
132
+ * file-path version but reads metadata from the in-memory ciphertext
133
+ * instead of disk.
134
+ */
135
+ private classifyDecryptErrorFromContent;
111
136
  }
112
137
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/sops/client.ts"],"names":[],"mappings":"AAiBA,OAAO,EAEL,YAAY,EACZ,aAAa,EACb,iBAAiB,EAIjB,YAAY,EACZ,gBAAgB,EAGjB,MAAM,UAAU,CAAC;AA0ClB;;;;;;;;;GASG;AACH,qBAAa,UAAW,YAAW,iBAAiB;IAuBhD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAxB1B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoB;IAEnD;;;;;;;;;;;;;;;;;OAiBG;gBAEgB,MAAM,EAAE,gBAAgB,EACxB,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,MAAM,CAAC,EAAE,MAAM,YAAA,EAChC,QAAQ,CAAC,EAAE,MAAM,EACjB,cAAc,CAAC,EAAE,MAAM;IAQzB,OAAO,CAAC,YAAY;IAWpB;;;;;;;OAOG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA6CvD;;;;;;;;;OASG;IACG,OAAO,CACX,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,QAAQ,EAAE,YAAY,EACtB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAuEhB;;;;;;OAMG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhE;;;;;;OAMG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBhE;;;;;;OAMG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBnE;;;;;OAKG;IACG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU5D;;;;;;;OAOG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAgB1D;;;;;;;OAOG;YACW,oBAAoB;IAsClC,OAAO,CAAC,qBAAqB;IAuC7B,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,iBAAiB;IA6CzB,OAAO,CAAC,gBAAgB;CA+DzB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/sops/client.ts"],"names":[],"mappings":"AAgBA,OAAO,EAGL,aAAa,EACb,cAAc,EAId,YAAY,EACZ,gBAAgB,EAGjB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACd,MAAM,8BAA8B,CAAC;AAsEtC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,UAAW,YAAW,iBAAiB,EAAE,cAAc;IA4BhE,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IA7B1B,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,UAAU;IACrB,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,yDAAyD;IAE7E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoB;IAEnD;;;;;;;;;;;;;;;;;OAiBG;gBAEgB,MAAM,EAAE,gBAAgB,EACxB,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,MAAM,CAAC,EAAE,MAAM,YAAA,EAChC,QAAQ,CAAC,EAAE,MAAM,EACjB,cAAc,CAAC,EAAE,MAAM;IAQzB,OAAO,CAAC,YAAY;IAWpB;;;;;;;;;;;OAWG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAiD3D;;;;;;;OAOG;YACW,oBAAoB;IAsClC,OAAO,CAAC,qBAAqB;IAa7B;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IA6BhC,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,iBAAiB;IA6CzB,OAAO,CAAC,gBAAgB;IAoExB;;;;OAIG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;IAmD3E;;;;;OAKG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAwCtF;;;;;;;;;;OAUG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAiDxF;;;;OAIG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY;IAI1C;;;;OAIG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAS5C;;;;OAIG;YACW,+BAA+B;CAmC9C"}