dc-ops-cli 1.9.1 → 1.10.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.
- package/README.md +3 -0
- package/dist/commands/set.d.ts.map +1 -1
- package/dist/commands/set.js +14 -6
- package/dist/commands/set.js.map +1 -1
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -76,6 +76,9 @@ ops set GITHUB_TOKEN
|
|
|
76
76
|
# Pass value directly
|
|
77
77
|
ops set GITHUB_TOKEN --value "ghp_xxxxxxxxxxxx"
|
|
78
78
|
|
|
79
|
+
# Inline KEY=VALUE format (quick one-liner)
|
|
80
|
+
ops set GITHUB_TOKEN=ghp_xxxxxxxxxxxx
|
|
81
|
+
|
|
79
82
|
# Read value from file or stdin
|
|
80
83
|
ops set GITHUB_TOKEN --value-file ~/.secrets/github_token
|
|
81
84
|
cat token.txt | ops set GITHUB_TOKEN --value -
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/commands/set.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/commands/set.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC,CAqGf"}
|
package/dist/commands/set.js
CHANGED
|
@@ -10,6 +10,14 @@ export async function setCommand(name, options) {
|
|
|
10
10
|
if (!name || name.trim().length === 0) {
|
|
11
11
|
throw new OpError('Secret name cannot be empty.', 2);
|
|
12
12
|
}
|
|
13
|
+
// Parse KEY=VALUE format if provided
|
|
14
|
+
let actualName = name;
|
|
15
|
+
let inlineValue;
|
|
16
|
+
const eqIndex = name.indexOf('=');
|
|
17
|
+
if (eqIndex > 0) {
|
|
18
|
+
actualName = name.substring(0, eqIndex);
|
|
19
|
+
inlineValue = name.substring(eqIndex + 1);
|
|
20
|
+
}
|
|
13
21
|
checkOpCli();
|
|
14
22
|
if (options.value && options.valueFile) {
|
|
15
23
|
throw new OpError('Use either --value or --value-file, not both.', 2);
|
|
@@ -25,7 +33,7 @@ export async function setCommand(name, options) {
|
|
|
25
33
|
const canPrompt = !noInput && isInteractiveInput();
|
|
26
34
|
applyColorConfig(noColor);
|
|
27
35
|
// Check if secret already exists
|
|
28
|
-
const existing = getSecret(
|
|
36
|
+
const existing = getSecret(actualName, vault, field);
|
|
29
37
|
if (existing && !options.force) {
|
|
30
38
|
if (!canPrompt) {
|
|
31
39
|
throw new OpError('Secret already exists. Use --force to overwrite.', 2);
|
|
@@ -34,7 +42,7 @@ export async function setCommand(name, options) {
|
|
|
34
42
|
{
|
|
35
43
|
type: 'confirm',
|
|
36
44
|
name: 'overwrite',
|
|
37
|
-
message: chalk.yellow(`Secret "${
|
|
45
|
+
message: chalk.yellow(`Secret "${actualName}" already exists. Overwrite it?`),
|
|
38
46
|
default: false,
|
|
39
47
|
},
|
|
40
48
|
]);
|
|
@@ -43,8 +51,8 @@ export async function setCommand(name, options) {
|
|
|
43
51
|
return;
|
|
44
52
|
}
|
|
45
53
|
}
|
|
46
|
-
// Get value from option, file, stdin, or prompt
|
|
47
|
-
let value = options.value;
|
|
54
|
+
// Get value from inline KEY=VALUE, option, file, stdin, or prompt
|
|
55
|
+
let value = inlineValue ?? options.value;
|
|
48
56
|
if (options.valueFile) {
|
|
49
57
|
value = readValueFromInput(options.valueFile);
|
|
50
58
|
}
|
|
@@ -68,11 +76,11 @@ export async function setCommand(name, options) {
|
|
|
68
76
|
}
|
|
69
77
|
// Store the secret
|
|
70
78
|
const spinner = createSpinner('Storing secret in 1Password...', quiet);
|
|
71
|
-
setSecret(
|
|
79
|
+
setSecret(actualName, value, vault, field);
|
|
72
80
|
spinner.succeed(chalk.green('Secret stored successfully!'));
|
|
73
81
|
if (!quiet) {
|
|
74
82
|
console.log(chalk.cyan('\nRetrieve it with:'));
|
|
75
|
-
console.log(chalk.white(` ops get ${
|
|
83
|
+
console.log(chalk.white(` ops get ${actualName}`));
|
|
76
84
|
}
|
|
77
85
|
}
|
|
78
86
|
catch (error) {
|
package/dist/commands/set.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set.js","sourceRoot":"","sources":["../../src/commands/set.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAa5C,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAY,EACZ,OAAmB;IAEnB,IAAI,CAAC;QACH,6BAA6B;QAC7B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,OAAO,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,UAAU,EAAE,CAAC;QAEb,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACvC,MAAM,IAAI,OAAO,CAAC,+CAA+C,EAAE,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,QAAQ,CAAC;QACjD,MAAM,UAAU,GAAG,oBAAoB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,oBAAoB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,KAAK,KAAK,IAAI,UAAU,CAAC;QACtD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,KAAK,KAAK,IAAI,UAAU,CAAC;QACtD,MAAM,SAAS,GAAG,CAAC,OAAO,IAAI,kBAAkB,EAAE,CAAC;QAEnD,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAE1B,iCAAiC;QACjC,MAAM,QAAQ,GAAG,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"set.js","sourceRoot":"","sources":["../../src/commands/set.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dc-ops-cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.0",
|
|
4
4
|
"description": "Easy secret retrieval from 1Password with smart fallbacks",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -20,12 +20,12 @@
|
|
|
20
20
|
"scripts": {
|
|
21
21
|
"build:bin": "bun build --compile src/index.ts --outfile bin/ops",
|
|
22
22
|
"build": "tsc",
|
|
23
|
-
"dev": "TS_NODE_TRANSPILE_ONLY=1 node --
|
|
23
|
+
"dev": "TS_NODE_TRANSPILE_ONLY=1 node --import ./scripts/register-ts-node.mjs src/index.ts",
|
|
24
24
|
"typecheck": "tsc --noEmit",
|
|
25
25
|
"lint": "tsc --noEmit",
|
|
26
|
-
"test": "TS_NODE_TRANSPILE_ONLY=1 node --test --
|
|
27
|
-
"test:unit": "TS_NODE_TRANSPILE_ONLY=1 node --test --
|
|
28
|
-
"test:integration": "npm run build && TEST_OP_CLI=1 TS_NODE_TRANSPILE_ONLY=1 node --test --
|
|
26
|
+
"test": "TS_NODE_TRANSPILE_ONLY=1 node --test --import ./scripts/register-ts-node.mjs tests/commands/*.test.ts tests/utils/*.test.ts",
|
|
27
|
+
"test:unit": "TS_NODE_TRANSPILE_ONLY=1 node --test --import ./scripts/register-ts-node.mjs tests/commands/*.test.ts tests/utils/*.test.ts",
|
|
28
|
+
"test:integration": "npm run build && TEST_OP_CLI=1 TS_NODE_TRANSPILE_ONLY=1 node --test --import ./scripts/register-ts-node.mjs tests/integration/*.test.ts",
|
|
29
29
|
"test:all": "npm run test:unit && npm run test:integration",
|
|
30
30
|
"prepublishOnly": "npm run build",
|
|
31
31
|
"release": "semantic-release --dry-run",
|
|
@@ -62,6 +62,6 @@
|
|
|
62
62
|
"typescript": "^5.3.3"
|
|
63
63
|
},
|
|
64
64
|
"engines": {
|
|
65
|
-
"node": ">=
|
|
65
|
+
"node": ">=22.0.0"
|
|
66
66
|
}
|
|
67
67
|
}
|