@wildo-ai/saas-technical-doc 1.1.4 → 1.1.5
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/esm/build/csp-emit.d.ts.map +1 -1
- package/dist/esm/build/load-materialized-frontend-providers.d.ts.map +1 -1
- package/dist/esm/companion/application-documentation/application-administration-documentation.d.ts.map +1 -1
- package/dist/esm/companion/application-documentation/application-administration-documentation.js.map +1 -1
- package/dist/esm/companion/application-documentation/application-authentication-documentation.d.ts.map +1 -1
- package/dist/esm/companion/application-documentation/application-connection-documentation.d.ts +37 -0
- package/dist/esm/companion/application-documentation/application-connection-documentation.d.ts.map +1 -1
- package/dist/esm/companion/application-documentation/application-connection-documentation.js +46 -5
- package/dist/esm/companion/application-documentation/application-connection-documentation.js.map +1 -1
- package/dist/esm/companion/application-documentation/application-documentation-chapters.d.ts +101 -0
- package/dist/esm/companion/application-documentation/application-documentation-chapters.d.ts.map +1 -0
- package/dist/esm/companion/application-documentation/application-documentation-chapters.js +205 -0
- package/dist/esm/companion/application-documentation/application-documentation-chapters.js.map +1 -0
- package/dist/esm/companion/application-documentation/application-domain-documentation.d.ts.map +1 -1
- package/dist/esm/companion/application-documentation/application-domain-documentation.js.map +1 -1
- package/dist/esm/companion/application-documentation/application-integration-documentation.d.ts.map +1 -1
- package/dist/esm/companion/application-documentation/application-integration-documentation.js.map +1 -1
- package/dist/esm/companion/application-documentation/application-organization-role-documentation.d.ts.map +1 -1
- package/dist/esm/companion/application-documentation/application-organization-role-documentation.js.map +1 -1
- package/dist/esm/companion/application-documentation/application-organization-unit-resource-documentation.d.ts.map +1 -1
- package/dist/esm/companion/application-documentation/application-organization-unit-resource-documentation.js +3 -0
- package/dist/esm/companion/application-documentation/application-organization-unit-resource-documentation.js.map +1 -1
- package/dist/esm/companion/application-documentation/docs-api-origin-substitution.d.ts +34 -0
- package/dist/esm/companion/application-documentation/docs-api-origin-substitution.d.ts.map +1 -0
- package/dist/esm/companion/application-documentation/docs-api-origin-substitution.js +45 -0
- package/dist/esm/companion/application-documentation/docs-api-origin-substitution.js.map +1 -0
- package/dist/esm/companion/application-documentation/technical-documentation-engine-content-bundle.d.ts +24 -10
- package/dist/esm/companion/application-documentation/technical-documentation-engine-content-bundle.d.ts.map +1 -1
- package/dist/esm/companion/application-documentation/technical-documentation-engine-content-bundle.js +25 -15
- package/dist/esm/companion/application-documentation/technical-documentation-engine-content-bundle.js.map +1 -1
- package/dist/esm/companion/application-documentation/technical-documentation-operational-evidence.d.ts.map +1 -1
- package/dist/esm/companion/application-documentation/technical-documentation-private-derivation.d.ts +11 -3
- package/dist/esm/companion/application-documentation/technical-documentation-private-derivation.d.ts.map +1 -1
- package/dist/esm/companion/application-documentation/technical-documentation-private-derivation.js +9 -2
- package/dist/esm/companion/application-documentation/technical-documentation-private-derivation.js.map +1 -1
- package/dist/esm/companion/application-documentation/technical-documentation-publication-policy.d.ts.map +1 -1
- package/dist/esm/companion/application-documentation/technical-documentation-publication-policy.js +10 -4
- package/dist/esm/companion/application-documentation/technical-documentation-publication-policy.js.map +1 -1
- package/dist/esm/companion/content/application-consumer-documentation-content-loader.d.ts.map +1 -1
- package/dist/esm/companion/index.d.ts +2 -0
- package/dist/esm/companion/index.d.ts.map +1 -1
- package/dist/esm/companion/index.js +2 -0
- package/dist/esm/companion/index.js.map +1 -1
- package/dist/esm/companion/manual-controller-route-projection.d.ts.map +1 -1
- package/dist/esm/companion/manual-controller-route-projection.js.map +1 -1
- package/dist/esm/companion/openapi-generator.d.ts +8 -4
- package/dist/esm/companion/openapi-generator.d.ts.map +1 -1
- package/dist/esm/companion/openapi-generator.js +39 -17
- package/dist/esm/companion/openapi-generator.js.map +1 -1
- package/dist/esm/companion/operation-projection.schemas.d.ts +21 -1
- package/dist/esm/companion/operation-projection.schemas.d.ts.map +1 -1
- package/dist/esm/companion/operation-projection.schemas.js +11 -0
- package/dist/esm/companion/operation-projection.schemas.js.map +1 -1
- package/dist/esm/companion/publish-result.types.d.ts.map +1 -1
- package/dist/esm/companion/publish-result.types.js.map +1 -1
- package/dist/esm/companion/rendering/technical-documentation-authorized-bundle-reader.d.ts.map +1 -1
- package/dist/esm/companion/rendering/technical-documentation-docusaurus-renderer.d.ts.map +1 -1
- package/dist/esm/companion/rendering/technical-documentation-docusaurus-renderer.js +8 -0
- package/dist/esm/companion/rendering/technical-documentation-docusaurus-renderer.js.map +1 -1
- package/dist/esm/companion/rendering/technical-documentation-managed-tree-validator.d.ts.map +1 -1
- package/dist/esm/companion/rendering/technical-documentation-managed-tree-validator.js.map +1 -1
- package/dist/esm/companion/rendering/technical-documentation-openapi-renderer.d.ts.map +1 -1
- package/dist/esm/companion/rendering/technical-documentation-render-model.d.ts.map +1 -1
- package/dist/esm/companion/rendering/technical-documentation-render-model.js +26 -10
- package/dist/esm/companion/rendering/technical-documentation-render-model.js.map +1 -1
- package/dist/esm/companion/rendering/technical-documentation-search-index-renderer.d.ts.map +1 -1
- package/dist/esm/companion/rendering/technical-documentation-search-index-renderer.js.map +1 -1
- package/dist/esm/companion/technical-documentation-asset-path.d.ts.map +1 -1
- package/dist/esm/companion/technical-documentation-capture-execution-port.d.ts.map +1 -1
- package/dist/esm/companion/technical-documentation-capture-execution-port.js.map +1 -1
- package/dist/esm/companion/technical-documentation-diagram-definitions.d.ts.map +1 -1
- package/dist/esm/companion/technical-documentation-diagram-definitions.js.map +1 -1
- package/dist/esm/companion/technical-documentation-diagram-materializer.d.ts.map +1 -1
- package/dist/esm/companion/technical-documentation-diagram-materializer.js.map +1 -1
- package/dist/esm/companion/technical-documentation-placeholder-materializer.d.ts.map +1 -1
- package/dist/esm/companion/zod-to-openapi.d.ts.map +1 -1
- package/dist/esm/companion-exports.d.ts.map +1 -1
- package/dist/esm/config/define-tech-doc-config.d.ts.map +1 -1
- package/dist/esm/config/index.d.ts.map +1 -1
- package/dist/esm/config/wildo-tech-doc-config.schemas.d.ts.map +1 -1
- package/dist/esm/config/wildo-tech-doc-config.schemas.js.map +1 -1
- package/dist/esm/content/application-consumer-documentation-content-manifest.schemas.d.ts.map +1 -1
- package/dist/esm/content/application-consumer-documentation-content.techdoc.d.ts +18 -15
- package/dist/esm/content/application-consumer-documentation-content.techdoc.d.ts.map +1 -1
- package/dist/esm/content/application-consumer-documentation-content.techdoc.js +169 -61
- package/dist/esm/content/application-consumer-documentation-content.techdoc.js.map +1 -1
- package/dist/esm/content.exports.d.ts.map +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/openapi/api-reference-link-index.d.ts.map +1 -1
- package/dist/esm/openapi/index.d.ts.map +1 -1
- package/dist/esm/openapi/openapi-generation-output.schemas.d.ts.map +1 -1
- package/dist/esm/openapi-reference-model.exports.d.ts.map +1 -1
- package/dist/esm/runtime/AuthExchangePage.d.ts.map +1 -1
- package/dist/esm/runtime/DocsAuthContext.d.ts +2 -2
- package/dist/esm/runtime/DocsAuthContext.d.ts.map +1 -1
- package/dist/esm/runtime/DocsAuthContext.js +8 -4
- package/dist/esm/runtime/DocsAuthContext.js.map +1 -1
- package/dist/esm/runtime/DocsFrontendProviders.d.ts +16 -0
- package/dist/esm/runtime/DocsFrontendProviders.d.ts.map +1 -0
- package/dist/esm/runtime/DocsFrontendProviders.js +26 -0
- package/dist/esm/runtime/DocsFrontendProviders.js.map +1 -0
- package/dist/esm/runtime/decode-jwt-claims.d.ts.map +1 -1
- package/dist/esm/runtime/docs-auth-client.d.ts.map +1 -1
- package/dist/esm/runtime/docs-auth-session.schemas.d.ts.map +1 -1
- package/dist/esm/runtime/frontend-provider-registry.techdoc.d.ts +1 -2
- package/dist/esm/runtime/frontend-provider-registry.techdoc.d.ts.map +1 -1
- package/dist/esm/runtime/frontend-provider-registry.techdoc.js.map +1 -1
- package/dist/esm/runtime/index.d.ts +2 -0
- package/dist/esm/runtime/index.d.ts.map +1 -1
- package/dist/esm/runtime/index.js +2 -0
- package/dist/esm/runtime/index.js.map +1 -1
- package/dist/esm/runtime/openapi-reference-conservation.d.ts.map +1 -1
- package/dist/esm/runtime/openapi-reference-model.d.ts +5 -0
- package/dist/esm/runtime/openapi-reference-model.d.ts.map +1 -1
- package/dist/esm/runtime/openapi-reference-model.js +5 -0
- package/dist/esm/runtime/openapi-reference-model.js.map +1 -1
- package/dist/esm/runtime/openapi-reference-view.js +1 -1
- package/dist/esm/runtime/openapi-reference-view.js.map +1 -1
- package/dist/esm/runtime/use-docs-auth-session.d.ts.map +1 -1
- package/dist/esm/runtime/use-docs-frontend-provider-registry.d.ts +1 -0
- package/dist/esm/runtime/use-docs-frontend-provider-registry.d.ts.map +1 -1
- package/dist/esm/runtime/use-docs-frontend-provider-registry.js +10 -2
- package/dist/esm/runtime/use-docs-frontend-provider-registry.js.map +1 -1
- package/dist/esm/runtime/use-docs-provider-scripts.d.ts +30 -0
- package/dist/esm/runtime/use-docs-provider-scripts.d.ts.map +1 -0
- package/dist/esm/runtime/use-docs-provider-scripts.js +40 -0
- package/dist/esm/runtime/use-docs-provider-scripts.js.map +1 -0
- package/dist/esm/runtime/use-docs-provider-sdks.d.ts.map +1 -1
- package/dist/esm/runtime/use-docs-provider-sdks.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +8 -24
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openapi-reference-view.js","sourceRoot":"","sources":["../../../../src/runtime/openapi-reference-view.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Fragment, useEffect, useMemo, useState, type ReactNode } from 'react';\nimport { ApiReferenceSchemaCompositionKind } from './openapi-reference-model';\nimport type {\n ApiReferenceMediaType,\n ApiReferenceExample,\n ApiReferenceModel,\n ApiReferenceParameter,\n ApiReferenceResource,\n ApiReferenceResourceCategory,\n ApiReferenceResponse,\n ApiReferenceSchemaNode,\n ApiReferenceSchemaProperty,\n ApiReferenceSecurityScheme,\n ApiReferenceServer,\n ApiReferenceVariant,\n} from './openapi-reference-model';\n\n/**\n * Generic OpenAPI reference presentation for every generated application.\n *\n * It receives only the ephemeral model derived from verified OpenAPI bytes.\n * Application routes, branding, and document loading remain outside this\n * component; API semantics remain in OpenAPI rather than in React.\n */\nexport function OpenApiReferenceView({ model }: { readonly model: ApiReferenceModel }): ReactNode {\n const [query, setQuery] = useState('');\n const [selectedResourceRef, setSelectedResourceRef] = useState<string | null>(null);\n const [activeFragment, setActiveFragment] = useState(() => currentFragment());\n const resources = useMemo(() => filterResources(model, query), [model, query]);\n const selectedResource = model.resources.find((resource) => resource.resourceRef === selectedResourceRef) ?? null;\n\n useEffect(() => {\n const synchronizeSelection = () => {\n const fragment = currentFragment();\n setActiveFragment(fragment);\n setSelectedResourceRef(findResourceForFragment(model.resources, fragment)?.resourceRef ?? null);\n };\n synchronizeSelection();\n window.addEventListener('hashchange', synchronizeSelection);\n return () => window.removeEventListener('hashchange', synchronizeSelection);\n }, [model]);\n\n /**\n * The browser performs its ordinary fragment jump before React has mounted a\n * resource selected from a deep link. Repeat the jump after that resource is\n * present so resource, family and variant URLs all behave as true deep links.\n */\n useEffect(() => {\n const target = activeFragment.length > 0 ? document.getElementById(activeFragment) : null;\n if (target !== null && typeof target.scrollIntoView === 'function') target.scrollIntoView({ block: 'start' });\n }, [activeFragment, selectedResource]);\n\n return <>\n {model.description !== null ? <OpenApiDocumentDescription description={model.description} /> : null}\n {(model.servers.length > 0 || model.securitySchemes.length > 0)\n ? <ApiConnectionDetails servers={model.servers} securitySchemes={model.securitySchemes} />\n : null}\n <p>{model.operationCount} operations across {model.resources.length} resources.</p>\n <div className=\"margin-bottom--lg\">\n <label htmlFor=\"api-reference-search\">Search this API reference</label>\n <input\n id=\"api-reference-search\"\n className=\"margin-left--sm\"\n type=\"search\"\n aria-describedby=\"api-reference-search-status\"\n value={query}\n onChange={(event) => {\n setQuery(event.target.value);\n clearResourceSelection();\n }}\n placeholder=\"Resource, operation, path, role…\"\n />\n {query.length > 0 ? <button className=\"button button--secondary button--sm margin-left--sm\" type=\"button\" onClick={() => setQuery('')}>Clear</button> : null}\n </div>\n <p id=\"api-reference-search-status\" className=\"margin-bottom--lg\" role=\"status\" aria-live=\"polite\">\n {query.length > 0 ? `${resources.length} matching resource${resources.length === 1 ? '' : 's'}.` : ''}\n </p>\n <details open={selectedResource === null} className=\"margin-bottom--xl\">\n <summary>Browse {resources.length} resource{resources.length === 1 ? '' : 's'}</summary>\n <nav aria-label=\"API resources\">\n {resourceCategoryGroups(resources).map((group) => <section key={group.id} className=\"margin-top--lg\">\n {group.category !== null ? <>\n <h2 id={group.anchorId}>{group.category.label}</h2>\n {group.category.description !== null ? <p>{group.category.description}</p> : null}\n </> : null}\n <ul style={{ display: 'grid', gap: '0.75rem', gridTemplateColumns: 'repeat(auto-fit, minmax(16rem, 1fr))', listStyle: 'none', margin: '1rem 0 0', padding: 0 }}>\n {group.resources.map((resource) => <ResourceCard key={resource.resourceRef} resource={resource} />)}\n </ul>\n </section>)}\n </nav>\n </details>\n {resources.length === 0 ? <p role=\"status\">No resources or operation variants match this search.</p> : null}\n {selectedResource === null && resources.length > 0 ? <p role=\"status\">Select a resource to explore its operation families and variants.</p> : null}\n {selectedResource !== null ? <section key={selectedResource.resourceRef} className=\"margin-bottom--xl\">\n <p><button className=\"button button--secondary button--sm\" type=\"button\" onClick={clearResourceSelection}>All resources</button></p>\n <ResourceReference resource={selectedResource} activeFragment={activeFragment} />\n </section> : null}\n <ComponentSchemaReference schemas={model.componentSchemas} activeFragment={activeFragment} />\n </>;\n}\n\nfunction OpenApiDocumentDescription({ description }: { readonly description: string }): ReactNode {\n const conventionsMarker = '\\n\\n## API conventions';\n const markerIndex = description.indexOf(conventionsMarker);\n const overview = markerIndex === -1 ? description : description.slice(0, markerIndex);\n const conventions = markerIndex === -1 ? null : description.slice(markerIndex + conventionsMarker.length).trim();\n return <section className=\"margin-bottom--lg\" aria-label=\"API overview\">\n <OpenApiCommonMark source={overview} />\n {conventions !== null && conventions.length > 0 ? <details className=\"margin-top--md\">\n <summary><h2 style={{ display: 'inline', fontSize: 'inherit', margin: 0 }}>API conventions</h2></summary>\n <div className=\"margin-top--md\"><OpenApiCommonMark source={conventions} /></div>\n </details> : null}\n </section>;\n}\n\n/**\n * Safe, deliberately small CommonMark presenter for the generator-owned\n * OpenAPI description vocabulary. It supports the headings, paragraphs,\n * unordered lists, strong text and inline code emitted by the generator and\n * never evaluates HTML.\n */\nfunction OpenApiCommonMark({ source }: { readonly source: string }): ReactNode {\n const lines = source.split(/\\r?\\n/);\n const blocks: ReactNode[] = [];\n let index = 0;\n while (index < lines.length) {\n const line = lines[index] ?? '';\n if (line.trim().length === 0) {\n index += 1;\n continue;\n }\n const heading = line.match(/^(#{2,4})\\s+(.+)$/);\n if (heading !== null) {\n const text = heading[2] ?? '';\n blocks.push(heading[1]?.length === 2\n ? <h2 key={`heading:${index}`}><OpenApiInlineCommonMark source={text} /></h2>\n : <h3 key={`heading:${index}`}><OpenApiInlineCommonMark source={text} /></h3>);\n index += 1;\n continue;\n }\n if (line.startsWith('- ')) {\n const items: string[] = [];\n while (index < lines.length && (lines[index] ?? '').startsWith('- ')) {\n items.push((lines[index] ?? '').slice(2));\n index += 1;\n }\n blocks.push(<ul key={`list:${index}`}>{items.map((item, itemIndex) => <li key={`${itemIndex}:${item}`}><OpenApiInlineCommonMark source={item} /></li>)}</ul>);\n continue;\n }\n const paragraph: string[] = [];\n while (index < lines.length) {\n const candidate = lines[index] ?? '';\n if (candidate.trim().length === 0 || /^(#{2,4})\\s+/.test(candidate) || candidate.startsWith('- ')) break;\n paragraph.push(candidate.trim());\n index += 1;\n }\n blocks.push(<p key={`paragraph:${index}`}><OpenApiInlineCommonMark source={paragraph.join(' ')} /></p>);\n }\n return <>{blocks}</>;\n}\n\nfunction OpenApiInlineCommonMark({ source }: { readonly source: string }): ReactNode {\n return <>{source.split(/(\\*\\*[^*]+\\*\\*|`[^`]+`)/g).filter(Boolean).map((part, index) => {\n if (part.startsWith('**') && part.endsWith('**')) return <strong key={`${index}:${part}`}>{part.slice(2, -2)}</strong>;\n if (part.startsWith('`') && part.endsWith('`')) return <code key={`${index}:${part}`}>{part.slice(1, -1)}</code>;\n return <Fragment key={`${index}:${part}`}>{part}</Fragment>;\n })}</>;\n}\n\nfunction ApiConnectionDetails({\n servers,\n securitySchemes,\n}: {\n readonly servers: readonly ApiReferenceServer[];\n readonly securitySchemes: readonly ApiReferenceSecurityScheme[];\n}): ReactNode {\n return <section className=\"card margin-bottom--lg\" aria-labelledby=\"api-connection-details\">\n <div className=\"card__body\">\n <h2 id=\"api-connection-details\">Connection details</h2>\n {servers.length > 0 ? <>\n <h3>Base URLs</h3>\n <ul>{servers.map((server) => <li key={server.url}><code>{server.url}</code>{server.description !== null ? <> — {server.description}</> : null}</li>)}</ul>\n </> : null}\n {securitySchemes.length > 0 ? <>\n <h3>Authentication mechanisms</h3>\n <dl>{securitySchemes.map((securityScheme) => <Fragment key={securityScheme.name}>\n <dt><code>{securityScheme.name}</code></dt>\n <dd>\n <p className=\"margin-bottom--sm\">\n Type: <code>{securityScheme.type}</code>\n {securityScheme.scheme !== null ? <> · Scheme: <code>{securityScheme.scheme}</code></> : null}\n {securityScheme.bearerFormat !== null ? <> · Format: <code>{securityScheme.bearerFormat}</code></> : null}\n {securityScheme.location !== null ? <> · Location: <code>{securityScheme.location}</code></> : null}\n {securityScheme.parameterName !== null ? <> · Name: <code>{securityScheme.parameterName}</code></> : null}\n </p>\n {securityScheme.description !== null ? <p><OpenApiInlineCommonMark source={securityScheme.description} /></p> : null}\n </dd>\n </Fragment>)}</dl>\n </> : null}\n </div>\n </section>;\n}\n\nfunction ResourceCard({ resource }: { readonly resource: ApiReferenceResource }): ReactNode {\n const variantCount = resource.families.reduce((count, family) => count + family.variants.length, 0);\n return <li style={{ border: '1px solid var(--ifm-color-emphasis-300)', borderRadius: '0.5rem', padding: '1rem' }}>\n <a href={`#${resource.anchorId}`}><strong>{resource.label}</strong></a>\n {resource.description !== null ? <p className=\"margin-top--sm margin-bottom--sm\">{resource.description}</p> : null}\n <p className=\"margin-bottom--none text--muted\">{resource.families.length} operation {resource.families.length === 1 ? 'family' : 'families'} · {variantCount} variant{variantCount === 1 ? '' : 's'}</p>\n </li>;\n}\n\n/**\n * Groups only by source-projected category metadata. A document without\n * categories remains usable, but it is never silently bucketed by filenames,\n * labels or a framework-owned guess.\n */\nfunction resourceCategoryGroups(resources: readonly ApiReferenceResource[]): ReadonlyArray<{\n readonly id: string;\n readonly anchorId: string;\n readonly category: ApiReferenceResourceCategory | null;\n readonly resources: readonly ApiReferenceResource[];\n}> {\n const groups = new Map<string, { category: ApiReferenceResourceCategory | null; resources: ApiReferenceResource[] }>();\n for (const resource of resources) {\n const key = resource.category?.id ?? '__uncategorized__';\n const group = groups.get(key) ?? { category: resource.category, resources: [] };\n if (group.category?.label !== resource.category?.label || group.category?.description !== resource.category?.description) {\n throw new Error(`API reference category '${key}' has inconsistent source metadata`);\n }\n group.resources.push(resource);\n groups.set(key, group);\n }\n return [...groups.entries()]\n .map(([id, group]) => ({\n id,\n anchorId: group.category === null ? 'uncategorized-resources' : group.category.anchorId,\n category: group.category,\n resources: group.resources,\n }))\n .sort((left, right) => (left.category?.label ?? '').localeCompare(right.category?.label ?? ''));\n}\n\nfunction ResourceReference({ resource, activeFragment }: { readonly resource: ApiReferenceResource; readonly activeFragment: string }): ReactNode {\n return <>\n <h2 id={resource.anchorId}>{resource.label}</h2>\n {resource.description !== null ? <p>{resource.description}</p> : null}\n {resource.lifecycleRole !== null ? <><h3>Lifecycle</h3><p>{resource.lifecycleRole}</p></> : null}\n {resource.relationships.length > 0 ? <RelationshipSemantics relationships={resource.relationships} /> : null}\n {resource.families.map((family) => <div key={family.familyRef} className=\"card margin-bottom--md\">\n <div className=\"card__body\">\n <h3 id={family.anchorId}>{family.label}</h3>\n <p className=\"text--muted\">{family.variants.length} documented variant{family.variants.length === 1 ? '' : 's'}</p>\n {family.variants.map((variant) => <OperationVariant key={variant.operationId} variant={variant} activeFragment={activeFragment} />)}\n </div>\n </div>)}\n </>;\n}\n\nfunction RelationshipSemantics({ relationships }: { readonly relationships: ApiReferenceResource['relationships'] }): ReactNode {\n return <details className=\"margin-bottom--lg\">\n <summary>Data relationships ({relationships.length})</summary>\n <ul className=\"margin-top--md\">\n {relationships.map((relationship, index) => <li key={`${relationship.relatedResourceName}:${relationship.foreignKeyField ?? 'none'}:${relationship.nature}:${index}`}>\n <strong>{relationship.relatedResourceLabel}</strong>{relationship.foreignKeyField !== null ? <> via <code>{relationship.foreignKeyField}</code></> : null}: {relationship.nature} relationship ({relationship.resourceCardinality} to {relationship.relatedResourceCardinality}); lifecycle: {relationship.lifecycleModel}.\n {relationship.onParentDelete !== null\n ? <> Parent-delete policy: {relationship.onParentDelete.enabled ? `${relationship.onParentDelete.strategy} (${relationship.onParentDelete.mode}, depth ${relationship.onParentDelete.maxDepth})` : 'does not cascade'}.</>\n : null}\n </li>)}\n </ul>\n </details>;\n}\n\nfunction clearResourceSelection(): void {\n if (typeof window !== 'undefined') window.location.hash = '';\n}\n\nfunction findResourceForFragment(resources: ApiReferenceModel['resources'], hash: string): ApiReferenceResource | null {\n const fragment = hash.startsWith('#') ? hash.slice(1) : hash;\n if (fragment.length === 0) return null;\n return resources.find((resource) => resource.anchorId === fragment\n || resource.families.some((family) => family.anchorId === fragment || family.variants.some((variant) => variant.anchorId === fragment\n || variant.requestBody?.anchorId === fragment\n || variant.responses.some((response) => response.anchorId === fragment)))) ?? null;\n}\n\nfunction filterResources(model: ApiReferenceModel, query: string): ApiReferenceModel['resources'] {\n const normalizedQuery = query.trim().toLocaleLowerCase();\n if (normalizedQuery.length === 0) return model.resources;\n return model.resources.map((resource) => ({\n ...resource,\n families: resource.families.map((family) => ({\n ...family,\n variants: family.variants.filter((variant) => [\n resource.label,\n resource.description ?? '',\n resource.lifecycleRole ?? '',\n ...resource.relationships.flatMap((relationship) => [\n relationship.relatedResourceName,\n relationship.relatedResourceLabel,\n relationship.foreignKeyField ?? '',\n relationship.nature,\n relationship.lifecycleModel,\n relationship.onParentDelete?.strategy ?? '',\n ]),\n family.label,\n variant.summary,\n variant.method,\n variant.path,\n variant.access.authenticationSummary,\n ...variant.access.roleRequirements.flatMap((requirement) => [\n requirement.role,\n requirement.label,\n requirement.businessRole ?? '',\n requirement.authorityBoundary ?? '',\n ]),\n ...variant.securitySchemes,\n ].some((value) => value.toLocaleLowerCase().includes(normalizedQuery))),\n })).filter((family) => family.variants.length > 0),\n })).filter((resource) => resource.families.length > 0);\n}\n\nfunction OperationVariant({ variant, activeFragment }: { readonly variant: ApiReferenceVariant; readonly activeFragment: string }): ReactNode {\n const [isContractOpen, setIsContractOpen] = useState(() => isContractTarget(variant, activeFragment));\n\n useEffect(() => {\n if (isContractTarget(variant, activeFragment)) setIsContractOpen(true);\n }, [activeFragment, variant]);\n\n return <article className=\"margin-bottom--lg\">\n <h4 id={variant.anchorId}>{variant.summary}</h4>\n <p><code>{variant.method}</code> <code>{variant.path}</code></p>\n {variant.description !== null ? <p>{variant.description}</p> : null}\n <p className=\"margin-bottom--sm\">\n <strong>Access:</strong> {variant.access.authenticationSummary}\n {variant.access.roleRequirements.length > 0 ? <> Authorization: any one of {variant.access.roleRequirements.map((requirement, index) => <Fragment key={requirement.role}>\n {index > 0 ? ' or ' : ''}<strong>{requirement.label}</strong> (<code>{requirement.role}</code>)\n </Fragment>)}.</> : null}\n {' '}\n {variant.securitySchemes.length > 0 ? <>Authentication: <code>{variant.securitySchemes.join(' or ')}</code>. </> : null}\n {variant.idempotent !== null ? <>Idempotent: <code>{variant.idempotent ? 'yes' : 'no'}</code>.</> : null}\n </p>\n {variant.access.roleRequirements.some((requirement) => requirement.businessRole !== null || requirement.authorityBoundary !== null) ? <details className=\"margin-bottom--sm\">\n <summary>Role authority details</summary>\n <ul className=\"margin-top--sm\">{variant.access.roleRequirements.map((requirement) => <li key={requirement.role}>\n <strong>{requirement.label}</strong>\n {requirement.businessRole !== null ? <> — {requirement.businessRole}</> : null}\n {requirement.authorityBoundary !== null ? <p className=\"margin-bottom--sm\">Boundary: {requirement.authorityBoundary}</p> : null}\n </li>)}</ul>\n </details> : null}\n <details open={isContractOpen} onToggle={(event) => setIsContractOpen(event.currentTarget.open)}>\n <summary>Request and response contract</summary>\n <div className=\"margin-top--md\">\n <h5>Parameters</h5>\n {variant.parameters.length === 0 ? <p>No parameters.</p> : <ParameterTable parameters={variant.parameters} />}\n {variant.requestBody !== null ? <>\n <h5 id={variant.requestBody.anchorId}>Request body {variant.requestBody.required ? '(required)' : '(optional)'}</h5>\n <RepresentationList mediaTypes={variant.requestBody.mediaTypes} />\n </> : null}\n <h5>Responses</h5>\n {variant.responses.length === 0 ? <p>No response contract was emitted.</p> : variant.responses.map((response) => <ResponseContract key={response.status} response={response} />)}\n </div>\n </details>\n </article>;\n}\n\n/** Opens the native contract disclosure before a request/response fragment is scrolled into view. */\nfunction isContractTarget(variant: ApiReferenceVariant, fragment: string): boolean {\n return variant.requestBody?.anchorId === fragment || variant.responses.some((response) => response.anchorId === fragment);\n}\n\nfunction currentFragment(): string {\n if (typeof window === 'undefined') return '';\n return window.location.hash.startsWith('#') ? window.location.hash.slice(1) : window.location.hash;\n}\n\nfunction ParameterTable({ parameters }: { readonly parameters: readonly ApiReferenceParameter[] }): ReactNode {\n return <div style={{ maxWidth: '100%', overflowX: 'auto' }}>\n <table>\n <thead><tr><th>Name</th><th>Location</th><th>Type</th><th>Required</th><th>Description</th><th>Examples</th></tr></thead>\n <tbody>{parameters.map((parameter) => <tr key={`${parameter.location}:${parameter.name}`}>\n <td><code>{parameter.name}</code></td><td>{parameter.location}</td><td>{parameter.schema === null ? '—' : <SchemaType schema={parameter.schema} />}</td><td>{parameter.required ? 'Yes' : 'No'}</td><td>{parameter.description ?? '—'}</td>\n <td>{parameter.examples.length > 0 ? <Examples examples={parameter.examples} /> : '—'}</td>\n </tr>)}</tbody>\n </table>\n </div>;\n}\n\nfunction ResponseContract({ response }: { readonly response: ApiReferenceResponse }): ReactNode {\n return <section className=\"margin-bottom--md\">\n <p id={response.anchorId} className=\"margin-bottom--sm\"><strong><code>{response.status}</code></strong>{response.description !== null ? ` — ${response.description}` : ''}</p>\n <RepresentationList mediaTypes={response.mediaTypes} />\n </section>;\n}\n\nfunction RepresentationList({ mediaTypes }: { readonly mediaTypes: readonly ApiReferenceMediaType[] }): ReactNode {\n if (mediaTypes.length === 0) return <p>No structured representation.</p>;\n return <ul>{mediaTypes.map((representation) => <li key={representation.mediaType}>\n <code>{representation.mediaType}</code>{representation.schema !== null ? <> — <SchemaType schema={representation.schema} /></> : null}\n {representation.examples.length > 0 ? <Examples examples={representation.examples} /> : null}\n </li>)}</ul>;\n}\n\n/** Presents a schema identity without resolving component references in React. */\nfunction SchemaType({ schema }: { readonly schema: ApiReferenceSchemaNode }): ReactNode {\n if (schema.booleanSchema !== null) return <code>{schema.booleanSchema ? 'any value' : 'no value'}</code>;\n if (schema.referenceName !== null) {\n return schema.referenceAnchorId === null\n ? <code>{schema.referenceName}</code>\n : <a href={`#${schema.referenceAnchorId}`}><code>{schema.referenceName}</code></a>;\n }\n if (schema.types.length > 0) return <code>{schema.types.join(' | ')}</code>;\n if (schema.compositions.length > 0) return <code>{schema.compositions.map((composition) => composition.kind).join(' + ')}</code>;\n return <code>schema</code>;\n}\n\nfunction schemaHasNestedContract(schema: ApiReferenceSchemaNode): boolean {\n return schema.properties.length > 0\n || schema.items !== null\n || schema.compositions.length > 0\n || (schema.additionalProperties !== null && typeof schema.additionalProperties === 'object');\n}\n\nfunction schemaHasContractDetails(schema: ApiReferenceSchemaNode): boolean {\n return schemaHasNestedContract(schema)\n || schema.description !== null\n || schema.format !== null\n || schema.defaultValue !== null\n || schema.constValue !== null\n || schema.enumValues.length > 0\n || schema.constraints.length > 0\n || schema.additionalProperties !== null;\n}\n\n/** Recursively renders only the contract fields carried by the OpenAPI Schema Object. */\nfunction SchemaContract({ schema }: { readonly schema: ApiReferenceSchemaNode }): ReactNode {\n return <div>\n {schema.description !== null ? <p>{schema.description}</p> : null}\n {schema.format !== null ? <p className=\"margin-bottom--sm\"><strong>Format:</strong> <code>{schema.format}</code></p> : null}\n {schema.defaultValue !== null ? <p className=\"margin-bottom--sm\"><strong>Default:</strong> <code>{schema.defaultValue}</code></p> : null}\n {schema.constValue !== null ? <p className=\"margin-bottom--sm\"><strong>Constant:</strong> <code>{schema.constValue}</code></p> : null}\n {schema.constraints.length > 0 ? <dl className=\"margin-bottom--md\">\n {schema.constraints.map((constraint) => <Fragment key={constraint.kind}>\n <dt><code>{constraint.kind}</code></dt><dd><code>{constraint.jsonValue}</code></dd>\n </Fragment>)}\n </dl> : null}\n {schema.enumValues.length > 0 ? <>\n <p className=\"margin-bottom--sm\"><strong>Allowed values</strong></p>\n <ul>{schema.enumValues.map((enumValue) => <li key={enumValue.jsonValue}>\n <code>{enumValue.jsonValue}</code>{enumValue.description !== null ? ` — ${enumValue.description}` : ''}\n </li>)}</ul>\n </> : null}\n {schema.properties.length > 0 ? <>\n <p className=\"margin-bottom--sm\"><strong>Properties</strong></p>\n <ul style={{ listStyle: 'none', paddingInlineStart: '1rem' }}>\n {schema.properties.map((property) => <SchemaProperty key={property.name} property={property} />)}\n </ul>\n </> : null}\n {schema.items !== null ? <details className=\"margin-bottom--sm\">\n <summary>Array items — <SchemaType schema={schema.items} /></summary>\n <div className=\"margin-left--md margin-top--sm\"><SchemaContract schema={schema.items} /></div>\n </details> : null}\n {schema.compositions.map((composition) => <section key={composition.kind} className=\"margin-bottom--md\">\n <p className=\"margin-bottom--sm\"><strong>{schemaCompositionLabel(composition.kind)}</strong></p>\n <ol>{composition.branches.map((branch, index) => <li key={index} className=\"margin-bottom--sm\">\n <SchemaType schema={branch} />\n {schemaHasContractDetails(branch)\n ? <div className=\"margin-left--md margin-top--sm\"><SchemaContract schema={branch} /></div>\n : null}\n </li>)}</ol>\n </section>)}\n {schema.additionalProperties !== null ? <div className=\"margin-bottom--sm\">\n <strong>Additional properties:</strong>{typeof schema.additionalProperties === 'boolean'\n ? ` ${schema.additionalProperties ? 'allowed' : 'not allowed'}`\n : <><span> </span><SchemaType schema={schema.additionalProperties} /><div className=\"margin-left--md\"><SchemaContract schema={schema.additionalProperties} /></div></>}\n </div> : null}\n </div>;\n}\n\nfunction SchemaProperty({ property }: { readonly property: ApiReferenceSchemaProperty }): ReactNode {\n const identity = <><code>{property.name}</code> — <SchemaType schema={property.schema} /> — {property.required ? 'required' : 'optional'}</>;\n return <li className=\"margin-bottom--sm\" style={{ borderLeft: '2px solid var(--ifm-color-emphasis-300)', paddingInlineStart: '0.75rem' }}>\n {schemaHasNestedContract(property.schema)\n ? <details><summary>{identity}</summary><div className=\"margin-top--sm\"><SchemaContract schema={property.schema} /></div></details>\n : <><p className=\"margin-bottom--sm\">{identity}</p><SchemaContract schema={property.schema} /></>}\n </li>;\n}\n\nfunction schemaCompositionLabel(kind: ApiReferenceSchemaCompositionKind): string {\n switch (kind) {\n case ApiReferenceSchemaCompositionKind.ONE_OF: return 'One of';\n case ApiReferenceSchemaCompositionKind.ANY_OF: return 'Any of';\n case ApiReferenceSchemaCompositionKind.ALL_OF: return 'All of';\n }\n}\n\n/** Renders OpenAPI reusable schemas only when a reader explicitly selects one. */\nfunction ComponentSchemaReference({\n schemas,\n activeFragment,\n}: {\n readonly schemas: ApiReferenceModel['componentSchemas'];\n readonly activeFragment: string;\n}): ReactNode {\n const selectedSchema = schemas.find((schema) => schema.anchorId === activeFragment) ?? null;\n return <details className=\"margin-bottom--xl\" open={selectedSchema !== null}>\n <summary>Reusable data models ({schemas.length})</summary>\n {selectedSchema === null ? <p className=\"margin-top--md\">Select a request or response model link to inspect its OpenAPI schema.</p> : <section className=\"margin-top--lg\">\n <h2 id={selectedSchema.anchorId}>{selectedSchema.name}</h2>\n <p><strong>Type:</strong> <span> </span><SchemaType schema={selectedSchema.schema} /></p>\n <SchemaContract schema={selectedSchema.schema} />\n </section>}\n </details>;\n}\n\n/** Renders only OpenAPI-declared examples; this component never invents sample payloads. */\nfunction Examples({ examples }: { readonly examples: readonly ApiReferenceExample[] }): ReactNode {\n return <details className=\"margin-top--sm\">\n <summary>Examples ({examples.length})</summary>\n {examples.map((example) => <div key={example.name} className=\"margin-top--sm\">\n <p className=\"margin-bottom--sm\"><strong>{example.name}</strong>{example.summary !== null ? ` — ${example.summary}` : ''}</p>\n {example.description !== null ? <p className=\"margin-bottom--sm\">{example.description}</p> : null}\n {example.jsonValue !== null ? <pre><code>{example.jsonValue}</code></pre> : null}\n {example.externalValue !== null ? <p className=\"margin-bottom--sm\">External example: <a href={example.externalValue}>{example.externalValue}</a></p> : null}\n {example.jsonValue === null && example.externalValue === null ? <p className=\"margin-bottom--sm\">No inline example value was supplied.</p> : null}\n </div>)}\n </details>;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"openapi-reference-view.js","sourceRoot":"","sources":["../../../../src/runtime/openapi-reference-view.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAC/E,OAAO,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC;AAgB9E;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,EAAE,KAAK,EAAyC;IACnF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACpF,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/E,MAAM,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,KAAK,mBAAmB,CAAC,IAAI,IAAI,CAAC;IAElH,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,oBAAoB,GAAG,GAAG,EAAE;YAChC,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;YACnC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC5B,sBAAsB,CAAC,uBAAuB,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,WAAW,IAAI,IAAI,CAAC,CAAC;QAClG,CAAC,CAAC;QACF,oBAAoB,EAAE,CAAC;QACvB,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;QAC5D,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;IAC9E,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ;;;;OAIG;IACH,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1F,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,UAAU;YAAE,MAAM,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IAChH,CAAC,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAEvC,OAAO,8BACJ,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,KAAC,0BAA0B,IAAC,WAAW,EAAE,KAAK,CAAC,WAAW,GAAI,CAAC,CAAC,CAAC,IAAI,EAClG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC7D,CAAC,CAAC,KAAC,oBAAoB,IAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,GAAI;gBAC1F,CAAC,CAAC,IAAI,EACR,wBAAI,KAAK,CAAC,cAAc,yBAAqB,KAAK,CAAC,SAAS,CAAC,MAAM,mBAAgB,EACnF,eAAK,SAAS,EAAC,mBAAmB,aAChC,gBAAO,OAAO,EAAC,sBAAsB,0CAAkC,EACvE,gBACE,EAAE,EAAC,sBAAsB,EACzB,SAAS,EAAC,iBAAiB,EAC3B,IAAI,EAAC,QAAQ,sBACI,6BAA6B,EAC9C,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;4BAClB,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;4BAC7B,sBAAsB,EAAE,CAAC;wBAC3B,CAAC,EACD,WAAW,EAAC,uCAAkC,GAC9C,EACD,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAQ,SAAS,EAAC,qDAAqD,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,sBAAgB,CAAC,CAAC,CAAC,IAAI,IACxJ,EACN,YAAG,EAAE,EAAC,6BAA6B,EAAC,SAAS,EAAC,mBAAmB,EAAC,IAAI,EAAC,QAAQ,eAAW,QAAQ,YAC/F,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,qBAAqB,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GACnG,EACJ,mBAAS,IAAI,EAAE,gBAAgB,KAAK,IAAI,EAAE,SAAS,EAAC,mBAAmB,aACrE,yCAAiB,SAAS,CAAC,MAAM,eAAW,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAW,EACxF,4BAAgB,eAAe,YAC5B,sBAAsB,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAwB,SAAS,EAAC,gBAAgB,aACjG,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,8BACzB,aAAI,EAAE,EAAE,KAAK,CAAC,QAAQ,YAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAM,EAClD,KAAK,CAAC,QAAQ,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,sBAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,GAAK,CAAC,CAAC,CAAC,IAAI,IAChF,CAAC,CAAC,CAAC,IAAI,EACV,aAAI,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,mBAAmB,EAAE,sCAAsC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,YAC3J,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAC,YAAY,IAA4B,QAAQ,EAAE,QAAQ,IAAxC,QAAQ,CAAC,WAAW,CAAwB,CAAC,GAChG,KAPyD,KAAK,CAAC,EAAE,CAQ9D,CAAC,GACP,IACE,EACT,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,YAAG,IAAI,EAAC,QAAQ,sEAA0D,CAAC,CAAC,CAAC,IAAI,EAC1G,gBAAgB,KAAK,IAAI,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAG,IAAI,EAAC,QAAQ,kFAAsE,CAAC,CAAC,CAAC,IAAI,EACjJ,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,mBAA4C,SAAS,EAAC,mBAAmB,aACpG,sBAAG,iBAAQ,SAAS,EAAC,qCAAqC,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,sBAAsB,8BAAwB,GAAI,EACpI,KAAC,iBAAiB,IAAC,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,GAAI,KAFxC,gBAAgB,CAAC,WAAW,CAG7D,CAAC,CAAC,CAAC,IAAI,EACjB,KAAC,wBAAwB,IAAC,OAAO,EAAE,KAAK,CAAC,gBAAgB,EAAE,cAAc,EAAE,cAAc,GAAI,IAC5F,CAAC;AACN,CAAC;AAED,SAAS,0BAA0B,CAAC,EAAE,WAAW,EAAoC;IACnF,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;IACnD,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IACtF,MAAM,WAAW,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACjH,OAAO,mBAAS,SAAS,EAAC,mBAAmB,gBAAY,cAAc,aACrE,KAAC,iBAAiB,IAAC,MAAM,EAAE,QAAQ,GAAI,EACtC,WAAW,KAAK,IAAI,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAS,SAAS,EAAC,gBAAgB,aACnF,4BAAS,aAAI,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,gCAAsB,GAAU,EACzG,cAAK,SAAS,EAAC,gBAAgB,YAAC,KAAC,iBAAiB,IAAC,MAAM,EAAE,WAAW,GAAI,GAAM,IACxE,CAAC,CAAC,CAAC,IAAI,IACT,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,EAAE,MAAM,EAA+B;IAChE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAChD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC;gBAClC,CAAC,CAAC,uBAA6B,KAAC,uBAAuB,IAAC,MAAM,EAAE,IAAI,GAAI,IAA7D,WAAW,KAAK,EAAE,CAAgD;gBAC7E,CAAC,CAAC,uBAA6B,KAAC,uBAAuB,IAAC,MAAM,EAAE,IAAI,GAAI,IAA7D,WAAW,KAAK,EAAE,CAAgD,CAAC,CAAC;YACjF,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1C,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,uBAA2B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,uBAAiC,KAAC,uBAAuB,IAAC,MAAM,EAAE,IAAI,GAAI,IAAjE,GAAG,SAAS,IAAI,IAAI,EAAE,CAAgD,CAAC,IAAjI,QAAQ,KAAK,EAAE,CAAwH,CAAC,CAAC;YAC9J,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACrC,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,MAAM;YACzG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;YACjC,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,sBAA8B,KAAC,uBAAuB,IAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAI,IAA9E,aAAa,KAAK,EAAE,CAA8D,CAAC,CAAC;IAC1G,CAAC;IACD,OAAO,4BAAG,MAAM,GAAI,CAAC;AACvB,CAAC;AAED,SAAS,uBAAuB,CAAC,EAAE,MAAM,EAA+B;IACtE,OAAO,4BAAG,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACrF,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO,2BAAkC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAtC,GAAG,KAAK,IAAI,IAAI,EAAE,CAA8B,CAAC;YACvH,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,OAAO,yBAAgC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAtC,GAAG,KAAK,IAAI,IAAI,EAAE,CAA4B,CAAC;YACjH,OAAO,KAAC,QAAQ,cAA2B,IAAI,IAAzB,GAAG,KAAK,IAAI,IAAI,EAAE,CAAmB,CAAC;QAC9D,CAAC,CAAC,GAAI,CAAC;AACT,CAAC;AAED,SAAS,oBAAoB,CAAC,EAC5B,OAAO,EACP,eAAe,GAIhB;IACC,OAAO,kBAAS,SAAS,EAAC,wBAAwB,qBAAiB,wBAAwB,YACzF,eAAK,SAAS,EAAC,YAAY,aACzB,aAAI,EAAE,EAAC,wBAAwB,mCAAwB,EACtD,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,8BACpB,qCAAkB,EAClB,uBAAK,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,yBAAqB,yBAAO,MAAM,CAAC,GAAG,GAAQ,EAAC,MAAM,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,0CAAM,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,IAAI,KAAvG,MAAM,CAAC,GAAG,CAAmG,CAAC,GAAM,IACzJ,CAAC,CAAC,CAAC,IAAI,EACT,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,8BAC5B,qDAAkC,EAClC,uBAAK,eAAe,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,MAAC,QAAQ,eACpD,uBAAI,yBAAO,cAAc,CAAC,IAAI,GAAQ,GAAK,EAC3C,yBACE,aAAG,SAAS,EAAC,mBAAmB,uBACxB,yBAAO,cAAc,CAAC,IAAI,GAAQ,EACvC,cAAc,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,kDAAa,yBAAO,cAAc,CAAC,MAAM,GAAQ,IAAG,CAAC,CAAC,CAAC,IAAI,EAC5F,cAAc,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,kDAAa,yBAAO,cAAc,CAAC,YAAY,GAAQ,IAAG,CAAC,CAAC,CAAC,IAAI,EACxG,cAAc,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,oDAAe,yBAAO,cAAc,CAAC,QAAQ,GAAQ,IAAG,CAAC,CAAC,CAAC,IAAI,EAClG,cAAc,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,gDAAW,yBAAO,cAAc,CAAC,aAAa,GAAQ,IAAG,CAAC,CAAC,CAAC,IAAI,IACvG,EACH,cAAc,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,sBAAG,KAAC,uBAAuB,IAAC,MAAM,EAAE,cAAc,CAAC,WAAW,GAAI,GAAI,CAAC,CAAC,CAAC,IAAI,IACjH,KAXqD,cAAc,CAAC,IAAI,CAYpE,CAAC,GAAM,IACjB,CAAC,CAAC,CAAC,IAAI,IACN,GACE,CAAC;AACb,CAAC;AAED,SAAS,YAAY,CAAC,EAAE,QAAQ,EAA+C;IAC7E,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACpG,OAAO,cAAI,KAAK,EAAE,EAAE,MAAM,EAAE,yCAAyC,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAC9G,YAAG,IAAI,EAAE,IAAI,QAAQ,CAAC,QAAQ,EAAE,YAAE,2BAAS,QAAQ,CAAC,KAAK,GAAU,GAAI,EACtE,QAAQ,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,YAAG,SAAS,EAAC,kCAAkC,YAAE,QAAQ,CAAC,WAAW,GAAK,CAAC,CAAC,CAAC,IAAI,EAClH,aAAG,SAAS,EAAC,iCAAiC,aAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,iBAAa,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,cAAK,YAAY,cAAU,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAK,IACrM,CAAC;AACR,CAAC;AAED;;;;GAIG;AACH,SAAS,sBAAsB,CAAC,SAA0C;IAMxE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAgG,CAAC;IACvH,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,IAAI,mBAAmB,CAAC;QACzD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;QAChF,IAAI,KAAK,CAAC,QAAQ,EAAE,KAAK,KAAK,QAAQ,CAAC,QAAQ,EAAE,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,WAAW,KAAK,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC;YACzH,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,oCAAoC,CAAC,CAAC;QACtF,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;SACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACrB,EAAE;QACF,QAAQ,EAAE,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ;QACvF,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,iBAAiB,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAgF;IACnI,OAAO,8BACH,aAAI,EAAE,EAAE,QAAQ,CAAC,QAAQ,YAAG,QAAQ,CAAC,KAAK,GAAM,EAC/C,QAAQ,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,sBAAI,QAAQ,CAAC,WAAW,GAAK,CAAC,CAAC,CAAC,IAAI,EACpE,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,8BAAE,qCAAkB,EAAA,sBAAI,QAAQ,CAAC,aAAa,GAAK,IAAG,CAAC,CAAC,CAAC,IAAI,EAC/F,QAAQ,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAC,qBAAqB,IAAC,aAAa,EAAE,QAAQ,CAAC,aAAa,GAAI,CAAC,CAAC,CAAC,IAAI,EAC3G,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAA4B,SAAS,EAAC,wBAAwB,YAC/F,eAAK,SAAS,EAAC,YAAY,aACzB,aAAI,EAAE,EAAE,MAAM,CAAC,QAAQ,YAAG,MAAM,CAAC,KAAK,GAAM,EAC5C,aAAG,SAAS,EAAC,aAAa,aAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,yBAAqB,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAK,EAClH,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAC,gBAAgB,IAA2B,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,IAArE,OAAO,CAAC,WAAW,CAAsD,CAAC,IAC/H,IALqC,MAAM,CAAC,SAAS,CAMvD,CAAC,IACR,CAAC;AACN,CAAC;AAED,SAAS,qBAAqB,CAAC,EAAE,aAAa,EAAqE;IACjH,OAAO,mBAAS,SAAS,EAAC,mBAAmB,aAC3C,sDAA8B,aAAa,CAAC,MAAM,SAAY,EAC9D,aAAI,SAAS,EAAC,gBAAgB,YAC3B,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,CAAC,yBAC1C,2BAAS,YAAY,CAAC,oBAAoB,GAAU,EAAC,YAAY,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,uCAAO,yBAAO,YAAY,CAAC,eAAe,GAAQ,IAAG,CAAC,CAAC,CAAC,IAAI,QAAI,YAAY,CAAC,MAAM,qBAAiB,YAAY,CAAC,mBAAmB,UAAM,YAAY,CAAC,0BAA0B,oBAAgB,YAAY,CAAC,cAAc,OACxT,YAAY,CAAC,cAAc,KAAK,IAAI;4BACnC,CAAC,CAAC,yDAA0B,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,KAAK,YAAY,CAAC,cAAc,CAAC,IAAI,WAAW,YAAY,CAAC,cAAc,CAAC,QAAQ,GAAG,SAAK;4BAC1T,CAAC,CAAC,IAAI,KAJ2C,GAAG,YAAY,CAAC,mBAAmB,IAAI,YAAY,CAAC,eAAe,IAAI,MAAM,IAAI,YAAY,CAAC,MAAM,IAAI,KAAK,EAAE,CAK/J,CAAC,GACH,IACG,CAAC;AACb,CAAC;AAED,SAAS,sBAAsB;IAC7B,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,uBAAuB,CAAC,SAAyC,EAAE,IAAY;IACtF,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ;WAC7D,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ;eAChI,OAAO,CAAC,WAAW,EAAE,QAAQ,KAAK,QAAQ;eAC1C,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AACzF,CAAC;AAED,SAAS,eAAe,CAAC,KAAwB,EAAE,KAAa;IAC9D,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,iBAAiB,EAAE,CAAC;IACzD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,SAAS,CAAC;IACzD,OAAO,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACxC,GAAG,QAAQ;QACX,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC3C,GAAG,MAAM;YACT,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC5C,QAAQ,CAAC,KAAK;gBACd,QAAQ,CAAC,WAAW,IAAI,EAAE;gBAC1B,QAAQ,CAAC,aAAa,IAAI,EAAE;gBAC5B,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC;oBAClD,YAAY,CAAC,mBAAmB;oBAChC,YAAY,CAAC,oBAAoB;oBACjC,YAAY,CAAC,eAAe,IAAI,EAAE;oBAClC,YAAY,CAAC,MAAM;oBACnB,YAAY,CAAC,cAAc;oBAC3B,YAAY,CAAC,cAAc,EAAE,QAAQ,IAAI,EAAE;iBAC5C,CAAC;gBACF,MAAM,CAAC,KAAK;gBACZ,OAAO,CAAC,OAAO;gBACf,OAAO,CAAC,MAAM;gBACd,OAAO,CAAC,IAAI;gBACZ,OAAO,CAAC,MAAM,CAAC,qBAAqB;gBACpC,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;oBAC1D,WAAW,CAAC,IAAI;oBAChB,WAAW,CAAC,KAAK;oBACjB,WAAW,CAAC,YAAY,IAAI,EAAE;oBAC9B,WAAW,CAAC,iBAAiB,IAAI,EAAE;iBACpC,CAAC;gBACF,GAAG,OAAO,CAAC,eAAe;aAC3B,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;SACxE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;KACnD,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAE,OAAO,EAAE,cAAc,EAA8E;IAC/H,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IAEtG,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,gBAAgB,CAAC,OAAO,EAAE,cAAc,CAAC;YAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACzE,CAAC,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;IAE9B,OAAO,mBAAS,SAAS,EAAC,mBAAmB,aAC3C,aAAI,EAAE,EAAE,OAAO,CAAC,QAAQ,YAAG,OAAO,CAAC,OAAO,GAAM,EAChD,wBAAG,yBAAO,OAAO,CAAC,MAAM,GAAQ,OAAC,yBAAO,OAAO,CAAC,IAAI,GAAQ,IAAI,EAC/D,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,sBAAI,OAAO,CAAC,WAAW,GAAK,CAAC,CAAC,CAAC,IAAI,EACnE,aAAG,SAAS,EAAC,mBAAmB,aAC9B,uCAAwB,OAAE,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAC7D,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,6DAA8B,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,MAAC,QAAQ,eAC9I,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAC,2BAAS,WAAW,CAAC,KAAK,GAAU,QAAE,yBAAO,WAAW,CAAC,IAAI,GAAQ,UADuD,WAAW,CAAC,IAAI,CAE5J,CAAC,SAAK,CAAC,CAAC,CAAC,IAAI,EACvB,GAAG,EACH,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,kDAAkB,yBAAO,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,GAAQ,UAAK,CAAC,CAAC,CAAC,IAAI,EACtH,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,8CAAc,yBAAO,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAQ,SAAI,CAAC,CAAC,CAAC,IAAI,IACtG,EACH,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,YAAY,KAAK,IAAI,IAAI,WAAW,CAAC,iBAAiB,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAS,SAAS,EAAC,mBAAmB,aAC1K,uDAAyC,EACzC,aAAI,SAAS,EAAC,gBAAgB,YAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,yBACnF,2BAAS,WAAW,CAAC,KAAK,GAAU,EACnC,WAAW,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,0CAAM,WAAW,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,EAC7E,WAAW,CAAC,iBAAiB,KAAK,IAAI,CAAC,CAAC,CAAC,aAAG,SAAS,EAAC,mBAAmB,2BAAY,WAAW,CAAC,iBAAiB,IAAK,CAAC,CAAC,CAAC,IAAI,KAHnC,WAAW,CAAC,IAAI,CAIzG,CAAC,GAAM,IACJ,CAAC,CAAC,CAAC,IAAI,EACjB,mBAAS,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,aAC7F,8DAAgD,EAChD,eAAK,SAAS,EAAC,gBAAgB,aAC7B,sCAAmB,EAClB,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,yCAAqB,CAAC,CAAC,CAAC,KAAC,cAAc,IAAC,UAAU,EAAE,OAAO,CAAC,UAAU,GAAI,EAC5G,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,8BAC9B,cAAI,EAAE,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,8BAAgB,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,IAAM,EACpH,KAAC,kBAAkB,IAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,UAAU,GAAI,IACjE,CAAC,CAAC,CAAC,IAAI,EACV,qCAAkB,EACjB,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,4DAAwC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAC,gBAAgB,IAAuB,QAAQ,EAAE,QAAQ,IAAnC,QAAQ,CAAC,MAAM,CAAwB,CAAC,IAC5K,IACE,IACF,CAAC;AACb,CAAC;AAED,qGAAqG;AACrG,SAAS,gBAAgB,CAAC,OAA4B,EAAE,QAAgB;IACtE,OAAO,OAAO,CAAC,WAAW,EAAE,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;AAC5H,CAAC;AAED,SAAS,eAAe;IACtB,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,EAAE,CAAC;IAC7C,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;AACrG,CAAC;AAED,SAAS,cAAc,CAAC,EAAE,UAAU,EAA6D;IAC/F,OAAO,cAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YACxD,4BACE,0BAAO,yBAAI,gCAAa,EAAA,oCAAiB,EAAA,gCAAa,EAAA,oCAAiB,EAAA,uCAAoB,EAAA,oCAAiB,IAAK,GAAQ,EACzH,0BAAQ,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,yBACpC,uBAAI,yBAAO,SAAS,CAAC,IAAI,GAAQ,GAAK,EAAA,uBAAK,SAAS,CAAC,QAAQ,GAAM,EAAA,uBAAK,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAC,UAAU,IAAC,MAAM,EAAE,SAAS,CAAC,MAAM,GAAI,GAAM,EAAA,uBAAK,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAM,EAAA,uBAAK,SAAS,CAAC,WAAW,IAAI,GAAG,GAAM,EAC3O,uBAAK,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAC,QAAQ,IAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,GAAI,CAAC,CAAC,CAAC,GAAG,GAAM,KAF9C,GAAG,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,CAGnF,CAAC,GAAS,IACT,GACJ,CAAC;AACT,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAE,QAAQ,EAA+C;IACjF,OAAO,mBAAS,SAAS,EAAC,mBAAmB,aAC3C,aAAG,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAC,mBAAmB,aAAC,2BAAQ,yBAAO,QAAQ,CAAC,MAAM,GAAQ,GAAS,EAAC,QAAQ,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,IAAK,EAC9K,KAAC,kBAAkB,IAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,GAAI,IAC/C,CAAC;AACb,CAAC;AAED,SAAS,kBAAkB,CAAC,EAAE,UAAU,EAA6D;IACnG,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,wDAAoC,CAAC;IACzE,OAAO,uBAAK,UAAU,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,yBAC7C,yBAAO,cAAc,CAAC,SAAS,GAAQ,EAAC,cAAc,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,0CAAK,KAAC,UAAU,IAAC,MAAM,EAAE,cAAc,CAAC,MAAM,GAAI,IAAG,CAAC,CAAC,CAAC,IAAI,EACpI,cAAc,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAC,QAAQ,IAAC,QAAQ,EAAE,cAAc,CAAC,QAAQ,GAAI,CAAC,CAAC,CAAC,IAAI,KAFtC,cAAc,CAAC,SAAS,CAG3E,CAAC,GAAM,CAAC;AACf,CAAC;AAED,kFAAkF;AAClF,SAAS,UAAU,CAAC,EAAE,MAAM,EAA+C;IACzE,IAAI,MAAM,CAAC,aAAa,KAAK,IAAI;QAAE,OAAO,yBAAO,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,GAAQ,CAAC;IACzG,IAAI,MAAM,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,iBAAiB,KAAK,IAAI;YACtC,CAAC,CAAC,yBAAO,MAAM,CAAC,aAAa,GAAQ;YACrC,CAAC,CAAC,YAAG,IAAI,EAAE,IAAI,MAAM,CAAC,iBAAiB,EAAE,YAAE,yBAAO,MAAM,CAAC,aAAa,GAAQ,GAAI,CAAC;IACvF,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,yBAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAQ,CAAC;IAC5E,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,yBAAO,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAQ,CAAC;IACjI,OAAO,oCAAmB,CAAC;AAC7B,CAAC;AAED,SAAS,uBAAuB,CAAC,MAA8B;IAC7D,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;WAC9B,MAAM,CAAC,KAAK,KAAK,IAAI;WACrB,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;WAC9B,CAAC,MAAM,CAAC,oBAAoB,KAAK,IAAI,IAAI,OAAO,MAAM,CAAC,oBAAoB,KAAK,QAAQ,CAAC,CAAC;AACjG,CAAC;AAED,SAAS,wBAAwB,CAAC,MAA8B;IAC9D,OAAO,uBAAuB,CAAC,MAAM,CAAC;WACjC,MAAM,CAAC,WAAW,KAAK,IAAI;WAC3B,MAAM,CAAC,MAAM,KAAK,IAAI;WACtB,MAAM,CAAC,YAAY,KAAK,IAAI;WAC5B,MAAM,CAAC,UAAU,KAAK,IAAI;WAC1B,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;WAC5B,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;WAC7B,MAAM,CAAC,oBAAoB,KAAK,IAAI,CAAC;AAC5C,CAAC;AAED,yFAAyF;AACzF,SAAS,cAAc,CAAC,EAAE,MAAM,EAA+C;IAC7E,OAAO,0BACJ,MAAM,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,sBAAI,MAAM,CAAC,WAAW,GAAK,CAAC,CAAC,CAAC,IAAI,EAChE,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,aAAG,SAAS,EAAC,mBAAmB,aAAC,uCAAwB,OAAC,yBAAO,MAAM,CAAC,MAAM,GAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,EAC1H,MAAM,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,aAAG,SAAS,EAAC,mBAAmB,aAAC,wCAAyB,OAAC,yBAAO,MAAM,CAAC,YAAY,GAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,EACvI,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,aAAG,SAAS,EAAC,mBAAmB,aAAC,yCAA0B,OAAC,yBAAO,MAAM,CAAC,UAAU,GAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,EACpI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAI,SAAS,EAAC,mBAAmB,YAC/D,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,MAAC,QAAQ,eAC/C,uBAAI,yBAAO,UAAU,CAAC,IAAI,GAAQ,GAAK,EAAA,uBAAI,yBAAO,UAAU,CAAC,SAAS,GAAQ,GAAK,KAD9B,UAAU,CAAC,IAAI,CAE3D,CAAC,GACT,CAAC,CAAC,CAAC,IAAI,EACX,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,8BAC9B,YAAG,SAAS,EAAC,mBAAmB,YAAC,8CAA+B,GAAI,EACpE,uBAAK,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,yBACxC,yBAAO,SAAS,CAAC,SAAS,GAAQ,EAAC,SAAS,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,KADrD,SAAS,CAAC,SAAS,CAEjE,CAAC,GAAM,IACX,CAAC,CAAC,CAAC,IAAI,EACT,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,8BAC9B,YAAG,SAAS,EAAC,mBAAmB,YAAC,0CAA2B,GAAI,EAChE,aAAI,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,YACzD,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAC,cAAc,IAAqB,QAAQ,EAAE,QAAQ,IAAjC,QAAQ,CAAC,IAAI,CAAwB,CAAC,GAC7F,IACJ,CAAC,CAAC,CAAC,IAAI,EACT,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,mBAAS,SAAS,EAAC,mBAAmB,aAC7D,qDAAuB,KAAC,UAAU,IAAC,MAAM,EAAE,MAAM,CAAC,KAAK,GAAI,IAAU,EACrE,cAAK,SAAS,EAAC,gCAAgC,YAAC,KAAC,cAAc,IAAC,MAAM,EAAE,MAAM,CAAC,KAAK,GAAI,GAAM,IACtF,CAAC,CAAC,CAAC,IAAI,EAChB,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,mBAAgC,SAAS,EAAC,mBAAmB,aACrG,YAAG,SAAS,EAAC,mBAAmB,YAAC,2BAAS,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,GAAU,GAAI,EAChG,uBAAK,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,cAAgB,SAAS,EAAC,mBAAmB,aAC5F,KAAC,UAAU,IAAC,MAAM,EAAE,MAAM,GAAI,EAC7B,wBAAwB,CAAC,MAAM,CAAC;oCAC/B,CAAC,CAAC,cAAK,SAAS,EAAC,gCAAgC,YAAC,KAAC,cAAc,IAAC,MAAM,EAAE,MAAM,GAAI,GAAM;oCAC1F,CAAC,CAAC,IAAI,KAJgD,KAAK,CAK1D,CAAC,GAAM,KAP0C,WAAW,CAAC,IAAI,CAQ9D,CAAC,EACV,MAAM,CAAC,oBAAoB,KAAK,IAAI,CAAC,CAAC,CAAC,eAAK,SAAS,EAAC,mBAAmB,aACxE,sDAAuC,EAAC,OAAO,MAAM,CAAC,oBAAoB,KAAK,SAAS;wBACtF,CAAC,CAAC,IAAI,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE;wBAC/D,CAAC,CAAC,8BAAE,+BAAc,EAAA,KAAC,UAAU,IAAC,MAAM,EAAE,MAAM,CAAC,oBAAoB,GAAI,EAAA,cAAK,SAAS,EAAC,iBAAiB,YAAC,KAAC,cAAc,IAAC,MAAM,EAAE,MAAM,CAAC,oBAAoB,GAAI,GAAM,IAAG,IACpK,CAAC,CAAC,CAAC,IAAI,IACT,CAAC;AACT,CAAC;AAED,SAAS,cAAc,CAAC,EAAE,QAAQ,EAAqD;IACrF,MAAM,QAAQ,GAAG,8BAAE,yBAAO,QAAQ,CAAC,IAAI,GAAQ,cAAG,KAAC,UAAU,IAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAI,cAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC;IAC7I,OAAO,aAAI,SAAS,EAAC,mBAAmB,EAAC,KAAK,EAAE,EAAE,UAAU,EAAE,yCAAyC,EAAE,kBAAkB,EAAE,SAAS,EAAE,YACrI,uBAAuB,CAAC,QAAQ,CAAC,MAAM,CAAC;YACvC,CAAC,CAAC,8BAAS,4BAAU,QAAQ,GAAW,EAAA,cAAK,SAAS,EAAC,gBAAgB,YAAC,KAAC,cAAc,IAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAI,GAAM,IAAU;YACnI,CAAC,CAAC,8BAAE,YAAG,SAAS,EAAC,mBAAmB,YAAE,QAAQ,GAAK,EAAA,KAAC,cAAc,IAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAI,IAAG,GAChG,CAAC;AACR,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAuC;IACrE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,iCAAiC,CAAC,MAAM,CAAC,CAAC,OAAO,QAAQ,CAAC;QAC/D,KAAK,iCAAiC,CAAC,MAAM,CAAC,CAAC,OAAO,QAAQ,CAAC;QAC/D,KAAK,iCAAiC,CAAC,MAAM,CAAC,CAAC,OAAO,QAAQ,CAAC;IACjE,CAAC;AACH,CAAC;AAED,kFAAkF;AAClF,SAAS,wBAAwB,CAAC,EAChC,OAAO,EACP,cAAc,GAIf;IACC,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,cAAc,CAAC,IAAI,IAAI,CAAC;IAC5F,OAAO,mBAAS,SAAS,EAAC,mBAAmB,EAAC,IAAI,EAAE,cAAc,KAAK,IAAI,aACzE,wDAAgC,OAAO,CAAC,MAAM,SAAY,EACzD,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,YAAG,SAAS,EAAC,gBAAgB,uFAA2E,CAAC,CAAC,CAAC,mBAAS,SAAS,EAAC,gBAAgB,aACvK,aAAI,EAAE,EAAE,cAAc,CAAC,QAAQ,YAAG,cAAc,CAAC,IAAI,GAAM,EAC3D,wBAAG,qCAAsB,OAAC,+BAAc,EAAA,KAAC,UAAU,IAAC,MAAM,EAAE,cAAc,CAAC,MAAM,GAAI,IAAI,EACzF,KAAC,cAAc,IAAC,MAAM,EAAE,cAAc,CAAC,MAAM,GAAI,IACzC,IACF,CAAC;AACb,CAAC;AAED,4FAA4F;AAC5F,SAAS,QAAQ,CAAC,EAAE,QAAQ,EAAyD;IACnF,OAAO,mBAAS,SAAS,EAAC,gBAAgB,aACxC,4CAAoB,QAAQ,CAAC,MAAM,SAAY,EAC9C,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,eAAwB,SAAS,EAAC,gBAAgB,aAC3E,aAAG,SAAS,EAAC,mBAAmB,aAAC,2BAAS,OAAO,CAAC,IAAI,GAAU,EAAC,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAK,EAC5H,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,YAAG,SAAS,EAAC,mBAAmB,YAAE,OAAO,CAAC,WAAW,GAAK,CAAC,CAAC,CAAC,IAAI,EAChG,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,wBAAK,yBAAO,OAAO,CAAC,SAAS,GAAQ,GAAM,CAAC,CAAC,CAAC,IAAI,EAC/E,OAAO,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,aAAG,SAAS,EAAC,mBAAmB,mCAAmB,YAAG,IAAI,EAAE,OAAO,CAAC,aAAa,YAAG,OAAO,CAAC,aAAa,GAAK,IAAI,CAAC,CAAC,CAAC,IAAI,EAC1J,OAAO,CAAC,SAAS,KAAK,IAAI,IAAI,OAAO,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,YAAG,SAAS,EAAC,mBAAmB,sDAA0C,CAAC,CAAC,CAAC,IAAI,KAL9G,OAAO,CAAC,IAAI,CAM3C,CAAC,IACC,CAAC;AACb,CAAC","sourcesContent":["import { Fragment, useEffect, useMemo, useState, type ReactNode } from 'react';\nimport { ApiReferenceSchemaCompositionKind } from './openapi-reference-model';\nimport type {\n ApiReferenceMediaType,\n ApiReferenceExample,\n ApiReferenceModel,\n ApiReferenceParameter,\n ApiReferenceResource,\n ApiReferenceResourceCategory,\n ApiReferenceResponse,\n ApiReferenceSchemaNode,\n ApiReferenceSchemaProperty,\n ApiReferenceSecurityScheme,\n ApiReferenceServer,\n ApiReferenceVariant,\n} from './openapi-reference-model';\n\n/**\n * Generic OpenAPI reference presentation for every generated application.\n *\n * It receives only the ephemeral model derived from verified OpenAPI bytes.\n * Application routes, branding, and document loading remain outside this\n * component; API semantics remain in OpenAPI rather than in React.\n */\nexport function OpenApiReferenceView({ model }: { readonly model: ApiReferenceModel }): ReactNode {\n const [query, setQuery] = useState('');\n const [selectedResourceRef, setSelectedResourceRef] = useState<string | null>(null);\n const [activeFragment, setActiveFragment] = useState(() => currentFragment());\n const resources = useMemo(() => filterResources(model, query), [model, query]);\n const selectedResource = model.resources.find((resource) => resource.resourceRef === selectedResourceRef) ?? null;\n\n useEffect(() => {\n const synchronizeSelection = () => {\n const fragment = currentFragment();\n setActiveFragment(fragment);\n setSelectedResourceRef(findResourceForFragment(model.resources, fragment)?.resourceRef ?? null);\n };\n synchronizeSelection();\n window.addEventListener('hashchange', synchronizeSelection);\n return () => window.removeEventListener('hashchange', synchronizeSelection);\n }, [model]);\n\n /**\n * The browser performs its ordinary fragment jump before React has mounted a\n * resource selected from a deep link. Repeat the jump after that resource is\n * present so resource, family and variant URLs all behave as true deep links.\n */\n useEffect(() => {\n const target = activeFragment.length > 0 ? document.getElementById(activeFragment) : null;\n if (target !== null && typeof target.scrollIntoView === 'function') target.scrollIntoView({ block: 'start' });\n }, [activeFragment, selectedResource]);\n\n return <>\n {model.description !== null ? <OpenApiDocumentDescription description={model.description} /> : null}\n {(model.servers.length > 0 || model.securitySchemes.length > 0)\n ? <ApiConnectionDetails servers={model.servers} securitySchemes={model.securitySchemes} />\n : null}\n <p>{model.operationCount} operations across {model.resources.length} resources.</p>\n <div className=\"margin-bottom--lg\">\n <label htmlFor=\"api-reference-search\">Search this API reference</label>\n <input\n id=\"api-reference-search\"\n className=\"margin-left--sm\"\n type=\"search\"\n aria-describedby=\"api-reference-search-status\"\n value={query}\n onChange={(event) => {\n setQuery(event.target.value);\n clearResourceSelection();\n }}\n placeholder=\"Resource, operation, path, role…\"\n />\n {query.length > 0 ? <button className=\"button button--secondary button--sm margin-left--sm\" type=\"button\" onClick={() => setQuery('')}>Clear</button> : null}\n </div>\n <p id=\"api-reference-search-status\" className=\"margin-bottom--lg\" role=\"status\" aria-live=\"polite\">\n {query.length > 0 ? `${resources.length} matching resource${resources.length === 1 ? '' : 's'}.` : ''}\n </p>\n <details open={selectedResource === null} className=\"margin-bottom--xl\">\n <summary>Browse {resources.length} resource{resources.length === 1 ? '' : 's'}</summary>\n <nav aria-label=\"API resources\">\n {resourceCategoryGroups(resources).map((group) => <section key={group.id} className=\"margin-top--lg\">\n {group.category !== null ? <>\n <h2 id={group.anchorId}>{group.category.label}</h2>\n {group.category.description !== null ? <p>{group.category.description}</p> : null}\n </> : null}\n <ul style={{ display: 'grid', gap: '0.75rem', gridTemplateColumns: 'repeat(auto-fit, minmax(16rem, 1fr))', listStyle: 'none', margin: '1rem 0 0', padding: 0 }}>\n {group.resources.map((resource) => <ResourceCard key={resource.resourceRef} resource={resource} />)}\n </ul>\n </section>)}\n </nav>\n </details>\n {resources.length === 0 ? <p role=\"status\">No resources or operation variants match this search.</p> : null}\n {selectedResource === null && resources.length > 0 ? <p role=\"status\">Select a resource to explore its operation families and variants.</p> : null}\n {selectedResource !== null ? <section key={selectedResource.resourceRef} className=\"margin-bottom--xl\">\n <p><button className=\"button button--secondary button--sm\" type=\"button\" onClick={clearResourceSelection}>All resources</button></p>\n <ResourceReference resource={selectedResource} activeFragment={activeFragment} />\n </section> : null}\n <ComponentSchemaReference schemas={model.componentSchemas} activeFragment={activeFragment} />\n </>;\n}\n\nfunction OpenApiDocumentDescription({ description }: { readonly description: string }): ReactNode {\n const conventionsMarker = '\\n\\n## API conventions';\n const markerIndex = description.indexOf(conventionsMarker);\n const overview = markerIndex === -1 ? description : description.slice(0, markerIndex);\n const conventions = markerIndex === -1 ? null : description.slice(markerIndex + conventionsMarker.length).trim();\n return <section className=\"margin-bottom--lg\" aria-label=\"API overview\">\n <OpenApiCommonMark source={overview} />\n {conventions !== null && conventions.length > 0 ? <details className=\"margin-top--md\">\n <summary><h2 style={{ display: 'inline', fontSize: 'inherit', margin: 0 }}>API conventions</h2></summary>\n <div className=\"margin-top--md\"><OpenApiCommonMark source={conventions} /></div>\n </details> : null}\n </section>;\n}\n\n/**\n * Safe, deliberately small CommonMark presenter for the generator-owned\n * OpenAPI description vocabulary. It supports the headings, paragraphs,\n * unordered lists, strong text and inline code emitted by the generator and\n * never evaluates HTML.\n */\nfunction OpenApiCommonMark({ source }: { readonly source: string }): ReactNode {\n const lines = source.split(/\\r?\\n/);\n const blocks: ReactNode[] = [];\n let index = 0;\n while (index < lines.length) {\n const line = lines[index] ?? '';\n if (line.trim().length === 0) {\n index += 1;\n continue;\n }\n const heading = line.match(/^(#{2,4})\\s+(.+)$/);\n if (heading !== null) {\n const text = heading[2] ?? '';\n blocks.push(heading[1]?.length === 2\n ? <h2 key={`heading:${index}`}><OpenApiInlineCommonMark source={text} /></h2>\n : <h3 key={`heading:${index}`}><OpenApiInlineCommonMark source={text} /></h3>);\n index += 1;\n continue;\n }\n if (line.startsWith('- ')) {\n const items: string[] = [];\n while (index < lines.length && (lines[index] ?? '').startsWith('- ')) {\n items.push((lines[index] ?? '').slice(2));\n index += 1;\n }\n blocks.push(<ul key={`list:${index}`}>{items.map((item, itemIndex) => <li key={`${itemIndex}:${item}`}><OpenApiInlineCommonMark source={item} /></li>)}</ul>);\n continue;\n }\n const paragraph: string[] = [];\n while (index < lines.length) {\n const candidate = lines[index] ?? '';\n if (candidate.trim().length === 0 || /^(#{2,4})\\s+/.test(candidate) || candidate.startsWith('- ')) break;\n paragraph.push(candidate.trim());\n index += 1;\n }\n blocks.push(<p key={`paragraph:${index}`}><OpenApiInlineCommonMark source={paragraph.join(' ')} /></p>);\n }\n return <>{blocks}</>;\n}\n\nfunction OpenApiInlineCommonMark({ source }: { readonly source: string }): ReactNode {\n return <>{source.split(/(\\*\\*[^*]+\\*\\*|`[^`]+`)/g).filter(Boolean).map((part, index) => {\n if (part.startsWith('**') && part.endsWith('**')) return <strong key={`${index}:${part}`}>{part.slice(2, -2)}</strong>;\n if (part.startsWith('`') && part.endsWith('`')) return <code key={`${index}:${part}`}>{part.slice(1, -1)}</code>;\n return <Fragment key={`${index}:${part}`}>{part}</Fragment>;\n })}</>;\n}\n\nfunction ApiConnectionDetails({\n servers,\n securitySchemes,\n}: {\n readonly servers: readonly ApiReferenceServer[];\n readonly securitySchemes: readonly ApiReferenceSecurityScheme[];\n}): ReactNode {\n return <section className=\"card margin-bottom--lg\" aria-labelledby=\"api-connection-details\">\n <div className=\"card__body\">\n <h2 id=\"api-connection-details\">Connection details</h2>\n {servers.length > 0 ? <>\n <h3>Base URLs</h3>\n <ul>{servers.map((server) => <li key={server.url}><code>{server.url}</code>{server.description !== null ? <> — {server.description}</> : null}</li>)}</ul>\n </> : null}\n {securitySchemes.length > 0 ? <>\n <h3>Authentication mechanisms</h3>\n <dl>{securitySchemes.map((securityScheme) => <Fragment key={securityScheme.name}>\n <dt><code>{securityScheme.name}</code></dt>\n <dd>\n <p className=\"margin-bottom--sm\">\n Type: <code>{securityScheme.type}</code>\n {securityScheme.scheme !== null ? <> · Scheme: <code>{securityScheme.scheme}</code></> : null}\n {securityScheme.bearerFormat !== null ? <> · Format: <code>{securityScheme.bearerFormat}</code></> : null}\n {securityScheme.location !== null ? <> · Location: <code>{securityScheme.location}</code></> : null}\n {securityScheme.parameterName !== null ? <> · Name: <code>{securityScheme.parameterName}</code></> : null}\n </p>\n {securityScheme.description !== null ? <p><OpenApiInlineCommonMark source={securityScheme.description} /></p> : null}\n </dd>\n </Fragment>)}</dl>\n </> : null}\n </div>\n </section>;\n}\n\nfunction ResourceCard({ resource }: { readonly resource: ApiReferenceResource }): ReactNode {\n const variantCount = resource.families.reduce((count, family) => count + family.variants.length, 0);\n return <li style={{ border: '1px solid var(--ifm-color-emphasis-300)', borderRadius: '0.5rem', padding: '1rem' }}>\n <a href={`#${resource.anchorId}`}><strong>{resource.label}</strong></a>\n {resource.description !== null ? <p className=\"margin-top--sm margin-bottom--sm\">{resource.description}</p> : null}\n <p className=\"margin-bottom--none text--muted\">{resource.families.length} operation {resource.families.length === 1 ? 'family' : 'families'} · {variantCount} variant{variantCount === 1 ? '' : 's'}</p>\n </li>;\n}\n\n/**\n * Groups only by source-projected category metadata. A document without\n * categories remains usable, but it is never silently bucketed by filenames,\n * labels or a framework-owned guess.\n */\nfunction resourceCategoryGroups(resources: readonly ApiReferenceResource[]): ReadonlyArray<{\n readonly id: string;\n readonly anchorId: string;\n readonly category: ApiReferenceResourceCategory | null;\n readonly resources: readonly ApiReferenceResource[];\n}> {\n const groups = new Map<string, { category: ApiReferenceResourceCategory | null; resources: ApiReferenceResource[] }>();\n for (const resource of resources) {\n const key = resource.category?.id ?? '__uncategorized__';\n const group = groups.get(key) ?? { category: resource.category, resources: [] };\n if (group.category?.label !== resource.category?.label || group.category?.description !== resource.category?.description) {\n throw new Error(`API reference category '${key}' has inconsistent source metadata`);\n }\n group.resources.push(resource);\n groups.set(key, group);\n }\n return [...groups.entries()]\n .map(([id, group]) => ({\n id,\n anchorId: group.category === null ? 'uncategorized-resources' : group.category.anchorId,\n category: group.category,\n resources: group.resources,\n }))\n .sort((left, right) => (left.category?.label ?? '').localeCompare(right.category?.label ?? ''));\n}\n\nfunction ResourceReference({ resource, activeFragment }: { readonly resource: ApiReferenceResource; readonly activeFragment: string }): ReactNode {\n return <>\n <h2 id={resource.anchorId}>{resource.label}</h2>\n {resource.description !== null ? <p>{resource.description}</p> : null}\n {resource.lifecycleRole !== null ? <><h3>Lifecycle</h3><p>{resource.lifecycleRole}</p></> : null}\n {resource.relationships.length > 0 ? <RelationshipSemantics relationships={resource.relationships} /> : null}\n {resource.families.map((family) => <div key={family.familyRef} className=\"card margin-bottom--md\">\n <div className=\"card__body\">\n <h3 id={family.anchorId}>{family.label}</h3>\n <p className=\"text--muted\">{family.variants.length} documented variant{family.variants.length === 1 ? '' : 's'}</p>\n {family.variants.map((variant) => <OperationVariant key={variant.operationId} variant={variant} activeFragment={activeFragment} />)}\n </div>\n </div>)}\n </>;\n}\n\nfunction RelationshipSemantics({ relationships }: { readonly relationships: ApiReferenceResource['relationships'] }): ReactNode {\n return <details className=\"margin-bottom--lg\">\n <summary>Data relationships ({relationships.length})</summary>\n <ul className=\"margin-top--md\">\n {relationships.map((relationship, index) => <li key={`${relationship.relatedResourceName}:${relationship.foreignKeyField ?? 'none'}:${relationship.nature}:${index}`}>\n <strong>{relationship.relatedResourceLabel}</strong>{relationship.foreignKeyField !== null ? <> via <code>{relationship.foreignKeyField}</code></> : null}: {relationship.nature} relationship ({relationship.resourceCardinality} to {relationship.relatedResourceCardinality}); lifecycle: {relationship.lifecycleModel}.\n {relationship.onParentDelete !== null\n ? <> Parent-delete policy: {!relationship.onParentDelete.enabled ? 'does not cascade' : relationship.onParentDelete.refusesWhileChildrenExist ? relationship.onParentDelete.strategy : `${relationship.onParentDelete.strategy} (${relationship.onParentDelete.mode}, depth ${relationship.onParentDelete.maxDepth})`}.</>\n : null}\n </li>)}\n </ul>\n </details>;\n}\n\nfunction clearResourceSelection(): void {\n if (typeof window !== 'undefined') window.location.hash = '';\n}\n\nfunction findResourceForFragment(resources: ApiReferenceModel['resources'], hash: string): ApiReferenceResource | null {\n const fragment = hash.startsWith('#') ? hash.slice(1) : hash;\n if (fragment.length === 0) return null;\n return resources.find((resource) => resource.anchorId === fragment\n || resource.families.some((family) => family.anchorId === fragment || family.variants.some((variant) => variant.anchorId === fragment\n || variant.requestBody?.anchorId === fragment\n || variant.responses.some((response) => response.anchorId === fragment)))) ?? null;\n}\n\nfunction filterResources(model: ApiReferenceModel, query: string): ApiReferenceModel['resources'] {\n const normalizedQuery = query.trim().toLocaleLowerCase();\n if (normalizedQuery.length === 0) return model.resources;\n return model.resources.map((resource) => ({\n ...resource,\n families: resource.families.map((family) => ({\n ...family,\n variants: family.variants.filter((variant) => [\n resource.label,\n resource.description ?? '',\n resource.lifecycleRole ?? '',\n ...resource.relationships.flatMap((relationship) => [\n relationship.relatedResourceName,\n relationship.relatedResourceLabel,\n relationship.foreignKeyField ?? '',\n relationship.nature,\n relationship.lifecycleModel,\n relationship.onParentDelete?.strategy ?? '',\n ]),\n family.label,\n variant.summary,\n variant.method,\n variant.path,\n variant.access.authenticationSummary,\n ...variant.access.roleRequirements.flatMap((requirement) => [\n requirement.role,\n requirement.label,\n requirement.businessRole ?? '',\n requirement.authorityBoundary ?? '',\n ]),\n ...variant.securitySchemes,\n ].some((value) => value.toLocaleLowerCase().includes(normalizedQuery))),\n })).filter((family) => family.variants.length > 0),\n })).filter((resource) => resource.families.length > 0);\n}\n\nfunction OperationVariant({ variant, activeFragment }: { readonly variant: ApiReferenceVariant; readonly activeFragment: string }): ReactNode {\n const [isContractOpen, setIsContractOpen] = useState(() => isContractTarget(variant, activeFragment));\n\n useEffect(() => {\n if (isContractTarget(variant, activeFragment)) setIsContractOpen(true);\n }, [activeFragment, variant]);\n\n return <article className=\"margin-bottom--lg\">\n <h4 id={variant.anchorId}>{variant.summary}</h4>\n <p><code>{variant.method}</code> <code>{variant.path}</code></p>\n {variant.description !== null ? <p>{variant.description}</p> : null}\n <p className=\"margin-bottom--sm\">\n <strong>Access:</strong> {variant.access.authenticationSummary}\n {variant.access.roleRequirements.length > 0 ? <> Authorization: any one of {variant.access.roleRequirements.map((requirement, index) => <Fragment key={requirement.role}>\n {index > 0 ? ' or ' : ''}<strong>{requirement.label}</strong> (<code>{requirement.role}</code>)\n </Fragment>)}.</> : null}\n {' '}\n {variant.securitySchemes.length > 0 ? <>Authentication: <code>{variant.securitySchemes.join(' or ')}</code>. </> : null}\n {variant.idempotent !== null ? <>Idempotent: <code>{variant.idempotent ? 'yes' : 'no'}</code>.</> : null}\n </p>\n {variant.access.roleRequirements.some((requirement) => requirement.businessRole !== null || requirement.authorityBoundary !== null) ? <details className=\"margin-bottom--sm\">\n <summary>Role authority details</summary>\n <ul className=\"margin-top--sm\">{variant.access.roleRequirements.map((requirement) => <li key={requirement.role}>\n <strong>{requirement.label}</strong>\n {requirement.businessRole !== null ? <> — {requirement.businessRole}</> : null}\n {requirement.authorityBoundary !== null ? <p className=\"margin-bottom--sm\">Boundary: {requirement.authorityBoundary}</p> : null}\n </li>)}</ul>\n </details> : null}\n <details open={isContractOpen} onToggle={(event) => setIsContractOpen(event.currentTarget.open)}>\n <summary>Request and response contract</summary>\n <div className=\"margin-top--md\">\n <h5>Parameters</h5>\n {variant.parameters.length === 0 ? <p>No parameters.</p> : <ParameterTable parameters={variant.parameters} />}\n {variant.requestBody !== null ? <>\n <h5 id={variant.requestBody.anchorId}>Request body {variant.requestBody.required ? '(required)' : '(optional)'}</h5>\n <RepresentationList mediaTypes={variant.requestBody.mediaTypes} />\n </> : null}\n <h5>Responses</h5>\n {variant.responses.length === 0 ? <p>No response contract was emitted.</p> : variant.responses.map((response) => <ResponseContract key={response.status} response={response} />)}\n </div>\n </details>\n </article>;\n}\n\n/** Opens the native contract disclosure before a request/response fragment is scrolled into view. */\nfunction isContractTarget(variant: ApiReferenceVariant, fragment: string): boolean {\n return variant.requestBody?.anchorId === fragment || variant.responses.some((response) => response.anchorId === fragment);\n}\n\nfunction currentFragment(): string {\n if (typeof window === 'undefined') return '';\n return window.location.hash.startsWith('#') ? window.location.hash.slice(1) : window.location.hash;\n}\n\nfunction ParameterTable({ parameters }: { readonly parameters: readonly ApiReferenceParameter[] }): ReactNode {\n return <div style={{ maxWidth: '100%', overflowX: 'auto' }}>\n <table>\n <thead><tr><th>Name</th><th>Location</th><th>Type</th><th>Required</th><th>Description</th><th>Examples</th></tr></thead>\n <tbody>{parameters.map((parameter) => <tr key={`${parameter.location}:${parameter.name}`}>\n <td><code>{parameter.name}</code></td><td>{parameter.location}</td><td>{parameter.schema === null ? '—' : <SchemaType schema={parameter.schema} />}</td><td>{parameter.required ? 'Yes' : 'No'}</td><td>{parameter.description ?? '—'}</td>\n <td>{parameter.examples.length > 0 ? <Examples examples={parameter.examples} /> : '—'}</td>\n </tr>)}</tbody>\n </table>\n </div>;\n}\n\nfunction ResponseContract({ response }: { readonly response: ApiReferenceResponse }): ReactNode {\n return <section className=\"margin-bottom--md\">\n <p id={response.anchorId} className=\"margin-bottom--sm\"><strong><code>{response.status}</code></strong>{response.description !== null ? ` — ${response.description}` : ''}</p>\n <RepresentationList mediaTypes={response.mediaTypes} />\n </section>;\n}\n\nfunction RepresentationList({ mediaTypes }: { readonly mediaTypes: readonly ApiReferenceMediaType[] }): ReactNode {\n if (mediaTypes.length === 0) return <p>No structured representation.</p>;\n return <ul>{mediaTypes.map((representation) => <li key={representation.mediaType}>\n <code>{representation.mediaType}</code>{representation.schema !== null ? <> — <SchemaType schema={representation.schema} /></> : null}\n {representation.examples.length > 0 ? <Examples examples={representation.examples} /> : null}\n </li>)}</ul>;\n}\n\n/** Presents a schema identity without resolving component references in React. */\nfunction SchemaType({ schema }: { readonly schema: ApiReferenceSchemaNode }): ReactNode {\n if (schema.booleanSchema !== null) return <code>{schema.booleanSchema ? 'any value' : 'no value'}</code>;\n if (schema.referenceName !== null) {\n return schema.referenceAnchorId === null\n ? <code>{schema.referenceName}</code>\n : <a href={`#${schema.referenceAnchorId}`}><code>{schema.referenceName}</code></a>;\n }\n if (schema.types.length > 0) return <code>{schema.types.join(' | ')}</code>;\n if (schema.compositions.length > 0) return <code>{schema.compositions.map((composition) => composition.kind).join(' + ')}</code>;\n return <code>schema</code>;\n}\n\nfunction schemaHasNestedContract(schema: ApiReferenceSchemaNode): boolean {\n return schema.properties.length > 0\n || schema.items !== null\n || schema.compositions.length > 0\n || (schema.additionalProperties !== null && typeof schema.additionalProperties === 'object');\n}\n\nfunction schemaHasContractDetails(schema: ApiReferenceSchemaNode): boolean {\n return schemaHasNestedContract(schema)\n || schema.description !== null\n || schema.format !== null\n || schema.defaultValue !== null\n || schema.constValue !== null\n || schema.enumValues.length > 0\n || schema.constraints.length > 0\n || schema.additionalProperties !== null;\n}\n\n/** Recursively renders only the contract fields carried by the OpenAPI Schema Object. */\nfunction SchemaContract({ schema }: { readonly schema: ApiReferenceSchemaNode }): ReactNode {\n return <div>\n {schema.description !== null ? <p>{schema.description}</p> : null}\n {schema.format !== null ? <p className=\"margin-bottom--sm\"><strong>Format:</strong> <code>{schema.format}</code></p> : null}\n {schema.defaultValue !== null ? <p className=\"margin-bottom--sm\"><strong>Default:</strong> <code>{schema.defaultValue}</code></p> : null}\n {schema.constValue !== null ? <p className=\"margin-bottom--sm\"><strong>Constant:</strong> <code>{schema.constValue}</code></p> : null}\n {schema.constraints.length > 0 ? <dl className=\"margin-bottom--md\">\n {schema.constraints.map((constraint) => <Fragment key={constraint.kind}>\n <dt><code>{constraint.kind}</code></dt><dd><code>{constraint.jsonValue}</code></dd>\n </Fragment>)}\n </dl> : null}\n {schema.enumValues.length > 0 ? <>\n <p className=\"margin-bottom--sm\"><strong>Allowed values</strong></p>\n <ul>{schema.enumValues.map((enumValue) => <li key={enumValue.jsonValue}>\n <code>{enumValue.jsonValue}</code>{enumValue.description !== null ? ` — ${enumValue.description}` : ''}\n </li>)}</ul>\n </> : null}\n {schema.properties.length > 0 ? <>\n <p className=\"margin-bottom--sm\"><strong>Properties</strong></p>\n <ul style={{ listStyle: 'none', paddingInlineStart: '1rem' }}>\n {schema.properties.map((property) => <SchemaProperty key={property.name} property={property} />)}\n </ul>\n </> : null}\n {schema.items !== null ? <details className=\"margin-bottom--sm\">\n <summary>Array items — <SchemaType schema={schema.items} /></summary>\n <div className=\"margin-left--md margin-top--sm\"><SchemaContract schema={schema.items} /></div>\n </details> : null}\n {schema.compositions.map((composition) => <section key={composition.kind} className=\"margin-bottom--md\">\n <p className=\"margin-bottom--sm\"><strong>{schemaCompositionLabel(composition.kind)}</strong></p>\n <ol>{composition.branches.map((branch, index) => <li key={index} className=\"margin-bottom--sm\">\n <SchemaType schema={branch} />\n {schemaHasContractDetails(branch)\n ? <div className=\"margin-left--md margin-top--sm\"><SchemaContract schema={branch} /></div>\n : null}\n </li>)}</ol>\n </section>)}\n {schema.additionalProperties !== null ? <div className=\"margin-bottom--sm\">\n <strong>Additional properties:</strong>{typeof schema.additionalProperties === 'boolean'\n ? ` ${schema.additionalProperties ? 'allowed' : 'not allowed'}`\n : <><span> </span><SchemaType schema={schema.additionalProperties} /><div className=\"margin-left--md\"><SchemaContract schema={schema.additionalProperties} /></div></>}\n </div> : null}\n </div>;\n}\n\nfunction SchemaProperty({ property }: { readonly property: ApiReferenceSchemaProperty }): ReactNode {\n const identity = <><code>{property.name}</code> — <SchemaType schema={property.schema} /> — {property.required ? 'required' : 'optional'}</>;\n return <li className=\"margin-bottom--sm\" style={{ borderLeft: '2px solid var(--ifm-color-emphasis-300)', paddingInlineStart: '0.75rem' }}>\n {schemaHasNestedContract(property.schema)\n ? <details><summary>{identity}</summary><div className=\"margin-top--sm\"><SchemaContract schema={property.schema} /></div></details>\n : <><p className=\"margin-bottom--sm\">{identity}</p><SchemaContract schema={property.schema} /></>}\n </li>;\n}\n\nfunction schemaCompositionLabel(kind: ApiReferenceSchemaCompositionKind): string {\n switch (kind) {\n case ApiReferenceSchemaCompositionKind.ONE_OF: return 'One of';\n case ApiReferenceSchemaCompositionKind.ANY_OF: return 'Any of';\n case ApiReferenceSchemaCompositionKind.ALL_OF: return 'All of';\n }\n}\n\n/** Renders OpenAPI reusable schemas only when a reader explicitly selects one. */\nfunction ComponentSchemaReference({\n schemas,\n activeFragment,\n}: {\n readonly schemas: ApiReferenceModel['componentSchemas'];\n readonly activeFragment: string;\n}): ReactNode {\n const selectedSchema = schemas.find((schema) => schema.anchorId === activeFragment) ?? null;\n return <details className=\"margin-bottom--xl\" open={selectedSchema !== null}>\n <summary>Reusable data models ({schemas.length})</summary>\n {selectedSchema === null ? <p className=\"margin-top--md\">Select a request or response model link to inspect its OpenAPI schema.</p> : <section className=\"margin-top--lg\">\n <h2 id={selectedSchema.anchorId}>{selectedSchema.name}</h2>\n <p><strong>Type:</strong> <span> </span><SchemaType schema={selectedSchema.schema} /></p>\n <SchemaContract schema={selectedSchema.schema} />\n </section>}\n </details>;\n}\n\n/** Renders only OpenAPI-declared examples; this component never invents sample payloads. */\nfunction Examples({ examples }: { readonly examples: readonly ApiReferenceExample[] }): ReactNode {\n return <details className=\"margin-top--sm\">\n <summary>Examples ({examples.length})</summary>\n {examples.map((example) => <div key={example.name} className=\"margin-top--sm\">\n <p className=\"margin-bottom--sm\"><strong>{example.name}</strong>{example.summary !== null ? ` — ${example.summary}` : ''}</p>\n {example.description !== null ? <p className=\"margin-bottom--sm\">{example.description}</p> : null}\n {example.jsonValue !== null ? <pre><code>{example.jsonValue}</code></pre> : null}\n {example.externalValue !== null ? <p className=\"margin-bottom--sm\">External example: <a href={example.externalValue}>{example.externalValue}</a></p> : null}\n {example.jsonValue === null && example.externalValue === null ? <p className=\"margin-bottom--sm\">No inline example value was supplied.</p> : null}\n </div>)}\n </details>;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-docs-auth-session.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"use-docs-auth-session.d.ts","sourceRoot":"","sources":["../../../../src/runtime/use-docs-auth-session.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,kBAAkB,IAAI,oBAAoB,CASzD"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { FrontendTechdocProviderRegistry } from './frontend-provider-registry.techdoc';
|
|
2
|
+
/** Works for standalone public docs and for existing auth-provider-only mounts. */
|
|
2
3
|
export declare function useDocsFrontendProviderRegistry(): FrontendTechdocProviderRegistry;
|
|
3
4
|
//# sourceMappingURL=use-docs-frontend-provider-registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-docs-frontend-provider-registry.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"use-docs-frontend-provider-registry.d.ts","sourceRoot":"","sources":["../../../../src/runtime/use-docs-frontend-provider-registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AAI5F,mFAAmF;AACnF,wBAAgB,+BAA+B,IAAI,+BAA+B,CAMjF"}
|
|
@@ -1,5 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import { DocsFrontendProvidersContext } from './DocsFrontendProviders.js';
|
|
3
|
+
import { DocsAuthContext } from './DocsAuthContext.js';
|
|
4
|
+
/** Works for standalone public docs and for existing auth-provider-only mounts. */
|
|
2
5
|
export function useDocsFrontendProviderRegistry() {
|
|
3
|
-
|
|
6
|
+
const providers = useContext(DocsFrontendProvidersContext);
|
|
7
|
+
const auth = useContext(DocsAuthContext);
|
|
8
|
+
const registry = providers ?? auth?.frontendProviderRegistry;
|
|
9
|
+
if (registry === undefined)
|
|
10
|
+
throw new Error('useDocsFrontendProviderRegistry requires DocsFrontendProviders or DocsAuthProvider.');
|
|
11
|
+
return registry;
|
|
4
12
|
}
|
|
5
13
|
//# sourceMappingURL=use-docs-frontend-provider-registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-docs-frontend-provider-registry.js","sourceRoot":"","sources":["../../../../src/runtime/use-docs-frontend-provider-registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-docs-frontend-provider-registry.js","sourceRoot":"","sources":["../../../../src/runtime/use-docs-frontend-provider-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,mFAAmF;AACnF,MAAM,UAAU,+BAA+B;IAC7C,MAAM,SAAS,GAAG,UAAU,CAAC,4BAA4B,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,SAAS,IAAI,IAAI,EAAE,wBAAwB,CAAC;IAC7D,IAAI,QAAQ,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC,CAAC;IACnI,OAAO,QAAQ,CAAC;AAClB,CAAC","sourcesContent":["import { useContext } from 'react';\nimport type { FrontendTechdocProviderRegistry } from './frontend-provider-registry.techdoc';\nimport { DocsFrontendProvidersContext } from './DocsFrontendProviders';\nimport { DocsAuthContext } from './DocsAuthContext';\n\n/** Works for standalone public docs and for existing auth-provider-only mounts. */\nexport function useDocsFrontendProviderRegistry(): FrontendTechdocProviderRegistry {\n const providers = useContext(DocsFrontendProvidersContext);\n const auth = useContext(DocsAuthContext);\n const registry = providers ?? auth?.frontendProviderRegistry;\n if (registry === undefined) throw new Error('useDocsFrontendProviderRegistry requires DocsFrontendProviders or DocsAuthProvider.');\n return registry;\n}\n"]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adds the third-party `<script>` tags every live docs provider declares.
|
|
3
|
+
*
|
|
4
|
+
* The techdoc's half of the DATA channel's executable surface (#332), beside
|
|
5
|
+
* `useDocsProviderSdks` for the npm half. Before this, a docs provider's
|
|
6
|
+
* declared `scripts` were read by nothing on this surface: only the website
|
|
7
|
+
* injected them, which is how a declared script became a label elsewhere.
|
|
8
|
+
* The injector itself is the ONE shared copy in
|
|
9
|
+
* `@wildo-ai/external-connectors-public/techdoc` — a second copy of a DOM
|
|
10
|
+
* mutation eventually disagrees about idempotence, and a vendor tag loaded
|
|
11
|
+
* twice initialises twice.
|
|
12
|
+
*
|
|
13
|
+
* Effect-only, and that is not a detail: Docusaurus server-renders every page
|
|
14
|
+
* at build time, where there is no `document` to inject into, and a vendor tag
|
|
15
|
+
* must not run inside the build.
|
|
16
|
+
*
|
|
17
|
+
* Deliberately no teardown, for the same reason as the website hook: a vendor
|
|
18
|
+
* tag installs a global and often starts work immediately. Removing the element
|
|
19
|
+
* undoes neither, so a cleanup that removed it would only make the next mount
|
|
20
|
+
* inject a SECOND copy of an already-running script. Idempotence by `src` is
|
|
21
|
+
* the real guard.
|
|
22
|
+
*
|
|
23
|
+
* It injects without awaiting: nothing on the docs surface mounts a component
|
|
24
|
+
* that reads a vendor global. A docs component that ever does should await
|
|
25
|
+
* `loadProviderScripts` instead, as the SaaS app's provider component registry
|
|
26
|
+
* does.
|
|
27
|
+
*/
|
|
28
|
+
import type { FrontendTechdocProviderRegistry } from './frontend-provider-registry.techdoc';
|
|
29
|
+
export declare function useDocsProviderScripts(registry: FrontendTechdocProviderRegistry | undefined): void;
|
|
30
|
+
//# sourceMappingURL=use-docs-provider-scripts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-docs-provider-scripts.d.ts","sourceRoot":"","sources":["../../../../src/runtime/use-docs-provider-scripts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAOH,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AAE5F,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,+BAA+B,GAAG,SAAS,GACpD,IAAI,CASN"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adds the third-party `<script>` tags every live docs provider declares.
|
|
3
|
+
*
|
|
4
|
+
* The techdoc's half of the DATA channel's executable surface (#332), beside
|
|
5
|
+
* `useDocsProviderSdks` for the npm half. Before this, a docs provider's
|
|
6
|
+
* declared `scripts` were read by nothing on this surface: only the website
|
|
7
|
+
* injected them, which is how a declared script became a label elsewhere.
|
|
8
|
+
* The injector itself is the ONE shared copy in
|
|
9
|
+
* `@wildo-ai/external-connectors-public/techdoc` — a second copy of a DOM
|
|
10
|
+
* mutation eventually disagrees about idempotence, and a vendor tag loaded
|
|
11
|
+
* twice initialises twice.
|
|
12
|
+
*
|
|
13
|
+
* Effect-only, and that is not a detail: Docusaurus server-renders every page
|
|
14
|
+
* at build time, where there is no `document` to inject into, and a vendor tag
|
|
15
|
+
* must not run inside the build.
|
|
16
|
+
*
|
|
17
|
+
* Deliberately no teardown, for the same reason as the website hook: a vendor
|
|
18
|
+
* tag installs a global and often starts work immediately. Removing the element
|
|
19
|
+
* undoes neither, so a cleanup that removed it would only make the next mount
|
|
20
|
+
* inject a SECOND copy of an already-running script. Idempotence by `src` is
|
|
21
|
+
* the real guard.
|
|
22
|
+
*
|
|
23
|
+
* It injects without awaiting: nothing on the docs surface mounts a component
|
|
24
|
+
* that reads a vendor global. A docs component that ever does should await
|
|
25
|
+
* `loadProviderScripts` instead, as the SaaS app's provider component registry
|
|
26
|
+
* does.
|
|
27
|
+
*/
|
|
28
|
+
import { useEffect } from 'react';
|
|
29
|
+
import { collectDeclaredProviderScripts, injectProviderScripts, } from '@wildo-ai/external-connectors-public/techdoc';
|
|
30
|
+
export function useDocsProviderScripts(registry) {
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
if (typeof document === 'undefined')
|
|
33
|
+
return;
|
|
34
|
+
const scripts = collectDeclaredProviderScripts(registry?.modules.values());
|
|
35
|
+
if (scripts.length === 0)
|
|
36
|
+
return;
|
|
37
|
+
injectProviderScripts(scripts, document);
|
|
38
|
+
}, [registry]);
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=use-docs-provider-scripts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-docs-provider-scripts.js","sourceRoot":"","sources":["../../../../src/runtime/use-docs-provider-scripts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,GACtB,MAAM,8CAA8C,CAAC;AAGtD,MAAM,UAAU,sBAAsB,CACpC,QAAqD;IAErD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,QAAQ,KAAK,WAAW;YAAE,OAAO;QAE5C,MAAM,OAAO,GAAG,8BAA8B,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEjC,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjB,CAAC","sourcesContent":["/**\n * Adds the third-party `<script>` tags every live docs provider declares.\n *\n * The techdoc's half of the DATA channel's executable surface (#332), beside\n * `useDocsProviderSdks` for the npm half. Before this, a docs provider's\n * declared `scripts` were read by nothing on this surface: only the website\n * injected them, which is how a declared script became a label elsewhere.\n * The injector itself is the ONE shared copy in\n * `@wildo-ai/external-connectors-public/techdoc` — a second copy of a DOM\n * mutation eventually disagrees about idempotence, and a vendor tag loaded\n * twice initialises twice.\n *\n * Effect-only, and that is not a detail: Docusaurus server-renders every page\n * at build time, where there is no `document` to inject into, and a vendor tag\n * must not run inside the build.\n *\n * Deliberately no teardown, for the same reason as the website hook: a vendor\n * tag installs a global and often starts work immediately. Removing the element\n * undoes neither, so a cleanup that removed it would only make the next mount\n * inject a SECOND copy of an already-running script. Idempotence by `src` is\n * the real guard.\n *\n * It injects without awaiting: nothing on the docs surface mounts a component\n * that reads a vendor global. A docs component that ever does should await\n * `loadProviderScripts` instead, as the SaaS app's provider component registry\n * does.\n */\n\nimport { useEffect } from 'react';\nimport {\n collectDeclaredProviderScripts,\n injectProviderScripts,\n} from '@wildo-ai/external-connectors-public/techdoc';\nimport type { FrontendTechdocProviderRegistry } from './frontend-provider-registry.techdoc';\n\nexport function useDocsProviderScripts(\n registry: FrontendTechdocProviderRegistry | undefined,\n): void {\n useEffect(() => {\n if (typeof document === 'undefined') return;\n\n const scripts = collectDeclaredProviderScripts(registry?.modules.values());\n if (scripts.length === 0) return;\n\n injectProviderScripts(scripts, document);\n }, [registry]);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-docs-provider-sdks.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"use-docs-provider-sdks.d.ts","sourceRoot":"","sources":["../../../../src/runtime/use-docs-provider-sdks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAQH,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AAE5F,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,+BAA+B,GAAG,SAAS,GACpD,IAAI,CA2BN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-docs-provider-sdks.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"use-docs-provider-sdks.js","sourceRoot":"","sources":["../../../../src/runtime/use-docs-provider-sdks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EACL,4BAA4B,GAE7B,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAGvE,MAAM,UAAU,mBAAmB,CACjC,QAAqD;IAErD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO;QAEnC,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,SAAoD,CAAC;QAEzD,KAAK,4BAA4B,CAAC;YAChC,OAAO,EAAE,eAAe,CAAC,QAAQ;YACjC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE;YAClC,YAAY,EAAE,CAAC,UAAU,EAAE,EAAE;gBAC3B,sCAAsC;gBACtC,OAAO,CAAC,IAAI,CAAC,wBAAwB,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YACjF,CAAC;SACF,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACjB,SAAS,GAAG,MAAM,CAAC;YACnB,0EAA0E;YAC1E,yEAAyE;YACzE,iDAAiD;YACjD,IAAI,SAAS;gBAAE,KAAK,MAAM,CAAC,aAAa,EAAE,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;YACjB,KAAK,SAAS,EAAE,aAAa,EAAE,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjB,CAAC","sourcesContent":["/**\n * Loads and starts the npm SDK of every live docs provider that declares one.\n *\n * The techdoc's half of the CODE channel (#332). Until this landed, the docs\n * runtime hydrated a provider registry that nothing read — the registry was\n * built, exposed through `useDocsFrontendProviderRegistry`, and no consumer did\n * anything with it.\n *\n * Effect-only, and that is not a detail: Docusaurus server-renders every page\n * at build time, so a vendor SDK started during the render would run inside the\n * build process — or throw, reaching for a `window` that is not there. The\n * runner refuses off-browser on its own; the effect keeps it from being asked\n * in the first place.\n *\n * Teardown is real where the vendor offers one. An analytics or\n * error-monitoring client that can be started and never stopped cannot honour a\n * consent withdrawal.\n */\n\nimport { useEffect } from 'react';\nimport {\n activateFrontendProviderSdks,\n type ActivatedFrontendProviderSdks,\n} from '@wildo-ai/external-connectors-public/techdoc';\nimport { AppFrontendType } from '@wildo-ai/saas-models/public-runtime';\nimport type { FrontendTechdocProviderRegistry } from './frontend-provider-registry.techdoc';\n\nexport function useDocsProviderSdks(\n registry: FrontendTechdocProviderRegistry | undefined,\n): void {\n useEffect(() => {\n if (registry === undefined) return;\n\n let unmounted = false;\n let activated: ActivatedFrontendProviderSdks | undefined;\n\n void activateFrontendProviderSdks({\n surface: AppFrontendType.TECH_DOC,\n modules: registry.modules.values(),\n onDiagnostic: (diagnostic) => {\n // eslint-disable-next-line no-console\n console.warn(`[wildo-provider-sdk] ${diagnostic.kind}: ${diagnostic.message}`);\n },\n }).then((result) => {\n activated = result;\n // Activation is asynchronous and unmount is not: if the surface went away\n // while a vendor bundle was still downloading, stop what we just started\n // rather than leaving a client nobody can reach.\n if (unmounted) void result.deactivateAll();\n });\n\n return () => {\n unmounted = true;\n void activated?.deactivateAll();\n };\n }, [registry]);\n}\n"]}
|