@composurecdk/cloudwatch 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.
Files changed (114) hide show
  1. package/README.md +60 -1
  2. package/dist/commonjs/alarm-config.d.ts.map +1 -0
  3. package/dist/commonjs/alarm-config.js +3 -0
  4. package/dist/{alarm-config.js.map → commonjs/alarm-config.js.map} +1 -1
  5. package/dist/{alarm-definition-builder.d.ts → commonjs/alarm-definition-builder.d.ts} +6 -6
  6. package/dist/commonjs/alarm-definition-builder.d.ts.map +1 -0
  7. package/dist/commonjs/alarm-definition-builder.js +103 -0
  8. package/dist/commonjs/alarm-definition-builder.js.map +1 -0
  9. package/dist/commonjs/alarm-definition.d.ts +31 -0
  10. package/dist/commonjs/alarm-definition.d.ts.map +1 -0
  11. package/dist/commonjs/alarm-definition.js +3 -0
  12. package/dist/{alarm-definition.js.map → commonjs/alarm-definition.js.map} +1 -1
  13. package/dist/commonjs/alarm-name.d.ts.map +1 -0
  14. package/dist/commonjs/alarm-name.js +52 -0
  15. package/dist/commonjs/alarm-name.js.map +1 -0
  16. package/dist/commonjs/create-alarms.d.ts.map +1 -0
  17. package/dist/commonjs/create-alarms.js +41 -0
  18. package/dist/commonjs/create-alarms.js.map +1 -0
  19. package/dist/commonjs/default-alarm-name.d.ts.map +1 -0
  20. package/dist/commonjs/default-alarm-name.js +20 -0
  21. package/dist/commonjs/default-alarm-name.js.map +1 -0
  22. package/dist/{index.d.ts → commonjs/index.d.ts} +1 -1
  23. package/dist/commonjs/index.d.ts.map +1 -0
  24. package/dist/commonjs/index.js +18 -0
  25. package/dist/commonjs/index.js.map +1 -0
  26. package/dist/commonjs/package.json +3 -0
  27. package/dist/{policies → commonjs/policies}/alarm-actions-policy.d.ts +19 -11
  28. package/dist/commonjs/policies/alarm-actions-policy.d.ts.map +1 -0
  29. package/dist/commonjs/policies/alarm-actions-policy.js +139 -0
  30. package/dist/commonjs/policies/alarm-actions-policy.js.map +1 -0
  31. package/dist/commonjs/policies/alarm-name-policy.d.ts.map +1 -0
  32. package/dist/commonjs/policies/alarm-name-policy.js +99 -0
  33. package/dist/commonjs/policies/alarm-name-policy.js.map +1 -0
  34. package/dist/{policies → commonjs/policies}/policy-matcher.d.ts +15 -1
  35. package/dist/commonjs/policies/policy-matcher.d.ts.map +1 -0
  36. package/dist/commonjs/policies/policy-matcher.js +41 -0
  37. package/dist/commonjs/policies/policy-matcher.js.map +1 -0
  38. package/dist/commonjs/resolve-alarm-config.d.ts.map +1 -0
  39. package/dist/commonjs/resolve-alarm-config.js +18 -0
  40. package/dist/commonjs/resolve-alarm-config.js.map +1 -0
  41. package/dist/esm/alarm-config.d.ts +31 -0
  42. package/dist/esm/alarm-config.d.ts.map +1 -0
  43. package/dist/esm/alarm-config.js.map +1 -0
  44. package/dist/esm/alarm-definition-builder.d.ts +40 -0
  45. package/dist/esm/alarm-definition-builder.d.ts.map +1 -0
  46. package/dist/{alarm-definition-builder.js → esm/alarm-definition-builder.js} +3 -3
  47. package/dist/esm/alarm-definition-builder.js.map +1 -0
  48. package/dist/esm/alarm-definition.d.ts +31 -0
  49. package/dist/esm/alarm-definition.d.ts.map +1 -0
  50. package/dist/esm/alarm-definition.js.map +1 -0
  51. package/dist/esm/alarm-name.d.ts +32 -0
  52. package/dist/esm/alarm-name.d.ts.map +1 -0
  53. package/dist/esm/alarm-name.js.map +1 -0
  54. package/dist/esm/create-alarms.d.ts +19 -0
  55. package/dist/esm/create-alarms.d.ts.map +1 -0
  56. package/dist/esm/create-alarms.js.map +1 -0
  57. package/dist/esm/default-alarm-name.d.ts +14 -0
  58. package/dist/esm/default-alarm-name.d.ts.map +1 -0
  59. package/dist/esm/default-alarm-name.js.map +1 -0
  60. package/dist/esm/index.d.ts +11 -0
  61. package/dist/esm/index.d.ts.map +1 -0
  62. package/dist/esm/index.js.map +1 -0
  63. package/dist/esm/package.json +3 -0
  64. package/dist/esm/policies/alarm-actions-policy.d.ts +62 -0
  65. package/dist/esm/policies/alarm-actions-policy.d.ts.map +1 -0
  66. package/dist/{policies → esm/policies}/alarm-actions-policy.js +21 -14
  67. package/dist/esm/policies/alarm-actions-policy.js.map +1 -0
  68. package/dist/esm/policies/alarm-name-policy.d.ts +77 -0
  69. package/dist/esm/policies/alarm-name-policy.d.ts.map +1 -0
  70. package/dist/{policies → esm/policies}/alarm-name-policy.js +3 -4
  71. package/dist/esm/policies/alarm-name-policy.js.map +1 -0
  72. package/dist/esm/policies/policy-matcher.d.ts +45 -0
  73. package/dist/esm/policies/policy-matcher.d.ts.map +1 -0
  74. package/dist/esm/policies/policy-matcher.js +35 -0
  75. package/dist/esm/policies/policy-matcher.js.map +1 -0
  76. package/dist/esm/resolve-alarm-config.d.ts +25 -0
  77. package/dist/esm/resolve-alarm-config.d.ts.map +1 -0
  78. package/dist/esm/resolve-alarm-config.js.map +1 -0
  79. package/package.json +33 -15
  80. package/dist/alarm-config.d.ts.map +0 -1
  81. package/dist/alarm-definition-builder.d.ts.map +0 -1
  82. package/dist/alarm-definition-builder.js.map +0 -1
  83. package/dist/alarm-definition.d.ts +0 -21
  84. package/dist/alarm-definition.d.ts.map +0 -1
  85. package/dist/alarm-name.d.ts.map +0 -1
  86. package/dist/alarm-name.js.map +0 -1
  87. package/dist/create-alarms.d.ts.map +0 -1
  88. package/dist/create-alarms.js.map +0 -1
  89. package/dist/default-alarm-name.d.ts.map +0 -1
  90. package/dist/default-alarm-name.js.map +0 -1
  91. package/dist/index.d.ts.map +0 -1
  92. package/dist/index.js.map +0 -1
  93. package/dist/policies/alarm-actions-policy.d.ts.map +0 -1
  94. package/dist/policies/alarm-actions-policy.js.map +0 -1
  95. package/dist/policies/alarm-name-policy.d.ts.map +0 -1
  96. package/dist/policies/alarm-name-policy.js.map +0 -1
  97. package/dist/policies/policy-matcher.d.ts.map +0 -1
  98. package/dist/policies/policy-matcher.js +0 -16
  99. package/dist/policies/policy-matcher.js.map +0 -1
  100. package/dist/resolve-alarm-config.d.ts.map +0 -1
  101. package/dist/resolve-alarm-config.js.map +0 -1
  102. /package/dist/{alarm-config.d.ts → commonjs/alarm-config.d.ts} +0 -0
  103. /package/dist/{alarm-name.d.ts → commonjs/alarm-name.d.ts} +0 -0
  104. /package/dist/{create-alarms.d.ts → commonjs/create-alarms.d.ts} +0 -0
  105. /package/dist/{default-alarm-name.d.ts → commonjs/default-alarm-name.d.ts} +0 -0
  106. /package/dist/{policies → commonjs/policies}/alarm-name-policy.d.ts +0 -0
  107. /package/dist/{resolve-alarm-config.d.ts → commonjs/resolve-alarm-config.d.ts} +0 -0
  108. /package/dist/{alarm-config.js → esm/alarm-config.js} +0 -0
  109. /package/dist/{alarm-definition.js → esm/alarm-definition.js} +0 -0
  110. /package/dist/{alarm-name.js → esm/alarm-name.js} +0 -0
  111. /package/dist/{create-alarms.js → esm/create-alarms.js} +0 -0
  112. /package/dist/{default-alarm-name.js → esm/default-alarm-name.js} +0 -0
  113. /package/dist/{index.js → esm/index.js} +0 -0
  114. /package/dist/{resolve-alarm-config.js → esm/resolve-alarm-config.js} +0 -0
