Full Code of alvarcarto/url-to-pdf-api for AI

master 2fa83fd9f886 cached
32 files
6.0 MB
1.6M tokens
32 symbols
1 requests
Download .txt
Showing preview only (6,285K chars total). Download the full file or copy to clipboard to get everything.
Repository: alvarcarto/url-to-pdf-api
Branch: master
Commit: 2fa83fd9f886
Files: 32
Total size: 6.0 MB

Directory structure:
gitextract_altncbd2/

├── .eslintrc
├── .gitignore
├── .travis.yml
├── .vscode/
│   └── launch.json
├── CHANGELOG.md
├── LICENSE
├── Procfile
├── README.md
├── app.json
├── docs/
│   ├── heroku.xml
│   ├── local-examples.md
│   └── logo.sketch
├── package.json
├── src/
│   ├── app.js
│   ├── config.js
│   ├── core/
│   │   └── render-core.js
│   ├── http/
│   │   └── render-http.js
│   ├── index.js
│   ├── middleware/
│   │   ├── error-logger.js
│   │   ├── error-responder.js
│   │   └── require-https.js
│   ├── router.js
│   └── util/
│       ├── express.js
│       ├── logger.js
│       ├── require-envs.js
│       └── validation.js
└── test/
    ├── resources/
    │   ├── large-linked.html
    │   ├── large.html
    │   ├── postmark-receipt.html
    │   └── special-chars.html
    ├── test-all.js
    └── util/
        └── index.js

================================================
FILE CONTENTS
================================================

================================================
FILE: .eslintrc
================================================
{
  "env": {
      "browser":    true,
      "amd":        true,
      "node":       true,
      "es6":        true
  },
  "extends": "airbnb-base",
  "rules": {
    "no-implicit-coercion": "error",
    "no-process-env": "error",
    "no-path-concat": "error",
    "import/no-extraneous-dependencies": ["error", {"devDependencies": true}],
    "no-use-before-define": ["error", { "functions": false }],
    "no-underscore-dangle": "off",
    "no-console": "off",
    "comma-dangle": ["error", {
        "arrays": "always-multiline",
        "objects": "always-multiline",
        "imports": "always-multiline",
        "exports": "always-multiline",
        "functions": "ignore"
    }],
    "function-paren-newline": "off"
  }
}

================================================
FILE: .gitignore
================================================
.env
.DS_Store
.idea

# Logs
logs
*.log
npm-debug.log*

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage

# nyc test coverage
.nyc_output

# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# node-waf configuration
.lock-wscript

# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules
jspm_packages

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity


================================================
FILE: .travis.yml
================================================
language: node_js
node_js:
  - "10"
env:
  - ALLOW_HTTP=true


================================================
FILE: .vscode/launch.json
================================================
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Launch Program",
            "program": "${workspaceFolder}/src/index.js",
            "env": {
                "NODE_ENV": "development",
                "PORT": "9000",
                "ALLOW_HTTP": "true",
            }
        }
    ]
}

================================================
FILE: CHANGELOG.md
================================================
# CHANGELOG

* change the `:html` output to return `document.documentElement.innerHTML` instead of previously used `document.body.innerHTML`

## 1.0.0

* initial version


================================================
FILE: LICENSE
================================================
Copyright (c) 2017 Kimmo Brunfeldt

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

================================================
FILE: Procfile
================================================
web: NODE_ENV=production node src/index.js

================================================
FILE: README.md
================================================
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/alvarcarto/url-to-pdf-api)

