@cdktn/hcl2cdk 0.24.0-pre.9 → 0.24.0-pre.90
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/.spec.swcrc +22 -0
- package/LICENSE +355 -0
- package/README.md +1 -1
- package/build/__tests__/jsii-rosetta-workarounds.test.js +2 -2
- package/build/expressions.js +3 -4
- package/build/function-bindings/functions.generated.d.ts +50 -1
- package/build/function-bindings/functions.generated.js +76 -4
- package/build/generation.js +2 -2
- package/build/index.d.ts +21 -21
- package/build/index.js +5 -5
- package/build/references.js +2 -3
- package/build/schema.d.ts +25 -237
- package/build/schema.js +13 -13
- package/build/utils.d.ts +1 -1
- package/build/utils.js +3 -3
- package/jest.config.js +18 -11
- package/package.json +43 -32
- package/package.sh +1 -1
- package/src/__tests__/coerceType.test.ts +207 -0
- package/src/__tests__/expressionToTs.test.ts +1167 -0
- package/src/__tests__/expressions.test.ts +541 -0
- package/src/__tests__/findExpressionType.test.ts +112 -0
- package/src/__tests__/functions.test.ts +768 -0
- package/src/__tests__/generation.test.ts +72 -0
- package/src/__tests__/jsii-rosetta-workarounds.test.ts +145 -0
- package/src/__tests__/partialCode.test.ts +432 -0
- package/src/__tests__/terraformSchema.test.ts +107 -0
- package/src/__tests__/testHelpers.ts +11 -0
- package/src/coerceType.ts +261 -0
- package/src/dynamic-blocks.ts +61 -0
- package/src/expressions.ts +968 -0
- package/src/function-bindings/functions.generated.ts +1211 -0
- package/src/function-bindings/functions.ts +104 -0
- package/src/generation.ts +1189 -0
- package/src/index.ts +584 -0
- package/src/iteration.ts +156 -0
- package/src/jsii-rosetta-workarounds.ts +145 -0
- package/src/partialCode.ts +132 -0
- package/src/provider.ts +60 -0
- package/src/references.ts +193 -0
- package/src/schema.ts +74 -0
- package/src/terraformSchema.ts +182 -0
- package/src/types.ts +58 -0
- package/src/utils.ts +19 -0
- package/src/variables.ts +214 -0
- package/test/__snapshots__/backends.test.ts.snap +70 -0
- package/test/__snapshots__/externals.test.ts.snap +37 -0
- package/test/__snapshots__/granular-imports.test.ts.snap +180 -0
- package/test/__snapshots__/imports.test.ts.snap +159 -0
- package/test/__snapshots__/iteration.test.ts.snap +532 -0
- package/test/__snapshots__/jsiiLanguage.test.ts.snap +347 -0
- package/test/__snapshots__/locals.test.ts.snap +55 -0
- package/test/__snapshots__/modules.test.ts.snap +127 -0
- package/test/__snapshots__/outputs.test.ts.snap +77 -0
- package/test/__snapshots__/partialCode.test.ts.snap +120 -0
- package/test/__snapshots__/provider.test.ts.snap +128 -0
- package/test/__snapshots__/references.test.ts.snap +376 -0
- package/test/__snapshots__/resource-meta-properties.test.ts.snap +342 -0
- package/test/__snapshots__/resources.test.ts.snap +613 -0
- package/test/__snapshots__/tfExpressions.test.ts.snap +537 -0
- package/test/__snapshots__/typeCoercion.test.ts.snap +253 -0
- package/test/__snapshots__/variables.test.ts.snap +150 -0
- package/test/backends.test.ts +75 -0
- package/test/convertProject.test.ts +257 -0
- package/test/externals.test.ts +35 -0
- package/test/globalSetup.ts +224 -0
- package/test/globalTeardown.ts +11 -0
- package/test/granular-imports.test.ts +161 -0
- package/test/hcl2cdk.test.ts +88 -0
- package/test/helpers/convert.ts +539 -0
- package/test/helpers/tmp.ts +25 -0
- package/test/imports.test.ts +141 -0
- package/test/iteration.test.ts +342 -0
- package/test/jsiiLanguage.test.ts +73 -0
- package/test/locals.test.ts +47 -0
- package/test/modules.test.ts +143 -0
- package/test/outputs.test.ts +69 -0
- package/test/partialCode.test.ts +25 -0
- package/test/provider.test.ts +106 -0
- package/test/references.test.ts +287 -0
- package/test/resource-meta-properties.test.ts +288 -0
- package/test/resources.test.ts +551 -0
- package/test/tfExpressions.test.ts +300 -0
- package/test/typeCoercion.test.ts +154 -0
- package/test/variables.test.ts +96 -0
- package/tsconfig.json +0 -1
package/build/schema.js
CHANGED
|
@@ -46,9 +46,9 @@ const variableConfig = tfObject({
|
|
|
46
46
|
nullable: z.boolean().optional(),
|
|
47
47
|
validation: z.array(validationConfig).optional(),
|
|
48
48
|
});
|
|
49
|
-
const providerConfig = z.array(z.record(z.any()));
|
|
50
|
-
const moduleConfig = z.array(z.object({ source: z.string() }).
|
|
51
|
-
const resourceConfig = z.array(z.record(z.any()));
|
|
49
|
+
const providerConfig = z.array(z.record(z.string(), z.any()));
|
|
50
|
+
const moduleConfig = z.array(z.object({ source: z.string() }).loose());
|
|
51
|
+
const resourceConfig = z.array(z.record(z.string(), z.any()));
|
|
52
52
|
const importConfig = z.object({
|
|
53
53
|
to: z.string(),
|
|
54
54
|
id: z.string(),
|
|
@@ -61,21 +61,21 @@ const providerSpecification = z.union([
|
|
|
61
61
|
const terraformConfig = z
|
|
62
62
|
.object({
|
|
63
63
|
required_version: z.string(),
|
|
64
|
-
required_providers: z.array(z.record(providerSpecification)),
|
|
65
|
-
backend: z.record(z.array(z.record(z.any()))),
|
|
64
|
+
required_providers: z.array(z.record(z.string(), providerSpecification)),
|
|
65
|
+
backend: z.record(z.string(), z.array(z.record(z.string(), z.any()))),
|
|
66
66
|
})
|
|
67
67
|
.partial();
|
|
68
68
|
exports.schema = z
|
|
69
69
|
.object({
|
|
70
|
-
data: z.record(z.record(resourceConfig)),
|
|
70
|
+
data: z.record(z.string(), z.record(z.string(), resourceConfig)),
|
|
71
71
|
import: z.array(importConfig),
|
|
72
|
-
locals: z.array(z.record(z.any())),
|
|
73
|
-
module: z.record(moduleConfig),
|
|
74
|
-
output: z.record(outputConfig),
|
|
75
|
-
provider: z.record(providerConfig),
|
|
76
|
-
resource: z.record(z.record(resourceConfig)),
|
|
72
|
+
locals: z.array(z.record(z.string(), z.any())),
|
|
73
|
+
module: z.record(z.string(), moduleConfig),
|
|
74
|
+
output: z.record(z.string(), outputConfig),
|
|
75
|
+
provider: z.record(z.string(), providerConfig),
|
|
76
|
+
resource: z.record(z.string(), z.record(z.string(), resourceConfig)),
|
|
77
77
|
terraform: z.array(terraformConfig),
|
|
78
|
-
variable: z.record(variableConfig),
|
|
78
|
+
variable: z.record(z.string(), variableConfig),
|
|
79
79
|
})
|
|
80
80
|
.partial();
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsdUNBQXlCO0FBRXpCLE1BQU0sUUFBUSxHQUFHLENBQTBCLE1BQVMsRUFBRSxFQUFFLENBQ3RELENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBRXRDLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQztJQUM1QixLQUFLLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRTtJQUNkLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2xDLFNBQVMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2pDLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ2xDLENBQUMsQ0FBQztBQUdILE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNoQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUN6QixTQUFTLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRTtDQUNuQixDQUFDLENBQUM7QUFFSCxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUM7SUFDOUIsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDaEIsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUU7SUFDaEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDdkIsU0FBUyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDdEIsUUFBUSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDaEMsVUFBVSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxRQUFRLEVBQUU7Q0FDakQsQ0FBQyxDQUFDO0FBR0gsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRzlELE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7QUFHdkUsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBSTlELE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDNUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDZCxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNkLFFBQVEsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQzdCLENBQUMsQ0FBQztBQUdILE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNwQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDL0QsQ0FBQyxDQUFDLE1BQU0sRUFBRTtDQUNYLENBQUMsQ0FBQztBQUVILE1BQU0sZUFBZSxHQUFHLENBQUM7S0FDdEIsTUFBTSxDQUFDO0lBQ04sZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUM1QixrQkFBa0IsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFDeEUsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztDQUN0RSxDQUFDO0tBQ0QsT0FBTyxFQUFFLENBQUM7QUFHQSxRQUFBLE1BQU0sR0FBRyxDQUFDO0tBQ3BCLE1BQU0sQ0FBQztJQUNOLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNoRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7SUFDN0IsTUFBTSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDOUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLFlBQVksQ0FBQztJQUMxQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsWUFBWSxDQUFDO0lBQzFDLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxjQUFjLENBQUM7SUFDOUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3BFLFNBQVMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQztJQUNuQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsY0FBYyxDQUFDO0NBQy9DLENBQUM7S0FDRCxPQUFPLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgKiBhcyB6IGZyb20gXCJ6b2RcIjtcblxuY29uc3QgdGZPYmplY3QgPSA8VCBleHRlbmRzIHouWm9kUmF3U2hhcGU+KGNvbmZpZzogVCkgPT5cbiAgei5hcnJheSh6Lm9iamVjdChjb25maWcpLnBhcnRpYWwoKSk7XG5cbmNvbnN0IG91dHB1dENvbmZpZyA9IHRmT2JqZWN0KHtcbiAgdmFsdWU6IHouYW55KCksXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHNlbnNpdGl2ZTogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgZGVwZW5kc19vbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxufSk7XG5leHBvcnQgdHlwZSBPdXRwdXQgPSB6LmluZmVyPHR5cGVvZiBvdXRwdXRDb25maWc+O1xuXG5jb25zdCB2YWxpZGF0aW9uQ29uZmlnID0gei5vYmplY3Qoe1xuICBlcnJvcl9tZXNzYWdlOiB6LnN0cmluZygpLFxuICBjb25kaXRpb246IHouYW55KCksXG59KTtcblxuY29uc3QgdmFyaWFibGVDb25maWcgPSB0Zk9iamVjdCh7XG4gIHR5cGU6IHouc3RyaW5nKCksXG4gIGRlZmF1bHQ6IHouYW55KCksXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLFxuICBzZW5zaXRpdmU6IHouYm9vbGVhbigpLFxuICBudWxsYWJsZTogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgdmFsaWRhdGlvbjogei5hcnJheSh2YWxpZGF0aW9uQ29uZmlnKS5vcHRpb25hbCgpLFxufSk7XG5leHBvcnQgdHlwZSBWYXJpYWJsZSA9IHouaW5mZXI8dHlwZW9mIHZhcmlhYmxlQ29uZmlnPjtcblxuY29uc3QgcHJvdmlkZXJDb25maWcgPSB6LmFycmF5KHoucmVjb3JkKHouc3RyaW5nKCksIHouYW55KCkpKTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyID0gei5pbmZlcjx0eXBlb2YgcHJvdmlkZXJDb25maWc+O1xuXG5jb25zdCBtb2R1bGVDb25maWcgPSB6LmFycmF5KHoub2JqZWN0KHsgc291cmNlOiB6LnN0cmluZygpIH0pLmxvb3NlKCkpO1xuZXhwb3J0IHR5cGUgTW9kdWxlID0gei5pbmZlcjx0eXBlb2YgbW9kdWxlQ29uZmlnPjtcblxuY29uc3QgcmVzb3VyY2VDb25maWcgPSB6LmFycmF5KHoucmVjb3JkKHouc3RyaW5nKCksIHouYW55KCkpKTtcbmV4cG9ydCB0eXBlIFJlc291cmNlID0gei5pbmZlcjx0eXBlb2YgcmVzb3VyY2VDb25maWc+O1xuZXhwb3J0IHR5cGUgRGF0YSA9IFJlc291cmNlO1xuXG5jb25zdCBpbXBvcnRDb25maWcgPSB6Lm9iamVjdCh7XG4gIHRvOiB6LnN0cmluZygpLFxuICBpZDogei5zdHJpbmcoKSxcbiAgcHJvdmlkZXI6IHouYW55KCkub3B0aW9uYWwoKSxcbn0pO1xuZXhwb3J0IHR5cGUgSW1wb3J0ID0gei5pbmZlcjx0eXBlb2YgaW1wb3J0Q29uZmlnPjtcblxuY29uc3QgcHJvdmlkZXJTcGVjaWZpY2F0aW9uID0gei51bmlvbihbXG4gIHoub2JqZWN0KHsgc291cmNlOiB6LnN0cmluZygpLCB2ZXJzaW9uOiB6LnN0cmluZygpIH0pLnBhcnRpYWwoKSxcbiAgei5zdHJpbmcoKSxcbl0pO1xuXG5jb25zdCB0ZXJyYWZvcm1Db25maWcgPSB6XG4gIC5vYmplY3Qoe1xuICAgIHJlcXVpcmVkX3ZlcnNpb246IHouc3RyaW5nKCksXG4gICAgcmVxdWlyZWRfcHJvdmlkZXJzOiB6LmFycmF5KHoucmVjb3JkKHouc3RyaW5nKCksIHByb3ZpZGVyU3BlY2lmaWNhdGlvbikpLFxuICAgIGJhY2tlbmQ6IHoucmVjb3JkKHouc3RyaW5nKCksIHouYXJyYXkoei5yZWNvcmQoei5zdHJpbmcoKSwgei5hbnkoKSkpKSxcbiAgfSlcbiAgLnBhcnRpYWwoKTtcbmV4cG9ydCB0eXBlIFRlcnJhZm9ybUNvbmZpZyA9IHouaW5mZXI8dHlwZW9mIHRlcnJhZm9ybUNvbmZpZz47XG5cbmV4cG9ydCBjb25zdCBzY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIGRhdGE6IHoucmVjb3JkKHouc3RyaW5nKCksIHoucmVjb3JkKHouc3RyaW5nKCksIHJlc291cmNlQ29uZmlnKSksXG4gICAgaW1wb3J0OiB6LmFycmF5KGltcG9ydENvbmZpZyksXG4gICAgbG9jYWxzOiB6LmFycmF5KHoucmVjb3JkKHouc3RyaW5nKCksIHouYW55KCkpKSxcbiAgICBtb2R1bGU6IHoucmVjb3JkKHouc3RyaW5nKCksIG1vZHVsZUNvbmZpZyksXG4gICAgb3V0cHV0OiB6LnJlY29yZCh6LnN0cmluZygpLCBvdXRwdXRDb25maWcpLFxuICAgIHByb3ZpZGVyOiB6LnJlY29yZCh6LnN0cmluZygpLCBwcm92aWRlckNvbmZpZyksXG4gICAgcmVzb3VyY2U6IHoucmVjb3JkKHouc3RyaW5nKCksIHoucmVjb3JkKHouc3RyaW5nKCksIHJlc291cmNlQ29uZmlnKSksXG4gICAgdGVycmFmb3JtOiB6LmFycmF5KHRlcnJhZm9ybUNvbmZpZyksXG4gICAgdmFyaWFibGU6IHoucmVjb3JkKHouc3RyaW5nKCksIHZhcmlhYmxlQ29uZmlnKSxcbiAgfSlcbiAgLnBhcnRpYWwoKTtcbiJdfQ==
|
package/build/utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { logger } from "@cdktn/commons";
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const fileBugCommentText = "This is likely a bug in cdktn. Please report it at https://github.com/open-constructs/cdk-terrain/issues/new?assignees=&labels=bug&template=bug-report.md&title=.";
|
|
3
3
|
export declare const camelCase: (str: string) => string;
|
|
4
4
|
export declare const pascalCase: (str: string) => string;
|
|
5
5
|
export declare function uniqueId(set: Set<string>, key: string): string;
|
package/build/utils.js
CHANGED
|
@@ -3,13 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.uniqueId = exports.pascalCase = exports.camelCase = exports.
|
|
6
|
+
exports.uniqueId = exports.pascalCase = exports.camelCase = exports.fileBugCommentText = exports.logger = void 0;
|
|
7
7
|
// Copyright (c) HashiCorp, Inc
|
|
8
8
|
// SPDX-License-Identifier: MPL-2.0
|
|
9
9
|
const camelcase_1 = __importDefault(require("camelcase"));
|
|
10
10
|
var commons_1 = require("@cdktn/commons");
|
|
11
11
|
Object.defineProperty(exports, "logger", { enumerable: true, get: function () { return commons_1.logger; } });
|
|
12
|
-
exports.
|
|
12
|
+
exports.fileBugCommentText = `This is likely a bug in cdktn. Please report it at https://github.com/open-constructs/cdk-terrain/issues/new?assignees=&labels=bug&template=bug-report.md&title=.`;
|
|
13
13
|
const camelCase = (str) => (0, camelcase_1.default)(str.replace(/[-/]/g, "_"));
|
|
14
14
|
exports.camelCase = camelCase;
|
|
15
15
|
const pascalCase = (str) => (0, camelcase_1.default)(str.replace(/[-/]/g, "_"), { pascalCase: true });
|
|
@@ -22,4 +22,4 @@ function uniqueId(set, key) {
|
|
|
22
22
|
return key;
|
|
23
23
|
}
|
|
24
24
|
exports.uniqueId = uniqueId;
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQywwREFBa0M7QUFFbEMsMENBQXdDO0FBQS9CLGlHQUFBLE1BQU0sT0FBQTtBQUVGLFFBQUEsa0JBQWtCLEdBQUcsbUtBQW1LLENBQUM7QUFFL0wsTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLElBQUEsbUJBQVMsRUFBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQWxFLFFBQUEsU0FBUyxhQUF5RDtBQUN4RSxNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQ3hDLElBQUEsbUJBQVMsRUFBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBRGhELFFBQUEsVUFBVSxjQUNzQztBQUU3RCxTQUFnQixRQUFRLENBQUMsR0FBZ0IsRUFBRSxHQUFXO0lBQ3BELElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pCLE9BQU8sUUFBUSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNiLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQU5ELDRCQU1DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCBjYW1lbGNhc2UgZnJvbSBcImNhbWVsY2FzZVwiO1xuXG5leHBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcblxuZXhwb3J0IGNvbnN0IGZpbGVCdWdDb21tZW50VGV4dCA9IGBUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiBjZGt0bi4gUGxlYXNlIHJlcG9ydCBpdCBhdCBodHRwczovL2dpdGh1Yi5jb20vb3Blbi1jb25zdHJ1Y3RzL2Nkay10ZXJyYWluL2lzc3Vlcy9uZXc/YXNzaWduZWVzPSZsYWJlbHM9YnVnJnRlbXBsYXRlPWJ1Zy1yZXBvcnQubWQmdGl0bGU9LmA7XG5cbmV4cG9ydCBjb25zdCBjYW1lbENhc2UgPSAoc3RyOiBzdHJpbmcpID0+IGNhbWVsY2FzZShzdHIucmVwbGFjZSgvWy0vXS9nLCBcIl9cIikpO1xuZXhwb3J0IGNvbnN0IHBhc2NhbENhc2UgPSAoc3RyOiBzdHJpbmcpID0+XG4gIGNhbWVsY2FzZShzdHIucmVwbGFjZSgvWy0vXS9nLCBcIl9cIiksIHsgcGFzY2FsQ2FzZTogdHJ1ZSB9KTtcblxuZXhwb3J0IGZ1bmN0aW9uIHVuaXF1ZUlkKHNldDogU2V0PHN0cmluZz4sIGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHNldC5oYXMoa2V5KSkge1xuICAgIHJldHVybiB1bmlxdWVJZChzZXQsIGAke2tleX1fJHtzZXQuc2l6ZX1gKTtcbiAgfVxuICBzZXQuYWRkKGtleSk7XG4gIHJldHVybiBrZXk7XG59XG4iXX0=
|
package/jest.config.js
CHANGED
|
@@ -2,17 +2,24 @@
|
|
|
2
2
|
* Copyright (c) HashiCorp, Inc.
|
|
3
3
|
* SPDX-License-Identifier: MPL-2.0
|
|
4
4
|
*/
|
|
5
|
+
/* eslint-disable */
|
|
6
|
+
const { readFileSync } = require('fs');
|
|
7
|
+
|
|
8
|
+
const swcJestConfig = JSON.parse(
|
|
9
|
+
readFileSync(`${__dirname}/.spec.swcrc`, 'utf-8'),
|
|
10
|
+
);
|
|
11
|
+
|
|
12
|
+
swcJestConfig.swcrc = false;
|
|
5
13
|
|
|
6
14
|
module.exports = {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
15
|
+
displayName: '@cdktn/hcl2cdk',
|
|
16
|
+
preset: '../../../jest.preset.js',
|
|
17
|
+
rootDir: '.',
|
|
18
|
+
roots: ['<rootDir>'],
|
|
19
|
+
transform: {
|
|
20
|
+
'^.+\\.[tj]sx?$': ['@swc/jest', swcJestConfig],
|
|
10
21
|
},
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
],
|
|
16
|
-
globalSetup: "./test/globalSetup.ts",
|
|
17
|
-
globalTeardown: "./test/globalTeardown.ts",
|
|
18
|
-
}
|
|
22
|
+
globalSetup: './test/globalSetup.ts',
|
|
23
|
+
globalTeardown: './test/globalTeardown.ts',
|
|
24
|
+
coverageDirectory: 'test-output/jest/coverage',
|
|
25
|
+
};
|
package/package.json
CHANGED
|
@@ -1,24 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cdktn/hcl2cdk",
|
|
3
|
-
"version": "0.24.0-pre.
|
|
3
|
+
"version": "0.24.0-pre.90",
|
|
4
4
|
"description": "Transform HCL into CDK",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
7
7
|
"publishConfig": {
|
|
8
8
|
"access": "public"
|
|
9
9
|
},
|
|
10
|
-
"scripts": {
|
|
11
|
-
"build": "tsc",
|
|
12
|
-
"watch": "tsc -w",
|
|
13
|
-
"watch-preserve-output": "tsc -w --preserveWatchOutput",
|
|
14
|
-
"test": "jest",
|
|
15
|
-
"test:ci": "jest --ci",
|
|
16
|
-
"test:update": "jest -u",
|
|
17
|
-
"jest-watch": "jest --watch",
|
|
18
|
-
"package": "./package.sh",
|
|
19
|
-
"dist-clean": "rm -rf dist",
|
|
20
|
-
"package:js": "./package.sh"
|
|
21
|
-
},
|
|
22
10
|
"repository": {
|
|
23
11
|
"type": "git",
|
|
24
12
|
"url": "git://github.com/open-constructs/cdk-terrain.git",
|
|
@@ -37,36 +25,59 @@
|
|
|
37
25
|
],
|
|
38
26
|
"license": "MPL-2.0",
|
|
39
27
|
"dependencies": {
|
|
40
|
-
"@babel/generator": "7.29.
|
|
41
|
-
"@babel/template": "7.
|
|
42
|
-
"@babel/types": "7.29.
|
|
43
|
-
"@cdktn/commons": "0.24.0-pre.9",
|
|
44
|
-
"@cdktn/hcl2json": "0.24.0-pre.9",
|
|
45
|
-
"@cdktn/provider-generator": "0.24.0-pre.9",
|
|
46
|
-
"@cdktn/provider-schema": "0.24.0-pre.9",
|
|
28
|
+
"@babel/generator": "7.29.7",
|
|
29
|
+
"@babel/template": "7.29.7",
|
|
30
|
+
"@babel/types": "7.29.7",
|
|
47
31
|
"camelcase": "6.3.0",
|
|
48
|
-
"cdktn": "0.24.0-pre.9",
|
|
49
32
|
"codemaker": "1.128.0",
|
|
50
33
|
"deep-equal": "2.2.3",
|
|
51
|
-
"glob": "
|
|
34
|
+
"glob": "13.0.6",
|
|
52
35
|
"graphology": "0.26.0",
|
|
53
36
|
"graphology-types": "0.24.7",
|
|
54
|
-
"jsii-rosetta": "5.9.
|
|
37
|
+
"jsii-rosetta": "~5.9.0",
|
|
55
38
|
"prettier": "2.8.8",
|
|
56
39
|
"reserved-words": "0.1.2",
|
|
57
|
-
"zod": "
|
|
40
|
+
"zod": "4.4.3",
|
|
41
|
+
"@cdktn/commons": "0.24.0-pre.90",
|
|
42
|
+
"@cdktn/hcl2json": "0.24.0-pre.90",
|
|
43
|
+
"@cdktn/provider-generator": "0.24.0-pre.90",
|
|
44
|
+
"@cdktn/provider-schema": "0.24.0-pre.90",
|
|
45
|
+
"cdktn": "0.24.0-pre.90"
|
|
58
46
|
},
|
|
59
47
|
"devDependencies": {
|
|
48
|
+
"@types/babel__generator": "7.27.0",
|
|
49
|
+
"@types/babel__template": "7.4.4",
|
|
60
50
|
"@types/deep-equal": "1.0.4",
|
|
61
|
-
"@types/
|
|
62
|
-
"@types/node": "20.
|
|
51
|
+
"@types/fs-extra": "11.0.4",
|
|
52
|
+
"@types/node": "22.20.1",
|
|
63
53
|
"@types/prettier": "2.7.3",
|
|
64
54
|
"@types/reserved-words": "0.1.4",
|
|
65
55
|
"execa": "5.1.1",
|
|
66
|
-
"fs-extra": "11.3.
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
|
|
70
|
-
|
|
56
|
+
"fs-extra": "11.3.6",
|
|
57
|
+
"tsx": "4.23.1",
|
|
58
|
+
"typescript": "^5.0.4"
|
|
59
|
+
},
|
|
60
|
+
"nx": {
|
|
61
|
+
"tags": [
|
|
62
|
+
"unit-test"
|
|
63
|
+
],
|
|
64
|
+
"targets": {
|
|
65
|
+
"test": {
|
|
66
|
+
"dependsOn": [
|
|
67
|
+
"build",
|
|
68
|
+
"^build",
|
|
69
|
+
"cdktn-cli:build"
|
|
70
|
+
]
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"scripts": {
|
|
75
|
+
"build": "tsc",
|
|
76
|
+
"watch": "tsc -w",
|
|
77
|
+
"watch-preserve-output": "tsc -w --preserveWatchOutput",
|
|
78
|
+
"test:update": "jest -u",
|
|
79
|
+
"package": "./package.sh",
|
|
80
|
+
"dist-clean": "rm -rf dist",
|
|
81
|
+
"package:js": "./package.sh"
|
|
71
82
|
}
|
|
72
|
-
}
|
|
83
|
+
}
|
package/package.sh
CHANGED
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
// Copyright (c) HashiCorp, Inc
|
|
2
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
3
|
+
import { coerceType } from "../coerceType";
|
|
4
|
+
import template from "@babel/template";
|
|
5
|
+
import generate from "@babel/generator";
|
|
6
|
+
|
|
7
|
+
function expressionify(code: string) {
|
|
8
|
+
return (template.ast(code) as any).expression;
|
|
9
|
+
}
|
|
10
|
+
function generateCode(ast: any) {
|
|
11
|
+
return generate(ast).code;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const scope: any = {
|
|
15
|
+
importables: [],
|
|
16
|
+
variables: {
|
|
17
|
+
a_user_defined_variable: {
|
|
18
|
+
resource: "var",
|
|
19
|
+
variableName: "aUserDefinedVariable",
|
|
20
|
+
},
|
|
21
|
+
a_user_defined_local: {
|
|
22
|
+
resource: "var",
|
|
23
|
+
variableName: "aUserDefinedTerraformLocal",
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
describe("coerceType", () => {
|
|
29
|
+
it.each([
|
|
30
|
+
{ code: `"hello-world"`, type: "string", targetType: undefined },
|
|
31
|
+
{ code: `"hello-world"`, type: "string", targetType: "string" },
|
|
32
|
+
])("should change nothing for %p ", ({ code, type, targetType }) => {
|
|
33
|
+
expect(
|
|
34
|
+
generateCode(
|
|
35
|
+
coerceType(scope, expressionify(code), type as any, targetType as any),
|
|
36
|
+
),
|
|
37
|
+
).toEqual(code);
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
it.each([
|
|
41
|
+
{
|
|
42
|
+
code: `"300"`,
|
|
43
|
+
type: "string",
|
|
44
|
+
targetType: "number",
|
|
45
|
+
expectedCode: `Token.asNumber("300")`,
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
code: `300`,
|
|
49
|
+
type: "number",
|
|
50
|
+
targetType: "string",
|
|
51
|
+
expectedCode: `Token.asString(300)`,
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
code: `"['foo', 'bar']"`,
|
|
55
|
+
type: "string",
|
|
56
|
+
targetType: ["list", "string"],
|
|
57
|
+
expectedCode: `Token.asList("['foo', 'bar']")`,
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
code: `"[1,2,3]"`,
|
|
61
|
+
type: "string",
|
|
62
|
+
targetType: ["list", "number"],
|
|
63
|
+
expectedCode: `Token.asNumberList("[1,2,3]")`,
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
code: `"['foo', 'bar']"`,
|
|
67
|
+
type: "string",
|
|
68
|
+
targetType: ["set", "string"],
|
|
69
|
+
expectedCode: `Token.asList("['foo', 'bar']")`,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
code: `"[1,2,3]"`,
|
|
73
|
+
type: "string",
|
|
74
|
+
targetType: ["set", "number"],
|
|
75
|
+
expectedCode: `Token.asNumberList("[1,2,3]")`,
|
|
76
|
+
},
|
|
77
|
+
// We don't have a token function for boolean lists, so we need to take an asAny
|
|
78
|
+
{
|
|
79
|
+
code: `"[true,false,true]"`,
|
|
80
|
+
type: "string",
|
|
81
|
+
targetType: ["list", "bool"],
|
|
82
|
+
expectedCode: `Token.asAny("[true,false,true]")`,
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
code: `"{ foo: 'bar' }"`,
|
|
86
|
+
type: "string",
|
|
87
|
+
targetType: ["map", "string"],
|
|
88
|
+
expectedCode: `Token.asStringMap("{ foo: 'bar' }")`,
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
code: `"{ foo: 1 }"`,
|
|
92
|
+
type: "string",
|
|
93
|
+
targetType: ["map", "number"],
|
|
94
|
+
expectedCode: `Token.asNumberMap("{ foo: 1 }")`,
|
|
95
|
+
},
|
|
96
|
+
|
|
97
|
+
{
|
|
98
|
+
code: `"{ foo: true }"`,
|
|
99
|
+
type: "string",
|
|
100
|
+
targetType: ["map", "bool"],
|
|
101
|
+
expectedCode: `Token.asBooleanMap("{ foo: true }")`,
|
|
102
|
+
},
|
|
103
|
+
|
|
104
|
+
{
|
|
105
|
+
code: `"{ foo: {bar: true} }"`,
|
|
106
|
+
type: "string",
|
|
107
|
+
targetType: ["map", ["map", "boolean"]],
|
|
108
|
+
expectedCode: `Token.asAnyMap("{ foo: {bar: true} }")`,
|
|
109
|
+
},
|
|
110
|
+
])(
|
|
111
|
+
"should use Token functions %p",
|
|
112
|
+
({ code, type, targetType, expectedCode }) => {
|
|
113
|
+
expect(
|
|
114
|
+
generateCode(
|
|
115
|
+
coerceType(
|
|
116
|
+
scope,
|
|
117
|
+
expressionify(code),
|
|
118
|
+
type as any,
|
|
119
|
+
targetType as any,
|
|
120
|
+
),
|
|
121
|
+
),
|
|
122
|
+
).toEqual(expectedCode);
|
|
123
|
+
},
|
|
124
|
+
);
|
|
125
|
+
|
|
126
|
+
it.each([
|
|
127
|
+
{
|
|
128
|
+
code: `aUserDefinedVariable.value`,
|
|
129
|
+
type: "dynamic",
|
|
130
|
+
targetType: "string",
|
|
131
|
+
expectedCode: `aUserDefinedVariable.stringValue`,
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
code: `aUserDefinedVariable.value`,
|
|
135
|
+
type: "dynamic",
|
|
136
|
+
targetType: "number",
|
|
137
|
+
expectedCode: `aUserDefinedVariable.numberValue`,
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
code: `aUserDefinedVariable.value`,
|
|
141
|
+
type: "dynamic",
|
|
142
|
+
targetType: ["list", "string"],
|
|
143
|
+
expectedCode: `aUserDefinedVariable.listValue`,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
code: `aUserDefinedVariable.value`,
|
|
147
|
+
type: "dynamic",
|
|
148
|
+
targetType: "bool",
|
|
149
|
+
expectedCode: `aUserDefinedVariable.booleanValue`,
|
|
150
|
+
},
|
|
151
|
+
])(
|
|
152
|
+
"should use TerraformVariables accessors %p",
|
|
153
|
+
({ code, type, targetType, expectedCode }) => {
|
|
154
|
+
expect(
|
|
155
|
+
generateCode(
|
|
156
|
+
coerceType(
|
|
157
|
+
scope,
|
|
158
|
+
expressionify(code),
|
|
159
|
+
type as any,
|
|
160
|
+
targetType as any,
|
|
161
|
+
),
|
|
162
|
+
),
|
|
163
|
+
).toEqual(expectedCode);
|
|
164
|
+
},
|
|
165
|
+
);
|
|
166
|
+
|
|
167
|
+
it.each([
|
|
168
|
+
{
|
|
169
|
+
code: `aUserDefinedTerraformLocal.value`,
|
|
170
|
+
type: "dynamic",
|
|
171
|
+
targetType: "string",
|
|
172
|
+
expectedCode: `aUserDefinedTerraformLocal.stringValue`,
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
code: `aUserDefinedTerraformLocal.value`,
|
|
176
|
+
type: "dynamic",
|
|
177
|
+
targetType: "number",
|
|
178
|
+
expectedCode: `aUserDefinedTerraformLocal.numberValue`,
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
code: `aUserDefinedTerraformLocal.value`,
|
|
182
|
+
type: "dynamic",
|
|
183
|
+
targetType: ["list", "string"],
|
|
184
|
+
expectedCode: `aUserDefinedTerraformLocal.listValue`,
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
code: `aUserDefinedTerraformLocal.value`,
|
|
188
|
+
type: "dynamic",
|
|
189
|
+
targetType: "bool",
|
|
190
|
+
expectedCode: `aUserDefinedTerraformLocal.booleanValue`,
|
|
191
|
+
},
|
|
192
|
+
])(
|
|
193
|
+
"should use TerraformLocal accessors %p",
|
|
194
|
+
({ code, type, targetType, expectedCode }) => {
|
|
195
|
+
expect(
|
|
196
|
+
generateCode(
|
|
197
|
+
coerceType(
|
|
198
|
+
scope,
|
|
199
|
+
expressionify(code),
|
|
200
|
+
type as any,
|
|
201
|
+
targetType as any,
|
|
202
|
+
),
|
|
203
|
+
),
|
|
204
|
+
).toEqual(expectedCode);
|
|
205
|
+
},
|
|
206
|
+
);
|
|
207
|
+
});
|