fumadocs-openapi 9.0.5 → 9.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/playground/client.d.ts.map +1 -1
- package/dist/playground/client.js +4 -6
- package/dist/playground/fetcher.d.ts +6 -1
- package/dist/playground/fetcher.d.ts.map +1 -1
- package/dist/playground/fetcher.js +2 -4
- package/dist/playground/index.js +0 -5
- package/dist/render/api-page.d.ts.map +1 -1
- package/dist/render/api-page.js +2 -10
- package/dist/requests/_shared.d.ts +0 -1
- package/dist/requests/_shared.d.ts.map +1 -1
- package/dist/requests/_shared.js +0 -4
- package/dist/requests/curl.d.ts.map +1 -1
- package/dist/requests/curl.js +3 -2
- package/dist/requests/go.d.ts.map +1 -1
- package/dist/requests/go.js +3 -2
- package/dist/requests/javascript.d.ts.map +1 -1
- package/dist/requests/javascript.js +3 -2
- package/dist/requests/python.d.ts.map +1 -1
- package/dist/requests/python.js +2 -2
- package/dist/types.d.ts +0 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/contexts/api.js +1 -1
- package/dist/ui/contexts/code-example.d.ts.map +1 -1
- package/dist/ui/contexts/code-example.js +4 -2
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +1 -1
- package/dist/ui/server-select.d.ts.map +1 -1
- package/dist/ui/server-select.js +2 -4
- package/dist/utils/get-typescript-schema.d.ts.map +1 -1
- package/dist/utils/get-typescript-schema.js +3 -7
- package/dist/utils/url.d.ts +10 -0
- package/dist/utils/url.d.ts.map +1 -0
- package/dist/utils/url.js +51 -0
- package/package.json +3 -3
- package/dist/utils/get-pathname-from-input.d.ts +0 -2
- package/dist/utils/get-pathname-from-input.d.ts.map +0 -1
- package/dist/utils/get-pathname-from-input.js +0 -27
- package/dist/utils/server-url.d.ts +0 -2
- package/dist/utils/server-url.d.ts.map +0 -1
- package/dist/utils/server-url.js +0 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/playground/client.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,EAAE,EAEP,KAAK,cAAc,EAEnB,KAAK,YAAY,EAKlB,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,SAAS,EACT,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AAQzB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACd,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/playground/client.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,EAAE,EAEP,KAAK,cAAc,EAEnB,KAAK,YAAY,EAKlB,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,SAAS,EACT,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AAQzB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACd,MAAM,oBAAoB,CAAC;AAwC5B,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,WAAW,CAAC,KAAK,SAAS,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI;IACpE,MAAM,EAAE,CAAC,KAAK,EAAE;QACd;;WAEG;QACH,IAAI,EAAE,IAAI,CAAC;QACX,KAAK,EAAE,qBAAqB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAChD,UAAU,EAAE,oBAAoB,CAAC;QACjC,SAAS,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;KAC3C,KAAK,YAAY,CAAC;CACpB;AAED,MAAM,WAAW,WAAY,SAAQ,cAAc,CAAC,eAAe,CAAC;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,UAAU,EAAE,aAAa,EAAE,EAAE,CAAC;IAC9B,IAAI,CAAC,EAAE;QACL,MAAM,EAAE,aAAa,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,MAAM,CAAC,EAAE;QACP,SAAS,CAAC,EAAE,WAAW,CACrB,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,EACnC,cAAc,CACf,CAAC;QACF,IAAI,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;KAC3C,CAAC;IAEF,UAAU,CAAC,EAAE,OAAO,CAAC;QACnB,aAAa,EAAE,EAAE,CAAC;YAAE,IAAI,EAAE,WAAW,CAAA;SAAE,CAAC,CAAC;KAC1C,CAAC,CAAC;CACJ;AAgCD,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC7B,KAAK,EACL,MAAc,EACd,UAAU,EACV,UAAU,EACV,IAAI,EACJ,MAAM,EACN,UAAU,EACV,QAAQ,EACR,UAAU,EAAE,EAAE,aAAoC,EAAO,EACzD,GAAG,IAAI,EACR,EAAE,WAAW,2CA2Kb"}
|
|
@@ -5,7 +5,7 @@ import { Controller, FormProvider, useForm, useFormContext, } from 'react-hook-f
|
|
|
5
5
|
import { useApiContext, useServerSelectContext } from '../ui/contexts/api.js';
|
|
6
6
|
import { FieldInput, FieldSet, JsonInput, ObjectInput } from './inputs.js';
|
|
7
7
|
import { getStatusInfo } from './status-info.js';
|
|
8
|
-
import {
|
|
8
|
+
import { joinURL, resolveRequestData, resolveServerUrl, withBase, } from '../utils/url.js';
|
|
9
9
|
import { DynamicCodeBlock } from 'fumadocs-ui/components/dynamic-codeblock';
|
|
10
10
|
import { MethodLabel } from '../ui/components/method-label.js';
|
|
11
11
|
import { useQuery } from '../utils/use-query.js';
|
|
@@ -58,12 +58,10 @@ export default function Client({ route, method = 'GET', securities, parameters,
|
|
|
58
58
|
});
|
|
59
59
|
const testQuery = useQuery(async (input) => {
|
|
60
60
|
const fetcher = await import('./fetcher.js').then((mod) => mod.createBrowserFetcher(mediaAdapters));
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
: window.location.origin;
|
|
64
|
-
return fetcher.fetch(`${serverUrl}${route}`, {
|
|
61
|
+
const data = toRequestData(method, body?.mediaType, input);
|
|
62
|
+
return fetcher.fetch(joinURL(withBase(server ? resolveServerUrl(server.url, server.variables) : '/', window.location.origin), resolveRequestData(route, data)), {
|
|
65
63
|
proxyUrl,
|
|
66
|
-
...
|
|
64
|
+
...data,
|
|
67
65
|
});
|
|
68
66
|
});
|
|
69
67
|
function initAuthValues(values, inputs) {
|
|
@@ -9,7 +9,12 @@ export interface FetchResult {
|
|
|
9
9
|
data: unknown;
|
|
10
10
|
}
|
|
11
11
|
export interface Fetcher {
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* This method will not apply the path & search parameters from `options` to given `url`.
|
|
14
|
+
*
|
|
15
|
+
* @param url - The full URL of request.
|
|
16
|
+
*/
|
|
17
|
+
fetch: (url: string, options: FetchOptions) => Promise<FetchResult>;
|
|
13
18
|
}
|
|
14
19
|
export declare function createBrowserFetcher(adapters: Record<string, MediaAdapter>): Fetcher;
|
|
15
20
|
//# sourceMappingURL=fetcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetcher.d.ts","sourceRoot":"","sources":["../../src/playground/fetcher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fetcher.d.ts","sourceRoot":"","sources":["../../src/playground/fetcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC/B,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,OAAO;IACtB;;;;OAIG;IACH,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;CACrE;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GACrC,OAAO,CAgGT"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { getPathnameFromInput } from '../utils/get-pathname-from-input.js';
|
|
2
1
|
export function createBrowserFetcher(adapters) {
|
|
3
2
|
return {
|
|
4
|
-
async fetch(
|
|
3
|
+
async fetch(url, options) {
|
|
5
4
|
const headers = new Headers();
|
|
6
5
|
if (options.bodyMediaType)
|
|
7
6
|
headers.append('Content-Type', options.bodyMediaType);
|
|
@@ -11,9 +10,8 @@ export function createBrowserFetcher(adapters) {
|
|
|
11
10
|
headers.append(key, paramValue.toString());
|
|
12
11
|
}
|
|
13
12
|
const proxyUrl = options.proxyUrl
|
|
14
|
-
? new URL(options.proxyUrl,
|
|
13
|
+
? new URL(options.proxyUrl, document.baseURI)
|
|
15
14
|
: null;
|
|
16
|
-
let url = getPathnameFromInput(route, options.path, options.query);
|
|
17
15
|
if (proxyUrl) {
|
|
18
16
|
proxyUrl.searchParams.append('url', url);
|
|
19
17
|
url = proxyUrl.toString();
|
package/dist/playground/index.js
CHANGED
|
@@ -68,11 +68,6 @@ function writeReferences(schema, ctx, stack = new WeakMap()) {
|
|
|
68
68
|
for (const key in output[name]) {
|
|
69
69
|
output[name][key] = writeReferences(output[name][key], ctx, stack);
|
|
70
70
|
}
|
|
71
|
-
continue;
|
|
72
|
-
default:
|
|
73
|
-
if (typeof output[name] === 'object' && !Array.isArray(output[name])) {
|
|
74
|
-
output[name] = { ...output[name] };
|
|
75
|
-
}
|
|
76
71
|
}
|
|
77
72
|
}
|
|
78
73
|
return output;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-page.d.ts","sourceRoot":"","sources":["../../src/render/api-page.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,OAAO,EAAiB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,iBAAiB,EACvB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"api-page.d.ts","sourceRoot":"","sources":["../../src/render/api-page.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,OAAO,EAAiB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,iBAAiB,EACvB,MAAM,0BAA0B,CAAC;AAGlC,KAAK,mBAAmB,GAAG,IAAI,CAC7B,OAAO,CAAC,aAAa,CAAC,EACpB,cAAc,GACd,0BAA0B,GAC1B,qBAAqB,GACrB,UAAU,GACV,oBAAoB,GACpB,mBAAmB,GACnB,eAAe,CAClB,CAAC;AAEF,MAAM,WAAW,YAAa,SAAQ,mBAAmB;IACvD,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IAEjB,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE7B;;OAEG;IACH,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAE7B,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IAEzB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC;CACjC;AAED,wBAAsB,OAAO,CAAC,KAAK,EAAE,YAAY,oDAkEhD;AAED,wBAAsB,UAAU,CAC9B,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE,mBAAmB,GAAG;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CACzB,GACL,OAAO,CAAC,aAAa,CAAC,CAiCxB"}
|
package/dist/render/api-page.js
CHANGED
|
@@ -4,7 +4,6 @@ import { Operation } from '../render/operation/index.js';
|
|
|
4
4
|
import { createMethod } from '../server/create-method.js';
|
|
5
5
|
import { createRenders } from '../render/renderer.js';
|
|
6
6
|
import { processDocument, } from '../utils/process-document.js';
|
|
7
|
-
import { getUrl } from '../utils/server-url.js';
|
|
8
7
|
export async function APIPage(props) {
|
|
9
8
|
const { operations, hasHead = true, webhooks, disableCache = process.env.NODE_ENV === 'development', } = props;
|
|
10
9
|
const processed = await processDocument(props.document, disableCache);
|
|
@@ -27,18 +26,14 @@ export async function APIPage(props) {
|
|
|
27
26
|
if (!hook)
|
|
28
27
|
throw new Error(`[Fumadocs OpenAPI] Method ${item.method} not found in webhook: ${item.name}`);
|
|
29
28
|
const method = createMethod(item.method, webhook, hook);
|
|
30
|
-
return (_jsx(Operation, { type: "webhook", method: method, ctx: {
|
|
31
|
-
...ctx,
|
|
32
|
-
baseUrl: 'http://localhost:8080',
|
|
33
|
-
}, path: `/${item.name}`, hasHead: hasHead }, `${item.name}:${item.method}`));
|
|
29
|
+
return (_jsx(Operation, { type: "webhook", method: method, ctx: ctx, path: `/${item.name}`, hasHead: hasHead }, `${item.name}:${item.method}`));
|
|
34
30
|
})] }));
|
|
35
31
|
}
|
|
36
32
|
export async function getContext(schema, options = {}) {
|
|
37
33
|
const document = schema.document;
|
|
38
34
|
const servers = document.servers && document.servers.length > 0
|
|
39
35
|
? document.servers
|
|
40
|
-
: [{ url: '
|
|
41
|
-
const server = servers[0];
|
|
36
|
+
: [{ url: '/' }];
|
|
42
37
|
return {
|
|
43
38
|
schema,
|
|
44
39
|
proxyUrl: options.proxyUrl,
|
|
@@ -51,9 +46,6 @@ export async function getContext(schema, options = {}) {
|
|
|
51
46
|
shikiOptions: options.shikiOptions,
|
|
52
47
|
generateTypeScriptSchema: options.generateTypeScriptSchema,
|
|
53
48
|
generateCodeSamples: options.generateCodeSamples,
|
|
54
|
-
baseUrl: getUrl(server.url, server.variables
|
|
55
|
-
? Object.fromEntries(Object.entries(server.variables).map(([k, v]) => [k, v.default]))
|
|
56
|
-
: {}),
|
|
57
49
|
servers,
|
|
58
50
|
mediaAdapters: {
|
|
59
51
|
...{
|
|
@@ -11,6 +11,5 @@ export interface RequestData {
|
|
|
11
11
|
body?: unknown;
|
|
12
12
|
bodyMediaType?: string;
|
|
13
13
|
}
|
|
14
|
-
export declare function getUrl(url: string, data: RequestData): string;
|
|
15
14
|
export declare function ident(code: string, tab?: number): string;
|
|
16
15
|
//# sourceMappingURL=_shared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_shared.d.ts","sourceRoot":"","sources":["../../src/requests/_shared.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"_shared.d.ts","sourceRoot":"","sources":["../../src/requests/_shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,MAAM,eAAe,GAAG,CAC5B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE;IACP,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CAC7C,KACE,MAAM,CAAC;AAEZ,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IAEf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAE,MAAU,UAKlD"}
|
package/dist/requests/_shared.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curl.d.ts","sourceRoot":"","sources":["../../src/requests/curl.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"curl.d.ts","sourceRoot":"","sources":["../../src/requests/curl.ts"],"names":[],"mappings":"AAEA,OAAO,EAAS,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AASjE,eAAO,MAAM,SAAS,EAAE,eA0CvB,CAAC"}
|
package/dist/requests/curl.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { inputToString } from '../utils/input-to-string.js';
|
|
3
|
-
import {
|
|
3
|
+
import { ident } from '../requests/_shared.js';
|
|
4
|
+
import { resolveRequestData } from '../utils/url.js';
|
|
4
5
|
const MediaTypeFormatMap = {
|
|
5
6
|
'application/json': 'json',
|
|
6
7
|
'application/xml': 'xml',
|
|
@@ -8,7 +9,7 @@ const MediaTypeFormatMap = {
|
|
|
8
9
|
};
|
|
9
10
|
export const generator = (url, data) => {
|
|
10
11
|
const s = [];
|
|
11
|
-
s.push(`curl -X ${data.method} "${
|
|
12
|
+
s.push(`curl -X ${data.method} "${resolveRequestData(url, data)}"`);
|
|
12
13
|
for (const header in data.header) {
|
|
13
14
|
const value = `${header}: ${data.header[header]}`;
|
|
14
15
|
s.push(`-H "${value}"`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../src/requests/go.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../src/requests/go.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG5D,eAAO,MAAM,SAAS,EAAE,eAqDvB,CAAC"}
|
package/dist/requests/go.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
2
|
+
import { ident } from '../requests/_shared.js';
|
|
3
|
+
import { resolveRequestData } from '../utils/url.js';
|
|
3
4
|
export const generator = (url, data, { mediaAdapters }) => {
|
|
4
5
|
const imports = ['fmt', 'net/http', 'io/ioutil'];
|
|
5
6
|
const headers = new Map();
|
|
6
7
|
const variables = new Map();
|
|
7
|
-
variables.set('url', JSON.stringify(
|
|
8
|
+
variables.set('url', JSON.stringify(resolveRequestData(url, data)));
|
|
8
9
|
for (const header in data.header) {
|
|
9
10
|
headers.set(header, JSON.stringify(data.header[header]));
|
|
10
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"javascript.d.ts","sourceRoot":"","sources":["../../src/requests/javascript.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"javascript.d.ts","sourceRoot":"","sources":["../../src/requests/javascript.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGjE,eAAO,MAAM,SAAS,EAAE,eA0CvB,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
2
|
+
import { ident } from '../requests/_shared.js';
|
|
3
|
+
import { resolveRequestData } from '../utils/url.js';
|
|
3
4
|
export const generator = (url, data, { mediaAdapters }) => {
|
|
4
5
|
const s = [];
|
|
5
6
|
const options = new Map();
|
|
@@ -25,7 +26,7 @@ export const generator = (url, data, { mediaAdapters }) => {
|
|
|
25
26
|
s.push(body);
|
|
26
27
|
options.set('body', 'body');
|
|
27
28
|
}
|
|
28
|
-
const params = [JSON.stringify(
|
|
29
|
+
const params = [JSON.stringify(resolveRequestData(url, data))];
|
|
29
30
|
if (options.size > 0) {
|
|
30
31
|
const str = Array.from(options.entries())
|
|
31
32
|
.map(([k, v]) => ident(k === v ? k : `${k}: ${v}`))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../src/requests/python.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../src/requests/python.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D,eAAO,MAAM,SAAS,EAAE,eAkCvB,CAAC"}
|
package/dist/requests/python.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
2
|
+
import { resolveRequestData } from '../utils/url.js';
|
|
3
3
|
export const generator = (url, data, { mediaAdapters }) => {
|
|
4
4
|
const headers = { ...data.header };
|
|
5
5
|
const params = [`"${data.method}"`, 'url'];
|
|
@@ -24,7 +24,7 @@ export const generator = (url, data, { mediaAdapters }) => {
|
|
|
24
24
|
}
|
|
25
25
|
return `import requests
|
|
26
26
|
|
|
27
|
-
url = ${JSON.stringify(
|
|
27
|
+
url = ${JSON.stringify(resolveRequestData(url, data))}
|
|
28
28
|
${body ?? ''}
|
|
29
29
|
response = requests.request(${params.join(', ')})
|
|
30
30
|
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACrC,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;AACnD,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;AACnD,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,yBAAyB,CAAC;AACvE,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;AAC7D,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;AACnD,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;AACjD,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACvC,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC1D,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAE9D,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAC,eAAe,CAAC,GAAG;IAC7D,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEnC;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACrC,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;AACnD,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;AACnD,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,yBAAyB,CAAC;AACvE,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;AAC7D,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;AACnD,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;AACjD,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACvC,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC1D,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAE9D,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAC,eAAe,CAAC,GAAG;IAC7D,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEnC;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,OAAO,EAAE,YAAY,EAAE,CAAC;IAExB,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,iBAAiB,CAAC;IAE1B;;;;;;;OAOG;IACH,wBAAwB,CAAC,EACrB,CAAC,CACC,MAAM,EAAE,WAAW,CAAC,iBAAiB,CAAC,EACtC,UAAU,EAAE,MAAM,KACf,SAAS,CAAC,MAAM,CAAC,CAAC,GACvB,KAAK,CAAC;IAEV;;OAEG;IACH,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;IAE7E,YAAY,CAAC,EAAE,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,GAClD,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAElC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC,CAAC;CACpD"}
|
package/dist/ui/contexts/api.js
CHANGED
|
@@ -20,7 +20,7 @@ export function ApiProvider({ defaultBaseUrl, children, servers, mediaAdapters,
|
|
|
20
20
|
const [server, setServer] = useState(() => {
|
|
21
21
|
const defaultItem = defaultBaseUrl
|
|
22
22
|
? servers.find((item) => item.url === defaultBaseUrl)
|
|
23
|
-
:
|
|
23
|
+
: servers.at(0);
|
|
24
24
|
return defaultItem
|
|
25
25
|
? {
|
|
26
26
|
url: defaultItem.url,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-example.d.ts","sourceRoot":"","sources":["../../../src/ui/contexts/code-example.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAUtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAqBtD,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,QAAQ,EACR,UAAU,EACV,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,WAAW,CAAC;KACnB,EAAE,CAAC;IACJ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CAwDA;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"code-example.d.ts","sourceRoot":"","sources":["../../../src/ui/contexts/code-example.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAUtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAqBtD,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,QAAQ,EACR,UAAU,EACV,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,WAAW,CAAC;KACnB,EAAE,CAAC;IACJ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CAwDA;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,kDAgD5C;AAED,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE,YAAY,2CAoB1D;AAgBD,wBAAgB,qBAAqB,gBAOpC;AAED,wBAAgB,qBAAqB;oBA5KnB,WAAW,KAAK,IAAI;EA+KrC"}
|
|
@@ -5,7 +5,7 @@ import { useApiContext, useServerSelectContext } from '../../ui/contexts/api.js'
|
|
|
5
5
|
import { DynamicCodeBlock } from 'fumadocs-ui/components/dynamic-codeblock';
|
|
6
6
|
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from '../../ui/components/select.js';
|
|
7
7
|
import { useEffectEvent } from 'fumadocs-core/utils/use-effect-event';
|
|
8
|
-
import {
|
|
8
|
+
import { joinURL, resolveServerUrl, withBase } from '../../utils/url.js';
|
|
9
9
|
import { defaultSamples } from '../../requests/index.js';
|
|
10
10
|
const CodeExampleContext = createContext(null);
|
|
11
11
|
export function CodeExampleProvider({ route, examples, initialKey, children, }) {
|
|
@@ -72,7 +72,9 @@ export function CodeExample(props) {
|
|
|
72
72
|
return;
|
|
73
73
|
if (typeof sample.source === 'string')
|
|
74
74
|
return sample.source;
|
|
75
|
-
return sample.source(
|
|
75
|
+
return sample.source(joinURL(withBase(server ? resolveServerUrl(server.url, server.variables) : '/', typeof window !== 'undefined'
|
|
76
|
+
? window.location.origin
|
|
77
|
+
: 'https://loading'), route), data, {
|
|
76
78
|
mediaAdapters,
|
|
77
79
|
});
|
|
78
80
|
}, [mediaAdapters, sample, server, route, data]);
|
package/dist/ui/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5D,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAYlE,wBAAgB,IAAI,CAAC,EACnB,QAAQ,EACR,SAAS,EACT,GAAG,EACH,GAAG,KAAK,EACT,EAAE,SAAS,GAAG,cAAc,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5D,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAYlE,wBAAgB,IAAI,CAAC,EACnB,QAAQ,EACR,SAAS,EACT,GAAG,EACH,GAAG,KAAK,EACT,EAAE,SAAS,GAAG,cAAc,CAAC,cAAc,CAAC,2CAkB5C;AAED,wBAAgB,OAAO,CAAC,EACtB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,cAAc,CAAC,2CAMhC;AAED,wBAAgB,GAAG,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,cAAc,CAAC,2CAmBzE;AAED,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,MAAM,EACN,GAAG,KAAK,EACT,EAAE,aAAa,2CA+Bf;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,cAAc,CAAC,2CAY/D;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,CAAC;CACrB,2CAiBA;AAED,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/ui/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import { ApiProvider } from '../ui/lazy.js';
|
|
|
6
6
|
import { cn } from 'fumadocs-ui/utils/cn';
|
|
7
7
|
import { buttonVariants } from 'fumadocs-ui/components/ui/button';
|
|
8
8
|
export function Root({ children, className, ctx, ...props }) {
|
|
9
|
-
return (_jsx("div", { className: cn('flex flex-col gap-24 text-sm', className), ...props, children: _jsx(ApiProvider, { mediaAdapters: Object.fromEntries(Object.entries(ctx.mediaAdapters).filter(([_, v]) => typeof v !== 'boolean')), servers: ctx.servers, shikiOptions: ctx.shikiOptions,
|
|
9
|
+
return (_jsx("div", { className: cn('flex flex-col gap-24 text-sm', className), ...props, children: _jsx(ApiProvider, { mediaAdapters: Object.fromEntries(Object.entries(ctx.mediaAdapters).filter(([_, v]) => typeof v !== 'boolean')), servers: ctx.servers, shikiOptions: ctx.shikiOptions, children: children }) }));
|
|
10
10
|
}
|
|
11
11
|
export function APIInfo({ className, ...props }) {
|
|
12
12
|
return (_jsx("div", { className: cn('min-w-0 flex-1', className), ...props, children: props.children }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-select.d.ts","sourceRoot":"","sources":["../../src/ui/server-select.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,cAAc,EAAuB,MAAM,OAAO,CAAC;AAejE,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"server-select.d.ts","sourceRoot":"","sources":["../../src/ui/server-select.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,cAAc,EAAuB,MAAM,OAAO,CAAC;AAejE,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC,cAAc,CAAC,uDAgDzE"}
|
package/dist/ui/server-select.js
CHANGED
|
@@ -6,7 +6,7 @@ import { Input, labelVariants } from '../ui/components/input.js';
|
|
|
6
6
|
import { useEffect, useState } from 'react';
|
|
7
7
|
import { cn } from 'fumadocs-ui/utils/cn';
|
|
8
8
|
import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger, } from '../ui/components/dialog.js';
|
|
9
|
-
import {
|
|
9
|
+
import { resolveServerUrl, withBase } from '../utils/url.js';
|
|
10
10
|
import { FormProvider, useController, useForm } from 'react-hook-form';
|
|
11
11
|
import { useEffectEvent } from 'fumadocs-core/utils/use-effect-event';
|
|
12
12
|
export default function ServerSelect(props) {
|
|
@@ -20,9 +20,7 @@ export default function ServerSelect(props) {
|
|
|
20
20
|
if (servers.length <= 0)
|
|
21
21
|
return;
|
|
22
22
|
return (_jsxs(Dialog, { open: open, onOpenChange: setOpen, children: [_jsx(DialogTrigger, { className: "text-xs p-3 py-2 bg-fd-muted text-fd-muted-foreground transition-colors truncate hover:bg-fd-accent hover:text-fd-accent-foreground focus-visible:outline-none", children: isMounted
|
|
23
|
-
? server
|
|
24
|
-
? getUrl(server.url, server.variables)
|
|
25
|
-
: window.location.origin
|
|
23
|
+
? withBase(server ? resolveServerUrl(server.url, server.variables) : '/', window.location.origin)
|
|
26
24
|
: 'loading...' }), _jsxs(DialogContent, { ...props, children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: "Server URL" }), _jsx(DialogDescription, { children: "The base URL of your API endpoint." })] }), _jsxs(Select, { value: server?.url, onValueChange: setServer, children: [_jsx(SelectTrigger, { children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: servers.map((item) => (_jsxs(SelectItem, { value: item.url, children: [_jsx("code", { className: "text-[13px]", children: item.url }), _jsx("p", { className: "text-fd-muted-foreground", children: item.description })] }, item.url))) })] }), server && server.variables && (_jsx(ServerSelectContent, { server: server }, server.url))] })] }));
|
|
27
25
|
}
|
|
28
26
|
function ServerSelectContent({ server }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-typescript-schema.d.ts","sourceRoot":"","sources":["../../src/utils/get-typescript-schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"get-typescript-schema.d.ts","sourceRoot":"","sources":["../../src/utils/get-typescript-schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAS7B"}
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
import { compile } from '@fumari/json-schema-to-typescript';
|
|
2
2
|
export async function getTypescriptSchema(schema, dereferenceMap) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
// because it uses `defineProperty` to define internal references
|
|
6
|
-
// we clone the schema to fix this problem
|
|
7
|
-
schema, 'Response', {
|
|
3
|
+
const cloned = structuredClone({ schema, dereferenceMap });
|
|
4
|
+
return compile(cloned.schema, 'Response', {
|
|
8
5
|
$refOptions: false,
|
|
9
|
-
schemaToId: dereferenceMap,
|
|
6
|
+
schemaToId: cloned.dereferenceMap,
|
|
10
7
|
bannerComment: '',
|
|
11
8
|
additionalProperties: false,
|
|
12
|
-
format: true,
|
|
13
9
|
enableConstEnums: false,
|
|
14
10
|
});
|
|
15
11
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { RequestData } from '../requests/_shared.js';
|
|
2
|
+
export declare function joinURL(base: string, pathname: string): string;
|
|
3
|
+
/**
|
|
4
|
+
* @param url - URL (can be relative)
|
|
5
|
+
* @param base - the base URL (must be absolute)
|
|
6
|
+
*/
|
|
7
|
+
export declare function withBase(url: string, base: string): string;
|
|
8
|
+
export declare function resolveServerUrl(template: string, variables: Record<string, string>): string;
|
|
9
|
+
export declare function resolveRequestData(pathname: string, { path, query }: RequestData): string;
|
|
10
|
+
//# sourceMappingURL=url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../src/utils/url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQ9D;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,MAAM,CAMR;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,WAAW,GAC3B,MAAM,CAyBR"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export function joinURL(base, pathname) {
|
|
2
|
+
pathname = pathname
|
|
3
|
+
.split('/')
|
|
4
|
+
.filter((v) => v.length > 0)
|
|
5
|
+
.join('/');
|
|
6
|
+
if (!base.endsWith('/') && pathname.length > 0)
|
|
7
|
+
base += '/';
|
|
8
|
+
return base + pathname;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* @param url - URL (can be relative)
|
|
12
|
+
* @param base - the base URL (must be absolute)
|
|
13
|
+
*/
|
|
14
|
+
export function withBase(url, base) {
|
|
15
|
+
if (!url.startsWith('https://') && !url.startsWith('http://')) {
|
|
16
|
+
return joinURL(base, url);
|
|
17
|
+
}
|
|
18
|
+
return url;
|
|
19
|
+
}
|
|
20
|
+
export function resolveServerUrl(template, variables) {
|
|
21
|
+
for (const [key, value] of Object.entries(variables)) {
|
|
22
|
+
template = template.replaceAll(`{${key}}`, value);
|
|
23
|
+
}
|
|
24
|
+
return template;
|
|
25
|
+
}
|
|
26
|
+
export function resolveRequestData(pathname, { path, query }) {
|
|
27
|
+
for (const key in path) {
|
|
28
|
+
if (path[key] === '')
|
|
29
|
+
continue;
|
|
30
|
+
if (Array.isArray(path[key])) {
|
|
31
|
+
pathname = pathname.replace(`{${key}}`, path[key].join('/'));
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
pathname = pathname.replace(`{${key}}`, String(path[key]));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const searchParams = new URLSearchParams();
|
|
38
|
+
for (const key in query) {
|
|
39
|
+
if (Array.isArray(query[key])) {
|
|
40
|
+
for (const value of query[key]) {
|
|
41
|
+
if (!query[key])
|
|
42
|
+
continue;
|
|
43
|
+
searchParams.append(key, String(value));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
else if (query[key] && query[key] !== '') {
|
|
47
|
+
searchParams.set(key, String(query[key]));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return searchParams.size > 0 ? `${pathname}?${searchParams}` : pathname;
|
|
51
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fumadocs-openapi",
|
|
3
|
-
"version": "9.0.
|
|
3
|
+
"version": "9.0.7",
|
|
4
4
|
"description": "Generate MDX docs for your OpenAPI spec",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"NextJs",
|
|
@@ -64,8 +64,8 @@
|
|
|
64
64
|
"shiki": "^3.4.2",
|
|
65
65
|
"tinyglobby": "^0.2.14",
|
|
66
66
|
"xml-js": "^1.6.11",
|
|
67
|
-
"fumadocs-
|
|
68
|
-
"fumadocs-
|
|
67
|
+
"fumadocs-ui": "15.5.1",
|
|
68
|
+
"fumadocs-core": "15.5.1"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
71
|
"@scalar/api-client-react": "^1.3.5",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-pathname-from-input.d.ts","sourceRoot":"","sources":["../../src/utils/get-pathname-from-input.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,MAAM,CA0BR"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
export function getPathnameFromInput(url, path, query) {
|
|
2
|
-
let pathname = url;
|
|
3
|
-
for (const key in path) {
|
|
4
|
-
if (path[key] === '')
|
|
5
|
-
continue;
|
|
6
|
-
if (Array.isArray(path[key])) {
|
|
7
|
-
pathname = pathname.replace(`{${key}}`, path[key].join('/'));
|
|
8
|
-
}
|
|
9
|
-
else {
|
|
10
|
-
pathname = pathname.replace(`{${key}}`, String(path[key]));
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
const searchParams = new URLSearchParams();
|
|
14
|
-
for (const key in query) {
|
|
15
|
-
if (query[key] === '')
|
|
16
|
-
continue;
|
|
17
|
-
if (Array.isArray(query[key])) {
|
|
18
|
-
for (const value of query[key]) {
|
|
19
|
-
searchParams.append(key, String(value));
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
searchParams.set(key, String(query[key]));
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return searchParams.size > 0 ? `${pathname}?${searchParams}` : pathname;
|
|
27
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server-url.d.ts","sourceRoot":"","sources":["../../src/utils/server-url.ts"],"names":[],"mappings":"AAAA,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAQ7E"}
|