zudoku 0.27.0 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/dist/lib/components/navigation/SidebarCategory.js +3 -3
  2. package/dist/lib/components/navigation/SidebarCategory.js.map +1 -1
  3. package/dist/lib/oas/graphql/index.d.ts +1 -0
  4. package/dist/lib/oas/graphql/index.js +41 -23
  5. package/dist/lib/oas/graphql/index.js.map +1 -1
  6. package/dist/lib/plugins/openapi/Endpoint.js +2 -2
  7. package/dist/lib/plugins/openapi/Endpoint.js.map +1 -1
  8. package/dist/lib/plugins/openapi/{Route.d.ts → OpenApiRoute.d.ts} +2 -1
  9. package/dist/lib/plugins/openapi/{Route.js → OpenApiRoute.js} +3 -4
  10. package/dist/lib/plugins/openapi/OpenApiRoute.js.map +1 -0
  11. package/dist/lib/plugins/openapi/OperationList.d.ts +4 -1
  12. package/dist/lib/plugins/openapi/OperationList.js +20 -14
  13. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  14. package/dist/lib/plugins/openapi/RequestBodySidecarBox.d.ts +1 -1
  15. package/dist/lib/plugins/openapi/RequestBodySidecarBox.js +2 -0
  16. package/dist/lib/plugins/openapi/RequestBodySidecarBox.js.map +1 -1
  17. package/dist/lib/plugins/openapi/Sidecar.js +1 -1
  18. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  19. package/dist/lib/plugins/openapi/SidecarExamples.js +17 -14
  20. package/dist/lib/plugins/openapi/SidecarExamples.js.map +1 -1
  21. package/dist/lib/plugins/openapi/graphql/gql.d.ts +6 -2
  22. package/dist/lib/plugins/openapi/graphql/gql.js +3 -2
  23. package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
  24. package/dist/lib/plugins/openapi/graphql/graphql.d.ts +47 -26
  25. package/dist/lib/plugins/openapi/graphql/graphql.js +20 -16
  26. package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
  27. package/dist/lib/plugins/openapi/index.js +97 -54
  28. package/dist/lib/plugins/openapi/index.js.map +1 -1
  29. package/dist/lib/plugins/openapi/interfaces.d.ts +1 -0
  30. package/dist/lib/util/joinUrl.js +1 -1
  31. package/dist/lib/util/joinUrl.js.map +1 -1
  32. package/dist/lib/util/joinUrl.test.d.ts +1 -0
  33. package/dist/lib/util/joinUrl.test.js +43 -0
  34. package/dist/lib/util/joinUrl.test.js.map +1 -0
  35. package/dist/vite/plugin-api.js +7 -1
  36. package/dist/vite/plugin-api.js.map +1 -1
  37. package/lib/{AuthenticationPlugin-CO_YCd2x.js → AuthenticationPlugin-Du8cLBSr.js} +2 -2
  38. package/lib/{AuthenticationPlugin-CO_YCd2x.js.map → AuthenticationPlugin-Du8cLBSr.js.map} +1 -1
  39. package/lib/{Markdown-B8o9Qz4q.js → Markdown-Cyrx_JrO.js} +8 -9
  40. package/lib/{Markdown-B8o9Qz4q.js.map → Markdown-Cyrx_JrO.js.map} +1 -1
  41. package/lib/{MdxPage-BxRt3Ly7.js → MdxPage-DewragjB.js} +5 -5
  42. package/lib/{MdxPage-BxRt3Ly7.js.map → MdxPage-DewragjB.js.map} +1 -1
  43. package/lib/OpenApiRoute-UrC_t0e5.js +36 -0
  44. package/lib/OpenApiRoute-UrC_t0e5.js.map +1 -0
  45. package/lib/{OperationList-DH-zIgtq.js → OperationList-D_ejrepA.js} +1373 -1372
  46. package/lib/OperationList-D_ejrepA.js.map +1 -0
  47. package/lib/{Select-B7UXR0SB.js → Select-CnCZ4WhS.js} +3 -3
  48. package/lib/{Select-B7UXR0SB.js.map → Select-CnCZ4WhS.js.map} +1 -1
  49. package/lib/{SlotletProvider-CtIp8rP3.js → SlotletProvider-mQiPDQIH.js} +2 -2
  50. package/lib/{SlotletProvider-CtIp8rP3.js.map → SlotletProvider-mQiPDQIH.js.map} +1 -1
  51. package/lib/{SyntaxHighlight-C1w1QPdY.js → SyntaxHighlight-B0L4SC_N.js} +11 -5
  52. package/lib/SyntaxHighlight-B0L4SC_N.js.map +1 -0
  53. package/lib/{ZudokuContext-8jts0fF3.js → ZudokuContext-BTUJPpQl.js} +21 -21
  54. package/lib/{ZudokuContext-8jts0fF3.js.map → ZudokuContext-BTUJPpQl.js.map} +1 -1
  55. package/lib/{createServer-BV0tHzLK.js → createServer-BydbkTsd.js} +821 -808
  56. package/lib/{createServer-BV0tHzLK.js.map → createServer-BydbkTsd.js.map} +1 -1
  57. package/lib/{hook-BG02esyv.js → hook-FT3SJLe_.js} +2 -2
  58. package/lib/{hook-BG02esyv.js.map → hook-FT3SJLe_.js.map} +1 -1
  59. package/lib/{index-LNp6rxyU.js → index-CjJS0l4l.js} +2 -2
  60. package/lib/{index-LNp6rxyU.js.map → index-CjJS0l4l.js.map} +1 -1
  61. package/lib/{index-DmqsUPcm.js → index-DGugJOLc.js} +836 -777
  62. package/lib/index-DGugJOLc.js.map +1 -0
  63. package/lib/{joinUrl-BTy9bvoK.js → joinUrl-nLx9pD-Z.js} +2 -2
  64. package/lib/joinUrl-nLx9pD-Z.js.map +1 -0
  65. package/lib/{useScrollToAnchor-Bl6mz9_x.js → useScrollToAnchor-eRM9tVvD.js} +10 -9
  66. package/lib/useScrollToAnchor-eRM9tVvD.js.map +1 -0
  67. package/lib/zudoku.auth-clerk.js +1 -1
  68. package/lib/zudoku.auth-openid.js +3 -3
  69. package/lib/zudoku.components.js +153 -154
  70. package/lib/zudoku.components.js.map +1 -1
  71. package/lib/zudoku.plugin-api-catalog.js +3 -3
  72. package/lib/zudoku.plugin-api-keys.js +4 -4
  73. package/lib/zudoku.plugin-custom-pages.js +1 -1
  74. package/lib/zudoku.plugin-markdown.js +1 -1
  75. package/lib/zudoku.plugin-openapi.js +6 -5
  76. package/lib/zudoku.plugin-openapi.js.map +1 -1
  77. package/package.json +1 -1
  78. package/src/lib/components/navigation/SidebarCategory.tsx +3 -2
  79. package/src/lib/oas/graphql/index.ts +63 -35
  80. package/src/lib/plugins/openapi/Endpoint.tsx +2 -2
  81. package/src/lib/plugins/openapi/{Route.tsx → OpenApiRoute.tsx} +3 -3
  82. package/src/lib/plugins/openapi/OperationList.tsx +34 -12
  83. package/src/lib/plugins/openapi/RequestBodySidecarBox.tsx +2 -0
  84. package/src/lib/plugins/openapi/Sidecar.tsx +1 -1
  85. package/src/lib/plugins/openapi/SidecarExamples.tsx +24 -24
  86. package/src/lib/plugins/openapi/graphql/gql.ts +12 -4
  87. package/src/lib/plugins/openapi/graphql/graphql.ts +66 -43
  88. package/src/lib/plugins/openapi/index.tsx +125 -67
  89. package/src/lib/plugins/openapi/interfaces.ts +1 -0
  90. package/src/lib/util/joinUrl.test.ts +62 -0
  91. package/src/lib/util/joinUrl.ts +1 -1
  92. package/dist/lib/plugins/openapi/Route.js.map +0 -1
  93. package/lib/OperationList-DH-zIgtq.js.map +0 -1
  94. package/lib/Route-DJ0ZlVq1.js +0 -35
  95. package/lib/Route-DJ0ZlVq1.js.map +0 -1
  96. package/lib/StaggeredRender-DgsamH_G.js +0 -17
  97. package/lib/StaggeredRender-DgsamH_G.js.map +0 -1
  98. package/lib/SyntaxHighlight-C1w1QPdY.js.map +0 -1
  99. package/lib/index-Bn6Lc9tq.js +0 -9
  100. package/lib/index-Bn6Lc9tq.js.map +0 -1
  101. package/lib/index-DmqsUPcm.js.map +0 -1
  102. package/lib/joinUrl-BTy9bvoK.js.map +0 -1
  103. package/lib/useScrollToAnchor-Bl6mz9_x.js.map +0 -1