@@ -0,0 +1,62 @@
1
+ import type { IAlarmAction } from "aws-cdk-lib/aws-cloudwatch";
2
+ import { type IConstruct } from "constructs";
3
+ import { type AlarmRuleScope } from "./policy-matcher.js";
4
+ export type { AlarmMatchContext, AlarmMatcher } from "./policy-matcher.js";
5
+ /** A set of actions, one array per alarm state. All arrays are optional. */
6
+ export interface AlarmActionSet {
7
+ alarmActions?: IAlarmAction[];
8
+ okActions?: IAlarmAction[];
9
+ insufficientDataActions?: IAlarmAction[];
10
+ }
11
+ /** A rule: a matcher (or matchers) plus an action set, with optional scoping flags. */
12
+ export interface AlarmActionRule extends AlarmActionSet, AlarmRuleScope {
13
+ /** When this rule matches, suppress `defaults` for the alarm. */
14
+ replaceDefaults?: boolean;
15
+ }
16
+ /** Configuration for {@link alarmActionsPolicy}. */
17
+ export interface AlarmActionsPolicyConfig {
18
+ /** Actions applied to every matched alarm unless a matching rule sets `replaceDefaults: true`. */
19
+ defaults?: AlarmActionSet;
20
+ /** Ordered list of overrides. All matching rules contribute (append semantics). */
21
+ rules?: AlarmActionRule[];
22
+ /** Skip alarms that already have non-empty `alarmActions`. */
23
+ skipIfAlreadyConfigured?: boolean;
24
+ }
25
+ /**
26
+ * Registers a CDK {@link https://docs.aws.amazon.com/cdk/v2/guide/aspects.html | Aspect}
27
+ * on `scope` that attaches CloudWatch alarm actions to every `Alarm` and
28
+ * `CompositeAlarm` (L2) construct in the subtree at synth time. Call once
29
+ * with any scope — an `App`, a `Stack`, or the scope passed to `.build()`
30
+ * for a composed system; alarms added after the call still pick up the
31
+ * policy, so call ordering is irrelevant as
32
+ * long as it happens before `app.synth()`. In particular, there is no need
33
+ * to wrap this call in `afterBuild` — the Aspect runs after the construct
34
+ * tree is finalised, not at call time. The only temporal constraint is that
35
+ * any `IAlarmAction` instances in `config` (e.g. `new SnsAction(topic)`)
36
+ * must reference constructs that already exist when the policy is called.
37
+ *
38
+ * Detection uses the version-portable `isCfnAlarm` / `isCfnCompositeAlarm`
39
+ * guards (`CfnResource.isCfnResource` + `cfnResourceType`, so they work below
40
+ * aws-cdk-lib 2.231.0) on the L1 resource; the L2 parent is found via
41
+ * duck-typing on `addAlarmAction`. Actions are attached through
42
+ * the L2 so that `IAlarmAction.bind()` runs and permissions are wired
43
+ * correctly. Bare `CfnAlarm` nodes (created without an L2 wrapper) are
44
+ * detected but silently skipped.
45
+ *
46
+ * `defaults` apply to every matched alarm; `rules` append additional actions.
47
+ * A rule matches if any of its `match` entries matches. Set
48
+ * `replaceDefaults: true` on a rule to suppress defaults for its matched
49
+ * alarms.
50
+ *
51
+ * @example
52
+ * ```ts
53
+ * alarmActionsPolicy(app, {
54
+ * defaults: { alarmActions: [new SnsAction(standardTopic)] },
55
+ * rules: [
56
+ * { match: "HighSev", alarmActions: [new SnsAction(pagerTopic)] },
57
+ * ],
58
+ * });
59
+ * ```
60
+ */
61
+ export declare function alarmActionsPolicy(scope: IConstruct, config: AlarmActionsPolicyConfig): void;
62
+ //# sourceMappingURL=alarm-actions-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alarm-actions-policy.d.ts","sourceRoot":"","sources":["../../../src/policies/alarm-actions-policy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAuC,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACpG,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAEL,KAAK,cAAc,EAIpB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE3E,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,uBAAuB,CAAC,EAAE,YAAY,EAAE,CAAC;CAC1C;AAED,uFAAuF;AACvF,MAAM,WAAW,eAAgB,SAAQ,cAAc,EAAE,cAAc;IACrE,iEAAiE;IACjE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,oDAAoD;AACpD,MAAM,WAAW,wBAAwB;IACvC,kGAAkG;IAClG,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,mFAAmF;IACnF,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;IAC1B,8DAA8D;IAC9D,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AA4DD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,wBAAwB,GAAG,IAAI,CAkD5F"}
@@ -1,6 +1,5 @@
1
1
  import { Aspects, Stack } from "aws-cdk-lib";
