@composurecdk/route53 0.3.4 → 0.3.6

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 (62) hide show
  1. package/README.md +118 -10
  2. package/dist/a-record-builder.d.ts.map +1 -1
  3. package/dist/a-record-builder.js +2 -3
  4. package/dist/a-record-builder.js.map +1 -1
  5. package/dist/aaaa-record-builder.d.ts.map +1 -1
  6. package/dist/aaaa-record-builder.js +2 -3
  7. package/dist/aaaa-record-builder.js.map +1 -1
  8. package/dist/caa-record-builder.d.ts +44 -0
  9. package/dist/caa-record-builder.d.ts.map +1 -0
  10. package/dist/caa-record-builder.js +33 -0
  11. package/dist/caa-record-builder.js.map +1 -0
  12. package/dist/cname-record-builder.d.ts.map +1 -1
  13. package/dist/cname-record-builder.js +1 -2
  14. package/dist/cname-record-builder.js.map +1 -1
  15. package/dist/defaults.d.ts +42 -0
  16. package/dist/defaults.d.ts.map +1 -1
  17. package/dist/defaults.js +49 -0
  18. package/dist/defaults.js.map +1 -1
  19. package/dist/ds-record-builder.d.ts +42 -0
  20. package/dist/ds-record-builder.d.ts.map +1 -0
  21. package/dist/ds-record-builder.js +33 -0
  22. package/dist/ds-record-builder.js.map +1 -0
  23. package/dist/https-record-builder.d.ts +45 -0
  24. package/dist/https-record-builder.d.ts.map +1 -0
  25. package/dist/https-record-builder.js +41 -0
  26. package/dist/https-record-builder.js.map +1 -0
  27. package/dist/index.d.ts +8 -1
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +8 -1
  30. package/dist/index.js.map +1 -1
  31. package/dist/mx-record-builder.d.ts +40 -0
  32. package/dist/mx-record-builder.d.ts.map +1 -0
  33. package/dist/mx-record-builder.js +33 -0
  34. package/dist/mx-record-builder.js.map +1 -0
  35. package/dist/ns-record-builder.d.ts +40 -0
  36. package/dist/ns-record-builder.d.ts.map +1 -0
  37. package/dist/ns-record-builder.js +38 -0
  38. package/dist/ns-record-builder.js.map +1 -0
  39. package/dist/srv-record-builder.d.ts +40 -0
  40. package/dist/srv-record-builder.d.ts.map +1 -0
  41. package/dist/srv-record-builder.js +33 -0
  42. package/dist/srv-record-builder.js.map +1 -0
  43. package/dist/svcb-record-builder.d.ts +41 -0
  44. package/dist/svcb-record-builder.d.ts.map +1 -0
  45. package/dist/svcb-record-builder.js +34 -0
  46. package/dist/svcb-record-builder.js.map +1 -0
  47. package/dist/txt-record-builder.d.ts.map +1 -1
  48. package/dist/txt-record-builder.js +1 -2
  49. package/dist/txt-record-builder.js.map +1 -1
  50. package/dist/zone/index.d.ts +3 -0
  51. package/dist/zone/index.d.ts.map +1 -0
  52. package/dist/zone/index.js +3 -0
  53. package/dist/zone/index.js.map +1 -0
  54. package/dist/zone/zone-dsl.d.ts +252 -0
  55. package/dist/zone/zone-dsl.d.ts.map +1 -0
  56. package/dist/zone/zone-dsl.js +198 -0
  57. package/dist/zone/zone-dsl.js.map +1 -0
  58. package/dist/zone/zone-records.d.ts +67 -0
  59. package/dist/zone/zone-records.d.ts.map +1 -0
  60. package/dist/zone/zone-records.js +267 -0
  61. package/dist/zone/zone-records.js.map +1 -0
  62. package/package.json +5 -1