@@ -9,7 +9,7 @@ export declare function graphql(source: "\n fragment OperationsFragment on Oper
9
9
  /**
10
10
  * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
11
11
  */
12
- export declare function graphql(source: "\n query AllOperations($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n description\n summary\n title\n url\n version\n tags {\n name\n description\n operations {\n slug\n ...OperationsFragment\n }\n }\n }\n }\n"): typeof import("./graphql.js").AllOperationsDocument;
12
+ export declare function graphql(source: "\n query AllOperations(\n $input: JSON!\n $type: SchemaType!\n $tag: String\n $untagged: Boolean\n ) {\n schema(input: $input, type: $type) {\n description\n summary\n title\n url\n version\n tags(name: $tag) {\n name\n description\n }\n operations(tag: $tag, untagged: $untagged) {\n slug\n ...OperationsFragment\n }\n }\n }\n"): typeof import("./graphql.js").AllOperationsDocument;
13
13
  /**
14
14
  * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
15
15
  */
@@ -17,4 +17,8 @@ export declare function graphql(source: "\n query getServerQuery($input: JSON!,
17
17
  /**
18
18
  * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
19
19
  */
20
- export declare function graphql(source: "\n query GetCategories($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n tags {\n __typename\n name\n operations {\n __typename\n slug\n deprecated\n method\n summary\n operationId\n path\n }\n }\n }\n }\n"): typeof import("./graphql.js").GetCategoriesDocument;
20
+ export declare function graphql(source: "\n query GetCategories($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n tags {\n name\n }\n }\n }\n"): typeof import("./graphql.js").GetCategoriesDocument;
21
+ /**
22
+ * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
23
+ */
24
+ export declare function graphql(source: "\n query GetOperations(\n $input: JSON!\n $type: SchemaType!\n $tag: String\n $untagged: Boolean\n ) {\n schema(input: $input, type: $type) {\n operations(tag: $tag, untagged: $untagged) {\n slug\n deprecated\n method\n summary\n operationId\n path\n }\n }\n }\n"): typeof import("./graphql.js").GetOperationsDocument;
@@ -14,9 +14,10 @@ import * as types from "./graphql.js";
14
14
  const documents = {
15
15
  "\n query ServersQuery($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n servers {\n url\n }\n }\n }\n": types.ServersQueryDocument,
16
16
  "\n fragment OperationsFragment on OperationItem {\n slug\n summary\n method\n description\n operationId\n contentTypes\n path\n parameters {\n name\n in\n description\n required\n schema\n style\n examples {\n name\n description\n externalValue\n value\n summary\n }\n }\n requestBody {\n content {\n mediaType\n encoding {\n name\n }\n examples {\n name\n description\n externalValue\n value\n summary\n }\n schema\n }\n description\n required\n }\n responses {\n statusCode\n links\n description\n content {\n examples {\n name\n description\n externalValue\n value\n summary\n }\n mediaType\n encoding {\n name\n }\n schema\n }\n }\n }\n": types.OperationsFragmentFragmentDoc,
17
- "\n query AllOperations($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n description\n summary\n title\n url\n version\n tags {\n name\n description\n operations {\n slug\n ...OperationsFragment\n }\n }\n }\n }\n": types.AllOperationsDocument,
17
+ "\n query AllOperations(\n $input: JSON!\n $type: SchemaType!\n $tag: String\n $untagged: Boolean\n ) {\n schema(input: $input, type: $type) {\n description\n summary\n title\n url\n version\n tags(name: $tag) {\n name\n description\n }\n operations(tag: $tag, untagged: $untagged) {\n slug\n ...OperationsFragment\n }\n }\n }\n": types.AllOperationsDocument,
18
18
  "\n query getServerQuery($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n servers {\n url\n }\n }\n }\n": types.GetServerQueryDocument,
19
- "\n query GetCategories($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n tags {\n __typename\n name\n operations {\n __typename\n slug\n deprecated\n method\n summary\n operationId\n path\n }\n }\n }\n }\n": types.GetCategoriesDocument,
19
+ "\n query GetCategories($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n tags {\n name\n }\n }\n }\n": types.GetCategoriesDocument,
20
+ "\n query GetOperations(\n $input: JSON!\n $type: SchemaType!\n $tag: String\n $untagged: Boolean\n ) {\n schema(input: $input, type: $type) {\n operations(tag: $tag, untagged: $untagged) {\n slug\n deprecated\n method\n summary\n operationId\n path\n }\n }\n }\n": types.GetOperationsDocument,
20
21
  };
21
22
  export function graphql(source) {
22
23
  return documents[source] ?? {};
@@ -1 +1 @@
1
- {"version":3,"file":"gql.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/graphql/gql.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC;;;;;;;;;;GAUG;AACH,MAAM,SAAS,GAAG;IAChB,uKAAuK,EACrK,KAAK,CAAC,oBAAoB;IAC5B,m+BAAm+B,EACj+B,KAAK,CAAC,6BAA6B;IACrC,2UAA2U,EACzU,KAAK,CAAC,qBAAqB;IAC7B,yKAAyK,EACvK,KAAK,CAAC,sBAAsB;IAC9B,mWAAmW,EACjW,KAAK,CAAC,qBAAqB;CAC9B,CAAC;AAiCF,MAAM,UAAU,OAAO,CAAC,MAAc;IACpC,OAAQ,SAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"gql.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/graphql/gql.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC;;;;;;;;;;GAUG;AACH,MAAM,SAAS,GAAG;IAChB,uKAAuK,EACrK,KAAK,CAAC,oBAAoB;IAC5B,m+BAAm+B,EACj+B,KAAK,CAAC,6BAA6B;IACrC,uaAAua,EACra,KAAK,CAAC,qBAAqB;IAC7B,yKAAyK,EACvK,KAAK,CAAC,sBAAsB;IAC9B,sKAAsK,EACpK,KAAK,CAAC,qBAAqB;IAC7B,iVAAiV,EAC/U,KAAK,CAAC,qBAAqB;CAC9B,CAAC;AAuCF,MAAM,UAAU,OAAO,CAAC,MAAc;IACpC,OAAQ,SAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAC1C,CAAC"}
@@ -52,6 +52,11 @@ export type Scalars = {
52
52
  input: any;
53
53
  output: any;
54
54
  };
55
+ /** OpenAPI schema scalar type that handles circular references */
56
+ JSONSchema: {
57
+ input: any;
58
+ output: any;
59
+ };
55
60
  };
56
61
  export type EncodingItem = {
57
62
  __typename?: "EncodingItem";
@@ -75,7 +80,7 @@ export type MediaTypeObject = {
75
80
  encoding?: Maybe<Array<EncodingItem>>;
76
81
  examples?: Maybe<Array<ExampleItem>>;
77
82
  mediaType: Scalars["String"]["output"];
78
- schema?: Maybe<Scalars["JSON"]["output"]>;
83
+ schema?: Maybe<Scalars["JSONSchema"]["output"]>;
79
84
  };
80
85
  export type OperationItem = {
81
86
  __typename?: "OperationItem";
@@ -104,7 +109,7 @@ export type ParameterItem = {
104
109
  in: ParameterIn;
105
110
  name: Scalars["String"]["output"];
106
111
  required?: Maybe<Scalars["Boolean"]["output"]>;
107
- schema?: Maybe<Scalars["JSON"]["output"]>;
112
+ schema?: Maybe<Scalars["JSONSchema"]["output"]>;
108
113
  style?: Maybe<Scalars["String"]["output"]>;
109
114
  };
110
115
  export type PathItem = {
@@ -141,17 +146,18 @@ export type Schema = {
141
146
  operations: Array<OperationItem>;
142
147
  paths: Array<PathItem>;
143
148
  servers: Array<Server>;
149
+ summary?: Maybe<Scalars["String"]["output"]>;
144
150
  tags: Array<SchemaTag>;
145
151
  title: Scalars["String"]["output"];
146
- url: Scalars["String"]["output"];
152
+ url?: Maybe<Scalars["String"]["output"]>;
147
153
  version: Scalars["String"]["output"];
148
- summary?: Maybe<Scalars["String"]["output"]>;
149
154
  };
150
155
  export type SchemaOperationsArgs = {
151
156
  method?: InputMaybe<Scalars["String"]["input"]>;
152
157
  operationId?: InputMaybe<Scalars["String"]["input"]>;
153
158
  path?: InputMaybe<Scalars["String"]["input"]>;
154
159
  tag?: InputMaybe<Scalars["String"]["input"]>;
160
+ untagged?: InputMaybe<Scalars["Boolean"]["input"]>;
155
161
  };
156
162
  export type SchemaTagsArgs = {
157
163
  name?: InputMaybe<Scalars["String"]["input"]>;
@@ -181,7 +187,7 @@ export type ServersQueryQuery = {
181
187
  __typename?: "Query";
182
188
  schema: {
183
189
  __typename?: "Schema";
184
- url: string;
190
+ url?: string | null;
185
191
  servers: Array<{
186
192
  __typename?: "Server";
187
193
  url: string;
@@ -265,6 +271,8 @@ export type OperationsFragmentFragment = {
265
271
  export type AllOperationsQueryVariables = Exact<{
266
272
  input: Scalars["JSON"]["input"];
267
273
  type: SchemaType;
274
+ tag?: InputMaybe<Scalars["String"]["input"]>;
275
+ untagged?: InputMaybe<Scalars["Boolean"]["input"]>;
268
276
  }>;
269
277
  export type AllOperationsQuery = {
270
278
  __typename?: "Query";
@@ -273,20 +281,20 @@ export type AllOperationsQuery = {
273
281
  description?: string | null;
274
282
  summary?: string | null;
275
283
  title: string;
276
- url: string;
284
+ url?: string | null;
277
285
  version: string;
278
286
  tags: Array<{
279
287
  __typename?: "SchemaTag";
280
288
  name?: string | null;
281
289
  description?: string | null;
282
- operations: Array<{
283
- __typename?: "OperationItem";
284
- slug: string;
285
- } & {
286
- " $fragmentRefs"?: {
287
- OperationsFragmentFragment: OperationsFragmentFragment;
288
- };
289
- }>;
290
+ }>;
291
+ operations: Array<{
292
+ __typename?: "OperationItem";
293
+ slug: string;
294
+ } & {
295
+ " $fragmentRefs"?: {
296
+ OperationsFragmentFragment: OperationsFragmentFragment;
297
+ };
290
298
  }>;
291
299
  };
292
300
  };
@@ -298,7 +306,7 @@ export type GetServerQueryQuery = {
298
306
  __typename?: "Query";
299
307
  schema: {
300
308
  __typename?: "Schema";
301
- url: string;
309
+ url?: string | null;
302
310
  servers: Array<{
303
311
  __typename?: "Server";
304
312
  url: string;
@@ -313,19 +321,31 @@ export type GetCategoriesQuery = {
313
321
  __typename?: "Query";
314
322
  schema: {
315
323
  __typename?: "Schema";
316
- url: string;
324
+ url?: string | null;
317
325
  tags: Array<{
318
- __typename: "SchemaTag";
326
+ __typename?: "SchemaTag";
319
327
  name?: string | null;
320
- operations: Array<{
321
- __typename: "OperationItem";
322
- slug: string;
323
- deprecated?: boolean | null;
324
- method: string;
325
- summary?: string | null;
326
- operationId?: string | null;
327
- path: string;
328
- }>;
328
+ }>;
329
+ };
330
+ };
331
+ export type GetOperationsQueryVariables = Exact<{
332
+ input: Scalars["JSON"]["input"];
333
+ type: SchemaType;
334
+ tag?: InputMaybe<Scalars["String"]["input"]>;
335
+ untagged?: InputMaybe<Scalars["Boolean"]["input"]>;
336
+ }>;
337
+ export type GetOperationsQuery = {
338
+ __typename?: "Query";
339
+ schema: {
340
+ __typename?: "Schema";
341
+ operations: Array<{
342
+ __typename?: "OperationItem";
343
+ slug: string;
344
+ deprecated?: boolean | null;
345
+ method: string;
346
+ summary?: string | null;
347
+ operationId?: string | null;
348
+ path: string;
329
349
  }>;
330
350
  };
331
351
  };
@@ -341,3 +361,4 @@ export declare const ServersQueryDocument: TypedDocumentString<ServersQueryQuery
341
361
  export declare const AllOperationsDocument: TypedDocumentString<AllOperationsQuery, AllOperationsQueryVariables>;
342
362
  export declare const GetServerQueryDocument: TypedDocumentString<GetServerQueryQuery, GetServerQueryQueryVariables>;
343
363
  export declare const GetCategoriesDocument: TypedDocumentString<GetCategoriesQuery, GetCategoriesQueryVariables>;
364
+ export declare const GetOperationsDocument: TypedDocumentString<GetOperationsQuery, GetOperationsQueryVariables>;
@@ -85,20 +85,20 @@ export const ServersQueryDocument = new TypedDocumentString(`
85
85
  }
86
86
  `);
87
87
  export const AllOperationsDocument = new TypedDocumentString(`
88
- query AllOperations($input: JSON!, $type: SchemaType!) {
88
+ query AllOperations($input: JSON!, $type: SchemaType!, $tag: String, $untagged: Boolean) {
89
89
  schema(input: $input, type: $type) {
90
90
  description
91
91
  summary
92
92
  title
93
93
  url
94
94
  version
95
- tags {
95
+ tags(name: $tag) {
96
96
  name
97
97
  description
98
- operations {
99
- slug
100
- ...OperationsFragment
101
- }
98
+ }
99
+ operations(tag: $tag, untagged: $untagged) {
100
+ slug
101
+ ...OperationsFragment
102
102
  }
103
103
  }
104
104
  }
@@ -178,17 +178,21 @@ export const GetCategoriesDocument = new TypedDocumentString(`
178
178
  schema(input: $input, type: $type) {
179
179
  url
180
180
  tags {
181
- __typename
182
181
  name
183
- operations {
184
- __typename
185
- slug
186
- deprecated
187
- method
188
- summary
189
- operationId
190
- path
191
- }
182
+ }
183
+ }
184
+ }
185
+ `);
186
+ export const GetOperationsDocument = new TypedDocumentString(`
187
+ query GetOperations($input: JSON!, $type: SchemaType!, $tag: String, $untagged: Boolean) {
188
+ schema(input: $input, type: $type) {
189
+ operations(tag: $tag, untagged: $untagged) {
190
+ slug
191
+ deprecated
192
+ method
193
+ summary
194
+ operationId
195
+ path
192
196
  }
193
197
  }
194
198
  }
@@ -1 +1 @@
1
- {"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/graphql/graphql.ts"],"names":[],"mappings":"AAmUA,MAAM,OAAO,mBACX,SAAQ,MAAM;IAMJ;IACD;IAJT,SAAS,CAA4D;IAErE,YACU,KAAa,EACd,QAA0C;QAEjD,KAAK,CAAC,KAAK,CAAC,CAAC;QAHL,UAAK,GAAL,KAAK,CAAQ;QACd,aAAQ,GAAR,QAAQ,CAAkC;IAGnD,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF;AACD,MAAM,CAAC,MAAM,6BAA6B,GAAG,IAAI,mBAAmB,CAClE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8DG,EACH,EAAE,YAAY,EAAE,oBAAoB,EAAE,CACgC,CAAC;AACzE,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,mBAAmB,CAAC;;;;;;;;;KASvD,CAGJ,CAAC;AACF,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,mBAAmB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8E3D,CAGD,CAAC;AACF,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,mBAAmB,CAAC;;;;;;;;;KASzD,CAGJ,CAAC;AACF,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,mBAAmB,CAAC;;;;;;;;;;;;;;;;;;;KAmBxD,CAGJ,CAAC"}
1
+ {"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/graphql/graphql.ts"],"names":[],"mappings":"AAmVA,MAAM,OAAO,mBACX,SAAQ,MAAM;IAMJ;IACD;IAJT,SAAS,CAA4D;IAErE,YACU,KAAa,EACd,QAA0C;QAEjD,KAAK,CAAC,KAAK,CAAC,CAAC;QAHL,UAAK,GAAL,KAAK,CAAQ;QACd,aAAQ,GAAR,QAAQ,CAAkC;IAGnD,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF;AACD,MAAM,CAAC,MAAM,6BAA6B,GAAG,IAAI,mBAAmB,CAClE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8DG,EACH,EAAE,YAAY,EAAE,oBAAoB,EAAE,CACgC,CAAC;AACzE,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,mBAAmB,CAAC;;;;;;;;;KASvD,CAGJ,CAAC;AACF,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,mBAAmB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8E3D,CAGD,CAAC;AACF,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,mBAAmB,CAAC;;;;;;;;;KASzD,CAGJ,CAAC;AACF,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,mBAAmB,CAAC;;;;;;;;;KASxD,CAGJ,CAAC;AACF,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,mBAAmB,CAAC;;;;;;;;;;;;;KAaxD,CAGJ,CAAC"}
@@ -1,28 +1,38 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { matchPath } from "react-router";
3
- import { graphql } from "./graphql/index.js";
2
+ import slugify from "@sindresorhus/slugify";
4
3
  import { CirclePlayIcon, LogInIcon } from "lucide-react";
4
+ import { matchPath, redirect } from "react-router";
5
5
  import { useAuth } from "../../authentication/hook.js";
6
6
  import { Button } from "../../ui/Button.js";
7
- import { joinPath } from "../../util/joinPath.js";
7
+ import { joinUrl } from "../../util/joinUrl.js";
8
8
  import { GraphQLClient } from "./client/GraphQLClient.js";
9
+ import { graphql } from "./graphql/index.js";
9
10
  import { PlaygroundDialog } from "./playground/PlaygroundDialog.js";
10
11
  const GetCategoriesQuery = graphql(`
11
12
  query GetCategories($input: JSON!, $type: SchemaType!) {
12
13
  schema(input: $input, type: $type) {
13
14
  url
14
15
  tags {
15
- __typename
16
16
  name
17
- operations {
18
- __typename
19
- slug
20
- deprecated
21
- method
22
- summary
23
- operationId
24
- path
25
- }
17
+ }
18
+ }
19
+ }
20
+ `);
21
+ const GetOperationsQuery = graphql(`
22
+ query GetOperations(
23
+ $input: JSON!
24
+ $type: SchemaType!
25
+ $tag: String
26
+ $untagged: Boolean
27
+ ) {
28
+ schema(input: $input, type: $type) {
29
+ operations(tag: $tag, untagged: $untagged) {
30
+ slug
31
+ deprecated
32
+ method
33
+ summary
34
+ operationId
35
+ path
26
36
  }
27
37
  }
28
38
  }
@@ -36,8 +46,9 @@ const MethodColorMap = {
36
46
  options: "gray",
37
47
  head: "gray",
38
48
  };
49
+ const UNTAGGED_PATH = "~endpoints";
39
50
  export const openApiPlugin = (config) => {
40
- const basePath = joinPath(config.navigationId ?? "/reference");
51
+ const basePath = joinUrl(config.navigationId ?? "/reference");
41
52
  const versions = config.type === "file" ? Object.keys(config.input) : [];
42
53
  const client = new GraphQLClient(config);
43
54
  return {
@@ -66,35 +77,45 @@ export const openApiPlugin = (config) => {
66
77
  return [];
67
78
  }
68
79
  try {
69
- const version = versions.find((v) => path === joinPath(basePath, v)) ??
70
- Object.keys(config.input).at(0);
80
+ const urlVersion = versions.find((v) => path.startsWith(joinUrl(basePath, v)));
81
+ const version = urlVersion ?? Object.keys(config.input).at(0);
71
82
  const data = await client.fetch(GetCategoriesQuery, {
72
83
  type: config.type,
73
84
  input: config.type === "file" ? config.input[version] : config.input,
74
- version,
75
85
  });
86
+ const tag = config.tagPages?.find((tag) => path.split("/").at(-1) === slugify(tag));
87
+ const operationsData = await client.fetch(GetOperationsQuery, {
88
+ type: config.type,
89
+ input: config.type === "file" ? config.input[version] : config.input,
90
+ tag,
91
+ untagged: tag === undefined,
92
+ });
93
+ const items = operationsData.schema.operations.map((operation) => ({
94
+ type: "link",
95
+ label: operation.summary ?? operation.path,
96
+ href: `#${operation.slug}`,
97
+ badge: {
98
+ label: operation.method,
99
+ color: MethodColorMap[operation.method.toLowerCase()],
100
+ invert: true,
101
+ },
102
+ }));
76
103
  const categories = data.schema.tags
77
- .filter((tag) => tag.operations.length > 0)
78
- .map((tag) => ({
79
- type: "category",
80
- label: tag.name || "Other endpoints",
81
- collapsible: true,
82
- collapsed: false,
83
- items: tag.operations.map((operation) => ({
84
- type: "link",
85
- label: operation.summary ?? operation.path,
86
- href: `#${operation.slug}`,
87
- badge: {
88
- label: operation.method,
89
- color: MethodColorMap[operation.method.toLowerCase()],
90
- invert: true,
104
+ // .filter((tag) => tag.operations.length > 0)
105
+ .map((tag) => {
106
+ const categoryLink = joinUrl(basePath, urlVersion, tag.name ? slugify(tag.name) : UNTAGGED_PATH);
107
+ return {
108
+ type: "category",
109
+ label: tag.name || "Other endpoints",
110
+ link: {
111
+ type: "doc",
112
+ id: categoryLink,
113
+ label: tag.name,
91
114
  },
92
- })),
93
- }));
94
- categories.unshift({
95
- type: "link",
96
- label: "Overview",
97
- href: "#description",
115
+ collapsible: false,
116
+ collapsed: true,
117
+ items: path === categoryLink ? items : [],
118
+ };
98
119
  });
99
120
  return categories;
100
121
  }
@@ -104,24 +125,46 @@ export const openApiPlugin = (config) => {
104
125
  },
105
126
  getRoutes: () => {
106
127
  const versionsInPath = [null, ...versions];
107
- return versionsInPath.map((version) => ({
108
- path: basePath + (version ? `/${version}` : ""),
109
- async lazy() {
110
- const { OpenApiRoute } = await import("./Route.js");
111
- return {
112
- element: (_jsx(OpenApiRoute, { basePath: basePath, versions: versions, client: client, config: config })),
113
- };
114
- },
115
- children: [
116
- {
117
- index: true,
118
- async lazy() {
119
- const { OperationList } = await import("./OperationList.js");
120
- return { element: _jsx(OperationList, {}) };
121
- },
122
- },
123
- ],
128
+ const tagPages = (config.tagPages ?? []).map((tag) => ({
129
+ tag,
130
+ path: slugify(tag),
124
131
  }));
132
+ return versionsInPath.map((version) => {
133
+ const versionPath = joinUrl(basePath, version ? `/${version}` : "");
134
+ return {
135
+ path: versionPath,
136
+ async lazy() {
137
+ const { OpenApiRoute } = await import("./OpenApiRoute.js");
138
+ return {
139
+ element: (_jsx(OpenApiRoute, { version: version ?? undefined, basePath: basePath, versions: versions, client: client, config: config })),
140
+ };
141
+ },
142
+ children: [
143
+ {
144
+ index: true,
145
+ loader: () => redirect(joinUrl(versionPath, tagPages.at(0)?.path ?? UNTAGGED_PATH)),
146
+ },
147
+ {
148
+ path: joinUrl(versionPath, UNTAGGED_PATH),
149
+ async lazy() {
150
+ const { OperationList } = await import("./OperationList.js");
151
+ return { element: _jsx(OperationList, { untagged: true }) };
152
+ },
153
+ },
154
+ ...tagPages.map((tag) => {
155
+ return {
156
+ path: joinUrl(versionPath, tag.path),
157
+ async lazy() {
158
+ const { OperationList } = await import("./OperationList.js");
159
+ return {
160
+ element: _jsx(OperationList, { tag: tag.tag }),
161
+ };
162
+ },
163
+ };
164
+ }),
165
+ ],
166
+ };
167
+ });
125
168
  },
126
169
  };
127
170
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/plugins/openapi/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/plugins/openapi/index.tsx"],"names":[],"mappings":"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"}
@@ -24,6 +24,7 @@ export type OasPluginConfig = {
24
24
  server?: string;
25
25
  navigationId?: string;
26
26
  skipPreload?: boolean;
27
+ tagPages?: Array<string>;
27
28
  } & OasPluginConfigOptions & OasSource;
28
29
  export type OasPluginConfigOptions = {
29
30
  options?: {
@@ -1,5 +1,5 @@
1
1
  // Mostly adapted from https://github.com/moxystudio/js-proper-url-join
2
- const defaultUrlRegExp = /^(\w+:\/\/[^/?]+)?(.*?)(\?.+)?$/;
2
+ const defaultUrlRegExp = /^(\w+:\/\/[^/?]+)?([^?]*)(\?.*)?$/;
3
3
  const normalizeParts = (parts) => parts
4
4
  .filter((part) => part !== null &&
5
5
  part !== undefined &&
@@ -1 +1 @@
1
- {"version":3,"file":"joinUrl.js","sourceRoot":"","sources":["../../../src/lib/util/joinUrl.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,MAAM,gBAAgB,GAAG,iCAAiC,CAAC;AAE3D,MAAM,cAAc,GAAG,CACrB,KAAqD,EAC3C,EAAE,CACZ,KAAK;KACF,MAAM,CACL,CAAC,IAAI,EAA2B,EAAE,CAChC,IAAI,KAAK,IAAI;IACb,IAAI,KAAK,SAAS;IAClB,IAAI,KAAK,KAAK;IACd,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CACzD;KACA,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC;KACxB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AAO5B,MAAM,UAAU,GAAG,CAAC,KAAe,EAAe,EAAE;IAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IAE9E,OAAO;QACL,MAAM;QACN,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;KAC5D,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,WAAwB,EAAU,EAAE;IACpD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC;IACzC,IAAI,GAAG,GAAG,MAAM,CAAC;IAEjB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,IAAI,GAAG,CAAC;QACb,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,GAAG,CAAC;QACZ,CAAC;QACD,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;SAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QAChB,GAAG,GAAG,GAAG,CAAC;IACZ,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,GAAG,KAAwD,EACnD,EAAE;IACV,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IAChD,OAAO,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC/B,CAAC,CAAC"}
1
+ {"version":3,"file":"joinUrl.js","sourceRoot":"","sources":["../../../src/lib/util/joinUrl.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,MAAM,gBAAgB,GAAG,mCAAmC,CAAC;AAE7D,MAAM,cAAc,GAAG,CACrB,KAAqD,EAC3C,EAAE,CACZ,KAAK;KACF,MAAM,CACL,CAAC,IAAI,EAA2B,EAAE,CAChC,IAAI,KAAK,IAAI;IACb,IAAI,KAAK,SAAS;IAClB,IAAI,KAAK,KAAK;IACd,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CACzD;KACA,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC;KACxB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AAO5B,MAAM,UAAU,GAAG,CAAC,KAAe,EAAe,EAAE;IAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IAE9E,OAAO;QACL,MAAM;QACN,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;KAC5D,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,WAAwB,EAAU,EAAE;IACpD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC;IACzC,IAAI,GAAG,GAAG,MAAM,CAAC;IAEjB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,IAAI,GAAG,CAAC;QACb,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,GAAG,CAAC;QACZ,CAAC;QACD,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;SAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QAChB,GAAG,GAAG,GAAG,CAAC;IACZ,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,GAAG,KAAwD,EACnD,EAAE;IACV,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IAChD,OAAO,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC/B,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,43 @@
1
+ import { describe, expect, test } from "vitest";
2
+ import { joinUrl } from "./joinUrl.js";
3
+ describe("joinUrl", () => {
4
+ test("handles basic URL joining", () => {
5
+ expect(joinUrl("https://example.com", "path")).toBe("https://example.com/path");
6
+ expect(joinUrl("https://example.com/", "path")).toBe("https://example.com/path");
7
+ expect(joinUrl("https://example.com/", "/path")).toBe("https://example.com/path");
8
+ });
9
+ test("handles multiple path segments", () => {
10
+ expect(joinUrl("https://example.com", "api", "v1", "users")).toBe("https://example.com/api/v1/users");
11
+ });
12
+ // test("handles query parameters", () => {
13
+ // expect(joinUrl("https://example.com", "path?query=1")).toBe(
14
+ // "https://example.com/path?query=1",
15
+ // );
16
+ // expect(joinUrl("https://example.com?base=1", "path?query=1")).toBe(
17
+ // "https://example.com/path?query=1",
18
+ // );
19
+ // });
20
+ // test("handles repeated dots and question marks", () => {
21
+ // expect(joinUrl("https://example.com", "path/../../../test")).toBe(
22
+ // "https://example.com/path/../../../test",
23
+ // );
24
+ // expect(joinUrl("https://example.com", "test????a=1")).toBe(
25
+ // "https://example.com/test????a=1",
26
+ // );
27
+ // });
28
+ test("handles falsy values", () => {
29
+ expect(joinUrl("https://example.com", null, undefined, false, "path")).toBe("https://example.com/path");
30
+ });
31
+ test("handles numeric values", () => {
32
+ expect(joinUrl("https://example.com", "api", 123, "test")).toBe("https://example.com/api/123/test");
33
+ });
34
+ test("handles relative paths", () => {
35
+ expect(joinUrl("/api", "v1", "users")).toBe("/api/v1/users");
36
+ expect(joinUrl("api", "v1", "users")).toBe("/api/v1/users");
37
+ });
38
+ test("handles empty input", () => {
39
+ expect(joinUrl()).toBe("/");
40
+ expect(joinUrl("")).toBe("/");
41
+ });
42
+ });
43
+ //# sourceMappingURL=joinUrl.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"joinUrl.test.js","sourceRoot":"","sources":["../../../src/lib/util/joinUrl.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACrC,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CACjD,0BAA0B,CAC3B,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAClD,0BAA0B,CAC3B,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CACnD,0BAA0B,CAC3B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAC/D,kCAAkC,CACnC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,2CAA2C;IAC3C,iEAAiE;IACjE,0CAA0C;IAC1C,OAAO;IACP,wEAAwE;IACxE,0CAA0C;IAC1C,OAAO;IACP,MAAM;IAEN,2DAA2D;IAC3D,uEAAuE;IACvE,gDAAgD;IAChD,OAAO;IACP,gEAAgE;IAChE,yCAAyC;IACzC,OAAO;IACP,MAAM;IAEN,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAChC,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CACzE,0BAA0B,CAC3B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAC7D,kCAAkC,CACnC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7D,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC/B,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -2,6 +2,7 @@ import fs from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import { tsImport } from "tsx/esm/api";
4
4
  import yaml from "yaml";
5
+ import { getAllTags } from "../lib/oas/graphql/index.js";
5
6
  import { upgradeSchema } from "../lib/oas/parser/upgrade/index.js";
6
7
  import { generateCode } from "./api/schema-codegen.js";
7
8
  const schemaMap = new Map();
@@ -132,7 +133,12 @@ const viteApiPlugin = async (getConfig) => {
132
133
  !versionMaps[apiConfig.navigationId]) {
133
134
  continue;
134
135
  }
135
- code.push("configuredApiPlugins.push(openApiPlugin({", ` ...apiPluginOptions,`, ` type: "file",`, ` input: ${JSON.stringify(versionMaps[apiConfig.navigationId])},`, ` navigationId: ${JSON.stringify(apiConfig.navigationId)},`, ` schemaImports: {`, ...Array.from(schemaMap.entries()).map(([key, schemaPath]) => ` "${key}": () => import("${schemaPath.replace(/\\/g, "/")}"),`), ` },`, "}));");
136
+ const schemas = processedSchemas[apiConfig.navigationId];
137
+ if (!schemas?.length)
138
+ continue;
139
+ const latestSchema = schemas[0]?.schema;
140
+ const tags = getAllTags(latestSchema).map(({ name }) => name);
141
+ code.push("configuredApiPlugins.push(openApiPlugin({", ` ...apiPluginOptions,`, ` type: "file",`, ` input: ${JSON.stringify(versionMaps[apiConfig.navigationId])},`, ` navigationId: ${JSON.stringify(apiConfig.navigationId)},`, ` tagPages: ${JSON.stringify(tags)},`, ` schemaImports: {`, ...Array.from(schemaMap.entries()).map(([key, schemaPath]) => ` "${key}": () => import("${schemaPath.replace(/\\/g, "/")}"),`), ` },`, "}));");
136
142
  }
137
143
  else {
138
144
  code.push(`configuredApiPlugins.push(openApiPlugin(${JSON.stringify({ ...apiConfig, ...apiPluginOptions })}));`);
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-api.js","sourceRoot":"","sources":["../../src/vite/plugin-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-api.js","sourceRoot":"","sources":["../../src/vite/plugin-api.ts"],"names":[],"mappings":"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"}