@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,401 @@
1
+ import { isHclExpression } from '../types/config';
2
+ const DEFAULT_OPTIONS = {
3
+ indent: ' ',
4
+ includeEmpty: false,
5
+ };
6
+ /**
7
+ * Convert a value to HCL string representation
8
+ */
9
+ export function toHcl(value, options = {}) {
10
+ const opts = { ...DEFAULT_OPTIONS, ...options };
11
+ return formatValue(value, 0, opts);
12
+ }
13
+ /**
14
+ * Format a block with labels
15
+ */
16
+ export function formatBlock(block, options = {}) {
17
+ const opts = { ...DEFAULT_OPTIONS, ...options };
18
+ const { type, labels, body, nestedBlocks } = block;
19
+ const labelStr = labels.map((l) => `"${l}"`).join(' ');
20
+ const header = labelStr ? `${type} ${labelStr}` : type;
21
+ const bodyLines = formatBody(body, 1, opts);
22
+ const nestedLines = nestedBlocks?.map((nb) => formatNestedBlock(nb, 1, opts)).join('\n') ?? '';
23
+ const content = [bodyLines, nestedLines].filter(Boolean).join('\n');
24
+ return `${header} {\n${content}\n}`;
25
+ }
26
+ /**
27
+ * Format a nested block (without type prefix)
28
+ */
29
+ function formatNestedBlock(block, depth, opts) {
30
+ const indent = opts.indent.repeat(depth);
31
+ const { type, labels, body, nestedBlocks } = block;
32
+ const labelStr = labels.map((l) => `"${l}"`).join(' ');
33
+ const header = labelStr ? `${type} ${labelStr}` : type;
34
+ const bodyLines = formatBody(body, depth + 1, opts);
35
+ const nestedLines = nestedBlocks?.map((nb) => formatNestedBlock(nb, depth + 1, opts)).join('\n') ?? '';
36
+ const content = [bodyLines, nestedLines].filter(Boolean).join('\n');
37
+ return `${indent}${header} {\n${content}\n${indent}}`;
38
+ }
39
+ /**
40
+ * Format an object body as HCL assignments
41
+ */
42
+ function formatBody(obj, depth, opts) {
43
+ const indent = opts.indent.repeat(depth);
44
+ const lines = [];
45
+ for (const [key, value] of Object.entries(obj)) {
46
+ if (!opts.includeEmpty && (value === null || value === undefined)) {
47
+ continue;
48
+ }
49
+ const formattedValue = formatValue(value, depth, opts);
50
+ lines.push(`${indent}${key} = ${formattedValue}`);
51
+ }
52
+ return lines.join('\n');
53
+ }
54
+ /**
55
+ * Format a single HCL value
56
+ */
57
+ function formatValue(value, depth, opts) {
58
+ if (value === null || value === undefined) {
59
+ return 'null';
60
+ }
61
+ if (isHclExpression(value)) {
62
+ return value.value;
63
+ }
64
+ if (typeof value === 'string') {
65
+ // Check for multiline strings
66
+ if (value.includes('\n')) {
67
+ return formatHeredoc(value);
68
+ }
69
+ return `"${escapeString(value)}"`;
70
+ }
71
+ if (typeof value === 'number') {
72
+ return value.toString();
73
+ }
74
+ if (typeof value === 'boolean') {
75
+ return value ? 'true' : 'false';
76
+ }
77
+ if (Array.isArray(value)) {
78
+ return formatArray(value, depth, opts);
79
+ }
80
+ if (typeof value === 'object') {
81
+ return formatObject(value, depth, opts);
82
+ }
83
+ return String(value);
84
+ }
85
+ /**
86
+ * Format an array as HCL
87
+ */
88
+ function formatArray(arr, depth, opts) {
89
+ if (arr.length === 0) {
90
+ return '[]';
91
+ }
92
+ // Simple arrays on one line
93
+ const allSimple = arr.every((v) => typeof v === 'string' || typeof v === 'number' || typeof v === 'boolean');
94
+ if (allSimple && arr.length <= 5) {
95
+ const items = arr.map((v) => formatValue(v, depth, opts));
96
+ return `[${items.join(', ')}]`;
97
+ }
98
+ // Complex arrays with newlines
99
+ const indent = opts.indent.repeat(depth + 1);
100
+ const closeIndent = opts.indent.repeat(depth);
101
+ const items = arr.map((v) => `${indent}${formatValue(v, depth + 1, opts)}`);
102
+ return `[\n${items.join(',\n')}\n${closeIndent}]`;
103
+ }
104
+ /**
105
+ * Format an object as HCL
106
+ */
107
+ function formatObject(obj, depth, opts) {
108
+ const entries = Object.entries(obj).filter(([, v]) => opts.includeEmpty || (v !== null && v !== undefined));
109
+ if (entries.length === 0) {
110
+ return '{}';
111
+ }
112
+ const indent = opts.indent.repeat(depth + 1);
113
+ const closeIndent = opts.indent.repeat(depth);
114
+ const items = entries.map(([k, v]) => `${indent}${k} = ${formatValue(v, depth + 1, opts)}`);
115
+ return `{\n${items.join('\n')}\n${closeIndent}}`;
116
+ }
117
+ /**
118
+ * Format a multiline string as heredoc
119
+ */
120
+ function formatHeredoc(value) {
121
+ return `<<-EOF\n${value}\nEOF`;
122
+ }
123
+ /**
124
+ * Escape special characters in strings
125
+ */
126
+ function escapeString(str) {
127
+ return str
128
+ .replace(/\\/g, '\\\\')
129
+ .replace(/"/g, '\\"')
130
+ .replace(/\n/g, '\\n')
131
+ .replace(/\r/g, '\\r')
132
+ .replace(/\t/g, '\\t');
133
+ }
134
+ /**
135
+ * Generate variable block
136
+ */
137
+ export function generateVariable(name, config, opts = {}) {
138
+ const body = {};
139
+ if (config.type)
140
+ body.type = { __hclExpression: true, value: config.type };
141
+ if (config.description)
142
+ body.description = config.description;
143
+ if (config.default !== undefined)
144
+ body.default = config.default;
145
+ if (config.sensitive !== undefined)
146
+ body.sensitive = config.sensitive;
147
+ if (config.nullable !== undefined)
148
+ body.nullable = config.nullable;
149
+ const block = {
150
+ type: 'variable',
151
+ labels: [name],
152
+ body,
153
+ nestedBlocks: config.validation
154
+ ? [
155
+ {
156
+ type: 'validation',
157
+ labels: [],
158
+ body: {
159
+ condition: config.validation.condition,
160
+ error_message: config.validation.error_message,
161
+ },
162
+ },
163
+ ]
164
+ : undefined,
165
+ };
166
+ return formatBlock(block, opts);
167
+ }
168
+ /**
169
+ * Generate output block
170
+ */
171
+ export function generateOutput(name, config, opts = {}) {
172
+ const body = {
173
+ value: config.value,
174
+ };
175
+ if (config.description)
176
+ body.description = config.description;
177
+ if (config.sensitive !== undefined)
178
+ body.sensitive = config.sensitive;
179
+ if (config.depends_on) {
180
+ body.depends_on = { __hclExpression: true, value: `[${config.depends_on.map((d) => d.value).join(', ')}]` };
181
+ }
182
+ const block = {
183
+ type: 'output',
184
+ labels: [name],
185
+ body,
186
+ };
187
+ return formatBlock(block, opts);
188
+ }
189
+ /**
190
+ * Generate provider block
191
+ */
192
+ export function generateProvider(config, opts = {}) {
193
+ const body = { ...config.config };
194
+ if (config.alias)
195
+ body.alias = config.alias;
196
+ const block = {
197
+ type: 'provider',
198
+ labels: [config.provider],
199
+ body,
200
+ };
201
+ return formatBlock(block, opts);
202
+ }
203
+ /**
204
+ * Generate resource block
205
+ */
206
+ export function generateResource(config, opts = {}) {
207
+ const body = { ...config.config };
208
+ if (config.depends_on) {
209
+ body.depends_on = { __hclExpression: true, value: `[${config.depends_on.map((d) => d.value).join(', ')}]` };
210
+ }
211
+ if (config.count !== undefined)
212
+ body.count = config.count;
213
+ if (config.for_each !== undefined)
214
+ body.for_each = config.for_each;
215
+ if (config.provider)
216
+ body.provider = config.provider;
217
+ const nestedBlocks = [];
218
+ if (config.lifecycle) {
219
+ const lifecycleBody = {};
220
+ if (config.lifecycle.create_before_destroy !== undefined) {
221
+ lifecycleBody.create_before_destroy = config.lifecycle.create_before_destroy;
222
+ }
223
+ if (config.lifecycle.prevent_destroy !== undefined) {
224
+ lifecycleBody.prevent_destroy = config.lifecycle.prevent_destroy;
225
+ }
226
+ if (config.lifecycle.ignore_changes) {
227
+ lifecycleBody.ignore_changes = config.lifecycle.ignore_changes;
228
+ }
229
+ if (config.lifecycle.replace_triggered_by) {
230
+ lifecycleBody.replace_triggered_by = {
231
+ __hclExpression: true,
232
+ value: `[${config.lifecycle.replace_triggered_by.map((d) => d.value).join(', ')}]`,
233
+ };
234
+ }
235
+ nestedBlocks.push({
236
+ type: 'lifecycle',
237
+ labels: [],
238
+ body: lifecycleBody,
239
+ });
240
+ }
241
+ const block = {
242
+ type: 'resource',
243
+ labels: [config.type, config.name],
244
+ body,
245
+ nestedBlocks: nestedBlocks.length > 0 ? nestedBlocks : undefined,
246
+ };
247
+ return formatBlock(block, opts);
248
+ }
249
+ /**
250
+ * Generate data source block
251
+ */
252
+ export function generateDataSource(config, opts = {}) {
253
+ const body = { ...config.config };
254
+ if (config.depends_on) {
255
+ body.depends_on = { __hclExpression: true, value: `[${config.depends_on.map((d) => d.value).join(', ')}]` };
256
+ }
257
+ if (config.count !== undefined)
258
+ body.count = config.count;
259
+ if (config.for_each !== undefined)
260
+ body.for_each = config.for_each;
261
+ if (config.provider)
262
+ body.provider = config.provider;
263
+ const block = {
264
+ type: 'data',
265
+ labels: [config.type, config.name],
266
+ body,
267
+ };
268
+ return formatBlock(block, opts);
269
+ }
270
+ /**
271
+ * Generate module block
272
+ */
273
+ export function generateModule(config, opts = {}) {
274
+ const body = {
275
+ source: config.source,
276
+ ...config.config,
277
+ };
278
+ if (config.version)
279
+ body.version = config.version;
280
+ if (config.depends_on) {
281
+ body.depends_on = { __hclExpression: true, value: `[${config.depends_on.map((d) => d.value).join(', ')}]` };
282
+ }
283
+ if (config.count !== undefined)
284
+ body.count = config.count;
285
+ if (config.for_each !== undefined)
286
+ body.for_each = config.for_each;
287
+ if (config.providers) {
288
+ const providersObj = {};
289
+ for (const [key, value] of Object.entries(config.providers)) {
290
+ providersObj[key] = value;
291
+ }
292
+ body.providers = providersObj;
293
+ }
294
+ const block = {
295
+ type: 'module',
296
+ labels: [config.name],
297
+ body,
298
+ };
299
+ return formatBlock(block, opts);
300
+ }
301
+ /**
302
+ * Generate locals block
303
+ */
304
+ export function generateLocals(locals, opts = {}) {
305
+ const block = {
306
+ type: 'locals',
307
+ labels: [],
308
+ body: locals,
309
+ };
310
+ return formatBlock(block, opts);
311
+ }
312
+ /**
313
+ * Generate terraform block (required_version, required_providers, backend)
314
+ */
315
+ export function generateTerraformBlock(config, opts = {}) {
316
+ const body = {};
317
+ if (config.required_version) {
318
+ body.required_version = config.required_version;
319
+ }
320
+ const nestedBlocks = [];
321
+ if (config.required_providers) {
322
+ const providersBody = {};
323
+ for (const [name, provider] of Object.entries(config.required_providers)) {
324
+ providersBody[name] = {
325
+ source: provider.source,
326
+ ...(provider.version ? { version: provider.version } : {}),
327
+ };
328
+ }
329
+ nestedBlocks.push({
330
+ type: 'required_providers',
331
+ labels: [],
332
+ body: providersBody,
333
+ });
334
+ }
335
+ if (config.backend) {
336
+ nestedBlocks.push({
337
+ type: 'backend',
338
+ labels: [config.backend.type],
339
+ body: config.backend.config,
340
+ });
341
+ }
342
+ const block = {
343
+ type: 'terraform',
344
+ labels: [],
345
+ body,
346
+ nestedBlocks: nestedBlocks.length > 0 ? nestedBlocks : undefined,
347
+ };
348
+ return formatBlock(block, opts);
349
+ }
350
+ /**
351
+ * Generate complete Terraform configuration
352
+ */
353
+ export function generateTerraformConfig(config, opts = {}) {
354
+ const sections = [];
355
+ // Terraform block
356
+ if (config.terraform) {
357
+ sections.push(generateTerraformBlock(config.terraform, opts));
358
+ }
359
+ // Providers
360
+ if (config.providers) {
361
+ for (const provider of config.providers) {
362
+ sections.push(generateProvider(provider, opts));
363
+ }
364
+ }
365
+ // Variables
366
+ if (config.variables) {
367
+ for (const [name, variable] of Object.entries(config.variables)) {
368
+ sections.push(generateVariable(name, variable, opts));
369
+ }
370
+ }
371
+ // Locals
372
+ if (config.locals && Object.keys(config.locals).length > 0) {
373
+ sections.push(generateLocals(config.locals, opts));
374
+ }
375
+ // Data sources
376
+ if (config.dataSources) {
377
+ for (const dataSource of config.dataSources) {
378
+ sections.push(generateDataSource(dataSource, opts));
379
+ }
380
+ }
381
+ // Resources
382
+ if (config.resources) {
383
+ for (const resource of config.resources) {
384
+ sections.push(generateResource(resource, opts));
385
+ }
386
+ }
387
+ // Modules
388
+ if (config.modules) {
389
+ for (const module of config.modules) {
390
+ sections.push(generateModule(module, opts));
391
+ }
392
+ }
393
+ // Outputs
394
+ if (config.outputs) {
395
+ for (const [name, output] of Object.entries(config.outputs)) {
396
+ sections.push(generateOutput(name, output, opts));
397
+ }
398
+ }
399
+ return sections.join('\n\n');
400
+ }
401
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/hcl/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=generator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.test.d.ts","sourceRoot":"","sources":["../../src/hcl/generator.test.ts"],"names":[],"mappings":""}