@intentius/chant-lexicon-aws 0.109.0 → 0.111.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/condition.d.ts +12 -1
- package/dist/condition.d.ts.map +1 -1
- package/dist/import/generator.d.ts +69 -0
- package/dist/import/generator.d.ts.map +1 -1
- package/dist/import/parser.d.ts.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/integrity.json +4 -4
- package/dist/intrinsics.d.ts +58 -6
- package/dist/intrinsics.d.ts.map +1 -1
- package/dist/lint/post-synth/cf-refs.d.ts.map +1 -1
- package/dist/lint/post-synth/waw042.d.ts.map +1 -1
- package/dist/manifest.json +22 -1
- package/dist/mapping.d.ts +27 -0
- package/dist/mapping.d.ts.map +1 -0
- package/dist/parameter.d.ts +16 -1
- package/dist/parameter.d.ts.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/rules/cf-refs.ts +12 -2
- package/dist/rules/waw042.ts +25 -4
- package/dist/serializer.d.ts.map +1 -1
- package/dist/template-sections.d.ts +44 -0
- package/dist/template-sections.d.ts.map +1 -0
- package/package.json +2 -2
- package/src/condition.test.ts +31 -0
- package/src/condition.ts +15 -1
- package/src/import/generator.test.ts +24 -3
- package/src/import/generator.ts +322 -49
- package/src/import/parser.test.ts +0 -1
- package/src/import/parser.ts +74 -21
- package/src/import/roundtrip-build.test.ts +322 -0
- package/src/import/roundtrip-fixtures.test.ts +3 -3
- package/src/index.ts +10 -0
- package/src/intrinsics.test.ts +7 -2
- package/src/intrinsics.ts +102 -13
- package/src/lint/post-synth/cf-refs.ts +12 -2
- package/src/lint/post-synth/waw019.test.ts +32 -0
- package/src/lint/post-synth/waw042.test.ts +28 -0
- package/src/lint/post-synth/waw042.ts +25 -4
- package/src/mapping.test.ts +64 -0
- package/src/mapping.ts +41 -0
- package/src/parameter.ts +22 -1
- package/src/plugin.test.ts +2 -1
- package/src/plugin.ts +3 -0
- package/src/serializer.ts +79 -12
- package/src/template-sections.ts +71 -0
package/dist/condition.d.ts
CHANGED
|
@@ -16,8 +16,19 @@ export declare class Condition implements Declarable {
|
|
|
16
16
|
readonly entityType = "AWS::CloudFormation::Condition";
|
|
17
17
|
/** The boolean expression: an `Equals`/`And`/`Or`/`Not` intrinsic. */
|
|
18
18
|
readonly expression: Intrinsic;
|
|
19
|
-
|
|
19
|
+
/** The condition's key in the template's `Conditions`, when it is not the
|
|
20
|
+
* export name. A template may use one name for a condition and a
|
|
21
|
+
* parameter; a module cannot export both under that name (#3604). */
|
|
22
|
+
readonly name?: string;
|
|
23
|
+
constructor(expression: Intrinsic, options?: {
|
|
24
|
+
name?: string;
|
|
25
|
+
});
|
|
20
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* The name a condition has in the template: its `name` option, else the
|
|
29
|
+
* logical name discovery gave it (the export name).
|
|
30
|
+
*/
|
|
31
|
+
export declare function conditionName(condition: Condition, entityNames?: Map<unknown, string>): string;
|
|
21
32
|
/**
|
|
22
33
|
* Type guard for the `Condition` declarable. Duck-typed on `entityType`
|
|
23
34
|
* rather than `instanceof` so a lexicon built against a separate copy of
|
package/dist/condition.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../src/condition.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,iBAAiB,EAAgB,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC/F,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../src/condition.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,iBAAiB,EAAgB,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC/F,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGzE,eAAO,MAAM,qBAAqB,mCAAmC,CAAC;AAEtE,qBAAa,SAAU,YAAW,UAAU;IAC1C,QAAQ,CAAC,CAAC,iBAAiB,CAAC,OAAiB;IAC7C,QAAQ,CAAC,OAAO,SAAS;IACzB,QAAQ,CAAC,UAAU,oCAAyB;IAC5C,sEAAsE;IACtE,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;IAC/B;;yEAEqE;IACrE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEvB,YAAY,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAQ7D;CACF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAE9F;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAE9D"}
|
|
@@ -4,8 +4,20 @@ import type { TypeScriptGenerator, GeneratedFile } from "@intentius/chant/import
|
|
|
4
4
|
* TypeScript code generator for CloudFormation templates
|
|
5
5
|
*/
|
|
6
6
|
export declare class CFGenerator implements TypeScriptGenerator {
|
|
7
|
+
/** One `main.ts` holds the whole template. Split files would each need the
|
|
8
|
+
* parameters, conditions and resources the others declare. */
|
|
9
|
+
readonly ownsLayout = true;
|
|
7
10
|
private typeToClass;
|
|
8
11
|
private allClassNames;
|
|
12
|
+
/** resourceType -> (property name on the class -> CloudFormation attribute name) */
|
|
13
|
+
private attrsByType;
|
|
14
|
+
/** Resource classes imported under another name, because a logical id in
|
|
15
|
+
* the template is the class's own name (`InternetGateway`). */
|
|
16
|
+
private classAliases;
|
|
17
|
+
/** Variable names for mappings ("m:<name>"), conditions ("c:<name>") and
|
|
18
|
+
* outputs ("o:<name>") whose template name is already a parameter's or
|
|
19
|
+
* resource's (#3604). */
|
|
20
|
+
private renames;
|
|
9
21
|
constructor();
|
|
10
22
|
/**
|
|
11
23
|
* Generate TypeScript files from intermediate representation
|
|
@@ -19,6 +31,55 @@ export declare class CFGenerator implements TypeScriptGenerator {
|
|
|
19
31
|
* Resolve a logical ID to a safe variable name, suffixing with _ if it conflicts with an imported symbol
|
|
20
32
|
*/
|
|
21
33
|
private safeVarName;
|
|
34
|
+
/**
|
|
35
|
+
* The property on the generated class that reads `attribute` of the
|
|
36
|
+
* resource `logicalId`, or undefined when the class has none. A dotted
|
|
37
|
+
* CloudFormation attribute (`Endpoint.Address`) maps to its underscored
|
|
38
|
+
* property (`Endpoint_Address`).
|
|
39
|
+
*/
|
|
40
|
+
private attrProperty;
|
|
41
|
+
/**
|
|
42
|
+
* An attribute read: `<var>.<property>` when the class exposes the
|
|
43
|
+
* attribute, else `GetAtt("<id>", "<attr>")`. CloudFormation accepts
|
|
44
|
+
* GetAtt on some writable properties (`AWS::SQS::Queue` `QueueName`) that
|
|
45
|
+
* the class does not list, and reading those as a property gives
|
|
46
|
+
* undefined.
|
|
47
|
+
*/
|
|
48
|
+
private attrExpr;
|
|
49
|
+
/** Whether `name` is a parameter or resource the template declares. */
|
|
50
|
+
private isDeclaredName;
|
|
51
|
+
/**
|
|
52
|
+
* Which of Ref and GetAtt the generated source calls beyond the IR's own
|
|
53
|
+
* Ref and GetAtt envelopes: Sub interpolations of a declared name, and
|
|
54
|
+
* attribute reads the class does not expose.
|
|
55
|
+
*/
|
|
56
|
+
private scanGeneratedIntrinsics;
|
|
57
|
+
/** Every name the template declares: parameters, resources, conditions, outputs. */
|
|
58
|
+
private declaredNames;
|
|
59
|
+
/** The template's Mappings section, as the parser carried it. */
|
|
60
|
+
private mappings;
|
|
61
|
+
/** The variable a declared mapping is exported as. */
|
|
62
|
+
private mappingVar;
|
|
63
|
+
/** A mapping declaration. */
|
|
64
|
+
private generateMapping;
|
|
65
|
+
/**
|
|
66
|
+
* A resource class whose name the template also uses for something it
|
|
67
|
+
* declares is imported under an alias (`InternetGateway as
|
|
68
|
+
* InternetGatewayResource`), so the declaration keeps its name. Suffixing
|
|
69
|
+
* the declaration instead would change its logical id.
|
|
70
|
+
*/
|
|
71
|
+
private computeClassAliases;
|
|
72
|
+
/** `templateDescription(...)` and `templateMetadata(...)` for the template's own sections. */
|
|
73
|
+
private generateTemplateSections;
|
|
74
|
+
/**
|
|
75
|
+
* A condition or output whose template name is a parameter's or resource's
|
|
76
|
+
* cannot be exported under that name too. It gets a suffixed variable
|
|
77
|
+
* (`EnableReadReplicaCondition`, `QueueNameOutput`), and the generated code
|
|
78
|
+
* passes the template name as its `name` option.
|
|
79
|
+
*/
|
|
80
|
+
private collisionRenames;
|
|
81
|
+
/** The variable a declared condition is exported as. */
|
|
82
|
+
private conditionVar;
|
|
22
83
|
/**
|
|
23
84
|
* Generate import statements
|
|
24
85
|
*/
|
|
@@ -32,6 +93,8 @@ export declare class CFGenerator implements TypeScriptGenerator {
|
|
|
32
93
|
* Check if AWS pseudo-parameters are used
|
|
33
94
|
*/
|
|
34
95
|
private needsAWSPseudo;
|
|
96
|
+
/** Every IR value the generator writes as source. */
|
|
97
|
+
private generatedValues;
|
|
35
98
|
/**
|
|
36
99
|
* Recursively check for AWS pseudo-parameter references
|
|
37
100
|
*/
|
|
@@ -67,6 +130,12 @@ export declare class CFGenerator implements TypeScriptGenerator {
|
|
|
67
130
|
* Generate a resource declaration, or a comment if the type is unknown
|
|
68
131
|
*/
|
|
69
132
|
private generateResource;
|
|
133
|
+
/**
|
|
134
|
+
* DependsOn as the variables of the resources it names, so the generated
|
|
135
|
+
* source references them. A name the template does not declare as a
|
|
136
|
+
* supported resource stays a string.
|
|
137
|
+
*/
|
|
138
|
+
private generateDependsOn;
|
|
70
139
|
/**
|
|
71
140
|
* Generate property object as TypeScript
|
|
72
141
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/import/generator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAkD,MAAM,gCAAgC,CAAC;AAEjH,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAK5F;;GAEG;AACH,qBAAa,WAAY,YAAW,mBAAmB;IACrD,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,aAAa,CAAc;
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/import/generator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAkD,MAAM,gCAAgC,CAAC;AAEjH,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAK5F;;GAEG;AACH,qBAAa,WAAY,YAAW,mBAAmB;IACrD;kEAC8D;IAC9D,QAAQ,CAAC,UAAU,QAAQ;IAC3B,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,aAAa,CAAc;IACnC,oFAAoF;IACpF,OAAO,CAAC,WAAW,CAAsC;IACzD;mEAC+D;IAC/D,OAAO,CAAC,YAAY,CAAkC;IACtD;;6BAEyB;IACzB,OAAO,CAAC,OAAO,CAAkC;IAEjD,cAgBC;IAED;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,aAAa,EAAE,CAqExC;IAED;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA2B9B;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAQpB;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ;IAMhB,uEAAuE;IACvE,OAAO,CAAC,cAAc;IAItB;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IA2B/B,oFAAoF;IACpF,OAAO,CAAC,aAAa;IAUrB,iEAAiE;IACjE,OAAO,CAAC,QAAQ;IAIhB,sDAAsD;IACtD,OAAO,CAAC,UAAU;IAIlB,6BAA6B;IAC7B,OAAO,CAAC,eAAe;IAMvB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAa3B,8FAA8F;IAC9F,OAAO,CAAC,wBAAwB;IAmBhC;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAqBxB,wDAAwD;IACxD,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,eAAe;IAYvB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB,qDAAqD;IACrD,OAAO,CAAC,eAAe;IASvB;;OAEG;IACH,OAAO,CAAC,YAAY;IAyBpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAyC1B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAYtB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IASzB;;OAEG;IACH,OAAO,CAAC,cAAc;IA8BtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoCxB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAgJrB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA4D5B;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACH,OAAO,CAAC,UAAU;CAGnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/import/parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EAKX,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/import/parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EAKX,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AA4KtE;;;;GAIG;AACH,qBAAa,QAAS,SAAQ,eAAgB,YAAW,cAAc;IACrE;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CA4BjC;IAED;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CASrC;IAEH,OAAO,CAAC,6BAA6B;IAUrC;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB,CAAS;IAEtC,OAAO,CAAC,eAAe;IAWvB;;OAEG;IACH,OAAO,CAAC,YAAY;IAYpB;;OAEG;IACH,OAAO,CAAC,eAAe;IAgBvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAkBtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,GAAG,IAAI,CAuJtG;CACF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
export { Parameter } from "./parameter.js";
|
|
2
2
|
export { Condition, isCondition, CONDITION_ENTITY_TYPE } from "./condition.js";
|
|
3
|
+
export { Mapping, isMapping, MAPPING_ENTITY_TYPE } from "./mapping.js";
|
|
3
4
|
export { defaultTags, isDefaultTags, DEFAULT_TAGS_MARKER } from "./default-tags.js";
|
|
4
5
|
export type { DefaultTags, TagEntry } from "./default-tags.js";
|
|
5
6
|
export { templateTransform, isTemplateTransform, TEMPLATE_TRANSFORM_MARKER } from "./template-transform.js";
|
|
6
7
|
export type { TemplateTransform } from "./template-transform.js";
|
|
8
|
+
export { templateDescription, templateMetadata, isTemplateSection, TEMPLATE_SECTION_MARKER } from "./template-sections.js";
|
|
9
|
+
export type { TemplateSection } from "./template-sections.js";
|
|
7
10
|
export { EffectReceipt, receiptParameterName, AWS_EFFECT_RECEIPT_ENTITY_TYPE, EFFECT_RECEIPTS_METADATA_KEY, RECEIPT_PATH_PREFIX, RECEIPT_UNRESOLVED_VALUE_NOTE, } from "./effect-receipt-row.js";
|
|
8
11
|
export type { AwsEffectReceiptDeclaration } from "./effect-receipt-row.js";
|
|
9
12
|
export { awsReceiptStore, observeReceiptRows, ssmGetParameter, ssmPutParameter } from "./receipt-store.js";
|
|
@@ -22,7 +25,7 @@ export { awsPlugin } from "./plugin.js";
|
|
|
22
25
|
export { observeResourcesDeepAws, awsDeepNormalizationHooks, hasOwnershipMarker, DEEP_READABLE_TYPES, AWS_READ_ONLY_NAMES, AWS_SERVICE_DEFAULTS, } from "./deep-observe.js";
|
|
23
26
|
export { describeStackResources, describeStackOutputs, describeStackDetail, getResource, listResources, parseResourceDescription, resolveEndpointOverride, serviceEndpointEnvVar, AwsReadError, type AwsReadHttp, type AwsReadClientOptions, type CloudControlDescription, type StackResource, type StackDetail, type AwsCredentials, type AwsCredentialResolver, type AwsCredentialSource, } from "./api/read-client.js";
|
|
24
27
|
export { signRequest, resolveCredentials, EMPTY_PAYLOAD_SHA256, type SigV4Request, } from "./api/sigv4.js";
|
|
25
|
-
export { Sub, Ref, GetAtt, If, Join, Select, Split, Base64, GetAZs, Equals, And, Or, Not, SubIntrinsic, RefIntrinsic, GetAttIntrinsic, IfIntrinsic, JoinIntrinsic, SelectIntrinsic, SplitIntrinsic, Base64Intrinsic, GetAZsIntrinsic, EqualsIntrinsic, AndIntrinsic, OrIntrinsic, NotIntrinsic, } from "./intrinsics.js";
|
|
28
|
+
export { Sub, Ref, GetAtt, If, Join, Select, Split, Base64, GetAZs, Equals, And, Or, Not, SubIntrinsic, RefIntrinsic, GetAttIntrinsic, IfIntrinsic, JoinIntrinsic, SelectIntrinsic, SplitIntrinsic, Base64Intrinsic, GetAZsIntrinsic, EqualsIntrinsic, AndIntrinsic, OrIntrinsic, NotIntrinsic, FindInMap, FindInMapIntrinsic, ImportValue, ImportValueIntrinsic, Cidr, CidrIntrinsic, } from "./intrinsics.js";
|
|
26
29
|
export type { ConditionOperand } from "./intrinsics.js";
|
|
27
30
|
export { AWS, StackName, Region, AccountId, StackId, URLSuffix, NoValue, NotificationARNs, Partition, } from "./pseudo.js";
|
|
28
31
|
export * from "./generated/index.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/integrity.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"algorithm": "sha256",
|
|
3
3
|
"artifacts": {
|
|
4
|
-
"manifest.json": "
|
|
4
|
+
"manifest.json": "60db49c66da57afe3e836490a6340e6f20efae2ea10be41da72ed6ea66e1ec87",
|
|
5
5
|
"meta.json": "31795ba62a1da7503a8d55192c212ac44c56a56cdb2d4fde47966a1abc8b021b",
|
|
6
6
|
"types/index.d.ts": "1038589dccfc1e690e3373014bff4d319e4ed3b421db2448ed4e70d51eb9d1f2",
|
|
7
7
|
"rules/hardcoded-region.ts": "5a0eaf7ab391231fe6cd51426ece29539cb4b36f31c8dd060956638fed55722a",
|
|
8
8
|
"rules/iam-wildcard.ts": "135d7217d278fef50939e605c5da32603ba35674b8c4b5c4d66a06c77903e945",
|
|
9
9
|
"rules/s3-encryption.ts": "c4f9f8aa8dc382ed98c7b04e820a600590cc75335a8db2e087cbfbfe4003d09e",
|
|
10
|
-
"rules/cf-refs.ts": "
|
|
10
|
+
"rules/cf-refs.ts": "3fa8d144e430ae00204b159f1c8c5bf78576c52f984cc4f656eb366d7423f819",
|
|
11
11
|
"rules/cor020.ts": "915bbb4c083c7b3b84b93e8e891b5ffffe5a138fdccda32ecfdda91b8685798c",
|
|
12
12
|
"rules/ext001.ts": "f8703f37a50ab23d0ecaef539c0215a71269d420fa5e09a3d0454b18b7350b34",
|
|
13
13
|
"rules/waw010.ts": "41c58aaedb8f9fe266f4b40f1a076f762796427fdf9b317b8a4a50c713e45571",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"rules/waw039.ts": "31ba717d313bf8ca95a1e86227a82c33eced19bcaa0ac58dd06eda52a5ee431a",
|
|
42
42
|
"rules/waw040.ts": "3770dbabeb0af42df8df10f861fb98ea78588ce2cb9ba185d7b7c83ced07f86e",
|
|
43
43
|
"rules/waw041.ts": "930d4bf5df280ca5090be97b0d33366dad813b6aea8294530b9a3efb16c7637b",
|
|
44
|
-
"rules/waw042.ts": "
|
|
44
|
+
"rules/waw042.ts": "0a77ec28c2f0813a1ebac0d719623722fa2780cd2fff11b166bcc9bd4cfbce2d",
|
|
45
45
|
"rules/waw043.ts": "dc95d8e42d748d0971a4d5b0dac758030ef1aaf7b3645094e9fd7f659b82bb05",
|
|
46
46
|
"rules/waw044.ts": "00f9d3ed2e439157b05cc406bf710b8615969fb2ce96719f3fd66912c56ffec7",
|
|
47
47
|
"rules/waw045.ts": "3ee1ecb702fbf972192a81db48d6f5935434d9a7a81469e67b14ee9336d969dc",
|
|
@@ -73,5 +73,5 @@
|
|
|
73
73
|
"skills/chant-aws-eks.md": "8789255709ff004ad0a875fd5999edcdc66fc6e33d710db058d9f42703bcfdfe",
|
|
74
74
|
"skills/chant-aws-carve-terraform.md": "8780b94ce60aded935938d5ef20ea667738354051da1bf9ca6d70d9886f65d21"
|
|
75
75
|
},
|
|
76
|
-
"composite": "
|
|
76
|
+
"composite": "c02e4e927fc920efa8e78699f41120224950d3d900c9cc13a588106aceb4c7ad"
|
|
77
77
|
}
|
package/dist/intrinsics.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { INTRINSIC_MARKER, type Intrinsic } from "@intentius/chant/intrinsic";
|
|
2
2
|
import { type Declarable } from "@intentius/chant/declarable";
|
|
3
3
|
import { type Condition } from "./condition.js";
|
|
4
|
+
import { type Mapping } from "./mapping.js";
|
|
4
5
|
/**
|
|
5
6
|
* An operand allowed where CloudFormation expects a condition (#2068): a
|
|
6
7
|
* nested condition intrinsic (`Equals`/`And`/`Or`/`Not`), the `Condition`
|
|
@@ -51,8 +52,8 @@ export declare function Ref(target: string | Declarable): RefIntrinsic;
|
|
|
51
52
|
*/
|
|
52
53
|
export declare class GetAttIntrinsic implements Intrinsic {
|
|
53
54
|
readonly [INTRINSIC_MARKER]: true;
|
|
54
|
-
|
|
55
|
-
|
|
55
|
+
readonly logicalName: string;
|
|
56
|
+
readonly attribute: string;
|
|
56
57
|
constructor(logicalName: string, attribute: string);
|
|
57
58
|
toJSON(): {
|
|
58
59
|
"Fn::GetAtt": [string, string];
|
|
@@ -172,15 +173,16 @@ export declare class SelectIntrinsic implements Intrinsic {
|
|
|
172
173
|
readonly [INTRINSIC_MARKER]: true;
|
|
173
174
|
private index;
|
|
174
175
|
private values;
|
|
175
|
-
constructor(index: number, values: unknown[] | Intrinsic);
|
|
176
|
+
constructor(index: number | string, values: unknown[] | Intrinsic);
|
|
176
177
|
toJSON(): {
|
|
177
|
-
"Fn::Select": [string, unknown];
|
|
178
|
+
"Fn::Select": [number | string, unknown];
|
|
178
179
|
};
|
|
179
180
|
}
|
|
180
181
|
/**
|
|
181
|
-
* Create a Select intrinsic
|
|
182
|
+
* Create a Select intrinsic. The index is emitted as written: CloudFormation
|
|
183
|
+
* accepts `0` and `"0"`.
|
|
182
184
|
*/
|
|
183
|
-
export declare function Select(index: number, values: unknown[] | Intrinsic): SelectIntrinsic;
|
|
185
|
+
export declare function Select(index: number | string, values: unknown[] | Intrinsic): SelectIntrinsic;
|
|
184
186
|
/**
|
|
185
187
|
* Fn::Split intrinsic function
|
|
186
188
|
* Splits a string by delimiter
|
|
@@ -230,4 +232,54 @@ export declare class GetAZsIntrinsic implements Intrinsic {
|
|
|
230
232
|
* Create a GetAZs intrinsic
|
|
231
233
|
*/
|
|
232
234
|
export declare function GetAZs(region?: string | Intrinsic): GetAZsIntrinsic;
|
|
235
|
+
/**
|
|
236
|
+
* Fn::FindInMap intrinsic function
|
|
237
|
+
* Reads the value under two keys of a declared mapping.
|
|
238
|
+
*/
|
|
239
|
+
export declare class FindInMapIntrinsic implements Intrinsic {
|
|
240
|
+
readonly [INTRINSIC_MARKER]: true;
|
|
241
|
+
private mapName;
|
|
242
|
+
private topLevelKey;
|
|
243
|
+
private secondLevelKey;
|
|
244
|
+
constructor(mapName: string | Mapping, topLevelKey: unknown, secondLevelKey: unknown);
|
|
245
|
+
toJSON(): {
|
|
246
|
+
"Fn::FindInMap": [string, unknown, unknown];
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Create a FindInMap intrinsic. The mapping is the `Mapping` declarable, or
|
|
251
|
+
* its name. Either key may be a literal or a value intrinsic
|
|
252
|
+
* (`FindInMap(regionMap, AWS.Region, "AMI")`).
|
|
253
|
+
*/
|
|
254
|
+
export declare function FindInMap(mapName: string | Mapping, topLevelKey: unknown, secondLevelKey: unknown): FindInMapIntrinsic;
|
|
255
|
+
/**
|
|
256
|
+
* Fn::ImportValue intrinsic function
|
|
257
|
+
* Reads a value another stack exports.
|
|
258
|
+
*/
|
|
259
|
+
export declare class ImportValueIntrinsic implements Intrinsic {
|
|
260
|
+
readonly [INTRINSIC_MARKER]: true;
|
|
261
|
+
private sharedValue;
|
|
262
|
+
constructor(sharedValue: unknown);
|
|
263
|
+
toJSON(): {
|
|
264
|
+
"Fn::ImportValue": unknown;
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
/** Create an ImportValue intrinsic. The export name is a string or a value intrinsic (`Sub`). */
|
|
268
|
+
export declare function ImportValue(sharedValue: unknown): ImportValueIntrinsic;
|
|
269
|
+
/**
|
|
270
|
+
* Fn::Cidr intrinsic function
|
|
271
|
+
* Splits an address block into `count` CIDR blocks of `cidrBits` host bits.
|
|
272
|
+
*/
|
|
273
|
+
export declare class CidrIntrinsic implements Intrinsic {
|
|
274
|
+
readonly [INTRINSIC_MARKER]: true;
|
|
275
|
+
private ipBlock;
|
|
276
|
+
private count;
|
|
277
|
+
private cidrBits;
|
|
278
|
+
constructor(ipBlock: unknown, count: unknown, cidrBits: unknown);
|
|
279
|
+
toJSON(): {
|
|
280
|
+
"Fn::Cidr": [unknown, unknown, unknown];
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
/** Create a Cidr intrinsic. Each argument is a literal or a value intrinsic, written as the template writes it. */
|
|
284
|
+
export declare function Cidr(ipBlock: unknown, count: unknown, cidrBits: unknown): CidrIntrinsic;
|
|
233
285
|
//# sourceMappingURL=intrinsics.d.ts.map
|
package/dist/intrinsics.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intrinsics.d.ts","sourceRoot":"","sources":["../src/intrinsics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAsC,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAElH,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,
|
|
1
|
+
{"version":3,"file":"intrinsics.d.ts","sourceRoot":"","sources":["../src/intrinsics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cf-refs.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/cf-refs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACvC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,GAAG,IAAI,CAWvF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAI5D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,UAAU,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAcnF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAInD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,UAAU,GACnB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAoBhC;AAiBD;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,UAAU,GACnB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAahC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAK5F;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE9D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CASnF;AAUD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAO7E;
|
|
1
|
+
{"version":3,"file":"cf-refs.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/cf-refs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACvC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,GAAG,IAAI,CAWvF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAI5D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,UAAU,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAcnF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAInD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,UAAU,GACnB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAoBhC;AAiBD;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,UAAU,GACnB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAahC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAK5F;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE9D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CASnF;AAUD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAO7E;AAYD;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,OAAO,EACf,cAAc,EAAE,MAAM,EAAE,GACvB,OAAO,CAgBT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"waw042.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/waw042.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"waw042.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/waw042.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AA8C9G,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,gBAAgB,GAAG,mBAAmB,EAAE,CA2CjF;AAED,eAAO,MAAM,MAAM,EAAE,cAOpB,CAAC"}
|
package/dist/manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aws",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.111.0",
|
|
4
4
|
"chantVersion": ">=0.1.0",
|
|
5
5
|
"namespace": "AWS",
|
|
6
6
|
"intrinsics": [
|
|
@@ -93,6 +93,27 @@
|
|
|
93
93
|
"outputKey": "Fn::Not",
|
|
94
94
|
"isTag": false,
|
|
95
95
|
"foldsAsCall": true
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"name": "FindInMap",
|
|
99
|
+
"description": "Fn::FindInMap — value from a declared mapping",
|
|
100
|
+
"outputKey": "Fn::FindInMap",
|
|
101
|
+
"isTag": false,
|
|
102
|
+
"foldsAsCall": true
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"name": "ImportValue",
|
|
106
|
+
"description": "Fn::ImportValue — value another stack exports",
|
|
107
|
+
"outputKey": "Fn::ImportValue",
|
|
108
|
+
"isTag": false,
|
|
109
|
+
"foldsAsCall": true
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"name": "Cidr",
|
|
113
|
+
"description": "Fn::Cidr — CIDR blocks from an address block",
|
|
114
|
+
"outputKey": "Fn::Cidr",
|
|
115
|
+
"isTag": false,
|
|
116
|
+
"foldsAsCall": true
|
|
96
117
|
}
|
|
97
118
|
],
|
|
98
119
|
"pseudoParameters": {
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CloudFormation template mapping.
|
|
3
|
+
*
|
|
4
|
+
* A `Mapping` declarable is lifted into the template's `Mappings` section by
|
|
5
|
+
* the serializer, the way `Condition` is lifted into `Conditions`. Read a
|
|
6
|
+
* value from it with `FindInMap(mapping, topLevelKey, secondLevelKey)`.
|
|
7
|
+
*/
|
|
8
|
+
import { DECLARABLE_MARKER, type Declarable } from "@intentius/chant/declarable";
|
|
9
|
+
export declare const MAPPING_ENTITY_TYPE = "AWS::CloudFormation::Mapping";
|
|
10
|
+
export declare class Mapping implements Declarable {
|
|
11
|
+
readonly [DECLARABLE_MARKER]: true;
|
|
12
|
+
readonly lexicon = "aws";
|
|
13
|
+
readonly entityType = "AWS::CloudFormation::Mapping";
|
|
14
|
+
/** Top-level key -> second-level key -> value. */
|
|
15
|
+
readonly map: Record<string, Record<string, unknown>>;
|
|
16
|
+
/** The mapping's key in the template's `Mappings`, when it is not the
|
|
17
|
+
* export name. */
|
|
18
|
+
readonly name?: string;
|
|
19
|
+
constructor(map: Record<string, Record<string, unknown>>, options?: {
|
|
20
|
+
name?: string;
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
/** Type guard for the `Mapping` declarable, duck-typed on `entityType` (#1137). */
|
|
24
|
+
export declare function isMapping(value: unknown): value is Mapping;
|
|
25
|
+
/** The name a mapping has in the template: its `name` option, else its logical name. */
|
|
26
|
+
export declare function mappingName(mapping: Mapping): string;
|
|
27
|
+
//# sourceMappingURL=mapping.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,iBAAiB,EAAgB,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAG/F,eAAO,MAAM,mBAAmB,iCAAiC,CAAC;AAElE,qBAAa,OAAQ,YAAW,UAAU;IACxC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,OAAiB;IAC7C,QAAQ,CAAC,OAAO,SAAS;IACzB,QAAQ,CAAC,UAAU,kCAAuB;IAC1C,kDAAkD;IAClD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD;sBACkB;IAClB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEvB,YAAY,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAMpF;CACF;AAED,mFAAmF;AACnF,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAE1D;AAED,wFAAwF;AACxF,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAEpD"}
|
package/dist/parameter.d.ts
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
import { DECLARABLE_MARKER, type CoreParameter } from "@intentius/chant/declarable";
|
|
2
|
+
/**
|
|
3
|
+
* What CloudFormation checks a parameter value against. Numeric bounds are
|
|
4
|
+
* kept as written: templates write `MinLength: "1"` as often as `1`.
|
|
5
|
+
*/
|
|
6
|
+
export interface ParameterConstraints {
|
|
7
|
+
allowedValues?: unknown[];
|
|
8
|
+
allowedPattern?: string;
|
|
9
|
+
constraintDescription?: string;
|
|
10
|
+
minLength?: number | string;
|
|
11
|
+
maxLength?: number | string;
|
|
12
|
+
minValue?: number | string;
|
|
13
|
+
maxValue?: number | string;
|
|
14
|
+
noEcho?: boolean | string;
|
|
15
|
+
}
|
|
2
16
|
export declare class Parameter implements CoreParameter {
|
|
3
17
|
readonly [DECLARABLE_MARKER]: true;
|
|
4
18
|
readonly lexicon = "aws";
|
|
@@ -6,9 +20,10 @@ export declare class Parameter implements CoreParameter {
|
|
|
6
20
|
readonly parameterType: string;
|
|
7
21
|
readonly description?: string;
|
|
8
22
|
readonly defaultValue?: unknown;
|
|
23
|
+
readonly constraints?: ParameterConstraints;
|
|
9
24
|
constructor(type: string, options?: {
|
|
10
25
|
description?: string;
|
|
11
26
|
defaultValue?: unknown;
|
|
12
|
-
});
|
|
27
|
+
} & ParameterConstraints);
|
|
13
28
|
}
|
|
14
29
|
//# sourceMappingURL=parameter.d.ts.map
|
package/dist/parameter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter.d.ts","sourceRoot":"","sources":["../src/parameter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEpF,qBAAa,SAAU,YAAW,aAAa;IAC7C,QAAQ,CAAC,CAAC,iBAAiB,CAAC,OAAiB;IAC7C,QAAQ,CAAC,OAAO,SAAS;IACzB,QAAQ,CAAC,UAAU,oCAAoC;IACvD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"parameter.d.ts","sourceRoot":"","sources":["../src/parameter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEpF;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC3B;AAED,qBAAa,SAAU,YAAW,aAAa;IAC7C,QAAQ,CAAC,CAAC,iBAAiB,CAAC,OAAiB;IAC7C,QAAQ,CAAC,OAAO,SAAS;IACzB,QAAQ,CAAC,UAAU,oCAAoC;IACvD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,oBAAoB,CAAC;IAE5C,YAAY,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,oBAAoB,EAS1G;CACF"}
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAqQ,MAAM,0BAA0B,CAAC;AAuCjU;yEACyE;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAiBnD,eAAO,MAAM,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAqQ,MAAM,0BAA0B,CAAC;AAuCjU;yEACyE;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAiBnD,eAAO,MAAM,SAAS,EAAE,aAujCvB,CAAC"}
|
package/dist/rules/cf-refs.ts
CHANGED
|
@@ -209,6 +209,16 @@ export function ipv4CidrContains(outer: string, inner: string): boolean | null {
|
|
|
209
209
|
return iStart >= oStart && iEnd <= oEnd;
|
|
210
210
|
}
|
|
211
211
|
|
|
212
|
+
/**
|
|
213
|
+
* A port as a number. CloudFormation accepts `"80"` as well as `80`, so a
|
|
214
|
+
* string of digits counts; anything else reads as -1, which means all ports.
|
|
215
|
+
*/
|
|
216
|
+
function portNumber(port: unknown): number {
|
|
217
|
+
if (typeof port === "number") return port;
|
|
218
|
+
if (typeof port === "string" && /^-?\d+$/.test(port.trim())) return Number(port);
|
|
219
|
+
return -1;
|
|
220
|
+
}
|
|
221
|
+
|
|
212
222
|
/**
|
|
213
223
|
* Check if a port range [fromPort, toPort] contains any of the sensitive ports.
|
|
214
224
|
*/
|
|
@@ -220,8 +230,8 @@ export function portRangeContainsSensitive(
|
|
|
220
230
|
// Missing ports means all ports
|
|
221
231
|
if (fromPort === undefined && toPort === undefined) return true;
|
|
222
232
|
|
|
223
|
-
const from =
|
|
224
|
-
const to =
|
|
233
|
+
const from = portNumber(fromPort);
|
|
234
|
+
const to = portNumber(toPort);
|
|
225
235
|
|
|
226
236
|
// If either is an intrinsic, we can't statically verify
|
|
227
237
|
if (isIntrinsic(fromPort) || isIntrinsic(toPort)) return false;
|
package/dist/rules/waw042.ts
CHANGED
|
@@ -26,10 +26,31 @@ function statementDeniesInsecureTransport(stmt: Record<string, unknown>): boolea
|
|
|
26
26
|
return false;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
/**
|
|
30
|
-
function
|
|
29
|
+
/** A value as JSON with its object keys sorted, for comparing two values. */
|
|
30
|
+
function canonical(value: unknown): string {
|
|
31
|
+
return JSON.stringify(value, (_key, v) =>
|
|
32
|
+
v && typeof v === "object" && !Array.isArray(v)
|
|
33
|
+
? Object.fromEntries(Object.keys(v).sort().map((k) => [k, (v as Record<string, unknown>)[k]]))
|
|
34
|
+
: v,
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Logical ids of every bucket a BucketPolicy's `Bucket` property resolves to:
|
|
40
|
+
* a bucket it references (`Ref`, `GetAtt`), or a bucket whose `BucketName`
|
|
41
|
+
* is the same value (`Fn::Sub: "${AppName}-${AWS::Region}"` on both).
|
|
42
|
+
*/
|
|
43
|
+
function bucketPolicyTargets(resource: CFResource, resources: Record<string, CFResource>): Set<string> {
|
|
31
44
|
const props = resource.Properties ?? {};
|
|
32
|
-
|
|
45
|
+
const targets = findResourceRefs(props.Bucket);
|
|
46
|
+
if (props.Bucket === undefined) return targets;
|
|
47
|
+
const policyBucket = canonical(props.Bucket);
|
|
48
|
+
for (const [logicalId, other] of Object.entries(resources)) {
|
|
49
|
+
if (other.Type !== "AWS::S3::Bucket") continue;
|
|
50
|
+
const name = other.Properties?.BucketName;
|
|
51
|
+
if (name !== undefined && canonical(name) === policyBucket) targets.add(logicalId);
|
|
52
|
+
}
|
|
53
|
+
return targets;
|
|
33
54
|
}
|
|
34
55
|
|
|
35
56
|
export function checkS3TlsOnlyPolicy(ctx: PostSynthContext): PostSynthDiagnostic[] {
|
|
@@ -55,7 +76,7 @@ export function checkS3TlsOnlyPolicy(ctx: PostSynthContext): PostSynthDiagnostic
|
|
|
55
76
|
);
|
|
56
77
|
if (!hasTlsDeny) continue;
|
|
57
78
|
|
|
58
|
-
for (const bucketId of bucketPolicyTargets(resource)) {
|
|
79
|
+
for (const bucketId of bucketPolicyTargets(resource, template.Resources)) {
|
|
59
80
|
bucketsWithTlsPolicy.add(bucketId);
|
|
60
81
|
}
|
|
61
82
|
}
|
package/dist/serializer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAsC,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAsC,MAAM,6BAA6B,CAAC;AAykBlG;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,UA4E3B,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Template Description and Metadata — the template-level `Description` and
|
|
3
|
+
* `Metadata` sections of the synthesized CloudFormation template.
|
|
4
|
+
*
|
|
5
|
+
* Like `Transform` (./template-transform.ts), these belong to the template,
|
|
6
|
+
* not to a resource, so a project exports a declaration and the serializer
|
|
7
|
+
* lifts it to the top of the template. `chant import` writes them for the
|
|
8
|
+
* sections a template it imports has.
|
|
9
|
+
*/
|
|
10
|
+
import { DECLARABLE_MARKER, type Declarable } from "@intentius/chant/declarable";
|
|
11
|
+
/** Marker symbol for a template description or metadata declaration. */
|
|
12
|
+
export declare const TEMPLATE_SECTION_MARKER: unique symbol;
|
|
13
|
+
/** A template-level section the serializer lifts: `Description` or `Metadata`. */
|
|
14
|
+
export interface TemplateSection extends Declarable {
|
|
15
|
+
readonly [TEMPLATE_SECTION_MARKER]: true;
|
|
16
|
+
readonly [DECLARABLE_MARKER]: true;
|
|
17
|
+
readonly lexicon: "aws";
|
|
18
|
+
readonly entityType: "chant:aws:templateSection";
|
|
19
|
+
readonly section: "Description" | "Metadata";
|
|
20
|
+
readonly value: unknown;
|
|
21
|
+
}
|
|
22
|
+
/** Type guard for TemplateSection. */
|
|
23
|
+
export declare function isTemplateSection(value: unknown): value is TemplateSection;
|
|
24
|
+
/**
|
|
25
|
+
* Declare the template's top-level `Description`. One per template.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```ts
|
|
29
|
+
* export const description = templateDescription("Queue and its dead-letter queue");
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export declare function templateDescription(description: string): TemplateSection;
|
|
33
|
+
/**
|
|
34
|
+
* Declare entries in the template's top-level `Metadata`
|
|
35
|
+
* (`AWS::CloudFormation::Interface`, `cfn-lint` settings). Several
|
|
36
|
+
* declarations merge; keys chant writes itself are added after them.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```ts
|
|
40
|
+
* export const metadata = templateMetadata({ "cfn-lint": { config: { ignore_checks: ["W3005"] } } });
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export declare function templateMetadata(metadata: Record<string, unknown>): TemplateSection;
|
|
44
|
+
//# sourceMappingURL=template-sections.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-sections.d.ts","sourceRoot":"","sources":["../src/template-sections.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,iBAAiB,EAAE,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEjF,wEAAwE;AACxE,eAAO,MAAM,uBAAuB,eAA0C,CAAC;AAE/E,kFAAkF;AAClF,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,QAAQ,CAAC,CAAC,uBAAuB,CAAC,EAAE,IAAI,CAAC;IACzC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,UAAU,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,sCAAsC;AACtC,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAO1E;AAaD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CAExE;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,CAEnF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intentius/chant-lexicon-aws",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.111.0",
|
|
4
4
|
"description": "AWS CloudFormation lexicon for chant — declarative IaC in TypeScript",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://intentius.io/chant",
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
"typescript": "^5.9.3"
|
|
81
81
|
},
|
|
82
82
|
"peerDependencies": {
|
|
83
|
-
"@intentius/chant": "^0.
|
|
83
|
+
"@intentius/chant": "^0.111.0",
|
|
84
84
|
"typescript": "^5.9.3"
|
|
85
85
|
}
|
|
86
86
|
}
|