@stainless-api/docs-ui 0.1.0-beta.29 → 0.1.0-beta.30
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/{breadcrumbs-D5viAm7a.d.ts → breadcrumbs-wJ7A9MGt.d.ts} +2 -2
- package/dist/{component-generics-BnrVqdQj.d.ts → component-generics--y1IC_M-.d.ts} +2 -1
- package/dist/{component-generics-Df4EDvxk.js → component-generics-D3ybuN5r.js} +5 -1
- package/dist/components/breadcrumbs.d.ts +1 -1
- package/dist/components/breadcrumbs.js +13 -14
- package/dist/components/chat.d.ts +3 -3
- package/dist/components/chat.js +64 -50
- package/dist/components/icons.d.ts +10 -10
- package/dist/components/icons.js +1 -1
- package/dist/components/index.d.ts +11 -12
- package/dist/components/index.js +14 -15
- package/dist/components/method.d.ts +1 -1
- package/dist/components/method.js +13 -14
- package/dist/components/overview.d.ts +1 -1
- package/dist/components/overview.js +13 -14
- package/dist/components/primitives.d.ts +1 -1
- package/dist/components/primitives.js +13 -14
- package/dist/components/properties.d.ts +1 -1
- package/dist/components/properties.js +13 -14
- package/dist/components/sdk.d.ts +2 -2
- package/dist/components/sdk.js +13 -14
- package/dist/components/sidebar.d.ts +1 -1
- package/dist/components/sidebar.js +13 -14
- package/dist/components/snippets.d.ts +3 -3
- package/dist/components/snippets.js +13 -14
- package/dist/contexts/component-generics.d.ts +1 -1
- package/dist/contexts/component-generics.js +1 -1
- package/dist/contexts/component-types.d.ts +11 -12
- package/dist/contexts/component-types.js +0 -1
- package/dist/contexts/component.d.ts +14 -14
- package/dist/contexts/component.js +13 -14
- package/dist/contexts/docs.d.ts +1 -1
- package/dist/contexts/docs.js +1 -1
- package/dist/contexts/index.d.ts +18 -19
- package/dist/contexts/index.js +13 -14
- package/dist/contexts/markdown.d.ts +1 -1
- package/dist/contexts/markdown.js +2 -2
- package/dist/contexts/navigation.d.ts +2 -2
- package/dist/contexts/navigation.js +1 -1
- package/dist/contexts/search.d.ts +3 -3
- package/dist/contexts/search.js +13 -14
- package/dist/contexts/use-components.d.ts +10 -11
- package/dist/contexts/use-components.js +2 -2
- package/dist/contexts-CMNI3ctP.js +3799 -0
- package/dist/{docs-DhNaW0DE.d.ts → docs-BvahWQ28.d.ts} +2 -1
- package/dist/{docs-Cj25B-Sh.js → docs-CopwX9a7.js} +5 -1
- package/dist/icons-yb-Jhkmg.js +753 -0
- package/dist/{index-d8_VR8Z5.d.ts → index-BmPNhnpe.d.ts} +6 -6
- package/dist/{index-BXO3gZup.d.ts → index-D5NMSAld.d.ts} +26 -25
- package/dist/index-rVFBdVz8.d.ts +15 -0
- package/dist/index.d.ts +20 -21
- package/dist/index.js +15 -7700
- package/dist/languages/go.d.ts +11 -12
- package/dist/languages/go.js +13 -14
- package/dist/languages/http.d.ts +11 -12
- package/dist/languages/http.js +13 -14
- package/dist/languages/index.d.ts +11 -12
- package/dist/languages/index.js +13 -14
- package/dist/languages/java.d.ts +11 -12
- package/dist/languages/java.js +13 -14
- package/dist/languages/python.d.ts +11 -12
- package/dist/languages/python.js +13 -14
- package/dist/languages/ruby.d.ts +11 -12
- package/dist/languages/ruby.js +13 -14
- package/dist/languages/typescript.d.ts +11 -12
- package/dist/languages/typescript.js +13 -14
- package/dist/markdown/index.d.ts +3 -3
- package/dist/markdown/index.js +13 -14
- package/dist/markdown/md.js +1 -1
- package/dist/markdown/utils.d.ts +3 -3
- package/dist/markdown/utils.js +1 -1
- package/dist/{markdown-DunIdqFE.js → markdown-BmpyokB7.js} +9 -5
- package/dist/{markdown-DN8KaRR2.d.ts → markdown-w5UpIiGc.d.ts} +2 -1
- package/dist/{method-c3XDArUn.d.ts → method-CLpRObBV.d.ts} +7 -6
- package/dist/{navigation-BSn6PX-7.d.ts → navigation-Blr3LaES.d.ts} +3 -2
- package/dist/{navigation-CuCg3le8.js → navigation-CGr5_w6z.js} +5 -1
- package/dist/{overview-D21weqVJ.d.ts → overview-DBnqhjAg.d.ts} +6 -6
- package/dist/{primitives-iB9fIrMF.d.ts → primitives-BFubD3w8.d.ts} +9 -8
- package/dist/{properties-Ba6F_GGj.d.ts → properties-DeQRa6VK.d.ts} +4 -4
- package/dist/{routing-C8oZYLsf.js → routing-8itEXLx6.js} +1 -1
- package/dist/{routing-BE6Vrs-z.d.ts → routing-DNN8R6bZ.d.ts} +1 -1
- package/dist/routing.d.ts +1 -1
- package/dist/routing.js +3 -180
- package/dist/{sdk-D2x2l6JH.d.ts → sdk-BVQyp5Dw.d.ts} +14 -13
- package/dist/search/index.d.ts +6 -6
- package/dist/search/index.js +233 -110
- package/dist/search/providers/algolia.d.ts +2 -2
- package/dist/search/providers/algolia.js +13 -14
- package/dist/search/providers/fuse.d.ts +2 -2
- package/dist/search/providers/fuse.js +13 -14
- package/dist/search/providers/pagefind.d.ts +2 -2
- package/dist/search/providers/pagefind.js +1 -1
- package/dist/search/providers/walker.d.ts +2 -2
- package/dist/search/providers/walker.js +13 -14
- package/dist/search/types.d.ts +2 -2
- package/dist/search/types.js +1 -1
- package/dist/{search-KMqOU2tz.d.ts → search-CPp6HpUy.d.ts} +3 -2
- package/dist/{sidebar-B1X4gmY2.d.ts → sidebar-BoPLeaxp.d.ts} +5 -4
- package/dist/{snippets-BApdMOXp.d.ts → snippets-DLHH_Voi.d.ts} +7 -6
- package/dist/{style-BWu-Pqcm.d.ts → style-BEMLtSIK.d.ts} +0 -10
- package/dist/{style-CkbsakoF.js → style-CPgcT0Fw.js} +1 -11
- package/dist/style.d.ts +1 -1
- package/dist/style.js +1 -1
- package/dist/styles/main.css +51 -20
- package/dist/styles/main.js +0 -0
- package/dist/styles/primitives.css +1 -0
- package/dist/styles/primitives.js +0 -0
- package/dist/styles/resets.css +1 -0
- package/dist/styles/resets.js +0 -0
- package/dist/styles/search.css +1 -0
- package/dist/styles/search.js +0 -0
- package/dist/styles/sidebar.css +1 -0
- package/dist/styles/sidebar.js +0 -0
- package/dist/styles/snippets.css +1 -0
- package/dist/styles/snippets.js +0 -0
- package/dist/styles/variables.css +2 -0
- package/dist/styles/variables.js +0 -0
- package/dist/{types-BLgvxY4i.d.ts → types-DNSz4kuM.d.ts} +1 -1
- package/dist/{use-components-DI-AbT-D.js → use-components-BHEwm0mE.js} +1 -1
- package/dist/{utils-BhYTrLot.js → utils-2FmcHPHp.js} +2 -2
- package/dist/{utils-B9JL_XWH.d.ts → utils-DVi3gJLL.d.ts} +2 -2
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +2 -2
- package/package.json +63 -10
- package/dist/components/dropdown.d.ts +0 -2
- package/dist/components/dropdown.js +0 -4
- package/dist/components/scripts/dropdown.d.ts +0 -12
- package/dist/components/scripts/dropdown.js +0 -50
- package/dist/contexts-DO0sMzym.js +0 -2581
- package/dist/dropdown-Dv9VAYCW.d.ts +0 -42
- package/dist/dropdown-kUhwBigR.js +0 -38
- package/dist/icons--8QR-PrL.js +0 -222
- package/dist/index-BW6OPqAo.d.ts +0 -16
- package/dist/mcp.cjs +0 -983418
- package/src/components/breadcrumbs.tsx +0 -94
- package/src/components/chat.tsx +0 -157
- package/src/components/icons.tsx +0 -584
- package/src/components/index.ts +0 -8
- package/src/components/method.tsx +0 -145
- package/src/components/overview.tsx +0 -172
- package/src/components/primitives.tsx +0 -301
- package/src/components/properties.tsx +0 -132
- package/src/components/sdk.tsx +0 -408
- package/src/components/sidebar.tsx +0 -99
- package/src/components/snippets.tsx +0 -197
- package/src/contexts/component-generics.tsx +0 -43
- package/src/contexts/component-types.tsx +0 -5
- package/src/contexts/component.tsx +0 -32
- package/src/contexts/docs.tsx +0 -86
- package/src/contexts/index.tsx +0 -20
- package/src/contexts/markdown.tsx +0 -44
- package/src/contexts/navigation.tsx +0 -44
- package/src/contexts/search.tsx +0 -27
- package/src/contexts/use-components.tsx +0 -4
- package/src/hooks/use-strict-context.tsx +0 -16
- package/src/index.ts +0 -6
- package/src/languages/go.tsx +0 -281
- package/src/languages/http.tsx +0 -329
- package/src/languages/index.ts +0 -26
- package/src/languages/java.tsx +0 -358
- package/src/languages/python.tsx +0 -258
- package/src/languages/ruby.tsx +0 -327
- package/src/languages/typescript.tsx +0 -399
- package/src/markdown/index.ts +0 -112
- package/src/markdown/md.ts +0 -45
- package/src/markdown/utils.ts +0 -52
- package/src/routing.ts +0 -238
- package/src/search/form.tsx +0 -130
- package/src/search/index.tsx +0 -1
- package/src/search/indexer.ts +0 -248
- package/src/search/mcp.ts +0 -156
- package/src/search/printer.tsx +0 -86
- package/src/search/providers/algolia.ts +0 -88
- package/src/search/providers/fuse.ts +0 -19
- package/src/search/providers/pagefind.ts +0 -17
- package/src/search/providers/walker.ts +0 -32
- package/src/search/results.tsx +0 -183
- package/src/search/state.ts +0 -64
- package/src/search/types.ts +0 -116
- package/src/style.ts +0 -185
- package/src/styles/main.css +0 -989
- package/src/styles/primitives.css +0 -392
- package/src/styles/resets.css +0 -39
- package/src/styles/search.css +0 -359
- package/src/styles/sidebar.css +0 -85
- package/src/styles/snippets.css +0 -130
- package/src/styles/variables.css +0 -86
- package/src/utils.ts +0 -40
- /package/dist/{chunk-Bp6m_JJh.js → chunk-DsStOjWQ.js} +0 -0
- /package/dist/{md-Dg8aOyMA.js → md-DxiV1_vy.js} +0 -0
- /package/dist/{pagefind-ChrPfuVv.js → pagefind-BaK1krMe.js} +0 -0
- /package/dist/{types-DFN4M1Sp.js → types-__XoFvJ_.js} +0 -0
- /package/dist/{utils-ByZH9QWT.js → utils-BCfb0F9R.js} +0 -0
- /package/dist/{utils-DlayebL1.d.ts → utils-D43p_yTd.d.ts} +0 -0
|
@@ -1,2581 +0,0 @@
|
|
|
1
|
-
import { t as __export } from "./chunk-Bp6m_JJh.js";
|
|
2
|
-
import { a as useLanguage, c as useSnippet, i as useDocs, l as useSpec, n as useContentPanelLayout, o as useResource, r as useDeclaration, s as useSettings, t as DocsProvider } from "./docs-Cj25B-Sh.js";
|
|
3
|
-
import { a as createStrictContext, i as useComponents$1, n as customizeComponents, r as useComponentContext, t as ComponentProvider$1 } from "./component-generics-Df4EDvxk.js";
|
|
4
|
-
import { n as useNavigation, t as NavigationProvider } from "./navigation-CuCg3le8.js";
|
|
5
|
-
import { a as useRenderMarkdown, i as useMarkdownContext, n as MarkdownProvider, r as useHighlight, t as MarkdownContext } from "./markdown-DunIdqFE.js";
|
|
6
|
-
import { _ as walkTree, c as getLanguageSnippet, f as parseStainlessPath, n as Languages, o as generateRoute } from "./routing-C8oZYLsf.js";
|
|
7
|
-
import { t as style_default } from "./style-CkbsakoF.js";
|
|
8
|
-
import { t as useComponents } from "./use-components-DI-AbT-D.js";
|
|
9
|
-
import { a as PowershellIcon, c as TerraformIcon, i as KotlinIcon, l as TypescriptIcon, n as GoIcon, o as PythonIcon, r as JavaIcon, s as RubyIcon, t as CurlIcon } from "./icons--8QR-PrL.js";
|
|
10
|
-
import { n as getResourceFromSpec, r as isResourceEmpty, t as flatResources } from "./utils-BhYTrLot.js";
|
|
11
|
-
import { i as DropdownTrigger, n as DropdownItem, r as DropdownMenu, t as Dropdown } from "./dropdown-kUhwBigR.js";
|
|
12
|
-
import { a as item, c as parse, l as strong, n as fence, o as list, r as heading, s as paragraph, t as code, u as text } from "./md-Dg8aOyMA.js";
|
|
13
|
-
import { n as getSnippet, r as stripMarkup, t as getDecl } from "./utils-ByZH9QWT.js";
|
|
14
|
-
import { n as SearchableAttributes, r as SearchableAttributesChat } from "./types-DFN4M1Sp.js";
|
|
15
|
-
import * as React$1 from "react";
|
|
16
|
-
import React, { Fragment, useState } from "react";
|
|
17
|
-
import { searchClient } from "@algolia/client-search";
|
|
18
|
-
import { renderToStaticMarkup } from "react-dom/server";
|
|
19
|
-
import { ArrowDownLeft, ArrowDownWideNarrowIcon, ArrowUpNarrowWideIcon, ArrowUpRight, BookOpen, CheckIcon, ChevronDown, ChevronRight, CircleAlertIcon, Copy, CopyIcon, Github, MinusIcon, PlusIcon, X } from "lucide-react";
|
|
20
|
-
import clsx from "clsx";
|
|
21
|
-
import { Button } from "@stainless-api/ui-primitives";
|
|
22
|
-
import Markdoc from "@markdoc/markdoc";
|
|
23
|
-
|
|
24
|
-
//#region src/components/properties.tsx
|
|
25
|
-
function PropertyToggle({ target }) {
|
|
26
|
-
return <span className={style_default.ExpandToggle} data-stldocs-property-toggle-expanded="false" data-stldocs-property-toggle-target={target}>
|
|
27
|
-
<span className={style_default.ExpandToggleContent}>
|
|
28
|
-
Expand <ArrowDownWideNarrowIcon className={style_default.Icon} size={16} />
|
|
29
|
-
</span>
|
|
30
|
-
<span className={style_default.ExpandToggleContent}>
|
|
31
|
-
Collapse <ArrowUpNarrowWideIcon className={style_default.Icon} size={16} />
|
|
32
|
-
</span>
|
|
33
|
-
</span>;
|
|
34
|
-
}
|
|
35
|
-
function PropertyDescription({ description }) {
|
|
36
|
-
const { Markdown: Markdown$1 } = useComponents();
|
|
37
|
-
if (description) return <div className={style_default.PropertyDescription}>
|
|
38
|
-
<Markdown$1 content={description} />
|
|
39
|
-
</div>;
|
|
40
|
-
}
|
|
41
|
-
function Property$6({ id, name, typeName: typeName$1, badges, type, declaration: declaration$2, description, deprecated, expand, additional, constraints, children }) {
|
|
42
|
-
const Docs = useComponents();
|
|
43
|
-
const language = useLanguage();
|
|
44
|
-
const properties = useSettings()?.properties;
|
|
45
|
-
const collapseDescription = properties?.collapseDescription;
|
|
46
|
-
const types = properties?.types;
|
|
47
|
-
const textContent = <>
|
|
48
|
-
{typeof deprecated === "string" && <div className={style_default.PropertyDeprecatedMessage}>{deprecated}</div>}
|
|
49
|
-
{description && <Docs.PropertyDescription description={description} />}
|
|
50
|
-
{constraints && <div className={style_default.PropertyContent}>{constraints}</div>}
|
|
51
|
-
</>;
|
|
52
|
-
const rich = <>
|
|
53
|
-
<div className={style_default.PropertyDeclaration}>
|
|
54
|
-
{deprecated && <span className={style_default.PropertyDeprecated}>Deprecated</span>}
|
|
55
|
-
{declaration$2}
|
|
56
|
-
{badges && <span className={style_default.PropertyBadges}>{badges}</span>}
|
|
57
|
-
</div>
|
|
58
|
-
{collapseDescription === false ? textContent : null}
|
|
59
|
-
</>;
|
|
60
|
-
const simple = <>
|
|
61
|
-
{name && <div className={style_default.PropertyHeader}>
|
|
62
|
-
{deprecated && <span className={style_default.PropertyDeprecated}>Deprecated</span>}
|
|
63
|
-
{name && <span className={style_default.PropertyName}>{name}</span>}
|
|
64
|
-
{typeName$1 && <span className={style_default.PropertyTypeName}>{typeName$1}</span>}
|
|
65
|
-
{badges && <span className={style_default.PropertyBadges}>{badges}</span>}
|
|
66
|
-
</div>}
|
|
67
|
-
{type && <div className={style_default.PropertyType}>{type}</div>}
|
|
68
|
-
{collapseDescription === false ? textContent : null}
|
|
69
|
-
</>;
|
|
70
|
-
const content = <div id={id} className={style_default.PropertyInfo}>
|
|
71
|
-
{types === "simple" ? simple : rich}
|
|
72
|
-
</div>;
|
|
73
|
-
return <div className={style_default.Property} data-stldocs-language={language}>
|
|
74
|
-
{children || collapseDescription !== false && description ? <Docs.Expander summary={content} muted={!children} open={expand}>
|
|
75
|
-
{collapseDescription !== false ? textContent : null}
|
|
76
|
-
{additional}
|
|
77
|
-
{children && <div className={style_default.PropertyChildren}>{children}</div>}
|
|
78
|
-
</Docs.Expander> : content}
|
|
79
|
-
</div>;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
//#endregion
|
|
83
|
-
//#region src/components/method.tsx
|
|
84
|
-
const HttpMethods = [
|
|
85
|
-
"get",
|
|
86
|
-
"head",
|
|
87
|
-
"put",
|
|
88
|
-
"delete",
|
|
89
|
-
"post",
|
|
90
|
-
"patch"
|
|
91
|
-
];
|
|
92
|
-
const HttpMethodIcons = {
|
|
93
|
-
get: ArrowDownLeft,
|
|
94
|
-
put: ArrowUpRight,
|
|
95
|
-
post: ArrowUpRight,
|
|
96
|
-
patch: ArrowUpRight,
|
|
97
|
-
delete: X
|
|
98
|
-
};
|
|
99
|
-
function MethodIconBadge({ httpMethod, showName }) {
|
|
100
|
-
if (!httpMethod || !HttpMethods.includes(httpMethod)) return null;
|
|
101
|
-
return <span className={clsx(style_default.MethodRouteHttpMethod, style_default.MethodRouteHttpMethodIconOnly)} data-method={httpMethod}>
|
|
102
|
-
{HttpMethodIcons[httpMethod] && React$1.createElement(HttpMethodIcons[httpMethod], {
|
|
103
|
-
size: 14,
|
|
104
|
-
strokeWidth: 3,
|
|
105
|
-
className: style_default.Icon
|
|
106
|
-
})}
|
|
107
|
-
{showName && httpMethod}
|
|
108
|
-
</span>;
|
|
109
|
-
}
|
|
110
|
-
function MethodHeader({ title, badges, signature, children, level }) {
|
|
111
|
-
const Heading = level ?? "h5";
|
|
112
|
-
return <div className={style_default.MethodHeader}>
|
|
113
|
-
<Heading className={style_default.MethodTitle}>{title}</Heading>
|
|
114
|
-
{badges && <div className={style_default.MethodBadges}>{badges}</div>}
|
|
115
|
-
{signature}
|
|
116
|
-
{children}
|
|
117
|
-
</div>;
|
|
118
|
-
}
|
|
119
|
-
function MethodRoute({ httpMethod, endpoint, iconOnly }) {
|
|
120
|
-
return <div className={style_default.MethodRoute}>
|
|
121
|
-
<MethodIconBadge httpMethod={httpMethod} showName={!iconOnly} />
|
|
122
|
-
{endpoint && <span className={style_default.MethodRouteEndpoint}>{endpoint}</span>}
|
|
123
|
-
</div>;
|
|
124
|
-
}
|
|
125
|
-
function MethodDescription({ description }) {
|
|
126
|
-
const { Markdown: Markdown$1 } = useComponents();
|
|
127
|
-
if (description) return <div className={style_default.MethodDescription}>
|
|
128
|
-
<Markdown$1 content={description} />
|
|
129
|
-
</div>;
|
|
130
|
-
}
|
|
131
|
-
function MethodInfo$1({ children, parameters, returns }) {
|
|
132
|
-
return <div className={style_default.MethodInfo}>
|
|
133
|
-
{children && <div className={style_default.MethodContent}>{children}</div>}
|
|
134
|
-
|
|
135
|
-
{parameters && <div className={style_default.MethodInfoSection}>
|
|
136
|
-
<h5>
|
|
137
|
-
Parameters
|
|
138
|
-
<PropertyToggle target="parameters" />
|
|
139
|
-
</h5>
|
|
140
|
-
<div className={style_default.MethodParameters} data-stldocs-property-group="parameters">
|
|
141
|
-
{parameters}
|
|
142
|
-
</div>
|
|
143
|
-
</div>}
|
|
144
|
-
|
|
145
|
-
{returns && <div className={style_default.MethodInfoSection}>
|
|
146
|
-
<h5>
|
|
147
|
-
Returns
|
|
148
|
-
<PropertyToggle target="returns" />
|
|
149
|
-
</h5>
|
|
150
|
-
<div className={style_default.MethodReturns} data-stldocs-property-group="returns">
|
|
151
|
-
{returns}
|
|
152
|
-
</div>
|
|
153
|
-
</div>}
|
|
154
|
-
</div>;
|
|
155
|
-
}
|
|
156
|
-
function Method({ id, header, children, className,...props }) {
|
|
157
|
-
return <div id={id} className={clsx(style_default.Method, className)} tabIndex={0} {...props}>
|
|
158
|
-
{header}
|
|
159
|
-
<div className={style_default.MethodBody}>{children}</div>
|
|
160
|
-
</div>;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
//#endregion
|
|
164
|
-
//#region src/components/primitives.tsx
|
|
165
|
-
function Join({ items, limit, children }) {
|
|
166
|
-
return (limit && items.length > limit + 1 ? [...items.slice(0, limit), <span className={style_default.Truncation} key="truncation">
|
|
167
|
-
{items.length - limit} more
|
|
168
|
-
</span>] : items).map((item$1, index) => <Fragment key={`iterator:${index}`}>
|
|
169
|
-
{!!index && children}
|
|
170
|
-
{item$1}
|
|
171
|
-
</Fragment>);
|
|
172
|
-
}
|
|
173
|
-
function Expander({ id, open, summary, virtual, muted, children }) {
|
|
174
|
-
const virtualExpanders = useSettings()?.virtualExpanders;
|
|
175
|
-
if (virtual || virtualExpanders) return <VirtualExpander summary={summary} open={open} muted={muted} id={id}>
|
|
176
|
-
{children}
|
|
177
|
-
</VirtualExpander>;
|
|
178
|
-
return <details className={style_default.Expander} open={open} data-stldocs-expander-muted={muted} data-stldocs-expander-initial-state={open}>
|
|
179
|
-
<summary className={style_default.ExpanderSummary}>
|
|
180
|
-
<div className={style_default.ExpanderSummaryIcon}>
|
|
181
|
-
<PlusIcon size={16} strokeWidth={1} className={style_default.Icon} />
|
|
182
|
-
<MinusIcon size={16} strokeWidth={1} className={style_default.Icon} />
|
|
183
|
-
</div>
|
|
184
|
-
<div className={style_default.ExpanderSummaryContent}>{summary}</div>
|
|
185
|
-
</summary>
|
|
186
|
-
<div className={style_default.ExpanderContent} id={id}>
|
|
187
|
-
{children}
|
|
188
|
-
</div>
|
|
189
|
-
</details>;
|
|
190
|
-
}
|
|
191
|
-
function VirtualExpander({ id, open: isOpen, muted, summary, children }) {
|
|
192
|
-
const [open, setOpen] = useState(isOpen);
|
|
193
|
-
React$1.useEffect(() => {
|
|
194
|
-
if (isOpen) setOpen(true);
|
|
195
|
-
}, [isOpen]);
|
|
196
|
-
return <div className={style_default.Expander} data-open={open} data-stldocs-expander-muted={muted} data-stldocs-expander-initial-state={open}>
|
|
197
|
-
<div className={style_default.ExpanderSummary} onClick={() => setOpen(!open)}>
|
|
198
|
-
<div className={style_default.ExpanderSummaryIcon}>
|
|
199
|
-
<PlusIcon size={16} className={style_default.Icon} />
|
|
200
|
-
<MinusIcon size={16} className={style_default.Icon} />
|
|
201
|
-
</div>
|
|
202
|
-
<div className={style_default.ExpanderSummaryContent}>{summary}</div>
|
|
203
|
-
</div>
|
|
204
|
-
{open && <div className={style_default.ExpanderContent} id={id}>
|
|
205
|
-
{children}
|
|
206
|
-
</div>}
|
|
207
|
-
</div>;
|
|
208
|
-
}
|
|
209
|
-
function Markdown({ content }) {
|
|
210
|
-
const rendered = useRenderMarkdown(content);
|
|
211
|
-
return rendered && <div className={`${style_default.Markdown} ${style_default.Content}`} dangerouslySetInnerHTML={{ __html: rendered }} />;
|
|
212
|
-
}
|
|
213
|
-
function Badge({ id, children }) {
|
|
214
|
-
return <span className={style_default.Badge} data-badge-id={id}>
|
|
215
|
-
{children ?? id}
|
|
216
|
-
</span>;
|
|
217
|
-
}
|
|
218
|
-
const TooltipNestingContext = React$1.createContext(false);
|
|
219
|
-
function Tooltip({ content, children }) {
|
|
220
|
-
if (React$1.useContext(TooltipNestingContext)) return children;
|
|
221
|
-
return <span className={style_default.Tooltip}>
|
|
222
|
-
<span className={style_default.TooltipContent}>
|
|
223
|
-
<TooltipNestingContext.Provider value={true}>{content}</TooltipNestingContext.Provider>
|
|
224
|
-
</span>
|
|
225
|
-
<span className={style_default.TooltipHost}>{children}</span>
|
|
226
|
-
</span>;
|
|
227
|
-
}
|
|
228
|
-
function Link({ stainlessPath, scroll = true, children,...props }) {
|
|
229
|
-
const { basePath, onNavigate } = useNavigation();
|
|
230
|
-
const language = useLanguage();
|
|
231
|
-
const href = React$1.useMemo(() => {
|
|
232
|
-
if (props.href) return props.href;
|
|
233
|
-
if (stainlessPath && basePath) return generateRoute(basePath, language, stainlessPath);
|
|
234
|
-
}, [
|
|
235
|
-
basePath,
|
|
236
|
-
language,
|
|
237
|
-
stainlessPath,
|
|
238
|
-
props.href
|
|
239
|
-
]);
|
|
240
|
-
const handleClick = React$1.useCallback((e) => {
|
|
241
|
-
if (props.onClick) props.onClick(e);
|
|
242
|
-
if (e.button !== 0 || e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) return;
|
|
243
|
-
if (href) onNavigate?.(e, {
|
|
244
|
-
href,
|
|
245
|
-
language,
|
|
246
|
-
stainlessPath,
|
|
247
|
-
scroll
|
|
248
|
-
});
|
|
249
|
-
}, [
|
|
250
|
-
href,
|
|
251
|
-
scroll,
|
|
252
|
-
onNavigate,
|
|
253
|
-
language,
|
|
254
|
-
props,
|
|
255
|
-
stainlessPath
|
|
256
|
-
]);
|
|
257
|
-
if (!href) return children;
|
|
258
|
-
return <a href={href} onClick={handleClick} {...props}>
|
|
259
|
-
{children}
|
|
260
|
-
</a>;
|
|
261
|
-
}
|
|
262
|
-
const Input = React$1.forwardRef(function Input$1({ left, right,...props }, ref) {
|
|
263
|
-
return <div className={style_default.Input}>
|
|
264
|
-
{left}
|
|
265
|
-
<input {...props} ref={ref} className={style_default.InputTextField} />
|
|
266
|
-
{right}
|
|
267
|
-
</div>;
|
|
268
|
-
});
|
|
269
|
-
const ToggleButton = React$1.forwardRef(function ToggleButton$1({ children, selected,...props }, ref) {
|
|
270
|
-
return <button {...props} ref={ref} className={style_default.ToggleButton} data-stldocs-toggle-selected={selected}>
|
|
271
|
-
{children}
|
|
272
|
-
</button>;
|
|
273
|
-
});
|
|
274
|
-
function ListView({ items, itemDelegate, onSelectListItem,...rest }) {
|
|
275
|
-
const [selectedIndex, setSelectedIndex] = React$1.useState(0);
|
|
276
|
-
const [keyboardIndex, setKeyboardIndex] = React$1.useState(0);
|
|
277
|
-
const listRef = React$1.useRef(null);
|
|
278
|
-
const itemRef = React$1.useRef(null);
|
|
279
|
-
React$1.useEffect(() => {
|
|
280
|
-
setSelectedIndex(0);
|
|
281
|
-
setKeyboardIndex(0);
|
|
282
|
-
}, [items]);
|
|
283
|
-
const handleSelect = React$1.useCallback(() => {
|
|
284
|
-
const item$1 = items[selectedIndex];
|
|
285
|
-
if (item$1) onSelectListItem?.(item$1);
|
|
286
|
-
}, [
|
|
287
|
-
items,
|
|
288
|
-
selectedIndex,
|
|
289
|
-
onSelectListItem
|
|
290
|
-
]);
|
|
291
|
-
React$1.useEffect(() => {
|
|
292
|
-
function handleKeyPress(ev) {
|
|
293
|
-
switch (ev.key) {
|
|
294
|
-
case "ArrowUp": {
|
|
295
|
-
ev.preventDefault();
|
|
296
|
-
const value = Math.max(0, selectedIndex - 1);
|
|
297
|
-
setSelectedIndex(value);
|
|
298
|
-
setKeyboardIndex(value);
|
|
299
|
-
break;
|
|
300
|
-
}
|
|
301
|
-
case "ArrowDown": {
|
|
302
|
-
ev.preventDefault();
|
|
303
|
-
const value = Math.min(items.length, selectedIndex + 1);
|
|
304
|
-
setSelectedIndex(value);
|
|
305
|
-
setKeyboardIndex(value);
|
|
306
|
-
break;
|
|
307
|
-
}
|
|
308
|
-
case "Enter":
|
|
309
|
-
ev.preventDefault();
|
|
310
|
-
handleSelect();
|
|
311
|
-
break;
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
addEventListener("keydown", handleKeyPress);
|
|
315
|
-
return () => removeEventListener("keydown", handleKeyPress);
|
|
316
|
-
}, [
|
|
317
|
-
items,
|
|
318
|
-
selectedIndex,
|
|
319
|
-
handleSelect
|
|
320
|
-
]);
|
|
321
|
-
React$1.useEffect(() => {
|
|
322
|
-
if (!keyboardIndex || !itemRef.current || !listRef.current) {
|
|
323
|
-
listRef?.current?.scroll(0, 0);
|
|
324
|
-
return;
|
|
325
|
-
}
|
|
326
|
-
const selectedBounds = itemRef.current.getBoundingClientRect();
|
|
327
|
-
const listBounds = listRef.current.getBoundingClientRect();
|
|
328
|
-
if (selectedBounds.top < listBounds.top || selectedBounds.bottom > listBounds.bottom) itemRef.current.scrollIntoView({ block: "nearest" });
|
|
329
|
-
}, [
|
|
330
|
-
keyboardIndex,
|
|
331
|
-
items,
|
|
332
|
-
listRef
|
|
333
|
-
]);
|
|
334
|
-
return <div ref={listRef} className={style_default.ListView} tabIndex={0} {...rest}>
|
|
335
|
-
{items.map((item$1, index) => <div key={index} ref={index === selectedIndex ? itemRef : null} className={style_default.ListViewItem} data-stldocs-listview-selected={index === selectedIndex} onClick={handleSelect} onMouseMove={() => setSelectedIndex(index)}>
|
|
336
|
-
{itemDelegate(item$1, index === selectedIndex)}
|
|
337
|
-
</div>)}
|
|
338
|
-
</div>;
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
//#endregion
|
|
342
|
-
//#region src/components/sdk.tsx
|
|
343
|
-
const PropertyModelContext = React$1.createContext({});
|
|
344
|
-
function usePropertyModel() {
|
|
345
|
-
return React$1.useContext(PropertyModelContext);
|
|
346
|
-
}
|
|
347
|
-
const ReferenceNestingContext = React$1.createContext([]);
|
|
348
|
-
function useReferenceNesting() {
|
|
349
|
-
return React$1.useContext(ReferenceNestingContext);
|
|
350
|
-
}
|
|
351
|
-
const SDKSnippetLanguages = {
|
|
352
|
-
"node.default": {
|
|
353
|
-
name: "TypeScript",
|
|
354
|
-
icon: "typescript"
|
|
355
|
-
},
|
|
356
|
-
"typescript.default": {
|
|
357
|
-
name: "TypeScript",
|
|
358
|
-
icon: "typescript"
|
|
359
|
-
},
|
|
360
|
-
"python.default": {
|
|
361
|
-
name: "Python",
|
|
362
|
-
icon: "python"
|
|
363
|
-
},
|
|
364
|
-
"go.default": {
|
|
365
|
-
name: "Go",
|
|
366
|
-
icon: "go"
|
|
367
|
-
},
|
|
368
|
-
"java.default": {
|
|
369
|
-
name: "Java",
|
|
370
|
-
icon: "java"
|
|
371
|
-
},
|
|
372
|
-
"kotlin.default": {
|
|
373
|
-
name: "Kotlin",
|
|
374
|
-
icon: "kotlin"
|
|
375
|
-
},
|
|
376
|
-
"http.curl": {
|
|
377
|
-
name: "cURL",
|
|
378
|
-
icon: "http"
|
|
379
|
-
},
|
|
380
|
-
"http.powershell": {
|
|
381
|
-
name: "Powershell",
|
|
382
|
-
icon: "powershell"
|
|
383
|
-
},
|
|
384
|
-
"terraform.default": {
|
|
385
|
-
name: "Terraform",
|
|
386
|
-
icon: "terraform"
|
|
387
|
-
},
|
|
388
|
-
"ruby.default": {
|
|
389
|
-
name: "Ruby",
|
|
390
|
-
icon: "ruby"
|
|
391
|
-
}
|
|
392
|
-
};
|
|
393
|
-
function SDKChildren({ paths, expand, depth }) {
|
|
394
|
-
const Docs = useComponents();
|
|
395
|
-
return <div className={style_default.Properties}>
|
|
396
|
-
{paths.map((path, i) => <Docs.SDKDeclaration path={path} key={i} expand={expand} depth={depth} />)}
|
|
397
|
-
</div>;
|
|
398
|
-
}
|
|
399
|
-
function SDKDeclaration({ path, expand, depth = 0 }) {
|
|
400
|
-
const Lang = useLanguageComponents();
|
|
401
|
-
const Docs = useComponents();
|
|
402
|
-
const decl = useDeclaration(path, true);
|
|
403
|
-
const settings = useSettings();
|
|
404
|
-
const model = usePropertyModel();
|
|
405
|
-
const nesting = useReferenceNesting();
|
|
406
|
-
const { selectedPath } = useNavigation();
|
|
407
|
-
if (decl.kind.endsWith("Reference")) {
|
|
408
|
-
const refId = "type" in decl && typeof decl.type !== "string" && "$ref" in decl.type ? decl.type["$ref"] : void 0;
|
|
409
|
-
if (refId && refId !== path && !nesting.includes(refId)) return <ReferenceNestingContext.Provider value={[...nesting, refId]}>
|
|
410
|
-
<SDKDeclaration path={refId} expand={expand} depth={depth} />
|
|
411
|
-
</ReferenceNestingContext.Provider>;
|
|
412
|
-
}
|
|
413
|
-
const isUnion = "childrenParentSchema" in decl && decl.childrenParentSchema && ["enum", "union"].includes(decl.childrenParentSchema);
|
|
414
|
-
const id = model?.propertyPath ? `${model.propertyPath} + ${path}` : path;
|
|
415
|
-
const shouldExpand = selectedPath?.startsWith(path) && nesting.length < 1 || settings?.properties?.expandDepth && depth <= settings?.properties?.expandDepth && !isUnion || expand;
|
|
416
|
-
const content = <Lang.Property decl={decl}>
|
|
417
|
-
{({ ...props }) => <Docs.Property id={id} expand={shouldExpand} constraints={"constraints" in decl && <Docs.SDKConstraints constraints={decl["constraints"]} />} declaration={<Lang.Declaration decl={decl} />} description={"docstring" in decl ? decl["docstring"] : void 0} deprecated={decl.deprecated} {...props}>
|
|
418
|
-
{"children" in decl && (decl.children?.length ?? 0) > 0 && (settings?.properties?.includeModelProperties !== false || !("modelPath" in decl)) && <>
|
|
419
|
-
{isUnion && <div className={style_default.PropertyAnnotation}>Accepts one of the following:</div>}
|
|
420
|
-
<Docs.SDKChildren paths={decl.children ?? []} depth={depth + 1} />
|
|
421
|
-
</>}
|
|
422
|
-
</Docs.Property>}
|
|
423
|
-
</Lang.Property>;
|
|
424
|
-
if ("modelPath" in decl) {
|
|
425
|
-
const value = {
|
|
426
|
-
modelPath: decl.modelPath,
|
|
427
|
-
propertyPath: decl.stainlessPath
|
|
428
|
-
};
|
|
429
|
-
return <PropertyModelContext.Provider value={value}>{content}</PropertyModelContext.Provider>;
|
|
430
|
-
}
|
|
431
|
-
return content;
|
|
432
|
-
}
|
|
433
|
-
function SDKConstraints({ constraints }) {
|
|
434
|
-
if (constraints) return <div className={style_default.PropertyConstraints}>
|
|
435
|
-
{Object.entries(constraints).map(([name, value]) => <div className={style_default.PropertyConstraint} key={name}>
|
|
436
|
-
<span className={style_default.PropertyConstraintName}>{name}</span>
|
|
437
|
-
<span className={style_default.PropertyConstraintValue}>{value}</span>
|
|
438
|
-
</div>)}
|
|
439
|
-
</div>;
|
|
440
|
-
}
|
|
441
|
-
const snippetIcons = {
|
|
442
|
-
"node.default": TypescriptIcon,
|
|
443
|
-
"typescript.default": TypescriptIcon,
|
|
444
|
-
"go.default": GoIcon,
|
|
445
|
-
"python.default": PythonIcon,
|
|
446
|
-
"terraform.default": TerraformIcon,
|
|
447
|
-
"http.curl": CurlIcon,
|
|
448
|
-
"http.powershell": PowershellIcon,
|
|
449
|
-
"ruby.default": RubyIcon,
|
|
450
|
-
"java.default": JavaIcon,
|
|
451
|
-
"kotlin.default": KotlinIcon
|
|
452
|
-
};
|
|
453
|
-
function SDKIcon({ language }) {
|
|
454
|
-
const LangIcon = snippetIcons[language];
|
|
455
|
-
if (!LangIcon) return null;
|
|
456
|
-
return <LangIcon className={clsx(style_default.Icon, language.split(".").shift())} />;
|
|
457
|
-
}
|
|
458
|
-
function SDKRequestTitle({ snippetLanguage }) {
|
|
459
|
-
const languageName = SDKSnippetLanguages[snippetLanguage]?.name;
|
|
460
|
-
return <span className={style_default.SnippetRequestTitleLanguage}>
|
|
461
|
-
<SDKIcon language={snippetLanguage} /> {languageName}
|
|
462
|
-
</span>;
|
|
463
|
-
}
|
|
464
|
-
function SDKExample({ method, transformRequestSnippet }) {
|
|
465
|
-
const Docs = useComponents();
|
|
466
|
-
const snippetLanguage = getLanguageSnippet(useLanguage());
|
|
467
|
-
return <Docs.Snippet requestTitle={<Docs.SDKRequestTitle snippetLanguage={snippetLanguage} />} method={method} transformRequestSnippet={transformRequestSnippet} />;
|
|
468
|
-
}
|
|
469
|
-
function SDKMethodHeader({ method }) {
|
|
470
|
-
const Docs = useComponents();
|
|
471
|
-
const Lang = useLanguageComponents();
|
|
472
|
-
const decl = useDeclaration(method.stainlessPath, true);
|
|
473
|
-
return <Docs.MethodHeader level="h1" title={method.summary ?? method.title} signature={<Lang.MethodSignature decl={decl} />} badges={method.deprecated && <Docs.Badge id="deprecated">Deprecated</Docs.Badge>}>
|
|
474
|
-
<Docs.MethodRoute httpMethod={method.httpMethod} endpoint={method.endpoint.split(" ", 2).at(-1)} />
|
|
475
|
-
</Docs.MethodHeader>;
|
|
476
|
-
}
|
|
477
|
-
function SDKMethodInfo({ method }) {
|
|
478
|
-
const Docs = useComponents();
|
|
479
|
-
const Lang = useLanguageComponents();
|
|
480
|
-
const decl = useDeclaration(method.stainlessPath, true);
|
|
481
|
-
const spec = useSpec();
|
|
482
|
-
const language = useLanguage();
|
|
483
|
-
if (Lang.MethodInfo) return <Lang.MethodInfo decl={decl} />;
|
|
484
|
-
function shouldExpand(items) {
|
|
485
|
-
if (items.length > 1) return false;
|
|
486
|
-
const item$1 = items[0];
|
|
487
|
-
if (!item$1) return false;
|
|
488
|
-
const decl$1 = spec?.decls?.[language]?.[item$1];
|
|
489
|
-
return decl$1 && "children" in decl$1 && decl$1.children && decl$1.children.length > 0;
|
|
490
|
-
}
|
|
491
|
-
return <Docs.MethodInfo parameters={"paramsChildren" in decl && Array.isArray(decl.paramsChildren) && decl.paramsChildren.length > 0 && <Docs.SDKChildren expand={shouldExpand(decl.paramsChildren)} paths={decl.paramsChildren} />} returns={"responseChildren" in decl && decl.responseChildren && decl.responseChildren.length > 0 && <Docs.SDKChildren expand={shouldExpand(decl.responseChildren)} paths={decl.responseChildren} />} />;
|
|
492
|
-
}
|
|
493
|
-
function SDKMethod({ method, transformRequestSnippet }) {
|
|
494
|
-
const Docs = useComponents();
|
|
495
|
-
const decl = useDeclaration(method?.stainlessPath, true);
|
|
496
|
-
const layout = useContentPanelLayout();
|
|
497
|
-
if (!decl) return;
|
|
498
|
-
return <Docs.Method id={method.stainlessPath} header={<Docs.SDKMethodHeader method={method} />} className={clsx({
|
|
499
|
-
[style_default.MethodSinglePane]: layout === "single-pane",
|
|
500
|
-
[style_default.MethodDoublePane]: layout === "double-pane"
|
|
501
|
-
})}>
|
|
502
|
-
<div className={style_default.MethodContentColumn}>
|
|
503
|
-
<Docs.MethodDescription description={method.description} />
|
|
504
|
-
<Docs.SDKMethodInfo method={method} />
|
|
505
|
-
</div>
|
|
506
|
-
<div className={style_default.MethodExample + " not-content"}>
|
|
507
|
-
<Docs.SDKExample method={method} transformRequestSnippet={transformRequestSnippet} />
|
|
508
|
-
</div>
|
|
509
|
-
<div className={style_default.MethodResponseColumn}>
|
|
510
|
-
<h5>Returns Examples</h5>
|
|
511
|
-
<Docs.SnippetResponse responses={method.exampleResponses} />
|
|
512
|
-
</div>
|
|
513
|
-
</Docs.Method>;
|
|
514
|
-
}
|
|
515
|
-
function SDKModel({ model }) {
|
|
516
|
-
const Docs = useComponents();
|
|
517
|
-
if (!useDeclaration(`${model.stainlessPath} > (schema)`, true)) return null;
|
|
518
|
-
return <div className={style_default.Model} tabIndex={0}>
|
|
519
|
-
<div className={style_default.ResourceContentProperties}>
|
|
520
|
-
<Docs.SDKDeclaration path={`${model.stainlessPath} > (schema)`} />
|
|
521
|
-
</div>
|
|
522
|
-
</div>;
|
|
523
|
-
}
|
|
524
|
-
function SDKReference({ stainlessPath, children }) {
|
|
525
|
-
const Docs = useComponents();
|
|
526
|
-
if (!stainlessPath || !stainlessPath.endsWith("(schema)")) return children;
|
|
527
|
-
return <span className={style_default.TypeReference}>
|
|
528
|
-
<Docs.Link stainlessPath={stainlessPath}>{children}</Docs.Link>
|
|
529
|
-
</span>;
|
|
530
|
-
}
|
|
531
|
-
function SDKLanguageBlock({ language, version, install, links }) {
|
|
532
|
-
const Docs = useComponents();
|
|
533
|
-
const lang = `${language}.default`;
|
|
534
|
-
return <div className={style_default.LanguageBlock}>
|
|
535
|
-
<div className={style_default.LanguageBlockContent}>
|
|
536
|
-
<div className={style_default.LanguageBlockContentIcon}>
|
|
537
|
-
<Docs.SDKIcon language={lang} size={24} />
|
|
538
|
-
</div>
|
|
539
|
-
<div className={style_default.LanguageBlockContentInfo}>
|
|
540
|
-
<div className={style_default.LanguageBlockContentInfoLanguage}>{Docs.SDKSnippetLanguages[lang].name}</div>
|
|
541
|
-
<div className={style_default.LanguageBlockContentInfoVersion}>{version}</div>
|
|
542
|
-
</div>
|
|
543
|
-
</div>
|
|
544
|
-
|
|
545
|
-
<div className={style_default.LanguageBlockInstall} data-stldocs-copy-parent>
|
|
546
|
-
<pre data-stldocs-copy-content>{install}</pre>{" "}
|
|
547
|
-
<Button variant="ghost" size="sm" data-stldocs-snippet-copy>
|
|
548
|
-
<Copy size={16} className={style_default.Icon} />
|
|
549
|
-
</Button>
|
|
550
|
-
</div>
|
|
551
|
-
|
|
552
|
-
<div className={style_default.LanguageBlockLinks}>
|
|
553
|
-
<Button href={links.repo} variant="outline">
|
|
554
|
-
<Button.Icon icon={Github} />
|
|
555
|
-
</Button>
|
|
556
|
-
<Button href={links.docs} variant="outline">
|
|
557
|
-
<Button.Icon icon={BookOpen} />
|
|
558
|
-
<Button.Label>Read Docs</Button.Label>
|
|
559
|
-
</Button>
|
|
560
|
-
</div>
|
|
561
|
-
</div>;
|
|
562
|
-
}
|
|
563
|
-
|
|
564
|
-
//#endregion
|
|
565
|
-
//#region src/components/snippets.tsx
|
|
566
|
-
function SnippetCode({ content, language }) {
|
|
567
|
-
const lang = useLanguage();
|
|
568
|
-
const highlighted = useHighlight(content, language || lang);
|
|
569
|
-
return <div className={style_default.SnippetCode}>
|
|
570
|
-
<pre className={style_default.SnippetCodeContent} data-stldocs-copy-content>
|
|
571
|
-
<code className={language === "json" ? "snippet-json" : "snippet"} dangerouslySetInnerHTML={{ __html: highlighted }} />
|
|
572
|
-
</pre>
|
|
573
|
-
</div>;
|
|
574
|
-
}
|
|
575
|
-
function SnippetContainer({ children }) {
|
|
576
|
-
return <div className={clsx(style_default.Snippet)}>{children}</div>;
|
|
577
|
-
}
|
|
578
|
-
function SnippetRequestContainer({ children }) {
|
|
579
|
-
return <div>{children}</div>;
|
|
580
|
-
}
|
|
581
|
-
function Snippet({ requestTitle, method, transformRequestSnippet }) {
|
|
582
|
-
const Docs = useComponents();
|
|
583
|
-
const language = useLanguage();
|
|
584
|
-
const [CopyButtonIcon, setCopyIcon] = React$1.useState(CopyIcon);
|
|
585
|
-
const originalSnippet = useSnippet(method.stainlessPath, void 0, language === "http" ? "curl" : "default");
|
|
586
|
-
const decl = useDeclaration(method.stainlessPath, false);
|
|
587
|
-
if (!originalSnippet) {
|
|
588
|
-
console.warn(`Snippet not found for method '${method.stainlessPath}'`);
|
|
589
|
-
return null;
|
|
590
|
-
}
|
|
591
|
-
const signature = decl && "qualified" in decl ? decl.qualified : void 0;
|
|
592
|
-
const responses = method.exampleResponses;
|
|
593
|
-
const snippet = transformRequestSnippet ? transformRequestSnippet({
|
|
594
|
-
snippet: originalSnippet,
|
|
595
|
-
language
|
|
596
|
-
}) : originalSnippet;
|
|
597
|
-
async function handleCopy() {
|
|
598
|
-
try {
|
|
599
|
-
await navigator.clipboard.writeText(snippet);
|
|
600
|
-
setCopyIcon(CheckIcon);
|
|
601
|
-
} catch {
|
|
602
|
-
setCopyIcon(CircleAlertIcon);
|
|
603
|
-
}
|
|
604
|
-
setTimeout(() => setCopyIcon(CopyIcon), 1e3);
|
|
605
|
-
}
|
|
606
|
-
return <Docs.SnippetContainer signature={signature}>
|
|
607
|
-
{snippet && <Docs.SnippetRequestContainer signature={signature}>
|
|
608
|
-
<div className={style_default.SnippetRequest} data-stldocs-copy-parent>
|
|
609
|
-
<div className={style_default.SnippetRequestTitle}>
|
|
610
|
-
<div className={style_default.SnippetRequestTitleMethod}>
|
|
611
|
-
<Docs.MethodRoute httpMethod={method.httpMethod} iconOnly />
|
|
612
|
-
<h5>{method.summary}</h5>
|
|
613
|
-
</div>
|
|
614
|
-
<div className={style_default.SnippetRequestTitleContent}>{requestTitle}</div>
|
|
615
|
-
<Button variant="ghost" data-stldocs-snippet-copy>
|
|
616
|
-
<CopyButtonIcon size={16} className={style_default.Icon} onClick={handleCopy} />
|
|
617
|
-
</Button>
|
|
618
|
-
</div>
|
|
619
|
-
<Docs.SnippetCode content={snippet} signature={signature} />
|
|
620
|
-
</div>
|
|
621
|
-
</Docs.SnippetRequestContainer>}
|
|
622
|
-
{responses && <Docs.SnippetResponse responses={responses} />}
|
|
623
|
-
</Docs.SnippetContainer>;
|
|
624
|
-
}
|
|
625
|
-
function SnippetResponse({ responses }) {
|
|
626
|
-
const { SnippetCode: SnippetCode$1 } = useComponents();
|
|
627
|
-
if (!responses) return null;
|
|
628
|
-
const mappedResponses = Object.keys(responses).map((key) => {
|
|
629
|
-
const responseContent = responses[key];
|
|
630
|
-
if (!responseContent) return null;
|
|
631
|
-
const responseType = Object.keys(responseContent)[0];
|
|
632
|
-
if (!responseType) return null;
|
|
633
|
-
const response = responseContent[responseType];
|
|
634
|
-
if (!response) return null;
|
|
635
|
-
const examples = response?.examples;
|
|
636
|
-
if (!examples) return null;
|
|
637
|
-
const exampleType = Object.keys(examples)[0];
|
|
638
|
-
if (!exampleType) return null;
|
|
639
|
-
let value = examples[exampleType]?.value;
|
|
640
|
-
if (!value) return null;
|
|
641
|
-
if (responseType === "application/json") value = JSON.stringify(value, null, 2);
|
|
642
|
-
return {
|
|
643
|
-
responseCode: key,
|
|
644
|
-
content: value
|
|
645
|
-
};
|
|
646
|
-
}).filter(Boolean);
|
|
647
|
-
if (mappedResponses.length === 0) return null;
|
|
648
|
-
return <div className={style_default.SnippetMultiResponse}>
|
|
649
|
-
<div className={clsx(style_default.Snippet)}>
|
|
650
|
-
<div className={clsx(style_default.SnippetResponseTab, mappedResponses.length === 1 && style_default.SnippetResponseTabSingleReturn)}>
|
|
651
|
-
{mappedResponses.map(({ responseCode }, index) => <button className={clsx(style_default.SnippetResponseTabItem, index === 0 && style_default.SnippetResponseTabItemActive)} key={`snippet-response-tab-item-${responseCode}-${index}`} data-snippet-response-tab-id={`snippet-response-tab-${responseCode}-${index}`} disabled={mappedResponses.length === 1}>
|
|
652
|
-
{responseCode} example
|
|
653
|
-
</button>)}
|
|
654
|
-
</div>
|
|
655
|
-
{mappedResponses.map(({ responseCode, content }, index) => {
|
|
656
|
-
return <div className={clsx(style_default.SnippetResponsePane, index === 0 && style_default.SnippetResponsePaneActive)} key={`snippet-response-${responseCode}-${index}`} data-snippet-response-pane-id={`snippet-response-tab-${responseCode}-${index}`}>
|
|
657
|
-
<SnippetCode$1 content={content} language="json" />
|
|
658
|
-
</div>;
|
|
659
|
-
})}
|
|
660
|
-
</div>
|
|
661
|
-
</div>;
|
|
662
|
-
}
|
|
663
|
-
|
|
664
|
-
//#endregion
|
|
665
|
-
//#region src/components/overview.tsx
|
|
666
|
-
function SDKResourceHeader({ resource, parents }) {
|
|
667
|
-
const segments = parents?.map((parent, index) => <span className={style_default.ResourceTitleSegment} key={parent.stainlessPath}>
|
|
668
|
-
{parent.title}
|
|
669
|
-
{index < parents.length && <ChevronRight size={16} className={style_default.Icon} />}
|
|
670
|
-
</span>);
|
|
671
|
-
if (!segments && !resource.description) return null;
|
|
672
|
-
return <div className={style_default.ResourceHeader}>
|
|
673
|
-
{segments && <h4 id={resource.stainlessPath} className={style_default.ResourceTitle}>
|
|
674
|
-
{segments}
|
|
675
|
-
<span className={style_default.ResourceTitleSegment}>{resource.title}</span>
|
|
676
|
-
</h4>}
|
|
677
|
-
{resource.description && <div className={style_default.ResourceDescription}>
|
|
678
|
-
<Markdown content={resource.description} />
|
|
679
|
-
</div>}
|
|
680
|
-
</div>;
|
|
681
|
-
}
|
|
682
|
-
function SDKMethodSummary({ method }) {
|
|
683
|
-
const Docs = useComponents();
|
|
684
|
-
const Lang = useLanguageComponents();
|
|
685
|
-
const decl = useDeclaration(method.stainlessPath, true);
|
|
686
|
-
return <Docs.MethodHeader level="h5" title={<Docs.Link stainlessPath={method.stainlessPath}>{method.summary ?? method.title}</Docs.Link>} signature={<Lang.MethodSignature decl={decl} />} badges={method.deprecated && <Docs.Badge id="deprecated">Deprecated</Docs.Badge>}>
|
|
687
|
-
<Docs.MethodRoute httpMethod={method.httpMethod} endpoint={method.endpoint.split(" ", 2).at(-1)} />
|
|
688
|
-
{}
|
|
689
|
-
{}
|
|
690
|
-
</Docs.MethodHeader>;
|
|
691
|
-
}
|
|
692
|
-
function SDKResource({ resource, parents, showModels }) {
|
|
693
|
-
const Docs = useComponents();
|
|
694
|
-
const language = useLanguage();
|
|
695
|
-
const spec = useSpec();
|
|
696
|
-
const methods = Object.values(resource.methods).filter((method) => spec?.decls?.[language]?.[method.stainlessPath]);
|
|
697
|
-
const models = Object.values(resource.models).filter((model) => spec?.decls?.[language]?.[`${model.stainlessPath} > (schema)`]);
|
|
698
|
-
return <div className={style_default.Resource}>
|
|
699
|
-
<div className={style_default.ResourceContent}>
|
|
700
|
-
<Docs.SDKResourceHeader resource={resource} parents={parents} />
|
|
701
|
-
{methods.length > 0 && <div className={style_default.ResourceContentGroup}>
|
|
702
|
-
{methods.map((method) => <div className={style_default.MethodSummary} key={method.stainlessPath}>
|
|
703
|
-
<Docs.SDKMethodSummary method={method} />
|
|
704
|
-
</div>)}
|
|
705
|
-
</div>}
|
|
706
|
-
|
|
707
|
-
{showModels !== false && models.length > 0 && <div className={style_default.ResourceContentGroup} data-stldocs-property-group="models">
|
|
708
|
-
<h5 className={style_default.ResourceContentGroupModelTitle}>
|
|
709
|
-
Models
|
|
710
|
-
<PropertyToggle target="models" />
|
|
711
|
-
</h5>
|
|
712
|
-
{models.map((model) => <Docs.SDKModel model={model} key={model.stainlessPath} />)}
|
|
713
|
-
</div>}
|
|
714
|
-
</div>
|
|
715
|
-
</div>;
|
|
716
|
-
}
|
|
717
|
-
function SDKOverview({ resource }) {
|
|
718
|
-
const { SDKResource: SDKResource$1 } = useComponents();
|
|
719
|
-
const nested = React$1.useMemo(() => flatResources(resource.subresources, [resource]), [resource]);
|
|
720
|
-
return <div className={style_default.Overview}>
|
|
721
|
-
<div className={style_default.OverviewHeader}>
|
|
722
|
-
<h1>{resource.title}</h1>
|
|
723
|
-
</div>
|
|
724
|
-
<SDKResource$1 resource={resource} />
|
|
725
|
-
{nested.map((props, index) => <SDKResource$1 {...props} key={index} />)}
|
|
726
|
-
</div>;
|
|
727
|
-
}
|
|
728
|
-
function SDKRoot({ stainlessPath }) {
|
|
729
|
-
const spec = useSpec();
|
|
730
|
-
const Docs = useComponents();
|
|
731
|
-
const parsed = parseStainlessPath(stainlessPath);
|
|
732
|
-
const resource = spec && getResourceFromSpec(stainlessPath, spec);
|
|
733
|
-
if (!resource || !parsed) {
|
|
734
|
-
console.warn(`Could not find resource or parsed path for '${stainlessPath}'`);
|
|
735
|
-
return null;
|
|
736
|
-
}
|
|
737
|
-
if (parsed.method) {
|
|
738
|
-
const method = resource.methods[parsed.method];
|
|
739
|
-
if (!method) {
|
|
740
|
-
console.warn(`Method '${parsed.method}' not found in resource '${resource.stainlessPath}'`);
|
|
741
|
-
return null;
|
|
742
|
-
}
|
|
743
|
-
return <div className={style_default.Root}>
|
|
744
|
-
<Docs.SDKMethod method={method} />
|
|
745
|
-
</div>;
|
|
746
|
-
}
|
|
747
|
-
return <div className={style_default.Root}>
|
|
748
|
-
<Docs.SDKOverview resource={resource} />
|
|
749
|
-
</div>;
|
|
750
|
-
}
|
|
751
|
-
|
|
752
|
-
//#endregion
|
|
753
|
-
//#region src/components/breadcrumbs.tsx
|
|
754
|
-
function generateApiBreadcrumbs(fullPath, spec, basePath) {
|
|
755
|
-
const cleanBasePath = basePath.replace(/\/+$/, "");
|
|
756
|
-
const cleanPath = fullPath.replace(/\/+$/, "");
|
|
757
|
-
if (!cleanPath.startsWith(cleanBasePath)) return null;
|
|
758
|
-
const rest = cleanPath.slice(cleanBasePath.length).split("/").filter(Boolean);
|
|
759
|
-
const breadcrumbs = [];
|
|
760
|
-
let href = cleanBasePath;
|
|
761
|
-
let i = 0;
|
|
762
|
-
if (Languages.includes(rest[0])) {
|
|
763
|
-
href += `/${rest[0]}`;
|
|
764
|
-
i++;
|
|
765
|
-
}
|
|
766
|
-
breadcrumbs.push({
|
|
767
|
-
title: "API Reference",
|
|
768
|
-
href
|
|
769
|
-
});
|
|
770
|
-
let currentSpec = spec;
|
|
771
|
-
while (i < rest.length) {
|
|
772
|
-
const idType = rest[i];
|
|
773
|
-
const idValue = rest[i + 1];
|
|
774
|
-
if (!idType || !idValue || !currentSpec?.[idType]?.[idValue]) break;
|
|
775
|
-
currentSpec = currentSpec[idType][idValue];
|
|
776
|
-
href += `/${idType}/${idValue}`;
|
|
777
|
-
const title = (idType === "methods" ? currentSpec.summary : currentSpec.title) ?? idValue;
|
|
778
|
-
breadcrumbs.push({
|
|
779
|
-
title,
|
|
780
|
-
href
|
|
781
|
-
});
|
|
782
|
-
i += 2;
|
|
783
|
-
}
|
|
784
|
-
return breadcrumbs;
|
|
785
|
-
}
|
|
786
|
-
function SDKBreadcrumbs({ spec, currentPath, basePath = "/api", config = { includeCurrentPage: false } }) {
|
|
787
|
-
const breadcrumbs = generateApiBreadcrumbs(currentPath, spec, basePath);
|
|
788
|
-
if (!breadcrumbs || breadcrumbs.length === 0) return null;
|
|
789
|
-
if (!config?.includeCurrentPage && breadcrumbs.length > 1) breadcrumbs.pop();
|
|
790
|
-
const items = breadcrumbs.map((crumb, index) => <div key={index} className={style_default.BreadcrumbsItem}>
|
|
791
|
-
<a href={crumb.href} className={style_default.BreadcrumbsLink}>
|
|
792
|
-
{crumb.title}
|
|
793
|
-
</a>
|
|
794
|
-
</div>);
|
|
795
|
-
return <div className={style_default.Breadcrumbs}>
|
|
796
|
-
<Join limit={breadcrumbs.length} items={items}>
|
|
797
|
-
<ChevronRight />
|
|
798
|
-
</Join>
|
|
799
|
-
</div>;
|
|
800
|
-
}
|
|
801
|
-
|
|
802
|
-
//#endregion
|
|
803
|
-
//#region src/components/sidebar.tsx
|
|
804
|
-
function SidebarExpander({ open, summary, children }) {
|
|
805
|
-
return <details className={style_default.SidebarExpander} open={open}>
|
|
806
|
-
<summary className={style_default.ExpanderSummary}>
|
|
807
|
-
<div className={style_default.ExpanderSummaryContent}>{summary}</div>
|
|
808
|
-
<div className={style_default.ExpanderSummaryIcon}>
|
|
809
|
-
<ChevronRight size={16} strokeWidth={1} className={style_default.Icon} />
|
|
810
|
-
<ChevronDown size={16} strokeWidth={1} className={style_default.Icon} />
|
|
811
|
-
</div>
|
|
812
|
-
</summary>
|
|
813
|
-
<div className={style_default.ExpanderContent}>{children}</div>
|
|
814
|
-
</details>;
|
|
815
|
-
}
|
|
816
|
-
function SidebarMethod({ method }) {
|
|
817
|
-
const Docs = useComponents();
|
|
818
|
-
const { selectedPath } = useNavigation();
|
|
819
|
-
return <div className={style_default.SidebarMethod} data-selected={method.stainlessPath === selectedPath}>
|
|
820
|
-
<MethodIconBadge httpMethod={method.httpMethod} />
|
|
821
|
-
<Docs.Link stainlessPath={method.stainlessPath}>{method.summary}</Docs.Link>
|
|
822
|
-
</div>;
|
|
823
|
-
}
|
|
824
|
-
function SidebarResource({ resource }) {
|
|
825
|
-
const Docs = useComponents();
|
|
826
|
-
const { selectedPath } = useNavigation();
|
|
827
|
-
const subresources = Object.values(resource.subresources ?? {}).map((sub) => <SidebarResource resource={sub} key={sub.stainlessPath} />);
|
|
828
|
-
const methods = Object.values(resource.methods).map((method) => <SidebarMethod method={method} key={method.stainlessPath} />);
|
|
829
|
-
const hasChildren = subresources.length > 0 || methods.length > 0;
|
|
830
|
-
const title = <div className={style_default.SidebarResourceTitle}>
|
|
831
|
-
<Docs.Link stainlessPath={resource.stainlessPath}>{resource.title}</Docs.Link>
|
|
832
|
-
</div>;
|
|
833
|
-
return <div className={style_default.SidebarResource} data-selected={resource.stainlessPath === selectedPath}>
|
|
834
|
-
{hasChildren ? <SidebarExpander summary={title} open={true}>
|
|
835
|
-
{methods}
|
|
836
|
-
{subresources}
|
|
837
|
-
</SidebarExpander> : title}
|
|
838
|
-
</div>;
|
|
839
|
-
}
|
|
840
|
-
function Sidebar({ resources }) {
|
|
841
|
-
return <div className={`${style_default.Root} ${style_default.Sidebar}`}>
|
|
842
|
-
{resources.filter((resource) => !isResourceEmpty(resource)).map((resource) => <SidebarResource resource={resource} key={resource.stainlessPath} />)}
|
|
843
|
-
</div>;
|
|
844
|
-
}
|
|
845
|
-
|
|
846
|
-
//#endregion
|
|
847
|
-
//#region src/components/index.ts
|
|
848
|
-
var components_exports = /* @__PURE__ */ __export({
|
|
849
|
-
Badge: () => Badge,
|
|
850
|
-
Dropdown: () => Dropdown,
|
|
851
|
-
DropdownItem: () => DropdownItem,
|
|
852
|
-
DropdownMenu: () => DropdownMenu,
|
|
853
|
-
DropdownTrigger: () => DropdownTrigger,
|
|
854
|
-
Expander: () => Expander,
|
|
855
|
-
HttpMethodIcons: () => HttpMethodIcons,
|
|
856
|
-
HttpMethods: () => HttpMethods,
|
|
857
|
-
Input: () => Input,
|
|
858
|
-
Join: () => Join,
|
|
859
|
-
Link: () => Link,
|
|
860
|
-
ListView: () => ListView,
|
|
861
|
-
Markdown: () => Markdown,
|
|
862
|
-
Method: () => Method,
|
|
863
|
-
MethodDescription: () => MethodDescription,
|
|
864
|
-
MethodHeader: () => MethodHeader,
|
|
865
|
-
MethodIconBadge: () => MethodIconBadge,
|
|
866
|
-
MethodInfo: () => MethodInfo$1,
|
|
867
|
-
MethodRoute: () => MethodRoute,
|
|
868
|
-
Property: () => Property$6,
|
|
869
|
-
PropertyDescription: () => PropertyDescription,
|
|
870
|
-
PropertyModelContext: () => PropertyModelContext,
|
|
871
|
-
PropertyToggle: () => PropertyToggle,
|
|
872
|
-
ReferenceNestingContext: () => ReferenceNestingContext,
|
|
873
|
-
SDKBreadcrumbs: () => SDKBreadcrumbs,
|
|
874
|
-
SDKChildren: () => SDKChildren,
|
|
875
|
-
SDKConstraints: () => SDKConstraints,
|
|
876
|
-
SDKDeclaration: () => SDKDeclaration,
|
|
877
|
-
SDKExample: () => SDKExample,
|
|
878
|
-
SDKIcon: () => SDKIcon,
|
|
879
|
-
SDKLanguageBlock: () => SDKLanguageBlock,
|
|
880
|
-
SDKMethod: () => SDKMethod,
|
|
881
|
-
SDKMethodHeader: () => SDKMethodHeader,
|
|
882
|
-
SDKMethodInfo: () => SDKMethodInfo,
|
|
883
|
-
SDKMethodSummary: () => SDKMethodSummary,
|
|
884
|
-
SDKModel: () => SDKModel,
|
|
885
|
-
SDKOverview: () => SDKOverview,
|
|
886
|
-
SDKReference: () => SDKReference,
|
|
887
|
-
SDKRequestTitle: () => SDKRequestTitle,
|
|
888
|
-
SDKResource: () => SDKResource,
|
|
889
|
-
SDKResourceHeader: () => SDKResourceHeader,
|
|
890
|
-
SDKRoot: () => SDKRoot,
|
|
891
|
-
SDKSnippetLanguages: () => SDKSnippetLanguages,
|
|
892
|
-
Sidebar: () => Sidebar,
|
|
893
|
-
SidebarExpander: () => SidebarExpander,
|
|
894
|
-
SidebarMethod: () => SidebarMethod,
|
|
895
|
-
SidebarResource: () => SidebarResource,
|
|
896
|
-
Snippet: () => Snippet,
|
|
897
|
-
SnippetCode: () => SnippetCode,
|
|
898
|
-
SnippetContainer: () => SnippetContainer,
|
|
899
|
-
SnippetRequestContainer: () => SnippetRequestContainer,
|
|
900
|
-
SnippetResponse: () => SnippetResponse,
|
|
901
|
-
ToggleButton: () => ToggleButton,
|
|
902
|
-
Tooltip: () => Tooltip,
|
|
903
|
-
VirtualExpander: () => VirtualExpander,
|
|
904
|
-
usePropertyModel: () => usePropertyModel,
|
|
905
|
-
useReferenceNesting: () => useReferenceNesting
|
|
906
|
-
});
|
|
907
|
-
|
|
908
|
-
//#endregion
|
|
909
|
-
//#region src/languages/typescript.tsx
|
|
910
|
-
var typescript_exports = /* @__PURE__ */ __export({
|
|
911
|
-
Declaration: () => Declaration$5,
|
|
912
|
-
MethodSignature: () => MethodSignature$5,
|
|
913
|
-
Property: () => Property$5,
|
|
914
|
-
Type: () => Type$5,
|
|
915
|
-
TypeName: () => TypeName$5
|
|
916
|
-
});
|
|
917
|
-
const ComplexTypes$3 = {
|
|
918
|
-
TSTypeObject: "object",
|
|
919
|
-
TSTypeUnion: "union",
|
|
920
|
-
TSTypeInterface: "interface",
|
|
921
|
-
TSTypeIntersection: "intersection",
|
|
922
|
-
TSTypeArray: "array"
|
|
923
|
-
};
|
|
924
|
-
const constStyle$3 = {
|
|
925
|
-
string: style_default.LiteralString,
|
|
926
|
-
number: style_default.LiteralNumeric,
|
|
927
|
-
boolean: style_default.LiteralBoolean
|
|
928
|
-
};
|
|
929
|
-
function Identifier$1({ name, optional }) {
|
|
930
|
-
return <>
|
|
931
|
-
<span className={style_default.TextIdentifier}>
|
|
932
|
-
{/^[_a-zA-Z][_a-zA-Z0-9]*$/.test(name) ? name : JSON.stringify(name)}
|
|
933
|
-
</span>
|
|
934
|
-
{optional && <span className={style_default.TextPunctuation}>?</span>}
|
|
935
|
-
</>;
|
|
936
|
-
}
|
|
937
|
-
function TypeParams({ params }) {
|
|
938
|
-
const Lang = useLanguageComponents();
|
|
939
|
-
const { Join: Join$1 } = useComponents();
|
|
940
|
-
if (!params?.length) return null;
|
|
941
|
-
const typeParams = params?.map((param, key) => param.constraint ? <React$1.Fragment key={key}>
|
|
942
|
-
<span className={style_default.TypeReference}>{param.name}</span>
|
|
943
|
-
<span className={style_default.TextKeyword}>extends </span>
|
|
944
|
-
<Lang.Type type={param.constraint} />
|
|
945
|
-
</React$1.Fragment> : <React$1.Fragment key={key}>param.name</React$1.Fragment>);
|
|
946
|
-
return <>
|
|
947
|
-
<span className={style_default.TypeBracket}>{"<"}</span>
|
|
948
|
-
<Join$1 items={typeParams} limit={3}>
|
|
949
|
-
<span className={style_default.TextOperator}>, </span>
|
|
950
|
-
</Join$1>
|
|
951
|
-
<span className={style_default.TypeBracket}>{">"}</span>
|
|
952
|
-
</>;
|
|
953
|
-
}
|
|
954
|
-
function TypePreview$2({ path }) {
|
|
955
|
-
const spec = useSpec();
|
|
956
|
-
const language = useLanguage();
|
|
957
|
-
const decl = useDeclaration(path, false);
|
|
958
|
-
const { Join: Join$1 } = useComponents();
|
|
959
|
-
if (!(decl && "children" in decl && decl.children && decl.children.length > 0) || decl && "type" in decl && "kind" in decl["type"] && decl["type"]["kind"] === "TSTypeUnion") return;
|
|
960
|
-
const items = decl.children.map((prop, key) => {
|
|
961
|
-
const p = spec?.decls?.[language]?.[prop];
|
|
962
|
-
return <span key={key} className={style_default.TypePropertyName}>
|
|
963
|
-
<span className={style_default.TextIdentifier}>{p && "key" in p ? p["key"] : null}</span>
|
|
964
|
-
</span>;
|
|
965
|
-
});
|
|
966
|
-
return <span className={style_default.TypePreview} data-stldocs-type-preview="properties">
|
|
967
|
-
<span className={style_default.TypeBrace}>{" {"}</span>
|
|
968
|
-
<span className={style_default.TypePreviewContent}>
|
|
969
|
-
{" "}
|
|
970
|
-
<Join$1 items={items} limit={3}>
|
|
971
|
-
<span className={style_default.TextOperator}>, </span>
|
|
972
|
-
</Join$1>{" "}
|
|
973
|
-
</span>
|
|
974
|
-
<span className={style_default.TypeBrace}>{"} "}</span>
|
|
975
|
-
</span>;
|
|
976
|
-
}
|
|
977
|
-
function TypeName$5({ type }) {
|
|
978
|
-
const Lang = useLanguageComponents();
|
|
979
|
-
return ComplexTypes$3[type.kind] ?? <Lang.Type type={type} />;
|
|
980
|
-
}
|
|
981
|
-
function Type$5({ type }) {
|
|
982
|
-
const Lang = useLanguageComponents();
|
|
983
|
-
const { Join: Join$1, SDKReference: SDKReference$1 } = useComponents();
|
|
984
|
-
switch (type.kind) {
|
|
985
|
-
case "TSTypeUnknown":
|
|
986
|
-
case "TSTypeUndefined":
|
|
987
|
-
case "TSTypeNever":
|
|
988
|
-
case "TSTypeVoid":
|
|
989
|
-
case "TSTypeNull":
|
|
990
|
-
case "TSTypeAny":
|
|
991
|
-
case "TSTypeBoolean":
|
|
992
|
-
case "TSTypeNumber": return <span className={style_default.Type}>
|
|
993
|
-
<span className={style_default.TypeKeyword}>{type.kind.slice(6).toLowerCase()}</span>
|
|
994
|
-
</span>;
|
|
995
|
-
case "TSTypeString": return <span className={style_default.Type}>
|
|
996
|
-
<span className={style_default.TypeString}>string</span>
|
|
997
|
-
</span>;
|
|
998
|
-
case "TSTypeLiteral": return <span className={style_default.Type}>
|
|
999
|
-
<span className={constStyle$3[typeof type.literal]}>{JSON.stringify(type.literal)}</span>
|
|
1000
|
-
</span>;
|
|
1001
|
-
case "TSTypeArray": return <span className={style_default.Type}>
|
|
1002
|
-
<span className={style_default.TypeArray}>{"Array<"}</span>
|
|
1003
|
-
<Lang.Type type={type.elementType} />
|
|
1004
|
-
<span className={style_default.TypeArray}>{">"}</span>
|
|
1005
|
-
</span>;
|
|
1006
|
-
case "TSTypeReference": {
|
|
1007
|
-
const name = type.ident.split(".").at(-1);
|
|
1008
|
-
const params = type.typeParameters?.map((param, key) => <Lang.Type key={key} type={param} />);
|
|
1009
|
-
return <span className={style_default.Type}>
|
|
1010
|
-
<SDKReference$1 stainlessPath={type.$ref}>{name}</SDKReference$1>
|
|
1011
|
-
{params && params.length > 0 && <>
|
|
1012
|
-
<span className={style_default.TypeBracket}>{"<"}</span>
|
|
1013
|
-
<Join$1 items={params} limit={3}>
|
|
1014
|
-
<span className={style_default.TextOperator}>, </span>
|
|
1015
|
-
</Join$1>
|
|
1016
|
-
<span className={style_default.TypeBracket}>{">"}</span>
|
|
1017
|
-
</>}
|
|
1018
|
-
<TypePreview$2 path={type.$ref} />
|
|
1019
|
-
</span>;
|
|
1020
|
-
}
|
|
1021
|
-
case "TSTypeIntersection":
|
|
1022
|
-
case "TSTypeUnion": {
|
|
1023
|
-
const items = type.types.map((t, key) => <Lang.Type key={key} type={t} />);
|
|
1024
|
-
const delimiter = type.kind === "TSTypeUnion" ? "|" : "&";
|
|
1025
|
-
return <span className={style_default.Type}>
|
|
1026
|
-
<span className={style_default.TypePreview} data-stldocs-type-preview="union">
|
|
1027
|
-
<span className={style_default.TypePreviewContent}>
|
|
1028
|
-
<Join$1 items={items} limit={3}>
|
|
1029
|
-
<span className={style_default.TextOperator}> {delimiter} </span>
|
|
1030
|
-
</Join$1>
|
|
1031
|
-
</span>
|
|
1032
|
-
</span>
|
|
1033
|
-
</span>;
|
|
1034
|
-
}
|
|
1035
|
-
case "TSTypeObject":
|
|
1036
|
-
case "TSTypeInterface": {
|
|
1037
|
-
const extend = type.kind === "TSTypeObject" ? null : type.extends?.map((ref, key) => <Lang.Type key={key} type={ref} />);
|
|
1038
|
-
const items = type.members.map((prop, key) => <React$1.Fragment key={key}>
|
|
1039
|
-
<span className={style_default.TypePropertyName}>
|
|
1040
|
-
<Identifier$1 name={prop.ident} optional={prop.optional} />
|
|
1041
|
-
</span>
|
|
1042
|
-
<span className={style_default.TextPunctuation}>: </span>
|
|
1043
|
-
<Lang.Type type={prop.type} />
|
|
1044
|
-
</React$1.Fragment>);
|
|
1045
|
-
return <span className={style_default.Type}>
|
|
1046
|
-
{extend?.length && <>
|
|
1047
|
-
<span className={style_default.TypeKeyword}> extends </span>
|
|
1048
|
-
<Join$1 items={extend} limit={3}>
|
|
1049
|
-
<span className={style_default.TextOperator}>, </span>
|
|
1050
|
-
</Join$1>
|
|
1051
|
-
</>}
|
|
1052
|
-
<span className={style_default.TypePreview} data-stldocs-type-preview="properties">
|
|
1053
|
-
<span className={style_default.TypeBrace}>{"{ "}</span>
|
|
1054
|
-
<span className={style_default.TypePreviewContent}>
|
|
1055
|
-
<Join$1 items={items} limit={3}>
|
|
1056
|
-
<span className={style_default.TextOperator}>, </span>
|
|
1057
|
-
</Join$1>
|
|
1058
|
-
</span>
|
|
1059
|
-
<span className={style_default.TypeBrace}>{"} "}</span>
|
|
1060
|
-
</span>
|
|
1061
|
-
</span>;
|
|
1062
|
-
}
|
|
1063
|
-
}
|
|
1064
|
-
}
|
|
1065
|
-
function MethodSignature$5({ decl }) {
|
|
1066
|
-
const Lang = useLanguageComponents();
|
|
1067
|
-
const { Join: Join$1, Tooltip: Tooltip$1 } = useComponents();
|
|
1068
|
-
const params = decl.signature.parameters.map((param, i) => <React$1.Fragment key={i}>
|
|
1069
|
-
<Tooltip$1 content={<Lang.Type type={param.type} />}>
|
|
1070
|
-
<span className={style_default.TextIdentifier}>{param.ident}</span>
|
|
1071
|
-
</Tooltip$1>
|
|
1072
|
-
{param.optional && <span className={style_default.TextPunctuation}>?</span>}
|
|
1073
|
-
</React$1.Fragment>);
|
|
1074
|
-
return <div className={style_default.MethodSignature}>
|
|
1075
|
-
<span className={style_default.SignatureTitle}>
|
|
1076
|
-
{decl.signature.async && <span className={style_default.TextKeyword}>async </span>}
|
|
1077
|
-
<span className={style_default.SignatureQualified}>
|
|
1078
|
-
<span className={style_default.TextIdentifier}>{decl.qualified?.slice(0, -decl.ident.length)}</span>
|
|
1079
|
-
</span>
|
|
1080
|
-
<span className={style_default.SignatureName}>
|
|
1081
|
-
<span className={style_default.TextIdentifier}>{decl.ident}</span>
|
|
1082
|
-
</span>
|
|
1083
|
-
<span className={style_default.MethodSignature}>
|
|
1084
|
-
{decl.signature.typeParameters && <TypeParams params={decl.signature.typeParameters} />}
|
|
1085
|
-
<span className={style_default.SignatureParen}>{"("}</span>
|
|
1086
|
-
|
|
1087
|
-
<span className={style_default.SignatureParams}>
|
|
1088
|
-
<Join$1 items={params}>
|
|
1089
|
-
<span className={style_default.TextOperator}>{", "}</span>
|
|
1090
|
-
</Join$1>
|
|
1091
|
-
</span>
|
|
1092
|
-
|
|
1093
|
-
<span className={style_default.SignatureParen}>{")"}</span>
|
|
1094
|
-
{decl.signature.returns && <>
|
|
1095
|
-
<span className={style_default.TextPunctuation}>: </span>
|
|
1096
|
-
<Lang.Type type={decl.signature.returns} />
|
|
1097
|
-
</>}
|
|
1098
|
-
</span>
|
|
1099
|
-
</span>
|
|
1100
|
-
</div>;
|
|
1101
|
-
}
|
|
1102
|
-
function Property$5({ decl, children }) {
|
|
1103
|
-
const Lang = useLanguageComponents();
|
|
1104
|
-
if (!decl) return;
|
|
1105
|
-
switch (decl.kind) {
|
|
1106
|
-
case "TSDeclProperty": return children({
|
|
1107
|
-
name: decl.key,
|
|
1108
|
-
typeName: <Lang.TypeName type={decl.type} />,
|
|
1109
|
-
type: decl.type.kind in ComplexTypes$3 && <Lang.Type type={decl.type} />
|
|
1110
|
-
});
|
|
1111
|
-
case "TSDeclTypeAlias": return children({
|
|
1112
|
-
name: decl.ident,
|
|
1113
|
-
typeName: "alias",
|
|
1114
|
-
type: <Lang.Type type={decl.type} />
|
|
1115
|
-
});
|
|
1116
|
-
case "TSDeclReference": return children({ type: <Lang.Type type={decl.type} /> });
|
|
1117
|
-
case "TSDeclInterface": return children({ type: <>
|
|
1118
|
-
<span className={style_default.TextIdentifier}>{decl.ident}</span>
|
|
1119
|
-
{decl.typeParameters && <TypeParams params={decl.typeParameters} />}
|
|
1120
|
-
{decl.extends?.flatMap((t, key) => <React$1.Fragment key={`extends:${key}`}>
|
|
1121
|
-
<span className={style_default.TextKeyword}> extends </span>
|
|
1122
|
-
<Lang.Type type={t} />
|
|
1123
|
-
</React$1.Fragment>)}
|
|
1124
|
-
</> });
|
|
1125
|
-
}
|
|
1126
|
-
}
|
|
1127
|
-
function Declaration$5({ decl }) {
|
|
1128
|
-
const Lang = useLanguageComponents();
|
|
1129
|
-
if (!decl) return;
|
|
1130
|
-
switch (decl.kind) {
|
|
1131
|
-
case "TSDeclProperty": return <>
|
|
1132
|
-
{decl.declare && <span className={style_default.TextKeyword}>declare </span>}
|
|
1133
|
-
<span className={style_default.TypePropertyName}>
|
|
1134
|
-
<Identifier$1 name={decl.key} optional={decl.optional} />
|
|
1135
|
-
</span>
|
|
1136
|
-
<span className={style_default.TextPunctuation}>: </span>
|
|
1137
|
-
<Lang.Type type={decl.type} />
|
|
1138
|
-
</>;
|
|
1139
|
-
case "TSDeclFunction": return <Lang.MethodSignature decl={decl} />;
|
|
1140
|
-
case "TSDeclTypeAlias": return <>
|
|
1141
|
-
<Identifier$1 name={decl.ident} />
|
|
1142
|
-
<TypeParams params={decl.typeParameters} />
|
|
1143
|
-
<span className={style_default.TextOperator}> = </span>
|
|
1144
|
-
<Lang.Type type={decl.type} />
|
|
1145
|
-
</>;
|
|
1146
|
-
case "TSDeclReference": return <Lang.Type type={decl.type} />;
|
|
1147
|
-
case "TSDeclInterface": return <>
|
|
1148
|
-
<span className={style_default.TextIdentifier}>{decl.ident}</span>
|
|
1149
|
-
<TypeParams params={decl.typeParameters} />
|
|
1150
|
-
{decl.extends?.map((t, index) => <React$1.Fragment key={index}>
|
|
1151
|
-
<span className={style_default.TextKeyword}> extends </span>
|
|
1152
|
-
<Lang.Type type={t} />
|
|
1153
|
-
</React$1.Fragment>)}
|
|
1154
|
-
<TypePreview$2 path={decl.stainlessPath} />
|
|
1155
|
-
</>;
|
|
1156
|
-
case "TSDeclClass": return <>
|
|
1157
|
-
<span className={style_default.TextKeyword}>class </span>
|
|
1158
|
-
<span className={style_default.TextIdentifier}>{decl.ident}</span>
|
|
1159
|
-
<TypeParams params={decl.typeParameters} />
|
|
1160
|
-
{decl.superClass ? <>
|
|
1161
|
-
<span className={style_default.TextKeyword}> extends </span>
|
|
1162
|
-
<Lang.Type type={decl.superClass} />
|
|
1163
|
-
</> : null}
|
|
1164
|
-
{decl.implements?.map((t, index) => <React$1.Fragment key={index}>
|
|
1165
|
-
<span className={style_default.TextKeyword}> implements </span>
|
|
1166
|
-
<Lang.Type type={t} />
|
|
1167
|
-
</React$1.Fragment>)}
|
|
1168
|
-
</>;
|
|
1169
|
-
}
|
|
1170
|
-
}
|
|
1171
|
-
|
|
1172
|
-
//#endregion
|
|
1173
|
-
//#region src/languages/java.tsx
|
|
1174
|
-
var java_exports = /* @__PURE__ */ __export({
|
|
1175
|
-
Declaration: () => Declaration$4,
|
|
1176
|
-
MethodSignature: () => MethodSignature$4,
|
|
1177
|
-
Property: () => Property$4,
|
|
1178
|
-
Type: () => Type$4,
|
|
1179
|
-
TypeName: () => TypeName$4
|
|
1180
|
-
});
|
|
1181
|
-
function showFullType$1(type) {
|
|
1182
|
-
return type.kind === "JavaTypeReference" && (type.typeName === "List" || type.typeParameters && type.typeParameters.length > 0);
|
|
1183
|
-
}
|
|
1184
|
-
const constStyle$2 = {
|
|
1185
|
-
string: style_default.LiteralString,
|
|
1186
|
-
number: style_default.LiteralNumeric,
|
|
1187
|
-
boolean: style_default.LiteralBoolean
|
|
1188
|
-
};
|
|
1189
|
-
function TypeName$4({ type, optional }) {
|
|
1190
|
-
const Lang = useLanguageComponents();
|
|
1191
|
-
if (type.kind === "JavaTypeReference" && type.typeName === "List") return "List";
|
|
1192
|
-
return <Lang.Type type={type} optional={optional} />;
|
|
1193
|
-
}
|
|
1194
|
-
function Type$4({ type, optional }) {
|
|
1195
|
-
const language = useLanguage();
|
|
1196
|
-
const Lang = useLanguageComponents();
|
|
1197
|
-
const { Join: Join$1, SDKReference: SDKReference$1 } = useComponents();
|
|
1198
|
-
switch (type.kind) {
|
|
1199
|
-
case "JavaTypeReference": {
|
|
1200
|
-
const name = type.typeName.split(".").at(-1);
|
|
1201
|
-
const params = type.typeParameters?.map((param, key) => <Lang.Type key={key} type={param} optional={optional} />);
|
|
1202
|
-
return <span className={style_default.Type}>
|
|
1203
|
-
<SDKReference$1 stainlessPath={type.$ref}>{name}</SDKReference$1>
|
|
1204
|
-
{params && params.length > 0 ? <>
|
|
1205
|
-
<span className={style_default.TypeBracket}>{"<"}</span>
|
|
1206
|
-
<Join$1 items={params} limit={3}>
|
|
1207
|
-
<span className={style_default.TextOperator}>, </span>
|
|
1208
|
-
</Join$1>
|
|
1209
|
-
<span className={style_default.TypeBracket}>{">"}</span>
|
|
1210
|
-
</> : null}
|
|
1211
|
-
</span>;
|
|
1212
|
-
}
|
|
1213
|
-
case "JavaTypeClass":
|
|
1214
|
-
case "JavaTypeUnion": return <span className={style_default.Type}>
|
|
1215
|
-
<span className={style_default.TypeKeyword}>class</span>
|
|
1216
|
-
</span>;
|
|
1217
|
-
case "JavaTypeEnum": return <span className={style_default.Type}>
|
|
1218
|
-
<span className={style_default.TypeKeyword}>{language === "kotlin" ? "enum class" : "enum"}</span>
|
|
1219
|
-
</span>;
|
|
1220
|
-
case "JavaTypeVoid": return <span className={style_default.Type}>
|
|
1221
|
-
<span className={style_default.TypeKeyword}>{language === "kotlin" ? "Nothing?" : "Void"}</span>
|
|
1222
|
-
</span>;
|
|
1223
|
-
case "JavaTypeBoolean": return <span className={style_default.Type}>
|
|
1224
|
-
<span className={style_default.TypeKeyword}>
|
|
1225
|
-
{language === "kotlin" || optional ? "Boolean" : "boolean"}
|
|
1226
|
-
</span>
|
|
1227
|
-
</span>;
|
|
1228
|
-
case "JavaTypeDouble": return <span className={style_default.Type}>
|
|
1229
|
-
<span className={style_default.TypeKeyword}>{language === "kotlin" || optional ? "Double" : "double"}</span>
|
|
1230
|
-
</span>;
|
|
1231
|
-
case "JavaTypeLong": return <span className={style_default.Type}>
|
|
1232
|
-
<span className={style_default.TypeKeyword}>{language === "kotlin" || optional ? "Long" : "long"}</span>
|
|
1233
|
-
</span>;
|
|
1234
|
-
case "JavaTypeString": return <span className={style_default.Type}>
|
|
1235
|
-
<span className={style_default.TypeString}>String</span>
|
|
1236
|
-
</span>;
|
|
1237
|
-
case "JavaTypeConstant": return <span className={style_default.Type}>
|
|
1238
|
-
<span className={style_default.TypeKeyword}>JsonValue</span>;
|
|
1239
|
-
</span>;
|
|
1240
|
-
}
|
|
1241
|
-
}
|
|
1242
|
-
function MethodSignature$4({ decl }) {
|
|
1243
|
-
const Lang = useLanguageComponents();
|
|
1244
|
-
const language = useLanguage();
|
|
1245
|
-
const { Join: Join$1, Tooltip: Tooltip$1 } = useComponents();
|
|
1246
|
-
const params = decl.parameters.map((param, i) => <React$1.Fragment key={i}>
|
|
1247
|
-
<Tooltip$1 content={<Lang.Type type={param.typeAnnotation} />}>
|
|
1248
|
-
<span className={style_default.TextIdentifier}>{param.ident}</span>
|
|
1249
|
-
{param.hasDefault && <>
|
|
1250
|
-
{" "}
|
|
1251
|
-
<span className={style_default.TextOperator}>=</span> <Lang.Type type={param.typeAnnotation} />
|
|
1252
|
-
<span className={style_default.TextOperator}>.</span>
|
|
1253
|
-
<span className={style_default.TextIdentifier}>none</span>
|
|
1254
|
-
<span className={style_default.TextOperator}>()</span>
|
|
1255
|
-
</>}
|
|
1256
|
-
</Tooltip$1>
|
|
1257
|
-
</React$1.Fragment>);
|
|
1258
|
-
return <div className={style_default.MethodSignature}>
|
|
1259
|
-
<span className={style_default.SignatureTitle}>
|
|
1260
|
-
{decl.returnType && language !== "kotlin" && <span className={style_default.SignatureReturns}>
|
|
1261
|
-
<Lang.Type type={decl.returnType} />{" "}
|
|
1262
|
-
</span>}
|
|
1263
|
-
{decl.qualified && <span className={style_default.SignatureQualified}>
|
|
1264
|
-
<span className={style_default.TextIdentifier}>{decl.qualified?.slice(0, -decl.ident.length)}</span>
|
|
1265
|
-
</span>}
|
|
1266
|
-
<span className={style_default.SignatureName}>
|
|
1267
|
-
<span className={style_default.TextIdentifier}>{decl.ident}</span>
|
|
1268
|
-
</span>
|
|
1269
|
-
<span className={style_default.MethodSignature}>
|
|
1270
|
-
<span className={style_default.SignatureParen}>{"("}</span>
|
|
1271
|
-
|
|
1272
|
-
<span className={style_default.SignatureParams}>
|
|
1273
|
-
<Join$1 items={params}>
|
|
1274
|
-
<span className={style_default.TextOperator}>{", "}</span>
|
|
1275
|
-
</Join$1>
|
|
1276
|
-
</span>
|
|
1277
|
-
|
|
1278
|
-
<span className={style_default.SignatureParen}>{")"} </span>
|
|
1279
|
-
{decl.returnType && language === "kotlin" && <>
|
|
1280
|
-
<span className={style_default.TextOperator}>:</span> <Lang.Type type={decl.returnType} />
|
|
1281
|
-
</>}
|
|
1282
|
-
</span>
|
|
1283
|
-
</span>
|
|
1284
|
-
</div>;
|
|
1285
|
-
}
|
|
1286
|
-
function Property$4({ decl, children }) {
|
|
1287
|
-
const Docs = useComponents();
|
|
1288
|
-
const Lang = useLanguageComponents();
|
|
1289
|
-
const language = useLanguage();
|
|
1290
|
-
if (!decl) return null;
|
|
1291
|
-
switch (decl.kind) {
|
|
1292
|
-
case "JavaDeclProperty": {
|
|
1293
|
-
const typeRaw = <Lang.Type type={decl.type} optional={decl.optional} />;
|
|
1294
|
-
const typeWrapped = decl.optional ? <>
|
|
1295
|
-
<span className={style_default.TypeKeyword}>Optional</span>
|
|
1296
|
-
<span className={style_default.TypeBracket}>{"<"}</span>
|
|
1297
|
-
{typeRaw}
|
|
1298
|
-
<span className={style_default.TypeBracket}>{">"}</span>
|
|
1299
|
-
</> : typeRaw;
|
|
1300
|
-
const badges = <>
|
|
1301
|
-
{decl.type.kind === "JavaTypeConstant" && <Docs.Tooltip content={<span className={style_default.TextIdentifier}>{decl.type.value}</span>}>
|
|
1302
|
-
<span className={style_default.TextIdentifier}>constant</span>
|
|
1303
|
-
</Docs.Tooltip>}
|
|
1304
|
-
</>;
|
|
1305
|
-
return children({
|
|
1306
|
-
name: decl.ident,
|
|
1307
|
-
typeName: <Lang.TypeName type={decl.type} optional={decl.optional} />,
|
|
1308
|
-
type: showFullType$1(decl.type) && typeWrapped,
|
|
1309
|
-
badges
|
|
1310
|
-
});
|
|
1311
|
-
}
|
|
1312
|
-
case "JavaDeclConst": return children({
|
|
1313
|
-
name: decl.ident,
|
|
1314
|
-
typeName: "const",
|
|
1315
|
-
type: <span className={constStyle$2[typeof decl.value]}>{JSON.stringify(decl.value)}</span>
|
|
1316
|
-
});
|
|
1317
|
-
case "JavaDeclType": {
|
|
1318
|
-
const typeName$1 = decl.type.kind === "JavaTypeUnion" ? "union" : decl.type.kind === "JavaTypeEnum" ? language === "kotlin" ? "enum class" : "enum" : "class";
|
|
1319
|
-
return children({
|
|
1320
|
-
name: decl.ident,
|
|
1321
|
-
typeName: typeName$1
|
|
1322
|
-
});
|
|
1323
|
-
}
|
|
1324
|
-
case "JavaDeclReference": return children({ type: <Lang.Type type={decl.type} /> });
|
|
1325
|
-
}
|
|
1326
|
-
}
|
|
1327
|
-
function Declaration$4({ decl }) {
|
|
1328
|
-
const Docs = useComponents();
|
|
1329
|
-
const Lang = useLanguageComponents();
|
|
1330
|
-
const language = useLanguage();
|
|
1331
|
-
if (!decl) return null;
|
|
1332
|
-
switch (decl.kind) {
|
|
1333
|
-
case "JavaDeclConst": return <>
|
|
1334
|
-
<span className={style_default.TextIdentifier}>{decl.ident}</span>
|
|
1335
|
-
<span className={style_default.TextPunctuation}>{"("}</span>
|
|
1336
|
-
{JSON.stringify(decl.value)}
|
|
1337
|
-
<span className={style_default.TextPunctuation}>{")"}</span>
|
|
1338
|
-
</>;
|
|
1339
|
-
case "JavaDeclType": {
|
|
1340
|
-
const keyword = decl.type.kind === "JavaTypeEnum" ? language === "kotlin" ? "enum class" : "enum" : "class";
|
|
1341
|
-
return <>
|
|
1342
|
-
<span className={style_default.TextKeyword}>{keyword}</span>{" "}
|
|
1343
|
-
<span className={style_default.TextIdentifier}>{decl.ident}</span>
|
|
1344
|
-
<span className={style_default.TextPunctuation}>:</span>
|
|
1345
|
-
{decl.type.kind === "JavaTypeUnion" && <>
|
|
1346
|
-
{" "}
|
|
1347
|
-
<Docs.Tooltip content="A class that can be one of several variants.">
|
|
1348
|
-
<Docs.Badge id="java-union">union</Docs.Badge>
|
|
1349
|
-
</Docs.Tooltip>{" "}
|
|
1350
|
-
</>}
|
|
1351
|
-
</>;
|
|
1352
|
-
}
|
|
1353
|
-
case "JavaDeclProperty": {
|
|
1354
|
-
const inlineType = <Lang.Type type={decl.type} optional={decl.optional} />;
|
|
1355
|
-
const ident = <span className={style_default.TypePropertyName}>
|
|
1356
|
-
<span className={style_default.TextIdentifier}>{decl.ident}</span>
|
|
1357
|
-
</span>;
|
|
1358
|
-
const suffix = decl.type.kind === "JavaTypeConstant" ? <>
|
|
1359
|
-
{" "}
|
|
1360
|
-
<Docs.Tooltip content={<span className={style_default.TextIdentifier}>{decl.type.value}</span>}>
|
|
1361
|
-
<Docs.Badge id="java-constant">constant</Docs.Badge>
|
|
1362
|
-
</Docs.Tooltip>
|
|
1363
|
-
</> : null;
|
|
1364
|
-
if (language === "kotlin") return <>
|
|
1365
|
-
{ident}
|
|
1366
|
-
<span className={style_default.TextPunctuation}>:</span>{" "}
|
|
1367
|
-
{decl.optional ? <>
|
|
1368
|
-
<span className={style_default.TypeReference}>Optional</span>
|
|
1369
|
-
<span className={style_default.TypeBracket}>{"<"}</span>
|
|
1370
|
-
{inlineType}
|
|
1371
|
-
<span className={style_default.TypeBracket}>{">"}</span>
|
|
1372
|
-
</> : inlineType}
|
|
1373
|
-
{suffix}
|
|
1374
|
-
</>;
|
|
1375
|
-
return <>
|
|
1376
|
-
{decl.optional ? <>
|
|
1377
|
-
<span className={style_default.TypeReference}>Optional</span>
|
|
1378
|
-
<span className={style_default.TypeBracket}>{"<"}</span>
|
|
1379
|
-
{inlineType}
|
|
1380
|
-
<span className={style_default.TypeBracket}>{">"}</span>
|
|
1381
|
-
</> : inlineType}{" "}
|
|
1382
|
-
{ident}
|
|
1383
|
-
{suffix}
|
|
1384
|
-
</>;
|
|
1385
|
-
}
|
|
1386
|
-
case "JavaDeclReference": return <Lang.Type type={decl.type} />;
|
|
1387
|
-
}
|
|
1388
|
-
}
|
|
1389
|
-
|
|
1390
|
-
//#endregion
|
|
1391
|
-
//#region src/languages/go.tsx
|
|
1392
|
-
var go_exports = /* @__PURE__ */ __export({
|
|
1393
|
-
Declaration: () => Declaration$3,
|
|
1394
|
-
MethodSignature: () => MethodSignature$3,
|
|
1395
|
-
Property: () => Property$3,
|
|
1396
|
-
Type: () => Type$3,
|
|
1397
|
-
TypeName: () => TypeName$3
|
|
1398
|
-
});
|
|
1399
|
-
const ComplexTypes$2 = {
|
|
1400
|
-
GoTypeMap: "map",
|
|
1401
|
-
GoTypeArray: "array"
|
|
1402
|
-
};
|
|
1403
|
-
const Keywords$1 = {
|
|
1404
|
-
GoTypeAny: "any",
|
|
1405
|
-
GoTypeUnknown: "unknown",
|
|
1406
|
-
GoTypeInt: "int64",
|
|
1407
|
-
GoTypeFloat: "float64",
|
|
1408
|
-
GoTypeBool: "bool",
|
|
1409
|
-
GoTypeError: "error"
|
|
1410
|
-
};
|
|
1411
|
-
function isField(type) {
|
|
1412
|
-
return type.kind === "GoTypeReference" && type.typeName === "param.Field";
|
|
1413
|
-
}
|
|
1414
|
-
function TypeName$3({ type }) {
|
|
1415
|
-
const Lang = useLanguageComponents();
|
|
1416
|
-
return isField(type) ? "field" : ComplexTypes$2[type.kind] ?? <Lang.Type type={type} />;
|
|
1417
|
-
}
|
|
1418
|
-
function Type$3({ type }) {
|
|
1419
|
-
const Lang = useLanguageComponents();
|
|
1420
|
-
const { Join: Join$1, SDKReference: SDKReference$1 } = useComponents();
|
|
1421
|
-
switch (type.kind) {
|
|
1422
|
-
case "GoTypeReference": {
|
|
1423
|
-
const params = type.typeParameters?.map((param, key) => <Lang.Type key={key} type={param} />);
|
|
1424
|
-
return <span className={style_default.Type}>
|
|
1425
|
-
{type.$ref ? <SDKReference$1 stainlessPath={type.$ref}>{type.typeName}</SDKReference$1> : type.typeName}
|
|
1426
|
-
{params && params.length > 0 ? <>
|
|
1427
|
-
<span className={style_default.TypeBracket}>{"["}</span>
|
|
1428
|
-
<Join$1 items={params} limit={3}>
|
|
1429
|
-
<span className={style_default.TextOperator}>, </span>
|
|
1430
|
-
</Join$1>
|
|
1431
|
-
<span className={style_default.TypeBracket}>{"]"}</span>
|
|
1432
|
-
</> : null}
|
|
1433
|
-
</span>;
|
|
1434
|
-
}
|
|
1435
|
-
case "GoTypeAny":
|
|
1436
|
-
case "GoTypeUnknown":
|
|
1437
|
-
case "GoTypeInt":
|
|
1438
|
-
case "GoTypeFloat":
|
|
1439
|
-
case "GoTypeBool":
|
|
1440
|
-
case "GoTypeError": return <span className={style_default.Type}>
|
|
1441
|
-
<span className={style_default.TypeKeyword}>{Keywords$1[type.kind]}</span>
|
|
1442
|
-
</span>;
|
|
1443
|
-
case "GoTypeString": return <span className={style_default.Type}>
|
|
1444
|
-
<span className={style_default.TypeString}>string</span>
|
|
1445
|
-
</span>;
|
|
1446
|
-
case "GoTypeArray": return <span className={style_default.Type}>
|
|
1447
|
-
<span className={style_default.TextOperator}>[]</span>
|
|
1448
|
-
<Lang.Type type={type.elementType} />
|
|
1449
|
-
</span>;
|
|
1450
|
-
case "GoTypeStruct": return <span className={style_default.Type}>
|
|
1451
|
-
<span className={style_default.TypeKeyword}>{"struct{…}"}</span>
|
|
1452
|
-
</span>;
|
|
1453
|
-
case "GoTypeInterface": return <span className={style_default.Type}>
|
|
1454
|
-
<span className={style_default.TypeKeyword}>{"interface{…}"}</span>
|
|
1455
|
-
</span>;
|
|
1456
|
-
case "GoTypeMap": return <span className={style_default.Type}>
|
|
1457
|
-
<span className={style_default.TypeKeyword}>map</span>
|
|
1458
|
-
<span className={style_default.TypeBracket}>[</span>
|
|
1459
|
-
<Lang.Type type={type.indexType} />
|
|
1460
|
-
<span className={style_default.TextPunctuation}>,</span> <Lang.Type type={type.itemType} />
|
|
1461
|
-
<span className={style_default.TypeBracket}>]</span>
|
|
1462
|
-
</span>;
|
|
1463
|
-
case "GoTypePointer": return <span className={style_default.Type}>
|
|
1464
|
-
<span className={style_default.TextOperator}>*</span>
|
|
1465
|
-
<Lang.Type type={type.inner} />
|
|
1466
|
-
</span>;
|
|
1467
|
-
}
|
|
1468
|
-
}
|
|
1469
|
-
function MethodSignature$3({ decl }) {
|
|
1470
|
-
const Lang = useLanguageComponents();
|
|
1471
|
-
const { Join: Join$1 } = useComponents();
|
|
1472
|
-
const params = decl.parameters.map((param, i) => <React$1.Fragment key={i}>
|
|
1473
|
-
<span className={style_default.TextIdentifier}>{param.ident}</span>
|
|
1474
|
-
{param.optional && <span className={style_default.TextPunctuation}>?</span>}
|
|
1475
|
-
</React$1.Fragment>);
|
|
1476
|
-
const returns = decl.returnType.map((t, key) => <Lang.Type key={key} type={t} />);
|
|
1477
|
-
return <div className={style_default.MethodSignature}>
|
|
1478
|
-
<span className={style_default.SignatureTitle}>
|
|
1479
|
-
{decl.async && <span className={style_default.TextKeyword}>async </span>}
|
|
1480
|
-
{decl.qualified && <span className={style_default.SignatureQualified}>
|
|
1481
|
-
<span className={style_default.TextIdentifier}>{decl.qualified?.slice(0, -decl.ident.length)}</span>
|
|
1482
|
-
</span>}
|
|
1483
|
-
{decl.kind === "GoDeclFunction" && <span className={style_default.SignatureName}>
|
|
1484
|
-
<span className={style_default.TextIdentifier}>{decl.ident}</span>
|
|
1485
|
-
</span>}
|
|
1486
|
-
<span className={style_default.MethodSignature}>
|
|
1487
|
-
<span className={style_default.SignatureParen}>{"("}</span>
|
|
1488
|
-
|
|
1489
|
-
<span className={style_default.SignatureParams}>
|
|
1490
|
-
<Join$1 items={params}>
|
|
1491
|
-
<span className={style_default.TextOperator}>{", "}</span>
|
|
1492
|
-
</Join$1>
|
|
1493
|
-
</span>
|
|
1494
|
-
|
|
1495
|
-
<span className={style_default.SignatureParen}>{")"} </span>
|
|
1496
|
-
{decl.returnType.length === 1 ? returns : <>
|
|
1497
|
-
<span className={style_default.SignatureParen}>{"("}</span>
|
|
1498
|
-
<Join$1 items={returns}>
|
|
1499
|
-
<span className={style_default.TextOperator}>, </span>
|
|
1500
|
-
</Join$1>
|
|
1501
|
-
<span className={style_default.SignatureParen}>{")"}</span>
|
|
1502
|
-
</>}
|
|
1503
|
-
</span>
|
|
1504
|
-
</span>
|
|
1505
|
-
</div>;
|
|
1506
|
-
}
|
|
1507
|
-
function Property$3({ decl, children }) {
|
|
1508
|
-
const Docs = useComponents();
|
|
1509
|
-
const Lang = useLanguageComponents();
|
|
1510
|
-
if (!decl) return null;
|
|
1511
|
-
switch (decl.kind) {
|
|
1512
|
-
case "GoDeclProperty": return children({
|
|
1513
|
-
name: decl.ident,
|
|
1514
|
-
typeName: <Lang.TypeName type={decl.type} />,
|
|
1515
|
-
badges: decl.optional && <Docs.Badge id="optional" />,
|
|
1516
|
-
type: (isField(decl.type) || decl.type.kind in ComplexTypes$2) && <Lang.Type type={decl.type} />
|
|
1517
|
-
});
|
|
1518
|
-
case "GoDeclConst": return children({
|
|
1519
|
-
name: decl.ident,
|
|
1520
|
-
typeName: "const",
|
|
1521
|
-
type: <Lang.Type type={decl.type} />
|
|
1522
|
-
});
|
|
1523
|
-
case "GoDeclReference": return children({ type: <Lang.Type type={decl.type} /> });
|
|
1524
|
-
case "GoDeclType":
|
|
1525
|
-
case "GoDeclTypeAlias": {
|
|
1526
|
-
const typeName$1 = decl.type.kind === "GoTypeStruct" ? "struct" : decl.type.kind === "GoTypeInterface" ? "interface" : decl.kind === "GoDeclTypeAlias" ? "alias" : "type";
|
|
1527
|
-
return children({
|
|
1528
|
-
name: decl.ident,
|
|
1529
|
-
typeName: typeName$1,
|
|
1530
|
-
type: ["GoTypeStruct", "GoTypeInterface"].includes(decl.type.kind) || <Lang.Type type={decl.type} />
|
|
1531
|
-
});
|
|
1532
|
-
}
|
|
1533
|
-
}
|
|
1534
|
-
}
|
|
1535
|
-
function Declaration$3({ decl }) {
|
|
1536
|
-
const Lang = useLanguageComponents();
|
|
1537
|
-
if (!decl) return;
|
|
1538
|
-
switch (decl.kind) {
|
|
1539
|
-
case "GoDeclType": return <>
|
|
1540
|
-
<span className={style_default.TextKeyword}>type </span>
|
|
1541
|
-
<span className={style_default.TextIdentifier}>{decl.ident} </span>
|
|
1542
|
-
<Lang.Type type={decl.type} />
|
|
1543
|
-
</>;
|
|
1544
|
-
case "GoDeclTypeAlias": return <>
|
|
1545
|
-
<span className={style_default.TextKeyword}>type </span>
|
|
1546
|
-
<span className={style_default.TextIdentifier}>{decl.ident} </span>
|
|
1547
|
-
<span className={style_default.TextOperator}>= </span>
|
|
1548
|
-
<Lang.Type type={decl.type} />
|
|
1549
|
-
</>;
|
|
1550
|
-
case "GoDeclProperty": return <>
|
|
1551
|
-
<span className={style_default.TypePropertyName}>
|
|
1552
|
-
<span className={style_default.TextIdentifier}>{decl.ident} </span>
|
|
1553
|
-
</span>
|
|
1554
|
-
<Lang.Type type={decl.type} />
|
|
1555
|
-
</>;
|
|
1556
|
-
case "GoDeclReference": return <Lang.Type type={decl.type} />;
|
|
1557
|
-
case "GoDeclConst": return <>
|
|
1558
|
-
<span className={style_default.TextKeyword}>const </span>
|
|
1559
|
-
<span className={style_default.TextIdentifier}>{decl.ident} </span>
|
|
1560
|
-
<Lang.Type type={decl.type} />
|
|
1561
|
-
<span className={style_default.TextOperator}> = </span>
|
|
1562
|
-
{JSON.stringify(decl.value)}
|
|
1563
|
-
</>;
|
|
1564
|
-
}
|
|
1565
|
-
}
|
|
1566
|
-
|
|
1567
|
-
//#endregion
|
|
1568
|
-
//#region src/languages/python.tsx
|
|
1569
|
-
var python_exports = /* @__PURE__ */ __export({
|
|
1570
|
-
Declaration: () => Declaration$2,
|
|
1571
|
-
MethodSignature: () => MethodSignature$2,
|
|
1572
|
-
Property: () => Property$2,
|
|
1573
|
-
Type: () => Type$2,
|
|
1574
|
-
TypeName: () => TypeName$2
|
|
1575
|
-
});
|
|
1576
|
-
const constStyle$1 = {
|
|
1577
|
-
string: style_default.LiteralString,
|
|
1578
|
-
number: style_default.LiteralNumeric,
|
|
1579
|
-
boolean: style_default.LiteralBoolean
|
|
1580
|
-
};
|
|
1581
|
-
function showFullType(type) {
|
|
1582
|
-
if (type.kind !== "PythonTypeReference") return false;
|
|
1583
|
-
return type.typeName === "Optional" ? showFullType(type.typeParameters[0]) : type.typeParameters.length > 0;
|
|
1584
|
-
}
|
|
1585
|
-
function TypeName$2({ type }) {
|
|
1586
|
-
const Lang = useLanguageComponents();
|
|
1587
|
-
if (type.kind === "PythonTypeReference") switch (type.typeName) {
|
|
1588
|
-
case "Optional": return <Lang.TypeName type={type.typeParameters[0]} />;
|
|
1589
|
-
case "List":
|
|
1590
|
-
case "Iterable":
|
|
1591
|
-
case "Literal":
|
|
1592
|
-
case "Union": return type.typeName.toLowerCase();
|
|
1593
|
-
}
|
|
1594
|
-
return <Lang.Type type={type} />;
|
|
1595
|
-
}
|
|
1596
|
-
function Type$2({ type }) {
|
|
1597
|
-
const Lang = useLanguageComponents();
|
|
1598
|
-
const { Join: Join$1, SDKReference: SDKReference$1 } = useComponents();
|
|
1599
|
-
switch (type.kind) {
|
|
1600
|
-
case "PythonTypeAny":
|
|
1601
|
-
case "PythonTypeUnknown":
|
|
1602
|
-
case "PythonTypeInt":
|
|
1603
|
-
case "PythonTypeFloat":
|
|
1604
|
-
case "PythonTypeBool": return <span className={style_default.Type}>
|
|
1605
|
-
<span className={style_default.TypeKeyword}>{type.kind.slice(10).toLowerCase()}</span>
|
|
1606
|
-
</span>;
|
|
1607
|
-
case "PythonTypeString": return <span className={style_default.Type}>
|
|
1608
|
-
<span className={style_default.TypeString}>str</span>
|
|
1609
|
-
</span>;
|
|
1610
|
-
case "PythonTypeLiteral": return <span className={style_default.Type}>
|
|
1611
|
-
<span className={constStyle$1[typeof type.literal.value]}>{JSON.stringify(type.literal.value)}</span>
|
|
1612
|
-
</span>;
|
|
1613
|
-
case "PythonTypeArray": return <span className={style_default.Type}>
|
|
1614
|
-
<span className={style_default.TypeArray}>{"Array<"}</span>
|
|
1615
|
-
<Lang.Type type={type.elementType} />
|
|
1616
|
-
<span className={style_default.TypeArray}>{">"}</span>
|
|
1617
|
-
</span>;
|
|
1618
|
-
case "PythonTypeClass": return <span className={style_default.Type}>
|
|
1619
|
-
<span className={style_default.TypeKeyword}>class</span>
|
|
1620
|
-
</span>;
|
|
1621
|
-
case "PythonTypeMap": return <span className={style_default.Type}>
|
|
1622
|
-
<span className={style_default.TypeKeyword}>Dict</span>
|
|
1623
|
-
</span>;
|
|
1624
|
-
case "PythonTypeReference": {
|
|
1625
|
-
const params = type.typeParameters?.map((param, key) => <Lang.Type key={key} type={param} />);
|
|
1626
|
-
return <span className={style_default.Type}>
|
|
1627
|
-
<span className={type.typeName === "Optional" ? style_default.TypeArray : ""}>
|
|
1628
|
-
<SDKReference$1 stainlessPath={type.$ref}>{type.typeName}</SDKReference$1>
|
|
1629
|
-
</span>
|
|
1630
|
-
{params && params.length > 0 && <>
|
|
1631
|
-
<span className={style_default.TypeBracket}>{"["}</span>
|
|
1632
|
-
<Join$1 items={params} limit={3}>
|
|
1633
|
-
<span className={style_default.TextOperator}>, </span>
|
|
1634
|
-
</Join$1>
|
|
1635
|
-
<span className={style_default.TypeBracket}>{"]"}</span>
|
|
1636
|
-
</>}
|
|
1637
|
-
</span>;
|
|
1638
|
-
}
|
|
1639
|
-
}
|
|
1640
|
-
}
|
|
1641
|
-
function MethodSignature$2({ decl }) {
|
|
1642
|
-
const Lang = useLanguageComponents();
|
|
1643
|
-
const { Join: Join$1, Tooltip: Tooltip$1 } = useComponents();
|
|
1644
|
-
const params = decl.parameters.map((param, i) => <React$1.Fragment key={i}>
|
|
1645
|
-
<Tooltip$1 content={<Lang.Type type={param.type} />}>
|
|
1646
|
-
<span className={style_default.TextIdentifier}>{param.ident}</span>
|
|
1647
|
-
</Tooltip$1>
|
|
1648
|
-
</React$1.Fragment>);
|
|
1649
|
-
return <div className={style_default.MethodSignature}>
|
|
1650
|
-
<span className={style_default.SignatureTitle}>
|
|
1651
|
-
{decl.async && <span className={style_default.TextKeyword}>async </span>}
|
|
1652
|
-
{decl.qualified && <span className={style_default.SignatureQualified}>
|
|
1653
|
-
<span className={style_default.TextIdentifier}>{decl.qualified?.slice(0, -decl.ident.length)}</span>
|
|
1654
|
-
</span>}
|
|
1655
|
-
<span className={style_default.SignatureName}>
|
|
1656
|
-
<span className={style_default.TextIdentifier}>{decl.ident}</span>
|
|
1657
|
-
</span>
|
|
1658
|
-
<span className={style_default.MethodSignature}>
|
|
1659
|
-
<span className={style_default.SignatureParen}>{"("}</span>
|
|
1660
|
-
|
|
1661
|
-
<span className={style_default.SignatureParams}>
|
|
1662
|
-
<Join$1 items={params}>
|
|
1663
|
-
<span className={style_default.TextOperator}>{", "}</span>
|
|
1664
|
-
</Join$1>
|
|
1665
|
-
</span>
|
|
1666
|
-
|
|
1667
|
-
<span className={style_default.SignatureParen}>{")"} </span>
|
|
1668
|
-
{decl.returns && <>
|
|
1669
|
-
<span className={style_default.TextOperator}>{" -> "}</span>
|
|
1670
|
-
<Lang.Type type={decl.returns} />
|
|
1671
|
-
</>}
|
|
1672
|
-
</span>
|
|
1673
|
-
</span>
|
|
1674
|
-
</div>;
|
|
1675
|
-
}
|
|
1676
|
-
function Property$2({ decl, children }) {
|
|
1677
|
-
const Lang = useLanguageComponents();
|
|
1678
|
-
if (!decl) return;
|
|
1679
|
-
switch (decl.kind) {
|
|
1680
|
-
case "PythonDeclProperty": return children({
|
|
1681
|
-
name: decl.ident,
|
|
1682
|
-
typeName: <Lang.TypeName type={decl.type} />,
|
|
1683
|
-
type: showFullType(decl.type) && <Lang.Type type={decl.type} />
|
|
1684
|
-
});
|
|
1685
|
-
case "PythonDeclClass": return children({
|
|
1686
|
-
name: decl.ident,
|
|
1687
|
-
typeName: "class"
|
|
1688
|
-
});
|
|
1689
|
-
case "PythonDeclType": return children({
|
|
1690
|
-
name: decl.ident,
|
|
1691
|
-
typeName: "type",
|
|
1692
|
-
type: <Lang.Type type={decl.type} />
|
|
1693
|
-
});
|
|
1694
|
-
case "PythonDeclReference": return children({ type: <Lang.Type type={decl.type} /> });
|
|
1695
|
-
}
|
|
1696
|
-
}
|
|
1697
|
-
function Declaration$2({ decl }) {
|
|
1698
|
-
const Lang = useLanguageComponents();
|
|
1699
|
-
if (!decl) return;
|
|
1700
|
-
switch (decl.kind) {
|
|
1701
|
-
case "PythonDeclProperty": {
|
|
1702
|
-
const nullable = decl.type.kind === "PythonTypeReference" && decl.type.typeName === "Optional" && (decl.type.typeParameters ?? []).length > 0;
|
|
1703
|
-
return <>
|
|
1704
|
-
<span className={style_default.TypePropertyName}>
|
|
1705
|
-
<span className={style_default.TextIdentifier}>{decl.ident}</span>
|
|
1706
|
-
</span>
|
|
1707
|
-
<span className={style_default.TextPunctuation}>: </span>
|
|
1708
|
-
{decl.optional && !nullable ? <>
|
|
1709
|
-
<span className={style_default.TypePlain}>Optional</span>
|
|
1710
|
-
<span className={style_default.TypeBracket}>{"["}</span>
|
|
1711
|
-
<Lang.Type type={decl.type} />
|
|
1712
|
-
<span className={style_default.TypeBrace}>{"]"}</span>
|
|
1713
|
-
</> : <Lang.Type type={decl.type} />}
|
|
1714
|
-
</>;
|
|
1715
|
-
}
|
|
1716
|
-
case "PythonDeclClass": return <>
|
|
1717
|
-
<span className={style_default.TextKeyword}>class </span>
|
|
1718
|
-
<span className={style_default.TextIdentifier}>{decl.ident}</span>
|
|
1719
|
-
<span className={style_default.TextPunctuation}>: </span>
|
|
1720
|
-
<span className={`${style_default.TypePreviewContent} ${style_default.TextPunctuation}`}>…</span>
|
|
1721
|
-
</>;
|
|
1722
|
-
case "PythonDeclType": return <>
|
|
1723
|
-
<span className={style_default.TextIdentifier}>{decl.ident}</span>
|
|
1724
|
-
<span className={style_default.TextOperator}> = </span>
|
|
1725
|
-
<Lang.Type type={decl.type} />
|
|
1726
|
-
</>;
|
|
1727
|
-
case "PythonDeclReference": return <Lang.Type type={decl.type} />;
|
|
1728
|
-
}
|
|
1729
|
-
}
|
|
1730
|
-
|
|
1731
|
-
//#endregion
|
|
1732
|
-
//#region src/languages/ruby.tsx
|
|
1733
|
-
var ruby_exports = /* @__PURE__ */ __export({
|
|
1734
|
-
Declaration: () => Declaration$1,
|
|
1735
|
-
MethodSignature: () => MethodSignature$1,
|
|
1736
|
-
Property: () => Property$1,
|
|
1737
|
-
Type: () => Type$1,
|
|
1738
|
-
TypeName: () => TypeName$1
|
|
1739
|
-
});
|
|
1740
|
-
const ComplexTypes$1 = {
|
|
1741
|
-
RubyTypeObject: "object",
|
|
1742
|
-
RubyTypeUnion: "union",
|
|
1743
|
-
RubyTypeIntersection: "intersection",
|
|
1744
|
-
RubyTypeArray: "array",
|
|
1745
|
-
RubyTypeMap: "hash"
|
|
1746
|
-
};
|
|
1747
|
-
const Keywords = {
|
|
1748
|
-
RubyTypeBinary: "StringIO",
|
|
1749
|
-
RubyTypeUnknown: "untyped",
|
|
1750
|
-
RubyTypeNull: "nil",
|
|
1751
|
-
RubyTypeInteger: "Integer",
|
|
1752
|
-
RubyTypeFloat: "Float",
|
|
1753
|
-
RubyTypeBoolean: "bool"
|
|
1754
|
-
};
|
|
1755
|
-
function TypeName$1({ type }) {
|
|
1756
|
-
const Lang = useLanguageComponents();
|
|
1757
|
-
return ComplexTypes$1[type.kind] ?? <Lang.Type type={type} />;
|
|
1758
|
-
}
|
|
1759
|
-
const VALID_IDENTIFIER = /^[_A-Za-z][_A-Za-z0-9]*$/;
|
|
1760
|
-
function TypePreview$1({ path }) {
|
|
1761
|
-
const spec = useSpec();
|
|
1762
|
-
const language = useLanguage();
|
|
1763
|
-
const decl = useDeclaration(path, false);
|
|
1764
|
-
const { Join: Join$1 } = useComponents();
|
|
1765
|
-
if (!(decl && "children" in decl && decl.children && decl.children.length > 0) || "type" in decl && decl["type"] && "kind" in decl["type"] && decl["type"]?.["kind"] === "RubyTypeUnion") return;
|
|
1766
|
-
const items = decl.children.map((prop, key) => {
|
|
1767
|
-
const p = spec?.decls?.[language]?.[prop];
|
|
1768
|
-
return <span key={key} className={style_default.TypePropertyName}>
|
|
1769
|
-
<span className={style_default.TextIdentifier}>{p && "ident" in p ? p["ident"] : null}</span>
|
|
1770
|
-
</span>;
|
|
1771
|
-
});
|
|
1772
|
-
return <span className={style_default.TypePreview} data-stldocs-type-preview="properties">
|
|
1773
|
-
<span className={style_default.TypeBrace}>{" {"}</span>
|
|
1774
|
-
<span className={style_default.TypePreviewContent}>
|
|
1775
|
-
{" "}
|
|
1776
|
-
<Join$1 items={items} limit={3}>
|
|
1777
|
-
<span className={style_default.TextOperator}>, </span>
|
|
1778
|
-
</Join$1>{" "}
|
|
1779
|
-
</span>
|
|
1780
|
-
<span className={style_default.TypeBrace}>{"} "}</span>
|
|
1781
|
-
</span>;
|
|
1782
|
-
}
|
|
1783
|
-
function Type$1({ type }) {
|
|
1784
|
-
const Lang = useLanguageComponents();
|
|
1785
|
-
const { SDKReference: SDKReference$1, Join: Join$1 } = useComponents();
|
|
1786
|
-
switch (type.kind) {
|
|
1787
|
-
case "RubyTypeBinary":
|
|
1788
|
-
case "RubyTypeUnknown":
|
|
1789
|
-
case "RubyTypeNull":
|
|
1790
|
-
case "RubyTypeInteger":
|
|
1791
|
-
case "RubyTypeFloat":
|
|
1792
|
-
case "RubyTypeBoolean": return <span className={style_default.Type}>
|
|
1793
|
-
<span className={style_default.TypeKeyword}>{Keywords[type.kind]}</span>
|
|
1794
|
-
</span>;
|
|
1795
|
-
case "RubyTypeString": return <span className={style_default.Type}>
|
|
1796
|
-
<span className={style_default.TypeString}>String</span>
|
|
1797
|
-
</span>;
|
|
1798
|
-
case "RubyTypeLiteral":
|
|
1799
|
-
switch (typeof type.literal) {
|
|
1800
|
-
case "string": return <span className={style_default.Type}>
|
|
1801
|
-
<span className={style_default.LiteralString}>
|
|
1802
|
-
{":"}
|
|
1803
|
-
{type.literal.match(VALID_IDENTIFIER) ? type.literal : JSON.stringify(type.literal)}
|
|
1804
|
-
</span>
|
|
1805
|
-
</span>;
|
|
1806
|
-
case "number": return <span className={style_default.Type}>
|
|
1807
|
-
<span className={style_default.LiteralNumeric}>{JSON.stringify(type.literal)}</span>
|
|
1808
|
-
</span>;
|
|
1809
|
-
case "boolean": return <span className={style_default.Type}>
|
|
1810
|
-
<span className={style_default.LiteralBoolean}>{JSON.stringify(type.literal)}</span>
|
|
1811
|
-
</span>;
|
|
1812
|
-
}
|
|
1813
|
-
break;
|
|
1814
|
-
case "RubyTypeArray": return <span className={style_default.Type}>
|
|
1815
|
-
<span className={style_default.TypeArray}>{"Array["}</span>
|
|
1816
|
-
<Lang.Type type={type.elementType} />
|
|
1817
|
-
<span className={style_default.TypeArray}>{"]"}</span>
|
|
1818
|
-
</span>;
|
|
1819
|
-
case "RubyTypeMap": return <span className={style_default.Type}>
|
|
1820
|
-
<span className={style_default.TypeArray}>{"Hash["}</span>
|
|
1821
|
-
{type.indexType.kind === "RubyTypeString" ? <span className={style_default.TypeString}>Symbol</span> : <Lang.Type type={type.indexType} />}
|
|
1822
|
-
, <Lang.Type type={type.itemType} />
|
|
1823
|
-
<span className={style_default.TypeArray}>{"]"}</span>
|
|
1824
|
-
</span>;
|
|
1825
|
-
case "RubyTypeReference": {
|
|
1826
|
-
const name = type.ident.split(".").at(-1);
|
|
1827
|
-
if (!type.typeParameters || type.typeParameters.length === 0) return <span className={style_default.Type}>
|
|
1828
|
-
<SDKReference$1 stainlessPath={type.$ref}>{name}</SDKReference$1>
|
|
1829
|
-
<TypePreview$1 path={type.$ref} />
|
|
1830
|
-
</span>;
|
|
1831
|
-
const typeParameters = type.typeParameters.map((t, i) => <Lang.Type key={i} type={t} />);
|
|
1832
|
-
return <span className={style_default.Type}>
|
|
1833
|
-
<SDKReference$1 stainlessPath={type.$ref}>{name}</SDKReference$1>
|
|
1834
|
-
<span className={style_default.TypeBracket}>{"<"}</span>
|
|
1835
|
-
<Join$1 items={typeParameters}>
|
|
1836
|
-
<span className={style_default.TextOperator}>, </span>
|
|
1837
|
-
</Join$1>
|
|
1838
|
-
<span className={style_default.TypeBracket}>{">"}</span>
|
|
1839
|
-
<TypePreview$1 path={type.$ref} />
|
|
1840
|
-
</span>;
|
|
1841
|
-
}
|
|
1842
|
-
case "RubyTypeIntersection":
|
|
1843
|
-
case "RubyTypeUnion": {
|
|
1844
|
-
const items = type.types.map((t, key) => <Lang.Type key={key} type={t} />);
|
|
1845
|
-
const delimiter = type.kind === "RubyTypeUnion" ? "|" : "&";
|
|
1846
|
-
return <span className={style_default.Type}>
|
|
1847
|
-
<span className={style_default.TypePreview} data-stldocs-type-preview="union">
|
|
1848
|
-
<span className={style_default.TypePreviewContent}>
|
|
1849
|
-
<Join$1 items={items} limit={3}>
|
|
1850
|
-
<span className={style_default.TextOperator}> {delimiter} </span>
|
|
1851
|
-
</Join$1>
|
|
1852
|
-
</span>
|
|
1853
|
-
</span>
|
|
1854
|
-
</span>;
|
|
1855
|
-
}
|
|
1856
|
-
case "RubyTypeBuiltinClass": return <span className={style_default.TypeReference}>{type.className}</span>;
|
|
1857
|
-
case "RubyTypeObject": {
|
|
1858
|
-
const items = type.members.map((prop, key) => <span key={key} className={style_default.TextIdentifier}>
|
|
1859
|
-
{prop.ident}
|
|
1860
|
-
</span>);
|
|
1861
|
-
return <span className={style_default.Type}>
|
|
1862
|
-
<span className={style_default.TypePreview} data-stldocs-type-preview="properties">
|
|
1863
|
-
<span className={style_default.TypePreviewContent}>
|
|
1864
|
-
<span className={style_default.TypeBrace}>{"{ "}</span>
|
|
1865
|
-
<Join$1 items={items} limit={3}>
|
|
1866
|
-
<span className={style_default.TextOperator}>, </span>
|
|
1867
|
-
</Join$1>
|
|
1868
|
-
<span className={style_default.TypeBrace}>{"}"}</span>
|
|
1869
|
-
</span>
|
|
1870
|
-
</span>
|
|
1871
|
-
</span>;
|
|
1872
|
-
}
|
|
1873
|
-
}
|
|
1874
|
-
}
|
|
1875
|
-
function MethodSignature$1({ decl }) {
|
|
1876
|
-
const Lang = useLanguageComponents();
|
|
1877
|
-
const { Join: Join$1 } = useComponents();
|
|
1878
|
-
const params = decl.args.map((param, i) => <React$1.Fragment key={i}>
|
|
1879
|
-
<span className={style_default.TextIdentifier}>{param.ident}</span>
|
|
1880
|
-
</React$1.Fragment>);
|
|
1881
|
-
return <div className={style_default.MethodSignature}>
|
|
1882
|
-
<span className={style_default.SignatureTitle}>
|
|
1883
|
-
<span className={style_default.SignatureQualified}>
|
|
1884
|
-
<span className={style_default.TextIdentifier}>{decl.qualified?.slice(0, -decl.ident.length)}</span>
|
|
1885
|
-
</span>
|
|
1886
|
-
<span className={style_default.SignatureName}>
|
|
1887
|
-
<span className={style_default.TextIdentifier}>{decl.ident}</span>
|
|
1888
|
-
</span>
|
|
1889
|
-
<span className={style_default.MethodSignature}>
|
|
1890
|
-
<span className={style_default.SignatureParen}>{"("}</span>
|
|
1891
|
-
|
|
1892
|
-
<span className={style_default.SignatureParams}>
|
|
1893
|
-
<Join$1 items={params}>
|
|
1894
|
-
<span className={style_default.TextOperator}>{", "}</span>
|
|
1895
|
-
</Join$1>
|
|
1896
|
-
</span>
|
|
1897
|
-
|
|
1898
|
-
<span className={style_default.SignatureParen}>{")"}</span>
|
|
1899
|
-
{" -> "}
|
|
1900
|
-
{decl.returns ? <Lang.Type type={decl.returns} /> : "void"}
|
|
1901
|
-
</span>
|
|
1902
|
-
</span>
|
|
1903
|
-
</div>;
|
|
1904
|
-
}
|
|
1905
|
-
function Property$1({ decl, children }) {
|
|
1906
|
-
const Lang = useLanguageComponents();
|
|
1907
|
-
switch (decl.kind) {
|
|
1908
|
-
case "RubyDeclProperty": return children({
|
|
1909
|
-
name: decl.ident,
|
|
1910
|
-
typeName: <Lang.TypeName type={decl.type} />,
|
|
1911
|
-
type: decl.type.kind in ComplexTypes$1 && <Lang.Type type={decl.type} />
|
|
1912
|
-
});
|
|
1913
|
-
case "RubyDeclTypeAlias": return children({
|
|
1914
|
-
name: decl.ident,
|
|
1915
|
-
typeName: "alias",
|
|
1916
|
-
type: <Lang.Type type={decl.type} />
|
|
1917
|
-
});
|
|
1918
|
-
case "RubyDeclReference": return children({ type: <Lang.Type type={decl.type} /> });
|
|
1919
|
-
case "RubyDeclClass": return children({
|
|
1920
|
-
name: decl.ident,
|
|
1921
|
-
typeName: "class"
|
|
1922
|
-
});
|
|
1923
|
-
}
|
|
1924
|
-
}
|
|
1925
|
-
function Declaration$1({ decl }) {
|
|
1926
|
-
const Lang = useLanguageComponents();
|
|
1927
|
-
if (!decl) return;
|
|
1928
|
-
switch (decl.kind) {
|
|
1929
|
-
case "RubyDeclProperty": return <>
|
|
1930
|
-
<span className={style_default.TypePropertyName}>
|
|
1931
|
-
<span className={style_default.TextIdentifier}>{decl.ident}</span>
|
|
1932
|
-
</span>
|
|
1933
|
-
<span className={style_default.TextPunctuation}>: </span>
|
|
1934
|
-
<Lang.Type type={decl.type} />
|
|
1935
|
-
</>;
|
|
1936
|
-
case "RubyDeclTypeAlias": return <>
|
|
1937
|
-
<span className={style_default.TextIdentifier}>{decl.ident}</span>
|
|
1938
|
-
<span className={style_default.TextOperator}> = </span>
|
|
1939
|
-
<Lang.Type type={decl.type} />
|
|
1940
|
-
</>;
|
|
1941
|
-
case "RubyDeclClass": return <>
|
|
1942
|
-
<span className={style_default.TextKeyword}>class </span>
|
|
1943
|
-
<span className={style_default.TextIdentifier}>{decl.ident}</span>
|
|
1944
|
-
<TypePreview$1 path={decl.stainlessPath} />
|
|
1945
|
-
</>;
|
|
1946
|
-
case "RubyDeclReference": return <Lang.Type type={decl.type} />;
|
|
1947
|
-
}
|
|
1948
|
-
}
|
|
1949
|
-
|
|
1950
|
-
//#endregion
|
|
1951
|
-
//#region src/languages/http.tsx
|
|
1952
|
-
var http_exports = /* @__PURE__ */ __export({
|
|
1953
|
-
Declaration: () => Declaration,
|
|
1954
|
-
MethodInfo: () => MethodInfo,
|
|
1955
|
-
MethodSignature: () => MethodSignature,
|
|
1956
|
-
Property: () => Property,
|
|
1957
|
-
Type: () => Type,
|
|
1958
|
-
TypeName: () => TypeName
|
|
1959
|
-
});
|
|
1960
|
-
const ComplexTypes = {
|
|
1961
|
-
HttpTypeUnion: "union",
|
|
1962
|
-
HttpTypeIntersection: "intersection"
|
|
1963
|
-
};
|
|
1964
|
-
const constStyle = {
|
|
1965
|
-
string: style_default.LiteralString,
|
|
1966
|
-
number: style_default.LiteralNumeric,
|
|
1967
|
-
boolean: style_default.LiteralBoolean
|
|
1968
|
-
};
|
|
1969
|
-
function Identifier({ name }) {
|
|
1970
|
-
return <>
|
|
1971
|
-
<span className={style_default.TextIdentifier}>
|
|
1972
|
-
{/^[_a-zA-Z][_a-zA-Z0-9]*$/.test(name) ? name : JSON.stringify(name)}
|
|
1973
|
-
</span>
|
|
1974
|
-
</>;
|
|
1975
|
-
}
|
|
1976
|
-
function TypePreview({ path }) {
|
|
1977
|
-
const spec = useSpec();
|
|
1978
|
-
const language = useLanguage();
|
|
1979
|
-
const decl = useDeclaration(path, false);
|
|
1980
|
-
const { Join: Join$1 } = useComponents();
|
|
1981
|
-
if (!(decl && "children" in decl && decl.children && decl.children.length > 0) || "type" in decl && decl["type"] && "kind" in decl["type"] && decl["type"]["kind"] === "HttpTypeUnion") return;
|
|
1982
|
-
const items = decl.children.map((prop, key) => {
|
|
1983
|
-
const decl$1 = spec?.decls?.[language]?.[prop];
|
|
1984
|
-
return <span key={key} className={style_default.TypePropertyName}>
|
|
1985
|
-
<span className={style_default.TextIdentifier}>{decl$1 && "key" in decl$1 ? decl$1?.["key"] : null}</span>
|
|
1986
|
-
</span>;
|
|
1987
|
-
});
|
|
1988
|
-
return <span className={style_default.TypePreview} data-stldocs-type-preview="properties">
|
|
1989
|
-
<span className={style_default.TypeBrace}>{" { "}</span>
|
|
1990
|
-
<span className={style_default.TypePreviewContent}>
|
|
1991
|
-
<Join$1 items={items} limit={3}>
|
|
1992
|
-
<span className={style_default.TextOperator}>, </span>
|
|
1993
|
-
</Join$1>
|
|
1994
|
-
</span>
|
|
1995
|
-
<span className={style_default.TypeBrace}>{" } "}</span>
|
|
1996
|
-
</span>;
|
|
1997
|
-
}
|
|
1998
|
-
function TypeName({ type }) {
|
|
1999
|
-
const Lang = useLanguageComponents();
|
|
2000
|
-
if (type.kind === "HttpTypeArray") return <>array of {<Lang.TypeName type={type.elementType} />}</>;
|
|
2001
|
-
if (type.kind === "HttpTypeUnion" && type.types.every((t) => t.kind === "HttpTypeLiteral")) return "enum";
|
|
2002
|
-
if (type.kind === "HttpTypeReference" && type.ident.split(".").at(-1) === "Record") return "map";
|
|
2003
|
-
return ComplexTypes[type.kind] ?? <Lang.Type type={type} />;
|
|
2004
|
-
}
|
|
2005
|
-
function Type({ type }) {
|
|
2006
|
-
const Lang = useLanguageComponents();
|
|
2007
|
-
const { Join: Join$1, SDKReference: SDKReference$1 } = useComponents();
|
|
2008
|
-
switch (type.kind) {
|
|
2009
|
-
case "HttpTypeUnknown":
|
|
2010
|
-
case "HttpTypeUndefined":
|
|
2011
|
-
case "HttpTypeNull":
|
|
2012
|
-
case "HttpTypeBoolean":
|
|
2013
|
-
case "HttpTypeNumber": return <span className={style_default.Type}>
|
|
2014
|
-
<span className={style_default.TypePlain}>{type.kind.slice(8).toLowerCase()}</span>
|
|
2015
|
-
</span>;
|
|
2016
|
-
case "HttpTypeString": return <span className={style_default.Type}>
|
|
2017
|
-
<span className={style_default.TypePlain}>string</span>
|
|
2018
|
-
</span>;
|
|
2019
|
-
case "HttpTypeLiteral": return <span className={style_default.Type}>
|
|
2020
|
-
<span className={constStyle[typeof type.literal]}>{JSON.stringify(type.literal)}</span>
|
|
2021
|
-
</span>;
|
|
2022
|
-
case "HttpTypeArray": return <span className={style_default.Type}>
|
|
2023
|
-
<span className={style_default.TypeArray}>{"array of "}</span>
|
|
2024
|
-
<Lang.Type type={type.elementType} />
|
|
2025
|
-
</span>;
|
|
2026
|
-
case "HttpTypeIntersection":
|
|
2027
|
-
case "HttpTypeUnion": {
|
|
2028
|
-
const items = type.types.map((t, key) => <Lang.Type key={key} type={t} />);
|
|
2029
|
-
const delimiter = type.kind === "HttpTypeUnion" ? "or" : "and";
|
|
2030
|
-
return <span className={style_default.Type}>
|
|
2031
|
-
<span className={style_default.TypePreview} data-stldocs-type-preview="union">
|
|
2032
|
-
<span className={style_default.TypePreviewContent}>
|
|
2033
|
-
<Join$1 items={items} limit={3}>
|
|
2034
|
-
<span className={style_default.TextOperator}> {delimiter} </span>
|
|
2035
|
-
</Join$1>
|
|
2036
|
-
</span>
|
|
2037
|
-
</span>
|
|
2038
|
-
</span>;
|
|
2039
|
-
}
|
|
2040
|
-
case "HttpTypeReference": {
|
|
2041
|
-
const name = type.ident.split(".").at(-1);
|
|
2042
|
-
const params = type.typeParameters?.map((param, key) => <Lang.Type key={key} type={param} />);
|
|
2043
|
-
if (name === "Record" && type.typeParameters?.length === 2 && type.typeParameters?.at(0).kind === "HttpTypeString") return <>
|
|
2044
|
-
<span className={style_default.TypeArray}>map</span>[{params?.[1]}]
|
|
2045
|
-
</>;
|
|
2046
|
-
return <span className={style_default.Type}>
|
|
2047
|
-
<SDKReference$1 stainlessPath={type.$ref}>{name}</SDKReference$1>
|
|
2048
|
-
{params && params.length > 0 && <>
|
|
2049
|
-
<span className={style_default.TypeBracket}>{"<"}</span>
|
|
2050
|
-
<Join$1 items={params} limit={3}>
|
|
2051
|
-
<span className={style_default.TextOperator}>, </span>
|
|
2052
|
-
</Join$1>
|
|
2053
|
-
<span className={style_default.TypeBracket}>{">"}</span>
|
|
2054
|
-
</>}
|
|
2055
|
-
<TypePreview path={type.$ref} />
|
|
2056
|
-
</span>;
|
|
2057
|
-
}
|
|
2058
|
-
case "HttpTypeObject": {
|
|
2059
|
-
const items = type.members.map(({ ident }) => <span className={style_default.TypePropertyName} key={ident}>
|
|
2060
|
-
<Identifier name={ident} />
|
|
2061
|
-
</span>);
|
|
2062
|
-
return <span className={style_default.Type}>
|
|
2063
|
-
<span className={style_default.TypePlain}>object</span>
|
|
2064
|
-
<span className={style_default.TypePreview} data-stldocs-type-preview="properties">
|
|
2065
|
-
<span className={style_default.TypeBrace}>{" {"}</span>
|
|
2066
|
-
<span className={style_default.TypePreviewContent}>
|
|
2067
|
-
{" "}
|
|
2068
|
-
<Join$1 items={items} limit={3}>
|
|
2069
|
-
<span className={style_default.TextOperator}>, </span>
|
|
2070
|
-
</Join$1>{" "}
|
|
2071
|
-
</span>
|
|
2072
|
-
<span className={style_default.TypeBrace}>{"} "}</span>
|
|
2073
|
-
</span>
|
|
2074
|
-
</span>;
|
|
2075
|
-
}
|
|
2076
|
-
}
|
|
2077
|
-
}
|
|
2078
|
-
function MethodSignature({ decl }) {
|
|
2079
|
-
return null;
|
|
2080
|
-
}
|
|
2081
|
-
function MethodInfo({ decl, children }) {
|
|
2082
|
-
const Docs = useComponents();
|
|
2083
|
-
const params = Object.entries(decl.paramsChildren).filter(([, value]) => value.length).map(([location, value]) => <React.Fragment key={location}>
|
|
2084
|
-
<div className={style_default.MethodParameters} data-stldocs-property-group={location.at(0)}>
|
|
2085
|
-
<h5>
|
|
2086
|
-
{location.at(0).toUpperCase()}
|
|
2087
|
-
{location.slice(1)} Parameters
|
|
2088
|
-
<PropertyToggle target={location.at(0)} />
|
|
2089
|
-
</h5>
|
|
2090
|
-
<Docs.SDKChildren paths={value} />
|
|
2091
|
-
</div>
|
|
2092
|
-
</React.Fragment>);
|
|
2093
|
-
if ((decl.bodyParamsChildren?.["application/json"]?.length ?? 0) > 0) params.push(<div className={style_default.MethodInfoSection}>
|
|
2094
|
-
<h5>
|
|
2095
|
-
Body Parameters
|
|
2096
|
-
<PropertyToggle target="body" />
|
|
2097
|
-
</h5>
|
|
2098
|
-
<div className={style_default.MethodParameters} data-stldocs-property-group="body">
|
|
2099
|
-
<Docs.SDKChildren paths={decl.bodyParamsChildren?.["application/json"] ?? []} />
|
|
2100
|
-
</div>
|
|
2101
|
-
</div>);
|
|
2102
|
-
return <div className={style_default.MethodInfo}>
|
|
2103
|
-
{children && <div className={style_default.MethodContent}>{children}</div>}
|
|
2104
|
-
{params.length > 0 && params}
|
|
2105
|
-
{(decl.responseChildren?.length ?? 0) > 0 && <div className={style_default.MethodInfoSection}>
|
|
2106
|
-
<h5>
|
|
2107
|
-
Returns
|
|
2108
|
-
<PropertyToggle target="returns" />
|
|
2109
|
-
</h5>
|
|
2110
|
-
<div className={style_default.MethodReturns} data-stldocs-property-group="returns">
|
|
2111
|
-
<Docs.SDKChildren paths={decl.responseChildren ?? []} />
|
|
2112
|
-
</div>
|
|
2113
|
-
</div>}
|
|
2114
|
-
</div>;
|
|
2115
|
-
}
|
|
2116
|
-
function renderVariantInfo(type) {
|
|
2117
|
-
if (type.kind === "HttpTypeUnion" && type.types.every((t) => t.kind === "HttpTypeObject" || t.kind === "HttpTypeReference")) return <>One of the following {type.types.length} object variants:</>;
|
|
2118
|
-
}
|
|
2119
|
-
function Property({ decl, children }) {
|
|
2120
|
-
const Lang = useLanguageComponents();
|
|
2121
|
-
if (!decl) return;
|
|
2122
|
-
switch (decl.kind) {
|
|
2123
|
-
case "HttpDeclProperty": {
|
|
2124
|
-
const variants = renderVariantInfo(decl.type);
|
|
2125
|
-
return children({
|
|
2126
|
-
name: decl.key,
|
|
2127
|
-
typeName: <Lang.TypeName type={decl.type} />,
|
|
2128
|
-
type: decl.type.kind in ComplexTypes && !variants && <Lang.Type type={decl.type} />
|
|
2129
|
-
});
|
|
2130
|
-
}
|
|
2131
|
-
case "HttpDeclTypeAlias": return children({
|
|
2132
|
-
name: decl.ident,
|
|
2133
|
-
typeName: <Lang.TypeName type={decl.type} />
|
|
2134
|
-
});
|
|
2135
|
-
case "HttpDeclReference": return children({ type: <Lang.Type type={decl.type} /> });
|
|
2136
|
-
}
|
|
2137
|
-
}
|
|
2138
|
-
function Declaration({ decl }) {
|
|
2139
|
-
const Lang = useLanguageComponents();
|
|
2140
|
-
if (!decl) return;
|
|
2141
|
-
switch (decl.kind) {
|
|
2142
|
-
case "HttpDeclProperty": return <>
|
|
2143
|
-
<span className={style_default.TypePropertyName}>
|
|
2144
|
-
<Identifier name={decl.key} />
|
|
2145
|
-
</span>
|
|
2146
|
-
<span className={style_default.TextPunctuation}>: </span>
|
|
2147
|
-
{decl.optional && <span className={style_default.TextPunctuation}>optional </span>}
|
|
2148
|
-
<Lang.Type type={decl.type} />
|
|
2149
|
-
</>;
|
|
2150
|
-
case "HttpDeclTypeAlias": return <>
|
|
2151
|
-
<Identifier name={decl.ident} />
|
|
2152
|
-
<span className={style_default.TextOperator}> = </span>
|
|
2153
|
-
<Lang.Type type={decl.type} />
|
|
2154
|
-
</>;
|
|
2155
|
-
case "HttpDeclReference": return <Lang.Type type={decl.type} />;
|
|
2156
|
-
}
|
|
2157
|
-
}
|
|
2158
|
-
|
|
2159
|
-
//#endregion
|
|
2160
|
-
//#region src/languages/index.ts
|
|
2161
|
-
var languages_exports = /* @__PURE__ */ __export({
|
|
2162
|
-
go: () => go_exports,
|
|
2163
|
-
http: () => http_exports,
|
|
2164
|
-
java: () => java_exports,
|
|
2165
|
-
kotlin: () => kotlin,
|
|
2166
|
-
node: () => node,
|
|
2167
|
-
python: () => python_exports,
|
|
2168
|
-
ruby: () => ruby_exports,
|
|
2169
|
-
typescript: () => typescript_exports
|
|
2170
|
-
});
|
|
2171
|
-
const node = typescript_exports;
|
|
2172
|
-
const kotlin = java_exports;
|
|
2173
|
-
|
|
2174
|
-
//#endregion
|
|
2175
|
-
//#region src/contexts/component.tsx
|
|
2176
|
-
const defaultContextValue = {
|
|
2177
|
-
components: components_exports,
|
|
2178
|
-
language: languages_exports
|
|
2179
|
-
};
|
|
2180
|
-
function ComponentProvider({ components, language, children }) {
|
|
2181
|
-
const value = React.useMemo(() => customizeComponents(defaultContextValue, {
|
|
2182
|
-
components,
|
|
2183
|
-
language
|
|
2184
|
-
}), [components, language]);
|
|
2185
|
-
return <ComponentProvider$1 value={value}>{children}</ComponentProvider$1>;
|
|
2186
|
-
}
|
|
2187
|
-
|
|
2188
|
-
//#endregion
|
|
2189
|
-
//#region src/search/printer.tsx
|
|
2190
|
-
function Providers({ language, children }) {
|
|
2191
|
-
return <DocsProvider spec={null} language={language}>
|
|
2192
|
-
<ComponentProvider components={{ SDKReference({ stainlessPath, children: children$1 }) {
|
|
2193
|
-
if (!stainlessPath) return children$1;
|
|
2194
|
-
return <span className={style_default.TypeReference}>{children$1}</span>;
|
|
2195
|
-
} }}>
|
|
2196
|
-
{children}
|
|
2197
|
-
</ComponentProvider>
|
|
2198
|
-
</DocsProvider>;
|
|
2199
|
-
}
|
|
2200
|
-
function RenderType({ type, full }) {
|
|
2201
|
-
const { Type: Type$6, TypeName: TypeName$6 } = useLanguageComponents();
|
|
2202
|
-
return full ? <Type$6 type={type} /> : <TypeName$6 type={type} />;
|
|
2203
|
-
}
|
|
2204
|
-
function typeName(language, type) {
|
|
2205
|
-
return renderToStaticMarkup(<Providers language={language}>
|
|
2206
|
-
<RenderType type={type} />
|
|
2207
|
-
</Providers>);
|
|
2208
|
-
}
|
|
2209
|
-
function RenderDeclaration({ decl }) {
|
|
2210
|
-
const { Declaration: Declaration$6 } = useLanguageComponents();
|
|
2211
|
-
return <Declaration$6 decl={decl} />;
|
|
2212
|
-
}
|
|
2213
|
-
function declaration$1(language, decl) {
|
|
2214
|
-
return renderToStaticMarkup(<Providers language={language}>
|
|
2215
|
-
<RenderDeclaration decl={decl} />
|
|
2216
|
-
</Providers>);
|
|
2217
|
-
}
|
|
2218
|
-
function RenderMethod({ method }) {
|
|
2219
|
-
const { MethodSignature: MethodSignature$6 } = useLanguageComponents();
|
|
2220
|
-
return <MethodSignature$6 decl={method} />;
|
|
2221
|
-
}
|
|
2222
|
-
function methodSignature(language, decl) {
|
|
2223
|
-
return renderToStaticMarkup(<Providers language={language}>
|
|
2224
|
-
<RenderMethod method={decl} />
|
|
2225
|
-
</Providers>);
|
|
2226
|
-
}
|
|
2227
|
-
|
|
2228
|
-
//#endregion
|
|
2229
|
-
//#region src/markdown/index.ts
|
|
2230
|
-
function declaration(env, decl) {
|
|
2231
|
-
const content = declaration$1(env.language, decl);
|
|
2232
|
-
return paragraph(code(stripMarkup(content)));
|
|
2233
|
-
}
|
|
2234
|
-
function renderChildren(env, children, nesting = []) {
|
|
2235
|
-
return list(...children.map((child) => renderDecl(env, child, nesting)));
|
|
2236
|
-
}
|
|
2237
|
-
function renderDecl(env, path, nesting = []) {
|
|
2238
|
-
const decl = getDecl(env, path);
|
|
2239
|
-
const item$1 = item(declaration(env, decl));
|
|
2240
|
-
const hasChildren = "children" in decl && decl.children && decl.children.length > 0;
|
|
2241
|
-
const showModelProps = !("modelPath" in decl && decl["modelPath"]) || env.options.includeModelProperties;
|
|
2242
|
-
if ("docstring" in decl && decl.docstring) item$1.children.push(...parse(decl.docstring));
|
|
2243
|
-
if (hasChildren && showModelProps && !nesting.includes(path)) item$1.push(renderChildren(env, decl.children ?? [], [...nesting, path]));
|
|
2244
|
-
return item$1;
|
|
2245
|
-
}
|
|
2246
|
-
function renderMethod(env, method) {
|
|
2247
|
-
const decl = getDecl(env, method.stainlessPath);
|
|
2248
|
-
if (!decl) return [paragraph(text("The method "), code(method.name), text(" is not available in this language."))];
|
|
2249
|
-
const signature = methodSignature(env.language, decl);
|
|
2250
|
-
const [httpMethod, endpoint] = method.endpoint.split(" ");
|
|
2251
|
-
const output = [
|
|
2252
|
-
heading(2, method.title),
|
|
2253
|
-
...env.language === "http" ? [] : [paragraph(code(stripMarkup(signature)))],
|
|
2254
|
-
paragraph(strong(text(httpMethod)), text(" "), code(endpoint))
|
|
2255
|
-
];
|
|
2256
|
-
if (method.description) output.push(...parse(method.description));
|
|
2257
|
-
if ("paramsChildren" in decl && Array.isArray(decl.paramsChildren) && decl.paramsChildren.length > 0) output.push(heading(3, "Parameters"), renderChildren(env, decl.paramsChildren));
|
|
2258
|
-
if ("responseChildren" in decl && decl.responseChildren && decl.responseChildren.length > 0) output.push(heading(3, "Returns"), renderChildren(env, decl.responseChildren));
|
|
2259
|
-
const snippet = getSnippet(env, method.stainlessPath);
|
|
2260
|
-
if (snippet) output.push(heading(3, "Example"), fence(env.language, snippet));
|
|
2261
|
-
return output;
|
|
2262
|
-
}
|
|
2263
|
-
function renderModel(env, model) {
|
|
2264
|
-
return [heading(3, model.title), list(renderDecl(env, `${model.stainlessPath} > (schema)`))];
|
|
2265
|
-
}
|
|
2266
|
-
function renderResource(env, resource) {
|
|
2267
|
-
const methods = Object.values(resource.methods).filter((method) => getDecl(env, method.stainlessPath)).flatMap((method) => renderMethod(env, method));
|
|
2268
|
-
const models = Object.values(resource.models).filter((model) => getDecl(env, `${model.stainlessPath} > (schema)`)).flatMap((model) => renderModel(env, model));
|
|
2269
|
-
const doc = [heading(1, resource.title), ...methods];
|
|
2270
|
-
if (models.length > 0) doc.push(heading(2, "Domain Types"), ...models);
|
|
2271
|
-
if (!env.options.renderNestedResources) return doc;
|
|
2272
|
-
const children = Object.values(resource.subresources ?? {}).flatMap((resource$1) => renderResource(env, resource$1));
|
|
2273
|
-
return [...doc, ...children];
|
|
2274
|
-
}
|
|
2275
|
-
function render(env, node$1) {
|
|
2276
|
-
switch (node$1.kind) {
|
|
2277
|
-
case "resource": return renderResource(env, node$1);
|
|
2278
|
-
case "http_method": return renderMethod(env, node$1);
|
|
2279
|
-
case "model": return renderModel(env, node$1);
|
|
2280
|
-
}
|
|
2281
|
-
}
|
|
2282
|
-
function renderMarkdown(env, node$1) {
|
|
2283
|
-
const content = render(env, node$1);
|
|
2284
|
-
const doc = new Markdoc.Ast.Node("document", {}, content);
|
|
2285
|
-
return Markdoc.format(doc);
|
|
2286
|
-
}
|
|
2287
|
-
|
|
2288
|
-
//#endregion
|
|
2289
|
-
//#region src/search/indexer.ts
|
|
2290
|
-
function getResourceNames(resourceIds, topResources) {
|
|
2291
|
-
let element = void 0;
|
|
2292
|
-
let resources = topResources;
|
|
2293
|
-
const resourceName = [];
|
|
2294
|
-
for (const resource of resourceIds) {
|
|
2295
|
-
element = resources?.[resource];
|
|
2296
|
-
if (!element) break;
|
|
2297
|
-
resourceName.push(element.title);
|
|
2298
|
-
resources = element?.subresources;
|
|
2299
|
-
}
|
|
2300
|
-
return resourceName;
|
|
2301
|
-
}
|
|
2302
|
-
function chunkByLines(content, maxSize = 6e4) {
|
|
2303
|
-
if (Buffer.byteLength(content, "utf8") < maxSize) return [content];
|
|
2304
|
-
const lines = content.split("\n");
|
|
2305
|
-
const chunks = [];
|
|
2306
|
-
let currentChunk = [];
|
|
2307
|
-
let currentSize = 0;
|
|
2308
|
-
for (const line of lines) {
|
|
2309
|
-
const lineSize = Buffer.byteLength(line + "\n", "utf8");
|
|
2310
|
-
if (currentSize + lineSize > maxSize) {
|
|
2311
|
-
chunks.push(currentChunk.join("\n"));
|
|
2312
|
-
currentChunk = [];
|
|
2313
|
-
currentSize = 0;
|
|
2314
|
-
}
|
|
2315
|
-
currentChunk.push(line);
|
|
2316
|
-
currentSize += lineSize;
|
|
2317
|
-
}
|
|
2318
|
-
if (currentChunk.length > 0) chunks.push(currentChunk.join("\n"));
|
|
2319
|
-
return chunks;
|
|
2320
|
-
}
|
|
2321
|
-
function* generateChatIndex(spec) {
|
|
2322
|
-
for (const [language, readme] of Object.entries(spec.readme)) {
|
|
2323
|
-
const chunks = chunkByLines(readme);
|
|
2324
|
-
for (const chunk of chunks) yield {
|
|
2325
|
-
language,
|
|
2326
|
-
title: "Overview",
|
|
2327
|
-
content: chunk,
|
|
2328
|
-
url: `docs://BASE_PATH/${language}`
|
|
2329
|
-
};
|
|
2330
|
-
}
|
|
2331
|
-
for (const { data } of walkTree(spec)) {
|
|
2332
|
-
if (data.kind !== "http_method") continue;
|
|
2333
|
-
const { title, name, stainlessPath, httpMethod, summary, description } = data;
|
|
2334
|
-
const endpoint = data.endpoint.slice(httpMethod.length).trim();
|
|
2335
|
-
for (const language of Languages) {
|
|
2336
|
-
const decl = spec.decls[language]?.[stainlessPath];
|
|
2337
|
-
if (!decl) continue;
|
|
2338
|
-
const chunks = chunkByLines(renderMarkdown({
|
|
2339
|
-
spec,
|
|
2340
|
-
language,
|
|
2341
|
-
options: { includeModelProperties: true }
|
|
2342
|
-
}, data));
|
|
2343
|
-
for (const chunk of chunks) yield {
|
|
2344
|
-
language,
|
|
2345
|
-
title,
|
|
2346
|
-
name,
|
|
2347
|
-
endpoint,
|
|
2348
|
-
httpMethod,
|
|
2349
|
-
summary,
|
|
2350
|
-
description,
|
|
2351
|
-
stainlessPath,
|
|
2352
|
-
qualified: "qualified" in decl ? decl["qualified"] : void 0,
|
|
2353
|
-
ident: "ident" in decl ? decl["ident"] : void 0,
|
|
2354
|
-
content: chunk,
|
|
2355
|
-
url: generateRoute("docs://BASE_PATH", language, stainlessPath)
|
|
2356
|
-
};
|
|
2357
|
-
}
|
|
2358
|
-
}
|
|
2359
|
-
}
|
|
2360
|
-
function* generateIndex(spec, renderMarkdownFn, includeTypes) {
|
|
2361
|
-
const parentCrumbs = {};
|
|
2362
|
-
for (const { data } of walkTree(spec, true)) {
|
|
2363
|
-
const { kind, name, title, stainlessPath } = data;
|
|
2364
|
-
const common = {
|
|
2365
|
-
name,
|
|
2366
|
-
title,
|
|
2367
|
-
stainlessPath
|
|
2368
|
-
};
|
|
2369
|
-
const crumbs = getResourceNames(parseStainlessPath(stainlessPath).resource, spec.resources);
|
|
2370
|
-
switch (kind) {
|
|
2371
|
-
case "resource":
|
|
2372
|
-
for (const language of Languages) {
|
|
2373
|
-
if (!data[language]) continue;
|
|
2374
|
-
parentCrumbs[stainlessPath] = crumbs;
|
|
2375
|
-
const { Name, QualifiedName } = data[language];
|
|
2376
|
-
yield {
|
|
2377
|
-
kind,
|
|
2378
|
-
crumbs,
|
|
2379
|
-
language,
|
|
2380
|
-
Name,
|
|
2381
|
-
QualifiedName,
|
|
2382
|
-
priority: 0,
|
|
2383
|
-
...common
|
|
2384
|
-
};
|
|
2385
|
-
}
|
|
2386
|
-
break;
|
|
2387
|
-
case "http_method": {
|
|
2388
|
-
const { summary, endpoint, httpMethod } = data;
|
|
2389
|
-
for (const language of Languages) {
|
|
2390
|
-
const found = spec.decls[language]?.[stainlessPath];
|
|
2391
|
-
if (!found) continue;
|
|
2392
|
-
parentCrumbs[stainlessPath] = [...crumbs, title];
|
|
2393
|
-
const qualified = "qualified" in found ? found["qualified"] : void 0;
|
|
2394
|
-
const ident = qualified?.split(".")?.at(-1);
|
|
2395
|
-
yield {
|
|
2396
|
-
kind,
|
|
2397
|
-
crumbs: [...crumbs, title],
|
|
2398
|
-
ident,
|
|
2399
|
-
qualified,
|
|
2400
|
-
language,
|
|
2401
|
-
description: data.description ? renderMarkdownFn?.(data.description) ?? data.description : void 0,
|
|
2402
|
-
endpoint: endpoint.slice(httpMethod.length).trim(),
|
|
2403
|
-
httpMethod,
|
|
2404
|
-
summary,
|
|
2405
|
-
priority: 0,
|
|
2406
|
-
...common
|
|
2407
|
-
};
|
|
2408
|
-
}
|
|
2409
|
-
break;
|
|
2410
|
-
}
|
|
2411
|
-
case "model": for (const language of Languages) {
|
|
2412
|
-
if (!spec.decls[language]) continue;
|
|
2413
|
-
parentCrumbs[stainlessPath] = [...crumbs, title];
|
|
2414
|
-
const schema = spec.decls[language]?.[`${stainlessPath} > (schema)`];
|
|
2415
|
-
const children = (schema && "children" in schema ? schema?.["children"] : void 0)?.map((childPath) => {
|
|
2416
|
-
const child = spec.decls?.[language]?.[childPath];
|
|
2417
|
-
return child?.["ident"] ?? child?.["name"] ?? child?.["key"] ?? child?.["type"]?.["literal"]?.["value"] ?? child?.["type"]?.["literal"] ?? child?.["type"]?.["value"];
|
|
2418
|
-
})?.filter((child) => child) ?? [];
|
|
2419
|
-
yield {
|
|
2420
|
-
kind,
|
|
2421
|
-
crumbs: [...crumbs, title],
|
|
2422
|
-
children,
|
|
2423
|
-
language,
|
|
2424
|
-
priority: 2,
|
|
2425
|
-
ident: schema && "ident" in schema ? schema?.["ident"] : void 0,
|
|
2426
|
-
...common
|
|
2427
|
-
};
|
|
2428
|
-
}
|
|
2429
|
-
}
|
|
2430
|
-
}
|
|
2431
|
-
for (const language of Languages) {
|
|
2432
|
-
const decls = spec.decls?.[language];
|
|
2433
|
-
if (!decls) continue;
|
|
2434
|
-
for (const decl of Object.values(decls)) switch (decl.kind) {
|
|
2435
|
-
case "JavaDeclProperty":
|
|
2436
|
-
case "GoDeclProperty":
|
|
2437
|
-
case "PythonDeclProperty":
|
|
2438
|
-
case "RubyDeclProperty":
|
|
2439
|
-
case "HttpDeclProperty":
|
|
2440
|
-
case "TSDeclProperty":
|
|
2441
|
-
{
|
|
2442
|
-
const parsedPath = parseStainlessPath(decl.stainlessPath);
|
|
2443
|
-
const type = includeTypes === false ? void 0 : typeName(language, decl.type);
|
|
2444
|
-
const name = decl["ident"] ?? decl["name"] ?? decl["key"];
|
|
2445
|
-
const parent = parentCrumbs[parsedPath.routable];
|
|
2446
|
-
if (parent === void 0) continue;
|
|
2447
|
-
const matches = decl.stainlessPath.matchAll(/\((property|params|param)\) ([^\s]+)/g);
|
|
2448
|
-
const props = Array.from(matches).map((p) => p[2]).filter((p) => p !== void 0);
|
|
2449
|
-
yield {
|
|
2450
|
-
kind: "property",
|
|
2451
|
-
name,
|
|
2452
|
-
stainlessPath: decl.stainlessPath,
|
|
2453
|
-
crumbs: [...parent, ...props],
|
|
2454
|
-
docstring: decl.docstring ? renderMarkdownFn?.(decl.docstring) ?? decl.docstring : void 0,
|
|
2455
|
-
type,
|
|
2456
|
-
language,
|
|
2457
|
-
priority: 3
|
|
2458
|
-
};
|
|
2459
|
-
}
|
|
2460
|
-
break;
|
|
2461
|
-
}
|
|
2462
|
-
}
|
|
2463
|
-
}
|
|
2464
|
-
|
|
2465
|
-
//#endregion
|
|
2466
|
-
//#region src/search/providers/algolia.ts
|
|
2467
|
-
async function buildIndex(appId, indexName, writeKey, spec, renderMarkdown$1) {
|
|
2468
|
-
if (!appId || !indexName || !writeKey) return;
|
|
2469
|
-
const objects = Array.from(generateIndex(spec, renderMarkdown$1));
|
|
2470
|
-
const client = searchClient(appId, writeKey);
|
|
2471
|
-
await client.setSettings({
|
|
2472
|
-
indexName,
|
|
2473
|
-
indexSettings: {
|
|
2474
|
-
highlightPreTag: "<mark>",
|
|
2475
|
-
highlightPostTag: "</mark>",
|
|
2476
|
-
customRanking: ["asc(priority)"],
|
|
2477
|
-
attributesForFaceting: ["language", "kind"],
|
|
2478
|
-
searchableAttributes: [...SearchableAttributes]
|
|
2479
|
-
}
|
|
2480
|
-
});
|
|
2481
|
-
await client.replaceAllObjects({
|
|
2482
|
-
indexName,
|
|
2483
|
-
objects
|
|
2484
|
-
});
|
|
2485
|
-
}
|
|
2486
|
-
async function buildChatIndex(appId, indexName, writeKey, spec) {
|
|
2487
|
-
if (!appId || !indexName || !writeKey) return;
|
|
2488
|
-
const objects = Array.from(generateChatIndex(spec));
|
|
2489
|
-
const client = searchClient(appId, writeKey);
|
|
2490
|
-
await client.setSettings({
|
|
2491
|
-
indexName,
|
|
2492
|
-
indexSettings: {
|
|
2493
|
-
attributesForFaceting: ["language"],
|
|
2494
|
-
attributeForDistinct: "stainlessPath",
|
|
2495
|
-
searchableAttributes: SearchableAttributesChat
|
|
2496
|
-
}
|
|
2497
|
-
});
|
|
2498
|
-
await client.replaceAllObjects({
|
|
2499
|
-
indexName,
|
|
2500
|
-
objects
|
|
2501
|
-
});
|
|
2502
|
-
}
|
|
2503
|
-
async function search({ settings: { appId, indexName, searchKey }, params: { query, language, kind } }) {
|
|
2504
|
-
const client = searchClient(appId, searchKey);
|
|
2505
|
-
const filters = language ? `language:${language}` : void 0;
|
|
2506
|
-
const facetFilters = kind ? [`kind:${kind}`] : void 0;
|
|
2507
|
-
const { results } = await client.search({ requests: [{
|
|
2508
|
-
query,
|
|
2509
|
-
indexName,
|
|
2510
|
-
filters,
|
|
2511
|
-
hitsPerPage: 5,
|
|
2512
|
-
facets: ["kind"]
|
|
2513
|
-
}, {
|
|
2514
|
-
query,
|
|
2515
|
-
indexName,
|
|
2516
|
-
filters,
|
|
2517
|
-
facetFilters,
|
|
2518
|
-
facets: ["kind"],
|
|
2519
|
-
hitsPerPage: 50
|
|
2520
|
-
}] });
|
|
2521
|
-
if ("hits" in results[0] && "hits" in results[1]) {
|
|
2522
|
-
const [{ nbHits, facets }, { hits }] = results;
|
|
2523
|
-
return {
|
|
2524
|
-
hits,
|
|
2525
|
-
nbHits: nbHits ?? 0,
|
|
2526
|
-
facets
|
|
2527
|
-
};
|
|
2528
|
-
}
|
|
2529
|
-
}
|
|
2530
|
-
|
|
2531
|
-
//#endregion
|
|
2532
|
-
//#region src/contexts/search.tsx
|
|
2533
|
-
const [Provider, useSearchContext] = createStrictContext("SearchContext");
|
|
2534
|
-
function useSearch() {
|
|
2535
|
-
const { settings } = useSearchContext();
|
|
2536
|
-
return (params) => search({
|
|
2537
|
-
settings,
|
|
2538
|
-
params
|
|
2539
|
-
});
|
|
2540
|
-
}
|
|
2541
|
-
function SearchProvider({ children,...props }) {
|
|
2542
|
-
return <Provider value={props}>{children}</Provider>;
|
|
2543
|
-
}
|
|
2544
|
-
|
|
2545
|
-
//#endregion
|
|
2546
|
-
//#region src/contexts/index.tsx
|
|
2547
|
-
var contexts_exports = /* @__PURE__ */ __export({
|
|
2548
|
-
ComponentProvider: () => ComponentProvider$1,
|
|
2549
|
-
DocsProvider: () => DocsProvider,
|
|
2550
|
-
MarkdownContext: () => MarkdownContext,
|
|
2551
|
-
MarkdownProvider: () => MarkdownProvider,
|
|
2552
|
-
NavigationProvider: () => NavigationProvider,
|
|
2553
|
-
SearchProvider: () => SearchProvider,
|
|
2554
|
-
customizeComponents: () => customizeComponents,
|
|
2555
|
-
useComponentContext: () => useComponentContext,
|
|
2556
|
-
useComponents: () => useComponents$1,
|
|
2557
|
-
useContentPanelLayout: () => useContentPanelLayout,
|
|
2558
|
-
useDeclaration: () => useDeclaration,
|
|
2559
|
-
useDocs: () => useDocs,
|
|
2560
|
-
useHighlight: () => useHighlight,
|
|
2561
|
-
useLanguage: () => useLanguage,
|
|
2562
|
-
useLanguageComponents: () => useLanguageComponents,
|
|
2563
|
-
useMarkdownContext: () => useMarkdownContext,
|
|
2564
|
-
useNavigation: () => useNavigation,
|
|
2565
|
-
useRenderMarkdown: () => useRenderMarkdown,
|
|
2566
|
-
useResource: () => useResource,
|
|
2567
|
-
useSearch: () => useSearch,
|
|
2568
|
-
useSearchContext: () => useSearchContext,
|
|
2569
|
-
useSettings: () => useSettings,
|
|
2570
|
-
useSnippet: () => useSnippet,
|
|
2571
|
-
useSpec: () => useSpec
|
|
2572
|
-
});
|
|
2573
|
-
function useLanguageComponents() {
|
|
2574
|
-
const language = useLanguage();
|
|
2575
|
-
const definition = useComponentContext().language[language];
|
|
2576
|
-
if (!definition) throw new Error(`Language component definition not found for language: ${language}`);
|
|
2577
|
-
return definition;
|
|
2578
|
-
}
|
|
2579
|
-
|
|
2580
|
-
//#endregion
|
|
2581
|
-
export { TypeName$5 as $, PropertyDescription as $t, ruby_exports as A, SDKRequestTitle as At, Type$3 as B, Markdown as Bt, TypeName as C, SDKIcon as Ct, Property$1 as D, SDKMethodInfo as Dt, MethodSignature$1 as E, SDKMethodHeader as Et, TypeName$2 as F, Expander as Ft, Property$4 as G, HttpMethods as Gt, go_exports as H, Tooltip as Ht, python_exports as I, Input as It, java_exports as J, MethodHeader as Jt, Type$4 as K, Method as Kt, Declaration$3 as L, Join as Lt, MethodSignature$2 as M, usePropertyModel as Mt, Property$2 as N, useReferenceNesting as Nt, Type$1 as O, SDKModel as Ot, Type$2 as P, Badge as Pt, Type$5 as Q, Property$6 as Qt, MethodSignature$3 as R, Link as Rt, Type as S, SDKExample as St, Declaration$1 as T, SDKMethod as Tt, Declaration$4 as U, VirtualExpander as Ut, TypeName$3 as V, ToggleButton as Vt, MethodSignature$4 as W, HttpMethodIcons as Wt, MethodSignature$5 as X, MethodInfo$1 as Xt, Declaration$5 as Y, MethodIconBadge as Yt, Property$5 as Z, MethodRoute as Zt, node as _, PropertyModelContext as _t, useSearchContext as a, SidebarResource as at, MethodSignature as b, SDKConstraints as bt, search as c, SDKOverview as ct, render as d, SDKRoot as dt, PropertyToggle as en, typescript_exports as et, renderMarkdown as f, Snippet as ft, languages_exports as g, SnippetResponse as gt, kotlin as h, SnippetRequestContainer as ht, useSearch as i, SidebarMethod as it, Declaration$2 as j, SDKSnippetLanguages as jt, TypeName$1 as k, SDKReference as kt, generateIndex as l, SDKResource as lt, defaultContextValue as m, SnippetContainer as mt, useLanguageComponents as n, Sidebar as nt, buildChatIndex as o, SDKBreadcrumbs as ot, ComponentProvider as p, SnippetCode as pt, TypeName$4 as q, MethodDescription as qt, SearchProvider as r, SidebarExpander as rt, buildIndex as s, SDKMethodSummary as st, contexts_exports as t, components_exports as tt, declaration as u, SDKResourceHeader as ut, Declaration as v, ReferenceNestingContext as vt, http_exports as w, SDKLanguageBlock as wt, Property as x, SDKDeclaration as xt, MethodInfo as y, SDKChildren as yt, Property$3 as z, ListView as zt };
|