@clef-sh/cli 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,82 @@
1
+ # @clef-sh/cli
2
+
3
+ CLI for [Clef](https://clef.sh) — git-native secrets management built on [Mozilla SOPS](https://github.com/getsops/sops). Adds structure, visibility, and guardrails to encrypted secrets without servers, databases, or vendor lock-in.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install -g @clef-sh/cli
9
+ ```
10
+
11
+ ## Prerequisites
12
+
13
+ - [SOPS](https://github.com/getsops/sops) v3.8+
14
+ - [age](https://github.com/FiloSottile/age) (or another SOPS-supported backend)
15
+ - Git
16
+ - Node.js 18+
17
+
18
+ Run `clef doctor` to verify your environment.
19
+
20
+ ## Quick start
21
+
22
+ ```bash
23
+ # Initialise a new Clef repo
24
+ clef init --namespaces database,payments,auth --non-interactive
25
+
26
+ # Set and retrieve secrets
27
+ clef set database/staging DB_PASSWORD
28
+ clef get database/staging DB_HOST
29
+
30
+ # Compare environments
31
+ clef diff database dev staging
32
+
33
+ # Validate the repo
34
+ clef lint
35
+
36
+ # Run a command with injected secrets
37
+ clef exec payments/production -- ./deploy.sh
38
+
39
+ # Launch the local web UI
40
+ clef ui
41
+ ```
42
+
43
+ ## Commands
44
+
45
+ | Command | Description |
46
+ | -------------------- | ----------------------------------------- |
47
+ | `clef doctor` | Check dependencies and configuration |
48
+ | `clef init` | Initialise a new Clef repo |
49
+ | `clef update` | Scaffold missing matrix cells |
50
+ | `clef get` | Retrieve a single decrypted value |
51
+ | `clef set` | Set a secret value |
52
+ | `clef delete` | Remove a key from an encrypted file |
53
+ | `clef diff` | Compare secrets between two environments |
54
+ | `clef lint` | Full repo health check |
55
+ | `clef rotate` | Re-encrypt with a new recipient key |
56
+ | `clef scan` | Scan for plaintext secrets in the repo |
57
+ | `clef import` | Import secrets from `.env`, JSON, or YAML |
58
+ | `clef export` | Print secrets as shell export statements |
59
+ | `clef recipients` | Manage age recipients (list, add, remove) |
60
+ | `clef hooks install` | Install the pre-commit hook |
61
+ | `clef exec` | Run a command with injected secrets |
62
+ | `clef ui` | Start the local web UI |
63
+ | `clef merge-driver` | Git merge driver for encrypted files |
64
+
65
+ ## Global options
66
+
67
+ ```bash
68
+ clef --version # Print version
69
+ clef --help # Print help
70
+ clef <cmd> --help # Help for a specific command
71
+ clef --repo <path|url> <cmd> ... # Use a different repo root
72
+ clef --repo <url> --branch <branch> ... # Use a specific branch of a remote repo
73
+ clef --plain <cmd> ... # Plain output without emoji/color
74
+ ```
75
+
76
+ ## Documentation
77
+
78
+ Full docs at [clef.sh/docs](https://clef.sh/docs/).
79
+
80
+ ## License
81
+
82
+ MIT
@@ -1 +1 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/commands/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAKjD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;IAAE,MAAM,EAAE,gBAAgB,CAAA;CAAE,GAAG,IAAI,CAgE5F;AAED,wBAAgB,UAAU,IAAI,OAAO,CAiBpC"}
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/commands/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAWjD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;IAAE,MAAM,EAAE,gBAAgB,CAAA;CAAE,GAAG,IAAI,CA2E5F;AAED,wBAAgB,UAAU,IAAI,OAAO,CAiBpC"}
@@ -1,8 +1,40 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.registerUiCommand = registerUiCommand;
4
37
  exports.isHeadless = isHeadless;
5
- const server_1 = require("@clef-sh/ui/dist/server");
6
38
  const formatter_1 = require("../output/formatter");
7
39
  const symbols_1 = require("../output/symbols");
8
40
  function registerUiCommand(program, deps) {
@@ -19,9 +51,13 @@ function registerUiCommand(program, deps) {
19
51
  return;
20
52
  }
21
53
  const repoRoot = program.opts().repo || process.cwd();
54
+ // Lazy-load @clef-sh/ui so the CLI doesn't fail at startup when the UI
55
+ // module hasn't been resolved yet for commands other than `clef ui`.
56
+ const uiModule = await Promise.resolve().then(() => __importStar(require("@clef-sh/ui/dist/server")));
57
+ const { startServer } = uiModule;
22
58
  let handle;
23
59
  try {
24
- handle = await (0, server_1.startServer)(port, repoRoot, deps.runner);
60
+ handle = await startServer(port, repoRoot, deps.runner);
25
61
  }
26
62
  catch (err) {
27
63
  const message = err instanceof Error ? err.message : "Unknown error";
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/commands/ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/commands/ui.ts"],"names":[],"mappings":"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"}