@asyncapi/react-component 1.0.0-next.30 → 1.0.0-next.34

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.
@@ -90,7 +90,7 @@ var Schema = function (_a) {
90
90
  schema.format() && (react_1.default.createElement("span", { className: "bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs" },
91
91
  "format: ",
92
92
  schema.format())),
93
- schema.pattern() !== undefined && (react_1.default.createElement("span", { className: "bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs" },
93
+ schema.pattern() !== undefined && (react_1.default.createElement("span", { className: "bg-yellow-600 font-bold no-underline text-white rounded mr-2 p-1 text-xs" },
94
94
  "must match: ",
95
95
  schema.pattern())),
96
96
  schema.contentMediaType() !== undefined && (react_1.default.createElement("span", { className: "bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs" },
@@ -1 +1 @@
1
- {"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../src/components/Schema.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState, useContext } from 'react';\nimport { Schema as SchemaType } from '@asyncapi/parser';\n\nimport { Href, CollapseButton, Markdown, Extensions } from './index';\nimport { SchemaHelpers } from '../helpers';\n\ninterface Props {\n schemaName?: React.ReactNode;\n schema?: SchemaType;\n required?: boolean;\n isPatternProperty?: boolean;\n isProperty?: boolean;\n isCircular?: boolean;\n dependentRequired?: string[];\n expanded?: boolean;\n onlyTitle?: boolean;\n}\n\nconst SchemaContext = React.createContext({ reverse: false });\n\nexport const Schema: React.FunctionComponent<Props> = ({\n schemaName,\n schema,\n required = false,\n isPatternProperty = false,\n isProperty = false,\n isCircular = false,\n dependentRequired,\n expanded = false,\n onlyTitle = false,\n}) => {\n const { reverse } = useContext(SchemaContext);\n const [expand, setExpand] = useState(expanded);\n\n if (\n !schema ||\n (typeof schemaName === 'string' &&\n (schemaName?.startsWith('x-parser-') ||\n schemaName?.startsWith('x-schema-private-')))\n ) {\n return null;\n }\n\n const dependentSchemas = SchemaHelpers.getDependentSchemas(schema);\n\n const constraints = SchemaHelpers.humanizeConstraints(schema);\n const externalDocs = schema.externalDocs();\n\n const renderType = schema.ext(SchemaHelpers.extRenderType) !== false;\n const rawValue = schema.ext(SchemaHelpers.extRawValue) === true;\n const parameterLocation = schema.ext(SchemaHelpers.extParameterLocation);\n const isExpandable = SchemaHelpers.isExpandable(schema) || dependentSchemas;\n\n let schemaType = SchemaHelpers.toSchemaType(schema);\n isCircular =\n isCircular ||\n schema.isCircular() ||\n schema.ext('x-parser-circular') ||\n false;\n let uid = schema.uid();\n\n const schemaItems = schema.items();\n if (schemaItems && !Array.isArray(schemaItems)) {\n /**\n * fallback for older logic for circular references:\n *\n * checking uid for circular items\n * `x-parser-circular` extension is added to every schema which has circular `items` field,\n * so we must check that `items` is schema (not array of schemas) and infer UID of schema to display which schema is circular (by the name of schema)\n */\n isCircular =\n isCircular ||\n schemaItems.isCircular() ||\n schemaItems.ext('x-parser-circular') ||\n false;\n uid = schemaItems.uid();\n if (\n isCircular &&\n typeof (schemaItems as any).circularSchema === 'function'\n ) {\n schemaType = SchemaHelpers.toSchemaType(\n (schemaItems as any).circularSchema(),\n );\n }\n } else if (\n isCircular &&\n typeof (schema as any).circularSchema === 'function'\n ) {\n schemaType = SchemaHelpers.toSchemaType((schema as any).circularSchema());\n }\n\n const styledSchemaName = isProperty ? 'italic' : '';\n const renderedSchemaName =\n typeof schemaName === 'string' ? (\n <span className={`break-words text-sm ${styledSchemaName}`}>\n {schemaName}\n </span>\n ) : (\n schemaName\n );\n\n return (\n <SchemaContext.Provider value={{ reverse: !reverse }}>\n <div>\n <div className=\"flex py-2\">\n <div className={`${onlyTitle ? '' : 'min-w-1/4'} mr-2`}>\n {isExpandable && !isCircular ? (\n <CollapseButton\n onClick={() => setExpand(prev => !prev)}\n chevronProps={{\n className: expand ? '-rotate-180' : '-rotate-90',\n }}\n >\n {renderedSchemaName}\n </CollapseButton>\n ) : (\n <span\n className={`break-words text-sm ${isProperty ? 'italic' : ''}`}\n >\n {schemaName}\n </span>\n )}\n {isPatternProperty && (\n <div className=\"text-gray-500 text-xs italic\">\n (pattern property)\n </div>\n )}\n {required && <div className=\"text-red-600 text-xs\">required</div>}\n {dependentRequired && (\n <>\n <div className=\"text-gray-500 text-xs\">\n required when defined:\n </div>\n <div className=\"text-red-600 text-xs\">\n {dependentRequired.join(', ')}\n </div>\n </>\n )}\n {schema.deprecated() && (\n <div className=\"text-red-600 text-xs\">deprecated</div>\n )}\n {schema.writeOnly() && (\n <div className=\"text-gray-500 text-xs\">write-only</div>\n )}\n {schema.readOnly() && (\n <div className=\"text-gray-500 text-xs\">read-only</div>\n )}\n </div>\n {rawValue ? (\n <div>\n <div className=\"text-sm\">{schema.const()}</div>\n </div>\n ) : (\n <div>\n <div>\n {renderType && (\n <div className=\"capitalize text-sm text-teal-500 font-bold inline-block mr-2\">\n {isCircular ? `${schemaType} [CIRCULAR]` : schemaType}\n </div>\n )}\n <div className=\"inline-block\">\n {schema.format() && (\n <span className=\"bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs\">\n format: {schema.format()}\n </span>\n )}\n\n {/* related to string */}\n {schema.pattern() !== undefined && (\n <span className=\"bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs\">\n must match: {schema.pattern()}\n </span>\n )}\n {schema.contentMediaType() !== undefined && (\n <span className=\"bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs\">\n media type: {schema.contentMediaType()}\n </span>\n )}\n {schema.contentEncoding() !== undefined && (\n <span className=\"bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs\">\n encoding: {schema.contentEncoding()}\n </span>\n )}\n\n {/* constraints */}\n {!!constraints.length &&\n constraints.map(c => (\n <span\n className=\"bg-purple-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs\"\n key={c}\n >\n {c}\n </span>\n ))}\n\n {uid && !uid.startsWith('<anonymous-') && (\n <span className=\"border text-orange-600 rounded mr-2 p-1 text-xs\">\n uid: {uid}\n </span>\n )}\n </div>\n\n {schema.hasDescription() && (\n <div>\n <Markdown>{schema.description()}</Markdown>\n </div>\n )}\n\n {schema.default() !== undefined && (\n <div className=\"text-xs\">\n Default value:\n <span className=\"border inline-block text-orange-600 rounded ml-1 py-0 px-2\">\n {SchemaHelpers.prettifyValue(schema.default())}\n </span>\n </div>\n )}\n {schema.const() !== undefined && (\n <div className=\"text-xs\">\n Const:\n <span className=\"border inline-block text-orange-600 rounded ml-1 py-0 px-2\">\n {SchemaHelpers.prettifyValue(schema.const())}\n </span>\n </div>\n )}\n {schema.enum() && (\n <ul className=\"text-xs\">\n Allowed values:{' '}\n {schema.enum().map((e, idx) => (\n <li\n key={idx}\n className=\"border inline-block text-orange-600 rounded ml-1 py-0 px-2\"\n >\n <span>{SchemaHelpers.prettifyValue(e)}</span>\n </li>\n ))}\n </ul>\n )}\n {parameterLocation && (\n <div className=\"text-xs\">\n Parameter location:{' '}\n <span className=\"border text-orange-600 rounded mr-2 p-1 text-xs\">\n {parameterLocation}\n </span>\n </div>\n )}\n {externalDocs && (\n <span className=\"border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 font-bold no-underline text-xs uppercase rounded px-2 py-0\">\n <Href\n href={externalDocs.url()}\n title={externalDocs.description() || ''}\n >\n Documentation\n </Href>\n </span>\n )}\n {schema.examples() && (\n <ul className=\"text-xs\">\n Examples values:{' '}\n {schema.examples().map((e, idx) => (\n <li\n key={idx}\n className=\"border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all\"\n >\n <span>{SchemaHelpers.prettifyValue(e)}</span>\n </li>\n ))}\n </ul>\n )}\n </div>\n </div>\n )}\n </div>\n\n {isCircular || !isExpandable ? null : (\n <div\n className={`rounded p-4 py-2 border bg-gray-100 ${\n reverse ? 'bg-gray-200' : ''\n } ${expand ? 'block' : 'hidden'}`}\n >\n <SchemaProperties schema={schema} />\n <SchemaItems schema={schema} />\n\n {schema.oneOf() &&\n schema\n .oneOf()\n .map((s, idx) => (\n <Schema\n key={idx}\n schema={s}\n schemaName={idx === 0 ? 'Adheres to:' : 'Or to:'}\n />\n ))}\n {schema.anyOf() &&\n schema\n .anyOf()\n .map((s, idx) => (\n <Schema\n key={idx}\n schema={s}\n schemaName={idx === 0 ? 'Can adhere to:' : 'Or to:'}\n />\n ))}\n {schema.allOf() &&\n schema\n .allOf()\n .map((s, idx) => (\n <Schema\n key={idx}\n schema={s}\n schemaName={idx === 0 ? 'Consists of:' : 'And with:'}\n />\n ))}\n {schema.not() && (\n <Schema schema={schema.not()} schemaName=\"Cannot adhere to:\" />\n )}\n\n {schema.propertyNames() && (\n <Schema\n schema={schema.propertyNames()}\n schemaName=\"Property names must adhere to:\"\n />\n )}\n {schema.contains() && (\n <Schema\n schema={schema.contains()}\n schemaName=\"Array must contain at least one of:\"\n />\n )}\n\n {schema.if() && (\n <Schema schema={schema.if()} schemaName=\"If schema adheres to:\" />\n )}\n {schema.then() && (\n <Schema\n schema={schema.then()}\n schemaName=\"Then must adhere to:\"\n />\n )}\n {schema.else() && (\n <Schema schema={schema.else()} schemaName=\"Otherwise:\" />\n )}\n\n {dependentSchemas && (\n <Schema\n schema={dependentSchemas}\n schemaName=\"Dependent schemas:\"\n />\n )}\n\n <Extensions item={schema} />\n\n <AdditionalProperties schema={schema} />\n <AdditionalItems schema={schema} />\n </div>\n )}\n </div>\n </SchemaContext.Provider>\n );\n};\n\ninterface SchemaPropertiesProps {\n schema: SchemaType;\n}\n\nconst SchemaProperties: React.FunctionComponent<SchemaPropertiesProps> = ({\n schema,\n}) => {\n const properties = schema.properties() || {};\n if (!Object.keys(properties)) {\n return null;\n }\n\n const required = schema.required() || [];\n const patternProperties = schema.patternProperties();\n const circularProps = schema.ext('x-parser-circular-props') || [];\n\n return (\n <>\n {Object.entries(properties).map(([propertyName, property]) => (\n <Schema\n schema={property}\n schemaName={propertyName}\n required={required.includes(propertyName)}\n isProperty={true}\n isCircular={circularProps.includes(propertyName)}\n dependentRequired={SchemaHelpers.getDependentRequired(\n propertyName,\n schema,\n )}\n key={propertyName}\n />\n ))}\n {Object.entries(patternProperties).map(([propertyName, property]) => (\n <Schema\n schema={property}\n schemaName={propertyName}\n isPatternProperty={true}\n isProperty={true}\n isCircular={circularProps.includes(propertyName)}\n key={propertyName}\n />\n ))}\n </>\n );\n};\n\ninterface AdditionalPropertiesProps {\n schema: SchemaType;\n}\n\nconst AdditionalProperties: React.FunctionComponent<AdditionalPropertiesProps> = ({\n schema,\n}) => {\n if (schema.ext(SchemaHelpers.extRenderAdditionalInfo) === false) {\n return null;\n }\n\n let type = schema.type();\n type = Array.isArray(type) ? type : [type];\n if (!type.includes('object')) {\n return null;\n }\n\n const additionalProperties = schema.additionalProperties();\n if (additionalProperties === true || additionalProperties === undefined) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional properties are allowed.\n </p>\n );\n }\n if (additionalProperties === false) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional properties are <strong>NOT</strong> allowed.\n </p>\n );\n }\n return (\n <Schema schemaName=\"Additional properties:\" schema={additionalProperties} />\n );\n};\n\ninterface SchemaItemsProps {\n schema: SchemaType;\n}\n\nconst SchemaItems: React.FunctionComponent<SchemaItemsProps> = ({ schema }) => {\n let type = schema.type();\n type = Array.isArray(type) ? type : [type];\n if (!type.includes('array')) {\n return null;\n }\n const items = schema.items();\n\n // object in items\n if (\n items &&\n !Array.isArray(items) &&\n Object.keys(items.properties() || {}).length\n ) {\n return <SchemaProperties schema={items} />;\n } else if (Array.isArray(items)) {\n return (\n <>\n {items.map((item, idx) => (\n <Schema schema={item} schemaName={`${idx + 1} item:`} key={idx} />\n ))}\n </>\n );\n }\n return <Schema schema={items} schemaName=\"Items:\" />;\n};\n\ninterface AdditionalItemsProps {\n schema: SchemaType;\n}\n\nconst AdditionalItems: React.FunctionComponent<AdditionalItemsProps> = ({\n schema,\n}) => {\n if (schema.ext(SchemaHelpers.extRenderAdditionalInfo) === false) {\n return null;\n }\n\n let type = schema.type();\n type = Array.isArray(type) ? type : [type];\n if (!type.includes('array')) {\n return null;\n }\n if (!Array.isArray(schema.items())) {\n return null;\n }\n\n const additionalItems = schema.additionalItems() as any;\n if (additionalItems === true || additionalItems === undefined) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional items are allowed.\n </p>\n );\n }\n if (additionalItems === false) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional items are <strong>NOT</strong> allowed.\n </p>\n );\n }\n return <Schema schemaName=\"Additional items:\" schema={additionalItems} />;\n};\n"]}
1
+ {"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../src/components/Schema.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAoD;AAGpD,iCAAqE;AACrE,sCAA2C;AAc3C,IAAM,aAAa,GAAG,eAAK,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AAEvD,IAAM,MAAM,GAAmC,UAAC,EAUtD;QATC,UAAU,gBAAA,EACV,MAAM,YAAA,EACN,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA,EAChB,yBAAyB,EAAzB,iBAAiB,mBAAG,KAAK,KAAA,EACzB,kBAAkB,EAAlB,UAAU,mBAAG,KAAK,KAAA,EAClB,kBAAkB,EAAlB,UAAU,mBAAG,KAAK,KAAA,EAClB,iBAAiB,uBAAA,EACjB,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA,EAChB,iBAAiB,EAAjB,SAAS,mBAAG,KAAK,KAAA;IAET,IAAA,OAAO,GAAK,IAAA,kBAAU,EAAC,aAAa,CAAC,QAA9B,CAA+B;IACxC,IAAA,KAAsB,IAAA,gBAAQ,EAAC,QAAQ,CAAC,EAAvC,MAAM,QAAA,EAAE,SAAS,QAAsB,CAAC;IAE/C,IACE,CAAC,MAAM;QACP,CAAC,OAAO,UAAU,KAAK,QAAQ;YAC7B,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,CAAC,WAAW,CAAC;iBAClC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,CAAC,mBAAmB,CAAC,CAAA,CAAC,CAAC,EACjD;QACA,OAAO,IAAI,CAAC;KACb;IAED,IAAM,gBAAgB,GAAG,uBAAa,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAEnE,IAAM,WAAW,GAAG,uBAAa,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC9D,IAAM,YAAY,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IAE3C,IAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAa,CAAC,aAAa,CAAC,KAAK,KAAK,CAAC;IACrE,IAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAa,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAChE,IAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAa,CAAC,oBAAoB,CAAC,CAAC;IACzE,IAAM,YAAY,GAAG,uBAAa,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,gBAAgB,CAAC;IAE5E,IAAI,UAAU,GAAG,uBAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACpD,UAAU;QACR,UAAU;YACV,MAAM,CAAC,UAAU,EAAE;YACnB,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;YAC/B,KAAK,CAAC;IACR,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;IAEvB,IAAM,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IACnC,IAAI,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QAQ9C,UAAU;YACR,UAAU;gBACV,WAAW,CAAC,UAAU,EAAE;gBACxB,WAAW,CAAC,GAAG,CAAC,mBAAmB,CAAC;gBACpC,KAAK,CAAC;QACR,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACxB,IACE,UAAU;YACV,OAAQ,WAAmB,CAAC,cAAc,KAAK,UAAU,EACzD;YACA,UAAU,GAAG,uBAAa,CAAC,YAAY,CACpC,WAAmB,CAAC,cAAc,EAAE,CACtC,CAAC;SACH;KACF;SAAM,IACL,UAAU;QACV,OAAQ,MAAc,CAAC,cAAc,KAAK,UAAU,EACpD;QACA,UAAU,GAAG,uBAAa,CAAC,YAAY,CAAE,MAAc,CAAC,cAAc,EAAE,CAAC,CAAC;KAC3E;IAED,IAAM,gBAAgB,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,IAAM,kBAAkB,GACtB,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,CAC/B,wCAAM,SAAS,EAAE,8BAAuB,gBAAgB,CAAE,IACvD,UAAU,CACN,CACR,CAAC,CAAC,CAAC,CACF,UAAU,CACX,CAAC;IAEJ,OAAO,CACL,8BAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE;QAClD;YACE,uCAAK,SAAS,EAAC,WAAW;gBACxB,uCAAK,SAAS,EAAE,UAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,UAAO;oBACnD,YAAY,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAC7B,8BAAC,sBAAc,IACb,OAAO,EAAE,cAAM,OAAA,SAAS,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,IAAI,EAAL,CAAK,CAAC,EAAxB,CAAwB,EACvC,YAAY,EAAE;4BACZ,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY;yBACjD,IAEA,kBAAkB,CACJ,CAClB,CAAC,CAAC,CAAC,CACF,wCACE,SAAS,EAAE,8BAAuB,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAE,IAE7D,UAAU,CACN,CACR;oBACA,iBAAiB,IAAI,CACpB,uCAAK,SAAS,EAAC,8BAA8B,yBAEvC,CACP;oBACA,QAAQ,IAAI,uCAAK,SAAS,EAAC,sBAAsB,eAAe;oBAChE,iBAAiB,IAAI,CACpB;wBACE,uCAAK,SAAS,EAAC,uBAAuB,6BAEhC;wBACN,uCAAK,SAAS,EAAC,sBAAsB,IAClC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CACzB,CACL,CACJ;oBACA,MAAM,CAAC,UAAU,EAAE,IAAI,CACtB,uCAAK,SAAS,EAAC,sBAAsB,iBAAiB,CACvD;oBACA,MAAM,CAAC,SAAS,EAAE,IAAI,CACrB,uCAAK,SAAS,EAAC,uBAAuB,iBAAiB,CACxD;oBACA,MAAM,CAAC,QAAQ,EAAE,IAAI,CACpB,uCAAK,SAAS,EAAC,uBAAuB,gBAAgB,CACvD,CACG;gBACL,QAAQ,CAAC,CAAC,CAAC,CACV;oBACE,uCAAK,SAAS,EAAC,SAAS,IAAE,MAAM,CAAC,KAAK,EAAE,CAAO,CAC3C,CACP,CAAC,CAAC,CAAC,CACF;oBACE;wBACG,UAAU,IAAI,CACb,uCAAK,SAAS,EAAC,8DAA8D,IAC1E,UAAU,CAAC,CAAC,CAAC,UAAG,UAAU,gBAAa,CAAC,CAAC,CAAC,UAAU,CACjD,CACP;wBACD,uCAAK,SAAS,EAAC,cAAc;4BAC1B,MAAM,CAAC,MAAM,EAAE,IAAI,CAClB,wCAAM,SAAS,EAAC,oFAAoF;;gCACzF,MAAM,CAAC,MAAM,EAAE,CACnB,CACR;4BAGA,MAAM,CAAC,OAAO,EAAE,KAAK,SAAS,IAAI,CACjC,wCAAM,SAAS,EAAC,0EAA0E;;gCAC3E,MAAM,CAAC,OAAO,EAAE,CACxB,CACR;4BACA,MAAM,CAAC,gBAAgB,EAAE,KAAK,SAAS,IAAI,CAC1C,wCAAM,SAAS,EAAC,oFAAoF;;gCACrF,MAAM,CAAC,gBAAgB,EAAE,CACjC,CACR;4BACA,MAAM,CAAC,eAAe,EAAE,KAAK,SAAS,IAAI,CACzC,wCAAM,SAAS,EAAC,oFAAoF;;gCACvF,MAAM,CAAC,eAAe,EAAE,CAC9B,CACR;4BAGA,CAAC,CAAC,WAAW,CAAC,MAAM;gCACnB,WAAW,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CACnB,wCACE,SAAS,EAAC,oFAAoF,EAC9F,GAAG,EAAE,CAAC,IAEL,CAAC,CACG,CACR,EAPoB,CAOpB,CAAC;4BAEH,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CACxC,wCAAM,SAAS,EAAC,iDAAiD;;gCACzD,GAAG,CACJ,CACR,CACG;wBAEL,MAAM,CAAC,cAAc,EAAE,IAAI,CAC1B;4BACE,8BAAC,gBAAQ,QAAE,MAAM,CAAC,WAAW,EAAE,CAAY,CACvC,CACP;wBAEA,MAAM,CAAC,OAAO,EAAE,KAAK,SAAS,IAAI,CACjC,uCAAK,SAAS,EAAC,SAAS;;4BAEtB,wCAAM,SAAS,EAAC,4DAA4D,IACzE,uBAAa,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CACzC,CACH,CACP;wBACA,MAAM,CAAC,KAAK,EAAE,KAAK,SAAS,IAAI,CAC/B,uCAAK,SAAS,EAAC,SAAS;;4BAEtB,wCAAM,SAAS,EAAC,4DAA4D,IACzE,uBAAa,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CACvC,CACH,CACP;wBACA,MAAM,CAAC,IAAI,EAAE,IAAI,CAChB,sCAAI,SAAS,EAAC,SAAS;;4BACL,GAAG;4BAClB,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,GAAG,IAAK,OAAA,CAC7B,sCACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAC,4DAA4D;gCAEtE,4CAAO,uBAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAQ,CAC1C,CACN,EAP8B,CAO9B,CAAC,CACC,CACN;wBACA,iBAAiB,IAAI,CACpB,uCAAK,SAAS,EAAC,SAAS;;4BACF,GAAG;4BACvB,wCAAM,SAAS,EAAC,iDAAiD,IAC9D,iBAAiB,CACb,CACH,CACP;wBACA,YAAY,IAAI,CACf,wCAAM,SAAS,EAAC,4JAA4J;4BAC1K,8BAAC,YAAI,IACH,IAAI,EAAE,YAAY,CAAC,GAAG,EAAE,EACxB,KAAK,EAAE,YAAY,CAAC,WAAW,EAAE,IAAI,EAAE,oBAGlC,CACF,CACR;wBACA,MAAM,CAAC,QAAQ,EAAE,IAAI,CACpB,sCAAI,SAAS,EAAC,SAAS;;4BACJ,GAAG;4BACnB,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,GAAG,IAAK,OAAA,CACjC,sCACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAC,sEAAsE;gCAEhF,4CAAO,uBAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAQ,CAC1C,CACN,EAPkC,CAOlC,CAAC,CACC,CACN,CACG,CACF,CACP,CACG;YAEL,UAAU,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACpC,uCACE,SAAS,EAAE,8CACT,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,cAC1B,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAE;gBAEjC,8BAAC,gBAAgB,IAAC,MAAM,EAAE,MAAM,GAAI;gBACpC,8BAAC,WAAW,IAAC,MAAM,EAAE,MAAM,GAAI;gBAE9B,MAAM,CAAC,KAAK,EAAE;oBACb,MAAM;yBACH,KAAK,EAAE;yBACP,GAAG,CAAC,UAAC,CAAC,EAAE,GAAG,IAAK,OAAA,CACf,8BAAC,cAAM,IACL,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,CAAC,EACT,UAAU,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,GAChD,CACH,EANgB,CAMhB,CAAC;gBACL,MAAM,CAAC,KAAK,EAAE;oBACb,MAAM;yBACH,KAAK,EAAE;yBACP,GAAG,CAAC,UAAC,CAAC,EAAE,GAAG,IAAK,OAAA,CACf,8BAAC,cAAM,IACL,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,CAAC,EACT,UAAU,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,GACnD,CACH,EANgB,CAMhB,CAAC;gBACL,MAAM,CAAC,KAAK,EAAE;oBACb,MAAM;yBACH,KAAK,EAAE;yBACP,GAAG,CAAC,UAAC,CAAC,EAAE,GAAG,IAAK,OAAA,CACf,8BAAC,cAAM,IACL,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,CAAC,EACT,UAAU,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,GACpD,CACH,EANgB,CAMhB,CAAC;gBACL,MAAM,CAAC,GAAG,EAAE,IAAI,CACf,8BAAC,cAAM,IAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,UAAU,EAAC,mBAAmB,GAAG,CAChE;gBAEA,MAAM,CAAC,aAAa,EAAE,IAAI,CACzB,8BAAC,cAAM,IACL,MAAM,EAAE,MAAM,CAAC,aAAa,EAAE,EAC9B,UAAU,EAAC,gCAAgC,GAC3C,CACH;gBACA,MAAM,CAAC,QAAQ,EAAE,IAAI,CACpB,8BAAC,cAAM,IACL,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,EACzB,UAAU,EAAC,qCAAqC,GAChD,CACH;gBAEA,MAAM,CAAC,EAAE,EAAE,IAAI,CACd,8BAAC,cAAM,IAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,UAAU,EAAC,uBAAuB,GAAG,CACnE;gBACA,MAAM,CAAC,IAAI,EAAE,IAAI,CAChB,8BAAC,cAAM,IACL,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EACrB,UAAU,EAAC,sBAAsB,GACjC,CACH;gBACA,MAAM,CAAC,IAAI,EAAE,IAAI,CAChB,8BAAC,cAAM,IAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,UAAU,EAAC,YAAY,GAAG,CAC1D;gBAEA,gBAAgB,IAAI,CACnB,8BAAC,cAAM,IACL,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAC,oBAAoB,GAC/B,CACH;gBAED,8BAAC,kBAAU,IAAC,IAAI,EAAE,MAAM,GAAI;gBAE5B,8BAAC,oBAAoB,IAAC,MAAM,EAAE,MAAM,GAAI;gBACxC,8BAAC,eAAe,IAAC,MAAM,EAAE,MAAM,GAAI,CAC/B,CACP,CACG,CACiB,CAC1B,CAAC;AACJ,CAAC,CAAC;AAlVW,QAAA,MAAM,UAkVjB;AAMF,IAAM,gBAAgB,GAAmD,UAAC,EAEzE;QADC,MAAM,YAAA;IAEN,IAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;QAC5B,OAAO,IAAI,CAAC;KACb;IAED,IAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IACzC,IAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;IACrD,IAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;IAElE,OAAO,CACL;QACG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,UAAC,EAAwB;gBAAvB,YAAY,QAAA,EAAE,QAAQ,QAAA;YAAM,OAAA,CAC5D,8BAAC,cAAM,IACL,MAAM,EAAE,QAAQ,EAChB,UAAU,EAAE,YAAY,EACxB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,EACzC,UAAU,EAAE,IAAI,EAChB,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAChD,iBAAiB,EAAE,uBAAa,CAAC,oBAAoB,CACnD,YAAY,EACZ,MAAM,CACP,EACD,GAAG,EAAE,YAAY,GACjB,CACH;QAb6D,CAa7D,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,UAAC,EAAwB;gBAAvB,YAAY,QAAA,EAAE,QAAQ,QAAA;YAAM,OAAA,CACnE,8BAAC,cAAM,IACL,MAAM,EAAE,QAAQ,EAChB,UAAU,EAAE,YAAY,EACxB,iBAAiB,EAAE,IAAI,EACvB,UAAU,EAAE,IAAI,EAChB,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAChD,GAAG,EAAE,YAAY,GACjB,CACH;QAToE,CASpE,CAAC,CACD,CACJ,CAAC;AACJ,CAAC,CAAC;AAMF,IAAM,oBAAoB,GAAuD,UAAC,EAEjF;QADC,MAAM,YAAA;IAEN,IAAI,MAAM,CAAC,GAAG,CAAC,uBAAa,CAAC,uBAAuB,CAAC,KAAK,KAAK,EAAE;QAC/D,OAAO,IAAI,CAAC;KACb;IAED,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACzB,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAC5B,OAAO,IAAI,CAAC;KACb;IAED,IAAM,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC;IAC3D,IAAI,oBAAoB,KAAK,IAAI,IAAI,oBAAoB,KAAK,SAAS,EAAE;QACvE,OAAO,CACL,qCAAG,SAAS,EAAC,4BAA4B,yCAErC,CACL,CAAC;KACH;IACD,IAAI,oBAAoB,KAAK,KAAK,EAAE;QAClC,OAAO,CACL,qCAAG,SAAS,EAAC,4BAA4B;;YACb,oDAAoB;wBAC5C,CACL,CAAC;KACH;IACD,OAAO,CACL,8BAAC,cAAM,IAAC,UAAU,EAAC,wBAAwB,EAAC,MAAM,EAAE,oBAAoB,GAAI,CAC7E,CAAC;AACJ,CAAC,CAAC;AAMF,IAAM,WAAW,GAA8C,UAAC,EAAU;QAAR,MAAM,YAAA;IACtE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACzB,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAC3B,OAAO,IAAI,CAAC;KACb;IACD,IAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IAG7B,IACE,KAAK;QACL,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAC5C;QACA,OAAO,8BAAC,gBAAgB,IAAC,MAAM,EAAE,KAAK,GAAI,CAAC;KAC5C;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAC/B,OAAO,CACL,8DACG,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,GAAG,IAAK,OAAA,CACxB,8BAAC,cAAM,IAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,UAAG,GAAG,GAAG,CAAC,WAAQ,EAAE,GAAG,EAAE,GAAG,GAAI,CACnE,EAFyB,CAEzB,CAAC,CACD,CACJ,CAAC;KACH;IACD,OAAO,8BAAC,cAAM,IAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAC,QAAQ,GAAG,CAAC;AACvD,CAAC,CAAC;AAMF,IAAM,eAAe,GAAkD,UAAC,EAEvE;QADC,MAAM,YAAA;IAEN,IAAI,MAAM,CAAC,GAAG,CAAC,uBAAa,CAAC,uBAAuB,CAAC,KAAK,KAAK,EAAE;QAC/D,OAAO,IAAI,CAAC;KACb;IAED,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACzB,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAC3B,OAAO,IAAI,CAAC;KACb;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE;QAClC,OAAO,IAAI,CAAC;KACb;IAED,IAAM,eAAe,GAAG,MAAM,CAAC,eAAe,EAAS,CAAC;IACxD,IAAI,eAAe,KAAK,IAAI,IAAI,eAAe,KAAK,SAAS,EAAE;QAC7D,OAAO,CACL,qCAAG,SAAS,EAAC,4BAA4B,oCAErC,CACL,CAAC;KACH;IACD,IAAI,eAAe,KAAK,KAAK,EAAE;QAC7B,OAAO,CACL,qCAAG,SAAS,EAAC,4BAA4B;;YAClB,oDAAoB;wBACvC,CACL,CAAC;KACH;IACD,OAAO,8BAAC,cAAM,IAAC,UAAU,EAAC,mBAAmB,EAAC,MAAM,EAAE,eAAe,GAAI,CAAC;AAC5E,CAAC,CAAC","sourcesContent":["import React, { useState, useContext } from 'react';\nimport { Schema as SchemaType } from '@asyncapi/parser';\n\nimport { Href, CollapseButton, Markdown, Extensions } from './index';\nimport { SchemaHelpers } from '../helpers';\n\ninterface Props {\n schemaName?: React.ReactNode;\n schema?: SchemaType;\n required?: boolean;\n isPatternProperty?: boolean;\n isProperty?: boolean;\n isCircular?: boolean;\n dependentRequired?: string[];\n expanded?: boolean;\n onlyTitle?: boolean;\n}\n\nconst SchemaContext = React.createContext({ reverse: false });\n\nexport const Schema: React.FunctionComponent<Props> = ({\n schemaName,\n schema,\n required = false,\n isPatternProperty = false,\n isProperty = false,\n isCircular = false,\n dependentRequired,\n expanded = false,\n onlyTitle = false,\n}) => {\n const { reverse } = useContext(SchemaContext);\n const [expand, setExpand] = useState(expanded);\n\n if (\n !schema ||\n (typeof schemaName === 'string' &&\n (schemaName?.startsWith('x-parser-') ||\n schemaName?.startsWith('x-schema-private-')))\n ) {\n return null;\n }\n\n const dependentSchemas = SchemaHelpers.getDependentSchemas(schema);\n\n const constraints = SchemaHelpers.humanizeConstraints(schema);\n const externalDocs = schema.externalDocs();\n\n const renderType = schema.ext(SchemaHelpers.extRenderType) !== false;\n const rawValue = schema.ext(SchemaHelpers.extRawValue) === true;\n const parameterLocation = schema.ext(SchemaHelpers.extParameterLocation);\n const isExpandable = SchemaHelpers.isExpandable(schema) || dependentSchemas;\n\n let schemaType = SchemaHelpers.toSchemaType(schema);\n isCircular =\n isCircular ||\n schema.isCircular() ||\n schema.ext('x-parser-circular') ||\n false;\n let uid = schema.uid();\n\n const schemaItems = schema.items();\n if (schemaItems && !Array.isArray(schemaItems)) {\n /**\n * fallback for older logic for circular references:\n *\n * checking uid for circular items\n * `x-parser-circular` extension is added to every schema which has circular `items` field,\n * so we must check that `items` is schema (not array of schemas) and infer UID of schema to display which schema is circular (by the name of schema)\n */\n isCircular =\n isCircular ||\n schemaItems.isCircular() ||\n schemaItems.ext('x-parser-circular') ||\n false;\n uid = schemaItems.uid();\n if (\n isCircular &&\n typeof (schemaItems as any).circularSchema === 'function'\n ) {\n schemaType = SchemaHelpers.toSchemaType(\n (schemaItems as any).circularSchema(),\n );\n }\n } else if (\n isCircular &&\n typeof (schema as any).circularSchema === 'function'\n ) {\n schemaType = SchemaHelpers.toSchemaType((schema as any).circularSchema());\n }\n\n const styledSchemaName = isProperty ? 'italic' : '';\n const renderedSchemaName =\n typeof schemaName === 'string' ? (\n <span className={`break-words text-sm ${styledSchemaName}`}>\n {schemaName}\n </span>\n ) : (\n schemaName\n );\n\n return (\n <SchemaContext.Provider value={{ reverse: !reverse }}>\n <div>\n <div className=\"flex py-2\">\n <div className={`${onlyTitle ? '' : 'min-w-1/4'} mr-2`}>\n {isExpandable && !isCircular ? (\n <CollapseButton\n onClick={() => setExpand(prev => !prev)}\n chevronProps={{\n className: expand ? '-rotate-180' : '-rotate-90',\n }}\n >\n {renderedSchemaName}\n </CollapseButton>\n ) : (\n <span\n className={`break-words text-sm ${isProperty ? 'italic' : ''}`}\n >\n {schemaName}\n </span>\n )}\n {isPatternProperty && (\n <div className=\"text-gray-500 text-xs italic\">\n (pattern property)\n </div>\n )}\n {required && <div className=\"text-red-600 text-xs\">required</div>}\n {dependentRequired && (\n <>\n <div className=\"text-gray-500 text-xs\">\n required when defined:\n </div>\n <div className=\"text-red-600 text-xs\">\n {dependentRequired.join(', ')}\n </div>\n </>\n )}\n {schema.deprecated() && (\n <div className=\"text-red-600 text-xs\">deprecated</div>\n )}\n {schema.writeOnly() && (\n <div className=\"text-gray-500 text-xs\">write-only</div>\n )}\n {schema.readOnly() && (\n <div className=\"text-gray-500 text-xs\">read-only</div>\n )}\n </div>\n {rawValue ? (\n <div>\n <div className=\"text-sm\">{schema.const()}</div>\n </div>\n ) : (\n <div>\n <div>\n {renderType && (\n <div className=\"capitalize text-sm text-teal-500 font-bold inline-block mr-2\">\n {isCircular ? `${schemaType} [CIRCULAR]` : schemaType}\n </div>\n )}\n <div className=\"inline-block\">\n {schema.format() && (\n <span className=\"bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs\">\n format: {schema.format()}\n </span>\n )}\n\n {/* related to string */}\n {schema.pattern() !== undefined && (\n <span className=\"bg-yellow-600 font-bold no-underline text-white rounded mr-2 p-1 text-xs\">\n must match: {schema.pattern()}\n </span>\n )}\n {schema.contentMediaType() !== undefined && (\n <span className=\"bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs\">\n media type: {schema.contentMediaType()}\n </span>\n )}\n {schema.contentEncoding() !== undefined && (\n <span className=\"bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs\">\n encoding: {schema.contentEncoding()}\n </span>\n )}\n\n {/* constraints */}\n {!!constraints.length &&\n constraints.map(c => (\n <span\n className=\"bg-purple-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs\"\n key={c}\n >\n {c}\n </span>\n ))}\n\n {uid && !uid.startsWith('<anonymous-') && (\n <span className=\"border text-orange-600 rounded mr-2 p-1 text-xs\">\n uid: {uid}\n </span>\n )}\n </div>\n\n {schema.hasDescription() && (\n <div>\n <Markdown>{schema.description()}</Markdown>\n </div>\n )}\n\n {schema.default() !== undefined && (\n <div className=\"text-xs\">\n Default value:\n <span className=\"border inline-block text-orange-600 rounded ml-1 py-0 px-2\">\n {SchemaHelpers.prettifyValue(schema.default())}\n </span>\n </div>\n )}\n {schema.const() !== undefined && (\n <div className=\"text-xs\">\n Const:\n <span className=\"border inline-block text-orange-600 rounded ml-1 py-0 px-2\">\n {SchemaHelpers.prettifyValue(schema.const())}\n </span>\n </div>\n )}\n {schema.enum() && (\n <ul className=\"text-xs\">\n Allowed values:{' '}\n {schema.enum().map((e, idx) => (\n <li\n key={idx}\n className=\"border inline-block text-orange-600 rounded ml-1 py-0 px-2\"\n >\n <span>{SchemaHelpers.prettifyValue(e)}</span>\n </li>\n ))}\n </ul>\n )}\n {parameterLocation && (\n <div className=\"text-xs\">\n Parameter location:{' '}\n <span className=\"border text-orange-600 rounded mr-2 p-1 text-xs\">\n {parameterLocation}\n </span>\n </div>\n )}\n {externalDocs && (\n <span className=\"border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 font-bold no-underline text-xs uppercase rounded px-2 py-0\">\n <Href\n href={externalDocs.url()}\n title={externalDocs.description() || ''}\n >\n Documentation\n </Href>\n </span>\n )}\n {schema.examples() && (\n <ul className=\"text-xs\">\n Examples values:{' '}\n {schema.examples().map((e, idx) => (\n <li\n key={idx}\n className=\"border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all\"\n >\n <span>{SchemaHelpers.prettifyValue(e)}</span>\n </li>\n ))}\n </ul>\n )}\n </div>\n </div>\n )}\n </div>\n\n {isCircular || !isExpandable ? null : (\n <div\n className={`rounded p-4 py-2 border bg-gray-100 ${\n reverse ? 'bg-gray-200' : ''\n } ${expand ? 'block' : 'hidden'}`}\n >\n <SchemaProperties schema={schema} />\n <SchemaItems schema={schema} />\n\n {schema.oneOf() &&\n schema\n .oneOf()\n .map((s, idx) => (\n <Schema\n key={idx}\n schema={s}\n schemaName={idx === 0 ? 'Adheres to:' : 'Or to:'}\n />\n ))}\n {schema.anyOf() &&\n schema\n .anyOf()\n .map((s, idx) => (\n <Schema\n key={idx}\n schema={s}\n schemaName={idx === 0 ? 'Can adhere to:' : 'Or to:'}\n />\n ))}\n {schema.allOf() &&\n schema\n .allOf()\n .map((s, idx) => (\n <Schema\n key={idx}\n schema={s}\n schemaName={idx === 0 ? 'Consists of:' : 'And with:'}\n />\n ))}\n {schema.not() && (\n <Schema schema={schema.not()} schemaName=\"Cannot adhere to:\" />\n )}\n\n {schema.propertyNames() && (\n <Schema\n schema={schema.propertyNames()}\n schemaName=\"Property names must adhere to:\"\n />\n )}\n {schema.contains() && (\n <Schema\n schema={schema.contains()}\n schemaName=\"Array must contain at least one of:\"\n />\n )}\n\n {schema.if() && (\n <Schema schema={schema.if()} schemaName=\"If schema adheres to:\" />\n )}\n {schema.then() && (\n <Schema\n schema={schema.then()}\n schemaName=\"Then must adhere to:\"\n />\n )}\n {schema.else() && (\n <Schema schema={schema.else()} schemaName=\"Otherwise:\" />\n )}\n\n {dependentSchemas && (\n <Schema\n schema={dependentSchemas}\n schemaName=\"Dependent schemas:\"\n />\n )}\n\n <Extensions item={schema} />\n\n <AdditionalProperties schema={schema} />\n <AdditionalItems schema={schema} />\n </div>\n )}\n </div>\n </SchemaContext.Provider>\n );\n};\n\ninterface SchemaPropertiesProps {\n schema: SchemaType;\n}\n\nconst SchemaProperties: React.FunctionComponent<SchemaPropertiesProps> = ({\n schema,\n}) => {\n const properties = schema.properties() || {};\n if (!Object.keys(properties)) {\n return null;\n }\n\n const required = schema.required() || [];\n const patternProperties = schema.patternProperties();\n const circularProps = schema.ext('x-parser-circular-props') || [];\n\n return (\n <>\n {Object.entries(properties).map(([propertyName, property]) => (\n <Schema\n schema={property}\n schemaName={propertyName}\n required={required.includes(propertyName)}\n isProperty={true}\n isCircular={circularProps.includes(propertyName)}\n dependentRequired={SchemaHelpers.getDependentRequired(\n propertyName,\n schema,\n )}\n key={propertyName}\n />\n ))}\n {Object.entries(patternProperties).map(([propertyName, property]) => (\n <Schema\n schema={property}\n schemaName={propertyName}\n isPatternProperty={true}\n isProperty={true}\n isCircular={circularProps.includes(propertyName)}\n key={propertyName}\n />\n ))}\n </>\n );\n};\n\ninterface AdditionalPropertiesProps {\n schema: SchemaType;\n}\n\nconst AdditionalProperties: React.FunctionComponent<AdditionalPropertiesProps> = ({\n schema,\n}) => {\n if (schema.ext(SchemaHelpers.extRenderAdditionalInfo) === false) {\n return null;\n }\n\n let type = schema.type();\n type = Array.isArray(type) ? type : [type];\n if (!type.includes('object')) {\n return null;\n }\n\n const additionalProperties = schema.additionalProperties();\n if (additionalProperties === true || additionalProperties === undefined) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional properties are allowed.\n </p>\n );\n }\n if (additionalProperties === false) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional properties are <strong>NOT</strong> allowed.\n </p>\n );\n }\n return (\n <Schema schemaName=\"Additional properties:\" schema={additionalProperties} />\n );\n};\n\ninterface SchemaItemsProps {\n schema: SchemaType;\n}\n\nconst SchemaItems: React.FunctionComponent<SchemaItemsProps> = ({ schema }) => {\n let type = schema.type();\n type = Array.isArray(type) ? type : [type];\n if (!type.includes('array')) {\n return null;\n }\n const items = schema.items();\n\n // object in items\n if (\n items &&\n !Array.isArray(items) &&\n Object.keys(items.properties() || {}).length\n ) {\n return <SchemaProperties schema={items} />;\n } else if (Array.isArray(items)) {\n return (\n <>\n {items.map((item, idx) => (\n <Schema schema={item} schemaName={`${idx + 1} item:`} key={idx} />\n ))}\n </>\n );\n }\n return <Schema schema={items} schemaName=\"Items:\" />;\n};\n\ninterface AdditionalItemsProps {\n schema: SchemaType;\n}\n\nconst AdditionalItems: React.FunctionComponent<AdditionalItemsProps> = ({\n schema,\n}) => {\n if (schema.ext(SchemaHelpers.extRenderAdditionalInfo) === false) {\n return null;\n }\n\n let type = schema.type();\n type = Array.isArray(type) ? type : [type];\n if (!type.includes('array')) {\n return null;\n }\n if (!Array.isArray(schema.items())) {\n return null;\n }\n\n const additionalItems = schema.additionalItems() as any;\n if (additionalItems === true || additionalItems === undefined) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional items are allowed.\n </p>\n );\n }\n if (additionalItems === false) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional items are <strong>NOT</strong> allowed.\n </p>\n );\n }\n return <Schema schemaName=\"Additional items:\" schema={additionalItems} />;\n};\n"]}
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.hljs = exports.renderMarkdown = void 0;
7
- var marked_1 = __importDefault(require("marked"));
7
+ var marked_1 = require("marked");
8
8
  var core_1 = __importDefault(require("highlight.js/lib/core"));
9
9
  exports.hljs = core_1.default;
10
10
  var json_1 = __importDefault(require("highlight.js/lib/languages/json"));
@@ -28,7 +28,7 @@ var markedOptions = {
28
28
  },
29
29
  };
30
30
  function renderMarkdown(content) {
31
- return (0, marked_1.default)(content, markedOptions);
31
+ return (0, marked_1.marked)(content, markedOptions);
32
32
  }
33
33
  exports.renderMarkdown = renderMarkdown;
34
34
  //# sourceMappingURL=marked.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"marked.js","sourceRoot":"","sources":["../../../src/helpers/marked.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA4B;AAG5B,+DAAyC;AAgChC,eAhCF,cAAI,CAgCE;AA7Bb,yEAAmD;AACnD,cAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,cAAI,CAAC,CAAC;AAGpC,yEAAmD;AACnD,cAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,cAAI,CAAC,CAAC;AAGpC,yEAAmD;AACnD,cAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,cAAI,CAAC,CAAC;AAEpC,IAAM,aAAa,GAAyB;IAC1C,UAAU,EAAE,gBAAgB;IAC5B,SAAS,EAAE,UAAC,IAAI,EAAE,QAAQ;QACxB,IAAI,CAAC,cAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;YAC/B,OAAO,IAAI,CAAC;SACb;QACD,IAAI;YACF,OAAO,cAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC,KAAK,CAAC;SACjD;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,IAAI,CAAC;SACb;IACH,CAAC;CACF,CAAC;AAEF,SAAgB,cAAc,CAAC,OAAe;IAC5C,OAAO,IAAA,gBAAM,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AACxC,CAAC;AAFD,wCAEC","sourcesContent":["import marked from 'marked';\n\n// @ts-ignore\nimport hljs from 'highlight.js/lib/core';\n\n// @ts-ignore\nimport json from 'highlight.js/lib/languages/json';\nhljs.registerLanguage('json', json);\n\n// @ts-ignore\nimport yaml from 'highlight.js/lib/languages/yaml';\nhljs.registerLanguage('yaml', yaml);\n\n// @ts-ignore\nimport bash from 'highlight.js/lib/languages/bash';\nhljs.registerLanguage('bash', bash);\n\nconst markedOptions: marked.MarkedOptions = {\n langPrefix: 'hljs language-',\n highlight: (code, language) => {\n if (!hljs.getLanguage(language)) {\n return code;\n }\n try {\n return hljs.highlight(code, { language }).value;\n } catch (e) {\n return code;\n }\n },\n};\n\nexport function renderMarkdown(content: string): string {\n return marked(content, markedOptions);\n}\n\nexport { hljs };\n"]}
1
+ {"version":3,"file":"marked.js","sourceRoot":"","sources":["../../../src/helpers/marked.ts"],"names":[],"mappings":";;;;;;AAAA,iCAAgC;AAGhC,+DAAyC;AAgChC,eAhCF,cAAI,CAgCE;AA7Bb,yEAAmD;AACnD,cAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,cAAI,CAAC,CAAC;AAGpC,yEAAmD;AACnD,cAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,cAAI,CAAC,CAAC;AAGpC,yEAAmD;AACnD,cAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,cAAI,CAAC,CAAC;AAEpC,IAAM,aAAa,GAAyB;IAC1C,UAAU,EAAE,gBAAgB;IAC5B,SAAS,EAAE,UAAC,IAAI,EAAE,QAAQ;QACxB,IAAI,CAAC,cAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;YAC/B,OAAO,IAAI,CAAC;SACb;QACD,IAAI;YACF,OAAO,cAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC,KAAK,CAAC;SACjD;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,IAAI,CAAC;SACb;IACH,CAAC;CACF,CAAC;AAEF,SAAgB,cAAc,CAAC,OAAe;IAC5C,OAAO,IAAA,eAAM,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AACxC,CAAC;AAFD,wCAEC","sourcesContent":["import { marked } from 'marked';\n\n// @ts-ignore\nimport hljs from 'highlight.js/lib/core';\n\n// @ts-ignore\nimport json from 'highlight.js/lib/languages/json';\nhljs.registerLanguage('json', json);\n\n// @ts-ignore\nimport yaml from 'highlight.js/lib/languages/yaml';\nhljs.registerLanguage('yaml', yaml);\n\n// @ts-ignore\nimport bash from 'highlight.js/lib/languages/bash';\nhljs.registerLanguage('bash', bash);\n\nconst markedOptions: marked.MarkedOptions = {\n langPrefix: 'hljs language-',\n highlight: (code, language) => {\n if (!hljs.getLanguage(language)) {\n return code;\n }\n try {\n return hljs.highlight(code, { language }).value;\n } catch (e) {\n return code;\n }\n },\n};\n\nexport function renderMarkdown(content: string): string {\n return marked(content, markedOptions);\n}\n\nexport { hljs };\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/helpers/schema.ts"],"names":[],"mappings":"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","sourcesContent":["import { ChannelParameter, ServerVariable, Schema } from '@asyncapi/parser';\n// @ts-ignore\nimport SchemaClass from '@asyncapi/parser/lib/models/schema';\n\nexport enum SchemaCustomTypes {\n // for `true` and `{}` schemas\n ANY = 'any',\n // for schemas without `type` keyword\n RESTRICTED_ANY = 'restricted any',\n // for `false` and `{ not: {}, ... }` schemas\n NEVER = 'never',\n // for types that we cannot infer\n UNKNOWN = 'unknown',\n}\n\nconst jsonSchemaTypes = [\n 'string',\n 'number',\n 'integer',\n 'boolean',\n 'array',\n 'object',\n 'null',\n];\nconst jsonSchemaKeywordTypes: Record<string, string> = {\n // string\n maxLength: 'string',\n minLength: 'string',\n pattern: 'string',\n contentMediaType: 'string',\n contentEncoding: 'string',\n // number\n multipleOf: 'number',\n maximum: 'number',\n exclusiveMaximum: 'number',\n minimum: 'number',\n exclusiveMinimum: 'number',\n // array\n items: 'array',\n maxItems: 'array',\n minItems: 'array',\n uniqueItems: 'array',\n contains: 'array',\n additionalItems: 'array',\n // object\n maxProperties: 'object',\n minProperties: 'object',\n required: 'object',\n properties: 'object',\n patternProperties: 'object',\n propertyNames: 'object',\n dependencies: 'object',\n additionalProperties: 'object',\n};\nconst jsonSchemaKeywords = Object.keys(jsonSchemaKeywordTypes);\n\nexport class SchemaHelpers {\n static extRenderType = 'x-schema-private-render-type';\n static extRenderAdditionalInfo = 'x-schema-private-render-additional-info';\n static extRawValue = 'x-schema-private-raw-value';\n static extParameterLocation = 'x-schema-private-parameter-location';\n\n static toSchemaType(schema: Schema): string {\n if (!schema || typeof schema.json !== 'function') {\n return SchemaCustomTypes.UNKNOWN;\n }\n if (schema.isBooleanSchema()) {\n if (schema.json() === true) {\n return SchemaCustomTypes.ANY;\n } else {\n return SchemaCustomTypes.NEVER;\n }\n }\n // handle case with `{}` schemas\n if (Object.keys(schema.json()).length === 0) {\n return SchemaCustomTypes.ANY;\n }\n // handle case with `{ not: {}, ... }` schemas\n const not = schema.not();\n if (not && this.inferType(not) === SchemaCustomTypes.ANY) {\n return SchemaCustomTypes.NEVER;\n }\n\n let type = this.inferType(schema);\n if (Array.isArray(type)) {\n return type.map(t => this.toType(t, schema)).join(' | ');\n }\n type = this.toType(type, schema);\n const combinedType = this.toCombinedType(schema);\n\n if (type && combinedType) {\n return `${type} ${combinedType}`;\n }\n if (combinedType) {\n return combinedType;\n }\n return type;\n }\n\n static prettifyValue(value: any) {\n const typeOf = typeof value;\n if (typeOf === 'string') {\n return `\"${value}\"`;\n }\n if (typeOf === 'number' || typeOf === 'bigint' || typeOf === 'boolean') {\n return value;\n }\n if (Array.isArray(value)) {\n return `[${value.toString()}]`;\n }\n return JSON.stringify(value);\n }\n\n static humanizeConstraints(schema: Schema): string[] {\n const constraints: string[] = [];\n\n // related to number/integer\n const numberRange = this.humanizeNumberRangeConstraint(\n schema.minimum(),\n schema.exclusiveMinimum(),\n schema.maximum(),\n schema.exclusiveMaximum(),\n );\n if (numberRange !== undefined) {\n constraints.push(numberRange);\n }\n const multipleOfConstraint = this.humanizeMultipleOfConstraint(\n schema.multipleOf(),\n );\n if (multipleOfConstraint !== undefined) {\n constraints.push(multipleOfConstraint);\n }\n\n // related to string\n const stringRange = this.humanizeRangeConstraint(\n 'characters',\n schema.minLength(),\n schema.maxLength(),\n );\n if (stringRange !== undefined) {\n constraints.push(stringRange);\n }\n\n // related to array\n const hasUniqueItems = schema.uniqueItems();\n const arrayRange = this.humanizeRangeConstraint(\n hasUniqueItems ? 'unique items' : 'items',\n schema.minItems(),\n schema.maxItems(),\n );\n if (arrayRange !== undefined) {\n constraints.push(arrayRange);\n }\n\n // related to object\n const objectRange = this.humanizeRangeConstraint(\n 'properties',\n schema.minProperties(),\n schema.maxProperties(),\n );\n if (objectRange !== undefined) {\n constraints.push(objectRange);\n }\n\n return constraints;\n }\n\n static isExpandable(schema: Schema): boolean {\n let type = this.inferType(schema);\n type = Array.isArray(type) ? type : [type];\n if (type.includes('object') || type.includes('array')) {\n return true;\n }\n\n if (\n schema.oneOf() ||\n schema.anyOf() ||\n schema.allOf() ||\n Object.keys(schema.properties()).length ||\n schema.items() ||\n schema.not() ||\n schema.if() ||\n schema.then() ||\n schema.else()\n ) {\n return true;\n }\n\n const customExtensions = this.getCustomExtensions(schema);\n if (customExtensions && Object.keys(customExtensions).length) {\n return true;\n }\n\n return false;\n }\n\n static serverVariablesToSchema(\n urlVariables?: Record<string, ServerVariable>,\n ): Schema | undefined {\n if (!urlVariables || !Object.keys(urlVariables).length) {\n return undefined;\n }\n\n const json = {\n type: 'object',\n properties: Object.entries(urlVariables).reduce((obj, [urlName, url]) => {\n obj[urlName] = Object.assign({}, url.json());\n obj[urlName].type = 'string';\n return obj;\n }, {}),\n required: Object.keys(urlVariables),\n [this.extRenderType]: false,\n [this.extRenderAdditionalInfo]: false,\n };\n return new SchemaClass(json);\n }\n\n static parametersToSchema(\n parameters?: Record<string, ChannelParameter>,\n ): Schema | undefined {\n if (!parameters || !Object.keys(parameters).length) {\n return undefined;\n }\n\n const json = {\n type: 'object',\n properties: Object.entries(parameters).reduce(\n (obj, [paramaterName, parameter]) => {\n obj[paramaterName] = Object.assign({}, parameter.schema().json());\n obj[paramaterName].description =\n parameter.description() || obj[paramaterName].description;\n obj[paramaterName][this.extParameterLocation] = parameter.location();\n return obj;\n },\n {},\n ),\n required: Object.keys(parameters),\n [this.extRenderType]: false,\n [this.extRenderAdditionalInfo]: false,\n };\n return new SchemaClass(json);\n }\n\n static jsonToSchema(value: any): SchemaClass {\n const json = this.jsonFieldToSchema(value);\n return new SchemaClass(json);\n }\n\n /**\n * Retrieves from given value all custom extensions (value with key started by `x-`).\n * However, it skips those private extensions that begin with `x-parser-` and `x-schema-private-`.\n *\n * @param value\n */\n static getCustomExtensions(value: any) {\n if (!value || typeof value.extensions !== 'function') {\n return;\n }\n return Object.entries(value.extensions() || {}).reduce(\n (obj, [extName, ext]) => {\n if (\n !extName.startsWith('x-parser-') &&\n !extName.startsWith('x-schema-private-')\n ) {\n obj[extName] = ext;\n }\n return obj;\n },\n {},\n );\n }\n\n /**\n * Retrieves from given schema all dependent required requires by given propertyName from `dependencies` object.\n *\n * @param propertyName\n * @param schema\n */\n static getDependentRequired(\n propertyName: string,\n schema: Schema,\n ): string[] | undefined {\n const dependentRequired: string[] = [];\n const dependencies = schema.dependencies();\n if (!dependencies) {\n return;\n }\n\n for (const [prop, array] of Object.entries(dependencies)) {\n if (Array.isArray(array) && array.includes(propertyName)) {\n dependentRequired.push(prop);\n }\n }\n return dependentRequired.length ? dependentRequired : undefined;\n }\n\n /**\n * Retrieves from given schema all dependent schemas from `dependencies` object.\n *\n * @param schema\n */\n static getDependentSchemas(schema: Schema): Schema | undefined {\n const dependencies = schema.dependencies();\n if (!dependencies) {\n return;\n }\n\n const records: Record<string, Schema> = {};\n for (const [prop, propSchema] of Object.entries(dependencies)) {\n if (typeof propSchema === 'object' && !Array.isArray(propSchema)) {\n records[prop] = propSchema;\n }\n }\n if (!Object.keys(records).length) {\n return undefined;\n }\n\n const json = {\n type: 'object',\n properties: Object.entries(records).reduce(\n (obj, [propertyName, propertySchema]) => {\n obj[propertyName] = Object.assign({}, propertySchema.json());\n return obj;\n },\n {},\n ),\n [this.extRenderType]: false,\n [this.extRenderAdditionalInfo]: false,\n };\n return new SchemaClass(json);\n }\n\n private static toType(type: string, schema: Schema): string {\n if (schema.isCircular()) {\n return type;\n }\n if (type === 'array') {\n const items = schema.items();\n if (Array.isArray(items)) {\n return this.toItemsType(items, schema);\n }\n if (!items) {\n return `array<${SchemaCustomTypes.ANY}>`;\n }\n return `array<${this.toSchemaType(items) || SchemaCustomTypes.UNKNOWN}>`;\n }\n return type;\n }\n\n private static toItemsType(items: Schema[], schema: Schema): string {\n const types = items.map(item => this.toSchemaType(item)).join(', ');\n const additionalItems = schema.additionalItems() as any;\n if (additionalItems === undefined || additionalItems.json()) {\n const additionalType =\n additionalItems === undefined || additionalItems.json() === true\n ? SchemaCustomTypes.ANY\n : this.toSchemaType(additionalItems);\n return `tuple<${types ||\n SchemaCustomTypes.UNKNOWN}, ...optional<${additionalType}>>`;\n }\n return `tuple<${types || SchemaCustomTypes.UNKNOWN}>`;\n }\n\n private static toCombinedType(schema: Schema): string | undefined {\n const oneOf = schema.oneOf();\n if (oneOf) {\n return 'oneOf';\n }\n if (schema.anyOf()) {\n return 'anyOf';\n }\n if (schema.allOf()) {\n return 'allOf';\n }\n return;\n }\n\n private static inferType(schema: Schema): string[] | string {\n let types = schema.type();\n\n if (types !== undefined) {\n if (Array.isArray(types)) {\n // if types have `integer` and `number` types, `integer` is unnecessary\n if (types.includes('integer') && types.includes('number')) {\n types = types.filter(t => t !== 'integer');\n }\n return types.length === 1 ? types[0] : types;\n }\n return types;\n }\n\n const constValue = schema.const();\n if (constValue !== undefined) {\n return typeof constValue;\n }\n const enumValue = schema.enum();\n if (Array.isArray(enumValue) && enumValue.length) {\n const inferredType = Array.from(new Set(enumValue.map(e => typeof e)));\n return inferredType.length === 1 ? inferredType[0] : inferredType;\n }\n\n const schemaKeys = Object.keys(schema.json() || {}) || [];\n const hasInferredTypes = jsonSchemaKeywords.some(key =>\n schemaKeys.includes(key),\n );\n if (hasInferredTypes === true) {\n return SchemaCustomTypes.RESTRICTED_ANY;\n }\n if (this.toCombinedType(schema)) {\n return '';\n }\n return SchemaCustomTypes.ANY;\n }\n\n private static humanizeNumberRangeConstraint(\n min: number | undefined,\n exclusiveMin: number | undefined,\n max: number | undefined,\n exclusiveMax: number | undefined,\n ): string | undefined {\n const hasExclusiveMin = exclusiveMin !== undefined;\n const hasMin = min !== undefined || hasExclusiveMin;\n const hasExclusiveMax = exclusiveMax !== undefined;\n const hasMax = max !== undefined || hasExclusiveMax;\n\n let numberRange;\n if (hasMin && hasMax) {\n numberRange = hasExclusiveMin ? '( ' : '[ ';\n numberRange += hasExclusiveMin ? exclusiveMin : min;\n numberRange += ' .. ';\n numberRange += hasExclusiveMax ? exclusiveMax : max;\n numberRange += hasExclusiveMax ? ' )' : ' ]';\n } else if (hasMin) {\n numberRange = hasExclusiveMin ? '> ' : '>= ';\n numberRange += hasExclusiveMin ? exclusiveMin : min;\n } else if (hasMax) {\n numberRange = hasExclusiveMax ? '< ' : '<= ';\n numberRange += hasExclusiveMax ? exclusiveMax : max;\n }\n return numberRange;\n }\n\n private static humanizeMultipleOfConstraint(\n multipleOf: number | undefined,\n ): string | undefined {\n if (multipleOf === undefined) {\n return;\n }\n const strigifiedMultipleOf = multipleOf.toString(10);\n if (!/^0\\.0*1$/.test(strigifiedMultipleOf)) {\n return `multiple of ${strigifiedMultipleOf}`;\n }\n return `decimal places <= ${strigifiedMultipleOf.split('.')[1].length}`;\n }\n\n private static humanizeRangeConstraint(\n description: string,\n min: number | undefined,\n max: number | undefined,\n ): string | undefined {\n let stringRange;\n if (min !== undefined && max !== undefined) {\n if (min === max) {\n stringRange = `${min} ${description}`;\n } else {\n stringRange = `[ ${min} .. ${max} ] ${description}`;\n }\n } else if (max !== undefined) {\n stringRange = `<= ${max} ${description}`;\n } else if (min !== undefined) {\n if (min === 1) {\n stringRange = 'non-empty';\n } else {\n stringRange = `>= ${min} ${description}`;\n }\n }\n return stringRange;\n }\n\n private static jsonFieldToSchema(value: any): any {\n if (value === undefined || value === null) {\n return {\n type: 'string',\n const: '',\n [this.extRawValue]: true,\n };\n }\n if (typeof value !== 'object') {\n const str =\n typeof value.toString === 'function' ? value.toString() : value;\n return {\n type: 'string',\n const: str,\n [this.extRawValue]: true,\n };\n }\n if (this.isJSONSchema(value)) {\n return value;\n }\n if (Array.isArray(value)) {\n return {\n type: 'array',\n items: value.map(v => this.jsonFieldToSchema(v)),\n [this.extRenderType]: false,\n [this.extRenderAdditionalInfo]: false,\n };\n }\n return {\n type: 'object',\n properties: Object.entries(value).reduce((obj, [k, v]) => {\n obj[k] = this.jsonFieldToSchema(v);\n return obj;\n }, {}),\n [this.extRenderType]: false,\n [this.extRenderAdditionalInfo]: false,\n };\n }\n\n private static isJSONSchema(value: any): boolean {\n if (\n value &&\n typeof value === 'object' &&\n (jsonSchemaTypes.includes(value.type) ||\n (Array.isArray(value.type) &&\n value.type.some((t: string) => !jsonSchemaTypes.includes(t))))\n ) {\n return true;\n }\n return false;\n }\n}\n"]}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/helpers/schema.ts"],"names":[],"mappings":"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","sourcesContent":["import { ChannelParameter, ServerVariable, Schema } from '@asyncapi/parser';\n// @ts-ignore\nimport SchemaClass from '@asyncapi/parser/lib/models/schema';\n\nexport enum SchemaCustomTypes {\n // for `true` and `{}` schemas\n ANY = 'any',\n // for schemas without `type` keyword\n RESTRICTED_ANY = 'restricted any',\n // for `false` and `{ not: {}, ... }` schemas\n NEVER = 'never',\n // for types that we cannot infer\n UNKNOWN = 'unknown',\n}\n\nconst jsonSchemaTypes = [\n 'string',\n 'number',\n 'integer',\n 'boolean',\n 'array',\n 'object',\n 'null',\n];\nconst jsonSchemaKeywordTypes: Record<string, string> = {\n // string\n maxLength: 'string',\n minLength: 'string',\n pattern: 'string',\n contentMediaType: 'string',\n contentEncoding: 'string',\n // number\n multipleOf: 'number',\n maximum: 'number',\n exclusiveMaximum: 'number',\n minimum: 'number',\n exclusiveMinimum: 'number',\n // array\n items: 'array',\n maxItems: 'array',\n minItems: 'array',\n uniqueItems: 'array',\n contains: 'array',\n additionalItems: 'array',\n // object\n maxProperties: 'object',\n minProperties: 'object',\n required: 'object',\n properties: 'object',\n patternProperties: 'object',\n propertyNames: 'object',\n dependencies: 'object',\n additionalProperties: 'object',\n};\nconst jsonSchemaKeywords = Object.keys(jsonSchemaKeywordTypes);\n\nexport class SchemaHelpers {\n static extRenderType = 'x-schema-private-render-type';\n static extRenderAdditionalInfo = 'x-schema-private-render-additional-info';\n static extRawValue = 'x-schema-private-raw-value';\n static extParameterLocation = 'x-schema-private-parameter-location';\n\n static toSchemaType(schema: Schema): string {\n if (!schema || typeof schema.json !== 'function') {\n return SchemaCustomTypes.UNKNOWN;\n }\n if (schema.isBooleanSchema()) {\n if (schema.json() === true) {\n return SchemaCustomTypes.ANY;\n } else {\n return SchemaCustomTypes.NEVER;\n }\n }\n // handle case with `{}` schemas\n if (Object.keys(schema.json()).length === 0) {\n return SchemaCustomTypes.ANY;\n }\n // handle case with `{ not: {}, ... }` schemas\n const not = schema.not();\n if (not && this.inferType(not) === SchemaCustomTypes.ANY) {\n return SchemaCustomTypes.NEVER;\n }\n\n let type = this.inferType(schema);\n if (Array.isArray(type)) {\n return type.map(t => this.toType(t, schema)).join(' | ');\n }\n type = this.toType(type, schema);\n const combinedType = this.toCombinedType(schema);\n\n if (type && combinedType) {\n return `${type} ${combinedType}`;\n }\n if (combinedType) {\n return combinedType;\n }\n return type;\n }\n\n static prettifyValue(value: any) {\n const typeOf = typeof value;\n if (typeOf === 'string') {\n return `\"${value}\"`;\n }\n if (typeOf === 'number' || typeOf === 'bigint' || typeOf === 'boolean') {\n return value;\n }\n if (Array.isArray(value)) {\n return `[${value.toString()}]`;\n }\n return JSON.stringify(value);\n }\n\n static humanizeConstraints(schema: Schema): string[] {\n const constraints: string[] = [];\n\n // related to number/integer\n const numberRange = this.humanizeNumberRangeConstraint(\n schema.minimum(),\n schema.exclusiveMinimum(),\n schema.maximum(),\n schema.exclusiveMaximum(),\n );\n if (numberRange !== undefined) {\n constraints.push(numberRange);\n }\n const multipleOfConstraint = this.humanizeMultipleOfConstraint(\n schema.multipleOf(),\n );\n if (multipleOfConstraint !== undefined) {\n constraints.push(multipleOfConstraint);\n }\n\n // related to string\n const stringRange = this.humanizeRangeConstraint(\n 'characters',\n schema.minLength(),\n schema.maxLength(),\n );\n if (stringRange !== undefined) {\n constraints.push(stringRange);\n }\n\n // related to array\n const hasUniqueItems = schema.uniqueItems();\n const arrayRange = this.humanizeRangeConstraint(\n hasUniqueItems ? 'unique items' : 'items',\n schema.minItems(),\n schema.maxItems(),\n );\n if (arrayRange !== undefined) {\n constraints.push(arrayRange);\n }\n\n // related to object\n const objectRange = this.humanizeRangeConstraint(\n 'properties',\n schema.minProperties(),\n schema.maxProperties(),\n );\n if (objectRange !== undefined) {\n constraints.push(objectRange);\n }\n\n return constraints;\n }\n\n static isExpandable(schema: Schema): boolean {\n let type = this.inferType(schema);\n type = Array.isArray(type) ? type : [type];\n if (type.includes('object') || type.includes('array')) {\n return true;\n }\n\n if (\n schema.oneOf() ||\n schema.anyOf() ||\n schema.allOf() ||\n Object.keys(schema.properties()).length ||\n schema.items() ||\n schema.not() ||\n schema.if() ||\n schema.then() ||\n schema.else()\n ) {\n return true;\n }\n\n const customExtensions = this.getCustomExtensions(schema);\n if (customExtensions && Object.keys(customExtensions).length) {\n return true;\n }\n\n return false;\n }\n\n static serverVariablesToSchema(\n urlVariables?: Record<string, ServerVariable>,\n ): Schema | undefined {\n if (!urlVariables || !Object.keys(urlVariables).length) {\n return undefined;\n }\n\n const json = {\n type: 'object',\n properties: Object.entries(urlVariables).reduce((obj, [urlName, url]) => {\n obj[urlName] = Object.assign({}, url.json());\n obj[urlName].type = 'string';\n return obj;\n }, {}),\n required: Object.keys(urlVariables),\n [this.extRenderType]: false,\n [this.extRenderAdditionalInfo]: false,\n };\n return new SchemaClass(json);\n }\n\n static parametersToSchema(\n parameters?: Record<string, ChannelParameter>,\n ): Schema | undefined {\n if (!parameters || !Object.keys(parameters).length) {\n return undefined;\n }\n\n const json = {\n type: 'object',\n properties: Object.entries(parameters).reduce(\n (obj, [paramaterName, parameter]) => {\n obj[paramaterName] = Object.assign({}, parameter.schema().json());\n obj[paramaterName].description =\n parameter.description() || obj[paramaterName].description;\n obj[paramaterName][this.extParameterLocation] = parameter.location();\n return obj;\n },\n {},\n ),\n required: Object.keys(parameters),\n [this.extRenderType]: false,\n [this.extRenderAdditionalInfo]: false,\n };\n return new SchemaClass(json);\n }\n\n static jsonToSchema(value: any): any {\n const json = this.jsonFieldToSchema(value);\n return new SchemaClass(json);\n }\n\n /**\n * Retrieves from given value all custom extensions (value with key started by `x-`).\n * However, it skips those private extensions that begin with `x-parser-` and `x-schema-private-`.\n *\n * @param value\n */\n static getCustomExtensions(value: any) {\n if (!value || typeof value.extensions !== 'function') {\n return;\n }\n return Object.entries(value.extensions() || {}).reduce(\n (obj, [extName, ext]) => {\n if (\n !extName.startsWith('x-parser-') &&\n !extName.startsWith('x-schema-private-')\n ) {\n obj[extName] = ext;\n }\n return obj;\n },\n {},\n );\n }\n\n /**\n * Retrieves from given schema all dependent required requires by given propertyName from `dependencies` object.\n *\n * @param propertyName\n * @param schema\n */\n static getDependentRequired(\n propertyName: string,\n schema: Schema,\n ): string[] | undefined {\n const dependentRequired: string[] = [];\n const dependencies = schema.dependencies();\n if (!dependencies) {\n return;\n }\n\n for (const [prop, array] of Object.entries(dependencies)) {\n if (Array.isArray(array) && array.includes(propertyName)) {\n dependentRequired.push(prop);\n }\n }\n return dependentRequired.length ? dependentRequired : undefined;\n }\n\n /**\n * Retrieves from given schema all dependent schemas from `dependencies` object.\n *\n * @param schema\n */\n static getDependentSchemas(schema: Schema): Schema | undefined {\n const dependencies = schema.dependencies();\n if (!dependencies) {\n return;\n }\n\n const records: Record<string, Schema> = {};\n for (const [prop, propSchema] of Object.entries(dependencies)) {\n if (typeof propSchema === 'object' && !Array.isArray(propSchema)) {\n records[prop] = propSchema;\n }\n }\n if (!Object.keys(records).length) {\n return undefined;\n }\n\n const json = {\n type: 'object',\n properties: Object.entries(records).reduce(\n (obj, [propertyName, propertySchema]) => {\n obj[propertyName] = Object.assign({}, propertySchema.json());\n return obj;\n },\n {},\n ),\n [this.extRenderType]: false,\n [this.extRenderAdditionalInfo]: false,\n };\n return new SchemaClass(json);\n }\n\n private static toType(type: string, schema: Schema): string {\n if (schema.isCircular()) {\n return type;\n }\n if (type === 'array') {\n const items = schema.items();\n if (Array.isArray(items)) {\n return this.toItemsType(items, schema);\n }\n if (!items) {\n return `array<${SchemaCustomTypes.ANY}>`;\n }\n return `array<${this.toSchemaType(items) || SchemaCustomTypes.UNKNOWN}>`;\n }\n return type;\n }\n\n private static toItemsType(items: Schema[], schema: Schema): string {\n const types = items.map(item => this.toSchemaType(item)).join(', ');\n const additionalItems = schema.additionalItems() as any;\n if (additionalItems === undefined || additionalItems.json()) {\n const additionalType =\n additionalItems === undefined || additionalItems.json() === true\n ? SchemaCustomTypes.ANY\n : this.toSchemaType(additionalItems);\n return `tuple<${types ||\n SchemaCustomTypes.UNKNOWN}, ...optional<${additionalType}>>`;\n }\n return `tuple<${types || SchemaCustomTypes.UNKNOWN}>`;\n }\n\n private static toCombinedType(schema: Schema): string | undefined {\n const oneOf = schema.oneOf();\n if (oneOf) {\n return 'oneOf';\n }\n if (schema.anyOf()) {\n return 'anyOf';\n }\n if (schema.allOf()) {\n return 'allOf';\n }\n return;\n }\n\n private static inferType(schema: Schema): string[] | string {\n let types = schema.type();\n\n if (types !== undefined) {\n if (Array.isArray(types)) {\n // if types have `integer` and `number` types, `integer` is unnecessary\n if (types.includes('integer') && types.includes('number')) {\n types = types.filter(t => t !== 'integer');\n }\n return types.length === 1 ? types[0] : types;\n }\n return types;\n }\n\n const constValue = schema.const();\n if (constValue !== undefined) {\n return typeof constValue;\n }\n const enumValue = schema.enum();\n if (Array.isArray(enumValue) && enumValue.length) {\n const inferredType = Array.from(new Set(enumValue.map(e => typeof e)));\n return inferredType.length === 1 ? inferredType[0] : inferredType;\n }\n\n const schemaKeys = Object.keys(schema.json() || {}) || [];\n const hasInferredTypes = jsonSchemaKeywords.some(key =>\n schemaKeys.includes(key),\n );\n if (hasInferredTypes === true) {\n return SchemaCustomTypes.RESTRICTED_ANY;\n }\n if (this.toCombinedType(schema)) {\n return '';\n }\n return SchemaCustomTypes.ANY;\n }\n\n private static humanizeNumberRangeConstraint(\n min: number | undefined,\n exclusiveMin: number | undefined,\n max: number | undefined,\n exclusiveMax: number | undefined,\n ): string | undefined {\n const hasExclusiveMin = exclusiveMin !== undefined;\n const hasMin = min !== undefined || hasExclusiveMin;\n const hasExclusiveMax = exclusiveMax !== undefined;\n const hasMax = max !== undefined || hasExclusiveMax;\n\n let numberRange;\n if (hasMin && hasMax) {\n numberRange = hasExclusiveMin ? '( ' : '[ ';\n numberRange += hasExclusiveMin ? exclusiveMin : min;\n numberRange += ' .. ';\n numberRange += hasExclusiveMax ? exclusiveMax : max;\n numberRange += hasExclusiveMax ? ' )' : ' ]';\n } else if (hasMin) {\n numberRange = hasExclusiveMin ? '> ' : '>= ';\n numberRange += hasExclusiveMin ? exclusiveMin : min;\n } else if (hasMax) {\n numberRange = hasExclusiveMax ? '< ' : '<= ';\n numberRange += hasExclusiveMax ? exclusiveMax : max;\n }\n return numberRange;\n }\n\n private static humanizeMultipleOfConstraint(\n multipleOf: number | undefined,\n ): string | undefined {\n if (multipleOf === undefined) {\n return;\n }\n const strigifiedMultipleOf = multipleOf.toString(10);\n if (!/^0\\.0*1$/.test(strigifiedMultipleOf)) {\n return `multiple of ${strigifiedMultipleOf}`;\n }\n return `decimal places <= ${strigifiedMultipleOf.split('.')[1].length}`;\n }\n\n private static humanizeRangeConstraint(\n description: string,\n min: number | undefined,\n max: number | undefined,\n ): string | undefined {\n let stringRange;\n if (min !== undefined && max !== undefined) {\n if (min === max) {\n stringRange = `${min} ${description}`;\n } else {\n stringRange = `[ ${min} .. ${max} ] ${description}`;\n }\n } else if (max !== undefined) {\n stringRange = `<= ${max} ${description}`;\n } else if (min !== undefined) {\n if (min === 1) {\n stringRange = 'non-empty';\n } else {\n stringRange = `>= ${min} ${description}`;\n }\n }\n return stringRange;\n }\n\n private static jsonFieldToSchema(value: any): any {\n if (value === undefined || value === null) {\n return {\n type: 'string',\n const: '',\n [this.extRawValue]: true,\n };\n }\n if (typeof value !== 'object') {\n const str =\n typeof value.toString === 'function' ? value.toString() : value;\n return {\n type: 'string',\n const: str,\n [this.extRawValue]: true,\n };\n }\n if (this.isJSONSchema(value)) {\n return value;\n }\n if (Array.isArray(value)) {\n return {\n type: 'array',\n items: value.map(v => this.jsonFieldToSchema(v)),\n [this.extRenderType]: false,\n [this.extRenderAdditionalInfo]: false,\n };\n }\n return {\n type: 'object',\n properties: Object.entries(value).reduce((obj, [k, v]) => {\n obj[k] = this.jsonFieldToSchema(v);\n return obj;\n }, {}),\n [this.extRenderType]: false,\n [this.extRenderAdditionalInfo]: false,\n };\n }\n\n private static isJSONSchema(value: any): boolean {\n if (\n value &&\n typeof value === 'object' &&\n (jsonSchemaTypes.includes(value.type) ||\n (Array.isArray(value.type) &&\n value.type.some((t: string) => !jsonSchemaTypes.includes(t))))\n ) {\n return true;\n }\n return false;\n }\n}\n"]}
@@ -68,7 +68,7 @@ export var Schema = function (_a) {
68
68
  schema.format() && (React.createElement("span", { className: "bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs" },
69
69
  "format: ",
70
70
  schema.format())),
71
- schema.pattern() !== undefined && (React.createElement("span", { className: "bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs" },
71
+ schema.pattern() !== undefined && (React.createElement("span", { className: "bg-yellow-600 font-bold no-underline text-white rounded mr-2 p-1 text-xs" },
72
72
  "must match: ",
73
73
  schema.pattern())),
74
74
  schema.contentMediaType() !== undefined && (React.createElement("span", { className: "bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs" },
@@ -1 +1 @@
1
- {"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../src/components/Schema.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState, useContext } from 'react';\nimport { Schema as SchemaType } from '@asyncapi/parser';\n\nimport { Href, CollapseButton, Markdown, Extensions } from './index';\nimport { SchemaHelpers } from '../helpers';\n\ninterface Props {\n schemaName?: React.ReactNode;\n schema?: SchemaType;\n required?: boolean;\n isPatternProperty?: boolean;\n isProperty?: boolean;\n isCircular?: boolean;\n dependentRequired?: string[];\n expanded?: boolean;\n onlyTitle?: boolean;\n}\n\nconst SchemaContext = React.createContext({ reverse: false });\n\nexport const Schema: React.FunctionComponent<Props> = ({\n schemaName,\n schema,\n required = false,\n isPatternProperty = false,\n isProperty = false,\n isCircular = false,\n dependentRequired,\n expanded = false,\n onlyTitle = false,\n}) => {\n const { reverse } = useContext(SchemaContext);\n const [expand, setExpand] = useState(expanded);\n\n if (\n !schema ||\n (typeof schemaName === 'string' &&\n (schemaName?.startsWith('x-parser-') ||\n schemaName?.startsWith('x-schema-private-')))\n ) {\n return null;\n }\n\n const dependentSchemas = SchemaHelpers.getDependentSchemas(schema);\n\n const constraints = SchemaHelpers.humanizeConstraints(schema);\n const externalDocs = schema.externalDocs();\n\n const renderType = schema.ext(SchemaHelpers.extRenderType) !== false;\n const rawValue = schema.ext(SchemaHelpers.extRawValue) === true;\n const parameterLocation = schema.ext(SchemaHelpers.extParameterLocation);\n const isExpandable = SchemaHelpers.isExpandable(schema) || dependentSchemas;\n\n let schemaType = SchemaHelpers.toSchemaType(schema);\n isCircular =\n isCircular ||\n schema.isCircular() ||\n schema.ext('x-parser-circular') ||\n false;\n let uid = schema.uid();\n\n const schemaItems = schema.items();\n if (schemaItems && !Array.isArray(schemaItems)) {\n /**\n * fallback for older logic for circular references:\n *\n * checking uid for circular items\n * `x-parser-circular` extension is added to every schema which has circular `items` field,\n * so we must check that `items` is schema (not array of schemas) and infer UID of schema to display which schema is circular (by the name of schema)\n */\n isCircular =\n isCircular ||\n schemaItems.isCircular() ||\n schemaItems.ext('x-parser-circular') ||\n false;\n uid = schemaItems.uid();\n if (\n isCircular &&\n typeof (schemaItems as any).circularSchema === 'function'\n ) {\n schemaType = SchemaHelpers.toSchemaType(\n (schemaItems as any).circularSchema(),\n );\n }\n } else if (\n isCircular &&\n typeof (schema as any).circularSchema === 'function'\n ) {\n schemaType = SchemaHelpers.toSchemaType((schema as any).circularSchema());\n }\n\n const styledSchemaName = isProperty ? 'italic' : '';\n const renderedSchemaName =\n typeof schemaName === 'string' ? (\n <span className={`break-words text-sm ${styledSchemaName}`}>\n {schemaName}\n </span>\n ) : (\n schemaName\n );\n\n return (\n <SchemaContext.Provider value={{ reverse: !reverse }}>\n <div>\n <div className=\"flex py-2\">\n <div className={`${onlyTitle ? '' : 'min-w-1/4'} mr-2`}>\n {isExpandable && !isCircular ? (\n <CollapseButton\n onClick={() => setExpand(prev => !prev)}\n chevronProps={{\n className: expand ? '-rotate-180' : '-rotate-90',\n }}\n >\n {renderedSchemaName}\n </CollapseButton>\n ) : (\n <span\n className={`break-words text-sm ${isProperty ? 'italic' : ''}`}\n >\n {schemaName}\n </span>\n )}\n {isPatternProperty && (\n <div className=\"text-gray-500 text-xs italic\">\n (pattern property)\n </div>\n )}\n {required && <div className=\"text-red-600 text-xs\">required</div>}\n {dependentRequired && (\n <>\n <div className=\"text-gray-500 text-xs\">\n required when defined:\n </div>\n <div className=\"text-red-600 text-xs\">\n {dependentRequired.join(', ')}\n </div>\n </>\n )}\n {schema.deprecated() && (\n <div className=\"text-red-600 text-xs\">deprecated</div>\n )}\n {schema.writeOnly() && (\n <div className=\"text-gray-500 text-xs\">write-only</div>\n )}\n {schema.readOnly() && (\n <div className=\"text-gray-500 text-xs\">read-only</div>\n )}\n </div>\n {rawValue ? (\n <div>\n <div className=\"text-sm\">{schema.const()}</div>\n </div>\n ) : (\n <div>\n <div>\n {renderType && (\n <div className=\"capitalize text-sm text-teal-500 font-bold inline-block mr-2\">\n {isCircular ? `${schemaType} [CIRCULAR]` : schemaType}\n </div>\n )}\n <div className=\"inline-block\">\n {schema.format() && (\n <span className=\"bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs\">\n format: {schema.format()}\n </span>\n )}\n\n {/* related to string */}\n {schema.pattern() !== undefined && (\n <span className=\"bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs\">\n must match: {schema.pattern()}\n </span>\n )}\n {schema.contentMediaType() !== undefined && (\n <span className=\"bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs\">\n media type: {schema.contentMediaType()}\n </span>\n )}\n {schema.contentEncoding() !== undefined && (\n <span className=\"bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs\">\n encoding: {schema.contentEncoding()}\n </span>\n )}\n\n {/* constraints */}\n {!!constraints.length &&\n constraints.map(c => (\n <span\n className=\"bg-purple-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs\"\n key={c}\n >\n {c}\n </span>\n ))}\n\n {uid && !uid.startsWith('<anonymous-') && (\n <span className=\"border text-orange-600 rounded mr-2 p-1 text-xs\">\n uid: {uid}\n </span>\n )}\n </div>\n\n {schema.hasDescription() && (\n <div>\n <Markdown>{schema.description()}</Markdown>\n </div>\n )}\n\n {schema.default() !== undefined && (\n <div className=\"text-xs\">\n Default value:\n <span className=\"border inline-block text-orange-600 rounded ml-1 py-0 px-2\">\n {SchemaHelpers.prettifyValue(schema.default())}\n </span>\n </div>\n )}\n {schema.const() !== undefined && (\n <div className=\"text-xs\">\n Const:\n <span className=\"border inline-block text-orange-600 rounded ml-1 py-0 px-2\">\n {SchemaHelpers.prettifyValue(schema.const())}\n </span>\n </div>\n )}\n {schema.enum() && (\n <ul className=\"text-xs\">\n Allowed values:{' '}\n {schema.enum().map((e, idx) => (\n <li\n key={idx}\n className=\"border inline-block text-orange-600 rounded ml-1 py-0 px-2\"\n >\n <span>{SchemaHelpers.prettifyValue(e)}</span>\n </li>\n ))}\n </ul>\n )}\n {parameterLocation && (\n <div className=\"text-xs\">\n Parameter location:{' '}\n <span className=\"border text-orange-600 rounded mr-2 p-1 text-xs\">\n {parameterLocation}\n </span>\n </div>\n )}\n {externalDocs && (\n <span className=\"border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 font-bold no-underline text-xs uppercase rounded px-2 py-0\">\n <Href\n href={externalDocs.url()}\n title={externalDocs.description() || ''}\n >\n Documentation\n </Href>\n </span>\n )}\n {schema.examples() && (\n <ul className=\"text-xs\">\n Examples values:{' '}\n {schema.examples().map((e, idx) => (\n <li\n key={idx}\n className=\"border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all\"\n >\n <span>{SchemaHelpers.prettifyValue(e)}</span>\n </li>\n ))}\n </ul>\n )}\n </div>\n </div>\n )}\n </div>\n\n {isCircular || !isExpandable ? null : (\n <div\n className={`rounded p-4 py-2 border bg-gray-100 ${\n reverse ? 'bg-gray-200' : ''\n } ${expand ? 'block' : 'hidden'}`}\n >\n <SchemaProperties schema={schema} />\n <SchemaItems schema={schema} />\n\n {schema.oneOf() &&\n schema\n .oneOf()\n .map((s, idx) => (\n <Schema\n key={idx}\n schema={s}\n schemaName={idx === 0 ? 'Adheres to:' : 'Or to:'}\n />\n ))}\n {schema.anyOf() &&\n schema\n .anyOf()\n .map((s, idx) => (\n <Schema\n key={idx}\n schema={s}\n schemaName={idx === 0 ? 'Can adhere to:' : 'Or to:'}\n />\n ))}\n {schema.allOf() &&\n schema\n .allOf()\n .map((s, idx) => (\n <Schema\n key={idx}\n schema={s}\n schemaName={idx === 0 ? 'Consists of:' : 'And with:'}\n />\n ))}\n {schema.not() && (\n <Schema schema={schema.not()} schemaName=\"Cannot adhere to:\" />\n )}\n\n {schema.propertyNames() && (\n <Schema\n schema={schema.propertyNames()}\n schemaName=\"Property names must adhere to:\"\n />\n )}\n {schema.contains() && (\n <Schema\n schema={schema.contains()}\n schemaName=\"Array must contain at least one of:\"\n />\n )}\n\n {schema.if() && (\n <Schema schema={schema.if()} schemaName=\"If schema adheres to:\" />\n )}\n {schema.then() && (\n <Schema\n schema={schema.then()}\n schemaName=\"Then must adhere to:\"\n />\n )}\n {schema.else() && (\n <Schema schema={schema.else()} schemaName=\"Otherwise:\" />\n )}\n\n {dependentSchemas && (\n <Schema\n schema={dependentSchemas}\n schemaName=\"Dependent schemas:\"\n />\n )}\n\n <Extensions item={schema} />\n\n <AdditionalProperties schema={schema} />\n <AdditionalItems schema={schema} />\n </div>\n )}\n </div>\n </SchemaContext.Provider>\n );\n};\n\ninterface SchemaPropertiesProps {\n schema: SchemaType;\n}\n\nconst SchemaProperties: React.FunctionComponent<SchemaPropertiesProps> = ({\n schema,\n}) => {\n const properties = schema.properties() || {};\n if (!Object.keys(properties)) {\n return null;\n }\n\n const required = schema.required() || [];\n const patternProperties = schema.patternProperties();\n const circularProps = schema.ext('x-parser-circular-props') || [];\n\n return (\n <>\n {Object.entries(properties).map(([propertyName, property]) => (\n <Schema\n schema={property}\n schemaName={propertyName}\n required={required.includes(propertyName)}\n isProperty={true}\n isCircular={circularProps.includes(propertyName)}\n dependentRequired={SchemaHelpers.getDependentRequired(\n propertyName,\n schema,\n )}\n key={propertyName}\n />\n ))}\n {Object.entries(patternProperties).map(([propertyName, property]) => (\n <Schema\n schema={property}\n schemaName={propertyName}\n isPatternProperty={true}\n isProperty={true}\n isCircular={circularProps.includes(propertyName)}\n key={propertyName}\n />\n ))}\n </>\n );\n};\n\ninterface AdditionalPropertiesProps {\n schema: SchemaType;\n}\n\nconst AdditionalProperties: React.FunctionComponent<AdditionalPropertiesProps> = ({\n schema,\n}) => {\n if (schema.ext(SchemaHelpers.extRenderAdditionalInfo) === false) {\n return null;\n }\n\n let type = schema.type();\n type = Array.isArray(type) ? type : [type];\n if (!type.includes('object')) {\n return null;\n }\n\n const additionalProperties = schema.additionalProperties();\n if (additionalProperties === true || additionalProperties === undefined) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional properties are allowed.\n </p>\n );\n }\n if (additionalProperties === false) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional properties are <strong>NOT</strong> allowed.\n </p>\n );\n }\n return (\n <Schema schemaName=\"Additional properties:\" schema={additionalProperties} />\n );\n};\n\ninterface SchemaItemsProps {\n schema: SchemaType;\n}\n\nconst SchemaItems: React.FunctionComponent<SchemaItemsProps> = ({ schema }) => {\n let type = schema.type();\n type = Array.isArray(type) ? type : [type];\n if (!type.includes('array')) {\n return null;\n }\n const items = schema.items();\n\n // object in items\n if (\n items &&\n !Array.isArray(items) &&\n Object.keys(items.properties() || {}).length\n ) {\n return <SchemaProperties schema={items} />;\n } else if (Array.isArray(items)) {\n return (\n <>\n {items.map((item, idx) => (\n <Schema schema={item} schemaName={`${idx + 1} item:`} key={idx} />\n ))}\n </>\n );\n }\n return <Schema schema={items} schemaName=\"Items:\" />;\n};\n\ninterface AdditionalItemsProps {\n schema: SchemaType;\n}\n\nconst AdditionalItems: React.FunctionComponent<AdditionalItemsProps> = ({\n schema,\n}) => {\n if (schema.ext(SchemaHelpers.extRenderAdditionalInfo) === false) {\n return null;\n }\n\n let type = schema.type();\n type = Array.isArray(type) ? type : [type];\n if (!type.includes('array')) {\n return null;\n }\n if (!Array.isArray(schema.items())) {\n return null;\n }\n\n const additionalItems = schema.additionalItems() as any;\n if (additionalItems === true || additionalItems === undefined) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional items are allowed.\n </p>\n );\n }\n if (additionalItems === false) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional items are <strong>NOT</strong> allowed.\n </p>\n );\n }\n return <Schema schemaName=\"Additional items:\" schema={additionalItems} />;\n};\n"]}
1
+ {"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../src/components/Schema.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState, useContext } from 'react';\nimport { Schema as SchemaType } from '@asyncapi/parser';\n\nimport { Href, CollapseButton, Markdown, Extensions } from './index';\nimport { SchemaHelpers } from '../helpers';\n\ninterface Props {\n schemaName?: React.ReactNode;\n schema?: SchemaType;\n required?: boolean;\n isPatternProperty?: boolean;\n isProperty?: boolean;\n isCircular?: boolean;\n dependentRequired?: string[];\n expanded?: boolean;\n onlyTitle?: boolean;\n}\n\nconst SchemaContext = React.createContext({ reverse: false });\n\nexport const Schema: React.FunctionComponent<Props> = ({\n schemaName,\n schema,\n required = false,\n isPatternProperty = false,\n isProperty = false,\n isCircular = false,\n dependentRequired,\n expanded = false,\n onlyTitle = false,\n}) => {\n const { reverse } = useContext(SchemaContext);\n const [expand, setExpand] = useState(expanded);\n\n if (\n !schema ||\n (typeof schemaName === 'string' &&\n (schemaName?.startsWith('x-parser-') ||\n schemaName?.startsWith('x-schema-private-')))\n ) {\n return null;\n }\n\n const dependentSchemas = SchemaHelpers.getDependentSchemas(schema);\n\n const constraints = SchemaHelpers.humanizeConstraints(schema);\n const externalDocs = schema.externalDocs();\n\n const renderType = schema.ext(SchemaHelpers.extRenderType) !== false;\n const rawValue = schema.ext(SchemaHelpers.extRawValue) === true;\n const parameterLocation = schema.ext(SchemaHelpers.extParameterLocation);\n const isExpandable = SchemaHelpers.isExpandable(schema) || dependentSchemas;\n\n let schemaType = SchemaHelpers.toSchemaType(schema);\n isCircular =\n isCircular ||\n schema.isCircular() ||\n schema.ext('x-parser-circular') ||\n false;\n let uid = schema.uid();\n\n const schemaItems = schema.items();\n if (schemaItems && !Array.isArray(schemaItems)) {\n /**\n * fallback for older logic for circular references:\n *\n * checking uid for circular items\n * `x-parser-circular` extension is added to every schema which has circular `items` field,\n * so we must check that `items` is schema (not array of schemas) and infer UID of schema to display which schema is circular (by the name of schema)\n */\n isCircular =\n isCircular ||\n schemaItems.isCircular() ||\n schemaItems.ext('x-parser-circular') ||\n false;\n uid = schemaItems.uid();\n if (\n isCircular &&\n typeof (schemaItems as any).circularSchema === 'function'\n ) {\n schemaType = SchemaHelpers.toSchemaType(\n (schemaItems as any).circularSchema(),\n );\n }\n } else if (\n isCircular &&\n typeof (schema as any).circularSchema === 'function'\n ) {\n schemaType = SchemaHelpers.toSchemaType((schema as any).circularSchema());\n }\n\n const styledSchemaName = isProperty ? 'italic' : '';\n const renderedSchemaName =\n typeof schemaName === 'string' ? (\n <span className={`break-words text-sm ${styledSchemaName}`}>\n {schemaName}\n </span>\n ) : (\n schemaName\n );\n\n return (\n <SchemaContext.Provider value={{ reverse: !reverse }}>\n <div>\n <div className=\"flex py-2\">\n <div className={`${onlyTitle ? '' : 'min-w-1/4'} mr-2`}>\n {isExpandable && !isCircular ? (\n <CollapseButton\n onClick={() => setExpand(prev => !prev)}\n chevronProps={{\n className: expand ? '-rotate-180' : '-rotate-90',\n }}\n >\n {renderedSchemaName}\n </CollapseButton>\n ) : (\n <span\n className={`break-words text-sm ${isProperty ? 'italic' : ''}`}\n >\n {schemaName}\n </span>\n )}\n {isPatternProperty && (\n <div className=\"text-gray-500 text-xs italic\">\n (pattern property)\n </div>\n )}\n {required && <div className=\"text-red-600 text-xs\">required</div>}\n {dependentRequired && (\n <>\n <div className=\"text-gray-500 text-xs\">\n required when defined:\n </div>\n <div className=\"text-red-600 text-xs\">\n {dependentRequired.join(', ')}\n </div>\n </>\n )}\n {schema.deprecated() && (\n <div className=\"text-red-600 text-xs\">deprecated</div>\n )}\n {schema.writeOnly() && (\n <div className=\"text-gray-500 text-xs\">write-only</div>\n )}\n {schema.readOnly() && (\n <div className=\"text-gray-500 text-xs\">read-only</div>\n )}\n </div>\n {rawValue ? (\n <div>\n <div className=\"text-sm\">{schema.const()}</div>\n </div>\n ) : (\n <div>\n <div>\n {renderType && (\n <div className=\"capitalize text-sm text-teal-500 font-bold inline-block mr-2\">\n {isCircular ? `${schemaType} [CIRCULAR]` : schemaType}\n </div>\n )}\n <div className=\"inline-block\">\n {schema.format() && (\n <span className=\"bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs\">\n format: {schema.format()}\n </span>\n )}\n\n {/* related to string */}\n {schema.pattern() !== undefined && (\n <span className=\"bg-yellow-600 font-bold no-underline text-white rounded mr-2 p-1 text-xs\">\n must match: {schema.pattern()}\n </span>\n )}\n {schema.contentMediaType() !== undefined && (\n <span className=\"bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs\">\n media type: {schema.contentMediaType()}\n </span>\n )}\n {schema.contentEncoding() !== undefined && (\n <span className=\"bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs\">\n encoding: {schema.contentEncoding()}\n </span>\n )}\n\n {/* constraints */}\n {!!constraints.length &&\n constraints.map(c => (\n <span\n className=\"bg-purple-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs\"\n key={c}\n >\n {c}\n </span>\n ))}\n\n {uid && !uid.startsWith('<anonymous-') && (\n <span className=\"border text-orange-600 rounded mr-2 p-1 text-xs\">\n uid: {uid}\n </span>\n )}\n </div>\n\n {schema.hasDescription() && (\n <div>\n <Markdown>{schema.description()}</Markdown>\n </div>\n )}\n\n {schema.default() !== undefined && (\n <div className=\"text-xs\">\n Default value:\n <span className=\"border inline-block text-orange-600 rounded ml-1 py-0 px-2\">\n {SchemaHelpers.prettifyValue(schema.default())}\n </span>\n </div>\n )}\n {schema.const() !== undefined && (\n <div className=\"text-xs\">\n Const:\n <span className=\"border inline-block text-orange-600 rounded ml-1 py-0 px-2\">\n {SchemaHelpers.prettifyValue(schema.const())}\n </span>\n </div>\n )}\n {schema.enum() && (\n <ul className=\"text-xs\">\n Allowed values:{' '}\n {schema.enum().map((e, idx) => (\n <li\n key={idx}\n className=\"border inline-block text-orange-600 rounded ml-1 py-0 px-2\"\n >\n <span>{SchemaHelpers.prettifyValue(e)}</span>\n </li>\n ))}\n </ul>\n )}\n {parameterLocation && (\n <div className=\"text-xs\">\n Parameter location:{' '}\n <span className=\"border text-orange-600 rounded mr-2 p-1 text-xs\">\n {parameterLocation}\n </span>\n </div>\n )}\n {externalDocs && (\n <span className=\"border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 font-bold no-underline text-xs uppercase rounded px-2 py-0\">\n <Href\n href={externalDocs.url()}\n title={externalDocs.description() || ''}\n >\n Documentation\n </Href>\n </span>\n )}\n {schema.examples() && (\n <ul className=\"text-xs\">\n Examples values:{' '}\n {schema.examples().map((e, idx) => (\n <li\n key={idx}\n className=\"border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all\"\n >\n <span>{SchemaHelpers.prettifyValue(e)}</span>\n </li>\n ))}\n </ul>\n )}\n </div>\n </div>\n )}\n </div>\n\n {isCircular || !isExpandable ? null : (\n <div\n className={`rounded p-4 py-2 border bg-gray-100 ${\n reverse ? 'bg-gray-200' : ''\n } ${expand ? 'block' : 'hidden'}`}\n >\n <SchemaProperties schema={schema} />\n <SchemaItems schema={schema} />\n\n {schema.oneOf() &&\n schema\n .oneOf()\n .map((s, idx) => (\n <Schema\n key={idx}\n schema={s}\n schemaName={idx === 0 ? 'Adheres to:' : 'Or to:'}\n />\n ))}\n {schema.anyOf() &&\n schema\n .anyOf()\n .map((s, idx) => (\n <Schema\n key={idx}\n schema={s}\n schemaName={idx === 0 ? 'Can adhere to:' : 'Or to:'}\n />\n ))}\n {schema.allOf() &&\n schema\n .allOf()\n .map((s, idx) => (\n <Schema\n key={idx}\n schema={s}\n schemaName={idx === 0 ? 'Consists of:' : 'And with:'}\n />\n ))}\n {schema.not() && (\n <Schema schema={schema.not()} schemaName=\"Cannot adhere to:\" />\n )}\n\n {schema.propertyNames() && (\n <Schema\n schema={schema.propertyNames()}\n schemaName=\"Property names must adhere to:\"\n />\n )}\n {schema.contains() && (\n <Schema\n schema={schema.contains()}\n schemaName=\"Array must contain at least one of:\"\n />\n )}\n\n {schema.if() && (\n <Schema schema={schema.if()} schemaName=\"If schema adheres to:\" />\n )}\n {schema.then() && (\n <Schema\n schema={schema.then()}\n schemaName=\"Then must adhere to:\"\n />\n )}\n {schema.else() && (\n <Schema schema={schema.else()} schemaName=\"Otherwise:\" />\n )}\n\n {dependentSchemas && (\n <Schema\n schema={dependentSchemas}\n schemaName=\"Dependent schemas:\"\n />\n )}\n\n <Extensions item={schema} />\n\n <AdditionalProperties schema={schema} />\n <AdditionalItems schema={schema} />\n </div>\n )}\n </div>\n </SchemaContext.Provider>\n );\n};\n\ninterface SchemaPropertiesProps {\n schema: SchemaType;\n}\n\nconst SchemaProperties: React.FunctionComponent<SchemaPropertiesProps> = ({\n schema,\n}) => {\n const properties = schema.properties() || {};\n if (!Object.keys(properties)) {\n return null;\n }\n\n const required = schema.required() || [];\n const patternProperties = schema.patternProperties();\n const circularProps = schema.ext('x-parser-circular-props') || [];\n\n return (\n <>\n {Object.entries(properties).map(([propertyName, property]) => (\n <Schema\n schema={property}\n schemaName={propertyName}\n required={required.includes(propertyName)}\n isProperty={true}\n isCircular={circularProps.includes(propertyName)}\n dependentRequired={SchemaHelpers.getDependentRequired(\n propertyName,\n schema,\n )}\n key={propertyName}\n />\n ))}\n {Object.entries(patternProperties).map(([propertyName, property]) => (\n <Schema\n schema={property}\n schemaName={propertyName}\n isPatternProperty={true}\n isProperty={true}\n isCircular={circularProps.includes(propertyName)}\n key={propertyName}\n />\n ))}\n </>\n );\n};\n\ninterface AdditionalPropertiesProps {\n schema: SchemaType;\n}\n\nconst AdditionalProperties: React.FunctionComponent<AdditionalPropertiesProps> = ({\n schema,\n}) => {\n if (schema.ext(SchemaHelpers.extRenderAdditionalInfo) === false) {\n return null;\n }\n\n let type = schema.type();\n type = Array.isArray(type) ? type : [type];\n if (!type.includes('object')) {\n return null;\n }\n\n const additionalProperties = schema.additionalProperties();\n if (additionalProperties === true || additionalProperties === undefined) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional properties are allowed.\n </p>\n );\n }\n if (additionalProperties === false) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional properties are <strong>NOT</strong> allowed.\n </p>\n );\n }\n return (\n <Schema schemaName=\"Additional properties:\" schema={additionalProperties} />\n );\n};\n\ninterface SchemaItemsProps {\n schema: SchemaType;\n}\n\nconst SchemaItems: React.FunctionComponent<SchemaItemsProps> = ({ schema }) => {\n let type = schema.type();\n type = Array.isArray(type) ? type : [type];\n if (!type.includes('array')) {\n return null;\n }\n const items = schema.items();\n\n // object in items\n if (\n items &&\n !Array.isArray(items) &&\n Object.keys(items.properties() || {}).length\n ) {\n return <SchemaProperties schema={items} />;\n } else if (Array.isArray(items)) {\n return (\n <>\n {items.map((item, idx) => (\n <Schema schema={item} schemaName={`${idx + 1} item:`} key={idx} />\n ))}\n </>\n );\n }\n return <Schema schema={items} schemaName=\"Items:\" />;\n};\n\ninterface AdditionalItemsProps {\n schema: SchemaType;\n}\n\nconst AdditionalItems: React.FunctionComponent<AdditionalItemsProps> = ({\n schema,\n}) => {\n if (schema.ext(SchemaHelpers.extRenderAdditionalInfo) === false) {\n return null;\n }\n\n let type = schema.type();\n type = Array.isArray(type) ? type : [type];\n if (!type.includes('array')) {\n return null;\n }\n if (!Array.isArray(schema.items())) {\n return null;\n }\n\n const additionalItems = schema.additionalItems() as any;\n if (additionalItems === true || additionalItems === undefined) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional items are allowed.\n </p>\n );\n }\n if (additionalItems === false) {\n return (\n <p className=\"mt-2 text-xs text-gray-700\">\n Additional items are <strong>NOT</strong> allowed.\n </p>\n );\n }\n return <Schema schemaName=\"Additional items:\" schema={additionalItems} />;\n};\n"]}
@@ -1,4 +1,4 @@
1
- import marked from 'marked';
1
+ import { marked } from 'marked';
2
2
  import hljs from 'highlight.js/lib/core';
3
3
  import json from 'highlight.js/lib/languages/json';
4
4
  hljs.registerLanguage('json', json);
@@ -1 +1 @@
1
- {"version":3,"file":"marked.js","sourceRoot":"","sources":["../../../src/helpers/marked.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,OAAO,IAAI,MAAM,uBAAuB,CAAC;AAGzC,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAGpC,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAGpC,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAEpC,IAAM,aAAa,GAAyB;IAC1C,UAAU,EAAE,gBAAgB;IAC5B,SAAS,EAAE,UAAC,IAAI,EAAE,QAAQ;QACxB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;YAC/B,OAAO,IAAI,CAAC;SACb;QACD,IAAI;YACF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC,KAAK,CAAC;SACjD;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,IAAI,CAAC;SACb;IACH,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AACxC,CAAC;AAED,OAAO,EAAE,IAAI,EAAE,CAAC","sourcesContent":["import marked from 'marked';\n\n// @ts-ignore\nimport hljs from 'highlight.js/lib/core';\n\n// @ts-ignore\nimport json from 'highlight.js/lib/languages/json';\nhljs.registerLanguage('json', json);\n\n// @ts-ignore\nimport yaml from 'highlight.js/lib/languages/yaml';\nhljs.registerLanguage('yaml', yaml);\n\n// @ts-ignore\nimport bash from 'highlight.js/lib/languages/bash';\nhljs.registerLanguage('bash', bash);\n\nconst markedOptions: marked.MarkedOptions = {\n langPrefix: 'hljs language-',\n highlight: (code, language) => {\n if (!hljs.getLanguage(language)) {\n return code;\n }\n try {\n return hljs.highlight(code, { language }).value;\n } catch (e) {\n return code;\n }\n },\n};\n\nexport function renderMarkdown(content: string): string {\n return marked(content, markedOptions);\n}\n\nexport { hljs };\n"]}
1
+ {"version":3,"file":"marked.js","sourceRoot":"","sources":["../../../src/helpers/marked.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,IAAI,MAAM,uBAAuB,CAAC;AAGzC,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAGpC,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAGpC,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAEpC,IAAM,aAAa,GAAyB;IAC1C,UAAU,EAAE,gBAAgB;IAC5B,SAAS,EAAE,UAAC,IAAI,EAAE,QAAQ;QACxB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;YAC/B,OAAO,IAAI,CAAC;SACb;QACD,IAAI;YACF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC,KAAK,CAAC;SACjD;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,IAAI,CAAC;SACb;IACH,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AACxC,CAAC;AAED,OAAO,EAAE,IAAI,EAAE,CAAC","sourcesContent":["import { marked } from 'marked';\n\n// @ts-ignore\nimport hljs from 'highlight.js/lib/core';\n\n// @ts-ignore\nimport json from 'highlight.js/lib/languages/json';\nhljs.registerLanguage('json', json);\n\n// @ts-ignore\nimport yaml from 'highlight.js/lib/languages/yaml';\nhljs.registerLanguage('yaml', yaml);\n\n// @ts-ignore\nimport bash from 'highlight.js/lib/languages/bash';\nhljs.registerLanguage('bash', bash);\n\nconst markedOptions: marked.MarkedOptions = {\n langPrefix: 'hljs language-',\n highlight: (code, language) => {\n if (!hljs.getLanguage(language)) {\n return code;\n }\n try {\n return hljs.highlight(code, { language }).value;\n } catch (e) {\n return code;\n }\n },\n};\n\nexport function renderMarkdown(content: string): string {\n return marked(content, markedOptions);\n}\n\nexport { hljs };\n"]}