dc-ops-cli 1.4.0 → 1.5.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/dist/index.js +20 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/op.d.ts +9 -0
- package/dist/utils/op.d.ts.map +1 -1
- package/dist/utils/op.js +74 -32
- package/dist/utils/op.js.map +1 -1
- package/dist/utils/retry.d.ts +54 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +165 -0
- package/dist/utils/retry.js.map +1 -0
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -12,6 +12,8 @@ import { runCommand } from './commands/run.js';
|
|
|
12
12
|
import { inspectCommand } from './commands/inspect.js';
|
|
13
13
|
import { vaultsCommand } from './commands/vaults.js';
|
|
14
14
|
import { completionCommand } from './commands/completion.js';
|
|
15
|
+
import { setRetryOptions } from './utils/op.js';
|
|
16
|
+
import { isRetryDisabled } from './utils/retry.js';
|
|
15
17
|
// Dynamic version from package.json
|
|
16
18
|
const require = createRequire(import.meta.url);
|
|
17
19
|
const pkg = require('../package.json');
|
|
@@ -23,6 +25,24 @@ program
|
|
|
23
25
|
.addHelpCommand()
|
|
24
26
|
.showHelpAfterError()
|
|
25
27
|
.showSuggestionAfterError()
|
|
28
|
+
.option('--retry <count>', 'max retry attempts for transient failures (default: 3, env: OPS_RETRY_COUNT)')
|
|
29
|
+
.option('--no-retry', 'disable retry logic (env: OPS_NO_RETRY=1)')
|
|
30
|
+
.hook('preAction', (thisCommand) => {
|
|
31
|
+
const opts = thisCommand.opts();
|
|
32
|
+
// Configure retry options based on CLI flags
|
|
33
|
+
if (opts.retry === false || isRetryDisabled()) {
|
|
34
|
+
// --no-retry flag or OPS_NO_RETRY=1
|
|
35
|
+
setRetryOptions({ maxRetries: 0 });
|
|
36
|
+
}
|
|
37
|
+
else if (typeof opts.retry === 'string') {
|
|
38
|
+
// --retry N flag
|
|
39
|
+
const retryCount = parseInt(opts.retry, 10);
|
|
40
|
+
if (!isNaN(retryCount) && retryCount >= 0) {
|
|
41
|
+
setRetryOptions({ maxRetries: retryCount });
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// Otherwise use defaults from environment or built-in defaults
|
|
45
|
+
})
|
|
26
46
|
.action(() => {
|
|
27
47
|
// Show help when no command is provided (exit 0, not 1)
|
|
28
48
|
program.outputHelp();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/op.d.ts
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import { execFileSync } from 'child_process';
|
|
2
2
|
import { OpItem } from './types.js';
|
|
3
|
+
import { RetryOptions } from './retry.js';
|
|
4
|
+
/**
|
|
5
|
+
* Set global retry options (called from CLI commands)
|
|
6
|
+
*/
|
|
7
|
+
export declare function setRetryOptions(options: RetryOptions): void;
|
|
8
|
+
/**
|
|
9
|
+
* Get current retry options
|
|
10
|
+
*/
|
|
11
|
+
export declare function getRetryOptions(): RetryOptions;
|
|
3
12
|
/**
|
|
4
13
|
* Get the default field name based on item category
|
|
5
14
|
*/
|
package/dist/utils/op.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"op.d.ts","sourceRoot":"","sources":["../../src/utils/op.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAY,MAAM,eAAe,CAAC;AAIvD,OAAO,EAAE,MAAM,EAAW,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"op.d.ts","sourceRoot":"","sources":["../../src/utils/op.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAY,MAAM,eAAe,CAAC;AAIvD,OAAO,EAAE,MAAM,EAAW,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAiB,YAAY,EAAoB,MAAM,YAAY,CAAC;AA0D3E;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAE3D;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAE9C;AA0BD;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUnE;AASD;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAkB,GAAG,MAAM,GAAG,IAAI,CAGjF;AAED,UAAU,qBAAqB;IAC7B,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,oBAAoB,EAAE,MAAM,MAAM,CAAC,UAAU,CAAC;IAC9C,UAAU,EAAE,MAAM,MAAM,CAAC,UAAU,CAAC;CACrC;AAyCD,wBAAgB,uBAAuB,CACrC,SAAS,GAAE,OAAO,CAAC,qBAAqB,CAAM,GAC7C,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAmD/B;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAoBjC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,GAAE,MAAkB,GAAG,MAAM,EAAE,CAkB7D;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAkB,GACxB,OAAO,CAaT;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,MAAkB,EACzB,KAAK,GAAE,MAAmB,GACzB,MAAM,GAAG,IAAI,CAqCf;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAkB,EACzB,KAAK,GAAE,MAAmB,GACzB,IAAI,CAuBN;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAkB,EACzB,KAAK,GAAE,MAAmB,GACzB,IAAI,CAqBN;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAkB,EACzB,KAAK,GAAE,MAAmB,GACzB,IAAI,CAYN;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAkB,GAAG,MAAM,GAAG,IAAI,CAe/E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAkB,GAAG,MAAM,EAAE,CAOhF;AAOD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,GAAE,MAAkB,GAAG,MAAM,EAAE,CAkBjE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAkB,GAAG,MAAM,EAAE,CAK9E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAkB,EACzB,UAAU,GAAE,MAAU,GACrB,MAAM,EAAE,CAqCV;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,OAAO,EAAE,CAiBtC"}
|
package/dist/utils/op.js
CHANGED
|
@@ -3,6 +3,7 @@ import { readFileSync } from 'fs';
|
|
|
3
3
|
import { homedir } from 'os';
|
|
4
4
|
import { join } from 'path';
|
|
5
5
|
import { OpError } from './types.js';
|
|
6
|
+
import { withRetrySync, isTransientError } from './retry.js';
|
|
6
7
|
/**
|
|
7
8
|
* Load service account token from ~/.config/op/sa_token
|
|
8
9
|
*/
|
|
@@ -46,6 +47,32 @@ function getOpEnvWithoutServiceAccount() {
|
|
|
46
47
|
delete env.OP_SERVICE_ACCOUNT_TOKEN;
|
|
47
48
|
return env;
|
|
48
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Global retry options that can be configured per-command
|
|
52
|
+
*/
|
|
53
|
+
let globalRetryOptions = {};
|
|
54
|
+
/**
|
|
55
|
+
* Set global retry options (called from CLI commands)
|
|
56
|
+
*/
|
|
57
|
+
export function setRetryOptions(options) {
|
|
58
|
+
globalRetryOptions = options;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get current retry options
|
|
62
|
+
*/
|
|
63
|
+
export function getRetryOptions() {
|
|
64
|
+
return globalRetryOptions;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Check if an op error is retryable based on error message
|
|
68
|
+
*/
|
|
69
|
+
function isOpErrorRetryable(error) {
|
|
70
|
+
const message = error.message.toLowerCase();
|
|
71
|
+
// Format the stderr if it's a child process error
|
|
72
|
+
const stderr = error.stderr?.toString().toLowerCase() || '';
|
|
73
|
+
const combined = message + ' ' + stderr;
|
|
74
|
+
return isTransientError(new Error(combined));
|
|
75
|
+
}
|
|
49
76
|
function isShareLinkUnsupported(message) {
|
|
50
77
|
return message.includes('--share-link') && message.includes('unknown');
|
|
51
78
|
}
|
|
@@ -165,9 +192,12 @@ export function checkOpCli() {
|
|
|
165
192
|
*/
|
|
166
193
|
export function listItems(vault = 'Private') {
|
|
167
194
|
const env = getOpEnv();
|
|
195
|
+
const retryOpts = { ...globalRetryOptions, isRetryable: isOpErrorRetryable };
|
|
168
196
|
try {
|
|
169
|
-
|
|
170
|
-
|
|
197
|
+
return withRetrySync(() => {
|
|
198
|
+
const output = execSync(`op item list --vault="${vault}" --format=json`, { encoding: 'utf-8', stdio: 'pipe', env });
|
|
199
|
+
return JSON.parse(output);
|
|
200
|
+
}, retryOpts);
|
|
171
201
|
}
|
|
172
202
|
catch (error) {
|
|
173
203
|
if (error.stderr?.includes('vault')) {
|
|
@@ -198,32 +228,35 @@ export function itemExists(title, vault = 'Private') {
|
|
|
198
228
|
*/
|
|
199
229
|
export function getSecret(reference, vault = 'Private', field = 'password') {
|
|
200
230
|
const env = getOpEnv();
|
|
231
|
+
const retryOpts = { ...globalRetryOptions, isRetryable: isOpErrorRetryable };
|
|
201
232
|
try {
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
233
|
+
return withRetrySync(() => {
|
|
234
|
+
// Try direct reference first (op://vault/item/field)
|
|
235
|
+
if (reference.startsWith('op://')) {
|
|
236
|
+
const output = execSync(`op read "${reference}"`, {
|
|
237
|
+
encoding: 'utf-8',
|
|
238
|
+
stdio: 'pipe',
|
|
239
|
+
env,
|
|
240
|
+
});
|
|
241
|
+
return output.trim();
|
|
242
|
+
}
|
|
243
|
+
// If name has special chars (like /), use item ID instead
|
|
244
|
+
let itemRef = reference;
|
|
245
|
+
if (hasSpecialChars(reference)) {
|
|
246
|
+
const itemId = getItemId(reference, vault);
|
|
247
|
+
if (itemId) {
|
|
248
|
+
itemRef = itemId;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
// Construct reference
|
|
252
|
+
const opReference = `op://${vault}/${itemRef}/${field}`;
|
|
253
|
+
const output = execSync(`op read "${opReference}" 2>/dev/null`, {
|
|
205
254
|
encoding: 'utf-8',
|
|
206
255
|
stdio: 'pipe',
|
|
207
256
|
env,
|
|
208
257
|
});
|
|
209
258
|
return output.trim();
|
|
210
|
-
}
|
|
211
|
-
// If name has special chars (like /), use item ID instead
|
|
212
|
-
let itemRef = reference;
|
|
213
|
-
if (hasSpecialChars(reference)) {
|
|
214
|
-
const itemId = getItemId(reference, vault);
|
|
215
|
-
if (itemId) {
|
|
216
|
-
itemRef = itemId;
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
// Construct reference
|
|
220
|
-
const opReference = `op://${vault}/${itemRef}/${field}`;
|
|
221
|
-
const output = execSync(`op read "${opReference}" 2>/dev/null`, {
|
|
222
|
-
encoding: 'utf-8',
|
|
223
|
-
stdio: 'pipe',
|
|
224
|
-
env,
|
|
225
|
-
});
|
|
226
|
-
return output.trim();
|
|
259
|
+
}, retryOpts);
|
|
227
260
|
}
|
|
228
261
|
catch {
|
|
229
262
|
return null;
|
|
@@ -288,9 +321,12 @@ export function updateItem(title, value, vault = 'Private', field = 'password')
|
|
|
288
321
|
*/
|
|
289
322
|
export function getItem(title, vault = 'Private') {
|
|
290
323
|
const env = getOpEnv();
|
|
324
|
+
const retryOpts = { ...globalRetryOptions, isRetryable: isOpErrorRetryable };
|
|
291
325
|
try {
|
|
292
|
-
|
|
293
|
-
|
|
326
|
+
return withRetrySync(() => {
|
|
327
|
+
const output = execSync(`op item get "${title}" --vault="${vault}" --format=json`, { encoding: 'utf-8', stdio: 'pipe', env });
|
|
328
|
+
return JSON.parse(output);
|
|
329
|
+
}, retryOpts);
|
|
294
330
|
}
|
|
295
331
|
catch {
|
|
296
332
|
return null;
|
|
@@ -319,9 +355,12 @@ export function getItemFromShareLink(shareLink) {
|
|
|
319
355
|
*/
|
|
320
356
|
export function listFavorites(vault = 'Private') {
|
|
321
357
|
const env = getOpEnv();
|
|
358
|
+
const retryOpts = { ...globalRetryOptions, isRetryable: isOpErrorRetryable };
|
|
322
359
|
try {
|
|
323
|
-
|
|
324
|
-
|
|
360
|
+
return withRetrySync(() => {
|
|
361
|
+
const output = execSync(`op item list --vault="${vault}" --favorite --format=json`, { encoding: 'utf-8', stdio: 'pipe', env });
|
|
362
|
+
return JSON.parse(output);
|
|
363
|
+
}, retryOpts);
|
|
325
364
|
}
|
|
326
365
|
catch (error) {
|
|
327
366
|
if (error.stderr?.includes('vault')) {
|
|
@@ -377,13 +416,16 @@ export function findSimilarItems(query, vault = 'Private', maxResults = 3) {
|
|
|
377
416
|
*/
|
|
378
417
|
export function listVaults() {
|
|
379
418
|
const env = getOpEnv();
|
|
419
|
+
const retryOpts = { ...globalRetryOptions, isRetryable: isOpErrorRetryable };
|
|
380
420
|
try {
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
421
|
+
return withRetrySync(() => {
|
|
422
|
+
const output = execSync('op vault list --format=json', {
|
|
423
|
+
encoding: 'utf-8',
|
|
424
|
+
stdio: 'pipe',
|
|
425
|
+
env,
|
|
426
|
+
});
|
|
427
|
+
return JSON.parse(output);
|
|
428
|
+
}, retryOpts);
|
|
387
429
|
}
|
|
388
430
|
catch (error) {
|
|
389
431
|
const message = formatOpErrorMessage(error);
|
package/dist/utils/op.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"op.js","sourceRoot":"","sources":["../../src/utils/op.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAU,OAAO,EAAE,MAAM,YAAY,CAAC;AAE7C;;GAEG;AACH,SAAS,uBAAuB;IAC9B,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QACtD,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ;IACf,MAAM,KAAK,GAAG,uBAAuB,EAAE,CAAC;IACxC,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE/B,IAAI,KAAK,EAAE,CAAC;QACV,GAAG,CAAC,wBAAwB,GAAG,KAAK,CAAC;IACvC,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,UAAU,GAAG,KAAuD,CAAC;IAC3E,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,6BAA6B;IACpC,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,OAAO,GAAG,CAAC,wBAAwB,CAAC;IACpC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAe;IAC7C,OAAO,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,2BAA2B,CAAC,OAAe;IAClD,OAAO,CACL,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACjD,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAC/D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAAgB;IACzD,MAAM,gBAAgB,GAA2B;QAC/C,cAAc,EAAE,YAAY;QAC5B,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,UAAU;QAClB,WAAW,EAAE,YAAY;KAC1B,CAAC;IACF,OAAO,gBAAgB,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa,EAAE,QAAgB,SAAS;IAChE,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACnC,OAAO,IAAI,EAAE,EAAE,IAAI,IAAI,CAAC;AAC1B,CAAC;AAQD,SAAS,oBAAoB,CAC3B,SAAiB,EACjB,GAAsB,EACtB,MAA2B;IAE3B,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,oBAAoB,GAAG,KAAK,CAAC;IACjC,IAAI,wBAAwB,GAAG,KAAK,CAAC;IAErC,MAAM,QAAQ,GAAe;QAC3B,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,CAAC;QAC3D,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,CAAC;KAC5C,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE;gBAChC,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,MAAM;gBACb,GAAG;aACJ,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAW,EAAE,CAAC;QAChD,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,OAAO,EAAE,CAAC;gBACZ,SAAS,GAAG,OAAO,CAAC;YACtB,CAAC;YACD,IAAI,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpC,oBAAoB,GAAG,IAAI,CAAC;YAC9B,CAAC;YACD,IAAI,2BAA2B,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzC,wBAAwB,GAAG,IAAI,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,YAA4C,EAAE;IAE9C,MAAM,IAAI,GAA0B;QAClC,YAAY;QACZ,oBAAoB,EAAE,QAAQ;QAC9B,UAAU,EAAE,6BAA6B;QACzC,GAAG,SAAS;KACb,CAAC;IAEF,OAAO,CAAC,SAAiB,EAAU,EAAE;QACnC,MAAM,OAAO,GAAG,oBAAoB,CAClC,SAAS,EACT,IAAI,CAAC,oBAAoB,EAAE,EAC3B,IAAI,CAAC,YAAY,CAClB,CAAC;QAEF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,OAAO,CAAC,IAAI,CAAC;QACtB,CAAC;QAED,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;YACjC,MAAM,IAAI,OAAO,CACf,gFAAgF,EAChF,CAAC,CACF,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,wBAAwB,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,oBAAoB,CACnC,SAAS,EACT,IAAI,CAAC,UAAU,EAAE,EACjB,IAAI,CAAC,YAAY,CAClB,CAAC;YAEF,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAClB,OAAO,QAAQ,CAAC,IAAI,CAAC;YACvB,CAAC;YAED,IAAI,QAAQ,CAAC,oBAAoB,EAAE,CAAC;gBAClC,MAAM,IAAI,OAAO,CACf,gFAAgF,EAChF,CAAC,CACF,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,OAAO,CAAC,+BAA+B,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,OAAO,CAAC,+BAA+B,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;IAEvB,IAAI,CAAC;QACH,QAAQ,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,OAAO,CACf,+EAA+E,EAC/E,CAAC,CACF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,QAAQ,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,OAAO,CACf,2DAA2D,EAC3D,CAAC,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,QAAgB,SAAS;IACjD,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;IAEvB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CACrB,yBAAyB,KAAK,iBAAiB,EAC/C,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAC1C,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,OAAO,CAAC,UAAU,KAAK,aAAa,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,KAAa,EACb,QAAgB,SAAS;IAEzB,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;IAEvB,IAAI,CAAC;QACH,QAAQ,CAAC,gBAAgB,KAAK,cAAc,KAAK,iBAAiB,EAAE;YAClE,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,MAAM;YACb,GAAG;SACJ,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CACvB,SAAiB,EACjB,QAAgB,SAAS,EACzB,QAAgB,UAAU;IAE1B,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;IAEvB,IAAI,CAAC;QACH,qDAAqD;QACrD,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,SAAS,GAAG,EAAE;gBAChD,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,MAAM;gBACb,GAAG;aACJ,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;QACvB,CAAC;QAED,0DAA0D;QAC1D,IAAI,OAAO,GAAG,SAAS,CAAC;QACxB,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC3C,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,GAAG,MAAM,CAAC;YACnB,CAAC;QACH,CAAC;QAED,sBAAsB;QACtB,MAAM,WAAW,GAAG,QAAQ,KAAK,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,WAAW,eAAe,EAAE;YAC9D,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,MAAM;YACb,GAAG;SACJ,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CACvB,KAAa,EACb,KAAa,EACb,QAAgB,SAAS,EACzB,QAAgB,UAAU;IAE1B,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;IAEvB,IAAI,CAAC;QACH,uBAAuB;QACvB,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAEhD,IAAI,QAAQ,EAAE,CAAC;YACb,uBAAuB;YACvB,QAAQ,CACN,iBAAiB,KAAK,cAAc,KAAK,MAAM,KAAK,IAAI,KAAK,GAAG,EAChE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CACvB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,kBAAkB;YAClB,QAAQ,CACN,iDAAiD,KAAK,cAAc,KAAK,MAAM,KAAK,IAAI,KAAK,GAAG,EAChG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CACvB,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,IAAI,OAAO,CAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,KAAa,EACb,KAAa,EACb,QAAgB,SAAS,EACzB,QAAgB,UAAU;IAE1B,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;IAEvB,IAAI,CAAC;QACH,YAAY,CACV,IAAI,EACJ;YACE,MAAM;YACN,QAAQ;YACR,qBAAqB;YACrB,SAAS;YACT,KAAK;YACL,SAAS;YACT,KAAK;YACL,GAAG,KAAK,IAAI,KAAK,EAAE;SACpB,EACD,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CACvB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,IAAI,OAAO,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,KAAa,EACb,KAAa,EACb,QAAgB,SAAS,EACzB,QAAgB,UAAU;IAE1B,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;IAEvB,IAAI,CAAC;QACH,YAAY,CACV,IAAI,EACJ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,KAAK,EAAE,CAAC,EAC9D,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CACvB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,IAAI,OAAO,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,KAAa,EAAE,QAAgB,SAAS;IAC9D,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;IAEvB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CACrB,gBAAgB,KAAK,cAAc,KAAK,iBAAiB,EACzD,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAC1C,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,QAAgB,SAAS;IACpE,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI,EAAE,MAAM;QAAE,OAAO,EAAE,CAAC;IAE7B,OAAO,IAAI,CAAC,MAAM;SACf,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;SAC5C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,gBAAgB,GAAG,uBAAuB,EAAE,CAAC;AAEnD,MAAM,UAAU,oBAAoB,CAAC,SAAiB;IACpD,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB,SAAS;IACrD,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;IAEvB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CACrB,yBAAyB,KAAK,4BAA4B,EAC1D,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAC1C,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,OAAO,CAAC,UAAU,KAAK,aAAa,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,QAAgB,SAAS;IAClE,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAC3B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CACvD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAa,EACb,QAAgB,SAAS,EACzB,aAAqB,CAAC;IAEtB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAEvC,4BAA4B;IAC5B,MAAM,MAAM,GAAG,KAAK;SACjB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC5C,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,wBAAwB;QACxB,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACvE,KAAK,IAAI,EAAE,CAAC;QACd,CAAC;QAED,eAAe;QACf,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAChD,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;YAC5B,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;gBAC5B,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBACvC,KAAK,IAAI,EAAE,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,MAAM,WAAW,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACjF,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QAE5D,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;IACtC,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;SACjC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;SACjC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAExB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1C,CAAC;AAQD;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;IAEvB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,6BAA6B,EAAE;YACrD,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,MAAM;YACb,GAAG;SACJ,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,IAAI,OAAO,CAAC,wBAAwB,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAChF,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"op.js","sourceRoot":"","sources":["../../src/utils/op.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Retry utility with exponential backoff for transient failures.
|
|
3
|
+
*
|
|
4
|
+
* Environment variables:
|
|
5
|
+
* OPS_RETRY_COUNT - Max retry attempts (default: 3)
|
|
6
|
+
* OPS_RETRY_DELAY - Base delay in ms (default: 1000)
|
|
7
|
+
* OPS_NO_RETRY - Disable retry entirely if set to "1"
|
|
8
|
+
*/
|
|
9
|
+
export interface RetryOptions {
|
|
10
|
+
/** Maximum number of retry attempts (default: 3) */
|
|
11
|
+
maxRetries?: number;
|
|
12
|
+
/** Base delay between retries in milliseconds (default: 1000) */
|
|
13
|
+
baseDelay?: number;
|
|
14
|
+
/** Multiplier for exponential backoff (default: 2) */
|
|
15
|
+
multiplier?: number;
|
|
16
|
+
/** Optional callback when a retry occurs */
|
|
17
|
+
onRetry?: (attempt: number, error: Error, delayMs: number) => void;
|
|
18
|
+
/** Predicate to determine if an error is retryable (default: all errors) */
|
|
19
|
+
isRetryable?: (error: Error) => boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Default retry options from environment or sensible defaults
|
|
23
|
+
*/
|
|
24
|
+
export declare function getDefaultRetryOptions(): RetryOptions;
|
|
25
|
+
/**
|
|
26
|
+
* Check if retry is disabled via environment variable
|
|
27
|
+
*/
|
|
28
|
+
export declare function isRetryDisabled(): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Determine if an error is likely transient and worth retrying
|
|
31
|
+
*/
|
|
32
|
+
export declare function isTransientError(error: Error): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Execute an async function with retry logic and exponential backoff.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* const result = await withRetry(
|
|
38
|
+
* () => fetchSecret(name),
|
|
39
|
+
* { maxRetries: 3, baseDelay: 1000 }
|
|
40
|
+
* );
|
|
41
|
+
*/
|
|
42
|
+
export declare function withRetry<T>(fn: () => Promise<T>, options?: RetryOptions): Promise<T>;
|
|
43
|
+
/**
|
|
44
|
+
* Execute a sync function with retry logic (for subprocess calls).
|
|
45
|
+
* Note: This uses blocking sleeps which is acceptable for CLI usage.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* const result = withRetrySync(
|
|
49
|
+
* () => execSync('op item get ...'),
|
|
50
|
+
* { maxRetries: 3 }
|
|
51
|
+
* );
|
|
52
|
+
*/
|
|
53
|
+
export declare function withRetrySync<T>(fn: () => T, options?: RetryOptions): T;
|
|
54
|
+
//# sourceMappingURL=retry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,4EAA4E;IAC5E,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;CACzC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,YAAY,CAUrD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CA6CtD;AASD;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,CAAC,CAAC,CAiDZ;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,EAAE,EAAE,MAAM,CAAC,EACX,OAAO,GAAE,YAAiB,GACzB,CAAC,CAqDH"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Retry utility with exponential backoff for transient failures.
|
|
3
|
+
*
|
|
4
|
+
* Environment variables:
|
|
5
|
+
* OPS_RETRY_COUNT - Max retry attempts (default: 3)
|
|
6
|
+
* OPS_RETRY_DELAY - Base delay in ms (default: 1000)
|
|
7
|
+
* OPS_NO_RETRY - Disable retry entirely if set to "1"
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Default retry options from environment or sensible defaults
|
|
11
|
+
*/
|
|
12
|
+
export function getDefaultRetryOptions() {
|
|
13
|
+
const envRetryCount = process.env.OPS_RETRY_COUNT;
|
|
14
|
+
const envRetryDelay = process.env.OPS_RETRY_DELAY;
|
|
15
|
+
return {
|
|
16
|
+
maxRetries: envRetryCount ? parseInt(envRetryCount, 10) : 3,
|
|
17
|
+
baseDelay: envRetryDelay ? parseInt(envRetryDelay, 10) : 1000,
|
|
18
|
+
multiplier: 2,
|
|
19
|
+
isRetryable: isTransientError,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Check if retry is disabled via environment variable
|
|
24
|
+
*/
|
|
25
|
+
export function isRetryDisabled() {
|
|
26
|
+
return process.env.OPS_NO_RETRY === '1';
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Determine if an error is likely transient and worth retrying
|
|
30
|
+
*/
|
|
31
|
+
export function isTransientError(error) {
|
|
32
|
+
const message = error.message.toLowerCase();
|
|
33
|
+
// Network-related errors
|
|
34
|
+
if (message.includes('network') ||
|
|
35
|
+
message.includes('timeout') ||
|
|
36
|
+
message.includes('timed out') ||
|
|
37
|
+
message.includes('econnreset') ||
|
|
38
|
+
message.includes('econnrefused') ||
|
|
39
|
+
message.includes('socket') ||
|
|
40
|
+
message.includes('etimedout')) {
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
// Rate limiting
|
|
44
|
+
if (message.includes('rate limit') ||
|
|
45
|
+
message.includes('too many requests') ||
|
|
46
|
+
message.includes('429')) {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
// Temporary service issues
|
|
50
|
+
if (message.includes('service unavailable') ||
|
|
51
|
+
message.includes('503') ||
|
|
52
|
+
message.includes('502') ||
|
|
53
|
+
message.includes('504') ||
|
|
54
|
+
message.includes('temporarily')) {
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
// 1Password specific transient errors
|
|
58
|
+
if (message.includes('session expired') ||
|
|
59
|
+
message.includes('try again')) {
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Sleep for a specified duration
|
|
66
|
+
*/
|
|
67
|
+
function sleep(ms) {
|
|
68
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Execute an async function with retry logic and exponential backoff.
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* const result = await withRetry(
|
|
75
|
+
* () => fetchSecret(name),
|
|
76
|
+
* { maxRetries: 3, baseDelay: 1000 }
|
|
77
|
+
* );
|
|
78
|
+
*/
|
|
79
|
+
export async function withRetry(fn, options = {}) {
|
|
80
|
+
// If retry is disabled globally, just run the function once
|
|
81
|
+
if (isRetryDisabled()) {
|
|
82
|
+
return fn();
|
|
83
|
+
}
|
|
84
|
+
const defaults = getDefaultRetryOptions();
|
|
85
|
+
const { maxRetries = defaults.maxRetries ?? 3, baseDelay = defaults.baseDelay ?? 1000, multiplier = defaults.multiplier ?? 2, onRetry, isRetryable = defaults.isRetryable ?? isTransientError, } = options;
|
|
86
|
+
let lastError;
|
|
87
|
+
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
88
|
+
try {
|
|
89
|
+
return await fn();
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
93
|
+
lastError = err;
|
|
94
|
+
// Don't retry if we've exhausted attempts
|
|
95
|
+
if (attempt >= maxRetries) {
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
// Don't retry non-retryable errors
|
|
99
|
+
if (!isRetryable(err)) {
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
// Calculate delay with exponential backoff + jitter
|
|
103
|
+
const exponentialDelay = baseDelay * Math.pow(multiplier, attempt);
|
|
104
|
+
const jitter = Math.random() * 0.3 * exponentialDelay; // 0-30% jitter
|
|
105
|
+
const delayMs = Math.floor(exponentialDelay + jitter);
|
|
106
|
+
// Notify about retry if callback provided
|
|
107
|
+
if (onRetry) {
|
|
108
|
+
onRetry(attempt + 1, err, delayMs);
|
|
109
|
+
}
|
|
110
|
+
await sleep(delayMs);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
throw lastError;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Execute a sync function with retry logic (for subprocess calls).
|
|
117
|
+
* Note: This uses blocking sleeps which is acceptable for CLI usage.
|
|
118
|
+
*
|
|
119
|
+
* @example
|
|
120
|
+
* const result = withRetrySync(
|
|
121
|
+
* () => execSync('op item get ...'),
|
|
122
|
+
* { maxRetries: 3 }
|
|
123
|
+
* );
|
|
124
|
+
*/
|
|
125
|
+
export function withRetrySync(fn, options = {}) {
|
|
126
|
+
// If retry is disabled globally, just run the function once
|
|
127
|
+
if (isRetryDisabled()) {
|
|
128
|
+
return fn();
|
|
129
|
+
}
|
|
130
|
+
const defaults = getDefaultRetryOptions();
|
|
131
|
+
const { maxRetries = defaults.maxRetries ?? 3, baseDelay = defaults.baseDelay ?? 1000, multiplier = defaults.multiplier ?? 2, onRetry, isRetryable = defaults.isRetryable ?? isTransientError, } = options;
|
|
132
|
+
let lastError;
|
|
133
|
+
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
134
|
+
try {
|
|
135
|
+
return fn();
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
139
|
+
lastError = err;
|
|
140
|
+
// Don't retry if we've exhausted attempts
|
|
141
|
+
if (attempt >= maxRetries) {
|
|
142
|
+
break;
|
|
143
|
+
}
|
|
144
|
+
// Don't retry non-retryable errors
|
|
145
|
+
if (!isRetryable(err)) {
|
|
146
|
+
break;
|
|
147
|
+
}
|
|
148
|
+
// Calculate delay with exponential backoff + jitter
|
|
149
|
+
const exponentialDelay = baseDelay * Math.pow(multiplier, attempt);
|
|
150
|
+
const jitter = Math.random() * 0.3 * exponentialDelay;
|
|
151
|
+
const delayMs = Math.floor(exponentialDelay + jitter);
|
|
152
|
+
// Notify about retry if callback provided
|
|
153
|
+
if (onRetry) {
|
|
154
|
+
onRetry(attempt + 1, err, delayMs);
|
|
155
|
+
}
|
|
156
|
+
// Blocking sleep for sync operations
|
|
157
|
+
const end = Date.now() + delayMs;
|
|
158
|
+
while (Date.now() < end) {
|
|
159
|
+
// Busy wait - acceptable for CLI
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
throw lastError;
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/utils/retry.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.5.0",
|
|
4
4
|
"description": "Easy secret retrieval from 1Password with smart fallbacks",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
"dev": "TS_NODE_TRANSPILE_ONLY=1 node --loader ts-node/esm src/index.ts",
|
|
24
24
|
"typecheck": "tsc --noEmit",
|
|
25
25
|
"lint": "tsc --noEmit",
|
|
26
|
-
"test": "TS_NODE_TRANSPILE_ONLY=1 node --test --loader ts-node/esm
|
|
27
|
-
"test:unit": "TS_NODE_TRANSPILE_ONLY=1 node --test --loader ts-node/esm
|
|
28
|
-
"test:integration": "npm run build && TEST_OP_CLI=1 TS_NODE_TRANSPILE_ONLY=1 node --test --loader ts-node/esm
|
|
26
|
+
"test": "TS_NODE_TRANSPILE_ONLY=1 node --test --loader ts-node/esm tests/commands/*.test.ts tests/utils/*.test.ts",
|
|
27
|
+
"test:unit": "TS_NODE_TRANSPILE_ONLY=1 node --test --loader ts-node/esm 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 --loader ts-node/esm 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",
|