@datawheel/bespoke 0.6.0-rc.3 → 0.6.0-rc.4

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.
Files changed (2) hide show
  1. package/dist/server.js +18 -8
  2. package/package.json +2 -2
package/dist/server.js CHANGED
@@ -27,7 +27,7 @@ import NextCors from 'nextjs-cors';
27
27
  import imageType from 'image-type';
28
28
  import formidable from 'formidable';
29
29
  import puppeteer from 'puppeteer-core';
30
- import chromium from '@sparticuz/chromium';
30
+ import puppeteer2 from 'puppeteer';
31
31
  import DomParser from 'dom-parser';
32
32
  import path from 'path';
33
33
  import axiosRetry from 'axios-retry';
@@ -4329,8 +4329,6 @@ function endpointDownloadReport() {
4329
4329
  }
4330
4330
  });
4331
4331
  }
4332
- chromium.setHeadlessMode = true;
4333
- chromium.setGraphicsMode = false;
4334
4332
  var minimal_args = [
4335
4333
  "--autoplay-policy=user-gesture-required",
4336
4334
  "--disable-background-networking",
@@ -4378,22 +4376,23 @@ async function generateImage(path2, section, format = "png", transparent = false
4378
4376
  const width = 1366;
4379
4377
  const height = 768;
4380
4378
  const maxTimeoutPerPage = 0;
4379
+ console.time("puppeteer");
4381
4380
  try {
4382
- const browser = await puppeteer.launch({
4381
+ const browser = await puppeteer2.launch({
4383
4382
  args: [
4384
4383
  `--window-size=${width},${height}`,
4385
- ...minimal_args,
4386
- ...chromium.args
4384
+ ...minimal_args
4387
4385
  ],
4388
4386
  defaultViewport: { width, height, deviceScaleFactor: 2 },
4389
4387
  ignoreHTTPSErrors: true,
4390
- executablePath: await chromium.executablePath(),
4391
- headless: chromium.headless
4388
+ headless: true
4392
4389
  });
4390
+ console.timeLog("puppeteer", "Browser started");
4393
4391
  const url = new URL(path2);
4394
4392
  const searchParams = new URLSearchParams(url.search);
4395
4393
  url.search = searchParams.toString();
4396
4394
  const page = await browser.newPage();
4395
+ console.timeLog("puppeteer", "Creating page");
4397
4396
  await page.addStyleTag({ content: ".bespoke-Section-container{ padding: 1rem !important }" });
4398
4397
  await page.setRequestInterception(true);
4399
4398
  page.on("request", (request) => {
@@ -4404,15 +4403,22 @@ async function generateImage(path2, section, format = "png", transparent = false
4404
4403
  request.continue();
4405
4404
  }
4406
4405
  });
4406
+ console.timeLog("puppeteer", "Setting request interceptor");
4407
4407
  await page.goto(url.toString(), { waitUntil: "networkidle0", timeout: maxTimeoutPerPage });
4408
+ console.timeLog("puppeteer", "Navigated to page");
4408
4409
  await page.waitForSelector("#bespoke-report", { timeout: maxTimeoutPerPage });
4410
+ console.timeLog("puppeteer", "Selector detected");
4409
4411
  if (transparent) {
4410
4412
  await page.$eval(`.bespoke-Section-${section}`, (el) => el["style"].background = "transparent");
4411
4413
  await page.evaluate(() => document.body.style.background = "transparent");
4414
+ console.timeLog("puppeteer", "Added transparent background");
4412
4415
  }
4413
4416
  if (format === "svg") {
4414
4417
  const element = await page.$(".d3plus-viz");
4415
4418
  const svg = await element?.evaluate((el) => el.outerHTML);
4419
+ console.timeLog("puppeteer", "Finishing SVG");
4420
+ console.timeEnd("puppeteer");
4421
+ await browser.close();
4416
4422
  return svg?.replace(/ {4}|[\t\n\r]/gm, "");
4417
4423
  } else {
4418
4424
  const element = await page.$(".bespoke-Section-container");
@@ -4420,11 +4426,15 @@ async function generateImage(path2, section, format = "png", transparent = false
4420
4426
  type: "png",
4421
4427
  omitBackground: true
4422
4428
  });
4429
+ console.timeLog("puppeteer", "Finishing PNG");
4430
+ console.timeEnd("puppeteer");
4423
4431
  await browser.close();
4424
4432
  return screenshot;
4425
4433
  }
4426
4434
  } catch (error) {
4427
4435
  console.error("Error generating Image:", error);
4436
+ console.timeLog("puppeteer", "Finishing with error");
4437
+ console.timeEnd("puppeteer");
4428
4438
  throw error;
4429
4439
  }
4430
4440
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datawheel/bespoke",
3
- "version": "0.6.0-rc.3",
3
+ "version": "0.6.0-rc.4",
4
4
  "description": "Content management system for creating automated data reports",
5
5
  "exports": {
6
6
  ".": {
@@ -52,7 +52,6 @@
52
52
  "@mantine/prism": "^6.0.19",
53
53
  "@monaco-editor/react": "^4.4.5",
54
54
  "@reduxjs/toolkit": "^1.8.4",
55
- "@sparticuz/chromium": "^123.0.1",
56
55
  "@tabler/icons-react": "^2.15.0",
57
56
  "@tiptap/extension-hard-break": "^2.2.2",
58
57
  "@tiptap/extension-history": "^2.2.2",
@@ -105,6 +104,7 @@
105
104
  "normalizr": "^3.6.2",
106
105
  "pg": "^8.7.3",
107
106
  "pretty-format": "^28.1.1",
107
+ "puppeteer": "^22.10.0",
108
108
  "puppeteer-core": "^22.10.0",
109
109
  "react": "^18.2.0",
110
110
  "react-clipboard.js": "^2.0.16",