persona-community-5/.pnpm-store/v3/files/90/a9e21998fef3db2ec5e1599836d48a8f8b9feed0ae962980e324ff9981291941d46b289dd75476ba8d5f0f991d529c79d159bbccaacf0f8f49c1fd2edb8cef
rdev-worker a1d0d1bf1c
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
build: /implement-feature community-ui --requirements 'Build the React commu...
2026-02-24 08:22:30 +00:00

516 lines
17 KiB
Plaintext

// Needed for supporting deprecated Reference Docs config options
// Transferred from https://github.com/Redocly/redocly-cli/blob/main/packages/core/src/types/redocly-yaml.ts
const ConfigLanguage = {
type: 'object',
properties: {
label: { type: 'string' },
lang: {
enum: [
'curl',
'C#',
'Go',
'Java',
'Java8+Apache',
'JavaScript',
'Node.js',
'PHP',
'Python',
'R',
'Ruby',
],
},
},
required: ['lang'],
};
const ConfigLabels = {
type: 'object',
properties: {
enum: { type: 'string' },
enumSingleValue: { type: 'string' },
enumArray: { type: 'string' },
default: { type: 'string' },
deprecated: { type: 'string' },
example: { type: 'string' },
examples: { type: 'string' },
nullable: { type: 'string' },
recursive: { type: 'string' },
arrayOf: { type: 'string' },
webhook: { type: 'string' },
authorizations: { type: 'string' },
tryItAuthBasicUsername: { type: 'string' },
tryItAuthBasicPassword: { type: 'string' },
},
};
const CommonConfigSidebarLinks = {
type: 'object',
properties: {
label: { type: 'string' },
link: { type: 'string' },
target: { type: 'string' },
},
required: ['label', 'link'],
};
const ConfigSidebarLinks = {
type: 'object',
properties: {
beforeInfo: { type: 'array', items: CommonConfigSidebarLinks },
end: { type: 'array', items: CommonConfigSidebarLinks },
},
};
const CommonThemeColors = {
type: 'object',
properties: {
main: { type: 'string' },
light: { type: 'string' },
dark: { type: 'string' },
contrastText: { type: 'string' },
},
};
const CommonColorProps = {
type: 'object',
properties: {
backgroundColor: { type: 'string' },
borderColor: { type: 'string' },
color: { type: 'string' },
tabTextColor: { type: 'string' },
},
};
const BorderThemeColors = {
type: 'object',
properties: pickObjectProps(CommonThemeColors.properties, ['light', 'dark']),
};
const HttpColors = {
type: 'object',
properties: {
basic: { type: 'string' },
delete: { type: 'string' },
get: { type: 'string' },
head: { type: 'string' },
link: { type: 'string' },
options: { type: 'string' },
patch: { type: 'string' },
post: { type: 'string' },
put: { type: 'string' },
},
};
const ResponseColors = {
type: 'object',
properties: {
error: CommonColorProps,
info: CommonColorProps,
redirect: CommonColorProps,
success: CommonColorProps,
},
};
const SecondaryColors = {
type: 'object',
properties: omitObjectProps(CommonThemeColors.properties, ['dark']),
};
const TextThemeColors = {
type: 'object',
properties: {
primary: { type: 'string' },
secondary: { type: 'string' },
light: { type: 'string' },
},
};
const ThemeColors = {
type: 'object',
properties: {
accent: CommonThemeColors,
border: BorderThemeColors,
error: CommonThemeColors,
http: HttpColors,
primary: CommonThemeColors,
responses: ResponseColors,
secondary: SecondaryColors,
success: CommonThemeColors,
text: TextThemeColors,
tonalOffset: { type: 'number' },
warning: CommonThemeColors,
},
};
const SizeProps = {
type: 'object',
properties: {
fontSize: { type: 'string' },
padding: { type: 'string' },
minWidth: { type: 'string' },
},
};
const Sizes = {
type: 'object',
properties: {
small: SizeProps,
medium: SizeProps,
large: SizeProps,
xlarge: SizeProps,
},
};
const FontConfig = {
type: 'object',
properties: {
fontFamily: { type: 'string' },
fontSize: { type: 'string' },
fontWeight: { type: 'string' },
lineHeight: { type: 'string' },
},
};
const ButtonsConfig = {
type: 'object',
properties: Object.assign(Object.assign({}, omitObjectProps(FontConfig.properties, ['fontSize', 'lineHeight'])), { borderRadius: { type: 'string' }, hoverStyle: { type: 'string' }, boxShadow: { type: 'string' }, hoverBoxShadow: { type: 'string' }, sizes: Sizes }),
};
const BadgeFontConfig = {
type: 'object',
properties: pickObjectProps(FontConfig.properties, ['fontSize', 'lineHeight']),
};
const BadgeSizes = {
type: 'object',
properties: {
medium: BadgeFontConfig,
small: BadgeFontConfig,
},
};
const HttpBadgesConfig = {
type: 'object',
properties: Object.assign(Object.assign({}, omitObjectProps(FontConfig.properties, ['fontSize', 'lineHeight'])), { borderRadius: { type: 'string' }, color: { type: 'string' }, sizes: BadgeSizes }),
};
const LabelControls = {
type: 'object',
properties: {
top: { type: 'string' },
width: { type: 'string' },
height: { type: 'string' },
},
};
const Panels = {
type: 'object',
properties: {
borderRadius: { type: 'string' },
backgroundColor: { type: 'string' },
},
};
const TryItButton = {
type: 'object',
properties: {
fullWidth: { type: 'boolean' },
},
};
const ConfigThemeComponents = {
type: 'object',
properties: {
buttons: ButtonsConfig,
httpBadges: HttpBadgesConfig,
layoutControls: LabelControls,
panels: Panels,
tryItButton: TryItButton,
tryItSendButton: TryItButton,
},
};
const Breakpoints = {
type: 'object',
properties: {
small: { type: 'string' },
medium: { type: 'string' },
large: { type: 'string' },
},
};
const StackedConfig = {
type: 'object',
properties: {
maxWidth: Breakpoints,
},
};
const ThreePanelConfig = {
type: 'object',
properties: {
maxWidth: Breakpoints,
middlePanelMaxWidth: Breakpoints,
},
};
const Layout = {
type: 'object',
properties: {
showDarkRightPanel: { type: 'boolean' },
stacked: StackedConfig,
'three-panel': ThreePanelConfig,
},
};
const SchemaColorsConfig = {
type: 'object',
properties: {
backgroundColor: { type: 'string' },
border: { type: 'string' },
},
};
const ConfigThemeSchema = {
type: 'object',
properties: {
breakFieldNames: { type: 'boolean' },
caretColor: { type: 'string' },
caretSize: { type: 'string' },
constraints: SchemaColorsConfig,
defaultDetailsWidth: { type: 'string' },
examples: SchemaColorsConfig,
labelsTextSize: { type: 'string' },
linesColor: { type: 'string' },
nestedBackground: { type: 'string' },
nestingSpacing: { type: 'string' },
requireLabelColor: { type: 'string' },
typeNameColor: { type: 'string' },
typeTitleColor: { type: 'string' },
},
};
const GroupItemsConfig = {
type: 'object',
properties: {
subItemsColor: { type: 'string' },
textTransform: { type: 'string' },
fontWeight: { type: 'string' },
},
};
const Level1Items = {
type: 'object',
properties: pickObjectProps(GroupItemsConfig.properties, ['textTransform']),
};
const SpacingConfig = {
type: 'object',
properties: {
unit: { type: 'number' },
paddingHorizontal: { type: 'string' },
paddingVertical: { type: 'string' },
offsetTop: { type: 'string' },
offsetLeft: { type: 'string' },
offsetNesting: { type: 'string' },
},
};
const Sidebar = {
type: 'object',
properties: Object.assign(Object.assign({}, omitObjectProps(FontConfig.properties, ['fontWeight', 'lineHeight'])), { activeBgColor: { type: 'string' }, activeTextColor: { type: 'string' }, backgroundColor: { type: 'string' }, borderRadius: { type: 'string' }, breakPath: { type: 'boolean' }, caretColor: { type: 'string' }, caretSize: { type: 'string' }, groupItems: GroupItemsConfig, level1items: Level1Items, rightLineColor: { type: 'string' }, separatorLabelColor: { type: 'string' }, showAtBreakpoint: { type: 'string' }, spacing: SpacingConfig, textColor: { type: 'string' }, width: { type: 'string' } }),
};
const Heading = {
type: 'object',
properties: Object.assign(Object.assign({}, FontConfig.properties), { color: { type: 'string' }, transform: { type: 'string' } }),
};
const CodeConfig = {
type: 'object',
properties: Object.assign(Object.assign({}, FontConfig.properties), { backgroundColor: { type: 'string' }, color: { type: 'string' }, wordBreak: {
type: 'string',
enum: [
'break-all',
'break-word',
'keep-all',
'normal',
'revert',
'unset',
'inherit',
'initial',
],
}, wrap: { type: 'boolean' } }),
};
const HeadingsConfig = {
type: 'object',
properties: omitObjectProps(FontConfig.properties, ['fontSize']),
};
const LinksConfig = {
type: 'object',
properties: {
color: { type: 'string' },
hover: { type: 'string' },
textDecoration: { type: 'string' },
hoverTextDecoration: { type: 'string' },
visited: { type: 'string' },
},
};
const Typography = {
type: 'object',
properties: Object.assign(Object.assign({ code: CodeConfig, fieldName: FontConfig }, pickObjectProps(FontConfig.properties, ['fontSize', 'fontFamily'])), { fontWeightBold: { type: 'string' }, fontWeightLight: { type: 'string' }, fontWeightRegular: { type: 'string' }, heading1: Heading, heading2: Heading, heading3: Heading, headings: HeadingsConfig, lineHeight: { type: 'string' }, links: LinksConfig, optimizeSpeed: { type: 'boolean' }, rightPanelHeading: Heading, smoothing: {
type: 'string',
enum: ['auto', 'none', 'antialiased', 'subpixel-antialiased', 'grayscale'],
} }),
};
const TokenProps = {
type: 'object',
properties: Object.assign({ color: { type: 'string' } }, omitObjectProps(FontConfig.properties, ['fontWeight'])),
};
const CodeBlock = {
type: 'object',
properties: {
backgroundColor: { type: 'string' },
borderRadius: { type: 'string' },
tokens: TokenProps,
},
};
const ConfigThemeLogo = {
type: 'object',
properties: {
gutter: { type: 'string' },
maxHeight: { type: 'string' },
maxWidth: { type: 'string' },
},
};
const Fab = {
type: 'object',
properties: {
backgroundColor: { type: 'string' },
color: { type: 'string' },
},
};
const ButtonOverrides = {
type: 'object',
properties: {
custom: { type: 'string' },
},
};
const Overrides = {
type: 'object',
properties: {
DownloadButton: ButtonOverrides,
NextSectionButton: ButtonOverrides,
},
};
const RightPanel = {
type: 'object',
properties: {
backgroundColor: { type: 'string' },
panelBackgroundColor: { type: 'string' },
panelControlsBackgroundColor: { type: 'string' },
showAtBreakpoint: { type: 'string' },
textColor: { type: 'string' },
width: { type: 'string' },
},
};
const Shape = {
type: 'object',
properties: { borderRadius: { type: 'string' } },
};
const ThemeSpacing = {
type: 'object',
properties: {
sectionHorizontal: { type: 'number' },
sectionVertical: { type: 'number' },
unit: { type: 'number' },
},
};
const ConfigTheme = {
type: 'object',
properties: {
breakpoints: Breakpoints,
codeBlock: CodeBlock,
colors: ThemeColors,
components: ConfigThemeComponents,
layout: Layout,
logo: ConfigThemeLogo,
fab: Fab,
overrides: Overrides,
rightPanel: RightPanel,
schema: ConfigThemeSchema,
shape: Shape,
sidebar: Sidebar,
spacing: ThemeSpacing,
typography: Typography,
links: { properties: { color: { type: 'string' } } },
codeSample: { properties: { backgroundColor: { type: 'string' } } },
},
};
const GenerateCodeSamples = {
type: 'object',
properties: {
skipOptionalParameters: { type: 'boolean' },
languages: { type: 'array', items: ConfigLanguage },
},
required: ['languages'],
};
export const deprecatedRefDocsSchema = {
type: 'object',
properties: {
theme: ConfigTheme,
ctrlFHijack: { type: 'boolean' },
defaultSampleLanguage: { type: 'string' },
disableDeepLinks: { type: 'boolean' },
disableSearch: { type: 'boolean' },
disableSidebar: { type: 'boolean' },
downloadDefinitionUrl: { type: 'string' },
expandDefaultServerVariables: { type: 'boolean' },
enumSkipQuotes: { type: 'boolean' },
expandDefaultRequest: { type: 'boolean' },
expandDefaultResponse: { type: 'boolean' },
expandResponses: { type: 'string' },
expandSingleSchemaField: { type: 'boolean' },
generateCodeSamples: GenerateCodeSamples,
generatedPayloadSamplesMaxDepth: { type: 'number' },
hideDownloadButton: { type: 'boolean' },
hideHostname: { type: 'boolean' },
hideInfoSection: { type: 'boolean' },
hideLogo: { type: 'boolean' },
hideRequestPayloadSample: { type: 'boolean' },
hideRightPanel: { type: 'boolean' },
hideSchemaPattern: { type: 'boolean' },
hideSingleRequestSampleTab: { type: 'boolean' },
hideSecuritySection: { type: 'boolean' },
hideTryItPanel: { type: 'boolean' },
hideFab: { type: 'boolean' },
hideOneOfDescription: { type: 'boolean' },
htmlTemplate: { type: 'string' },
jsonSampleExpandLevel: {
oneOf: [{ type: 'number', minimum: 1 }, { type: 'string' }],
},
labels: ConfigLabels,
menuToggle: { type: 'boolean' },
nativeScrollbars: { type: 'boolean' },
noAutoAuth: { type: 'boolean' },
onDeepLinkClick: { type: 'object' },
pagination: { enum: ['none', 'section', 'item'] },
pathInMiddlePanel: { type: 'boolean' },
payloadSampleIdx: { type: 'number', minimum: 0 },
requestInterceptor: { type: 'object' },
requiredPropsFirst: { type: 'boolean' },
routingStrategy: { type: 'string' },
samplesTabsMaxCount: { type: 'number' },
schemaExpansionLevel: {
oneOf: [{ type: 'number', minimum: 0 }, { type: 'string' }],
},
minCharacterLengthToInitSearch: { type: 'number', minimum: 1 },
maxResponseHeadersToShowInTryIt: { type: 'number', minimum: 0 },
scrollYOffset: {
oneOf: [{ type: 'number' }, { type: 'string' }],
},
searchAutoExpand: { type: 'boolean' },
searchFieldLevelBoost: { type: 'number', minimum: 0 },
searchMaxDepth: { type: 'number', minimum: 1 },
searchMode: { type: 'string', enum: ['default', 'path-only'] },
searchOperationTitleBoost: { type: 'number' },
searchTagTitleBoost: { type: 'number' },
sendXUserAgentInTryIt: { type: 'boolean' },
showChangeLayoutButton: { type: 'boolean' },
showConsole: { type: 'boolean' },
showNextButton: { type: 'boolean' },
showRightPanelToggle: { type: 'boolean' },
showSecuritySchemeType: { type: 'boolean' },
showWebhookVerb: { type: 'boolean' },
showObjectSchemaExamples: { type: 'boolean' },
disableTryItRequestUrlEncoding: { type: 'boolean' },
sidebarLinks: ConfigSidebarLinks,
sideNavStyle: { type: 'string', enum: ['summary-only', 'path-first', 'id-only', 'path-only'] },
simpleOneOfTypeLabel: { type: 'boolean' },
sortEnumValuesAlphabetically: { type: 'boolean' },
sortOperationsAlphabetically: { type: 'boolean' },
sortPropsAlphabetically: { type: 'boolean' },
sortTagsAlphabetically: { type: 'boolean' },
suppressWarnings: { type: 'boolean' },
unstable_externalDescription: { type: 'boolean' },
unstable_ignoreMimeParameters: { type: 'boolean' },
untrustedDefinition: { type: 'boolean' },
showAccessMode: { type: 'boolean' },
preserveOriginalExtensionsName: { type: 'boolean' },
markdownHeadingsAnchorLevel: { type: 'number' },
},
additionalProperties: false,
};
function pickObjectProps(object, keys) {
return Object.fromEntries(keys.filter((key) => key in object).map((key) => [key, object[key]]));
}
function omitObjectProps(object, keys) {
return Object.fromEntries(Object.entries(object).filter(([key]) => !keys.includes(key)));
}
//# sourceMappingURL=reference-docs-config-schema.js.map