@typespec/openapi3 1.6.0-dev.5 → 1.6.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.
@@ -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;AAK3C,wBAAsB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,iBAiCtE"}
1
+ {"version":3,"file":"convert-file.d.ts","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/convert-file.ts"],"names":[],"mappings":"AAMA,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,iBAsCtE"}
@@ -1,4 +1,6 @@
1
- import OpenAPIParser from "@apidevtools/swagger-parser";
1
+ import { bundle } from "@scalar/json-magic/bundle";
2
+ import { fetchUrls, parseJson, parseYaml } from "@scalar/json-magic/bundle/plugins/browser";
3
+ import { readFiles } from "@scalar/json-magic/bundle/plugins/node";
2
4
  import { formatTypeSpec, resolvePath } from "@typespec/compiler";
3
5
  import { handleInternalCompilerError } from "../../utils.js";
4
6
  import { generateMain } from "./generators/generate-main.js";
@@ -7,9 +9,14 @@ import { createContext } from "./utils/context.js";
7
9
  export async function convertAction(host, args) {
8
10
  // attempt to read the file
9
11
  const fullPath = resolvePath(process.cwd(), args.path);
10
- const parser = new OpenAPIParser();
11
- const model = await parser.bundle(fullPath);
12
- const context = createContext(parser, model, console, args.namespace);
12
+ const data = (await bundle(fullPath, {
13
+ plugins: [readFiles(), fetchUrls(), parseYaml(), parseJson()],
14
+ treeShake: false,
15
+ }));
16
+ if (!data) {
17
+ throw new Error("Failed to load OpenAPI document");
18
+ }
19
+ const context = createContext(data, console, args.namespace);
13
20
  const program = transform(context);
14
21
  let mainTsp;
15
22
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"convert-file.js","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/convert-file.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,6BAA6B,CAAC;AACxD,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,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,KAAyB,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1F,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"}
1
+ {"version":3,"file":"convert-file.js","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/convert-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAC;AAC5F,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAEnE,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,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,EAAE;QACnC,OAAO,EAAE,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC;QAC7D,SAAS,EAAE,KAAK;KACjB,CAAC,CAAqB,CAAC;IACxB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAwB,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACjF,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"}
@@ -1 +1 @@
1
- {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/convert.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAKrD,MAAM,WAAW,8BAA8B;IAC7C;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,gBAAgB,EAC1B,EAAE,mBAAmB,EAAE,SAAS,EAAE,GAAE,8BAAmC,mBAoBxE"}
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/convert.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAKrD,MAAM,WAAW,8BAA8B;IAC7C;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,gBAAgB,EAC1B,EAAE,mBAAmB,EAAE,SAAS,EAAE,GAAE,8BAAmC,mBA2BxE"}
@@ -1,17 +1,24 @@
1
- import OpenAPIParser from "@apidevtools/swagger-parser";
1
+ import { dereference } from "@scalar/openapi-parser";
2
2
  import { formatTypeSpec } from "@typespec/compiler";
3
3
  import { generateMain } from "./generators/generate-main.js";
4
4
  import { transform } from "./transforms/transforms.js";
5
5
  import { createContext } from "./utils/context.js";
6
6
  export async function convertOpenAPI3Document(document, { disableExternalRefs, namespace } = {}) {
7
- const parser = new OpenAPIParser();
8
- const bundleOptions = disableExternalRefs
7
+ const dereferenceOptions = disableExternalRefs
9
8
  ? {
10
- resolve: { external: false, http: false, file: false },
9
+ onDereference: (data) => {
10
+ if (data.ref.startsWith("#")) {
11
+ return;
12
+ }
13
+ throw new Error(`External $ref pointers are disabled, but found $ref: ${data.ref}`);
14
+ },
11
15
  }
12
16
  : {};
13
- await parser.bundle(document, bundleOptions);
14
- const context = createContext(parser, document, console, namespace);
17
+ const { specification } = await dereference(document, dereferenceOptions);
18
+ if (!specification) {
19
+ throw new Error("Failed to dereference OpenAPI document");
20
+ }
21
+ const context = createContext(document, console, namespace);
15
22
  const program = transform(context);
16
23
  const content = generateMain(program, context);
17
24
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/convert.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,6BAA6B,CAAC;AACxD,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;AAanD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,QAA0B,EAC1B,EAAE,mBAAmB,EAAE,SAAS,KAAqC,EAAE;IAEvE,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;IACnC,MAAM,aAAa,GAAG,mBAAmB;QACvC,CAAC,CAAC;YACE,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;SACvD;QACH,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,MAAM,CAAC,MAAM,CAAC,QAAe,EAAE,aAAa,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACpE,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
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAChE,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;AAanD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,QAA0B,EAC1B,EAAE,mBAAmB,EAAE,SAAS,KAAqC,EAAE;IAEvE,MAAM,kBAAkB,GAAG,mBAAmB;QAC5C,CAAC,CAAC;YACE,aAAa,EAAE,CAAC,IAAwC,EAAQ,EAAE;gBAChE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7B,OAAO;gBACT,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,wDAAwD,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACtF,CAAC;SACF;QACH,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IAC1E,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAC5D,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,4 +1,3 @@
1
- import type OpenAPIParser from "@apidevtools/swagger-parser";
2
1
  import { OpenAPI3Document, OpenAPI3Encoding, OpenAPI3Schema, Refable } from "../../../../types.js";
3
2
  import { Logger } from "../../../types.js";
4
3
  export interface Context {
@@ -28,8 +27,5 @@ export interface Context {
28
27
  */
29
28
  getPartType(propType: string, name: string, isHttpPart: boolean, encoding: Record<string, OpenAPI3Encoding> | undefined, isEnumType: boolean, isUnionType: boolean): string;
30
29
  }
31
- export type Parser = {
32
- $refs: OpenAPIParser["$refs"];
33
- };
34
- export declare function createContext(parser: Parser, openApi3Doc: OpenAPI3Document, logger?: Logger, namespace?: string): Context;
30
+ export declare function createContext(openApi3Doc: OpenAPI3Document, logger?: Logger, namespace?: string): Context;
35
31
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/utils/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3C,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,6BAA6B,CAC3B,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAC/B,YAAY,EAAE,MAAM,EAAE,EACtB,UAAU,CAAC,EAAE,OAAO,EACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAC1C,MAAM,CAAC;IACV,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACxD,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAExC;;;OAGG;IACH,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAExF;;OAEG;IACH,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,SAAS,CAAC;IACtF;;OAEG;IACH,2CAA2C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAClE;;;OAGG;IACH,WAAW,CACT,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,OAAO,EACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,SAAS,EACtD,UAAU,EAAE,OAAO,EACnB,WAAW,EAAE,OAAO,GACnB,MAAM,CAAC;CACX;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;CAC/B,CAAC;AAEF,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,gBAAgB,EAC7B,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAyET"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/utils/context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EAEd,OAAO,EACR,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3C,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,6BAA6B,CAC3B,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAC/B,YAAY,EAAE,MAAM,EAAE,EACtB,UAAU,CAAC,EAAE,OAAO,EACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAC1C,MAAM,CAAC;IACV,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACxD,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAExC;;;OAGG;IACH,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAExF;;OAEG;IACH,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,SAAS,CAAC;IACtF;;OAEG;IACH,2CAA2C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAClE;;;OAGG;IACH,WAAW,CACT,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,OAAO,EACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,SAAS,EACtD,UAAU,EAAE,OAAO,EACnB,WAAW,EAAE,OAAO,GACnB,MAAM,CAAC;CACX;AAED,wBAAgB,aAAa,CAC3B,WAAW,EAAE,gBAAgB,EAC7B,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAoGT"}
@@ -1,6 +1,6 @@
1
1
  import { SchemaToExpressionGenerator } from "../generators/generate-types.js";
2
2
  import { generateNamespaceName } from "./generate-namespace-name.js";
3
- export function createContext(parser, openApi3Doc, logger, namespace) {
3
+ export function createContext(openApi3Doc, logger, namespace) {
4
4
  const rootNamespace = namespace
5
5
  ? generateNamespaceName(namespace)
6
6
  : generateNamespaceName(openApi3Doc.info.title);
@@ -27,7 +27,32 @@ export function createContext(parser, openApi3Doc, logger, namespace) {
27
27
  return this.getByRef(ref);
28
28
  },
29
29
  getByRef(ref) {
30
- return parser.$refs.get(ref);
30
+ const splitRef = ref.split("/");
31
+ const componentKind = splitRef[2]; // #/components/schemas/Pet -> components
32
+ const componentName = splitRef[3]; // #/components/schemas/Pet -> Pet
33
+ switch (componentKind) {
34
+ case "schemas":
35
+ return openApi3Doc.components?.schemas?.[componentName];
36
+ case "responses":
37
+ return openApi3Doc.components?.responses?.[componentName];
38
+ case "parameters":
39
+ return openApi3Doc.components?.parameters?.[componentName];
40
+ case "examples":
41
+ return openApi3Doc.components?.examples?.[componentName];
42
+ case "requestBodies":
43
+ return openApi3Doc.components?.requestBodies?.[componentName];
44
+ case "headers":
45
+ return openApi3Doc.components?.headers?.[componentName];
46
+ case "securitySchemes":
47
+ return openApi3Doc.components?.securitySchemes?.[componentName];
48
+ case "links":
49
+ return openApi3Doc.components?.links?.[componentName];
50
+ case "callbacks":
51
+ return openApi3Doc.components?.callbacks?.[componentName];
52
+ default:
53
+ this.logger.warn(`Unsupported component kind in $ref: ${ref}`);
54
+ return undefined;
55
+ }
31
56
  },
32
57
  registerMultipartSchema(ref, encoding) {
33
58
  multipartSchemas.set(ref, encoding ?? null);
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/utils/context.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAiDrE,MAAM,UAAU,aAAa,CAC3B,MAAc,EACd,WAA6B,EAC7B,MAAe,EACf,SAAkB;IAElB,MAAM,aAAa,GAAG,SAAS;QAC7B,CAAC,CAAC,qBAAqB,CAAC,SAAS,CAAC;QAClC,CAAC,CAAC,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,yBAAyB,GAAG,IAAI,2BAA2B,CAAC,aAAa,CAAC,CAAC;IAEjF,iFAAiF;IACjF,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAmD,CAAC;IAEpF,iDAAiD;IACjD,MAAM,aAAa,GAAW;QAC5B,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;QACf,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;QACd,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;KAChB,CAAC;IAEF,MAAM,OAAO,GAAY;QACvB,WAAW;QACX,aAAa;QACb,MAAM,EAAE,MAAM,IAAI,aAAa;QAC/B,UAAU,CAAC,GAAW,EAAE,YAAsB;YAC5C,OAAO,yBAAyB,CAAC,UAAU,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACjE,CAAC;QACD,6BAA6B,CAC3B,MAA+B,EAC/B,YAAsB,EACtB,UAAU,GAAG,KAAK,EAClB,QAA2C;YAE3C,OAAO,yBAAyB,CAAC,6BAA6B,CAC5D,MAAM,EACN,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,IAAI,CACL,CAAC;QACJ,CAAC;QACD,cAAc,CAAC,GAAG;YAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;QACD,QAAQ,CAAC,GAAG;YACV,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAQ,CAAC;QACtC,CAAC;QACD,uBAAuB,CAAC,GAAW,EAAE,QAA2C;YAC9E,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC;QAC9C,CAAC;QACD,0BAA0B,CAAC,GAAW;YACpC,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACzC,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9C,CAAC;QACD,2CAA2C,CAAC,GAAW;YACrD,OAAO,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QACD,WAAW,CACT,QAAgB,EAChB,IAAY,EACZ,UAAmB,EACnB,QAAsD,EACtD,UAAmB,EACnB,WAAoB;YAEpB,OAAO,yBAAyB,CAAC,WAAW,CAC1C,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,UAAU,EACV,WAAW,CACZ,CAAC;QACJ,CAAC;KACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/utils/context.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typespec/openapi3",
3
- "version": "1.6.0-dev.5",
3
+ "version": "1.6.0-dev.6",
4
4
  "author": "Microsoft Corporation",
5
5
  "description": "TypeSpec library for emitting OpenAPI 3.0 and OpenAPI 3.1 from the TypeSpec REST protocol binding and converting OpenAPI3 to TypeSpec",
6
6
  "homepage": "https://typespec.io",
@@ -45,9 +45,10 @@
45
45
  "!dist/test/**"
46
46
  ],
47
47
  "dependencies": {
48
- "@apidevtools/swagger-parser": "~12.0.0",
48
+ "@scalar/json-magic": "^0.6.1",
49
+ "@scalar/openapi-parser": "^0.22.3",
50
+ "@scalar/openapi-types": "^0.5.0",
49
51
  "@typespec/asset-emitter": "^0.75.0 || >=0.76.0-dev <0.76.0",
50
- "openapi-types": "~12.1.3",
51
52
  "yaml": "~2.8.0"
52
53
  },
53
54
  "peerDependencies": {