@typespec/openapi3 0.60.0-dev.5 → 0.60.0-dev.7

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 (52) hide show
  1. package/dist/src/cli/actions/convert/convert-file.d.ts.map +1 -1
  2. package/dist/src/cli/actions/convert/convert-file.js +4 -2
  3. package/dist/src/cli/actions/convert/convert-file.js.map +1 -1
  4. package/dist/src/cli/actions/convert/convert.d.ts.map +1 -1
  5. package/dist/src/cli/actions/convert/convert.js +4 -2
  6. package/dist/src/cli/actions/convert/convert.js.map +1 -1
  7. package/dist/src/cli/actions/convert/generators/generate-main.d.ts +2 -1
  8. package/dist/src/cli/actions/convert/generators/generate-main.d.ts.map +1 -1
  9. package/dist/src/cli/actions/convert/generators/generate-main.js +4 -4
  10. package/dist/src/cli/actions/convert/generators/generate-main.js.map +1 -1
  11. package/dist/src/cli/actions/convert/generators/generate-model.d.ts +3 -3
  12. package/dist/src/cli/actions/convert/generators/generate-model.d.ts.map +1 -1
  13. package/dist/src/cli/actions/convert/generators/generate-model.js +30 -35
  14. package/dist/src/cli/actions/convert/generators/generate-model.js.map +1 -1
  15. package/dist/src/cli/actions/convert/generators/generate-namespace.d.ts +2 -1
  16. package/dist/src/cli/actions/convert/generators/generate-namespace.d.ts.map +1 -1
  17. package/dist/src/cli/actions/convert/generators/generate-namespace.js +4 -4
  18. package/dist/src/cli/actions/convert/generators/generate-namespace.js.map +1 -1
  19. package/dist/src/cli/actions/convert/generators/generate-operation.d.ts +2 -1
  20. package/dist/src/cli/actions/convert/generators/generate-operation.d.ts.map +1 -1
  21. package/dist/src/cli/actions/convert/generators/generate-operation.js +10 -14
  22. package/dist/src/cli/actions/convert/generators/generate-operation.js.map +1 -1
  23. package/dist/src/cli/actions/convert/generators/generate-service-info.d.ts.map +1 -1
  24. package/dist/src/cli/actions/convert/generators/generate-service-info.js +1 -3
  25. package/dist/src/cli/actions/convert/generators/generate-service-info.js.map +1 -1
  26. package/dist/src/cli/actions/convert/generators/generate-types.d.ts +12 -8
  27. package/dist/src/cli/actions/convert/generators/generate-types.d.ts.map +1 -1
  28. package/dist/src/cli/actions/convert/generators/generate-types.js +138 -109
  29. package/dist/src/cli/actions/convert/generators/generate-types.js.map +1 -1
  30. package/dist/src/cli/actions/convert/interfaces.d.ts +1 -0
  31. package/dist/src/cli/actions/convert/interfaces.d.ts.map +1 -1
  32. package/dist/src/cli/actions/convert/transforms/transform-component-parameters.d.ts +3 -3
  33. package/dist/src/cli/actions/convert/transforms/transform-component-parameters.d.ts.map +1 -1
  34. package/dist/src/cli/actions/convert/transforms/transform-component-parameters.js +14 -27
  35. package/dist/src/cli/actions/convert/transforms/transform-component-parameters.js.map +1 -1
  36. package/dist/src/cli/actions/convert/transforms/transform-component-schemas.d.ts +2 -2
  37. package/dist/src/cli/actions/convert/transforms/transform-component-schemas.d.ts.map +1 -1
  38. package/dist/src/cli/actions/convert/transforms/transform-component-schemas.js +114 -96
  39. package/dist/src/cli/actions/convert/transforms/transform-component-schemas.js.map +1 -1
  40. package/dist/src/cli/actions/convert/transforms/transforms.d.ts +2 -2
  41. package/dist/src/cli/actions/convert/transforms/transforms.d.ts.map +1 -1
  42. package/dist/src/cli/actions/convert/transforms/transforms.js +6 -6
  43. package/dist/src/cli/actions/convert/transforms/transforms.js.map +1 -1
  44. package/dist/src/cli/actions/convert/utils/context.d.ts +10 -0
  45. package/dist/src/cli/actions/convert/utils/context.d.ts.map +1 -0
  46. package/dist/src/cli/actions/convert/utils/context.js +23 -0
  47. package/dist/src/cli/actions/convert/utils/context.js.map +1 -0
  48. package/dist/src/cli/actions/convert/utils/generate-namespace-name.d.ts +2 -0
  49. package/dist/src/cli/actions/convert/utils/generate-namespace-name.d.ts.map +1 -0
  50. package/dist/src/cli/actions/convert/utils/generate-namespace-name.js +4 -0
  51. package/dist/src/cli/actions/convert/utils/generate-namespace-name.js.map +1 -0
  52. package/package.json +1 -1
