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

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 (50) 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 +26 -30
  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/transforms/transform-component-parameters.d.ts +3 -3
  31. package/dist/src/cli/actions/convert/transforms/transform-component-parameters.d.ts.map +1 -1
  32. package/dist/src/cli/actions/convert/transforms/transform-component-parameters.js +14 -27
  33. package/dist/src/cli/actions/convert/transforms/transform-component-parameters.js.map +1 -1
  34. package/dist/src/cli/actions/convert/transforms/transform-component-schemas.d.ts +2 -2
  35. package/dist/src/cli/actions/convert/transforms/transform-component-schemas.d.ts.map +1 -1
  36. package/dist/src/cli/actions/convert/transforms/transform-component-schemas.js +91 -96
  37. package/dist/src/cli/actions/convert/transforms/transform-component-schemas.js.map +1 -1
  38. package/dist/src/cli/actions/convert/transforms/transforms.d.ts +2 -2
  39. package/dist/src/cli/actions/convert/transforms/transforms.d.ts.map +1 -1
  40. package/dist/src/cli/actions/convert/transforms/transforms.js +6 -6
  41. package/dist/src/cli/actions/convert/transforms/transforms.js.map +1 -1
  42. package/dist/src/cli/actions/convert/utils/context.d.ts +9 -0
  43. package/dist/src/cli/actions/convert/utils/context.d.ts.map +1 -0
  44. package/dist/src/cli/actions/convert/utils/context.js +18 -0
  45. package/dist/src/cli/actions/convert/utils/context.js.map +1 -0
  46. package/dist/src/cli/actions/convert/utils/generate-namespace-name.d.ts +2 -0
  47. package/dist/src/cli/actions/convert/utils/generate-namespace-name.d.ts.map +1 -0
  48. package/dist/src/cli/actions/convert/utils/generate-namespace-name.js +4 -0
  49. package/dist/src/cli/actions/convert/utils/generate-namespace-name.js.map +1 -0
  50. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"convert-file.d.ts","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/convert-file.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAI3C,wBAAsB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,iBA+BtE"}
1
+ {"version":3,"file":"convert-file.d.ts","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/convert-file.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAK3C,wBAAsB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,iBAgCtE"}
@@ -3,14 +3,16 @@ import { formatTypeSpec, resolvePath } from "@typespec/compiler";
3
3
  import { handleInternalCompilerError } from "../../utils.js";
4
4
  import { generateMain } from "./generators/generate-main.js";
5
5
  import { transform } from "./transforms/transforms.js";