2
- import { CfnAlarm, CfnCompositeAlarm, } from "aws-cdk-lib/aws-cloudwatch";
3
- import { ruleMatches } from "./policy-matcher.js";
2
+ import { isCfnAlarm, isCfnCompositeAlarm, ruleMatches, } from "./policy-matcher.js";
4
3
  function isL2AlarmLike(node) {
5
4
  if (node === undefined)
6
5
  return false;
@@ -36,8 +35,8 @@ function dedupe(items) {
36
35
  function visitAlarms(scope, visit) {
37
36
  Aspects.of(scope).add({
38
37
  visit(node) {
39
- const isAlarm = CfnAlarm.isCfnAlarm(node);
40
- const isComposite = CfnCompositeAlarm.isCfnCompositeAlarm(node);
38
+ const isAlarm = isCfnAlarm(node);
39
+ const isComposite = isCfnCompositeAlarm(node);
41
40
  if (!isAlarm && !isComposite)
42
41
  return;
43
42
  const parent = node.node.scope;
@@ -47,17 +46,25 @@ function visitAlarms(scope, visit) {
47
46
  });
48
47
  }
49
48
  /**
50
- * Attaches CloudWatch alarm actions to every `Alarm` and `CompositeAlarm`
51
- * (L2) construct in the subtree under `scope`.
49
+ * Registers a CDK {@link https://docs.aws.amazon.com/cdk/v2/guide/aspects.html | Aspect}
50
+ * on `scope` that attaches CloudWatch alarm actions to every `Alarm` and
51
+ * `CompositeAlarm` (L2) construct in the subtree at synth time. Call once
52
+ * with any scope — an `App`, a `Stack`, or the scope passed to `.build()`
53
+ * for a composed system; alarms added after the call still pick up the
54
+ * policy, so call ordering is irrelevant as
55
+ * long as it happens before `app.synth()`. In particular, there is no need
56
+ * to wrap this call in `afterBuild` — the Aspect runs after the construct
57
+ * tree is finalised, not at call time. The only temporal constraint is that
58
+ * any `IAlarmAction` instances in `config` (e.g. `new SnsAction(topic)`)
59
+ * must reference constructs that already exist when the policy is called.
52
60
  *
53
- * The policy installs a CDK {@link https://docs.aws.amazon.com/cdk/v2/guide/aspects.html | Aspect}
54
- * that fires during the synth prepare phase, so late-added alarms are also
55
- * covered. Detection uses the jsii type guards
56
- * `CfnAlarm.isCfnAlarm` / `CfnCompositeAlarm.isCfnCompositeAlarm` on the L1
57
- * resource; the L2 parent is found via duck-typing on `addAlarmAction`.
58
- * Actions are attached through the L2 so that `IAlarmAction.bind()` runs and
59
- * permissions are wired correctly. Bare `CfnAlarm` nodes (created without an
60
- * L2 wrapper) are detected but silently skipped.
61
+ * Detection uses the version-portable `isCfnAlarm` / `isCfnCompositeAlarm`
62
+ * guards (`CfnResource.isCfnResource` + `cfnResourceType`, so they work below
63
+ * aws-cdk-lib 2.231.0) on the L1 resource; the L2 parent is found via
64
+ * duck-typing on `addAlarmAction`. Actions are attached through
65
+ * the L2 so that `IAlarmAction.bind()` runs and permissions are wired
66
+ * correctly. Bare `CfnAlarm` nodes (created without an L2 wrapper) are
67
+ * detected but silently skipped.
61
68
  *
62
69
  * `defaults` apply to every matched alarm; `rules` append additional actions.
63
70
  * A rule matches if any of its `match` entries matches. Set
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alarm-actions-policy.js","sourceRoot":"","sources":["../../../src/policies/alarm-actions-policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import { type IConstruct } from "constructs";
2
+ import { type AlarmName } from "../alarm-name.js";
3
+ import { type AlarmMatchContext, type AlarmRuleScope } from "./policy-matcher.js";
4
+ /** Context passed to {@link AlarmNameRule.transform}. */
5
+ export interface AlarmNameTransformContext extends AlarmMatchContext {
6
+ /**
7
+ * The alarm name as it stands at the moment this rule's transform runs:
8
+ * the original alarm name plus any prefix/suffix decorations contributed
9
+ * by `defaults` and earlier matched rules.
10
+ */
11
+ readonly currentName: string;
12
+ }
13
+ /**
14
+ * A rule for {@link alarmNamePolicy}. A rule matches when **any** supplied
15
+ * matcher matches.
16
+ *
17
+ * - `prefix` / `suffix` decorate the current name.
18
+ * - `transform` produces a new name from scratch and wins over `prefix`/`suffix`
19
+ * when both are set on the same rule.
20
+ * - Multiple matched rules layer in declaration order.
21
+ */
22
+ export interface AlarmNameRule extends AlarmRuleScope {
23
+ /** Prepended to the current name with the configured separator. */
24
+ prefix?: string;
25
+ /** Appended to the current name with the configured separator. */
26
+ suffix?: string;
27
+ /** Full transform — wins over `prefix`/`suffix` on the same rule. */
28
+ transform?: (ctx: AlarmNameTransformContext) => AlarmName;
29
+ /** When `true`, this rule's `prefix`/`suffix` replace `defaults` rather than layering on top. */
30
+ replaceDefaults?: boolean;
31
+ }
32
+ /** Configuration for {@link alarmNamePolicy}. */
33
+ export interface AlarmNamePolicyConfig {
34
+ /** Decorations applied to every alarm unless a matching rule sets `replaceDefaults: true`. */
35
+ defaults?: Pick<AlarmNameRule, "prefix" | "suffix">;
36
+ /** Ordered list of rules. All matching rules contribute. */
37
+ rules?: AlarmNameRule[];
38
+ /**
39
+ * Separator between prefix / current-name / suffix segments.
40
+ * @default "-"
41
+ */
42
+ separator?: string;
43
+ }
44
+ /**
45
+ * Decorates CloudWatch alarm names across an entire scope.
46
+ *
47
+ * Installs a CDK
48
+ * {@link https://docs.aws.amazon.com/cdk/v2/guide/aspects.html | Aspect}
49
+ * that fires during the synth prepare phase. For every `AWS::CloudWatch::Alarm`
50
+ * (and `AWS::CloudWatch::CompositeAlarm`) found beneath `scope`:
51
+ *
52
+ * 1. The alarm's existing name is read (set by the library default or the
53
+ * consumer's per-alarm override).
54
+ * 2. `defaults.prefix` / `defaults.suffix` decorate it, unless a matched
55
+ * rule sets `replaceDefaults: true`.
56
+ * 3. Each matching rule contributes in declaration order — `transform`
57
+ * replaces the current name; otherwise `prefix`/`suffix` decorate.
58
+ * 4. The final value is validated via {@link alarmName} and written back to
59
+ * `cfn.alarmName`.
60
+ *
61
+ * Use cases: stage prefixing (`prod-…`), severity tagging (`…-critical`),
62
+ * team scoping. Composes with per-alarm `alarmName` overrides — those run
63
+ * first, the policy decorates the result.
64
+ *
65
+ * @example
66
+ * ```ts
67
+ * alarmNamePolicy(app, {
68
+ * defaults: { prefix: "prod" },
69
+ * rules: [
70
+ * { match: /Errors$/, suffix: "critical" },
71
+ * { match: "throttles", suffix: "warning" },
72
+ * ],
73
+ * });
74
+ * ```
75
+ */
76
+ export declare function alarmNamePolicy(scope: IConstruct, config: AlarmNamePolicyConfig): void;
77
+ //# sourceMappingURL=alarm-name-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alarm-name-policy.d.ts","sourceRoot":"","sources":["../../../src/policies/alarm-name-policy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,KAAK,SAAS,EAA+B,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAIpB,MAAM,qBAAqB,CAAC;AAE7B,yDAAyD;AACzD,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,yBAAyB,KAAK,SAAS,CAAC;IAC1D,iGAAiG;IACjG,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,iDAAiD;AACjD,MAAM,WAAW,qBAAqB;IACpC,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC;IACpD,4DAA4D;IAC5D,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAgDtF"}
@@ -1,7 +1,6 @@
1
1
  import { Aspects, Stack } from "aws-cdk-lib";
2
- import { CfnAlarm, CfnCompositeAlarm } from "aws-cdk-lib/aws-cloudwatch";
3
2
  import { alarmName as brandAlarmName } from "../alarm-name.js";
4
- import { ruleMatches } from "./policy-matcher.js";
3
+ import { isCfnAlarm, isCfnCompositeAlarm, ruleMatches, } from "./policy-matcher.js";
5
4
  function decorate(current, prefix, suffix, sep) {
6
5
  const parts = [];
7
6
  if (prefix !== undefined && prefix.length > 0)
@@ -55,8 +54,8 @@ export function alarmNamePolicy(scope, config) {
55
54
  const processed = new WeakSet();
56
55
  Aspects.of(scope).add({
57
56
  visit(node) {
58
- const isAlarm = CfnAlarm.isCfnAlarm(node);
59
- const isComposite = CfnCompositeAlarm.isCfnCompositeAlarm(node);
57
+ const isAlarm = isCfnAlarm(node);
58
+ const isComposite = isCfnCompositeAlarm(node);
60
59
  if (!isAlarm && !isComposite)
61
60
  return;
62
61
  const cfn = node;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alarm-name-policy.js","sourceRoot":"","sources":["../../../src/policies/alarm-name-policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { CfnAlarm, CfnCompositeAlarm, type IAlarm } from "aws-cdk-lib/aws-cloudwatch";
2
+ import type { IConstruct } from "constructs";
3
+ /**
4
+ * Version-portable replacement for `CfnAlarm.isCfnAlarm`, which only exists in
5
+ * aws-cdk-lib >= 2.231.0 and throws `TypeError` on older versions inside our
6
+ * declared `^2.0.0` peer range (issue #146). Checks the foundational
7
+ * `CfnResource.isCfnResource` guard plus a `cfnResourceType` compare — exactly
8
+ * what the modern static does internally — so it works across the full range.
9
+ */
10
+ export declare function isCfnAlarm(x: IConstruct): x is CfnAlarm;
11
+ /**
12
+ * Version-portable replacement for `CfnCompositeAlarm.isCfnCompositeAlarm`.
13
+ * See {@link isCfnAlarm} for why this exists.
14
+ */
15
+ export declare function isCfnCompositeAlarm(x: IConstruct): x is CfnCompositeAlarm;
16
+ /**
17
+ * Selects which alarms a rule applies to.
18
+ *
19
+ * - `string` — substring match against the alarm's `id` OR `path`.
20
+ * - `RegExp` — tested against `path`.
21
+ * - predicate — receives the full {@link AlarmMatchContext}.
22
+ */
23
+ export type AlarmMatcher = string | RegExp | ((ctx: AlarmMatchContext) => boolean);
24
+ /**
25
+ * Context passed to matcher predicates and derived for every visited alarm.
26
+ *
27
+ * `id` and `path` come from the L2 alarm when one is present, otherwise from
28
+ * the L1 `CfnAlarm` / `CfnCompositeAlarm`.
29
+ */
30
+ export interface AlarmMatchContext {
31
+ readonly alarm: IAlarm | undefined;
32
+ readonly cfn: CfnAlarm | CfnCompositeAlarm;
33
+ readonly id: string;
34
+ readonly path: string;
35
+ readonly isComposite: boolean;
36
+ }
37
+ /** Common scoping flags shared by every alarm-policy rule shape. */
38
+ export interface AlarmRuleScope {
39
+ match: AlarmMatcher | AlarmMatcher[];
40
+ singleOnly?: boolean;
41
+ compositeOnly?: boolean;
42
+ }
43
+ export declare function matchesOne(matcher: AlarmMatcher, ctx: AlarmMatchContext): boolean;
44
+ export declare function ruleMatches(rule: AlarmRuleScope, ctx: AlarmMatchContext): boolean;
45
+ //# sourceMappingURL=policy-matcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy-matcher.d.ts","sourceRoot":"","sources":["../../../src/policies/policy-matcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,KAAK,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,IAAI,QAAQ,CAEvD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,IAAI,iBAAiB,CAIzE;AAED;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC;AAEnF;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,GAAG,EAAE,QAAQ,GAAG,iBAAiB,CAAC;IAC3C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAED,oEAAoE;AACpE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAIjF;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAKjF"}
@@ -0,0 +1,35 @@
1
+ import { CfnResource } from "aws-cdk-lib";
2
+ import { CfnAlarm, CfnCompositeAlarm } from "aws-cdk-lib/aws-cloudwatch";
3
+ /**
4
+ * Version-portable replacement for `CfnAlarm.isCfnAlarm`, which only exists in
5
+ * aws-cdk-lib >= 2.231.0 and throws `TypeError` on older versions inside our
6
+ * declared `^2.0.0` peer range (issue #146). Checks the foundational
7
+ * `CfnResource.isCfnResource` guard plus a `cfnResourceType` compare — exactly
8
+ * what the modern static does internally — so it works across the full range.
9
+ */
10
+ export function isCfnAlarm(x) {
11
+ return CfnResource.isCfnResource(x) && x.cfnResourceType === CfnAlarm.CFN_RESOURCE_TYPE_NAME;
12
+ }
13
+ /**
14
+ * Version-portable replacement for `CfnCompositeAlarm.isCfnCompositeAlarm`.
15
+ * See {@link isCfnAlarm} for why this exists.
16
+ */
17
+ export function isCfnCompositeAlarm(x) {
18
+ return (CfnResource.isCfnResource(x) && x.cfnResourceType === CfnCompositeAlarm.CFN_RESOURCE_TYPE_NAME);
19
+ }
20
+ export function matchesOne(matcher, ctx) {
21
+ if (typeof matcher === "function")
22
+ return matcher(ctx);
23
+ if (matcher instanceof RegExp)
24
+ return matcher.test(ctx.path);
25
+ return ctx.id.includes(matcher) || ctx.path.includes(matcher);
26
+ }
27
+ export function ruleMatches(rule, ctx) {
28
+ if (rule.singleOnly === true && ctx.isComposite)
29
+ return false;
30
+ if (rule.compositeOnly === true && !ctx.isComposite)
31
+ return false;
32
+ const matchers = Array.isArray(rule.match) ? rule.match : [rule.match];
33
+ return matchers.some((m) => matchesOne(m, ctx));
34
+ }
35
+ //# sourceMappingURL=policy-matcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy-matcher.js","sourceRoot":"","sources":["../../../src/policies/policy-matcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAe,MAAM,4BAA4B,CAAC;AAGtF;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,CAAa;IACtC,OAAO,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,KAAK,QAAQ,CAAC,sBAAsB,CAAC;AAC/F,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,CAAa;IAC/C,OAAO,CACL,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,KAAK,iBAAiB,CAAC,sBAAsB,CAC/F,CAAC;AACJ,CAAC;AAgCD,MAAM,UAAU,UAAU,CAAC,OAAqB,EAAE,GAAsB;IACtE,IAAI,OAAO,OAAO,KAAK,UAAU;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;IACvD,IAAI,OAAO,YAAY,MAAM;QAAE,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7D,OAAO,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAoB,EAAE,GAAsB;IACtE,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,GAAG,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IAC9D,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IAClE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAClD,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { TreatMissingData } from "aws-cdk-lib/aws-cloudwatch";
2
+ import type { AlarmConfig, AlarmConfigDefaults } from "./alarm-config.js";
3
+ import type { AlarmName } from "./alarm-name.js";
4
+ /**
5
+ * A fully-resolved alarm configuration. Every numeric/enum field is required;
6
+ * `alarmName` is carried through verbatim from user config (or `undefined`
7
+ * when the consumer is happy with the library default).
8
+ *
9
+ * Produced by {@link resolveAlarmConfig} after merging user overrides onto
10
+ * defaults.
11
+ */
12
+ export interface ResolvedAlarmConfig {
13
+ alarmName?: AlarmName;
14
+ threshold: number;
15
+ evaluationPeriods: number;
16
+ datapointsToAlarm: number;
17
+ treatMissingData: TreatMissingData;
18
+ }
19
+ /**
20
+ * Resolves an absolute-threshold alarm config by layering user overrides
21
+ * onto the defaults. `alarmName` is propagated from user config only;
22
+ * defaults intentionally do not specify a name.
23
+ */
24
+ export declare function resolveAlarmConfig(userConfig: AlarmConfig | undefined, defaults: AlarmConfigDefaults): ResolvedAlarmConfig;
25
+ //# sourceMappingURL=resolve-alarm-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-alarm-config.d.ts","sourceRoot":"","sources":["../../src/resolve-alarm-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,WAAW,GAAG,SAAS,EACnC,QAAQ,EAAE,mBAAmB,GAC5B,mBAAmB,CAQrB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-alarm-config.js","sourceRoot":"","sources":["../../src/resolve-alarm-config.ts"],"names":[],"mappings":"AAoBA;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAAmC,EACnC,QAA6B;IAE7B,OAAO;QACL,SAAS,EAAE,UAAU,EAAE,SAAS;QAChC,SAAS,EAAE,UAAU,EAAE,SAAS,IAAI,QAAQ,CAAC,SAAS;QACtD,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,IAAI,QAAQ,CAAC,iBAAiB;QAC9E,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,IAAI,QAAQ,CAAC,iBAAiB;QAC9E,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,IAAI,QAAQ,CAAC,gBAAgB;KAC5E,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,29 +1,22 @@
1
1
  {
2
2
  "name": "@composurecdk/cloudwatch",
3
- "version": "0.7.0",
3
+ "version": "0.8.1",
4
4
  "description": "Composable CloudWatch alarm primitives for composureCDK resource packages",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/laazyj/composureCDK",
8
8
  "directory": "packages/cloudwatch"
9
9
  },
10
- "main": "./dist/index.js",
11
- "types": "./dist/index.d.ts",
12
- "exports": {
13
- ".": {
14
- "import": "./dist/index.js",
15
- "types": "./dist/index.d.ts"
16
- }
17
- },
18
10
  "files": [
19
11
  "dist",
20
12
  "README.md",
21
13
  "LICENSE"
22
14
  ],
23
15
  "scripts": {
24
- "clean": "rm -rf dist",
25
- "build": "tsc -p tsconfig.build.json",
16
+ "clean": "rm -rf dist .tshy .tshy-build",
17
+ "build": "tshy",
26
18
  "typecheck": "tsc --noEmit",
19
+ "check:exports": "attw --pack . --profile node16 && publint",
27
20
  "test": "vitest run --passWithNoTests",
28
21
  "test:watch": "vitest"
29
22
  },
@@ -34,15 +27,40 @@
34
27
  "access": "public"
35
28
  },
36
29
  "type": "module",
30
+ "engines": {
31
+ "node": ">=20"
32
+ },
33
+ "tshy": {
34
+ "exports": {
35
+ "./package.json": "./package.json",
36
+ ".": "./src/index.ts"
37
+ }
38
+ },
37
39
  "peerDependencies": {
38
40
  "aws-cdk-lib": "^2.0.0",
39
41
  "constructs": "^10.0.0"
40
42
  },
41
43
  "devDependencies": {
42
- "@types/node": "^25.6.0",
43
- "aws-cdk-lib": "^2.250.0",
44
+ "@types/node": "^25.9.1",
45
+ "aws-cdk-lib": "^2.257.0",
44
46
  "constructs": "^10.6.0",
45
47
  "typescript": "^6.0.3",
46
- "vitest": "^4.1.4"
47
- }
48
+ "vitest": "^4.1.7"
49
+ },
50
+ "exports": {
51
+ "./package.json": "./package.json",
52
+ ".": {
53
+ "import": {
54
+ "types": "./dist/esm/index.d.ts",
55
+ "default": "./dist/esm/index.js"
56
+ },
57
+ "require": {
58
+ "types": "./dist/commonjs/index.d.ts",
59
+ "default": "./dist/commonjs/index.js"
60
+ }
61
+ }
62
+ },
63
+ "main": "./dist/commonjs/index.js",
64
+ "types": "./dist/commonjs/index.d.ts",
65
+ "module": "./dist/esm/index.js"
48
66
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"alarm-config.d.ts","sourceRoot":"","sources":["../src/alarm-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"alarm-definition-builder.d.ts","sourceRoot":"","sources":["../src/alarm-definition-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,MAAM,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC/F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;;;;;GAQG;AACH,qBAAa,sBAAsB,CAAC,UAAU;;gBAWhC,GAAG,EAAE,MAAM;IAIvB,MAAM,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,UAAU,KAAK,MAAM,GAAG,IAAI;IAKxD;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAKhC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK9B,WAAW,IAAI,IAAI;IAKnB,kBAAkB,IAAI,IAAI;IAK1B,QAAQ,IAAI,IAAI;IAKhB,eAAe,IAAI,IAAI;IAKvB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAKlC,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAKlC,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI;IAKnD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,UAAU,EAAE,eAAe,KAAK,MAAM,CAAC,GAAG,IAAI;IAK3E;;;;;OAKG;IACH,OAAO,CAAC,SAAS,EAAE,UAAU,GAAG,eAAe;CAwBhD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"alarm-definition-builder.js","sourceRoot":"","sources":["../src/alarm-definition-builder.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- import type { ComparisonOperator, Metric, TreatMissingData } from "aws-cdk-lib/aws-cloudwatch";
2
- import type { AlarmName } from "./alarm-name.js";
3
- /**
4
- * A fully-resolved alarm descriptor. All fields are required —
5
- * this is the canonical form consumed by {@link createAlarms}.
6
- *
7
- * `alarmName` is the only optional field: when omitted, {@link createAlarms}
8
- * derives a default via `defaultAlarmName(scope, id, key)`.
9
- */
10
- export interface AlarmDefinition {
11
- key: string;
12
- alarmName?: AlarmName;
13
- metric: Metric;
14
- threshold: number;
15
- comparisonOperator: ComparisonOperator;
16
- evaluationPeriods: number;
17
- datapointsToAlarm: number;
18
- treatMissingData: TreatMissingData;
19
- description: string;
20
- }
21
- //# sourceMappingURL=alarm-definition.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"alarm-definition.d.ts","sourceRoot":"","sources":["../src/alarm-definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC/F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;CACrB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"alarm-name.d.ts","sourceRoot":"","sources":["../src/alarm-name.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,cAAc,EAAE,OAAO,MAAM,CAAC;AAE5C;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAKrE;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAclD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,SAAM,GAAG,SAAS,CAG/E;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ3C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"alarm-name.js","sourceRoot":"","sources":["../src/alarm-name.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,GAAG,6BAA6B,CAAC;AAClD,MAAM,OAAO,GAAG,GAAG,CAAC;AAEpB;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,OAAO,CAAC,YAAY,OAAO,GAAG,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,+FAA+F,OAAO,GAAG,CAC1G,CAAC;IACJ,CAAC;IACD,OAAO,OAAoB,CAAC;AAC9B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,QAA2B,EAAE,GAAG,GAAG,GAAG;IAClE,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9D,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,KAAa;IACjC,OAAO,KAAK;SACT,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,OAAO,CAAC,uBAAuB,EAAE,OAAO,CAAC;SACzC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;SACxB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;SACrB,WAAW,EAAE,CAAC;AACnB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-alarms.d.ts","sourceRoot":"","sources":["../src/create-alarms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAO7D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,UAAU,EACjB,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,eAAe,EAAE,GAC7B,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAsBvB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-alarms.js","sourceRoot":"","sources":["../src/create-alarms.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAiB,EACjB,EAAU,EACV,WAA8B;IAE9B,MAAM,MAAM,GAA0B,EAAE,CAAC;IAEzC,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,IAAI,GAAG,CAAC,GAAG,IAAI,MAAM,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,wBAAwB,GAAG,CAAC,GAAG,mEAAmE;gBAChG,8DAA8D,CACjE,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE;YAClF,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,gBAAgB,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC;YAChE,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;YACxC,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;YACxC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;YACtC,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;YAC1C,gBAAgB,EAAE,GAAG,CAAC,WAAW;SAClC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"default-alarm-name.d.ts","sourceRoot":"","sources":["../src/default-alarm-name.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,KAAK,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAEhE;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAGtF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"default-alarm-name.js","sourceRoot":"","sources":["../src/default-alarm-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAkB,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhE;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAiB,EAAE,EAAU,EAAE,GAAW;IACzE,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;IAC5C,OAAO,aAAa,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AAC7C,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,KAAK,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,YAAY,EACV,wBAAwB,EACxB,iBAAiB,EACjB,YAAY,GACb,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,yBAAyB,GAC/B,MAAM,iCAAiC,CAAC"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAkB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAA4B,MAAM,2BAA2B,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAMxE,OAAO,EACL,eAAe,GAIhB,MAAM,iCAAiC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"alarm-actions-policy.d.ts","sourceRoot":"","sources":["../../src/policies/alarm-actions-policy.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,KAAK,cAAc,EAAe,MAAM,qBAAqB,CAAC;AAGvE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE3E,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,uBAAuB,CAAC,EAAE,YAAY,EAAE,CAAC;CAC1C;AAED,uFAAuF;AACvF,MAAM,WAAW,eAAgB,SAAQ,cAAc,EAAE,cAAc;IACrE,iEAAiE;IACjE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,oDAAoD;AACpD,MAAM,WAAW,wBAAwB;IACvC,kGAAkG;IAClG,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,mFAAmF;IACnF,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;IAC1B,8DAA8D;IAC9D,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AA4DD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,wBAAwB,GAAG,IAAI,CAkD5F"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"alarm-actions-policy.js","sourceRoot":"","sources":["../../src/policies/alarm-actions-policy.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"alarm-name-policy.d.ts","sourceRoot":"","sources":["../../src/policies/alarm-name-policy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,KAAK,SAAS,EAA+B,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAe,MAAM,qBAAqB,CAAC;AAE/F,yDAAyD;AACzD,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,yBAAyB,KAAK,SAAS,CAAC;IAC1D,iGAAiG;IACjG,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,iDAAiD;AACjD,MAAM,WAAW,qBAAqB;IACpC,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC;IACpD,4DAA4D;IAC5D,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAgDtF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"alarm-name-policy.js","sourceRoot":"","sources":["../../src/policies/alarm-name-policy.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"policy-matcher.d.ts","sourceRoot":"","sources":["../../src/policies/policy-matcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEtF;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC;AAEnF;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,GAAG,EAAE,QAAQ,GAAG,iBAAiB,CAAC;IAC3C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAED,oEAAoE;AACpE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAIjF;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAKjF"}
@@ -1,16 +0,0 @@
1
- export function matchesOne(matcher, ctx) {
2
- if (typeof matcher === "function")
3
- return matcher(ctx);
4
- if (matcher instanceof RegExp)
5
- return matcher.test(ctx.path);
6
- return ctx.id.includes(matcher) || ctx.path.includes(matcher);
7
- }
8
- export function ruleMatches(rule, ctx) {
9
- if (rule.singleOnly === true && ctx.isComposite)
10
- return false;
11
- if (rule.compositeOnly === true && !ctx.isComposite)
12
- return false;
13
- const matchers = Array.isArray(rule.match) ? rule.match : [rule.match];
14
- return matchers.some((m) => matchesOne(m, ctx));
15
- }
16
- //# sourceMappingURL=policy-matcher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"policy-matcher.js","sourceRoot":"","sources":["../../src/policies/policy-matcher.ts"],"names":[],"mappings":"AAgCA,MAAM,UAAU,UAAU,CAAC,OAAqB,EAAE,GAAsB;IACtE,IAAI,OAAO,OAAO,KAAK,UAAU;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;IACvD,IAAI,OAAO,YAAY,MAAM;QAAE,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7D,OAAO,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAoB,EAAE,GAAsB;IACtE,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,GAAG,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IAC9D,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IAClE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAClD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve-alarm-config.d.ts","sourceRoot":"","sources":["../src/resolve-alarm-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,WAAW,GAAG,SAAS,EACnC,QAAQ,EAAE,mBAAmB,GAC5B,mBAAmB,CAQrB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve-alarm-config.js","sourceRoot":"","sources":["../src/resolve-alarm-config.ts"],"names":[],"mappings":"AAoBA;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAAmC,EACnC,QAA6B;IAE7B,OAAO;QACL,SAAS,EAAE,UAAU,EAAE,SAAS;QAChC,SAAS,EAAE,UAAU,EAAE,SAAS,IAAI,QAAQ,CAAC,SAAS;QACtD,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,IAAI,QAAQ,CAAC,iBAAiB;QAC9E,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,IAAI,QAAQ,CAAC,iBAAiB;QAC9E,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,IAAI,QAAQ,CAAC,gBAAgB;KAC5E,CAAC;AACJ,CAAC"}
File without changes