@@ -2,12 +2,141 @@ import { printIdentifier } from "@typespec/compiler";
2
2
  import { getDecoratorsForSchema } from "../utils/decorators.js";
3
3
  import { getScopeAndName } from "../utils/get-scope-and-name.js";
4
4
  import { generateDecorators } from "./generate-decorators.js";
5
- export function generateTypeFromSchema(schema) {
6
- return getTypeFromRefableSchema(schema);
7
- }
8
- function getTypeFromRefableSchema(schema) {
9
- const hasRef = "$ref" in schema;
10
- return hasRef ? getRefName(schema.$ref) : getTypeFromSchema(schema);
5
+ export class SchemaToExpressionGenerator {
6
+ rootNamespace;
7
+ constructor(rootNamespace) {
8
+ this.rootNamespace = rootNamespace;
9
+ }
10
+ generateTypeFromRefableSchema(schema, callingScope) {
11
+ const hasRef = "$ref" in schema;
12
+ return hasRef
13
+ ? this.getRefName(schema.$ref, callingScope)
14
+ : this.getTypeFromSchema(schema, callingScope);
15
+ }
16
+ generateArrayType(schema, callingScope) {
17
+ const items = schema.items;
18
+ if (!items) {
19
+ return "unknown[]";
20
+ }
21
+ if ("$ref" in items) {
22
+ return `${this.getRefName(items.$ref, callingScope)}[]`;
23
+ }
24
+ // Prettier will get rid of the extra parenthesis for us
25
+ return `(${this.getTypeFromSchema(items, callingScope)})[]`;
26
+ }
27
+ getRefName(ref, callingScope) {
28
+ const { scope, name } = this.getRefScopeAndName(ref, callingScope);
29
+ return [...scope, name].join(".");
30
+ }
31
+ getRefScopeAndName(ref, callingScope) {
32
+ const parts = ref.split("/");
33
+ const name = parts.pop() ?? "";
34
+ const componentType = parts.pop()?.toLowerCase() ?? "";
35
+ const scopeAndName = getScopeAndName(name);
36
+ switch (componentType) {
37
+ case "schemas":
38
+ if (callingScope.length) {
39
+ /*
40
+ Since schemas are generated in the file namespace,
41
+ need to reference them against the file namespace
42
+ to prevent name collisions.
43
+ Example:
44
+ namespace Service;
45
+ scalar Foo extends string;
46
+ namespace Parameters {
47
+ model Foo {
48
+ @query foo: Service.Foo
49
+ }
50
+ }
51
+ */
52
+ scopeAndName.scope.unshift(this.rootNamespace);
53
+ }
54
+ break;
55
+ case "parameters":
56
+ scopeAndName.scope.unshift("Parameters");
57
+ break;
58
+ }
59
+ return scopeAndName;
60
+ }
61
+ getTypeFromSchema(schema, callingScope) {
62
+ let type = "unknown";
63
+ if (schema.enum) {
64
+ type = getEnum(schema.enum);
65
+ }
66
+ else if (schema.anyOf) {
67
+ type = this.getAnyOfType(schema, callingScope);
68
+ }
69
+ else if (schema.type === "array") {
70
+ type = this.generateArrayType(schema, callingScope);
71
+ }
72
+ else if (schema.type === "boolean") {
73
+ type = "boolean";
74
+ }
75
+ else if (schema.type === "integer") {
76
+ type = getIntegerType(schema);
77
+ }
78
+ else if (schema.type === "number") {
79
+ type = getNumberType(schema);
80
+ }
81
+ else if (schema.type === "object") {
82
+ type = this.getObjectType(schema, callingScope);
83
+ }
84
+ else if (schema.oneOf) {
85
+ type = this.getOneOfType(schema, callingScope);
86
+ }
87
+ else if (schema.type === "string") {
88
+ type = getStringType(schema);
89
+ }
90
+ if (schema.nullable) {
91
+ type += ` | null`;
92
+ }
93
+ if (schema.default) {
94
+ type += ` = ${JSON.stringify(schema.default)}`;
95
+ }
96
+ return type;
97
+ }
98
+ getAnyOfType(schema, callingScope) {
99
+ const definitions = [];
100
+ for (const item of schema.anyOf ?? []) {
101
+ definitions.push(this.generateTypeFromRefableSchema(item, callingScope));
102
+ }
103
+ return definitions.join(" | ");
104
+ }
105
+ getOneOfType(schema, callingScope) {
106
+ const definitions = [];
107
+ for (const item of schema.oneOf ?? []) {
108
+ definitions.push(this.generateTypeFromRefableSchema(item, callingScope));
109
+ }
110
+ return definitions.join(" | ");
111
+ }
112
+ getObjectType(schema, callingScope) {
113
+ // If we have `additionalProperties`, treat that as an 'indexer' and convert to a record.
114
+ const recordType = typeof schema.additionalProperties === "object"
115
+ ? `Record<${this.generateTypeFromRefableSchema(schema.additionalProperties, callingScope)}>`
116
+ : "";
117
+ if (!schema.properties && recordType) {
118
+ return recordType;
119
+ }
120
+ const requiredProps = schema.required ?? [];
121
+ const props = [];
122
+ if (schema.properties) {
123
+ for (const name of Object.keys(schema.properties)) {
124
+ const decorators = generateDecorators(getDecoratorsForSchema(schema.properties[name]))
125
+ .map((d) => `${d}\n`)
126
+ .join("");
127
+ const isOptional = !requiredProps.includes(name) ? "?" : "";
128
+ props.push(`${decorators}${printIdentifier(name)}${isOptional}: ${this.generateTypeFromRefableSchema(schema.properties[name], callingScope)}`);
129
+ }
130
+ }
131
+ const propertyCount = Object.keys(props).length;
132
+ if (recordType && !propertyCount) {
133
+ return recordType;
134
+ }
135
+ else if (recordType && propertyCount) {
136
+ props.push(`...${recordType}`);
137
+ }
138
+ return `{${props.join("; ")}}`;
139
+ }
11
140
  }
12
141
  export function getTypeSpecPrimitiveFromSchema(schema) {
13
142
  if (schema.type === "boolean") {
@@ -24,107 +153,7 @@ export function getTypeSpecPrimitiveFromSchema(schema) {
24
153
  }
25
154
  return;
26
155
  }
27
- function getTypeFromSchema(schema) {
28
- let type = "unknown";
29
- if (schema.enum) {
30
- type = getEnum(schema.enum);
31
- }
32
- else if (schema.anyOf) {
33
- type = getAnyOfType(schema);
34
- }
35
- else if (schema.type === "array") {
36
- type = getArrayType(schema);
37
- }
38
- else if (schema.type === "boolean") {
39
- type = "boolean";
40
- }
41
- else if (schema.type === "integer") {
42
- type = getIntegerType(schema);
43
- }
44
- else if (schema.type === "number") {
45
- type = getNumberType(schema);
46
- }
47
- else if (schema.type === "object") {
48
- type = getObjectType(schema);
49
- }
50
- else if (schema.oneOf) {
51
- type = getOneOfType(schema);
52
- }
53
- else if (schema.type === "string") {
54
- type = getStringType(schema);
55
- }
56
- if (schema.nullable) {
57
- type += ` | null`;
58
- }
59
- if (schema.default) {
60
- type += ` = ${JSON.stringify(schema.default)}`;
61
- }
62
- return type;
63
- }
64
- export function getRefName(ref) {
65
- const { scope, name } = getRefScopeAndName(ref);
66
- return [...scope, name].join(".");
67
- }
68
- export function getRefScopeAndName(ref) {
69
- const parts = ref.split("/");
70
- const name = parts.pop() ?? "";
71
- const scopeAndName = getScopeAndName(name);
72
- return scopeAndName;
73
- }
74
- function getAnyOfType(schema) {
75
- const definitions = [];
76
- for (const item of schema.anyOf ?? []) {
77
- definitions.push(generateTypeFromSchema(item));
78
- }
79
- return definitions.join(" | ");
80
- }
81
- function getOneOfType(schema) {
82
- const definitions = [];
83
- for (const item of schema.oneOf ?? []) {
84
- definitions.push(generateTypeFromSchema(item));
85
- }
86
- return definitions.join(" | ");
87
- }
88
- function getObjectType(schema) {
89
- // If we have `additionalProperties`, treat that as an 'indexer' and convert to a record.
90
- const recordType = typeof schema.additionalProperties === "object"
91
- ? `Record<${getTypeFromRefableSchema(schema.additionalProperties)}>`
92
- : "";
93
- if (!schema.properties && recordType) {
94
- return recordType;
95
- }
96
- const requiredProps = schema.required ?? [];
97
- const props = [];
98
- if (schema.properties) {
99
- for (const name of Object.keys(schema.properties)) {
100
- const decorators = generateDecorators(getDecoratorsForSchema(schema.properties[name]))
101
- .map((d) => `${d}\n`)
102
- .join("");
103
- const isOptional = !requiredProps.includes(name) ? "?" : "";
104
- props.push(`${decorators}${printIdentifier(name)}${isOptional}: ${getTypeFromRefableSchema(schema.properties[name])}`);
105
- }
106
- }
107
- const propertyCount = Object.keys(props).length;
108
- if (recordType && !propertyCount) {
109
- return recordType;
110
- }
111
- else if (recordType && propertyCount) {
112
- props.push(`...${recordType}`);
113
- }
114
- return `{${props.join("; ")}}`;
115
- }
116
- export function getArrayType(schema) {
117
- const items = schema.items;
118
- if (!items) {
119
- return "unknown[]";
120
- }
121
- if ("$ref" in items) {
122
- return `${getRefName(items.$ref)}[]`;
123
- }
124
- // Prettier will get rid of the extra parenthesis for us
125
- return `(${getTypeFromSchema(items)})[]`;
126
- }
127
- export function getIntegerType(schema) {
156
+ function getIntegerType(schema) {
128
157
  const format = schema.format ?? "";
129
158
  switch (format) {
130
159
  case "int8":
@@ -142,7 +171,7 @@ export function getIntegerType(schema) {
142
171
  return "integer";
143
172
  }
144
173
  }
145
- export function getNumberType(schema) {
174
+ function getNumberType(schema) {
146
175
  const format = schema.format ?? "";
147
176
  switch (format) {
148
177
  case "decimal":
@@ -157,7 +186,7 @@ export function getNumberType(schema) {
157
186
  return "numeric";
158
187
  }
159
188
  }
160
- export function getStringType(schema) {
189
+ function getStringType(schema) {
161
190
  const format = schema.format ?? "";
162
191
  let type = "string";
163
192
  switch (format) {
@@ -1 +1 @@
1
- {"version":3,"file":"generate-types.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-types.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-types.ts"],"names":[],"mappings":"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"}
@@ -51,6 +51,7 @@ export interface TypeSpecModel extends TypeSpecDeclaration {
51
51
  * Defaults to 'object'
52
52
  */
53
53
  type?: OpenAPI3Schema["type"];
54
+ spread?: string[];
54
55
  }
55
56
  export interface TypeSpecAlias extends Pick<TypeSpecDeclaration, "name" | "doc" | "scope"> {
56
57
  kind: "alias";
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/interfaces.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { OpenAPI3Components } from "../../../../types.js";
2
- import { TypeSpecModel } from "../interfaces.js";
1
+ import { TypeSpecDataTypes } from "../interfaces.js";
2
+ import { Context } from "../utils/context.js";
3
3
  /**
4
4
  * Transforms #/components/parameters into TypeSpec models.
5
5
  * Overwrites properties of existing models if an existing model already exists.
@@ -8,5 +8,5 @@ import { TypeSpecModel } from "../interfaces.js";
8
8
  * @param parameters
9
9
  * @returns
10
10
  */
11
- export declare function transformComponentParameters(models: TypeSpecModel[], parameters?: OpenAPI3Components["parameters"]): void;
11
+ export declare function transformComponentParameters(context: Context, dataTypes: TypeSpecDataTypes[]): void;
12
12
  //# sourceMappingURL=transform-component-parameters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transform-component-parameters.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-component-parameters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAqB,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAyB,MAAM,kBAAkB,CAAC;AAIxE;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,aAAa,EAAE,EACvB,UAAU,CAAC,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAC5C,IAAI,CAON"}
1
+ {"version":3,"file":"transform-component-parameters.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-component-parameters.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAyB,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAI9C;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,iBAAiB,EAAE,GAC7B,IAAI,CAQN"}
@@ -1,6 +1,6 @@
1
1
  import { printIdentifier } from "@typespec/compiler";
2
2
  import { getParameterDecorators } from "../utils/decorators.js";
3
- import { getScopeAndName, scopesMatch } from "../utils/get-scope-and-name.js";
3
+ import { getScopeAndName } from "../utils/get-scope-and-name.js";
4
4
  /**
5
5
  * Transforms #/components/parameters into TypeSpec models.
6
6
  * Overwrites properties of existing models if an existing model already exists.
@@ -9,39 +9,26 @@ import { getScopeAndName, scopesMatch } from "../utils/get-scope-and-name.js";
9
9
  * @param parameters
10
10
  * @returns
11
11
  */
12
- export function transformComponentParameters(models, parameters) {
12
+ export function transformComponentParameters(context, dataTypes) {
13
+ const parameters = context.openApi3Doc.components?.parameters;
13
14
  if (!parameters)
14
15
  return;
15
16
  for (const name of Object.keys(parameters)) {
16
17
  const parameter = parameters[name];
17
- transformComponentParameter(models, name, parameter);
18
+ transformComponentParameter(dataTypes, name, parameter);
18
19
  }
19
20
  }
20
- function transformComponentParameter(models, key, parameter) {
21
+ function transformComponentParameter(dataTypes, key, parameter) {
21
22
  const { name, scope } = getScopeAndName(key);
22
- // Get the model name this parameter belongs to
23
- const modelName = scope.length > 0 ? scope.pop() : name;
24
- // find a matching model, or create one if it doesn't exist
25
- let model = models.find((m) => m.name === modelName && scopesMatch(m.scope, scope));
26
- if (!model) {
27
- model = {
28
- kind: "model",
29
- scope,
30
- name: modelName,
31
- decorators: [],
32
- properties: [],
33
- };
34
- models.push(model);
35
- }
36
- const modelProperty = getModelPropertyFromParameter(parameter);
37
- // Check if the model already has a property of the matching name
38
- const propIndex = model.properties.findIndex((p) => p.name === modelProperty.name);
39
- if (propIndex >= 0) {
40
- model.properties[propIndex] = modelProperty;
41
- }
42
- else {
43
- model.properties.push(modelProperty);
44
- }
23
+ // Parameters should live in the root Parameters namespace
24
+ scope.unshift("Parameters");
25
+ dataTypes.push({
26
+ kind: "model",
27
+ scope,
28
+ name,
29
+ decorators: [],
30
+ properties: [getModelPropertyFromParameter(parameter)],
31
+ });
45
32
  }
46
33
  function getModelPropertyFromParameter(parameter) {
47
34
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"transform-component-parameters.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-component-parameters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE9E;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAC1C,MAAuB,EACvB,UAA6C;IAE7C,IAAI,CAAC,UAAU;QAAE,OAAO;IAExB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QACnC,2BAA2B,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAClC,MAAuB,EACvB,GAAW,EACX,SAA4B;IAE5B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAC7C,+CAA+C;IAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAEzD,2DAA2D;IAC3D,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACpF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG;YACN,IAAI,EAAE,OAAO;YACb,KAAK;YACL,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,EAAE;SACf,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,aAAa,GAAG,6BAA6B,CAAC,SAAS,CAAC,CAAC;IAE/D,iEAAiE;IACjE,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC;IACnF,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,SAAS,6BAA6B,CAAC,SAA4B;IACjE,OAAO;QACL,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC;QACrC,UAAU,EAAE,CAAC,SAAS,CAAC,QAAQ;QAC/B,GAAG,EAAE,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,MAAM,CAAC,WAAW;QAC1D,UAAU,EAAE,sBAAsB,CAAC,SAAS,CAAC;QAC7C,MAAM,EAAE,SAAS,CAAC,MAAM;KACzB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"transform-component-parameters.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-component-parameters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAIrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAC1C,OAAgB,EAChB,SAA8B;IAE9B,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC;IAC9D,IAAI,CAAC,UAAU;QAAE,OAAO;IAExB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QACnC,2BAA2B,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAClC,SAA8B,EAC9B,GAAW,EACX,SAA4B;IAE5B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAC7C,0DAA0D;IAC1D,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAE5B,SAAS,CAAC,IAAI,CAAC;QACb,IAAI,EAAE,OAAO;QACb,KAAK;QACL,IAAI;QACJ,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC;KACvD,CAAC,CAAC;AACL,CAAC;AAED,SAAS,6BAA6B,CAAC,SAA4B;IACjE,OAAO;QACL,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC;QACrC,UAAU,EAAE,CAAC,SAAS,CAAC,QAAQ;QAC/B,GAAG,EAAE,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,MAAM,CAAC,WAAW;QAC1D,UAAU,EAAE,sBAAsB,CAAC,SAAS,CAAC;QAC7C,MAAM,EAAE,SAAS,CAAC,MAAM;KACzB,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
- import { OpenAPI3Components } from "../../../../types.js";
2
1
  import { TypeSpecModel } from "../interfaces.js";
2
+ import { Context } from "../utils/context.js";
3
3
  /**
4
4
  * Transforms #/components/schemas into TypeSpec models.
5
5
  * Populates the provided `models` array in-place.
@@ -7,5 +7,5 @@ import { TypeSpecModel } from "../interfaces.js";
7
7
  * @param schemas
8
8
  * @returns
9
9
  */
10
- export declare function transformComponentSchemas(models: TypeSpecModel[], schemas?: OpenAPI3Components["schemas"]): void;
10
+ export declare function transformComponentSchemas(context: Context, models: TypeSpecModel[]): void;
11
11
  //# sourceMappingURL=transform-component-schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transform-component-schemas.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-component-schemas.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAA2B,MAAM,sBAAsB,CAAC;AAQnF,OAAO,EAGL,aAAa,EAGd,MAAM,kBAAkB,CAAC;AAI1B;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,aAAa,EAAE,EACvB,OAAO,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,GACtC,IAAI,CAON"}
1
+ {"version":3,"file":"transform-component-schemas.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-component-schemas.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,aAAa,EAGd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAI9C;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAsKzF"}