@@ -0,0 +1,41 @@
1
+ import { HttpsRecord, } from "aws-cdk-lib/aws-route53";
2
+ import { Builder, resolve, } from "@composurecdk/core";
3
+ import { HTTPS_RECORD_DEFAULTS } from "./defaults.js";
4
+ class HttpsRecordBuilder {
5
+ props = {};
6
+ build(scope, id, context) {
7
+ const { zone, target, values, ...rest } = this.props;
8
+ if (!zone) {
9
+ throw new Error(`HttpsRecordBuilder "${id}" requires a zone. Call .zone() with an IHostedZone.`);
10
+ }
11
+ if (values?.length === 0) {
12
+ throw new Error(`HttpsRecordBuilder "${id}" requires non-empty values. ` +
13
+ `Call .values() with one or more HttpsRecordValue entries, or use .target() instead.`);
14
+ }
15
+ const hasValues = values !== undefined;
16
+ if (hasValues === (target !== undefined)) {
17
+ throw new Error(`HttpsRecordBuilder "${id}" requires exactly one of .values() or .target(), not both.`);
18
+ }
19
+ const resolvedTarget = target ? resolve(target, context) : undefined;
20
+ const isAlias = resolvedTarget?.aliasTarget !== undefined;
21
+ const mergedProps = {
22
+ ...(isAlias ? {} : HTTPS_RECORD_DEFAULTS),
23
+ ...rest,
24
+ ...(hasValues ? { values } : {}),
25
+ ...(resolvedTarget ? { target: resolvedTarget } : {}),
26
+ zone: resolve(zone, context),
27
+ };
28
+ const record = new HttpsRecord(scope, id, mergedProps);
29
+ return { record };
30
+ }
31
+ }
32
+ /**
33
+ * Creates a new {@link IHttpsRecordBuilder} for configuring a Route53 HTTPS
34
+ * record.
35
+ *
36
+ * @returns A fluent builder for a Route53 HTTPS record.
37
+ */
38
+ export function createHttpsRecordBuilder() {
39
+ return Builder(HttpsRecordBuilder);
40
+ }
41
+ //# sourceMappingURL=https-record-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"https-record-builder.js","sourceRoot":"","sources":["../src/https-record-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,GAIZ,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,OAAO,EAGP,OAAO,GAER,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAkCtD,MAAM,kBAAkB;IACtB,KAAK,GAAqC,EAAE,CAAC;IAE7C,KAAK,CAAC,KAAiB,EAAE,EAAU,EAAE,OAAgC;QACnE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACrD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACb,uBAAuB,EAAE,sDAAsD,CAChF,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,uBAAuB,EAAE,+BAA+B;gBACtD,qFAAqF,CACxF,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,KAAK,SAAS,CAAC;QACvC,IAAI,SAAS,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CACb,uBAAuB,EAAE,6DAA6D,CACvF,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrE,MAAM,OAAO,GAAG,cAAc,EAAE,WAAW,KAAK,SAAS,CAAC;QAC1D,MAAM,WAAW,GAAG;YAClB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC;YACzC,GAAG,IAAI;YACP,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACT,CAAC;QAEtB,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QACvD,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO,OAAO,CAA8C,kBAAkB,CAAC,CAAC;AAClF,CAAC"}
package/dist/index.d.ts CHANGED
@@ -3,6 +3,13 @@ export { createARecordBuilder, type ARecordBuilderResult, type IARecordBuilder,
3
3
  export { createAaaaRecordBuilder, type AaaaRecordBuilderResult, type IAaaaRecordBuilder, } from "./aaaa-record-builder.js";
4
4
  export { createCnameRecordBuilder, type CnameRecordBuilderResult, type ICnameRecordBuilder, } from "./cname-record-builder.js";
5
5
  export { createTxtRecordBuilder, type TxtRecordBuilderResult, type ITxtRecordBuilder, } from "./txt-record-builder.js";
6
+ export { createMxRecordBuilder, type MxRecordBuilderResult, type IMxRecordBuilder, } from "./mx-record-builder.js";
7
+ export { createSrvRecordBuilder, type SrvRecordBuilderResult, type ISrvRecordBuilder, } from "./srv-record-builder.js";
8
+ export { createCaaRecordBuilder, type CaaRecordBuilderResult, type ICaaRecordBuilder, } from "./caa-record-builder.js";
9
+ export { createNsRecordBuilder, type NsRecordBuilderResult, type INsRecordBuilder, } from "./ns-record-builder.js";
10
+ export { createDsRecordBuilder, type DsRecordBuilderResult, type IDsRecordBuilder, } from "./ds-record-builder.js";
11
+ export { createHttpsRecordBuilder, type HttpsRecordBuilderResult, type IHttpsRecordBuilder, } from "./https-record-builder.js";
12
+ export { createSvcbRecordBuilder, type SvcbRecordBuilderResult, type ISvcbRecordBuilder, } from "./svcb-record-builder.js";
6
13
  export { cloudfrontAliasTarget, apiGatewayAliasTarget, apiGatewayDomainAliasTarget, } from "./alias-targets.js";
7
- export { HOSTED_ZONE_DEFAULTS, A_RECORD_DEFAULTS, AAAA_RECORD_DEFAULTS, CNAME_RECORD_DEFAULTS, TXT_RECORD_DEFAULTS, } from "./defaults.js";
14
+ export { HOSTED_ZONE_DEFAULTS, A_RECORD_DEFAULTS, AAAA_RECORD_DEFAULTS, CNAME_RECORD_DEFAULTS, TXT_RECORD_DEFAULTS, MX_RECORD_DEFAULTS, SRV_RECORD_DEFAULTS, CAA_RECORD_DEFAULTS, NS_RECORD_DEFAULTS, DS_RECORD_DEFAULTS, HTTPS_RECORD_DEFAULTS, SVCB_RECORD_DEFAULTS, } from "./defaults.js";
8
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,oBAAoB,EACpB,KAAK,oBAAoB,EACzB,KAAK,eAAe,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,uBAAuB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,wBAAwB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,GACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,oBAAoB,EACpB,KAAK,oBAAoB,EACzB,KAAK,eAAe,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,uBAAuB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,wBAAwB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,GACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,qBAAqB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,qBAAqB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,qBAAqB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,wBAAwB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,GACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,uBAAuB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -3,6 +3,13 @@ export { createARecordBuilder, } from "./a-record-builder.js";
3
3
  export { createAaaaRecordBuilder, } from "./aaaa-record-builder.js";
4
4
  export { createCnameRecordBuilder, } from "./cname-record-builder.js";
5
5
  export { createTxtRecordBuilder, } from "./txt-record-builder.js";
6
+ export { createMxRecordBuilder, } from "./mx-record-builder.js";
7
+ export { createSrvRecordBuilder, } from "./srv-record-builder.js";
8
+ export { createCaaRecordBuilder, } from "./caa-record-builder.js";
9
+ export { createNsRecordBuilder, } from "./ns-record-builder.js";
10
+ export { createDsRecordBuilder, } from "./ds-record-builder.js";
11
+ export { createHttpsRecordBuilder, } from "./https-record-builder.js";
12
+ export { createSvcbRecordBuilder, } from "./svcb-record-builder.js";
6
13
  export { cloudfrontAliasTarget, apiGatewayAliasTarget, apiGatewayDomainAliasTarget, } from "./alias-targets.js";
7
- export { HOSTED_ZONE_DEFAULTS, A_RECORD_DEFAULTS, AAAA_RECORD_DEFAULTS, CNAME_RECORD_DEFAULTS, TXT_RECORD_DEFAULTS, } from "./defaults.js";
14
+ export { HOSTED_ZONE_DEFAULTS, A_RECORD_DEFAULTS, AAAA_RECORD_DEFAULTS, CNAME_RECORD_DEFAULTS, TXT_RECORD_DEFAULTS, MX_RECORD_DEFAULTS, SRV_RECORD_DEFAULTS, CAA_RECORD_DEFAULTS, NS_RECORD_DEFAULTS, DS_RECORD_DEFAULTS, HTTPS_RECORD_DEFAULTS, SVCB_RECORD_DEFAULTS, } from "./defaults.js";
8
15
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,GAGxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,oBAAoB,GAGrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,uBAAuB,GAGxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,wBAAwB,GAGzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,sBAAsB,GAGvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,GAGxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,oBAAoB,GAGrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,uBAAuB,GAGxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,wBAAwB,GAGzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,sBAAsB,GAGvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,qBAAqB,GAGtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,sBAAsB,GAGvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,sBAAsB,GAGvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,qBAAqB,GAGtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,qBAAqB,GAGtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,wBAAwB,GAGzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,uBAAuB,GAGxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { MxRecord, type MxRecordProps, type IHostedZone } from "aws-cdk-lib/aws-route53";
2
+ import { type IConstruct } from "constructs";
3
+ import { type IBuilder, type Lifecycle, type Resolvable } from "@composurecdk/core";
4
+ /**
5
+ * Configuration properties for the Route53 MX record builder.
6
+ *
7
+ * Extends the CDK {@link MxRecordProps} but replaces `zone` with a
8
+ * {@link Resolvable} so it can be wired from composed components.
9
+ */
10
+ export interface MxRecordBuilderProps extends Omit<MxRecordProps, "zone"> {
11
+ /** The hosted zone in which to create the record. */
12
+ zone?: Resolvable<IHostedZone>;
13
+ }
14
+ /**
15
+ * The build output of an {@link IMxRecordBuilder}.
16
+ */
17
+ export interface MxRecordBuilderResult {
18
+ /** The Route53 MX record construct created by the builder. */
19
+ record: MxRecord;
20
+ }
21
+ /**
22
+ * A fluent builder for configuring and creating a Route53 MX record.
23
+ *
24
+ * MX records direct inbound mail to the host(s) responsible for accepting it.
25
+ * Each value pairs a priority (lower wins) with a fully-qualified mail-server
26
+ * host name. Pair with SPF/DKIM/DMARC TXT records for authenticated email.
27
+ */
28
+ export type IMxRecordBuilder = IBuilder<MxRecordBuilderProps, MxRecordBuilder>;
29
+ declare class MxRecordBuilder implements Lifecycle<MxRecordBuilderResult> {
30
+ props: Partial<MxRecordBuilderProps>;
31
+ build(scope: IConstruct, id: string, context?: Record<string, object>): MxRecordBuilderResult;
32
+ }
33
+ /**
34
+ * Creates a new {@link IMxRecordBuilder} for configuring a Route53 MX record.
35
+ *
36
+ * @returns A fluent builder for a Route53 MX record.
37
+ */
38
+ export declare function createMxRecordBuilder(): IMxRecordBuilder;
39
+ export {};
40
+ //# sourceMappingURL=mx-record-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mx-record-builder.d.ts","sourceRoot":"","sources":["../src/mx-record-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACzF,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,SAAS,EAEd,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAG5B;;;;;GAKG;AACH,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;IACvE,qDAAqD;IACrD,IAAI,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,8DAA8D;IAC9D,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;AAE/E,cAAM,eAAgB,YAAW,SAAS,CAAC,qBAAqB,CAAC;IAC/D,KAAK,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAM;IAE1C,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,qBAAqB;CAsB9F;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,gBAAgB,CAExD"}
@@ -0,0 +1,33 @@
1
+ import { MxRecord } from "aws-cdk-lib/aws-route53";
2
+ import { Builder, resolve, } from "@composurecdk/core";
3
+ import { MX_RECORD_DEFAULTS } from "./defaults.js";
4
+ class MxRecordBuilder {
5
+ props = {};
6
+ build(scope, id, context) {
7
+ const { zone, values, ...rest } = this.props;
8
+ if (!zone) {
9
+ throw new Error(`MxRecordBuilder "${id}" requires a zone. Call .zone() with an IHostedZone.`);
10
+ }
11
+ if (!values || values.length === 0) {
12
+ throw new Error(`MxRecordBuilder "${id}" requires non-empty values. ` +
13
+ `Call .values() with one or more { priority, hostName } entries.`);
14
+ }
15
+ const mergedProps = {
16
+ ...MX_RECORD_DEFAULTS,
17
+ ...rest,
18
+ values,
19
+ zone: resolve(zone, context),
20
+ };
21
+ const record = new MxRecord(scope, id, mergedProps);
22
+ return { record };
23
+ }
24
+ }
25
+ /**
26
+ * Creates a new {@link IMxRecordBuilder} for configuring a Route53 MX record.
27
+ *
28
+ * @returns A fluent builder for a Route53 MX record.
29
+ */
30
+ export function createMxRecordBuilder() {
31
+ return Builder(MxRecordBuilder);
32
+ }
33
+ //# sourceMappingURL=mx-record-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mx-record-builder.js","sourceRoot":"","sources":["../src/mx-record-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAwC,MAAM,yBAAyB,CAAC;AAEzF,OAAO,EACL,OAAO,EAGP,OAAO,GAER,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AA8BnD,MAAM,eAAe;IACnB,KAAK,GAAkC,EAAE,CAAC;IAE1C,KAAK,CAAC,KAAiB,EAAE,EAAU,EAAE,OAAgC;QACnE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE,sDAAsD,CAAC,CAAC;QAChG,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,oBAAoB,EAAE,+BAA+B;gBACnD,iEAAiE,CACpE,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG;YAClB,GAAG,kBAAkB;YACrB,GAAG,IAAI;YACP,MAAM;YACN,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACZ,CAAC;QAEnB,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QACpD,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,OAAO,CAAwC,eAAe,CAAC,CAAC;AACzE,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { NsRecord, type NsRecordProps, type IHostedZone } from "aws-cdk-lib/aws-route53";
2
+ import { type IConstruct } from "constructs";
3
+ import { type IBuilder, type Lifecycle, type Resolvable } from "@composurecdk/core";
4
+ /**
5
+ * Configuration properties for the Route53 NS record builder.
6
+ *
7
+ * Extends the CDK {@link NsRecordProps} but replaces `zone` with a
8
+ * {@link Resolvable} so it can be wired from composed components.
9
+ */
10
+ export interface NsRecordBuilderProps extends Omit<NsRecordProps, "zone"> {
11
+ /** The hosted zone in which to create the record. */
12
+ zone?: Resolvable<IHostedZone>;
13
+ }
14
+ /**
15
+ * The build output of an {@link INsRecordBuilder}.
16
+ */
17
+ export interface NsRecordBuilderResult {
18
+ /** The Route53 NS record construct created by the builder. */
19
+ record: NsRecord;
20
+ }
21
+ /**
22
+ * A fluent builder for configuring and creating a Route53 NS record.
23
+ *
24
+ * Use NS records to delegate a subdomain to a different set of name servers
25
+ * (including another Route53 hosted zone). The apex NS record set is managed
26
+ * by Route53 itself and should not be recreated here.
27
+ */
28
+ export type INsRecordBuilder = IBuilder<NsRecordBuilderProps, NsRecordBuilder>;
29
+ declare class NsRecordBuilder implements Lifecycle<NsRecordBuilderResult> {
30
+ props: Partial<NsRecordBuilderProps>;
31
+ build(scope: IConstruct, id: string, context?: Record<string, object>): NsRecordBuilderResult;
32
+ }
33
+ /**
34
+ * Creates a new {@link INsRecordBuilder} for configuring a Route53 NS record.
35
+ *
36
+ * @returns A fluent builder for a Route53 NS record.
37
+ */
38
+ export declare function createNsRecordBuilder(): INsRecordBuilder;
39
+ export {};
40
+ //# sourceMappingURL=ns-record-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ns-record-builder.d.ts","sourceRoot":"","sources":["../src/ns-record-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACzF,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,SAAS,EAEd,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAG5B;;;;;GAKG;AACH,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;IACvE,qDAAqD;IACrD,IAAI,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,8DAA8D;IAC9D,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;AAE/E,cAAM,eAAgB,YAAW,SAAS,CAAC,qBAAqB,CAAC;IAC/D,KAAK,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAM;IAE1C,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,qBAAqB;CA6B9F;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,gBAAgB,CAExD"}
@@ -0,0 +1,38 @@
1
+ import { NsRecord } from "aws-cdk-lib/aws-route53";
2
+ import { Builder, resolve, } from "@composurecdk/core";
3
+ import { NS_RECORD_DEFAULTS } from "./defaults.js";
4
+ class NsRecordBuilder {
5
+ props = {};
6
+ build(scope, id, context) {
7
+ const { zone, values, recordName, ...rest } = this.props;
8
+ if (!zone) {
9
+ throw new Error(`NsRecordBuilder "${id}" requires a zone. Call .zone() with an IHostedZone.`);
10
+ }
11
+ if (!recordName) {
12
+ throw new Error(`NsRecordBuilder "${id}" requires a recordName. ` +
13
+ `Call .recordName() with the delegated subdomain — the apex NS set is managed by Route53.`);
14
+ }
15
+ if (!values || values.length === 0) {
16
+ throw new Error(`NsRecordBuilder "${id}" requires non-empty values. ` +
17
+ `Call .values() with one or more fully-qualified name-server host names.`);
18
+ }
19
+ const mergedProps = {
20
+ ...NS_RECORD_DEFAULTS,
21
+ ...rest,
22
+ recordName,
23
+ values,
24
+ zone: resolve(zone, context),
25
+ };
26
+ const record = new NsRecord(scope, id, mergedProps);
27
+ return { record };
28
+ }
29
+ }
30
+ /**
31
+ * Creates a new {@link INsRecordBuilder} for configuring a Route53 NS record.
32
+ *
33
+ * @returns A fluent builder for a Route53 NS record.
34
+ */
35
+ export function createNsRecordBuilder() {
36
+ return Builder(NsRecordBuilder);
37
+ }
38
+ //# sourceMappingURL=ns-record-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ns-record-builder.js","sourceRoot":"","sources":["../src/ns-record-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAwC,MAAM,yBAAyB,CAAC;AAEzF,OAAO,EACL,OAAO,EAGP,OAAO,GAER,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AA8BnD,MAAM,eAAe;IACnB,KAAK,GAAkC,EAAE,CAAC;IAE1C,KAAK,CAAC,KAAiB,EAAE,EAAU,EAAE,OAAgC;QACnE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACzD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE,sDAAsD,CAAC,CAAC;QAChG,CAAC;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,oBAAoB,EAAE,2BAA2B;gBAC/C,0FAA0F,CAC7F,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,oBAAoB,EAAE,+BAA+B;gBACnD,yEAAyE,CAC5E,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG;YAClB,GAAG,kBAAkB;YACrB,GAAG,IAAI;YACP,UAAU;YACV,MAAM;YACN,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACZ,CAAC;QAEnB,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QACpD,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,OAAO,CAAwC,eAAe,CAAC,CAAC;AACzE,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { SrvRecord, type SrvRecordProps, type IHostedZone } from "aws-cdk-lib/aws-route53";
2
+ import { type IConstruct } from "constructs";
3
+ import { type IBuilder, type Lifecycle, type Resolvable } from "@composurecdk/core";
4
+ /**
5
+ * Configuration properties for the Route53 SRV record builder.
6
+ *
7
+ * Extends the CDK {@link SrvRecordProps} but replaces `zone` with a
8
+ * {@link Resolvable} so it can be wired from composed components.
9
+ */
10
+ export interface SrvRecordBuilderProps extends Omit<SrvRecordProps, "zone"> {
11
+ /** The hosted zone in which to create the record. */
12
+ zone?: Resolvable<IHostedZone>;
13
+ }
14
+ /**
15
+ * The build output of an {@link ISrvRecordBuilder}.
16
+ */
17
+ export interface SrvRecordBuilderResult {
18
+ /** The Route53 SRV record construct created by the builder. */
19
+ record: SrvRecord;
20
+ }
21
+ /**
22
+ * A fluent builder for configuring and creating a Route53 SRV record.
23
+ *
24
+ * SRV records advertise the location (host + port) of a named service, and
25
+ * the record name typically follows the `_service._proto` convention (e.g.
26
+ * `_sip._tcp`). Lower priority wins; weight distributes load across peers.
27
+ */
28
+ export type ISrvRecordBuilder = IBuilder<SrvRecordBuilderProps, SrvRecordBuilder>;
29
+ declare class SrvRecordBuilder implements Lifecycle<SrvRecordBuilderResult> {
30
+ props: Partial<SrvRecordBuilderProps>;
31
+ build(scope: IConstruct, id: string, context?: Record<string, object>): SrvRecordBuilderResult;
32
+ }
33
+ /**
34
+ * Creates a new {@link ISrvRecordBuilder} for configuring a Route53 SRV record.
35
+ *
36
+ * @returns A fluent builder for a Route53 SRV record.
37
+ */
38
+ export declare function createSrvRecordBuilder(): ISrvRecordBuilder;
39
+ export {};
40
+ //# sourceMappingURL=srv-record-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"srv-record-builder.d.ts","sourceRoot":"","sources":["../src/srv-record-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,SAAS,EAEd,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAG5B;;;;;GAKG;AACH,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC;IACzE,qDAAqD;IACrD,IAAI,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,+DAA+D;IAC/D,MAAM,EAAE,SAAS,CAAC;CACnB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,CAAC;AAElF,cAAM,gBAAiB,YAAW,SAAS,CAAC,sBAAsB,CAAC;IACjE,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAM;IAE3C,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,sBAAsB;CAwB/F;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,iBAAiB,CAE1D"}
@@ -0,0 +1,33 @@
1
+ import { SrvRecord } from "aws-cdk-lib/aws-route53";
2
+ import { Builder, resolve, } from "@composurecdk/core";
3
+ import { SRV_RECORD_DEFAULTS } from "./defaults.js";
4
+ class SrvRecordBuilder {
5
+ props = {};
6
+ build(scope, id, context) {
7
+ const { zone, values, ...rest } = this.props;
8
+ if (!zone) {
9
+ throw new Error(`SrvRecordBuilder "${id}" requires a zone. Call .zone() with an IHostedZone.`);
10
+ }
11
+ if (!values || values.length === 0) {
12
+ throw new Error(`SrvRecordBuilder "${id}" requires non-empty values. ` +
13
+ `Call .values() with one or more { priority, weight, port, hostName } entries.`);
14
+ }
15
+ const mergedProps = {
16
+ ...SRV_RECORD_DEFAULTS,
17
+ ...rest,
18
+ values,
19
+ zone: resolve(zone, context),
20
+ };
21
+ const record = new SrvRecord(scope, id, mergedProps);
22
+ return { record };
23
+ }
24
+ }
25
+ /**
26
+ * Creates a new {@link ISrvRecordBuilder} for configuring a Route53 SRV record.
27
+ *
28
+ * @returns A fluent builder for a Route53 SRV record.
29
+ */
30
+ export function createSrvRecordBuilder() {
31
+ return Builder(SrvRecordBuilder);
32
+ }
33
+ //# sourceMappingURL=srv-record-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"srv-record-builder.js","sourceRoot":"","sources":["../src/srv-record-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAyC,MAAM,yBAAyB,CAAC;AAE3F,OAAO,EACL,OAAO,EAGP,OAAO,GAER,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AA8BpD,MAAM,gBAAgB;IACpB,KAAK,GAAmC,EAAE,CAAC;IAE3C,KAAK,CAAC,KAAiB,EAAE,EAAU,EAAE,OAAgC;QACnE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACb,qBAAqB,EAAE,sDAAsD,CAC9E,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,qBAAqB,EAAE,+BAA+B;gBACpD,+EAA+E,CAClF,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG;YAClB,GAAG,mBAAmB;YACtB,GAAG,IAAI;YACP,MAAM;YACN,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACX,CAAC;QAEpB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QACrD,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,OAAO,CAA0C,gBAAgB,CAAC,CAAC;AAC5E,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { SvcbRecord, type SvcbRecordProps, type IHostedZone } from "aws-cdk-lib/aws-route53";
2
+ import { type IConstruct } from "constructs";
3
+ import { type IBuilder, type Lifecycle, type Resolvable } from "@composurecdk/core";
4
+ /**
5
+ * Configuration properties for the Route53 SVCB record builder.
6
+ *
7
+ * Extends the CDK {@link SvcbRecordProps} but replaces `zone` with a
8
+ * {@link Resolvable} so it can be wired from composed components.
9
+ */
10
+ export interface SvcbRecordBuilderProps extends Omit<SvcbRecordProps, "zone"> {
11
+ /** The hosted zone in which to create the record. */
12
+ zone?: Resolvable<IHostedZone>;
13
+ }
14
+ /**
15
+ * The build output of an {@link ISvcbRecordBuilder}.
16
+ */
17
+ export interface SvcbRecordBuilderResult {
18
+ /** The Route53 SVCB record construct created by the builder. */
19
+ record: SvcbRecord;
20
+ }
21
+ /**
22
+ * A fluent builder for configuring and creating a Route53 SVCB record.
23
+ *
24
+ * SVCB is the generic service-binding record type (RFC 9460). For HTTPS
25
+ * specifically, prefer {@link createHttpsRecordBuilder} — most clients only
26
+ * consult HTTPS records for web traffic.
27
+ */
28
+ export type ISvcbRecordBuilder = IBuilder<SvcbRecordBuilderProps, SvcbRecordBuilder>;
29
+ declare class SvcbRecordBuilder implements Lifecycle<SvcbRecordBuilderResult> {
30
+ props: Partial<SvcbRecordBuilderProps>;
31
+ build(scope: IConstruct, id: string, context?: Record<string, object>): SvcbRecordBuilderResult;
32
+ }
33
+ /**
34
+ * Creates a new {@link ISvcbRecordBuilder} for configuring a Route53 SVCB
35
+ * record.
36
+ *
37
+ * @returns A fluent builder for a Route53 SVCB record.
38
+ */
39
+ export declare function createSvcbRecordBuilder(): ISvcbRecordBuilder;
40
+ export {};
41
+ //# sourceMappingURL=svcb-record-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svcb-record-builder.d.ts","sourceRoot":"","sources":["../src/svcb-record-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC7F,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,SAAS,EAEd,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAG5B;;;;;GAKG;AACH,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC;IAC3E,qDAAqD;IACrD,IAAI,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,gEAAgE;IAChE,MAAM,EAAE,UAAU,CAAC;CACpB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC,sBAAsB,EAAE,iBAAiB,CAAC,CAAC;AAErF,cAAM,iBAAkB,YAAW,SAAS,CAAC,uBAAuB,CAAC;IACnE,KAAK,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAM;IAE5C,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,uBAAuB;CAwBhG;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,kBAAkB,CAE5D"}
@@ -0,0 +1,34 @@
1
+ import { SvcbRecord } from "aws-cdk-lib/aws-route53";
2
+ import { Builder, resolve, } from "@composurecdk/core";
3
+ import { SVCB_RECORD_DEFAULTS } from "./defaults.js";
4
+ class SvcbRecordBuilder {
5
+ props = {};
6
+ build(scope, id, context) {
7
+ const { zone, values, ...rest } = this.props;
8
+ if (!zone) {
9
+ throw new Error(`SvcbRecordBuilder "${id}" requires a zone. Call .zone() with an IHostedZone.`);
10
+ }
11
+ if (!values || values.length === 0) {
12
+ throw new Error(`SvcbRecordBuilder "${id}" requires non-empty values. ` +
13
+ `Call .values() with one or more SvcbRecordValue entries.`);
14
+ }
15
+ const mergedProps = {
16
+ ...SVCB_RECORD_DEFAULTS,
17
+ ...rest,
18
+ values,
19
+ zone: resolve(zone, context),
20
+ };
21
+ const record = new SvcbRecord(scope, id, mergedProps);
22
+ return { record };
23
+ }
24
+ }
25
+ /**
26
+ * Creates a new {@link ISvcbRecordBuilder} for configuring a Route53 SVCB
27
+ * record.
28
+ *
29
+ * @returns A fluent builder for a Route53 SVCB record.
30
+ */
31
+ export function createSvcbRecordBuilder() {
32
+ return Builder(SvcbRecordBuilder);
33
+ }
34
+ //# sourceMappingURL=svcb-record-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svcb-record-builder.js","sourceRoot":"","sources":["../src/svcb-record-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA0C,MAAM,yBAAyB,CAAC;AAE7F,OAAO,EACL,OAAO,EAGP,OAAO,GAER,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AA8BrD,MAAM,iBAAiB;IACrB,KAAK,GAAoC,EAAE,CAAC;IAE5C,KAAK,CAAC,KAAiB,EAAE,EAAU,EAAE,OAAgC;QACnE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACb,sBAAsB,EAAE,sDAAsD,CAC/E,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,sBAAsB,EAAE,+BAA+B;gBACrD,0DAA0D,CAC7D,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG;YAClB,GAAG,oBAAoB;YACvB,GAAG,IAAI;YACP,MAAM;YACN,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACV,CAAC;QAErB,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QACtD,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,OAAO,CAA4C,iBAAiB,CAAC,CAAC;AAC/E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"txt-record-builder.d.ts","sourceRoot":"","sources":["../src/txt-record-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,SAAS,EAEd,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAG5B;;;;;GAKG;AACH,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC;IACzE,qDAAqD;IACrD,IAAI,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,+DAA+D;IAC/D,MAAM,EAAE,SAAS,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,CAAC;AAElF,cAAM,gBAAiB,YAAW,SAAS,CAAC,sBAAsB,CAAC;IACjE,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAM;IAE3C,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,sBAAsB;CAyB/F;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,iBAAiB,CAE1D"}
1
+ {"version":3,"file":"txt-record-builder.d.ts","sourceRoot":"","sources":["../src/txt-record-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,SAAS,EAEd,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAG5B;;;;;GAKG;AACH,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC;IACzE,qDAAqD;IACrD,IAAI,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,+DAA+D;IAC/D,MAAM,EAAE,SAAS,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,CAAC;AAElF,cAAM,gBAAiB,YAAW,SAAS,CAAC,sBAAsB,CAAC;IACjE,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAM;IAE3C,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,sBAAsB;CAwB/F;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,iBAAiB,CAE1D"}
@@ -12,12 +12,11 @@ class TxtRecordBuilder {
12
12
  throw new Error(`TxtRecordBuilder "${id}" requires non-empty values. ` +
13
13
  `Call .values() with one or more TXT record strings.`);
14
14
  }
15
- const resolvedContext = context ?? {};
16
15
  const mergedProps = {
17
16
  ...TXT_RECORD_DEFAULTS,
18
17
  ...rest,
19
18
  values,
20
- zone: resolve(zone, resolvedContext),
19
+ zone: resolve(zone, context),
21
20
  };
22
21
  const record = new TxtRecord(scope, id, mergedProps);
23
22
  return { record };
@@ -1 +1 @@
1
- {"version":3,"file":"txt-record-builder.js","sourceRoot":"","sources":["../src/txt-record-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAyC,MAAM,yBAAyB,CAAC;AAE3F,OAAO,EACL,OAAO,EAGP,OAAO,GAER,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AA4BpD,MAAM,gBAAgB;IACpB,KAAK,GAAmC,EAAE,CAAC;IAE3C,KAAK,CAAC,KAAiB,EAAE,EAAU,EAAE,OAAgC;QACnE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACb,qBAAqB,EAAE,sDAAsD,CAC9E,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,qBAAqB,EAAE,+BAA+B;gBACpD,qDAAqD,CACxD,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,OAAO,IAAI,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG;YAClB,GAAG,mBAAmB;YACtB,GAAG,IAAI;YACP,MAAM;YACN,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC;SACnB,CAAC;QAEpB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QACrD,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,OAAO,CAA0C,gBAAgB,CAAC,CAAC;AAC5E,CAAC"}
1
+ {"version":3,"file":"txt-record-builder.js","sourceRoot":"","sources":["../src/txt-record-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAyC,MAAM,yBAAyB,CAAC;AAE3F,OAAO,EACL,OAAO,EAGP,OAAO,GAER,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AA4BpD,MAAM,gBAAgB;IACpB,KAAK,GAAmC,EAAE,CAAC;IAE3C,KAAK,CAAC,KAAiB,EAAE,EAAU,EAAE,OAAgC;QACnE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACb,qBAAqB,EAAE,sDAAsD,CAC9E,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,qBAAqB,EAAE,+BAA+B;gBACpD,qDAAqD,CACxD,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG;YAClB,GAAG,mBAAmB;YACtB,GAAG,IAAI;YACP,MAAM;YACN,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACX,CAAC;QAEpB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QACrD,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,OAAO,CAA0C,gBAAgB,CAAC,CAAC;AAC5E,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { APEX, A, AAAA, CNAME, TXT, MX, SRV, CAA, CAA_ISSUE, CAA_ISSUEWILD, CAA_IODEF, NS, DS, HTTPS, SVCB, type RecordOptions, type RecordSpec, type RecordType, type ARecordSpec, type AaaaRecordSpec, type CnameRecordSpec, type TxtRecordSpec, type MxRecordSpec, type SrvRecordSpec, type CaaRecordSpec, type NsRecordSpec, type DsRecordSpec, type HttpsRecordSpec, type SvcbRecordSpec, } from "./zone-dsl.js";
2
+ export { zoneRecords, type IZoneRecordsBuilder, type ZoneRecordsBuilderResult, } from "./zone-records.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/zone/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,CAAC,EACD,IAAI,EACJ,KAAK,EACL,GAAG,EACH,EAAE,EACF,GAAG,EACH,GAAG,EACH,SAAS,EACT,aAAa,EACb,SAAS,EACT,EAAE,EACF,EAAE,EACF,KAAK,EACL,IAAI,EACJ,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,cAAc,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,WAAW,EACX,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,GAC9B,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { APEX, A, AAAA, CNAME, TXT, MX, SRV, CAA, CAA_ISSUE, CAA_ISSUEWILD, CAA_IODEF, NS, DS, HTTPS, SVCB, } from "./zone-dsl.js";
2
+ export { zoneRecords, } from "./zone-records.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/zone/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,CAAC,EACD,IAAI,EACJ,KAAK,EACL,GAAG,EACH,EAAE,EACF,GAAG,EACH,GAAG,EACH,SAAS,EACT,aAAa,EACb,SAAS,EACT,EAAE,EACF,EAAE,EACF,KAAK,EACL,IAAI,GAeL,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,WAAW,GAGZ,MAAM,mBAAmB,CAAC"}