@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.
Files changed (86) hide show
  1. package/.spec.swcrc +22 -0
  2. package/LICENSE +355 -0
  3. package/README.md +1 -1
  4. package/build/__tests__/jsii-rosetta-workarounds.test.js +2 -2
  5. package/build/expressions.js +3 -4
  6. package/build/function-bindings/functions.generated.d.ts +50 -1
  7. package/build/function-bindings/functions.generated.js +76 -4
  8. package/build/generation.js +2 -2
  9. package/build/index.d.ts +21 -21
  10. package/build/index.js +5 -5
  11. package/build/references.js +2 -3
  12. package/build/schema.d.ts +25 -237
  13. package/build/schema.js +13 -13
  14. package/build/utils.d.ts +1 -1
  15. package/build/utils.js +3 -3
  16. package/jest.config.js +18 -11
  17. package/package.json +43 -32
  18. package/package.sh +1 -1
  19. package/src/__tests__/coerceType.test.ts +207 -0
  20. package/src/__tests__/expressionToTs.test.ts +1167 -0
  21. package/src/__tests__/expressions.test.ts +541 -0
  22. package/src/__tests__/findExpressionType.test.ts +112 -0
  23. package/src/__tests__/functions.test.ts +768 -0
  24. package/src/__tests__/generation.test.ts +72 -0
  25. package/src/__tests__/jsii-rosetta-workarounds.test.ts +145 -0
  26. package/src/__tests__/partialCode.test.ts +432 -0
  27. package/src/__tests__/terraformSchema.test.ts +107 -0
  28. package/src/__tests__/testHelpers.ts +11 -0
  29. package/src/coerceType.ts +261 -0
  30. package/src/dynamic-blocks.ts +61 -0
  31. package/src/expressions.ts +968 -0
  32. package/src/function-bindings/functions.generated.ts +1211 -0
  33. package/src/function-bindings/functions.ts +104 -0
  34. package/src/generation.ts +1189 -0
  35. package/src/index.ts +584 -0
  36. package/src/iteration.ts +156 -0
  37. package/src/jsii-rosetta-workarounds.ts +145 -0
  38. package/src/partialCode.ts +132 -0
  39. package/src/provider.ts +60 -0
  40. package/src/references.ts +193 -0
  41. package/src/schema.ts +74 -0
  42. package/src/terraformSchema.ts +182 -0
  43. package/src/types.ts +58 -0
  44. package/src/utils.ts +19 -0
  45. package/src/variables.ts +214 -0
  46. package/test/__snapshots__/backends.test.ts.snap +70 -0
  47. package/test/__snapshots__/externals.test.ts.snap +37 -0
  48. package/test/__snapshots__/granular-imports.test.ts.snap +180 -0
  49. package/test/__snapshots__/imports.test.ts.snap +159 -0
  50. package/test/__snapshots__/iteration.test.ts.snap +532 -0
  51. package/test/__snapshots__/jsiiLanguage.test.ts.snap +347 -0
  52. package/test/__snapshots__/locals.test.ts.snap +55 -0
  53. package/test/__snapshots__/modules.test.ts.snap +127 -0
  54. package/test/__snapshots__/outputs.test.ts.snap +77 -0
  55. package/test/__snapshots__/partialCode.test.ts.snap +120 -0
  56. package/test/__snapshots__/provider.test.ts.snap +128 -0
  57. package/test/__snapshots__/references.test.ts.snap +376 -0
  58. package/test/__snapshots__/resource-meta-properties.test.ts.snap +342 -0
  59. package/test/__snapshots__/resources.test.ts.snap +613 -0
  60. package/test/__snapshots__/tfExpressions.test.ts.snap +537 -0
  61. package/test/__snapshots__/typeCoercion.test.ts.snap +253 -0
  62. package/test/__snapshots__/variables.test.ts.snap +150 -0
  63. package/test/backends.test.ts +75 -0
  64. package/test/convertProject.test.ts +257 -0
  65. package/test/externals.test.ts +35 -0
  66. package/test/globalSetup.ts +224 -0
  67. package/test/globalTeardown.ts +11 -0
  68. package/test/granular-imports.test.ts +161 -0
  69. package/test/hcl2cdk.test.ts +88 -0
  70. package/test/helpers/convert.ts +539 -0
  71. package/test/helpers/tmp.ts +25 -0
  72. package/test/imports.test.ts +141 -0
  73. package/test/iteration.test.ts +342 -0
  74. package/test/jsiiLanguage.test.ts +73 -0
  75. package/test/locals.test.ts +47 -0
  76. package/test/modules.test.ts +143 -0
  77. package/test/outputs.test.ts +69 -0
  78. package/test/partialCode.test.ts +25 -0
  79. package/test/provider.test.ts +106 -0
  80. package/test/references.test.ts +287 -0
  81. package/test/resource-meta-properties.test.ts +288 -0
  82. package/test/resources.test.ts +551 -0
  83. package/test/tfExpressions.test.ts +300 -0
  84. package/test/typeCoercion.test.ts +154 -0
  85. package/test/variables.test.ts +96 -0
  86. 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() }).nonstrict());
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsdUNBQXlCO0FBRXpCLE1BQU0sUUFBUSxHQUFHLENBQTBCLE1BQVMsRUFBRSxFQUFFLENBQ3RELENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBRXRDLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQztJQUM1QixLQUFLLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRTtJQUNkLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2xDLFNBQVMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2pDLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ2xDLENBQUMsQ0FBQztBQUdILE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNoQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUN6QixTQUFTLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRTtDQUNuQixDQUFDLENBQUM7QUFFSCxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUM7SUFDOUIsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDaEIsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUU7SUFDaEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDdkIsU0FBUyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDdEIsUUFBUSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDaEMsVUFBVSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxRQUFRLEVBQUU7Q0FDakQsQ0FBQyxDQUFDO0FBR0gsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFHbEQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztBQUczRSxNQUFNLGNBQWMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUlsRCxNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzVCLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2QsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDZCxRQUFRLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUM3QixDQUFDLENBQUM7QUFHSCxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDcEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFO0lBQy9ELENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDWCxDQUFDLENBQUM7QUFFSCxNQUFNLGVBQWUsR0FBRyxDQUFDO0tBQ3RCLE1BQU0sQ0FBQztJQUNOLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDNUIsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDNUQsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7Q0FDOUMsQ0FBQztLQUNELE9BQU8sRUFBRSxDQUFDO0FBR0EsUUFBQSxNQUFNLEdBQUcsQ0FBQztLQUNwQixNQUFNLENBQUM7SUFDTixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztJQUM3QixNQUFNLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztJQUM5QixNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7SUFDOUIsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDO0lBQ2xDLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO0lBQ25DLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztDQUNuQyxDQUFDO0tBQ0QsT0FBTyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0ICogYXMgeiBmcm9tIFwiem9kXCI7XG5cbmNvbnN0IHRmT2JqZWN0ID0gPFQgZXh0ZW5kcyB6LlpvZFJhd1NoYXBlPihjb25maWc6IFQpID0+XG4gIHouYXJyYXkoei5vYmplY3QoY29uZmlnKS5wYXJ0aWFsKCkpO1xuXG5jb25zdCBvdXRwdXRDb25maWcgPSB0Zk9iamVjdCh7XG4gIHZhbHVlOiB6LmFueSgpLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBzZW5zaXRpdmU6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gIGRlcGVuZHNfb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuZXhwb3J0IHR5cGUgT3V0cHV0ID0gei5pbmZlcjx0eXBlb2Ygb3V0cHV0Q29uZmlnPjtcblxuY29uc3QgdmFsaWRhdGlvbkNvbmZpZyA9IHoub2JqZWN0KHtcbiAgZXJyb3JfbWVzc2FnZTogei5zdHJpbmcoKSxcbiAgY29uZGl0aW9uOiB6LmFueSgpLFxufSk7XG5cbmNvbnN0IHZhcmlhYmxlQ29uZmlnID0gdGZPYmplY3Qoe1xuICB0eXBlOiB6LnN0cmluZygpLFxuICBkZWZhdWx0OiB6LmFueSgpLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKSxcbiAgc2Vuc2l0aXZlOiB6LmJvb2xlYW4oKSxcbiAgbnVsbGFibGU6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gIHZhbGlkYXRpb246IHouYXJyYXkodmFsaWRhdGlvbkNvbmZpZykub3B0aW9uYWwoKSxcbn0pO1xuZXhwb3J0IHR5cGUgVmFyaWFibGUgPSB6LmluZmVyPHR5cGVvZiB2YXJpYWJsZUNvbmZpZz47XG5cbmNvbnN0IHByb3ZpZGVyQ29uZmlnID0gei5hcnJheSh6LnJlY29yZCh6LmFueSgpKSk7XG5leHBvcnQgdHlwZSBQcm92aWRlciA9IHouaW5mZXI8dHlwZW9mIHByb3ZpZGVyQ29uZmlnPjtcblxuY29uc3QgbW9kdWxlQ29uZmlnID0gei5hcnJheSh6Lm9iamVjdCh7IHNvdXJjZTogei5zdHJpbmcoKSB9KS5ub25zdHJpY3QoKSk7XG5leHBvcnQgdHlwZSBNb2R1bGUgPSB6LmluZmVyPHR5cGVvZiBtb2R1bGVDb25maWc+O1xuXG5jb25zdCByZXNvdXJjZUNvbmZpZyA9IHouYXJyYXkoei5yZWNvcmQoei5hbnkoKSkpO1xuZXhwb3J0IHR5cGUgUmVzb3VyY2UgPSB6LmluZmVyPHR5cGVvZiByZXNvdXJjZUNvbmZpZz47XG5leHBvcnQgdHlwZSBEYXRhID0gUmVzb3VyY2U7XG5cbmNvbnN0IGltcG9ydENvbmZpZyA9IHoub2JqZWN0KHtcbiAgdG86IHouc3RyaW5nKCksXG4gIGlkOiB6LnN0cmluZygpLFxuICBwcm92aWRlcjogei5hbnkoKS5vcHRpb25hbCgpLFxufSk7XG5leHBvcnQgdHlwZSBJbXBvcnQgPSB6LmluZmVyPHR5cGVvZiBpbXBvcnRDb25maWc+O1xuXG5jb25zdCBwcm92aWRlclNwZWNpZmljYXRpb24gPSB6LnVuaW9uKFtcbiAgei5vYmplY3QoeyBzb3VyY2U6IHouc3RyaW5nKCksIHZlcnNpb246IHouc3RyaW5nKCkgfSkucGFydGlhbCgpLFxuICB6LnN0cmluZygpLFxuXSk7XG5cbmNvbnN0IHRlcnJhZm9ybUNvbmZpZyA9IHpcbiAgLm9iamVjdCh7XG4gICAgcmVxdWlyZWRfdmVyc2lvbjogei5zdHJpbmcoKSxcbiAgICByZXF1aXJlZF9wcm92aWRlcnM6IHouYXJyYXkoei5yZWNvcmQocHJvdmlkZXJTcGVjaWZpY2F0aW9uKSksXG4gICAgYmFja2VuZDogei5yZWNvcmQoei5hcnJheSh6LnJlY29yZCh6LmFueSgpKSkpLFxuICB9KVxuICAucGFydGlhbCgpO1xuZXhwb3J0IHR5cGUgVGVycmFmb3JtQ29uZmlnID0gei5pbmZlcjx0eXBlb2YgdGVycmFmb3JtQ29uZmlnPjtcblxuZXhwb3J0IGNvbnN0IHNjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgZGF0YTogei5yZWNvcmQoei5yZWNvcmQocmVzb3VyY2VDb25maWcpKSxcbiAgICBpbXBvcnQ6IHouYXJyYXkoaW1wb3J0Q29uZmlnKSxcbiAgICBsb2NhbHM6IHouYXJyYXkoei5yZWNvcmQoei5hbnkoKSkpLFxuICAgIG1vZHVsZTogei5yZWNvcmQobW9kdWxlQ29uZmlnKSxcbiAgICBvdXRwdXQ6IHoucmVjb3JkKG91dHB1dENvbmZpZyksXG4gICAgcHJvdmlkZXI6IHoucmVjb3JkKHByb3ZpZGVyQ29uZmlnKSxcbiAgICByZXNvdXJjZTogei5yZWNvcmQoei5yZWNvcmQocmVzb3VyY2VDb25maWcpKSxcbiAgICB0ZXJyYWZvcm06IHouYXJyYXkodGVycmFmb3JtQ29uZmlnKSxcbiAgICB2YXJpYWJsZTogei5yZWNvcmQodmFyaWFibGVDb25maWcpLFxuICB9KVxuICAucGFydGlhbCgpO1xuIl19
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 leaveCommentText = "Please leave a comment at https://cdk.tf/bugs/convert-expressions if you run into this issue.";
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.leaveCommentText = exports.logger = void 0;
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.leaveCommentText = `Please leave a comment at https://cdk.tf/bugs/convert-expressions if you run into this issue.`;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQywwREFBa0M7QUFFbEMsMENBQXdDO0FBQS9CLGlHQUFBLE1BQU0sT0FBQTtBQUVGLFFBQUEsZ0JBQWdCLEdBQUcsK0ZBQStGLENBQUM7QUFFekgsTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLElBQUEsbUJBQVMsRUFBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQWxFLFFBQUEsU0FBUyxhQUF5RDtBQUN4RSxNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQ3hDLElBQUEsbUJBQVMsRUFBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBRGhELFFBQUEsVUFBVSxjQUNzQztBQUU3RCxTQUFnQixRQUFRLENBQUMsR0FBZ0IsRUFBRSxHQUFXO0lBQ3BELElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pCLE9BQU8sUUFBUSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNiLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQU5ELDRCQU1DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCBjYW1lbGNhc2UgZnJvbSBcImNhbWVsY2FzZVwiO1xuXG5leHBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcblxuZXhwb3J0IGNvbnN0IGxlYXZlQ29tbWVudFRleHQgPSBgUGxlYXNlIGxlYXZlIGEgY29tbWVudCBhdCBodHRwczovL2Nkay50Zi9idWdzL2NvbnZlcnQtZXhwcmVzc2lvbnMgaWYgeW91IHJ1biBpbnRvIHRoaXMgaXNzdWUuYDtcblxuZXhwb3J0IGNvbnN0IGNhbWVsQ2FzZSA9IChzdHI6IHN0cmluZykgPT4gY2FtZWxjYXNlKHN0ci5yZXBsYWNlKC9bLS9dL2csIFwiX1wiKSk7XG5leHBvcnQgY29uc3QgcGFzY2FsQ2FzZSA9IChzdHI6IHN0cmluZykgPT5cbiAgY2FtZWxjYXNlKHN0ci5yZXBsYWNlKC9bLS9dL2csIFwiX1wiKSwgeyBwYXNjYWxDYXNlOiB0cnVlIH0pO1xuXG5leHBvcnQgZnVuY3Rpb24gdW5pcXVlSWQoc2V0OiBTZXQ8c3RyaW5nPiwga2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoc2V0LmhhcyhrZXkpKSB7XG4gICAgcmV0dXJuIHVuaXF1ZUlkKHNldCwgYCR7a2V5fV8ke3NldC5zaXplfWApO1xuICB9XG4gIHNldC5hZGQoa2V5KTtcbiAgcmV0dXJuIGtleTtcbn1cbiJdfQ==
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
- testMatch: ['**/*.test.ts', '**/*.test.tsx'],
8
- "transform": {
9
- "^.+\\.tsx?$": "ts-jest"
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
- moduleFileExtensions: [
12
- "js",
13
- "ts",
14
- "tsx"
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.9",
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.1",
41
- "@babel/template": "7.28.6",
42
- "@babel/types": "7.29.0",
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": "10.5.0",
34
+ "glob": "13.0.6",
52
35
  "graphology": "0.26.0",
53
36
  "graphology-types": "0.24.7",
54
- "jsii-rosetta": "5.9.39",
37
+ "jsii-rosetta": "~5.9.0",
55
38
  "prettier": "2.8.8",
56
39
  "reserved-words": "0.1.2",
57
- "zod": "3.25.76"
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/jest": "30.0.0",
62
- "@types/node": "20.19.37",
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.4",
67
- "jest": "^30.3.0",
68
- "ts-jest": "29.4.9",
69
- "tsx": "4.6.1",
70
- "typescript": "5.4.5"
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
@@ -3,7 +3,7 @@
3
3
  # SPDX-License-Identifier: MPL-2.0
4
4
 
5
5
  set -euo pipefail
6
- bundle=$(npm pack)
6
+ bundle=$(pnpm pack | tail -n 1)
7
7
  rm -fr dist
8
8
  mkdir -p dist/js
9
9
  mv ${bundle} dist/js
@@ -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
+ });