@stainless-api/docs-ui 0.1.0-beta.1 → 0.1.0-beta.10
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/components/breadcrumbs.d.ts +11 -0
- package/dist/components/breadcrumbs.js +52 -0
- package/dist/components/breadcrumbs.js.map +1 -0
- package/dist/components/chat.d.ts +6 -0
- package/dist/components/chat.js +80 -0
- package/dist/components/chat.js.map +1 -0
- package/dist/components/dropdown.d.ts +17 -0
- package/dist/components/dropdown.js +18 -0
- package/dist/components/dropdown.js.map +1 -0
- package/dist/components/icons.d.ts +27 -0
- package/dist/components/icons.js +34 -0
- package/dist/components/icons.js.map +1 -0
- package/dist/components/index.d.ts +9 -0
- package/dist/components/index.js +10 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/method.d.ts +41 -0
- package/dist/components/method.js +44 -0
- package/dist/components/method.js.map +1 -0
- package/dist/components/overview.d.ts +21 -0
- package/dist/components/overview.js +49 -0
- package/dist/components/overview.js.map +1 -0
- package/dist/components/primitives.d.ts +60 -0
- package/dist/components/primitives.js +117 -0
- package/dist/components/primitives.js.map +1 -0
- package/dist/components/properties.d.ts +24 -0
- package/dist/components/properties.js +24 -0
- package/dist/components/properties.js.map +1 -0
- package/dist/components/scripts/dropdown.d.ts +5 -0
- package/dist/components/scripts/dropdown.js +64 -0
- package/dist/components/scripts/dropdown.js.map +1 -0
- package/dist/components/sdk.d.ts +78 -0
- package/dist/components/sdk.js +153 -0
- package/dist/components/sdk.js.map +1 -0
- package/dist/components/sidebar.d.ts +22 -0
- package/dist/components/sidebar.js +30 -0
- package/dist/components/sidebar.js.map +1 -0
- package/dist/components/snippets.d.ts +28 -0
- package/dist/components/snippets.js +76 -0
- package/dist/components/snippets.js.map +1 -0
- package/dist/contexts/component-generics.d.ts +25 -0
- package/dist/contexts/component-generics.js +24 -0
- package/dist/contexts/component-generics.js.map +1 -0
- package/dist/contexts/component-types.d.ts +4 -0
- package/dist/contexts/component-types.js +2 -0
- package/dist/contexts/component-types.js.map +1 -0
- package/dist/contexts/component.d.ts +14 -0
- package/dist/contexts/component.js +14 -0
- package/dist/contexts/component.js.map +1 -0
- package/dist/contexts/docs.d.ts +34 -0
- package/dist/contexts/docs.js +43 -0
- package/dist/contexts/docs.js.map +1 -0
- package/dist/contexts/index.d.ts +7 -0
- package/dist/contexts/index.js +15 -0
- package/dist/contexts/index.js.map +1 -0
- package/dist/contexts/markdown.d.ts +13 -0
- package/dist/contexts/markdown.js +29 -0
- package/dist/contexts/markdown.js.map +1 -0
- package/dist/contexts/navigation.d.ts +19 -0
- package/dist/contexts/navigation.js +14 -0
- package/dist/contexts/navigation.js.map +1 -0
- package/dist/contexts/search.d.ts +13 -0
- package/dist/contexts/search.js +15 -0
- package/dist/contexts/search.js.map +1 -0
- package/dist/contexts/use-components.d.ts +1 -0
- package/dist/contexts/use-components.js +3 -0
- package/dist/contexts/use-components.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +7 -7542
- package/dist/index.js.map +1 -0
- package/dist/languages/go.d.ts +21 -0
- package/dist/languages/go.js +116 -0
- package/dist/languages/go.js.map +1 -0
- package/dist/languages/http.d.ts +25 -0
- package/dist/languages/http.js +130 -0
- package/dist/languages/http.js.map +1 -0
- package/dist/languages/index.d.ts +37 -0
- package/dist/languages/index.js +10 -0
- package/dist/languages/index.js.map +1 -0
- package/dist/languages/java.d.ts +23 -0
- package/dist/languages/java.js +120 -0
- package/dist/languages/java.js.map +1 -0
- package/dist/languages/python.d.ts +22 -0
- package/dist/languages/python.js +104 -0
- package/dist/languages/python.js.map +1 -0
- package/dist/languages/ruby.d.ts +22 -0
- package/dist/languages/ruby.js +125 -0
- package/dist/languages/ruby.js.map +1 -0
- package/dist/languages/typescript.d.ts +22 -0
- package/dist/languages/typescript.js +134 -0
- package/dist/languages/typescript.js.map +1 -0
- package/dist/markdown/index.d.ts +6 -0
- package/dist/markdown/index.js +80 -0
- package/dist/markdown/index.js.map +1 -0
- package/dist/markdown/md.d.ts +11 -0
- package/dist/markdown/md.js +34 -0
- package/dist/markdown/md.js.map +1 -0
- package/dist/markdown/utils.d.ts +17 -0
- package/dist/markdown/utils.js +30 -0
- package/dist/markdown/utils.js.map +1 -0
- package/dist/mcp.js +678 -576
- package/dist/routing.d.ts +44 -0
- package/dist/routing.js +149 -160
- package/dist/routing.js.map +1 -0
- package/dist/search/form.d.ts +13 -0
- package/dist/search/form.js +55 -0
- package/dist/search/form.js.map +1 -0
- package/dist/search/index.d.ts +1 -0
- package/dist/search/index.js +2 -0
- package/dist/search/index.js.map +1 -0
- package/dist/search/indexer.d.ts +31 -0
- package/dist/search/indexer.js +212 -0
- package/dist/search/indexer.js.map +1 -0
- package/dist/search/mcp.d.ts +8 -0
- package/dist/search/mcp.js +43 -0
- package/dist/search/mcp.js.map +1 -0
- package/dist/search/printer.d.ts +6 -0
- package/dist/search/printer.js +43 -0
- package/dist/search/printer.js.map +1 -0
- package/dist/search/providers/algolia.d.ts +8 -0
- package/dist/search/providers/algolia.js +64 -0
- package/dist/search/providers/algolia.js.map +1 -0
- package/dist/search/providers/fuse.d.ts +10 -0
- package/dist/search/providers/fuse.js +14 -0
- package/dist/search/providers/fuse.js.map +1 -0
- package/dist/search/providers/pagefind.d.ts +2 -0
- package/dist/search/providers/pagefind.js +19 -0
- package/dist/search/providers/pagefind.js.map +1 -0
- package/dist/search/providers/walker.d.ts +5 -0
- package/dist/search/providers/walker.js +23 -0
- package/dist/search/providers/walker.js.map +1 -0
- package/dist/search/results.d.ts +21 -0
- package/dist/search/results.js +58 -0
- package/dist/search/results.js.map +1 -0
- package/dist/search/state.d.ts +29 -0
- package/dist/search/state.js +38 -0
- package/dist/search/state.js.map +1 -0
- package/dist/search/types.d.ts +79 -0
- package/dist/search/types.js +24 -0
- package/dist/search/types.js.map +1 -0
- package/dist/style.d.ts +179 -0
- package/dist/style.js +179 -0
- package/dist/style.js.map +1 -0
- package/dist/styles/primitives.css +1 -0
- package/dist/types/sdkjson.d.ts +1 -0
- package/dist/types/sdkjson.js +2 -0
- package/dist/types/sdkjson.js.map +1 -0
- package/dist/types/stainless-alias/lib/json-spec-v2/GoAST.d.ts +120 -0
- package/dist/types/stainless-alias/lib/json-spec-v2/GoAST.js +2 -0
- package/dist/types/stainless-alias/lib/json-spec-v2/GoAST.js.map +1 -0
- package/dist/types/stainless-alias/lib/json-spec-v2/HttpAST.d.ts +100 -0
- package/dist/types/stainless-alias/lib/json-spec-v2/HttpAST.js +3 -0
- package/dist/types/stainless-alias/lib/json-spec-v2/HttpAST.js.map +1 -0
- package/dist/types/stainless-alias/lib/json-spec-v2/JavaAST.d.ts +87 -0
- package/dist/types/stainless-alias/lib/json-spec-v2/JavaAST.js +2 -0
- package/dist/types/stainless-alias/lib/json-spec-v2/JavaAST.js.map +1 -0
- package/dist/types/stainless-alias/lib/json-spec-v2/PythonAST.d.ts +110 -0
- package/dist/types/stainless-alias/lib/json-spec-v2/PythonAST.js +3 -0
- package/dist/types/stainless-alias/lib/json-spec-v2/PythonAST.js.map +1 -0
- package/dist/types/stainless-alias/lib/json-spec-v2/RubyAST.d.ts +122 -0
- package/dist/types/stainless-alias/lib/json-spec-v2/RubyAST.js +2 -0
- package/dist/types/stainless-alias/lib/json-spec-v2/RubyAST.js.map +1 -0
- package/dist/types/stainless-alias/lib/json-spec-v2/TSAST.d.ts +146 -0
- package/dist/types/stainless-alias/lib/json-spec-v2/TSAST.js +3 -0
- package/dist/types/stainless-alias/lib/json-spec-v2/TSAST.js.map +1 -0
- package/dist/types/stainless-alias/lib/json-spec-v2/TerraformAST.d.ts +89 -0
- package/dist/types/stainless-alias/lib/json-spec-v2/TerraformAST.js +3 -0
- package/dist/types/stainless-alias/lib/json-spec-v2/TerraformAST.js.map +1 -0
- package/dist/types/stainless-alias/lib/json-spec-v2/types.d.ts +190 -0
- package/dist/types/stainless-alias/lib/json-spec-v2/types.js +105 -0
- package/dist/types/stainless-alias/lib/json-spec-v2/types.js.map +1 -0
- package/dist/utils.d.ts +7 -0
- package/dist/utils.js +27 -0
- package/dist/utils.js.map +1 -0
- package/package.json +8 -7
- package/src/components/method.tsx +4 -2
- package/src/components/overview.tsx +1 -0
- package/src/components/sdk.tsx +3 -2
- package/src/components/snippets.tsx +3 -2
- package/src/search/results.tsx +1 -0
- package/src/style.ts +0 -1
- package/src/styles/main.css +739 -746
- package/src/styles/primitives.css +435 -427
- package/src/styles/resets.css +33 -41
- package/src/styles/search.css +247 -248
- package/src/styles/sidebar.css +58 -60
- package/src/styles/snippets.css +86 -88
- package/src/styles/variables.css +85 -89
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import { generateRoute, Languages, parseStainlessPath, walkTree } from '../routing';
|
|
2
|
+
import * as printer from './printer';
|
|
3
|
+
import { renderMarkdown } from '../markdown';
|
|
4
|
+
// function sanitizeTerraformType(key: string, value: any) {
|
|
5
|
+
// return typeof value === "number" && !Number.isSafeInteger(value)
|
|
6
|
+
// ? value.toString()
|
|
7
|
+
// : value;
|
|
8
|
+
// }
|
|
9
|
+
export function getResourceNames(resourceIds, topResources) {
|
|
10
|
+
let element = undefined;
|
|
11
|
+
let resources = topResources;
|
|
12
|
+
const resourceName = [];
|
|
13
|
+
for (const resource of resourceIds) {
|
|
14
|
+
element = resources?.[resource];
|
|
15
|
+
if (!element)
|
|
16
|
+
break;
|
|
17
|
+
resourceName.push(element.title);
|
|
18
|
+
resources = element?.subresources;
|
|
19
|
+
}
|
|
20
|
+
return resourceName;
|
|
21
|
+
}
|
|
22
|
+
function chunkByLines(content, maxSize = 60000) {
|
|
23
|
+
if (Buffer.byteLength(content, 'utf8') < maxSize)
|
|
24
|
+
return [content];
|
|
25
|
+
const lines = content.split('\n');
|
|
26
|
+
const chunks = [];
|
|
27
|
+
let currentChunk = [];
|
|
28
|
+
let currentSize = 0;
|
|
29
|
+
for (const line of lines) {
|
|
30
|
+
const lineSize = Buffer.byteLength(line + '\n', 'utf8');
|
|
31
|
+
if (currentSize + lineSize > maxSize) {
|
|
32
|
+
chunks.push(currentChunk.join('\n'));
|
|
33
|
+
currentChunk = [];
|
|
34
|
+
currentSize = 0;
|
|
35
|
+
}
|
|
36
|
+
currentChunk.push(line);
|
|
37
|
+
currentSize += lineSize;
|
|
38
|
+
}
|
|
39
|
+
if (currentChunk.length > 0)
|
|
40
|
+
chunks.push(currentChunk.join('\n'));
|
|
41
|
+
return chunks;
|
|
42
|
+
}
|
|
43
|
+
export function* generateChatIndex(spec) {
|
|
44
|
+
for (const [language, readme] of Object.entries(spec.readme)) {
|
|
45
|
+
const chunks = chunkByLines(readme);
|
|
46
|
+
for (const chunk of chunks) {
|
|
47
|
+
yield {
|
|
48
|
+
language,
|
|
49
|
+
title: 'Overview',
|
|
50
|
+
content: chunk,
|
|
51
|
+
url: `docs://BASE_PATH/${language}`,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
for (const { data } of walkTree(spec)) {
|
|
56
|
+
if (data.kind !== 'http_method')
|
|
57
|
+
continue;
|
|
58
|
+
const { title, name, stainlessPath, httpMethod, summary, description } = data;
|
|
59
|
+
const endpoint = data.endpoint.slice(httpMethod.length).trim();
|
|
60
|
+
for (const language of Languages) {
|
|
61
|
+
const decl = spec.decls[language]?.[stainlessPath];
|
|
62
|
+
if (!decl)
|
|
63
|
+
continue;
|
|
64
|
+
const env = {
|
|
65
|
+
spec,
|
|
66
|
+
language,
|
|
67
|
+
options: {
|
|
68
|
+
includeModelProperties: true,
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
const content = renderMarkdown(env, data);
|
|
72
|
+
const chunks = chunkByLines(content);
|
|
73
|
+
for (const chunk of chunks) {
|
|
74
|
+
yield {
|
|
75
|
+
language,
|
|
76
|
+
title,
|
|
77
|
+
name,
|
|
78
|
+
endpoint,
|
|
79
|
+
httpMethod,
|
|
80
|
+
summary,
|
|
81
|
+
description,
|
|
82
|
+
stainlessPath,
|
|
83
|
+
qualified: decl['qualified'],
|
|
84
|
+
ident: decl['ident'],
|
|
85
|
+
content: chunk,
|
|
86
|
+
url: generateRoute('docs://BASE_PATH', language, stainlessPath),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
export function* generateIndex(spec, renderMarkdownFn, includeTypes) {
|
|
93
|
+
const parentCrumbs = {};
|
|
94
|
+
for (const { data } of walkTree(spec, true)) {
|
|
95
|
+
const { kind, name, title, stainlessPath } = data;
|
|
96
|
+
const common = { name, title, stainlessPath };
|
|
97
|
+
const parsedPath = parseStainlessPath(stainlessPath);
|
|
98
|
+
const crumbs = getResourceNames(parsedPath.resource, spec.resources);
|
|
99
|
+
switch (kind) {
|
|
100
|
+
case 'resource':
|
|
101
|
+
for (const language of Languages) {
|
|
102
|
+
if (!data[language])
|
|
103
|
+
continue;
|
|
104
|
+
parentCrumbs[stainlessPath] = crumbs;
|
|
105
|
+
const { Name, QualifiedName } = data[language];
|
|
106
|
+
yield {
|
|
107
|
+
kind,
|
|
108
|
+
crumbs,
|
|
109
|
+
language,
|
|
110
|
+
Name,
|
|
111
|
+
QualifiedName,
|
|
112
|
+
priority: 0,
|
|
113
|
+
...common,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
break;
|
|
117
|
+
case 'http_method': {
|
|
118
|
+
const { summary, endpoint, httpMethod } = data;
|
|
119
|
+
for (const language of Languages) {
|
|
120
|
+
const found = spec.decls[language]?.[stainlessPath];
|
|
121
|
+
if (!found)
|
|
122
|
+
continue;
|
|
123
|
+
parentCrumbs[stainlessPath] = [...crumbs, title];
|
|
124
|
+
const qualified = found['qualified'];
|
|
125
|
+
const ident = qualified?.split('.')?.at(-1);
|
|
126
|
+
yield {
|
|
127
|
+
kind,
|
|
128
|
+
crumbs: [...crumbs, title],
|
|
129
|
+
ident,
|
|
130
|
+
qualified,
|
|
131
|
+
language,
|
|
132
|
+
description: renderMarkdownFn?.(data.description) ?? data.description,
|
|
133
|
+
endpoint: endpoint.slice(httpMethod.length).trim(),
|
|
134
|
+
httpMethod,
|
|
135
|
+
summary,
|
|
136
|
+
priority: 0,
|
|
137
|
+
...common,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
case 'model':
|
|
143
|
+
for (const language of Languages) {
|
|
144
|
+
if (!spec.decls[language])
|
|
145
|
+
continue;
|
|
146
|
+
parentCrumbs[stainlessPath] = [...crumbs, title];
|
|
147
|
+
const schema = spec.decls[language]?.[`${stainlessPath} > (schema)`];
|
|
148
|
+
const children = schema?.['children']
|
|
149
|
+
?.map((childPath) => {
|
|
150
|
+
const child = spec.decls?.[language]?.[childPath];
|
|
151
|
+
return (child?.['ident'] ??
|
|
152
|
+
child?.['name'] ??
|
|
153
|
+
child?.['key'] ??
|
|
154
|
+
child?.['type']?.['literal']?.['value'] ??
|
|
155
|
+
child?.['type']?.['literal'] ??
|
|
156
|
+
child?.['type']?.['value']);
|
|
157
|
+
})
|
|
158
|
+
?.filter((child) => child) ?? [];
|
|
159
|
+
yield {
|
|
160
|
+
kind,
|
|
161
|
+
crumbs: [...crumbs, title],
|
|
162
|
+
children,
|
|
163
|
+
language,
|
|
164
|
+
priority: 2,
|
|
165
|
+
ident: schema?.['ident'],
|
|
166
|
+
...common,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
for (const language of Languages) {
|
|
172
|
+
const decls = spec.decls?.[language];
|
|
173
|
+
if (!decls)
|
|
174
|
+
continue;
|
|
175
|
+
for (const decl of Object.values(decls)) {
|
|
176
|
+
switch (decl.kind) {
|
|
177
|
+
// case "TerraformDeclAttribute":
|
|
178
|
+
case 'JavaDeclProperty':
|
|
179
|
+
case 'GoDeclProperty':
|
|
180
|
+
case 'PythonDeclProperty':
|
|
181
|
+
case 'RubyDeclProperty':
|
|
182
|
+
case 'HttpDeclProperty':
|
|
183
|
+
case 'TSDeclProperty':
|
|
184
|
+
{
|
|
185
|
+
const parsedPath = parseStainlessPath(decl.stainlessPath);
|
|
186
|
+
const type = includeTypes === false ? undefined : printer.typeName(language, decl.type);
|
|
187
|
+
const name = decl['ident'] ?? decl['name'] ?? decl['key'];
|
|
188
|
+
const parent = parentCrumbs[parsedPath.routable];
|
|
189
|
+
// Filter out properties of non-routable response types
|
|
190
|
+
if (parent === undefined)
|
|
191
|
+
continue;
|
|
192
|
+
const matches = decl.stainlessPath.matchAll(/\((property|params|param)\) ([^\s]+)/g);
|
|
193
|
+
const props = Array.from(matches)
|
|
194
|
+
.map((p) => p[2])
|
|
195
|
+
.filter((p) => p !== undefined);
|
|
196
|
+
yield {
|
|
197
|
+
kind: 'property',
|
|
198
|
+
name,
|
|
199
|
+
stainlessPath: decl.stainlessPath,
|
|
200
|
+
crumbs: [...parent, ...props],
|
|
201
|
+
docstring: renderMarkdownFn?.(decl.docstring) ?? decl.docstring,
|
|
202
|
+
type,
|
|
203
|
+
language,
|
|
204
|
+
priority: 3,
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
break;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
//# sourceMappingURL=indexer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/search/indexer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DocsLanguage } from '../routing';
|
|
2
|
+
import { buildIndex } from './providers/fuse';
|
|
3
|
+
import type { IndexEntry } from './types';
|
|
4
|
+
import type { SDKJSON } from '../types/sdkjson';
|
|
5
|
+
export declare function consolidate(results: IndexEntry[]): string[];
|
|
6
|
+
export declare function render(spec: SDKJSON.Spec, language: DocsLanguage, items: IndexEntry[], includeModelProperties: boolean): any;
|
|
7
|
+
export declare function searchAndRender(spec: SDKJSON.Spec, language: DocsLanguage, query: string, limit?: number, includeModelProperties?: boolean): any;
|
|
8
|
+
export { buildIndex };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { renderMarkdown } from '../markdown';
|
|
2
|
+
import { parseStainlessPath } from '../routing';
|
|
3
|
+
import { getResourceFromSpec } from '../utils';
|
|
4
|
+
import { buildIndex, search } from './providers/fuse';
|
|
5
|
+
export function consolidate(results) {
|
|
6
|
+
const resources = new Set();
|
|
7
|
+
const methods = new Set();
|
|
8
|
+
for (const entry of results) {
|
|
9
|
+
const parsed = parseStainlessPath(entry.stainlessPath);
|
|
10
|
+
if (parsed.method)
|
|
11
|
+
methods.add(parsed.routable);
|
|
12
|
+
else
|
|
13
|
+
resources.add(parsed.routable);
|
|
14
|
+
}
|
|
15
|
+
const filtered = Array.from(methods).filter((path) => !resources.has(path.split(' >').at(0)));
|
|
16
|
+
return [...resources, ...filtered];
|
|
17
|
+
}
|
|
18
|
+
export function render(spec, language, items, includeModelProperties) {
|
|
19
|
+
const env = {
|
|
20
|
+
spec,
|
|
21
|
+
language,
|
|
22
|
+
options: {
|
|
23
|
+
renderNestedResources: false,
|
|
24
|
+
includeModelProperties,
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
const paths = consolidate(items);
|
|
28
|
+
const output = paths.map((entry) => {
|
|
29
|
+
const parsed = parseStainlessPath(entry);
|
|
30
|
+
const resource = getResourceFromSpec(parsed.resource, spec);
|
|
31
|
+
const target = parsed.method ? resource.methods[parsed.method] : resource;
|
|
32
|
+
const content = renderMarkdown(env, target);
|
|
33
|
+
return [entry, content];
|
|
34
|
+
});
|
|
35
|
+
return Object.fromEntries(output);
|
|
36
|
+
}
|
|
37
|
+
export function searchAndRender(spec, language, query, limit, includeModelProperties = false) {
|
|
38
|
+
const idx = buildIndex(spec, language);
|
|
39
|
+
const results = search(idx, query, limit).map(({ item }) => item);
|
|
40
|
+
return render(spec, language, results, includeModelProperties);
|
|
41
|
+
}
|
|
42
|
+
export { buildIndex };
|
|
43
|
+
//# sourceMappingURL=mcp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/search/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAgB,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAItD,MAAM,UAAU,WAAW,CAAC,OAAqB;IAC/C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACvD,IAAI,MAAM,CAAC,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;;YAC3C,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9F,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,IAAkB,EAClB,QAAsB,EACtB,KAAmB,EACnB,sBAA+B;IAE/B,MAAM,GAAG,GAAG;QACV,IAAI;QACJ,QAAQ;QACR,OAAO,EAAE;YACP,qBAAqB,EAAE,KAAK;YAC5B,sBAAsB;SACvB;KACF,CAAC;IAEF,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACjC,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC1E,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC5C,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,IAAkB,EAClB,QAAsB,EACtB,KAAa,EACb,KAAc,EACd,yBAAkC,KAAK;IAEvC,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAClE,OAAO,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,sBAAsB,CAAC,CAAC;AACjE,CAAC;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { SDKJSON } from '../types/sdkjson';
|
|
2
|
+
import type { DocsLanguage } from '../routing';
|
|
3
|
+
export declare function typeName(language: DocsLanguage, type: SDKJSON.Type): string;
|
|
4
|
+
export declare function type(language: DocsLanguage, type: SDKJSON.Type): string;
|
|
5
|
+
export declare function declaration(language: DocsLanguage, decl: SDKJSON.DeclarationNode): string;
|
|
6
|
+
export declare function methodSignature(language: DocsLanguage, decl: SDKJSON.DeclarationNode): string;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { renderToStaticMarkup } from 'react-dom/server';
|
|
3
|
+
import { DocsProvider, useLanguageComponents } from '../contexts';
|
|
4
|
+
import style from '../style';
|
|
5
|
+
import { ComponentProvider } from '../contexts/component';
|
|
6
|
+
function Providers({ language, children }) {
|
|
7
|
+
return (_jsx(DocsProvider, { spec: null, language: language, children: _jsx(ComponentProvider, { components: {
|
|
8
|
+
SDKReference({ stainlessPath, children }) {
|
|
9
|
+
if (!stainlessPath)
|
|
10
|
+
return children;
|
|
11
|
+
return _jsx("span", { className: style.TypeReference, children: children });
|
|
12
|
+
},
|
|
13
|
+
}, children: children }) }));
|
|
14
|
+
}
|
|
15
|
+
function RenderType({ type, full }) {
|
|
16
|
+
const { Type, TypeName } = useLanguageComponents();
|
|
17
|
+
return full ? _jsx(Type, { type: type }) : _jsx(TypeName, { type: type });
|
|
18
|
+
}
|
|
19
|
+
export function typeName(language, type) {
|
|
20
|
+
const component = (_jsx(Providers, { language: language, children: _jsx(RenderType, { type: type }) }));
|
|
21
|
+
return renderToStaticMarkup(component);
|
|
22
|
+
}
|
|
23
|
+
export function type(language, type) {
|
|
24
|
+
const component = (_jsx(Providers, { language: language, children: _jsx(RenderType, { type: type, full: true }) }));
|
|
25
|
+
return renderToStaticMarkup(component);
|
|
26
|
+
}
|
|
27
|
+
function RenderDeclaration({ decl }) {
|
|
28
|
+
const { Declaration } = useLanguageComponents();
|
|
29
|
+
return _jsx(Declaration, { decl: decl });
|
|
30
|
+
}
|
|
31
|
+
export function declaration(language, decl) {
|
|
32
|
+
const component = (_jsx(Providers, { language: language, children: _jsx(RenderDeclaration, { decl: decl }) }));
|
|
33
|
+
return renderToStaticMarkup(component);
|
|
34
|
+
}
|
|
35
|
+
function RenderMethod({ method }) {
|
|
36
|
+
const { MethodSignature } = useLanguageComponents();
|
|
37
|
+
return _jsx(MethodSignature, { decl: method });
|
|
38
|
+
}
|
|
39
|
+
export function methodSignature(language, decl) {
|
|
40
|
+
const component = (_jsx(Providers, { language: language, children: _jsx(RenderMethod, { method: decl }) }));
|
|
41
|
+
return renderToStaticMarkup(component);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=printer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"printer.js","sourceRoot":"","sources":["../../src/search/printer.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAIxD,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAElE,OAAO,KAAK,MAAM,UAAU,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAO1D,SAAS,SAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAkB;IACvD,OAAO,CACL,KAAC,YAAY,IAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,YAC1C,KAAC,iBAAiB,IAChB,UAAU,EAAE;gBACV,YAAY,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE;oBACtC,IAAI,CAAC,aAAa;wBAAE,OAAO,QAAQ,CAAC;oBACpC,OAAO,eAAM,SAAS,EAAE,KAAK,CAAC,aAAa,YAAG,QAAQ,GAAQ,CAAC;gBACjE,CAAC;aACF,YAEA,QAAQ,GACS,GACP,CAChB,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAA0C;IACxE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,qBAAqB,EAAE,CAAC;IACnD,OAAO,IAAI,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC,CAAC,CAAC,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,QAAsB,EAAE,IAAkB;IACjE,MAAM,SAAS,GAAG,CAChB,KAAC,SAAS,IAAC,QAAQ,EAAE,QAAQ,YAC3B,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,GAAI,GAChB,CACb,CAAC;IAEF,OAAO,oBAAoB,CAAC,SAAS,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,QAAsB,EAAE,IAAkB;IAC7D,MAAM,SAAS,GAAG,CAChB,KAAC,SAAS,IAAC,QAAQ,EAAE,QAAQ,YAC3B,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAI,GAC5B,CACb,CAAC;IAEF,OAAO,oBAAoB,CAAC,SAAS,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,iBAAiB,CAAC,EAAE,IAAI,EAAqC;IACpE,MAAM,EAAE,WAAW,EAAE,GAAG,qBAAqB,EAAE,CAAC;IAChD,OAAO,KAAC,WAAW,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAsB,EAAE,IAA6B;IAC/E,MAAM,SAAS,GAAG,CAChB,KAAC,SAAS,IAAC,QAAQ,EAAE,QAAQ,YAC3B,KAAC,iBAAiB,IAAC,IAAI,EAAE,IAAI,GAAI,GACvB,CACb,CAAC;IAEF,OAAO,oBAAoB,CAAC,SAAS,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,YAAY,CAAC,EAAE,MAAM,EAAuC;IACnE,MAAM,EAAE,eAAe,EAAE,GAAG,qBAAqB,EAAE,CAAC;IACpD,OAAO,KAAC,eAAe,IAAC,IAAI,EAAE,MAAM,GAAI,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAsB,EAAE,IAA6B;IACnF,MAAM,SAAS,GAAG,CAChB,KAAC,SAAS,IAAC,QAAQ,EAAE,QAAQ,YAC3B,KAAC,YAAY,IAAC,MAAM,EAAE,IAAI,GAAI,GACpB,CACb,CAAC;IAEF,OAAO,oBAAoB,CAAC,SAAS,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SDKJSON } from '../../types/sdkjson';
|
|
2
|
+
import type { SearchSettings, SearchParams, ResultType } from '../types';
|
|
3
|
+
export declare function buildIndex(appId: string, indexName: string, writeKey: string, spec: SDKJSON.Spec, renderMarkdown: (string?: any) => string | null): Promise<void>;
|
|
4
|
+
export declare function buildChatIndex(appId: string, indexName: string, writeKey: string, spec: SDKJSON.Spec): Promise<void>;
|
|
5
|
+
export declare function search({ settings: { appId, indexName, searchKey }, params: { query, language, kind }, }: {
|
|
6
|
+
params: SearchParams;
|
|
7
|
+
settings: SearchSettings;
|
|
8
|
+
}): Promise<ResultType | undefined>;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { searchClient } from '@algolia/client-search';
|
|
2
|
+
import { generateChatIndex, generateIndex } from '../indexer';
|
|
3
|
+
import { SearchableAttributes, SearchableAttributesChat } from '../types';
|
|
4
|
+
export async function buildIndex(appId, indexName, writeKey, spec, renderMarkdown) {
|
|
5
|
+
if (!appId || !indexName || !writeKey)
|
|
6
|
+
return;
|
|
7
|
+
const objects = Array.from(generateIndex(spec, renderMarkdown));
|
|
8
|
+
const client = searchClient(appId, writeKey);
|
|
9
|
+
await client.setSettings({
|
|
10
|
+
indexName,
|
|
11
|
+
indexSettings: {
|
|
12
|
+
highlightPreTag: '<mark>',
|
|
13
|
+
highlightPostTag: '</mark>',
|
|
14
|
+
customRanking: ['asc(priority)'],
|
|
15
|
+
attributesForFaceting: ['language', 'kind'],
|
|
16
|
+
searchableAttributes: SearchableAttributes,
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
await client.replaceAllObjects({ indexName, objects });
|
|
20
|
+
}
|
|
21
|
+
export async function buildChatIndex(appId, indexName, writeKey, spec) {
|
|
22
|
+
if (!appId || !indexName || !writeKey)
|
|
23
|
+
return;
|
|
24
|
+
const objects = Array.from(generateChatIndex(spec));
|
|
25
|
+
const client = searchClient(appId, writeKey);
|
|
26
|
+
await client.setSettings({
|
|
27
|
+
indexName,
|
|
28
|
+
indexSettings: {
|
|
29
|
+
attributesForFaceting: ['language'],
|
|
30
|
+
attributeForDistinct: 'stainlessPath',
|
|
31
|
+
searchableAttributes: SearchableAttributesChat,
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
await client.replaceAllObjects({ indexName, objects });
|
|
35
|
+
}
|
|
36
|
+
export async function search({ settings: { appId, indexName, searchKey }, params: { query, language, kind }, }) {
|
|
37
|
+
const client = searchClient(appId, searchKey);
|
|
38
|
+
const filters = language ? `language:${language}` : undefined;
|
|
39
|
+
const facetFilters = kind ? [`kind:${kind}`] : undefined;
|
|
40
|
+
const { results } = await client.search({
|
|
41
|
+
requests: [
|
|
42
|
+
{
|
|
43
|
+
query,
|
|
44
|
+
indexName,
|
|
45
|
+
filters,
|
|
46
|
+
hitsPerPage: 5,
|
|
47
|
+
facets: ['kind'],
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
query,
|
|
51
|
+
indexName,
|
|
52
|
+
filters,
|
|
53
|
+
facetFilters,
|
|
54
|
+
facets: ['kind'],
|
|
55
|
+
hitsPerPage: 50,
|
|
56
|
+
},
|
|
57
|
+
],
|
|
58
|
+
});
|
|
59
|
+
if ('hits' in results[0] && 'hits' in results[1]) {
|
|
60
|
+
const [{ nbHits, facets }, { hits }] = results;
|
|
61
|
+
return { hits, nbHits, facets };
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=algolia.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"algolia.js","sourceRoot":"","sources":["../../../src/search/providers/algolia.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FuseIndex } from 'fuse.js';
|
|
2
|
+
import { DocsLanguage } from '../../routing';
|
|
3
|
+
import { IndexEntry } from '../types';
|
|
4
|
+
import type { SDKJSON } from '../../types/sdkjson';
|
|
5
|
+
export type FuseIndexData = {
|
|
6
|
+
content: IndexEntry[];
|
|
7
|
+
index: FuseIndex<IndexEntry>;
|
|
8
|
+
};
|
|
9
|
+
export declare function buildIndex(spec: SDKJSON.Spec, language?: DocsLanguage): FuseIndexData;
|
|
10
|
+
export declare function search({ content, index }: FuseIndexData, query: string, limit?: number): import("fuse.js").FuseResult<IndexEntry>[];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import Fuse from 'fuse.js';
|
|
2
|
+
import { generateIndex } from '../indexer';
|
|
3
|
+
import { SearchableAttributes } from '../types';
|
|
4
|
+
export function buildIndex(spec, language) {
|
|
5
|
+
const idx = Array.from(generateIndex(spec, null, false));
|
|
6
|
+
const content = language ? idx.filter((entry) => entry.language === language) : idx;
|
|
7
|
+
const index = Fuse.createIndex(SearchableAttributes, content);
|
|
8
|
+
return { content, index };
|
|
9
|
+
}
|
|
10
|
+
export function search({ content, index }, query, limit = 100) {
|
|
11
|
+
const fuse = new Fuse(content, { keys: SearchableAttributes }, index);
|
|
12
|
+
return fuse.search(query).slice(0, limit);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=fuse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fuse.js","sourceRoot":"","sources":["../../../src/search/providers/fuse.ts"],"names":[],"mappings":"AAAA,OAAO,IAAmB,MAAM,SAAS,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAc,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAK5D,MAAM,UAAU,UAAU,CAAC,IAAkB,EAAE,QAAuB;IACpE,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACpF,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IAC9D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAiB,EAAE,KAAa,EAAE,QAAgB,GAAG;IAC1F,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,KAAK,CAAC,CAAC;IACtE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
|
|
2
|
+
if (typeof path === "string" && /^\.\.?\//.test(path)) {
|
|
3
|
+
return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
|
|
4
|
+
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
|
|
5
|
+
});
|
|
6
|
+
}
|
|
7
|
+
return path;
|
|
8
|
+
};
|
|
9
|
+
async function loadPagefind(path) {
|
|
10
|
+
const url = new URL(path, import.meta.url).href;
|
|
11
|
+
return await import(__rewriteRelativeImportExtension(/* @vite-ignore */ url));
|
|
12
|
+
}
|
|
13
|
+
export async function guideSearch(loadPath, query, limit) {
|
|
14
|
+
const index = await loadPagefind(loadPath);
|
|
15
|
+
const response = await index.search(query);
|
|
16
|
+
const items = limit ? response.results.slice(0, limit) : response.results;
|
|
17
|
+
return Promise.all(items.map((result) => result.data().then((data) => ({ ...result, data }))));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=pagefind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagefind.js","sourceRoot":"","sources":["../../../src/search/providers/pagefind.ts"],"names":[],"mappings":";;;;;;;;AAEA,KAAK,UAAU,YAAY,CAAC,IAAY;IACtC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IAChD,OAAO,MAAM,MAAM,kCAAC,kBAAkB,CAAC,GAAG,EAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAgB,EAChB,KAAa,EACb,KAAc;IAEd,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC1E,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACjG,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { DocsLanguage } from '../../routing';
|
|
2
|
+
import { IndexEntry } from '../types';
|
|
3
|
+
import type { SDKJSON } from '../../types/sdkjson';
|
|
4
|
+
export declare function buildIndex(spec: SDKJSON.Spec): Generator<IndexEntry, any, any>;
|
|
5
|
+
export declare function search(index: Generator<IndexEntry>, language: DocsLanguage, query: string, limit?: number): IndexEntry[];
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { generateIndex } from '../indexer';
|
|
2
|
+
import { SearchableAttributes } from '../types';
|
|
3
|
+
export function buildIndex(spec) {
|
|
4
|
+
return generateIndex(spec, null, false);
|
|
5
|
+
}
|
|
6
|
+
function* findEntryInIndex(index, language, query) {
|
|
7
|
+
for (const entry of index) {
|
|
8
|
+
if (entry.language !== language)
|
|
9
|
+
continue;
|
|
10
|
+
for (const attr of SearchableAttributes) {
|
|
11
|
+
if (entry[attr] && typeof entry[attr] === 'string' && entry[attr].includes(query))
|
|
12
|
+
yield entry;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function search(index, language, query, limit = 100) {
|
|
17
|
+
const results = findEntryInIndex(index, language, query);
|
|
18
|
+
const sorted = Array.from(results)
|
|
19
|
+
.sort((a, b) => a.priority - b.priority)
|
|
20
|
+
.slice(0, limit);
|
|
21
|
+
return sorted;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=walker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walker.js","sourceRoot":"","sources":["../../../src/search/providers/walker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAc,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAG5D,MAAM,UAAU,UAAU,CAAC,IAAkB;IAC3C,OAAO,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1C,CAAC;AAED,QAAQ,CAAC,CAAC,gBAAgB,CAAC,KAA4B,EAAE,QAAgB,EAAE,KAAa;IACtF,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ;YAAE,SAAS;QAC1C,KAAK,MAAM,IAAI,IAAI,oBAAoB,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;QACjG,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,KAA4B,EAC5B,QAAsB,EACtB,KAAa,EACb,QAAgB,GAAG;IAEnB,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;SAC/B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;SACvC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACnB,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Folder } from 'lucide-react';
|
|
2
|
+
import { GuideResultType, QueryKindsType, ResultRecordType, SearchAttributeNames } from './types';
|
|
3
|
+
export declare const QueryKindDisplay: Record<QueryKindsType, {
|
|
4
|
+
name: string;
|
|
5
|
+
icon: typeof Folder;
|
|
6
|
+
}>;
|
|
7
|
+
export type HighlightProps = {
|
|
8
|
+
result: ResultRecordType;
|
|
9
|
+
name: SearchAttributeNames;
|
|
10
|
+
};
|
|
11
|
+
export declare function Highlight({ result, name }: HighlightProps): import("react/jsx-runtime").JSX.Element | undefined;
|
|
12
|
+
export type SearchResultProps = {
|
|
13
|
+
result: ResultRecordType;
|
|
14
|
+
};
|
|
15
|
+
export declare function SearchResultBreadcrumb({ result }: SearchResultProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export declare function SearchResult({ result }: SearchResultProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export type GuideResultProps = {
|
|
18
|
+
result: GuideResultType;
|
|
19
|
+
};
|
|
20
|
+
export declare function GuideResult({ result }: GuideResultProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export declare function SearchResultContent({ result }: SearchResultProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Folder, Box, Code, Wrench, BookOpenText, Search } from 'lucide-react';
|
|
3
|
+
import { useLanguage } from '../contexts';
|
|
4
|
+
import { useComponents } from '../contexts/use-components';
|
|
5
|
+
import style from '../style';
|
|
6
|
+
export const QueryKindDisplay = {
|
|
7
|
+
all: { name: 'Results', icon: Search },
|
|
8
|
+
resource: { name: 'Resources', icon: Folder },
|
|
9
|
+
http_method: { name: 'Methods', icon: Box },
|
|
10
|
+
model: { name: 'Types', icon: Code },
|
|
11
|
+
property: { name: 'Properties', icon: Wrench },
|
|
12
|
+
guide: { name: 'Guide', icon: BookOpenText },
|
|
13
|
+
};
|
|
14
|
+
export function Highlight({ result, name }) {
|
|
15
|
+
const value = result._highlightResult[name]?.value;
|
|
16
|
+
if (value)
|
|
17
|
+
return _jsx("span", { dangerouslySetInnerHTML: { __html: value } });
|
|
18
|
+
}
|
|
19
|
+
export function SearchResultBreadcrumb({ result }) {
|
|
20
|
+
const Docs = useComponents();
|
|
21
|
+
const Icon = QueryKindDisplay[result.kind].icon;
|
|
22
|
+
const items = result.crumbs?.map((crumb) => (_jsx("span", { className: style.SearchBreadcrumbItem, children: crumb }, crumb)));
|
|
23
|
+
return (_jsxs("div", { className: style.SearchBreadcrumb, children: [_jsx(Icon, { className: style.Icon, size: 14 }), Array.isArray(result.crumbs) && (_jsx(Docs.Join, { items: items, children: _jsx("span", { className: style.SearchBreadcrumbDivider, children: '›' }) }))] }));
|
|
24
|
+
}
|
|
25
|
+
export function SearchResult({ result }) {
|
|
26
|
+
return (_jsxs("div", { className: style.SearchResult, "data-stldocs-search-result": result.kind, children: [_jsx(SearchResultBreadcrumb, { result: result }), _jsx(SearchResultContent, { result: result })] }));
|
|
27
|
+
}
|
|
28
|
+
export function GuideResult({ result }) {
|
|
29
|
+
const Docs = useComponents();
|
|
30
|
+
const Icon = QueryKindDisplay['guide'].icon;
|
|
31
|
+
const path = result.data.url
|
|
32
|
+
.slice(1, -1)
|
|
33
|
+
.split('/')
|
|
34
|
+
.map((crumb) => (_jsx("span", { className: style.SearchBreadcrumbItem, children: crumb }, crumb)));
|
|
35
|
+
const crumbs = path.length > 1
|
|
36
|
+
? path
|
|
37
|
+
: [
|
|
38
|
+
_jsx("span", { className: style.SearchBreadcrumbItem, children: "Overview" }, "overview"),
|
|
39
|
+
];
|
|
40
|
+
return (_jsxs("div", { className: style.SearchResult, "data-stldocs-search-result": "guide", children: [_jsxs("div", { className: style.SearchBreadcrumb, children: [_jsx(Icon, { className: style.Icon, size: 14 }), _jsx(Docs.Join, { items: crumbs, children: _jsx("span", { className: style.SearchBreadcrumbDivider, children: '›' }) })] }), _jsx("h3", { className: style.SearchResultGuideTitle, children: result.data.meta.title }), _jsx("div", { className: style.SearchResultGuideExcerpt, dangerouslySetInnerHTML: { __html: result.data.excerpt } })] }));
|
|
41
|
+
}
|
|
42
|
+
export function SearchResultContent({ result }) {
|
|
43
|
+
const Docs = useComponents();
|
|
44
|
+
const language = useLanguage();
|
|
45
|
+
switch (result.kind) {
|
|
46
|
+
case 'http_method':
|
|
47
|
+
return (_jsxs(_Fragment, { children: [_jsx(Docs.MethodHeader, { level: "h5", title: _jsx(Highlight, { result: result, name: result.summary ? 'summary' : 'title' }), signature: result['qualified'] && _jsx(Highlight, { result: result, name: 'qualified' }), children: _jsx(Docs.MethodRoute, { httpMethod: result.httpMethod, endpoint: _jsx(Highlight, { result: result, name: "endpoint" }) }) }), _jsx("div", { className: style.MethodDescription, children: _jsx(Highlight, { result: result, name: "description" }) })] }));
|
|
48
|
+
case 'model': {
|
|
49
|
+
const properties = result.children.map((child, index) => (_jsx("span", { className: style.TextIdentifier, children: child }, index)));
|
|
50
|
+
return (_jsxs("div", { className: style.Property, "data-stldocs-language": language, children: [_jsx("div", { className: style.PropertyHeader, children: _jsx("span", { className: style.PropertyName, children: _jsx(Highlight, { result: result, name: result.title ? 'title' : 'name' }) }) }), _jsxs("span", { className: style.PropertyDeclaration, children: [_jsx(Highlight, { result: result, name: "ident" }), ":", ' ', _jsx(Docs.Join, { items: properties, limit: 3, children: _jsx("span", { className: style.TextPunctuation, children: ", " }) })] })] }));
|
|
51
|
+
}
|
|
52
|
+
case 'resource':
|
|
53
|
+
return (_jsxs("div", { className: style.SearchResultResourceInfo, children: [_jsx("span", { className: style.SearchResultResourceTitle, children: _jsx(Highlight, { result: result, name: "title" }) }), _jsx("span", { className: style.SearchResultResourcePath, children: _jsx(Highlight, { result: result, name: "QualifiedName" }) })] }));
|
|
54
|
+
case 'property':
|
|
55
|
+
return (_jsxs("div", { className: style.Property, "data-stldocs-language": language, children: [_jsxs("div", { className: style.PropertyHeader, children: [_jsx("span", { className: style.PropertyName, children: _jsx(Highlight, { result: result, name: "name" }) }), _jsx("span", { className: style.PropertyTypeName, children: _jsx("span", { dangerouslySetInnerHTML: { __html: result.type } }) })] }), result.docstring && (_jsx("span", { className: style.PropertyDescription, children: _jsx(Highlight, { result: result, name: "docstring" }) }))] }));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=results.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"results.js","sourceRoot":"","sources":["../../src/search/results.tsx"],"names":[],"mappings":"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"}
|