@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,267 @@
1
+ import { RecordTarget } from "aws-cdk-lib/aws-route53";
2
+ import { Construct } from "constructs";
3
+ import { constructId, resolve } from "@composurecdk/core";
4
+ import { createAaaaRecordBuilder } from "../aaaa-record-builder.js";
5
+ import { createARecordBuilder } from "../a-record-builder.js";
6
+ import { createCaaRecordBuilder } from "../caa-record-builder.js";
7
+ import { createCnameRecordBuilder, } from "../cname-record-builder.js";
8
+ import { createDsRecordBuilder } from "../ds-record-builder.js";
9
+ import { createHttpsRecordBuilder, } from "../https-record-builder.js";
10
+ import { createMxRecordBuilder } from "../mx-record-builder.js";
11
+ import { createNsRecordBuilder } from "../ns-record-builder.js";
12
+ import { createSrvRecordBuilder } from "../srv-record-builder.js";
13
+ import { createSvcbRecordBuilder } from "../svcb-record-builder.js";
14
+ import { createTxtRecordBuilder } from "../txt-record-builder.js";
15
+ import { APEX, } from "./zone-dsl.js";
16
+ /**
17
+ * Creates a single compose component that emits every record in `specs`.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * compose(
22
+ * {
23
+ * zone: createHostedZoneBuilder().zoneName("example.com"),
24
+ * records: zoneRecords([
25
+ * A("@", "1.2.3.4"),
26
+ * MX("@", 10, "mail.example.com."),
27
+ * ]).zone(ref<HostedZoneBuilderResult>("zone").get("hostedZone")),
28
+ * },
29
+ * { zone: [], records: ["zone"] },
30
+ * ).build(stack, "DNS");
31
+ * ```
32
+ */
33
+ export function zoneRecords(specs) {
34
+ return new ZoneRecordsBuilder(specs);
35
+ }
36
+ class ZoneRecordsBuilder {
37
+ specs;
38
+ _zone;
39
+ constructor(specs) {
40
+ this.specs = specs;
41
+ }
42
+ zone(zone) {
43
+ this._zone = zone;
44
+ return this;
45
+ }
46
+ build(scope, id, context) {
47
+ if (!this._zone) {
48
+ throw new Error(`zoneRecords "${id}" requires a zone. Call .zone() with an IHostedZone.`);
49
+ }
50
+ validateSpecs(this.specs);
51
+ const zone = resolve(this._zone, context ?? {});
52
+ const result = {
53
+ a: {},
54
+ aaaa: {},
55
+ cname: {},
56
+ txt: {},
57
+ mx: {},
58
+ srv: {},
59
+ caa: {},
60
+ ns: {},
61
+ ds: {},
62
+ https: {},
63
+ svcb: {},
64
+ };
65
+ const root = new Construct(scope, id);
66
+ const subScopes = new Map();
67
+ const subScope = (bucket) => {
68
+ let s = subScopes.get(bucket);
69
+ if (!s) {
70
+ s = new Construct(root, bucket);
71
+ subScopes.set(bucket, s);
72
+ }
73
+ return s;
74
+ };
75
+ for (const group of groupRecords(this.specs)) {
76
+ const head = group[0];
77
+ // Use the APEX sentinel ("@") as the key/id so it cannot collide with a
78
+ // user-supplied label spelled "apex".
79
+ const key = head.name;
80
+ const childId = constructId(key);
81
+ switch (head.type) {
82
+ case "A":
83
+ result.a[key] = buildA(subScope("a"), childId, group, zone, context);
84
+ break;
85
+ case "AAAA":
86
+ result.aaaa[key] = buildAaaa(subScope("aaaa"), childId, group, zone, context);
87
+ break;
88
+ case "CNAME":
89
+ result.cname[key] = buildCname(subScope("cname"), childId, group, zone, context);
90
+ break;
91
+ case "TXT":
92
+ result.txt[key] = buildTxt(subScope("txt"), childId, group, zone, context);
93
+ break;
94
+ case "MX":
95
+ result.mx[key] = buildMx(subScope("mx"), childId, group, zone, context);
96
+ break;
97
+ case "SRV":
98
+ result.srv[key] = buildSrv(subScope("srv"), childId, group, zone, context);
99
+ break;
100
+ case "CAA":
101
+ result.caa[key] = buildCaa(subScope("caa"), childId, group, zone, context);
102
+ break;
103
+ case "NS":
104
+ result.ns[key] = buildNs(subScope("ns"), childId, group, zone, context);
105
+ break;
106
+ case "DS":
107
+ result.ds[key] = buildDs(subScope("ds"), childId, group, zone, context);
108
+ break;
109
+ case "HTTPS":
110
+ result.https[key] = buildHttps(subScope("https"), childId, group, zone, context);
111
+ break;
112
+ case "SVCB":
113
+ result.svcb[key] = buildSvcb(subScope("svcb"), childId, group, zone, context);
114
+ break;
115
+ default: {
116
+ const _exhaustive = head;
117
+ throw new Error(`Unhandled record type: ${_exhaustive.type}`);
118
+ }
119
+ }
120
+ }
121
+ return result;
122
+ }
123
+ }
124
+ /** CDK-style record-name convention: apex is `undefined`. */
125
+ const sub = (name) => (name === APEX ? undefined : name);
126
+ /** Preserve insertion order while dropping duplicates. */
127
+ const dedupe = (xs) => [...new Set(xs)];
128
+ function validateSpecs(specs) {
129
+ for (const spec of specs) {
130
+ switch (spec.type) {
131
+ case "A":
132
+ case "AAAA":
133
+ if (spec.addresses.length === 0) {
134
+ throw new Error(`${spec.type}("${spec.name}") must supply at least one address.`);
135
+ }
136
+ break;
137
+ case "TXT":
138
+ case "MX":
139
+ case "SRV":
140
+ case "CAA":
141
+ case "NS":
142
+ case "DS":
143
+ case "HTTPS":
144
+ case "SVCB":
145
+ if (spec.values.length === 0) {
146
+ throw new Error(`${spec.type}("${spec.name}") must supply at least one value.`);
147
+ }
148
+ break;
149
+ case "CNAME":
150
+ // CNAME carries a single `target` string; the DSL factory cannot
151
+ // produce an empty one.
152
+ break;
153
+ }
154
+ }
155
+ }
156
+ /** Group records by `(type, name)`, preserving the insertion order of groups. */
157
+ function groupRecords(specs) {
158
+ const groups = new Map();
159
+ for (const s of specs) {
160
+ const k = `${s.type}/${s.name}`;
161
+ const existing = groups.get(k);
162
+ if (existing)
163
+ existing.push(s);
164
+ else
165
+ groups.set(k, [s]);
166
+ }
167
+ return [...groups.values()];
168
+ }
169
+ /** First non-undefined value of `field` across the group, or `undefined`. */
170
+ function pickOption(group, field) {
171
+ for (const s of group)
172
+ if (s[field] !== undefined)
173
+ return s[field];
174
+ return undefined;
175
+ }
176
+ function applyCommon(builder, specs, name) {
177
+ let b = builder;
178
+ if (name)
179
+ b = b.recordName(name);
180
+ const ttl = pickOption(specs, "ttl");
181
+ if (ttl)
182
+ b = b.ttl(ttl);
183
+ const comment = pickOption(specs, "comment");
184
+ if (comment)
185
+ b = b.comment(comment);
186
+ return b;
187
+ }
188
+ function buildA(scope, id, specs, zone, context) {
189
+ const addresses = dedupe(specs.flatMap((s) => [...s.addresses]));
190
+ const b = applyCommon(createARecordBuilder()
191
+ .zone(zone)
192
+ .target(RecordTarget.fromIpAddresses(...addresses)), specs, sub(specs[0].name));
193
+ return b.build(scope, id, context);
194
+ }
195
+ function buildAaaa(scope, id, specs, zone, context) {
196
+ const addresses = dedupe(specs.flatMap((s) => [...s.addresses]));
197
+ const b = applyCommon(createAaaaRecordBuilder()
198
+ .zone(zone)
199
+ .target(RecordTarget.fromIpAddresses(...addresses)), specs, sub(specs[0].name));
200
+ return b.build(scope, id, context);
201
+ }
202
+ function buildCname(scope, id, specs, zone, context) {
203
+ if (specs.length > 1) {
204
+ throw new Error(`CNAME for "${specs[0].name}" declared ${String(specs.length)} times. ` +
205
+ `DNS allows at most one CNAME per name.`);
206
+ }
207
+ const [spec] = specs;
208
+ const name = sub(spec.name);
209
+ if (!name)
210
+ throw new Error("CNAME records cannot live at the zone apex.");
211
+ let b = createCnameRecordBuilder().zone(zone).recordName(name).domainName(spec.target);
212
+ if (spec.ttl)
213
+ b = b.ttl(spec.ttl);
214
+ if (spec.comment)
215
+ b = b.comment(spec.comment);
216
+ return b.build(scope, id, context);
217
+ }
218
+ function buildTxt(scope, id, specs, zone, context) {
219
+ const values = dedupe(specs.flatMap((s) => [...s.values]));
220
+ const b = applyCommon(createTxtRecordBuilder().zone(zone).values(values), specs, sub(specs[0].name));
221
+ return b.build(scope, id, context);
222
+ }
223
+ function buildMx(scope, id, specs, zone, context) {
224
+ const values = specs.flatMap((s) => s.values.map((v) => ({ priority: v.priority, hostName: v.hostName })));
225
+ const b = applyCommon(createMxRecordBuilder().zone(zone).values(values), specs, sub(specs[0].name));
226
+ return b.build(scope, id, context);
227
+ }
228
+ function buildSrv(scope, id, specs, zone, context) {
229
+ const values = specs.flatMap((s) => s.values.map((v) => ({
230
+ priority: v.priority,
231
+ weight: v.weight,
232
+ port: v.port,
233
+ hostName: v.hostName,
234
+ })));
235
+ const b = applyCommon(createSrvRecordBuilder().zone(zone).values(values), specs, sub(specs[0].name));
236
+ return b.build(scope, id, context);
237
+ }
238
+ function buildCaa(scope, id, specs, zone, context) {
239
+ const values = specs.flatMap((s) => s.values.map((v) => ({ flag: v.flag, tag: v.tag, value: v.value })));
240
+ const b = applyCommon(createCaaRecordBuilder().zone(zone).values(values), specs, sub(specs[0].name));
241
+ return b.build(scope, id, context);
242
+ }
243
+ function buildNs(scope, id, specs, zone, context) {
244
+ const name = sub(specs[0].name);
245
+ if (!name) {
246
+ throw new Error(`NS records cannot live at the zone apex. The apex NS set is managed by Route 53.`);
247
+ }
248
+ const values = dedupe(specs.flatMap((s) => [...s.values]));
249
+ const b = applyCommon(createNsRecordBuilder().zone(zone).values(values), specs, name);
250
+ return b.build(scope, id, context);
251
+ }
252
+ function buildDs(scope, id, specs, zone, context) {
253
+ const values = dedupe(specs.flatMap((s) => [...s.values]));
254
+ const b = applyCommon(createDsRecordBuilder().zone(zone).values(values), specs, sub(specs[0].name));
255
+ return b.build(scope, id, context);
256
+ }
257
+ function buildHttps(scope, id, specs, zone, context) {
258
+ const values = specs.flatMap((s) => [...s.values]);
259
+ const b = applyCommon(createHttpsRecordBuilder().zone(zone).values(values), specs, sub(specs[0].name));
260
+ return b.build(scope, id, context);
261
+ }
262
+ function buildSvcb(scope, id, specs, zone, context) {
263
+ const values = specs.flatMap((s) => [...s.values]);
264
+ const b = applyCommon(createSvcbRecordBuilder().zone(zone).values(values), specs, sub(specs[0].name));
265
+ return b.build(scope, id, context);
266
+ }
267
+ //# sourceMappingURL=zone-records.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zone-records.js","sourceRoot":"","sources":["../../src/zone/zone-records.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@composurecdk/route53",
3
- "version": "0.3.4",
3
+ "version": "0.3.6",
4
4
  "description": "Composable Route53 hosted zone and record builders with well-architected defaults",
5
5
  "repository": {
6
6
  "type": "git",
@@ -13,6 +13,10 @@
13
13
  ".": {
14
14
  "import": "./dist/index.js",
15
15
  "types": "./dist/index.d.ts"
16
+ },
17
+ "./zone": {
18
+ "import": "./dist/zone/index.js",
19
+ "types": "./dist/zone/index.d.ts"
16
20
  }
17
21
  },
18
22
  "files": [