@cdktn/hcl2cdk 0.23.0-pre.8 → 0.23.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.
Files changed (85) hide show
  1. package/ambient.d.ts +0 -1
  2. package/build/__tests__/coerceType.test.js +165 -0
  3. package/build/__tests__/expressionToTs.test.js +693 -0
  4. package/build/__tests__/expressions.test.js +415 -0
  5. package/build/__tests__/findExpressionType.test.js +105 -0
  6. package/build/__tests__/functions.test.js +605 -0
  7. package/build/__tests__/generation.test.js +45 -0
  8. package/build/__tests__/jsii-rosetta-workarounds.test.js +86 -0
  9. package/build/__tests__/partialCode.test.js +390 -0
  10. package/build/__tests__/terraformSchema.test.js +105 -0
  11. package/build/__tests__/testHelpers.js +16 -0
  12. package/build/coerceType.js +240 -0
  13. package/build/dynamic-blocks.js +44 -0
  14. package/build/expressions.js +633 -0
  15. package/build/function-bindings/functions.generated.js +1142 -0
  16. package/build/function-bindings/functions.js +73 -0
  17. package/{lib → build}/generation.js +4 -4
  18. package/{lib → build}/index.d.ts +2 -2
  19. package/build/index.js +364 -0
  20. package/build/iteration.js +87 -0
  21. package/build/jsii-rosetta-workarounds.js +126 -0
  22. package/build/partialCode.js +116 -0
  23. package/build/provider.js +40 -0
  24. package/build/references.js +141 -0
  25. package/build/schema.js +81 -0
  26. package/build/telemetryAllowList.json +24 -0
  27. package/build/terraformSchema.js +136 -0
  28. package/build/types.js +3 -0
  29. package/build/utils.js +25 -0
  30. package/build/variables.js +172 -0
  31. package/package.json +13 -14
  32. package/tsconfig.json +4 -2
  33. package/lib/__tests__/coerceType.test.js +0 -165
  34. package/lib/__tests__/expressionToTs.test.js +0 -693
  35. package/lib/__tests__/expressions.test.js +0 -415
  36. package/lib/__tests__/findExpressionType.test.js +0 -105
  37. package/lib/__tests__/functions.test.js +0 -605
  38. package/lib/__tests__/generation.test.js +0 -45
  39. package/lib/__tests__/jsii-rosetta-workarounds.test.js +0 -86
  40. package/lib/__tests__/partialCode.test.js +0 -390
  41. package/lib/__tests__/terraformSchema.test.js +0 -105
  42. package/lib/__tests__/testHelpers.js +0 -16
  43. package/lib/coerceType.js +0 -240
  44. package/lib/dynamic-blocks.js +0 -44
  45. package/lib/expressions.js +0 -634
  46. package/lib/function-bindings/functions.generated.js +0 -1142
  47. package/lib/function-bindings/functions.js +0 -73
  48. package/lib/index.js +0 -364
  49. package/lib/iteration.js +0 -87
  50. package/lib/jsii-rosetta-workarounds.js +0 -126
  51. package/lib/partialCode.js +0 -116
  52. package/lib/provider.js +0 -40
  53. package/lib/references.js +0 -141
  54. package/lib/schema.js +0 -81
  55. package/lib/terraformSchema.js +0 -136
  56. package/lib/types.js +0 -3
  57. package/lib/utils.js +0 -25
  58. package/lib/variables.js +0 -172
  59. /package/{lib → build}/__tests__/coerceType.test.d.ts +0 -0
  60. /package/{lib → build}/__tests__/expressionToTs.test.d.ts +0 -0
  61. /package/{lib → build}/__tests__/expressions.test.d.ts +0 -0
  62. /package/{lib → build}/__tests__/findExpressionType.test.d.ts +0 -0
  63. /package/{lib → build}/__tests__/functions.test.d.ts +0 -0
  64. /package/{lib → build}/__tests__/generation.test.d.ts +0 -0
  65. /package/{lib → build}/__tests__/jsii-rosetta-workarounds.test.d.ts +0 -0
  66. /package/{lib → build}/__tests__/partialCode.test.d.ts +0 -0
  67. /package/{lib → build}/__tests__/terraformSchema.test.d.ts +0 -0
  68. /package/{lib → build}/__tests__/testHelpers.d.ts +0 -0
  69. /package/{lib → build}/coerceType.d.ts +0 -0
  70. /package/{lib → build}/dynamic-blocks.d.ts +0 -0
  71. /package/{lib → build}/expressions.d.ts +0 -0
  72. /package/{lib → build}/function-bindings/functions.d.ts +0 -0
  73. /package/{lib → build}/function-bindings/functions.generated.d.ts +0 -0
  74. /package/{lib → build}/generation.d.ts +0 -0
  75. /package/{lib → build}/iteration.d.ts +0 -0
  76. /package/{lib → build}/jsii-rosetta-workarounds.d.ts +0 -0
  77. /package/{lib → build}/partialCode.d.ts +0 -0
  78. /package/{lib → build}/provider.d.ts +0 -0
  79. /package/{lib → build}/references.d.ts +0 -0
  80. /package/{lib → build}/schema.d.ts +0 -0
  81. /package/{lib → build}/terraformSchema.d.ts +0 -0
  82. /package/{lib → build}/types.d.ts +0 -0
  83. /package/{lib → build}/utils.d.ts +0 -0
  84. /package/{lib → build}/variables.d.ts +0 -0
  85. /package/{lib → src}/telemetryAllowList.json +0 -0
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDesiredType = exports.isMapAttribute = exports.getTypeAtPath = void 0;
4
+ const provider_1 = require("./provider");
5
+ function getResourceAtPath(schema, path) {
6
+ var _a;
7
+ const parts = path.split(".");
8
+ if (parts.length < 2) {
9
+ // Too short to be a valid path
10
+ return null;
11
+ }
12
+ const isDataSource = parts[0] === "data";
13
+ if (isDataSource) {
14
+ parts.shift();
15
+ }
16
+ const providerName = parts.shift();
17
+ const resourceName = parts.shift();
18
+ const fullProviderName = (0, provider_1.getFullProviderName)(schema, providerName);
19
+ // Hack: In the case of 'external', the name of the data source 'external' doesn't have a prefix
20
+ // so we repeat the name as both provider prefix and the data source name
21
+ const fullResourceName = providerName === resourceName
22
+ ? providerName
23
+ : `${providerName}_${resourceName}`;
24
+ if (!fullProviderName) {
25
+ // No provider found with that name
26
+ return null;
27
+ }
28
+ const provider = (_a = schema.provider_schemas) === null || _a === void 0 ? void 0 : _a[fullProviderName];
29
+ if (!provider) {
30
+ // Could not find provider
31
+ return null;
32
+ }
33
+ if (resourceName.endsWith("Provider")) {
34
+ // This is a provider
35
+ return { resource: provider.provider, parts };
36
+ }
37
+ const resources = isDataSource
38
+ ? provider.data_source_schemas
39
+ : provider.resource_schemas;
40
+ const resource = resources[fullResourceName];
41
+ if (!resource) {
42
+ // Could not find resource
43
+ return null;
44
+ }
45
+ return { resource, parts };
46
+ }
47
+ function findType(item, parts) {
48
+ if (!parts.length) {
49
+ return item;
50
+ }
51
+ const [currentPart, ...otherParts] = parts;
52
+ // Promitive attributes can be returned directly
53
+ if (typeof item === "string") {
54
+ return item;
55
+ }
56
+ // Complex attributes
57
+ if (Array.isArray(item)) {
58
+ if (item[0] === "set" || item[0] === "list") {
59
+ if (currentPart === "[]") {
60
+ return findType(item[1], otherParts);
61
+ }
62
+ // Trying to access a property on a list
63
+ return null;
64
+ }
65
+ if (item[0] === "object") {
66
+ if (currentPart === "[]") {
67
+ // Trying to access a property on a list
68
+ return null;
69
+ }
70
+ return findType(item[1][currentPart], otherParts);
71
+ }
72
+ if (item[0] === "map") {
73
+ // We don't care what the key is
74
+ return findType(item[1], otherParts);
75
+ }
76
+ // Unknown type
77
+ return null;
78
+ }
79
+ // If we are not in an attribute, we can ignore the [] (since max_item=1 parts don't have [], so we just ignore it)
80
+ if (currentPart === "[]") {
81
+ return findType(item, otherParts);
82
+ }
83
+ // Block
84
+ if (item.block) {
85
+ // Find block type in block
86
+ if (item.block.block_types) {
87
+ const blockType = item.block.block_types[currentPart];
88
+ if (blockType) {
89
+ return findType(blockType, otherParts);
90
+ }
91
+ }
92
+ // Find attribute in block
93
+ if (item.block.attributes) {
94
+ const attribute = item.block.attributes[currentPart];
95
+ if (attribute && attribute.type) {
96
+ return findType(attribute.type, otherParts);
97
+ }
98
+ }
99
+ }
100
+ // Could not find the type
101
+ return null;
102
+ }
103
+ function getTypeAtPath(schema, path) {
104
+ const resourceSchema = getResourceAtPath(schema, path);
105
+ if (!resourceSchema) {
106
+ return null;
107
+ }
108
+ const { resource, parts } = resourceSchema;
109
+ return findType(resource, parts);
110
+ }
111
+ exports.getTypeAtPath = getTypeAtPath;
112
+ const isMapAttribute = (attribute) => (Array.isArray(attribute) ? attribute[0] === "map" : false);
113
+ exports.isMapAttribute = isMapAttribute;
114
+ function getDesiredType(scope, path) {
115
+ const attributeOrBlockType = getTypeAtPath(scope.providerSchema, path);
116
+ // Attribute type is not defined
117
+ if (!attributeOrBlockType) {
118
+ return "dynamic";
119
+ }
120
+ // Primitive attribute type
121
+ if (typeof attributeOrBlockType === "string") {
122
+ return attributeOrBlockType;
123
+ }
124
+ // Complex attribute type
125
+ if (Array.isArray(attributeOrBlockType)) {
126
+ return attributeOrBlockType;
127
+ }
128
+ // Schema
129
+ if ("version" in attributeOrBlockType) {
130
+ return "dynamic";
131
+ }
132
+ // Block type
133
+ return "dynamic";
134
+ }
135
+ exports.getDesiredType = getDesiredType;
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtU2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3RlcnJhZm9ybVNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFRQSx5Q0FBaUQ7QUFHakQsU0FBUyxpQkFBaUIsQ0FBQyxNQUFzQixFQUFFLElBQVk7O0lBQzdELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFOUIsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3JCLCtCQUErQjtRQUMvQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDO0lBQ3pDLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakIsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFZLENBQUM7SUFDN0MsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBWSxDQUFDO0lBRTdDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSw4QkFBbUIsRUFBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDbkUsZ0dBQWdHO0lBQ2hHLHlFQUF5RTtJQUN6RSxNQUFNLGdCQUFnQixHQUNwQixZQUFZLEtBQUssWUFBWTtRQUMzQixDQUFDLENBQUMsWUFBWTtRQUNkLENBQUMsQ0FBQyxHQUFHLFlBQVksSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUV4QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN0QixtQ0FBbUM7UUFDbkMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsTUFBQSxNQUFNLENBQUMsZ0JBQWdCLDBDQUFHLGdCQUFnQixDQUFDLENBQUM7SUFFN0QsSUFBSSxDQUFDLFFBQVEsRUFBRSxD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QUM7SUFFRCwyQkFBMkI7SUFDM0IsSUFBSSxPQUFPLG9CQUFvQixLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzdDLE9BQU8sb0JBQW9CLENBQUM7SUFDOUIsQ0FBQztJQUVELHlCQUF5QjtJQUN6QixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sb0JBQW9CLENBQUM7SUFDOUIsQ0FBQztJQUVELFNBQVM7SUFDVCxJQUFJLFNBQVMsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxhQUFhO0lBQ2IsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQTVCRCx3Q0E0QkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IHtcbiAgUHJvdmlkZXJTY2hlbWEsXG4gIEJsb2NrVHlwZSxcbiAgQXR0cmlidXRlVHlwZSxcbiAgU2NoZW1hLFxufSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcbmltcG9ydCB7IGdldEZ1bGxQcm92aWRlck5hbWUgfSBmcm9tIFwiLi9wcm92aWRlclwiO1xuaW1wb3J0IHsgUHJvZ3JhbVNjb3BlIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuZnVuY3Rpb24gZ2V0UmVzb3VyY2VBdFBhdGgoc2NoZW1hOiBQcm92aWRlclNjaGVtYSwgcGF0aDogc3RyaW5nKSB7XG4gIGNvbnN0IHBhcnRzID0gcGF0aC5zcGxpdChcIi5cIik7XG5cbiAgaWYgKHBhcnRzLmxlbmd0aCA8IDIpIHtcbiAgICAvLyBUb28gc2hvcnQgdG8gYmUgYSB2YWxpZCBwYXRoXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBpc0RhdGFTb3VyY2UgPSBwYXJ0c1swXSA9PT0gXCJkYXRhXCI7XG4gIGlmIChpc0RhdGFTb3VyY2UpIHtcbiAgICBwYXJ0cy5zaGlmdCgpO1xuICB9XG5cbiAgY29uc3QgcHJvdmlkZXJOYW1lID0gcGFydHMuc2hpZnQoKSBhcyBzdHJpbmc7XG4gIGNvbnN0IHJlc291cmNlTmFtZSA9IHBhcnRzLnNoaWZ0KCkgYXMgc3RyaW5nO1xuXG4gIGNvbnN0IGZ1bGxQcm92aWRlck5hbWUgPSBnZXRGdWxsUHJvdmlkZXJOYW1lKHNjaGVtYSwgcHJvdmlkZXJOYW1lKTtcbiAgLy8gSGFjazogSW4gdGhlIGNhc2Ugb2YgJ2V4dGVybmFsJywgdGhlIG5hbWUgb2YgdGhlIGRhdGEgc291cmNlICdleHRlcm5hbCcgZG9lc24ndCBoYXZlIGEgcHJlZml4XG4gIC8vIHNvIHdlIHJlcGVhdCB0aGUgbmFtZSBhcyBib3RoIHByb3ZpZGVyIHByZWZpeCBhbmQgdGhlIGRhdGEgc291cmNlIG5hbWVcbiAgY29uc3QgZnVsbFJlc291cmNlTmFtZSA9XG4gICAgcHJvdmlkZXJOYW1lID09PSByZXNvdXJjZU5hbWVcbiAgICAgID8gcHJvdmlkZXJOYW1lXG4gICAgICA6IGAke3Byb3ZpZGVyTmFtZX1fJHtyZXNvdXJjZU5hbWV9YDtcblxuICBpZiAoIWZ1bGxQcm92aWRlck5hbWUpIHtcbiAgICAvLyBObyBwcm92aWRlciBmb3VuZCB3aXRoIHRoYXQgbmFtZVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgcHJvdmlkZXIgPSBzY2hlbWEucHJvdmlkZXJfc2NoZW1hcz8uW2Z1bGxQcm92aWRlck5hbWVdO1xuXG4gIGlmICghcHJvdmlkZXIpIHtcbiAgICAvLyBDb3VsZCBub3QgZmluZCBwcm92aWRlclxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKHJlc291cmNlTmFtZS5lbmRzV2l0aChcIlByb3ZpZGVyXCIpKSB7XG4gICAgLy8gVGhpcyBpcyBhIHByb3ZpZGVyXG4gICAgcmV0dXJuIHsgcmVzb3VyY2U6IHByb3ZpZGVyLnByb3ZpZGVyLCBwYXJ0cyB9O1xuICB9XG5cbiAgY29uc3QgcmVzb3VyY2VzID0gaXNEYXRhU291cmNlXG4gICAgPyBwcm92aWRlci5kYXRhX3NvdXJjZV9zY2hlbWFzXG4gICAgOiBwcm92aWRlci5yZXNvdXJjZV9zY2hlbWFzO1xuXG4gIGNvbnN0IHJlc291cmNlID0gcmVzb3VyY2VzW2Z1bGxSZXNvdXJjZU5hbWVdO1xuICBpZiAoIXJlc291cmNlKSB7XG4gICAgLy8gQ291bGQgbm90IGZpbmQgcmVzb3VyY2VcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7IHJlc291cmNlLCBwYXJ0cyB9O1xufVxuXG5mdW5jdGlvbiBmaW5kVHlwZShcbiAgaXRlbTogU2NoZW1hIHwgQmxvY2tUeXBlIHwgQXR0cmlidXRlVHlwZSxcbiAgcGFydHM6IHN0cmluZ1tdLFxuKTogU2NoZW1hIHwgQmxvY2tUeXBlIHwgQXR0cmlidXRlVHlwZSB8IG51bGwge1xuICBpZiAoIXBhcnRzLmxlbmd0aCkge1xuICAgIHJldHVybiBpdGVtO1xuICB9XG5cbiAgY29uc3QgW2N1cnJlbnRQYXJ0LCAuLi5vdGhlclBhcnRzXSA9IHBhcnRzO1xuXG4gIC8vIFByb21pdGl2ZSBhdHRyaWJ1dGVzIGNhbiBiZSByZXR1cm5lZCBkaXJlY3RseVxuICBpZiAodHlwZW9mIGl0ZW0gPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gaXRlbTtcbiAgfVxuXG4gIC8vIENvbXBsZXggYXR0cmlidXRlc1xuICBpZiAoQXJyYXkuaXNBcnJheShpdGVtKSkge1xuICAgIGlmIChpdGVtWzBdID09PSBcInNldFwiIHx8IGl0ZW1bMF0gPT09IFwibGlzdFwiKSB7XG4gICAgICBpZiAoY3VycmVudFBhcnQgPT09IFwiW11cIikge1xuICAgICAgICByZXR1cm4gZmluZFR5cGUoaXRlbVsxXSwgb3RoZXJQYXJ0cyk7XG4gICAgICB9XG4gICAgICAvLyBUcnlpbmcgdG8gYWNjZXNzIGEgcHJvcGVydHkgb24gYSBsaXN0XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoaXRlbVswXSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgaWYgKGN1cnJlbnRQYXJ0ID09PSBcIltdXCIpIHtcbiAgICAgICAgLy8gVHJ5aW5nIHRvIGFjY2VzcyBhIHByb3BlcnR5IG9uIGEgbGlzdFxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpbmRUeXBlKGl0ZW1bMV1bY3VycmVudFBhcnRdLCBvdGhlclBhcnRzKTtcbiAgICB9XG5cbiAgICBpZiAoaXRlbVswXSA9PT0gXCJtYXBcIikge1xuICAgICAgLy8gV2UgZG9uJ3QgY2FyZSB3aGF0IHRoZSBrZXkgaXNcbiAgICAgIHJldHVybiBmaW5kVHlwZShpdGVtWzFdLCBvdGhlclBhcnRzKTtcbiAgICB9XG5cbiAgICAvLyBVbmtub3duIHR5cGVcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIElmIHdlIGFyZSBub3QgaW4gYW4gYXR0cmlidXRlLCB3ZSBjYW4gaWdub3JlIHRoZSBbXSAoc2luY2UgbWF4X2l0ZW09MSBwYXJ0cyBkb24ndCBoYXZlIFtdLCBzbyB3ZSBqdXN0IGlnbm9yZSBpdClcbiAgaWYgKGN1cnJlbnRQYXJ0ID09PSBcIltdXCIpIHtcbiAgICByZXR1cm4gZmluZFR5cGUoaXRlbSwgb3RoZXJQYXJ0cyk7XG4gIH1cblxuICAvLyBCbG9ja1xuICBpZiAoaXRlbS5ibG9jaykge1xuICAgIC8vIEZpbmQgYmxvY2sgdHlwZSBpbiBibG9ja1xuICAgIGlmIChpdGVtLmJsb2NrLmJsb2NrX3R5cGVzKSB7XG4gICAgICBjb25zdCBibG9ja1R5cGUgPSBpdGVtLmJsb2NrLmJsb2NrX3R5cGVzW2N1cnJlbnRQYXJ0XTtcbiAgICAgIGlmIChibG9ja1R5cGUpIHtcbiAgICAgICAgcmV0dXJuIGZpbmRUeXBlKGJsb2NrVHlwZSwgb3RoZXJQYXJ0cyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmluZCBhdHRyaWJ1dGUgaW4gYmxvY2tcbiAgICBpZiAoaXRlbS5ibG9jay5hdHRyaWJ1dGVzKSB7XG4gICAgICBjb25zdCBhdHRyaWJ1dGUgPSBpdGVtLmJsb2NrLmF0dHJpYnV0ZXNbY3VycmVudFBhcnRdO1xuICAgICAgaWYgKGF0dHJpYnV0ZSAmJiBhdHRyaWJ1dGUudHlwZSkge1xuICAgICAgICByZXR1cm4gZmluZFR5cGUoYXR0cmlidXRlLnR5cGUsIG90aGVyUGFydHMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENvdWxkIG5vdCBmaW5kIHRoZSB0eXBlXG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHlwZUF0UGF0aChcbiAgc2NoZW1hOiBQcm92aWRlclNjaGVtYSxcbiAgcGF0aDogc3RyaW5nLFxuKTogU2NoZW1hIHwgQmxvY2tUeXBlIHwgQXR0cmlidXRlVHlwZSB8IG51bGwge1xuICBjb25zdCByZXNvdXJjZVNjaGVtYSA9IGdldFJlc291cmNlQXRQYXRoKHNjaGVtYSwgcGF0aCk7XG5cbiAgaWYgKCFyZXNvdXJjZVNjaGVtYSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNvbnN0IHsgcmVzb3VyY2UsIHBhcnRzIH0gPSByZXNvdXJjZVNjaGVtYTtcbiAgcmV0dXJuIGZpbmRUeXBlKHJlc291cmNlLCBwYXJ0cyk7XG59XG5cbmV4cG9ydCBjb25zdCBpc01hcEF0dHJpYnV0ZSA9IChcbiAgYXR0cmlidXRlOiBTY2hlbWEgfCBBdHRyaWJ1dGVUeXBlIHwgQmxvY2tUeXBlIHwgbnVsbCxcbikgPT4gKEFycmF5LmlzQXJyYXkoYXR0cmlidXRlKSA/IGF0dHJpYnV0ZVswXSA9PT0gXCJtYXBcIiA6IGZhbHNlKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlc2lyZWRUeXBlKFxuICBzY29wZTogUHJvZ3JhbVNjb3BlLFxuICBwYXRoOiBzdHJpbmcsXG4pOiBBdHRyaWJ1dGVUeXBlIHtcbiAgY29uc3QgYXR0cmlidXRlT3JCbG9ja1R5cGUgPSBnZXRUeXBlQXRQYXRoKHNjb3BlLnByb3ZpZGVyU2NoZW1hLCBwYXRoKTtcblxuICAvLyBBdHRyaWJ1dGUgdHlwZSBpcyBub3QgZGVmaW5lZFxuICBpZiAoIWF0dHJpYnV0ZU9yQmxvY2tUeXBlKSB7XG4gICAgcmV0dXJuIFwiZHluYW1pY1wiO1xuICB9XG5cbiAgLy8gUHJpbWl0aXZlIGF0dHJpYnV0ZSB0eXBlXG4gIGlmICh0eXBlb2YgYXR0cmlidXRlT3JCbG9ja1R5cGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gYXR0cmlidXRlT3JCbG9ja1R5cGU7XG4gIH1cblxuICAvLyBDb21wbGV4IGF0dHJpYnV0ZSB0eXBlXG4gIGlmIChBcnJheS5pc0FycmF5KGF0dHJpYnV0ZU9yQmxvY2tUeXBlKSkge1xuICAgIHJldHVybiBhdHRyaWJ1dGVPckJsb2NrVHlwZTtcbiAgfVxuXG4gIC8vIFNjaGVtYVxuICBpZiAoXCJ2ZXJzaW9uXCIgaW4gYXR0cmlidXRlT3JCbG9ja1R5cGUpIHtcbiAgICByZXR1cm4gXCJkeW5hbWljXCI7XG4gIH1cblxuICAvLyBCbG9jayB0eXBlXG4gIHJldHVybiBcImR5bmFtaWNcIjtcbn1cbiJdfQ==
package/build/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBUZXJyYWZvcm1Qcm92aWRlckdlbmVyYXRvciB9IGZyb20gXCJAY2RrdG4vcHJvdmlkZXItZ2VuZXJhdG9yXCI7XG5pbXBvcnQgeyBQcm92aWRlclNjaGVtYSB9IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuXG5leHBvcnQgdHlwZSBUZXJyYWZvcm1SZXNvdXJjZUJsb2NrID0gdW5rbm93bjtcbmV4cG9ydCB0eXBlIEF0dHJpYnV0ZVBhdGggPSBzdHJpbmc7XG5leHBvcnQgdHlwZSBQcm9ncmFtU2NvcGUgPSB7XG4gIHByb3ZpZGVyU2NoZW1hOiBQcm92aWRlclNjaGVtYTtcbiAgcHJvdmlkZXJHZW5lcmF0b3I6IFJlY29yZDxzdHJpbmcsIFRlcnJhZm9ybVByb3ZpZGVyR2VuZXJhdG9yPjtcbiAgY29uc3RydWN0czogU2V0PHN0cmluZz47XG4gIHZhcmlhYmxlczogUmVjb3JkPFxuICAgIHN0cmluZyxcbiAgICB7XG4gICAgICByZXNvdXJjZTogc3RyaW5nO1xuICAgICAgdmFyaWFibGVOYW1lOiBzdHJpbmc7XG4gICAgfVxuICA+O1xuICAvLyBUZW1wb3JhcnkgZmxhZyB0byBpbmRpY2F0ZSBpZiB3ZSBuZWVkIHRvIGltcG9ydCB0aGUgY2RrdGYgbGlicmFyeSB0byBhY2Nlc3MgdGhlIHRva2VuIGNsYXNzXG4gIGhhc1Rva2VuQmFzZWRUeXBlQ29lcmNpb246IGJvb2xlYW47XG4gIG5vZGVJZHM6IHN0cmluZ1tdOyAvLyB0ZW1wb3JhcmlseSBhZGRlZCB1bnRpbCByZXBsYWNlZFxuICBpbXBvcnRhYmxlczogSW1wb3J0YWJsZUNvbnN0cnVjdFtdOyAvLyByZWNvcmRzIGFsbCBpbXBvcnRzIGZvciB0aGUgY29udmVyc2lvblxuICB0b3BMZXZlbENvbmZpZzogUmVjb3JkPHN0cmluZywgQXR0cmlidXRlUGF0aD47XG59O1xuXG5leHBvcnQgdHlwZSBSZXNvdXJjZVNjb3BlID0gUHJvZ3JhbVNjb3BlICYge1xuICBmb3JFYWNoSXRlcmF0b3JOYW1lPzogc3RyaW5nOyAvLyBzZXQgaWYgYSBmb3JfZWFjaCBpcyB1c2VkIGluIHRoaXMgcmVzb3VyY2VcbiAgY291bnRJdGVyYXRvck5hbWU/OiBzdHJpbmc7IC8vIHNldCBpZiBhIGNvdW50IGlzIHVzZWQgaW4gdGhpcyByZXNvdXJjZVxuICB3aXRoaW5PdmVycmlkZUV4cHJlc3Npb24/OiBib29sZWFuOyAvLyBzZXQgaWYgd2UgYXJlIGN1cnJlbnRseSB3aXRoaW4gYW4gb3ZlcnJpZGUgZXhwcmVzc2lvblxuICBzY29wZWRWYXJpYWJsZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+OyAvLyBzZXQgaWYgd2UgYXJlIGN1cnJlbnRseSB3aXRoaW4gYW4gZHluYW1pYyBibG9jayBleHByZXNzaW9uXG59O1xuXG5leHBvcnQgdHlwZSBSZWZlcmVuY2UgPSB7XG4gIHN0YXJ0OiBudW1iZXI7XG4gIGVuZDogbnVtYmVyO1xuICByZWZlcmVuY2VlOiB7IGlkOiBzdHJpbmc7IGZ1bGw6IHN0cmluZyB9OyAvLyBpZGVudGlmaWVyIGZvciByZXNvdXJjZVxuICB1c2VGcW4/OiBib29sZWFuO1xuICBpc1ZhcmlhYmxlPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIER5bmFtaWNCbG9jayA9IHtcbiAgcGF0aDogc3RyaW5nO1xuICBmb3JfZWFjaDogc3RyaW5nO1xuICBjb250ZW50OiBUZXJyYWZvcm1SZXNvdXJjZUJsb2NrO1xuICBzY29wZWRWYXI6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEl0ZXJhdG9yVmFyaWFibGVSZWZlcmVuY2UgPSB7XG4gIHN0YXJ0OiBudW1iZXI7XG4gIGVuZDogbnVtYmVyO1xuICB2YWx1ZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgSW1wb3J0YWJsZUNvbnN0cnVjdCA9IHtcbiAgcHJvdmlkZXI6IHN0cmluZztcbiAgY29uc3RydWN0TmFtZTogc3RyaW5nO1xuICBuYW1lc3BhY2U/OiBzdHJpbmc7XG59O1xuIl19
package/build/utils.js ADDED
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.uniqueId = exports.pascalCase = exports.camelCase = exports.leaveCommentText = exports.logger = void 0;
7
+ // Copyright (c) HashiCorp, Inc
8
+ // SPDX-License-Identifier: MPL-2.0
9
+ const camelcase_1 = __importDefault(require("camelcase"));
10
+ var commons_1 = require("@cdktn/commons");
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.`;
13
+ const camelCase = (str) => (0, camelcase_1.default)(str.replace(/[-/]/g, "_"));
14
+ exports.camelCase = camelCase;
15
+ const pascalCase = (str) => (0, camelcase_1.default)(str.replace(/[-/]/g, "_"), { pascalCase: true });
16
+ exports.pascalCase = pascalCase;
17
+ function uniqueId(set, key) {
18
+ if (set.has(key)) {
19
+ return uniqueId(set, `${key}_${set.size}`);
20
+ }
21
+ set.add(key);
22
+ return key;
23
+ }
24
+ exports.uniqueId = uniqueId;
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQywwREFBa0M7QUFFbEMsMENBQXdDO0FBQS9CLGlHQUFBLE1BQU0sT0FBQTtBQUVGLFFBQUEsZ0JBQWdCLEdBQUcsK0ZBQStGLENBQUM7QUFFekgsTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLElBQUEsbUJBQVMsRUFBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQWxFLFFBQUEsU0FBUyxhQUF5RDtBQUN4RSxNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQ3hDLElBQUEsbUJBQVMsRUFBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBRGhELFFBQUEsVUFBVSxjQUNzQztBQUU3RCxTQUFnQixRQUFRLENBQUMsR0FBZ0IsRUFBRSxHQUFXO0lBQ3BELElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pCLE9BQU8sUUFBUSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNiLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQU5ELDRCQU1DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCBjYW1lbGNhc2UgZnJvbSBcImNhbWVsY2FzZVwiO1xuXG5leHBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcblxuZXhwb3J0IGNvbnN0IGxlYXZlQ29tbWVudFRleHQgPSBgUGxlYXNlIGxlYXZlIGEgY29tbWVudCBhdCBodHRwczovL2Nkay50Zi9idWdzL2NvbnZlcnQtZXhwcmVzc2lvbnMgaWYgeW91IHJ1biBpbnRvIHRoaXMgaXNzdWUuYDtcblxuZXhwb3J0IGNvbnN0IGNhbWVsQ2FzZSA9IChzdHI6IHN0cmluZykgPT4gY2FtZWxjYXNlKHN0ci5yZXBsYWNlKC9bLS9dL2csIFwiX1wiKSk7XG5leHBvcnQgY29uc3QgcGFzY2FsQ2FzZSA9IChzdHI6IHN0cmluZykgPT5cbiAgY2FtZWxjYXNlKHN0ci5yZXBsYWNlKC9bLS9dL2csIFwiX1wiKSwgeyBwYXNjYWxDYXNlOiB0cnVlIH0pO1xuXG5leHBvcnQgZnVuY3Rpb24gdW5pcXVlSWQoc2V0OiBTZXQ8c3RyaW5nPiwga2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoc2V0LmhhcyhrZXkpKSB7XG4gICAgcmV0dXJuIHVuaXF1ZUlkKHNldCwgYCR7a2V5fV8ke3NldC5zaXplfWApO1xuICB9XG4gIHNldC5hZGQoa2V5KTtcbiAgcmV0dXJuIGtleTtcbn1cbiJdfQ==
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) HashiCorp, Inc.
4
+ * SPDX-License-Identifier: MPL-2.0
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || function (mod) {
23
+ if (mod && mod.__esModule) return mod;
24
+ var result = {};
25
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
+ __setModuleDefault(result, mod);
27
+ return result;
28
+ };
29
+ var __importDefault = (this && this.__importDefault) || function (mod) {
30
+ return (mod && mod.__esModule) ? mod : { "default": mod };
31
+ };
32
+ Object.defineProperty(exports, "__esModule", { value: true });
33
+ exports.variableName = exports.constructAst = exports.referenceToVariableName = void 0;
34
+ const t = __importStar(require("@babel/types"));
35
+ const utils_1 = require("./utils");
36
+ const provider_generator_1 = require("@cdktn/provider-generator");
37
+ const provider_1 = require("./provider");
38
+ const reserved_words_1 = __importDefault(require("reserved-words"));
39
+ function referenceToVariableName(scope, ref) {
40
+ const parts = ref.referencee.id.split(".");
41
+ const resource = parts[0] === "data" ? `${parts[0]}.${parts[1]}` : parts[0];
42
+ const name = parts[0] === "data" ? parts[2] : parts[1];
43
+ return variableName(scope, resource, name);
44
+ }
45
+ exports.referenceToVariableName = referenceToVariableName;
46
+ function validVarName(name) {
47
+ if (reserved_words_1.default.check(name)) {
48
+ return `${name}Var`;
49
+ }
50
+ if (!Number.isNaN(parseInt(name[0], 10))) {
51
+ return `d${name}`;
52
+ }
53
+ return name;
54
+ }
55
+ function getUniqueName(scope, provider, type) {
56
+ var _a;
57
+ // early abort on cdktf
58
+ if (provider === "cdktf") {
59
+ return (0, utils_1.pascalCase)(type.replace("cdktf_", ""));
60
+ }
61
+ // early abort on cdktn
62
+ if (provider === "cdktn") {
63
+ return (0, utils_1.pascalCase)(type.replace("cdktn_", ""));
64
+ }
65
+ if (provider === "NullProvider") {
66
+ return (0, utils_1.pascalCase)(type.replace("NullProvider_", ""));
67
+ }
68
+ // Special handling for provider blocks, e.g. aws_AwsProvider
69
+ if (type === `${(0, utils_1.pascalCase)(provider)}Provider`) {
70
+ return (0, provider_generator_1.sanitizeClassOrNamespaceName)(type, true);
71
+ }
72
+ const fullProviderName = (0, provider_1.getFullProviderName)(scope.providerSchema, provider);
73
+ if (fullProviderName && scope.providerGenerator[fullProviderName]) {
74
+ return (_a = scope.providerGenerator[fullProviderName]) === null || _a === void 0 ? void 0 : _a.getClassNameForResource(type);
75
+ }
76
+ else {
77
+ // If we can not find the class name for a resource the caller needs to find a sensible default
78
+ return null;
79
+ }
80
+ }
81
+ function getResourceNamespace(scope, provider, resource, isDataSource, type) {
82
+ var _a;
83
+ // happens e.g. for references to cdktn.TerraformStack (and similar) in generated code
84
+ if (provider === "cdktn") {
85
+ return undefined;
86
+ }
87
+ // e.g. awsProvider -> provider
88
+ if (resource === (0, utils_1.pascalCase)(`${provider}_provider`) ||
89
+ (provider === "NullProvider" && resource === "NullProvider")) {
90
+ return "provider";
91
+ }
92
+ const fullProviderName = (0, provider_1.getFullProviderName)(scope.providerSchema, provider);
93
+ if (fullProviderName && scope.providerGenerator[fullProviderName]) {
94
+ return (0, utils_1.camelCase)((_a = scope.providerGenerator[fullProviderName]) === null || _a === void 0 ? void 0 : _a.getNamespaceNameForResource(type.replace(/\./g, "_")));
95
+ }
96
+ if (isDataSource) {
97
+ return (0, utils_1.camelCase)((0, provider_generator_1.sanitizeClassOrNamespaceName)(`data_${provider}_${resource}`));
98
+ }
99
+ return (0, utils_1.camelCase)((0, provider_generator_1.sanitizeClassOrNamespaceName)(resource));
100
+ }
101
+ function constructAst(scope, type, isModuleImport) {
102
+ if (isModuleImport) {
103
+ return t.memberExpression(t.identifier(type), t.identifier(type));
104
+ }
105
+ if (type.startsWith("var.")) {
106
+ scope.importables.push({
107
+ provider: "cdktn",
108
+ constructName: "TerraformVariable",
109
+ });
110
+ return t.identifier("TerraformVariable");
111
+ }
112
+ if (type === "terraform.data") {
113
+ scope.importables.push({
114
+ constructName: "DataResource",
115
+ provider: "cdktn",
116
+ });
117
+ return t.identifier("DataResource");
118
+ }
119
+ // resources or data sources
120
+ if (!type.includes("./") && type.includes(".")) {
121
+ const parts = type.split(".");
122
+ if (parts[0] === "data") {
123
+ const [, provider, resource] = parts;
124
+ const namespace = getResourceNamespace(scope, provider, resource, true, type);
125
+ const resourceName = getUniqueName(scope, provider, parts.join("_")) ||
126
+ (0, utils_1.pascalCase)((0, provider_generator_1.sanitizeClassOrNamespaceName)(`data_${provider}_${resource}`));
127
+ scope.importables.push({
128
+ provider: provider,
129
+ constructName: resourceName,
130
+ namespace,
131
+ });
132
+ if (namespace) {
133
+ return t.identifier(resourceName); // e.g. DataAwsInstance
134
+ }
135
+ return t.identifier(resourceName); // e.g. DataAwsNatGateway
136
+ }
137
+ const [provider, resource] = parts;
138
+ const namespace = getResourceNamespace(scope, provider, resource, false, type);
139
+ const resourceName = getUniqueName(scope, provider, parts.join("_")) ||
140
+ (0, utils_1.pascalCase)((0, provider_generator_1.sanitizeClassOrNamespaceName)(resource));
141
+ scope.importables.push({
142
+ provider: provider,
143
+ constructName: resourceName,
144
+ namespace,
145
+ });
146
+ if (namespace) {
147
+ return t.identifier(resourceName); // e.g. Instance
148
+ }
149
+ return t.identifier(resourceName); // e.g. BigQueryTable
150
+ }
151
+ return t.identifier((0, utils_1.pascalCase)(type));
152
+ }
153
+ exports.constructAst = constructAst;
154
+ function variableName(scope, resource, name) {
155
+ const consistentResourceName = resource.replace(/\./g, "_");
156
+ // name collision, we need to prefix the name
157
+ if (scope.variables[name]) {
158
+ if (consistentResourceName === scope.variables[name].resource) {
159
+ return scope.variables[name].variableName;
160
+ }
161
+ // we only cache one per name
162
+ return validVarName((0, utils_1.camelCase)([resource, name].join("_")));
163
+ }
164
+ const variableName = validVarName((0, utils_1.camelCase)(name));
165
+ scope.variables[name] = {
166
+ variableName,
167
+ resource: consistentResourceName,
168
+ };
169
+ return variableName;
170
+ }
171
+ exports.variableName = variableName;
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3ZhcmlhYmxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILGdEQUFrQztBQUVsQyxtQ0FBZ0Q7QUFDaEQsa0VBQXlFO0FBQ3pFLHlDQUFpRDtBQUNqRCxvRUFBMkM7QUFFM0MsU0FBZ0IsdUJBQXVCLENBQ3JDLEtBQW1CLEVBQ25CLEdBQWM7SUFFZCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0MsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RSxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RCxPQUFPLFlBQVksQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFSRCwwREFRQztBQUVELFNBQVMsWUFBWSxDQUFDLElBQVk7SUFDaEMsSUFBSSx3QkFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzlCLE9BQU8sR0FBRyxJQUFJLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxF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Q0FBQyxDQUFDLGdCQUFnQjtRQUNyRCxDQUFDO1FBRUQsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMscUJBQXFCO0lBQzFELENBQUM7SUFFRCxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBQSxrQkFBVSxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQXBGRCxvQ0FvRkM7QUFFRCxTQUFnQixZQUFZLENBQzFCLEtBQW1CLEVBQ25CLFFBQWdCLEVBQ2hCLElBQVk7SUFFWixNQUFNLHNCQUFzQixHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzVELDZDQUE2QztJQUM3QyxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMxQixJQUFJLHNCQUFzQixLQUFLLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDOUQsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUM1QyxDQUFDO1FBRUQsNkJBQTZCO1FBQzdCLE9BQU8sWUFBWSxDQUFDLElBQUEsaUJBQVMsRUFBQyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsSUFBQSxpQkFBUyxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFbkQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRztRQUN0QixZQUFZO1FBQ1osUUFBUSxFQUFFLHNCQUFzQjtLQUNqQyxDQUFDO0lBRUYsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQXhCRCxvQ0F3QkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmltcG9ydCAqIGFzIHQgZnJvbSBcIkBiYWJlbC90eXBlc1wiO1xuaW1wb3J0IHsgUHJvZ3JhbVNjb3BlLCBSZWZlcmVuY2UgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgY2FtZWxDYXNlLCBwYXNjYWxDYXNlIH0gZnJvbSBcIi4vdXRpbHNcIjtcbmltcG9ydCB7IHNhbml0aXplQ2xhc3NPck5hbWVzcGFjZU5hbWUgfSBmcm9tIFwiQGNka3RuL3Byb3ZpZGVyLWdlbmVyYXRvclwiO1xuaW1wb3J0IHsgZ2V0RnVsbFByb3ZpZGVyTmFtZSB9IGZyb20gXCIuL3Byb3ZpZGVyXCI7XG5pbXBvcnQgcmVzZXJ2ZWRXb3JkcyBmcm9tIFwicmVzZXJ2ZWQtd29yZHNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZmVyZW5jZVRvVmFyaWFibGVOYW1lKFxuICBzY29wZTogUHJvZ3JhbVNjb3BlLFxuICByZWY6IFJlZmVyZW5jZSxcbik6IHN0cmluZyB7XG4gIGNvbnN0IHBhcnRzID0gcmVmLnJlZmVyZW5jZWUuaWQuc3BsaXQoXCIuXCIpO1xuICBjb25zdCByZXNvdXJjZSA9IHBhcnRzWzBdID09PSBcImRhdGFcIiA/IGAke3BhcnRzWzBdfS4ke3BhcnRzWzFdfWAgOiBwYXJ0c1swXTtcbiAgY29uc3QgbmFtZSA9IHBhcnRzWzBdID09PSBcImRhdGFcIiA/IHBhcnRzWzJdIDogcGFydHNbMV07XG4gIHJldHVybiB2YXJpYWJsZU5hbWUoc2NvcGUsIHJlc291cmNlLCBuYW1lKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRWYXJOYW1lKG5hbWU6IHN0cmluZykge1xuICBpZiAocmVzZXJ2ZWRXb3Jkcy5jaGVjayhuYW1lKSkge1xuICAgIHJldHVybiBgJHtuYW1lfVZhcmA7XG4gIH1cblxuICBpZiAoIU51bWJlci5pc05hTihwYXJzZUludChuYW1lWzBdLCAxMCkpKSB7XG4gICAgcmV0dXJuIGBkJHtuYW1lfWA7XG4gIH1cblxuICByZXR1cm4gbmFtZTtcbn1cblxuZnVuY3Rpb24gZ2V0VW5pcXVlTmFtZShzY29wZTogUHJvZ3JhbVNjb3BlLCBwcm92aWRlcjogc3RyaW5nLCB0eXBlOiBzdHJpbmcpIHtcbiAgLy8gZWFybHkgYWJvcnQgb24gY2RrdGZcbiAgaWYgKHByb3ZpZGVyID09PSBcImNka3RmXCIpIHtcbiAgICByZXR1cm4gcGFzY2FsQ2FzZSh0eXBlLnJlcGxhY2UoXCJjZGt0Zl9cIiwgXCJcIikpO1xuICB9XG4gIC8vIGVhcmx5IGFib3J0IG9uIGNka3RuXG4gIGlmIChwcm92aWRlciA9PT0gXCJjZGt0blwiKSB7XG4gICAgcmV0dXJuIHBhc2NhbENhc2UodHlwZS5yZXBsYWNlKFwiY2RrdG5fXCIsIFwiXCIpKTtcbiAgfVxuXG4gIGlmIChwcm92aWRlciA9PT0gXCJOdWxsUHJvdmlkZXJcIikge1xuICAgIHJldHVybiBwYXNjYWxDYXNlKHR5cGUucmVwbGFjZShcIk51bGxQcm92aWRlcl9cIiwgXCJcIikpO1xuICB9XG5cbiAgLy8gU3BlY2lhbCBoYW5kbGluZyBmb3IgcHJvdmlkZXIgYmxvY2tzLCBlLmcuIGF3c19Bd3NQcm92aWRlclxuICBpZiAodHlwZSA9PT0gYCR7cGFzY2FsQ2FzZShwcm92aWRlcil9UHJvdmlkZXJgKSB7XG4gICAgcmV0dXJuIHNhbml0aXplQ2xhc3NPck5hbWVzcGFjZU5hbWUodHlwZSwgdHJ1ZSk7XG4gIH1cblxuICBjb25zdCBmdWxsUHJvdmlkZXJOYW1lID0gZ2V0RnVsbFByb3ZpZGVyTmFtZShzY29wZS5wcm92aWRlclNjaGVtYSwgcHJvdmlkZXIpO1xuICBpZiAoZnVsbFByb3ZpZGVyTmFtZSAmJiBzY29wZS5wcm92aWRlckdlbmVyYXRvcltmdWxsUHJvdmlkZXJOYW1lXSkge1xuICAgIHJldHVybiBzY29wZS5wcm92aWRlckdlbmVyYXRvcltmdWxsUHJvdmlkZXJOYW1lXT8uZ2V0Q2xhc3NOYW1lRm9yUmVzb3VyY2UoXG4gICAgICB0eXBlLFxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgLy8gSWYgd2UgY2FuIG5vdCBmaW5kIHRoZSBjbGFzcyBuYW1lIGZvciBhIHJlc291cmNlIHRoZSBjYWxsZXIgbmVlZHMgdG8gZmluZCBhIHNlbnNpYmxlIGRlZmF1bHRcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRSZXNvdXJjZU5hbWVzcGFjZShcbiAgc2NvcGU6IFByb2dyYW1TY29wZSxcbiAgcHJvdmlkZXI6IHN0cmluZyxcbiAgcmVzb3VyY2U6IHN0cmluZyxcbiAgaXNEYXRhU291cmNlOiBib29sZWFuLFxuICB0eXBlOiBzdHJpbmcsXG4pIHtcbiAgLy8gaGFwcGVucyBlLmcuIGZvciByZWZlcmVuY2VzIHRvIGNka3RuLlRlcnJhZm9ybVN0YWNrIChhbmQgc2ltaWxhcikgaW4gZ2VuZXJhdGVkIGNvZGVcbiAgaWYgKHByb3ZpZGVyID09PSBcImNka3RuXCIpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gZS5nLiBhd3NQcm92aWRlciAtPiBwcm92aWRlclxuICBpZiAoXG4gICAgcmVzb3VyY2UgPT09IHBhc2NhbENhc2UoYCR7cHJvdmlkZXJ9X3Byb3ZpZGVyYCkgfHxcbiAgICAocHJvdmlkZXIgPT09IFwiTnVsbFByb3ZpZGVyXCIgJiYgcmVzb3VyY2UgPT09IFwiTnVsbFByb3ZpZGVyXCIpXG4gICkge1xuICAgIHJldHVybiBcInByb3ZpZGVyXCI7XG4gIH1cblxuICBjb25zdCBmdWxsUHJvdmlkZXJOYW1lID0gZ2V0RnVsbFByb3ZpZGVyTmFtZShzY29wZS5wcm92aWRlclNjaGVtYSwgcHJvdmlkZXIpO1xuXG4gIGlmIChmdWxsUHJvdmlkZXJOYW1lICYmIHNjb3BlLnByb3ZpZGVyR2VuZXJhdG9yW2Z1bGxQcm92aWRlck5hbWVdKSB7XG4gICAgcmV0dXJuIGNhbWVsQ2FzZShcbiAgICAgIHNjb3BlLnByb3ZpZGVyR2VuZXJhdG9yW2Z1bGxQcm92aWRlck5hbWVdPy5nZXROYW1lc3BhY2VOYW1lRm9yUmVzb3VyY2UoXG4gICAgICAgIHR5cGUucmVwbGFjZSgvXFwuL2csIFwiX1wiKSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIGlmIChpc0RhdGFTb3VyY2UpIHtcbiAgICByZXR1cm4gY2FtZWxDYXNlKFxuICAgICAgc2FuaXRpemVDbGFzc09yTmFtZXNwYWNlTmFtZShgZGF0YV8ke3Byb3ZpZGVyfV8ke3Jlc291cmNlfWApLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gY2FtZWxDYXNlKHNhbml0aXplQ2xhc3NPck5hbWVzcGFjZU5hbWUocmVzb3VyY2UpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnN0cnVjdEFzdChcbiAgc2NvcGU6IFByb2dyYW1TY29wZSxcbiAgdHlwZTogc3RyaW5nLFxuICBpc01vZHVsZUltcG9ydDogYm9vbGVhbixcbikge1xuICBpZiAoaXNNb2R1bGVJbXBvcnQpIHtcbiAgICByZXR1cm4gdC5tZW1iZXJFeHByZXNzaW9uKHQuaWRlbnRpZmllcih0eXBlKSwgdC5pZGVudGlmaWVyKHR5cGUpKTtcbiAgfVxuXG4gIGlmICh0eXBlLnN0YXJ0c1dpdGgoXCJ2YXIuXCIpKSB7XG4gICAgc2NvcGUuaW1wb3J0YWJsZXMucHVzaCh7XG4gICAgICBwcm92aWRlcjogXCJjZGt0blwiLFxuICAgICAgY29uc3RydWN0TmFtZTogXCJUZXJyYWZvcm1WYXJpYWJsZVwiLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHQuaWRlbnRpZmllcihcIlRlcnJhZm9ybVZhcmlhYmxlXCIpO1xuICB9XG5cbiAgaWYgKHR5cGUgPT09IFwidGVycmFmb3JtLmRhdGFcIikge1xuICAgIHNjb3BlLmltcG9ydGFibGVzLnB1c2goe1xuICAgICAgY29uc3RydWN0TmFtZTogXCJEYXRhUmVzb3VyY2VcIixcbiAgICAgIHByb3ZpZGVyOiBcImNka3RuXCIsXG4gICAgfSk7XG4gICAgcmV0dXJuIHQuaWRlbnRpZmllcihcIkRhdGFSZXNvdXJjZVwiKTtcbiAgfVxuXG4gIC8vIHJlc291cmNlcyBvciBkYXRhIHNvdXJjZXNcbiAgaWYgKCF0eXBlLmluY2x1ZGVzKFwiLi9cIikgJiYgdHlwZS5pbmNsdWRlcyhcIi5cIikpIHtcbiAgICBjb25zdCBwYXJ0cyA9IHR5cGUuc3BsaXQoXCIuXCIpO1xuICAgIGlmIChwYXJ0c1swXSA9PT0gXCJkYXRhXCIpIHtcbiAgICAgIGNvbnN0IFssIHByb3ZpZGVyLCByZXNvdXJjZV0gPSBwYXJ0cztcblxuICAgICAgY29uc3QgbmFtZXNwYWNlID0gZ2V0UmVzb3VyY2VOYW1lc3BhY2UoXG4gICAgICAgIHNjb3BlLFxuICAgICAgICBwcm92aWRlcixcbiAgICAgICAgcmVzb3VyY2UsXG4gICAgICAgIHRydWUsXG4gICAgICAgIHR5cGUsXG4gICAgICApO1xuICAgICAgY29uc3QgcmVzb3VyY2VOYW1lID1cbiAgICAgICAgZ2V0VW5pcXVlTmFtZShzY29wZSwgcHJvdmlkZXIsIHBhcnRzLmpvaW4oXCJfXCIpKSB8fFxuICAgICAgICBwYXNjYWxDYXNlKFxuICAgICAgICAgIHNhbml0aXplQ2xhc3NPck5hbWVzcGFjZU5hbWUoYGRhdGFfJHtwcm92aWRlcn1fJHtyZXNvdXJjZX1gKSxcbiAgICAgICAgKTtcblxuICAgICAgc2NvcGUuaW1wb3J0YWJsZXMucHVzaCh7XG4gICAgICAgIHByb3ZpZGVyOiBwcm92aWRlcixcbiAgICAgICAgY29uc3RydWN0TmFtZTogcmVzb3VyY2VOYW1lLFxuICAgICAgICBuYW1lc3BhY2UsXG4gICAgICB9KTtcblxuICAgICAgaWYgKG5hbWVzcGFjZSkge1xuICAgICAgICByZXR1cm4gdC5pZGVudGlmaWVyKHJlc291cmNlTmFtZSk7IC8vIGUuZy4gRGF0YUF3c0luc3RhbmNlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0LmlkZW50aWZpZXIocmVzb3VyY2VOYW1lKTsgLy8gZS5nLiBEYXRhQXdzTmF0R2F0ZXdheVxuICAgIH1cblxuICAgIGNvbnN0IFtwcm92aWRlciwgcmVzb3VyY2VdID0gcGFydHM7XG4gICAgY29uc3QgbmFtZXNwYWNlID0gZ2V0UmVzb3VyY2VOYW1lc3BhY2UoXG4gICAgICBzY29wZSxcbiAgICAgIHByb3ZpZGVyLFxuICAgICAgcmVzb3VyY2UsXG4gICAgICBmYWxzZSxcbiAgICAgIHR5cGUsXG4gICAgKTtcbiAgICBjb25zdCByZXNvdXJjZU5hbWUgPVxuICAgICAgZ2V0VW5pcXVlTmFtZShzY29wZSwgcHJvdmlkZXIsIHBhcnRzLmpvaW4oXCJfXCIpKSB8fFxuICAgICAgcGFzY2FsQ2FzZShzYW5pdGl6ZUNsYXNzT3JOYW1lc3BhY2VOYW1lKHJlc291cmNlKSk7XG5cbiAgICBzY29wZS5pbXBvcnRhYmxlcy5wdXNoKHtcbiAgICAgIHByb3ZpZGVyOiBwcm92aWRlcixcbiAgICAgIGNvbnN0cnVjdE5hbWU6IHJlc291cmNlTmFtZSxcbiAgICAgIG5hbWVzcGFjZSxcbiAgICB9KTtcblxuICAgIGlmIChuYW1lc3BhY2UpIHtcbiAgICAgIHJldHVybiB0LmlkZW50aWZpZXIocmVzb3VyY2VOYW1lKTsgLy8gZS5nLiBJbnN0YW5jZVxuICAgIH1cblxuICAgIHJldHVybiB0LmlkZW50aWZpZXIocmVzb3VyY2VOYW1lKTsgLy8gZS5nLiBCaWdRdWVyeVRhYmxlXG4gIH1cblxuICByZXR1cm4gdC5pZGVudGlmaWVyKHBhc2NhbENhc2UodHlwZSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFyaWFibGVOYW1lKFxuICBzY29wZTogUHJvZ3JhbVNjb3BlLFxuICByZXNvdXJjZTogc3RyaW5nLFxuICBuYW1lOiBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICBjb25zdCBjb25zaXN0ZW50UmVzb3VyY2VOYW1lID0gcmVzb3VyY2UucmVwbGFjZSgvXFwuL2csIFwiX1wiKTtcbiAgLy8gbmFtZSBjb2xsaXNpb24sIHdlIG5lZWQgdG8gcHJlZml4IHRoZSBuYW1lXG4gIGlmIChzY29wZS52YXJpYWJsZXNbbmFtZV0pIHtcbiAgICBpZiAoY29uc2lzdGVudFJlc291cmNlTmFtZSA9PT0gc2NvcGUudmFyaWFibGVzW25hbWVdLnJlc291cmNlKSB7XG4gICAgICByZXR1cm4gc2NvcGUudmFyaWFibGVzW25hbWVdLnZhcmlhYmxlTmFtZTtcbiAgICB9XG5cbiAgICAvLyB3ZSBvbmx5IGNhY2hlIG9uZSBwZXIgbmFtZVxuICAgIHJldHVybiB2YWxpZFZhck5hbWUoY2FtZWxDYXNlKFtyZXNvdXJjZSwgbmFtZV0uam9pbihcIl9cIikpKTtcbiAgfVxuXG4gIGNvbnN0IHZhcmlhYmxlTmFtZSA9IHZhbGlkVmFyTmFtZShjYW1lbENhc2UobmFtZSkpO1xuXG4gIHNjb3BlLnZhcmlhYmxlc1tuYW1lXSA9IHtcbiAgICB2YXJpYWJsZU5hbWUsXG4gICAgcmVzb3VyY2U6IGNvbnNpc3RlbnRSZXNvdXJjZU5hbWUsXG4gIH07XG5cbiAgcmV0dXJuIHZhcmlhYmxlTmFtZTtcbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@cdktn/hcl2cdk",
3
- "version": "0.23.0-pre.8",
3
+ "version": "0.23.0",
4
4
  "description": "Transform HCL into CDK",
5
- "main": "lib/index.js",
6
- "types": "lib/index.d.ts",
5
+ "main": "build/index.js",
6
+ "types": "build/index.d.ts",
7
7
  "publishConfig": {
8
8
  "access": "public"
9
9
  },
@@ -40,33 +40,32 @@
40
40
  "@babel/generator": "7.29.1",
41
41
  "@babel/template": "7.28.6",
42
42
  "@babel/types": "7.29.0",
43
- "@cdktn/commons": "0.23.0-pre.8",
44
- "@cdktn/hcl2json": "0.23.0-pre.8",
45
- "@cdktn/provider-generator": "0.23.0-pre.8",
46
- "@cdktn/provider-schema": "0.23.0-pre.8",
43
+ "@cdktn/commons": "0.23.0",
44
+ "@cdktn/hcl2json": "0.23.0",
45
+ "@cdktn/provider-generator": "0.23.0",
46
+ "@cdktn/provider-schema": "0.23.0",
47
47
  "camelcase": "6.3.0",
48
- "cdktn": "0.23.0-pre.8",
49
- "codemaker": "1.112.0",
48
+ "cdktn": "0.23.0",
49
+ "codemaker": "1.128.0",
50
50
  "deep-equal": "2.2.3",
51
51
  "glob": "10.5.0",
52
52
  "graphology": "0.26.0",
53
53
  "graphology-types": "0.24.7",
54
- "jsii-rosetta": "5.8.8",
54
+ "jsii-rosetta": "5.9.39",
55
55
  "prettier": "2.8.8",
56
56
  "reserved-words": "0.1.2",
57
57
  "zod": "3.25.76"
58
58
  },
59
59
  "devDependencies": {
60
60
  "@types/deep-equal": "1.0.4",
61
- "@types/glob": "8.1.0",
62
- "@types/jest": "29.5.14",
61
+ "@types/jest": "30.0.0",
63
62
  "@types/node": "20.19.37",
64
63
  "@types/prettier": "2.7.3",
65
64
  "@types/reserved-words": "0.1.4",
66
65
  "execa": "5.1.1",
67
66
  "fs-extra": "11.3.4",
68
- "jest": "^29.7.0",
69
- "ts-jest": "29.4.6",
67
+ "jest": "^30.3.0",
68
+ "ts-jest": "29.4.9",
70
69
  "typescript": "5.4.5"
71
70
  }
72
71
  }
package/tsconfig.json CHANGED
@@ -26,13 +26,15 @@
26
26
  "skipLibCheck": true,
27
27
  "target": "ES2018",
28
28
  "incremental": true,
29
- "esModuleInterop": true
29
+ "esModuleInterop": true,
30
+ "rootDir": "./src",
31
+ "outDir": "./build"
30
32
  },
31
33
  "files": [
32
34
  "ambient.d.ts"
33
35
  ],
34
36
  "include": [
35
- "**/*.ts",
37
+ "src/**/*.ts",
36
38
  ],
37
39
  "exclude": [
38
40
  "node_modules",