tfts 0.2.6 → 0.2.8

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.
@@ -11,44 +11,36 @@ const stripProviderPrefix = (name, providerName) => {
11
11
  };
12
12
  // --- Type mapping ---
13
13
  const mapSchemaTypeToTsConfig = (type) => {
14
- if (typeof type === "string") {
15
- switch (type) {
16
- case "string":
17
- return "TfString";
18
- case "number":
19
- return "TfNumber";
20
- case "bool":
21
- return "TfBoolean";
22
- case "dynamic":
23
- return "unknown";
24
- }
14
+ switch (type.kind) {
15
+ case "string":
16
+ return "TfString";
17
+ case "number":
18
+ return "TfNumber";
19
+ case "bool":
20
+ return "TfBoolean";
21
+ case "dynamic":
22
+ return "unknown";
23
+ case "list":
24
+ if (type.inner.kind === "string")
25
+ return "TfStringList";
26
+ if (type.inner.kind === "number")
27
+ return "TfNumberList";
28
+ return `readonly ${mapSchemaTypeToTsConfig(type.inner)}[]`;
29
+ case "set":
30
+ if (type.inner.kind === "string")
31
+ return "TfStringList";
32
+ if (type.inner.kind === "number")
33
+ return "TfNumberList";
34
+ return `readonly ${mapSchemaTypeToTsConfig(type.inner)}[]`;
35
+ case "map":
36
+ if (type.inner.kind === "string")
37
+ return "TfStringMap";
38
+ return `Readonly<Record<string, ${mapSchemaTypeToTsConfig(type.inner)}>>`;
39
+ case "object":
40
+ return "unknown";
41
+ case "tuple":
42
+ return "unknown";
25
43
  }
26
- if (Array.isArray(type)) {
27
- const [container, inner] = type;
28
- switch (container) {
29
- case "list":
30
- if (inner === "string")
31
- return "TfStringList";
32
- if (inner === "number")
33
- return "TfNumberList";
34
- return `readonly ${mapSchemaTypeToTsConfig(inner)}[]`;
35
- case "set":
36
- if (inner === "string")
37
- return "TfStringList";
38
- if (inner === "number")
39
- return "TfNumberList";
40
- return `readonly ${mapSchemaTypeToTsConfig(inner)}[]`;
41
- case "map":
42
- if (inner === "string")
43
- return "TfStringMap";
44
- return `Readonly<Record<string, ${mapSchemaTypeToTsConfig(inner)}>>`;
45
- case "object":
46
- return "unknown";
47
- case "tuple":
48
- return "unknown";
49
- }
50
- }
51
- return "unknown";
52
44
  };
53
45
  const createTypeNameRegistry = () => ({
54
46
  usedNames: new Set(),
@@ -100,102 +92,132 @@ const RESERVED_NAMES = new Set([
100
92
  "connection",
101
93
  "provisioners",
102
94
  ]);
103
- const generateBlockTypes = (block, className, registry) => {
104
- const result = [];
105
- if (!block.block_types) {
106
- return result;
107
- }
108
- for (const [name, blockType] of Object.entries(block.block_types)) {
109
- const baseName = `${className}${snakeToPascalCase(name)}`;
110
- const blockTypeName = registerBlockTypeName(registry, baseName);
111
- // Recursively generate nested block types
112
- const nestedTypes = generateBlockTypes(blockType.block, blockTypeName, registry);
113
- result.push(...nestedTypes);
114
- // Generate the block type itself
115
- const properties = [];
116
- if (blockType.block.attributes) {
117
- for (const [attrName, attr] of Object.entries(blockType.block.attributes)) {
118
- const tsName = snakeToCamelCase(attrName);
119
- const tsType = mapSchemaTypeToTsConfig(attr.type);
120
- const optional = isPropertyOptional(attr) ? "?" : "";
121
- properties.push(` readonly ${tsName}${optional}: ${tsType};`);
122
- }
123
- }
124
- if (blockType.block.block_types) {
125
- for (const [nestedName, nestedBlock] of Object.entries(blockType.block.block_types)) {
126
- const tsName = snakeToCamelCase(nestedName);
127
- const nestedTypeName = `${blockTypeName}${snakeToPascalCase(nestedName)}`;
128
- const propType = getBlockPropertyType(nestedBlock, nestedTypeName);
129
- const optional = isBlockOptional(nestedBlock) ? "?" : "";
130
- properties.push(` readonly ${tsName}${optional}: ${propType};`);
131
- }
132
- }
133
- const code = `export type ${blockTypeName} = {
95
+ const getComputedListObjectSchema = (attr) => {
96
+ if (attr.computed !== true)
97
+ return undefined;
98
+ const { type } = attr;
99
+ if (type.kind !== "list" && type.kind !== "set")
100
+ return undefined;
101
+ if (type.inner.kind !== "object")
102
+ return undefined;
103
+ return type.inner.fields;
104
+ };
105
+ const hasComputedAttributes = (block) => Object.values(block.attributes ?? {}).some((attr) => attr.computed === true);
106
+ const makeOutputClass = (className, getters) => `class ${className} extends ComputedObject {\n${getters.join("\n\n")}\n}`;
107
+ const makeGetter = (attrName) => {
108
+ const tsName = snakeToCamelCase(attrName);
109
+ return ` get ${tsName}(): TokenValue<string> {\n return this._getStringAttribute("${attrName}");\n }`;
110
+ };
111
+ // Generate output classes for computed block types and computed list/object attributes
112
+ const generateOutputClasses = (block, baseClassName, registry) => {
113
+ const fromAttrs = Object.entries(block.attributes ?? {})
114
+ .flatMap(([name, attr]) => {
115
+ const schema = getComputedListObjectSchema(attr);
116
+ if (schema === undefined)
117
+ return [];
118
+ return [{ name, schema }];
119
+ })
120
+ .map(({ name, schema }) => {
121
+ const className = registerTypeName(registry, `${baseClassName}${snakeToPascalCase(name)}Output`);
122
+ const getters = Object.keys(schema).map(makeGetter);
123
+ return { className, code: makeOutputClass(className, getters) };
124
+ });
125
+ const fromBlocks = Object.entries(block.block_types ?? {})
126
+ .filter(([, bt]) => hasComputedAttributes(bt.block))
127
+ .map(([name, blockType]) => {
128
+ const className = registerTypeName(registry, `${baseClassName}${snakeToPascalCase(name)}Output`);
129
+ const getters = Object.entries(blockType.block.attributes ?? {})
130
+ .filter(([, attr]) => attr.computed === true)
131
+ .map(([attrName]) => makeGetter(attrName));
132
+ return { className, code: makeOutputClass(className, getters) };
133
+ });
134
+ return [...fromAttrs, ...fromBlocks];
135
+ };
136
+ // Generate getters for computed block types and computed list/object attributes
137
+ const generateBlockGetters = (block, baseClassName) => {
138
+ const fromAttrs = Object.entries(block.attributes ?? {})
139
+ .filter(([name, attr]) => getComputedListObjectSchema(attr) !== undefined &&
140
+ !RESERVED_NAMES.has(snakeToCamelCase(name)))
141
+ .map(([name]) => {
142
+ const tsName = snakeToCamelCase(name);
143
+ const outputClassName = `${baseClassName}${snakeToPascalCase(name)}Output`;
144
+ return ` get ${tsName}(): ComputedList<${outputClassName}> {\n return new ComputedList(this.fqn, "${name}", (fqn, path) => new ${outputClassName}(fqn, path));\n }`;
145
+ });
146
+ const fromBlocks = Object.entries(block.block_types ?? {})
147
+ .filter(([name, bt]) => hasComputedAttributes(bt.block) && !RESERVED_NAMES.has(snakeToCamelCase(name)))
148
+ .map(([name, blockType]) => {
149
+ const tsName = snakeToCamelCase(name);
150
+ const outputClassName = `${baseClassName}${snakeToPascalCase(name)}Output`;
151
+ return blockType.nesting_mode === "single"
152
+ ? ` get ${tsName}(): ${outputClassName} {\n return new ${outputClassName}(this.fqn, "${name}");\n }`
153
+ : ` get ${tsName}(): ComputedList<${outputClassName}> {\n return new ComputedList(this.fqn, "${name}", (fqn, path) => new ${outputClassName}(fqn, path));\n }`;
154
+ });
155
+ return [...fromAttrs, ...fromBlocks].join("\n\n");
156
+ };
157
+ const generateBlockTypes = (block, className, registry) => Object.entries(block.block_types ?? {}).flatMap(([name, blockType]) => {
158
+ const baseName = `${className}${snakeToPascalCase(name)}`;
159
+ const blockTypeName = registerBlockTypeName(registry, baseName);
160
+ // Recursively generate nested block types
161
+ const nestedTypes = generateBlockTypes(blockType.block, blockTypeName, registry);
162
+ // Generate the block type itself
163
+ const attrProperties = Object.entries(blockType.block.attributes ?? {}).map(([attrName, attr]) => {
164
+ const tsName = snakeToCamelCase(attrName);
165
+ const tsType = mapSchemaTypeToTsConfig(attr.type);
166
+ const optional = isPropertyOptional(attr) ? "?" : "";
167
+ return ` readonly ${tsName}${optional}: ${tsType};`;
168
+ });
169
+ const blockProperties = Object.entries(blockType.block.block_types ?? {}).map(([nestedName, nestedBlock]) => {
170
+ const tsName = snakeToCamelCase(nestedName);
171
+ const nestedTypeName = `${blockTypeName}${snakeToPascalCase(nestedName)}`;
172
+ const propType = getBlockPropertyType(nestedBlock, nestedTypeName);
173
+ const optional = isBlockOptional(nestedBlock) ? "?" : "";
174
+ return ` readonly ${tsName}${optional}: ${propType};`;
175
+ });
176
+ const properties = [...attrProperties, ...blockProperties];
177
+ const code = `export type ${blockTypeName} = {
134
178
  ${properties.join("\n")}
135
179
  };`;
136
- result.push({ typeName: blockTypeName, code });
137
- }
138
- return result;
180
+ return [...nestedTypes, { typeName: blockTypeName, code }];
181
+ });
182
+ const hasComputedListObjectAttrs = (block) => Object.values(block.attributes ?? {}).some((attr) => getComputedListObjectSchema(attr) !== undefined);
183
+ const hasComputedBlockTypes = (block) => {
184
+ const checkBlock = (b) => Object.values(b.block_types ?? {}).some((bt) => hasComputedAttributes(bt.block) || checkBlock(bt.block));
185
+ return checkBlock(block);
186
+ };
187
+ const collectTfTypes = (block) => {
188
+ const fromAttrs = Object.values(block.attributes ?? {}).map((attr) => mapSchemaTypeToTsConfig(attr.type));
189
+ const fromBlocks = Object.values(block.block_types ?? {}).flatMap((bt) => collectTfTypes(bt.block));
190
+ return [...fromAttrs, ...fromBlocks].filter((t) => t.startsWith("Tf"));
139
191
  };
140
192
  const generateImports = (baseClass, baseConfig, block, includeProvider = false) => {
141
- const types = new Set(["Construct", "TokenValue", baseConfig]);
142
- if (includeProvider) {
143
- types.add("TerraformProvider");
144
- }
145
- if (block.attributes) {
146
- for (const attr of Object.values(block.attributes)) {
147
- const tsType = mapSchemaTypeToTsConfig(attr.type);
148
- if (tsType.startsWith("Tf") ||
149
- tsType === "TfString" ||
150
- tsType === "TfNumber" ||
151
- tsType === "TfBoolean" ||
152
- tsType === "TfStringList" ||
153
- tsType === "TfNumberList" ||
154
- tsType === "TfStringMap") {
155
- types.add(tsType);
156
- }
157
- }
158
- }
159
- const collectBlockTypes = (b) => {
160
- if (b.block_types) {
161
- for (const blockType of Object.values(b.block_types)) {
162
- if (blockType.block.attributes) {
163
- for (const attr of Object.values(blockType.block.attributes)) {
164
- const tsType = mapSchemaTypeToTsConfig(attr.type);
165
- if (tsType.startsWith("Tf")) {
166
- types.add(tsType);
167
- }
168
- }
169
- }
170
- collectBlockTypes(blockType.block);
171
- }
172
- }
173
- };
174
- collectBlockTypes(block);
175
- const sortedTypes = Array.from(types).sort();
176
- return `import type { ${sortedTypes.join(", ")} } from "tfts";
177
- import { ${baseClass} } from "tfts";`;
193
+ const baseTypes = ["Construct", "TokenValue", baseConfig];
194
+ const providerTypes = includeProvider ? ["TerraformProvider"] : [];
195
+ const tfTypes = collectTfTypes(block);
196
+ const types = [...new Set([...baseTypes, ...providerTypes, ...tfTypes])].sort();
197
+ const needsComputed = hasComputedBlockTypes(block) || hasComputedListObjectAttrs(block);
198
+ const computedValues = needsComputed ? ["ComputedList", "ComputedObject"] : [];
199
+ const values = [...new Set([baseClass, ...computedValues])].sort();
200
+ return `import type { ${types.join(", ")} } from "tfts";
201
+ import { ${values.join(", ")} } from "tfts";`;
178
202
  };
179
203
  const generateConfigTypeWithName = (configTypeName, className, block, baseConfig, registry) => {
180
- const properties = [];
181
- if (block.attributes) {
182
- for (const [name, attr] of Object.entries(block.attributes)) {
183
- const tsName = snakeToCamelCase(name);
184
- const tsType = mapSchemaTypeToTsConfig(attr.type);
185
- const optional = isPropertyOptional(attr) ? "?" : "";
186
- properties.push(` readonly ${tsName}${optional}: ${tsType};`);
187
- }
188
- }
189
- if (block.block_types) {
190
- for (const [name, blockType] of Object.entries(block.block_types)) {
191
- const tsName = snakeToCamelCase(name);
192
- const baseName = `${className}${snakeToPascalCase(name)}`;
193
- const actualBlockTypeName = getBlockTypeName(registry, baseName);
194
- const propType = getBlockPropertyType(blockType, actualBlockTypeName);
195
- const optional = isBlockOptional(blockType) ? "?" : "";
196
- properties.push(` readonly ${tsName}${optional}: ${propType};`);
197
- }
198
- }
204
+ const attrProperties = Object.entries(block.attributes ?? {})
205
+ .filter(([, attr]) => getComputedListObjectSchema(attr) === undefined)
206
+ .map(([name, attr]) => {
207
+ const tsName = snakeToCamelCase(name);
208
+ const tsType = mapSchemaTypeToTsConfig(attr.type);
209
+ const optional = isPropertyOptional(attr) ? "?" : "";
210
+ return ` readonly ${tsName}${optional}: ${tsType};`;
211
+ });
212
+ const blockProperties = Object.entries(block.block_types ?? {}).map(([name, blockType]) => {
213
+ const tsName = snakeToCamelCase(name);
214
+ const baseName = `${className}${snakeToPascalCase(name)}`;
215
+ const actualBlockTypeName = getBlockTypeName(registry, baseName);
216
+ const propType = getBlockPropertyType(blockType, actualBlockTypeName);
217
+ const optional = isBlockOptional(blockType) ? "?" : "";
218
+ return ` readonly ${tsName}${optional}: ${propType};`;
219
+ });
220
+ const properties = [...attrProperties, ...blockProperties];
199
221
  return `export type ${configTypeName} = {
200
222
  ${properties.join("\n")}
201
223
  } & ${baseConfig};`;
@@ -205,24 +227,15 @@ const generateConfigType = (className, block, baseConfig, registry) => {
205
227
  return generateConfigTypeWithName(configTypeName, className, block, baseConfig, registry);
206
228
  };
207
229
  const generateConstructorBody = (block) => {
208
- const lines = [];
209
- if (block.attributes) {
210
- for (const name of Object.keys(block.attributes)) {
211
- const tsName = snakeToCamelCase(name);
212
- lines.push(` ${name}: config.${tsName},`);
213
- }
214
- }
215
- if (block.block_types) {
216
- for (const [name, blockType] of Object.entries(block.block_types)) {
217
- const tsName = snakeToCamelCase(name);
218
- lines.push(` ${getBlockConstructorValue(blockType, name, tsName)}`);
219
- }
220
- }
221
- return lines.join("\n");
230
+ const attrLines = Object.entries(block.attributes ?? {})
231
+ .filter(([, attr]) => !getComputedListObjectSchema(attr))
232
+ .map(([name]) => ` ${name}: config.${snakeToCamelCase(name)},`);
233
+ const blockLines = Object.entries(block.block_types ?? {}).map(([name, blockType]) => ` ${getBlockConstructorValue(blockType, name, snakeToCamelCase(name))}`);
234
+ return [...attrLines, ...blockLines].join("\n");
222
235
  };
223
- const generateGetters = (block) => Object.keys(block.attributes ?? {})
224
- .filter((name) => !RESERVED_NAMES.has(snakeToCamelCase(name)))
225
- .map((name) => {
236
+ const generateGetters = (block) => Object.entries(block.attributes ?? {})
237
+ .filter(([name, attr]) => !RESERVED_NAMES.has(snakeToCamelCase(name)) && !getComputedListObjectSchema(attr))
238
+ .map(([name]) => {
226
239
  const tsName = snakeToCamelCase(name);
227
240
  return ` get ${tsName}(): TokenValue<string> {
228
241
  return this.getStringAttribute("${name}");
@@ -273,17 +286,20 @@ const generateResourceClass = (resourceName, providerName, block) => {
273
286
  // Reserve the config type name first so nested blocks get the A suffix if collision
274
287
  registry.usedNames.add(`${className}Config`);
275
288
  const blockTypes = generateBlockTypes(block, className, registry);
289
+ const outputClasses = generateOutputClasses(block, className, registry);
276
290
  const imports = generateImports("TerraformResource", "TerraformResourceConfig", block, true);
277
291
  const configType = generateConfigTypeWithName(`${className}Config`, className, block, "TerraformResourceConfig", registry);
278
292
  const constructorBody = generateConstructorBody(block);
279
293
  const getters = generateGetters(block);
280
294
  const inputGetters = generateInputGetters(block);
295
+ const blockGetters = generateBlockGetters(block, className);
281
296
  const blockTypeCode = blockTypes.length > 0 ? blockTypes.map((bt) => bt.code).join("\n\n") + "\n\n" : "";
282
- const allGetters = [getters, inputGetters].filter(Boolean).join("\n\n");
297
+ const outputClassCode = outputClasses.length > 0 ? outputClasses.map((oc) => oc.code).join("\n\n") + "\n\n" : "";
298
+ const allGetters = [getters, inputGetters, blockGetters].filter(Boolean).join("\n\n");
283
299
  const getterSection = allGetters ? `\n\n${allGetters}` : "";
284
300
  return `${imports}
285
301
 
286
- ${blockTypeCode}${configType}
302
+ ${blockTypeCode}${outputClassCode}${configType}
287
303
 
288
304
  export class ${className} extends TerraformResource {
289
305
  private readonly _config: ${className}Config;
@@ -339,47 +355,57 @@ const generateIndexFile = (exports) => {
339
355
  .map((e) => `export * as ${e.namespace} from "./${e.path}";`);
340
356
  return lines.join("\n") + "\n";
341
357
  };
342
- // --- Main generator ---
358
+ const generateResourceEntries = (name, schemas) => {
359
+ const entries = Object.entries(schemas).map(([resourceName, resourceSchema]) => {
360
+ const strippedName = stripProviderPrefix(resourceName, name);
361
+ const kebabName = snakeToKebabCase(strippedName);
362
+ const path = `${kebabName}/index.ts`;
363
+ const file = [path, generateResourceClass(resourceName, name, resourceSchema.block)];
364
+ const exp = {
365
+ namespace: snakeToCamelCase(strippedName),
366
+ path: `${kebabName}/index.js`,
367
+ };
368
+ return { file, exp };
369
+ });
370
+ return { files: entries.map((e) => e.file), exports: entries.map((e) => e.exp) };
371
+ };
372
+ const generateDataSourceEntries = (name, schemas) => {
373
+ const entries = Object.entries(schemas).map(([dataSourceName, dataSourceSchema]) => {
374
+ const strippedName = stripProviderPrefix(dataSourceName, name);
375
+ const kebabName = snakeToKebabCase(strippedName);
376
+ const path = `data-${kebabName}/index.ts`;
377
+ const file = [
378
+ path,
379
+ generateDataSourceClass(dataSourceName, name, dataSourceSchema.block),
380
+ ];
381
+ const exp = {
382
+ namespace: `data${snakeToPascalCase(strippedName)}`,
383
+ path: `data-${kebabName}/index.js`,
384
+ };
385
+ return { file, exp };
386
+ });
387
+ return { files: entries.map((e) => e.file), exports: entries.map((e) => e.exp) };
388
+ };
343
389
  export const generateProviderFiles = (name, schema) => {
344
- const files = new Map();
345
- const namespaceExports = [];
346
- // Find the provider schema entry
347
390
  const providerEntry = Object.entries(schema.provider_schemas).find(([source]) => source.includes(`/${name}`) || source.endsWith(`/${name}`));
348
- if (!providerEntry) {
349
- return files;
391
+ if (providerEntry === undefined) {
392
+ return new Map();
350
393
  }
351
394
  const [source, schemaEntry] = providerEntry;
352
- // Generate provider
353
- files.set("provider/index.ts", generateProviderClass(name, source, schemaEntry.provider.block));
354
- namespaceExports.push({ namespace: "provider", path: "provider/index.js" });
355
- // Generate resources
356
- if (schemaEntry.resource_schemas) {
357
- for (const [resourceName, resourceSchema] of Object.entries(schemaEntry.resource_schemas)) {
358
- const strippedName = stripProviderPrefix(resourceName, name);
359
- const kebabName = snakeToKebabCase(strippedName);
360
- const path = `lib/${kebabName}/index.ts`;
361
- files.set(path, generateResourceClass(resourceName, name, resourceSchema.block));
362
- namespaceExports.push({
363
- namespace: snakeToCamelCase(strippedName),
364
- path: `lib/${kebabName}/index.js`,
365
- });
366
- }
367
- }
368
- // Generate data sources
369
- if (schemaEntry.data_source_schemas) {
370
- for (const [dataSourceName, dataSourceSchema] of Object.entries(schemaEntry.data_source_schemas)) {
371
- const strippedName = stripProviderPrefix(dataSourceName, name);
372
- const kebabName = snakeToKebabCase(strippedName);
373
- const path = `lib/data-${kebabName}/index.ts`;
374
- files.set(path, generateDataSourceClass(dataSourceName, name, dataSourceSchema.block));
375
- namespaceExports.push({
376
- namespace: `data${snakeToPascalCase(strippedName)}`,
377
- path: `lib/data-${kebabName}/index.js`,
378
- });
379
- }
380
- }
381
- // Generate index file
382
- files.set("index.ts", generateIndexFile(namespaceExports));
383
- return files;
395
+ const providerFile = [
396
+ "provider/index.ts",
397
+ generateProviderClass(name, source, schemaEntry.provider.block),
398
+ ];
399
+ const providerExport = { namespace: "provider", path: "provider/index.js" };
400
+ const resources = schemaEntry.resource_schemas !== undefined
401
+ ? generateResourceEntries(name, schemaEntry.resource_schemas)
402
+ : { files: [], exports: [] };
403
+ const dataSources = schemaEntry.data_source_schemas !== undefined
404
+ ? generateDataSourceEntries(name, schemaEntry.data_source_schemas)
405
+ : { files: [], exports: [] };
406
+ const allExports = [providerExport, ...resources.exports, ...dataSources.exports];
407
+ const indexFile = ["index.ts", generateIndexFile(allExports)];
408
+ const allFiles = [providerFile, ...resources.files, ...dataSources.files, indexFile];
409
+ return new Map(allFiles);
384
410
  };
385
411
  //# sourceMappingURL=generator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../src/codegen/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../src/codegen/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ export type RawSchemaType = "string" | "number" | "bool" | "dynamic" | readonly ["list", RawSchemaType] | readonly ["set", RawSchemaType] | readonly ["map", RawSchemaType] | readonly ["object", Record<string, RawSchemaType>] | readonly ["tuple", RawSchemaType[]];
2
+ export type RawAttributeSchema = {
3
+ readonly type: RawSchemaType;
4
+ readonly description?: string;
5
+ readonly description_kind?: "plain" | "markdown";
6
+ readonly required?: boolean;
7
+ readonly optional?: boolean;
8
+ readonly computed?: boolean;
9
+ readonly sensitive?: boolean;
10
+ readonly deprecated?: boolean;
11
+ };
12
+ export type RawBlockTypeSchema = {
13
+ readonly nesting_mode: "single" | "list" | "set" | "map";
14
+ readonly block: RawSchemaBlock;
15
+ readonly min_items?: number;
16
+ readonly max_items?: number;
17
+ };
18
+ export type RawSchemaBlock = {
19
+ readonly attributes?: Readonly<Record<string, RawAttributeSchema>>;
20
+ readonly block_types?: Readonly<Record<string, RawBlockTypeSchema>>;
21
+ readonly description?: string;
22
+ readonly description_kind?: "plain" | "markdown";
23
+ readonly deprecated?: boolean;
24
+ };
25
+ export type RawResourceSchema = {
26
+ readonly version: number;
27
+ readonly block: RawSchemaBlock;
28
+ };
29
+ export type RawProviderSchemaEntry = {
30
+ readonly provider: RawResourceSchema;
31
+ readonly resource_schemas?: Readonly<Record<string, RawResourceSchema>>;
32
+ readonly data_source_schemas?: Readonly<Record<string, RawResourceSchema>>;
33
+ };
34
+ export type RawProviderSchema = {
35
+ readonly format_version: string;
36
+ readonly provider_schemas: Readonly<Record<string, RawProviderSchemaEntry>>;
37
+ };
38
+ //# sourceMappingURL=raw-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raw-schema.d.ts","sourceRoot":"","sources":["../../../src/codegen/raw-schema.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GACrB,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,SAAS,GACT,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,GAChC,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,GAC/B,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,GAC/B,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,GAClD,SAAS,CAAC,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;AAExC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACjD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,YAAY,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;IACzD,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;IACnE,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;IACpE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACjD,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACxE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;CAC5E,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC;CAC7E,CAAC"}
@@ -0,0 +1,3 @@
1
+ // Raw types matching Terraform provider schema JSON output
2
+ export {};
3
+ //# sourceMappingURL=raw-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raw-schema.js","sourceRoot":"","sources":["../../../src/codegen/raw-schema.ts"],"names":[],"mappings":"AAAA,2DAA2D"}
@@ -1,5 +1,29 @@
1
1
  import { type Result } from "neverthrow";
2
- export type SchemaType = "string" | "number" | "bool" | "dynamic" | readonly ["list", SchemaType] | readonly ["set", SchemaType] | readonly ["map", SchemaType] | readonly ["object", Readonly<Record<string, SchemaType>>] | readonly ["tuple", readonly SchemaType[]];
2
+ export type { RawProviderSchema, RawSchemaType, RawAttributeSchema, RawBlockTypeSchema, RawSchemaBlock, RawResourceSchema, RawProviderSchemaEntry, } from "./raw-schema.js";
3
+ export type SchemaType = {
4
+ readonly kind: "string";
5
+ } | {
6
+ readonly kind: "number";
7
+ } | {
8
+ readonly kind: "bool";
9
+ } | {
10
+ readonly kind: "dynamic";
11
+ } | {
12
+ readonly kind: "list";
13
+ readonly inner: SchemaType;
14
+ } | {
15
+ readonly kind: "set";
16
+ readonly inner: SchemaType;
17
+ } | {
18
+ readonly kind: "map";
19
+ readonly inner: SchemaType;
20
+ } | {
21
+ readonly kind: "object";
22
+ readonly fields: Readonly<Record<string, SchemaType>>;
23
+ } | {
24
+ readonly kind: "tuple";
25
+ readonly elements: readonly SchemaType[];
26
+ };
3
27
  export type AttributeSchema = {
4
28
  readonly type: SchemaType;
5
29
  readonly description?: string;