@cdktn/hcl2cdk 0.22.0-pre.2

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 (61) hide show
  1. package/README.md +95 -0
  2. package/ambient.d.ts +14 -0
  3. package/jest.config.js +16 -0
  4. package/lib/__tests__/coerceType.test.d.ts +2 -0
  5. package/lib/__tests__/coerceType.test.js +165 -0
  6. package/lib/__tests__/expressionToTs.test.d.ts +6 -0
  7. package/lib/__tests__/expressionToTs.test.js +693 -0
  8. package/lib/__tests__/expressions.test.d.ts +4 -0
  9. package/lib/__tests__/expressions.test.js +415 -0
  10. package/lib/__tests__/findExpressionType.test.d.ts +6 -0
  11. package/lib/__tests__/findExpressionType.test.js +105 -0
  12. package/lib/__tests__/functions.test.d.ts +6 -0
  13. package/lib/__tests__/functions.test.js +605 -0
  14. package/lib/__tests__/generation.test.d.ts +6 -0
  15. package/lib/__tests__/generation.test.js +45 -0
  16. package/lib/__tests__/jsii-rosetta-workarounds.test.d.ts +2 -0
  17. package/lib/__tests__/jsii-rosetta-workarounds.test.js +86 -0
  18. package/lib/__tests__/partialCode.test.d.ts +6 -0
  19. package/lib/__tests__/partialCode.test.js +390 -0
  20. package/lib/__tests__/terraformSchema.test.d.ts +6 -0
  21. package/lib/__tests__/terraformSchema.test.js +105 -0
  22. package/lib/__tests__/testHelpers.d.ts +7 -0
  23. package/lib/__tests__/testHelpers.js +16 -0
  24. package/lib/coerceType.d.ts +7 -0
  25. package/lib/coerceType.js +240 -0
  26. package/lib/dynamic-blocks.d.ts +8 -0
  27. package/lib/dynamic-blocks.js +44 -0
  28. package/lib/expressions.d.ts +9 -0
  29. package/lib/expressions.js +634 -0
  30. package/lib/function-bindings/functions.d.ts +31 -0
  31. package/lib/function-bindings/functions.generated.d.ts +806 -0
  32. package/lib/function-bindings/functions.generated.js +1142 -0
  33. package/lib/function-bindings/functions.js +73 -0
  34. package/lib/generation.d.ts +26 -0
  35. package/lib/generation.js +676 -0
  36. package/lib/index.d.ts +136 -0
  37. package/lib/index.js +364 -0
  38. package/lib/iteration.d.ts +23 -0
  39. package/lib/iteration.js +87 -0
  40. package/lib/jsii-rosetta-workarounds.d.ts +5 -0
  41. package/lib/jsii-rosetta-workarounds.js +126 -0
  42. package/lib/partialCode.d.ts +11 -0
  43. package/lib/partialCode.js +116 -0
  44. package/lib/provider.d.ts +8 -0
  45. package/lib/provider.js +40 -0
  46. package/lib/references.d.ts +11 -0
  47. package/lib/references.js +141 -0
  48. package/lib/schema.d.ts +297 -0
  49. package/lib/schema.js +81 -0
  50. package/lib/telemetryAllowList.json +24 -0
  51. package/lib/terraformSchema.d.ts +6 -0
  52. package/lib/terraformSchema.js +136 -0
  53. package/lib/types.d.ts +50 -0
  54. package/lib/types.js +3 -0
  55. package/lib/utils.d.ts +6 -0
  56. package/lib/utils.js +25 -0
  57. package/lib/variables.d.ts +10 -0
  58. package/lib/variables.js +172 -0
  59. package/package.json +71 -0
  60. package/package.sh +9 -0
  61. package/tsconfig.json +42 -0
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=generation.test.d.ts.map
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) HashiCorp, Inc.
4
+ * SPDX-License-Identifier: MPL-2.0
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const generation_1 = require("../generation");
8
+ const testHelpers_1 = require("./testHelpers");
9
+ describe("variableTypeToAst", () => {
10
+ async function run(type) {
11
+ return (0, testHelpers_1.astToCode)(await (0, generation_1.variableTypeToAst)({
12
+ importables: [],
13
+ }, type));
14
+ }
15
+ it("should convert a simple type", async () => {
16
+ expect(await run("${string}")).toMatchInlineSnapshot(`"VariableType.STRING"`);
17
+ });
18
+ it("should convert a object type", async () => {
19
+ expect(await run("${object({\n name = string\n address = string\n })}")).toMatchInlineSnapshot(`
20
+ "VariableType.object({
21
+ "address": VariableType.STRING,
22
+ "name": VariableType.STRING
23
+ })"
24
+ `);
25
+ });
26
+ it("should convert a list type", async () => {
27
+ expect(await run("${list(object({\n internal = number\n external = number\n protocol = string\n }))}")).toMatchInlineSnapshot(`
28
+ "VariableType.list(VariableType.object({
29
+ "external": VariableType.NUMBER,
30
+ "internal": VariableType.NUMBER,
31
+ "protocol": VariableType.STRING
32
+ }))"
33
+ `);
34
+ });
35
+ it("should convert a set type", async () => {
36
+ expect(await run("${set(string)}")).toMatchInlineSnapshot(`"VariableType.set(VariableType.STRING)"`);
37
+ });
38
+ it("should convert a map type", async () => {
39
+ expect(await run("${map(string)}")).toMatchInlineSnapshot(`"VariableType.map(VariableType.STRING)"`);
40
+ });
41
+ it("should convert a tuple type", async () => {
42
+ expect(await run("${tuple(string, number, bool)}")).toMatchInlineSnapshot(`"VariableType.tuple(VariableType.STRING, VariableType.NUMBER, VariableType.BOOL)"`);
43
+ });
44
+ });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGlvbi50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZ2VuZXJhdGlvbi50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7O0FBRUgsOENBQWtEO0FBRWxELCtDQUEwQztBQUUxQyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFO0lBQ2pDLEtBQUssVUFBVSxHQUFHLENBQUMsSUFBWTtRQUM3QixPQUFPLElBQUEsdUJBQVMsRUFDZCxNQUFNLElBQUEsOEJBQWlCLEVBQ3JCO1lBQ0UsV0FBVyxFQUFFLEVBQUU7U0FDVyxFQUM1QixJQUFJLENBQ0wsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSxLQUFLLElBQUksRUFBRTtRQUM1QyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FDbEQsdUJBQXVCLENBQ3hCLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSxLQUFLLElBQUksRUFBRTtRQUM1QyxNQUFNLENBQ0osTUFBTSxHQUFHLENBQ1AsaUZBQWlGLENBQ2xGLENBQ0YsQ0FBQyxxQkFBcUIsQ0FBQzs7Ozs7S0FLdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsNEJBQTRCLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDMUMsTUFBTSxDQUNKLE1BQU0sR0FBRyxDQUNQLDRIQUE0SCxDQUM3SCxDQUNGLENBQUMscUJBQXFCLENBQUM7Ozs7OztLQU12QixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQywyQkFBMkIsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN6QyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUN2RCx5Q0FBeUMsQ0FDMUMsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDJCQUEyQixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3pDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQ3ZELHlDQUF5QyxDQUMxQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsNkJBQTZCLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDM0MsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLGdDQUFnQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FDdkUsbUZBQW1GLENBQ3BGLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuXG5pbXBvcnQgeyB2YXJpYWJsZVR5cGVUb0FzdCB9IGZyb20gXCIuLi9nZW5lcmF0aW9uXCI7XG5pbXBvcnQgeyBQcm9ncmFtU2NvcGUgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IGFzdFRvQ29kZSB9IGZyb20gXCIuL3Rlc3RIZWxwZXJzXCI7XG5cbmRlc2NyaWJlKFwidmFyaWFibGVUeXBlVG9Bc3RcIiwgKCkgPT4ge1xuICBhc3luYyBmdW5jdGlvbiBydW4odHlwZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGFzdFRvQ29kZShcbiAgICAgIGF3YWl0IHZhcmlhYmxlVHlwZVRvQXN0KFxuICAgICAgICB7XG4gICAgICAgICAgaW1wb3J0YWJsZXM6IFtdLFxuICAgICAgICB9IGFzIHVua25vd24gYXMgUHJvZ3JhbVNjb3BlLFxuICAgICAgICB0eXBlLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgaXQoXCJzaG91bGQgY29udmVydCBhIHNpbXBsZSB0eXBlXCIsIGFzeW5jICgpID0+IHtcbiAgICBleHBlY3QoYXdhaXQgcnVuKFwiJHtzdHJpbmd9XCIpKS50b01hdGNoSW5saW5lU25hcHNob3QoXG4gICAgICBgXCJWYXJpYWJsZVR5cGUuU1RSSU5HXCJgLFxuICAgICk7XG4gIH0pO1xuXG4gIGl0KFwic2hvdWxkIGNvbnZlcnQgYSBvYmplY3QgdHlwZVwiLCBhc3luYyAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgYXdhaXQgcnVuKFxuICAgICAgICBcIiR7b2JqZWN0KHtcXG4gICAgICAgICAgbmFtZSAgICA9IHN0cmluZ1xcbiAgICAgICAgICBhZGRyZXNzID0gc3RyaW5nXFxuICAgICAgICB9KX1cIixcbiAgICAgICksXG4gICAgKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgXCJWYXJpYWJsZVR5cGUub2JqZWN0KHtcbiAgICAgICAgXCJhZGRyZXNzXCI6IFZhcmlhYmxlVHlwZS5TVFJJTkcsXG4gICAgICAgIFwibmFtZVwiOiBWYXJpYWJsZVR5cGUuU1RSSU5HXG4gICAgICB9KVwiXG4gICAgYCk7XG4gIH0pO1xuXG4gIGl0KFwic2hvdWxkIGNvbnZlcnQgYSBsaXN0IHR5cGVcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIGF3YWl0IHJ1bihcbiAgICAgICAgXCIke2xpc3Qob2JqZWN0KHtcXG4gICAgICAgICAgICBpbnRlcm5hbCA9IG51bWJlclxcbiAgICAgICAgICAgIGV4dGVybmFsID0gbnVtYmVyXFxuICAgICAgICAgICAgcHJvdG9jb2wgPSBzdHJpbmdcXG4gICAgICAgIH0pKX1cIixcbiAgICAgICksXG4gICAgKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgXCJWYXJpYWJsZVR5cGUubGlzdChWYXJpYWJsZVR5cGUub2JqZWN0KHtcbiAgICAgICAgXCJleHRlcm5hbFwiOiBWYXJpYWJsZVR5cGUuTlVNQkVSLFxuICAgICAgICBcImludGVybmFsXCI6IFZhcmlhYmxlVHlwZS5OVU1CRVIsXG4gICAgICAgIFwicHJvdG9jb2xcIjogVmFyaWFibGVUeXBlLlNUUklOR1xuICAgICAgfSkpXCJcbiAgICBgKTtcbiAgfSk7XG5cbiAgaXQoXCJzaG91bGQgY29udmVydCBhIHNldCB0eXBlXCIsIGFzeW5jICgpID0+IHtcbiAgICBleHBlY3QoYXdhaXQgcnVuKFwiJHtzZXQoc3RyaW5nKX1cIikpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChcbiAgICAgIGBcIlZhcmlhYmxlVHlwZS5zZXQoVmFyaWFibGVUeXBlLlNUUklORylcImAsXG4gICAgKTtcbiAgfSk7XG5cbiAgaXQoXCJzaG91bGQgY29udmVydCBhIG1hcCB0eXBlXCIsIGFzeW5jICgpID0+IHtcbiAgICBleHBlY3QoYXdhaXQgcnVuKFwiJHttYXAoc3RyaW5nKX1cIikpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChcbiAgICAgIGBcIlZhcmlhYmxlVHlwZS5tYXAoVmFyaWFibGVUeXBlLlNUUklORylcImAsXG4gICAgKTtcbiAgfSk7XG5cbiAgaXQoXCJzaG91bGQgY29udmVydCBhIHR1cGxlIHR5cGVcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGV4cGVjdChhd2FpdCBydW4oXCIke3R1cGxlKHN0cmluZywgbnVtYmVyLCBib29sKX1cIikpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChcbiAgICAgIGBcIlZhcmlhYmxlVHlwZS50dXBsZShWYXJpYWJsZVR5cGUuU1RSSU5HLCBWYXJpYWJsZVR5cGUuTlVNQkVSLCBWYXJpYWJsZVR5cGUuQk9PTClcImAsXG4gICAgKTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=jsii-rosetta-workarounds.test.d.ts.map
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ // Copyright (c) HashiCorp, Inc
3
+ // SPDX-License-Identifier: MPL-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ const jsii_rosetta_workarounds_1 = require("../jsii-rosetta-workarounds");
6
+ describe("jsii-rosetta-workarounds", () => {
7
+ describe("replacePythonImports", () => {
8
+ it("normal imports", () => {
9
+ const code = `
10
+ import constructs as constructs
11
+ # Provider bindings are generated by running cdktn get.
12
+ # See https://cdk.tf/provider-generation for more details.
13
+ import ...gen.providers.scaleway as scaleway
14
+ class MyConvertedCode(constructs.Construct):
15
+ def __init__(self, scope, name):
16
+ super().__init__(scope, name)
17
+ scaleway.provider.ScalewayProvider(self, "scaleway",
18
+ region="fr-par",
19
+ zone="fr-par-1"
20
+ )`;
21
+ expect((0, jsii_rosetta_workarounds_1.replacePythonImports)(code)).toEqual(expect.stringContaining("import imports.scaleway as scaleway"));
22
+ });
23
+ it("granular imports", () => {
24
+ const code = `from ...gen.providers.aws.lib.rdsCluster import RdsCluster`;
25
+ expect((0, jsii_rosetta_workarounds_1.replacePythonImports)(code)).toEqual("from imports.aws.rdsCluster import RdsCluster");
26
+ const withoutLibCode = `from ...gen.providers.azurerm.resource_group import ResourceGroup`;
27
+ expect((0, jsii_rosetta_workarounds_1.replacePythonImports)(withoutLibCode)).toEqual("from imports.azurerm.resource_group import ResourceGroup");
28
+ });
29
+ it("resource imports", () => {
30
+ const code = `import ...gen.providers.aws.lib.rdsCluster as RdsCluster`;
31
+ expect((0, jsii_rosetta_workarounds_1.replacePythonImports)(code)).toEqual("import imports.aws.rdsCluster as RdsCluster");
32
+ });
33
+ it("fixes module imports", () => {
34
+ const code = `import ...gen.modules.hello_module as HelloModule`;
35
+ expect((0, jsii_rosetta_workarounds_1.replacePythonImports)(code)).toEqual("import imports.hello_module as HelloModule");
36
+ });
37
+ });
38
+ describe("replaceCsharpImports", () => {
39
+ it("normal imports", () => {
40
+ const code = `using Gen.Providers.Aws.Lib.RdsCluster;`;
41
+ expect((0, jsii_rosetta_workarounds_1.replaceCsharpImports)(code)).toEqual("using aws.RdsCluster;");
42
+ });
43
+ it("fixes module imports", () => {
44
+ const code = `using Gen.Modules.HelloModule`;
45
+ expect((0, jsii_rosetta_workarounds_1.replaceCsharpImports)(code)).toEqual("using HelloModule");
46
+ const anotherCode = `using Gen.Modules.Hello.Module`;
47
+ expect((0, jsii_rosetta_workarounds_1.replaceCsharpImports)(anotherCode)).toEqual("using Hello.Module");
48
+ });
49
+ });
50
+ describe("replaceJavaImports", () => {
51
+ it("normal imports", () => {
52
+ const code = `import gen.providers.scaleway.objectResource.*;`;
53
+ expect((0, jsii_rosetta_workarounds_1.replaceJavaImports)(code)).toEqual("import imports.scaleway.objectResource.*;");
54
+ });
55
+ it("precise imports", () => {
56
+ const code = `import gen.providers.aws.lib.s3Bucket.S3Bucket;`;
57
+ expect((0, jsii_rosetta_workarounds_1.replaceJavaImports)(code)).toEqual("import imports.aws.s3Bucket.S3Bucket;");
58
+ const withoutLibImport = `import gen.providers.aws.s3Bucket.S3Bucket;`;
59
+ expect((0, jsii_rosetta_workarounds_1.replaceJavaImports)(withoutLibImport)).toEqual("import imports.aws.s3Bucket.S3Bucket;");
60
+ });
61
+ it("fixes module imports", () => {
62
+ const code = `import gen.modules.hello.module.*;`;
63
+ expect((0, jsii_rosetta_workarounds_1.replaceJavaImports)(code)).toEqual("import imports.hello.module.*;");
64
+ const anotherCode = `import gen.modules.helloModule.*;`;
65
+ expect((0, jsii_rosetta_workarounds_1.replaceJavaImports)(anotherCode)).toEqual("import imports.helloModule.*;");
66
+ });
67
+ });
68
+ describe("replaceGoImports", () => {
69
+ it("normal imports", () => {
70
+ const code = `import "github.com/aws-samples/dummy/gen/providers/scaleway/objectBucket"`;
71
+ expect((0, jsii_rosetta_workarounds_1.replaceGoImports)(code)).toEqual(`import "cdk.tf/go/stack/generated/scaleway/objectBucket"`);
72
+ });
73
+ it("precise imports", () => {
74
+ const code = `import "github.com/aws-samples/dummy/gen/providers/aws/lib/dbInstance"`;
75
+ expect((0, jsii_rosetta_workarounds_1.replaceGoImports)(code)).toEqual(`import "cdk.tf/go/stack/generated/aws/dbInstance"`);
76
+ });
77
+ it("fixes module imports", () => {
78
+ const code = `import helloModule "github.com/aws-samples/dummy/gen/modules/hello_module"`;
79
+ expect((0, jsii_rosetta_workarounds_1.replaceGoImports)(code)).toEqual(
80
+ // TODO: Set up cdktn.io/ static redirect?
81
+ // "github.com/open-constructs/cdk-terrain/examples/go/documentation/generated/terraform-aws-modules/aws/vpc"
82
+ `import helloModule "cdk.tf/go/stack/generated/hello_module"`);
83
+ });
84
+ });
85
+ });
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNpaS1yb3NldHRhLXdvcmthcm91bmRzLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJqc2lpLXJvc2V0dGEtd29ya2Fyb3VuZHMudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQzs7QUFFbkMsMEVBS3FDO0FBRXJDLFFBQVEsQ0FBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUU7SUFDeEMsUUFBUSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtRQUNwQyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxHQUFHOzs7Ozs7Ozs7OztVQVdULENBQUM7WUFFTCxNQUFNLENBQUMsSUFBQSwrQ0FBb0IsRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDeEMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLHFDQUFxQyxDQUFDLENBQy9ELENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLEVBQUU7WUFDMUIsTUFBTSxJQUFJLEdBQUcsNERBQTRELENBQUM7WUFFMUUsTUFBTSxDQUFDLElBQUEsK0NBQW9CLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQ3hDLCtDQUErQyxDQUNoRCxDQUFDO1lBRUYsTUFBTSxjQUFjLEdBQUcsbUVBQW1FLENBQUM7WUFDM0YsTUFBTSxDQUFDLElBQUEsK0NBQW9CLEVBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQ2xELDBEQUEwRCxDQUMzRCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFO1lBQzFCLE1BQU0sSUFBSSxHQUFHLDBEQUEwRCxDQUFDO1lBRXhFLE1BQU0sQ0FBQyxJQUFBLCtDQUFvQixFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUN4Qyw2Q0FBNkMsQ0FDOUMsQ0FB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LHdFQUF3RSxDQUFDO1lBRXRGLE1BQU0sQ0FBQyxJQUFBLDJDQUFnQixFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUNwQyxtREFBbUQsQ0FDcEQsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtZQUM5QixNQUFNLElBQUksR0FBRyw0RUFBNEUsQ0FBQztZQUUxRixNQUFNLENBQUMsSUFBQSwyQ0FBZ0IsRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU87WUFDcEMsMENBQTBDO1lBQzFDLDZHQUE2RztZQUM3Ryw2REFBNkQsQ0FDOUQsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5cbmltcG9ydCB7XG4gIHJlcGxhY2VDc2hhcnBJbXBvcnRzLFxuICByZXBsYWNlR29JbXBvcnRzLFxuICByZXBsYWNlSmF2YUltcG9ydHMsXG4gIHJlcGxhY2VQeXRob25JbXBvcnRzLFxufSBmcm9tIFwiLi4vanNpaS1yb3NldHRhLXdvcmthcm91bmRzXCI7XG5cbmRlc2NyaWJlKFwianNpaS1yb3NldHRhLXdvcmthcm91bmRzXCIsICgpID0+IHtcbiAgZGVzY3JpYmUoXCJyZXBsYWNlUHl0aG9uSW1wb3J0c1wiLCAoKSA9PiB7XG4gICAgaXQoXCJub3JtYWwgaW1wb3J0c1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBjb2RlID0gYFxuaW1wb3J0IGNvbnN0cnVjdHMgYXMgY29uc3RydWN0c1xuIyBQcm92aWRlciBiaW5kaW5ncyBhcmUgZ2VuZXJhdGVkIGJ5IHJ1bm5pbmcgY2RrdG4gZ2V0LlxuIyBTZWUgaHR0cHM6Ly9jZGsudGYvcHJvdmlkZXItZ2VuZXJhdGlvbiBmb3IgbW9yZSBkZXRhaWxzLlxuaW1wb3J0IC4uLmdlbi5wcm92aWRlcnMuc2NhbGV3YXkgYXMgc2NhbGV3YXlcbmNsYXNzIE15Q29udmVydGVkQ29kZShjb25zdHJ1Y3RzLkNvbnN0cnVjdCk6XG4gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNjb3BlLCBuYW1lKTpcbiAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhzY29wZSwgbmFtZSlcbiAgICAgICAgc2NhbGV3YXkucHJvdmlkZXIuU2NhbGV3YXlQcm92aWRlcihzZWxmLCBcInNjYWxld2F5XCIsXG4gICAgICAgICAgICByZWdpb249XCJmci1wYXJcIixcbiAgICAgICAgICAgIHpvbmU9XCJmci1wYXItMVwiXG4gICAgICAgIClgO1xuXG4gICAgICBleHBlY3QocmVwbGFjZVB5dGhvbkltcG9ydHMoY29kZSkpLnRvRXF1YWwoXG4gICAgICAgIGV4cGVjdC5zdHJpbmdDb250YWluaW5nKFwiaW1wb3J0IGltcG9ydHMuc2NhbGV3YXkgYXMgc2NhbGV3YXlcIiksXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJncmFudWxhciBpbXBvcnRzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvZGUgPSBgZnJvbSAuLi5nZW4ucHJvdmlkZXJzLmF3cy5saWIucmRzQ2x1c3RlciBpbXBvcnQgUmRzQ2x1c3RlcmA7XG5cbiAgICAgIGV4cGVjdChyZXBsYWNlUHl0aG9uSW1wb3J0cyhjb2RlKSkudG9FcXVhbChcbiAgICAgICAgXCJmcm9tIGltcG9ydHMuYXdzLnJkc0NsdXN0ZXIgaW1wb3J0IFJkc0NsdXN0ZXJcIixcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHdpdGhvdXRMaWJDb2RlID0gYGZyb20gLi4uZ2VuLnByb3ZpZGVycy5henVyZXJtLnJlc291cmNlX2dyb3VwIGltcG9ydCBSZXNvdXJjZUdyb3VwYDtcbiAgICAgIGV4cGVjdChyZXBsYWNlUHl0aG9uSW1wb3J0cyh3aXRob3V0TGliQ29kZSkpLnRvRXF1YWwoXG4gICAgICAgIFwiZnJvbSBpbXBvcnRzLmF6dXJlcm0ucmVzb3VyY2VfZ3JvdXAgaW1wb3J0IFJlc291cmNlR3JvdXBcIixcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdChcInJlc291cmNlIGltcG9ydHNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgY29kZSA9IGBpbXBvcnQgLi4uZ2VuLnByb3ZpZGVycy5hd3MubGliLnJkc0NsdXN0ZXIgYXMgUmRzQ2x1c3RlcmA7XG5cbiAgICAgIGV4cGVjdChyZXBsYWNlUHl0aG9uSW1wb3J0cyhjb2RlKSkudG9FcXVhbChcbiAgICAgICAgXCJpbXBvcnQgaW1wb3J0cy5hd3MucmRzQ2x1c3RlciBhcyBSZHNDbHVzdGVyXCIsXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJmaXhlcyBtb2R1bGUgaW1wb3J0c1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBjb2RlID0gYGltcG9ydCAuLi5nZW4ubW9kdWxlcy5oZWxsb19tb2R1bGUgYXMgSGVsbG9Nb2R1bGVgO1xuXG4gICAgICBleHBlY3QocmVwbGFjZVB5dGhvbkltcG9ydHMoY29kZSkpLnRvRXF1YWwoXG4gICAgICAgIFwiaW1wb3J0IGltcG9ydHMuaGVsbG9fbW9kdWxlIGFzIEhlbGxvTW9kdWxlXCIsXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcInJlcGxhY2VDc2hhcnBJbXBvcnRzXCIsICgpID0+IHtcbiAgICBpdChcIm5vcm1hbCBpbXBvcnRzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvZGUgPSBgdXNpbmcgR2VuLlByb3ZpZGVycy5Bd3MuTGliLlJkc0NsdXN0ZXI7YDtcblxuICAgICAgZXhwZWN0KHJlcGxhY2VDc2hhcnBJbXBvcnRzKGNvZGUpKS50b0VxdWFsKFwidXNpbmcgYXdzLlJkc0NsdXN0ZXI7XCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJmaXhlcyBtb2R1bGUgaW1wb3J0c1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBjb2RlID0gYHVzaW5nIEdlbi5Nb2R1bGVzLkhlbGxvTW9kdWxlYDtcblxuICAgICAgZXhwZWN0KHJlcGxhY2VDc2hhcnBJbXBvcnRzKGNvZGUpKS50b0VxdWFsKFwidXNpbmcgSGVsbG9Nb2R1bGVcIik7XG5cbiAgICAgIGNvbnN0IGFub3RoZXJDb2RlID0gYHVzaW5nIEdlbi5Nb2R1bGVzLkhlbGxvLk1vZHVsZWA7XG5cbiAgICAgIGV4cGVjdChyZXBsYWNlQ3NoYXJwSW1wb3J0cyhhbm90aGVyQ29kZSkpLnRvRXF1YWwoXCJ1c2luZyBIZWxsby5Nb2R1bGVcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwicmVwbGFjZUphdmFJbXBvcnRzXCIsICgpID0+IHtcbiAgICBpdChcIm5vcm1hbCBpbXBvcnRzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvZGUgPSBgaW1wb3J0IGdlbi5wcm92aWRlcnMuc2NhbGV3YXkub2JqZWN0UmVzb3VyY2UuKjtgO1xuXG4gICAgICBleHBlY3QocmVwbGFjZUphdmFJbXBvcnRzKGNvZGUpKS50b0VxdWFsKFxuICAgICAgICBcImltcG9ydCBpbXBvcnRzLnNjYWxld2F5Lm9iamVjdFJlc291cmNlLio7XCIsXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJwcmVjaXNlIGltcG9ydHNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgY29kZSA9IGBpbXBvcnQgZ2VuLnByb3ZpZGVycy5hd3MubGliLnMzQnVja2V0LlMzQnVja2V0O2A7XG5cbiAgICAgIGV4cGVjdChyZXBsYWNlSmF2YUltcG9ydHMoY29kZSkpLnRvRXF1YWwoXG4gICAgICAgIFwiaW1wb3J0IGltcG9ydHMuYXdzLnMzQnVja2V0LlMzQnVja2V0O1wiLFxuICAgICAgKTtcblxuICAgICAgY29uc3Qgd2l0aG91dExpYkltcG9ydCA9IGBpbXBvcnQgZ2VuLnByb3ZpZGVycy5hd3MuczNCdWNrZXQuUzNCdWNrZXQ7YDtcblxuICAgICAgZXhwZWN0KHJlcGxhY2VKYXZhSW1wb3J0cyh3aXRob3V0TGliSW1wb3J0KSkudG9FcXVhbChcbiAgICAgICAgXCJpbXBvcnQgaW1wb3J0cy5hd3MuczNCdWNrZXQuUzNCdWNrZXQ7XCIsXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJmaXhlcyBtb2R1bGUgaW1wb3J0c1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBjb2RlID0gYGltcG9ydCBnZW4ubW9kdWxlcy5oZWxsby5tb2R1bGUuKjtgO1xuXG4gICAgICBleHBlY3QocmVwbGFjZUphdmFJbXBvcnRzKGNvZGUpKS50b0VxdWFsKFxuICAgICAgICBcImltcG9ydCBpbXBvcnRzLmhlbGxvLm1vZHVsZS4qO1wiLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgYW5vdGhlckNvZGUgPSBgaW1wb3J0IGdlbi5tb2R1bGVzLmhlbGxvTW9kdWxlLio7YDtcblxuICAgICAgZXhwZWN0KHJlcGxhY2VKYXZhSW1wb3J0cyhhbm90aGVyQ29kZSkpLnRvRXF1YWwoXG4gICAgICAgIFwiaW1wb3J0IGltcG9ydHMuaGVsbG9Nb2R1bGUuKjtcIixcbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwicmVwbGFjZUdvSW1wb3J0c1wiLCAoKSA9PiB7XG4gICAgaXQoXCJub3JtYWwgaW1wb3J0c1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBjb2RlID0gYGltcG9ydCBcImdpdGh1Yi5jb20vYXdzLXNhbXBsZXMvZHVtbXkvZ2VuL3Byb3ZpZGVycy9zY2FsZXdheS9vYmplY3RCdWNrZXRcImA7XG5cbiAgICAgIGV4cGVjdChyZXBsYWNlR29JbXBvcnRzKGNvZGUpKS50b0VxdWFsKFxuICAgICAgICBgaW1wb3J0IFwiY2RrLnRmL2dvL3N0YWNrL2dlbmVyYXRlZC9zY2FsZXdheS9vYmplY3RCdWNrZXRcImAsXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJwcmVjaXNlIGltcG9ydHNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgY29kZSA9IGBpbXBvcnQgXCJnaXRodWIuY29tL2F3cy1zYW1wbGVzL2R1bW15L2dlbi9wcm92aWRlcnMvYXdzL2xpYi9kYkluc3RhbmNlXCJgO1xuXG4gICAgICBleHBlY3QocmVwbGFjZUdvSW1wb3J0cyhjb2RlKSkudG9FcXVhbChcbiAgICAgICAgYGltcG9ydCBcImNkay50Zi9nby9zdGFjay9nZW5lcmF0ZWQvYXdzL2RiSW5zdGFuY2VcImAsXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJmaXhlcyBtb2R1bGUgaW1wb3J0c1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBjb2RlID0gYGltcG9ydCBoZWxsb01vZHVsZSBcImdpdGh1Yi5jb20vYXdzLXNhbXBsZXMvZHVtbXkvZ2VuL21vZHVsZXMvaGVsbG9fbW9kdWxlXCJgO1xuXG4gICAgICBleHBlY3QocmVwbGFjZUdvSW1wb3J0cyhjb2RlKSkudG9FcXVhbChcbiAgICAgICAgLy8gVE9ETzogU2V0IHVwIGNka3RuLmlvLyBzdGF0aWMgcmVkaXJlY3Q/XG4gICAgICAgIC8vIFwiZ2l0aHViLmNvbS9vcGVuLWNvbnN0cnVjdHMvY2RrLXRlcnJhaW4vZXhhbXBsZXMvZ28vZG9jdW1lbnRhdGlvbi9nZW5lcmF0ZWQvdGVycmFmb3JtLWF3cy1tb2R1bGVzL2F3cy92cGNcIlxuICAgICAgICBgaW1wb3J0IGhlbGxvTW9kdWxlIFwiY2RrLnRmL2dvL3N0YWNrL2dlbmVyYXRlZC9oZWxsb19tb2R1bGVcImAsXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=partialCode.test.d.ts.map
@@ -0,0 +1,390 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) HashiCorp, Inc.
4
+ * SPDX-License-Identifier: MPL-2.0
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const partialCode_1 = require("../partialCode");
8
+ const getScope = () => ({
9
+ providerSchema: {
10
+ format_version: "0.1",
11
+ provider_schemas: {
12
+ aws: {
13
+ data_source_schemas: {},
14
+ provider: {
15
+ block: {
16
+ attributes: {},
17
+ block_types: {},
18
+ },
19
+ version: 0,
20
+ },
21
+ resource_schemas: {
22
+ aws_image: {
23
+ version: 0,
24
+ block: {
25
+ block_types: {
26
+ c: {
27
+ nesting_mode: "single",
28
+ block: {
29
+ attributes: {
30
+ d: {
31
+ type: "string",
32
+ description_kind: "plain",
33
+ optional: true,
34
+ required: true,
35
+ },
36
+ },
37
+ block_types: {},
38
+ },
39
+ },
40
+ d: {
41
+ nesting_mode: "list",
42
+ block: {
43
+ attributes: {
44
+ e: {
45
+ type: "string",
46
+ description_kind: "plain",
47
+ optional: true,
48
+ required: true,
49
+ },
50
+ },
51
+ block_types: {},
52
+ },
53
+ min_items: 1,
54
+ },
55
+ timeouts: {
56
+ nesting_mode: "single",
57
+ block: {
58
+ attributes: {
59
+ read: {
60
+ type: "string",
61
+ description_kind: "plain",
62
+ optional: true,
63
+ },
64
+ },
65
+ block_types: {},
66
+ description_kind: "plain",
67
+ },
68
+ },
69
+ },
70
+ attributes: {
71
+ a: {
72
+ type: "string",
73
+ required: true,
74
+ },
75
+ b: {
76
+ type: "string",
77
+ required: true,
78
+ },
79
+ },
80
+ },
81
+ },
82
+ },
83
+ },
84
+ },
85
+ },
86
+ constructs: new Set(),
87
+ hasTokenBasedTypeCoercion: false,
88
+ nodeIds: [],
89
+ providerGenerator: {},
90
+ variables: {},
91
+ importables: [],
92
+ // This should be mutated
93
+ topLevelConfig: {},
94
+ });
95
+ describe("fillWithConfigAccessors", () => {
96
+ it("adds a missing required attributes", () => {
97
+ const scope = getScope();
98
+ const result = (0, partialCode_1.fillWithConfigAccessors)(scope, {
99
+ a: "a",
100
+ c: {
101
+ d: "d",
102
+ },
103
+ timeouts: {
104
+ read: "20m",
105
+ },
106
+ d: [{ e: "e" }],
107
+ }, "aws.image");
108
+ expect(scope.topLevelConfig.b).toEqual("aws.image.b");
109
+ expect(result).toMatchInlineSnapshot(`
110
+ {
111
+ "a": "a",
112
+ "b": {
113
+ "computed": false,
114
+ "object": {
115
+ "name": "config",
116
+ "type": "Identifier",
117
+ },
118
+ "optional": null,
119
+ "property": {
120
+ "name": "b",
121
+ "type": "Identifier",
122
+ },
123
+ "type": "MemberExpression",
124
+ },
125
+ "c": {
126
+ "d": "d",
127
+ },
128
+ "d": [
129
+ {
130
+ "e": "e",
131
+ },
132
+ ],
133
+ "timeouts": {
134
+ "read": "20m",
135
+ },
136
+ }
137
+ `);
138
+ });
139
+ it("ignores missing unrequired set block types", () => {
140
+ const scope = getScope();
141
+ const result = (0, partialCode_1.fillWithConfigAccessors)(scope, {
142
+ a: "a",
143
+ b: "b",
144
+ c: {
145
+ d: "d",
146
+ },
147
+ d: [{ e: "e" }],
148
+ }, "aws.image");
149
+ expect(scope.topLevelConfig).toEqual({});
150
+ expect(result).toMatchInlineSnapshot(`
151
+ {
152
+ "a": "a",
153
+ "b": "b",
154
+ "c": {
155
+ "d": "d",
156
+ },
157
+ "d": [
158
+ {
159
+ "e": "e",
160
+ },
161
+ ],
162
+ }
163
+ `);
164
+ });
165
+ it("fills within a single block type", () => {
166
+ const scope = getScope();
167
+ const result = (0, partialCode_1.fillWithConfigAccessors)(scope, {
168
+ a: "a",
169
+ b: "b",
170
+ c: {},
171
+ d: [{ e: "e" }],
172
+ }, "aws.image");
173
+ expect(scope.topLevelConfig).toEqual({
174
+ d: "aws.image.c.d",
175
+ });
176
+ expect(result).toMatchInlineSnapshot(`
177
+ {
178
+ "a": "a",
179
+ "b": "b",
180
+ "c": {
181
+ "d": {
182
+ "computed": false,
183
+ "object": {
184
+ "name": "config",
185
+ "type": "Identifier",
186
+ },
187
+ "optional": null,
188
+ "property": {
189
+ "name": "d",
190
+ "type": "Identifier",
191
+ },
192
+ "type": "MemberExpression",
193
+ },
194
+ },
195
+ "d": [
196
+ {
197
+ "e": "e",
198
+ },
199
+ ],
200
+ }
201
+ `);
202
+ });
203
+ it("fills an entire single block type", () => {
204
+ const scope = getScope();
205
+ const result = (0, partialCode_1.fillWithConfigAccessors)(scope, {
206
+ a: "a",
207
+ b: "b",
208
+ d: [{ e: "e" }],
209
+ }, "aws.image");
210
+ expect(scope.topLevelConfig).toEqual({
211
+ c: "aws.image.c",
212
+ });
213
+ expect(result).toMatchInlineSnapshot(`
214
+ {
215
+ "a": "a",
216
+ "b": "b",
217
+ "c": {
218
+ "computed": false,
219
+ "object": {
220
+ "name": "config",
221
+ "type": "Identifier",
222
+ },
223
+ "optional": null,
224
+ "property": {
225
+ "name": "c",
226
+ "type": "Identifier",
227
+ },
228
+ "type": "MemberExpression",
229
+ },
230
+ "d": [
231
+ {
232
+ "e": "e",
233
+ },
234
+ ],
235
+ }
236
+ `);
237
+ });
238
+ it("fills within a list block type", () => {
239
+ const scope = getScope();
240
+ const result = (0, partialCode_1.fillWithConfigAccessors)(scope, {
241
+ a: "a",
242
+ b: "b",
243
+ c: { d: "d" },
244
+ d: [{}],
245
+ }, "aws.image");
246
+ expect(scope.topLevelConfig).toEqual({
247
+ e: "aws.image.d.[].e",
248
+ });
249
+ expect(result).toMatchInlineSnapshot(`
250
+ {
251
+ "a": "a",
252
+ "b": "b",
253
+ "c": {
254
+ "d": "d",
255
+ },
256
+ "d": [
257
+ {
258
+ "e": {
259
+ "computed": false,
260
+ "object": {
261
+ "name": "config",
262
+ "type": "Identifier",
263
+ },
264
+ "optional": null,
265
+ "property": {
266
+ "name": "e",
267
+ "type": "Identifier",
268
+ },
269
+ "type": "MemberExpression",
270
+ },
271
+ },
272
+ ],
273
+ }
274
+ `);
275
+ });
276
+ it("fills an entire list block type", () => {
277
+ const scope = getScope();
278
+ const result = (0, partialCode_1.fillWithConfigAccessors)(scope, {
279
+ a: "a",
280
+ b: "b",
281
+ c: { d: "d" },
282
+ }, "aws.image");
283
+ expect(scope.topLevelConfig).toEqual({
284
+ d: "aws.image.d",
285
+ });
286
+ expect(result).toMatchInlineSnapshot(`
287
+ {
288
+ "a": "a",
289
+ "b": "b",
290
+ "c": {
291
+ "d": "d",
292
+ },
293
+ "d": {
294
+ "computed": false,
295
+ "object": {
296
+ "name": "config",
297
+ "type": "Identifier",
298
+ },
299
+ "optional": null,
300
+ "property": {
301
+ "name": "d",
302
+ "type": "Identifier",
303
+ },
304
+ "type": "MemberExpression",
305
+ },
306
+ }
307
+ `);
308
+ });
309
+ it("can handle multiple fills with the same name", () => {
310
+ const scope = getScope();
311
+ const result = (0, partialCode_1.fillWithConfigAccessors)(scope, {
312
+ a: "a",
313
+ b: "b",
314
+ c: {},
315
+ }, "aws.image");
316
+ expect(scope.topLevelConfig).toEqual({
317
+ d: "aws.image.c.d",
318
+ d1: "aws.image.d",
319
+ });
320
+ expect(result).toMatchInlineSnapshot(`
321
+ {
322
+ "a": "a",
323
+ "b": "b",
324
+ "c": {
325
+ "d": {
326
+ "computed": false,
327
+ "object": {
328
+ "name": "config",
329
+ "type": "Identifier",
330
+ },
331
+ "optional": null,
332
+ "property": {
333
+ "name": "d",
334
+ "type": "Identifier",
335
+ },
336
+ "type": "MemberExpression",
337
+ },
338
+ },
339
+ "d": {
340
+ "computed": false,
341
+ "object": {
342
+ "name": "config",
343
+ "type": "Identifier",
344
+ },
345
+ "optional": null,
346
+ "property": {
347
+ "name": "d1",
348
+ "type": "Identifier",
349
+ },
350
+ "type": "MemberExpression",
351
+ },
352
+ }
353
+ `);
354
+ });
355
+ it("fills lists with min_items > 0", () => {
356
+ const scope = getScope();
357
+ const result = (0, partialCode_1.fillWithConfigAccessors)(scope, {
358
+ a: "a",
359
+ b: "b",
360
+ c: { d: "d" },
361
+ d: [],
362
+ }, "aws.image");
363
+ expect(scope.topLevelConfig).toEqual({
364
+ d: "aws.image.d",
365
+ });
366
+ expect(result).toMatchInlineSnapshot(`
367
+ {
368
+ "a": "a",
369
+ "b": "b",
370
+ "c": {
371
+ "d": "d",
372
+ },
373
+ "d": {
374
+ "computed": false,
375
+ "object": {
376
+ "name": "config",
377
+ "type": "Identifier",
378
+ },
379
+ "optional": null,
380
+ "property": {
381
+ "name": "d",
382
+ "type": "Identifier",
383
+ },
384
+ "type": "MemberExpression",
385
+ },
386
+ }
387
+ `);
388
+ });
389
+ });
390
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGlhbENvZGUudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInBhcnRpYWxDb2RlLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7QUFFSCxnREFBeUQ7QUFHekQsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQ3BCLENBQUM7SUFDQyxjQUFjLEVBQUU7UUFDZCxjQUFjLEVBQUUsS0FBSztRQUNyQixnQkFBZ0IsRUFBRTtZQUNoQixHQUFHLEVBQUU7Z0JBQ0gsbUJBQW1CLEVBQUUsRUFBRTtnQkFDdkIsUUFBUSxFQUFFO29CQUNSLEtBQUssRUFBRTt3QkFDTCxVQUFVLEVBQUUsRUFBRTt3QkFDZCxXQUFXLEVBQUUsRUFBRTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFLENBQUM7aUJBQ1g7Z0JBQ0QsZ0JBQWdCLEVBQUU7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDVCxPQUFPLEVBQUUsQ0FBQzt3QkFDVixLQUFLLEVBQUU7NEJBQ0wsV0FBVyxFQUFFO2dDQUNYLENBQUMsRUFBRTtvQ0FDRCxZQUFZLEVBQUUsUUFBUTtvQ0FDdEIsS0FBSyxFQUFFO3dDQUNMLFVBQVUsRUFBRTs0Q0FDVixDQUFDLEVBQUU7Z0RBQ0QsSUFBSSxFQUFFLFFBQVE7Z0RBQ2QsZ0JBQWdCLEVBQUUsT0FBTztnREFDekIsUUFBUSxFQUFFLElBQUk7Z0RBQ2QsUUFBUSxFQUFFLElBQUk7NkNBQ2Y7eUNBQ0Y7d0NBQ0QsV0FBVyxFQUFFLEVBQUU7cUNBQ2hCO2lDQUNGO2dDQUNELENBQUMsRUFBRTtvQ0FDRCxZQUFZLEVBQUUsTUFBTTtvQ0FDcEIsS0FBSyxFQUFFO3dDQUNMLFVBQVUsRUFBRTs0Q0FDVixDQUFDLEVBQUU7Z0RBQ0QsSUFBSSxFQUFFLFFBQVE7Z0RBQ2QsZ0JBQWdCLEVBQUUsT0FBTztnREFDekIsUUFBUSxFQUFFLElBQUk7Z0RBQ2QsUUFBUSxFQUFFLElBQUk7NkNBQ2Y7eUNBQ0Y7d0NBQ0QsV0FBVyxFQUFFLEVBQUU7cUNB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Q2xCLEVBQUUsRUFBRSxhQUFhO1NBQ2xCLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBaUNwQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxnQ0FBZ0MsRUFBRSxHQUFHLEVBQUU7UUFDeEMsTUFBTSxLQUFLLEdBQUcsUUFBUSxFQUFFLENBQUM7UUFDekIsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQ0FBdUIsRUFDcEMsS0FBSyxFQUNMO1lBQ0UsQ0FBQyxFQUFFLEdBQUc7WUFDTixDQUFDLEVBQUUsR0FBRztZQUNOLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUU7WUFDYixDQUFDLEVBQUUsRUFBRTtTQUNOLEVBQ0QsV0FBVyxDQUNaLENBQUM7UUFDRixNQUFNLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUNuQyxDQUFDLEVBQUUsYUFBYTtTQUNqQixDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMscUJBQXFCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXFCcEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0IHsgZmlsbFdpdGhDb25maWdBY2Nlc3NvcnMgfSBmcm9tIFwiLi4vcGFydGlhbENvZGVcIjtcbmltcG9ydCB7IFByb2dyYW1TY29wZSB9IGZyb20gXCIuLi90eXBlc1wiO1xuXG5jb25zdCBnZXRTY29wZSA9ICgpID0+XG4gICh7XG4gICAgcHJvdmlkZXJTY2hlbWE6IHtcbiAgICAgIGZvcm1hdF92ZXJzaW9uOiBcIjAuMVwiLFxuICAgICAgcHJvdmlkZXJfc2NoZW1hczoge1xuICAgICAgICBhd3M6IHtcbiAgICAgICAgICBkYXRhX3NvdXJjZV9zY2hlbWFzOiB7fSxcbiAgICAgICAgICBwcm92aWRlcjoge1xuICAgICAgICAgICAgYmxvY2s6IHtcbiAgICAgICAgICAgICAgYXR0cmlidXRlczoge30sXG4gICAgICAgICAgICAgIGJsb2NrX3R5cGVzOiB7fSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJzaW9uOiAwLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzb3VyY2Vfc2NoZW1hczoge1xuICAgICAgICAgICAgYXdzX2ltYWdlOiB7XG4gICAgICAgICAgICAgIHZlcnNpb246IDAsXG4gICAgICAgICAgICAgIGJsb2NrOiB7XG4gICAgICAgICAgICAgICAgYmxvY2tfdHlwZXM6IHtcbiAgICAgICAgICAgICAgICAgIGM6IHtcbiAgICAgICAgICAgICAgICAgICAgbmVzdGluZ19tb2RlOiBcInNpbmdsZVwiLFxuICAgICAgICAgICAgICAgICAgICBibG9jazoge1xuICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb25fa2luZDogXCJwbGFpblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgYmxvY2tfdHlwZXM6IHt9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIGQ6IHtcbiAgICAgICAgICAgICAgICAgICAgbmVzdGluZ19tb2RlOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgYmxvY2s6IHtcbiAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uX2tpbmQ6IFwicGxhaW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIGJsb2NrX3R5cGVzOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgbWluX2l0ZW1zOiAxLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHRpbWVvdXRzOiB7XG4gICAgICAgICAgICAgICAgICAgIG5lc3RpbmdfbW9kZTogXCJzaW5nbGVcIixcbiAgICAgICAgICAgICAgICAgICAgYmxvY2s6IHtcbiAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWFkOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uX2tpbmQ6IFwicGxhaW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgYmxvY2tfdHlwZXM6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uX2tpbmQ6IFwicGxhaW5cIixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgICBhOiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIGI6IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgY29uc3RydWN0czogbmV3IFNldCgpLFxuICAgIGhhc1Rva2VuQmFzZWRUeXBlQ29lcmNpb246IGZhbHNlLFxuICAgIG5vZGVJZHM6IFtdLFxuICAgIHByb3ZpZGVyR2VuZXJhdG9yOiB7fSxcbiAgICB2YXJpYWJsZXM6IHt9LFxuICAgIGltcG9ydGFibGVzOiBbXSxcblxuICAgIC8vIFRoaXMgc2hvdWxkIGJlIG11dGF0ZWRcbiAgICB0b3BMZXZlbENvbmZpZzoge30sXG4gIH0pIGFzIFByb2dyYW1TY29wZTtcblxuZGVzY3JpYmUoXCJmaWxsV2l0aENvbmZpZ0FjY2Vzc29yc1wiLCAoKSA9PiB7XG4gIGl0KFwiYWRkcyBhIG1pc3NpbmcgcmVxdWlyZWQgYXR0cmlidXRlc1wiLCAoKSA9PiB7XG4gICAgY29uc3Qgc2NvcGUgPSBnZXRTY29wZSgpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGZpbGxXaXRoQ29uZmlnQWNjZXNzb3JzKFxuICAgICAgc2NvcGUsXG4gICAgICB7XG4gICAgICAgIGE6IFwiYVwiLFxuICAgICAgICBjOiB7XG4gICAgICAgICAgZDogXCJkXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHRpbWVvdXRzOiB7XG4gICAgICAgICAgcmVhZDogXCIyMG1cIixcbiAgICAgICAgfSxcbiAgICAgICAgZDogW3sgZTogXCJlXCIgfV0sXG4gICAgICB9LFxuICAgICAgXCJhd3MuaW1hZ2VcIixcbiAgICApO1xuICAgIGV4cGVjdChzY29wZS50b3BMZXZlbENvbmZpZy5iKS50b0VxdWFsKFwiYXdzLmltYWdlLmJcIik7XG4gICAgZXhwZWN0KHJlc3VsdCkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgIHtcbiAgICAgICAgXCJhXCI6IFwiYVwiLFxuICAgICAgICBcImJcIjoge1xuICAgICAgICAgIFwiY29tcHV0ZWRcIjogZmFsc2UsXG4gICAgICAgICAgXCJvYmplY3RcIjoge1xuICAgICAgICAgICAgXCJuYW1lXCI6IFwiY29uZmlnXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJJZGVudGlmaWVyXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm9wdGlvbmFsXCI6IG51bGwsXG4gICAgICAgICAgXCJwcm9wZXJ0eVwiOiB7XG4gICAgICAgICAgICBcIm5hbWVcIjogXCJiXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJJZGVudGlmaWVyXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInR5cGVcIjogXCJNZW1iZXJFeHByZXNzaW9uXCIsXG4gICAgICAgIH0sXG4gICAgICAgIFwiY1wiOiB7XG4gICAgICAgICAgXCJkXCI6IFwiZFwiLFxuICAgICAgICB9LFxuICAgICAgICBcImRcIjogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiZVwiOiBcImVcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBcInRpbWVvdXRzXCI6IHtcbiAgICAgICAgICBcInJlYWRcIjogXCIyMG1cIixcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICBgKTtcbiAgfSk7XG5cbiAgaXQoXCJpZ25vcmVzIG1pc3NpbmcgdW5yZXF1aXJlZCBzZXQgYmxvY2sgdHlwZXNcIiwgKCkgPT4ge1xuICAgIGNvbnN0IHNjb3BlID0gZ2V0U2NvcGUoKTtcbiAgICBjb25zdCByZXN1bHQgPSBmaWxsV2l0aENvbmZpZ0FjY2Vzc29ycyhcbiAgICAgIHNjb3BlLFxuICAgICAge1xuICAgICAgICBhOiBcImFcIixcbiAgICAgICAgYjogXCJiXCIsXG4gICAgICAgIGM6IHtcbiAgICAgICAgICBkOiBcImRcIixcbiAgICAgICAgfSxcbiAgICAgICAgZDogW3sgZTogXCJlXCIgfV0sXG4gICAgICB9LFxuICAgICAgXCJhd3MuaW1hZ2VcIixcbiAgICApO1xuICAgIGV4cGVjdChzY29wZS50b3BMZXZlbENvbmZpZykudG9FcXVhbCh7fSk7XG4gICAgZXhwZWN0KHJlc3VsdCkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgIHtcbiAgICAgICAgXCJhXCI6IFwiYVwiLFxuICAgICAgICBcImJcIjogXCJiXCIsXG4gICAgICAgIFwiY1wiOiB7XG4gICAgICAgICAgXCJkXCI6IFwiZFwiLFxuICAgICAgICB9LFxuICAgICAgICBcImRcIjogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiZVwiOiBcImVcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfVxuICAgIGApO1xuICB9KTtcblxuICBpdChcImZpbGxzIHdpdGhpbiBhIHNpbmdsZSBibG9jayB0eXBlXCIsICgpID0+IHtcbiAgICBjb25zdCBzY29wZSA9IGdldFNjb3BlKCk7XG4gICAgY29uc3QgcmVzdWx0ID0gZmlsbFdpdGhDb25maWdBY2Nlc3NvcnMoXG4gICAgICBzY29wZSxcbiAgICAgIHtcbiAgICAgICAgYTogXCJhXCIsXG4gICAgICAgIGI6IFwiYlwiLFxuICAgICAgICBjOiB7fSxcbiAgICAgICAgZDogW3sgZTogXCJlXCIgfV0sXG4gICAgICB9LFxuICAgICAgXCJhd3MuaW1hZ2VcIixcbiAgICApO1xuICAgIGV4cGVjdChzY29wZS50b3BMZXZlbENvbmZpZykudG9FcXVhbCh7XG4gICAgICBkOiBcImF3cy5pbWFnZS5jLmRcIixcbiAgICB9KTtcbiAgICBleHBlY3QocmVzdWx0KS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAge1xuICAgICAgICBcImFcIjogXCJhXCIsXG4gICAgICAgIFwiYlwiOiBcImJcIixcbiAgICAgICAgXCJjXCI6IHtcbiAgICAgICAgICBcImRcIjoge1xuICAgICAgICAgICAgXCJjb21wdXRlZFwiOiBmYWxzZSxcbiAgICAgICAgICAgIFwib2JqZWN0XCI6IHtcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiY29uZmlnXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcIklkZW50aWZpZXJcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIm9wdGlvbmFsXCI6IG51bGwsXG4gICAgICAgICAgICBcInByb3BlcnR5XCI6IHtcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiZFwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJJZGVudGlmaWVyXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiTWVtYmVyRXhwcmVzc2lvblwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIFwiZFwiOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCJlXCI6IFwiZVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9XG4gICAgYCk7XG4gIH0pO1xuXG4gIGl0KFwiZmlsbHMgYW4gZW50aXJlIHNpbmdsZSBibG9jayB0eXBlXCIsICgpID0+IHtcbiAgICBjb25zdCBzY29wZSA9IGdldFNjb3BlKCk7XG4gICAgY29uc3QgcmVzdWx0ID0gZmlsbFdpdGhDb25maWdBY2Nlc3NvcnMoXG4gICAgICBzY29wZSxcbiAgICAgIHtcbiAgICAgICAgYTogXCJhXCIsXG4gICAgICAgIGI6IFwiYlwiLFxuICAgICAgICBkOiBbeyBlOiBcImVcIiB9XSxcbiAgICAgIH0sXG4gICAgICBcImF3cy5pbWFnZVwiLFxuICAgICk7XG4gICAgZXhwZWN0KHNjb3BlLnRvcExldmVsQ29uZmlnKS50b0VxdWFsKHtcbiAgICAgIGM6IFwiYXdzLmltYWdlLmNcIixcbiAgICB9KTtcbiAgICBleHBlY3QocmVzdWx0KS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAge1xuICAgICAgICBcImFcIjogXCJhXCIsXG4gICAgICAgIFwiYlwiOiBcImJcIixcbiAgICAgICAgXCJjXCI6IHtcbiAgICAgICAgICBcImNvbXB1dGVkXCI6IGZhbHNlLFxuICAgICAgICAgIFwib2JqZWN0XCI6IHtcbiAgICAgICAgICAgIFwibmFtZVwiOiBcImNvbmZpZ1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiSWRlbnRpZmllclwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJvcHRpb25hbFwiOiBudWxsLFxuICAgICAgICAgIFwicHJvcGVydHlcIjoge1xuICAgICAgICAgICAgXCJuYW1lXCI6IFwiY1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiSWRlbnRpZmllclwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiTWVtYmVyRXhwcmVzc2lvblwiLFxuICAgICAgICB9LFxuICAgICAgICBcImRcIjogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiZVwiOiBcImVcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfVxuICAgIGApO1xuICB9KTtcblxuICBpdChcImZpbGxzIHdpdGhpbiBhIGxpc3QgYmxvY2sgdHlwZVwiLCAoKSA9PiB7XG4gICAgY29uc3Qgc2NvcGUgPSBnZXRTY29wZSgpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGZpbGxXaXRoQ29uZmlnQWNjZXNzb3JzKFxuICAgICAgc2NvcGUsXG4gICAgICB7XG4gICAgICAgIGE6IFwiYVwiLFxuICAgICAgICBiOiBcImJcIixcbiAgICAgICAgYzogeyBkOiBcImRcIiB9LFxuICAgICAgICBkOiBbe31dLFxuICAgICAgfSxcbiAgICAgIFwiYXdzLmltYWdlXCIsXG4gICAgKTtcbiAgICBleHBlY3Qoc2NvcGUudG9wTGV2ZWxDb25maWcpLnRvRXF1YWwoe1xuICAgICAgZTogXCJhd3MuaW1hZ2UuZC5bXS5lXCIsXG4gICAgfSk7XG4gICAgZXhwZWN0KHJlc3VsdCkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgIHtcbiAgICAgICAgXCJhXCI6IFwiYVwiLFxuICAgICAgICBcImJcIjogXCJiXCIsXG4gICAgICAgIFwiY1wiOiB7XG4gICAgICAgICAgXCJkXCI6IFwiZFwiLFxuICAgICAgICB9LFxuICAgICAgICBcImRcIjogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiZVwiOiB7XG4gICAgICAgICAgICAgIFwiY29tcHV0ZWRcIjogZmFsc2UsXG4gICAgICAgICAgICAgIFwib2JqZWN0XCI6IHtcbiAgICAgICAgICAgICAgICBcIm5hbWVcIjogXCJjb25maWdcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJJZGVudGlmaWVyXCIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwib3B0aW9uYWxcIjogbnVsbCxcbiAgICAgICAgICAgICAgXCJwcm9wZXJ0eVwiOiB7XG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiZVwiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIklkZW50aWZpZXJcIixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiTWVtYmVyRXhwcmVzc2lvblwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfVxuICAgIGApO1xuICB9KTtcblxuICBpdChcImZpbGxzIGFuIGVudGlyZSBsaXN0IGJsb2NrIHR5cGVcIiwgKCkgPT4ge1xuICAgIGNvbnN0IHNjb3BlID0gZ2V0U2NvcGUoKTtcbiAgICBjb25zdCByZXN1bHQgPSBmaWxsV2l0aENvbmZpZ0FjY2Vzc29ycyhcbiAgICAgIHNjb3BlLFxuICAgICAge1xuICAgICAgICBhOiBcImFcIixcbiAgICAgICAgYjogXCJiXCIsXG4gICAgICAgIGM6IHsgZDogXCJkXCIgfSxcbiAgICAgIH0sXG4gICAgICBcImF3cy5pbWFnZVwiLFxuICAgICk7XG4gICAgZXhwZWN0KHNjb3BlLnRvcExldmVsQ29uZmlnKS50b0VxdWFsKHtcbiAgICAgIGQ6IFwiYXdzLmltYWdlLmRcIixcbiAgICB9KTtcbiAgICBleHBlY3QocmVzdWx0KS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAge1xuICAgICAgICBcImFcIjogXCJhXCIsXG4gICAgICAgIFwiYlwiOiBcImJcIixcbiAgICAgICAgXCJjXCI6IHtcbiAgICAgICAgICBcImRcIjogXCJkXCIsXG4gICAgICAgIH0sXG4gICAgICAgIFwiZFwiOiB7XG4gICAgICAgICAgXCJjb21wdXRlZFwiOiBmYWxzZSxcbiAgICAgICAgICBcIm9iamVjdFwiOiB7XG4gICAgICAgICAgICBcIm5hbWVcIjogXCJjb25maWdcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIklkZW50aWZpZXJcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwib3B0aW9uYWxcIjogbnVsbCxcbiAgICAgICAgICBcInByb3BlcnR5XCI6IHtcbiAgICAgICAgICAgIFwibmFtZVwiOiBcImRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIklkZW50aWZpZXJcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidHlwZVwiOiBcIk1lbWJlckV4cHJlc3Npb25cIixcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICBgKTtcbiAgfSk7XG5cbiAgaXQoXCJjYW4gaGFuZGxlIG11bHRpcGxlIGZpbGxzIHdpdGggdGhlIHNhbWUgbmFtZVwiLCAoKSA9PiB7XG4gICAgY29uc3Qgc2NvcGUgPSBnZXRTY29wZSgpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGZpbGxXaXRoQ29uZmlnQWNjZXNzb3JzKFxuICAgICAgc2NvcGUsXG4gICAgICB7XG4gICAgICAgIGE6IFwiYVwiLFxuICAgICAgICBiOiBcImJcIixcbiAgICAgICAgYzoge30sXG4gICAgICB9LFxuICAgICAgXCJhd3MuaW1hZ2VcIixcbiAgICApO1xuICAgIGV4cGVjdChzY29wZS50b3BMZXZlbENvbmZpZykudG9FcXVhbCh7XG4gICAgICBkOiBcImF3cy5pbWFnZS5jLmRcIixcbiAgICAgIGQxOiBcImF3cy5pbWFnZS5kXCIsXG4gICAgfSk7XG4gICAgZXhwZWN0KHJlc3VsdCkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgIHtcbiAgICAgICAgXCJhXCI6IFwiYVwiLFxuICAgICAgICBcImJcIjogXCJiXCIsXG4gICAgICAgIFwiY1wiOiB7XG4gICAgICAgICAgXCJkXCI6IHtcbiAgICAgICAgICAgIFwiY29tcHV0ZWRcIjogZmFsc2UsXG4gICAgICAgICAgICBcIm9iamVjdFwiOiB7XG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcImNvbmZpZ1wiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJJZGVudGlmaWVyXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJvcHRpb25hbFwiOiBudWxsLFxuICAgICAgICAgICAgXCJwcm9wZXJ0eVwiOiB7XG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcImRcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiSWRlbnRpZmllclwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIk1lbWJlckV4cHJlc3Npb25cIixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBcImRcIjoge1xuICAgICAgICAgIFwiY29tcHV0ZWRcIjogZmFsc2UsXG4gICAgICAgICAgXCJvYmplY3RcIjoge1xuICAgICAgICAgICAgXCJuYW1lXCI6IFwiY29uZmlnXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJJZGVudGlmaWVyXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm9wdGlvbmFsXCI6IG51bGwsXG4gICAgICAgICAgXCJwcm9wZXJ0eVwiOiB7XG4gICAgICAgICAgICBcIm5hbWVcIjogXCJkMVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiSWRlbnRpZmllclwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiTWVtYmVyRXhwcmVzc2lvblwiLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIGApO1xuICB9KTtcblxuICBpdChcImZpbGxzIGxpc3RzIHdpdGggbWluX2l0ZW1zID4gMFwiLCAoKSA9PiB7XG4gICAgY29uc3Qgc2NvcGUgPSBnZXRTY29wZSgpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGZpbGxXaXRoQ29uZmlnQWNjZXNzb3JzKFxuICAgICAgc2NvcGUsXG4gICAgICB7XG4gICAgICAgIGE6IFwiYVwiLFxuICAgICAgICBiOiBcImJcIixcbiAgICAgICAgYzogeyBkOiBcImRcIiB9LFxuICAgICAgICBkOiBbXSxcbiAgICAgIH0sXG4gICAgICBcImF3cy5pbWFnZVwiLFxuICAgICk7XG4gICAgZXhwZWN0KHNjb3BlLnRvcExldmVsQ29uZmlnKS50b0VxdWFsKHtcbiAgICAgIGQ6IFwiYXdzLmltYWdlLmRcIixcbiAgICB9KTtcbiAgICBleHBlY3QocmVzdWx0KS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAge1xuICAgICAgICBcImFcIjogXCJhXCIsXG4gICAgICAgIFwiYlwiOiBcImJcIixcbiAgICAgICAgXCJjXCI6IHtcbiAgICAgICAgICBcImRcIjogXCJkXCIsXG4gICAgICAgIH0sXG4gICAgICAgIFwiZFwiOiB7XG4gICAgICAgICAgXCJjb21wdXRlZFwiOiBmYWxzZSxcbiAgICAgICAgICBcIm9iamVjdFwiOiB7XG4gICAgICAgICAgICBcIm5hbWVcIjogXCJjb25maWdcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIklkZW50aWZpZXJcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwib3B0aW9uYWxcIjogbnVsbCxcbiAgICAgICAgICBcInByb3BlcnR5XCI6IHtcbiAgICAgICAgICAgIFwibmFtZVwiOiBcImRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIklkZW50aWZpZXJcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidHlwZVwiOiBcIk1lbWJlckV4cHJlc3Npb25cIixcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICBgKTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=terraformSchema.test.d.ts.map