// eslint-disable-next-line @typescript-eslint/no-var-requires const prism = require('prismjs'); // eslint-disable-next-line @typescript-eslint/no-var-requires const loadLanguages = require('prismjs/components/'); // eslint-disable-next-line @typescript-eslint/no-var-requires const Html5Entities = require('html-entities'); // eslint-disable-next-line @typescript-eslint/no-var-requires const rehypeParse = require('rehype-parse'); // eslint-disable-next-line @typescript-eslint/no-var-requires const versions = require('../constants/versions.ts'); module.exports = (async () => { const { visit } = await import('unist-util-visit'); const { unified } = await import('unified'); const entities = new Html5Entities.Html5Entities(); const supportedLanguages = [ 'markup', 'objectivec', 'html', 'xml', 'css', 'docker', 'go', 'ini', 'js', 'ts', 'bash', 'swift', 'kotlin', 'python', 'java', 'yaml', 'ruby', 'wasm', 'rust', 'json', 'typescript', 'javascript', 'graphql', 'diff', 'jsx', 'sql', 'groovy', 'dart', 'text', 'plain', 'sh' ]; loadLanguages(supportedLanguages); const highlight = (code, language) => { language = language.replace('language-', ''); let highlighted = ''; const languageIsSet = !!(language && language.trim().length > 0); code = code.trim(); if (languageIsSet && prism.languages[language]) { if (!supportedLanguages.includes(language)) { throw new Error( `No support for ${language} syntax highlighting. Contact Amplify JS team to request support.` ); } highlighted = prism.highlight(code, prism.languages[language], language); } else { highlighted = entities.encode(code); } const html = `