@mintlify/scraping 4.0.1191 → 4.0.1193

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.
@@ -0,0 +1,121 @@
1
+ import { htmlToHast } from '../pipeline/root.js';
2
+ export function splitSphinxModules(docs) {
3
+ const occupied = new Set(docs.map((doc) => doc.slug));
4
+ const result = [];
5
+ for (const doc of docs) {
6
+ const sections = moduleSections(htmlToHast(doc.body)).sort((left, right) => left.start - right.start);
7
+ const slugs = sections.map((section) => `${doc.slug}/${section.name}`);
8
+ if (sections.length < 2 ||
9
+ new Set(slugs).size !== slugs.length ||
10
+ slugs.some((slug) => occupied.has(slug))) {
11
+ result.push(doc);
12
+ continue;
13
+ }
14
+ let body = '';
15
+ let cursor = 0;
16
+ const aliases = new Set();
17
+ const modules = [];
18
+ for (const section of sections) {
19
+ const slug = `${doc.slug}/${section.name}`;
20
+ const title = sectionTitle(section.node) || section.name;
21
+ body += doc.body.slice(cursor, section.start);
22
+ for (const id of sectionIds(section.node)) {
23
+ if (aliases.has(id))
24
+ continue;
25
+ aliases.add(id);
26
+ body += `<span id="${escapeHtml(id)}"></span>`;
27
+ }
28
+ body += `<div class="toctree-wrapper"><ul><li><a class="reference internal" href="/${escapeHtml(slug)}">${escapeHtml(title)}</a></li></ul></div>`;
29
+ cursor = section.end;
30
+ occupied.add(slug);
31
+ modules.push({
32
+ slug,
33
+ title,
34
+ body: doc.body.slice(section.start, section.end),
35
+ tag: 'MODULE',
36
+ sourceSlug: doc.slug,
37
+ parents: [{ link: `/${doc.slug}` }],
38
+ });
39
+ }
40
+ body += doc.body.slice(cursor);
41
+ result.push({ ...doc, body, tag: 'MODULE' }, ...modules);
42
+ }
43
+ return result;
44
+ }
45
+ function moduleSections(node) {
46
+ const peers = [];
47
+ const containers = [];
48
+ for (const child of node.children) {
49
+ if (child.type !== 'element')
50
+ continue;
51
+ const name = moduleName(child);
52
+ if (name) {
53
+ const start = child.position?.start.offset;
54
+ const end = child.position?.end.offset;
55
+ if (typeof start === 'number' && typeof end === 'number') {
56
+ peers.push({ node: child, name, start, end });
57
+ }
58
+ }
59
+ else
60
+ containers.push(child);
61
+ }
62
+ const sections = containers.flatMap(moduleSections);
63
+ if (peers.length > 1)
64
+ return [...peers, ...sections];
65
+ return sections;
66
+ }
67
+ function moduleName(node) {
68
+ const id = node.properties.id;
69
+ if (typeof id !== 'string' || !id.startsWith('module-'))
70
+ return;
71
+ if (node.tagName !== 'section' && node.tagName !== 'div')
72
+ return;
73
+ if (node.tagName === 'div' && !classes(node).includes('section'))
74
+ return;
75
+ const name = id.slice('module-'.length);
76
+ if (!/^[\p{ID_Start}_][\p{ID_Continue}]*(?:\.[\p{ID_Start}_][\p{ID_Continue}]*)*$/u.test(name))
77
+ return;
78
+ return name;
79
+ }
80
+ function sectionTitle(node) {
81
+ for (const child of node.children) {
82
+ if (child.type !== 'element')
83
+ continue;
84
+ if (/^h[1-6]$/.test(child.tagName))
85
+ return textContent(child).replace(/\s+/g, ' ').trim();
86
+ }
87
+ return;
88
+ }
89
+ function sectionIds(node) {
90
+ const ids = [];
91
+ if (typeof node.properties.id === 'string')
92
+ ids.push(node.properties.id);
93
+ for (const child of node.children) {
94
+ if (child.type === 'element')
95
+ ids.push(...sectionIds(child));
96
+ }
97
+ return ids;
98
+ }
99
+ function textContent(node) {
100
+ if (node.type === 'text')
101
+ return node.value;
102
+ if (node.type !== 'element' || classes(node).includes('headerlink'))
103
+ return '';
104
+ return node.children.map(textContent).join('');
105
+ }
106
+ function classes(node) {
107
+ const value = node.properties.className;
108
+ if (Array.isArray(value))
109
+ return value.map(String);
110
+ if (typeof value === 'string')
111
+ return value.split(/\s+/);
112
+ return [];
113
+ }
114
+ function escapeHtml(value) {
115
+ return value
116
+ .replaceAll('&', '&amp;')
117
+ .replaceAll('<', '&lt;')
118
+ .replaceAll('>', '&gt;')
119
+ .replaceAll('"', '&quot;');
120
+ }
121
+ //# sourceMappingURL=sphinx-modules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sphinx-modules.js","sourceRoot":"","sources":["../../src/sdk/sphinx-modules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { SdkNavGroup } from './types.js';
2
+ export type SphinxNavigationDoc = {
3
+ slug: string;
4
+ title: string;
5
+ body: string;
6
+ tag?: string;
7
+ toc?: string;
8
+ parents?: {
9
+ link: string;
10
+ }[];
11
+ };
12
+ export declare function buildSphinxNavigation(docs: SphinxNavigationDoc[]): SdkNavGroup[];
@@ -0,0 +1,225 @@
1
+ import path from 'node:path';
2
+ import { htmlToHast } from '../pipeline/root.js';
3
+ export function buildSphinxNavigation(docs) {
4
+ const bySlug = new Map(docs.map((doc) => [doc.slug, doc]));
5
+ const children = new Map();
6
+ const parents = new Map();
7
+ const guideContent = new Set();
8
+ function addChild(parent, child) {
9
+ if (parent === child)
10
+ return;
11
+ const siblings = children.get(parent) ?? [];
12
+ if (!siblings.includes(child))
13
+ siblings.push(child);
14
+ children.set(parent, siblings);
15
+ const ancestors = parents.get(child) ?? [];
16
+ if (!ancestors.includes(parent))
17
+ ancestors.push(parent);
18
+ parents.set(child, ancestors);
19
+ }
20
+ for (const doc of docs) {
21
+ const body = htmlToHast(doc.body);
22
+ if (hasGuideContent(body))
23
+ guideContent.add(doc.slug);
24
+ const wrappers = toctreeWrappers(body);
25
+ const sources = wrappers;
26
+ if (!sources.length && doc.toc)
27
+ sources.push(htmlToHast(doc.toc));
28
+ function readTree(node, parentSlug) {
29
+ let nextParent = parentSlug;
30
+ if (node.type === 'element' && node.tagName === 'li') {
31
+ const href = firstPageHref(node);
32
+ const child = href ? resolvePageHref(href, doc.slug, bySlug) : undefined;
33
+ if (child) {
34
+ addChild(parentSlug, child);
35
+ nextParent = child;
36
+ }
37
+ }
38
+ for (const child of node.children) {
39
+ if (child.type === 'element')
40
+ readTree(child, nextParent);
41
+ }
42
+ }
43
+ for (const source of sources)
44
+ readTree(source, doc.slug);
45
+ }
46
+ for (const doc of docs) {
47
+ if (parents.has(doc.slug))
48
+ continue;
49
+ const ancestor = doc.parents
50
+ ?.map((parent) => resolvePageHref(parent.link, doc.slug, bySlug))
51
+ .filter((slug) => slug !== undefined)
52
+ .pop();
53
+ if (ancestor)
54
+ addChild(ancestor, doc.slug);
55
+ }
56
+ const prefixCounts = new Map();
57
+ for (const doc of docs) {
58
+ if (parents.has(doc.slug))
59
+ continue;
60
+ for (const prefix of ancestorPrefixes(doc.slug)) {
61
+ prefixCounts.set(prefix, (prefixCounts.get(prefix) ?? 0) + 1);
62
+ }
63
+ }
64
+ const virtual = new Set();
65
+ for (const [prefix, count] of prefixCounts) {
66
+ if (count < 2 || bySlug.has(prefix))
67
+ continue;
68
+ virtual.add(prefix);
69
+ bySlug.set(prefix, { slug: prefix, title: path.posix.basename(prefix), body: '' });
70
+ }
71
+ const navigationDocs = [...bySlug.values()].sort((left, right) => left.slug.localeCompare(right.slug));
72
+ for (const doc of navigationDocs) {
73
+ if (parents.has(doc.slug))
74
+ continue;
75
+ const ancestor = ancestorPrefixes(doc.slug)
76
+ .reverse()
77
+ .find((prefix) => bySlug.has(prefix));
78
+ if (ancestor)
79
+ addChild(ancestor, doc.slug);
80
+ }
81
+ const reference = new Set(docs.filter((doc) => doc.tag).map((doc) => doc.slug));
82
+ let changed = true;
83
+ while (changed) {
84
+ changed = false;
85
+ for (const doc of navigationDocs) {
86
+ const descendants = children.get(doc.slug) ?? [];
87
+ if (!reference.has(doc.slug) &&
88
+ descendants.length &&
89
+ descendants.every((slug) => reference.has(slug)) &&
90
+ !guideContent.has(doc.slug)) {
91
+ reference.add(doc.slug);
92
+ changed = true;
93
+ }
94
+ }
95
+ }
96
+ const orderedDocs = [...navigationDocs].sort((left, right) => {
97
+ if (left.slug === 'index')
98
+ return -1;
99
+ if (right.slug === 'index')
100
+ return 1;
101
+ return left.slug.localeCompare(right.slug);
102
+ });
103
+ function entries(slug, category, emitted) {
104
+ if (emitted.has(slug) || (!virtual.has(slug) && reference.has(slug) !== category))
105
+ return [];
106
+ const doc = bySlug.get(slug);
107
+ if (!doc)
108
+ return [];
109
+ emitted.add(slug);
110
+ const nested = (children.get(slug) ?? []).flatMap((child) => entries(child, category, emitted));
111
+ if (virtual.has(slug)) {
112
+ if (nested.length < 2)
113
+ return nested;
114
+ return [{ group: doc.title, pages: nested }];
115
+ }
116
+ if (!nested.length)
117
+ return [slug];
118
+ return [{ group: doc.title, pages: [slug, ...nested] }];
119
+ }
120
+ const groups = [];
121
+ for (const category of [false, true]) {
122
+ const emitted = new Set();
123
+ const pages = [];
124
+ const categoryDocs = orderedDocs.filter((doc) => virtual.has(doc.slug) || reference.has(doc.slug) === category);
125
+ const roots = categoryDocs.filter((doc) => !(parents.get(doc.slug) ?? []).some((slug) => virtual.has(slug) || reference.has(slug) === category));
126
+ for (const doc of [...roots, ...categoryDocs])
127
+ pages.push(...entries(doc.slug, category, emitted));
128
+ if (pages.length) {
129
+ groups.push({ group: category ? 'API Reference' : 'Getting Started', pages });
130
+ }
131
+ }
132
+ return groups;
133
+ }
134
+ function ancestorPrefixes(slug) {
135
+ return [...slug.matchAll(/[/.]/g)].map((match) => slug.slice(0, match.index));
136
+ }
137
+ function toctreeWrappers(node) {
138
+ const wrappers = [];
139
+ for (const child of node.children) {
140
+ if (child.type !== 'element')
141
+ continue;
142
+ if (classes(child).includes('toctree-wrapper'))
143
+ wrappers.push(child);
144
+ else
145
+ wrappers.push(...toctreeWrappers(child));
146
+ }
147
+ return wrappers;
148
+ }
149
+ function firstPageHref(node) {
150
+ for (const child of node.children) {
151
+ if (child.type !== 'element' || ['ul', 'ol'].includes(child.tagName))
152
+ continue;
153
+ if (child.tagName === 'a' && typeof child.properties.href === 'string') {
154
+ return child.properties.href;
155
+ }
156
+ const href = firstPageHref(child);
157
+ if (href)
158
+ return href;
159
+ }
160
+ return undefined;
161
+ }
162
+ function resolvePageHref(href, fromSlug, docs) {
163
+ if (!href || href.includes('#') || /^(?:[a-z][\w+.-]*:|\/\/)/i.test(href))
164
+ return;
165
+ let target = href.split('?')[0] ?? '';
166
+ try {
167
+ target = decodeURIComponent(target);
168
+ }
169
+ catch {
170
+ return;
171
+ }
172
+ let candidates;
173
+ if (target.startsWith('/'))
174
+ candidates = [target.slice(1)];
175
+ else {
176
+ const fileRelative = path.posix.join(path.posix.dirname(fromSlug), target);
177
+ const directoryRelative = path.posix.join(fromSlug, target);
178
+ if (target.endsWith('/') && fromSlug !== 'index' && !fromSlug.endsWith('/index')) {
179
+ candidates = [directoryRelative, fileRelative];
180
+ }
181
+ else {
182
+ candidates = [fileRelative, directoryRelative];
183
+ }
184
+ }
185
+ for (const candidate of candidates) {
186
+ let slug = path.posix
187
+ .normalize(candidate)
188
+ .replace(/\.(?:html?|fjson)$/, '')
189
+ .replace(/\/$/, '');
190
+ if (!slug || slug === '.')
191
+ slug = 'index';
192
+ if (docs.has(slug))
193
+ return slug;
194
+ const index = path.posix.join(slug, 'index');
195
+ if (docs.has(index))
196
+ return index;
197
+ }
198
+ return;
199
+ }
200
+ function hasGuideContent(node) {
201
+ if (node.type === 'element') {
202
+ if (classes(node).includes('toctree-wrapper'))
203
+ return false;
204
+ if (['p', 'pre', 'table', 'dl'].includes(node.tagName)) {
205
+ return node.children.some((child) => textContent(child).trim());
206
+ }
207
+ }
208
+ return node.children.some((child) => child.type === 'element' && hasGuideContent(child));
209
+ }
210
+ function textContent(node) {
211
+ if (node.type === 'text')
212
+ return node.value;
213
+ if (node.type !== 'element')
214
+ return '';
215
+ return node.children.map(textContent).join('');
216
+ }
217
+ function classes(node) {
218
+ const value = node.properties.className;
219
+ if (Array.isArray(value))
220
+ return value.map(String);
221
+ if (typeof value === 'string')
222
+ return value.split(/\s+/);
223
+ return [];
224
+ }
225
+ //# sourceMappingURL=sphinx-navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sphinx-navigation.js","sourceRoot":"","sources":["../../src/sdk/sphinx-navigation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Element } from 'hast';
2
+ export declare function renderSphinxLinkedCode(element: Element): string | undefined;
3
+ export declare function renderSphinxSignature(signature: Element, description?: Element): string;
@@ -0,0 +1,244 @@
1
+ import { hastToText } from '@mintlify/common';
2
+ import { inlineCode, linkedCode, responseField, safeHref } from './mdx.js';
3
+ export function renderSphinxLinkedCode(element) {
4
+ return linkedCode(trimTokens(linkedTokens(element.children)));
5
+ }
6
+ export function renderSphinxSignature(signature, description) {
7
+ const code = hastToText(signature).replace(/\s+/g, ' ').trim();
8
+ const fence = '`'.repeat(Math.max(3, ...(code.match(/`+/g) ?? []).map((run) => run.length + 1)));
9
+ const sections = [`${fence}python\n${code}\n${fence}`];
10
+ const documented = documentedTypes(description);
11
+ const parameters = findElements(signature, 'sig-param')
12
+ .map((parameter) => renderParameter(parameter, documented))
13
+ .filter((field) => field !== undefined);
14
+ if (parameters.length)
15
+ sections.push('**Parameters**', ...parameters);
16
+ const returns = findElements(signature, 'sig-return-typehint')[0];
17
+ if (returns) {
18
+ const tokens = trimTokens(linkedTokens(returns.children));
19
+ const text = tokens.map((token) => token.text).join('');
20
+ if (text && !documented.returns.some((type) => sameLinkedType(tokens, type))) {
21
+ sections.push(`**Returns:** ${linkedCode(tokens) ?? inlineCode(text)}`);
22
+ }
23
+ }
24
+ return sections.join('\n\n');
25
+ }
26
+ function renderParameter(parameter, documented) {
27
+ const tokens = linkedTokens(parameter.children);
28
+ const text = tokens.map((token) => token.text).join('');
29
+ const colon = topLevelDelimiter(text, ':');
30
+ if (colon === -1)
31
+ return undefined;
32
+ const name = text.slice(0, colon).trim();
33
+ if (!name)
34
+ return undefined;
35
+ const defaultStart = topLevelDelimiter(text, '=');
36
+ const end = defaultStart === -1 ? text.length : defaultStart;
37
+ const typeTokens = trimTokens(sliceTokens(tokens, colon + 1, end));
38
+ const type = typeTokens.map((token) => token.text).join('');
39
+ if (!type)
40
+ return undefined;
41
+ if (documented.parameters.get(name)?.some((type) => sameLinkedType(typeTokens, type))) {
42
+ return undefined;
43
+ }
44
+ const only = typeTokens[0];
45
+ const typeHref = typeTokens.length === 1 ? only?.href : undefined;
46
+ let body;
47
+ if (!typeHref || type.length > 80) {
48
+ const linked = linkedCode(typeTokens);
49
+ if (linked)
50
+ body = `**Type:** ${linked}`;
51
+ else if (type.length > 80)
52
+ body = `**Type:** ${inlineCode(type)}`;
53
+ }
54
+ return responseField(name, type, defaultStart !== -1 || name.startsWith('*'), body, typeHref);
55
+ }
56
+ function documentedTypes(description) {
57
+ const documented = { parameters: new Map(), returns: [] };
58
+ if (!description)
59
+ return documented;
60
+ for (const fieldList of ownFieldLists(description)) {
61
+ let label = '';
62
+ for (const child of fieldList.children) {
63
+ if (child.type !== 'element')
64
+ continue;
65
+ if (child.tagName === 'dt') {
66
+ label = hastToText(child).trim().replace(/:\s*$/, '').replace(/\s+/g, ' ').toLowerCase();
67
+ }
68
+ else if (child.tagName === 'dd') {
69
+ if (label === 'return type' || label === 'rtype') {
70
+ documented.returns.push(trimTokens(linkedTokens(child.children)));
71
+ }
72
+ else if (label === 'parameter' || label === 'parameters') {
73
+ addDocumentedParameters(child, documented.parameters);
74
+ }
75
+ }
76
+ }
77
+ }
78
+ return documented;
79
+ }
80
+ function ownFieldLists(description) {
81
+ const lists = [];
82
+ for (const child of description.children) {
83
+ if (child.type !== 'element')
84
+ continue;
85
+ const classes = child.properties.className;
86
+ const names = Array.isArray(classes) ? classes.map(String) : String(classes ?? '').split(' ');
87
+ if (child.tagName === 'dl' && names.includes('py'))
88
+ continue;
89
+ if (child.tagName === 'dl' && names.includes('field-list'))
90
+ lists.push(child);
91
+ else
92
+ lists.push(...ownFieldLists(child));
93
+ }
94
+ return lists;
95
+ }
96
+ function addDocumentedParameters(element, parameters) {
97
+ for (const child of element.children) {
98
+ if (child.type !== 'element')
99
+ continue;
100
+ if (child.tagName !== 'p') {
101
+ addDocumentedParameters(child, parameters);
102
+ continue;
103
+ }
104
+ const first = child.children.find((node) => node.type !== 'text' || node.value.trim() !== '');
105
+ if (first?.type !== 'element' || first.tagName !== 'strong')
106
+ continue;
107
+ const name = hastToText(first).trim();
108
+ const tokens = linkedTokens(child.children);
109
+ const text = tokens.map((token) => token.text).join('');
110
+ const nameEnd = text.indexOf(name) + name.length;
111
+ const start = text.indexOf('(', nameEnd);
112
+ if (start === -1 || text.slice(nameEnd, start).trim() !== '')
113
+ continue;
114
+ const end = closingParenthesis(text, start);
115
+ if (end === -1)
116
+ continue;
117
+ const types = parameters.get(name) ?? [];
118
+ types.push(trimTokens(sliceTokens(tokens, start + 1, end)));
119
+ parameters.set(name, types);
120
+ }
121
+ }
122
+ function closingParenthesis(text, start) {
123
+ let depth = 0;
124
+ let quote;
125
+ let escaped = false;
126
+ for (let index = start; index < text.length; index += 1) {
127
+ const character = text[index];
128
+ if (escaped)
129
+ escaped = false;
130
+ else if (quote) {
131
+ if (character === '\\')
132
+ escaped = true;
133
+ else if (character === quote)
134
+ quote = undefined;
135
+ }
136
+ else if (character === '"' || character === "'")
137
+ quote = character;
138
+ else if (character === '(')
139
+ depth += 1;
140
+ else if (character === ')') {
141
+ depth -= 1;
142
+ if (depth === 0)
143
+ return index;
144
+ }
145
+ }
146
+ return -1;
147
+ }
148
+ function sameLinkedType(left, right) {
149
+ const key = (tokens) => JSON.stringify(tokens
150
+ .map((token) => token.href ? ['href', token.href] : ['text', token.text.replace(/\s+/g, '')])
151
+ .filter(([, value]) => value));
152
+ return key(left) === key(right);
153
+ }
154
+ function linkedTokens(children, href) {
155
+ const tokens = [];
156
+ for (const child of children) {
157
+ if (child.type === 'text') {
158
+ tokens.push({ text: child.value.replace(/\s+/g, ' '), href });
159
+ }
160
+ else if (child.type === 'element') {
161
+ let nextHref = href;
162
+ if (child.tagName === 'a' && typeof child.properties.href === 'string') {
163
+ nextHref = safeHref(child.properties.href)?.replace(/[\u0000-\u0020\u007f"'()[\]<>`{}\\]/g, (character) => `%${character.charCodeAt(0).toString(16).toUpperCase().padStart(2, '0')}`);
164
+ }
165
+ tokens.push(...linkedTokens(child.children, nextHref));
166
+ }
167
+ }
168
+ const merged = [];
169
+ for (const token of tokens) {
170
+ const previous = merged.at(-1);
171
+ if (previous && previous.href === token.href)
172
+ previous.text += token.text;
173
+ else
174
+ merged.push({ ...token });
175
+ }
176
+ return merged;
177
+ }
178
+ function trimTokens(tokens) {
179
+ const text = tokens.map((token) => token.text).join('');
180
+ return sliceTokens(tokens, text.length - text.trimStart().length, text.trimEnd().length);
181
+ }
182
+ function sliceTokens(tokens, start, end) {
183
+ const sliced = [];
184
+ let offset = 0;
185
+ for (const token of tokens) {
186
+ const tokenEnd = offset + token.text.length;
187
+ if (tokenEnd > start && offset < end) {
188
+ sliced.push({
189
+ text: token.text.slice(Math.max(0, start - offset), end - offset),
190
+ href: token.href,
191
+ });
192
+ }
193
+ offset = tokenEnd;
194
+ }
195
+ return sliced;
196
+ }
197
+ function topLevelDelimiter(text, delimiter) {
198
+ let depth = 0;
199
+ let quote;
200
+ let escaped = false;
201
+ for (let index = 0; index < text.length; index += 1) {
202
+ const character = text[index];
203
+ if (escaped) {
204
+ escaped = false;
205
+ }
206
+ else if (quote) {
207
+ if (character === '\\')
208
+ escaped = true;
209
+ else if (character === quote)
210
+ quote = undefined;
211
+ }
212
+ else if (character === '"' || character === "'") {
213
+ quote = character;
214
+ }
215
+ else if (character === '(' || character === '[' || character === '{') {
216
+ depth += 1;
217
+ }
218
+ else if (character === ')' || character === ']' || character === '}') {
219
+ depth = Math.max(0, depth - 1);
220
+ }
221
+ else if (character === delimiter && depth === 0) {
222
+ return index;
223
+ }
224
+ }
225
+ return -1;
226
+ }
227
+ function findElements(node, className) {
228
+ const elements = [];
229
+ for (const child of node.children) {
230
+ if (child.type !== 'element')
231
+ continue;
232
+ const classes = child.properties.className;
233
+ if (Array.isArray(classes) && classes.includes(className))
234
+ elements.push(child);
235
+ else if (typeof classes === 'string' && classes.split(' ').includes(className)) {
236
+ elements.push(child);
237
+ }
238
+ else {
239
+ elements.push(...findElements(child, className));
240
+ }
241
+ }
242
+ return elements;
243
+ }
244
+ //# sourceMappingURL=sphinx-signatures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sphinx-signatures.js","sourceRoot":"","sources":["../../src/sdk/sphinx-signatures.ts"],"names":[],"mappings":"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"}