aws-lambda-secret-fetcher 0.3.8 → 0.4.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 +26 -14
- package/lib/index.d.ts +2 -0
- package/lib/index.js +7 -5
- package/package.json +22 -22
package/README.md
CHANGED
|
@@ -3,14 +3,15 @@
|
|
|
3
3
|
[](https://www.npmjs.com/package/aws-lambda-secret-fetcher)
|
|
4
4
|
[](https://www.npmjs.com/package/aws-lambda-secret-fetcher)
|
|
5
5
|
|
|
6
|
-
A lightweight TypeScript library for fetching secrets from AWS Secrets Manager using the [AWS Parameters and Secrets Lambda Extension](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets_lambda.html).
|
|
6
|
+
A lightweight TypeScript library for fetching secrets from AWS Secrets Manager using the [AWS Parameters and Secrets Lambda Extension](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets_lambda.html). It calls the extension over `http://localhost` (default port **2773**) with retries and timeouts via [fetch-retrier](https://www.npmjs.com/package/fetch-retrier).
|
|
7
7
|
|
|
8
8
|
## Features
|
|
9
9
|
|
|
10
|
-
- Uses the local Lambda Extension API (no AWS SDK required)
|
|
10
|
+
- Uses the local Lambda Extension HTTP API (no AWS SDK required)
|
|
11
|
+
- Configurable extension HTTP port via `extensionHttpPort` (default `2773`; pass through from your environment when using a custom extension port)
|
|
11
12
|
- Retry with timeout and full jitter backoff via [fetch-retrier](https://www.npmjs.com/package/fetch-retrier)
|
|
12
13
|
- Configurable timeout, retries, and base backoff
|
|
13
|
-
- Automatic JSON parsing for secret values
|
|
14
|
+
- Automatic JSON parsing for secret values stored as JSON strings
|
|
14
15
|
- TypeScript support with generics
|
|
15
16
|
|
|
16
17
|
## Installation
|
|
@@ -27,13 +28,9 @@ npm install aws-lambda-secret-fetcher
|
|
|
27
28
|
yarn add aws-lambda-secret-fetcher
|
|
28
29
|
```
|
|
29
30
|
|
|
30
|
-
## Prerequisites
|
|
31
|
-
|
|
32
|
-
Your Lambda function must have the [AWS Parameters and Secrets Lambda Extension](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets_lambda.html) layer attached.
|
|
33
|
-
|
|
34
31
|
## Usage
|
|
35
32
|
|
|
36
|
-
### Basic
|
|
33
|
+
### Basic usage
|
|
37
34
|
|
|
38
35
|
```typescript
|
|
39
36
|
import { secretFetcher } from 'aws-lambda-secret-fetcher';
|
|
@@ -52,7 +49,7 @@ const credentials = await secretFetcher.getSecretValue<DbCredentials>('my-db-cre
|
|
|
52
49
|
console.log(credentials.username); // Type-safe access
|
|
53
50
|
```
|
|
54
51
|
|
|
55
|
-
### With
|
|
52
|
+
### With options
|
|
56
53
|
|
|
57
54
|
```typescript
|
|
58
55
|
import { secretFetcher, type GetSecretValueOptions } from 'aws-lambda-secret-fetcher';
|
|
@@ -66,10 +63,23 @@ const options: GetSecretValueOptions = {
|
|
|
66
63
|
const secret = await secretFetcher.getSecretValue('my-secret', options);
|
|
67
64
|
```
|
|
68
65
|
|
|
66
|
+
### Custom extension HTTP port
|
|
67
|
+
|
|
68
|
+
If you configure a non-default extension port (for example via the Lambda environment variable `PARAMETERS_SECRETS_EXTENSION_HTTP_PORT`), pass that value in from your function code:
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
import { secretFetcher } from 'aws-lambda-secret-fetcher';
|
|
72
|
+
|
|
73
|
+
const extensionHttpPort = process.env.PARAMETERS_SECRETS_EXTENSION_HTTP_PORT ?? '2773';
|
|
74
|
+
|
|
75
|
+
const secret = await secretFetcher.getSecretValue('my-secret', { extensionHttpPort });
|
|
76
|
+
```
|
|
77
|
+
|
|
69
78
|
## Options
|
|
70
79
|
|
|
71
80
|
| Option | Type | Default | Description |
|
|
72
81
|
|--------|------|---------|-------------|
|
|
82
|
+
| `extensionHttpPort` | `string \| number` | `'2773'` | TCP port the extension listens on at `localhost` |
|
|
73
83
|
| `timeoutMs` | `number` | `2000` | Request timeout in milliseconds per attempt |
|
|
74
84
|
| `retries` | `number` | `3` | Maximum number of attempts (including the first request) |
|
|
75
85
|
| `baseBackoffMs` | `number` | `300` | Base delay in milliseconds for backoff between retries |
|
|
@@ -87,7 +97,7 @@ Fetches a secret value from AWS Secrets Manager via the Lambda Extension.
|
|
|
87
97
|
| Parameter | Type | Description |
|
|
88
98
|
|-----------|------|-------------|
|
|
89
99
|
| `name` | `string` | The name or ARN of the secret |
|
|
90
|
-
| `options` | `GetSecretValueOptions` | Optional timeout, retries, and backoff
|
|
100
|
+
| `options` | `GetSecretValueOptions` | Optional extension port, timeout, retries, and backoff |
|
|
91
101
|
|
|
92
102
|
#### Returns
|
|
93
103
|
|
|
@@ -95,21 +105,23 @@ Fetches a secret value from AWS Secrets Manager via the Lambda Extension.
|
|
|
95
105
|
|
|
96
106
|
#### Throws
|
|
97
107
|
|
|
98
|
-
- `Error` — If the
|
|
108
|
+
- `Error` — If the response body is not a valid extension payload, or if the request fails after all retries.
|
|
109
|
+
- `FetchRetrierHttpError` (from `fetch-retrier`) — On non-success HTTP responses that are not retried, or after the last failed attempt on retriable statuses.
|
|
99
110
|
|
|
100
|
-
## Retry
|
|
111
|
+
## Retry behavior
|
|
101
112
|
|
|
102
113
|
Retries use full jitter exponential backoff. The library retries on:
|
|
103
114
|
|
|
104
115
|
- HTTP status codes: 429, 500, 502, 503, 504
|
|
105
|
-
- Lambda Extension not ready (400 with
|
|
116
|
+
- Lambda Extension not ready (400 with a body matching “not ready” and “traffic”)
|
|
106
117
|
- Request timeouts
|
|
107
118
|
- Network errors
|
|
108
119
|
|
|
109
120
|
## Requirements
|
|
110
121
|
|
|
111
122
|
- Node.js >= 20.0.0
|
|
112
|
-
- AWS Lambda
|
|
123
|
+
- AWS Lambda with the [AWS Parameters and Secrets Lambda Extension](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets_lambda.html) layer attached
|
|
124
|
+
- Runtime provides `AWS_SESSION_TOKEN` (used in the `X-Aws-Parameters-Secrets-Token` header expected by the extension)
|
|
113
125
|
|
|
114
126
|
## License
|
|
115
127
|
|
package/lib/index.d.ts
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* Options for fetching a secret from the Secrets Manager Extension.
|
|
3
3
|
*/
|
|
4
4
|
export interface GetSecretValueOptions {
|
|
5
|
+
/** Extension HTTP port (localhost). Default: 2773 (AWS extension default). Set explicitly when using a custom port. */
|
|
6
|
+
extensionHttpPort?: string | number;
|
|
5
7
|
/** Request timeout in milliseconds. Default: 2000 */
|
|
6
8
|
timeoutMs?: number;
|
|
7
9
|
/** Maximum number of attempts (including the first request). Default: 3 */
|
package/lib/index.js
CHANGED
|
@@ -3,17 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.secretFetcher = void 0;
|
|
4
4
|
const fetch_retrier_1 = require("fetch-retrier");
|
|
5
5
|
/**
|
|
6
|
-
* Fetches a secret value from the AWS Lambda Secrets
|
|
6
|
+
* Fetches a secret value from the AWS Lambda Parameters and Secrets Extension (default localhost:2773).
|
|
7
|
+
* Pass `extensionHttpPort` in options when the extension listens on a non-default port.
|
|
7
8
|
* Uses retries with full jitter backoff for transient errors (e.g. 5xx, 429, or extension "not ready").
|
|
8
9
|
*
|
|
9
10
|
* @param name - Secret name (identifier) to fetch
|
|
10
|
-
* @param options - Optional timeout, retry, and backoff settings
|
|
11
|
+
* @param options - Optional port, timeout, retry, and backoff settings
|
|
11
12
|
* @returns The secret value as string, or parsed as T if the stored value is JSON
|
|
12
13
|
* @throws Error if the response format is invalid or the request fails after retries
|
|
13
14
|
*/
|
|
14
15
|
const getSecretValue = async (name, options = {}) => {
|
|
15
|
-
const { timeoutMs = 2000, retries = 3, baseBackoffMs = 300 } = options;
|
|
16
|
-
const
|
|
16
|
+
const { extensionHttpPort = '2773', timeoutMs = 2000, retries = 3, baseBackoffMs = 300 } = options;
|
|
17
|
+
const port = String(extensionHttpPort);
|
|
18
|
+
const url = `http://localhost:${port}/secretsmanager/get?secretId=${encodeURIComponent(name)}`;
|
|
17
19
|
const requestOptions = {
|
|
18
20
|
headers: {
|
|
19
21
|
'X-Aws-Parameters-Secrets-Token': process.env.AWS_SESSION_TOKEN ?? '',
|
|
@@ -72,4 +74,4 @@ const looksLikeJson = (str) => {
|
|
|
72
74
|
exports.secretFetcher = {
|
|
73
75
|
getSecretValue,
|
|
74
76
|
};
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaURBQWtFO0FBOEJsRTs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLGNBQWMsR0FBRyxLQUFLLEVBQWMsSUFBWSxFQUFFLFVBQWlDLEVBQUUsRUFBYyxFQUFFO0lBQ3pHLE1BQU0sRUFBRSxpQkFBaUIsR0FBRyxNQUFNLEVBQUUsU0FBUyxHQUFHLElBQUksRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLGFBQWEsR0FBRyxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFFbkcsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdkMsTUFBTSxHQUFHLEdBQUcsb0JBQW9CLElBQUksZ0NBQWdDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFFL0YsTUFBTSxjQUFjLEdBQW1CO1FBQ3JDLE9BQU8sRUFBRTtZQUNQLGdDQUFnQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLElBQUksRUFBRTtTQUN0RTtRQUNELE9BQU87UUFDUCxTQUFTO1FBQ1QsYUFBYTtRQUNiLFdBQVcsRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUN6QixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQ2hFLGlHQUFpRztZQUNqRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssR0FBRyxJQUFJLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFDMUUsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0tBQ0YsQ0FBQztJQUVGLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBQSw0QkFBWSxFQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUV6RCxNQUFNLEdBQUcsR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUVsQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFtQixHQUFHLENBQUM7SUFFakMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUV2QyxJQUFJLGFBQWEsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQU0sQ0FBQztJQUN2QyxDQUFDO0lBRUQsT0FBTyxZQUFpQixDQUFDO0FBQzNCLENBQUMsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQWMsRUFBMkIsRUFBRTtJQUNuRSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssSUFBSTtRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQzlELE1BQU0sQ0FBQyxHQUFHLEtBQWdDLENBQUM7SUFFM0MsT0FBTyxPQUFPLENBQUMsQ0FBQyxZQUFZLEtBQUssUUFBUTtRQUNsQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUTtRQUMxQixPQUFPLENBQUMsQ0FBQyxHQUFHLEtBQUssUUFBUTtRQUN6QixDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssU0FBUyxJQUFJLE9BQU8sQ0FBQyxDQUFDLFNBQVMsS0FBSyxRQUFRLENBQUMsQ0FBQztBQUN4RSxDQUFDLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILE1BQU0sYUFBYSxHQUFHLENBQUMsR0FBVyxFQUFXLEVBQUU7SUFDN0MsT0FBTyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMvRCxDQUFDLENBQUM7QUFHRjs7R0FFRztBQUNVLFFBQUEsYUFBYSxHQUFHO0lBQzNCLGNBQWM7Q0FDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmV0Y2hSZXRyaWVyLCB0eXBlIFJlcXVlc3RPcHRpb25zIH0gZnJvbSAnZmV0Y2gtcmV0cmllcic7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgZmV0Y2hpbmcgYSBzZWNyZXQgZnJvbSB0aGUgU2VjcmV0cyBNYW5hZ2VyIEV4dGVuc2lvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXRTZWNyZXRWYWx1ZU9wdGlvbnMge1xuICAvKiogRXh0ZW5zaW9uIEhUVFAgcG9ydCAobG9jYWxob3N0KS4gRGVmYXVsdDogMjc3MyAoQVdTIGV4dGVuc2lvbiBkZWZhdWx0KS4gU2V0IGV4cGxpY2l0bHkgd2hlbiB1c2luZyBhIGN1c3RvbSBwb3J0LiAqL1xuICBleHRlbnNpb25IdHRwUG9ydD86IHN0cmluZyB8IG51bWJlcjtcbiAgLyoqIFJlcXVlc3QgdGltZW91dCBpbiBtaWxsaXNlY29uZHMuIERlZmF1bHQ6IDIwMDAgKi9cbiAgdGltZW91dE1zPzogbnVtYmVyO1xuICAvKiogTWF4aW11bSBudW1iZXIgb2YgYXR0ZW1wdHMgKGluY2x1ZGluZyB0aGUgZmlyc3QgcmVxdWVzdCkuIERlZmF1bHQ6IDMgKi9cbiAgcmV0cmllcz86IG51bWJlcjtcbiAgLyoqIEJhc2UgZGVsYXkgaW4gbWlsbGlzZWNvbmRzIGZvciBiYWNrb2ZmIGJldHdlZW4gcmV0cmllcy4gRGVmYXVsdDogMzAwICovXG4gIGJhc2VCYWNrb2ZmTXM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogUmVzcG9uc2Ugc2hhcGUgcmV0dXJuZWQgYnkgdGhlIFNlY3JldHMgTWFuYWdlciBFeHRlbnNpb24gQVBJLlxuICovXG5pbnRlcmZhY2UgU2VjcmV0UmVzcG9uc2Uge1xuICAvKiogQVJOIG9mIHRoZSBzZWNyZXQgKi9cbiAgQVJOOiBzdHJpbmc7XG4gIC8qKiBOYW1lIG9mIHRoZSBzZWNyZXQgKi9cbiAgTmFtZTogc3RyaW5nO1xuICAvKiogU2VjcmV0IHZhbHVlIGFzIHN0cmluZyAobWF5IGJlIEpTT04pICovXG4gIFNlY3JldFN0cmluZzogc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgdmVyc2lvbiBpZGVudGlmaWVyICovXG4gIFZlcnNpb25JZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBGZXRjaGVzIGEgc2VjcmV0IHZhbHVlIGZyb20gdGhlIEFXUyBMYW1iZGEgUGFyYW1ldGVycyBhbmQgU2VjcmV0cyBFeHRlbnNpb24gKGRlZmF1bHQgbG9jYWxob3N0OjI3NzMpLlxuICogUGFzcyBgZXh0ZW5zaW9uSHR0cFBvcnRgIGluIG9wdGlvbnMgd2hlbiB0aGUgZXh0ZW5zaW9uIGxpc3RlbnMgb24gYSBub24tZGVmYXVsdCBwb3J0LlxuICogVXNlcyByZXRyaWVzIHdpdGggZnVsbCBqaXR0ZXIgYmFja29mZiBmb3IgdHJhbnNpZW50IGVycm9ycyAoZS5nLiA1eHgsIDQyOSwgb3IgZXh0ZW5zaW9uIFwibm90IHJlYWR5XCIpLlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gU2VjcmV0IG5hbWUgKGlkZW50aWZpZXIpIHRvIGZldGNoXG4gKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbmFsIHBvcnQsIHRpbWVvdXQsIHJldHJ5LCBhbmQgYmFja29mZiBzZXR0aW5nc1xuICogQHJldHVybnMgVGhlIHNlY3JldCB2YWx1ZSBhcyBzdHJpbmcsIG9yIHBhcnNlZCBhcyBUIGlmIHRoZSBzdG9yZWQgdmFsdWUgaXMgSlNPTlxuICogQHRocm93cyBFcnJvciBpZiB0aGUgcmVzcG9uc2UgZm9ybWF0IGlzIGludmFsaWQgb3IgdGhlIHJlcXVlc3QgZmFpbHMgYWZ0ZXIgcmV0cmllc1xuICovXG5jb25zdCBnZXRTZWNyZXRWYWx1ZSA9IGFzeW5jIDxUID0gc3RyaW5nPihuYW1lOiBzdHJpbmcsIG9wdGlvbnM6IEdldFNlY3JldFZhbHVlT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxUPiA9PiB7XG4gIGNvbnN0IHsgZXh0ZW5zaW9uSHR0cFBvcnQgPSAnMjc3MycsIHRpbWVvdXRNcyA9IDIwMDAsIHJldHJpZXMgPSAzLCBiYXNlQmFja29mZk1zID0gMzAwIH0gPSBvcHRpb25zO1xuXG4gIGNvbnN0IHBvcnQgPSBTdHJpbmcoZXh0ZW5zaW9uSHR0cFBvcnQpO1xuICBjb25zdCB1cmwgPSBgaHR0cDovL2xvY2FsaG9zdDoke3BvcnR9L3NlY3JldHNtYW5hZ2VyL2dldD9zZWNyZXRJZD0ke2VuY29kZVVSSUNvbXBvbmVudChuYW1lKX1gO1xuXG4gIGNvbnN0IHJlcXVlc3RPcHRpb25zOiBSZXF1ZXN0T3B0aW9ucyA9IHtcbiAgICBoZWFkZXJzOiB7XG4gICAgICAnWC1Bd3MtUGFyYW1ldGVycy1TZWNyZXRzLVRva2VuJzogcHJvY2Vzcy5lbnYuQVdTX1NFU1NJT05fVE9LRU4gPz8gJycsXG4gICAgfSxcbiAgICByZXRyaWVzLFxuICAgIHRpbWVvdXRNcyxcbiAgICBiYXNlQmFja29mZk1zLFxuICAgIHNob3VsZFJldHJ5OiAocmVzLCBib2R5KSA9PiB7XG4gICAgICBpZiAoWzQyOSwgNTAwLCA1MDIsIDUwMywgNTA0XS5pbmNsdWRlcyhyZXMuc3RhdHVzKSkgcmV0dXJuIHRydWU7XG4gICAgICAvLyBFeHRlbnNpb24gbWF5IHJldHVybiA0MDAgKyBcIm5vdCByZWFkeSB0byBzZXJ2ZSB0cmFmZmljXCIgd2hpbGUgaW5pdGlhbGl6aW5nOyByZXRyeSBpbiB0aGF0IGNhc2VcbiAgICAgIGlmIChyZXMuc3RhdHVzID09PSA0MDAgJiYgL25vdFxccytyZWFkeS4qdHJhZmZpYy9pLnRlc3QoYm9keSkpIHJldHVybiB0cnVlO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0sXG4gIH07XG5cbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaFJldHJpZXIodXJsLCByZXF1ZXN0T3B0aW9ucyk7XG5cbiAgY29uc3QgcmF3ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuXG4gIGlmICghaXNTZWNyZXRSZXNwb25zZShyYXcpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHNlY3JldCByZXNwb25zZSBmb3JtYXQnKTtcbiAgfVxuXG4gIGNvbnN0IGRhdGE6IFNlY3JldFJlc3BvbnNlID0gcmF3O1xuXG4gIGNvbnN0IHNlY3JldFN0cmluZyA9IGRhdGEuU2VjcmV0U3RyaW5nO1xuXG4gIGlmIChsb29rc0xpa2VKc29uKHNlY3JldFN0cmluZykpIHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShzZWNyZXRTdHJpbmcpIGFzIFQ7XG4gIH1cblxuICByZXR1cm4gc2VjcmV0U3RyaW5nIGFzIFQ7XG59O1xuXG4vKipcbiAqIFR5cGUgZ3VhcmQgZm9yIHRoZSBTZWNyZXRzIE1hbmFnZXIgRXh0ZW5zaW9uIHJlc3BvbnNlIHNoYXBlLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFZhbHVlIHRvIGNoZWNrXG4gKiBAcmV0dXJucyBUcnVlIGlmIHZhbHVlIGhhcyB0aGUgc2hhcGUgb2YgU2VjcmV0UmVzcG9uc2VcbiAqL1xuY29uc3QgaXNTZWNyZXRSZXNwb25zZSA9ICh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFNlY3JldFJlc3BvbnNlID0+IHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcgfHwgdmFsdWUgPT09IG51bGwpIHJldHVybiBmYWxzZTtcbiAgY29uc3QgdiA9IHZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gIHJldHVybiB0eXBlb2Ygdi5TZWNyZXRTdHJpbmcgPT09ICdzdHJpbmcnICYmXG4gICAgICAgICB0eXBlb2Ygdi5OYW1lID09PSAnc3RyaW5nJyAmJlxuICAgICAgICAgdHlwZW9mIHYuQVJOID09PSAnc3RyaW5nJyAmJlxuICAgICAgICAgKHYuVmVyc2lvbklkID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIHYuVmVyc2lvbklkID09PSAnc3RyaW5nJyk7XG59O1xuXG4vKipcbiAqIEhldXJpc3RpYyBjaGVjayB3aGV0aGVyIGEgc3RyaW5nIGxvb2tzIGxpa2UgSlNPTiAoc3RhcnRzIHdpdGggYHtgIGFmdGVyIHRyaW0pLlxuICpcbiAqIEBwYXJhbSBzdHIgLSBTdHJpbmcgdG8gY2hlY2tcbiAqIEByZXR1cm5zIFRydWUgaWYgdGhlIHN0cmluZyBhcHBlYXJzIHRvIGJlIEpTT05cbiAqL1xuY29uc3QgbG9va3NMaWtlSnNvbiA9IChzdHI6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gdHlwZW9mIHN0ciA9PT0gJ3N0cmluZycgJiYgc3RyLnRyaW0oKS5zdGFydHNXaXRoKCd7Jyk7XG59O1xuXG5cbi8qKlxuICogQ2xpZW50IGZvciBmZXRjaGluZyBzZWNyZXRzIGZyb20gdGhlIEFXUyBMYW1iZGEgU2VjcmV0cyBNYW5hZ2VyIEV4dGVuc2lvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IHNlY3JldEZldGNoZXIgPSB7XG4gIGdldFNlY3JldFZhbHVlLFxufTtcbiJdfQ==
|
package/package.json
CHANGED
|
@@ -5,24 +5,24 @@
|
|
|
5
5
|
"url": "https://github.com/gammarers-aws-lambda-libs/aws-lambda-secret-fetcher.git"
|
|
6
6
|
},
|
|
7
7
|
"scripts": {
|
|
8
|
-
"build": "
|
|
9
|
-
"bump": "
|
|
10
|
-
"clobber": "
|
|
11
|
-
"compile": "
|
|
12
|
-
"default": "
|
|
13
|
-
"eject": "
|
|
14
|
-
"eslint": "
|
|
15
|
-
"package": "
|
|
16
|
-
"post-compile": "
|
|
17
|
-
"post-upgrade": "
|
|
18
|
-
"pre-compile": "
|
|
19
|
-
"release": "
|
|
20
|
-
"test": "
|
|
21
|
-
"test:watch": "
|
|
22
|
-
"unbump": "
|
|
23
|
-
"upgrade": "
|
|
24
|
-
"watch": "
|
|
25
|
-
"projen": "
|
|
8
|
+
"build": "projen build",
|
|
9
|
+
"bump": "projen bump",
|
|
10
|
+
"clobber": "projen clobber",
|
|
11
|
+
"compile": "projen compile",
|
|
12
|
+
"default": "projen default",
|
|
13
|
+
"eject": "projen eject",
|
|
14
|
+
"eslint": "projen eslint",
|
|
15
|
+
"package": "projen package",
|
|
16
|
+
"post-compile": "projen post-compile",
|
|
17
|
+
"post-upgrade": "projen post-upgrade",
|
|
18
|
+
"pre-compile": "projen pre-compile",
|
|
19
|
+
"release": "projen release",
|
|
20
|
+
"test": "projen test",
|
|
21
|
+
"test:watch": "projen test:watch",
|
|
22
|
+
"unbump": "projen unbump",
|
|
23
|
+
"upgrade": "projen upgrade",
|
|
24
|
+
"watch": "projen watch",
|
|
25
|
+
"projen": "projen"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@stylistic/eslint-plugin": "^2",
|
|
@@ -37,13 +37,13 @@
|
|
|
37
37
|
"eslint-plugin-import": "^2.32.0",
|
|
38
38
|
"jest": "^30.3.0",
|
|
39
39
|
"jest-junit": "^16",
|
|
40
|
-
"projen": "^0.99.
|
|
41
|
-
"ts-jest": "^29.4.
|
|
40
|
+
"projen": "^0.99.47",
|
|
41
|
+
"ts-jest": "^29.4.9",
|
|
42
42
|
"ts-node": "^10.9.2",
|
|
43
43
|
"typescript": "5.9.x"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"fetch-retrier": "^0.
|
|
46
|
+
"fetch-retrier": "^0.2"
|
|
47
47
|
},
|
|
48
48
|
"engines": {
|
|
49
49
|
"node": ">= 20.0.0"
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"publishConfig": {
|
|
54
54
|
"access": "public"
|
|
55
55
|
},
|
|
56
|
-
"version": "0.
|
|
56
|
+
"version": "0.4.0",
|
|
57
57
|
"jest": {
|
|
58
58
|
"coverageProvider": "v8",
|
|
59
59
|
"testMatch": [
|