@composurecdk/events 0.7.0 → 0.8.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/dist/commonjs/defaults.d.ts.map +1 -0
- package/dist/commonjs/defaults.js +14 -0
- package/dist/commonjs/defaults.js.map +1 -0
- package/dist/commonjs/index.d.ts.map +1 -0
- package/dist/commonjs/index.js +22 -0
- package/dist/commonjs/index.js.map +1 -0
- package/dist/commonjs/package.json +3 -0
- package/dist/commonjs/rule-alarm-config.d.ts.map +1 -0
- package/dist/commonjs/rule-alarm-config.js +3 -0
- package/dist/commonjs/rule-alarm-config.js.map +1 -0
- package/dist/commonjs/rule-alarm-defaults.d.ts.map +1 -0
- package/dist/commonjs/rule-alarm-defaults.js +41 -0
- package/dist/commonjs/rule-alarm-defaults.js.map +1 -0
- package/dist/commonjs/rule-alarms.d.ts.map +1 -0
- package/dist/commonjs/rule-alarms.js +111 -0
- package/dist/commonjs/rule-alarms.js.map +1 -0
- package/dist/commonjs/rule-builder.d.ts.map +1 -0
- package/dist/commonjs/rule-builder.js +96 -0
- package/dist/commonjs/rule-builder.js.map +1 -0
- package/dist/commonjs/targets/cloud-watch-log-group-target.d.ts.map +1 -0
- package/dist/commonjs/targets/cloud-watch-log-group-target.js +22 -0
- package/dist/commonjs/targets/cloud-watch-log-group-target.js.map +1 -0
- package/dist/commonjs/targets/event-bus-target.d.ts.map +1 -0
- package/dist/commonjs/targets/event-bus-target.js +22 -0
- package/dist/commonjs/targets/event-bus-target.js.map +1 -0
- package/dist/commonjs/targets/lambda-target.d.ts.map +1 -0
- package/dist/commonjs/targets/lambda-target.js +36 -0
- package/dist/commonjs/targets/lambda-target.js.map +1 -0
- package/dist/commonjs/targets/sfn-state-machine-target.d.ts.map +1 -0
- package/dist/commonjs/targets/sfn-state-machine-target.js +22 -0
- package/dist/commonjs/targets/sfn-state-machine-target.js.map +1 -0
- package/dist/commonjs/targets/sns-target.d.ts.map +1 -0
- package/dist/commonjs/targets/sns-target.js +22 -0
- package/dist/commonjs/targets/sns-target.js.map +1 -0
- package/dist/commonjs/targets/sqs-target.d.ts.map +1 -0
- package/dist/commonjs/targets/sqs-target.js +21 -0
- package/dist/commonjs/targets/sqs-target.js.map +1 -0
- package/dist/esm/defaults.d.ts +12 -0
- package/dist/esm/defaults.d.ts.map +1 -0
- package/dist/esm/defaults.js.map +1 -0
- package/dist/esm/index.d.ts +11 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/rule-alarm-config.d.ts +58 -0
- package/dist/esm/rule-alarm-config.d.ts.map +1 -0
- package/dist/esm/rule-alarm-config.js.map +1 -0
- package/dist/esm/rule-alarm-defaults.d.ts +16 -0
- package/dist/esm/rule-alarm-defaults.d.ts.map +1 -0
- package/dist/esm/rule-alarm-defaults.js.map +1 -0
- package/dist/esm/rule-alarms.d.ts +28 -0
- package/dist/esm/rule-alarms.d.ts.map +1 -0
- package/dist/esm/rule-alarms.js.map +1 -0
- package/dist/esm/rule-builder.d.ts +143 -0
- package/dist/esm/rule-builder.d.ts.map +1 -0
- package/dist/esm/rule-builder.js.map +1 -0
- package/dist/esm/targets/cloud-watch-log-group-target.d.ts +16 -0
- package/dist/esm/targets/cloud-watch-log-group-target.d.ts.map +1 -0
- package/dist/esm/targets/cloud-watch-log-group-target.js.map +1 -0
- package/dist/esm/targets/event-bus-target.d.ts +16 -0
- package/dist/esm/targets/event-bus-target.d.ts.map +1 -0
- package/dist/esm/targets/event-bus-target.js.map +1 -0
- package/dist/esm/targets/lambda-target.d.ts +31 -0
- package/dist/esm/targets/lambda-target.d.ts.map +1 -0
- package/dist/esm/targets/lambda-target.js.map +1 -0
- package/dist/esm/targets/sfn-state-machine-target.d.ts +16 -0
- package/dist/esm/targets/sfn-state-machine-target.d.ts.map +1 -0
- package/dist/esm/targets/sfn-state-machine-target.js.map +1 -0
- package/dist/esm/targets/sns-target.d.ts +17 -0
- package/dist/esm/targets/sns-target.d.ts.map +1 -0
- package/dist/esm/targets/sns-target.js.map +1 -0
- package/dist/esm/targets/sqs-target.d.ts +16 -0
- package/dist/esm/targets/sqs-target.d.ts.map +1 -0
- package/dist/esm/targets/sqs-target.js.map +1 -0
- package/package.json +35 -17
- package/dist/defaults.d.ts.map +0 -1
- package/dist/defaults.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/rule-alarm-config.d.ts.map +0 -1
- package/dist/rule-alarm-config.js.map +0 -1
- package/dist/rule-alarm-defaults.d.ts.map +0 -1
- package/dist/rule-alarm-defaults.js.map +0 -1
- package/dist/rule-alarms.d.ts.map +0 -1
- package/dist/rule-alarms.js.map +0 -1
- package/dist/rule-builder.d.ts.map +0 -1
- package/dist/rule-builder.js.map +0 -1
- package/dist/targets/cloud-watch-log-group-target.d.ts.map +0 -1
- package/dist/targets/cloud-watch-log-group-target.js.map +0 -1
- package/dist/targets/event-bus-target.d.ts.map +0 -1
- package/dist/targets/event-bus-target.js.map +0 -1
- package/dist/targets/lambda-target.d.ts.map +0 -1
- package/dist/targets/lambda-target.js.map +0 -1
- package/dist/targets/sfn-state-machine-target.d.ts.map +0 -1
- package/dist/targets/sfn-state-machine-target.js.map +0 -1
- package/dist/targets/sns-target.d.ts.map +0 -1
- package/dist/targets/sns-target.js.map +0 -1
- package/dist/targets/sqs-target.d.ts.map +0 -1
- package/dist/targets/sqs-target.js.map +0 -1
- /package/dist/{defaults.d.ts → commonjs/defaults.d.ts} +0 -0
- /package/dist/{index.d.ts → commonjs/index.d.ts} +0 -0
- /package/dist/{rule-alarm-config.d.ts → commonjs/rule-alarm-config.d.ts} +0 -0
- /package/dist/{rule-alarm-defaults.d.ts → commonjs/rule-alarm-defaults.d.ts} +0 -0
- /package/dist/{rule-alarms.d.ts → commonjs/rule-alarms.d.ts} +0 -0
- /package/dist/{rule-builder.d.ts → commonjs/rule-builder.d.ts} +0 -0
- /package/dist/{targets → commonjs/targets}/cloud-watch-log-group-target.d.ts +0 -0
- /package/dist/{targets → commonjs/targets}/event-bus-target.d.ts +0 -0
- /package/dist/{targets → commonjs/targets}/lambda-target.d.ts +0 -0
- /package/dist/{targets → commonjs/targets}/sfn-state-machine-target.d.ts +0 -0
- /package/dist/{targets → commonjs/targets}/sns-target.d.ts +0 -0
- /package/dist/{targets → commonjs/targets}/sqs-target.d.ts +0 -0
- /package/dist/{defaults.js → esm/defaults.js} +0 -0
- /package/dist/{index.js → esm/index.js} +0 -0
- /package/dist/{rule-alarm-config.js → esm/rule-alarm-config.js} +0 -0
- /package/dist/{rule-alarm-defaults.js → esm/rule-alarm-defaults.js} +0 -0
- /package/dist/{rule-alarms.js → esm/rule-alarms.js} +0 -0
- /package/dist/{rule-builder.js → esm/rule-builder.js} +0 -0
- /package/dist/{targets → esm/targets}/cloud-watch-log-group-target.js +0 -0
- /package/dist/{targets → esm/targets}/event-bus-target.js +0 -0
- /package/dist/{targets → esm/targets}/lambda-target.js +0 -0
- /package/dist/{targets → esm/targets}/sfn-state-machine-target.js +0 -0
- /package/dist/{targets → esm/targets}/sns-target.js +0 -0
- /package/dist/{targets → esm/targets}/sqs-target.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,EAAE,OAAO,CAAC,SAAS,CAAM,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RULE_DEFAULTS = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Defaults applied to every EventBridge rule built with
|
|
6
|
+
* {@link createRuleBuilder}.
|
|
7
|
+
*
|
|
8
|
+
* Intentionally empty: the L2 {@link RuleProps} defaults already align with
|
|
9
|
+
* AWS recommendations (`enabled: true`, default account event bus). No
|
|
10
|
+
* additional secure default exists at this layer — DLQs are caller-owned and
|
|
11
|
+
* configured per target, not on the rule itself.
|
|
12
|
+
*/
|
|
13
|
+
exports.RULE_DEFAULTS = {};
|
|
14
|
+
//# sourceMappingURL=defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/defaults.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;GAQG;AACU,QAAA,aAAa,GAAuB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cloudWatchLogGroupTarget = exports.eventBusTarget = exports.sfnStateMachineTarget = exports.snsTarget = exports.sqsTarget = exports.lambdaTarget = exports.RULE_ALARM_DEFAULTS = exports.RULE_DEFAULTS = exports.createRuleBuilder = void 0;
|
|
4
|
+
var rule_builder_js_1 = require("./rule-builder.js");
|
|
5
|
+
Object.defineProperty(exports, "createRuleBuilder", { enumerable: true, get: function () { return rule_builder_js_1.createRuleBuilder; } });
|
|
6
|
+
var defaults_js_1 = require("./defaults.js");
|
|
7
|
+
Object.defineProperty(exports, "RULE_DEFAULTS", { enumerable: true, get: function () { return defaults_js_1.RULE_DEFAULTS; } });
|
|
8
|
+
var rule_alarm_defaults_js_1 = require("./rule-alarm-defaults.js");
|
|
9
|
+
Object.defineProperty(exports, "RULE_ALARM_DEFAULTS", { enumerable: true, get: function () { return rule_alarm_defaults_js_1.RULE_ALARM_DEFAULTS; } });
|
|
10
|
+
var lambda_target_js_1 = require("./targets/lambda-target.js");
|
|
11
|
+
Object.defineProperty(exports, "lambdaTarget", { enumerable: true, get: function () { return lambda_target_js_1.lambdaTarget; } });
|
|
12
|
+
var sqs_target_js_1 = require("./targets/sqs-target.js");
|
|
13
|
+
Object.defineProperty(exports, "sqsTarget", { enumerable: true, get: function () { return sqs_target_js_1.sqsTarget; } });
|
|
14
|
+
var sns_target_js_1 = require("./targets/sns-target.js");
|
|
15
|
+
Object.defineProperty(exports, "snsTarget", { enumerable: true, get: function () { return sns_target_js_1.snsTarget; } });
|
|
16
|
+
var sfn_state_machine_target_js_1 = require("./targets/sfn-state-machine-target.js");
|
|
17
|
+
Object.defineProperty(exports, "sfnStateMachineTarget", { enumerable: true, get: function () { return sfn_state_machine_target_js_1.sfnStateMachineTarget; } });
|
|
18
|
+
var event_bus_target_js_1 = require("./targets/event-bus-target.js");
|
|
19
|
+
Object.defineProperty(exports, "eventBusTarget", { enumerable: true, get: function () { return event_bus_target_js_1.eventBusTarget; } });
|
|
20
|
+
var cloud_watch_log_group_target_js_1 = require("./targets/cloud-watch-log-group-target.js");
|
|
21
|
+
Object.defineProperty(exports, "cloudWatchLogGroupTarget", { enumerable: true, get: function () { return cloud_watch_log_group_target_js_1.cloudWatchLogGroupTarget; } });
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,qDAK2B;AAJzB,oHAAA,iBAAiB,OAAA;AAKnB,6CAA8C;AAArC,4GAAA,aAAa,OAAA;AAEtB,mEAA+D;AAAtD,6HAAA,mBAAmB,OAAA;AAC5B,+DAA0D;AAAjD,gHAAA,YAAY,OAAA;AACrB,yDAAoD;AAA3C,0GAAA,SAAS,OAAA;AAClB,yDAAoD;AAA3C,0GAAA,SAAS,OAAA;AAClB,qFAA8E;AAArE,oIAAA,qBAAqB,OAAA;AAC9B,qEAA+D;AAAtD,qHAAA,cAAc,OAAA;AACvB,6FAAqF;AAA5E,2IAAA,wBAAwB,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-alarm-config.d.ts","sourceRoot":"","sources":["../../src/rule-alarm-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC;IAExC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC;IAErC;;;;;;;;;;OAUG;IACH,oBAAoB,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC;IAE3C;;;;;;;;OAQG;IACH,8BAA8B,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC;CACtD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-alarm-config.js","sourceRoot":"","sources":["../../src/rule-alarm-config.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-alarm-defaults.d.ts","sourceRoot":"","sources":["../../src/rule-alarm-defaults.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,UAAU,iBAAiB;IACzB,OAAO,EAAE,IAAI,CAAC;IACd,iBAAiB,EAAE,mBAAmB,CAAC;IACvC,cAAc,EAAE,mBAAmB,CAAC;IACpC,oBAAoB,EAAE,mBAAmB,CAAC;IAC1C,8BAA8B,EAAE,mBAAmB,CAAC;CACrD;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,iBAkCjC,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RULE_ALARM_DEFAULTS = void 0;
|
|
4
|
+
const aws_cloudwatch_1 = require("aws-cdk-lib/aws-cloudwatch");
|
|
5
|
+
/**
|
|
6
|
+
* AWS-recommended default alarm configuration for EventBridge rules.
|
|
7
|
+
*
|
|
8
|
+
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#EventBridge
|
|
9
|
+
*/
|
|
10
|
+
exports.RULE_ALARM_DEFAULTS = {
|
|
11
|
+
enabled: true,
|
|
12
|
+
/** Any failure to deliver a matched event is worth investigating; threshold 0. */
|
|
13
|
+
failedInvocations: {
|
|
14
|
+
threshold: 0,
|
|
15
|
+
evaluationPeriods: 1,
|
|
16
|
+
datapointsToAlarm: 1,
|
|
17
|
+
treatMissingData: aws_cloudwatch_1.TreatMissingData.NOT_BREACHING,
|
|
18
|
+
},
|
|
19
|
+
/** Any throttling indicates a quota or downstream-concurrency problem; threshold 0. */
|
|
20
|
+
throttledRules: {
|
|
21
|
+
threshold: 0,
|
|
22
|
+
evaluationPeriods: 1,
|
|
23
|
+
datapointsToAlarm: 1,
|
|
24
|
+
treatMissingData: aws_cloudwatch_1.TreatMissingData.NOT_BREACHING,
|
|
25
|
+
},
|
|
26
|
+
/** Any redrive to a target DLQ indicates a delivery failure worth investigating; threshold 0. */
|
|
27
|
+
invocationsSentToDlq: {
|
|
28
|
+
threshold: 0,
|
|
29
|
+
evaluationPeriods: 1,
|
|
30
|
+
datapointsToAlarm: 1,
|
|
31
|
+
treatMissingData: aws_cloudwatch_1.TreatMissingData.NOT_BREACHING,
|
|
32
|
+
},
|
|
33
|
+
/** Any failure to redrive to a DLQ means event loss; threshold 0. */
|
|
34
|
+
invocationsFailedToBeSentToDlq: {
|
|
35
|
+
threshold: 0,
|
|
36
|
+
evaluationPeriods: 1,
|
|
37
|
+
datapointsToAlarm: 1,
|
|
38
|
+
treatMissingData: aws_cloudwatch_1.TreatMissingData.NOT_BREACHING,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=rule-alarm-defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-alarm-defaults.js","sourceRoot":"","sources":["../../src/rule-alarm-defaults.ts"],"names":[],"mappings":";;;AAAA,+DAA8D;AAW9D;;;;GAIG;AACU,QAAA,mBAAmB,GAAsB;IACpD,OAAO,EAAE,IAAI;IAEb,kFAAkF;IAClF,iBAAiB,EAAE;QACjB,SAAS,EAAE,CAAC;QACZ,iBAAiB,EAAE,CAAC;QACpB,iBAAiB,EAAE,CAAC;QACpB,gBAAgB,EAAE,iCAAgB,CAAC,aAAa;KACjD;IAED,uFAAuF;IACvF,cAAc,EAAE;QACd,SAAS,EAAE,CAAC;QACZ,iBAAiB,EAAE,CAAC;QACpB,iBAAiB,EAAE,CAAC;QACpB,gBAAgB,EAAE,iCAAgB,CAAC,aAAa;KACjD;IAED,iGAAiG;IACjG,oBAAoB,EAAE;QACpB,SAAS,EAAE,CAAC;QACZ,iBAAiB,EAAE,CAAC;QACpB,iBAAiB,EAAE,CAAC;QACpB,gBAAgB,EAAE,iCAAgB,CAAC,aAAa;KACjD;IAED,qEAAqE;IACrE,8BAA8B,EAAE;QAC9B,SAAS,EAAE,CAAC;QACZ,iBAAiB,EAAE,CAAC;QACpB,iBAAiB,EAAE,CAAC;QACpB,gBAAgB,EAAE,iCAAgB,CAAC,aAAa;KACjD;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-alarms.d.ts","sourceRoot":"","sources":["../../src/rule-alarms.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,KAAK,EAA8B,MAAM,4BAA4B,CAAC;AACpF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAoC,MAAM,0BAA0B,CAAC;AACpG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAgB9D;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,eAAe,GAAG,SAAS,GAClC,eAAe,EAAE,CA2EnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,UAAU,EACjB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,eAAe,GAAG,KAAK,GAAG,SAAS,EAC3C,YAAY,GAAE,sBAAsB,CAAC,KAAK,CAAC,EAAO,GACjD,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAUvB"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveRuleAlarmDefinitions = resolveRuleAlarmDefinitions;
|
|
4
|
+
exports.createRuleAlarms = createRuleAlarms;
|
|
5
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
6
|
+
const aws_cloudwatch_1 = require("aws-cdk-lib/aws-cloudwatch");
|
|
7
|
+
const cloudwatch_1 = require("@composurecdk/cloudwatch");
|
|
8
|
+
const rule_alarm_defaults_js_1 = require("./rule-alarm-defaults.js");
|
|
9
|
+
const METRIC_PERIOD = aws_cdk_lib_1.Duration.minutes(1);
|
|
10
|
+
const METRIC_PERIOD_LABEL = `${String(METRIC_PERIOD.toMinutes())} minute`;
|
|
11
|
+
function ruleMetric(rule, metricName) {
|
|
12
|
+
return new aws_cloudwatch_1.Metric({
|
|
13
|
+
namespace: "AWS/Events",
|
|
14
|
+
metricName,
|
|
15
|
+
dimensionsMap: { RuleName: rule.ruleName },
|
|
16
|
+
statistic: "Sum",
|
|
17
|
+
period: METRIC_PERIOD,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Resolves the recommended alarm configuration into fully-resolved
|
|
22
|
+
* {@link AlarmDefinition}s for an EventBridge rule.
|
|
23
|
+
*
|
|
24
|
+
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#EventBridge
|
|
25
|
+
*/
|
|
26
|
+
function resolveRuleAlarmDefinitions(rule, config) {
|
|
27
|
+
if (config?.enabled === false)
|
|
28
|
+
return [];
|
|
29
|
+
const definitions = [];
|
|
30
|
+
if (config?.failedInvocations !== false) {
|
|
31
|
+
const cfg = (0, cloudwatch_1.resolveAlarmConfig)(config?.failedInvocations, rule_alarm_defaults_js_1.RULE_ALARM_DEFAULTS.failedInvocations);
|
|
32
|
+
definitions.push({
|
|
33
|
+
key: "failedInvocations",
|
|
34
|
+
alarmName: cfg.alarmName,
|
|
35
|
+
metric: ruleMetric(rule, "FailedInvocations"),
|
|
36
|
+
threshold: cfg.threshold,
|
|
37
|
+
comparisonOperator: aws_cloudwatch_1.ComparisonOperator.GREATER_THAN_THRESHOLD,
|
|
38
|
+
evaluationPeriods: cfg.evaluationPeriods,
|
|
39
|
+
datapointsToAlarm: cfg.datapointsToAlarm,
|
|
40
|
+
treatMissingData: cfg.treatMissingData,
|
|
41
|
+
description: `EventBridge rule is failing to invoke targets. Threshold: > ${String(cfg.threshold)} failures in ${METRIC_PERIOD_LABEL}.`,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
if (config?.throttledRules !== false) {
|
|
45
|
+
const cfg = (0, cloudwatch_1.resolveAlarmConfig)(config?.throttledRules, rule_alarm_defaults_js_1.RULE_ALARM_DEFAULTS.throttledRules);
|
|
46
|
+
definitions.push({
|
|
47
|
+
key: "throttledRules",
|
|
48
|
+
alarmName: cfg.alarmName,
|
|
49
|
+
metric: ruleMetric(rule, "ThrottledRules"),
|
|
50
|
+
threshold: cfg.threshold,
|
|
51
|
+
comparisonOperator: aws_cloudwatch_1.ComparisonOperator.GREATER_THAN_THRESHOLD,
|
|
52
|
+
evaluationPeriods: cfg.evaluationPeriods,
|
|
53
|
+
datapointsToAlarm: cfg.datapointsToAlarm,
|
|
54
|
+
treatMissingData: cfg.treatMissingData,
|
|
55
|
+
description: `EventBridge rule is being throttled, indicating quota or downstream concurrency limits. Threshold: > ${String(cfg.threshold)} throttles in ${METRIC_PERIOD_LABEL}.`,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
if (config?.invocationsSentToDlq !== false) {
|
|
59
|
+
const cfg = (0, cloudwatch_1.resolveAlarmConfig)(config?.invocationsSentToDlq, rule_alarm_defaults_js_1.RULE_ALARM_DEFAULTS.invocationsSentToDlq);
|
|
60
|
+
definitions.push({
|
|
61
|
+
key: "invocationsSentToDlq",
|
|
62
|
+
alarmName: cfg.alarmName,
|
|
63
|
+
metric: ruleMetric(rule, "InvocationsSentToDlq"),
|
|
64
|
+
threshold: cfg.threshold,
|
|
65
|
+
comparisonOperator: aws_cloudwatch_1.ComparisonOperator.GREATER_THAN_THRESHOLD,
|
|
66
|
+
evaluationPeriods: cfg.evaluationPeriods,
|
|
67
|
+
datapointsToAlarm: cfg.datapointsToAlarm,
|
|
68
|
+
treatMissingData: cfg.treatMissingData,
|
|
69
|
+
description: `EventBridge rule is redriving events to a target dead-letter queue. Threshold: > ${String(cfg.threshold)} redrives in ${METRIC_PERIOD_LABEL}.`,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
if (config?.invocationsFailedToBeSentToDlq !== false) {
|
|
73
|
+
const cfg = (0, cloudwatch_1.resolveAlarmConfig)(config?.invocationsFailedToBeSentToDlq, rule_alarm_defaults_js_1.RULE_ALARM_DEFAULTS.invocationsFailedToBeSentToDlq);
|
|
74
|
+
definitions.push({
|
|
75
|
+
key: "invocationsFailedToBeSentToDlq",
|
|
76
|
+
alarmName: cfg.alarmName,
|
|
77
|
+
metric: ruleMetric(rule, "InvocationsFailedToBeSentToDlq"),
|
|
78
|
+
threshold: cfg.threshold,
|
|
79
|
+
comparisonOperator: aws_cloudwatch_1.ComparisonOperator.GREATER_THAN_THRESHOLD,
|
|
80
|
+
evaluationPeriods: cfg.evaluationPeriods,
|
|
81
|
+
datapointsToAlarm: cfg.datapointsToAlarm,
|
|
82
|
+
treatMissingData: cfg.treatMissingData,
|
|
83
|
+
description: `EventBridge rule failed to redrive an event to a target dead-letter queue; events may be lost. Threshold: > ${String(cfg.threshold)} failed redrives in ${METRIC_PERIOD_LABEL}.`,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
return definitions;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Creates AWS-recommended CloudWatch alarms for an EventBridge rule,
|
|
90
|
+
* merging recommended definitions with any custom alarm builders.
|
|
91
|
+
*
|
|
92
|
+
* @param scope - CDK construct scope for creating alarm constructs.
|
|
93
|
+
* @param id - Base identifier for alarm construct ids.
|
|
94
|
+
* @param rule - The EventBridge rule to create alarms for.
|
|
95
|
+
* @param config - User-provided alarm configuration, or `false` to disable all.
|
|
96
|
+
* @param customAlarms - Custom alarm builders added via `addAlarm()`.
|
|
97
|
+
* @returns A record mapping alarm keys to their created Alarm constructs.
|
|
98
|
+
*
|
|
99
|
+
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#EventBridge
|
|
100
|
+
*/
|
|
101
|
+
function createRuleAlarms(scope, id, rule, config, customAlarms = []) {
|
|
102
|
+
if (config === false)
|
|
103
|
+
return {};
|
|
104
|
+
const enabled = config?.enabled ?? rule_alarm_defaults_js_1.RULE_ALARM_DEFAULTS.enabled;
|
|
105
|
+
if (!enabled)
|
|
106
|
+
return {};
|
|
107
|
+
const recommended = resolveRuleAlarmDefinitions(rule, config);
|
|
108
|
+
const custom = customAlarms.map((b) => b.resolve(rule));
|
|
109
|
+
return (0, cloudwatch_1.createAlarms)(scope, id, [...recommended, ...custom]);
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=rule-alarms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-alarms.js","sourceRoot":"","sources":["../../src/rule-alarms.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-builder.d.ts","sourceRoot":"","sources":["../../src/rule-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EACL,KAAK,SAAS,EACd,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,IAAI,EACJ,KAAK,SAAS,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAEL,UAAU,EACV,KAAK,QAAQ,EACb,KAAK,SAAS,EAEd,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC;IAC/E;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAEjC;;;;;;;;;;;;OAYG;IACH,iBAAiB,CAAC,EAAE,eAAe,GAAG,KAAK,CAAC;CAC7C;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,6DAA6D;IAC7D,IAAI,EAAE,IAAI,CAAC;IAEX;;;;;;OAMG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAE9B;;;;;OAKG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;AAOnE,cAAM,WAAY,YAAW,SAAS,CAAC,iBAAiB,CAAC;;IACvD,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAM;IAItC;;;;OAIG;IACH,QAAQ,CACN,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,CAAC,KAAK,EAAE,sBAAsB,CAAC,KAAK,CAAC,KAAK,sBAAsB,CAAC,KAAK,CAAC,GACjF,IAAI;IAKP;;;;;;;;OAQG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI;IAU7D,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,iBAAiB;IA+BzF,kFAAkF;IAClF,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;CAItC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,iBAAiB,IAAI,YAAY,CAGhD"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createRuleBuilder = createRuleBuilder;
|
|
4
|
+
const aws_events_1 = require("aws-cdk-lib/aws-events");
|
|
5
|
+
const core_1 = require("@composurecdk/core");
|
|
6
|
+
const cloudwatch_1 = require("@composurecdk/cloudwatch");
|
|
7
|
+
const defaults_js_1 = require("./defaults.js");
|
|
8
|
+
const rule_alarms_js_1 = require("./rule-alarms.js");
|
|
9
|
+
class RuleBuilder {
|
|
10
|
+
props = {};
|
|
11
|
+
#customAlarms = [];
|
|
12
|
+
#targets = [];
|
|
13
|
+
/**
|
|
14
|
+
* Register a custom CloudWatch alarm on the rule. The configure callback
|
|
15
|
+
* receives an {@link AlarmDefinitionBuilder} typed to {@link IRule} so the
|
|
16
|
+
* metric factory has access to the rule's properties.
|
|
17
|
+
*/
|
|
18
|
+
addAlarm(key, configure) {
|
|
19
|
+
this.#customAlarms.push(configure(new cloudwatch_1.AlarmDefinitionBuilder(key)));
|
|
20
|
+
return this;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Register a target to be attached to the rule at build time.
|
|
24
|
+
*
|
|
25
|
+
* Accepts any concrete {@link IRuleTarget} (the lightweight helpers in
|
|
26
|
+
* `./targets/` produce these) or a {@link Resolvable} so targets that wire
|
|
27
|
+
* cross-component references can be declared at configuration time. The
|
|
28
|
+
* resolved target is exposed on {@link RuleBuilderResult.targets} under
|
|
29
|
+
* `key`.
|
|
30
|
+
*/
|
|
31
|
+
addTarget(key, target) {
|
|
32
|
+
if (this.#targets.some((t) => t.key === key)) {
|
|
33
|
+
throw new Error(`RuleBuilder.addTarget: duplicate key "${key}". Each target must use a unique key.`);
|
|
34
|
+
}
|
|
35
|
+
this.#targets.push({ key, target });
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
build(scope, id, context) {
|
|
39
|
+
const ctx = context ?? {};
|
|
40
|
+
const { eventBus, recommendedAlarms: alarmConfig, ...rest } = this.props;
|
|
41
|
+
if (rest.schedule === undefined && rest.eventPattern === undefined) {
|
|
42
|
+
throw new Error(`RuleBuilder "${id}": at least one of .schedule(...) or .eventPattern(...) must be set. ` +
|
|
43
|
+
"An EventBridge rule with neither is inert and never matches.");
|
|
44
|
+
}
|
|
45
|
+
const mergedProps = {
|
|
46
|
+
...defaults_js_1.RULE_DEFAULTS,
|
|
47
|
+
...rest,
|
|
48
|
+
...(eventBus !== undefined && { eventBus: (0, core_1.resolve)(eventBus, ctx) }),
|
|
49
|
+
};
|
|
50
|
+
const rule = new aws_events_1.Rule(scope, id, mergedProps);
|
|
51
|
+
const targets = {};
|
|
52
|
+
for (const entry of this.#targets) {
|
|
53
|
+
const resolved = (0, core_1.resolve)(entry.target, ctx);
|
|
54
|
+
rule.addTarget(resolved);
|
|
55
|
+
targets[entry.key] = resolved;
|
|
56
|
+
}
|
|
57
|
+
const alarms = (0, rule_alarms_js_1.createRuleAlarms)(scope, id, rule, alarmConfig, this.#customAlarms);
|
|
58
|
+
return { rule, alarms, targets };
|
|
59
|
+
}
|
|
60
|
+
/** Deep-clones accumulator state so `.copy()` produces an independent builder. */
|
|
61
|
+
[core_1.COPY_STATE](next) {
|
|
62
|
+
next.#targets.push(...this.#targets);
|
|
63
|
+
next.#customAlarms.push(...this.#customAlarms);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Creates a new {@link IRuleBuilder} for configuring an AWS EventBridge rule.
|
|
68
|
+
*
|
|
69
|
+
* This is the entry point for defining an EventBridge rule component. The
|
|
70
|
+
* returned builder exposes every {@link RuleBuilderProps} property as a
|
|
71
|
+
* fluent setter/getter and implements {@link Lifecycle} for use with
|
|
72
|
+
* {@link compose}.
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```ts
|
|
76
|
+
* import { compose, ref } from "@composurecdk/core";
|
|
77
|
+
* import { createRuleBuilder, lambdaTarget } from "@composurecdk/events";
|
|
78
|
+
* import { Schedule } from "aws-cdk-lib/aws-events";
|
|
79
|
+
* import { Duration } from "aws-cdk-lib";
|
|
80
|
+
*
|
|
81
|
+
* const system = compose(
|
|
82
|
+
* {
|
|
83
|
+
* stopper: createFunctionBuilder()...,
|
|
84
|
+
* idleStopperSchedule: createRuleBuilder()
|
|
85
|
+
* .schedule(Schedule.rate(Duration.minutes(15)))
|
|
86
|
+
* .addTarget("stopper", lambdaTarget(ref("stopper", (r) => r.function))),
|
|
87
|
+
* },
|
|
88
|
+
* { stopper: [], idleStopperSchedule: ["stopper"] },
|
|
89
|
+
* );
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
function createRuleBuilder() {
|
|
93
|
+
// eslint-disable-next-line composurecdk/builder-must-be-tagged -- AWS::Events::Rule has no Tags property
|
|
94
|
+
return (0, core_1.Builder)(RuleBuilder);
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=rule-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-builder.js","sourceRoot":"","sources":["../../src/rule-builder.ts"],"names":[],"mappings":";;AA4NA,8CAGC;AA9ND,uDAMgC;AAEhC,6CAO4B;AAC5B,yDAAkE;AAClE,+CAA8C;AAE9C,qDAAoD;AAmGpD,MAAM,WAAW;IACf,KAAK,GAA8B,EAAE,CAAC;IAC7B,aAAa,GAAoC,EAAE,CAAC;IACpD,QAAQ,GAAkB,EAAE,CAAC;IAEtC;;;;OAIG;IACH,QAAQ,CACN,GAAW,EACX,SAAkF;QAElF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,mCAAsB,CAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,SAAS,CAAC,GAAW,EAAE,MAA+B;QACpD,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CACb,yCAAyC,GAAG,uCAAuC,CACpF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,KAAiB,EAAE,EAAU,EAAE,OAAgC;QACnE,MAAM,GAAG,GAAG,OAAO,IAAI,EAAE,CAAC;QAC1B,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzE,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CACb,gBAAgB,EAAE,uEAAuE;gBACvF,8DAA8D,CACjE,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAc;YAC7B,GAAG,2BAAa;YAChB,GAAG,IAAI;YACP,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,IAAA,cAAO,EAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;SACpE,CAAC;QAEF,MAAM,IAAI,GAAG,IAAI,iBAAI,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QAE9C,MAAM,OAAO,GAAgC,EAAE,CAAC;QAChD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,IAAA,cAAO,EAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC5C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;QAChC,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,iCAAgB,EAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAElF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACnC,CAAC;IAED,kFAAkF;IAClF,CAAC,iBAAU,CAAC,CAAC,IAAiB;QAC5B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAgB,iBAAiB;IAC/B,yGAAyG;IACzG,OAAO,IAAA,cAAO,EAAgC,WAAW,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-watch-log-group-target.d.ts","sourceRoot":"","sources":["../../../src/targets/cloud-watch-log-group-target.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACxF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE5D;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,EAC/B,KAAK,CAAC,EAAE,aAAa,GACpB,UAAU,CAAC,WAAW,CAAC,CAKzB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cloudWatchLogGroupTarget = cloudWatchLogGroupTarget;
|
|
4
|
+
const aws_events_targets_1 = require("aws-cdk-lib/aws-events-targets");
|
|
5
|
+
const core_1 = require("@composurecdk/core");
|
|
6
|
+
/**
|
|
7
|
+
* Wraps a CloudWatch log group as an EventBridge {@link IRuleTarget},
|
|
8
|
+
* deferring resolution if the log group is a {@link Ref} to a sibling
|
|
9
|
+
* component's output.
|
|
10
|
+
*
|
|
11
|
+
* Mirrors the {@link CloudWatchLogGroup} target from `aws-events-targets`,
|
|
12
|
+
* useful for audit / debug logging. `props` accepts
|
|
13
|
+
* {@link LogGroupProps.logEvent} (preferred over the deprecated `event`)
|
|
14
|
+
* to control the log payload, plus the inherited DLQ/retry options.
|
|
15
|
+
*/
|
|
16
|
+
function cloudWatchLogGroupTarget(logGroup, props) {
|
|
17
|
+
if ((0, core_1.isRef)(logGroup)) {
|
|
18
|
+
return logGroup.map((resolved) => new aws_events_targets_1.CloudWatchLogGroup(resolved, props));
|
|
19
|
+
}
|
|
20
|
+
return new aws_events_targets_1.CloudWatchLogGroup(logGroup, props);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=cloud-watch-log-group-target.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-watch-log-group-target.js","sourceRoot":"","sources":["../../../src/targets/cloud-watch-log-group-target.ts"],"names":[],"mappings":";;AAeA,4DAQC;AAtBD,uEAAwF;AAExF,6CAA4D;AAE5D;;;;;;;;;GASG;AACH,SAAgB,wBAAwB,CACtC,QAA+B,EAC/B,KAAqB;IAErB,IAAI,IAAA,YAAK,EAAC,QAAQ,CAAC,EAAE,CAAC;QACpB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,uCAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,IAAI,uCAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-bus-target.d.ts","sourceRoot":"","sources":["../../../src/targets/event-bus-target.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAA8B,KAAK,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAChG,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE5D;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,UAAU,CAAC,SAAS,CAAC,EAC1B,KAAK,CAAC,EAAE,aAAa,GACpB,UAAU,CAAC,WAAW,CAAC,CAGzB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.eventBusTarget = eventBusTarget;
|
|
4
|
+
const aws_events_targets_1 = require("aws-cdk-lib/aws-events-targets");
|
|
5
|
+
const core_1 = require("@composurecdk/core");
|
|
6
|
+
/**
|
|
7
|
+
* Wraps an EventBridge bus as an {@link IRuleTarget}, deferring resolution
|
|
8
|
+
* if the bus is a {@link Ref} to a sibling component's output.
|
|
9
|
+
*
|
|
10
|
+
* Mirrors the {@link EventBusTarget} target from `aws-events-targets` —
|
|
11
|
+
* useful for cross-bus or cross-account routing. `props` accepts
|
|
12
|
+
* {@link EventBusProps.role} (otherwise CDK creates one) and a per-target
|
|
13
|
+
* `deadLetterQueue`. Note: bus targets do **not** support retry policy
|
|
14
|
+
* configuration, per CDK's {@link EventBusProps} (it intentionally does not
|
|
15
|
+
* extend the retry base).
|
|
16
|
+
*/
|
|
17
|
+
function eventBusTarget(bus, props) {
|
|
18
|
+
if ((0, core_1.isRef)(bus))
|
|
19
|
+
return bus.map((resolved) => new aws_events_targets_1.EventBus(resolved, props));
|
|
20
|
+
return new aws_events_targets_1.EventBus(bus, props);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=event-bus-target.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-bus-target.js","sourceRoot":"","sources":["../../../src/targets/event-bus-target.ts"],"names":[],"mappings":";;AAeA,wCAMC;AApBD,uEAAgG;AAChG,6CAA4D;AAE5D;;;;;;;;;;GAUG;AACH,SAAgB,cAAc,CAC5B,GAA0B,EAC1B,KAAqB;IAErB,IAAI,IAAA,YAAK,EAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,6BAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IAClF,OAAO,IAAI,6BAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lambda-target.d.ts","sourceRoot":"","sources":["../../../src/targets/lambda-target.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,YAAY,CAC1B,EAAE,EAAE,UAAU,CAAC,SAAS,CAAC,EACzB,KAAK,CAAC,EAAE,mBAAmB,GAC1B,UAAU,CAAC,WAAW,CAAC,CAGzB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.lambdaTarget = lambdaTarget;
|
|
4
|
+
const aws_events_targets_1 = require("aws-cdk-lib/aws-events-targets");
|
|
5
|
+
const core_1 = require("@composurecdk/core");
|
|
6
|
+
/**
|
|
7
|
+
* Wraps a Lambda function as an EventBridge {@link IRuleTarget}, deferring
|
|
8
|
+
* resolution if the function is a {@link Ref} to a sibling component's
|
|
9
|
+
* output.
|
|
10
|
+
*
|
|
11
|
+
* Mirrors the {@link LambdaFunction} target from `aws-events-targets` —
|
|
12
|
+
* `props` accepts the same options ({@link LambdaFunctionProps.event} for
|
|
13
|
+
* input transformation, plus `deadLetterQueue`, `maxEventAge`,
|
|
14
|
+
* `retryAttempts` from {@link LambdaFunctionProps}'s base).
|
|
15
|
+
*
|
|
16
|
+
* Cross-component DLQ wiring (where the queue is built by another component)
|
|
17
|
+
* is supported by composing through `ref().map()` instead of passing the
|
|
18
|
+
* queue here directly:
|
|
19
|
+
*
|
|
20
|
+
* ```ts
|
|
21
|
+
* .addTarget(
|
|
22
|
+
* "stopper",
|
|
23
|
+
* ref<StopperBundle>("stopperBundle", b =>
|
|
24
|
+
* lambdaTarget(b.fn, { deadLetterQueue: b.dlq }),
|
|
25
|
+
* ),
|
|
26
|
+
* )
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* @see https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rule-dlq.html
|
|
30
|
+
*/
|
|
31
|
+
function lambdaTarget(fn, props) {
|
|
32
|
+
if ((0, core_1.isRef)(fn))
|
|
33
|
+
return fn.map((resolved) => new aws_events_targets_1.LambdaFunction(resolved, props));
|
|
34
|
+
return new aws_events_targets_1.LambdaFunction(fn, props);
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=lambda-target.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lambda-target.js","sourceRoot":"","sources":["../../../src/targets/lambda-target.ts"],"names":[],"mappings":";;AA8BA,oCAMC;AAnCD,uEAA0F;AAE1F,6CAA4D;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,SAAgB,YAAY,CAC1B,EAAyB,EACzB,KAA2B;IAE3B,IAAI,IAAA,YAAK,EAAC,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,mCAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IAChF,OAAO,IAAI,mCAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sfn-state-machine-target.d.ts","sourceRoot":"","sources":["../../../src/targets/sfn-state-machine-target.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAC5F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE5D;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,UAAU,CAAC,aAAa,CAAC,EACvC,KAAK,CAAC,EAAE,oBAAoB,GAC3B,UAAU,CAAC,WAAW,CAAC,CAKzB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sfnStateMachineTarget = sfnStateMachineTarget;
|
|
4
|
+
const aws_events_targets_1 = require("aws-cdk-lib/aws-events-targets");
|
|
5
|
+
const core_1 = require("@composurecdk/core");
|
|
6
|
+
/**
|
|
7
|
+
* Wraps a Step Functions state machine as an EventBridge
|
|
8
|
+
* {@link IRuleTarget}, deferring resolution if the state machine is a
|
|
9
|
+
* {@link Ref} to a sibling component's output.
|
|
10
|
+
*
|
|
11
|
+
* Mirrors the {@link SfnStateMachine} target from `aws-events-targets` —
|
|
12
|
+
* `props` accepts {@link SfnStateMachineProps.input} for input
|
|
13
|
+
* transformation, an explicit `role` (otherwise CDK creates one), plus the
|
|
14
|
+
* inherited DLQ/retry options.
|
|
15
|
+
*/
|
|
16
|
+
function sfnStateMachineTarget(stateMachine, props) {
|
|
17
|
+
if ((0, core_1.isRef)(stateMachine)) {
|
|
18
|
+
return stateMachine.map((resolved) => new aws_events_targets_1.SfnStateMachine(resolved, props));
|
|
19
|
+
}
|
|
20
|
+
return new aws_events_targets_1.SfnStateMachine(stateMachine, props);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=sfn-state-machine-target.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sfn-state-machine-target.js","sourceRoot":"","sources":["../../../src/targets/sfn-state-machine-target.ts"],"names":[],"mappings":";;AAeA,sDAQC;AAtBD,uEAA4F;AAE5F,6CAA4D;AAE5D;;;;;;;;;GASG;AACH,SAAgB,qBAAqB,CACnC,YAAuC,EACvC,KAA4B;IAE5B,IAAI,IAAA,YAAK,EAAC,YAAY,CAAC,EAAE,CAAC;QACxB,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,oCAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,IAAI,oCAAe,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sns-target.d.ts","sourceRoot":"","sources":["../../../src/targets/sns-target.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE5D;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,EACzB,KAAK,CAAC,EAAE,aAAa,GACpB,UAAU,CAAC,WAAW,CAAC,CAGzB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.snsTarget = snsTarget;
|
|
4
|
+
const aws_events_targets_1 = require("aws-cdk-lib/aws-events-targets");
|
|
5
|
+
const core_1 = require("@composurecdk/core");
|
|
6
|
+
/**
|
|
7
|
+
* Wraps an SNS topic as an EventBridge {@link IRuleTarget}, deferring
|
|
8
|
+
* resolution if the topic is a {@link Ref} to a sibling component's output.
|
|
9
|
+
*
|
|
10
|
+
* Mirrors the {@link SnsTopic} target from `aws-events-targets` — `props`
|
|
11
|
+
* accepts {@link SnsTopicProps.message} for input transformation, and the
|
|
12
|
+
* IAM `role` / `authorizeUsingRole` options for cross-account publishing.
|
|
13
|
+
*
|
|
14
|
+
* Note: SNS targets do not accept a per-target DLQ
|
|
15
|
+
* ({@link SnsTopicProps} does not extend the retry/DLQ base type).
|
|
16
|
+
*/
|
|
17
|
+
function snsTarget(topic, props) {
|
|
18
|
+
if ((0, core_1.isRef)(topic))
|
|
19
|
+
return topic.map((resolved) => new aws_events_targets_1.SnsTopic(resolved, props));
|
|
20
|
+
return new aws_events_targets_1.SnsTopic(topic, props);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=sns-target.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sns-target.js","sourceRoot":"","sources":["../../../src/targets/sns-target.ts"],"names":[],"mappings":";;AAgBA,8BAMC;AArBD,uEAA8E;AAE9E,6CAA4D;AAE5D;;;;;;;;;;GAUG;AACH,SAAgB,SAAS,CACvB,KAAyB,EACzB,KAAqB;IAErB,IAAI,IAAA,YAAK,EAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,6BAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IAChF,OAAO,IAAI,6BAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqs-target.d.ts","sourceRoot":"","sources":["../../../src/targets/sqs-target.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE5D;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,EACzB,KAAK,CAAC,EAAE,aAAa,GACpB,UAAU,CAAC,WAAW,CAAC,CAGzB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sqsTarget = sqsTarget;
|
|
4
|
+
const aws_events_targets_1 = require("aws-cdk-lib/aws-events-targets");
|
|
5
|
+
const core_1 = require("@composurecdk/core");
|
|
6
|
+
/**
|
|
7
|
+
* Wraps an SQS queue as an EventBridge {@link IRuleTarget}, deferring
|
|
8
|
+
* resolution if the queue is a {@link Ref} to a sibling component's output.
|
|
9
|
+
*
|
|
10
|
+
* Mirrors the {@link SqsQueue} target from `aws-events-targets` — `props`
|
|
11
|
+
* accepts {@link SqsQueueProps.message} for input transformation,
|
|
12
|
+
* {@link SqsQueueProps.messageGroupId} (required for FIFO targets), plus the
|
|
13
|
+
* `deadLetterQueue` / `maxEventAge` / `retryAttempts` reliability options
|
|
14
|
+
* from the inherited base.
|
|
15
|
+
*/
|
|
16
|
+
function sqsTarget(queue, props) {
|
|
17
|
+
if ((0, core_1.isRef)(queue))
|
|
18
|
+
return queue.map((resolved) => new aws_events_targets_1.SqsQueue(resolved, props));
|
|
19
|
+
return new aws_events_targets_1.SqsQueue(queue, props);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=sqs-target.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqs-target.js","sourceRoot":"","sources":["../../../src/targets/sqs-target.ts"],"names":[],"mappings":";;AAeA,8BAMC;AApBD,uEAA8E;AAE9E,6CAA4D;AAE5D;;;;;;;;;GASG;AACH,SAAgB,SAAS,CACvB,KAAyB,EACzB,KAAqB;IAErB,IAAI,IAAA,YAAK,EAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,6BAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IAChF,OAAO,IAAI,6BAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { RuleProps } from "aws-cdk-lib/aws-events";
|
|
2
|
+
/**
|
|
3
|
+
* Defaults applied to every EventBridge rule built with
|
|
4
|
+
* {@link createRuleBuilder}.
|
|
5
|
+
*
|
|
6
|
+
* Intentionally empty: the L2 {@link RuleProps} defaults already align with
|
|
7
|
+
* AWS recommendations (`enabled: true`, default account event bus). No
|
|
8
|
+
* additional secure default exists at this layer — DLQs are caller-owned and
|
|
9
|
+
* configured per target, not on the rule itself.
|
|
10
|
+
*/
|
|
11
|
+
export declare const RULE_DEFAULTS: Partial<RuleProps>;
|
|
12
|
+
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,EAAE,OAAO,CAAC,SAAS,CAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/defaults.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,aAAa,GAAuB,EAAE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { createRuleBuilder, type IRuleBuilder, type RuleBuilderProps, type RuleBuilderResult, } from "./rule-builder.js";
|
|
2
|
+
export { RULE_DEFAULTS } from "./defaults.js";
|
|
3
|
+
export { type RuleAlarmConfig } from "./rule-alarm-config.js";
|
|
4
|
+
export { RULE_ALARM_DEFAULTS } from "./rule-alarm-defaults.js";
|
|
5
|
+
export { lambdaTarget } from "./targets/lambda-target.js";
|
|
6
|
+
export { sqsTarget } from "./targets/sqs-target.js";
|
|
7
|
+
export { snsTarget } from "./targets/sns-target.js";
|
|
8
|
+
export { sfnStateMachineTarget } from "./targets/sfn-state-machine-target.js";
|
|
9
|
+
export { eventBusTarget } from "./targets/event-bus-target.js";
|
|
10
|
+
export { cloudWatchLogGroupTarget } from "./targets/cloud-watch-log-group-target.js";
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,GAIlB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC"}
|