@unstablestudios/terraform 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/README.md +312 -0
  2. package/dist/config/backend.d.ts +118 -0
  3. package/dist/config/backend.d.ts.map +1 -0
  4. package/dist/config/backend.js +153 -0
  5. package/dist/config/backend.js.map +1 -0
  6. package/dist/config/index.d.ts +6 -0
  7. package/dist/config/index.d.ts.map +1 -0
  8. package/dist/config/index.js +4 -0
  9. package/dist/config/index.js.map +1 -0
  10. package/dist/config/terraform.d.ts +157 -0
  11. package/dist/config/terraform.d.ts.map +1 -0
  12. package/dist/config/terraform.js +211 -0
  13. package/dist/config/terraform.js.map +1 -0
  14. package/dist/config/terraform.test.d.ts +2 -0
  15. package/dist/config/terraform.test.d.ts.map +1 -0
  16. package/dist/config/terraform.test.js +240 -0
  17. package/dist/config/terraform.test.js.map +1 -0
  18. package/dist/config/tfvars.d.ts +90 -0
  19. package/dist/config/tfvars.d.ts.map +1 -0
  20. package/dist/config/tfvars.js +133 -0
  21. package/dist/config/tfvars.js.map +1 -0
  22. package/dist/config/tfvars.test.d.ts +2 -0
  23. package/dist/config/tfvars.test.d.ts.map +1 -0
  24. package/dist/config/tfvars.test.js +187 -0
  25. package/dist/config/tfvars.test.js.map +1 -0
  26. package/dist/hcl/generator.d.ts +59 -0
  27. package/dist/hcl/generator.d.ts.map +1 -0
  28. package/dist/hcl/generator.js +401 -0
  29. package/dist/hcl/generator.js.map +1 -0
  30. package/dist/hcl/generator.test.d.ts +2 -0
  31. package/dist/hcl/generator.test.d.ts.map +1 -0
  32. package/dist/hcl/generator.test.js +280 -0
  33. package/dist/hcl/generator.test.js.map +1 -0
  34. package/dist/hcl/index.d.ts +5 -0
  35. package/dist/hcl/index.d.ts.map +1 -0
  36. package/dist/hcl/index.js +3 -0
  37. package/dist/hcl/index.js.map +1 -0
  38. package/dist/hcl/writer.d.ts +35 -0
  39. package/dist/hcl/writer.d.ts.map +1 -0
  40. package/dist/hcl/writer.js +154 -0
  41. package/dist/hcl/writer.js.map +1 -0
  42. package/dist/index.d.mts +970 -0
  43. package/dist/index.d.ts +5 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +9 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/index.mjs +1283 -0
  48. package/dist/modules/cloudflare/d1.d.ts +39 -0
  49. package/dist/modules/cloudflare/d1.d.ts.map +1 -0
  50. package/dist/modules/cloudflare/d1.js +55 -0
  51. package/dist/modules/cloudflare/d1.js.map +1 -0
  52. package/dist/modules/cloudflare/index.d.ts +43 -0
  53. package/dist/modules/cloudflare/index.d.ts.map +1 -0
  54. package/dist/modules/cloudflare/index.js +44 -0
  55. package/dist/modules/cloudflare/index.js.map +1 -0
  56. package/dist/modules/cloudflare/kv.d.ts +57 -0
  57. package/dist/modules/cloudflare/kv.d.ts.map +1 -0
  58. package/dist/modules/cloudflare/kv.js +75 -0
  59. package/dist/modules/cloudflare/kv.js.map +1 -0
  60. package/dist/modules/cloudflare/r2.d.ts +49 -0
  61. package/dist/modules/cloudflare/r2.d.ts.map +1 -0
  62. package/dist/modules/cloudflare/r2.js +70 -0
  63. package/dist/modules/cloudflare/r2.js.map +1 -0
  64. package/dist/modules/cloudflare/worker.d.ts +104 -0
  65. package/dist/modules/cloudflare/worker.d.ts.map +1 -0
  66. package/dist/modules/cloudflare/worker.js +128 -0
  67. package/dist/modules/cloudflare/worker.js.map +1 -0
  68. package/dist/modules/index.d.ts +4 -0
  69. package/dist/modules/index.d.ts.map +1 -0
  70. package/dist/modules/index.js +4 -0
  71. package/dist/modules/index.js.map +1 -0
  72. package/dist/modules/types.d.ts +97 -0
  73. package/dist/modules/types.d.ts.map +1 -0
  74. package/dist/modules/types.js +106 -0
  75. package/dist/modules/types.js.map +1 -0
  76. package/dist/modules/types.test.d.ts +2 -0
  77. package/dist/modules/types.test.d.ts.map +1 -0
  78. package/dist/modules/types.test.js +167 -0
  79. package/dist/modules/types.test.js.map +1 -0
  80. package/dist/types/config.d.ts +140 -0
  81. package/dist/types/config.d.ts.map +1 -0
  82. package/dist/types/config.js +16 -0
  83. package/dist/types/config.js.map +1 -0
  84. package/dist/types/config.test.d.ts +2 -0
  85. package/dist/types/config.test.d.ts.map +1 -0
  86. package/dist/types/config.test.js +36 -0
  87. package/dist/types/config.test.js.map +1 -0
  88. package/dist/types/index.d.ts +2 -0
  89. package/dist/types/index.d.ts.map +1 -0
  90. package/dist/types/index.js +2 -0
  91. package/dist/types/index.js.map +1 -0
  92. package/package.json +27 -0
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Tfvars file generator
3
+ */
4
+ export interface TfvarsConfig {
5
+ /** Variable values */
6
+ values: Record<string, unknown>;
7
+ /** Optional header comment */
8
+ header?: string;
9
+ }
10
+ /**
11
+ * Generate a tfvars file content
12
+ */
13
+ export declare function generateTfvars(config: TfvarsConfig): string;
14
+ /**
15
+ * Generate environment-specific tfvars
16
+ */
17
+ export declare function generateEnvTfvars(environment: string, values: Record<string, unknown>, options?: {
18
+ header?: boolean;
19
+ }): {
20
+ filename: string;
21
+ content: string;
22
+ };
23
+ /**
24
+ * Builder for tfvars files
25
+ */
26
+ export declare class TfvarsBuilder {
27
+ private values;
28
+ private header?;
29
+ /**
30
+ * Set header comment
31
+ */
32
+ withHeader(header: string): this;
33
+ /**
34
+ * Set a string variable
35
+ */
36
+ string(name: string, value: string): this;
37
+ /**
38
+ * Set a number variable
39
+ */
40
+ number(name: string, value: number): this;
41
+ /**
42
+ * Set a boolean variable
43
+ */
44
+ bool(name: string, value: boolean): this;
45
+ /**
46
+ * Set a list variable
47
+ */
48
+ list(name: string, value: unknown[]): this;
49
+ /**
50
+ * Set a map variable
51
+ */
52
+ map(name: string, value: Record<string, unknown>): this;
53
+ /**
54
+ * Set a variable of any type
55
+ */
56
+ set(name: string, value: unknown): this;
57
+ /**
58
+ * Set multiple variables at once
59
+ */
60
+ setAll(values: Record<string, unknown>): this;
61
+ /**
62
+ * Build the tfvars content
63
+ */
64
+ build(): string;
65
+ /**
66
+ * Get the values as an object
67
+ */
68
+ toObject(): Record<string, unknown>;
69
+ }
70
+ /**
71
+ * Create a new tfvars builder
72
+ */
73
+ export declare function tfvars(): TfvarsBuilder;
74
+ /**
75
+ * Merge multiple tfvars into one
76
+ */
77
+ export declare function mergeTfvars(...sources: Record<string, unknown>[]): Record<string, unknown>;
78
+ /**
79
+ * Create tfvars from environment variables
80
+ *
81
+ * @example
82
+ * ```ts
83
+ * const vars = tfvarsFromEnv(
84
+ * { cloudflare_account_id: 'CF_ACCOUNT_ID' },
85
+ * process.env
86
+ * );
87
+ * ```
88
+ */
89
+ export declare function tfvarsFromEnv(mapping: Record<string, string>, env: Record<string, string | undefined>): Record<string, unknown>;
90
+ //# sourceMappingURL=tfvars.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tfvars.d.ts","sourceRoot":"","sources":["../../src/config/tfvars.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAQ3D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CASvC;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,MAAM,CAAC,CAAS;IAExB;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKhC;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzC;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzC;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAKxC;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI;IAK1C;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAKvD;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAKvC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAK7C;;OAEG;IACH,KAAK,IAAI,MAAM;IAIf;;OAEG;IACH,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAGpC;AAED;;GAEG;AACH,wBAAgB,MAAM,IAAI,aAAa,CAEtC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE1F;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GACtC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWzB"}
@@ -0,0 +1,133 @@
1
+ import { formatForTfvars } from '../hcl/writer';
2
+ /**
3
+ * Generate a tfvars file content
4
+ */
5
+ export function generateTfvars(config) {
6
+ const content = formatForTfvars(config.values);
7
+ if (config.header) {
8
+ return `${config.header}\n\n${content}`;
9
+ }
10
+ return content;
11
+ }
12
+ /**
13
+ * Generate environment-specific tfvars
14
+ */
15
+ export function generateEnvTfvars(environment, values, options = {}) {
16
+ const header = options.header !== false
17
+ ? `# ${environment} environment configuration`
18
+ : undefined;
19
+ return {
20
+ filename: `${environment}.tfvars`,
21
+ content: generateTfvars({ values, header }),
22
+ };
23
+ }
24
+ /**
25
+ * Builder for tfvars files
26
+ */
27
+ export class TfvarsBuilder {
28
+ constructor() {
29
+ this.values = {};
30
+ }
31
+ /**
32
+ * Set header comment
33
+ */
34
+ withHeader(header) {
35
+ this.header = header;
36
+ return this;
37
+ }
38
+ /**
39
+ * Set a string variable
40
+ */
41
+ string(name, value) {
42
+ this.values[name] = value;
43
+ return this;
44
+ }
45
+ /**
46
+ * Set a number variable
47
+ */
48
+ number(name, value) {
49
+ this.values[name] = value;
50
+ return this;
51
+ }
52
+ /**
53
+ * Set a boolean variable
54
+ */
55
+ bool(name, value) {
56
+ this.values[name] = value;
57
+ return this;
58
+ }
59
+ /**
60
+ * Set a list variable
61
+ */
62
+ list(name, value) {
63
+ this.values[name] = value;
64
+ return this;
65
+ }
66
+ /**
67
+ * Set a map variable
68
+ */
69
+ map(name, value) {
70
+ this.values[name] = value;
71
+ return this;
72
+ }
73
+ /**
74
+ * Set a variable of any type
75
+ */
76
+ set(name, value) {
77
+ this.values[name] = value;
78
+ return this;
79
+ }
80
+ /**
81
+ * Set multiple variables at once
82
+ */
83
+ setAll(values) {
84
+ Object.assign(this.values, values);
85
+ return this;
86
+ }
87
+ /**
88
+ * Build the tfvars content
89
+ */
90
+ build() {
91
+ return generateTfvars({ values: this.values, header: this.header });
92
+ }
93
+ /**
94
+ * Get the values as an object
95
+ */
96
+ toObject() {
97
+ return { ...this.values };
98
+ }
99
+ }
100
+ /**
101
+ * Create a new tfvars builder
102
+ */
103
+ export function tfvars() {
104
+ return new TfvarsBuilder();
105
+ }
106
+ /**
107
+ * Merge multiple tfvars into one
108
+ */
109
+ export function mergeTfvars(...sources) {
110
+ return Object.assign({}, ...sources);
111
+ }
112
+ /**
113
+ * Create tfvars from environment variables
114
+ *
115
+ * @example
116
+ * ```ts
117
+ * const vars = tfvarsFromEnv(
118
+ * { cloudflare_account_id: 'CF_ACCOUNT_ID' },
119
+ * process.env
120
+ * );
121
+ * ```
122
+ */
123
+ export function tfvarsFromEnv(mapping, env) {
124
+ const values = {};
125
+ for (const [tfvarName, envName] of Object.entries(mapping)) {
126
+ const value = env[envName];
127
+ if (value !== undefined) {
128
+ values[tfvarName] = value;
129
+ }
130
+ }
131
+ return values;
132
+ }
133
+ //# sourceMappingURL=tfvars.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tfvars.js","sourceRoot":"","sources":["../../src/config/tfvars.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAYhD;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAoB;IACjD,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE/C,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,GAAG,MAAM,CAAC,MAAM,OAAO,OAAO,EAAE,CAAC;IAC1C,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,WAAmB,EACnB,MAA+B,EAC/B,UAAgC,EAAE;IAElC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,KAAK;QACrC,CAAC,CAAC,KAAK,WAAW,4BAA4B;QAC9C,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO;QACL,QAAQ,EAAE,GAAG,WAAW,SAAS;QACjC,OAAO,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,aAAa;IAA1B;QACU,WAAM,GAA4B,EAAE,CAAC;IAgF/C,CAAC;IA7EC;;OAEG;IACH,UAAU,CAAC,MAAc;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAY,EAAE,KAAa;QAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAY,EAAE,KAAa;QAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,IAAY,EAAE,KAAc;QAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,IAAY,EAAE,KAAgB;QACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,IAAY,EAAE,KAA8B;QAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,IAAY,EAAE,KAAc;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAA+B;QACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,cAAc,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,MAAM;IACpB,OAAO,IAAI,aAAa,EAAE,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,GAAG,OAAkC;IAC/D,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAC3B,OAA+B,EAC/B,GAAuC;IAEvC,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3D,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tfvars.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tfvars.test.d.ts","sourceRoot":"","sources":["../../src/config/tfvars.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,187 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { generateTfvars, generateEnvTfvars, tfvars, TfvarsBuilder, mergeTfvars, tfvarsFromEnv, } from './tfvars';
3
+ describe('generateTfvars', () => {
4
+ it('generates tfvars content from values', () => {
5
+ const result = generateTfvars({
6
+ values: {
7
+ region: 'us-east-1',
8
+ count: 3,
9
+ enabled: true,
10
+ },
11
+ });
12
+ expect(result).toContain('region = "us-east-1"');
13
+ expect(result).toContain('count = 3');
14
+ expect(result).toContain('enabled = true');
15
+ });
16
+ it('includes header when provided', () => {
17
+ const result = generateTfvars({
18
+ values: { foo: 'bar' },
19
+ header: '# Production config',
20
+ });
21
+ expect(result.startsWith('# Production config')).toBe(true);
22
+ expect(result).toContain('foo = "bar"');
23
+ });
24
+ it('handles arrays', () => {
25
+ const result = generateTfvars({
26
+ values: {
27
+ tags: ['web', 'api', 'backend'],
28
+ },
29
+ });
30
+ expect(result).toContain('tags = [');
31
+ expect(result).toContain('"web"');
32
+ expect(result).toContain('"api"');
33
+ });
34
+ it('handles objects', () => {
35
+ const result = generateTfvars({
36
+ values: {
37
+ config: { key: 'value', nested: true },
38
+ },
39
+ });
40
+ expect(result).toContain('config = {');
41
+ expect(result).toContain('key = "value"');
42
+ expect(result).toContain('nested = true');
43
+ });
44
+ it('handles null values', () => {
45
+ const result = generateTfvars({
46
+ values: { optional: null },
47
+ });
48
+ expect(result).toContain('optional = null');
49
+ });
50
+ });
51
+ describe('generateEnvTfvars', () => {
52
+ it('generates environment-specific tfvars', () => {
53
+ const result = generateEnvTfvars('production', {
54
+ region: 'us-east-1',
55
+ instance_type: 't3.large',
56
+ });
57
+ expect(result.filename).toBe('production.tfvars');
58
+ expect(result.content).toContain('# production environment');
59
+ expect(result.content).toContain('region = "us-east-1"');
60
+ });
61
+ it('excludes header when disabled', () => {
62
+ const result = generateEnvTfvars('dev', { region: 'us-west-2' }, { header: false });
63
+ expect(result.content).not.toContain('# dev environment');
64
+ expect(result.content).toContain('region = "us-west-2"');
65
+ });
66
+ });
67
+ describe('TfvarsBuilder', () => {
68
+ it('creates an empty builder', () => {
69
+ const builder = new TfvarsBuilder();
70
+ expect(builder.toObject()).toEqual({});
71
+ });
72
+ it('sets string values', () => {
73
+ const builder = tfvars().string('name', 'test');
74
+ expect(builder.toObject()).toEqual({ name: 'test' });
75
+ });
76
+ it('sets number values', () => {
77
+ const builder = tfvars().number('count', 42);
78
+ expect(builder.toObject()).toEqual({ count: 42 });
79
+ });
80
+ it('sets boolean values', () => {
81
+ const builder = tfvars().bool('enabled', true);
82
+ expect(builder.toObject()).toEqual({ enabled: true });
83
+ });
84
+ it('sets list values', () => {
85
+ const builder = tfvars().list('tags', ['a', 'b', 'c']);
86
+ expect(builder.toObject()).toEqual({ tags: ['a', 'b', 'c'] });
87
+ });
88
+ it('sets map values', () => {
89
+ const builder = tfvars().map('config', { key: 'value' });
90
+ expect(builder.toObject()).toEqual({ config: { key: 'value' } });
91
+ });
92
+ it('sets arbitrary values', () => {
93
+ const builder = tfvars().set('custom', { nested: { deep: true } });
94
+ expect(builder.toObject()).toEqual({ custom: { nested: { deep: true } } });
95
+ });
96
+ it('sets multiple values at once', () => {
97
+ const builder = tfvars().setAll({
98
+ region: 'us-east-1',
99
+ count: 5,
100
+ });
101
+ expect(builder.toObject()).toEqual({
102
+ region: 'us-east-1',
103
+ count: 5,
104
+ });
105
+ });
106
+ it('chains methods fluently', () => {
107
+ const builder = tfvars()
108
+ .string('region', 'us-east-1')
109
+ .number('count', 3)
110
+ .bool('enabled', true)
111
+ .list('tags', ['web']);
112
+ expect(builder.toObject()).toEqual({
113
+ region: 'us-east-1',
114
+ count: 3,
115
+ enabled: true,
116
+ tags: ['web'],
117
+ });
118
+ });
119
+ it('sets header', () => {
120
+ const result = tfvars()
121
+ .withHeader('# Custom header')
122
+ .string('foo', 'bar')
123
+ .build();
124
+ expect(result.startsWith('# Custom header')).toBe(true);
125
+ });
126
+ it('builds tfvars content', () => {
127
+ const result = tfvars()
128
+ .string('region', 'us-east-1')
129
+ .number('port', 8080)
130
+ .build();
131
+ expect(result).toContain('region = "us-east-1"');
132
+ expect(result).toContain('port = 8080');
133
+ });
134
+ });
135
+ describe('mergeTfvars', () => {
136
+ it('merges multiple tfvars objects', () => {
137
+ const base = { region: 'us-east-1', count: 1 };
138
+ const override = { count: 5, enabled: true };
139
+ const result = mergeTfvars(base, override);
140
+ expect(result).toEqual({
141
+ region: 'us-east-1',
142
+ count: 5,
143
+ enabled: true,
144
+ });
145
+ });
146
+ it('handles empty objects', () => {
147
+ const result = mergeTfvars({}, { foo: 'bar' }, {});
148
+ expect(result).toEqual({ foo: 'bar' });
149
+ });
150
+ it('merges in order (later wins)', () => {
151
+ const result = mergeTfvars({ a: 1, b: 2 }, { b: 20, c: 3 }, { c: 30 });
152
+ expect(result).toEqual({ a: 1, b: 20, c: 30 });
153
+ });
154
+ });
155
+ describe('tfvarsFromEnv', () => {
156
+ it('creates tfvars from environment mapping', () => {
157
+ const env = {
158
+ TF_VAR_REGION: 'us-east-1',
159
+ TF_VAR_COUNT: '5',
160
+ OTHER_VAR: 'ignored',
161
+ };
162
+ const result = tfvarsFromEnv({
163
+ region: 'TF_VAR_REGION',
164
+ count: 'TF_VAR_COUNT',
165
+ }, env);
166
+ expect(result).toEqual({
167
+ region: 'us-east-1',
168
+ count: '5',
169
+ });
170
+ });
171
+ it('skips undefined environment variables', () => {
172
+ const env = {
173
+ DEFINED: 'value',
174
+ };
175
+ const result = tfvarsFromEnv({
176
+ defined: 'DEFINED',
177
+ missing: 'MISSING_VAR',
178
+ }, env);
179
+ expect(result).toEqual({ defined: 'value' });
180
+ expect(result).not.toHaveProperty('missing');
181
+ });
182
+ it('handles empty mapping', () => {
183
+ const result = tfvarsFromEnv({}, { ANY: 'value' });
184
+ expect(result).toEqual({});
185
+ });
186
+ });
187
+ //# sourceMappingURL=tfvars.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tfvars.test.js","sourceRoot":"","sources":["../../src/config/tfvars.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,MAAM,EACN,aAAa,EACb,WAAW,EACX,aAAa,GACd,MAAM,UAAU,CAAC;AAElB,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,MAAM,GAAG,cAAc,CAAC;YAC5B,MAAM,EAAE;gBACN,MAAM,EAAE,WAAW;gBACnB,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,MAAM,GAAG,cAAc,CAAC;YAC5B,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE;YACtB,MAAM,EAAE,qBAAqB;SAC9B,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACxB,MAAM,MAAM,GAAG,cAAc,CAAC;YAC5B,MAAM,EAAE;gBACN,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC;aAChC;SACF,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACzB,MAAM,MAAM,GAAG,cAAc,CAAC;YAC5B,MAAM,EAAE;gBACN,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;aACvC;SACF,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC7B,MAAM,MAAM,GAAG,cAAc,CAAC;YAC5B,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC3B,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,MAAM,GAAG,iBAAiB,CAAC,YAAY,EAAE;YAC7C,MAAM,EAAE,WAAW;YACnB,aAAa,EAAE,UAAU;SAC1B,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACpF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;QACpC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC7B,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC/C,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC1B,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACzB,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QACzD,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC;YAC9B,MAAM,EAAE,WAAW;YACnB,KAAK,EAAE,CAAC;SACT,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC;YACjC,MAAM,EAAE,WAAW;YACnB,KAAK,EAAE,CAAC;SACT,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,OAAO,GAAG,MAAM,EAAE;aACrB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC;aAC7B,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;aAClB,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;aACrB,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACzB,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC;YACjC,MAAM,EAAE,WAAW;YACnB,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,CAAC,KAAK,CAAC;SACd,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QACrB,MAAM,MAAM,GAAG,MAAM,EAAE;aACpB,UAAU,CAAC,iBAAiB,CAAC;aAC7B,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC;aACpB,KAAK,EAAE,CAAC;QACX,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,MAAM,GAAG,MAAM,EAAE;aACpB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC;aAC7B,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;aACpB,KAAK,EAAE,CAAC;QACX,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,MAAM,EAAE,WAAW;YACnB,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,MAAM,GAAG,WAAW,CACxB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EACd,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EACf,EAAE,CAAC,EAAE,EAAE,EAAE,CACV,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,GAAG,GAAG;YACV,aAAa,EAAE,WAAW;YAC1B,YAAY,EAAE,GAAG;YACjB,SAAS,EAAE,SAAS;SACrB,CAAC;QACF,MAAM,MAAM,GAAG,aAAa,CAC1B;YACE,MAAM,EAAE,eAAe;YACvB,KAAK,EAAE,cAAc;SACtB,EACD,GAAG,CACJ,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,MAAM,EAAE,WAAW;YACnB,KAAK,EAAE,GAAG;SACX,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,GAAG,GAAG;YACV,OAAO,EAAE,OAAO;SACjB,CAAC;QACF,MAAM,MAAM,GAAG,aAAa,CAC1B;YACE,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,aAAa;SACvB,EACD,GAAG,CACJ,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,MAAM,GAAG,aAAa,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,59 @@
1
+ import type { HclValue, TerraformBlock, VariableConfig, OutputConfig, ProviderConfig, ResourceConfig, DataSourceConfig, ModuleConfig, TerraformConfig, BackendConfig, RequiredProvider } from '../types/config';
2
+ /**
3
+ * Options for HCL generation
4
+ */
5
+ export interface HclOptions {
6
+ /** Indentation string (default: 2 spaces) */
7
+ indent?: string;
8
+ /** Whether to include empty values (default: false) */
9
+ includeEmpty?: boolean;
10
+ }
11
+ /**
12
+ * Convert a value to HCL string representation
13
+ */
14
+ export declare function toHcl(value: HclValue, options?: HclOptions): string;
15
+ /**
16
+ * Format a block with labels
17
+ */
18
+ export declare function formatBlock(block: TerraformBlock, options?: HclOptions): string;
19
+ /**
20
+ * Generate variable block
21
+ */
22
+ export declare function generateVariable(name: string, config: VariableConfig, opts?: HclOptions): string;
23
+ /**
24
+ * Generate output block
25
+ */
26
+ export declare function generateOutput(name: string, config: OutputConfig, opts?: HclOptions): string;
27
+ /**
28
+ * Generate provider block
29
+ */
30
+ export declare function generateProvider(config: ProviderConfig, opts?: HclOptions): string;
31
+ /**
32
+ * Generate resource block
33
+ */
34
+ export declare function generateResource(config: ResourceConfig, opts?: HclOptions): string;
35
+ /**
36
+ * Generate data source block
37
+ */
38
+ export declare function generateDataSource(config: DataSourceConfig, opts?: HclOptions): string;
39
+ /**
40
+ * Generate module block
41
+ */
42
+ export declare function generateModule(config: ModuleConfig, opts?: HclOptions): string;
43
+ /**
44
+ * Generate locals block
45
+ */
46
+ export declare function generateLocals(locals: Record<string, HclValue>, opts?: HclOptions): string;
47
+ /**
48
+ * Generate terraform block (required_version, required_providers, backend)
49
+ */
50
+ export declare function generateTerraformBlock(config: {
51
+ required_version?: string;
52
+ required_providers?: Record<string, RequiredProvider>;
53
+ backend?: BackendConfig;
54
+ }, opts?: HclOptions): string;
55
+ /**
56
+ * Generate complete Terraform configuration
57
+ */
58
+ export declare function generateTerraformConfig(config: TerraformConfig, opts?: HclOptions): string;
59
+ //# sourceMappingURL=generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/hcl/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,cAAc,EACd,YAAY,EACZ,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,aAAa,EACb,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAGzB;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAOD;;GAEG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,GAAE,UAAe,GAAG,MAAM,CAGvE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,GAAE,UAAe,GAAG,MAAM,CAanF;AA6ID;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,GAAE,UAAe,GAAG,MAAM,CA4BpG;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,GAAE,UAAe,GAAG,MAAM,CAkBhG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,GAAE,UAAe,GAAG,MAAM,CAWtF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,GAAE,UAAe,GAAG,MAAM,CA2CtF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,GAAE,UAAe,GAAG,MAAM,CAiB1F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,GAAE,UAAe,GAAG,MAAM,CA2BlF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,IAAI,GAAE,UAAe,GAAG,MAAM,CAQ9F;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE;IACN,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACtD,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB,EACD,IAAI,GAAE,UAAe,GACpB,MAAM,CAwCR;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,GAAE,UAAe,GAAG,MAAM,CAwD9F"}