[![Build Status](https://travis-ci.org/alvarcarto/url-to-pdf-api.svg?branch=master)](https://travis-ci.org/alvarcarto/url-to-pdf-api)

# URL to PDF Microservice

> Web page PDF rendering done right. Microservice for rendering receipts, invoices, or any content. Packaged to an easy API.

![Logo](docs/logo.png)

**⚠️ WARNING ⚠️** *Don't serve this API publicly to the internet unless you are aware of the
risks. It allows API users to run any JavaScript code inside a Chrome session on the server.
It's fairly easy to expose the contents of files on the server. You have been warned!. See https://github.com/alvarcarto/url-to-pdf-api/issues/12 for background.*

**⭐️ Features:**

* Converts any URL or HTML content to a PDF file or an image (PNG/JPEG)
* Rendered with Headless Chrome, using [Puppeteer](https://github.com/GoogleChrome/puppeteer). The PDFs should match to the ones generated with a desktop Chrome.
* Sensible defaults but everything is configurable.
* Single-page app (SPA) support. Waits until all network requests are finished before rendering.
* Easy deployment to Heroku. We love Lambda but...Deploy to Heroku button.
* Renders lazy loaded elements. *(scrollPage option)*
* Supports optional `x-api-key` authentication. *(`API_TOKENS` env var)*

Usage is as simple as https://url-to-pdf-api.herokuapp.com/api/render?url=http://google.com. There's also a `POST /api/render` if you prefer to send options in the body.

**🔍 Why?**

This microservice is useful when you need to automatically produce PDF files
for whatever reason. The files could be receipts, weekly reports, invoices,
or any content.

PDFs can be generated in many ways, but one of them is to convert HTML+CSS
content to a PDF. This API does just that.

**🚀 Shortcuts:**

* [Examples](#examples)
* [API](#api)
* [I want to run this myself](#development)

## How it works

![](docs/heroku.png)

Local setup is identical except Express API is running on your machine
and requests are direct connections to it.

### Good to know

* **By default, page's `@media print` CSS rules are ignored**. We set Chrome to emulate `@media screen` to make the default PDFs look more like actual sites. To get results closer to desktop Chrome, add `&emulateScreenMedia=false` query parameter. See more at [Puppeteer API docs](https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#pagepdfoptions).

* Chrome is launched with `--no-sandbox --disable-setuid-sandbox` flags to fix usage in Heroku. See [this issue](https://github.com/GoogleChrome/puppeteer/issues/290).

* Heavy pages may cause Chrome to crash if the server doesn't have enough RAM.

* Docker image for this can be found here: https://github.com/restorecommerce/pdf-rendering-srv


## Examples

**⚠️ Restrictions ⚠️:**

* For security reasons the urls have been restricted and HTML rendering is disabled. For full demo, run this app locally or deploy to Heroku.
* The demo Heroku app runs on a free dyno which sleep after idle. A request to sleeping dyno may take even 30 seconds.



**The most minimal example, render google.com**

https://url-to-pdf-api.herokuapp.com/api/render?url=http://google.com

**The most minimal example, render google.com as PNG image**

https://url-to-pdf-api.herokuapp.com/api/render?output=screenshot&url=http://google.com


**Use the default @media print instead of @media screen.**

https://url-to-pdf-api.herokuapp.com/api/render?url=http://google.com&emulateScreenMedia=false

**Use scrollPage=true which tries to reveal all lazy loaded elements. Not perfect but better than without.**

https://url-to-pdf-api.herokuapp.com/api/render?url=http://www.andreaverlicchi.eu/lazyload/demos/lazily_load_lazyLoad.html&scrollPage=true

**Render only the first page.**

https://url-to-pdf-api.herokuapp.com/api/render?url=https://en.wikipedia.org/wiki/Portable_Document_Format&pdf.pageRanges=1

**Render A5-sized PDF in landscape.**

https://url-to-pdf-api.herokuapp.com/api/render?url=http://google.com&pdf.format=A5&pdf.landscape=true

**Add 2cm margins to the PDF.**

https://url-to-pdf-api.herokuapp.com/api/render?url=http://google.com&pdf.margin.top=2cm&pdf.margin.right=2cm&pdf.margin.bottom=2cm&pdf.margin.left=2cm

**Wait for extra 1000ms before render.**

https://url-to-pdf-api.herokuapp.com/api/render?url=http://google.com&waitFor=1000


**Download the PDF with a given attachment name**

https://url-to-pdf-api.herokuapp.com/api/render?url=http://google.com&attachmentName=google.pdf

**Wait for an element matching the selector `input` appears.**

https://url-to-pdf-api.herokuapp.com/api/render?url=http://google.com&waitFor=input

**Render HTML sent in JSON body**

*NOTE: Demo app has disabled html rendering for security reasons.*

```bash
curl -o html.pdf -XPOST -d'{"html": "<body>test</body>"}' -H"content-type: application/json" http://localhost:9000/api/render
```

**Render HTML sent as text body**

*NOTE: Demo app has disabled html rendering for security reasons.*

```bash
curl -o html.pdf -XPOST -d@test/resources/large.html -H"content-type: text/html" http://localhost:9000/api/render
```

## API

To understand the API options, it's useful to know how [Puppeteer](https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md)
is internally used by this API. The [render code](https://github.com/alvarcarto/url-to-pdf-api/blob/master/src/core/render-core.js)
is quite simple, check it out. Render flow:

1. **`page.setViewport(options)`** where options matches `viewport.*`.
2. *Possibly* **`page.emulateMedia('screen')`** if `emulateScreenMedia=true` is set.
3. Render url **or** html.

    If `url` is defined, **`page.goto(url, options)`** is called and options match `goto.*`.
    Otherwise **`page.setContent(html, options)`** is called where html is taken from request body, and options match `goto.*`.

4. *Possibly* **`page.waitFor(numOrStr)`** if e.g. `waitFor=1000` is set.
5. *Possibly* **Scroll the whole page** to the end before rendering if e.g. `scrollPage=true` is set.

    Useful if you want to render a page which lazy loads elements.

6. Render the output

  * If output is `pdf` rendering is done with **`page.pdf(options)`** where options matches `pdf.*`.
  * Else if output is `screenshot` rendering is done with **`page.screenshot(options)`** where options matches `screenshot.*`.


### GET /api/render

All options are passed as query parameters.
Parameter names match [Puppeteer options](https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md).

These options are exactly the same as its `POST` counterpart, but options are
expressed with the dot notation. E.g. `?pdf.scale=2` instead of `{ pdf: { scale: 2 }}`.

The only required parameter is `url`.

Parameter | Type | Default | Description
----------|------|---------|------------
url | string | - | URL to render as PDF. (required)
output | string | pdf | Specify the output format. Possible values: `pdf` , `screenshot` or `html`.
emulateScreenMedia | boolean | `true` | Emulates `@media screen` when rendering the PDF.
enableGPU | boolean | `false` | When set, enables chrome GPU. For windows user, this will always return false. See https://developers.google.com/web/updates/2017/04/headless-chrome
ignoreHttpsErrors | boolean | `false` | Ignores possible HTTPS errors when navigating to a page.
scrollPage | boolean | `false` | Scroll page down before rendering to trigger lazy loading elements.
waitFor | number or string | - | Number in ms to wait before render or selector element to wait before render.
attachmentName | string | - | When set, the `content-disposition` headers are set and browser will download the PDF instead of showing inline. The given string will be used as the name for the file.
viewport.width | number | `1600` | Viewport width.
viewport.height | number | `1200` | Viewport height.
viewport.deviceScaleFactor | number | `1` | Device scale factor (could be thought of as dpr).
viewport.isMobile | boolean | `false` | Whether the meta viewport tag is taken into account.
viewport.hasTouch | boolean | `false` | Specifies if viewport supports touch events.
viewport.isLandscape | boolean | `false` | Specifies if viewport is in landscape mode.
cookies[0][name] | string | - | Cookie name (required)
cookies[0][value] | string | - | Cookie value (required)
cookies[0][url] | string | - | Cookie url
cookies[0][domain] | string | - | Cookie domain
cookies[0][path] | string | - | Cookie path
cookies[0][expires] | number | - | Cookie expiry in unix time
cookies[0][httpOnly] | boolean | - | Cookie httpOnly
cookies[0][secure] | boolean | - | Cookie secure
cookies[0][sameSite] | string | - | `Strict` or `Lax`
goto.timeout | number | `30000` |  Maximum navigation time in milliseconds, defaults to 30 seconds, pass 0 to disable timeout.
goto.waitUntil | string | `networkidle0` | When to consider navigation succeeded. Options: `load`, `domcontentloaded`, `networkidle0`, `networkidle2`. `load` - consider navigation to be finished when the load event is fired. `domcontentloaded` - consider navigation to be finished when the `DOMContentLoaded` event is fired. `networkidle0` - consider navigation to be finished when there are no more than 0 network connections for at least `500` ms. `networkidle2` - consider navigation to be finished when there are no more than 2 network connections for at least `500` ms.
pdf.scale | number | `1` | Scale of the webpage rendering.
pdf.printBackground | boolean | `false`| Print background graphics.
pdf.displayHeaderFooter | boolean | `false` | Display header and footer.
pdf.headerTemplate | string | - | HTML template to use as the header of each page in the PDF. **Currently Puppeteer basically only supports a single line of text and you must use pdf.margins+CSS to make the header appear!** See https://github.com/alvarcarto/url-to-pdf-api/issues/77.
pdf.footerTemplate | string | - | HTML template to use as the footer of each page in the PDF. **Currently Puppeteer basically only supports a single line of text and you must use pdf.margins+CSS to make the footer appear!** See https://github.com/alvarcarto/url-to-pdf-api/issues/77.
pdf.landscape | boolean | `false` | Paper orientation.
pdf.pageRanges | string | - | Paper ranges to print, e.g., '1-5, 8, 11-13'. Defaults to the empty string, which means print all pages.
pdf.format | string | `A4` | Paper format. If set, takes priority over width or height options.
pdf.width | string | - | Paper width, accepts values labeled with units.
pdf.height | string | - | Paper height, accepts values labeled with units.
pdf.fullPage | boolean | - | Create PDF in a single page
pdf.margin.top | string | - | Top margin, accepts values labeled with units.
pdf.margin.right | string | - | Right margin, accepts values labeled with units.
pdf.margin.bottom | string | - | Bottom margin, accepts values labeled with units.
pdf.margin.left | string | - | Left margin, accepts values labeled with units.
screenshot.fullPage | boolean | `true` | When true, takes a screenshot of the full scrollable page.
screenshot.type | string | `png` | Screenshot image type. Possible values: `png`, `jpeg`
screenshot.quality | number | - | The quality of the JPEG image, between 0-100. Only applies when `screenshot.type` is `jpeg`.
screenshot.omitBackground | boolean | `false` | Hides default white background and allows capturing screenshots with transparency.
screenshot.clip.x | number | - | Specifies x-coordinate of top-left corner of clipping region of the page.
screenshot.clip.y | number | - | Specifies y-coordinate of top-left corner of clipping region of the page.
screenshot.clip.width | number | - | Specifies width of clipping region of the page.
screenshot.clip.height | number | - | Specifies height of clipping region of the page.
screenshot.selector | string | - | Specifies css selector to clip the screenshot to.


**Example:**

```bash
curl -o google.pdf https://url-to-pdf-api.herokuapp.com/api/render?url=http://google.com
```


### POST /api/render - (JSON)

All options are passed in a JSON body object.
Parameter names match [Puppeteer options](https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md).

These options are exactly the same as its `GET` counterpart.

**Body**

The only required parameter is `url`.

```js
{
  // Url to render. Either url or html is required
  url: "https://google.com",

  // Either "pdf" or "screenshot"
  output: "pdf",

  // HTML content to render. Either url or html is required
  html: "<html><head></head><body>Your content</body></html>",

  // If we should emulate @media screen instead of print
  emulateScreenMedia: true,

  // If we should ignore HTTPS errors
  ignoreHttpsErrors: false,

  // If true, page is scrolled to the end before rendering
  // Note: this makes rendering a bit slower
  scrollPage: false,

  // Passed to Puppeteer page.waitFor()
  waitFor: null,

  // Passsed to Puppeteer page.setCookies()
  cookies: [{ ... }]

  // Passed to Puppeteer page.setViewport()
  viewport: { ... },

  // Passed to Puppeteer page.goto() as the second argument after url
  goto: { ... },

  // Passed to Puppeteer page.pdf()
  pdf: { ... },

  // Passed to Puppeteer page.screenshot()
  screenshot: { ... },
}
```

**Example:**

```bash
curl -o google.pdf -XPOST -d'{"url": "http://google.com"}' -H"content-type: application/json" http://localhost:9000/api/render
```

```bash
curl -o html.pdf -XPOST -d'{"html": "<body>test</body>"}' -H"content-type: application/json" http://localhost:9000/api/render
```

### POST /api/render - (HTML)

HTML to render is sent in body. All options are passed in query parameters.
Supports exactly the same query parameters as `GET /api/render`, except `url`
paremeter.

*Remember that relative links do not work.*

**Example:**

```bash
curl -o receipt.html https://rawgit.com/wildbit/postmark-templates/master/templates_inlined/receipt.html
curl -o html.pdf -XPOST -d@receipt.html -H"content-type: text/html" http://localhost:9000/api/render?pdf.scale=1
```

### GET /healthcheck

Health check endpoint used for monitoring if the service is still up and running.

```bash
curl -XGET http://localhost:9000/healthcheck
```

## Development

To get this thing running, you have two options: run it in Heroku, or locally.

The code requires Node 8+ (async, await).

#### 1. Heroku deployment

Scroll this readme up to the Deploy to Heroku -button. Click it and follow
instructions.

**WARNING:** *Heroku dynos have a very low amount of RAM. Rendering heavy pages
may cause Chrome instance to crash inside Heroku dyno. 512MB should be
enough for most real-life use cases such as receipts. Some news sites may need
even 2GB of RAM.*


#### 2. Local development

First, clone the repository and cd into it.

* `cp .env.sample .env`
* Fill in the blanks in `.env`

* `npm install`
* `npm start` Start express server locally
* Server runs at http://localhost:9000 or what `$PORT` env defines


### Techstack

* Node 8+ (async, await), written in ES7
* [Express.js](https://expressjs.com/) app with a nice internal architecture, based on [these conventions](https://github.com/kimmobrunfeldt/express-example).
* Hapi-style Joi validation with [express-validation](https://github.com/andrewkeig/express-validation)
* Heroku + [Puppeteer buildpack](https://github.com/jontewks/puppeteer-heroku-buildpack)
* [Puppeteer](https://github.com/GoogleChrome/puppeteer) to control Chrome


================================================
FILE: app.json
================================================
{
  "name": "url-to-pdf-api",
  "description": "Web page PDF rendering done right. Packaged to an easy API.",
  "keywords": [
    "pdf",
    "html",
    "html to pdf",
    "html 2 pdf",
    "render"
  ],
  "website": "https://github.com/alvarcarto/url-to-pdf-api",
  "repository": "https://github.com/alvarcarto/url-to-pdf-api",
  "env": {
    "ALLOW_HTTP": {
      "description": "When set to \"true\", unsecure requests are allowed.",
      "value": "false"
    },
    "API_TOKENS": {
      "description": "Comma-separated list of accepted keys in x-api-key header.",
      "required": false
    }
  },
  "success_url": "/api/render?url=https://github.com/alvarcarto/url-to-pdf-api/blob/master/README.md",
  "buildpacks": [
    {
      "url": "https://github.com/jontewks/puppeteer-heroku-buildpack"
    },
    {
      "url": "http://github.com/heroku/heroku-buildpack-nodejs.git"
    },
    {
      "url": "https://github.com/debitoor/heroku-buildpack-converter-fonts"
    }
  ]
}


================================================
FILE: docs/heroku.xml
================================================
<mxfile userAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36" version="7.4.7" editor="www.draw.io" type="device"><diagram id="39066b65-ae5c-c945-d44c-c8ccc50837b8" name="Page-1">7VhJk+I2FP41HIeSLRb7CHSTSVVPhZo+JHMUtsBKC8uRZZb8+ujJ8obcDEx7Dqkac8D69LS9971FHuHV4fybJFnyRcSUj3wUn0f4aeT7Hp7O9R8glxIJJmEJ7CWLrVADvLJ/qQWRRQsW07wjqITgimVdMBJpSiPVwYiU4tQV2wneXTUje+oArxHhLvoni1ViTzFFDf6Zsn1Srewh27Ml0dteiiK16418vDNP2X0g1VxWPk9ILE4tCD+P8EoKocq3w3lFOei2Uls5bv1Ob71vSVN1z4BpOeBIeEGrHZt9qUulC3MaCvJohJenhCn6mpEIek/a+hpL1IHrlqdfcyXFG10JLqQZjScrhMKw7qm0iTWyY5xXkqlIKUAiVZYNHrbt1mQz82g8JnlitgRrZlSyA1VUwrZYutdwaGU2RGk8NYI+AmF7XioVPb+rM6+2hGY4FXpyedEidoA/t1qz5PZCa8xTQxWMLZa0aOJPLEgsPff13I2J9Iu10jsmdi1EY01e27SKjAp5rBXUsg89M/UXmHI8ta1vVU+qN9LqguY3a/RcEakW4FfNCgZbM9inkaFpXElEnOQ5i0rQisASf1OlLta8pFBCQ0KqROxFSviLENm7JHqCn0Mi7wHGlEoDTd22ulasKGRkpWwY00fd00oK9ZNDUk4UO3an/4ih545rPp8zSfNcg4vN7wP7aa2oHhW3/BTi2RR+D6v+Qy6HA9RxuTp+tlzO83tcbjaExyHHEqtE6nk0tiIpsbO1baHDegav7GASTVvzoAemM82Csz0EJgW0r9EXsqV8I3KmmIDerVBKHLQAh45lnV3a9ijzC16axRZ5ViZEIAGpGjt2BmYs7X6eEqUgky5AB/46ilNvzHQu3THNIDmO9Ir+OiaK6D/ANeXWXLupumQU3jEoLzI6+OT5wTiDoLtsCNjLMGSe7zLswUwwALkmXjeeYzxzyDXt4dZ0CG7hngQ84wryFzvq170yhyyhrbxGwE6uXA9U8GuEswp5IUUaJcBmS+t67kbGHfVHRtOqlPJXoC7ClCm2pAmH/xQ0V7mp3ABlKcuTO6f+SoGHpWp9tHla3xynQfd014q5clDNFnUrIlYsdIlJrN9yulM97nxgcQyL9Abgroe0KY5uUNzI2a37Q/B94nWD6Txwg+ls+pMI71acn6nWfAHr0625M6TiJ9gr0trRnBrMYp5rMV30Icdi3iAVZ3BVcU5ci6G+inMAi9V10a+C8w4OrM3zQMH5gUrSDt0Ilqq2e6OxN9dZDc9D7CHcTW6hP8aTSaDvMMHMR7Nw3p2+LH7tjO174/UiOBw3swThfNYlaHWPrOYtK2hnXsO9+uj3BZBZT8b8v5df6LvlV0yPLKL5pwkobwqXwPUXEm2FeOutwND1Jbn/NuwQv3x+5Lre4wt1BrvKmUPkMHR1IXDvA0FPPAyGiIfI4duveDhcPOxewL2eG/j8g2Hz7lLFvYHXpcpXUShToRoXRi+CxObrHydpBPhwd/Pa2rf8sf2h7V6DOIXRIIUK7uYB3PdpDLuOiR93TN1svpOWiaT5GI2f/wM=</diagram></mxfile>

================================================
FILE: docs/local-examples.md
================================================
# Local examples

curl -o html.pdf -XPOST -d@test/resources/large-linked.html -H"content-type: text/html" https://url-to-pdf-api.herokuapp.com/api/render

================================================
FILE: package.json
================================================
{
  "name": "url-to-pdf-api",
  "version": "1.0.0",
  "description": "Web page PDF rendering done right. Packaged to an easy API.",
  "main": "src/index.js",
  "engines": {
    "node": "10.x.x"
  },
  "scripts": {
    "start": "env-cmd nodemon --watch ./src -e js src/index.js",
    "test": "mocha --timeout 10000 && npm run lint",
    "lint": "eslint ."
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/alvarcarto/url-to-pdf-api.git"
  },
  "author": "Kimmo Brunfeldt",
  "license": "MIT",
  "bugs": {
    "url": "https://github.com/alvarcarto/url-to-pdf-api/issues"
  },
  "homepage": "https://github.com/alvarcarto/url-to-pdf-api#readme",
  "dependencies": {
    "bluebird": "^3.5.0",
    "body-parser": "^1.18.2",
    "compression": "^1.7.1",
    "cors": "^2.8.4",
    "express": "^4.15.5",
    "express-validation": "^1.0.2",
    "joi": "^11.1.1",
    "lodash": "^4.17.15",
    "morgan": "^1.9.1",
    "normalize-url": "^5.0.0",
    "pdf-parse": "^1.1.1",
    "puppeteer": "^2.0.0",
    "server-destroy": "^1.0.1",
    "winston": "^2.3.1"
  },
  "devDependencies": {
    "chai": "^4.1.2",
    "env-cmd": "^9.0.1",
    "eslint": "^4.8.0",
    "eslint-config-airbnb-base": "^12.0.2",
    "eslint-plugin-import": "^2.7.0",
    "mocha": "^4.0.1",
    "nodemon": "^1.12.1",
    "supertest": "^3.0.0"
  }
}


================================================
FILE: src/app.js
================================================
const express = require('express');
const morgan = require('morgan');
const bodyParser = require('body-parser');
const compression = require('compression');
const cors = require('cors');
const logger = require('./util/logger')(__filename);
const errorResponder = require('./middleware/error-responder');
const errorLogger = require('./middleware/error-logger');
const requireHttps = require('./middleware/require-https');
const createRouter = require('./router');
const config = require('./config');

function createApp() {
  const app = express();
  // App is served behind Heroku's router.
  // This is needed to be able to use req.ip or req.secure
  app.enable('trust proxy', 1);
  app.disable('x-powered-by');

  if (config.NODE_ENV !== 'production') {
    app.use(morgan('dev'));
  }

  if (!config.ALLOW_HTTP) {
    logger.info('All requests require HTTPS.');
    app.use(requireHttps());
  } else {
    logger.info('ALLOW_HTTP=true, unsafe requests are allowed. Don\'t use this in production.');
  }

  if (config.ALLOW_URLS) {
    logger.info(`ALLOW_URLS set! Allowed urls patterns are: ${config.ALLOW_URLS.join(' ')}`);
  }

  if (config.DISABLE_HTML_INPUT) {
    logger.info('DISABLE_HTML_INPUT=true! Input HTML is disabled!');
  }

  const corsOpts = {
    origin: config.CORS_ORIGIN,
    methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS', 'HEAD', 'PATCH'],
  };
  logger.info('Using CORS options:', corsOpts);
  app.use(cors(corsOpts));

  // Limit to 10mb if HTML has e.g. inline images
  app.use(bodyParser.text({ limit: '10mb', type: 'text/html' }));
  app.use(bodyParser.json({ limit: '10mb' }));

  app.use(compression({
    // Compress everything over 10 bytes
    threshold: 10,
  }));

  // Initialize routes
  const router = createRouter();
  app.use('/', router);

  app.use(errorLogger());
  app.use(errorResponder());

  return app;
}

module.exports = createApp;


================================================
FILE: src/config.js
================================================
/* eslint-disable no-process-env */

// Env vars should be casted to correct types
const config = {
  PORT: Number(process.env.PORT) || 9000,
  NODE_ENV: process.env.NODE_ENV,
  LOG_LEVEL: process.env.LOG_LEVEL,
  ALLOW_HTTP: process.env.ALLOW_HTTP === 'true',
  DEBUG_MODE: process.env.DEBUG_MODE === 'true',
  DISABLE_HTML_INPUT: process.env.DISABLE_HTML_INPUT === 'true',
  CORS_ORIGIN: process.env.CORS_ORIGIN || '*',
  BROWSER_WS_ENDPOINT: process.env.BROWSER_WS_ENDPOINT,
  BROWSER_EXECUTABLE_PATH: process.env.BROWSER_EXECUTABLE_PATH,
  API_TOKENS: [],
  ALLOW_URLS: [],
};

if (process.env.API_TOKENS) {
  config.API_TOKENS = process.env.API_TOKENS.split(',');
}

if (process.env.ALLOW_URLS) {
  config.ALLOW_URLS = process.env.ALLOW_URLS.split(',');
}

module.exports = config;


================================================
FILE: src/core/render-core.js
================================================
const puppeteer = require('puppeteer');
const _ = require('lodash');
const config = require('../config');
const logger = require('../util/logger')(__filename);


async function createBrowser(opts) {
  const browserOpts = {
    ignoreHTTPSErrors: opts.ignoreHttpsErrors,
    sloMo: config.DEBUG_MODE ? 250 : undefined,
  };
  if (config.BROWSER_WS_ENDPOINT) {
    browserOpts.browserWSEndpoint = config.BROWSER_WS_ENDPOINT;
    return puppeteer.connect(browserOpts);
  }
  if (config.BROWSER_EXECUTABLE_PATH) {
    browserOpts.executablePath = config.BROWSER_EXECUTABLE_PATH;
  }
  browserOpts.headless = !config.DEBUG_MODE;
  browserOpts.args = ['--no-sandbox', '--disable-setuid-sandbox'];
  if (!opts.enableGPU || navigator.userAgent.indexOf('Win') !== -1) {
    browserOpts.args.push('--disable-gpu');
  }
  return puppeteer.launch(browserOpts);
}

async function getFullPageHeight(page) {
  const height = await page.evaluate(() => {
    const { body, documentElement } = document;
    return Math.max(
      body.scrollHeight,
      body.offsetHeight,
      documentElement.clientHeight,
      documentElement.scrollHeight,
      documentElement.offsetHeight
    );
  });
  return height;
}

async function render(_opts = {}) {
  const opts = _.merge({
    cookies: [],
    scrollPage: false,
    emulateScreenMedia: true,
    ignoreHttpsErrors: false,
    html: null,
    viewport: {
      width: 1600,
      height: 1200,
    },
    goto: {
      waitUntil: 'networkidle0',
    },
    output: 'pdf',
    pdf: {
      format: 'A4',
      printBackground: true,
    },
    screenshot: {
      type: 'png',
      fullPage: true,
    },
    failEarly: false,
  }, _opts);

  if ((_.get(_opts, 'pdf.width') && _.get(_opts, 'pdf.height')) || _.get(opts, 'pdf.fullPage')) {
    // pdf.format always overrides width and height, so we must delete it
    // when user explicitly wants to set width and height
    opts.pdf.format = undefined;
  }

  logOpts(opts);

  const browser = await createBrowser(opts);
  const page = await browser.newPage();

  page.on('console', (...args) => logger.info('PAGE LOG:', ...args));

  page.on('error', (err) => {
    logger.error(`Error event emitted: ${err}`);
    logger.error(err.stack);
    browser.close();
  });


  this.failedResponses = [];
  page.on('requestfailed', (request) => {
    this.failedResponses.push(request);
    if (request.url === opts.url) {
      this.mainUrlResponse = request;
    }
  });

  page.on('response', (response) => {
    if (response.status >= 400) {
      this.failedResponses.push(response);
    }

    if (response.url === opts.url) {
      this.mainUrlResponse = response;
    }
  });

  let data;
  try {
    logger.info('Set browser viewport..');
    await page.setViewport(opts.viewport);
    if (opts.emulateScreenMedia) {
      logger.info('Emulate @media screen..');
      await page.emulateMedia('screen');
    }

    if (opts.cookies && opts.cookies.length > 0) {
      logger.info('Setting cookies..');

      const client = await page.target().createCDPSession();

      await client.send('Network.enable');
      await client.send('Network.setCookies', { cookies: opts.cookies });
    }

    if (_.isString(opts.html)) {
      logger.info('Set HTML ..');
      await page.setContent(opts.html, opts.goto);
    } else {
      logger.info(`Goto url ${opts.url} ..`);
      await page.goto(opts.url, opts.goto);
    }

    if (_.isNumber(opts.waitFor) || _.isString(opts.waitFor)) {
      logger.info(`Wait for ${opts.waitFor} ..`);
      await page.waitFor(opts.waitFor);
    }

    if (opts.scrollPage) {
      logger.info('Scroll page ..');
      await scrollPage(page);
    }

    if (this.failedResponses.length) {
      logger.warn(`Number of failed requests: ${this.failedResponses.length}`);
      this.failedResponses.forEach((response) => {
        logger.warn(`${response.status} ${response.url}`);
      });

      if (opts.failEarly === 'all') {
        const err = new Error(`${this.failedResponses.length} requests have failed. See server log for more details.`);
        err.status = 412;
        throw err;
      }
    }
    if (opts.failEarly === 'page' && this.mainUrlResponse.status !== 200) {
      const msg = `Request for ${opts.url} did not directly succeed and returned status ${this.mainUrlResponse.status}`;
      const err = new Error(msg);
      err.status = 412;
      throw err;
    }

    logger.info('Rendering ..');
    if (config.DEBUG_MODE) {
      const msg = `\n\n---------------------------------\n
        Chrome does not support rendering in "headed" mode.
        See this issue: https://github.com/GoogleChrome/puppeteer/issues/576
        \n---------------------------------\n\n
      `;
      throw new Error(msg);
    }

    if (opts.output === 'pdf') {
      if (opts.pdf.fullPage) {
        const height = await getFullPageHeight(page);
        opts.pdf.height = height;
      }
      data = await page.pdf(opts.pdf);
    } else if (opts.output === 'html') {
      data = await page.evaluate(() => document.documentElement.innerHTML);
    } else {
      // This is done because puppeteer throws an error if fullPage and clip is used at the same
      // time even though clip is just empty object {}
      const screenshotOpts = _.cloneDeep(_.omit(opts.screenshot, ['clip']));
      const clipContainsSomething = _.some(opts.screenshot.clip, val => !_.isUndefined(val));
      if (clipContainsSomething) {
        screenshotOpts.clip = opts.screenshot.clip;
      }
      if (_.isNil(opts.screenshot.selector)) {
        data = await page.screenshot(screenshotOpts);
      } else {
        const selElement = await page.$(opts.screenshot.selector);
        const selectorScreenOpts = _.cloneDeep(_.omit(screenshotOpts, ['selector', 'fullPage']));
        if (!_.isNull(selElement)) {
          data = await selElement.screenshot(selectorScreenOpts);
        }
      }
    }
  } catch (err) {
    logger.error(`Error when rendering page: ${err}`);
    logger.error(err.stack);
    throw err;
  } finally {
    logger.info('Closing browser..');
    if (!config.DEBUG_MODE) {
      await browser.close();
    }
  }

  return data;
}

async function scrollPage(page) {
  // Scroll to page end to trigger lazy loading elements
  await page.evaluate(() => {
    const scrollInterval = 100;
    const scrollStep = Math.floor(window.innerHeight / 2);
    const bottomThreshold = 400;

    function bottomPos() {
      return window.pageYOffset + window.innerHeight;
    }

    return new Promise((resolve, reject) => {
      function scrollDown() {
        window.scrollBy(0, scrollStep);

        if (document.body.scrollHeight - bottomPos() < bottomThreshold) {
          window.scrollTo(0, 0);
          setTimeout(resolve, 500);
          return;
        }

        setTimeout(scrollDown, scrollInterval);
      }

      setTimeout(reject, 30000);
      scrollDown();
    });
  });
}

function logOpts(opts) {
  const supressedOpts = _.cloneDeep(opts);
  if (opts.html) {
    supressedOpts.html = '...';
  }

  logger.info(`Rendering with opts: ${JSON.stringify(supressedOpts, null, 2)}`);
}

module.exports = {
  render,
};


================================================
FILE: src/http/render-http.js
================================================
const { URL } = require('url');
const _ = require('lodash');
const normalizeUrl = require('normalize-url');
const ex = require('../util/express');
const renderCore = require('../core/render-core');
const logger = require('../util/logger')(__filename);
const config = require('../config');

function getMimeType(opts) {
  if (opts.output === 'pdf') {
    return 'application/pdf';
  } else if (opts.output === 'html') {
    return 'text/html';
  }

  const type = _.get(opts, 'screenshot.type');
  switch (type) {
    case 'png': return 'image/png';
    case 'jpeg': return 'image/jpeg';
    default: throw new Error(`Unknown screenshot type: ${type}`);
  }
}

const getRender = ex.createRoute((req, res) => {
  const opts = getOptsFromQuery(req.query);

  assertOptionsAllowed(opts);
  return renderCore.render(opts)
    .then((data) => {
      if (opts.attachmentName) {
        res.attachment(opts.attachmentName);
      }
      res.set('content-type', getMimeType(opts));
      res.send(data);
    });
});

const postRender = ex.createRoute((req, res) => {
  const isBodyJson = req.headers['content-type'].includes('application/json');
  if (isBodyJson) {
    const hasContent = _.isString(_.get(req.body, 'url')) || _.isString(_.get(req.body, 'html'));
    if (!hasContent) {
      ex.throwStatus(400, 'Body must contain url or html');
    }
  } else if (_.isString(req.query.url)) {
    ex.throwStatus(400, 'url query parameter is not allowed when body is HTML');
  }

  let opts;
  if (isBodyJson) {
    opts = _.merge({
      output: 'pdf',
      screenshot: {
        type: 'png',
      },
    }, req.body);
  } else {
    opts = getOptsFromQuery(req.query);
    opts.html = req.body;
  }

  assertOptionsAllowed(opts);
  return renderCore.render(opts)
    .then((data) => {
      if (opts.attachmentName) {
        res.attachment(opts.attachmentName);
      }
      res.set('content-type', getMimeType(opts));
      res.send(data);
    });
});

function isHostMatch(host1, host2) {
  return {
    match: host1.toLowerCase() === host2.toLowerCase(),
    type: 'host',
    part1: host1.toLowerCase(),
    part2: host2.toLowerCase(),
  };
}

function isRegexMatch(urlPattern, inputUrl) {
  const re = new RegExp(`${urlPattern}`);

  return {
    match: re.test(inputUrl),
    type: 'regex',
    part1: inputUrl,
    part2: urlPattern,
  };
}

function isNormalizedMatch(url1, url2) {
  return {
    match: normalizeUrl(url1) === normalizeUrl(url2),
    type: 'normalized url',
    part1: url1,
    part2: url2,
  };
}

function isUrlAllowed(inputUrl) {
  const urlParts = new URL(inputUrl);

  const matchInfos = _.map(config.ALLOW_URLS, (urlPattern) => {
    if (_.startsWith(urlPattern, 'host:')) {
      return isHostMatch(urlPattern.split(':')[1], urlParts.host);
    } else if (_.startsWith(urlPattern, 'regex:')) {
      return isRegexMatch(urlPattern.split(':')[1], inputUrl);
    }

    return isNormalizedMatch(urlPattern, inputUrl);
  });

  const isAllowed = _.some(matchInfos, info => info.match);
  if (!isAllowed) {
    logger.info('The url was not allowed because:');
    _.forEach(matchInfos, (info) => {
      logger.info(`${info.part1} !== ${info.part2} (with ${info.type} matching)`);
    });
  }

  return isAllowed;
}

function assertOptionsAllowed(opts) {
  const isDisallowedHtmlInput = !_.isString(opts.url) && config.DISABLE_HTML_INPUT;
  if (isDisallowedHtmlInput) {
    ex.throwStatus(403, 'Rendering HTML input is disabled.');
  }

  if (_.isString(opts.url) && config.ALLOW_URLS.length > 0 && !isUrlAllowed(opts.url)) {
    ex.throwStatus(403, 'Url not allowed.');
  }
}

function getOptsFromQuery(query) {
  const opts = {
    url: query.url,
    attachmentName: query.attachmentName,
    scrollPage: query.scrollPage,
    emulateScreenMedia: query.emulateScreenMedia,
    enableGPU: query.enableGPU,
    ignoreHttpsErrors: query.ignoreHttpsErrors,
    waitFor: query.waitFor,
    output: query.output || 'pdf',
    viewport: {
      width: query['viewport.width'],
      height: query['viewport.height'],
      deviceScaleFactor: query['viewport.deviceScaleFactor'],
      isMobile: query['viewport.isMobile'],
      hasTouch: query['viewport.hasTouch'],
      isLandscape: query['viewport.isLandscape'],
    },
    goto: {
      timeout: query['goto.timeout'],
      waitUntil: query['goto.waitUntil'],
    },
    pdf: {
      fullPage: query['pdf.fullPage'],
      scale: query['pdf.scale'],
      displayHeaderFooter: query['pdf.displayHeaderFooter'],
      footerTemplate: query['pdf.footerTemplate'],
      headerTemplate: query['pdf.headerTemplate'],
      landscape: query['pdf.landscape'],
      pageRanges: query['pdf.pageRanges'],
      format: query['pdf.format'],
      width: query['pdf.width'],
      height: query['pdf.height'],
      margin: {
        top: query['pdf.margin.top'],
        right: query['pdf.margin.right'],
        bottom: query['pdf.margin.bottom'],
        left: query['pdf.margin.left'],
      },
      printBackground: query['pdf.printBackground'],
    },
    screenshot: {
      fullPage: query['screenshot.fullPage'],
      quality: query['screenshot.quality'],
      type: query['screenshot.type'] || 'png',
      clip: {
        x: query['screenshot.clip.x'],
        y: query['screenshot.clip.y'],
        width: query['screenshot.clip.width'],
        height: query['screenshot.clip.height'],
      },
      selector: query['screenshot.selector'],
      omitBackground: query['screenshot.omitBackground'],
    },
  };
  return opts;
}

module.exports = {
  getRender,
  postRender,
};


================================================
FILE: src/index.js
================================================
const createApp = require('./app');
const enableDestroy = require('server-destroy');
const BPromise = require('bluebird');
const logger = require('./util/logger')(__filename);
const config = require('./config');

BPromise.config({
  warnings: config.NODE_ENV !== 'production',
  longStackTraces: true,
});

const app = createApp();
const server = app.listen(config.PORT, () => {
  logger.info(
    'Express server listening on http://localhost:%d/ in %s mode',
    config.PORT,
    app.get('env')
  );
});
enableDestroy(server);

function closeServer(signal) {
  logger.info(`${signal} received`);
  logger.info('Closing http.Server ..');
  server.destroy();
}

// Handle signals gracefully. Heroku will send SIGTERM before idle.
process.on('SIGTERM', closeServer.bind(this, 'SIGTERM'));
process.on('SIGINT', closeServer.bind(this, 'SIGINT(Ctrl-C)'));

server.on('close', () => {
  logger.info('Server closed');
  process.emit('cleanup');

  logger.info('Giving 100ms time to cleanup..');
  // Give a small time frame to clean up
  setTimeout(process.exit, 100);
});


================================================
FILE: src/middleware/error-logger.js
================================================
const _ = require('lodash');
const logger = require('../util/logger')(__filename);

const SLICE_THRESHOLD = 1000;

function createErrorLogger(_opts) {
  const opts = _.merge({
    logRequest: status => status >= 400 && status !== 404 && status !== 503,
    logStackTrace: status => status >= 500 && status !== 503,
  }, _opts);

  return function errorHandler(err, req, res, next) {
    const status = err.status ? err.status : 500;
    const logLevel = getLogLevel(status);
    const log = logger[logLevel];

    if (opts.logRequest(status)) {
      logRequestDetails(logLevel, req, status);
    }

    if (opts.logStackTrace(status)) {
      log(err, err.stack);
    } else {
      log(err.toString());
    }

    next(err);
  };
}

function getLogLevel(status) {
  return status >= 500 ? 'error' : 'warn';
}

function logRequestDetails(logLevel, req) {
  logger[logLevel]('Request headers:', deepSupressLongStrings(req.headers));
  logger[logLevel]('Request parameters:', deepSupressLongStrings(req.params));
  logger[logLevel]('Request body:', req.body);
}

function deepSupressLongStrings(obj) {
  const newObj = {};
  _.each(obj, (val, key) => {
    if (_.isString(val) && val.length > SLICE_THRESHOLD) {
      newObj[key] = `${val.slice(0, SLICE_THRESHOLD)} ... [CONTENT SLICED]`;
    } else if (_.isPlainObject(val)) {
      deepSupressLongStrings(val);
    } else {
      newObj[key] = val;
    }
  });

  return newObj;
}

module.exports = createErrorLogger;


================================================
FILE: src/middleware/error-responder.js
================================================
const http = require('http');
const _ = require('lodash');

// This responder is assuming that all <500 errors are safe to be responded
// with their .message attribute.
// DO NOT write sensitive data into error messages.
function createErrorResponder(_opts) {
  const opts = _.merge({
    isErrorSafeToRespond: status => status < 500,
  }, _opts);

  // 4 params needed for Express to know it's a error handler middleware
  // eslint-disable-next-line
  return function errorResponder(err, req, res, next) {
    let message;
    const status = err.status ? err.status : 500;

    const httpMessage = http.STATUS_CODES[status];
    if (opts.isErrorSafeToRespond(status)) {
      // eslint-disable-next-line
      message = err.message;
    } else {
      message = httpMessage;
    }

    const isPrettyValidationErr = _.has(err, 'errors');
    const body = isPrettyValidationErr
      ? JSON.stringify(err)
      : { status, statusText: httpMessage, messages: [message] };

    res.status(status);
    res.send(body);
  };
}

module.exports = createErrorResponder;


================================================
FILE: src/middleware/require-https.js
================================================
const createRequireHttps = () => function RequireHttps(req, res, next) {
  if (req.secure) {
    // Allow requests only over https
    return next();
  }

  const err = new Error('Only HTTPS allowed.');
  err.status = 403;
  next(err);
};

module.exports = createRequireHttps;


================================================
FILE: src/router.js
================================================
const _ = require('lodash');
const validate = require('express-validation');
const express = require('express');
const render = require('./http/render-http');
const config = require('./config');
const logger = require('./util/logger')(__filename);
const { renderQuerySchema, renderBodySchema, sharedQuerySchema } = require('./util/validation');

function createRouter() {
  const router = express.Router();

  if (!_.isEmpty(config.API_TOKENS)) {
    logger.info('x-api-key authentication required');

    router.use('/*', (req, res, next) => {
      const userToken = req.headers['x-api-key'];
      if (!_.includes(config.API_TOKENS, userToken)) {
        const err = new Error('Invalid API token in x-api-key header.');
        err.status = 401;
        return next(err);
      }

      return next();
    });
  } else {
    logger.warn('Warning: no authentication required to use the API');
  }

  const getRenderSchema = {
    query: renderQuerySchema,
    options: {
      allowUnknownBody: false,
      allowUnknownQuery: false,
    },
  };
  router.get('/api/render', validate(getRenderSchema), render.getRender);

  const postRenderSchema = {
    body: renderBodySchema,
    query: sharedQuerySchema,
    options: {
      allowUnknownBody: false,
      allowUnknownQuery: false,

      // Without this option, text body causes an error
      // https://github.com/AndrewKeig/express-validation/issues/36
      contextRequest: true,
    },
  };
  router.post('/api/render', validate(postRenderSchema), render.postRender);

  router.get('/healthcheck', (req, res) => res.status(200).send('OK'));

  return router;
}

module.exports = createRouter;


================================================
FILE: src/util/express.js
================================================
const _ = require('lodash');
const BPromise = require('bluebird');

// Route which assumes that the Promise `func` returns, will be resolved
// with data which will be sent as json response.
function createJsonRoute(func) {
  return createRoute(func, (data, req, res) => {
    res.json(data);
  });
}

// Generic route creator
// Factory function to create a new route to reduce boilerplate in controllers
// and make it easier to interact with promises.
// `func` must return a promise
// `responseHandler` receives the data from asynchronous `func` as the first
//                   parameter
// Factory function to create a new 'raw' route handler.
// When using this function directly instead of `createJsonRoute`, you must
// send a response to express' `res` object.
function createRoute(func, responseHandler) {
  return function route(req, res, next) {
    try {
      const callback = _.isFunction(responseHandler)
        ? func.bind(this, req, res)
        : func.bind(this, req, res, next);

      let valuePromise = callback();
      if (!_.isFunction(_.get(valuePromise, 'then'))) {
        // It was a not a Promise, so wrap it as a Promise
        valuePromise = BPromise.resolve(valuePromise);
      }

      if (_.isFunction(responseHandler)) {
        valuePromise
          .then(data => responseHandler(data, req, res, next))
          .catch(next);
      } else {
        valuePromise.catch(next);
      }
    } catch (err) {
      next(err);
    }
  };
}

function throwStatus(status, message) {
  const err = new Error(message);
  err.status = status;
  throw err;
}

module.exports = {
  createRoute,
  createJsonRoute,
  throwStatus,
};


================================================
FILE: src/util/logger.js
================================================
const path = require('path');
const winston = require('winston');
const _ = require('lodash');
const config = require('../config');

const COLORIZE = config.NODE_ENV === 'development';

function createLogger(filePath) {
  const fileName = path.basename(filePath);

  const logger = new winston.Logger({
    transports: [new winston.transports.Console({
      colorize: COLORIZE,
      label: fileName,
      timestamp: true,
    })],
  });

  _setLevelForTransports(logger, config.LOG_LEVEL || 'info');
  return logger;
}

function _setLevelForTransports(logger, level) {
  _.each(logger.transports, (transport) => {
    // eslint-disable-next-line
    transport.level = level;
  });
}

module.exports = createLogger;


================================================
FILE: src/util/require-envs.js
================================================
/* eslint-disable no-process-env */

const _ = require('lodash');

function requireEnvs(arr) {
  _.each(arr, (varName) => {
    if (!process.env[varName]) {
      throw new Error(`Environment variable not set: ${varName}`);
    }
  });
}

module.exports = requireEnvs;


================================================
FILE: src/util/validation.js
================================================
const Joi = require('joi');

const urlSchema = Joi.string().uri({
  scheme: [
    'http',
    'https',
  ],
});

const cookieSchema = Joi.object({
  name: Joi.string().required(),
  value: Joi.string().required(),
  url: Joi.string(),
  domain: Joi.string(),
  path: Joi.string(),
  expires: Joi.number().min(1),
  httpOnly: Joi.boolean(),
  secure: Joi.boolean(),
  sameSite: Joi.string().regex(/^(Strict|Lax)$/),
});

const sharedQuerySchema = Joi.object({
  attachmentName: Joi.string(),
  scrollPage: Joi.boolean(),
  emulateScreenMedia: Joi.boolean(),
  enableGPU: Joi.boolean(),
  ignoreHttpsErrors: Joi.boolean(),
  waitFor: Joi.alternatives([
    Joi.number().min(1).max(60000),
    Joi.string().min(1).max(2000),
  ]),
  cookies: Joi.array().items(cookieSchema),
  output: Joi.string().valid(['pdf', 'screenshot', 'html']),
  'viewport.width': Joi.number().min(1).max(30000),
  'viewport.height': Joi.number().min(1).max(30000),
  'viewport.deviceScaleFactor': Joi.number().min(0).max(100),
  'viewport.isMobile': Joi.boolean(),
  'viewport.hasTouch': Joi.boolean(),
  'viewport.isLandscape': Joi.boolean(),
  'goto.timeout': Joi.number().min(0).max(60000),
  'goto.waitUntil': Joi.string().min(1).max(2000),
  'pdf.scale': Joi.number().min(0).max(1000),
  'pdf.displayHeaderFooter': Joi.boolean(),
  'pdf.landscape': Joi.boolean(),
  'pdf.pageRanges': Joi.string().min(1).max(2000),
  'pdf.format': Joi.string().min(1).max(2000),
  'pdf.width': Joi.string().min(1).max(2000),
  'pdf.height': Joi.string().min(1).max(2000),
  'pdf.fullPage': Joi.boolean(),
  'pdf.footerTemplate': Joi.string(),
  'pdf.headerTemplate': Joi.string(),
  'pdf.margin.top': Joi.string().min(1).max(2000),
  'pdf.margin.right': Joi.string().min(1).max(2000),
  'pdf.margin.bottom': Joi.string().min(1).max(2000),
  'pdf.margin.left': Joi.string().min(1).max(2000),
  'pdf.printBackground': Joi.boolean(),
  'screenshot.fullPage': Joi.boolean(),
  'screenshot.quality': Joi.number().integer().min(0).max(100),
  'screenshot.type': Joi.string().valid(['png', 'jpeg']),
  'screenshot.clip.x': Joi.number(),
  'screenshot.clip.y': Joi.number(),
  'screenshot.clip.width': Joi.number(),
  'screenshot.clip.height': Joi.number(),
  'screenshot.selector': Joi.string().regex(/(#|\.).*/),
  'screenshot.omitBackground': Joi.boolean(),
});

const renderQuerySchema = Joi.object({
  url: urlSchema.required(),
}).concat(sharedQuerySchema);

const renderBodyObject = Joi.object({
  url: urlSchema,
  html: Joi.string(),
  attachmentName: Joi.string(),
  scrollPage: Joi.boolean(),
  ignoreHttpsErrors: Joi.boolean(),
  emulateScreenMedia: Joi.boolean(),
  cookies: Joi.array().items(cookieSchema),
  output: Joi.string().valid(['pdf', 'screenshot', 'html']),
  viewport: Joi.object({
    width: Joi.number().min(1).max(30000),
    height: Joi.number().min(1).max(30000),
    deviceScaleFactor: Joi.number().min(0).max(100),
    isMobile: Joi.boolean(),
    hasTouch: Joi.boolean(),
    isLandscape: Joi.boolean(),
  }),
  waitFor: Joi.alternatives([
    Joi.number().min(1).max(60000),
    Joi.string().min(1).max(2000),
  ]),
  goto: Joi.object({
    timeout: Joi.number().min(0).max(60000),
    waitUntil: Joi.string().min(1).max(2000),
  }),
  pdf: Joi.object({
    scale: Joi.number().min(0).max(1000),
    displayHeaderFooter: Joi.boolean(),
    landscape: Joi.boolean(),
    pageRanges: Joi.string().min(1).max(2000),
    format: Joi.string().min(1).max(2000),
    width: Joi.string().min(1).max(2000),
    height: Joi.string().min(1).max(2000),
    fullPage: Joi.boolean(),
    footerTemplate: Joi.string(),
    headerTemplate: Joi.string(),
    margin: Joi.object({
      top: Joi.string().min(1).max(2000),
      right: Joi.string().min(1).max(2000),
      bottom: Joi.string().min(1).max(2000),
      left: Joi.string().min(1).max(2000),
    }),
    printBackground: Joi.boolean(),
  }),
  screenshot: Joi.object({
    fullPage: Joi.boolean(),
    quality: Joi.number().integer().min(0).max(100),
    type: Joi.string().valid(['png', 'jpeg']),
    clip: {
      x: Joi.number(),
      y: Joi.number(),
      width: Joi.number(),
      height: Joi.number(),
    },
    selector: Joi.string().regex(/(#|\.).*/),
    omitBackground: Joi.boolean(),
  }),
  failEarly: Joi.string(),
});

const renderBodySchema = Joi.alternatives([
  Joi.string(),
  renderBodyObject,
]);

module.exports = {
  renderQuerySchema,
  renderBodySchema,
  sharedQuerySchema,
};



================================================
FILE: test/resources/large-linked.html
================================================
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>Test Page</title>
    <style>
      img {
        width: 100%;
      }
    </style>
  </head>
  <body>
    <h1>Page</h1>
    <img src="https://images.unsplash.com/photo-1440658172029-9d9e5cdc127c?auto=format&fit=crop&w=2026&q=60&ixid=dW5zcGxhc2guY29tOzs7Ozs%3D">
    <img src="https://images.unsplash.com/photo-1440658172029-9d9e5cdc127c?auto=format&fit=crop&w=2026&q=60&ixid=dW5zcGxhc2guY29tOzs7Ozs%3D">
    <img src="https://images.unsplash.com/photo-1440658172029-9d9e5cdc127c?auto=format&fit=crop&w=2026&q=60&ixid=dW5zcGxhc2guY29tOzs7Ozs%3D">
  </body>
</html>


================================================
FILE: test/resources/large.html
================================================
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>Test Page</title>
    <style>
      img {
        width: 100%;
      }
    </style>
  </head>
  <body>
    <h1>Page</h1>
    <img src="data:image/jpg;base64,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
Download .txt
gitextract_altncbd2/

├── .eslintrc
├── .gitignore
├── .travis.yml
├── .vscode/
│   └── launch.json
├── CHANGELOG.md
├── LICENSE
├── Procfile
├── README.md
├── app.json
├── docs/
│   ├── heroku.xml
│   ├── local-examples.md
│   └── logo.sketch
├── package.json
├── src/
│   ├── app.js
│   ├── config.js
│   ├── core/
│   │   └── render-core.js
│   ├── http/
│   │   └── render-http.js
│   ├── index.js
│   ├── middleware/
│   │   ├── error-logger.js
│   │   ├── error-responder.js
│   │   └── require-https.js
│   ├── router.js
│   └── util/
│       ├── express.js
│       ├── logger.js
│       ├── require-envs.js
│       └── validation.js
└── test/
    ├── resources/
    │   ├── large-linked.html
    │   ├── large.html
    │   ├── postmark-receipt.html
    │   └── special-chars.html
    ├── test-all.js
    └── util/
        └── index.js
Download .txt
SYMBOL INDEX (32 symbols across 12 files)

FILE: src/app.js
  function createApp (line 13) | function createApp() {

FILE: src/core/render-core.js
  function createBrowser (line 7) | async function createBrowser(opts) {
  function getFullPageHeight (line 27) | async function getFullPageHeight(page) {
  function render (line 41) | async function render(_opts = {}) {
  function scrollPage (line 210) | async function scrollPage(page) {
  function logOpts (line 240) | function logOpts(opts) {

FILE: src/http/render-http.js
  function getMimeType (line 9) | function getMimeType(opts) {
  function isHostMatch (line 73) | function isHostMatch(host1, host2) {
  function isRegexMatch (line 82) | function isRegexMatch(urlPattern, inputUrl) {
  function isNormalizedMatch (line 93) | function isNormalizedMatch(url1, url2) {
  function isUrlAllowed (line 102) | function isUrlAllowed(inputUrl) {
  function assertOptionsAllowed (line 126) | function assertOptionsAllowed(opts) {
  function getOptsFromQuery (line 137) | function getOptsFromQuery(query) {

FILE: src/index.js
  function closeServer (line 22) | function closeServer(signal) {

FILE: src/middleware/error-logger.js
  constant SLICE_THRESHOLD (line 4) | const SLICE_THRESHOLD = 1000;
  function createErrorLogger (line 6) | function createErrorLogger(_opts) {
  function getLogLevel (line 31) | function getLogLevel(status) {
  function logRequestDetails (line 35) | function logRequestDetails(logLevel, req) {
  function deepSupressLongStrings (line 41) | function deepSupressLongStrings(obj) {

FILE: src/middleware/error-responder.js
  function createErrorResponder (line 7) | function createErrorResponder(_opts) {

FILE: src/router.js
  function createRouter (line 9) | function createRouter() {

FILE: src/util/express.js
  function createJsonRoute (line 6) | function createJsonRoute(func) {
  function createRoute (line 21) | function createRoute(func, responseHandler) {
  function throwStatus (line 47) | function throwStatus(status, message) {

FILE: src/util/logger.js
  constant COLORIZE (line 6) | const COLORIZE = config.NODE_ENV === 'development';
  function createLogger (line 8) | function createLogger(filePath) {
  function _setLevelForTransports (line 23) | function _setLevelForTransports(logger, level) {

FILE: src/util/require-envs.js
  function requireEnvs (line 5) | function requireEnvs(arr) {

FILE: test/test-all.js
  constant DEBUG (line 11) | const DEBUG = false;
  function normalisePdfText (line 19) | function normalisePdfText(text) {
  function getPdfTextContent (line 26) | function getPdfTextContent(buffer, opts = {}) {

FILE: test/util/index.js
  function getResource (line 4) | function getResource(name) {
Condensed preview — 32 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (6,284K chars).
[
  {
    "path": ".eslintrc",
    "chars": 729,
    "preview": "{\n  \"env\": {\n      \"browser\":    true,\n      \"amd\":        true,\n      \"node\":       true,\n      \"es6\":        true\n  },"
  },
  {
    "path": ".gitignore",
    "chars": 718,
    "preview": ".env\n.DS_Store\n.idea\n\n# Logs\nlogs\n*.log\nnpm-debug.log*\n\n# Runtime data\npids\n*.pid\n*.seed\n*.pid.lock\n\n# Directory for ins"
  },
  {
    "path": ".travis.yml",
    "chars": 61,
    "preview": "language: node_js\nnode_js:\n  - \"10\"\nenv:\n  - ALLOW_HTTP=true\n"
  },
  {
    "path": ".vscode/launch.json",
    "chars": 583,
    "preview": "{\n    // Use IntelliSense to learn about possible attributes.\n    // Hover to view descriptions of existing attributes.\n"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 170,
    "preview": "# CHANGELOG\n\n* change the `:html` output to return `document.documentElement.innerHTML` instead of previously used `docu"
  },
  {
    "path": "LICENSE",
    "chars": 1058,
    "preview": "Copyright (c) 2017 Kimmo Brunfeldt\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this"
  },
  {
    "path": "Procfile",
    "chars": 42,
    "preview": "web: NODE_ENV=production node src/index.js"
  },
  {
    "path": "README.md",
    "chars": 15521,
    "preview": "[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/alvarcart"
  },
  {
    "path": "app.json",
    "chars": 984,
    "preview": "{\n  \"name\": \"url-to-pdf-api\",\n  \"description\": \"Web page PDF rendering done right. Packaged to an easy API.\",\n  \"keyword"
  },
  {
    "path": "docs/heroku.xml",
    "chars": 1837,
    "preview": "<mxfile userAgent=\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.31"
  },
  {
    "path": "docs/local-examples.md",
    "chars": 153,
    "preview": "# Local examples\n\ncurl -o html.pdf -XPOST -d@test/resources/large-linked.html -H\"content-type: text/html\" https://url-to"
  },
  {
    "path": "package.json",
    "chars": 1334,
    "preview": "{\n  \"name\": \"url-to-pdf-api\",\n  \"version\": \"1.0.0\",\n  \"description\": \"Web page PDF rendering done right. Packaged to an "
  },
  {
    "path": "src/app.js",
    "chars": 1890,
    "preview": "const express = require('express');\nconst morgan = require('morgan');\nconst bodyParser = require('body-parser');\nconst c"
  },
  {
    "path": "src/config.js",
    "chars": 787,
    "preview": "/* eslint-disable no-process-env */\n\n// Env vars should be casted to correct types\nconst config = {\n  PORT: Number(proce"
  },
  {
    "path": "src/core/render-core.js",
    "chars": 7156,
    "preview": "const puppeteer = require('puppeteer');\nconst _ = require('lodash');\nconst config = require('../config');\nconst logger ="
  },
  {
    "path": "src/http/render-http.js",
    "chars": 5565,
    "preview": "const { URL } = require('url');\nconst _ = require('lodash');\nconst normalizeUrl = require('normalize-url');\nconst ex = r"
  },
  {
    "path": "src/index.js",
    "chars": 1067,
    "preview": "const createApp = require('./app');\nconst enableDestroy = require('server-destroy');\nconst BPromise = require('bluebird'"
  },
  {
    "path": "src/middleware/error-logger.js",
    "chars": 1469,
    "preview": "const _ = require('lodash');\nconst logger = require('../util/logger')(__filename);\n\nconst SLICE_THRESHOLD = 1000;\n\nfunct"
  },
  {
    "path": "src/middleware/error-responder.js",
    "chars": 1066,
    "preview": "const http = require('http');\nconst _ = require('lodash');\n\n// This responder is assuming that all <500 errors are safe "
  },
  {
    "path": "src/middleware/require-https.js",
    "chars": 277,
    "preview": "const createRequireHttps = () => function RequireHttps(req, res, next) {\n  if (req.secure) {\n    // Allow requests only "
  },
  {
    "path": "src/router.js",
    "chars": 1655,
    "preview": "const _ = require('lodash');\nconst validate = require('express-validation');\nconst express = require('express');\nconst r"
  },
  {
    "path": "src/util/express.js",
    "chars": 1663,
    "preview": "const _ = require('lodash');\nconst BPromise = require('bluebird');\n\n// Route which assumes that the Promise `func` retur"
  },
  {
    "path": "src/util/logger.js",
    "chars": 718,
    "preview": "const path = require('path');\nconst winston = require('winston');\nconst _ = require('lodash');\nconst config = require('."
  },
  {
    "path": "src/util/require-envs.js",
    "chars": 269,
    "preview": "/* eslint-disable no-process-env */\n\nconst _ = require('lodash');\n\nfunction requireEnvs(arr) {\n  _.each(arr, (varName) ="
  },
  {
    "path": "src/util/validation.js",
    "chars": 4439,
    "preview": "const Joi = require('joi');\n\nconst urlSchema = Joi.string().uri({\n  scheme: [\n    'http',\n    'https',\n  ],\n});\n\nconst c"
  },
  {
    "path": "test/resources/large-linked.html",
    "chars": 778,
    "preview": "<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"x-ua-compatible\" content=\"ie=edge\">\n    <meta"
  },
  {
    "path": "test/resources/large.html",
    "chars": 6203098,
    "preview": "<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"x-ua-compatible\" content=\"ie=edge\">\n    <meta"
  },
  {
    "path": "test/resources/postmark-receipt.html",
    "chars": 17740,
    "preview": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\""
  },
  {
    "path": "test/resources/special-chars.html",
    "chars": 165,
    "preview": "<html>\n<head>\n  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n</head>\n <body>\n    <p>\n     special"
  },
  {
    "path": "test/test-all.js",
    "chars": 6322,
    "preview": "/* eslint-env mocha */\n\nconst chai = require('chai');\nconst fs = require('fs');\nconst request = require('supertest');\nco"
  },
  {
    "path": "test/util/index.js",
    "chars": 248,
    "preview": "const path = require('path');\nconst fs = require('fs');\n\nfunction getResource(name) {\n  const filePath = path.join(__dir"
  }
]

// ... and 1 more files (download for full content)

About this extraction

This page contains the full source code of the alvarcarto/url-to-pdf-api GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 32 files (6.0 MB), approximately 1.6M tokens, and a symbol index with 32 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!