{"id":15511600,"url":"https://github.com/foo-software/lighthouse-check","last_synced_at":"2025-07-10T22:45:32.455Z","repository":{"id":35117455,"uuid":"208474338","full_name":"foo-software/lighthouse-check","owner":"foo-software","description":"An NPM module for automated Lighthouse audits.","archived":false,"fork":false,"pushed_at":"2024-05-08T01:42:18.000Z","size":1455,"stargazers_count":63,"open_issues_count":2,"forks_count":13,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-25T13:01:58.331Z","etag":null,"topics":["accessibility","best-practices","cli","docker","lighthouse","lighthouse-audits","nodejs","npm","performance","progressive-web-app","seo","slack","slack-webhook","website-performance","website-performance-monitoring"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/foo-software.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-09-14T17:06:36.000Z","updated_at":"2024-08-20T16:52:57.000Z","dependencies_parsed_at":"2024-05-07T22:24:07.663Z","dependency_job_id":"35fbd3a3-4d19-4305-8226-30d2d7ba5bb5","html_url":"https://github.com/foo-software/lighthouse-check","commit_stats":{"total_commits":374,"total_committers":5,"mean_commits":74.8,"dds":"0.19786096256684493","last_synced_commit":"d7c4583dedbdefc8ad5622eb5a8785f10c0b4e07"},"previous_names":["foo-software/lighthouse-trigger"],"tags_count":141,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foo-software%2Flighthouse-check","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foo-software%2Flighthouse-check/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foo-software%2Flighthouse-check/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foo-software%2Flighthouse-check/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/foo-software","download_url":"https://codeload.github.com/foo-software/lighthouse-check/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229995963,"owners_count":18156911,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["accessibility","best-practices","cli","docker","lighthouse","lighthouse-audits","nodejs","npm","performance","progressive-web-app","seo","slack","slack-webhook","website-performance","website-performance-monitoring"],"created_at":"2024-10-02T09:53:08.114Z","updated_at":"2024-12-19T20:07:44.706Z","avatar_url":"https://github.com/foo-software.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# `@foo-software/lighthouse-check`\n\n\u003e An NPM module and CLI to run Lighthouse audits programmatically. This project aims to add bells and whistles to automated Lighthouse testing for DevOps workflows. Easily implement in your Continuous Integration or Continuous Delivery pipeline.\n\n\u003cimg src=\"https://s3.amazonaws.com/foo.software/images/marketing/screenshots/lighthouse-audit-report.png\" /\u003e\n\nThis project provides **two ways of running audits** - locally in your own environment or remotely via [Foo's Automated Lighthouse Check](https://www.foo.software/lighthouse) API. For basic usage, running locally will suffice, but if you'd like to maintain a historical record of Lighthouse audits and utilize other features, you can run audits remotely by following the [steps and examples](#foo-api-usage).\n\n# Features\n\n- [Simple usage](#basic-usage) - only one parameter required.\n- Run **multiple** Lighthouse audits with one command.\n- Optionally run Lighthouse remotely and save audits with the [Foo's Automated Lighthouse Check](https://www.foo.software/lighthouse) API.\n- Optionally [save an HTML report locally](#saving-reports-locally).\n- Optionally [save an HTML report in an AWS S3 bucket](#saving-reports-to-s3).\n- [Easy setup with Slack Webhooks](#implementing-with-slack). Just add your Webhook URL and `lighthouse-check` will send results and optionally include versioning data like branch, author, PR, etc (typically from GitHub).\n- PR comments of audit scores.\n- NPM module for programmatic [usage](#basic-usage).\n- CLI - see [CLI Usage](#cli-usage).\n- Docker - see [Docker Usage](#docker).\n- Support for implementations like [CircleCI](#implementing-with-circleci).\n\n# Table of Contents\n\n- [Install](#install)\n- [Usage](#usage)\n  - [Basic Usage](#basic-usage)\n  - [Foo's Automated Lighthouse Check API Usage](#foos-automated-lighthouse-check-api-usage)\n  - [Saving Reports Locally](#saving-reports-locally)\n  - [Saving Reports to S3](#saving-reports-to-s3)\n  - [Implementing with Slack](#implementing-with-slack)\n  - [Enabling PR Comments](#enabling-pr-comments)\n  - [Enforcing Minimum Scores](#enforcing-minimum-scores)\n  - [Implementing with CircleCI](#implementing-with-circleci)\n  - [Implementing with GitHub Actions](#implementing-with-gitHub-actions)\n- [CLI](#cli)\n- [Docker](#docker)\n- [Options](#options)\n\n# Install\n\n```bash\nnpm install @foo-software/lighthouse-check\n```\n\n# Usage\n\n`@foo-software/lighthouse-check` provides several functionalities beyond standard Lighthouse audits. It's recommended to start with a basic implementation and expand on it as needed.\n\n## Basic Usage\n\nCalling `lighthouseCheck` will run Lighthouse audits against `https://www.foo.software/lighthouse` and `https://www.foo.software/contact`.\n\n```javascript\nimport { lighthouseCheck } from '@foo-software/lighthouse-check';\n\n(async () =\u003e {\n  const response = await lighthouseCheck({\n    urls: [\n      'https://www.foo.software/lighthouse',\n      'https://www.foo.software/contact',\n    ],\n  });\n\n  console.log('response', response);\n})();\n```\n\nOr via CLI.\n\n```bash\n$ lighthouse-check --urls \"https://www.foo.software/lighthouse,https://www.foo.software/contact\"\n```\n\nThe CLI will log the results.\n\n\u003cimg alt=\"lighthouse-check CLI output\" src=\"https://s3.amazonaws.com/foo.software/images/marketing/screenshots/lighthouse-check-cli-output.jpg\" width=\"600\" /\u003e\n\n## Foo's Automated Lighthouse Check API Usage\n\n[Foo's Automated Lighthouse Check](https://www.foo.software/lighthouse) can monitor your website's quality by running audits automatically! It can provide a historical record of audits over time to track progression and degradation of website quality. [Create a free account](https://www.foo.software/lighthouse/register) to get started. With this, not only will you have automatic audits, but also any that you trigger additionally. Below are steps to trigger audits on URLs that you've created in your account.\n\n#### Trigger Audits on All Pages in an Account\n\n- Navigate to [your account details](https://www.foo.software/lighthouse/account), click into \"Account Management\" and make note of the \"API Token\".\n- Use the account token as the [`apiToken` option](#options).\n\n\u003e Basic example with the CLI\n\n```bash\n$ lighthouse-check --apiToken \"abcdefg\"\n```\n\n#### Trigger Audits on Only Certain Pages in an Account\n\n- Navigate to [your account details](https://www.foo.software/lighthouse/account), click into \"Account Management\" and make note of the \"API Token\".\n- Navigate to [your dashboard](https://www.foo.software/lighthouse/dashboard) and once you've created URLs to monitor, click on the \"More\" link of the URL you'd like to use. From the URL details screen, click the \"Edit\" link at the top of the page. You should see an \"API Token\" on this page. It represents the token for this specific page (not to be confused with an **account** API token).\n- Use the account token as the [`apiToken` option](#options) and page token (or group of page tokens) as [`urls` option](#options).\n\n\u003e Basic example with the CLI\n\n```bash\n$ lighthouse-check --apiToken \"abcdefg\" \\\n  --urls \"hijklmnop,qrstuv\"\n```\n\nYou can combine usage with other options for a more advanced setup. Example below.\n\n\u003e Runs audits remotely and posts results as comments in a PR\n\n```bash\n$ lighthouse-check --apiToken \"abcdefg\" \\\n  --urls \"hijklmnop,qrstuv\" \\\n  --prCommentAccessToken \"abcpersonaltoken\" \\\n  --prCommentUrl \"https://api.github.com/repos/foo-software/lighthouse-check/pulls/3/reviews\"\n```\n\n## Saving Reports Locally\n\nYou may notice above we had two lines of output; `Report` and `Local Report`. These values are populated when options are provided to save the report locally and to S3. These options are not required and can be used together or alone.\n\nSaving a report locally example below.\n\n```javascript\nimport { lighthouseCheck } from '@foo-software/lighthouse-check';\n\n(async () =\u003e {\n  const response = await lighthouseCheck({\n    // relative to the file. NOTE: when using the CLI `--outputDirectory` is relative\n    // to where the command is being run from.\n    outputDirectory: '../artifacts',\n    urls: [\n      'https://www.foo.software/lighthouse',\n      'https://www.foo.software/contact',\n    ],\n  });\n\n  console.log('response', response);\n})();\n```\n\nOr via CLI.\n\n```bash\n$ lighthouse-check --urls \"https://www.foo.software/lighthouse,https://www.foo.software/contact\" \\\n  --ouputDirectory \"./artifacts\"\n```\n\n## Saving Reports to S3\n\n```javascript\nimport { lighthouseCheck } from '@foo-software/lighthouse-check';\n\n(async () =\u003e {\n  const response = await lighthouseCheck({\n    awsAccessKeyId: 'abc123',\n    awsBucket: 'my-bucket',\n    awsRegion: 'us-east-1',\n    awsSecretAccessKey: 'def456',\n    urls: [\n      'https://www.foo.software/lighthouse',\n      'https://www.foo.software/contact',\n    ],\n  });\n\n  console.log('response', response);\n})();\n```\n\nOr via CLI.\n\n```bash\n$ lighthouse-check --urls \"https://www.foo.software/lighthouse,https://www.foo.software/contact\" \\\n  --awsAccessKeyId abc123 \\\n  --awsBucket my-bucket \\\n  --awsRegion us-east-1 \\\n  --awsSecretAccessKey def456 \\\n```\n\n## Implementing with Slack\n\nBelow is a basic Slack implementation. To see how you can accomplish notifications with code versioning data - see the [CircleCI example](#implementing-with-circleci) (ie GitHub authors, PRs, branches, etc).\n\n```javascript\nimport { lighthouseCheck } from '@foo-software/lighthouse-check';\n\n(async () =\u003e {\n  const response = await lighthouseCheck({\n    slackWebhookUrl: 'https://www.my-slack-webhook-url.com',\n    urls: [\n      'https://www.foo.software/lighthouse',\n      'https://www.foo.software/contact',\n    ],\n  });\n\n  console.log('response', response);\n})();\n```\n\nOr via CLI.\n\n```bash\n$ lighthouse-check --urls \"https://www.foo.software/lighthouse,https://www.foo.software/contact\" \\\n  --slackWebhookUrl \"https://www.my-slack-webhook-url.com\"\n```\n\nThe below screenshot shows an advanced implementation as detailed in the [CircleCI example](#implementing-with-circleci).\n\n\u003cimg alt=\"Lighthouse Check Slack notification\" src=\"https://lighthouse-check.s3.amazonaws.com/images/github-actions/github-action-lighthouse-check-slack.png\" width=\"600\" /\u003e\n\n## Enabling PR Comments\n\nPopulate [`prCommentAccessToken` and `prCommentUrl` options](#options) to enable comments on pull requests.\n\n\u003cimg alt=\"Lighthouse Check PR comments\" src=\"https://lighthouse-check.s3.amazonaws.com/images/lighthouse-check-pr-comment.png\" width=\"400\"\u003e\n\n## Enforcing Minimum Scores\n\nYou can use `validateStatus` to enforce minimum scores. This could be handy in a DevOps workflow for example.\n\n```javascript\nimport {\n  lighthouseCheck,\n  validateStatus,\n} from '@foo-software/lighthouse-check';\n\n(async () =\u003e {\n  try {\n    const response = await lighthouseCheck({\n      awsAccessKeyId: 'abc123',\n      awsBucket: 'my-bucket',\n      awsRegion: 'us-east-1',\n      awsSecretAccessKey: 'def456',\n      urls: [\n        'https://www.foo.software/lighthouse',\n        'https://www.foo.software/contact',\n      ],\n    });\n\n    const status = await validateStatus({\n      minAccessibilityScore: 90,\n      minBestPracticesScore: 90,\n      minPerformanceScore: 70,\n      minProgressiveWebAppScore: 70,\n      minSeoScore: 80,\n      results: response,\n    });\n\n    console.log('all good?', status); // 'all good? true'\n  } catch (error) {\n    console.log('error', error.message);\n\n    // log would look like:\n    // Minimum score requirements failed:\n    // https://www.foo.software/lighthouse: Performance: minimum score: 70, actual score: 64\n    // https://www.foo.software/contact: Performance: minimum score: 70, actual score: 44\n  }\n})();\n```\n\nOr via CLI. **Important**: `outputDirectory` value must be defined and the same in both commands.\n\n```bash\n$ lighthouse-check --urls \"https://www.foo.software/lighthouse,https://www.foo.software/contact\" \\\n  --outputDirectory /tmp/artifacts \\\n$ lighthouse-check-status --outputDirectory /tmp/artifacts \\\n  --minAccessibilityScore 90 \\\n  --minBestPracticesScore 90 \\\n  --minPerformanceScore 70 \\\n  --minProgressiveWebAppScore 70 \\\n  --minSeoScore 80\n```\n\n## Implementing with CircleCI\n\nIn the below example we run Lighthouse audits on two URLs, save reports as artifacts, deploy reports to S3 and send a Slack notification with GitHub info. We defined environment variables like `LIGHTHOUSE_CHECK_AWS_BUCKET` in the [CircleCI project settings](https://circleci.com/docs/2.0/settings/#project-settings-page).\n\nThis implementation utilizes a CircleCI Orb - [lighthouse-check-orb](https://circleci.com/orbs/registry/orb/foo-software/lighthouse-check).\n\n```yaml\nversion: 2.1\n\norbs:\n  lighthouse-check: foo-software/lighthouse-check@0.0.6 # ideally later :)\n\njobs:\n  test:\n    executor: lighthouse-check/default\n    steps:\n      - lighthouse-check/audit:\n          urls: https://www.foo.software/lighthouse,https://www.foo.software/contact\n          # this serves as an example, however if the below environment variables\n          # are set - the below params aren't even necessary. for example - if\n          # LIGHTHOUSE_CHECK_AWS_ACCESS_KEY_ID is already set - you don't need\n          # the line below.\n          awsAccessKeyId: $LIGHTHOUSE_CHECK_AWS_ACCESS_KEY_ID\n          awsBucket: $LIGHTHOUSE_CHECK_AWS_BUCKET\n          awsRegion: $LIGHTHOUSE_CHECK_AWS_REGION\n          awsSecretAccessKey: $LIGHTHOUSE_CHECK_AWS_SECRET_ACCESS_KEY\n          slackWebhookUrl: $LIGHTHOUSE_CHECK_SLACK_WEBHOOK_URL\n\nworkflows:\n  test:\n    jobs:\n      - test\n```\n\n\u003cimg alt=\"lighthouse-check CircleCI post-deploy\" src=\"https://s3.amazonaws.com/foo.software/images/marketing/screenshots/lighthouse-check-circle-ci.png\" width=\"600\" /\u003e\n\nReports are saved as \"artifacts\".\n\n\u003cimg alt=\"lighthouse-check CircleCI post-deploy artifacts\" src=\"https://s3.amazonaws.com/foo.software/images/marketing/screenshots/lighthouse-check-artifact-circle-ci.png\" width=\"600\" /\u003e\n\nUpon clicking the HTML file artifacts, we can see the full report!\n\n\u003cimg alt=\"lighthouse-check CircleCI post-deploy artifact Lighthouse report\" src=\"https://s3.amazonaws.com/foo.software/images/marketing/screenshots/lighthouse-check-artifact-circle-ci-report.png\" width=\"600\" /\u003e\n\nIn the example above we also uploaded reports to S3. Why would we do this? If we want to persist historical data - we don't want to rely on temporary cloud storage.\n\n## Implementing with GitHub Actions\n\nSimilar to the CircleCI implementation, we can also create a workflow implementation with [GitHub Actions](https://github.com/features/actions) using [`lighthouse-check-action`](https://github.com/foo-software/lighthouse-check-action). Example below.\n\n\u003e `.github/workflows/test.yml`\n\n```yaml\nname: Test Lighthouse Check\non: [push]\n\njobs:\n  lighthouse-check:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@master\n      - run: mkdir /tmp/artifacts\n      - name: Run Lighthouse\n        uses: foo-software/lighthouse-check-action@master\n        with:\n          accessToken: ${{ secrets.LIGHTHOUSE_CHECK_GITHUB_ACCESS_TOKEN }}\n          author: ${{ github.actor }}\n          awsAccessKeyId: ${{ secrets.LIGHTHOUSE_CHECK_AWS_ACCESS_KEY_ID }}\n          awsBucket: ${{ secrets.LIGHTHOUSE_CHECK_AWS_BUCKET }}\n          awsRegion: ${{ secrets.LIGHTHOUSE_CHECK_AWS_REGION }}\n          awsSecretAccessKey: ${{ secrets.LIGHTHOUSE_CHECK_AWS_SECRET_ACCESS_KEY }}\n          branch: ${{ github.ref }}\n          outputDirectory: /tmp/artifacts\n          urls: 'https://www.foo.software/lighthouse,https://www.foo.software/contact'\n          sha: ${{ github.sha }}\n          slackWebhookUrl: ${{ secrets.LIGHTHOUSE_CHECK_WEBHOOK_URL }}\n      - name: Upload artifacts\n        uses: actions/upload-artifact@master\n        with:\n          name: Lighthouse reports\n          path: /tmp/artifacts\n```\n\n## Overriding Config and Option Defaults\n\nYou can override default config and options by specifying `overridesJsonFile` option. Contents of this overrides JSON file can have two possible fields; `options` and `config`. These two fields are eventually used by Lighthouse to populate `opts` and `config` arguments respectively as illustrated in [Using programmatically](https://github.com/GoogleChrome/lighthouse/blob/master/docs/readme.md#using-programmatically). The two objects populating this JSON file are merged shallowly with the default [config](https://github.com/foo-software/lighthouse-check/blob/master/src/__snapshots__/lighthouseConfig.test.js.snap) and [options](https://github.com/foo-software/lighthouse-check/blob/master/src/__snapshots__/lighthouseOptions.test.js.snap).\n\n\u003e Example content of `overridesJsonFile`\n\n```json\n{\n  \"config\": {\n    \"settings\": {\n      \"onlyCategories\": [\"performance\"]\n    }\n  },\n  \"options\": {\n    \"chromeFlags\": [\"--disable-dev-shm-usage\"]\n  }\n}\n```\n\n## CLI\n\nRunning `lighthouse-check` in the example below will run Lighthouse audits against `https://www.foo.software/lighthouse` and `https://www.foo.software/contact` and output a report in the '/tmp/artifacts' directory.\n\nFormat is `--option \u003cargument\u003e`. Example below.\n\n```bash\n$ lighthouse-check --urls \"https://www.foo.software/lighthouse,https://www.foo.software/contact\" \\\n  --outputDirectory /tmp/artifacts\n```\n\n\u003e `lighthouse-check-status` example\n\n```bash\n$ lighthouse-check-status --outputDirectory /tmp/artifacts \\\n  --minAccessibilityScore 90 \\\n  --minBestPracticesScore 90 \\\n  --minPerformanceScore 70 \\\n  --minProgressiveWebAppScore 70 \\\n  --minSeoScore 80\n```\n\n## CLI Options\n\nAll options mirror [the NPM module](#options). The only difference is that array options like `urls` are passed in as a comma-separated string as an argument using the CLI.\n\n## Docker\n\n```bash\n$ docker pull foosoftware/lighthouse-check:latest\n$ docker run foosoftware/lighthouse-check:latest \\\n  lighthouse-check --verbose \\\n  --urls \"https://www.foo.software/lighthouse,https://www.foo.software/contact\"\n```\n\n## Options\n\n`lighthouse-check` functions accept a single configuration object.\n\n#### `lighthouseCheck`\n\nYou can choose from two ways of running audits - locally in your own environment or remotely via Foo's Automated Lighthouse Check API. You can think of local runs as the default implementation. For directions about how to run remotely see the [Foo's Automated Lighthouse Check API Usage](#foo-api-usage) section. We denote which options are available to a run type with the `Run Type` values of either `local`, `remote`, or `both`.\n\nBelow are options for the exported `lighthouseCheck` function or `lighthouse-check` command with CLI.\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003eName\u003c/th\u003e\n    \u003cth\u003eDescription\u003c/th\u003e\n    \u003cth\u003eType\u003c/th\u003e\n    \u003cth\u003eRun Type\u003c/th\u003e\n    \u003cth\u003eDefault\u003c/th\u003e\n    \u003cth\u003eRequired\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eapiToken\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eThe foo.software account API token found in the dashboard.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eremote\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eauthor\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eFor Slack notifications: A user handle, typically from GitHub.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eboth\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eawsAccessKeyId\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eThe AWS \u003ccode\u003eaccessKeyId\u003c/code\u003e for an S3 bucket.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003elocal\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eawsBucket\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eThe AWS \u003ccode\u003eBucket\u003c/code\u003e for an S3 bucket.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003elocal\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eawsRegion\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eThe AWS \u003ccode\u003eregion\u003c/code\u003e for an S3 bucket.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003elocal\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eawsSecretAccessKey\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eThe AWS \u003ccode\u003esecretAccessKey\u003c/code\u003e for an S3 bucket.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003elocal\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ebranch\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eFor Slack notifications: A version control branch, typically from GitHub.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eboth\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003econfigFile\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eA configuration file path in JSON format which holds all options defined here. This file should be relative to the file being interpretted.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eboth\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eextraHeaders\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eHTTP Header key/value pairs to send in requests. If using the CLI this will need to be stringified, for example: \u003ccode\u003e\"{\\\"Cookie\\\":\\\"monster=blue\\\", \\\"x-men\\\":\\\"wolverine\\\"}\"\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eobject\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003elocal\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eemulatedFormFactor\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eLighthouse setting only used for local audits. See \u003ca href=\"src/lighthouseConfig.js\"\u003esrc/lighthouseConfig.js\u003c/a\u003e comments for details.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eoneOf(['mobile', 'desktop', 'all'])\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003elocal\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003elocale\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eA locale for Lighthouse reports. Example: \u003ccode\u003eja\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003elocal\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003emaxRetries\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eThe maximum number of times to retry.\u003cstrong\u003eNote\u003c/strong\u003e: This is not supported when running against Foo's API as retry logic is already in place.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003enumber\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003elocal\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003e0\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003emaxWaitForLoad\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eThe maximum amount of time to wait for a page to load in ms.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003enumber\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003elocal\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eoverridesJsonFile\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eA JSON file with config and option fields to overrides defaults. \u003ca href=\"#overriding-config-and-option-defaults\"\u003eRead more here\u003c/a\u003e.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003elocal\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eoutputDirectory\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eAn absolute directory path to output report. You can do this an an alternative or combined with an S3 upload.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003elocal\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003epr\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eFor Slack notifications: A version control pull request URL, typically from GitHub.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003elocal\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eprCommentAccessToken\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line\"\u003eAccess token\u003c/a\u003e of a user to post PR comments.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eboth\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eprCommentEnabled\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eIf \u003ccode\u003etrue\u003c/code\u003e and \u003ccode\u003eprCommentAccessToken\u003c/code\u003e is set along with \u003ccode\u003eprCommentUrl\u003c/code\u003e, scores will be posted as comments.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eboolean\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eboth\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003etrue\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eprCommentSaveOld\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eIf \u003ccode\u003etrue\u003c/code\u003e and PR comment options are set, new comments will be posted on every change vs only updating once comment with most recent scores.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eboolean\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eboth\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003efalse\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eprCommentUrl\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eAn endpoint to post comments to. Typically this will be from \u003ca href=\"https://developer.github.com/v3/pulls/reviews/#create-a-pull-request-review\"\u003eGitHub's API\u003c/a\u003e. Example: \u003ccode\u003ehttps://api.github.com/repos/:owner/:repo/pulls/:pull_number/reviews\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eboth\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eslackWebhookUrl\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eA Slack Incoming Webhook URL to send notifications to.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eboth\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003esha\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eFor Slack notifications: A version control \u003ccode\u003esha\u003c/code\u003e, typically from GitHub.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eboth\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003etag\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eAn optional tag or name (example: \u003ccode\u003ebuild #2\u003c/code\u003e or \u003ccode\u003ev0.0.2\u003c/code\u003e).\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eremote\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ethrottlingMethod\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eLighthouse setting only used for local audits. See \u003ca href=\"src/lighthouseConfig.js\"\u003esrc/lighthouseConfig.js\u003c/a\u003e comments for details.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eoneOf(['simulate', 'devtools', 'provided'])\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003elocal\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ethrottling\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eLighthouse setting only used for local audits. See \u003ca href=\"src/lighthouseConfig.js\"\u003esrc/lighthouseConfig.js\u003c/a\u003e comments for details.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eoneOf(['mobileSlow4G', 'mobileRegluar3G', 'desktopDense4G'])\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003elocal\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003etimeout\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eMinutes to timeout. If \u003ccode\u003ewait\u003c/code\u003e is \u003ccode\u003etrue\u003c/code\u003e (it is by default), we wait for results. If this timeout is reached before results are received an error is thrown.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003enumber\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003elocal\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003e10\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eurls\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eAn array of URLs (or page API tokens if running remotely). In the CLI this value should be a comma-separated list.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eboth\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eyes\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003everbose\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eIf \u003ccode\u003etrue\u003c/code\u003e, print out steps and results to the console.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eboolean\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eboth\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003etrue\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ewait\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eIf \u003ccode\u003etrue\u003c/code\u003e, waits for all audit results to be returned, otherwise URLs are only enqueued.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eboolean\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eremote\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003etrue\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n#### `validateStatus`\n\n`results` parameter is required or alternatively `outputDirectory`. To utilize `outputDirectory` - the same value would also need to be specified when calling `lighthouseCheck`.\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003eName\u003c/th\u003e\n    \u003cth\u003eDescription\u003c/th\u003e\n    \u003cth\u003eType\u003c/th\u003e\n    \u003cth\u003eDefault\u003c/th\u003e\n    \u003cth\u003eRequired\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eminAccessibilityScore\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eThe minimum accessibility Lighthouse score required.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003enumber\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eminBestPracticesScore\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eThe minimum best practices Lighthouse score required.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003enumber\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eminPerformanceScore\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eThe minimum performance Lighthouse score required.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003enumber\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eminProgressiveWebAppScore\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eThe minimum progressive web app Lighthouse score required.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003enumber\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eminSeoScore\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eThe minimum SEO Lighthouse score required.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003enumber\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eoutputDirectory\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eAn absolute directory path to output report. When the results object isn't specified, this value will need to be.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eresults\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eA results object representing results of Lighthouse audits.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003enumber\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eundefined\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eno\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## Return Payload\n\n`lighthouseCheck` function returns a promise which either resolves as an object or rejects as an error object. In both cases the payload will be of the same shape documented below.\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003eName\u003c/th\u003e\n    \u003cth\u003eDescription\u003c/th\u003e\n    \u003cth\u003eType\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ecode\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eA code to signify failure or succes.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eoneOf([\"SUCCESS\", \"ERROR_GENERIC\", ...])\u003c/code\u003e see \u003ca href=\"src/errorCodes.js\"\u003eerrorCodes.js\u003c/a\u003e for all error codes.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003edata\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eAn array of results returned by the API.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray\u003c/code\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003emessage\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eA message to elaborate on the code. This field isn't always populated.\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## Credits\n\n\u003e \u003cimg src=\"https://lighthouse-check.s3.amazonaws.com/images/logo-simple-blue-light-512.png\" width=\"100\" height=\"100\" align=\"left\" /\u003e This package was brought to you by [Foo - a website performance monitoring tool](https://www.foo.software/lighthouse). Create a **free account** with standard performance testing. Automatic website performance testing, uptime checks, charts showing performance metrics by day, month, and year. Foo also provides real time notifications when performance and uptime notifications when changes are detected. Users can integrate email, Slack and PagerDuty notifications.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoo-software%2Flighthouse-check","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffoo-software%2Flighthouse-check","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoo-software%2Flighthouse-check/lists"}