@effect-aws/ssm 1.0.2 → 1.1.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/ConfigProvider/package.json +6 -0
- package/LICENSE +1 -1
- package/{lib → dist/cjs}/ConfigProvider.d.ts +3 -1
- package/dist/cjs/ConfigProvider.d.ts.map +1 -0
- package/dist/cjs/ConfigProvider.js +55 -0
- package/dist/cjs/ConfigProvider.js.map +1 -0
- package/dist/cjs/index.d.ts +5 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/{lib → dist/cjs}/index.js +5 -2
- package/dist/cjs/index.js.map +1 -0
- package/dist/dts/ConfigProvider.d.ts +17 -0
- package/dist/dts/ConfigProvider.d.ts.map +1 -0
- package/dist/dts/index.d.ts +5 -0
- package/dist/dts/index.d.ts.map +1 -0
- package/dist/esm/ConfigProvider.js +51 -0
- package/dist/esm/ConfigProvider.js.map +1 -0
- package/dist/esm/index.js +5 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +4 -0
- package/package.json +34 -43
- package/src/ConfigProvider.ts +135 -0
- package/src/index.ts +4 -0
- package/CHANGELOG.md +0 -24
- package/docgen.json +0 -8
- package/lib/ConfigProvider.js +0 -55
- package/lib/esm/ConfigProvider.js +0 -51
- package/lib/esm/index.js +0 -2
- package/lib/index.d.ts +0 -1
- package/project.json +0 -80
- package/vitest.config.ts +0 -3
package/LICENSE
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
4
|
import { SSMService } from "@effect-aws/client-ssm";
|
|
5
|
-
import {
|
|
5
|
+
import type { Layer } from "effect";
|
|
6
|
+
import { ConfigProvider } from "effect";
|
|
6
7
|
/**
|
|
7
8
|
* A config provider that loads configuration from AWS Systems Manager Parameter Store.
|
|
8
9
|
*
|
|
@@ -13,3 +14,4 @@ export declare const fromParameterStore: (config?: {
|
|
|
13
14
|
pathDelim?: string;
|
|
14
15
|
serviceLayer?: Layer.Layer<SSMService, never, never>;
|
|
15
16
|
}) => ConfigProvider.ConfigProvider;
|
|
17
|
+
//# sourceMappingURL=ConfigProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigProvider.d.ts","sourceRoot":"","sources":["../../src/ConfigProvider.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAU,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAIL,cAAc,EAMf,MAAM,QAAQ,CAAC;AAEhB;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,YAAa;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;CACtD,KAAG,eAAe,cA4GlB,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fromParameterStore = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @since 1.0.0
|
|
6
|
+
*/
|
|
7
|
+
const client_ssm_1 = require("@effect-aws/client-ssm");
|
|
8
|
+
const effect_1 = require("effect");
|
|
9
|
+
/**
|
|
10
|
+
* A config provider that loads configuration from AWS Systems Manager Parameter Store.
|
|
11
|
+
*
|
|
12
|
+
* @since 1.0.0
|
|
13
|
+
* @category constructors
|
|
14
|
+
*/
|
|
15
|
+
const fromParameterStore = (config) => {
|
|
16
|
+
const { pathDelim, serviceLayer } = Object.assign({}, { pathDelim: "_", serviceLayer: client_ssm_1.SSMService.defaultLayer }, config);
|
|
17
|
+
const makePathString = (path) => (0, effect_1.pipe)(path, effect_1.Array.join(pathDelim));
|
|
18
|
+
const unmakePathString = (pathString) => pathString.split(pathDelim);
|
|
19
|
+
const load = (path, primitive) => {
|
|
20
|
+
const pathString = makePathString(path);
|
|
21
|
+
return client_ssm_1.SSMService.getParameter({
|
|
22
|
+
Name: pathString,
|
|
23
|
+
WithDecryption: true,
|
|
24
|
+
}).pipe(effect_1.Effect.flatMap((value) => effect_1.Option.fromNullable(value.Parameter?.Value)), effect_1.Effect.catchTag("ParameterNotFound", () => effect_1.Effect.fail(effect_1.ConfigError.MissingData(path, `Expected ${pathString} parameter to exist in AWS Systems Manager Parameter Store`))), effect_1.Effect.catchTag("ParameterVersionNotFound", () => effect_1.Effect.fail(effect_1.ConfigError.MissingData(path, `Expected ${pathString} parameter version to exist in AWS Systems Manager Parameter Store`))), effect_1.Effect.catchTag("NoSuchElementException", () => effect_1.Effect.fail(effect_1.ConfigError.MissingData(path, `Expected ${pathString} to exist in AWS Systems Manager Parameter Store`))), effect_1.Effect.catchTag("InvalidKeyId", () => effect_1.Effect.fail(effect_1.ConfigError.InvalidData(path, "Invalid key ID when retrieving configuration from AWS Systems Manager Parameter Store"))), effect_1.Effect.catchAllCause((cause) => effect_1.Cause.isFailType(cause) && effect_1.ConfigError.isConfigError(cause.error)
|
|
25
|
+
? effect_1.Effect.fail(cause.error)
|
|
26
|
+
: effect_1.Effect.fail(effect_1.ConfigError.SourceUnavailable(path, "Failed to load configuration from AWS Systems Manager Parameter Store", cause))), effect_1.Effect.flatMap((value) => (0, effect_1.pipe)(primitive.parse(value), effect_1.Effect.mapBoth({
|
|
27
|
+
onFailure: effect_1.ConfigError.prefixed(path),
|
|
28
|
+
onSuccess: effect_1.Array.of,
|
|
29
|
+
}))), effect_1.Effect.provide(serviceLayer));
|
|
30
|
+
};
|
|
31
|
+
const enumerateChildren = (path) => client_ssm_1.SSMService.describeParameters({}).pipe(effect_1.Effect.flatMap((params) => effect_1.Option.fromNullable(params.Parameters)), effect_1.Effect.map(effect_1.Array.map((param) => effect_1.Option.fromNullable(param.Name))), effect_1.Effect.flatMap(effect_1.Option.all), effect_1.Effect.orDie, effect_1.Effect.map((keys) => {
|
|
32
|
+
const keyPaths = keys.map(unmakePathString);
|
|
33
|
+
const filteredKeyPaths = keyPaths
|
|
34
|
+
.filter((keyPath) => {
|
|
35
|
+
for (let i = 0; i < path.length; i++) {
|
|
36
|
+
const pathComponent = (0, effect_1.pipe)(path, effect_1.Array.unsafeGet(i));
|
|
37
|
+
const currentElement = keyPath[i];
|
|
38
|
+
if (currentElement === undefined ||
|
|
39
|
+
pathComponent !== currentElement) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return true;
|
|
44
|
+
})
|
|
45
|
+
.flatMap((keyPath) => keyPath.slice(path.length, path.length + 1));
|
|
46
|
+
return effect_1.HashSet.fromIterable(filteredKeyPaths);
|
|
47
|
+
}), effect_1.Effect.provide(serviceLayer));
|
|
48
|
+
return effect_1.ConfigProvider.fromFlat(effect_1.ConfigProvider.makeFlat({
|
|
49
|
+
load,
|
|
50
|
+
enumerateChildren,
|
|
51
|
+
patch: effect_1.ConfigProviderPathPatch.empty,
|
|
52
|
+
}));
|
|
53
|
+
};
|
|
54
|
+
exports.fromParameterStore = fromParameterStore;
|
|
55
|
+
//# sourceMappingURL=ConfigProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigProvider.js","sourceRoot":"","sources":["../../src/ConfigProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,qBAAqB,CAAC"}
|
|
@@ -14,5 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
/**
|
|
18
|
+
* @since 1.0.0
|
|
19
|
+
*/
|
|
20
|
+
__exportStar(require("./ConfigProvider.js"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;GAEG;AACH,sDAAoC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import { SSMService } from "@effect-aws/client-ssm";
|
|
5
|
+
import type { Layer } from "effect";
|
|
6
|
+
import { ConfigProvider } from "effect";
|
|
7
|
+
/**
|
|
8
|
+
* A config provider that loads configuration from AWS Systems Manager Parameter Store.
|
|
9
|
+
*
|
|
10
|
+
* @since 1.0.0
|
|
11
|
+
* @category constructors
|
|
12
|
+
*/
|
|
13
|
+
export declare const fromParameterStore: (config?: {
|
|
14
|
+
pathDelim?: string;
|
|
15
|
+
serviceLayer?: Layer.Layer<SSMService, never, never>;
|
|
16
|
+
}) => ConfigProvider.ConfigProvider;
|
|
17
|
+
//# sourceMappingURL=ConfigProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigProvider.d.ts","sourceRoot":"","sources":["../../src/ConfigProvider.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAU,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAIL,cAAc,EAMf,MAAM,QAAQ,CAAC;AAEhB;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,YAAa;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;CACtD,KAAG,eAAe,cA4GlB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import { SSMService } from "@effect-aws/client-ssm";
|
|
5
|
+
import { Array, Cause, ConfigError, ConfigProvider, ConfigProviderPathPatch, Effect, HashSet, Option, pipe, } from "effect";
|
|
6
|
+
/**
|
|
7
|
+
* A config provider that loads configuration from AWS Systems Manager Parameter Store.
|
|
8
|
+
*
|
|
9
|
+
* @since 1.0.0
|
|
10
|
+
* @category constructors
|
|
11
|
+
*/
|
|
12
|
+
export const fromParameterStore = (config) => {
|
|
13
|
+
const { pathDelim, serviceLayer } = Object.assign({}, { pathDelim: "_", serviceLayer: SSMService.defaultLayer }, config);
|
|
14
|
+
const makePathString = (path) => pipe(path, Array.join(pathDelim));
|
|
15
|
+
const unmakePathString = (pathString) => pathString.split(pathDelim);
|
|
16
|
+
const load = (path, primitive) => {
|
|
17
|
+
const pathString = makePathString(path);
|
|
18
|
+
return SSMService.getParameter({
|
|
19
|
+
Name: pathString,
|
|
20
|
+
WithDecryption: true,
|
|
21
|
+
}).pipe(Effect.flatMap((value) => Option.fromNullable(value.Parameter?.Value)), Effect.catchTag("ParameterNotFound", () => Effect.fail(ConfigError.MissingData(path, `Expected ${pathString} parameter to exist in AWS Systems Manager Parameter Store`))), Effect.catchTag("ParameterVersionNotFound", () => Effect.fail(ConfigError.MissingData(path, `Expected ${pathString} parameter version to exist in AWS Systems Manager Parameter Store`))), Effect.catchTag("NoSuchElementException", () => Effect.fail(ConfigError.MissingData(path, `Expected ${pathString} to exist in AWS Systems Manager Parameter Store`))), Effect.catchTag("InvalidKeyId", () => Effect.fail(ConfigError.InvalidData(path, "Invalid key ID when retrieving configuration from AWS Systems Manager Parameter Store"))), Effect.catchAllCause((cause) => Cause.isFailType(cause) && ConfigError.isConfigError(cause.error)
|
|
22
|
+
? Effect.fail(cause.error)
|
|
23
|
+
: Effect.fail(ConfigError.SourceUnavailable(path, "Failed to load configuration from AWS Systems Manager Parameter Store", cause))), Effect.flatMap((value) => pipe(primitive.parse(value), Effect.mapBoth({
|
|
24
|
+
onFailure: ConfigError.prefixed(path),
|
|
25
|
+
onSuccess: Array.of,
|
|
26
|
+
}))), Effect.provide(serviceLayer));
|
|
27
|
+
};
|
|
28
|
+
const enumerateChildren = (path) => SSMService.describeParameters({}).pipe(Effect.flatMap((params) => Option.fromNullable(params.Parameters)), Effect.map(Array.map((param) => Option.fromNullable(param.Name))), Effect.flatMap(Option.all), Effect.orDie, Effect.map((keys) => {
|
|
29
|
+
const keyPaths = keys.map(unmakePathString);
|
|
30
|
+
const filteredKeyPaths = keyPaths
|
|
31
|
+
.filter((keyPath) => {
|
|
32
|
+
for (let i = 0; i < path.length; i++) {
|
|
33
|
+
const pathComponent = pipe(path, Array.unsafeGet(i));
|
|
34
|
+
const currentElement = keyPath[i];
|
|
35
|
+
if (currentElement === undefined ||
|
|
36
|
+
pathComponent !== currentElement) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return true;
|
|
41
|
+
})
|
|
42
|
+
.flatMap((keyPath) => keyPath.slice(path.length, path.length + 1));
|
|
43
|
+
return HashSet.fromIterable(filteredKeyPaths);
|
|
44
|
+
}), Effect.provide(serviceLayer));
|
|
45
|
+
return ConfigProvider.fromFlat(ConfigProvider.makeFlat({
|
|
46
|
+
load,
|
|
47
|
+
enumerateChildren,
|
|
48
|
+
patch: ConfigProviderPathPatch.empty,
|
|
49
|
+
}));
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=ConfigProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigProvider.js","sourceRoot":"","sources":["../../src/ConfigProvider.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EACL,KAAK,EACL,KAAK,EACL,WAAW,EACX,cAAc,EACd,uBAAuB,EACvB,MAAM,EACN,OAAO,EACP,MAAM,EACN,IAAI,GACL,MAAM,QAAQ,CAAC;AAEhB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAGlC,EAAiC,EAAE;IAClC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,MAAM,CAC/C,EAAE,EACF,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,EACzD,MAAM,CACP,CAAC;IACF,MAAM,cAAc,GAAG,CAAC,IAA2B,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAClG,MAAM,gBAAgB,GAAG,CAAC,UAAkB,EAAyB,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEpG,MAAM,IAAI,GAAG,CACX,IAA2B,EAC3B,SAAqC,EACa,EAAE;QACpD,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,UAAU,CAAC,YAAY,CAAC;YAC7B,IAAI,EAAE,UAAU;YAChB,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,EACtE,MAAM,CAAC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE,CACxC,MAAM,CAAC,IAAI,CACT,WAAW,CAAC,WAAW,CACrB,IAAqB,EACrB,YAAY,UAAU,4DAA4D,CACnF,CACF,CAAC,EACJ,MAAM,CAAC,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE,CAC/C,MAAM,CAAC,IAAI,CACT,WAAW,CAAC,WAAW,CACrB,IAAqB,EACrB,YAAY,UAAU,oEAAoE,CAC3F,CACF,CAAC,EACJ,MAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE,CAC7C,MAAM,CAAC,IAAI,CACT,WAAW,CAAC,WAAW,CACrB,IAAqB,EACrB,YAAY,UAAU,kDAAkD,CACzE,CACF,CAAC,EACJ,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE,CACnC,MAAM,CAAC,IAAI,CACT,WAAW,CAAC,WAAW,CACrB,IAAqB,EACrB,uFAAuF,CACxF,CACF,CAAC,EACJ,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAC7B,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC;YAC/D,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAC1B,CAAC,CAAC,MAAM,CAAC,IAAI,CACX,WAAW,CAAC,iBAAiB,CAC3B,IAAqB,EACrB,uEAAuE,EACvE,KAAK,CACN,CACF,CACJ,EACD,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CACvB,IAAI,CACF,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EACtB,MAAM,CAAC,OAAO,CAAC;YACb,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,IAAqB,CAAC;YACtD,SAAS,EAAE,KAAK,CAAC,EAAE;SACpB,CAAC,CACH,CACF,EACD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAC7B,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CACxB,IAA2B,EACsC,EAAE,CACnE,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,IAAI,CACpC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAClE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EACjE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAC1B,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC5C,MAAM,gBAAgB,GAAG,QAAQ;aAC9B,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrD,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAClC,IACE,cAAc,KAAK,SAAS;oBAC5B,aAAa,KAAK,cAAc,EAChC,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;aACD,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QACrE,OAAO,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAChD,CAAC,CAAC,EACF,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAC7B,CAAC;IAEJ,OAAO,cAAc,CAAC,QAAQ,CAC5B,cAAc,CAAC,QAAQ,CAAC;QACtB,IAAI;QACJ,iBAAiB;QACjB,KAAK,EAAE,uBAAuB,CAAC,KAAK;KACrC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,qBAAqB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,53 +1,44 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-aws/ssm",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "Effectful AWS SSM functions",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "github:floydspace/effect-aws",
|
|
9
|
+
"directory": "packages/ssm"
|
|
10
|
+
},
|
|
11
|
+
"sideEffects": [],
|
|
3
12
|
"author": {
|
|
4
13
|
"name": "Victor Korzunin",
|
|
5
|
-
"email": "ifloydrose@gmail.com"
|
|
6
|
-
"organization": false
|
|
7
|
-
},
|
|
8
|
-
"devDependencies": {
|
|
9
|
-
"@aws-sdk/client-ssm": "^3",
|
|
10
|
-
"@fluffy-spoon/substitute": "^1.208.0",
|
|
11
|
-
"@types/node": "^18",
|
|
12
|
-
"@typescript-eslint/eslint-plugin": "^7",
|
|
13
|
-
"@typescript-eslint/parser": "^7",
|
|
14
|
-
"effect": "3.0.0",
|
|
15
|
-
"eslint": "^8",
|
|
16
|
-
"eslint-config-prettier": "^9.1.0",
|
|
17
|
-
"eslint-import-resolver-typescript": "^3.6.1",
|
|
18
|
-
"eslint-plugin-import": "^2.29.1",
|
|
19
|
-
"eslint-plugin-prettier": "^5.2.1",
|
|
20
|
-
"prettier": "^3.2.5",
|
|
21
|
-
"typescript": "^5.4.2",
|
|
22
|
-
"vitest": "^2.0.5",
|
|
23
|
-
"@effect-aws/client-ssm": "^1.2.0"
|
|
14
|
+
"email": "ifloydrose@gmail.com"
|
|
24
15
|
},
|
|
16
|
+
"homepage": "https://floydspace.github.io/effect-aws/docs/ssm",
|
|
25
17
|
"peerDependencies": {
|
|
26
|
-
"
|
|
27
|
-
"effect": "
|
|
18
|
+
"effect": ">=3.0.4 <4.0.0",
|
|
19
|
+
"@effect-aws/client-ssm": "^1.9.0"
|
|
28
20
|
},
|
|
29
|
-
"main": "
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
21
|
+
"main": "./dist/cjs/index.js",
|
|
22
|
+
"module": "./dist/esm/index.js",
|
|
23
|
+
"types": "./dist/dts/index.d.ts",
|
|
24
|
+
"exports": {
|
|
25
|
+
"./package.json": "./package.json",
|
|
26
|
+
".": {
|
|
27
|
+
"types": "./dist/dts/index.d.ts",
|
|
28
|
+
"import": "./dist/esm/index.js",
|
|
29
|
+
"default": "./dist/cjs/index.js"
|
|
30
|
+
},
|
|
31
|
+
"./ConfigProvider": {
|
|
32
|
+
"types": "./dist/dts/ConfigProvider.d.ts",
|
|
33
|
+
"import": "./dist/esm/ConfigProvider.js",
|
|
34
|
+
"default": "./dist/cjs/ConfigProvider.js"
|
|
35
|
+
}
|
|
34
36
|
},
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"build": "npx projen build",
|
|
42
|
-
"compile": "npx projen compile",
|
|
43
|
-
"default": "npx projen default",
|
|
44
|
-
"eslint": "npx projen eslint",
|
|
45
|
-
"package": "npx projen package",
|
|
46
|
-
"post-compile": "npx projen post-compile",
|
|
47
|
-
"pre-compile": "npx projen pre-compile",
|
|
48
|
-
"test": "npx projen test",
|
|
49
|
-
"test:watch": "npx projen test:watch",
|
|
50
|
-
"watch": "npx projen watch",
|
|
51
|
-
"docgen": "docgen"
|
|
37
|
+
"typesVersions": {
|
|
38
|
+
"*": {
|
|
39
|
+
"ConfigProvider": [
|
|
40
|
+
"./dist/dts/ConfigProvider.d.ts"
|
|
41
|
+
]
|
|
42
|
+
}
|
|
52
43
|
}
|
|
53
44
|
}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import { SSMService } from "@effect-aws/client-ssm";
|
|
5
|
+
import type { Config, Layer } from "effect";
|
|
6
|
+
import {
|
|
7
|
+
Array,
|
|
8
|
+
Cause,
|
|
9
|
+
ConfigError,
|
|
10
|
+
ConfigProvider,
|
|
11
|
+
ConfigProviderPathPatch,
|
|
12
|
+
Effect,
|
|
13
|
+
HashSet,
|
|
14
|
+
Option,
|
|
15
|
+
pipe,
|
|
16
|
+
} from "effect";
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* A config provider that loads configuration from AWS Systems Manager Parameter Store.
|
|
20
|
+
*
|
|
21
|
+
* @since 1.0.0
|
|
22
|
+
* @category constructors
|
|
23
|
+
*/
|
|
24
|
+
export const fromParameterStore = (config?: {
|
|
25
|
+
pathDelim?: string;
|
|
26
|
+
serviceLayer?: Layer.Layer<SSMService, never, never>;
|
|
27
|
+
}): ConfigProvider.ConfigProvider => {
|
|
28
|
+
const { pathDelim, serviceLayer } = Object.assign(
|
|
29
|
+
{},
|
|
30
|
+
{ pathDelim: "_", serviceLayer: SSMService.defaultLayer },
|
|
31
|
+
config,
|
|
32
|
+
);
|
|
33
|
+
const makePathString = (path: ReadonlyArray<string>): string => pipe(path, Array.join(pathDelim));
|
|
34
|
+
const unmakePathString = (pathString: string): ReadonlyArray<string> => pathString.split(pathDelim);
|
|
35
|
+
|
|
36
|
+
const load = <A>(
|
|
37
|
+
path: ReadonlyArray<string>,
|
|
38
|
+
primitive: Config.Config.Primitive<A>,
|
|
39
|
+
): Effect.Effect<Array<A>, ConfigError.ConfigError> => {
|
|
40
|
+
const pathString = makePathString(path);
|
|
41
|
+
return SSMService.getParameter({
|
|
42
|
+
Name: pathString,
|
|
43
|
+
WithDecryption: true,
|
|
44
|
+
}).pipe(
|
|
45
|
+
Effect.flatMap((value) => Option.fromNullable(value.Parameter?.Value)),
|
|
46
|
+
Effect.catchTag("ParameterNotFound", () =>
|
|
47
|
+
Effect.fail(
|
|
48
|
+
ConfigError.MissingData(
|
|
49
|
+
path as Array<string>,
|
|
50
|
+
`Expected ${pathString} parameter to exist in AWS Systems Manager Parameter Store`,
|
|
51
|
+
),
|
|
52
|
+
)),
|
|
53
|
+
Effect.catchTag("ParameterVersionNotFound", () =>
|
|
54
|
+
Effect.fail(
|
|
55
|
+
ConfigError.MissingData(
|
|
56
|
+
path as Array<string>,
|
|
57
|
+
`Expected ${pathString} parameter version to exist in AWS Systems Manager Parameter Store`,
|
|
58
|
+
),
|
|
59
|
+
)),
|
|
60
|
+
Effect.catchTag("NoSuchElementException", () =>
|
|
61
|
+
Effect.fail(
|
|
62
|
+
ConfigError.MissingData(
|
|
63
|
+
path as Array<string>,
|
|
64
|
+
`Expected ${pathString} to exist in AWS Systems Manager Parameter Store`,
|
|
65
|
+
),
|
|
66
|
+
)),
|
|
67
|
+
Effect.catchTag("InvalidKeyId", () =>
|
|
68
|
+
Effect.fail(
|
|
69
|
+
ConfigError.InvalidData(
|
|
70
|
+
path as Array<string>,
|
|
71
|
+
"Invalid key ID when retrieving configuration from AWS Systems Manager Parameter Store",
|
|
72
|
+
),
|
|
73
|
+
)),
|
|
74
|
+
Effect.catchAllCause((cause) =>
|
|
75
|
+
Cause.isFailType(cause) && ConfigError.isConfigError(cause.error)
|
|
76
|
+
? Effect.fail(cause.error)
|
|
77
|
+
: Effect.fail(
|
|
78
|
+
ConfigError.SourceUnavailable(
|
|
79
|
+
path as Array<string>,
|
|
80
|
+
"Failed to load configuration from AWS Systems Manager Parameter Store",
|
|
81
|
+
cause,
|
|
82
|
+
),
|
|
83
|
+
)
|
|
84
|
+
),
|
|
85
|
+
Effect.flatMap((value) =>
|
|
86
|
+
pipe(
|
|
87
|
+
primitive.parse(value),
|
|
88
|
+
Effect.mapBoth({
|
|
89
|
+
onFailure: ConfigError.prefixed(path as Array<string>),
|
|
90
|
+
onSuccess: Array.of,
|
|
91
|
+
}),
|
|
92
|
+
)
|
|
93
|
+
),
|
|
94
|
+
Effect.provide(serviceLayer),
|
|
95
|
+
);
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
const enumerateChildren = (
|
|
99
|
+
path: ReadonlyArray<string>,
|
|
100
|
+
): Effect.Effect<HashSet.HashSet<string>, ConfigError.ConfigError> =>
|
|
101
|
+
SSMService.describeParameters({}).pipe(
|
|
102
|
+
Effect.flatMap((params) => Option.fromNullable(params.Parameters)),
|
|
103
|
+
Effect.map(Array.map((param) => Option.fromNullable(param.Name))),
|
|
104
|
+
Effect.flatMap(Option.all),
|
|
105
|
+
Effect.orDie,
|
|
106
|
+
Effect.map((keys) => {
|
|
107
|
+
const keyPaths = keys.map(unmakePathString);
|
|
108
|
+
const filteredKeyPaths = keyPaths
|
|
109
|
+
.filter((keyPath) => {
|
|
110
|
+
for (let i = 0; i < path.length; i++) {
|
|
111
|
+
const pathComponent = pipe(path, Array.unsafeGet(i));
|
|
112
|
+
const currentElement = keyPath[i];
|
|
113
|
+
if (
|
|
114
|
+
currentElement === undefined ||
|
|
115
|
+
pathComponent !== currentElement
|
|
116
|
+
) {
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return true;
|
|
121
|
+
})
|
|
122
|
+
.flatMap((keyPath) => keyPath.slice(path.length, path.length + 1));
|
|
123
|
+
return HashSet.fromIterable(filteredKeyPaths);
|
|
124
|
+
}),
|
|
125
|
+
Effect.provide(serviceLayer),
|
|
126
|
+
);
|
|
127
|
+
|
|
128
|
+
return ConfigProvider.fromFlat(
|
|
129
|
+
ConfigProvider.makeFlat({
|
|
130
|
+
load,
|
|
131
|
+
enumerateChildren,
|
|
132
|
+
patch: ConfigProviderPathPatch.empty,
|
|
133
|
+
}),
|
|
134
|
+
);
|
|
135
|
+
};
|
package/src/index.ts
ADDED
package/CHANGELOG.md
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# @effect-aws/ssm
|
|
2
|
-
|
|
3
|
-
## 1.0.2
|
|
4
|
-
|
|
5
|
-
### Patch Changes
|
|
6
|
-
|
|
7
|
-
- [`cc97eae`](https://github.com/floydspace/effect-aws/commit/cc97eaed1f8df72b8e7fde05069e8ce8eaac578f) Thanks [@floydspace](https://github.com/floydspace)! - simplify layers configuration (closes #78)
|
|
8
|
-
|
|
9
|
-
## 1.0.1
|
|
10
|
-
|
|
11
|
-
### Patch Changes
|
|
12
|
-
|
|
13
|
-
- [`f45941d`](https://github.com/floydspace/effect-aws/commit/f45941d6f31b505ce22d6ca196b0c89bc2aa68e2) Thanks [@floydspace](https://github.com/floydspace)! - **ConfigProvider** get parameter with decryption by default
|
|
14
|
-
|
|
15
|
-
## 1.0.0
|
|
16
|
-
|
|
17
|
-
### Major Changes
|
|
18
|
-
|
|
19
|
-
- [`225585c`](https://github.com/floydspace/effect-aws/commit/225585c0f1d5070de3f7b8effb721742a90f7619) Thanks [@floydspace](https://github.com/floydspace)! - Implement `fromParameterStore` ConfigProvider constructor
|
|
20
|
-
|
|
21
|
-
### Patch Changes
|
|
22
|
-
|
|
23
|
-
- Updated dependencies [[`b22c449`](https://github.com/floydspace/effect-aws/commit/b22c44924a2fdf2892b7a08f4ec7f3df2c154b8a)]:
|
|
24
|
-
- @effect-aws/client-ssm@1.0.0
|
package/docgen.json
DELETED
package/lib/ConfigProvider.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fromParameterStore = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* @since 1.0.0
|
|
6
|
-
*/
|
|
7
|
-
const client_ssm_1 = require("@effect-aws/client-ssm");
|
|
8
|
-
const effect_1 = require("effect");
|
|
9
|
-
/**
|
|
10
|
-
* A config provider that loads configuration from AWS Systems Manager Parameter Store.
|
|
11
|
-
*
|
|
12
|
-
* @since 1.0.0
|
|
13
|
-
* @category constructors
|
|
14
|
-
*/
|
|
15
|
-
const fromParameterStore = (config) => {
|
|
16
|
-
const { pathDelim, serviceLayer } = Object.assign({}, { pathDelim: "_", serviceLayer: client_ssm_1.DefaultSSMServiceLayer }, config);
|
|
17
|
-
const makePathString = (path) => (0, effect_1.pipe)(path, effect_1.Array.join(pathDelim));
|
|
18
|
-
const unmakePathString = (pathString) => pathString.split(pathDelim);
|
|
19
|
-
const load = (path, primitive) => {
|
|
20
|
-
const pathString = makePathString(path);
|
|
21
|
-
return client_ssm_1.SSMService.getParameter({
|
|
22
|
-
Name: pathString,
|
|
23
|
-
WithDecryption: true,
|
|
24
|
-
}).pipe(effect_1.Effect.flatMap((value) => { var _a; return effect_1.Option.fromNullable((_a = value.Parameter) === null || _a === void 0 ? void 0 : _a.Value); }), effect_1.Effect.catchTag("ParameterNotFound", () => effect_1.Effect.fail(effect_1.ConfigError.MissingData(path, `Expected ${pathString} parameter to exist in AWS Systems Manager Parameter Store`))), effect_1.Effect.catchTag("ParameterVersionNotFound", () => effect_1.Effect.fail(effect_1.ConfigError.MissingData(path, `Expected ${pathString} parameter version to exist in AWS Systems Manager Parameter Store`))), effect_1.Effect.catchTag("NoSuchElementException", () => effect_1.Effect.fail(effect_1.ConfigError.MissingData(path, `Expected ${pathString} to exist in AWS Systems Manager Parameter Store`))), effect_1.Effect.catchTag("InvalidKeyId", () => effect_1.Effect.fail(effect_1.ConfigError.InvalidData(path, "Invalid key ID when retrieving configuration from AWS Systems Manager Parameter Store"))), effect_1.Effect.catchAllCause((cause) => effect_1.Cause.isFailType(cause) && effect_1.ConfigError.isConfigError(cause.error)
|
|
25
|
-
? effect_1.Effect.fail(cause.error)
|
|
26
|
-
: effect_1.Effect.fail(effect_1.ConfigError.SourceUnavailable(path, "Failed to load configuration from AWS Systems Manager Parameter Store", cause))), effect_1.Effect.flatMap((value) => (0, effect_1.pipe)(primitive.parse(value), effect_1.Effect.mapBoth({
|
|
27
|
-
onFailure: effect_1.ConfigError.prefixed(path),
|
|
28
|
-
onSuccess: effect_1.Array.of,
|
|
29
|
-
}))), effect_1.Effect.provide(serviceLayer));
|
|
30
|
-
};
|
|
31
|
-
const enumerateChildren = (path) => client_ssm_1.SSMService.describeParameters({}).pipe(effect_1.Effect.flatMap((params) => effect_1.Option.fromNullable(params.Parameters)), effect_1.Effect.map(effect_1.Array.map((param) => effect_1.Option.fromNullable(param.Name))), effect_1.Effect.flatMap(effect_1.Option.all), effect_1.Effect.orDie, effect_1.Effect.map((keys) => {
|
|
32
|
-
const keyPaths = keys.map(unmakePathString);
|
|
33
|
-
const filteredKeyPaths = keyPaths
|
|
34
|
-
.filter((keyPath) => {
|
|
35
|
-
for (let i = 0; i < path.length; i++) {
|
|
36
|
-
const pathComponent = (0, effect_1.pipe)(path, effect_1.Array.unsafeGet(i));
|
|
37
|
-
const currentElement = keyPath[i];
|
|
38
|
-
if (currentElement === undefined ||
|
|
39
|
-
pathComponent !== currentElement) {
|
|
40
|
-
return false;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
return true;
|
|
44
|
-
})
|
|
45
|
-
.flatMap((keyPath) => keyPath.slice(path.length, path.length + 1));
|
|
46
|
-
return effect_1.HashSet.fromIterable(filteredKeyPaths);
|
|
47
|
-
}), effect_1.Effect.provide(serviceLayer));
|
|
48
|
-
return effect_1.ConfigProvider.fromFlat(effect_1.ConfigProvider.makeFlat({
|
|
49
|
-
load,
|
|
50
|
-
enumerateChildren,
|
|
51
|
-
patch: effect_1.ConfigProviderPathPatch.empty,
|
|
52
|
-
}));
|
|
53
|
-
};
|
|
54
|
-
exports.fromParameterStore = fromParameterStore;
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlnUHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQ29uZmlnUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCx1REFBNEU7QUFDNUUsbUNBWWdCO0FBRWhCOzs7OztHQUtHO0FBQ0ksTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE1BR2xDLEVBQWlDLEVBQUU7SUFDbEMsTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUMvQyxFQUFFLEVBQ0YsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxtQ0FBc0IsRUFBRSxFQUN4RCxNQUFNLENBQ1AsQ0FBQztJQUNGLE1BQU0sY0FBYyxHQUFHLENBQUMsSUFBMkIsRUFBVSxFQUFFLENBQzdELElBQUEsYUFBSSxFQUFDLElBQUksRUFBRSxjQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFVBQWtCLEVBQXlCLEVBQUUsQ0FDckUsVUFBVSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUU5QixNQUFNLElBQUksR0FBRyxDQUNYLElBQTJCLEVBQzNCLFNBQXFDLEVBQ2EsRUFBRTtRQUNwRCxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsT0FBTyx1QkFBVSxDQUFDLFlBQVksQ0FBQztZQUM3QixJQUFJLEVBQUUsVUFBVTtZQUNoQixjQUFjLEVBQUUsSUFBSTtTQUNyQixDQUFDLENBQUMsSUFBSSxDQUNMLGVBQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxXQUFDLE9BQUEsZUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFBLEtBQUssQ0FBQyxTQUFTLDBDQUFFLEtBQUssQ0FBQyxDQUFBLEVBQUEsQ0FBQyxFQUN0RSxlQUFNLENBQUMsUUFBUSxDQUFD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QyxDQUFDLENBQUM7Z0JBQ3JELE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbEMsSUFDRSxjQUFjLEtBQUssU0FBUztvQkFDNUIsYUFBYSxLQUFLLGNBQWMsRUFDaEMsQ0FBQztvQkFDRCxPQUFPLEtBQUssQ0FBQztnQkFDZixDQUFDO1lBQ0gsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDO2FBQ0QsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sZ0JBQU8sQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNoRCxDQUFDLENBQUMsRUFDRixlQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUM3QixDQUFDO0lBRUosT0FBTyx1QkFBYyxDQUFDLFFBQVEsQ0FDNUIsdUJBQWMsQ0FBQyxRQUFRLENBQUM7UUFDdEIsSUFBSTtRQUNKLGlCQUFpQjtRQUNqQixLQUFLLEVBQUUsZ0NBQXVCLENBQUMsS0FBSztLQUNyQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUMsQ0FBQztBQXJIVyxRQUFBLGtCQUFrQixzQkFxSDdCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuaW1wb3J0IHsgRGVmYXVsdFNTTVNlcnZpY2VMYXllciwgU1NNU2VydmljZSB9IGZyb20gXCJAZWZmZWN0LWF3cy9jbGllbnQtc3NtXCI7XG5pbXBvcnQge1xuICBBcnJheSxcbiAgQ2F1c2UsXG4gIENvbmZpZyxcbiAgQ29uZmlnRXJyb3IsXG4gIENvbmZpZ1Byb3ZpZGVyLFxuICBDb25maWdQcm92aWRlclBhdGhQYXRjaCxcbiAgRWZmZWN0LFxuICBIYXNoU2V0LFxuICBMYXllcixcbiAgT3B0aW9uLFxuICBwaXBlLFxufSBmcm9tIFwiZWZmZWN0XCI7XG5cbi8qKlxuICogQSBjb25maWcgcHJvdmlkZXIgdGhhdCBsb2FkcyBjb25maWd1cmF0aW9uIGZyb20gQVdTIFN5c3RlbXMgTWFuYWdlciBQYXJhbWV0ZXIgU3RvcmUuXG4gKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBmcm9tUGFyYW1ldGVyU3RvcmUgPSAoY29uZmlnPzoge1xuICBwYXRoRGVsaW0/OiBzdHJpbmc7XG4gIHNlcnZpY2VMYXllcj86IExheWVyLkxheWVyPFNTTVNlcnZpY2UsIG5ldmVyLCBuZXZlcj47XG59KTogQ29uZmlnUHJvdmlkZXIuQ29uZmlnUHJvdmlkZXIgPT4ge1xuICBjb25zdCB7IHBhdGhEZWxpbSwgc2VydmljZUxheWVyIH0gPSBPYmplY3QuYXNzaWduKFxuICAgIHt9LFxuICAgIHsgcGF0aERlbGltOiBcIl9cIiwgc2VydmljZUxheWVyOiBEZWZhdWx0U1NNU2VydmljZUxheWVyIH0sXG4gICAgY29uZmlnLFxuICApO1xuICBjb25zdCBtYWtlUGF0aFN0cmluZyA9IChwYXRoOiBSZWFkb25seUFycmF5PHN0cmluZz4pOiBzdHJpbmcgPT5cbiAgICBwaXBlKHBhdGgsIEFycmF5LmpvaW4ocGF0aERlbGltKSk7XG4gIGNvbnN0IHVubWFrZVBhdGhTdHJpbmcgPSAocGF0aFN0cmluZzogc3RyaW5nKTogUmVhZG9ubHlBcnJheTxzdHJpbmc+ID0+XG4gICAgcGF0aFN0cmluZy5zcGxpdChwYXRoRGVsaW0pO1xuXG4gIGNvbnN0IGxvYWQgPSA8QT4oXG4gICAgcGF0aDogUmVhZG9ubHlBcnJheTxzdHJpbmc+LFxuICAgIHByaW1pdGl2ZTogQ29uZmlnLkNvbmZpZy5QcmltaXRpdmU8QT4sXG4gICk6IEVmZmVjdC5FZmZlY3Q8QXJyYXk8QT4sIENvbmZpZ0Vycm9yLkNvbmZpZ0Vycm9yPiA9PiB7XG4gICAgY29uc3QgcGF0aFN0cmluZyA9IG1ha2VQYXRoU3RyaW5nKHBhdGgpO1xuICAgIHJldHVybiBTU01TZXJ2aWNlLmdldFBhcmFtZXRlcih7XG4gICAgICBOYW1lOiBwYXRoU3RyaW5nLFxuICAgICAgV2l0aERlY3J5cHRpb246IHRydWUsXG4gICAgfSkucGlwZShcbiAgICAgIEVmZmVjdC5mbGF0TWFwKCh2YWx1ZSkgPT4gT3B0aW9uLmZyb21OdWxsYWJsZSh2YWx1ZS5QYXJhbWV0ZXI/LlZhbHVlKSksXG4gICAgICBFZmZlY3QuY2F0Y2hUYWcoXCJQYXJhbWV0ZXJOb3RGb3VuZFwiLCAoKSA9PlxuICAgICAgICBFZmZlY3QuZmFpbChcbiAgICAgICAgICBDb25maWdFcnJvci5NaXNzaW5nRGF0YShcbiAgICAgICAgICAgIHBhdGggYXMgQXJyYXk8c3RyaW5nPixcbiAgICAgICAgICAgIGBFeHBlY3RlZCAke3BhdGhTdHJpbmd9IHBhcmFtZXRlciB0byBleGlzdCBpbiBBV1MgU3lzdGVtcyBNYW5hZ2VyIFBhcmFtZXRlciBTdG9yZWAsXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgICBFZmZlY3QuY2F0Y2hUYWcoXCJQYXJhbWV0ZXJWZXJzaW9uTm90Rm91bmRcIiwgKCkgPT5cbiAgICAgICAgRWZmZWN0LmZhaWwoXG4gICAgICAgICAgQ29uZmlnRXJyb3IuTWlzc2luZ0RhdGEoXG4gICAgICAgICAgICBwYXRoIGFzIEFycmF5PHN0cmluZz4sXG4gICAgICAgICAgICBgRXhwZWN0ZWQgJHtwYXRoU3RyaW5nfSBwYXJhbWV0ZXIgdmVyc2lvbiB0byBleGlzdCBpbiBBV1MgU3lzdGVtcyBNYW5hZ2VyIFBhcmFtZXRlciBTdG9yZWAsXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgICBFZmZlY3QuY2F0Y2hUYWcoXCJOb1N1Y2hFbGVtZW50RXhjZXB0aW9uXCIsICgpID0+XG4gICAgICAgIEVmZmVjdC5mYWlsKFxuICAgICAgICAgIENvbmZpZ0Vycm9yLk1pc3NpbmdEYXRhKFxuICAgICAgICAgICAgcGF0aCBhcyBBcnJheTxzdHJpbmc+LFxuICAgICAgICAgICAgYEV4cGVjdGVkICR7cGF0aFN0cmluZ30gdG8gZXhpc3QgaW4gQVdTIFN5c3RlbXMgTWFuYWdlciBQYXJhbWV0ZXIgU3RvcmVgLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICAgRWZmZWN0LmNhdGNoVGFnKFwiSW52YWxpZEtleUlkXCIsICgpID0+XG4gICAgICAgIEVmZmVjdC5mYWlsKFxuICAgICAgICAgIENvbmZpZ0Vycm9yLkludmFsaWREYXRhKFxuICAgICAgICAgICAgcGF0aCBhcyBBcnJheTxzdHJpbmc+LFxuICAgICAgICAgICAgXCJJbnZhbGlkIGtleSBJRCB3aGVuIHJldHJpZXZpbmcgY29uZmlndXJhdGlvbiBmcm9tIEFXUyBTeXN0ZW1zIE1hbmFnZXIgUGFyYW1ldGVyIFN0b3JlXCIsXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgICBFZmZlY3QuY2F0Y2hBbGxDYXVzZSgoY2F1c2UpID0+XG4gICAgICAgIENhdXNlLmlzRmFpbFR5cGUoY2F1c2UpICYmIENvbmZpZ0Vycm9yLmlzQ29uZmlnRXJyb3IoY2F1c2UuZXJyb3IpXG4gICAgICAgICAgPyBFZmZlY3QuZmFpbChjYXVzZS5lcnJvcilcbiAgICAgICAgICA6IEVmZmVjdC5mYWlsKFxuICAgICAgICAgICAgICBDb25maWdFcnJvci5Tb3VyY2VVbmF2YWlsYWJsZShcbiAgICAgICAgICAgICAgICBwYXRoIGFzIEFycmF5PHN0cmluZz4sXG4gICAgICAgICAgICAgICAgXCJGYWlsZWQgdG8gbG9hZCBjb25maWd1cmF0aW9uIGZyb20gQVdTIFN5c3RlbXMgTWFuYWdlciBQYXJhbWV0ZXIgU3RvcmVcIixcbiAgICAgICAgICAgICAgICBjYXVzZSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICksXG4gICAgICApLFxuICAgICAgRWZmZWN0LmZsYXRNYXAoKHZhbHVlKSA9PlxuICAgICAgICBwaXBlKFxuICAgICAgICAgIHByaW1pdGl2ZS5wYXJzZSh2YWx1ZSksXG4gICAgICAgICAgRWZmZWN0Lm1hcEJvdGgoe1xuICAgICAgICAgICAgb25GYWlsdXJlOiBDb25maWdFcnJvci5wcmVmaXhlZChwYXRoIGFzIEFycmF5PHN0cmluZz4pLFxuICAgICAgICAgICAgb25TdWNjZXNzOiBBcnJheS5vZixcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgICBFZmZlY3QucHJvdmlkZShzZXJ2aWNlTGF5ZXIpLFxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgZW51bWVyYXRlQ2hpbGRyZW4gPSAoXG4gICAgcGF0aDogUmVhZG9ubHlBcnJheTxzdHJpbmc+LFxuICApOiBFZmZlY3QuRWZmZWN0PEhhc2hTZXQuSGFzaFNldDxzdHJpbmc+LCBDb25maWdFcnJvci5Db25maWdFcnJvcj4gPT5cbiAgICBTU01TZXJ2aWNlLmRlc2NyaWJlUGFyYW1ldGVycyh7fSkucGlwZShcbiAgICAgIEVmZmVjdC5mbGF0TWFwKChwYXJhbXMpID0+IE9wdGlvbi5mcm9tTnVsbGFibGUocGFyYW1zLlBhcmFtZXRlcnMpKSxcbiAgICAgIEVmZmVjdC5tYXAoQXJyYXkubWFwKChwYXJhbSkgPT4gT3B0aW9uLmZyb21OdWxsYWJsZShwYXJhbS5OYW1lKSkpLFxuICAgICAgRWZmZWN0LmZsYXRNYXAoT3B0aW9uLmFsbCksXG4gICAgICBFZmZlY3Qub3JEaWUsXG4gICAgICBFZmZlY3QubWFwKChrZXlzKSA9PiB7XG4gICAgICAgIGNvbnN0IGtleVBhdGhzID0ga2V5cy5tYXAodW5tYWtlUGF0aFN0cmluZyk7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkS2V5UGF0aHMgPSBrZXlQYXRoc1xuICAgICAgICAgIC5maWx0ZXIoKGtleVBhdGgpID0+IHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0aC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICBjb25zdCBwYXRoQ29tcG9uZW50ID0gcGlwZShwYXRoLCBBcnJheS51bnNhZmVHZXQoaSkpO1xuICAgICAgICAgICAgICBjb25zdCBjdXJyZW50RWxlbWVudCA9IGtleVBhdGhbaV07XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBjdXJyZW50RWxlbWVudCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAgICAgcGF0aENvbXBvbmVudCAhPT0gY3VycmVudEVsZW1lbnRcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5mbGF0TWFwKChrZXlQYXRoKSA9PiBrZXlQYXRoLnNsaWNlKHBhdGgubGVuZ3RoLCBwYXRoLmxlbmd0aCArIDEpKTtcbiAgICAgICAgcmV0dXJuIEhhc2hTZXQuZnJvbUl0ZXJhYmxlKGZpbHRlcmVkS2V5UGF0aHMpO1xuICAgICAgfSksXG4gICAgICBFZmZlY3QucHJvdmlkZShzZXJ2aWNlTGF5ZXIpLFxuICAgICk7XG5cbiAgcmV0dXJuIENvbmZpZ1Byb3ZpZGVyLmZyb21GbGF0KFxuICAgIENvbmZpZ1Byb3ZpZGVyLm1ha2VGbGF0KHtcbiAgICAgIGxvYWQsXG4gICAgICBlbnVtZXJhdGVDaGlsZHJlbixcbiAgICAgIHBhdGNoOiBDb25maWdQcm92aWRlclBhdGhQYXRjaC5lbXB0eSxcbiAgICB9KSxcbiAgKTtcbn07XG4iXX0=
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @since 1.0.0
|
|
3
|
-
*/
|
|
4
|
-
import { DefaultSSMServiceLayer, SSMService } from "@effect-aws/client-ssm";
|
|
5
|
-
import { Array, Cause, ConfigError, ConfigProvider, ConfigProviderPathPatch, Effect, HashSet, Option, pipe, } from "effect";
|
|
6
|
-
/**
|
|
7
|
-
* A config provider that loads configuration from AWS Systems Manager Parameter Store.
|
|
8
|
-
*
|
|
9
|
-
* @since 1.0.0
|
|
10
|
-
* @category constructors
|
|
11
|
-
*/
|
|
12
|
-
export const fromParameterStore = (config) => {
|
|
13
|
-
const { pathDelim, serviceLayer } = Object.assign({}, { pathDelim: "_", serviceLayer: DefaultSSMServiceLayer }, config);
|
|
14
|
-
const makePathString = (path) => pipe(path, Array.join(pathDelim));
|
|
15
|
-
const unmakePathString = (pathString) => pathString.split(pathDelim);
|
|
16
|
-
const load = (path, primitive) => {
|
|
17
|
-
const pathString = makePathString(path);
|
|
18
|
-
return SSMService.getParameter({
|
|
19
|
-
Name: pathString,
|
|
20
|
-
WithDecryption: true,
|
|
21
|
-
}).pipe(Effect.flatMap((value) => { var _a; return Option.fromNullable((_a = value.Parameter) === null || _a === void 0 ? void 0 : _a.Value); }), Effect.catchTag("ParameterNotFound", () => Effect.fail(ConfigError.MissingData(path, `Expected ${pathString} parameter to exist in AWS Systems Manager Parameter Store`))), Effect.catchTag("ParameterVersionNotFound", () => Effect.fail(ConfigError.MissingData(path, `Expected ${pathString} parameter version to exist in AWS Systems Manager Parameter Store`))), Effect.catchTag("NoSuchElementException", () => Effect.fail(ConfigError.MissingData(path, `Expected ${pathString} to exist in AWS Systems Manager Parameter Store`))), Effect.catchTag("InvalidKeyId", () => Effect.fail(ConfigError.InvalidData(path, "Invalid key ID when retrieving configuration from AWS Systems Manager Parameter Store"))), Effect.catchAllCause((cause) => Cause.isFailType(cause) && ConfigError.isConfigError(cause.error)
|
|
22
|
-
? Effect.fail(cause.error)
|
|
23
|
-
: Effect.fail(ConfigError.SourceUnavailable(path, "Failed to load configuration from AWS Systems Manager Parameter Store", cause))), Effect.flatMap((value) => pipe(primitive.parse(value), Effect.mapBoth({
|
|
24
|
-
onFailure: ConfigError.prefixed(path),
|
|
25
|
-
onSuccess: Array.of,
|
|
26
|
-
}))), Effect.provide(serviceLayer));
|
|
27
|
-
};
|
|
28
|
-
const enumerateChildren = (path) => SSMService.describeParameters({}).pipe(Effect.flatMap((params) => Option.fromNullable(params.Parameters)), Effect.map(Array.map((param) => Option.fromNullable(param.Name))), Effect.flatMap(Option.all), Effect.orDie, Effect.map((keys) => {
|
|
29
|
-
const keyPaths = keys.map(unmakePathString);
|
|
30
|
-
const filteredKeyPaths = keyPaths
|
|
31
|
-
.filter((keyPath) => {
|
|
32
|
-
for (let i = 0; i < path.length; i++) {
|
|
33
|
-
const pathComponent = pipe(path, Array.unsafeGet(i));
|
|
34
|
-
const currentElement = keyPath[i];
|
|
35
|
-
if (currentElement === undefined ||
|
|
36
|
-
pathComponent !== currentElement) {
|
|
37
|
-
return false;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return true;
|
|
41
|
-
})
|
|
42
|
-
.flatMap((keyPath) => keyPath.slice(path.length, path.length + 1));
|
|
43
|
-
return HashSet.fromIterable(filteredKeyPaths);
|
|
44
|
-
}), Effect.provide(serviceLayer));
|
|
45
|
-
return ConfigProvider.fromFlat(ConfigProvider.makeFlat({
|
|
46
|
-
load,
|
|
47
|
-
enumerateChildren,
|
|
48
|
-
patch: ConfigProviderPathPatch.empty,
|
|
49
|
-
}));
|
|
50
|
-
};
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlnUHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQ29uZmlnUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUUsT0FBTyxFQUNMLEtBQUssRUFDTCxLQUFLLEVBRUwsV0FBVyxFQUNYLGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIsTUFBTSxFQUNOLE9BQU8sRUFFUCxNQUFNLEVBQ04sSUFBSSxHQUNMLE1BQU0sUUFBUSxDQUFDO0FBRWhCOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxNQUdsQyxFQUFpQyxFQUFFO0lBQ2xDLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FDL0MsRUFBRSxFQUNGLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsc0JBQXNCLEVBQUUsRUFDeEQsTUFBTSxDQUNQLENBQUM7SUFDRixNQUFNLGNBQWMsR0FBRyxDQUFDLElBQTJCLEVBQVUsRUFBRSxDQUM3RCxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNwQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsVUFBa0IsRUFBeUIsRUFBRSxDQUNyRSxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTlCLE1BQU0sSUFBSSxHQUFHLENBQ1gsSUFBMkIsRUFDM0IsU0FBcUMsRUFDYSxFQUFFO1FBQ3BELE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxPQUFPLFVBQVUsQ0FBQyxZQUFZLENBQUM7WUFDN0IsSUFBSSxFQUFFLFVBQVU7WUFDaEIsY0FBYyxFQUFFLElBQUk7U0FDckIsQ0FBQyxDQUFD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QUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3JDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyRCxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xDLElBQ0UsY0FBYyxLQUFLLFNBQVM7b0JBQzVCLGFBQWEsS0FBSyxjQUFjLEVBQ2hDLENBQUM7b0JBQ0QsT0FBTyxLQUFLLENBQUM7Z0JBQ2YsQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQzthQUNELE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyRSxPQUFPLE9BQU8sQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNoRCxDQUFDLENBQUMsRUFDRixNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUM3QixDQUFDO0lBRUosT0FBTyxjQUFjLENBQUMsUUFBUSxDQUM1QixjQUFjLENBQUMsUUFBUSxDQUFDO1FBQ3RCLElBQUk7UUFDSixpQkFBaUI7UUFDakIsS0FBSyxFQUFFLHVCQUF1QixDQUFDLEtBQUs7S0FDckMsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5pbXBvcnQgeyBEZWZhdWx0U1NNU2VydmljZUxheWVyLCBTU01TZXJ2aWNlIH0gZnJvbSBcIkBlZmZlY3QtYXdzL2NsaWVudC1zc21cIjtcbmltcG9ydCB7XG4gIEFycmF5LFxuICBDYXVzZSxcbiAgQ29uZmlnLFxuICBDb25maWdFcnJvcixcbiAgQ29uZmlnUHJvdmlkZXIsXG4gIENvbmZpZ1Byb3ZpZGVyUGF0aFBhdGNoLFxuICBFZmZlY3QsXG4gIEhhc2hTZXQsXG4gIExheWVyLFxuICBPcHRpb24sXG4gIHBpcGUsXG59IGZyb20gXCJlZmZlY3RcIjtcblxuLyoqXG4gKiBBIGNvbmZpZyBwcm92aWRlciB0aGF0IGxvYWRzIGNvbmZpZ3VyYXRpb24gZnJvbSBBV1MgU3lzdGVtcyBNYW5hZ2VyIFBhcmFtZXRlciBTdG9yZS5cbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IGZyb21QYXJhbWV0ZXJTdG9yZSA9IChjb25maWc/OiB7XG4gIHBhdGhEZWxpbT86IHN0cmluZztcbiAgc2VydmljZUxheWVyPzogTGF5ZXIuTGF5ZXI8U1NNU2VydmljZSwgbmV2ZXIsIG5ldmVyPjtcbn0pOiBDb25maWdQcm92aWRlci5Db25maWdQcm92aWRlciA9PiB7XG4gIGNvbnN0IHsgcGF0aERlbGltLCBzZXJ2aWNlTGF5ZXIgfSA9IE9iamVjdC5hc3NpZ24oXG4gICAge30sXG4gICAgeyBwYXRoRGVsaW06IFwiX1wiLCBzZXJ2aWNlTGF5ZXI6IERlZmF1bHRTU01TZXJ2aWNlTGF5ZXIgfSxcbiAgICBjb25maWcsXG4gICk7XG4gIGNvbnN0IG1ha2VQYXRoU3RyaW5nID0gKHBhdGg6IFJlYWRvbmx5QXJyYXk8c3RyaW5nPik6IHN0cmluZyA9PlxuICAgIHBpcGUocGF0aCwgQXJyYXkuam9pbihwYXRoRGVsaW0pKTtcbiAgY29uc3QgdW5tYWtlUGF0aFN0cmluZyA9IChwYXRoU3RyaW5nOiBzdHJpbmcpOiBSZWFkb25seUFycmF5PHN0cmluZz4gPT5cbiAgICBwYXRoU3RyaW5nLnNwbGl0KHBhdGhEZWxpbSk7XG5cbiAgY29uc3QgbG9hZCA9IDxBPihcbiAgICBwYXRoOiBSZWFkb25seUFycmF5PHN0cmluZz4sXG4gICAgcHJpbWl0aXZlOiBDb25maWcuQ29uZmlnLlByaW1pdGl2ZTxBPixcbiAgKTogRWZmZWN0LkVmZmVjdDxBcnJheTxBPiwgQ29uZmlnRXJyb3IuQ29uZmlnRXJyb3I+ID0+IHtcbiAgICBjb25zdCBwYXRoU3RyaW5nID0gbWFrZVBhdGhTdHJpbmcocGF0aCk7XG4gICAgcmV0dXJuIFNTTVNlcnZpY2UuZ2V0UGFyYW1ldGVyKHtcbiAgICAgIE5hbWU6IHBhdGhTdHJpbmcsXG4gICAgICBXaXRoRGVjcnlwdGlvbjogdHJ1ZSxcbiAgICB9KS5waXBlKFxuICAgICAgRWZmZWN0LmZsYXRNYXAoKHZhbHVlKSA9PiBPcHRpb24uZnJvbU51bGxhYmxlKHZhbHVlLlBhcmFtZXRlcj8uVmFsdWUpKSxcbiAgICAgIEVmZmVjdC5jYXRjaFRhZyhcIlBhcmFtZXRlck5vdEZvdW5kXCIsICgpID0+XG4gICAgICAgIEVmZmVjdC5mYWlsKFxuICAgICAgICAgIENvbmZpZ0Vycm9yLk1pc3NpbmdEYXRhKFxuICAgICAgICAgICAgcGF0aCBhcyBBcnJheTxzdHJpbmc+LFxuICAgICAgICAgICAgYEV4cGVjdGVkICR7cGF0aFN0cmluZ30gcGFyYW1ldGVyIHRvIGV4aXN0IGluIEFXUyBTeXN0ZW1zIE1hbmFnZXIgUGFyYW1ldGVyIFN0b3JlYCxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICAgIEVmZmVjdC5jYXRjaFRhZyhcIlBhcmFtZXRlclZlcnNpb25Ob3RGb3VuZFwiLCAoKSA9PlxuICAgICAgICBFZmZlY3QuZmFpbChcbiAgICAgICAgICBDb25maWdFcnJvci5NaXNzaW5nRGF0YShcbiAgICAgICAgICAgIHBhdGggYXMgQXJyYXk8c3RyaW5nPixcbiAgICAgICAgICAgIGBFeHBlY3RlZCAke3BhdGhTdHJpbmd9IHBhcmFtZXRlciB2ZXJzaW9uIHRvIGV4aXN0IGluIEFXUyBTeXN0ZW1zIE1hbmFnZXIgUGFyYW1ldGVyIFN0b3JlYCxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICAgIEVmZmVjdC5jYXRjaFRhZyhcIk5vU3VjaEVsZW1lbnRFeGNlcHRpb25cIiwgKCkgPT5cbiAgICAgICAgRWZmZWN0LmZhaWwoXG4gICAgICAgICAgQ29uZmlnRXJyb3IuTWlzc2luZ0RhdGEoXG4gICAgICAgICAgICBwYXRoIGFzIEFycmF5PHN0cmluZz4sXG4gICAgICAgICAgICBgRXhwZWN0ZWQgJHtwYXRoU3RyaW5nfSB0byBleGlzdCBpbiBBV1MgU3lzdGVtcyBNYW5hZ2VyIFBhcmFtZXRlciBTdG9yZWAsXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgICBFZmZlY3QuY2F0Y2hUYWcoXCJJbnZhbGlkS2V5SWRcIiwgKCkgPT5cbiAgICAgICAgRWZmZWN0LmZhaWwoXG4gICAgICAgICAgQ29uZmlnRXJyb3IuSW52YWxpZERhdGEoXG4gICAgICAgICAgICBwYXRoIGFzIEFycmF5PHN0cmluZz4sXG4gICAgICAgICAgICBcIkludmFsaWQga2V5IElEIHdoZW4gcmV0cmlldmluZyBjb25maWd1cmF0aW9uIGZyb20gQVdTIFN5c3RlbXMgTWFuYWdlciBQYXJhbWV0ZXIgU3RvcmVcIixcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICAgIEVmZmVjdC5jYXRjaEFsbENhdXNlKChjYXVzZSkgPT5cbiAgICAgICAgQ2F1c2UuaXNGYWlsVHlwZShjYXVzZSkgJiYgQ29uZmlnRXJyb3IuaXNDb25maWdFcnJvcihjYXVzZS5lcnJvcilcbiAgICAgICAgICA/IEVmZmVjdC5mYWlsKGNhdXNlLmVycm9yKVxuICAgICAgICAgIDogRWZmZWN0LmZhaWwoXG4gICAgICAgICAgICAgIENvbmZpZ0Vycm9yLlNvdXJjZVVuYXZhaWxhYmxlKFxuICAgICAgICAgICAgICAgIHBhdGggYXMgQXJyYXk8c3RyaW5nPixcbiAgICAgICAgICAgICAgICBcIkZhaWxlZCB0byBsb2FkIGNvbmZpZ3VyYXRpb24gZnJvbSBBV1MgU3lzdGVtcyBNYW5hZ2VyIFBhcmFtZXRlciBTdG9yZVwiLFxuICAgICAgICAgICAgICAgIGNhdXNlLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKSxcbiAgICAgICksXG4gICAgICBFZmZlY3QuZmxhdE1hcCgodmFsdWUpID0+XG4gICAgICAgIHBpcGUoXG4gICAgICAgICAgcHJpbWl0aXZlLnBhcnNlKHZhbHVlKSxcbiAgICAgICAgICBFZmZlY3QubWFwQm90aCh7XG4gICAgICAgICAgICBvbkZhaWx1cmU6IENvbmZpZ0Vycm9yLnByZWZpeGVkKHBhdGggYXMgQXJyYXk8c3RyaW5nPiksXG4gICAgICAgICAgICBvblN1Y2Nlc3M6IEFycmF5Lm9mLFxuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICAgIEVmZmVjdC5wcm92aWRlKHNlcnZpY2VMYXllciksXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBlbnVtZXJhdGVDaGlsZHJlbiA9IChcbiAgICBwYXRoOiBSZWFkb25seUFycmF5PHN0cmluZz4sXG4gICk6IEVmZmVjdC5FZmZlY3Q8SGFzaFNldC5IYXNoU2V0PHN0cmluZz4sIENvbmZpZ0Vycm9yLkNvbmZpZ0Vycm9yPiA9PlxuICAgIFNTTVNlcnZpY2UuZGVzY3JpYmVQYXJhbWV0ZXJzKHt9KS5waXBlKFxuICAgICAgRWZmZWN0LmZsYXRNYXAoKHBhcmFtcykgPT4gT3B0aW9uLmZyb21OdWxsYWJsZShwYXJhbXMuUGFyYW1ldGVycykpLFxuICAgICAgRWZmZWN0Lm1hcChBcnJheS5tYXAoKHBhcmFtKSA9PiBPcHRpb24uZnJvbU51bGxhYmxlKHBhcmFtLk5hbWUpKSksXG4gICAgICBFZmZlY3QuZmxhdE1hcChPcHRpb24uYWxsKSxcbiAgICAgIEVmZmVjdC5vckRpZSxcbiAgICAgIEVmZmVjdC5tYXAoKGtleXMpID0+IHtcbiAgICAgICAgY29uc3Qga2V5UGF0aHMgPSBrZXlzLm1hcCh1bm1ha2VQYXRoU3RyaW5nKTtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRLZXlQYXRocyA9IGtleVBhdGhzXG4gICAgICAgICAgLmZpbHRlcigoa2V5UGF0aCkgPT4ge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXRoLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHBhdGhDb21wb25lbnQgPSBwaXBlKHBhdGgsIEFycmF5LnVuc2FmZUdldChpKSk7XG4gICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0ga2V5UGF0aFtpXTtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGN1cnJlbnRFbGVtZW50ID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgICAgICBwYXRoQ29tcG9uZW50ICE9PSBjdXJyZW50RWxlbWVudFxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmZsYXRNYXAoKGtleVBhdGgpID0+IGtleVBhdGguc2xpY2UocGF0aC5sZW5ndGgsIHBhdGgubGVuZ3RoICsgMSkpO1xuICAgICAgICByZXR1cm4gSGFzaFNldC5mcm9tSXRlcmFibGUoZmlsdGVyZWRLZXlQYXRocyk7XG4gICAgICB9KSxcbiAgICAgIEVmZmVjdC5wcm92aWRlKHNlcnZpY2VMYXllciksXG4gICAgKTtcblxuICByZXR1cm4gQ29uZmlnUHJvdmlkZXIuZnJvbUZsYXQoXG4gICAgQ29uZmlnUHJvdmlkZXIubWFrZUZsYXQoe1xuICAgICAgbG9hZCxcbiAgICAgIGVudW1lcmF0ZUNoaWxkcmVuLFxuICAgICAgcGF0Y2g6IENvbmZpZ1Byb3ZpZGVyUGF0aFBhdGNoLmVtcHR5LFxuICAgIH0pLFxuICApO1xufTtcbiJdfQ==
|
package/lib/esm/index.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from "./ConfigProvider";
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL0NvbmZpZ1Byb3ZpZGVyXCI7XG4iXX0=
|
package/lib/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./ConfigProvider";
|
package/project.json
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@effect-aws/ssm",
|
|
3
|
-
"root": "packages/ssm",
|
|
4
|
-
"targets": {
|
|
5
|
-
"default": {
|
|
6
|
-
"executor": "nx:run-commands",
|
|
7
|
-
"options": {
|
|
8
|
-
"command": "pnpm exec projen default",
|
|
9
|
-
"cwd": "packages/ssm"
|
|
10
|
-
}
|
|
11
|
-
},
|
|
12
|
-
"pre-compile": {
|
|
13
|
-
"executor": "nx:run-commands",
|
|
14
|
-
"options": {
|
|
15
|
-
"command": "pnpm exec projen pre-compile",
|
|
16
|
-
"cwd": "packages/ssm"
|
|
17
|
-
}
|
|
18
|
-
},
|
|
19
|
-
"compile": {
|
|
20
|
-
"executor": "nx:run-commands",
|
|
21
|
-
"options": {
|
|
22
|
-
"command": "pnpm exec projen compile",
|
|
23
|
-
"cwd": "packages/ssm"
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
|
-
"post-compile": {
|
|
27
|
-
"executor": "nx:run-commands",
|
|
28
|
-
"options": {
|
|
29
|
-
"command": "pnpm exec projen post-compile",
|
|
30
|
-
"cwd": "packages/ssm"
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
|
-
"test": {
|
|
34
|
-
"executor": "nx:run-commands",
|
|
35
|
-
"options": {
|
|
36
|
-
"command": "pnpm exec projen test",
|
|
37
|
-
"cwd": "packages/ssm"
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
"package": {
|
|
41
|
-
"executor": "nx:run-commands",
|
|
42
|
-
"options": {
|
|
43
|
-
"command": "pnpm exec projen package",
|
|
44
|
-
"cwd": "packages/ssm"
|
|
45
|
-
}
|
|
46
|
-
},
|
|
47
|
-
"build": {
|
|
48
|
-
"executor": "nx:run-commands",
|
|
49
|
-
"options": {
|
|
50
|
-
"command": "pnpm exec projen build",
|
|
51
|
-
"cwd": "packages/ssm"
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
|
-
"watch": {
|
|
55
|
-
"executor": "nx:run-commands",
|
|
56
|
-
"options": {
|
|
57
|
-
"command": "pnpm exec projen watch",
|
|
58
|
-
"cwd": "packages/ssm"
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
"eslint": {
|
|
62
|
-
"executor": "nx:run-commands",
|
|
63
|
-
"options": {
|
|
64
|
-
"command": "pnpm exec projen eslint",
|
|
65
|
-
"cwd": "packages/ssm"
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
|
-
"test:watch": {
|
|
69
|
-
"executor": "nx:run-commands",
|
|
70
|
-
"options": {
|
|
71
|
-
"command": "pnpm exec projen test:watch",
|
|
72
|
-
"cwd": "packages/ssm"
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
},
|
|
76
|
-
"implicitDependencies": [
|
|
77
|
-
"@effect-aws/client-ssm"
|
|
78
|
-
],
|
|
79
|
-
"//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"."
|
|
80
|
-
}
|
package/vitest.config.ts
DELETED