vis-dev-utils 3.0.121 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/babel-register/index.js +10 -35
- package/babel-register/index.js.map +1 -1
- package/bin/ci-utils.js +7 -15
- package/bin/ci-utils.js.map +1 -1
- package/bin/generate-examples-index.js +155 -225
- package/bin/generate-examples-index.js.map +1 -1
- package/bin/test-e2e-interop.js +1162 -915
- package/bin/test-e2e-interop.js.map +1 -1
- package/declarations/generate-rollup-configuration/index.d.ts +4 -4
- package/declarations/generate-rollup-configuration/index.d.ts.map +1 -1
- package/dist/vis-dev-utils.cjs.js +80 -140
- package/dist/vis-dev-utils.cjs.js.map +1 -1
- package/dist/vis-dev-utils.esm.js +14 -8
- package/dist/vis-dev-utils.esm.js.map +1 -1
- package/package.json +15 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-examples-index.js","sources":["../src/generate-examples-index/content-builder/common.ts","../src/generate-examples-index/content-builder/format.ts","../src/generate-examples-index/content-builder/playground/codepen.ts","../src/generate-examples-index/content-builder/playground/data.ts","../src/generate-examples-index/content-builder/playground/jsfiddle.ts","../src/generate-examples-index/content-builder/screenshots/index.ts","../src/generate-examples-index/content-builder/builder.ts","../src/generate-examples-index/content-builder/html/index.ts","../src/generate-examples-index/content-builder/md/index.ts","../src/generate-examples-index/cli.ts","../src/generate-examples-index/paths.ts","../src/generate-examples-index/index.ts"],"sourcesContent":["import { Example, Examples, ExamplesRoot } from \"../types\";\n\nexport interface ContentPart {\n content: string;\n filename: string;\n title: string;\n}\n\nexport interface Renderer {\n render(\n examples: ExamplesRoot,\n output: string,\n title: string,\n collator: Intl.Collator\n ): ContentPart[];\n screenshot: {\n width: number;\n height: number;\n };\n}\n\n/**\n * @param value\n */\nexport function isExample(\n value: Example | Examples | ExamplesRoot\n): value is Example {\n return (\n typeof value === \"object\" &&\n value !== null &&\n typeof value.path === \"string\"\n );\n}\n\nexport interface StartStopMs {\n start: number;\n stop: number;\n}\n/**\n *\n */\nexport function measureStartStopMs(): () => StartStopMs {\n const start = Date.now();\n return (): StartStopMs => {\n const stop = Date.now();\n\n return { start, stop };\n };\n}\n\nexport interface Report {\n count: number;\n result: \"fulfilled\" | \"rejected\";\n start: number;\n stop: number;\n}\n/**\n * @param reports\n * @param fallback\n */\nexport function reduceReports(\n reports: readonly Report[],\n fallback: Report = {\n count: 0,\n result: \"fulfilled\",\n start: -1,\n stop: -1,\n }\n): Report {\n return (\n reports.reduce<Report | null>((acc, val): Report | null => {\n return {\n count: (acc?.count ?? 0) + (val?.count ?? 0),\n result: [acc?.result ?? \"fulfilled\", val.result].every(\n (result): boolean => result === \"fulfilled\"\n )\n ? \"fulfilled\"\n : \"rejected\",\n start: Math.min(acc?.start ?? Number.POSITIVE_INFINITY, val.start),\n stop: Math.max(acc?.stop ?? Number.NEGATIVE_INFINITY, val.stop),\n };\n }, null) ?? fallback\n );\n}\n\n/**\n * @param ms\n */\nexport function formatMs(ms: number): string {\n return `${(Math.round(ms / 100) / 10).toFixed(1)}s`;\n}\n/**\n * @param root0\n * @param root0.start\n * @param root0.stop\n */\nexport function formatStartStopMs({ start, stop }: StartStopMs): string {\n return `${(Math.round((stop - start) / 100) / 10).toFixed(1)}s`;\n}\n","import prettier from \"prettier\";\n\nexport const formatCSS = (css: string | null | undefined): string =>\n prettier.format(css || \"\", { filepath: \"style.css\" });\nexport const formatHTML = (html: string | null | undefined): string =>\n prettier.format(html || \"\", { filepath: \"index.html\" });\nexport const formatJS = (js: string | null | undefined): string =>\n prettier.format(js || \"\", { filepath: \"script.js\" });\nexport const formatMD = (md: string | null | undefined): string =>\n prettier.format(md || \"\", { filepath: \"README.md\" });\n","import $ from \"cheerio\";\n\nimport template from \"./codepen.template.html\";\nimport { Example } from \"../../types\";\n\n/**\n * @param example\n */\nexport function generateCodePenPage(example: Example): string {\n const data = example.playground;\n const title = example.titles.join(\" | \");\n\n const page = $.load(template);\n page(\"title\").text(title);\n const form = page(\"#form\");\n\n form.find('input[name=\"data\"]').attr(\n \"value\",\n JSON.stringify({\n css: data.code.css,\n css_external: data.resources.css.join(\";\"),\n html: data.code.html,\n js: data.code.js,\n js_external: data.resources.js.join(\";\"),\n title: example.titles.join(\" | \"),\n })\n );\n\n return page.html();\n}\n","import $ from \"cheerio\";\nimport { dirname, relative, resolve } from \"path\";\n\nimport { Example, PlaygroundData } from \"../../types\";\nimport { formatCSS, formatHTML, formatJS } from \"../format\";\n\n/**\n * @param baseURL\n * @param example$\n * @param examplePath\n */\nexport function generatePlaygroundData(\n baseURL: string,\n example$: Example[\"$\"],\n examplePath: Example[\"path\"]\n): PlaygroundData {\n // JavaScript\n const eventListeners = Object.entries(example$(\"body\").get(0).attribs)\n .filter(([name]): boolean => /^on/.test(name))\n .map(([name, value]): [string, string] => [name.slice(2), `${value}`])\n .map(\n ([name, value]): string =>\n `window.addEventListener(\"${name}\", () => { ${value} });`\n )\n .join(\"\\n\");\n const js = formatJS(\n example$(\"script\")\n .map((_i, elem) => (elem as cheerio.TagElement).children[0])\n .get()\n .map((elem): string => elem.data)\n .join(\"\") +\n \"\\n\\n;\" +\n eventListeners\n );\n\n // Cascading Style Sheets\n const css = formatCSS(\n example$(\"style\")\n .map((_i, elem) => (elem as cheerio.TagElement).children[0])\n .get()\n .map((elem): string => elem.data)\n .join(\"\")\n );\n\n // Hypertext Markup Language\n const $html = $.load(example$(\"body\").html() || \"\");\n $html(\"script\").remove();\n\n const html = formatHTML($html(\"body\").html());\n\n // Resources\n const fixPath = (rawPath: string): string =>\n /^https?:\\/\\//.test(rawPath)\n ? // World wide web absolute.\n rawPath\n : /^\\//.test(rawPath)\n ? // Domain absolute.\n baseURL + rawPath.slice(1)\n : //Relative.\n baseURL +\n relative(process.cwd(), resolve(dirname(examplePath), rawPath));\n\n const resources = {\n js: example$(\"script\")\n .map((_i, elem): undefined | string => $(elem).attr(\"src\"))\n .get()\n .filter((src): src is string => typeof src === \"string\")\n .map(fixPath),\n css: example$(\"link[rel='stylesheet']\")\n .map((_i, elem): undefined | string => $(elem).attr(\"href\"))\n .get()\n .filter((href): href is string => typeof href === \"string\")\n .map(fixPath),\n };\n\n return {\n code: {\n css,\n html,\n js,\n },\n resources,\n };\n}\n","import $ from \"cheerio\";\n\nimport template from \"./jsfiddle.template.html\";\nimport { Example } from \"../../types\";\n\n/**\n * @param example\n */\nexport function generateJSFiddlePage(example: Example): string {\n const data = example.playground;\n const title = example.titles.join(\" | \");\n const resources = [...data.resources.css, ...data.resources.js].join(\",\");\n\n const page = $.load(template);\n page(\"title\").text(title);\n const form = page(\"#form\");\n\n // Playground data.\n form.find('input[name=\"css\"]').attr(\"value\", data.code.css);\n form.find('input[name=\"html\"]').attr(\"value\", data.code.html);\n form.find('input[name=\"js\"]').attr(\"value\", data.code.js);\n form.find('input[name=\"resources\"]').attr(\"value\", resources);\n form.find('input[name=\"title\"]').attr(\"value\", title);\n\n // Don't run JS before the DOM is ready.\n form.find('input[name=\"wrap\"]').attr(\"value\", \"b\");\n\n return page.html();\n}\n","import $ from \"cheerio\";\nimport Jimp from \"jimp\";\nimport { Browser } from \"puppeteer\";\nimport commonScreenshotScript from \"./screenshot-script.js.txt\";\nimport fs from \"fs\";\nimport { basename, dirname, posix, resolve, sep } from \"path\";\nimport { promisify } from \"util\";\n\nimport { Example } from \"../../types\";\nimport { formatHTML } from \"../format\";\n\nconst unlink = promisify(fs.unlink);\nconst writeFile = promisify(fs.writeFile);\n\n/**\n * Check if the screenshot is valid. At the moment this simply considers\n * everything except for solid color images as valid. This works pretty well\n * though may yield some false positives.\n *\n * @param screenshot - The binary data of the screenshot.\n * @returns True for valid and false for invalid.\n */\nasync function isScreenshotValid(screenshot: Buffer): Promise<boolean> {\n const image = await Jimp.read(screenshot);\n const firstPixel = image.getPixelColor(0, 0);\n\n for (let x = 0; x < image.getWidth(); ++x) {\n for (let y = 0; y < image.getHeight(); ++y) {\n if (firstPixel !== image.getPixelColor(x, y)) {\n return true;\n }\n }\n }\n\n return false;\n}\n\nexport interface GenerateScreenshotConfig {\n /**\n * Leave the contexts and tabs open for inspection, also don't delete the\n * temporary pages.\n */\n debug: boolean;\n /** The example for which the screenshot will be generated. */\n example: Example;\n /** Height of the captured screenshot. */\n height: number;\n /** A script to be executed as the first thing on the page. */\n screenshotScript: string;\n /** Width of the captured screenshot. */\n width: number;\n}\n\n/**\n * Capture an element on the example's page and save the screenshot to the\n * disk as a PNG file.\n *\n * @param browser - Puppeteer's browser instance.\n * @param config - See the type's docs for detail.\n * @returns Whether or not the screenshot passed validation check.\n */\nexport async function generateScreenshot(\n browser: Browser,\n config: GenerateScreenshotConfig\n): Promise<boolean> {\n const { debug, example, height, screenshotScript, width } = config;\n\n const cleanup: (() => void | Promise<void>)[] = [];\n\n try {\n // Prepare the page. It has to be written to the disk so that files with\n // relative URLs can be loaded.\n const tmpPath = resolve(\n dirname(example.paths.page.local),\n \".tmp.example.screenshot.\" + basename(example.paths.page.local)\n );\n const screenshotPage = $.load(example.html);\n screenshotPage(\"head\").prepend(\n $(\"<script>\")\n .attr(\"type\", \"text/javascript\")\n .text(`window.DEBUG = ${true};`),\n $(\"<script>\")\n .attr(\"type\", \"text/javascript\")\n .text(commonScreenshotScript),\n $(\"<script>\").attr(\"type\", \"text/javascript\").text(screenshotScript),\n $(\"<style>\")\n .attr(\"type\", \"text/css\")\n .text(\n [\n `${example.selector} {`,\n \" border: none !important;\",\n \"\",\n ` min-width: ${width}px !important;`,\n ` min-height: ${height}px !important;`,\n ` width: ${width}px !important;`,\n ` height: ${height}px !important;`,\n ` max-width: ${width}px !important;`,\n ` max-height: ${height}px !important;`,\n \"}\",\n ].join(\"\\n\")\n )\n );\n await writeFile(tmpPath, formatHTML(screenshotPage.html()));\n if (!debug) {\n cleanup.push((): Promise<void> => unlink(tmpPath));\n }\n\n const context = await browser.createIncognitoBrowserContext();\n if (!debug) {\n cleanup.push((): Promise<void> => context.close());\n }\n\n const page = await context.newPage();\n if (!debug) {\n cleanup.push((): Promise<void> => page.close());\n }\n\n await page.setViewport({ width: width + 50, height: height + 50 });\n await page.goto(\"file://\" + tmpPath.split(sep).join(posix.sep));\n\n await page.waitForSelector(example.selector, {\n visible: true,\n timeout: example.timeout * 1000,\n });\n\n if (example.delay === \"call\") {\n await page.evaluate(\n \"function fn() { return window.readyToTakeAScreenshot; }\"\n );\n } else {\n await page.waitForTimeout(example.delay * 1000);\n }\n\n const $element = await page.$(example.selector);\n if ($element == null) {\n throw new Error(\n `Element \"${example.selector}\" not found in ${example.path}.`\n );\n }\n\n await $element.evaluate((element: Element): void => {\n element.scrollIntoView();\n });\n\n const screenshot = await $element.screenshot({\n encoding: \"binary\",\n });\n\n if (screenshot == null) {\n throw new Error(`Failed to take screenshot of “${example.paths.page}”`);\n } else if (typeof screenshot === \"string\") {\n // AFAIK this should never happen, it's just a problem with the types\n // always returning Buffer | string even when encoding is set to binary\n // (i.e. buffer).\n throw new Error(\n `Failed to get the binary data of the screenshot of “${example.paths.page}”`\n );\n }\n\n await writeFile(example.paths.screenshot.local, screenshot);\n\n // Return the validity of the generated screenshot.\n return isScreenshotValid(screenshot);\n } catch (error) {\n console.error(error);\n return false;\n } finally {\n for (const callback of cleanup.splice(0).reverse()) {\n try {\n await callback();\n } catch (error) {\n console.error(error);\n }\n }\n }\n}\n","import fs from \"fs\";\nimport { join } from \"path\";\nimport { promisify } from \"util\";\nimport puppeteer from \"puppeteer\";\n\nimport { Example, Examples, ExamplesRoot } from \"../types\";\nimport {\n Renderer,\n Report,\n formatStartStopMs,\n isExample,\n measureStartStopMs,\n} from \"./common\";\nimport { formatHTML } from \"./format\";\nimport { generateJSFiddlePage, generateCodePenPage } from \"./playground\";\nimport { generateScreenshot } from \"./screenshots\";\n\nconst collator = new Intl.Collator(\"US\");\nconst writeFile = promisify(fs.writeFile);\n\nexport type IndexReport = Report;\nexport interface ExampleReport extends Report {\n example: Example;\n}\n\nexport interface Checks {\n fail: number;\n failPaths: string[];\n okay: number;\n okayPaths: string[];\n percentage: number;\n total: number;\n}\n\nexport interface ContentBuilderConfig {\n /** The tree structure with examples in it's leaves. */\n examples: ExamplesRoot;\n /** The directory where built files will be saved. */\n output: string;\n /** How many screenshots to generate at the same time. */\n parallel: number;\n /** The renderer used to generate index files. */\n renderer: Renderer;\n /** A script that will be executed on each page as first. */\n screenshotScript: string;\n /** A title that will be passed to the renderer. */\n title: string;\n}\n\nexport interface ContentBuilderRet {\n checks: Promise<Checks>;\n index: Promise<IndexReport[]>;\n playgrounds: Promise<ExampleReport[]>;\n screenshots: Promise<ExampleReport[]>;\n}\n\nexport class ContentBuilder {\n public constructor(private readonly _config: ContentBuilderConfig) {}\n\n /**\n * Build the files and write them to the disk.\n *\n * @param emit - Which types of files to emit.\n * @param emit.index\n * @param emit.playgrounds\n * @param emit.screenshots\n * @returns A report with check results and the number of written files.\n */\n public build(\n emit: {\n index?: boolean;\n playgrounds?: boolean;\n screenshots?: boolean;\n } = {}\n ): ContentBuilderRet {\n const allExamples = this._processGroup(this._config.examples);\n\n const okay: string[] = [];\n const fail: string[] = [];\n\n console.info(\n `Going to generate ${[\n emit.index ? [\"index files\"] : [],\n emit.playgrounds ? [\"playground openers\"] : [],\n emit.screenshots ? [\"screenshots\"] : [],\n ]\n .flat()\n .join(\", \")} for ${allExamples.length} examples.`\n );\n process.stdout.write(\"\\n\");\n\n const index: ContentBuilderRet[\"index\"] = emit.index\n ? // Generate indexes.\n (async (): ContentBuilderRet[\"index\"] => {\n const getStartStopMs = measureStartStopMs();\n\n const results = await Promise.allSettled(\n this._config.renderer\n .render(\n this._config.examples,\n this._config.output,\n this._config.title,\n collator\n )\n .map(\n async ({ content, filename }): Promise<void> =>\n writeFile(join(this._config.output, filename), content)\n )\n );\n\n return [\n {\n ...getStartStopMs(),\n count: results.length,\n result: results.every(\n ({ status }): boolean => status === \"fulfilled\"\n )\n ? \"fulfilled\"\n : \"rejected\",\n },\n ];\n })()\n : // Skip indexes.\n Promise.resolve([]);\n\n const playgrounds: ContentBuilderRet[\"playgrounds\"] = emit.playgrounds\n ? // Generate playground pages.\n (async (): ContentBuilderRet[\"playgrounds\"] =>\n await Promise.all(\n allExamples.map(async (example): Promise<ExampleReport> => {\n const getStartStopMs = measureStartStopMs();\n\n const results = await Promise.allSettled(\n [\n {\n html: generateJSFiddlePage(example),\n path: example.paths.jsfiddle.local,\n },\n {\n html: generateCodePenPage(example),\n path: example.paths.codepen.local,\n },\n ].map(\n ({ html, path }): Promise<void> =>\n writeFile(path, formatHTML(html))\n )\n );\n\n return {\n ...getStartStopMs(),\n count: results.length,\n example: example,\n result: results.every(\n ({ status }): boolean => status === \"fulfilled\"\n )\n ? \"fulfilled\"\n : \"rejected\",\n };\n })\n ))()\n : // Skip playground pages.\n Promise.resolve([]);\n\n const screenshots: ContentBuilderRet[\"screenshots\"] = emit.screenshots\n ? // Generate screenshots.\n (async (): ContentBuilderRet[\"screenshots\"] => {\n const cleanup: (() => void | Promise<void>)[] = [];\n\n try {\n const debug = /^1|y|yes|true$/i.test(process.env.DEBUG ?? \"\");\n const browser = await puppeteer.launch({\n headless: !debug,\n slowMo: debug ? 100 : undefined,\n });\n if (debug) {\n cleanup.push(async (): Promise<void> => browser.disconnect());\n } else {\n cleanup.push((): Promise<void> => browser.close());\n }\n\n // Generate screenshots.\n // There is quite long delay to ensure the chart is rendered properly\n // so it's much faster to run a lot of them at the same time.\n const todo = allExamples.slice();\n const total = todo.length;\n const reports: ExampleReport[] = [];\n await Promise.allSettled(\n new Array(this._config.parallel)\n .fill(null)\n .map(async (): Promise<void> => {\n let example: Example | undefined;\n while ((example = todo.pop())) {\n const getStartStopMs = measureStartStopMs();\n\n const valid = await generateScreenshot(browser, {\n debug,\n example,\n height: this._config.renderer.screenshot.height,\n screenshotScript: this._config.screenshotScript,\n width: this._config.renderer.screenshot.width,\n });\n\n const report: ExampleReport = {\n ...getStartStopMs(),\n count: 1,\n example,\n result: valid ? \"fulfilled\" : \"rejected\",\n };\n reports.push(report);\n\n if (valid) {\n okay.push(example.path);\n } else {\n fail.push(example.path);\n }\n\n const percentage = (\n Math.floor((reports.length / total) * 100) + \"%\"\n ).padStart(4, \" \");\n const validText = valid ? \"okay\" : \"fail\";\n const msText = formatStartStopMs(report);\n console.info(\n `${percentage} ${validText} ${msText} - ${example.path}`\n );\n }\n })\n );\n\n return reports;\n } finally {\n for (const callback of cleanup.splice(0).reverse()) {\n try {\n await callback();\n } catch (error) {\n console.error(error);\n }\n }\n }\n })()\n : // Skip screenshots.\n Promise.resolve([]);\n\n const checks = (async (): Promise<Checks> => {\n await index;\n await playgrounds;\n await screenshots;\n\n const total = okay.length + fail.length;\n return {\n fail: fail.length,\n failPaths: fail,\n okay: okay.length,\n okayPaths: okay,\n percentage: total === 0 ? 100 : (100 * okay.length) / total,\n total,\n };\n })();\n\n return { checks, index, playgrounds, screenshots };\n }\n\n private _processGroup(examples: Examples): Example[] {\n return Object.keys(examples)\n .sort(collator.compare)\n .flatMap((key): Example[] => {\n const example = examples[key];\n\n if (isExample(example)) {\n return [example];\n } else {\n return this._processGroup(example);\n }\n });\n }\n}\n","import $ from \"cheerio\";\n\nimport indexTemplate from \"./index.template.html\";\nimport styleTemplate from \"./index.template.css\";\nimport { ContentPart, Renderer, isExample } from \"../common\";\nimport { Example, Examples, ExamplesRoot } from \"../../types\";\nimport { formatHTML } from \"../format\";\n\n/**\n * @param example\n */\nfunction generateJSFiddle(example: Example): cheerio.Cheerio {\n return $(\"<a>\")\n .addClass(\"icon jsfiddle\")\n .attr(\"href\", example.paths.jsfiddle.web)\n .attr(\"title\", \"JSFiddle\");\n}\n\n/**\n * @param example\n */\nfunction generateCodePen(example: Example): cheerio.Cheerio {\n return $(\"<a>\")\n .addClass(\"icon codepen\")\n .attr(\"href\", example.paths.codepen.web)\n .attr(\"title\", \"CodePen\");\n}\n\n/**\n * @param examples\n * @param title\n * @param level\n * @param collator\n */\nfunction processGroup(\n examples: Examples,\n title: string,\n level: number,\n collator: Intl.Collator\n): cheerio.Cheerio {\n const heading = $(`<h${Math.max(1, Math.min(6, level))}>`);\n heading.text(title);\n\n const list = $(\"<div>\");\n\n const section = $(\"<div>\");\n section.append(heading, list);\n\n for (const key of Object.keys(examples).sort(collator.compare)) {\n const example = examples[key];\n\n if (isExample(example)) {\n const header = $(\"<div>\").addClass(\"example-header\").append(\n // Playgrounds\n generateJSFiddle(example),\n generateCodePen(example),\n // Title\n $(\"<a>\").attr(\"href\", example.paths.page.web).text(key)\n );\n\n const image = $(\"<a>\")\n .addClass(\"example-image\")\n .attr(\"href\", example.paths.page.web)\n .append(\n $(\"<img>\").attr(\"src\", example.paths.screenshot.web).attr(\"alt\", key)\n );\n\n const item = $(\"<span>\").addClass(\"example-link\").append(header, image);\n\n list.append(item);\n } else {\n section.append(processGroup(example, key, level + 1, collator));\n }\n }\n\n return section;\n}\n\nexport const htmlRenderer: Renderer = {\n render(\n examples: ExamplesRoot,\n _output: string,\n title: string,\n collator: Intl.Collator\n ): ContentPart[] {\n const filename = \"index.html\";\n\n const root = $(\"<div>\");\n root.addClass(\"examples-root\");\n\n for (const key of Object.keys(examples).sort(collator.compare)) {\n root.append(processGroup(examples[key], key, 1, collator));\n }\n\n const page = $.load(indexTemplate);\n page(\"title\").text(title);\n page(\"body\").append(root);\n const content = formatHTML(page.html());\n\n return [\n { content, filename, title },\n {\n content: styleTemplate,\n filename: \"examples.css\",\n title: \"examples.css\",\n },\n ];\n },\n screenshot: {\n width: 400,\n height: 400,\n },\n};\n","import { ContentPart, Renderer, isExample } from \"../common\";\nimport { Examples, ExamplesRoot } from \"../../types\";\nimport { formatMD } from \"../format\";\nimport { relative } from \"path\";\n\n/**\n * @param lines\n */\nfunction linesToContent(lines: string[]): string {\n return formatMD(lines.join(\"\\n\"));\n}\n\n/**\n * @param title\n * @param src\n * @param href\n */\nfunction image(title: string, src: string, href?: string): string {\n return href == null\n ? ``\n : link(href, ``);\n}\n\n/**\n * @param href\n * @param text\n */\nfunction link(href: string, text: string = href): string {\n return `[${text}](${href})`;\n}\n\n/**\n * @param level\n * @param text\n */\nfunction header(level: number, text: string): string {\n return `${\"#\".repeat(level)} ${text}`;\n}\n\n/**\n * @param examples\n * @param output\n * @param title\n * @param collator\n */\nfunction processGroup(\n examples: Examples,\n output: string,\n title: string,\n collator: Intl.Collator\n): ContentPart[] {\n const items: string[] = [];\n const sections: ContentPart[] = [];\n const filenamePart = title.replace(/[^a-zA-Z0-9]/g, \"-\").toLowerCase();\n\n for (const key of Object.keys(examples).sort(collator.compare)) {\n const example = examples[key];\n\n if (isExample(example)) {\n // An example in this group.\n items.push(\n header(2, key),\n \"\",\n image(\n key,\n \"./\" + relative(output, example.paths.screenshot.local),\n example.paths.page.web\n ),\n \"\",\n [\n link(example.paths.page.web, \"Open\"),\n link(example.paths.jsfiddle.web, \"JSFiddle\"),\n link(example.paths.codepen.web, \"CodePen\"),\n ].join(\" | \"),\n \"\"\n );\n } else {\n // A subgroup of examples.\n sections.push(\n ...processGroup(example, output, key, collator).map(\n (contentPart): ContentPart => ({\n ...contentPart,\n filename: filenamePart + \".\" + contentPart.filename,\n })\n )\n );\n }\n }\n\n return [\n {\n content: linesToContent([header(1, title), \"\", ...items]),\n filename: filenamePart + \".md\",\n title,\n },\n ...sections,\n ];\n}\n\nexport const mdRenderer: Renderer = {\n render(\n examples: ExamplesRoot,\n output: string,\n _title: string,\n collator: Intl.Collator\n ): ContentPart[] {\n const sections: ContentPart[] = [];\n\n for (const key of Object.keys(examples).sort(collator.compare)) {\n sections.push(...processGroup(examples[key], output, key, collator));\n }\n\n return [\n {\n content: linesToContent([\n header(1, \"Examples\"),\n \"\",\n ...sections.map(\n ({ filename, title }): string => \"- \" + link(\"./\" + filename, title)\n ),\n ]),\n filename: \"README.md\",\n title: \"Examples\",\n },\n ...sections,\n ];\n },\n screenshot: {\n width: 740,\n height: 250,\n },\n};\n","import yargs from \"yargs\";\n\nconst y = yargs\n .strict(true)\n .usage(\"generate-example-index [options]\")\n .hide(\"version\")\n .config()\n .help()\n\n .option(\"assets-local-directory\", {\n default: \"./examples/thumbnails\",\n describe: \"The directory where assets will be written to.\",\n type: \"string\",\n })\n .option(\"assets-web-directory\", {\n default: \"./thumbnails\",\n describe: \"The directory where assets will be loaded from on the web.\",\n type: \"string\",\n })\n .option(\"base-url\", {\n demand: true,\n describe:\n \"The base URL for relative imports. Web URLs starting with slash will be relative to this URL.\",\n type: \"string\",\n })\n .option(\"examples-local-directory\", {\n default: \"./examples/thumbnails\",\n describe: \"The directory where examples will be loaded from locally.\",\n type: \"string\",\n })\n .option(\"examples-web-directory\", {\n default: \"./thumbnails\",\n describe: \"The directory where examples will be loaded from on the web.\",\n type: \"string\",\n })\n .option(\"output-directory\", {\n default: \"./examples\",\n describe: \"The directory where generated files will be emitted.\",\n type: \"string\",\n })\n .option(\"pages-local-directory\", {\n default: \"./examples/pages\",\n describe: \"The directory where pages will be written to.\",\n type: \"string\",\n })\n .option(\"pages-web-directory\", {\n default: \"./pages\",\n describe: \"The directory where pages will be loaded from on the web.\",\n type: \"string\",\n })\n\n .option(\"index\", {\n default: false,\n describe: \"Generate index files.\",\n type: \"boolean\",\n })\n .option(\"lint\", {\n default: false,\n describe: \"Lint examples.\",\n type: \"boolean\",\n })\n .option(\"playgrounds\", {\n default: false,\n describe: \"Generate playground pages.\",\n type: \"boolean\",\n })\n .option(\"screenshots\", {\n default: false,\n describe: \"Render screenshot thumbnails.\",\n type: \"boolean\",\n })\n\n .option(\"container-id\", {\n default: \"vis-container\",\n describe: \"The id of the elements where Vis will put canvas.\",\n type: \"string\",\n })\n .option(\"format\", {\n default: \"html\",\n describe: \"Whether HTML or Markdown should be generated.\",\n type: \"string\",\n })\n .option(\"parallel\", {\n default: 6,\n describe:\n \"Generate n screenshots at the same time (there is quite high delay to make sure the graph is rendered before the screenshot is taken so the CPU utilization is generally quite low).\",\n type: \"number\",\n })\n .option(\"screenshot-script\", {\n describe:\n \"The path of JavaScript file that will be executed before taking a screenshot (and before any other JavaScript in the page).\",\n type: \"string\",\n })\n .option(\"title\", {\n default: \"Examples\",\n describe: \"The title of the examples index.\",\n type: \"string\",\n })\n .option(\"verify\", {\n default: 100,\n describe:\n \"Attempt to verify that the examples were generated correctly. The value is a percentage of checks that have to pass for the run to be considered success.\",\n type: \"number\",\n });\n\n/**\n *\n */\nexport function parseArguments(): ReturnType<typeof y[\"parseSync\"]> {\n return y.parserConfiguration({ \"camel-case-expansion\": false }).parseSync();\n}\n","import { Example, ExamplePath, ExamplePaths } from \"./types\";\nimport { createHash } from \"crypto\";\nimport { relative, resolve } from \"path\";\n\n/**\n * @param urls\n */\nexport function joinURLs(...urls: string[]): string {\n return urls\n .map((url): string =>\n // Strip the parts of leading and trailing slashes if they have them.\n url.replace(/^\\/?(.*?)\\/?$/, \"$1\")\n )\n .join(\"/\");\n}\n\n/**\n * @param baseURL\n * @param url\n */\nexport function fixAbsoluteInputURL(baseURL: string, url: string): string {\n return url.startsWith(\"/\")\n ? // Relative to the base URL. Base URL starts and URL ends with a slash.\n baseURL + url.slice(1)\n : // Relative to some other point or absolute already.\n url;\n}\n\n/**\n * @param config\n * @param exampleAbsolutePath\n */\nexport function generatePaths(\n config: ExamplePaths,\n exampleAbsolutePath: Example[\"path\"]\n): ExamplePaths {\n const exampleRelativePath = relative(config.page.local, exampleAbsolutePath);\n\n // It's important that the hash is created from the relative path so that it\n // is the same on all computers.\n const hash = createHash(\"sha256\").update(exampleRelativePath).digest(\"hex\");\n\n return {\n codepen: generateLocalWebPair(\n config.codepen.local,\n config.codepen.web,\n hash,\n \"codepen\",\n \"html\"\n ),\n jsfiddle: generateLocalWebPair(\n config.jsfiddle.local,\n config.jsfiddle.web,\n hash,\n \"jsfiddle\",\n \"html\"\n ),\n page: {\n local: exampleAbsolutePath,\n web: joinURLs(config.page.web, exampleRelativePath),\n },\n screenshot: generateLocalWebPair(\n config.screenshot.local,\n config.screenshot.web,\n hash,\n \"screenshot\",\n \"png\"\n ),\n };\n}\n\n/**\n * @param localRoot\n * @param webRoot\n * @param hash\n * @param prefix\n * @param extension\n */\nfunction generateLocalWebPair(\n localRoot: string,\n webRoot: string,\n hash: string,\n prefix: string,\n extension: string\n): ExamplePath {\n const filename = `${prefix}.${hash}.${extension}`;\n\n return {\n local: resolve(localRoot, filename),\n web: joinURLs(webRoot, filename),\n };\n}\n","import $ from \"cheerio\";\nimport fs from \"fs\";\nimport util from \"util\";\nimport yargs from \"yargs\";\nimport { join } from \"path\";\nimport { resolve } from \"path\";\n\nimport {\n ContentBuilder,\n generatePlaygroundData,\n htmlRenderer,\n mdRenderer,\n reduceReports,\n formatStartStopMs,\n} from \"./content-builder\";\nimport { Example, ExamplesRoot, ExamplePaths } from \"./types\";\nimport { parseArguments } from \"./cli\";\nimport { generatePaths, fixAbsoluteInputURL } from \"./paths\";\n\nconst globby = import(\"globby\");\n\nconst argv = parseArguments();\n\n// Log the parsed configuration for debugging purposes.\nconsole.info(\"Configuration: \", JSON.stringify(argv, null, 2));\nprocess.stdout.write(\"\\n\");\n\n// Pageres uses quite a lot of listeners when invoked multiple times in\n// parallel. This ensures there are no warnings about it.\nprocess.setMaxListeners(40);\n\n// Resolve paths relative to PWD.\nconst screenshotScriptPath =\n typeof argv[\"screenshot-script\"] === \"string\"\n ? resolve(argv[\"screenshot-script\"])\n : undefined;\n\nconst mkdir = util.promisify(fs.mkdir);\nconst readFile = util.promisify(fs.readFile);\n\nfunction getMeta<T>(page: cheerio.Root, name: string, fallback: T): T;\n/**\n * Extract and coerce a value from meta tag.\n *\n * @param page - The page to be queried.\n * @param name - The name of the meta tag.\n * @param fallback - The value to be used if the meta tag is not present.\n * @returns The value “smartly” coerced or the fallback if conversion isn't\n * possible or the value is not present in the page.\n */\nfunction getMeta(\n page: cheerio.Root,\n name: string,\n fallback: number | string\n): number | string {\n const content = page(`meta[name=\"${name}\"]`).attr(\"content\");\n\n if (content == null) {\n // No meta of this name exists in the page, use the fallback.\n return fallback;\n } else if (!Number.isNaN(+content)) {\n // Number.\n return +content;\n } else if (typeof content === \"string\") {\n // String.\n return content;\n } else {\n // Something doesn't match, use the fallback.\n return fallback;\n }\n}\n\n/**\n * Test if the example conforms to the conventions.\n *\n * @param path - The path to the example (used for identification in logs).\n * @param page - The HTML to be linted.\n * @returns True if everything's okay, false otherwise.\n */\nfunction lintExample(path: string, page: cheerio.Root): boolean {\n let valid = true;\n const msgs = [`${path}:`];\n\n if (page(\"#title\").length !== 1) {\n msgs.push(\"Missing #title element in the body.\");\n valid = false;\n }\n\n if (page(\"#title > *\").length < 2) {\n msgs.push(\n \"There have to be at least two headings (group and example name).\"\n );\n valid = false;\n }\n\n const headTitle = page(\"head > title\").text().trim();\n const bodyTitle = page(\"#title > *\")\n .map((_i, elem): string => $(elem).text())\n .get()\n .join(\" | \")\n .trim();\n if (headTitle !== bodyTitle) {\n msgs.push(\n \"The title in the head doesn't match the title in the body.\",\n ` head: ${headTitle}`,\n ` body: ${bodyTitle}`\n );\n valid = false;\n }\n\n if (msgs.length > 1) {\n console.warn(\"\\n\" + msgs.join(\"\\n \"));\n }\n\n return valid;\n}\n\n(async (): Promise<void> => {\n let code = 0;\n\n if (!argv.index && !argv.screenshots && !argv.lint) {\n yargs.parse(\"--help\");\n return;\n }\n\n // Ensure that all paths exist.\n await Promise.all(\n [\n argv[\"assets-local-directory\"],\n argv[\"examples-local-directory\"],\n argv[\"output-directory\"],\n argv[\"pages-local-directory\"],\n ].map(async (path): Promise<void> => {\n await mkdir(path, { recursive: true });\n })\n );\n\n const baseURL = argv[\"base-url\"];\n if (!baseURL.endsWith(\"/\")) {\n throw new Error(\"Base URL (`base-url`) has to end with a slash (`/`).\");\n }\n\n // Paths.\n const pathsConfig: ExamplePaths = {\n codepen: {\n local: argv[\"pages-local-directory\"],\n web: fixAbsoluteInputURL(baseURL, argv[\"pages-web-directory\"]),\n },\n jsfiddle: {\n local: argv[\"pages-local-directory\"],\n web: fixAbsoluteInputURL(baseURL, argv[\"pages-web-directory\"]),\n },\n page: {\n local: argv[\"examples-local-directory\"],\n web: fixAbsoluteInputURL(baseURL, argv[\"examples-web-directory\"]),\n },\n screenshot: {\n local: argv[\"assets-local-directory\"],\n web: fixAbsoluteInputURL(baseURL, argv[\"assets-web-directory\"]),\n },\n };\n\n const examples: ExamplesRoot = {};\n const selector = \"#\" + argv[\"container-id\"];\n const stats = { examples: 0 };\n const skipped: string[] = [];\n\n await Promise.all(\n (\n await (await globby).default(join(pathsConfig.page.local, \"**/*.html\"))\n ).map(async (pagePath): Promise<any> => {\n const html = await readFile(pagePath, \"utf-8\");\n const $page = $.load(html);\n const pageDelay = getMeta<number | \"call\">(\n $page,\n \"example-screenshot-delay\",\n 6\n );\n const pageTimeout = getMeta<number>(\n $page,\n \"example-screenshot-timeout\",\n 60\n );\n const pageSelector = getMeta<string>(\n $page,\n \"example-screenshot-selector\",\n selector\n );\n\n // Is this an examples?\n if ($page(pageSelector).length === 0) {\n skipped.push(pagePath);\n return;\n }\n\n // Lint if requested.\n if (argv.lint) {\n lintExample(pagePath, $page);\n }\n\n // Body titles.\n let titles = $page(\"#title > *\")\n .get()\n .map((elem): string => $page(elem).text().trim());\n\n // Head title fallback.\n if (titles.length < 2) {\n titles = $page(\"head > title\")\n .text()\n .split(\"|\")\n .map((title): string => title.trim());\n }\n\n // File path fallback.\n if (titles.length < 2) {\n titles = pagePath.split(\"/\");\n }\n\n // Just ignore it.\n if (titles.length < 2) {\n console.error(\"Title resolution failed. Skipping.\");\n return;\n }\n\n // Put this example into the structure while creating any missing groups in the process.\n titles.reduce((acc, title, i, arr): any => {\n while (acc[title] != null && acc[title].path != null) {\n console.error(\"The following group already exists: \", titles);\n title += \"!\";\n }\n\n if (i === arr.length - 1) {\n if (acc[title] != null) {\n console.error(\n \"The following example has the same name as an already existing group: \",\n titles\n );\n return null;\n } else {\n const example: Example = {\n $: $page,\n delay: pageDelay,\n html: html,\n path: pagePath,\n paths: generatePaths(pathsConfig, pagePath),\n playground: generatePlaygroundData(baseURL, $page, pagePath),\n selector: pageSelector,\n timeout: pageTimeout,\n titles: titles,\n };\n\n acc[title] = example;\n\n ++stats.examples;\n }\n } else {\n return (acc[title] = acc[title] || {});\n }\n }, examples as any);\n })\n );\n\n if (skipped.length) {\n process.stdout.write(\"\\n\");\n console.info(\n [\n \"The following files don't look like examples (there is nothing to take a screenshot of):\",\n ...skipped.sort(),\n ].join(\"\\n \")\n );\n }\n\n if (stats.examples === 0) {\n console.info(\"No usable example files were found.\");\n } else if (argv.index || argv.playgrounds || argv.screenshots) {\n process.stdout.write(\"\\n\");\n\n const screenshotScript =\n screenshotScriptPath != null\n ? (await readFile(screenshotScriptPath, \"utf-8\")) || \"\"\n : \"\";\n\n const builtData = new ContentBuilder({\n examples,\n output: resolve(argv[\"output-directory\"]),\n parallel: argv.parallel,\n renderer: argv.format === \"md\" ? mdRenderer : htmlRenderer,\n screenshotScript,\n title: argv.title,\n }).build({\n index: argv.index,\n playgrounds: argv.playgrounds,\n screenshots: argv.screenshots,\n });\n\n // Create and write the page.\n if (argv.index) {\n const cummulativeReport = reduceReports(await builtData.index);\n console.info(\n `Index with ${stats.examples} examples written (${\n cummulativeReport.count\n } files in ${formatStartStopMs(cummulativeReport)}).`\n );\n }\n\n // Create and write the playgrounds.\n if (argv.index) {\n const cummulativeReport = reduceReports(await builtData.playgrounds);\n console.info(\n `Playground opener files for ${stats.examples} examples written (${\n cummulativeReport.count\n } files in ${formatStartStopMs(cummulativeReport)}).`\n );\n }\n\n // Create and write the screenshots.\n if (argv.screenshots) {\n const cummulativeReport = reduceReports(await builtData.screenshots);\n console.info(\n `Screenshot files for ${stats.examples} written (${\n cummulativeReport.count\n } files in ${formatStartStopMs(cummulativeReport)}).`\n );\n }\n\n // Verify the result.\n const checks = await builtData.checks;\n process.stdout.write(\"\\n\");\n if (checks.fail === 0) {\n console.info(\n `Verification: ${checks.okay} passed (${Math.round(\n checks.percentage\n )} %) passed.`\n );\n } else {\n if (checks.percentage >= argv.verify) {\n console.info(\n `Verification: ${checks.okay} passed (${Math.round(\n checks.percentage\n )} %), ${checks.fail} failed.\\n` +\n \"This is within the threshold set by --verify.\"\n );\n } else {\n console.error(\n `Verification: Only ${checks.okay} passed (${Math.round(\n checks.percentage\n )} %), ${checks.fail} failed.\\n` +\n \"This is not within the threshold set by --verify. Exiting with an error.\"\n );\n code = 3;\n }\n\n checks.failPaths.forEach((path): void => {\n console.error(path);\n });\n }\n }\n\n process.exitCode = code;\n})().catch((error): void => {\n process.exitCode = 1;\n console.error(error);\n});\n"],"names":["isExample","value","_typeof","path","measureStartStopMs","start","_Date$now","stop","reduceReports","reports","fallback","count","result","_reduceInstanceProperty","acc","val","_everyInstanceProperty","Math","min","Number","POSITIVE_INFINITY","max","NEGATIVE_INFINITY","formatStartStopMs","round","toFixed","formatCSS","css","prettier","format","filepath","formatHTML","html","formatJS","js","formatMD","md","generateCodePenPage","example","data","playground","title","titles","join","page","$","load","template","text","form","_findInstanceProperty","attr","_JSON$stringify","code","css_external","resources","js_external","generatePlaygroundData","baseURL","example$","examplePath","eventListeners","_mapInstanceProperty","get","attribs","_slicedToArray","name","test","_sliceInstanceProperty","_i","elem","children","$html","remove","fixPath","rawPath","relative","process","cwd","resolve","dirname","src","href","generateJSFiddlePage","_concatInstanceProperty","_toConsumableArray","unlink","promisify","fs","writeFile","isScreenshotValid","_asyncToGenerator","_regeneratorRuntime","screenshot","Jimp","read","image","firstPixel","getPixelColor","x","getWidth","y","getHeight","generateScreenshot","browser","config","debug","height","screenshotScript","width","cleanup","tmpPath","paths","local","basename","screenshotPage","prepend","commonScreenshotScript","selector","push","createIncognitoBrowserContext","context","close","newPage","setViewport","goto","split","sep","posix","waitForSelector","visible","timeout","delay","evaluate","waitForTimeout","$element","Error","element","scrollIntoView","encoding","console","error","_createForOfIteratorHelper","_reverseInstanceProperty","callback","collator","Intl","Collator","ContentBuilder","_config","_classCallCheck","_defineProperty","_createClass","emit","allExamples","_processGroup","examples","okay","fail","info","_flatInstanceProperty","index","playgrounds","screenshots","length","stdout","write","getStartStopMs","_Promise","allSettled","renderer","render","output","content","filename","results","_objectSpread","status","all","jsfiddle","codepen","env","DEBUG","puppeteer","launch","headless","slowMo","undefined","disconnect","todo","total","_fillInstanceProperty","Array","parallel","pop","valid","report","percentage","_padStartInstanceProperty","floor","validText","msText","checks","failPaths","okayPaths","_flatMapInstanceProperty","_sortInstanceProperty","_Object$keys","compare","key","generateJSFiddle","addClass","web","generateCodePen","processGroup","level","heading","list","section","append","header","item","htmlRenderer","_output","root","indexTemplate","styleTemplate","linesToContent","lines","link","_repeatInstanceProperty","items","sections","filenamePart","replace","toLowerCase","contentPart","mdRenderer","_title","yargs","strict","usage","hide","help","option","default","describe","type","demand","parseArguments","parserConfiguration","parseSync","joinURLs","urls","url","fixAbsoluteInputURL","_startsWithInstanceProperty","generatePaths","exampleAbsolutePath","exampleRelativePath","hash","createHash","update","digest","generateLocalWebPair","localRoot","webRoot","prefix","extension","globby","argv","setMaxListeners","screenshotScriptPath","mkdir","util","readFile","getMeta","_Number$isNaN","lintExample","msgs","headTitle","_trimInstanceProperty","bodyTitle","warn","lint","parse","recursive","_endsWithInstanceProperty","pathsConfig","stats","skipped","pagePath","$page","pageDelay","pageTimeout","pageSelector","i","arr","builtData","build","cummulativeReport","verify","_forEachInstanceProperty","exitCode","catch"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generate-examples-index.js","sources":["../src/generate-examples-index/content-builder/common.ts","../src/generate-examples-index/content-builder/format.ts","../src/generate-examples-index/content-builder/playground/codepen.ts","../src/generate-examples-index/content-builder/playground/data.ts","../src/generate-examples-index/content-builder/playground/jsfiddle.ts","../src/generate-examples-index/content-builder/screenshots/index.ts","../src/generate-examples-index/content-builder/builder.ts","../src/generate-examples-index/content-builder/html/index.ts","../src/generate-examples-index/content-builder/md/index.ts","../src/generate-examples-index/cli.ts","../src/generate-examples-index/paths.ts","../src/generate-examples-index/index.ts"],"sourcesContent":["import { Example, Examples, ExamplesRoot } from \"../types\";\n\nexport interface ContentPart {\n content: string;\n filename: string;\n title: string;\n}\n\nexport interface Renderer {\n render(\n examples: ExamplesRoot,\n output: string,\n title: string,\n collator: Intl.Collator\n ): ContentPart[];\n screenshot: {\n width: number;\n height: number;\n };\n}\n\n/**\n * @param value\n */\nexport function isExample(\n value: Example | Examples | ExamplesRoot\n): value is Example {\n return (\n typeof value === \"object\" &&\n value !== null &&\n typeof value.path === \"string\"\n );\n}\n\nexport interface StartStopMs {\n start: number;\n stop: number;\n}\n/**\n *\n */\nexport function measureStartStopMs(): () => StartStopMs {\n const start = Date.now();\n return (): StartStopMs => {\n const stop = Date.now();\n\n return { start, stop };\n };\n}\n\nexport interface Report {\n count: number;\n result: \"fulfilled\" | \"rejected\";\n start: number;\n stop: number;\n}\n/**\n * @param reports\n * @param fallback\n */\nexport function reduceReports(\n reports: readonly Report[],\n fallback: Report = {\n count: 0,\n result: \"fulfilled\",\n start: -1,\n stop: -1,\n }\n): Report {\n return (\n reports.reduce<Report | null>((acc, val): Report | null => {\n return {\n count: (acc?.count ?? 0) + (val?.count ?? 0),\n result: [acc?.result ?? \"fulfilled\", val.result].every(\n (result): boolean => result === \"fulfilled\"\n )\n ? \"fulfilled\"\n : \"rejected\",\n start: Math.min(acc?.start ?? Number.POSITIVE_INFINITY, val.start),\n stop: Math.max(acc?.stop ?? Number.NEGATIVE_INFINITY, val.stop),\n };\n }, null) ?? fallback\n );\n}\n\n/**\n * @param ms\n */\nexport function formatMs(ms: number): string {\n return `${(Math.round(ms / 100) / 10).toFixed(1)}s`;\n}\n/**\n * @param root0\n * @param root0.start\n * @param root0.stop\n */\nexport function formatStartStopMs({ start, stop }: StartStopMs): string {\n return `${(Math.round((stop - start) / 100) / 10).toFixed(1)}s`;\n}\n","import prettier from \"prettier\";\n\nexport const formatCSS = (css: string | null | undefined): string =>\n prettier.format(css || \"\", { filepath: \"style.css\" });\nexport const formatHTML = (html: string | null | undefined): string =>\n prettier.format(html || \"\", { filepath: \"index.html\" });\nexport const formatJS = (js: string | null | undefined): string =>\n prettier.format(js || \"\", { filepath: \"script.js\" });\nexport const formatMD = (md: string | null | undefined): string =>\n prettier.format(md || \"\", { filepath: \"README.md\" });\n","import $ from \"cheerio\";\n\nimport template from \"./codepen.template.html\";\nimport { Example } from \"../../types\";\n\n/**\n * @param example\n */\nexport function generateCodePenPage(example: Example): string {\n const data = example.playground;\n const title = example.titles.join(\" | \");\n\n const page = $.load(template);\n page(\"title\").text(title);\n const form = page(\"#form\");\n\n form.find('input[name=\"data\"]').attr(\n \"value\",\n JSON.stringify({\n css: data.code.css,\n css_external: data.resources.css.join(\";\"),\n html: data.code.html,\n js: data.code.js,\n js_external: data.resources.js.join(\";\"),\n title: example.titles.join(\" | \"),\n })\n );\n\n return page.html();\n}\n","import $ from \"cheerio\";\nimport { dirname, relative, resolve } from \"path\";\n\nimport { Example, PlaygroundData } from \"../../types\";\nimport { formatCSS, formatHTML, formatJS } from \"../format\";\n\n/**\n * @param baseURL\n * @param example$\n * @param examplePath\n */\nexport function generatePlaygroundData(\n baseURL: string,\n example$: Example[\"$\"],\n examplePath: Example[\"path\"]\n): PlaygroundData {\n // JavaScript\n const eventListeners = Object.entries(example$(\"body\").get(0).attribs)\n .filter(([name]): boolean => /^on/.test(name))\n .map(([name, value]): [string, string] => [name.slice(2), `${value}`])\n .map(\n ([name, value]): string =>\n `window.addEventListener(\"${name}\", () => { ${value} });`\n )\n .join(\"\\n\");\n const js = formatJS(\n example$(\"script\")\n .map((_i, elem) => (elem as cheerio.TagElement).children[0])\n .get()\n .map((elem): string => elem.data)\n .join(\"\") +\n \"\\n\\n;\" +\n eventListeners\n );\n\n // Cascading Style Sheets\n const css = formatCSS(\n example$(\"style\")\n .map((_i, elem) => (elem as cheerio.TagElement).children[0])\n .get()\n .map((elem): string => elem.data)\n .join(\"\")\n );\n\n // Hypertext Markup Language\n const $html = $.load(example$(\"body\").html() || \"\");\n $html(\"script\").remove();\n\n const html = formatHTML($html(\"body\").html());\n\n // Resources\n const fixPath = (rawPath: string): string =>\n /^https?:\\/\\//.test(rawPath)\n ? // World wide web absolute.\n rawPath\n : /^\\//.test(rawPath)\n ? // Domain absolute.\n baseURL + rawPath.slice(1)\n : //Relative.\n baseURL +\n relative(process.cwd(), resolve(dirname(examplePath), rawPath));\n\n const resources = {\n js: example$(\"script\")\n .map((_i, elem): undefined | string => $.load(elem)(\"script\").attr(\"src\"))\n .get()\n .filter((src): src is string => typeof src === \"string\")\n .map(fixPath),\n css: example$(\"link[rel='stylesheet']\")\n .map((_i, elem): undefined | string =>\n $.load(elem)(\"script\").attr(\"href\")\n )\n .get()\n .filter((href): href is string => typeof href === \"string\")\n .map(fixPath),\n };\n\n return {\n code: {\n css,\n html,\n js,\n },\n resources,\n };\n}\n","import $ from \"cheerio\";\n\nimport template from \"./jsfiddle.template.html\";\nimport { Example } from \"../../types\";\n\n/**\n * @param example\n */\nexport function generateJSFiddlePage(example: Example): string {\n const data = example.playground;\n const title = example.titles.join(\" | \");\n const resources = [...data.resources.css, ...data.resources.js].join(\",\");\n\n const page = $.load(template);\n page(\"title\").text(title);\n const form = page(\"#form\");\n\n // Playground data.\n form.find('input[name=\"css\"]').attr(\"value\", data.code.css);\n form.find('input[name=\"html\"]').attr(\"value\", data.code.html);\n form.find('input[name=\"js\"]').attr(\"value\", data.code.js);\n form.find('input[name=\"resources\"]').attr(\"value\", resources);\n form.find('input[name=\"title\"]').attr(\"value\", title);\n\n // Don't run JS before the DOM is ready.\n form.find('input[name=\"wrap\"]').attr(\"value\", \"b\");\n\n return page.html();\n}\n","import $ from \"cheerio\";\nimport Jimp from \"jimp\";\nimport { Browser } from \"puppeteer\";\nimport commonScreenshotScript from \"./screenshot-script.js.txt\";\nimport fs from \"fs\";\nimport { basename, dirname, posix, resolve, sep } from \"path\";\nimport { promisify } from \"util\";\n\nimport { Example } from \"../../types\";\nimport { formatHTML } from \"../format\";\n\nconst unlink = promisify(fs.unlink);\nconst writeFile = promisify(fs.writeFile);\n\n/**\n * Check if the screenshot is valid. At the moment this simply considers\n * everything except for solid color images as valid. This works pretty well\n * though may yield some false positives.\n *\n * @param screenshot - The binary data of the screenshot.\n * @returns True for valid and false for invalid.\n */\nasync function isScreenshotValid(screenshot: Buffer): Promise<boolean> {\n const image = await Jimp.read(screenshot);\n const firstPixel = image.getPixelColor(0, 0);\n\n for (let x = 0; x < image.getWidth(); ++x) {\n for (let y = 0; y < image.getHeight(); ++y) {\n if (firstPixel !== image.getPixelColor(x, y)) {\n return true;\n }\n }\n }\n\n return false;\n}\n\nexport interface GenerateScreenshotConfig {\n /**\n * Leave the contexts and tabs open for inspection, also don't delete the\n * temporary pages.\n */\n debug: boolean;\n /** The example for which the screenshot will be generated. */\n example: Example;\n /** Height of the captured screenshot. */\n height: number;\n /** A script to be executed as the first thing on the page. */\n screenshotScript: string;\n /** Width of the captured screenshot. */\n width: number;\n}\n\n/**\n * Capture an element on the example's page and save the screenshot to the\n * disk as a PNG file.\n *\n * @param browser - Puppeteer's browser instance.\n * @param config - See the type's docs for detail.\n * @returns Whether or not the screenshot passed validation check.\n */\nexport async function generateScreenshot(\n browser: Browser,\n config: GenerateScreenshotConfig\n): Promise<boolean> {\n const { debug, example, height, screenshotScript, width } = config;\n\n const cleanup: (() => void | Promise<void>)[] = [];\n\n try {\n // Prepare the page. It has to be written to the disk so that files with\n // relative URLs can be loaded.\n const tmpPath = resolve(\n dirname(example.paths.page.local),\n \".tmp.example.screenshot.\" + basename(example.paths.page.local)\n );\n const screenshotPage = $.load(example.html);\n screenshotPage(\"head\").prepend(\n $.load([])(\"<script>\")\n .attr(\"type\", \"text/javascript\")\n .text(`window.DEBUG = ${true};`),\n $.load([])(\"<script>\")\n .attr(\"type\", \"text/javascript\")\n .text(commonScreenshotScript),\n $.load([])(\"<script>\")\n .attr(\"type\", \"text/javascript\")\n .text(screenshotScript),\n $.load([])(\"<style>\")\n .attr(\"type\", \"text/css\")\n .text(\n [\n `${example.selector} {`,\n \" border: none !important;\",\n \"\",\n ` min-width: ${width}px !important;`,\n ` min-height: ${height}px !important;`,\n ` width: ${width}px !important;`,\n ` height: ${height}px !important;`,\n ` max-width: ${width}px !important;`,\n ` max-height: ${height}px !important;`,\n \"}\",\n ].join(\"\\n\")\n )\n );\n await writeFile(tmpPath, formatHTML(screenshotPage.html()));\n if (!debug) {\n cleanup.push((): Promise<void> => unlink(tmpPath));\n }\n\n const context = await browser.createIncognitoBrowserContext();\n if (!debug) {\n cleanup.push((): Promise<void> => context.close());\n }\n\n const page = await context.newPage();\n if (!debug) {\n cleanup.push((): Promise<void> => page.close());\n }\n\n await page.setViewport({ width: width + 50, height: height + 50 });\n await page.goto(\"file://\" + tmpPath.split(sep).join(posix.sep));\n\n await page.waitForSelector(example.selector, {\n visible: true,\n timeout: example.timeout * 1000,\n });\n\n if (example.delay === \"call\") {\n await page.evaluate(\n \"function fn() { return window.readyToTakeAScreenshot; }\"\n );\n } else {\n await page.waitForTimeout(example.delay * 1000);\n }\n\n const $element = await page.$(example.selector);\n if ($element == null) {\n throw new Error(\n `Element \"${example.selector}\" not found in ${example.path}.`\n );\n }\n\n await $element.evaluate((element: Element): void => {\n element.scrollIntoView();\n });\n\n const screenshot = await $element.screenshot({\n encoding: \"binary\",\n });\n\n if (screenshot == null) {\n throw new Error(`Failed to take screenshot of “${example.paths.page}”`);\n } else if (typeof screenshot === \"string\") {\n // AFAIK this should never happen, it's just a problem with the types\n // always returning Buffer | string even when encoding is set to binary\n // (i.e. buffer).\n throw new Error(\n `Failed to get the binary data of the screenshot of “${example.paths.page}”`\n );\n }\n\n await writeFile(example.paths.screenshot.local, screenshot);\n\n // Return the validity of the generated screenshot.\n return isScreenshotValid(screenshot);\n } catch (error) {\n console.error(error);\n return false;\n } finally {\n for (const callback of cleanup.splice(0).reverse()) {\n try {\n await callback();\n } catch (error) {\n console.error(error);\n }\n }\n }\n}\n","import fs from \"fs\";\nimport { join } from \"path\";\nimport { promisify } from \"util\";\nimport puppeteer from \"puppeteer\";\n\nimport { Example, Examples, ExamplesRoot } from \"../types\";\nimport {\n Renderer,\n Report,\n formatStartStopMs,\n isExample,\n measureStartStopMs,\n} from \"./common\";\nimport { formatHTML } from \"./format\";\nimport { generateJSFiddlePage, generateCodePenPage } from \"./playground\";\nimport { generateScreenshot } from \"./screenshots\";\n\nconst collator = new Intl.Collator(\"US\");\nconst writeFile = promisify(fs.writeFile);\n\nexport type IndexReport = Report;\nexport interface ExampleReport extends Report {\n example: Example;\n}\n\nexport interface Checks {\n fail: number;\n failPaths: string[];\n okay: number;\n okayPaths: string[];\n percentage: number;\n total: number;\n}\n\nexport interface ContentBuilderConfig {\n /** The tree structure with examples in it's leaves. */\n examples: ExamplesRoot;\n /** The directory where built files will be saved. */\n output: string;\n /** How many screenshots to generate at the same time. */\n parallel: number;\n /** The renderer used to generate index files. */\n renderer: Renderer;\n /** A script that will be executed on each page as first. */\n screenshotScript: string;\n /** A title that will be passed to the renderer. */\n title: string;\n}\n\nexport interface ContentBuilderRet {\n checks: Promise<Checks>;\n index: Promise<IndexReport[]>;\n playgrounds: Promise<ExampleReport[]>;\n screenshots: Promise<ExampleReport[]>;\n}\n\nexport class ContentBuilder {\n public constructor(private readonly _config: ContentBuilderConfig) {}\n\n /**\n * Build the files and write them to the disk.\n *\n * @param emit - Which types of files to emit.\n * @param emit.index\n * @param emit.playgrounds\n * @param emit.screenshots\n * @returns A report with check results and the number of written files.\n */\n public build(\n emit: {\n index?: boolean;\n playgrounds?: boolean;\n screenshots?: boolean;\n } = {}\n ): ContentBuilderRet {\n const allExamples = this._processGroup(this._config.examples);\n\n const okay: string[] = [];\n const fail: string[] = [];\n\n console.info(\n `Going to generate ${[\n emit.index ? [\"index files\"] : [],\n emit.playgrounds ? [\"playground openers\"] : [],\n emit.screenshots ? [\"screenshots\"] : [],\n ]\n .flat()\n .join(\", \")} for ${allExamples.length} examples.`\n );\n process.stdout.write(\"\\n\");\n\n const index: ContentBuilderRet[\"index\"] = emit.index\n ? // Generate indexes.\n (async (): ContentBuilderRet[\"index\"] => {\n const getStartStopMs = measureStartStopMs();\n\n const results = await Promise.allSettled(\n this._config.renderer\n .render(\n this._config.examples,\n this._config.output,\n this._config.title,\n collator\n )\n .map(\n async ({ content, filename }): Promise<void> =>\n writeFile(join(this._config.output, filename), content)\n )\n );\n\n return [\n {\n ...getStartStopMs(),\n count: results.length,\n result: results.every(\n ({ status }): boolean => status === \"fulfilled\"\n )\n ? \"fulfilled\"\n : \"rejected\",\n },\n ];\n })()\n : // Skip indexes.\n Promise.resolve([]);\n\n const playgrounds: ContentBuilderRet[\"playgrounds\"] = emit.playgrounds\n ? // Generate playground pages.\n (async (): ContentBuilderRet[\"playgrounds\"] =>\n await Promise.all(\n allExamples.map(async (example): Promise<ExampleReport> => {\n const getStartStopMs = measureStartStopMs();\n\n const results = await Promise.allSettled(\n [\n {\n html: generateJSFiddlePage(example),\n path: example.paths.jsfiddle.local,\n },\n {\n html: generateCodePenPage(example),\n path: example.paths.codepen.local,\n },\n ].map(\n ({ html, path }): Promise<void> =>\n writeFile(path, formatHTML(html))\n )\n );\n\n return {\n ...getStartStopMs(),\n count: results.length,\n example: example,\n result: results.every(\n ({ status }): boolean => status === \"fulfilled\"\n )\n ? \"fulfilled\"\n : \"rejected\",\n };\n })\n ))()\n : // Skip playground pages.\n Promise.resolve([]);\n\n const screenshots: ContentBuilderRet[\"screenshots\"] = emit.screenshots\n ? // Generate screenshots.\n (async (): ContentBuilderRet[\"screenshots\"] => {\n const cleanup: (() => void | Promise<void>)[] = [];\n\n try {\n const debug = /^1|y|yes|true$/i.test(process.env.DEBUG ?? \"\");\n const browser = await puppeteer.launch({\n headless: !debug,\n slowMo: debug ? 100 : undefined,\n });\n if (debug) {\n cleanup.push(async (): Promise<void> => browser.disconnect());\n } else {\n cleanup.push((): Promise<void> => browser.close());\n }\n\n // Generate screenshots.\n // There is quite long delay to ensure the chart is rendered properly\n // so it's much faster to run a lot of them at the same time.\n const todo = allExamples.slice();\n const total = todo.length;\n const reports: ExampleReport[] = [];\n await Promise.allSettled(\n new Array(this._config.parallel)\n .fill(null)\n .map(async (): Promise<void> => {\n let example: Example | undefined;\n while ((example = todo.pop())) {\n const getStartStopMs = measureStartStopMs();\n\n const valid = await generateScreenshot(browser, {\n debug,\n example,\n height: this._config.renderer.screenshot.height,\n screenshotScript: this._config.screenshotScript,\n width: this._config.renderer.screenshot.width,\n });\n\n const report: ExampleReport = {\n ...getStartStopMs(),\n count: 1,\n example,\n result: valid ? \"fulfilled\" : \"rejected\",\n };\n reports.push(report);\n\n if (valid) {\n okay.push(example.path);\n } else {\n fail.push(example.path);\n }\n\n const percentage = (\n Math.floor((reports.length / total) * 100) + \"%\"\n ).padStart(4, \" \");\n const validText = valid ? \"okay\" : \"fail\";\n const msText = formatStartStopMs(report);\n console.info(\n `${percentage} ${validText} ${msText} - ${example.path}`\n );\n }\n })\n );\n\n return reports;\n } finally {\n for (const callback of cleanup.splice(0).reverse()) {\n try {\n await callback();\n } catch (error) {\n console.error(error);\n }\n }\n }\n })()\n : // Skip screenshots.\n Promise.resolve([]);\n\n const checks = (async (): Promise<Checks> => {\n await index;\n await playgrounds;\n await screenshots;\n\n const total = okay.length + fail.length;\n return {\n fail: fail.length,\n failPaths: fail,\n okay: okay.length,\n okayPaths: okay,\n percentage: total === 0 ? 100 : (100 * okay.length) / total,\n total,\n };\n })();\n\n return { checks, index, playgrounds, screenshots };\n }\n\n private _processGroup(examples: Examples): Example[] {\n return Object.keys(examples)\n .sort(collator.compare)\n .flatMap((key): Example[] => {\n const example = examples[key];\n\n if (isExample(example)) {\n return [example];\n } else {\n return this._processGroup(example);\n }\n });\n }\n}\n","import $ from \"cheerio\";\n\nimport indexTemplate from \"./index.template.html\";\nimport styleTemplate from \"./index.template.css\";\nimport { ContentPart, Renderer, isExample } from \"../common\";\nimport { Example, Examples, ExamplesRoot } from \"../../types\";\nimport { formatHTML } from \"../format\";\n\n/**\n * @param example\n */\nfunction generateJSFiddle(example: Example): cheerio.Cheerio {\n return $.load([])(\"<a>\")\n .addClass(\"icon jsfiddle\")\n .attr(\"href\", example.paths.jsfiddle.web)\n .attr(\"title\", \"JSFiddle\");\n}\n\n/**\n * @param example\n */\nfunction generateCodePen(example: Example): cheerio.Cheerio {\n return $.load([])(\"<a>\")\n .addClass(\"icon codepen\")\n .attr(\"href\", example.paths.codepen.web)\n .attr(\"title\", \"CodePen\");\n}\n\n/**\n * @param examples\n * @param title\n * @param level\n * @param collator\n */\nfunction processGroup(\n examples: Examples,\n title: string,\n level: number,\n collator: Intl.Collator\n): cheerio.Cheerio {\n const heading = $.load([])(`<h${Math.max(1, Math.min(6, level))}>`);\n heading.text(title);\n\n const list = $.load([])(\"<div>\");\n\n const section = $.load([])(\"<div>\");\n section.append(heading, list);\n\n for (const key of Object.keys(examples).sort(collator.compare)) {\n const example = examples[key];\n\n if (isExample(example)) {\n const header = $.load([])(\"<div>\").addClass(\"example-header\").append(\n // Playgrounds\n generateJSFiddle(example),\n generateCodePen(example),\n // Title\n $.load([])(\"<a>\").attr(\"href\", example.paths.page.web).text(key)\n );\n\n const image = $.load([])(\"<a>\")\n .addClass(\"example-image\")\n .attr(\"href\", example.paths.page.web)\n .append(\n $.load([])(\"<img>\")\n .attr(\"src\", example.paths.screenshot.web)\n .attr(\"alt\", key)\n );\n\n const item = $.load([])(\"<span>\")\n .addClass(\"example-link\")\n .append(header, image);\n\n list.append(item);\n } else {\n section.append(processGroup(example, key, level + 1, collator));\n }\n }\n\n return section;\n}\n\nexport const htmlRenderer: Renderer = {\n render(\n examples: ExamplesRoot,\n _output: string,\n title: string,\n collator: Intl.Collator\n ): ContentPart[] {\n const filename = \"index.html\";\n\n const root = $.load([])(\"<div>\");\n root.addClass(\"examples-root\");\n\n for (const key of Object.keys(examples).sort(collator.compare)) {\n root.append(processGroup(examples[key], key, 1, collator));\n }\n\n const page = $.load(indexTemplate);\n page(\"title\").text(title);\n page(\"body\").append(root);\n const content = formatHTML(page.html());\n\n return [\n { content, filename, title },\n {\n content: styleTemplate,\n filename: \"examples.css\",\n title: \"examples.css\",\n },\n ];\n },\n screenshot: {\n width: 400,\n height: 400,\n },\n};\n","import { ContentPart, Renderer, isExample } from \"../common\";\nimport { Examples, ExamplesRoot } from \"../../types\";\nimport { formatMD } from \"../format\";\nimport { relative } from \"path\";\n\n/**\n * @param lines\n */\nfunction linesToContent(lines: string[]): string {\n return formatMD(lines.join(\"\\n\"));\n}\n\n/**\n * @param title\n * @param src\n * @param href\n */\nfunction image(title: string, src: string, href?: string): string {\n return href == null\n ? ``\n : link(href, ``);\n}\n\n/**\n * @param href\n * @param text\n */\nfunction link(href: string, text: string = href): string {\n return `[${text}](${href})`;\n}\n\n/**\n * @param level\n * @param text\n */\nfunction header(level: number, text: string): string {\n return `${\"#\".repeat(level)} ${text}`;\n}\n\n/**\n * @param examples\n * @param output\n * @param title\n * @param collator\n */\nfunction processGroup(\n examples: Examples,\n output: string,\n title: string,\n collator: Intl.Collator\n): ContentPart[] {\n const items: string[] = [];\n const sections: ContentPart[] = [];\n const filenamePart = title.replace(/[^a-zA-Z0-9]/g, \"-\").toLowerCase();\n\n for (const key of Object.keys(examples).sort(collator.compare)) {\n const example = examples[key];\n\n if (isExample(example)) {\n // An example in this group.\n items.push(\n header(2, key),\n \"\",\n image(\n key,\n \"./\" + relative(output, example.paths.screenshot.local),\n example.paths.page.web\n ),\n \"\",\n [\n link(example.paths.page.web, \"Open\"),\n link(example.paths.jsfiddle.web, \"JSFiddle\"),\n link(example.paths.codepen.web, \"CodePen\"),\n ].join(\" | \"),\n \"\"\n );\n } else {\n // A subgroup of examples.\n sections.push(\n ...processGroup(example, output, key, collator).map(\n (contentPart): ContentPart => ({\n ...contentPart,\n filename: filenamePart + \".\" + contentPart.filename,\n })\n )\n );\n }\n }\n\n return [\n {\n content: linesToContent([header(1, title), \"\", ...items]),\n filename: filenamePart + \".md\",\n title,\n },\n ...sections,\n ];\n}\n\nexport const mdRenderer: Renderer = {\n render(\n examples: ExamplesRoot,\n output: string,\n _title: string,\n collator: Intl.Collator\n ): ContentPart[] {\n const sections: ContentPart[] = [];\n\n for (const key of Object.keys(examples).sort(collator.compare)) {\n sections.push(...processGroup(examples[key], output, key, collator));\n }\n\n return [\n {\n content: linesToContent([\n header(1, \"Examples\"),\n \"\",\n ...sections.map(\n ({ filename, title }): string => \"- \" + link(\"./\" + filename, title)\n ),\n ]),\n filename: \"README.md\",\n title: \"Examples\",\n },\n ...sections,\n ];\n },\n screenshot: {\n width: 740,\n height: 250,\n },\n};\n","import yargs from \"yargs\";\n\nconst y = yargs\n .strict(true)\n .usage(\"generate-example-index [options]\")\n .hide(\"version\")\n .config()\n .help()\n\n .option(\"assets-local-directory\", {\n default: \"./examples/thumbnails\",\n describe: \"The directory where assets will be written to.\",\n type: \"string\",\n })\n .option(\"assets-web-directory\", {\n default: \"./thumbnails\",\n describe: \"The directory where assets will be loaded from on the web.\",\n type: \"string\",\n })\n .option(\"base-url\", {\n demand: true,\n describe:\n \"The base URL for relative imports. Web URLs starting with slash will be relative to this URL.\",\n type: \"string\",\n })\n .option(\"examples-local-directory\", {\n default: \"./examples/thumbnails\",\n describe: \"The directory where examples will be loaded from locally.\",\n type: \"string\",\n })\n .option(\"examples-web-directory\", {\n default: \"./thumbnails\",\n describe: \"The directory where examples will be loaded from on the web.\",\n type: \"string\",\n })\n .option(\"output-directory\", {\n default: \"./examples\",\n describe: \"The directory where generated files will be emitted.\",\n type: \"string\",\n })\n .option(\"pages-local-directory\", {\n default: \"./examples/pages\",\n describe: \"The directory where pages will be written to.\",\n type: \"string\",\n })\n .option(\"pages-web-directory\", {\n default: \"./pages\",\n describe: \"The directory where pages will be loaded from on the web.\",\n type: \"string\",\n })\n\n .option(\"index\", {\n default: false,\n describe: \"Generate index files.\",\n type: \"boolean\",\n })\n .option(\"lint\", {\n default: false,\n describe: \"Lint examples.\",\n type: \"boolean\",\n })\n .option(\"playgrounds\", {\n default: false,\n describe: \"Generate playground pages.\",\n type: \"boolean\",\n })\n .option(\"screenshots\", {\n default: false,\n describe: \"Render screenshot thumbnails.\",\n type: \"boolean\",\n })\n\n .option(\"container-id\", {\n default: \"vis-container\",\n describe: \"The id of the elements where Vis will put canvas.\",\n type: \"string\",\n })\n .option(\"format\", {\n default: \"html\",\n describe: \"Whether HTML or Markdown should be generated.\",\n type: \"string\",\n })\n .option(\"parallel\", {\n default: 6,\n describe:\n \"Generate n screenshots at the same time (there is quite high delay to make sure the graph is rendered before the screenshot is taken so the CPU utilization is generally quite low).\",\n type: \"number\",\n })\n .option(\"screenshot-script\", {\n describe:\n \"The path of JavaScript file that will be executed before taking a screenshot (and before any other JavaScript in the page).\",\n type: \"string\",\n })\n .option(\"title\", {\n default: \"Examples\",\n describe: \"The title of the examples index.\",\n type: \"string\",\n })\n .option(\"verify\", {\n default: 100,\n describe:\n \"Attempt to verify that the examples were generated correctly. The value is a percentage of checks that have to pass for the run to be considered success.\",\n type: \"number\",\n });\n\n/**\n *\n */\nexport function parseArguments(): ReturnType<typeof y[\"parseSync\"]> {\n return y.parserConfiguration({ \"camel-case-expansion\": false }).parseSync();\n}\n","import { Example, ExamplePath, ExamplePaths } from \"./types\";\nimport { createHash } from \"crypto\";\nimport { relative, resolve } from \"path\";\n\n/**\n * @param urls\n */\nexport function joinURLs(...urls: string[]): string {\n return urls\n .map((url): string =>\n // Strip the parts of leading and trailing slashes if they have them.\n url.replace(/^\\/?(.*?)\\/?$/, \"$1\")\n )\n .join(\"/\");\n}\n\n/**\n * @param baseURL\n * @param url\n */\nexport function fixAbsoluteInputURL(baseURL: string, url: string): string {\n return url.startsWith(\"/\")\n ? // Relative to the base URL. Base URL starts and URL ends with a slash.\n baseURL + url.slice(1)\n : // Relative to some other point or absolute already.\n url;\n}\n\n/**\n * @param config\n * @param exampleAbsolutePath\n */\nexport function generatePaths(\n config: ExamplePaths,\n exampleAbsolutePath: Example[\"path\"]\n): ExamplePaths {\n const exampleRelativePath = relative(config.page.local, exampleAbsolutePath);\n\n // It's important that the hash is created from the relative path so that it\n // is the same on all computers.\n const hash = createHash(\"sha256\").update(exampleRelativePath).digest(\"hex\");\n\n return {\n codepen: generateLocalWebPair(\n config.codepen.local,\n config.codepen.web,\n hash,\n \"codepen\",\n \"html\"\n ),\n jsfiddle: generateLocalWebPair(\n config.jsfiddle.local,\n config.jsfiddle.web,\n hash,\n \"jsfiddle\",\n \"html\"\n ),\n page: {\n local: exampleAbsolutePath,\n web: joinURLs(config.page.web, exampleRelativePath),\n },\n screenshot: generateLocalWebPair(\n config.screenshot.local,\n config.screenshot.web,\n hash,\n \"screenshot\",\n \"png\"\n ),\n };\n}\n\n/**\n * @param localRoot\n * @param webRoot\n * @param hash\n * @param prefix\n * @param extension\n */\nfunction generateLocalWebPair(\n localRoot: string,\n webRoot: string,\n hash: string,\n prefix: string,\n extension: string\n): ExamplePath {\n const filename = `${prefix}.${hash}.${extension}`;\n\n return {\n local: resolve(localRoot, filename),\n web: joinURLs(webRoot, filename),\n };\n}\n","import $ from \"cheerio\";\nimport fs from \"fs\";\nimport util from \"util\";\nimport yargs from \"yargs\";\nimport { join } from \"path\";\nimport { resolve } from \"path\";\n\nimport {\n ContentBuilder,\n generatePlaygroundData,\n htmlRenderer,\n mdRenderer,\n reduceReports,\n formatStartStopMs,\n} from \"./content-builder\";\nimport { Example, ExamplesRoot, ExamplePaths } from \"./types\";\nimport { parseArguments } from \"./cli\";\nimport { generatePaths, fixAbsoluteInputURL } from \"./paths\";\n\nconst globby = import(\"globby\");\n\nconst argv = parseArguments();\n\n// Log the parsed configuration for debugging purposes.\nconsole.info(\"Configuration: \", JSON.stringify(argv, null, 2));\nprocess.stdout.write(\"\\n\");\n\n// Pageres uses quite a lot of listeners when invoked multiple times in\n// parallel. This ensures there are no warnings about it.\nprocess.setMaxListeners(40);\n\n// Resolve paths relative to PWD.\nconst screenshotScriptPath =\n typeof argv[\"screenshot-script\"] === \"string\"\n ? resolve(argv[\"screenshot-script\"])\n : undefined;\n\nconst mkdir = util.promisify(fs.mkdir);\nconst readFile = util.promisify(fs.readFile);\n\nfunction getMeta<T>(page: cheerio.Root, name: string, fallback: T): T;\n/**\n * Extract and coerce a value from meta tag.\n *\n * @param page - The page to be queried.\n * @param name - The name of the meta tag.\n * @param fallback - The value to be used if the meta tag is not present.\n * @returns The value “smartly” coerced or the fallback if conversion isn't\n * possible or the value is not present in the page.\n */\nfunction getMeta(\n page: cheerio.Root,\n name: string,\n fallback: number | string\n): number | string {\n const content = page(`meta[name=\"${name}\"]`).attr(\"content\");\n\n if (content == null) {\n // No meta of this name exists in the page, use the fallback.\n return fallback;\n } else if (!Number.isNaN(+content)) {\n // Number.\n return +content;\n } else if (typeof content === \"string\") {\n // String.\n return content;\n } else {\n // Something doesn't match, use the fallback.\n return fallback;\n }\n}\n\n/**\n * Test if the example conforms to the conventions.\n *\n * @param path - The path to the example (used for identification in logs).\n * @param page - The HTML to be linted.\n * @returns True if everything's okay, false otherwise.\n */\nfunction lintExample(path: string, page: cheerio.Root): boolean {\n let valid = true;\n const msgs = [`${path}:`];\n\n if (page(\"#title\").length !== 1) {\n msgs.push(\"Missing #title element in the body.\");\n valid = false;\n }\n\n if (page(\"#title > *\").length < 2) {\n msgs.push(\n \"There have to be at least two headings (group and example name).\"\n );\n valid = false;\n }\n\n const headTitle = page(\"head > title\").text().trim();\n const bodyTitle = page(\"#title > *\")\n .map((_i, elem): string => $.load([])(elem).text())\n .get()\n .join(\" | \")\n .trim();\n if (headTitle !== bodyTitle) {\n msgs.push(\n \"The title in the head doesn't match the title in the body.\",\n ` head: ${headTitle}`,\n ` body: ${bodyTitle}`\n );\n valid = false;\n }\n\n if (msgs.length > 1) {\n console.warn(\"\\n\" + msgs.join(\"\\n \"));\n }\n\n return valid;\n}\n\n(async (): Promise<void> => {\n let code = 0;\n\n if (!argv.index && !argv.screenshots && !argv.lint) {\n yargs.parse(\"--help\");\n return;\n }\n\n // Ensure that all paths exist.\n await Promise.all(\n [\n argv[\"assets-local-directory\"],\n argv[\"examples-local-directory\"],\n argv[\"output-directory\"],\n argv[\"pages-local-directory\"],\n ].map(async (path): Promise<void> => {\n await mkdir(path, { recursive: true });\n })\n );\n\n const baseURL = argv[\"base-url\"];\n if (!baseURL.endsWith(\"/\")) {\n throw new Error(\"Base URL (`base-url`) has to end with a slash (`/`).\");\n }\n\n // Paths.\n const pathsConfig: ExamplePaths = {\n codepen: {\n local: argv[\"pages-local-directory\"],\n web: fixAbsoluteInputURL(baseURL, argv[\"pages-web-directory\"]),\n },\n jsfiddle: {\n local: argv[\"pages-local-directory\"],\n web: fixAbsoluteInputURL(baseURL, argv[\"pages-web-directory\"]),\n },\n page: {\n local: argv[\"examples-local-directory\"],\n web: fixAbsoluteInputURL(baseURL, argv[\"examples-web-directory\"]),\n },\n screenshot: {\n local: argv[\"assets-local-directory\"],\n web: fixAbsoluteInputURL(baseURL, argv[\"assets-web-directory\"]),\n },\n };\n\n const examples: ExamplesRoot = {};\n const selector = \"#\" + argv[\"container-id\"];\n const stats = { examples: 0 };\n const skipped: string[] = [];\n\n await Promise.all(\n (\n await (await globby).default(join(pathsConfig.page.local, \"**/*.html\"))\n ).map(async (pagePath): Promise<any> => {\n const html = await readFile(pagePath, \"utf-8\");\n const $page = $.load(html);\n const pageDelay = getMeta<number | \"call\">(\n $page,\n \"example-screenshot-delay\",\n 6\n );\n const pageTimeout = getMeta<number>(\n $page,\n \"example-screenshot-timeout\",\n 60\n );\n const pageSelector = getMeta<string>(\n $page,\n \"example-screenshot-selector\",\n selector\n );\n\n // Is this an examples?\n if ($page(pageSelector).length === 0) {\n skipped.push(pagePath);\n return;\n }\n\n // Lint if requested.\n if (argv.lint) {\n lintExample(pagePath, $page);\n }\n\n // Body titles.\n let titles = $page(\"#title > *\")\n .get()\n .map((elem): string => $page(elem).text().trim());\n\n // Head title fallback.\n if (titles.length < 2) {\n titles = $page(\"head > title\")\n .text()\n .split(\"|\")\n .map((title): string => title.trim());\n }\n\n // File path fallback.\n if (titles.length < 2) {\n titles = pagePath.split(\"/\");\n }\n\n // Just ignore it.\n if (titles.length < 2) {\n console.error(\"Title resolution failed. Skipping.\");\n return;\n }\n\n // Put this example into the structure while creating any missing groups in the process.\n titles.reduce((acc, title, i, arr): any => {\n while (acc[title] != null && acc[title].path != null) {\n console.error(\"The following group already exists: \", titles);\n title += \"!\";\n }\n\n if (i === arr.length - 1) {\n if (acc[title] != null) {\n console.error(\n \"The following example has the same name as an already existing group: \",\n titles\n );\n return null;\n } else {\n const example: Example = {\n $: $page,\n delay: pageDelay,\n html: html,\n path: pagePath,\n paths: generatePaths(pathsConfig, pagePath),\n playground: generatePlaygroundData(baseURL, $page, pagePath),\n selector: pageSelector,\n timeout: pageTimeout,\n titles: titles,\n };\n\n acc[title] = example;\n\n ++stats.examples;\n }\n } else {\n return (acc[title] = acc[title] || {});\n }\n }, examples as any);\n })\n );\n\n if (skipped.length) {\n process.stdout.write(\"\\n\");\n console.info(\n [\n \"The following files don't look like examples (there is nothing to take a screenshot of):\",\n ...skipped.sort(),\n ].join(\"\\n \")\n );\n }\n\n if (stats.examples === 0) {\n console.info(\"No usable example files were found.\");\n } else if (argv.index || argv.playgrounds || argv.screenshots) {\n process.stdout.write(\"\\n\");\n\n const screenshotScript =\n screenshotScriptPath != null\n ? (await readFile(screenshotScriptPath, \"utf-8\")) || \"\"\n : \"\";\n\n const builtData = new ContentBuilder({\n examples,\n output: resolve(argv[\"output-directory\"]),\n parallel: argv.parallel,\n renderer: argv.format === \"md\" ? mdRenderer : htmlRenderer,\n screenshotScript,\n title: argv.title,\n }).build({\n index: argv.index,\n playgrounds: argv.playgrounds,\n screenshots: argv.screenshots,\n });\n\n // Create and write the page.\n if (argv.index) {\n const cummulativeReport = reduceReports(await builtData.index);\n console.info(\n `Index with ${stats.examples} examples written (${\n cummulativeReport.count\n } files in ${formatStartStopMs(cummulativeReport)}).`\n );\n }\n\n // Create and write the playgrounds.\n if (argv.index) {\n const cummulativeReport = reduceReports(await builtData.playgrounds);\n console.info(\n `Playground opener files for ${stats.examples} examples written (${\n cummulativeReport.count\n } files in ${formatStartStopMs(cummulativeReport)}).`\n );\n }\n\n // Create and write the screenshots.\n if (argv.screenshots) {\n const cummulativeReport = reduceReports(await builtData.screenshots);\n console.info(\n `Screenshot files for ${stats.examples} written (${\n cummulativeReport.count\n } files in ${formatStartStopMs(cummulativeReport)}).`\n );\n }\n\n // Verify the result.\n const checks = await builtData.checks;\n process.stdout.write(\"\\n\");\n if (checks.fail === 0) {\n console.info(\n `Verification: ${checks.okay} passed (${Math.round(\n checks.percentage\n )} %) passed.`\n );\n } else {\n if (checks.percentage >= argv.verify) {\n console.info(\n `Verification: ${checks.okay} passed (${Math.round(\n checks.percentage\n )} %), ${checks.fail} failed.\\n` +\n \"This is within the threshold set by --verify.\"\n );\n } else {\n console.error(\n `Verification: Only ${checks.okay} passed (${Math.round(\n checks.percentage\n )} %), ${checks.fail} failed.\\n` +\n \"This is not within the threshold set by --verify. Exiting with an error.\"\n );\n code = 3;\n }\n\n checks.failPaths.forEach((path): void => {\n console.error(path);\n });\n }\n }\n\n process.exitCode = code;\n})().catch((error): void => {\n process.exitCode = 1;\n console.error(error);\n});\n"],"names":["isExample","value","path","measureStartStopMs","start","stop","reduceReports","reports","fallback","count","result","acc","val","Math","min","Number","POSITIVE_INFINITY","max","NEGATIVE_INFINITY","formatStartStopMs","round","toFixed","formatCSS","css","prettier","format","filepath","formatHTML","html","formatJS","js","formatMD","md","generateCodePenPage","example","data","playground","title","titles","join","page","$","load","template","text","form","attr","code","css_external","resources","js_external","generatePlaygroundData","baseURL","example$","examplePath","eventListeners","get","attribs","name","test","_i","elem","children","$html","remove","fixPath","rawPath","relative","process","cwd","resolve","dirname","src","href","generateJSFiddlePage","unlink","promisify","fs","writeFile","isScreenshotValid","screenshot","Jimp","read","image","firstPixel","getPixelColor","x","getWidth","y","getHeight","generateScreenshot","browser","config","debug","height","screenshotScript","width","cleanup","tmpPath","paths","local","basename","screenshotPage","prepend","commonScreenshotScript","selector","push","createIncognitoBrowserContext","context","close","newPage","setViewport","goto","split","sep","posix","waitForSelector","visible","timeout","delay","evaluate","waitForTimeout","$element","Error","element","scrollIntoView","encoding","console","error","_createForOfIteratorHelper","callback","collator","Intl","Collator","ContentBuilder","_config","emit","allExamples","_processGroup","examples","okay","fail","info","index","playgrounds","screenshots","length","stdout","write","getStartStopMs","allSettled","renderer","render","output","content","filename","results","_objectSpread","status","all","jsfiddle","codepen","env","DEBUG","puppeteer","launch","headless","slowMo","undefined","disconnect","todo","total","Array","parallel","pop","valid","report","percentage","floor","validText","msText","checks","failPaths","okayPaths","compare","key","generateJSFiddle","addClass","web","generateCodePen","processGroup","level","heading","list","section","append","header","item","htmlRenderer","_output","root","indexTemplate","styleTemplate","linesToContent","lines","link","items","sections","filenamePart","replace","toLowerCase","contentPart","mdRenderer","_title","yargs","strict","usage","hide","help","option","default","describe","type","demand","parseArguments","parserConfiguration","parseSync","joinURLs","urls","url","fixAbsoluteInputURL","generatePaths","exampleAbsolutePath","exampleRelativePath","hash","createHash","update","digest","generateLocalWebPair","localRoot","webRoot","prefix","extension","globby","argv","setMaxListeners","screenshotScriptPath","mkdir","util","readFile","getMeta","lintExample","msgs","headTitle","bodyTitle","warn","lint","parse","recursive","pathsConfig","stats","skipped","pagePath","$page","pageDelay","pageTimeout","pageSelector","i","arr","builtData","build","cummulativeReport","verify","exitCode","catch"],"mappings":"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"}
|