fumadocs-openapi 9.0.17 → 9.1.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.
- package/dist/media/adapter.d.ts +47 -16
- package/dist/media/adapter.d.ts.map +1 -1
- package/dist/media/adapter.js +3 -4
- package/dist/playground/client.d.ts +6 -4
- package/dist/playground/client.d.ts.map +1 -1
- package/dist/playground/client.js +19 -18
- package/dist/playground/fetcher.d.ts.map +1 -1
- package/dist/playground/fetcher.js +14 -24
- package/dist/playground/index.d.ts +3 -5
- package/dist/playground/index.d.ts.map +1 -1
- package/dist/playground/index.js +2 -4
- package/dist/render/api-page.d.ts.map +1 -1
- package/dist/render/api-page.js +2 -8
- package/dist/render/operation/api-example.d.ts +3 -2
- package/dist/render/operation/api-example.d.ts.map +1 -1
- package/dist/render/operation/api-example.js +8 -6
- package/dist/render/operation/get-request-data.d.ts +2 -2
- package/dist/render/operation/get-request-data.d.ts.map +1 -1
- package/dist/render/renderer.d.ts.map +1 -1
- package/dist/render/renderer.js +3 -2
- package/dist/render/schema.d.ts +1 -1
- package/dist/render/schema.d.ts.map +1 -1
- package/dist/render/schema.js +11 -12
- package/dist/requests/_shared.d.ts +20 -4
- package/dist/requests/_shared.d.ts.map +1 -1
- package/dist/requests/_shared.js +113 -0
- package/dist/requests/csharp.d.ts.map +1 -1
- package/dist/requests/csharp.js +12 -8
- package/dist/requests/curl.d.ts.map +1 -1
- package/dist/requests/curl.js +5 -6
- package/dist/requests/go.d.ts +1 -1
- package/dist/requests/go.d.ts.map +1 -1
- package/dist/requests/go.js +6 -6
- package/dist/requests/java.d.ts.map +1 -1
- package/dist/requests/java.js +8 -8
- package/dist/requests/javascript.d.ts.map +1 -1
- package/dist/requests/javascript.js +9 -6
- package/dist/requests/python.d.ts.map +1 -1
- package/dist/requests/python.js +12 -5
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/components/accordion.d.ts.map +1 -1
- package/dist/ui/components/accordion.js +1 -1
- package/dist/ui/contexts/api.d.ts +2 -1
- package/dist/ui/contexts/api.d.ts.map +1 -1
- package/dist/ui/contexts/code-example.d.ts +5 -4
- package/dist/ui/contexts/code-example.d.ts.map +1 -1
- package/dist/ui/contexts/code-example.js +14 -11
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +8 -2
- package/dist/ui/lazy.d.ts +2 -1
- package/dist/ui/lazy.d.ts.map +1 -1
- package/dist/utils/get-typescript-schema.d.ts.map +1 -1
- package/dist/utils/get-typescript-schema.js +13 -8
- package/dist/utils/process-document.d.ts.map +1 -1
- package/dist/utils/process-document.js +8 -11
- package/dist/utils/schema-to-string.d.ts +2 -1
- package/dist/utils/schema-to-string.d.ts.map +1 -1
- package/dist/utils/schema-to-string.js +54 -46
- package/dist/utils/url.js +10 -12
- package/package.json +5 -5
|
@@ -1,15 +1,31 @@
|
|
|
1
1
|
import type { MediaAdapter } from '../media/adapter.js';
|
|
2
|
+
import type { NoReference } from '../utils/schema.js';
|
|
3
|
+
import type { ParameterObject } from '../types.js';
|
|
2
4
|
export type SampleGenerator = (url: string, data: RequestData, context: {
|
|
3
5
|
mediaAdapters: Record<string, MediaAdapter>;
|
|
4
6
|
}) => string;
|
|
7
|
+
export interface RawRequestData {
|
|
8
|
+
method: string;
|
|
9
|
+
path: Record<string, unknown>;
|
|
10
|
+
query: Record<string, unknown>;
|
|
11
|
+
header: Record<string, unknown>;
|
|
12
|
+
cookie: Record<string, unknown>;
|
|
13
|
+
body?: unknown;
|
|
14
|
+
bodyMediaType?: string;
|
|
15
|
+
}
|
|
16
|
+
interface EncodedParameter {
|
|
17
|
+
readonly value: string | string[];
|
|
18
|
+
}
|
|
5
19
|
export interface RequestData {
|
|
6
20
|
method: string;
|
|
7
|
-
path: Record<string,
|
|
8
|
-
query: Record<string,
|
|
9
|
-
header: Record<string,
|
|
10
|
-
cookie: Record<string,
|
|
21
|
+
path: Record<string, EncodedParameter>;
|
|
22
|
+
query: Record<string, EncodedParameter>;
|
|
23
|
+
header: Record<string, EncodedParameter>;
|
|
24
|
+
cookie: Record<string, EncodedParameter>;
|
|
11
25
|
body?: unknown;
|
|
12
26
|
bodyMediaType?: string;
|
|
13
27
|
}
|
|
14
28
|
export declare function ident(code: string, tab?: number): string;
|
|
29
|
+
export declare function encodeRequestData(from: RawRequestData, adapters: Record<string, MediaAdapter>, parameters: NoReference<ParameterObject>[]): RequestData;
|
|
30
|
+
export {};
|
|
15
31
|
//# sourceMappingURL=_shared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_shared.d.ts","sourceRoot":"","sources":["../../src/requests/_shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"_shared.d.ts","sourceRoot":"","sources":["../../src/requests/_shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,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,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IAEf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEhC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,gBAAgB;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IAEf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAEzC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAYD,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAE,MAAU,UAKlD;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,cAAc,EACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EACtC,UAAU,EAAE,WAAW,CAAC,eAAe,CAAC,EAAE,GACzC,WAAW,CAsIb"}
|
package/dist/requests/_shared.js
CHANGED
|
@@ -1,6 +1,119 @@
|
|
|
1
|
+
const FormDelimiter = {
|
|
2
|
+
spaceDelimited: ' ',
|
|
3
|
+
pipeDelimited: '|',
|
|
4
|
+
};
|
|
5
|
+
const PathPrefix = {
|
|
6
|
+
label: '.',
|
|
7
|
+
matrix: ';',
|
|
8
|
+
};
|
|
1
9
|
export function ident(code, tab = 1) {
|
|
2
10
|
return code
|
|
3
11
|
.split('\n')
|
|
4
12
|
.map((v) => ' '.repeat(tab) + v)
|
|
5
13
|
.join('\n');
|
|
6
14
|
}
|
|
15
|
+
export function encodeRequestData(from, adapters, parameters) {
|
|
16
|
+
function getMediaEncoder(field) {
|
|
17
|
+
if (!field.content)
|
|
18
|
+
return;
|
|
19
|
+
for (const k in field.content) {
|
|
20
|
+
if (k in adapters) {
|
|
21
|
+
return (v) => String(adapters[k].encode({ body: v }));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function writeObject(parentKey, value, deep, output) {
|
|
26
|
+
for (const k in value) {
|
|
27
|
+
const prop = value[k];
|
|
28
|
+
if (prop == null)
|
|
29
|
+
continue;
|
|
30
|
+
const key = deep ? `${parentKey}[${k}]` : k;
|
|
31
|
+
if (!deep || typeof prop !== 'object') {
|
|
32
|
+
output[key] = {
|
|
33
|
+
value: String(prop),
|
|
34
|
+
};
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
writeObject(key, value, deep, output);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function write(key, value, field, output = {}) {
|
|
41
|
+
const encoder = getMediaEncoder(field);
|
|
42
|
+
if (encoder) {
|
|
43
|
+
output[key] = { value: encoder(value) };
|
|
44
|
+
return output;
|
|
45
|
+
}
|
|
46
|
+
const explode = field.explode ?? true;
|
|
47
|
+
let prefix = '';
|
|
48
|
+
let sep = ',';
|
|
49
|
+
if (field.in === 'path') {
|
|
50
|
+
const style = field.style ?? 'simple';
|
|
51
|
+
if (style in PathPrefix) {
|
|
52
|
+
prefix = PathPrefix[style];
|
|
53
|
+
if (explode)
|
|
54
|
+
sep = prefix;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (Array.isArray(value)) {
|
|
58
|
+
// header & cookie doesn't support explode for array values
|
|
59
|
+
if (explode && field.in !== 'header' && field.in !== 'cookie') {
|
|
60
|
+
output[key] = {
|
|
61
|
+
value: prefix + value.map(String),
|
|
62
|
+
};
|
|
63
|
+
return output;
|
|
64
|
+
}
|
|
65
|
+
if (field.in === 'query') {
|
|
66
|
+
const style = field.style ?? 'form';
|
|
67
|
+
if (style in FormDelimiter)
|
|
68
|
+
sep = FormDelimiter[style];
|
|
69
|
+
}
|
|
70
|
+
output[key] = {
|
|
71
|
+
value: prefix + value.map(String).join(sep),
|
|
72
|
+
};
|
|
73
|
+
return output;
|
|
74
|
+
}
|
|
75
|
+
if (typeof value === 'object' && value) {
|
|
76
|
+
// header & path creates key-value pairs
|
|
77
|
+
if (explode && (field.in === 'header' || field.in === 'path')) {
|
|
78
|
+
output[key] = {
|
|
79
|
+
value: prefix +
|
|
80
|
+
Object.entries(value)
|
|
81
|
+
.map(([k, v]) => `${k}=${v}`)
|
|
82
|
+
.join(sep),
|
|
83
|
+
};
|
|
84
|
+
return output;
|
|
85
|
+
}
|
|
86
|
+
if (explode || field.style === 'deepObject') {
|
|
87
|
+
writeObject(key, value, field.style === 'deepObject', output);
|
|
88
|
+
return output;
|
|
89
|
+
}
|
|
90
|
+
output[key] = {
|
|
91
|
+
value: prefix + Object.entries(value).flat().join(sep),
|
|
92
|
+
};
|
|
93
|
+
return output;
|
|
94
|
+
}
|
|
95
|
+
output[key] = {
|
|
96
|
+
value: prefix + String(value),
|
|
97
|
+
};
|
|
98
|
+
return output;
|
|
99
|
+
}
|
|
100
|
+
const result = {
|
|
101
|
+
method: from.method,
|
|
102
|
+
body: from.body,
|
|
103
|
+
bodyMediaType: from.bodyMediaType,
|
|
104
|
+
};
|
|
105
|
+
for (const type of ['cookie', 'query', 'header', 'path']) {
|
|
106
|
+
const out = {};
|
|
107
|
+
for (const k in from[type]) {
|
|
108
|
+
const value = from[type][k];
|
|
109
|
+
if (value == null)
|
|
110
|
+
continue;
|
|
111
|
+
const field = parameters.find((p) => p.name === k && p.in === type);
|
|
112
|
+
if (!field)
|
|
113
|
+
continue;
|
|
114
|
+
write(k, value, field, out);
|
|
115
|
+
}
|
|
116
|
+
result[type] = out;
|
|
117
|
+
}
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csharp.d.ts","sourceRoot":"","sources":["../../src/requests/csharp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"csharp.d.ts","sourceRoot":"","sources":["../../src/requests/csharp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,eAAO,MAAM,SAAS,EAAE,eAkEvB,CAAC"}
|
package/dist/requests/csharp.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { resolveRequestData } from '../utils/url.js';
|
|
3
2
|
export const generator = (url, data, { mediaAdapters }) => {
|
|
4
3
|
const s = [];
|
|
5
4
|
const imports = new Set(['System', 'System.Net.Http', 'System.Text']);
|
|
@@ -22,23 +21,28 @@ export const generator = (url, data, { mediaAdapters }) => {
|
|
|
22
21
|
s.push(body, '');
|
|
23
22
|
}
|
|
24
23
|
s.push('var client = new HttpClient();');
|
|
24
|
+
const headerLines = [];
|
|
25
|
+
function addHeader(key, value) {
|
|
26
|
+
headerLines.push(`client.DefaultRequestHeaders.Add("${key}", ${JSON.stringify(value)});`);
|
|
27
|
+
}
|
|
28
|
+
for (const k in headers) {
|
|
29
|
+
addHeader(k, headers[k].value);
|
|
30
|
+
}
|
|
25
31
|
// Add cookie header if cookies are present
|
|
26
32
|
if (Object.keys(data.cookie).length > 0) {
|
|
27
|
-
|
|
28
|
-
.map(([key,
|
|
33
|
+
const cookie = Object.entries(data.cookie)
|
|
34
|
+
.map(([key, param]) => `${key}=${param.value}`)
|
|
29
35
|
.join('; ');
|
|
36
|
+
addHeader('cookie', cookie);
|
|
30
37
|
}
|
|
31
|
-
// Add headers
|
|
32
|
-
const headerLines = Object.entries(headers).map(([key, value]) => `client.DefaultRequestHeaders.Add("${key}", ${JSON.stringify(value)});`);
|
|
33
38
|
s.push(...headerLines);
|
|
34
39
|
// Build the request
|
|
35
|
-
const resolvedUrl = resolveRequestData(url, data);
|
|
36
40
|
const method = data.method[0].toUpperCase() + data.method.slice(1).toLowerCase() + 'Async';
|
|
37
41
|
if (body) {
|
|
38
|
-
s.push(`var response = await client.${method}("${
|
|
42
|
+
s.push(`var response = await client.${method}("${url}", body);`);
|
|
39
43
|
}
|
|
40
44
|
else {
|
|
41
|
-
s.push(`var response = await client.${method}("${
|
|
45
|
+
s.push(`var response = await client.${method}("${url}");`);
|
|
42
46
|
}
|
|
43
47
|
// Add response handling
|
|
44
48
|
s.push('var responseBody = await response.Content.ReadAsStringAsync();');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curl.d.ts","sourceRoot":"","sources":["../../src/requests/curl.ts"],"names":[],"mappings":"AAEA,OAAO,EAAS,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"curl.d.ts","sourceRoot":"","sources":["../../src/requests/curl.ts"],"names":[],"mappings":"AAEA,OAAO,EAAS,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEjE,eAAO,MAAM,SAAS,EAAE,eAsCvB,CAAC"}
|
package/dist/requests/curl.js
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { escapeString, inputToString } from '../utils/input-to-string.js';
|
|
3
3
|
import { ident } from '../requests/_shared.js';
|
|
4
|
-
import { resolveRequestData } from '../utils/url.js';
|
|
5
4
|
export const generator = (url, data) => {
|
|
6
5
|
const s = [];
|
|
7
|
-
s.push(`curl -X ${data.method} "${
|
|
6
|
+
s.push(`curl -X ${data.method} "${url}"`);
|
|
8
7
|
for (const header in data.header) {
|
|
9
|
-
const value = `${header}: ${data.header[header]}`;
|
|
8
|
+
const value = `${header}: ${data.header[header].value}`;
|
|
10
9
|
s.push(`-H "${value}"`);
|
|
11
10
|
}
|
|
12
|
-
for (const
|
|
13
|
-
const
|
|
14
|
-
s.push(`--cookie ${value}`);
|
|
11
|
+
for (const k in data.cookie) {
|
|
12
|
+
const param = data.cookie[k];
|
|
13
|
+
s.push(`--cookie ${JSON.stringify(`${k}=${param.value}`)}`);
|
|
15
14
|
}
|
|
16
15
|
if (data.body && data.bodyMediaType === 'multipart/form-data') {
|
|
17
16
|
if (typeof data.body !== 'object')
|
package/dist/requests/go.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../src/requests/go.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../src/requests/go.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEjE,eAAO,MAAM,SAAS,EAAE,eA2DvB,CAAC"}
|
package/dist/requests/go.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { ident } from '../requests/_shared.js';
|
|
3
|
-
import { resolveRequestData } from '../utils/url.js';
|
|
4
3
|
export const generator = (url, data, { mediaAdapters }) => {
|
|
5
4
|
const imports = ['fmt', 'net/http', 'io/ioutil'];
|
|
6
5
|
const headers = new Map();
|
|
7
6
|
const variables = new Map();
|
|
8
|
-
variables.set('url', JSON.stringify(
|
|
7
|
+
variables.set('url', JSON.stringify(url));
|
|
9
8
|
for (const header in data.header) {
|
|
10
|
-
headers.set(header, JSON.stringify(data.header[header]));
|
|
9
|
+
headers.set(header, JSON.stringify(data.header[header].value));
|
|
10
|
+
}
|
|
11
|
+
const cookies = Object.entries(data.cookie);
|
|
12
|
+
if (cookies.length > 0) {
|
|
13
|
+
headers.set('Cookie', JSON.stringify(cookies.map(([k, param]) => `${k}=${param.value}`).join('; ')));
|
|
11
14
|
}
|
|
12
|
-
const cookies = Object.keys(data.cookie);
|
|
13
|
-
if (cookies.length > 0)
|
|
14
|
-
headers.set('Cookie', JSON.stringify(cookies.map((p) => `${p}=${data.cookie[p]}`).join('; ')));
|
|
15
15
|
let body;
|
|
16
16
|
if (data.body && data.bodyMediaType && data.bodyMediaType in mediaAdapters) {
|
|
17
17
|
headers.set('Content-Type', `"${data.bodyMediaType}"`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"java.d.ts","sourceRoot":"","sources":["../../src/requests/java.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"java.d.ts","sourceRoot":"","sources":["../../src/requests/java.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEjE,eAAO,MAAM,SAAS,EAAE,eAqFvB,CAAC"}
|
package/dist/requests/java.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { ident } from '../requests/_shared.js';
|
|
3
|
-
import { resolveRequestData } from '../utils/url.js';
|
|
4
3
|
export const generator = (url, data, { mediaAdapters }) => {
|
|
5
4
|
const s = [];
|
|
6
5
|
const headers = { ...data.header };
|
|
@@ -37,19 +36,20 @@ export const generator = (url, data, { mediaAdapters }) => {
|
|
|
37
36
|
s.push('');
|
|
38
37
|
// Build request
|
|
39
38
|
s.push('HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()');
|
|
40
|
-
s.push(ident(`.uri(URI.create(${JSON.stringify(
|
|
39
|
+
s.push(ident(`.uri(URI.create(${JSON.stringify(url)}))`));
|
|
41
40
|
// Add headers
|
|
42
|
-
for (const [key,
|
|
43
|
-
s.push(ident(`.header(${JSON.stringify(key)}, ${JSON.stringify(value)})`));
|
|
41
|
+
for (const [key, param] of Object.entries(headers)) {
|
|
42
|
+
s.push(ident(`.header(${JSON.stringify(key)}, ${JSON.stringify(param.value)})`));
|
|
44
43
|
}
|
|
45
44
|
if (data.bodyMediaType) {
|
|
46
45
|
s.push(ident(`.header("Content-Type", "${data.bodyMediaType}")`));
|
|
47
46
|
}
|
|
48
47
|
// Add cookies if present
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
48
|
+
const cookies = Object.entries(data.cookie);
|
|
49
|
+
if (cookies.length > 0) {
|
|
50
|
+
const cookieString = cookies
|
|
51
|
+
.map(([key, param]) => `${key}=${param.value}`)
|
|
52
|
+
.join('; ');
|
|
53
53
|
s.push(ident(`.header("Cookie", ${JSON.stringify(cookieString)})`));
|
|
54
54
|
}
|
|
55
55
|
const arg = body ? 'body' : '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"javascript.d.ts","sourceRoot":"","sources":["../../src/requests/javascript.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"javascript.d.ts","sourceRoot":"","sources":["../../src/requests/javascript.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEjE,eAAO,MAAM,SAAS,EAAE,eAkDvB,CAAC"}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { ident } from '../requests/_shared.js';
|
|
3
|
-
import { resolveRequestData } from '../utils/url.js';
|
|
4
3
|
export const generator = (url, data, { mediaAdapters }) => {
|
|
5
4
|
const s = [];
|
|
6
5
|
const options = new Map();
|
|
7
|
-
const headers = {
|
|
8
|
-
|
|
9
|
-
headers[
|
|
10
|
-
|
|
6
|
+
const headers = {};
|
|
7
|
+
for (const [k, v] of Object.entries(data.header)) {
|
|
8
|
+
headers[k] = v.value;
|
|
9
|
+
}
|
|
10
|
+
const cookies = Object.entries(data.cookie);
|
|
11
|
+
if (cookies.length > 0) {
|
|
12
|
+
headers['cookie'] = cookies
|
|
13
|
+
.map(([key, param]) => `${key}=${param.value}`)
|
|
11
14
|
.join('; ');
|
|
12
15
|
}
|
|
13
16
|
if (Object.keys(headers).length > 0) {
|
|
@@ -26,7 +29,7 @@ export const generator = (url, data, { mediaAdapters }) => {
|
|
|
26
29
|
s.push(body);
|
|
27
30
|
options.set('body', 'body');
|
|
28
31
|
}
|
|
29
|
-
const params = [JSON.stringify(
|
|
32
|
+
const params = [JSON.stringify(url)];
|
|
30
33
|
if (options.size > 0) {
|
|
31
34
|
const str = Array.from(options.entries())
|
|
32
35
|
.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,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../src/requests/python.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,eAAO,MAAM,SAAS,EAAE,eAgDvB,CAAC"}
|
package/dist/requests/python.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { resolveRequestData } from '../utils/url.js';
|
|
3
2
|
export const generator = (url, data, { mediaAdapters }) => {
|
|
4
|
-
const headers = {
|
|
3
|
+
const headers = {};
|
|
5
4
|
const params = [`"${data.method}"`, 'url'];
|
|
6
5
|
let body;
|
|
7
6
|
if (data.body && data.bodyMediaType && data.bodyMediaType in mediaAdapters) {
|
|
@@ -16,15 +15,23 @@ export const generator = (url, data, { mediaAdapters }) => {
|
|
|
16
15
|
params.push('data = body');
|
|
17
16
|
}
|
|
18
17
|
}
|
|
18
|
+
for (const [k, v] of Object.entries(data.header)) {
|
|
19
|
+
headers[k] = v.value;
|
|
20
|
+
}
|
|
19
21
|
if (Object.keys(headers).length > 0) {
|
|
20
22
|
params.push(`headers = ${JSON.stringify(headers, null, 2)}`);
|
|
21
23
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
const inputCookies = Object.entries(data.cookie);
|
|
25
|
+
if (inputCookies.length > 0) {
|
|
26
|
+
const cookies = {};
|
|
27
|
+
for (const [k, v] of inputCookies) {
|
|
28
|
+
cookies[k] = v.value;
|
|
29
|
+
}
|
|
30
|
+
params.push(`cookies = ${JSON.stringify(cookies, null, 2)}`);
|
|
24
31
|
}
|
|
25
32
|
return `import requests
|
|
26
33
|
|
|
27
|
-
url = ${JSON.stringify(
|
|
34
|
+
url = ${JSON.stringify(url)}
|
|
28
35
|
${body ?? ''}
|
|
29
36
|
response = requests.request(${params.join(', ')})
|
|
30
37
|
|
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,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,
|
|
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,CAAC,CAAC;CAC7C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../src/ui/components/accordion.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,SAAS,MAAM,2BAA2B,CAAC;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAG5C,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,SAAS,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../src/ui/components/accordion.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,SAAS,MAAM,2BAA2B,CAAC;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAG5C,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,SAAS,CAAC,IAAI,CAAC,2CAOtE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,SAAS,CAAC,IAAI,CAAC,2CAMzE;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,cAAc,CAAC,OAAO,SAAS,CAAC,OAAO,CAAC,2CAahD;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,CAAC,OAAO,SAAS,CAAC,MAAM,CAAC,2CAa/C;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,cAAc,CAAC,OAAO,SAAS,CAAC,OAAO,CAAC,2CAchD"}
|
|
@@ -4,7 +4,7 @@ import * as Primitive from '@radix-ui/react-accordion';
|
|
|
4
4
|
import { ChevronRight } from '../../icons.js';
|
|
5
5
|
import { cn } from 'fumadocs-ui/utils/cn';
|
|
6
6
|
export function Accordions(props) {
|
|
7
|
-
return (_jsx(Primitive.Root, { ...props, className: cn('divide-y divide-fd-border
|
|
7
|
+
return (_jsx(Primitive.Root, { ...props, className: cn('divide-y divide-fd-border', props.className) }));
|
|
8
8
|
}
|
|
9
9
|
export function AccordionItem(props) {
|
|
10
10
|
return (_jsx(Primitive.Item, { ...props, className: cn('scroll-m-20', props.className), children: props.children }));
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
2
|
import type { RenderContext, ServerObject } from '../../types.js';
|
|
3
3
|
import { type MediaAdapter } from '../../media/adapter.js';
|
|
4
|
-
export interface ApiProviderProps extends ApiContextType {
|
|
4
|
+
export interface ApiProviderProps extends Omit<ApiContextType, 'mediaAdapters'> {
|
|
5
5
|
/**
|
|
6
6
|
* Base URL for API requests
|
|
7
7
|
*/
|
|
8
8
|
defaultBaseUrl?: string;
|
|
9
9
|
children?: ReactNode;
|
|
10
|
+
mediaAdapters?: Record<string, MediaAdapter>;
|
|
10
11
|
}
|
|
11
12
|
export interface SelectedServer {
|
|
12
13
|
url: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/ui/contexts/api.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAErE,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/ui/contexts/api.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAErE,MAAM,WAAW,gBACf,SAAQ,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC;IAC7C;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,UAAU,cAAc;IACtB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,YAAY,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAC5C,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CAC7C;AAED,UAAU,gBAAgB;IACxB,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;CAC7D;AAKD,wBAAgB,aAAa,IAAI,cAAc,CAK9C;AAED,wBAAgB,sBAAsB,IAAI,gBAAgB,CAKzD;AAED,wBAAgB,WAAW,CAAC,EAC1B,cAAc,EACd,QAAQ,EACR,OAAO,EACP,aAAa,EACb,YAAY,GACb,EAAE,gBAAgB,2CA2ElB"}
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
2
|
import type { CodeSample } from '../../render/operation/index.js';
|
|
3
3
|
import type { SamplesProps } from '../../render/renderer.js';
|
|
4
|
-
import type { RequestData } from '../../requests/_shared.js';
|
|
4
|
+
import type { RawRequestData, RequestData } from '../../requests/_shared.js';
|
|
5
5
|
export declare function CodeExampleProvider({ route, examples, initialKey, children, }: {
|
|
6
6
|
route: string;
|
|
7
7
|
examples: {
|
|
8
8
|
key: string;
|
|
9
|
-
data:
|
|
9
|
+
data: RawRequestData;
|
|
10
|
+
encoded: RequestData;
|
|
10
11
|
}[];
|
|
11
12
|
initialKey?: string;
|
|
12
13
|
children: ReactNode;
|
|
13
14
|
}): import("react/jsx-runtime").JSX.Element;
|
|
14
15
|
export declare function CodeExample(props: CodeSample): import("react/jsx-runtime").JSX.Element | null;
|
|
15
16
|
export declare function CodeExampleSelector({ items }: SamplesProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
-
export declare function useRequestInitialData():
|
|
17
|
+
export declare function useRequestInitialData(): RawRequestData;
|
|
17
18
|
export declare function useRequestDataUpdater(): {
|
|
18
|
-
setData: (data: RequestData) => void;
|
|
19
|
+
setData: (data: RawRequestData, encoded: RequestData) => void;
|
|
19
20
|
};
|
|
20
21
|
//# sourceMappingURL=code-example.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-example.d.ts","sourceRoot":"","sources":["../../../src/ui/contexts/code-example.tsx"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"code-example.d.ts","sourceRoot":"","sources":["../../../src/ui/contexts/code-example.tsx"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAetD,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAsBtE,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,cAAc,CAAC;QACrB,OAAO,EAAE,WAAW,CAAC;KACtB,EAAE,CAAC;IACJ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;CACrB,2CA6DA;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,kDAgD5C;AAED,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE,YAAY,2CAoB1D;AAgBD,wBAAgB,qBAAqB,mBAOpC;AAED,wBAAgB,qBAAqB;oBAlLnB,cAAc,WAAW,WAAW,KAAK,IAAI;EAqL9D"}
|
|
@@ -5,36 +5,39 @@ 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 { joinURL, resolveServerUrl, withBase } from '../../utils/url.js';
|
|
8
|
+
import { joinURL, resolveRequestData, 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, }) {
|
|
12
12
|
const [key, setKey] = useState(initialKey ?? examples[0].key);
|
|
13
13
|
const listeners = useRef([]);
|
|
14
|
-
const setData = useEffectEvent((
|
|
14
|
+
const setData = useEffectEvent((data, encoded) => {
|
|
15
15
|
for (const example of examples) {
|
|
16
16
|
if (example.key === key) {
|
|
17
17
|
// persistent changes
|
|
18
|
-
example.data =
|
|
18
|
+
example.data = data;
|
|
19
|
+
example.encoded = encoded;
|
|
20
|
+
break;
|
|
19
21
|
}
|
|
20
22
|
}
|
|
21
23
|
for (const listener of listeners.current) {
|
|
22
|
-
listener(
|
|
24
|
+
listener(data, encoded);
|
|
23
25
|
}
|
|
24
26
|
});
|
|
25
27
|
const updateKey = useEffectEvent((newKey) => {
|
|
26
|
-
const
|
|
27
|
-
if (!
|
|
28
|
+
const example = examples.find((example) => example.key === newKey);
|
|
29
|
+
if (!example)
|
|
28
30
|
return;
|
|
29
31
|
setKey(newKey);
|
|
30
32
|
for (const listener of listeners.current) {
|
|
31
|
-
listener(data);
|
|
33
|
+
listener(example.data, example.encoded);
|
|
32
34
|
}
|
|
33
35
|
});
|
|
34
36
|
const addListener = useEffectEvent((listener) => {
|
|
35
37
|
// initial call to listeners to ensure their data is the latest
|
|
36
38
|
// this is necessary to avoid race conditions between `useEffect()`
|
|
37
|
-
|
|
39
|
+
const example = examples.find((example) => example.key === key);
|
|
40
|
+
listener(example.data, example.encoded);
|
|
38
41
|
listeners.current.push(listener);
|
|
39
42
|
});
|
|
40
43
|
const removeListener = useEffectEvent((listener) => {
|
|
@@ -55,13 +58,13 @@ export function CodeExample(props) {
|
|
|
55
58
|
const { examples, key, route, addListener, removeListener } = useContext(CodeExampleContext);
|
|
56
59
|
const { server } = useServerSelectContext();
|
|
57
60
|
const [data, setData] = useState(() => {
|
|
58
|
-
return examples.find((example) => example.key === key).
|
|
61
|
+
return examples.find((example) => example.key === key).encoded;
|
|
59
62
|
});
|
|
60
63
|
const sample = props.source
|
|
61
64
|
? props
|
|
62
65
|
: defaultSamples.find((item) => item.label === props.label);
|
|
63
66
|
useEffect(() => {
|
|
64
|
-
const listener = setData;
|
|
67
|
+
const listener = (_, encoded) => setData(encoded);
|
|
65
68
|
addListener(listener);
|
|
66
69
|
return () => {
|
|
67
70
|
removeListener(listener);
|
|
@@ -74,7 +77,7 @@ export function CodeExample(props) {
|
|
|
74
77
|
return sample.source;
|
|
75
78
|
return sample.source(joinURL(withBase(server ? resolveServerUrl(server.url, server.variables) : '/', typeof window !== 'undefined'
|
|
76
79
|
? window.location.origin
|
|
77
|
-
: 'https://loading'), route), data, {
|
|
80
|
+
: 'https://loading'), resolveRequestData(route, data)), data, {
|
|
78
81
|
mediaAdapters,
|
|
79
82
|
});
|
|
80
83
|
}, [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,2CAmB5C;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,13 @@ 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
|
-
|
|
9
|
+
const mediaAdapters = {};
|
|
10
|
+
for (const k in ctx.mediaAdapters) {
|
|
11
|
+
const adapter = ctx.mediaAdapters[k];
|
|
12
|
+
if (adapter.client)
|
|
13
|
+
mediaAdapters[k] = adapter.client;
|
|
14
|
+
}
|
|
15
|
+
return (_jsx("div", { className: cn('flex flex-col gap-24 text-sm', className), ...props, children: _jsx(ApiProvider, { mediaAdapters: mediaAdapters, servers: ctx.servers, shikiOptions: ctx.shikiOptions, children: children }) }));
|
|
10
16
|
}
|
|
11
17
|
export function APIInfo({ className, ...props }) {
|
|
12
18
|
return (_jsx("div", { className: cn('min-w-0 flex-1', className), ...props, children: props.children }));
|
|
@@ -26,6 +32,6 @@ export function APIExample(props) {
|
|
|
26
32
|
return (_jsx("div", { ...props, className: cn('prose-no-margin md:sticky md:top-(--fd-api-info-top) xl:w-[400px]', props.className), children: props.children }));
|
|
27
33
|
}
|
|
28
34
|
export function ObjectCollapsible(props) {
|
|
29
|
-
return (_jsxs(Collapsible, { ...props, children: [_jsxs(CollapsibleTrigger, { className: cn(buttonVariants({ color: 'secondary', size: 'sm' }), 'group px-3 py-2 data-[state=open]:rounded-b-none'), children: [props.name, _jsx(ChevronDown, { className: "size-4 text-fd-muted-foreground group-data-[state=open]:rotate-180" })] }), _jsx(CollapsibleContent, { className: "-mt-px *:bg-fd-card", children: props.children })] }));
|
|
35
|
+
return (_jsxs(Collapsible, { className: "my-2", ...props, children: [_jsxs(CollapsibleTrigger, { className: cn(buttonVariants({ color: 'secondary', size: 'sm' }), 'group px-3 py-2 data-[state=open]:rounded-b-none'), children: [props.name, _jsx(ChevronDown, { className: "size-4 text-fd-muted-foreground group-data-[state=open]:rotate-180" })] }), _jsx(CollapsibleContent, { className: "-mt-px *:bg-fd-card", children: props.children })] }));
|
|
30
36
|
}
|
|
31
37
|
export { APIPage } from '../render/api-page.js';
|
package/dist/ui/lazy.d.ts
CHANGED
|
@@ -2,7 +2,8 @@ export declare const CodeExampleProvider: import("react").ComponentType<{
|
|
|
2
2
|
route: string;
|
|
3
3
|
examples: {
|
|
4
4
|
key: string;
|
|
5
|
-
data: import("../requests/_shared.js").
|
|
5
|
+
data: import("../requests/_shared.js").RawRequestData;
|
|
6
|
+
encoded: import("../requests/_shared.js").RequestData;
|
|
6
7
|
}[];
|
|
7
8
|
initialKey?: string;
|
|
8
9
|
children: import("react").ReactNode;
|
package/dist/ui/lazy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../src/ui/lazy.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../src/ui/lazy.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB;;;;;;;;;EAE/B,CAAC;AACF,eAAO,MAAM,WAAW,yEAEvB,CAAC;AACF,eAAO,MAAM,mBAAmB,0EAE/B,CAAC;AAEF,eAAO,MAAM,UAAU,0EAA+C,CAAC;AAEvE,eAAO,MAAM,WAAW,0EAEvB,CAAC"}
|
|
@@ -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,CAa7B"}
|