@shambay/vault-manager 1.0.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/LICENSE +201 -0
- package/README.md +367 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -0
- package/dist/resolver/factory.d.ts +19 -0
- package/dist/resolver/factory.d.ts.map +1 -0
- package/dist/resolver/factory.js +28 -0
- package/dist/resolver/factory.js.map +1 -0
- package/dist/resolver/index.d.ts +8 -0
- package/dist/resolver/index.d.ts.map +1 -0
- package/dist/resolver/index.js +8 -0
- package/dist/resolver/index.js.map +1 -0
- package/dist/resolver/memory.d.ts +8 -0
- package/dist/resolver/memory.d.ts.map +1 -0
- package/dist/resolver/memory.js +15 -0
- package/dist/resolver/memory.js.map +1 -0
- package/dist/resolver/redis.d.ts +10 -0
- package/dist/resolver/redis.d.ts.map +1 -0
- package/dist/resolver/redis.js +20 -0
- package/dist/resolver/redis.js.map +1 -0
- package/dist/shared/env.d.ts +14 -0
- package/dist/shared/env.d.ts.map +1 -0
- package/dist/shared/env.js +22 -0
- package/dist/shared/env.js.map +1 -0
- package/dist/shared/index.d.ts +4 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +3 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/logger.d.ts +45 -0
- package/dist/shared/logger.d.ts.map +1 -0
- package/dist/shared/logger.js +65 -0
- package/dist/shared/logger.js.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/request.d.ts +48 -0
- package/dist/types/request.d.ts.map +1 -0
- package/dist/types/request.js +2 -0
- package/dist/types/request.js.map +1 -0
- package/dist/types/resolver.d.ts +40 -0
- package/dist/types/resolver.d.ts.map +1 -0
- package/dist/types/resolver.js +2 -0
- package/dist/types/resolver.js.map +1 -0
- package/dist/types/vault.d.ts +34 -0
- package/dist/types/vault.d.ts.map +1 -0
- package/dist/types/vault.js +2 -0
- package/dist/types/vault.js.map +1 -0
- package/dist/vault/approle/index.d.ts +2 -0
- package/dist/vault/approle/index.d.ts.map +1 -0
- package/dist/vault/approle/index.js +2 -0
- package/dist/vault/approle/index.js.map +1 -0
- package/dist/vault/approle/token.d.ts +13 -0
- package/dist/vault/approle/token.d.ts.map +1 -0
- package/dist/vault/approle/token.js +60 -0
- package/dist/vault/approle/token.js.map +1 -0
- package/dist/vault/constants.d.ts +9 -0
- package/dist/vault/constants.d.ts.map +1 -0
- package/dist/vault/constants.js +9 -0
- package/dist/vault/constants.js.map +1 -0
- package/dist/vault/database/index.d.ts +2 -0
- package/dist/vault/database/index.d.ts.map +1 -0
- package/dist/vault/database/index.js +2 -0
- package/dist/vault/database/index.js.map +1 -0
- package/dist/vault/database/postgres-url.d.ts +16 -0
- package/dist/vault/database/postgres-url.d.ts.map +1 -0
- package/dist/vault/database/postgres-url.js +53 -0
- package/dist/vault/database/postgres-url.js.map +1 -0
- package/dist/vault/index.d.ts +4 -0
- package/dist/vault/index.d.ts.map +1 -0
- package/dist/vault/index.js +4 -0
- package/dist/vault/index.js.map +1 -0
- package/dist/vault/kv/index.d.ts +2 -0
- package/dist/vault/kv/index.d.ts.map +1 -0
- package/dist/vault/kv/index.js +2 -0
- package/dist/vault/kv/index.js.map +1 -0
- package/dist/vault/kv/secret.d.ts +13 -0
- package/dist/vault/kv/secret.d.ts.map +1 -0
- package/dist/vault/kv/secret.js +46 -0
- package/dist/vault/kv/secret.js.map +1 -0
- package/package.json +76 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vault/database/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/vault/database/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { RequestResolver } from '@shambay/cached-http-resolver';
|
|
2
|
+
import type { DatabaseCredsOptions } from '../../types/request.js';
|
|
3
|
+
/**
|
|
4
|
+
* Fetches dynamic PostgreSQL credentials from Vault and builds a connection URL.
|
|
5
|
+
*
|
|
6
|
+
* @param resolver - RequestResolver used to perform the HTTP request
|
|
7
|
+
* @param vaultAddress - Vault base address
|
|
8
|
+
* @param token - Vault access token
|
|
9
|
+
* @param databaseRole - Name of the database role in Vault
|
|
10
|
+
* @param host - Database host
|
|
11
|
+
* @param port - Database port
|
|
12
|
+
* @param databaseName - Database name
|
|
13
|
+
* @param options - Optional per-call overrides (buffer, fallback TTL, hooks)
|
|
14
|
+
*/
|
|
15
|
+
export declare function getPostgresUrl(resolver: RequestResolver, vaultAddress: string, token: string, databaseRole: string, host: string, port: number, databaseName: string, options?: DatabaseCredsOptions): Promise<string>;
|
|
16
|
+
//# sourceMappingURL=postgres-url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres-url.d.ts","sourceRoot":"","sources":["../../../src/vault/database/postgres-url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AA0BnE;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CACnC,QAAQ,EAAE,eAAe,EACzB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,oBAAyB,GAChC,OAAO,CAAC,MAAM,CAAC,CA8BjB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { DEFAULT_FALLBACK_TTL_SECONDS, DEFAULT_REFRESH_BUFFER_SECONDS } from '../constants.js';
|
|
2
|
+
import { createLogger } from '../../shared/logger.js';
|
|
3
|
+
const log = createLogger('Vault');
|
|
4
|
+
/**
|
|
5
|
+
* Default hooks and fallback values used when the caller
|
|
6
|
+
* does not provide any per-call options.
|
|
7
|
+
*/
|
|
8
|
+
const defaultOptions = {
|
|
9
|
+
refreshBufferSeconds: DEFAULT_REFRESH_BUFFER_SECONDS,
|
|
10
|
+
fallbackTtlSeconds: DEFAULT_FALLBACK_TTL_SECONDS,
|
|
11
|
+
onBefore: () => { },
|
|
12
|
+
onAfter: () => { },
|
|
13
|
+
onError: (error, attempt) => {
|
|
14
|
+
log.error(`[DB] Attempt ${attempt} failed:`, error.message);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Fetches dynamic PostgreSQL credentials from Vault and builds a connection URL.
|
|
19
|
+
*
|
|
20
|
+
* @param resolver - RequestResolver used to perform the HTTP request
|
|
21
|
+
* @param vaultAddress - Vault base address
|
|
22
|
+
* @param token - Vault access token
|
|
23
|
+
* @param databaseRole - Name of the database role in Vault
|
|
24
|
+
* @param host - Database host
|
|
25
|
+
* @param port - Database port
|
|
26
|
+
* @param databaseName - Database name
|
|
27
|
+
* @param options - Optional per-call overrides (buffer, fallback TTL, hooks)
|
|
28
|
+
*/
|
|
29
|
+
export async function getPostgresUrl(resolver, vaultAddress, token, databaseRole, host, port, databaseName, options = {}) {
|
|
30
|
+
const { refreshBufferSeconds, fallbackTtlSeconds, onBefore, onAfter, onError } = {
|
|
31
|
+
...defaultOptions,
|
|
32
|
+
...options
|
|
33
|
+
};
|
|
34
|
+
const url = `${vaultAddress}/v1/database/creds/${databaseRole}`;
|
|
35
|
+
const cacheKey = `db_creds_${databaseRole}`;
|
|
36
|
+
const data = await resolver.request(url, { headers: { 'X-Vault-Token': token } }, {
|
|
37
|
+
cacheKey,
|
|
38
|
+
requestKey: cacheKey,
|
|
39
|
+
refreshBufferSeconds,
|
|
40
|
+
ttlResolver: (responseData) => {
|
|
41
|
+
const lease = responseData?.lease_duration;
|
|
42
|
+
if (typeof lease === 'number' && lease > 0) {
|
|
43
|
+
return lease;
|
|
44
|
+
}
|
|
45
|
+
return fallbackTtlSeconds;
|
|
46
|
+
},
|
|
47
|
+
onBefore,
|
|
48
|
+
onAfter,
|
|
49
|
+
onError
|
|
50
|
+
});
|
|
51
|
+
return `postgresql://${data.data.username}:${data.data.password}@${host}:${port}/${databaseName}`;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=postgres-url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres-url.js","sourceRoot":"","sources":["../../../src/vault/database/postgres-url.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAC/F,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;AAQlC;;;GAGG;AACH,MAAM,cAAc,GAAmC;IACtD,oBAAoB,EAAE,8BAA8B;IACpD,kBAAkB,EAAE,4BAA4B;IAChD,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;IAClB,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;IACjB,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAC3B,GAAG,CAAC,KAAK,CAAC,gBAAgB,OAAO,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;CACD,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,QAAyB,EACzB,YAAoB,EACpB,KAAa,EACb,YAAoB,EACpB,IAAY,EACZ,IAAY,EACZ,YAAoB,EACpB,UAAgC,EAAE;IAElC,MAAM,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG;QAChF,GAAG,cAAc;QACjB,GAAG,OAAO;KACV,CAAC;IAEF,MAAM,GAAG,GAAG,GAAG,YAAY,sBAAsB,YAAY,EAAE,CAAC;IAChE,MAAM,QAAQ,GAAG,YAAY,YAAY,EAAE,CAAC;IAE5C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAClC,GAAG,EACH,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EACvC;QACC,QAAQ;QACR,UAAU,EAAE,QAAQ;QACpB,oBAAoB;QACpB,WAAW,EAAE,CAAC,YAAY,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAI,YAAkD,EAAE,cAAc,CAAC;YAClF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBAC5C,OAAO,KAAK,CAAC;YACd,CAAC;YACD,OAAO,kBAAkB,CAAC;QAC3B,CAAC;QACD,QAAQ;QACR,OAAO;QACP,OAAO;KACP,CACD,CAAC;IAEF,OAAO,gBAAgB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,IAAI,YAAY,EAAE,CAAC;AACnG,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vault/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vault/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vault/kv/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/vault/kv/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { RequestResolver } from '@shambay/cached-http-resolver';
|
|
2
|
+
import type { KvSecretOptions } from '../../types/request.js';
|
|
3
|
+
/**
|
|
4
|
+
* Reads a secret from Vault KV v2 by path.
|
|
5
|
+
*
|
|
6
|
+
* @param resolver - RequestResolver used to perform the HTTP request
|
|
7
|
+
* @param vaultAddress - Vault base address
|
|
8
|
+
* @param token - Vault access token
|
|
9
|
+
* @param path - Secret path (e.g. `myapp/config`)
|
|
10
|
+
* @param options - Optional per-call overrides (cache, TTL, hooks)
|
|
11
|
+
*/
|
|
12
|
+
export declare function getValueByKey<T>(resolver: RequestResolver, vaultAddress: string, token: string, path: string, options?: KvSecretOptions): Promise<T>;
|
|
13
|
+
//# sourceMappingURL=secret.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret.d.ts","sourceRoot":"","sources":["../../../src/vault/kv/secret.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AA6B9D;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,CAAC,EACpC,QAAQ,EAAE,eAAe,EACzB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,eAAoB,GAC3B,OAAO,CAAC,CAAC,CAAC,CAyBZ"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { DEFAULT_REFRESH_BUFFER_SECONDS } from '../constants.js';
|
|
2
|
+
import { createLogger } from '../../shared/logger.js';
|
|
3
|
+
const log = createLogger('KV');
|
|
4
|
+
/**
|
|
5
|
+
* Default hooks and fallback values used when the caller
|
|
6
|
+
* does not provide any per-call options.
|
|
7
|
+
*
|
|
8
|
+
* Note: `useCache` and `cacheTTL` are handled separately below,
|
|
9
|
+
* since they depend on whether caching is enabled at all.
|
|
10
|
+
*/
|
|
11
|
+
const defaultOptions = {
|
|
12
|
+
useCache: true,
|
|
13
|
+
refreshBufferSeconds: DEFAULT_REFRESH_BUFFER_SECONDS,
|
|
14
|
+
onBefore: (url) => log.debug(`Fetching ${url}`),
|
|
15
|
+
onAfter: () => { },
|
|
16
|
+
onError: (error, attempt) => log.error(`Attempt ${attempt} failed:`, error.message)
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Reads a secret from Vault KV v2 by path.
|
|
20
|
+
*
|
|
21
|
+
* @param resolver - RequestResolver used to perform the HTTP request
|
|
22
|
+
* @param vaultAddress - Vault base address
|
|
23
|
+
* @param token - Vault access token
|
|
24
|
+
* @param path - Secret path (e.g. `myapp/config`)
|
|
25
|
+
* @param options - Optional per-call overrides (cache, TTL, hooks)
|
|
26
|
+
*/
|
|
27
|
+
export async function getValueByKey(resolver, vaultAddress, token, path, options = {}) {
|
|
28
|
+
const { useCache, cacheTTL, refreshBufferSeconds, onBefore, onAfter, onError } = {
|
|
29
|
+
...defaultOptions,
|
|
30
|
+
...options
|
|
31
|
+
};
|
|
32
|
+
const url = `${vaultAddress}/v1/kv/data/${path}`;
|
|
33
|
+
const rawResponse = await resolver.request(url, { headers: { 'X-Vault-Token': token } }, {
|
|
34
|
+
...(useCache && {
|
|
35
|
+
cacheKey: `vault_kv_${path}`,
|
|
36
|
+
requestKey: `vault_kv_${path}`,
|
|
37
|
+
cacheTTL,
|
|
38
|
+
refreshBufferSeconds
|
|
39
|
+
}),
|
|
40
|
+
onBefore,
|
|
41
|
+
onAfter,
|
|
42
|
+
onError
|
|
43
|
+
});
|
|
44
|
+
return rawResponse.data.data;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=secret.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret.js","sourceRoot":"","sources":["../../../src/vault/kv/secret.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;AAS/B;;;;;;GAMG;AACH,MAAM,cAAc,GAC0C;IAC7D,QAAQ,EAAE,IAAI;IACd,oBAAoB,EAAE,8BAA8B;IACpD,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC;IAC/C,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;IACjB,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,OAAO,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC;CACnF,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,QAAyB,EACzB,YAAoB,EACpB,KAAa,EACb,IAAY,EACZ,UAA2B,EAAE;IAE7B,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,oBAAoB,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG;QAChF,GAAG,cAAc;QACjB,GAAG,OAAO;KACV,CAAC;IAEF,MAAM,GAAG,GAAG,GAAG,YAAY,eAAe,IAAI,EAAE,CAAC;IAEjD,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,OAAO,CACzC,GAAG,EACH,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EACvC;QACC,GAAG,CAAC,QAAQ,IAAI;YACf,QAAQ,EAAE,YAAY,IAAI,EAAE;YAC5B,UAAU,EAAE,YAAY,IAAI,EAAE;YAC9B,QAAQ;YACR,oBAAoB;SACpB,CAAC;QACF,QAAQ;QACR,OAAO;QACP,OAAO;KACP,CACD,CAAC;IAEF,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9B,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@shambay/vault-manager",
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"description": "Vault client with built-in caching, deduplication, and proactive data refresh",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "git+https://github.com/sham-bay/ts-vault-manager.git"
|
|
8
|
+
},
|
|
9
|
+
"bugs": {
|
|
10
|
+
"url": "https://github.com/sham-bay/ts-vault-manager/issues"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://github.com/sham-bay/ts-vault-manager",
|
|
13
|
+
"license": "Apache-2.0",
|
|
14
|
+
"author": "Sham Bay <sham.bay@use_social_to_contact.me>",
|
|
15
|
+
"publishConfig": {
|
|
16
|
+
"access": "public"
|
|
17
|
+
},
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=22.0.0"
|
|
20
|
+
},
|
|
21
|
+
"sideEffects": false,
|
|
22
|
+
"files": [
|
|
23
|
+
"dist"
|
|
24
|
+
],
|
|
25
|
+
"type": "module",
|
|
26
|
+
"main": "./dist/index.js",
|
|
27
|
+
"types": "./dist/index.d.ts",
|
|
28
|
+
"exports": {
|
|
29
|
+
".": {
|
|
30
|
+
"types": "./dist/index.d.ts",
|
|
31
|
+
"import": "./dist/index.js",
|
|
32
|
+
"default": "./dist/index.js"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"scripts": {
|
|
36
|
+
"build": "tsc -p tsconfig.build.json",
|
|
37
|
+
"prepublishOnly": "pnpm run build",
|
|
38
|
+
"lint": "prettier --check . && eslint .",
|
|
39
|
+
"format": "prettier --write .",
|
|
40
|
+
"test": "vitest run",
|
|
41
|
+
"test:watch": "vitest",
|
|
42
|
+
"test:coverage": "vitest run --coverage"
|
|
43
|
+
},
|
|
44
|
+
"peerDependencies": {
|
|
45
|
+
"ioredis": "^6.0.0",
|
|
46
|
+
"dotenv": "^17.4.0"
|
|
47
|
+
},
|
|
48
|
+
"peerDependenciesMeta": {
|
|
49
|
+
"ioredis": {
|
|
50
|
+
"optional": true
|
|
51
|
+
},
|
|
52
|
+
"dotenv": {
|
|
53
|
+
"optional": true
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"dependencies": {
|
|
57
|
+
"@shambay/cached-http-resolver": "^1.1.0"
|
|
58
|
+
},
|
|
59
|
+
"devDependencies": {
|
|
60
|
+
"@eslint/js": "^10.0.1",
|
|
61
|
+
"@types/node": "^22",
|
|
62
|
+
"@vitest/coverage-v8": "^4.1.11",
|
|
63
|
+
"eslint": "^10.4.1",
|
|
64
|
+
"eslint-config-prettier": "^10.1.8",
|
|
65
|
+
"prettier": "^3.8.3",
|
|
66
|
+
"typescript": "^6.0.3",
|
|
67
|
+
"typescript-eslint": "^8.60.1",
|
|
68
|
+
"vitest": "^4.1.11"
|
|
69
|
+
},
|
|
70
|
+
"keywords": [
|
|
71
|
+
"vault-manager",
|
|
72
|
+
"vault",
|
|
73
|
+
"hashicorp"
|
|
74
|
+
],
|
|
75
|
+
"packageManager": "pnpm@11.21.0"
|
|
76
|
+
}
|