6
+ import { createContext } from "./utils/context.js";
6
7
  export async function convertAction(host, args) {
7
8
  // attempt to read the file
8
9
  const fullPath = resolvePath(process.cwd(), args.path);
9
10
  const model = await parseOpenApiFile(fullPath);
10
- const program = transform(model);
11
+ const context = createContext(model);
12
+ const program = transform(context);
11
13
  let mainTsp;
12
14
  try {
13
- mainTsp = generateMain(program);
15
+ mainTsp = generateMain(program, context);
14
16
  }
15
17
  catch (err) {
16
18
  handleInternalCompilerError(err);
@@ -1 +1 @@
1
- {"version":3,"file":"convert-file.js","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/convert-file.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAa,EAAE,IAAoB;IACrE,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,2BAA2B,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,WAAW,CAAC;IAChB,2DAA2D;IAC3D,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE;YACtC,UAAU,EAAE,GAAG;YACf,QAAQ,EAAE,CAAC;SACZ,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,GAAG,GAAG,CAAC;IACpB,CAAC;IAED,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACtC,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,2BAA2B,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAA8B,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"convert-file.js","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/convert-file.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAa,EAAE,IAAoB;IACrE,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,2BAA2B,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,WAAW,CAAC;IAChB,2DAA2D;IAC3D,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE;YACtC,UAAU,EAAE,GAAG;YACf,QAAQ,EAAE,CAAC;SACZ,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,GAAG,GAAG,CAAC;IACpB,CAAC;IAED,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACtC,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,2BAA2B,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAA8B,CAAC;AAC5D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/convert.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAIrD,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,gBAAgB,mBAWvE"}
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/convert.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAKrD,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,gBAAgB,mBAYvE"}
@@ -1,9 +1,11 @@
1
1
  import { formatTypeSpec } from "@typespec/compiler";
2
2
  import { generateMain } from "./generators/generate-main.js";
3
3
  import { transform } from "./transforms/transforms.js";
4
+ import { createContext } from "./utils/context.js";
4
5
  export async function convertOpenAPI3Document(document) {
5
- const program = transform(document);
6
- const content = generateMain(program);
6
+ const context = createContext(document);
7
+ const program = transform(context);
8
+ const content = generateMain(program, context);
7
9
  try {
8
10
  return await formatTypeSpec(content, {
9
11
  printWidth: 100,
@@ -1 +1 @@
1
- {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,QAA0B;IACtE,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC;QACH,OAAO,MAAM,cAAc,CAAC,OAAO,EAAE;YACnC,UAAU,EAAE,GAAG;YACf,QAAQ,EAAE,CAAC;SACZ,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,QAA0B;IACtE,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,IAAI,CAAC;QACH,OAAO,MAAM,cAAc,CAAC,OAAO,EAAE;YACnC,UAAU,EAAE,GAAG;YACf,QAAQ,EAAE,CAAC;SACZ,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC"}
@@ -1,3 +1,4 @@
1
1
  import { TypeSpecProgram } from "../interfaces.js";
2
- export declare function generateMain(program: TypeSpecProgram): string;
2
+ import { Context } from "../utils/context.js";
3
+ export declare function generateMain(program: TypeSpecProgram, context: Context): string;
3
4
  //# sourceMappingURL=generate-main.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-main.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAMnD,wBAAgB,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAmB7D"}
1
+ {"version":3,"file":"generate-main.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAM9C,wBAAgB,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAmB/E"}
@@ -2,7 +2,7 @@ import { generateDataType } from "./generate-model.js";
2
2
  import { generateNamespace } from "./generate-namespace.js";
3
3
  import { generateOperation } from "./generate-operation.js";
4
4
  import { generateServiceInformation } from "./generate-service-info.js";
5
- export function generateMain(program) {
5
+ export function generateMain(program, context) {
6
6
  return `
7
7
  import "@typespec/http";
8
8
  import "@typespec/openapi";
@@ -13,12 +13,12 @@ export function generateMain(program) {
13
13
 
14
14
  ${generateServiceInformation(program.serviceInfo)}
15
15
 
16
- ${program.types.map(generateDataType).join("\n\n")}
16
+ ${program.types.map((t) => generateDataType(t, context)).join("\n\n")}
17
17
 
18
- ${program.operations.map(generateOperation).join("\n\n")}
18
+ ${program.operations.map((o) => generateOperation(o, context)).join("\n\n")}
19
19
 
20
20
  ${Object.entries(program.namespaces)
21
- .map(([name, namespace]) => generateNamespace(name, namespace))
21
+ .map(([name, namespace]) => generateNamespace(name, namespace, context))
22
22
  .join("\n\n")}
23
23
  `;
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generate-main.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-main.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAExE,MAAM,UAAU,YAAY,CAAC,OAAwB;IACnD,OAAO;;;;;;;;IAQL,0BAA0B,CAAC,OAAO,CAAC,WAAW,CAAC;;IAE/C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;IAEhD,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;IAEtD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;SACjC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;SAC9D,IAAI,CAAC,MAAM,CAAC;GACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"generate-main.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-main.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAExE,MAAM,UAAU,YAAY,CAAC,OAAwB,EAAE,OAAgB;IACrE,OAAO;;;;;;;;IAQL,0BAA0B,CAAC,OAAO,CAAC,WAAW,CAAC;;IAE/C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;IAEnE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;IAEzE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;SACjC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;SACvE,IAAI,CAAC,MAAM,CAAC;GACd,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import { TypeSpecDataTypes, TypeSpecModel } from "../interfaces.js";
2
- export declare function generateDataType(type: TypeSpecDataTypes): string;
3
- export declare function generateModel(model: TypeSpecModel): string;
1
+ import { TypeSpecDataTypes } from "../interfaces.js";
2
+ import { Context } from "../utils/context.js";
3
+ export declare function generateDataType(type: TypeSpecDataTypes, context: Context): string;
4
4
  //# sourceMappingURL=generate-model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-model.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-model.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,iBAAiB,EAEjB,aAAa,EAId,MAAM,kBAAkB,CAAC;AAU1B,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAahE;AAsFD,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAoB1D"}
1
+ {"version":3,"file":"generate-model.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EAKlB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAM9C,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAalF"}
@@ -1,27 +1,27 @@
1
1
  import { getDecoratorsForSchema } from "../utils/decorators.js";
2
2
  import { generateDocs } from "../utils/docs.js";
3
3
  import { generateDecorators } from "./generate-decorators.js";
4
- import { generateTypeFromSchema, getRefScopeAndName, getTypeSpecPrimitiveFromSchema, } from "./generate-types.js";
5
- export function generateDataType(type) {
4
+ import { getTypeSpecPrimitiveFromSchema } from "./generate-types.js";
5
+ export function generateDataType(type, context) {
6
6
  switch (type.kind) {
7
7
  case "alias":
8
- return generateAlias(type);
8
+ return generateAlias(type, context);
9
9
  case "enum":
10
10
  return generateEnum(type);
11
11
  case "model":
12
- return generateModel(type);
12
+ return generateModel(type, context);
13
13
  case "scalar":
14
- return generateScalar(type);
14
+ return generateScalar(type, context);
15
15
  case "union":
16
- return generateUnion(type);
16
+ return generateUnion(type, context);
17
17
  }
18
18
  }
19
- function generateAlias(alias) {
19
+ function generateAlias(alias, context) {
20
20
  // Since aliases are not represented in the TypeGraph,
21
21
  // generate a model so that the model name is present in emitted OpenAPI3.
22
22
  // May revisit to allow emitting actual alias.
23
- const { scope, name } = getRefScopeAndName(alias.ref);
24
- return `model ${alias.name} is ${[...scope, name].join(".")};`;
23
+ const sourceModel = context.getRefName(alias.ref, alias.scope);
24
+ return `model ${alias.name} is ${sourceModel};`;
25
25
  }
26
26
  function generateEnum(tsEnum) {
27
27
  const definitions = [];
@@ -37,17 +37,17 @@ function generateEnum(tsEnum) {
37
37
  definitions.push("}");
38
38
  return definitions.join("\n");
39
39
  }
40
- function generateScalar(scalar) {
40
+ function generateScalar(scalar, context) {
41
41
  const definitions = [];
42
42
  if (scalar.doc) {
43
43
  definitions.push(generateDocs(scalar.doc));
44
44
  }
45
45
  definitions.push(...generateDecorators(scalar.decorators));
46
- const type = generateTypeFromSchema(scalar.schema);
46
+ const type = context.generateTypeFromRefableSchema(scalar.schema, scalar.scope);
47
47
  definitions.push(`scalar ${scalar.name} extends ${type};`);
48
48
  return definitions.join("\n");
49
49
  }
50
- function generateUnion(union) {
50
+ function generateUnion(union, context) {
51
51
  const definitions = [];
52
52
  if (union.doc) {
53
53
  definitions.push(generateDocs(union.doc));
@@ -59,10 +59,10 @@ function generateUnion(union) {
59
59
  definitions.push(...schema.enum.map((e) => `${JSON.stringify(e)},`));
60
60
  }
61
61
  else if (schema.oneOf) {
62
- definitions.push(...schema.oneOf.map(generateUnionMember));
62
+ definitions.push(...schema.oneOf.map((member) => context.generateTypeFromRefableSchema(member, union.scope)));
63
63
  }
64
64
  else if (schema.anyOf) {
65
- definitions.push(...schema.anyOf.map(generateUnionMember));
65
+ definitions.push(...schema.anyOf.map((member) => context.generateTypeFromRefableSchema(member, union.scope)));
66
66
  }
67
67
  else {
68
68
  // check if it's a primitive type
@@ -77,10 +77,7 @@ function generateUnion(union) {
77
77
  definitions.push("}");
78
78
  return definitions.join("\n");
79
79
  }
80
- function generateUnionMember(member) {
81
- return `${generateTypeFromSchema(member)},`;
82
- }
83
- export function generateModel(model) {
80
+ function generateModel(model, context) {
84
81
  const definitions = [];
85
82
  const modelDeclaration = generateModelDeclaration(model);
86
83
  if (model.doc) {
@@ -88,9 +85,18 @@ export function generateModel(model) {
88
85
  }
89
86
  definitions.push(...generateDecorators(model.decorators));
90
87
  definitions.push(modelDeclaration.open);
91
- definitions.push(...model.properties.map(generateModelProperty));
88
+ definitions.push(...model.properties.map((prop) => {
89
+ // Decorators will be a combination of top-level (parameters) and
90
+ // schema-level decorators.
91
+ const decorators = generateDecorators([
92
+ ...prop.decorators,
93
+ ...getDecoratorsForSchema(prop.schema),
94
+ ]).join(" ");
95
+ const doc = prop.doc ? generateDocs(prop.doc) : "";
96
+ return `${doc}${decorators} ${prop.name}${prop.isOptional ? "?" : ""}: ${context.generateTypeFromRefableSchema(prop.schema, model.scope)};`;
97
+ }));
92
98
  if (model.additionalProperties) {
93
- definitions.push(`...Record<${generateTypeFromSchema(model.additionalProperties)}>;`);
99
+ definitions.push(`...Record<${context.generateTypeFromRefableSchema(model.additionalProperties, model.scope)}>;`);
94
100
  }
95
101
  if (modelDeclaration.close)
96
102
  definitions.push(modelDeclaration.close);
@@ -110,14 +116,4 @@ function generateModelDeclaration(model) {
110
116
  }
111
117
  return { open: `model ${modelName} {`, close: "}" };
112
118
  }
113
- function generateModelProperty(property) {
114
- // Decorators will be a combination of top-level (parameters) and
115
- // schema-level decorators.
116
- const decorators = generateDecorators([
117
- ...property.decorators,
118
- ...getDecoratorsForSchema(property.schema),
119
- ]).join(" ");
120
- const doc = property.doc ? generateDocs(property.doc) : "";
121
- return `${doc}${decorators} ${property.name}${property.isOptional ? "?" : ""}: ${generateTypeFromSchema(property.schema)};`;
122
- }
123
119
  //# sourceMappingURL=generate-model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-model.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-model.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-model.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  import { TypeSpecNamespace } from "../interfaces.js";
2
- export declare function generateNamespace(name: string, namespace: TypeSpecNamespace): string;
2
+ import { Context } from "../utils/context.js";
3
+ export declare function generateNamespace(name: string, namespace: TypeSpecNamespace, context: Context): string;
3
4
  //# sourceMappingURL=generate-namespace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-namespace.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAIrD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,GAAG,MAAM,CAapF"}
1
+ {"version":3,"file":"generate-namespace.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAI9C,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,OAAO,GACf,MAAM,CAaR"}
@@ -1,12 +1,12 @@
1
1
  import { generateDataType } from "./generate-model.js";
2
2
  import { generateOperation } from "./generate-operation.js";
3
- export function generateNamespace(name, namespace) {
3
+ export function generateNamespace(name, namespace, context) {
4
4
  const definitions = [];
5
5
  definitions.push(`namespace ${name} {`);
6
- definitions.push(...namespace.types.map(generateDataType));
7
- definitions.push(...namespace.operations.map(generateOperation));
6
+ definitions.push(...namespace.types.map((t) => generateDataType(t, context)));
7
+ definitions.push(...namespace.operations.map((o) => generateOperation(o, context)));
8
8
  for (const [namespaceName, nestedNamespace] of Object.entries(namespace.namespaces)) {
9
- definitions.push(generateNamespace(namespaceName, nestedNamespace));
9
+ definitions.push(generateNamespace(namespaceName, nestedNamespace, context));
10
10
  }
11
11
  definitions.push("}");
12
12
  return definitions.join("\n");
@@ -1 +1 @@
1
- {"version":3,"file":"generate-namespace.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-namespace.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,SAA4B;IAC1E,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,WAAW,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC;IAExC,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC3D,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAEjE,KAAK,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QACpF,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"generate-namespace.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-namespace.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,SAA4B,EAC5B,OAAgB;IAEhB,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,WAAW,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC;IAExC,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9E,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAEpF,KAAK,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QACpF,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC"}
@@ -1,3 +1,4 @@
1
1
  import { TypeSpecOperation } from "../interfaces.js";
2
- export declare function generateOperation(operation: TypeSpecOperation): string;
2
+ import { Context } from "../utils/context.js";
3
+ export declare function generateOperation(operation: TypeSpecOperation, context: Context): string;
3
4
  //# sourceMappingURL=generate-operation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-operation.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-operation.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EAGlB,MAAM,kBAAkB,CAAC;AAK1B,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,iBAAiB,GAAG,MAAM,CAwBtE"}
1
+ {"version":3,"file":"generate-operation.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-operation.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EAGlB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAI9C,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAwBxF"}
@@ -1,7 +1,6 @@
1
1
  import { generateDocs } from "../utils/docs.js";
2
2
  import { generateDecorators } from "./generate-decorators.js";
3
- import { generateTypeFromSchema, getRefName } from "./generate-types.js";
4
- export function generateOperation(operation) {
3
+ export function generateOperation(operation, context) {
5
4
  const definitions = [];
6
5
  if (operation.doc) {
7
6
  definitions.push(generateDocs(operation.doc));
@@ -10,8 +9,8 @@ export function generateOperation(operation) {
10
9
  definitions.push(generateDecorators(operation.decorators).join(" "));
11
10
  // generate parameters
12
11
  const parameters = [
13
- ...operation.parameters.map(generateOperationParameter),
14
- ...generateRequestBodyParameters(operation.requestBodies),
12
+ ...operation.parameters.map((p) => generateOperationParameter(operation, p, context)),
13
+ ...generateRequestBodyParameters(operation.requestBodies, context),
15
14
  ];
16
15
  const responseTypes = operation.responseTypes.length
17
16
  ? operation.responseTypes.join(" | ")
@@ -19,24 +18,19 @@ export function generateOperation(operation) {
19
18
  definitions.push(`op ${operation.name}(${parameters.join(", ")}): ${responseTypes};`);
20
19
  return definitions.join(" ");
21
20
  }
22
- function generateOperationParameter(parameter) {
21
+ function generateOperationParameter(operation, parameter, context) {
23
22
  if ("$ref" in parameter) {
24
- // check if referencing a model or a property
25
- const refName = getRefName(parameter.$ref);
26
- const paramName = refName.indexOf(".") >= 0 ? refName.split(".").pop() : refName;
27
- // when refName and paramName match, we're referencing a model and can spread
28
- // TODO: Handle optionality
29
- return refName === paramName ? `...${refName}` : `${paramName}: ${refName}`;
23
+ return `...${context.getRefName(parameter.$ref, operation.scope)}`;
30
24
  }
31
25
  const definitions = [];
32
26
  if (parameter.doc) {
33
27
  definitions.push(generateDocs(parameter.doc));
34
28
  }
35
29
  definitions.push(...generateDecorators(parameter.decorators));
36
- definitions.push(`${parameter.name}${parameter.isOptional ? "?" : ""}: ${generateTypeFromSchema(parameter.schema)}`);
30
+ definitions.push(`${parameter.name}${parameter.isOptional ? "?" : ""}: ${context.generateTypeFromRefableSchema(parameter.schema, operation.scope)}`);
37
31
  return definitions.join(" ");
38
32
  }
39
- function generateRequestBodyParameters(requestBodies) {
33
+ function generateRequestBodyParameters(requestBodies, context) {
40
34
  if (!requestBodies.length) {
41
35
  return [];
42
36
  }
@@ -47,7 +41,9 @@ function generateRequestBodyParameters(requestBodies) {
47
41
  definitions.push(`@header contentType: ${contentTypes.map((c) => `"${c}"`).join(" | ")}`);
48
42
  }
49
43
  // Get the set of referenced types
50
- const body = Array.from(new Set(requestBodies.filter((r) => !!r.schema).map((r) => generateTypeFromSchema(r.schema)))).join(" | ");
44
+ const body = Array.from(new Set(requestBodies
45
+ .filter((r) => !!r.schema)
46
+ .map((r) => context.generateTypeFromRefableSchema(r.schema, [])))).join(" | ");
51
47
  if (body) {
52
48
  definitions.push(`@bodyRoot body: ${body}`);
53
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generate-operation.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-operation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-operation.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-operation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate-service-info.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-service-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvD,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,mBAAmB,GAAG,MAAM,CAmBnF"}
1
+ {"version":3,"file":"generate-service-info.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-service-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAIvD,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,mBAAmB,GAAG,MAAM,CAmBnF"}
@@ -1,4 +1,5 @@
1
1
  import { generateDocs } from "../utils/docs.js";
2
+ import { generateNamespaceName } from "../utils/generate-namespace-name.js";
2
3
  export function generateServiceInformation(serviceInfo) {
3
4
  const definitions = [];
4
5
  const { name, doc, ...info } = serviceInfo;
@@ -14,7 +15,4 @@ export function generateServiceInformation(serviceInfo) {
14
15
  definitions.push(`namespace ${generateNamespaceName(name)};`);
15
16
  return definitions.join("\n");
16
17
  }
17
- function generateNamespaceName(name) {
18
- return name.replaceAll(/[^\w^\d_]+/g, "");
19
- }
20
18
  //# sourceMappingURL=generate-service-info.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-service-info.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-service-info.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,UAAU,0BAA0B,CAAC,WAAgC;IACzE,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,WAAW,CAAC;IAE3C,WAAW,CAAC,IAAI,CAAC;;gBAEH,IAAI;;YAER,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IAEL,IAAI,GAAG,EAAE,CAAC;QACR,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,WAAW,CAAC,IAAI,CAAC,aAAa,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE9D,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY;IACzC,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"generate-service-info.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-service-info.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,MAAM,UAAU,0BAA0B,CAAC,WAAgC;IACzE,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,WAAW,CAAC;IAE3C,WAAW,CAAC,IAAI,CAAC;;gBAEH,IAAI;;YAER,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IAEL,IAAI,GAAG,EAAE,CAAC;QACR,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,WAAW,CAAC,IAAI,CAAC,aAAa,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE9D,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC"}
@@ -1,11 +1,15 @@
1
1
  import { OpenAPI3Schema, Refable } from "../../../../types.js";
2
- import { getScopeAndName } from "../utils/get-scope-and-name.js";
3
- export declare function generateTypeFromSchema(schema: Refable<OpenAPI3Schema>): string;
2
+ export declare class SchemaToExpressionGenerator {
3
+ rootNamespace: string;
4
+ constructor(rootNamespace: string);
5
+ generateTypeFromRefableSchema(schema: Refable<OpenAPI3Schema>, callingScope: string[]): string;
6
+ generateArrayType(schema: OpenAPI3Schema, callingScope: string[]): string;
7
+ getRefName(ref: string, callingScope: string[]): string;
8
+ private getRefScopeAndName;
9
+ private getTypeFromSchema;
10
+ private getAnyOfType;
11
+ private getOneOfType;
12
+ private getObjectType;
13
+ }
4
14
  export declare function getTypeSpecPrimitiveFromSchema(schema: OpenAPI3Schema): string | undefined;
5
- export declare function getRefName(ref: string): string;
6
- export declare function getRefScopeAndName(ref: string): ReturnType<typeof getScopeAndName>;
7
- export declare function getArrayType(schema: OpenAPI3Schema): string;
8
- export declare function getIntegerType(schema: OpenAPI3Schema): string;
9
- export declare function getNumberType(schema: OpenAPI3Schema): string;
10
- export declare function getStringType(schema: OpenAPI3Schema): string;
11
15
  //# sourceMappingURL=generate-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-types.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGjE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,MAAM,CAE9E;AAOD,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAWzF;AAoCD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAMlF;AA0DD,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAY3D;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAiB7D;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAc5D;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA2B5D"}
1
+ {"version":3,"file":"generate-types.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAK/D,qBAAa,2BAA2B;IACnB,aAAa,EAAE,MAAM;gBAArB,aAAa,EAAE,MAAM;IAEjC,6BAA6B,CAClC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAC/B,YAAY,EAAE,MAAM,EAAE,GACrB,MAAM;IAOF,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM;IAczE,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM;IAK9D,OAAO,CAAC,kBAAkB;IAoC1B,OAAO,CAAC,iBAAiB;IAkCzB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,aAAa;CAmCtB;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAWzF"}