vis-dev-utils 4.0.33 → 4.0.35
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/bin/ci-utils.js +2 -2
- 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.esm.js +2 -2
- package/package.json +29 -29
package/babel-register/index.js
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Development utilities for the Vis family projects.
|
|
8
8
|
*
|
|
9
|
-
* @version 4.0.
|
|
10
|
-
* @date 2023-
|
|
9
|
+
* @version 4.0.35
|
|
10
|
+
* @date 2023-10-10T20:34:01.882Z
|
|
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
|
package/bin/ci-utils.js
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Development utilities for the Vis family projects.
|
|
8
8
|
*
|
|
9
|
-
* @version 4.0.
|
|
10
|
-
* @date 2023-
|
|
9
|
+
* @version 4.0.35
|
|
10
|
+
* @date 2023-10-10T20:34:01.882Z
|
|
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
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Development utilities for the Vis family projects.
|
|
8
8
|
*
|
|
9
|
-
* @version 4.0.
|
|
10
|
-
* @date 2023-
|
|
9
|
+
* @version 4.0.35
|
|
10
|
+
* @date 2023-10-10T20:34:01.882Z
|
|
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
|
|
@@ -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 => $.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","_typeof","path","measureStartStopMs","start","_Date$now","stop","reduceReports","reports","_reports$reduce","fallback","arguments","length","undefined","count","result","_reduceInstanceProperty","call","acc","val","_acc$count","_val$count","_context","_acc$result","_acc$start","_acc$stop","_everyInstanceProperty","Math","min","Number","POSITIVE_INFINITY","max","NEGATIVE_INFINITY","formatStartStopMs","_ref","concat","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","_context2","_context3","_context5","_context6","_context7","_context8","_context9","_context10","_context11","_context12","_context13","_context14","eventListeners","_mapInstanceProperty","_filterInstanceProperty","_Object$entries","get","attribs","_ref2","_slicedToArray","name","test","_ref3","_ref4","_sliceInstanceProperty","_ref5","_context4","_ref6","_concatInstanceProperty","_i","elem","children","$html","remove","fixPath","rawPath","relative","process","cwd","resolve","dirname","src","href","generateJSFiddlePage","_toConsumableArray","unlink","promisify","fs","writeFile","isScreenshotValid","_x","_isScreenshotValid","apply","_asyncToGenerator","_regeneratorRuntime","mark","_callee","screenshot","image","firstPixel","x","y","wrap","_callee$","prev","next","Jimp","read","sent","getPixelColor","getWidth","getHeight","abrupt","generateScreenshot","_x2","_x3","_generateScreenshot","_callee2","browser","config","debug","height","screenshotScript","width","cleanup","tmpPath","screenshotPage","context","$element","_iterator","_step","callback","_callee2$","paths","local","basename","prepend","commonScreenshotScript","selector","push","createIncognitoBrowserContext","close","newPage","setViewport","goto","split","sep","posix","waitForSelector","visible","timeout","delay","evaluate","waitForTimeout","Error","element","scrollIntoView","encoding","t0","console","error","_createForOfIteratorHelper","_reverseInstanceProperty","_spliceInstanceProperty","s","n","done","t1","t2","e","f","finish","collator","Intl","Collator","ContentBuilder","_config","_classCallCheck","_defineProperty","_createClass","key","build","_this","emit","allExamples","_processGroup","examples","okay","fail","info","_flatInstanceProperty","index","playgrounds","screenshots","stdout","write","getStartStopMs","results","_Promise","allSettled","renderer","render","output","content","filename","_objectSpread","status","_callee4","_callee4$","all","_callee3","_callee3$","jsfiddle","codepen","_ref7","_ref8","_callee7","_process$env$DEBUG","todo","total","_context17","_callee7$","_context18","env","DEBUG","puppeteer","launch","headless","slowMo","_callee5","_callee5$","disconnect","_fillInstanceProperty","Array","parallel","_callee6","_context15","valid","report","percentage","validText","msText","_callee6$","_context16","pop","_padStartInstanceProperty","floor","checks","_callee8","_callee8$","_context19","failPaths","okayPaths","_context20","_context21","_this2","_flatMapInstanceProperty","_sortInstanceProperty","_Object$keys","compare","generateJSFiddle","addClass","web","generateCodePen","processGroup","level","heading","list","section","append","header","item","err","htmlRenderer","_output","root","_iterator2","_step2","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","_len","urls","_key","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","pathsConfig","stats","skipped","builtData","cummulativeReport","_cummulativeReport","_cummulativeReport2","_context23","_context22","_context24","lint","parse","recursive","_endsWithInstanceProperty","t3","pagePath","$page","pageDelay","pageTimeout","pageSelector","i","arr","t5","t4","t6","t7","t8","t9","t10","t11","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","_typeof","path","measureStartStopMs","start","_Date$now","stop","reduceReports","reports","_reports$reduce","fallback","arguments","length","undefined","count","result","_reduceInstanceProperty","call","acc","val","_acc$count","_val$count","_context","_acc$result","_acc$start","_acc$stop","_everyInstanceProperty","Math","min","Number","POSITIVE_INFINITY","max","NEGATIVE_INFINITY","formatStartStopMs","_ref","concat","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","_context2","_context3","_context5","_context6","_context7","_context8","_context9","_context10","_context11","_context12","_context13","_context14","eventListeners","_mapInstanceProperty","_filterInstanceProperty","_Object$entries","get","attribs","_ref2","_slicedToArray","name","test","_ref3","_ref4","_sliceInstanceProperty","_ref5","_context4","_ref6","_concatInstanceProperty","_i","elem","children","$html","remove","fixPath","rawPath","relative","process","cwd","resolve","dirname","src","href","generateJSFiddlePage","_toConsumableArray","unlink","promisify","fs","writeFile","isScreenshotValid","_x","_isScreenshotValid","apply","_asyncToGenerator","_regeneratorRuntime","mark","_callee","screenshot","image","firstPixel","x","y","wrap","_callee$","prev","next","Jimp","read","sent","getPixelColor","getWidth","getHeight","abrupt","generateScreenshot","_x2","_x3","_generateScreenshot","_callee2","browser","config","debug","height","screenshotScript","width","cleanup","tmpPath","screenshotPage","context","$element","_iterator","_step","callback","_callee2$","paths","local","basename","prepend","commonScreenshotScript","selector","push","createIncognitoBrowserContext","close","newPage","setViewport","goto","split","sep","posix","waitForSelector","visible","timeout","delay","evaluate","waitForTimeout","Error","element","scrollIntoView","encoding","t0","console","error","_createForOfIteratorHelper","_reverseInstanceProperty","_spliceInstanceProperty","s","n","done","t1","t2","e","f","finish","collator","Intl","Collator","ContentBuilder","_config","_classCallCheck","_defineProperty","_createClass","key","build","_this","emit","allExamples","_processGroup","examples","okay","fail","info","_flatInstanceProperty","index","playgrounds","screenshots","stdout","write","getStartStopMs","results","_Promise","allSettled","renderer","render","output","content","filename","_objectSpread","status","_callee4","_callee4$","all","_callee3","_callee3$","jsfiddle","codepen","_ref7","_ref8","_callee7","_process$env$DEBUG","todo","total","_context17","_callee7$","_context18","env","DEBUG","puppeteer","launch","headless","slowMo","_callee5","_callee5$","disconnect","_fillInstanceProperty","Array","parallel","_callee6","_context15","valid","report","percentage","validText","msText","_callee6$","_context16","pop","_padStartInstanceProperty","floor","checks","_callee8","_callee8$","_context19","failPaths","okayPaths","_context20","_context21","_this2","_flatMapInstanceProperty","_sortInstanceProperty","_Object$keys","compare","generateJSFiddle","addClass","web","generateCodePen","processGroup","level","heading","list","section","append","header","item","err","htmlRenderer","_output","root","_iterator2","_step2","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","_len","urls","_key","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","pathsConfig","stats","skipped","builtData","cummulativeReport","_cummulativeReport","_cummulativeReport2","_context23","_context22","_context24","lint","parse","recursive","_endsWithInstanceProperty","t3","pagePath","$page","pageDelay","pageTimeout","pageSelector","i","arr","t5","t4","t6","t7","t8","t9","t10","t11","verify","_forEachInstanceProperty","exitCode","catch"],"mappings":"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"}
|