vis-dev-utils 3.0.46 → 3.0.49
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 +2 -2
- package/babel-register/index.js.map +1 -1
- package/bin/ci-utils.js +2 -2
- package/bin/ci-utils.js.map +1 -1
- package/bin/generate-examples-index.js +2 -2
- package/bin/generate-examples-index.js.map +1 -1
- package/bin/test-e2e-interop.js +2 -2
- package/bin/test-e2e-interop.js.map +1 -1
- package/dist/vis-dev-utils.cjs.js +2 -2
- package/dist/vis-dev-utils.cjs.js.map +1 -1
- package/dist/vis-dev-utils.esm.js +2 -2
- package/dist/vis-dev-utils.esm.js.map +1 -1
- package/package.json +5 -5
|
@@ -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 globby from \"globby\";\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 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 globby(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","_filterInstanceProperty","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","_spliceInstanceProperty","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","argv","setMaxListeners","screenshotScriptPath","mkdir","util","readFile","getMeta","_Number$isNaN","lintExample","msgs","headTitle","_trimInstanceProperty","bodyTitle","warn","lint","parse","recursive","_endsWithInstanceProperty","pathsConfig","stats","skipped","globby","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 => $(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 globby from \"globby\";\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 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 globby(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","_spliceInstanceProperty","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","argv","setMaxListeners","screenshotScriptPath","mkdir","util","readFile","getMeta","_Number$isNaN","lintExample","msgs","headTitle","_trimInstanceProperty","bodyTitle","warn","lint","parse","recursive","_endsWithInstanceProperty","pathsConfig","stats","skipped","globby","pagePath","$page","pageDelay","pageTimeout","pageSelector","i","arr","builtData","build","cummulativeReport","verify","_forEachInstanceProperty","exitCode","catch"],"mappings":"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"}
|
package/bin/test-e2e-interop.js
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Development utilities for the Vis family projects.
|
|
8
8
|
*
|
|
9
|
-
* @version 3.0.
|
|
10
|
-
* @date 2022-04-
|
|
9
|
+
* @version 3.0.49
|
|
10
|
+
* @date 2022-04-30T12:36:37.835Z
|
|
11
11
|
*
|
|
12
12
|
* @copyright (c) 2011-2017 Almende B.V, http://almende.com
|
|
13
13
|
* @copyright (c) 2017-2019 visjs contributors, https://github.com/visjs
|