@apiboost/omnispec 1.0.0 → 1.1.0-next.2
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/cjs/asyncapi/index.js +5 -5
- package/dist/cjs/chunks/AsyncApiSpec-Bj1F8C5K.js +2601 -0
- package/dist/cjs/chunks/AsyncApiSpec-Bj1F8C5K.js.map +1 -0
- package/dist/cjs/chunks/{Collapsible-BHAHk_Ep.js → Collapsible-BTWyDBkX.js} +429 -209
- package/dist/cjs/chunks/Collapsible-BTWyDBkX.js.map +1 -0
- package/dist/cjs/chunks/{ErrorBoundary-c1piU8da.js → ErrorBoundary-CezYgQDG.js} +2 -2
- package/dist/cjs/chunks/{ErrorBoundary-c1piU8da.js.map → ErrorBoundary-CezYgQDG.js.map} +1 -1
- package/dist/cjs/chunks/{OmniSpecRenderer-CE4wxVTL.js → OmniSpecRenderer-CghCPNuw.js} +6 -6
- package/dist/cjs/chunks/{OmniSpecRenderer-CE4wxVTL.js.map → OmniSpecRenderer-CghCPNuw.js.map} +1 -1
- package/dist/cjs/chunks/{OpenApiSpec-D0JtmOVQ.js → OpenApiSpec-BOlesoUX.js} +12 -12
- package/dist/cjs/chunks/OpenApiSpec-BOlesoUX.js.map +1 -0
- package/dist/cjs/chunks/{OpenIdConnectManual-oEnN0QJ-.js → OpenIdConnectManual-Bh7tdxoH.js} +7 -227
- package/dist/cjs/chunks/OpenIdConnectManual-Bh7tdxoH.js.map +1 -0
- package/dist/cjs/chunks/{ref-resolver-DWu6Q6E5.js → ref-resolver-0A8GNRI3.js} +6 -2
- package/dist/cjs/chunks/{ref-resolver-DWu6Q6E5.js.map → ref-resolver-0A8GNRI3.js.map} +1 -1
- package/dist/cjs/chunks/{useSpecDetector-A4OwYrmY.js → useSpecDetector-BemsWW9u.js} +2 -2
- package/dist/cjs/chunks/{useSpecDetector-A4OwYrmY.js.map → useSpecDetector-BemsWW9u.js.map} +1 -1
- package/dist/cjs/chunks/{useSpecFetcher-BKz1jHTV.js → useSpecFetcher-BAbHnXax.js} +28 -1
- package/dist/{esm/chunks/useSpecFetcher-CZvAnU7Z.js.map → cjs/chunks/useSpecFetcher-BAbHnXax.js.map} +1 -1
- package/dist/cjs/core/public.js +5 -5
- package/dist/cjs/index.js +9 -9
- package/dist/cjs/openapi/index.js +6 -6
- package/dist/cjs/wc/index.js +4 -4
- package/dist/esm/asyncapi/index.js +5 -5
- package/dist/esm/chunks/AsyncApiSpec-BzhfaQ_T.js +2599 -0
- package/dist/esm/chunks/AsyncApiSpec-BzhfaQ_T.js.map +1 -0
- package/dist/esm/chunks/{Collapsible-DA6-nS46.js → Collapsible-MyJB2agz.js} +428 -211
- package/dist/esm/chunks/Collapsible-MyJB2agz.js.map +1 -0
- package/dist/esm/chunks/{ErrorBoundary-posRNrbt.js → ErrorBoundary-9pDlZFfM.js} +2 -2
- package/dist/esm/chunks/{ErrorBoundary-posRNrbt.js.map → ErrorBoundary-9pDlZFfM.js.map} +1 -1
- package/dist/esm/chunks/{OmniSpecRenderer-MqsQFXro.js → OmniSpecRenderer-BUJSl_2I.js} +6 -6
- package/dist/esm/chunks/{OmniSpecRenderer-MqsQFXro.js.map → OmniSpecRenderer-BUJSl_2I.js.map} +1 -1
- package/dist/esm/chunks/{OpenApiSpec-Cy-oW6jA.js → OpenApiSpec-wm3tH2vF.js} +6 -6
- package/dist/esm/chunks/OpenApiSpec-wm3tH2vF.js.map +1 -0
- package/dist/esm/chunks/{OpenIdConnectManual-COfITasf.js → OpenIdConnectManual-DPmTIIIy.js} +6 -223
- package/dist/esm/chunks/OpenIdConnectManual-DPmTIIIy.js.map +1 -0
- package/dist/esm/chunks/{ref-resolver-BIrHJOjz.js → ref-resolver-B0C36NuQ.js} +6 -3
- package/dist/esm/chunks/{ref-resolver-BIrHJOjz.js.map → ref-resolver-B0C36NuQ.js.map} +1 -1
- package/dist/esm/chunks/{useSpecDetector-5SGcKnJx.js → useSpecDetector-BJBNbfN5.js} +2 -2
- package/dist/esm/chunks/{useSpecDetector-5SGcKnJx.js.map → useSpecDetector-BJBNbfN5.js.map} +1 -1
- package/dist/esm/chunks/{useSpecFetcher-CZvAnU7Z.js → useSpecFetcher-BvVfMuzf.js} +28 -1
- package/dist/{cjs/chunks/useSpecFetcher-BKz1jHTV.js.map → esm/chunks/useSpecFetcher-BvVfMuzf.js.map} +1 -1
- package/dist/esm/core/public.js +4 -4
- package/dist/esm/index.js +9 -9
- package/dist/esm/openapi/index.js +6 -6
- package/dist/esm/wc/index.js +4 -4
- package/dist/types/asyncapi/AsyncApiSpec.d.ts +1 -1
- package/dist/types/asyncapi/AsyncApiSpec.d.ts.map +1 -1
- package/dist/types/asyncapi/components/AsyncOverview.d.ts.map +1 -1
- package/dist/types/asyncapi/components/BindingsSection.d.ts +26 -0
- package/dist/types/asyncapi/components/BindingsSection.d.ts.map +1 -0
- package/dist/types/asyncapi/components/ChannelDetail.d.ts +7 -2
- package/dist/types/asyncapi/components/ChannelDetail.d.ts.map +1 -1
- package/dist/types/asyncapi/components/ChannelReferenceDetail.d.ts +35 -0
- package/dist/types/asyncapi/components/ChannelReferenceDetail.d.ts.map +1 -0
- package/dist/types/asyncapi/components/ComponentsSection.d.ts +1 -1
- package/dist/types/asyncapi/components/ComponentsSection.d.ts.map +1 -1
- package/dist/types/asyncapi/components/ExternalDocsLink.d.ts +29 -0
- package/dist/types/asyncapi/components/ExternalDocsLink.d.ts.map +1 -0
- package/dist/types/asyncapi/components/MessagePayload.d.ts +22 -0
- package/dist/types/asyncapi/components/MessagePayload.d.ts.map +1 -0
- package/dist/types/asyncapi/components/SecurityRequirementBadges.d.ts +29 -0
- package/dist/types/asyncapi/components/SecurityRequirementBadges.d.ts.map +1 -0
- package/dist/types/asyncapi/components/SecuritySchemesSection.d.ts +23 -0
- package/dist/types/asyncapi/components/SecuritySchemesSection.d.ts.map +1 -0
- package/dist/types/asyncapi/components/ServerList.d.ts +1 -1
- package/dist/types/asyncapi/components/ServerList.d.ts.map +1 -1
- package/dist/types/asyncapi/components/TagGroupHeader.d.ts +18 -0
- package/dist/types/asyncapi/components/TagGroupHeader.d.ts.map +1 -0
- package/dist/types/asyncapi/components/field-display.d.ts +30 -0
- package/dist/types/asyncapi/components/field-display.d.ts.map +1 -0
- package/dist/types/asyncapi/parser/asyncapi-parser.d.ts.map +1 -1
- package/dist/types/asyncapi/schema-formats.d.ts +26 -0
- package/dist/types/asyncapi/schema-formats.d.ts.map +1 -0
- package/dist/types/asyncapi/tag-grouping.d.ts +43 -0
- package/dist/types/asyncapi/tag-grouping.d.ts.map +1 -0
- package/dist/types/asyncapi/types/asyncapi.types.d.ts +72 -8
- package/dist/types/asyncapi/types/asyncapi.types.d.ts.map +1 -1
- package/dist/types/core/components/Layout/DocLayout.d.ts.map +1 -1
- package/dist/types/core/types/auth.types.d.ts +1 -1
- package/dist/types/openapi/parser/ref-resolver.d.ts +8 -0
- package/dist/types/openapi/parser/ref-resolver.d.ts.map +1 -1
- package/dist/wc/standalone.js +1 -1
- package/dist/wc/standalone.js.map +1 -1
- package/package.json +2 -2
- package/dist/cjs/chunks/AsyncApiSpec-TBlyRxTP.js +0 -819
- package/dist/cjs/chunks/AsyncApiSpec-TBlyRxTP.js.map +0 -1
- package/dist/cjs/chunks/Collapsible-BHAHk_Ep.js.map +0 -1
- package/dist/cjs/chunks/OpenApiSpec-D0JtmOVQ.js.map +0 -1
- package/dist/cjs/chunks/OpenIdConnectManual-oEnN0QJ-.js.map +0 -1
- package/dist/esm/chunks/AsyncApiSpec-C3lsUpZk.js +0 -817
- package/dist/esm/chunks/AsyncApiSpec-C3lsUpZk.js.map +0 -1
- package/dist/esm/chunks/Collapsible-DA6-nS46.js.map +0 -1
- package/dist/esm/chunks/OpenApiSpec-Cy-oW6jA.js.map +0 -1
- package/dist/esm/chunks/OpenIdConnectManual-COfITasf.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AsyncApiSpec-C3lsUpZk.js","sources":["../../../src/asyncapi/parser/asyncapi-parser.ts","../../../src/asyncapi/hooks/useAsyncApiSpec.ts","../../../src/asyncapi/components/AsyncOverview.tsx","../../../src/asyncapi/components/ProtocolBadge.tsx","../../../src/asyncapi/components/ServerList.tsx","../../../src/asyncapi/components/ChannelDetail.tsx","../../../src/asyncapi/components/ComponentsSection.tsx","../../../src/asyncapi/AsyncApiSpec.tsx"],"sourcesContent":["/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { parse as parseYaml } from 'yaml'\nimport { resolveRefs } from '../../openapi/parser/ref-resolver'\nimport type {\n ParsedAsyncApiSpec,\n AsyncApiServer,\n AsyncApiChannel,\n AsyncApiOperation,\n AsyncApiMessage,\n AsyncApiComponents,\n} from '../types/asyncapi.types'\n\ninterface AsyncApiDocument {\n asyncapi: string\n info: { title: string; description?: string; version: string; contact?: Record<string, string>; license?: Record<string, string>; termsOfService?: string }\n servers?: Record<string, ServerObject> | Array<{ name?: string } & ServerObject>\n channels?: Record<string, ChannelObject>\n operations?: Record<string, OperationObjectV3>\n tags?: Array<{ name: string; description?: string }>\n components?: { schemas?: Record<string, unknown>; messages?: Record<string, unknown> }\n externalDocs?: { description?: string; url: string }\n}\n\ninterface ServerObject {\n url?: string\n host?: string\n pathname?: string\n protocol: string\n protocolVersion?: string\n description?: string\n variables?: Record<string, { default?: string; description?: string; enum?: string[] }>\n security?: Record<string, string[]>[]\n}\n\ninterface ChannelObject {\n // v2\n description?: string\n publish?: OperationObjectV2\n subscribe?: OperationObjectV2\n parameters?: Record<string, { description?: string; schema?: Record<string, unknown>; location?: string }>\n bindings?: Record<string, unknown>\n // v3\n address?: string\n messages?: Record<string, unknown>\n}\n\ninterface OperationObjectV2 {\n operationId?: string\n summary?: string\n description?: string\n message?: MessageObject | { oneOf: MessageObject[] }\n tags?: Array<{ name: string; description?: string }>\n bindings?: Record<string, unknown>\n}\n\ninterface OperationObjectV3 {\n action: 'send' | 'receive'\n channel?: { $ref?: string } | ChannelObject\n summary?: string\n description?: string\n messages?: Array<{ $ref?: string } | MessageObject>\n tags?: Array<{ name: string; description?: string }>\n bindings?: Record<string, unknown>\n}\n\ninterface MessageObject {\n name?: string\n title?: string\n summary?: string\n description?: string\n contentType?: string\n payload?: Record<string, unknown>\n headers?: Record<string, unknown>\n correlationId?: { description?: string; location: string }\n tags?: Array<{ name: string; description?: string }>\n examples?: Array<{ name?: string; summary?: string; payload?: unknown; headers?: unknown }>\n bindings?: Record<string, unknown>\n}\n\nexport async function parseAsyncApiSpec(specInput: string | Record<string, unknown>): Promise<ParsedAsyncApiSpec> {\n const raw = typeof specInput === 'string' ? parseSpecString(specInput) : specInput\n const api = await resolveRefs(raw as Record<string, unknown>) as unknown as AsyncApiDocument\n\n const majorVersion = parseInt(api.asyncapi.split('.')[0], 10)\n const isV3 = majorVersion >= 3\n\n const servers = extractServers(api)\n const channels = isV3 ? extractChannelsV3(api) : extractChannelsV2(api)\n const components = extractComponents(api)\n\n const root = api as unknown as Record<string, unknown>\n\n const tags = api.tags?.map((tag) => {\n const raw = tag as Record<string, unknown>\n return {\n name: tag.name,\n description: tag.description,\n displayName: raw['x-displayName'] as string | undefined,\n externalDocs: raw.externalDocs as { description?: string; url: string } | undefined,\n }\n })?.filter((tag) => !(tag as Record<string, unknown>)['x-internal'])\n\n return {\n title: api.info.title,\n description: api.info.description,\n version: api.info.version,\n specVersion: api.asyncapi,\n servers,\n channels: channels.filter((ch) => !ch.xInternal),\n components,\n tags,\n tagGroups: root['x-tagGroups'] as ParsedAsyncApiSpec['tagGroups'],\n externalDocs: api.externalDocs,\n contact: api.info.contact as ParsedAsyncApiSpec['contact'],\n license: api.info.license as ParsedAsyncApiSpec['license'],\n termsOfService: api.info.termsOfService,\n logo: (api.info as Record<string, unknown>)['x-logo'] as ParsedAsyncApiSpec['logo'],\n }\n}\n\nfunction extractServers(api: AsyncApiDocument): AsyncApiServer[] {\n if (!api.servers) return []\n\n if (Array.isArray(api.servers)) {\n return api.servers.map((s, idx) => ({\n name: s.name ?? `server-${idx}`,\n url: s.host ? `${s.protocol}://${s.host}${s.pathname ?? ''}` : s.url ?? '',\n protocol: s.protocol,\n protocolVersion: s.protocolVersion,\n description: s.description,\n variables: s.variables,\n security: s.security,\n }))\n }\n\n return Object.entries(api.servers).map(([name, s]) => ({\n name,\n url: s.host ? `${s.protocol}://${s.host}${s.pathname ?? ''}` : s.url ?? '',\n protocol: s.protocol,\n protocolVersion: s.protocolVersion,\n description: s.description,\n variables: s.variables,\n security: s.security,\n }))\n}\n\nfunction extractChannelsV2(api: AsyncApiDocument): AsyncApiChannel[] {\n if (!api.channels) return []\n\n return Object.entries(api.channels).map(([channelName, ch]) => {\n const operations: AsyncApiOperation[] = []\n\n if (ch.publish) {\n operations.push(convertOperationV2('publish', ch.publish))\n }\n if (ch.subscribe) {\n operations.push(convertOperationV2('subscribe', ch.subscribe))\n }\n\n const raw = ch as Record<string, unknown>\n\n return {\n name: channelName,\n address: channelName,\n description: ch.description,\n operations: operations.filter((op) => !op.xInternal),\n parameters: ch.parameters,\n bindings: ch.bindings,\n xInternal: raw['x-internal'] as boolean | undefined,\n }\n })\n}\n\nfunction convertOperationV2(action: 'publish' | 'subscribe', op: OperationObjectV2): AsyncApiOperation {\n let message: AsyncApiMessage | undefined\n\n if (op.message) {\n if ('oneOf' in op.message) {\n message = convertMessage(op.message.oneOf[0])\n } else {\n message = convertMessage(op.message as MessageObject)\n }\n }\n\n const raw = op as Record<string, unknown>\n\n return {\n action,\n operationId: op.operationId,\n summary: op.summary,\n description: op.description,\n message,\n tags: op.tags,\n bindings: op.bindings,\n xBadges: raw['x-badges'] as AsyncApiOperation['xBadges'],\n xInternal: raw['x-internal'] as boolean | undefined,\n }\n}\n\nfunction extractChannelsV3(api: AsyncApiDocument): AsyncApiChannel[] {\n if (!api.channels) return []\n\n const channelMap = new Map<string, AsyncApiChannel>()\n\n // First, register all channels\n for (const [channelName, ch] of Object.entries(api.channels)) {\n const raw = ch as Record<string, unknown>\n channelMap.set(channelName, {\n name: channelName,\n address: ch.address ?? channelName,\n description: ch.description,\n operations: [],\n parameters: ch.parameters,\n bindings: ch.bindings,\n xInternal: raw['x-internal'] as boolean | undefined,\n })\n }\n\n // Then attach operations to channels\n if (api.operations) {\n for (const [, op] of Object.entries(api.operations)) {\n const channelRef = op.channel\n let channelName: string | undefined\n\n if (channelRef && '$ref' in channelRef && typeof channelRef.$ref === 'string') {\n // e.g. \"#/channels/userSignedUp\" -> \"userSignedUp\"\n channelName = channelRef.$ref.split('/').pop()\n }\n\n const messages: AsyncApiMessage[] = []\n if (op.messages) {\n for (const msg of op.messages) {\n if ('$ref' in msg) continue\n messages.push(convertMessage(msg as MessageObject))\n }\n }\n\n const raw = op as unknown as Record<string, unknown>\n const operation: AsyncApiOperation = {\n action: op.action,\n summary: op.summary,\n description: op.description,\n message: messages[0],\n tags: op.tags,\n bindings: op.bindings,\n xBadges: raw['x-badges'] as AsyncApiOperation['xBadges'],\n xInternal: raw['x-internal'] as boolean | undefined,\n }\n\n if (operation.xInternal) continue\n\n if (channelName && channelMap.has(channelName)) {\n channelMap.get(channelName)!.operations.push(operation)\n }\n }\n }\n\n return Array.from(channelMap.values())\n}\n\nfunction convertMessage(msg: MessageObject): AsyncApiMessage {\n return {\n name: msg.name,\n title: msg.title,\n summary: msg.summary,\n description: msg.description,\n contentType: msg.contentType,\n payload: msg.payload,\n headers: msg.headers,\n correlationId: msg.correlationId,\n tags: msg.tags,\n examples: msg.examples,\n bindings: msg.bindings,\n }\n}\n\nfunction extractComponents(api: AsyncApiDocument): AsyncApiComponents {\n return {\n schemas: (api.components?.schemas ?? {}) as Record<string, Record<string, unknown>>,\n messages: (api.components?.messages ?? {}) as Record<string, AsyncApiMessage>,\n }\n}\n\nfunction parseSpecString(input: string): Record<string, unknown> {\n const trimmed = input.trim()\n if (trimmed.startsWith('{')) {\n try {\n return JSON.parse(trimmed)\n } catch {\n // Fall through to YAML\n }\n }\n return parseYaml(trimmed) as Record<string, unknown>\n}\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { useCallback } from 'react'\nimport { useSpecFetcher } from '../../core/hooks/useSpecFetcher'\nimport { parseAsyncApiSpec } from '../parser/asyncapi-parser'\nimport type { ParsedAsyncApiSpec } from '../types/asyncapi.types'\n\nexport function useAsyncApiSpec(spec: string | Record<string, unknown>) {\n const parser = useCallback(async (raw: string) => {\n return parseAsyncApiSpec(raw)\n }, [])\n\n return useSpecFetcher<ParsedAsyncApiSpec>(spec, parser)\n}\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { css, cx } from '../../core/styles/css'\nimport type { ParsedAsyncApiSpec } from '../types/asyncapi.types'\nimport { MarkdownRenderer } from '../../core/components/MarkdownRenderer'\n\ninterface AsyncOverviewProps {\n spec: ParsedAsyncApiSpec\n}\n\nconst containerStyle = css({\n marginBottom: '32px',\n paddingBottom: '24px',\n borderBottom: '1px solid var(--omnispec-border-color)',\n})\n\nconst titleStyle = css({\n margin: '0 0 4px',\n fontSize: 'var(--omnispec-h2-font-size)',\n color: 'var(--omnispec-h2-color)',\n fontWeight: 700,\n display: 'inline',\n})\n\nconst versionStyle = css({\n fontSize: 'var(--omnispec-font-size-sm)',\n color: 'var(--omnispec-fg-muted)',\n marginLeft: '12px',\n fontFamily: 'var(--omnispec-font-mono)',\n})\n\nconst specBadgeStyle = css({\n fontSize: 'var(--omnispec-font-size-xs)',\n color: 'var(--omnispec-color-primary)',\n border: '1px solid var(--omnispec-color-primary)',\n borderRadius: '4px',\n padding: '1px 6px',\n marginLeft: '8px',\n fontFamily: 'var(--omnispec-font-mono)',\n})\n\nconst metaStyle = css({\n fontSize: 'var(--omnispec-font-size-sm)',\n color: 'var(--omnispec-fg-secondary)',\n marginTop: '4px',\n})\n\nconst linkStyle = css({\n color: 'var(--omnispec-fg-link)',\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'underline',\n },\n})\n\nexport function AsyncOverview({ spec }: AsyncOverviewProps) {\n return (\n <div className={cx('omnispec-async-overview', containerStyle)}>\n <h1 className={titleStyle}>{spec.title}</h1>\n <span className={versionStyle}>v{spec.version}</span>\n <span className={specBadgeStyle}>AsyncAPI {spec.specVersion}</span>\n\n {spec.description && (\n <MarkdownRenderer content={spec.description} />\n )}\n\n {spec.contact && (\n <div className={metaStyle}>\n {spec.contact.name && <span>Contact: {spec.contact.name}</span>}\n {spec.contact.email && (\n <span> <<a href={`mailto:${spec.contact.email}`} className={linkStyle}>{spec.contact.email}</a>></span>\n )}\n {spec.contact.url && (\n <span> · <a href={spec.contact.url} target=\"_blank\" rel=\"noopener noreferrer\" className={linkStyle}>{spec.contact.url}</a></span>\n )}\n </div>\n )}\n\n {spec.license && (\n <div className={metaStyle}>\n License: {spec.license.url\n ? <a href={spec.license.url} target=\"_blank\" rel=\"noopener noreferrer\" className={linkStyle}>{spec.license.name}</a>\n : spec.license.name\n }\n </div>\n )}\n\n {spec.externalDocs && (\n <div className={metaStyle}>\n <a href={spec.externalDocs.url} target=\"_blank\" rel=\"noopener noreferrer\" className={linkStyle}>\n {spec.externalDocs.description ?? 'External Documentation'}\n </a>\n </div>\n )}\n </div>\n )\n}\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { css, cx } from '../../core/styles/css'\n\ninterface ProtocolBadgeProps {\n protocol: string\n version?: string\n}\n\nconst protocolColors: Record<string, string> = {\n kafka: '#231F20',\n 'kafka-secure': '#231F20',\n mqtt: '#660066',\n 'mqtt5': '#660066',\n amqp: '#FF6600',\n 'amqp1': '#FF6600',\n ws: '#4A90D9',\n wss: '#4A90D9',\n http: 'var(--omnispec-color-get)',\n https: 'var(--omnispec-color-get)',\n nats: '#27AAE1',\n redis: '#DC382D',\n sns: '#FF9900',\n sqs: '#FF9900',\n stomp: '#6DB33F',\n mercure: '#1D1D1D',\n}\n\nconst badgeBase = css({\n display: 'inline-block',\n padding: '2px 8px',\n borderRadius: '4px',\n fontSize: '10px',\n fontWeight: 700,\n fontFamily: 'var(--omnispec-font-mono)',\n color: '#ffffff',\n letterSpacing: '0.5px',\n})\n\nconst versionStyle = css({\n fontWeight: 400,\n opacity: 0.8,\n})\n\nexport function ProtocolBadge({ protocol, version }: ProtocolBadgeProps) {\n const color = protocolColors[protocol.toLowerCase()] ?? 'var(--omnispec-fg-muted)'\n\n return (\n <span className={cx(badgeBase, css({ backgroundColor: color }))}>\n {protocol.toUpperCase()}\n {version && <span className={versionStyle}> {version}</span>}\n </span>\n )\n}\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { css, cx } from '../../core/styles/css'\nimport type { AsyncApiServer } from '../types/asyncapi.types'\nimport { ProtocolBadge } from './ProtocolBadge'\n\ninterface ServerListProps {\n servers: AsyncApiServer[]\n}\n\nconst containerStyle = css({\n marginBottom: '24px',\n})\n\nconst titleStyle = css({\n margin: '0 0 12px',\n fontSize: 'var(--omnispec-h3-font-size)',\n color: 'var(--omnispec-h3-color)',\n fontWeight: 600,\n})\n\nconst gridStyle = css({\n display: 'flex',\n flexDirection: 'column',\n gap: '8px',\n})\n\nconst cardStyle = css({\n padding: '12px',\n border: '1px solid var(--omnispec-border-color)',\n borderRadius: 'var(--omnispec-border-radius)',\n backgroundColor: 'var(--omnispec-bg-secondary)',\n '&:hover': {\n borderColor: 'var(--omnispec-color-primary)',\n },\n})\n\nconst cardHeaderStyle = css({\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n marginBottom: '6px',\n})\n\nconst serverNameStyle = css({\n fontWeight: 600,\n fontSize: 'var(--omnispec-font-size-sm)',\n color: 'var(--omnispec-fg-primary)',\n})\n\nconst urlStyle = css({\n fontFamily: 'var(--omnispec-font-mono)',\n fontSize: 'var(--omnispec-font-size-sm)',\n color: 'var(--omnispec-fg-code)',\n display: 'block',\n marginBottom: '4px',\n})\n\nconst descriptionStyle = css({\n margin: '4px 0 0',\n fontSize: 'var(--omnispec-font-size-xs)',\n color: 'var(--omnispec-fg-secondary)',\n})\n\nconst variablesStyle = css({\n marginTop: '8px',\n fontSize: 'var(--omnispec-font-size-xs)',\n})\n\nconst varRowStyle = css({\n display: 'flex',\n gap: '6px',\n marginBottom: '2px',\n})\n\nconst varNameStyle = css({\n fontFamily: 'var(--omnispec-font-mono)',\n color: 'var(--omnispec-fg-primary)',\n fontWeight: 600,\n})\n\nconst varDefaultStyle = css({\n fontFamily: 'var(--omnispec-font-mono)',\n color: 'var(--omnispec-fg-muted)',\n})\n\nconst varDescStyle = css({\n color: 'var(--omnispec-fg-secondary)',\n})\n\nexport function ServerList({ servers }: ServerListProps) {\n if (servers.length === 0) return null\n\n return (\n <div className={cx('omnispec-async-servers', containerStyle)}>\n <h3 className={titleStyle}>Servers</h3>\n <div className={gridStyle}>\n {servers.map((server) => (\n <div key={server.name} className={cardStyle}>\n <div className={cardHeaderStyle}>\n <span className={serverNameStyle}>{server.name}</span>\n <ProtocolBadge protocol={server.protocol} version={server.protocolVersion} />\n </div>\n <code className={urlStyle}>{server.url}</code>\n {server.description && (\n <p className={descriptionStyle}>{server.description}</p>\n )}\n {server.variables && Object.entries(server.variables).length > 0 && (\n <div className={variablesStyle}>\n {Object.entries(server.variables).map(([name, variable]) => (\n <div key={name} className={varRowStyle}>\n <code className={varNameStyle}>{name}</code>\n {variable.default && <span className={varDefaultStyle}>= {variable.default}</span>}\n {variable.description && <span className={varDescStyle}>{variable.description}</span>}\n </div>\n ))}\n </div>\n )}\n </div>\n ))}\n </div>\n </div>\n )\n}\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { css, cx } from '@core/styles/css'\nimport { mq } from '@core/styles/breakpoints'\nimport type { AsyncApiChannel } from '../types/asyncapi.types'\nimport { MarkdownRenderer } from '@core/components/MarkdownRenderer'\nimport { SchemaTree } from '@core/components/SchemaViewer/SchemaTree'\nimport { schemaToNodes, generateExample } from '@core/components/SchemaViewer/schema-utils'\nimport { CodeBlock } from '@core/components/CodeBlock/CodeBlock'\nimport { Tabs } from '@core/components/common/Tabs'\nimport { ExpandableCard } from '@core/components/common/ExpandableCard'\nimport { MethodBar } from '@core/components/common/MethodBar'\n\ninterface ChannelDetailProps {\n channel: AsyncApiChannel\n id?: string\n expandAll?: boolean\n expandGeneration?: number\n}\n\nconst actionLabels: Record<string, string> = {\n publish: 'PUB',\n subscribe: 'SUB',\n send: 'SEND',\n receive: 'RECV',\n}\n\nconst actionColors: Record<string, string> = {\n publish: 'var(--omnispec-color-publish)',\n subscribe: 'var(--omnispec-color-subscribe)',\n send: 'var(--omnispec-color-publish)',\n receive: 'var(--omnispec-color-subscribe)',\n}\n\nexport function ChannelDetail({ channel, id, expandAll, expandGeneration }: ChannelDetailProps) {\n const primaryAction = channel.operations[0]?.action\n const primaryLabel = actionLabels[primaryAction] ?? primaryAction?.toUpperCase() ?? ''\n const primaryColor = actionColors[primaryAction] ?? 'var(--omnispec-fg-muted)'\n\n return (\n <ExpandableCard\n id={id}\n title={channel.address}\n rightLabel={`${channel.operations.length} ${channel.operations.length === 1 ? 'operation' : 'operations'}`}\n expandAll={expandAll}\n expandGeneration={expandGeneration}\n >\n {/* Method bar — matches OpenAPI MethodBar pattern */}\n <MethodBar label={primaryLabel} path={channel.address} color={primaryColor} />\n\n {/* Body content */}\n <div className={bodyStyle}>\n {channel.description && (\n <div className={sectionStyle}>\n <MarkdownRenderer content={channel.description} />\n </div>\n )}\n\n {/* Parameters — match OpenAPI inline param style */}\n {channel.parameters && Object.keys(channel.parameters).length > 0 && (\n <div className={sectionStyle}>\n <h4 className={sectionTitleStyle}>Parameters</h4>\n <div className={paramListStyle}>\n {Object.entries(channel.parameters).map(([name, param]) => {\n const paramType = (param.schema as Record<string, unknown>)?.type as string | undefined\n return (\n <div key={name} className={paramRowStyle}>\n <div className={paramHeaderStyle}>\n <span className={paramNameStyle}>{name}</span>\n {paramType && (\n <pre className={typeBadgeStyle}>{paramType}</pre>\n )}\n </div>\n {param.description && (\n <p className={paramDescStyle}>{param.description}</p>\n )}\n </div>\n )\n })}\n </div>\n </div>\n )}\n\n {/* Operations */}\n {channel.operations.map((op, idx) => (\n <div key={idx} className={operationStyle}>\n <div className={opHeaderStyle}>\n <span\n className={cx(actionBadgeBase, css({\n backgroundColor: actionColors[op.action] ?? 'var(--omnispec-fg-muted)',\n }))}\n >\n {actionLabels[op.action] ?? op.action.toUpperCase()}\n </span>\n {op.operationId && <span className={opIdStyle}>{op.operationId}</span>}\n {op.summary && <span className={opSummaryStyle}>{op.summary}</span>}\n </div>\n\n {op.description && (\n <div className={sectionStyle}>\n <MarkdownRenderer content={op.description} />\n </div>\n )}\n\n {op.message && (\n <div className={sectionStyle}>\n <h4 className={sectionTitleStyle}>\n Message\n {op.message.title && <span className={messageTitleStyle}> — {op.message.title}</span>}\n </h4>\n {op.message.summary && (\n <p className={messageSummaryStyle}>{op.message.summary}</p>\n )}\n {op.message.contentType && (\n <code className={contentTypeStyle}>{op.message.contentType}</code>\n )}\n\n {op.message.payload && (\n <Tabs\n tabs={[\n {\n id: `schema-${idx}`,\n label: 'Payload Schema',\n content: <SchemaTree nodes={schemaToNodes(op.message.payload as Record<string, unknown>)} />,\n },\n {\n id: `example-${idx}`,\n label: 'Example',\n content: (\n <CodeBlock\n code={JSON.stringify(generateExample(op.message.payload as Record<string, unknown>), null, 2)}\n language=\"json\"\n />\n ),\n },\n ]}\n />\n )}\n\n {op.message.headers && (\n <div className={headersWrapStyle}>\n <h4 className={sectionTitleStyle}>Headers</h4>\n <SchemaTree nodes={schemaToNodes(op.message.headers as Record<string, unknown>)} />\n </div>\n )}\n </div>\n )}\n </div>\n ))}\n </div>\n </ExpandableCard>\n )\n}\n\n// --- Styles matching OpenAPI OperationDetail ---\n\nconst bodyStyle = css({\n padding: '0.75rem 1rem',\n [mq.desktop]: {\n padding: '1rem 1.25rem',\n },\n})\n\nconst sectionStyle = css({\n marginBottom: '24px',\n})\n\nconst sectionTitleStyle = css({\n margin: '0 0 12px',\n fontSize: 'var(--omnispec-font-size-md)',\n fontWeight: 700,\n color: 'var(--omnispec-fg-primary)',\n letterSpacing: '0.02em',\n})\n\nconst paramListStyle = css({\n display: 'flex',\n flexDirection: 'column',\n})\n\nconst paramRowStyle = css({\n padding: '12px 0',\n})\n\nconst paramHeaderStyle = css({\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n flexWrap: 'wrap',\n})\n\nconst paramNameStyle = css({\n fontSize: 'var(--omnispec-font-size-sm)',\n fontWeight: 700,\n backgroundColor: 'transparent',\n padding: 0,\n})\n\nconst typeBadgeStyle = css({\n fontSize: 'var(--omnispec-font-size-xs)',\n fontWeight: 400,\n})\n\nconst paramDescStyle = css({\n margin: '4px 0 0',\n fontSize: 'var(--omnispec-font-size-base)',\n color: 'var(--omnispec-fg-secondary)',\n lineHeight: 1.5,\n})\n\nconst operationStyle = css({\n padding: '12px 0',\n borderTop: '1px solid var(--omnispec-border-color)',\n})\n\nconst opHeaderStyle = css({\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n marginBottom: '8px',\n})\n\nconst actionBadgeBase = css({\n display: 'inline-block',\n padding: '2px 6px',\n borderRadius: '3px',\n fontSize: '9px',\n fontWeight: 700,\n fontFamily: 'var(--omnispec-font-mono)',\n color: '#ffffff',\n letterSpacing: '0.5px',\n})\n\nconst opIdStyle = css({\n fontSize: 'var(--omnispec-font-size-sm)',\n fontWeight: 700,\n backgroundColor: 'transparent',\n padding: 0,\n})\n\nconst opSummaryStyle = css({\n fontSize: 'var(--omnispec-font-size-sm)',\n color: 'var(--omnispec-fg-secondary)',\n})\n\nconst messageTitleStyle = css({\n fontWeight: 400,\n color: 'var(--omnispec-fg-primary)',\n})\n\nconst messageSummaryStyle = css({\n margin: '0 0 8px',\n fontSize: 'var(--omnispec-font-size-base)',\n color: 'var(--omnispec-fg-secondary)',\n})\n\nconst contentTypeStyle = css({\n fontFamily: 'var(--omnispec-font-mono)',\n fontSize: 'var(--omnispec-font-size-xs)',\n color: 'var(--omnispec-fg-muted)',\n display: 'block',\n marginBottom: '8px',\n backgroundColor: 'transparent',\n padding: 0,\n})\n\nconst headersWrapStyle = css({\n marginTop: '16px',\n})\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { css } from '@core/styles/css'\nimport { mq } from '@core/styles/breakpoints'\nimport type { AsyncApiComponents } from '../types/asyncapi.types'\nimport { Collapsible } from '@core/components/common/Collapsible'\nimport { SchemaTree } from '@core/components/SchemaViewer/SchemaTree'\nimport { schemaToNodes } from '@core/components/SchemaViewer/schema-utils'\n\ninterface ComponentsSectionProps {\n components: AsyncApiComponents\n}\n\nexport function ComponentsSection({ components }: ComponentsSectionProps) {\n const schemas = Object.entries(components.schemas)\n if (schemas.length === 0) return null\n\n return (\n <div className={`omnispec-async-components ${containerStyle}`} id=\"schemas\">\n <h2 className={titleStyle}>Schemas</h2>\n <div className={schemaWrapperStyle}>\n {schemas.map(([name, schema]) => (\n <div key={name} className={schemaStyle} id={`schema-${name}`}>\n <Collapsible\n title={<code className={schemaNameStyle}>{name}</code>}\n defaultOpen={false}\n >\n <SchemaTree nodes={schemaToNodes(schema)} />\n </Collapsible>\n </div>\n ))}\n </div>\n </div>\n )\n}\n\nconst containerStyle = css({\n marginTop: '2rem',\n paddingTop: '1.5rem',\n borderTop: '1px solid var(--omnispec-border-color)',\n [mq.mobile]: {\n borderTop: 'none',\n marginTop: '1.5rem',\n paddingTop: '1rem',\n },\n})\n\nconst titleStyle = css({\n margin: '0 0 16px',\n fontSize: 'var(--omnispec-h2-font-size)',\n color: 'var(--omnispec-h2-color)',\n fontWeight: 700,\n})\n\nconst schemaWrapperStyle = css({\n border: '1px solid var(--omnispec-border-color)',\n borderRadius: '8px',\n padding: '1.5rem 1rem',\n})\n\nconst schemaStyle = css({\n marginBottom: '8px',\n})\n\nconst schemaNameStyle = css({\n fontFamily: 'var(--omnispec-font-mono)',\n fontSize: 'var(--omnispec-font-size-base)',\n fontWeight: 600,\n color: 'var(--omnispec-color-primary)',\n backgroundColor: 'transparent',\n padding: 0,\n '&:hover': {\n textDecoration: 'underline',\n },\n})\n","/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { useCallback, useMemo, useState } from 'react'\nimport { css } from '@core/styles/css'\nimport type { BaseSpecProps } from '@core/types/common.types'\nimport { SpecType } from '@core/types/spec-detection.types'\nimport { ThemeProvider } from '@core/themes/ThemeProvider'\nimport { ConfigProvider } from '@core/context/ConfigContext'\nimport { ExpandProvider } from '@core/context/ExpandContext'\nimport { resolveSchemaStyle } from '@core/components/SchemaViewer/schema-style'\nimport { DocLayout } from '@core/components/Layout/DocLayout'\nimport { NavTree } from '@core/components/Navigation/NavTree'\nimport type { NavItem } from '@core/components/Navigation/NavTree'\nimport { useScrollSpy, flattenNavItemIds } from '@core/hooks/useScrollSpy'\nimport { SearchBar } from '@core/components/Navigation/SearchBar'\nimport { buildSidebar } from '@core/components/Navigation/buildSidebar'\nimport { LoadingScreen } from '@core/components/common/LoadingScreen'\nimport { ErrorMessage } from '@core/components/common/ErrorMessage'\nimport { ErrorBoundary } from '@core/components/common/ErrorBoundary'\nimport { SpecStatusScreen } from '@core/components/Layout/SpecStatusScreen'\nimport { SpecToolbar } from '@core/components/common/SpecToolbar'\nimport { resolveDownloadLink } from '@core/utils/resolve-download-link'\nimport { useAsyncApiSpec } from './hooks/useAsyncApiSpec'\nimport { AsyncOverview } from './components/AsyncOverview'\nimport { ServerList } from './components/ServerList'\nimport { ChannelDetail } from './components/ChannelDetail'\nimport { ComponentsSection } from './components/ComponentsSection'\n\nexport function AsyncApiSpec({\n spec,\n theme,\n layout = 'sidebar',\n sidebarPosition = 'left',\n defaultExpandOperations = false,\n downloadLink,\n sidebarNav,\n slots = {},\n schemaStyle,\n pro,\n onSpecLoaded,\n className,\n}: BaseSpecProps) {\n const resolvedSchemaStyle = resolveSchemaStyle(schemaStyle, pro?.advancedSchemaStyles ?? false)\n const { data: parsedSpec, state } = useAsyncApiSpec(spec)\n const [searchQuery, setSearchQuery] = useState('')\n const [allExpanded, setAllExpanded] = useState(defaultExpandOperations)\n const [expandGeneration, setExpandGeneration] = useState(0)\n\n const handleToggleExpand = useCallback(() => {\n setAllExpanded((prev) => !prev)\n setExpandGeneration((prev) => prev + 1)\n }, [])\n\n useMemo(() => {\n if (parsedSpec && onSpecLoaded) {\n const major = parseInt(parsedSpec.specVersion.split('.')[0], 10)\n onSpecLoaded({\n title: parsedSpec.title,\n version: parsedSpec.version,\n type: major >= 3 ? SpecType.ASYNCAPI_3 : SpecType.ASYNCAPI_2,\n })\n }\n }, [parsedSpec, onSpecLoaded])\n\n const navItems: NavItem[] = useMemo(() => {\n if (!parsedSpec) return []\n\n const channelItems: NavItem[] = parsedSpec.channels.map((ch) => {\n const actionLabels = ch.operations.map((op) =>\n op.action.toUpperCase(),\n ).join('/')\n\n return {\n id: `channel-${ch.name}`,\n label: ch.address,\n badge: actionLabels || undefined,\n badgeColor: ch.operations[0]?.action === 'subscribe' || ch.operations[0]?.action === 'receive'\n ? 'var(--omnispec-color-subscribe)'\n : 'var(--omnispec-color-publish)',\n }\n })\n\n const items: NavItem[] = []\n\n if (parsedSpec.servers.length > 0) {\n items.push({ id: 'servers', label: 'Servers' })\n }\n\n items.push({\n id: 'channels',\n label: 'Channels',\n children: channelItems,\n })\n\n if (Object.keys(parsedSpec.components.schemas).length > 0) {\n items.push({\n id: 'schemas',\n label: 'Schemas',\n children: Object.keys(parsedSpec.components.schemas).map((name) => ({\n id: `schema-${name}`,\n label: name,\n })),\n })\n }\n\n return items\n }, [parsedSpec])\n\n const filteredChannels = useMemo(() => {\n if (!parsedSpec || !searchQuery.trim()) return parsedSpec?.channels ?? []\n\n const q = searchQuery.toLowerCase()\n return parsedSpec.channels.filter((ch) =>\n ch.address.toLowerCase().includes(q) ||\n ch.description?.toLowerCase().includes(q) ||\n ch.operations.some((op) =>\n op.operationId?.toLowerCase().includes(q) ||\n op.summary?.toLowerCase().includes(q),\n ),\n )\n }, [parsedSpec, searchQuery])\n\n const handleNavSelect = useCallback((id: string) => {\n const el = document.getElementById(id)\n el?.scrollIntoView({ behavior: 'smooth', block: 'start' })\n }, [])\n\n // Highlight the sidebar entry for the channel/section currently in view.\n const navSectionIds = useMemo(() => flattenNavItemIds(navItems), [navItems])\n const activeSection = useScrollSpy(navSectionIds)\n\n if (state.status === 'loading') {\n return (\n <ThemeProvider theme={theme}>\n <div className={`omnispec-asyncapi ${className ?? ''}`}>\n <LoadingScreen />\n </div>\n </ThemeProvider>\n )\n }\n\n if (state.status === 'error') {\n return (\n <SpecStatusScreen\n theme={theme}\n layout={layout}\n sidebarPosition={sidebarPosition}\n slots={slots}\n sidebarNav={sidebarNav}\n premiumThemingEnabled={pro?.premiumThemingEnabled ?? false}\n className={`omnispec-asyncapi ${className ?? ''}`}\n >\n <ErrorMessage title=\"Failed to load specification\" message={state.error} />\n </SpecStatusScreen>\n )\n }\n\n if (!parsedSpec) return null\n\n const specNav = (\n <>\n <SearchBar\n placeholder=\"Filter channels...\"\n onSearch={setSearchQuery}\n />\n <NavTree\n items={navItems}\n activeId={activeSection}\n onSelect={handleNavSelect}\n />\n </>\n )\n\n const sidebar = buildSidebar(sidebarNav, specNav)\n const resolvedDownloadLink = resolveDownloadLink(downloadLink, spec)\n\n return (\n <ConfigProvider config={{ allowTryIt: false, layout, sidebarPosition, defaultExpandOperations, schemaStyle: resolvedSchemaStyle, slots, proRenderers: pro?.renderers ?? new Map(), premiumThemingEnabled: pro?.premiumThemingEnabled ?? false }}>\n <ExpandProvider expandAll={allExpanded} expandGeneration={expandGeneration}>\n <ThemeProvider theme={theme}>\n <div className={`omnispec-asyncapi ${className ?? ''}`}>\n <ErrorBoundary title=\"Failed to render this API reference\">\n <DocLayout\n layout={layout}\n sidebarPosition={sidebarPosition}\n sidebar={sidebar}\n sidebarHeader={slots.sidebarHeader}\n sidebarFooter={slots.sidebarFooter}\n header={slots.header}\n footer={slots.footer}\n >\n <SpecToolbar\n overview={<AsyncOverview spec={parsedSpec} />}\n expandLabel=\"channels\"\n allExpanded={allExpanded}\n onToggleExpand={handleToggleExpand}\n downloadLink={resolvedDownloadLink}\n />\n\n <div id=\"servers\">\n <ServerList servers={parsedSpec.servers} />\n </div>\n\n <div id=\"channels\">\n <h2 className={css({ margin: '0 0 16px', fontSize: 'var(--omnispec-h2-font-size)', fontWeight: 'var(--omnispec-h2-font-weight)', color: 'var(--omnispec-h2-color)' })}>\n Channels\n </h2>\n {filteredChannels.map((channel) => (\n <ChannelDetail\n key={channel.name}\n id={`channel-${channel.name}`}\n channel={channel}\n expandAll={allExpanded}\n expandGeneration={expandGeneration}\n />\n ))}\n </div>\n\n <ComponentsSection components={parsedSpec.components} />\n </DocLayout>\n </ErrorBoundary>\n </div>\n </ThemeProvider>\n </ExpandProvider>\n </ConfigProvider>\n )\n}\n"],"names":["raw","parseYaml","containerStyle","titleStyle","versionStyle"],"mappings":"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"}
|