@cdktn/provider-generator 0.23.0-pre.38 → 0.23.0-pre.39

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 (179) hide show
  1. package/build/__tests__/edge-provider-schema/builder.js +106 -0
  2. package/build/__tests__/edge-provider-schema/cli.js +67 -0
  3. package/build/__tests__/edge-provider-schema/index.js +154 -0
  4. package/build/__tests__/edge-provider-schema.test.js +46 -0
  5. package/build/__tests__/provider.test.js +158 -0
  6. package/build/get/__tests__/constructs-maker.test.js +113 -0
  7. package/build/get/__tests__/generator/complex-computed-types.test.js +42 -0
  8. package/build/get/__tests__/generator/deep-nested-attributes.test.js +50 -0
  9. package/build/get/__tests__/generator/description-escaping.test.js +65 -0
  10. package/build/get/__tests__/generator/empty-provider-resources.test.js +40 -0
  11. package/build/get/__tests__/generator/export-sharding.test.js +82 -0
  12. package/build/get/__tests__/generator/module-generator.test.js +476 -0
  13. package/build/get/__tests__/generator/nested-types.test.js +51 -0
  14. package/build/get/__tests__/generator/provider.test.js +51 -0
  15. package/build/get/__tests__/generator/resource-types.test.js +78 -0
  16. package/build/get/__tests__/generator/skipped-attributes.test.js +55 -0
  17. package/build/get/__tests__/generator/types.test.js +289 -0
  18. package/build/get/__tests__/generator/versions-file.test.js +74 -0
  19. package/build/get/__tests__/util.js +59 -0
  20. package/{lib → build}/get/constructs-maker.d.ts +1 -1
  21. package/build/get/constructs-maker.js +530 -0
  22. package/build/get/generator/custom-defaults.js +403 -0
  23. package/build/get/generator/emitter/attributes-emitter.js +161 -0
  24. package/{lib → build}/get/generator/emitter/index.js +1 -1
  25. package/build/get/generator/emitter/resource-emitter.js +144 -0
  26. package/build/get/generator/emitter/struct-emitter.js +500 -0
  27. package/build/get/generator/loop-detection.js +56 -0
  28. package/build/get/generator/models/attribute-model.js +160 -0
  29. package/build/get/generator/models/attribute-type-model.js +376 -0
  30. package/{lib → build}/get/generator/models/index.js +1 -1
  31. package/build/get/generator/models/resource-model.js +106 -0
  32. package/build/get/generator/models/scope.js +36 -0
  33. package/build/get/generator/models/struct.js +90 -0
  34. package/build/get/generator/module-generator.js +184 -0
  35. package/build/get/generator/provider-generator.js +225 -0
  36. package/build/get/generator/resource-parser.js +497 -0
  37. package/build/get/generator/sanitized-comments.js +44 -0
  38. package/build/get/generator/skipped-attributes.js +29 -0
  39. package/{lib → build}/index.js +1 -1
  40. package/build/util.js +30 -0
  41. package/package.json +6 -6
  42. package/tsconfig.json +5 -3
  43. package/lib/__tests__/edge-provider-schema/builder.js +0 -106
  44. package/lib/__tests__/edge-provider-schema/cli.js +0 -67
  45. package/lib/__tests__/edge-provider-schema/index.js +0 -154
  46. package/lib/__tests__/edge-provider-schema.test.js +0 -46
  47. package/lib/__tests__/provider.test.js +0 -158
  48. package/lib/get/__tests__/constructs-maker.test.js +0 -113
  49. package/lib/get/__tests__/generator/complex-computed-types.test.js +0 -42
  50. package/lib/get/__tests__/generator/deep-nested-attributes.test.js +0 -50
  51. package/lib/get/__tests__/generator/description-escaping.test.js +0 -65
  52. package/lib/get/__tests__/generator/empty-provider-resources.test.js +0 -40
  53. package/lib/get/__tests__/generator/export-sharding.test.js +0 -82
  54. package/lib/get/__tests__/generator/module-generator.test.js +0 -476
  55. package/lib/get/__tests__/generator/nested-types.test.js +0 -51
  56. package/lib/get/__tests__/generator/provider.test.js +0 -51
  57. package/lib/get/__tests__/generator/resource-types.test.js +0 -78
  58. package/lib/get/__tests__/generator/skipped-attributes.test.js +0 -55
  59. package/lib/get/__tests__/generator/types.test.js +0 -289
  60. package/lib/get/__tests__/generator/versions-file.test.js +0 -74
  61. package/lib/get/__tests__/util.js +0 -59
  62. package/lib/get/constructs-maker.js +0 -530
  63. package/lib/get/generator/custom-defaults.js +0 -403
  64. package/lib/get/generator/emitter/attributes-emitter.js +0 -161
  65. package/lib/get/generator/emitter/resource-emitter.js +0 -144
  66. package/lib/get/generator/emitter/struct-emitter.js +0 -500
  67. package/lib/get/generator/loop-detection.js +0 -56
  68. package/lib/get/generator/models/attribute-model.js +0 -160
  69. package/lib/get/generator/models/attribute-type-model.js +0 -376
  70. package/lib/get/generator/models/resource-model.js +0 -106
  71. package/lib/get/generator/models/scope.js +0 -36
  72. package/lib/get/generator/models/struct.js +0 -90
  73. package/lib/get/generator/module-generator.js +0 -184
  74. package/lib/get/generator/provider-generator.js +0 -225
  75. package/lib/get/generator/resource-parser.js +0 -497
  76. package/lib/get/generator/sanitized-comments.js +0 -44
  77. package/lib/get/generator/skipped-attributes.js +0 -29
  78. package/lib/util.js +0 -30
  79. /package/{lib → build}/__tests__/edge-provider-schema/builder.d.ts +0 -0
  80. /package/{lib → build}/__tests__/edge-provider-schema/cli.d.ts +0 -0
  81. /package/{lib → build}/__tests__/edge-provider-schema/index.d.ts +0 -0
  82. /package/{lib → build}/__tests__/edge-provider-schema.test.d.ts +0 -0
  83. /package/{lib → build}/__tests__/provider.test.d.ts +0 -0
  84. /package/{lib → build}/get/__tests__/constructs-maker.test.d.ts +0 -0
  85. /package/{lib → build}/get/__tests__/generator/complex-computed-types.test.d.ts +0 -0
  86. /package/{lib → build}/get/__tests__/generator/deep-nested-attributes.test.d.ts +0 -0
  87. /package/{lib → build}/get/__tests__/generator/description-escaping.test.d.ts +0 -0
  88. /package/{lib → build}/get/__tests__/generator/empty-provider-resources.test.d.ts +0 -0
  89. /package/{lib → build}/get/__tests__/generator/export-sharding.test.d.ts +0 -0
  90. /package/{lib → build}/get/__tests__/generator/module-generator.test.d.ts +0 -0
  91. /package/{lib → build}/get/__tests__/generator/nested-types.test.d.ts +0 -0
  92. /package/{lib → build}/get/__tests__/generator/provider.test.d.ts +0 -0
  93. /package/{lib → build}/get/__tests__/generator/resource-types.test.d.ts +0 -0
  94. /package/{lib → build}/get/__tests__/generator/skipped-attributes.test.d.ts +0 -0
  95. /package/{lib → build}/get/__tests__/generator/types.test.d.ts +0 -0
  96. /package/{lib → build}/get/__tests__/generator/versions-file.test.d.ts +0 -0
  97. /package/{lib → build}/get/__tests__/util.d.ts +0 -0
  98. /package/{lib → build}/get/generator/custom-defaults.d.ts +0 -0
  99. /package/{lib → build}/get/generator/emitter/attributes-emitter.d.ts +0 -0
  100. /package/{lib → build}/get/generator/emitter/index.d.ts +0 -0
  101. /package/{lib → build}/get/generator/emitter/resource-emitter.d.ts +0 -0
  102. /package/{lib → build}/get/generator/emitter/struct-emitter.d.ts +0 -0
  103. /package/{lib → build}/get/generator/loop-detection.d.ts +0 -0
  104. /package/{lib → build}/get/generator/models/attribute-model.d.ts +0 -0
  105. /package/{lib → build}/get/generator/models/attribute-type-model.d.ts +0 -0
  106. /package/{lib → build}/get/generator/models/index.d.ts +0 -0
  107. /package/{lib → build}/get/generator/models/resource-model.d.ts +0 -0
  108. /package/{lib → build}/get/generator/models/scope.d.ts +0 -0
  109. /package/{lib → build}/get/generator/models/struct.d.ts +0 -0
  110. /package/{lib → build}/get/generator/module-generator.d.ts +0 -0
  111. /package/{lib → build}/get/generator/provider-generator.d.ts +0 -0
  112. /package/{lib → build}/get/generator/resource-parser.d.ts +0 -0
  113. /package/{lib → build}/get/generator/sanitized-comments.d.ts +0 -0
  114. /package/{lib → build}/get/generator/skipped-attributes.d.ts +0 -0
  115. /package/{lib → build}/index.d.ts +0 -0
  116. /package/{lib → build}/util.d.ts +0 -0
  117. /package/{lib → src}/__tests__/__snapshots__/edge-provider-schema.test.ts.snap +0 -0
  118. /package/{lib → src}/__tests__/__snapshots__/provider.test.ts.snap +0 -0
  119. /package/{lib → src}/get/__tests__/generator/__snapshots__/complex-computed-types.test.ts.snap +0 -0
  120. /package/{lib → src}/get/__tests__/generator/__snapshots__/description-escaping.test.ts.snap +0 -0
  121. /package/{lib → src}/get/__tests__/generator/__snapshots__/export-sharding.test.ts.snap +0 -0
  122. /package/{lib → src}/get/__tests__/generator/__snapshots__/module-generator.test.ts.snap +0 -0
  123. /package/{lib → src}/get/__tests__/generator/__snapshots__/nested-types.test.ts.snap +0 -0
  124. /package/{lib → src}/get/__tests__/generator/__snapshots__/provider.test.ts.snap +0 -0
  125. /package/{lib → src}/get/__tests__/generator/__snapshots__/resource-types.test.ts.snap +0 -0
  126. /package/{lib → src}/get/__tests__/generator/__snapshots__/skipped-attributes.test.ts.snap +0 -0
  127. /package/{lib → src}/get/__tests__/generator/__snapshots__/types.test.ts.snap +0 -0
  128. /package/{lib → src}/get/__tests__/generator/fixtures/aws-provider.test.fixture.json +0 -0
  129. /package/{lib → src}/get/__tests__/generator/fixtures/aws_acm_certificate.test.fixture.json +0 -0
  130. /package/{lib → src}/get/__tests__/generator/fixtures/aws_cloudfront_distribution.test.fixture.json +0 -0
  131. /package/{lib → src}/get/__tests__/generator/fixtures/aws_fms_admin_account.test.fixture.json +0 -0
  132. /package/{lib → src}/get/__tests__/generator/fixtures/aws_quicksight_template.test.fixture.json +0 -0
  133. /package/{lib → src}/get/__tests__/generator/fixtures/aws_s3_bucket.test.fixture.json +0 -0
  134. /package/{lib → src}/get/__tests__/generator/fixtures/aws_security_group.test.fixture.json +0 -0
  135. /package/{lib → src}/get/__tests__/generator/fixtures/aws_wafv2_web_acl.test.fixture.json +0 -0
  136. /package/{lib → src}/get/__tests__/generator/fixtures/block-type-nested-computed-list.test.fixture.json +0 -0
  137. /package/{lib → src}/get/__tests__/generator/fixtures/block-type-set-list.test.fixture.json +0 -0
  138. /package/{lib → src}/get/__tests__/generator/fixtures/boolean-list.test.fixture.json +0 -0
  139. /package/{lib → src}/get/__tests__/generator/fixtures/boolean-map.test.fixture.json +0 -0
  140. /package/{lib → src}/get/__tests__/generator/fixtures/comment-ending-sequence.test.fixture.json +0 -0
  141. /package/{lib → src}/get/__tests__/generator/fixtures/computed-complex-nested.test.fixture.json +0 -0
  142. /package/{lib → src}/get/__tests__/generator/fixtures/computed-complex.test.fixture.json +0 -0
  143. /package/{lib → src}/get/__tests__/generator/fixtures/computed-optional-complex.test.fixture.json +0 -0
  144. /package/{lib → src}/get/__tests__/generator/fixtures/data_aws_quicksight_analysis.fixture.json +0 -0
  145. /package/{lib → src}/get/__tests__/generator/fixtures/datadog_dashboard.test.fixture.json +0 -0
  146. /package/{lib → src}/get/__tests__/generator/fixtures/datadog_spans_metric.test.fixture.json +0 -0
  147. /package/{lib → src}/get/__tests__/generator/fixtures/deep-attributes.test.fixture.json +0 -0
  148. /package/{lib → src}/get/__tests__/generator/fixtures/deeply-nested-block-types.test.fixture.json +0 -0
  149. /package/{lib → src}/get/__tests__/generator/fixtures/description-escaping.test.fixture.json +0 -0
  150. /package/{lib → src}/get/__tests__/generator/fixtures/elasticstack-provider.test.fixture.json +0 -0
  151. /package/{lib → src}/get/__tests__/generator/fixtures/empty-provider-resources.test.fixture.json +0 -0
  152. /package/{lib → src}/get/__tests__/generator/fixtures/ignored-attributes.test.fixture.json +0 -0
  153. /package/{lib → src}/get/__tests__/generator/fixtures/incompatible-attribute-names.test.fixture.json +0 -0
  154. /package/{lib → src}/get/__tests__/generator/fixtures/incompatible-resource-names.test.fixture.json +0 -0
  155. /package/{lib → src}/get/__tests__/generator/fixtures/list-list-object.test.fixture.json +0 -0
  156. /package/{lib → src}/get/__tests__/generator/fixtures/list-list-string.test.fixture.json +0 -0
  157. /package/{lib → src}/get/__tests__/generator/fixtures/list-of-string-map.test.fixture.json +0 -0
  158. /package/{lib → src}/get/__tests__/generator/fixtures/map-of-map-of-string.test.fixture.json +0 -0
  159. /package/{lib → src}/get/__tests__/generator/fixtures/map-of-string-list.test.fixture.json +0 -0
  160. /package/{lib → src}/get/__tests__/generator/fixtures/markdown-description-with-code-blocks.test.fixture.json +0 -0
  161. /package/{lib → src}/get/__tests__/generator/fixtures/module-get-x.test.fixture.tf +0 -0
  162. /package/{lib → src}/get/__tests__/generator/fixtures/module-no-newline-1.test.fixture.tf +0 -0
  163. /package/{lib → src}/get/__tests__/generator/fixtures/module-no-newline-2.test.fixture.tf +0 -0
  164. /package/{lib → src}/get/__tests__/generator/fixtures/module-no-outputs.test.fixture.tf +0 -0
  165. /package/{lib → src}/get/__tests__/generator/fixtures/module-no-variable-type.test.fixture.tf +0 -0
  166. /package/{lib → src}/get/__tests__/generator/fixtures/module-with-star-default.test.fixture.tf +0 -0
  167. /package/{lib → src}/get/__tests__/generator/fixtures/name-conflict.test.fixture.json +0 -0
  168. /package/{lib → src}/get/__tests__/generator/fixtures/nested-type-without-attributes.test.fixture.json +0 -0
  169. /package/{lib → src}/get/__tests__/generator/fixtures/nested-types.test.fixture.json +0 -0
  170. /package/{lib → src}/get/__tests__/generator/fixtures/number-list.test.fixture.json +0 -0
  171. /package/{lib → src}/get/__tests__/generator/fixtures/number-map.test.fixture.json +0 -0
  172. /package/{lib → src}/get/__tests__/generator/fixtures/primitive-boolean.test.fixture.json +0 -0
  173. /package/{lib → src}/get/__tests__/generator/fixtures/primitive-dynamic.test.fixture.json +0 -0
  174. /package/{lib → src}/get/__tests__/generator/fixtures/primitive-number.test.fixture.json +0 -0
  175. /package/{lib → src}/get/__tests__/generator/fixtures/primitive-string.test.fixture.json +0 -0
  176. /package/{lib → src}/get/__tests__/generator/fixtures/single-block-type.test.fixture.json +0 -0
  177. /package/{lib → src}/get/__tests__/generator/fixtures/string-list.test.fixture.json +0 -0
  178. /package/{lib → src}/get/__tests__/generator/fixtures/string-map.test.fixture.json +0 -0
  179. /package/{lib → src}/get/__tests__/generator/fixtures/stripe-schema.test.fixture.json +0 -0
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ // Copyright (c) HashiCorp, Inc
27
+ // SPDX-License-Identifier: MPL-2.0
28
+ const fs = __importStar(require("fs-extra"));
29
+ const os = __importStar(require("os"));
30
+ const path = __importStar(require("path"));
31
+ const commons_1 = require("@cdktn/commons");
32
+ const constructs_maker_1 = require("../constructs-maker");
33
+ describe("constructsMaker", () => {
34
+ describe("determineGoModuleName", () => {
35
+ let tmpDir;
36
+ let emptySubDir, validSubdir, invalidSubdir;
37
+ beforeAll(async () => {
38
+ tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), "cdktf.test"));
39
+ /* test directory layout
40
+ * <tmpDir>
41
+ * ├── go.mod
42
+ * └── subdir
43
+ * ├── empty
44
+ * ├── valid
45
+ * │ └── go.mod
46
+ * └── invalid
47
+ * └── go.mod
48
+ */
49
+ emptySubDir = path.join(tmpDir, "subdir", "empty");
50
+ validSubdir = path.join(tmpDir, "subdir", "valid");
51
+ invalidSubdir = path.join(tmpDir, "subdir", "invalid");
52
+ await fs.mkdirs(emptySubDir);
53
+ await fs.mkdirs(validSubdir);
54
+ await fs.mkdirs(invalidSubdir);
55
+ const root = `module cdk.tf/test/go`;
56
+ const valid = `module cdk.tf/test/go-valid-subdir`;
57
+ const invalid = `malformed go mod`;
58
+ await fs.writeFile(path.join(tmpDir, "go.mod"), root);
59
+ await fs.writeFile(path.join(validSubdir, "go.mod"), valid);
60
+ await fs.writeFile(path.join(invalidSubdir, "go.mod"), invalid);
61
+ });
62
+ afterAll(async () => {
63
+ // await fs.remove(tmpDir);
64
+ });
65
+ it("works in root directory", async () => {
66
+ const moduleName = await (0, constructs_maker_1.determineGoModuleName)(tmpDir);
67
+ expect(moduleName).toBe("cdk.tf/test/go");
68
+ });
69
+ it("can walk upwards from empty directory", async () => {
70
+ const moduleName = await (0, constructs_maker_1.determineGoModuleName)(emptySubDir);
71
+ expect(moduleName).toBe("cdk.tf/test/go/subdir/empty");
72
+ });
73
+ it("works in subdirectory with go.mod", async () => {
74
+ const moduleName = await (0, constructs_maker_1.determineGoModuleName)(validSubdir);
75
+ expect(moduleName).toBe("cdk.tf/test/go-valid-subdir");
76
+ });
77
+ it("throws if go.mod is invalid", async () => {
78
+ await expect((0, constructs_maker_1.determineGoModuleName)(invalidSubdir)).rejects.toThrow(`Could not determine the root Go module name. Found ${path.join(invalidSubdir, "go.mod")} but failed to regex match the module name directive`);
79
+ });
80
+ it("works from subdirectory that does not exist yet", async () => {
81
+ const moduleName = await (0, constructs_maker_1.determineGoModuleName)(path.join(tmpDir, "subdir", "that", "does", "not", "exist", "yet"));
82
+ expect(moduleName).toBe("cdk.tf/test/go/subdir/that/does/not/exist/yet");
83
+ });
84
+ it("throws if nothing could be found", async () => {
85
+ const dir = "/cdktf-test/this/dir/does/not/exist"; //... and has no go.mod in any parent dir
86
+ await expect((0, constructs_maker_1.determineGoModuleName)(dir)).rejects.toThrow(`Could not determine the root Go module name. No go.mod found in ${dir} and any parent directories`);
87
+ });
88
+ });
89
+ describe("ConstructsMakerProviderTarget", () => {
90
+ it("returns valid package name for Go", () => {
91
+ const target = new commons_1.ConstructsMakerProviderTarget({
92
+ name: "google-beta",
93
+ fqn: "google-beta",
94
+ source: "google-beta",
95
+ version: "~> 4.0",
96
+ }, commons_1.Language.GO);
97
+ expect(target.srcMakName).toEqual("google_beta");
98
+ });
99
+ });
100
+ describe("ConstructsMakerModuleTarget", () => {
101
+ it("returns valid package name for Go", () => {
102
+ const target = new commons_1.ConstructsMakerModuleTarget({
103
+ name: "security-group",
104
+ source: "terraform-aws-modules/security-group/aws",
105
+ fqn: "terraform-aws-modules/security-group/aws",
106
+ version: "4.9.0",
107
+ namespace: "terraform-aws-modules/aws",
108
+ }, commons_1.Language.GO);
109
+ expect(target.srcMakName).toEqual("security_group");
110
+ });
111
+ });
112
+ });
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0cy1tYWtlci50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dldC9fX3Rlc3RzX18vY29uc3RydWN0cy1tYWtlci50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLDZDQUErQjtBQUMvQix1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLDRDQUl3QjtBQUN4QiwwREFBNEQ7QUFFNUQsUUFBUSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsRUFBRTtJQUMvQixRQUFRLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxFQUFFO1FBQ3JDLElBQUksTUFBYyxDQUFDO1FBQ25CLElBQUksV0FBbUIsRUFBRSxXQUFtQixFQUFFLGFBQXFCLENBQUM7UUFFcEUsU0FBUyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ25CLE1BQU0sR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUNoRTs7Ozs7Ozs7O2VBU0c7WUFDSCxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ25ELFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDbkQsYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUV2RCxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDN0IsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzdCLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxh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TSxNQUFNLEdBQUcsSUFBSSx1Q0FBNkIsQ0FDOUM7Z0JBQ0UsSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLEdBQUcsRUFBRSxhQUFhO2dCQUNsQixNQUFNLEVBQUUsYUFBYTtnQkFDckIsT0FBTyxFQUFFLFFBQVE7YUFDbEIsRUFDRCxrQkFBUSxDQUFDLEVBQUUsQ0FDWixDQUFDO1lBQ0YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUNILFFBQVEsQ0FBQyw2QkFBNkIsRUFBRSxHQUFHLEVBQUU7UUFDM0MsRUFBRSxDQUFDLG1DQUFtQyxFQUFFLEdBQUcsRUFBRTtZQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFJLHFDQUEyQixDQUM1QztnQkFDRSxJQUFJLEVBQUUsZ0JBQWdCO2dCQUN0QixNQUFNLEVBQUUsMENBQTBDO2dCQUNsRCxHQUFHLEVBQUUsMENBQTBDO2dCQUMvQyxPQUFPLEVBQUUsT0FBTztnQkFDaEIsU0FBUyxFQUFFLDJCQUEyQjthQUN2QyxFQUNELGtCQUFRLENBQUMsRUFBRSxDQUNaLENBQUM7WUFDRixNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCAqIGFzIG9zIGZyb20gXCJvc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHtcbiAgTGFuZ3VhZ2UsXG4gIENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldCxcbiAgQ29uc3RydWN0c01ha2VyUHJvdmlkZXJUYXJnZXQsXG59IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuaW1wb3J0IHsgZGV0ZXJtaW5lR29Nb2R1bGVOYW1lIH0gZnJvbSBcIi4uL2NvbnN0cnVjdHMtbWFrZXJcIjtcblxuZGVzY3JpYmUoXCJjb25zdHJ1Y3RzTWFrZXJcIiwgKCkgPT4ge1xuICBkZXNjcmliZShcImRldGVybWluZUdvTW9kdWxlTmFtZVwiLCAoKSA9PiB7XG4gICAgbGV0IHRtcERpcjogc3RyaW5nO1xuICAgIGxldCBlbXB0eVN1YkRpcjogc3RyaW5nLCB2YWxpZFN1YmRpcjogc3RyaW5nLCBpbnZhbGlkU3ViZGlyOiBzdHJpbmc7XG5cbiAgICBiZWZvcmVBbGwoYXN5bmMgKCkgPT4ge1xuICAgICAgdG1wRGlyID0gYXdhaXQgZnMubWtkdGVtcChwYXRoLmpvaW4ob3MudG1wZGlyKCksIFwiY2RrdGYudGVzdFwiKSk7XG4gICAgICAvKiB0ZXN0IGRpcmVjdG9yeSBsYXlvdXRcbiAgICAgICAqIDx0bXBEaXI+XG4gICAgICAgKiDilJzilIDilIAgZ28ubW9kXG4gICAgICAgKiDilJTilIDilIAgc3ViZGlyXG4gICAgICAgKiAgICAg4pSc4pSA4pSAIGVtcHR5XG4gICAgICAgKiAgICAg4pSc4pSA4pSAIHZhbGlkXG4gICAgICAgKiAgICAg4pSCICAg4pSU4pSA4pSAIGdvLm1vZFxuICAgICAgICogICAgIOKUlOKUgOKUgCBpbnZhbGlkXG4gICAgICAgKiAgICAgICAgIOKUlOKUgOKUgCBnby5tb2RcbiAgICAgICAqL1xuICAgICAgZW1wdHlTdWJEaXIgPSBwYXRoLmpvaW4odG1wRGlyLCBcInN1YmRpclwiLCBcImVtcHR5XCIpO1xuICAgICAgdmFsaWRTdWJkaXIgPSBwYXRoLmpvaW4odG1wRGlyLCBcInN1YmRpclwiLCBcInZhbGlkXCIpO1xuICAgICAgaW52YWxpZFN1YmRpciA9IHBhdGguam9pbih0bXBEaXIsIFwic3ViZGlyXCIsIFwiaW52YWxpZFwiKTtcblxuICAgICAgYXdhaXQgZnMubWtkaXJzKGVtcHR5U3ViRGlyKTtcbiAgICAgIGF3YWl0IGZzLm1rZGlycyh2YWxpZFN1YmRpcik7XG4gICAgICBhd2FpdCBmcy5ta2RpcnMoaW52YWxpZFN1YmRpcik7XG5cbiAgICAgIGNvbnN0IHJvb3QgPSBgbW9kdWxlIGNkay50Zi90ZXN0L2dvYDtcbiAgICAgIGNvbnN0IHZhbGlkID0gYG1vZHVsZSBjZGsudGYvdGVzdC9nby12YWxpZC1zdWJkaXJgO1xuICAgICAgY29uc3QgaW52YWxpZCA9IGBtYWxmb3JtZWQgZ28gbW9kYDtcblxuICAgICAgYXdhaXQgZnMud3JpdGVGaWxlKHBhdGguam9pbih0bXBEaXIsIFwiZ28ubW9kXCIpLCByb290KTtcbiAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShwYXRoLmpvaW4odmFsaWRTdWJkaXIsIFwiZ28ubW9kXCIpLCB2YWxpZCk7XG4gICAgICBhd2FpdCBmcy53cml0ZUZpbGUocGF0aC5qb2luKGludmFsaWRTdWJkaXIsIFwiZ28ubW9kXCIpLCBpbnZhbGlkKTtcbiAgICB9KTtcblxuICAgIGFmdGVyQWxsKGFzeW5jICgpID0+IHtcbiAgICAgIC8vIGF3YWl0IGZzLnJlbW92ZSh0bXBEaXIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJ3b3JrcyBpbiByb290IGRpcmVjdG9yeVwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtb2R1bGVOYW1lID0gYXdhaXQgZGV0ZXJtaW5lR29Nb2R1bGVOYW1lKHRtcERpcik7XG4gICAgICBleHBlY3QobW9kdWxlTmFtZSkudG9CZShcImNkay50Zi90ZXN0L2dvXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJjYW4gd2FsayB1cHdhcmRzIGZyb20gZW1wdHkgZGlyZWN0b3J5XCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG1vZHVsZU5hbWUgPSBhd2FpdCBkZXRlcm1pbmVHb01vZHVsZU5hbWUoZW1wdHlTdWJEaXIpO1xuICAgICAgZXhwZWN0KG1vZHVsZU5hbWUpLnRvQmUoXCJjZGsudGYvdGVzdC9nby9zdWJkaXIvZW1wdHlcIik7XG4gICAgfSk7XG5cbiAgICBpdChcIndvcmtzIGluIHN1YmRpcmVjdG9yeSB3aXRoIGdvLm1vZFwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtb2R1bGVOYW1lID0gYXdhaXQgZGV0ZXJtaW5lR29Nb2R1bGVOYW1lKHZhbGlkU3ViZGlyKTtcbiAgICAgIGV4cGVjdChtb2R1bGVOYW1lKS50b0JlKFwiY2RrLnRmL3Rlc3QvZ28tdmFsaWQtc3ViZGlyXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJ0aHJvd3MgaWYgZ28ubW9kIGlzIGludmFsaWRcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgZXhwZWN0KGRldGVybWluZUdvTW9kdWxlTmFtZShpbnZhbGlkU3ViZGlyKSkucmVqZWN0cy50b1Rocm93KFxuICAgICAgICBgQ291bGQgbm90IGRldGVybWluZSB0aGUgcm9vdCBHbyBtb2R1bGUgbmFtZS4gRm91bmQgJHtwYXRoLmpvaW4oXG4gICAgICAgICAgaW52YWxpZFN1YmRpcixcbiAgICAgICAgICBcImdvLm1vZFwiLFxuICAgICAgICApfSBidXQgZmFpbGVkIHRvIHJlZ2V4IG1hdGNoIHRoZSBtb2R1bGUgbmFtZSBkaXJlY3RpdmVgLFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KFwid29ya3MgZnJvbSBzdWJkaXJlY3RvcnkgdGhhdCBkb2VzIG5vdCBleGlzdCB5ZXRcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbW9kdWxlTmFtZSA9IGF3YWl0IGRldGVybWluZUdvTW9kdWxlTmFtZShcbiAgICAgICAgcGF0aC5qb2luKHRtcERpciwgXCJzdWJkaXJcIiwgXCJ0aGF0XCIsIFwiZG9lc1wiLCBcIm5vdFwiLCBcImV4aXN0XCIsIFwieWV0XCIpLFxuICAgICAgKTtcbiAgICAgIGV4cGVjdChtb2R1bGVOYW1lKS50b0JlKFwiY2RrLnRmL3Rlc3QvZ28vc3ViZGlyL3RoYXQvZG9lcy9ub3QvZXhpc3QveWV0XCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJ0aHJvd3MgaWYgbm90aGluZyBjb3VsZCBiZSBmb3VuZFwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBkaXIgPSBcIi9jZGt0Zi10ZXN0L3RoaXMvZGlyL2RvZXMvbm90L2V4aXN0XCI7IC8vLi4uIGFuZCBoYXMgbm8gZ28ubW9kIGluIGFueSBwYXJlbnQgZGlyXG4gICAgICBhd2FpdCBleHBlY3QoZGV0ZXJtaW5lR29Nb2R1bGVOYW1lKGRpcikpLnJlamVjdHMudG9UaHJvdyhcbiAgICAgICAgYENvdWxkIG5vdCBkZXRlcm1pbmUgdGhlIHJvb3QgR28gbW9kdWxlIG5hbWUuIE5vIGdvLm1vZCBmb3VuZCBpbiAke2Rpcn0gYW5kIGFueSBwYXJlbnQgZGlyZWN0b3JpZXNgLFxuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG4gIGRlc2NyaWJlKFwiQ29uc3RydWN0c01ha2VyUHJvdmlkZXJUYXJnZXRcIiwgKCkgPT4ge1xuICAgIGl0KFwicmV0dXJucyB2YWxpZCBwYWNrYWdlIG5hbWUgZm9yIEdvXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IG5ldyBDb25zdHJ1Y3RzTWFrZXJQcm92aWRlclRhcmdldChcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiZ29vZ2xlLWJldGFcIixcbiAgICAgICAgICBmcW46IFwiZ29vZ2xlLWJldGFcIixcbiAgICAgICAgICBzb3VyY2U6IFwiZ29vZ2xlLWJldGFcIixcbiAgICAgICAgICB2ZXJzaW9uOiBcIn4+IDQuMFwiLFxuICAgICAgICB9LFxuICAgICAgICBMYW5ndWFnZS5HTyxcbiAgICAgICk7XG4gICAgICBleHBlY3QodGFyZ2V0LnNyY01ha05hbWUpLnRvRXF1YWwoXCJnb29nbGVfYmV0YVwiKTtcbiAgICB9KTtcbiAgfSk7XG4gIGRlc2NyaWJlKFwiQ29uc3RydWN0c01ha2VyTW9kdWxlVGFyZ2V0XCIsICgpID0+IHtcbiAgICBpdChcInJldHVybnMgdmFsaWQgcGFja2FnZSBuYW1lIGZvciBHb1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBuZXcgQ29uc3RydWN0c01ha2VyTW9kdWxlVGFyZ2V0KFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJzZWN1cml0eS1ncm91cFwiLFxuICAgICAgICAgIHNvdXJjZTogXCJ0ZXJyYWZvcm0tYXdzLW1vZHVsZXMvc2VjdXJpdHktZ3JvdXAvYXdzXCIsXG4gICAgICAgICAgZnFuOiBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy9zZWN1cml0eS1ncm91cC9hd3NcIixcbiAgICAgICAgICB2ZXJzaW9uOiBcIjQuOS4wXCIsXG4gICAgICAgICAgbmFtZXNwYWNlOiBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy9hd3NcIixcbiAgICAgICAgfSxcbiAgICAgICAgTGFuZ3VhZ2UuR08sXG4gICAgICApO1xuICAgICAgZXhwZWN0KHRhcmdldC5zcmNNYWtOYW1lKS50b0VxdWFsKFwic2VjdXJpdHlfZ3JvdXBcIik7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ // Copyright (c) HashiCorp, Inc
27
+ // SPDX-License-Identifier: MPL-2.0
28
+ const fs = __importStar(require("fs"));
29
+ const os = __importStar(require("os"));
30
+ const path = __importStar(require("path"));
31
+ const provider_generator_1 = require("../../generator/provider-generator");
32
+ const codemaker_1 = require("codemaker");
33
+ test("generate an acm certifacte resource with complex computed types", async () => {
34
+ const code = new codemaker_1.CodeMaker();
35
+ const workdir = fs.mkdtempSync(path.join(os.tmpdir(), "complex-computed-types.test"));
36
+ const spec = JSON.parse(fs.readFileSync(path.join(__dirname, "fixtures", "aws_acm_certificate.test.fixture.json"), "utf-8"));
37
+ new provider_generator_1.TerraformProviderGenerator(code, spec).generateAll();
38
+ await code.save(workdir);
39
+ const output = fs.readFileSync(path.join(workdir, "providers/aws/acm-certificate/index.ts"), "utf-8");
40
+ expect(output).toMatchSnapshot(`acm-certificate`);
41
+ });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGxleC1jb21wdXRlZC10eXBlcy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2dldC9fX3Rlc3RzX18vZ2VuZXJhdG9yL2NvbXBsZXgtY29tcHV0ZWQtdHlwZXMudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyx1Q0FBeUI7QUFDekIsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3QiwyRUFBZ0Y7QUFDaEYseUNBQXNDO0FBRXRDLElBQUksQ0FBQyxpRUFBaUUsRUFBRSxLQUFLLElBQUksRUFBRTtJQUNqRixNQUFNLElBQUksR0FBRyxJQUFJLHFCQUFTLEVBQUUsQ0FBQztJQUM3QixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsV0FBVyxDQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSw2QkFBNkIsQ0FBQyxDQUN0RCxDQUFDO0lBQ0YsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDckIsRUFBRSxDQUFDLFlBQVksQ0FDYixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsdUNBQXVDLENBQUMsRUFDekUsT0FBTyxDQUNSLENBQ0YsQ0FBQztJQUNGLElBQUksK0NBQTBCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pELE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV6QixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSx3Q0FBd0MsQ0FBQyxFQUM1RCxPQUFPLENBQ1IsQ0FBQztJQUNGLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUNwRCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCAqIGFzIG9zIGZyb20gXCJvc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgVGVycmFmb3JtUHJvdmlkZXJHZW5lcmF0b3IgfSBmcm9tIFwiLi4vLi4vZ2VuZXJhdG9yL3Byb3ZpZGVyLWdlbmVyYXRvclwiO1xuaW1wb3J0IHsgQ29kZU1ha2VyIH0gZnJvbSBcImNvZGVtYWtlclwiO1xuXG50ZXN0KFwiZ2VuZXJhdGUgYW4gYWNtIGNlcnRpZmFjdGUgcmVzb3VyY2Ugd2l0aCBjb21wbGV4IGNvbXB1dGVkIHR5cGVzXCIsIGFzeW5jICgpID0+IHtcbiAgY29uc3QgY29kZSA9IG5ldyBDb2RlTWFrZXIoKTtcbiAgY29uc3Qgd29ya2RpciA9IGZzLm1rZHRlbXBTeW5jKFxuICAgIHBhdGguam9pbihvcy50bXBkaXIoKSwgXCJjb21wbGV4LWNvbXB1dGVkLXR5cGVzLnRlc3RcIiksXG4gICk7XG4gIGNvbnN0IHNwZWMgPSBKU09OLnBhcnNlKFxuICAgIGZzLnJlYWRGaWxlU3luYyhcbiAgICAgIHBhdGguam9pbihfX2Rpcm5hbWUsIFwiZml4dHVyZXNcIiwgXCJhd3NfYWNtX2NlcnRpZmljYXRlLnRlc3QuZml4dHVyZS5qc29uXCIpLFxuICAgICAgXCJ1dGYtOFwiLFxuICAgICksXG4gICk7XG4gIG5ldyBUZXJyYWZvcm1Qcm92aWRlckdlbmVyYXRvcihjb2RlLCBzcGVjKS5nZW5lcmF0ZUFsbCgpO1xuICBhd2FpdCBjb2RlLnNhdmUod29ya2Rpcik7XG5cbiAgY29uc3Qgb3V0cHV0ID0gZnMucmVhZEZpbGVTeW5jKFxuICAgIHBhdGguam9pbih3b3JrZGlyLCBcInByb3ZpZGVycy9hd3MvYWNtLWNlcnRpZmljYXRlL2luZGV4LnRzXCIpLFxuICAgIFwidXRmLThcIixcbiAgKTtcbiAgZXhwZWN0KG91dHB1dCkudG9NYXRjaFNuYXBzaG90KGBhY20tY2VydGlmaWNhdGVgKTtcbn0pO1xuIl19
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ // Copyright (c) HashiCorp, Inc // SPDX-License-Identifier: MPL-2.0
27
+ const fs = __importStar(require("fs"));
28
+ const os = __importStar(require("os"));
29
+ const path = __importStar(require("path"));
30
+ const provider_generator_1 = require("../../generator/provider-generator");
31
+ const codemaker_1 = require("codemaker");
32
+ test("generate a resource with attribute that's a list of a map of an object", async () => {
33
+ const code = new codemaker_1.CodeMaker();
34
+ const workdir = fs.mkdtempSync(path.join(os.tmpdir(), "deep-nested-attributes.test"));
35
+ const spec = JSON.parse(fs.readFileSync(path.join(__dirname, "fixtures", "stripe-schema.test.fixture.json"), "utf-8"));
36
+ new provider_generator_1.TerraformProviderGenerator(code, spec).generateAll();
37
+ await code.save(workdir);
38
+ const output = fs.readFileSync(path.join(workdir, "providers/stripe/invoiceitems/index.ts"), "utf-8");
39
+ expect(output).toEqual(expect.stringContaining(`export class InvoiceitemsDiscountsMapList extends cdktn.MapList {`));
40
+ });
41
+ test("generate a resource with attribute that's a map of a list of an object", async () => {
42
+ const code = new codemaker_1.CodeMaker();
43
+ const workdir = fs.mkdtempSync(path.join(os.tmpdir(), "deep-nested-attributes-list.test"));
44
+ const spec = JSON.parse(fs.readFileSync(path.join(__dirname, "fixtures", "deep-attributes.test.fixture.json"), "utf-8"));
45
+ new provider_generator_1.TerraformProviderGenerator(code, spec).generateAll();
46
+ await code.save(workdir);
47
+ const output = fs.readFileSync(path.join(workdir, "providers/stripe/invoiceitems/index.ts"), "utf-8");
48
+ expect(output).toEqual(expect.stringContaining(`export class InvoiceitemsDiscountsListMap extends cdktn.ComplexMap {`));
49
+ });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcC1uZXN0ZWQtYXR0cmlidXRlcy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2dldC9fX3Rlc3RzX18vZ2VuZXJhdG9yL2RlZXAtbmVzdGVkLWF0dHJpYnV0ZXMudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbUVBQW1FO0FBQ25FLHVDQUF5QjtBQUN6Qix1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLDJFQUFnRjtBQUNoRix5Q0FBc0M7QUFFdEMsSUFBSSxDQUFDLHdFQUF3RSxFQUFFLEtBQUssSUFBSSxFQUFFO0lBQ3hGLE1BQU0sSUFBSSxHQUFHLElBQUkscUJBQVMsRUFBRSxDQUFDO0lBQzdCLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLDZCQUE2QixDQUFDLENBQ3RELENBQUM7SUFDRixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUNyQixFQUFFLENBQUMsWUFBWSxDQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxpQ0FBaUMsQ0FBQyxFQUNuRSxPQUFPLENBQ1IsQ0FDRixDQUFDO0lBQ0YsSUFBSSwrQ0FBMEIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDekQsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXpCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLHdDQUF3QyxDQUFDLEVBQzVELE9BQU8sQ0FDUixDQUFDO0lBRUYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FDcEIsTUFBTSxDQUFDLGdCQUFnQixDQUNyQixtRUFBbUUsQ0FDcEUsQ0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsd0VBQXdFLEVBQUUsS0FBSyxJQUFJLEVBQUU7SUFDeEYsTUFBTSxJQUFJLEdBQUcsSUFBSSxxQkFBUyxFQUFFLENBQUM7SUFDN0IsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsa0NBQWtDLENBQUMsQ0FDM0QsQ0FBQztJQUNGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQ3JCLEVBQUUsQ0FBQyxZQUFZLENBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLG1DQUFtQyxDQUFDLEVBQ3JFLE9BQU8sQ0FDUixDQUNGLENBQUM7SUFDRixJQUFJLCtDQUEwQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6RCxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFekIsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsd0NBQXdDLENBQUMsRUFDNUQsT0FBTyxDQUNSLENBQUM7SUFFRixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUNwQixNQUFNLENBQUMsZ0JBQWdCLENBQ3JCLHNFQUFzRSxDQUN2RSxDQUNGLENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMgLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0ICogYXMgb3MgZnJvbSBcIm9zXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1Qcm92aWRlckdlbmVyYXRvciB9IGZyb20gXCIuLi8uLi9nZW5lcmF0b3IvcHJvdmlkZXItZ2VuZXJhdG9yXCI7XG5pbXBvcnQgeyBDb2RlTWFrZXIgfSBmcm9tIFwiY29kZW1ha2VyXCI7XG5cbnRlc3QoXCJnZW5lcmF0ZSBhIHJlc291cmNlIHdpdGggYXR0cmlidXRlIHRoYXQncyBhIGxpc3Qgb2YgYSBtYXAgb2YgYW4gb2JqZWN0XCIsIGFzeW5jICgpID0+IHtcbiAgY29uc3QgY29kZSA9IG5ldyBDb2RlTWFrZXIoKTtcbiAgY29uc3Qgd29ya2RpciA9IGZzLm1rZHRlbXBTeW5jKFxuICAgIHBhdGguam9pbihvcy50bXBkaXIoKSwgXCJkZWVwLW5lc3RlZC1hdHRyaWJ1dGVzLnRlc3RcIiksXG4gICk7XG4gIGNvbnN0IHNwZWMgPSBKU09OLnBhcnNlKFxuICAgIGZzLnJlYWRGaWxlU3luYyhcbiAgICAgIHBhdGguam9pbihfX2Rpcm5hbWUsIFwiZml4dHVyZXNcIiwgXCJzdHJpcGUtc2NoZW1hLnRlc3QuZml4dHVyZS5qc29uXCIpLFxuICAgICAgXCJ1dGYtOFwiLFxuICAgICksXG4gICk7XG4gIG5ldyBUZXJyYWZvcm1Qcm92aWRlckdlbmVyYXRvcihjb2RlLCBzcGVjKS5nZW5lcmF0ZUFsbCgpO1xuICBhd2FpdCBjb2RlLnNhdmUod29ya2Rpcik7XG5cbiAgY29uc3Qgb3V0cHV0ID0gZnMucmVhZEZpbGVTeW5jKFxuICAgIHBhdGguam9pbih3b3JrZGlyLCBcInByb3ZpZGVycy9zdHJpcGUvaW52b2ljZWl0ZW1zL2luZGV4LnRzXCIpLFxuICAgIFwidXRmLThcIixcbiAgKTtcblxuICBleHBlY3Qob3V0cHV0KS50b0VxdWFsKFxuICAgIGV4cGVjdC5zdHJpbmdDb250YWluaW5nKFxuICAgICAgYGV4cG9ydCBjbGFzcyBJbnZvaWNlaXRlbXNEaXNjb3VudHNNYXBMaXN0IGV4dGVuZHMgY2RrdG4uTWFwTGlzdCB7YCxcbiAgICApLFxuICApO1xufSk7XG5cbnRlc3QoXCJnZW5lcmF0ZSBhIHJlc291cmNlIHdpdGggYXR0cmlidXRlIHRoYXQncyBhIG1hcCBvZiBhIGxpc3Qgb2YgYW4gb2JqZWN0XCIsIGFzeW5jICgpID0+IHtcbiAgY29uc3QgY29kZSA9IG5ldyBDb2RlTWFrZXIoKTtcbiAgY29uc3Qgd29ya2RpciA9IGZzLm1rZHRlbXBTeW5jKFxuICAgIHBhdGguam9pbihvcy50bXBkaXIoKSwgXCJkZWVwLW5lc3RlZC1hdHRyaWJ1dGVzLWxpc3QudGVzdFwiKSxcbiAgKTtcbiAgY29uc3Qgc3BlYyA9IEpTT04ucGFyc2UoXG4gICAgZnMucmVhZEZpbGVTeW5jKFxuICAgICAgcGF0aC5qb2luKF9fZGlybmFtZSwgXCJmaXh0dXJlc1wiLCBcImRlZXAtYXR0cmlidXRlcy50ZXN0LmZpeHR1cmUuanNvblwiKSxcbiAgICAgIFwidXRmLThcIixcbiAgICApLFxuICApO1xuICBuZXcgVGVycmFmb3JtUHJvdmlkZXJHZW5lcmF0b3IoY29kZSwgc3BlYykuZ2VuZXJhdGVBbGwoKTtcbiAgYXdhaXQgY29kZS5zYXZlKHdvcmtkaXIpO1xuXG4gIGNvbnN0IG91dHB1dCA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICBwYXRoLmpvaW4od29ya2RpciwgXCJwcm92aWRlcnMvc3RyaXBlL2ludm9pY2VpdGVtcy9pbmRleC50c1wiKSxcbiAgICBcInV0Zi04XCIsXG4gICk7XG5cbiAgZXhwZWN0KG91dHB1dCkudG9FcXVhbChcbiAgICBleHBlY3Quc3RyaW5nQ29udGFpbmluZyhcbiAgICAgIGBleHBvcnQgY2xhc3MgSW52b2ljZWl0ZW1zRGlzY291bnRzTGlzdE1hcCBleHRlbmRzIGNka3RuLkNvbXBsZXhNYXAge2AsXG4gICAgKSxcbiAgKTtcbn0pO1xuIl19
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ // Copyright (c) HashiCorp, Inc
27
+ // SPDX-License-Identifier: MPL-2.0
28
+ const fs = __importStar(require("fs"));
29
+ const os = __importStar(require("os"));
30
+ const path = __importStar(require("path"));
31
+ const provider_generator_1 = require("../../generator/provider-generator");
32
+ const codemaker_1 = require("codemaker");
33
+ test("broken attribute description comments", async () => {
34
+ const code = new codemaker_1.CodeMaker();
35
+ const workdir = fs.mkdtempSync(path.join(os.tmpdir(), "description-escaping.test"));
36
+ const spec = JSON.parse(fs.readFileSync(path.join(__dirname, "fixtures", "description-escaping.test.fixture.json"), "utf-8"));
37
+ new provider_generator_1.TerraformProviderGenerator(code, spec).generateAll();
38
+ await code.save(workdir);
39
+ const output = fs.readFileSync(path.join(workdir, "providers/google/description-escaping/index.ts"), "utf-8");
40
+ expect(output).toMatchSnapshot();
41
+ });
42
+ // That popped up in the google-beta provider which transforms markdown fenced
43
+ // code blocks from the actual markdown docs to the provider schema (``` => ''')
44
+ // see
45
+ // - https://raw.githubusercontent.com/hashicorp/terraform-provider-google-beta/4094e3bdd530ca853a046a6d938807f8a131c7c7/website/docs/r/iam_workload_identity_pool_provider.html.markdown
46
+ // - https://github.com/hashicorp/terraform-provider-google-beta/blob/4094e3bdd530ca853a046a6d938807f8a131c7c7/google-beta/resource_iam_beta_workload_identity_pool_provider.go
47
+ test("malformed code blocks which break in python rst", async () => {
48
+ const code = new codemaker_1.CodeMaker();
49
+ const workdir = fs.mkdtempSync(path.join(os.tmpdir(), "markdown-description-with-code-blocks.test"));
50
+ const spec = JSON.parse(fs.readFileSync(path.join(__dirname, "fixtures", "markdown-description-with-code-blocks.test.fixture.json"), "utf-8"));
51
+ new provider_generator_1.TerraformProviderGenerator(code, spec).generateAll();
52
+ await code.save(workdir);
53
+ const output = fs.readFileSync(path.join(workdir, "providers/aws/code-blocks/index.ts"), "utf-8");
54
+ expect(output).toMatchSnapshot();
55
+ });
56
+ test("comment ending sequence in comment", async () => {
57
+ const code = new codemaker_1.CodeMaker();
58
+ const workdir = fs.mkdtempSync(path.join(os.tmpdir(), "comment-ending-sequence.test"));
59
+ const spec = JSON.parse(fs.readFileSync(path.join(__dirname, "fixtures", "comment-ending-sequence.test.fixture.json"), "utf-8"));
60
+ new provider_generator_1.TerraformProviderGenerator(code, spec).generateAll();
61
+ await code.save(workdir);
62
+ const output = fs.readFileSync(path.join(workdir, "providers/aws/code-blocks/index.ts"), "utf-8");
63
+ expect(output).toMatchSnapshot();
64
+ });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRpb24tZXNjYXBpbmcudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nZXQvX190ZXN0c19fL2dlbmVyYXRvci9kZXNjcmlwdGlvbi1lc2NhcGluZy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLHVDQUF5QjtBQUN6Qix1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLDJFQUFnRjtBQUNoRix5Q0FBc0M7QUFFdEMsSUFBSSxDQUFDLHVDQUF1QyxFQUFFLEtBQUssSUFBSSxFQUFFO0lBQ3ZELE1BQU0sSUFBSSxHQUFHLElBQUkscUJBQVMsRUFBRSxDQUFDO0lBQzdCLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLDJCQUEyQixDQUFDLENBQ3BELENBQUM7SUFDRixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUNyQixFQUFFLENBQUMsWUFBWSxDQUNiLElBQUksQ0FBQyxJQUFJLENBQ1AsU0FBUyxFQUNULFVBQVUsRUFDVix3Q0FBd0MsQ0FDekMsRUFDRCxPQUFPLENBQ1IsQ0FDRixDQUFDO0lBQ0YsSUFBSSwrQ0FBMEIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDekQsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXpCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGdEQUFnRCxDQUFDLEVBQ3BFLE9BQU8sQ0FDUixDQUFDO0lBQ0YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0FBQ25DLENBQUMsQ0FBQyxDQUFDO0FBRUgsOEVBQThFO0FBQzlFLGdGQUFnRjtBQUNoRixNQUFNO0FBQ04sMExBQTBMO0FBQzFMLGdMQUFnTDtBQUVoTCxJQUFJLENBQUMsaURBQWlELEVBQUUsS0FBSyxJQUFJLEVBQUU7SUFDakUsTUFBTSxJQUFJLEdBQUcsSUFBSSxxQkFBUyxFQUFFLENBQUM7SUFDN0IsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsNENBQTRDLENBQUMsQ0FDckUsQ0FBQztJQUNGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQ3JCLEVBQUUsQ0FBQyxZQUFZLENBQ2IsSUFBSSxDQUFDLElBQUksQ0FDUCxTQUFTLEVBQ1QsVUFBVSxFQUNWLHlEQUF5RCxDQUMxRCxFQUNELE9BQU8sQ0FDUixDQUNGLENBQUM7SUFDRixJQUFJLCtDQUEwQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6RCxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFekIsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsb0NBQW9DLENBQUMsRUFDeEQsT0FBTyxDQUNSLENBQUM7SUFDRixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7QUFDbkMsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsb0NBQW9DLEVBQUUsS0FBSyxJQUFJLEVBQUU7SUFDcEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxxQkFBUyxFQUFFLENBQUM7SUFDN0IsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsOEJBQThCLENBQUMsQ0FDdkQsQ0FBQztJQUNGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQ3JCLEVBQUUsQ0FBQyxZQUFZLENBQ2IsSUFBSSxDQUFDLElBQUksQ0FDUCxTQUFTLEVBQ1QsVUFBVSxFQUNWLDJDQUEyQyxDQUM1QyxFQUNELE9BQU8sQ0FDUixDQUNGLENBQUM7SUFDRixJQUFJLCtDQUEwQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6RCxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFekIsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsb0NBQW9DLENBQUMsRUFDeEQsT0FBTyxDQUNSLENBQUM7SUFDRixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7QUFDbkMsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgKiBhcyBvcyBmcm9tIFwib3NcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IFRlcnJhZm9ybVByb3ZpZGVyR2VuZXJhdG9yIH0gZnJvbSBcIi4uLy4uL2dlbmVyYXRvci9wcm92aWRlci1nZW5lcmF0b3JcIjtcbmltcG9ydCB7IENvZGVNYWtlciB9IGZyb20gXCJjb2RlbWFrZXJcIjtcblxudGVzdChcImJyb2tlbiBhdHRyaWJ1dGUgZGVzY3JpcHRpb24gY29tbWVudHNcIiwgYXN5bmMgKCkgPT4ge1xuICBjb25zdCBjb2RlID0gbmV3IENvZGVNYWtlcigpO1xuICBjb25zdCB3b3JrZGlyID0gZnMubWtkdGVtcFN5bmMoXG4gICAgcGF0aC5qb2luKG9zLnRtcGRpcigpLCBcImRlc2NyaXB0aW9uLWVzY2FwaW5nLnRlc3RcIiksXG4gICk7XG4gIGNvbnN0IHNwZWMgPSBKU09OLnBhcnNlKFxuICAgIGZzLnJlYWRGaWxlU3luYyhcbiAgICAgIHBhdGguam9pbihcbiAgICAgICAgX19kaXJuYW1lLFxuICAgICAgICBcImZpeHR1cmVzXCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb24tZXNjYXBpbmcudGVzdC5maXh0dXJlLmpzb25cIixcbiAgICAgICksXG4gICAgICBcInV0Zi04XCIsXG4gICAgKSxcbiAgKTtcbiAgbmV3IFRlcnJhZm9ybVByb3ZpZGVyR2VuZXJhdG9yKGNvZGUsIHNwZWMpLmdlbmVyYXRlQWxsKCk7XG4gIGF3YWl0IGNvZGUuc2F2ZSh3b3JrZGlyKTtcblxuICBjb25zdCBvdXRwdXQgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgcGF0aC5qb2luKHdvcmtkaXIsIFwicHJvdmlkZXJzL2dvb2dsZS9kZXNjcmlwdGlvbi1lc2NhcGluZy9pbmRleC50c1wiKSxcbiAgICBcInV0Zi04XCIsXG4gICk7XG4gIGV4cGVjdChvdXRwdXQpLnRvTWF0Y2hTbmFwc2hvdCgpO1xufSk7XG5cbi8vIFRoYXQgcG9wcGVkIHVwIGluIHRoZSBnb29nbGUtYmV0YSBwcm92aWRlciB3aGljaCB0cmFuc2Zvcm1zIG1hcmtkb3duIGZlbmNlZFxuLy8gY29kZSBibG9ja3MgZnJvbSB0aGUgYWN0dWFsIG1hcmtkb3duIGRvY3MgdG8gdGhlIHByb3ZpZGVyIHNjaGVtYSAoYGBgID0+ICcnJylcbi8vIHNlZVxuLy8gIC0gaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tcHJvdmlkZXItZ29vZ2xlLWJldGEvNDA5NGUzYmRkNTMwY2E4NTNhMDQ2YTZkOTM4ODA3ZjhhMTMxYzdjNy93ZWJzaXRlL2RvY3Mvci9pYW1fd29ya2xvYWRfaWRlbnRpdHlfcG9vbF9wcm92aWRlci5odG1sLm1hcmtkb3duXG4vLyAgLSBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3RlcnJhZm9ybS1wcm92aWRlci1nb29nbGUtYmV0YS9ibG9iLzQwOTRlM2JkZDUzMGNhODUzYTA0NmE2ZDkzODgwN2Y4YTEzMWM3YzcvZ29vZ2xlLWJldGEvcmVzb3VyY2VfaWFtX2JldGFfd29ya2xvYWRfaWRlbnRpdHlfcG9vbF9wcm92aWRlci5nb1xuXG50ZXN0KFwibWFsZm9ybWVkIGNvZGUgYmxvY2tzIHdoaWNoIGJyZWFrIGluIHB5dGhvbiByc3RcIiwgYXN5bmMgKCkgPT4ge1xuICBjb25zdCBjb2RlID0gbmV3IENvZGVNYWtlcigpO1xuICBjb25zdCB3b3JrZGlyID0gZnMubWtkdGVtcFN5bmMoXG4gICAgcGF0aC5qb2luKG9zLnRtcGRpcigpLCBcIm1hcmtkb3duLWRlc2NyaXB0aW9uLXdpdGgtY29kZS1ibG9ja3MudGVzdFwiKSxcbiAgKTtcbiAgY29uc3Qgc3BlYyA9IEpTT04ucGFyc2UoXG4gICAgZnMucmVhZEZpbGVTeW5jKFxuICAgICAgcGF0aC5qb2luKFxuICAgICAgICBfX2Rpcm5hbWUsXG4gICAgICAgIFwiZml4dHVyZXNcIixcbiAgICAgICAgXCJtYXJrZG93bi1kZXNjcmlwdGlvbi13aXRoLWNvZGUtYmxvY2tzLnRlc3QuZml4dHVyZS5qc29uXCIsXG4gICAgICApLFxuICAgICAgXCJ1dGYtOFwiLFxuICAgICksXG4gICk7XG4gIG5ldyBUZXJyYWZvcm1Qcm92aWRlckdlbmVyYXRvcihjb2RlLCBzcGVjKS5nZW5lcmF0ZUFsbCgpO1xuICBhd2FpdCBjb2RlLnNhdmUod29ya2Rpcik7XG5cbiAgY29uc3Qgb3V0cHV0ID0gZnMucmVhZEZpbGVTeW5jKFxuICAgIHBhdGguam9pbih3b3JrZGlyLCBcInByb3ZpZGVycy9hd3MvY29kZS1ibG9ja3MvaW5kZXgudHNcIiksXG4gICAgXCJ1dGYtOFwiLFxuICApO1xuICBleHBlY3Qob3V0cHV0KS50b01hdGNoU25hcHNob3QoKTtcbn0pO1xuXG50ZXN0KFwiY29tbWVudCBlbmRpbmcgc2VxdWVuY2UgaW4gY29tbWVudFwiLCBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IGNvZGUgPSBuZXcgQ29kZU1ha2VyKCk7XG4gIGNvbnN0IHdvcmtkaXIgPSBmcy5ta2R0ZW1wU3luYyhcbiAgICBwYXRoLmpvaW4ob3MudG1wZGlyKCksIFwiY29tbWVudC1lbmRpbmctc2VxdWVuY2UudGVzdFwiKSxcbiAgKTtcbiAgY29uc3Qgc3BlYyA9IEpTT04ucGFyc2UoXG4gICAgZnMucmVhZEZpbGVTeW5jKFxuICAgICAgcGF0aC5qb2luKFxuICAgICAgICBfX2Rpcm5hbWUsXG4gICAgICAgIFwiZml4dHVyZXNcIixcbiAgICAgICAgXCJjb21tZW50LWVuZGluZy1zZXF1ZW5jZS50ZXN0LmZpeHR1cmUuanNvblwiLFxuICAgICAgKSxcbiAgICAgIFwidXRmLThcIixcbiAgICApLFxuICApO1xuICBuZXcgVGVycmFmb3JtUHJvdmlkZXJHZW5lcmF0b3IoY29kZSwgc3BlYykuZ2VuZXJhdGVBbGwoKTtcbiAgYXdhaXQgY29kZS5zYXZlKHdvcmtkaXIpO1xuXG4gIGNvbnN0IG91dHB1dCA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICBwYXRoLmpvaW4od29ya2RpciwgXCJwcm92aWRlcnMvYXdzL2NvZGUtYmxvY2tzL2luZGV4LnRzXCIpLFxuICAgIFwidXRmLThcIixcbiAgKTtcbiAgZXhwZWN0KG91dHB1dCkudG9NYXRjaFNuYXBzaG90KCk7XG59KTtcbiJdfQ==
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ // Copyright (c) HashiCorp, Inc
27
+ // SPDX-License-Identifier: MPL-2.0
28
+ const fs = __importStar(require("fs"));
29
+ const os = __importStar(require("os"));
30
+ const path = __importStar(require("path"));
31
+ const provider_generator_1 = require("../../generator/provider-generator");
32
+ const codemaker_1 = require("codemaker");
33
+ test("provider with no resources", async () => {
34
+ const code = new codemaker_1.CodeMaker();
35
+ const workdir = fs.mkdtempSync(path.join(os.tmpdir(), "empty-provider-resources.test"));
36
+ const spec = JSON.parse(fs.readFileSync(path.join(__dirname, "fixtures", "empty-provider-resources.test.fixture.json"), "utf-8"));
37
+ new provider_generator_1.TerraformProviderGenerator(code, spec).generateAll();
38
+ await code.save(workdir);
39
+ });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHktcHJvdmlkZXItcmVzb3VyY2VzLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ2V0L19fdGVzdHNfXy9nZW5lcmF0b3IvZW1wdHktcHJvdmlkZXItcmVzb3VyY2VzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsdUNBQXlCO0FBQ3pCLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFDN0IsMkVBQWdGO0FBQ2hGLHlDQUFzQztBQUV0QyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsS0FBSyxJQUFJLEVBQUU7SUFDNUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxxQkFBUyxFQUFFLENBQUM7SUFDN0IsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsK0JBQStCLENBQUMsQ0FDeEQsQ0FBQztJQUNGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQ3JCLEVBQUUsQ0FBQyxZQUFZLENBQ2IsSUFBSSxDQUFDLElBQUksQ0FDUCxTQUFTLEVBQ1QsVUFBVSxFQUNWLDRDQUE0QyxDQUM3QyxFQUNELE9BQU8sQ0FDUixDQUNGLENBQUM7SUFDRixJQUFJLCtDQUEwQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6RCxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDM0IsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgKiBhcyBvcyBmcm9tIFwib3NcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IFRlcnJhZm9ybVByb3ZpZGVyR2VuZXJhdG9yIH0gZnJvbSBcIi4uLy4uL2dlbmVyYXRvci9wcm92aWRlci1nZW5lcmF0b3JcIjtcbmltcG9ydCB7IENvZGVNYWtlciB9IGZyb20gXCJjb2RlbWFrZXJcIjtcblxudGVzdChcInByb3ZpZGVyIHdpdGggbm8gcmVzb3VyY2VzXCIsIGFzeW5jICgpID0+IHtcbiAgY29uc3QgY29kZSA9IG5ldyBDb2RlTWFrZXIoKTtcbiAgY29uc3Qgd29ya2RpciA9IGZzLm1rZHRlbXBTeW5jKFxuICAgIHBhdGguam9pbihvcy50bXBkaXIoKSwgXCJlbXB0eS1wcm92aWRlci1yZXNvdXJjZXMudGVzdFwiKSxcbiAgKTtcbiAgY29uc3Qgc3BlYyA9IEpTT04ucGFyc2UoXG4gICAgZnMucmVhZEZpbGVTeW5jKFxuICAgICAgcGF0aC5qb2luKFxuICAgICAgICBfX2Rpcm5hbWUsXG4gICAgICAgIFwiZml4dHVyZXNcIixcbiAgICAgICAgXCJlbXB0eS1wcm92aWRlci1yZXNvdXJjZXMudGVzdC5maXh0dXJlLmpzb25cIixcbiAgICAgICksXG4gICAgICBcInV0Zi04XCIsXG4gICAgKSxcbiAgKTtcbiAgbmV3IFRlcnJhZm9ybVByb3ZpZGVyR2VuZXJhdG9yKGNvZGUsIHNwZWMpLmdlbmVyYXRlQWxsKCk7XG4gIGF3YWl0IGNvZGUuc2F2ZSh3b3JrZGlyKTtcbn0pO1xuIl19
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ // Copyright (c) HashiCorp, Inc
27
+ // SPDX-License-Identifier: MPL-2.0
28
+ const fs = __importStar(require("fs"));
29
+ const os = __importStar(require("os"));
30
+ const path = __importStar(require("path"));
31
+ const provider_generator_1 = require("../../generator/provider-generator");
32
+ const codemaker_1 = require("codemaker");
33
+ // this is a workaround for a bug introduced in TS 3.9.x and seems to be unlikely to get fixed.
34
+ // Since jsii relies on TS < 4 at the moment we can't use newer TS versions which have this fixed (^4.1).
35
+ // see https://github.com/hashicorp/terraform-cdk/pull/1248 for more context
36
+ test("shard exports across multiple files to avoid generating files with more than a 1000 exports", async () => {
37
+ const code = new codemaker_1.CodeMaker();
38
+ const workdir = fs.mkdtempSync(path.join(os.tmpdir(), "export-sharding.test"));
39
+ const spec = JSON.parse(fs.readFileSync(path.join(__dirname, "fixtures", "aws_wafv2_web_acl.test.fixture.json"), "utf-8"));
40
+ new provider_generator_1.TerraformProviderGenerator(code, spec).generateAll();
41
+ await code.save(workdir);
42
+ const output = fs.readFileSync(path.join(workdir, "providers/test/wafv2-web-acl/index.ts"), "utf-8");
43
+ expect(output).toMatchSnapshot(`wafv2-web-acl-resource`);
44
+ const outputStructsIndex = fs.readFileSync(path.join(workdir, "providers/test/wafv2-web-acl/index-structs/index.ts"), "utf-8");
45
+ expect(outputStructsIndex).toMatchSnapshot(`structs-index`);
46
+ const outputStructs0 = fs.readFileSync(path.join(workdir, "providers/test/wafv2-web-acl/index-structs/structs0.ts"), "utf-8");
47
+ expect(outputStructs0).toMatchSnapshot(`structs0`);
48
+ const outputStructs400 = fs.readFileSync(path.join(workdir, "providers/test/wafv2-web-acl/index-structs/structs400.ts"), "utf-8");
49
+ expect(outputStructs400).toMatchSnapshot(`structs400`);
50
+ const outputStructs800 = fs.readFileSync(path.join(workdir, "providers/test/wafv2-web-acl/index-structs/structs800.ts"), "utf-8");
51
+ expect(outputStructs800).toMatchSnapshot(`structs800`);
52
+ const outputStructs1200 = fs.readFileSync(path.join(workdir, "providers/test/wafv2-web-acl/index-structs/structs1200.ts"), "utf-8");
53
+ expect(outputStructs1200).toMatchSnapshot(`structs1200`);
54
+ const outputStructs1600 = fs.readFileSync(path.join(workdir, "providers/test/wafv2-web-acl/index-structs/structs1600.ts"), "utf-8");
55
+ expect(outputStructs1600).toMatchSnapshot(`structs1600`);
56
+ const outputStructs2000 = fs.readFileSync(path.join(workdir, "providers/test/wafv2-web-acl/index-structs/structs2000.ts"), "utf-8");
57
+ expect(outputStructs2000).toMatchSnapshot(`structs2000`);
58
+ const outputStructs2400 = fs.readFileSync(path.join(workdir, "providers/test/wafv2-web-acl/index-structs/structs2400.ts"), "utf-8");
59
+ expect(outputStructs2400).toMatchSnapshot(`structs2400`);
60
+ const outputStructs2800 = fs.readFileSync(path.join(workdir, "providers/test/wafv2-web-acl/index-structs/structs2800.ts"), "utf-8");
61
+ expect(outputStructs2800).toMatchSnapshot(`structs2800`);
62
+ const outputStructs3200 = fs.readFileSync(path.join(workdir, "providers/test/wafv2-web-acl/index-structs/structs3200.ts"), "utf-8");
63
+ expect(outputStructs3200).toMatchSnapshot(`structs3200`);
64
+ const outputStructs3600 = fs.readFileSync(path.join(workdir, "providers/test/wafv2-web-acl/index-structs/structs3600.ts"), "utf-8");
65
+ expect(outputStructs3600).toMatchSnapshot(`structs3600`);
66
+ });
67
+ test("shard exports across multiple files to avoid generating files with more than a 1000 exports in a provider without namespaces", async () => {
68
+ const code = new codemaker_1.CodeMaker();
69
+ const workdir = fs.mkdtempSync(path.join(os.tmpdir(), "export-sharding-no-namespace.test"));
70
+ const spec = JSON.parse(fs.readFileSync(path.join(__dirname, "fixtures", "datadog_dashboard.test.fixture.json"), "utf-8"));
71
+ new provider_generator_1.TerraformProviderGenerator(code, spec).generateAll();
72
+ await code.save(workdir);
73
+ const output = fs.readFileSync(path.join(workdir, "providers/datadog/dashboard/index.ts"), "utf-8");
74
+ expect(output).toMatchSnapshot(`dashboard-resource`);
75
+ const outputStructsIndex = fs.readFileSync(path.join(workdir, "providers/datadog/dashboard/index-structs/index.ts"), "utf-8");
76
+ expect(outputStructsIndex).toMatchSnapshot(`structs-index`);
77
+ const outputStructs0 = fs.readFileSync(path.join(workdir, "providers/datadog/dashboard/index-structs/structs0.ts"), "utf-8");
78
+ expect(outputStructs0).toMatchSnapshot(`structs0`);
79
+ const outputStructs400 = fs.readFileSync(path.join(workdir, "providers/datadog/dashboard/index-structs/structs400.ts"), "utf-8");
80
+ expect(outputStructs400).toMatchSnapshot(`structs400`);
81
+ });
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LXNoYXJkaW5nLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ2V0L19fdGVzdHNfXy9nZW5lcmF0b3IvZXhwb3J0LXNoYXJkaW5nLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsdUNBQXlCO0FBQ3pCLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFDN0IsMkVBQWdGO0FBQ2hGLHlDQUFzQztBQUV0QywrRkFBK0Y7QUFDL0YseUdBQXlHO0FBQ3pHLDRFQUE0RTtBQUM1RSxJQUFJLENBQUMsNkZBQTZGLEVBQUUsS0FBSyxJQUFJLEVBQUU7SUFDN0csTUFBTSxJQUFJLEdBQUcsSUFBSSxxQkFBUyxFQUFFLENBQUM7SUFDN0IsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsc0JBQXNCLENBQUMsQ0FDL0MsQ0FBQztJQUVGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQ3JCLEVBQUUsQ0FBQyxZQUFZLENBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLHFDQUFxQyxDQUFDLEVBQ3ZFLE9BQU8sQ0FDUixDQUNGLENBQUM7SUFDRixJQUFJLCtDQUEwQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6RCxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFekIsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsdUNBQXVDLENBQUMsRUFDM0QsT0FBTyxDQUNSLENBQUM7SUFDRixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxD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QUFPLENBQ1IsQ0FBQztJQUNGLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFbkQsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUN0QyxJQUFJLENBQUMsSUFBSSxDQUNQLE9BQU8sRUFDUCx5REFBeUQsQ0FDMUQsRUFDRCxPQUFPLENBQ1IsQ0FBQztJQUNGLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUN6RCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCAqIGFzIG9zIGZyb20gXCJvc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgVGVycmFmb3JtUHJvdmlkZXJHZW5lcmF0b3IgfSBmcm9tIFwiLi4vLi4vZ2VuZXJhdG9yL3Byb3ZpZGVyLWdlbmVyYXRvclwiO1xuaW1wb3J0IHsgQ29kZU1ha2VyIH0gZnJvbSBcImNvZGVtYWtlclwiO1xuXG4vLyB0aGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgYSBidWcgaW50cm9kdWNlZCBpbiBUUyAzLjkueCBhbmQgc2VlbXMgdG8gYmUgdW5saWtlbHkgdG8gZ2V0IGZpeGVkLlxuLy8gU2luY2UganNpaSByZWxpZXMgb24gVFMgPCA0IGF0IHRoZSBtb21lbnQgd2UgY2FuJ3QgdXNlIG5ld2VyIFRTIHZlcnNpb25zIHdoaWNoIGhhdmUgdGhpcyBmaXhlZCAoXjQuMSkuXG4vLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tY2RrL3B1bGwvMTI0OCBmb3IgbW9yZSBjb250ZXh0XG50ZXN0KFwic2hhcmQgZXhwb3J0cyBhY3Jvc3MgbXVsdGlwbGUgZmlsZXMgdG8gYXZvaWQgZ2VuZXJhdGluZyBmaWxlcyB3aXRoIG1vcmUgdGhhbiBhIDEwMDAgZXhwb3J0c1wiLCBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IGNvZGUgPSBuZXcgQ29kZU1ha2VyKCk7XG4gIGNvbnN0IHdvcmtkaXIgPSBmcy5ta2R0ZW1wU3luYyhcbiAgICBwYXRoLmpvaW4ob3MudG1wZGlyKCksIFwiZXhwb3J0LXNoYXJkaW5nLnRlc3RcIiksXG4gICk7XG5cbiAgY29uc3Qgc3BlYyA9IEpTT04ucGFyc2UoXG4gICAgZnMucmVhZEZpbGVTeW5jKFxuICAgICAgcGF0aC5qb2luKF9fZGlybmFtZSwgXCJmaXh0dXJlc1wiLCBcImF3c193YWZ2Ml93ZWJfYWNsLnRlc3QuZml4dHVyZS5qc29uXCIpLFxuICAgICAgXCJ1dGYtOFwiLFxuICAgICksXG4gICk7XG4gIG5ldyBUZXJyYWZvcm1Qcm92aWRlckdlbmVyYXRvcihjb2RlLCBzcGVjKS5nZW5lcmF0ZUFsbCgpO1xuICBhd2FpdCBjb2RlLnNhdmUod29ya2Rpcik7XG5cbiAgY29uc3Qgb3V0cHV0ID0gZnMucmVhZEZpbGVTeW5jKFxuICAgIHBhdGguam9pbih3b3JrZGlyLCBcInByb3ZpZGVycy90ZXN0L3dhZnYyLXdlYi1hY2wvaW5kZXgudHNcIiksXG4gICAgXCJ1dGYtOFwiLFxuICApO1xuICBleHBlY3Qob3V0cHV0KS50b01hdGNoU25hcHNob3QoYHdhZnYyLXdlYi1hY2wtcmVzb3VyY2VgKTtcblxuICBjb25zdCBvdXRwdXRTdHJ1Y3RzSW5kZXggPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgcGF0aC5qb2luKHdvcmtkaXIsIFwicHJvdmlkZXJzL3Rlc3Qvd2FmdjItd2ViLWFjbC9pbmRleC1zdHJ1Y3RzL2luZGV4LnRzXCIpLFxuICAgIFwidXRmLThcIixcbiAgKTtcbiAgZXhwZWN0KG91dHB1dFN0cnVjdHNJbmRleCkudG9NYXRjaFNuYXBzaG90KGBzdHJ1Y3RzLWluZGV4YCk7XG5cbiAgY29uc3Qgb3V0cHV0U3RydWN0czAgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgcGF0aC5qb2luKFxuICAgICAgd29ya2RpcixcbiAgICAgIFwicHJvdmlkZXJzL3Rlc3Qvd2FmdjItd2ViLWFjbC9pbmRleC1zdHJ1Y3RzL3N0cnVjdHMwLnRzXCIsXG4gICAgKSxcbiAgICBcInV0Zi04XCIsXG4gICk7XG4gIGV4cGVjdChvdXRwdXRTdHJ1Y3RzMCkudG9NYXRjaFNuYXBzaG90KGBzdHJ1Y3RzMGApO1xuXG4gIGNvbnN0IG91dHB1dFN0cnVjdHM0MDAgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgcGF0aC5qb2luKFxuICAgICAgd29ya2RpcixcbiAgICAgIFwicHJvdmlkZXJzL3Rlc3Qvd2FmdjItd2ViLWFjbC9pbmRleC1zdHJ1Y3RzL3N0cnVjdHM0MDAudHNcIixcbiAgICApLFxuICAgIFwidXRmLThcIixcbiAgKTtcbiAgZXhwZWN0KG91dHB1dFN0cnVjdHM0MDApLnRvTWF0Y2hTbmFwc2hvdChgc3RydWN0czQwMGApO1xuXG4gIGNvbnN0IG91dHB1dFN0cnVjdHM4MDAgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgcGF0aC5qb2luKFxuICAgICAgd29ya2RpcixcbiAgICAgIFwicHJvdmlkZXJzL3Rlc3Qvd2FmdjItd2ViLWFjbC9pbmRleC1zdHJ1Y3RzL3N0cnVjdHM4MDAudHNcIixcbiAgICApLFxuICAgIFwidXRmLThcIixcbiAgKTtcbiAgZXhwZWN0KG91dHB1dFN0cnVjdHM4MDApLnRvTWF0Y2hTbmFwc2hvdChgc3RydWN0czgwMGApO1xuXG4gIGNvbnN0IG91dHB1dFN0cnVjdHMxMjAwID0gZnMucmVhZEZpbGVTeW5jKFxuICAgIHBhdGguam9pbihcbiAgICAgIHdvcmtkaXIsXG4gICAgICBcInByb3ZpZGVycy90ZXN0L3dhZnYyLXdlYi1hY2wvaW5kZXgtc3RydWN0cy9zdHJ1Y3RzMTIwMC50c1wiLFxuICAgICksXG4gICAgXCJ1dGYtOFwiLFxuICApO1xuICBleHBlY3Qob3V0cHV0U3RydWN0czEyMDApLnRvTWF0Y2hTbmFwc2hvdChgc3RydWN0czEyMDBgKTtcblxuICBjb25zdCBvdXRwdXRTdHJ1Y3RzMTYwMCA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICBwYXRoLmpvaW4oXG4gICAgICB3b3JrZGlyLFxuICAgICAgXCJwcm92aWRlcnMvdGVzdC93YWZ2Mi13ZWItYWNsL2luZGV4LXN0cnVjdHMvc3RydWN0czE2MDAudHNcIixcbiAgICApLFxuICAgIFwidXRmLThcIixcbiAgKTtcbiAgZXhwZWN0KG91dHB1dFN0cnVjdHMxNjAwKS50b01hdGNoU25hcHNob3QoYHN0cnVjdHMxNjAwYCk7XG5cbiAgY29uc3Qgb3V0cHV0U3RydWN0czIwMDAgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgcGF0aC5qb2luKFxuICAgICAgd29ya2RpcixcbiAgICAgIFwicHJvdmlkZXJzL3Rlc3Qvd2FmdjItd2ViLWFjbC9pbmRleC1zdHJ1Y3RzL3N0cnVjdHMyMDAwLnRzXCIsXG4gICAgKSxcbiAgICBcInV0Zi04XCIsXG4gICk7XG4gIGV4cGVjdChvdXRwdXRTdHJ1Y3RzMjAwMCkudG9NYXRjaFNuYXBzaG90KGBzdHJ1Y3RzMjAwMGApO1xuXG4gIGNvbnN0IG91dHB1dFN0cnVjdHMyNDAwID0gZnMucmVhZEZpbGVTeW5jKFxuICAgIHBhdGguam9pbihcbiAgICAgIHdvcmtkaXIsXG4gICAgICBcInByb3ZpZGVycy90ZXN0L3dhZnYyLXdlYi1hY2wvaW5kZXgtc3RydWN0cy9zdHJ1Y3RzMjQwMC50c1wiLFxuICAgICksXG4gICAgXCJ1dGYtOFwiLFxuICApO1xuICBleHBlY3Qob3V0cHV0U3RydWN0czI0MDApLnRvTWF0Y2hTbmFwc2hvdChgc3RydWN0czI0MDBgKTtcblxuICBjb25zdCBvdXRwdXRTdHJ1Y3RzMjgwMCA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICBwYXRoLmpvaW4oXG4gICAgICB3b3JrZGlyLFxuICAgICAgXCJwcm92aWRlcnMvdGVzdC93YWZ2Mi13ZWItYWNsL2luZGV4LXN0cnVjdHMvc3RydWN0czI4MDAudHNcIixcbiAgICApLFxuICAgIFwidXRmLThcIixcbiAgKTtcbiAgZXhwZWN0KG91dHB1dFN0cnVjdHMyODAwKS50b01hdGNoU25hcHNob3QoYHN0cnVjdHMyODAwYCk7XG5cbiAgY29uc3Qgb3V0cHV0U3RydWN0czMyMDAgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgcGF0aC5qb2luKFxuICAgICAgd29ya2RpcixcbiAgICAgIFwicHJvdmlkZXJzL3Rlc3Qvd2FmdjItd2ViLWFjbC9pbmRleC1zdHJ1Y3RzL3N0cnVjdHMzMjAwLnRzXCIsXG4gICAgKSxcbiAgICBcInV0Zi04XCIsXG4gICk7XG4gIGV4cGVjdChvdXRwdXRTdHJ1Y3RzMzIwMCkudG9NYXRjaFNuYXBzaG90KGBzdHJ1Y3RzMzIwMGApO1xuXG4gIGNvbnN0IG91dHB1dFN0cnVjdHMzNjAwID0gZnMucmVhZEZpbGVTeW5jKFxuICAgIHBhdGguam9pbihcbiAgICAgIHdvcmtkaXIsXG4gICAgICBcInByb3ZpZGVycy90ZXN0L3dhZnYyLXdlYi1hY2wvaW5kZXgtc3RydWN0cy9zdHJ1Y3RzMzYwMC50c1wiLFxuICAgICksXG4gICAgXCJ1dGYtOFwiLFxuICApO1xuICBleHBlY3Qob3V0cHV0U3RydWN0czM2MDApLnRvTWF0Y2hTbmFwc2hvdChgc3RydWN0czM2MDBgKTtcbn0pO1xuXG50ZXN0KFwic2hhcmQgZXhwb3J0cyBhY3Jvc3MgbXVsdGlwbGUgZmlsZXMgdG8gYXZvaWQgZ2VuZXJhdGluZyBmaWxlcyB3aXRoIG1vcmUgdGhhbiBhIDEwMDAgZXhwb3J0cyBpbiBhIHByb3ZpZGVyIHdpdGhvdXQgbmFtZXNwYWNlc1wiLCBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IGNvZGUgPSBuZXcgQ29kZU1ha2VyKCk7XG4gIGNvbnN0IHdvcmtkaXIgPSBmcy5ta2R0ZW1wU3luYyhcbiAgICBwYXRoLmpvaW4ob3MudG1wZGlyKCksIFwiZXhwb3J0LXNoYXJkaW5nLW5vLW5hbWVzcGFjZS50ZXN0XCIpLFxuICApO1xuXG4gIGNvbnN0IHNwZWMgPSBKU09OLnBhcnNlKFxuICAgIGZzLnJlYWRGaWxlU3luYyhcbiAgICAgIHBhdGguam9pbihfX2Rpcm5hbWUsIFwiZml4dHVyZXNcIiwgXCJkYXRhZG9nX2Rhc2hib2FyZC50ZXN0LmZpeHR1cmUuanNvblwiKSxcbiAgICAgIFwidXRmLThcIixcbiAgICApLFxuICApO1xuICBuZXcgVGVycmFmb3JtUHJvdmlkZXJHZW5lcmF0b3IoY29kZSwgc3BlYykuZ2VuZXJhdGVBbGwoKTtcbiAgYXdhaXQgY29kZS5zYXZlKHdvcmtkaXIpO1xuXG4gIGNvbnN0IG91dHB1dCA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICBwYXRoLmpvaW4od29ya2RpciwgXCJwcm92aWRlcnMvZGF0YWRvZy9kYXNoYm9hcmQvaW5kZXgudHNcIiksXG4gICAgXCJ1dGYtOFwiLFxuICApO1xuICBleHBlY3Qob3V0cHV0KS50b01hdGNoU25hcHNob3QoYGRhc2hib2FyZC1yZXNvdXJjZWApO1xuXG4gIGNvbnN0IG91dHB1dFN0cnVjdHNJbmRleCA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICBwYXRoLmpvaW4od29ya2RpciwgXCJwcm92aWRlcnMvZGF0YWRvZy9kYXNoYm9hcmQvaW5kZXgtc3RydWN0cy9pbmRleC50c1wiKSxcbiAgICBcInV0Zi04XCIsXG4gICk7XG4gIGV4cGVjdChvdXRwdXRTdHJ1Y3RzSW5kZXgpLnRvTWF0Y2hTbmFwc2hvdChgc3RydWN0cy1pbmRleGApO1xuXG4gIGNvbnN0IG91dHB1dFN0cnVjdHMwID0gZnMucmVhZEZpbGVTeW5jKFxuICAgIHBhdGguam9pbih3b3JrZGlyLCBcInByb3ZpZGVycy9kYXRhZG9nL2Rhc2hib2FyZC9pbmRleC1zdHJ1Y3RzL3N0cnVjdHMwLnRzXCIpLFxuICAgIFwidXRmLThcIixcbiAgKTtcbiAgZXhwZWN0KG91dHB1dFN0cnVjdHMwKS50b01hdGNoU25hcHNob3QoYHN0cnVjdHMwYCk7XG5cbiAgY29uc3Qgb3V0cHV0U3RydWN0czQwMCA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICBwYXRoLmpvaW4oXG4gICAgICB3b3JrZGlyLFxuICAgICAgXCJwcm92aWRlcnMvZGF0YWRvZy9kYXNoYm9hcmQvaW5kZXgtc3RydWN0cy9zdHJ1Y3RzNDAwLnRzXCIsXG4gICAgKSxcbiAgICBcInV0Zi04XCIsXG4gICk7XG4gIGV4cGVjdChvdXRwdXRTdHJ1Y3RzNDAwKS50b01hdGNoU25hcHNob3QoYHN0cnVjdHM0MDBgKTtcbn0pO1xuIl19