pax_global_header00006660000000000000000000000064137104473700014520gustar00rootroot0000000000000052 comment=b77cdcbaf3443af59bc7dc8ef2cffb437201134e node-har-validator-5.1.5/000077500000000000000000000000001371044737000152105ustar00rootroot00000000000000node-har-validator-5.1.5/.editorconfig000066400000000000000000000002741371044737000176700ustar00rootroot00000000000000root = true [*] charset = utf-8 end_of_line = lf indent_size = 2 indent_style = space insert_final_newline = true trim_trailing_whitespace = true [*.md] trim_trailing_whitespace = false node-har-validator-5.1.5/.github/000077500000000000000000000000001371044737000165505ustar00rootroot00000000000000node-har-validator-5.1.5/.github/dependabot.yml000066400000000000000000000004171371044737000214020ustar00rootroot00000000000000version: 2 updates: - package-ecosystem: "github-actions" open-pull-requests-limit: 10 directory: "/" schedule: interval: "daily" - package-ecosystem: "npm" open-pull-requests-limit: 10 directory: "/" schedule: interval: "daily" node-har-validator-5.1.5/.github/linters/000077500000000000000000000000001371044737000202305ustar00rootroot00000000000000node-har-validator-5.1.5/.github/linters/.markdown-lint.yml000066400000000000000000000047411371044737000236250ustar00rootroot00000000000000# Heading levels should only increment by one level at a time MD001: false # Heading style MD003: style: atx # Unordered list style MD004: style: dash # Inconsistent indentation for list items at the same level MD005: true # Unordered list indentation MD007: indent: 2 start_indented: false # Trailing spaces MD009: br_spaces: 2 list_item_empty_lines: false strict: false # Hard tabs MD010: code_blocks: false # Reversed link syntax MD011: true # Multiple consecutive blank lines MD012: maximum: 1 # Line length MD013: line_length: 180 strict: true stern: true # Dollar signs used before commands without showing output MD014: false # No space after hash on atx style heading MD018: true # Multiple spaces after hash on atx style heading MD019: true # No space inside hashes on closed atx style heading MD020: true # Multiple spaces inside hashes on closed atx style heading MD021: true # Headings should be surrounded by blank lines MD022: lines_above: 1 lines_below: 1 # Headings must start at the beginning of the line MD023: true # Multiple headings with the same content MD024: allow_different_nesting: true # Multiple top level headings in the same document MD025: true # Trailing punctuation in heading MD026: punctuation: ".,;:!?。,;:!?" # Multiple spaces after blockquote symbol MD027: true # Blank line inside blockquote MD028: true # Ordered list item prefix MD029: style: one_or_ordered # Spaces after list markers MD030: ul_single: 1 ol_single: 1 ul_multi: 1 ol_multi: 1 # Fenced code blocks should be surrounded by blank lines MD031: list_items: true # Lists should be surrounded by blank lines MD032: true # inline HTML MD033: allowed_elements: [] # Bare URL used MD034: true # Horizontal rule style MD035: style: "---" # Emphasis used instead of a heading MD036: punctuation: ".,;:!?。,;:!?" # Spaces inside emphasis markers MD037: true # Spaces inside code span elements MD038: true # Spaces inside link text MD039: true # Fenced code blocks should have a language specified MD040: true # First line in file should be a top level heading MD041: true # No empty links MD042: true # Required heading structure MD043: false # Proper names should have the correct capitalization MD044: false # Images should have alternate text (alt text) MD045: false # Code block style MD046: style: fenced # Files should end with a single newline character MD047: true # Code fence style MD048: style: backtick node-har-validator-5.1.5/.github/workflows/000077500000000000000000000000001371044737000206055ustar00rootroot00000000000000node-har-validator-5.1.5/.github/workflows/release.yml000066400000000000000000000021451371044737000227520ustar00rootroot00000000000000name: release on: push: branches: - master jobs: dependencies: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2.1.1 # run checks - run: npm audit --audit-level=moderate - run: npx updated test: needs: dependencies strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] node-version: [10, 12, 13, 14] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 - uses: actions/cache@v2 with: path: ~/.npm key: client-${{ hashFiles('**/package-lock.json') }} - uses: actions/setup-node@v2.1.1 with: node-version: ${{ matrix.node-version }} # run test - run: npm ci - run: npm run test release: needs: test runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2.1.1 # release - run: npx semantic-release env: NPM_TOKEN: ${{ secrets.NPM_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} node-har-validator-5.1.5/.github/workflows/super-linter.yml000066400000000000000000000003221371044737000237560ustar00rootroot00000000000000name: super-linter on: push: branches-ignore: - master jobs: super-linter: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: docker://github/super-linter:v3 node-har-validator-5.1.5/.github/workflows/test.yml000066400000000000000000000014711371044737000223120ustar00rootroot00000000000000name: test on: push: branches-ignore: - master jobs: dependencies: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2.1.1 # run checks - run: npm audit --audit-level=moderate - run: npx updated test: needs: dependencies strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] node-version: [10, 12, 13, 14] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 - uses: actions/cache@v2 with: path: ~/.npm key: client-${{ hashFiles('**/package-lock.json') }} - uses: actions/setup-node@v2.1.1 with: node-version: ${{ matrix.node-version }} # run test - run: npm ci - run: npm run test node-har-validator-5.1.5/.gitignore000066400000000000000000000000531371044737000171760ustar00rootroot00000000000000*.log /.nyc_output /coverage /node_modules node-har-validator-5.1.5/.releaserc000066400000000000000000000011151371044737000171540ustar00rootroot00000000000000{ "plugins": [ ["@semantic-release/commit-analyzer", { "releaseRules": [ {"breaking": true, "release": "major"}, {"revert": true, "release": "patch"}, {"type": "build", "release": "patch"}, {"type": "docs", "release": "patch"}, {"type": "feat", "release": "minor"}, {"type": "fix", "release": "patch"}, {"type": "perf", "release": "patch"}, {"type": "refactor", "release": "patch"} ] }], "@semantic-release/release-notes-generator", "@semantic-release/github", "@semantic-release/npm" ] } node-har-validator-5.1.5/LICENSE000066400000000000000000000021051371044737000162130ustar00rootroot00000000000000MIT License Copyright (c) 2018 Ahmad Nassri 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. node-har-validator-5.1.5/README.md000066400000000000000000000031541371044737000164720ustar00rootroot00000000000000# HAR Validator [![license][license-img]][license-url] [![version][npm-img]][npm-url] [![super linter][super-linter-img]][super-linter-url] [![test][test-img]][test-url] [![release][release-img]][release-url] [license-url]: LICENSE [license-img]: https://badgen.net/github/license/ahmadnassri/node-har-validator [npm-url]: https://www.npmjs.com/package/har-validator [npm-img]: https://badgen.net/npm/v/har-validator [super-linter-url]: https://github.com/ahmadnassri/node-har-validator/actions?query=workflow%3Asuper-linter [super-linter-img]: https://github.com/ahmadnassri/node-har-validator/workflows/super-linter/badge.svg [test-url]: https://github.com/ahmadnassri/node-har-validator/actions?query=workflow%3Atest [test-img]: https://github.com/ahmadnassri/node-har-validator/workflows/test/badge.svg [release-url]: https://github.com/ahmadnassri/node-har-validator/actions?query=workflow%3Arelease [release-img]: https://github.com/ahmadnassri/node-har-validator/workflows/release/badge.svg > Extremely fast HTTP Archive ([HAR](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md)) validator using JSON Schema. ## Install ```bash npm install har-validator ``` ## CLI Usage Please refer to [`har-cli`](https://github.com/ahmadnassri/har-cli) for more info. ## API **Note**: as of [`v2.0.0`](https://github.com/ahmadnassri/node-har-validator/releases/tag/v2.0.0) this module defaults to Promise based API. _For backward compatibility with `v1.x` an [async/callback API](docs/async.md) is also provided_ - [async API](docs/async.md) - [callback API](docs/async.md) - [Promise API](docs/promise.md) _(default)_ node-har-validator-5.1.5/docker-compose.yml000066400000000000000000000012341371044737000206450ustar00rootroot00000000000000version: '3.8' x-node: &node tty: true volumes: - type: bind source: . target: /app working_dir: /app command: npm run test services: lint: image: github/super-linter:v3 volumes: - ./:/tmp/lint environment: RUN_LOCAL: 'true' MULTI_STATUS: 'false' test: <<: *node image: node:alpine # command: npm run test:coverage depends_on: - node10 - node12 - node13 - node14 node10: <<: *node image: node:10-alpine node12: <<: *node image: node:12-alpine node13: <<: *node image: node:13-alpine node14: <<: *node image: node:14-alpine node-har-validator-5.1.5/docs/000077500000000000000000000000001371044737000161405ustar00rootroot00000000000000node-har-validator-5.1.5/docs/async.md000066400000000000000000000105271371044737000176040ustar00rootroot00000000000000# async API ```js import * as validate from 'har-validator/lib/async' import { request, response } from 'har-validator/lib/async' ``` ### validate.afterRequest(data) > Returns `true` or `false`. - **data**: `Object` _(Required)_ a [afterRequest"](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#cache) objects ```js let isValid = validate.afterRequest(data) ``` ### validate.beforeRequest(data) > Returns `true` or `false`. - **data**: `Object` _(Required)_ a ["afterRequest"](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#cache) objects ```js let isValid = validate.beforeRequest(data) ``` ### validate.browser(data) > Returns `true` or `false`. - **data**: `Object` _(Required)_ a [browser](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#browser) object ```js let isValid = validate.browser(data) ``` ### validate.cache(data) > Returns `true` or `false`. - **data**: `Object` _(Required)_ a [cache](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#cache) object ```js let isValid = validate.cache(data) ``` ### validate.content(data) > Returns `true` or `false`. - **data**: `Object` _(Required)_ a [content](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#content) object ```js let isValid = validate.content(data) ``` ### validate.cookie(data) > Returns `true` or `false`. - **data**: `Object` _(Required)_ a [cookie](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#cookies) object ```js let isValid = validate.cookie(data) ``` ### validate.creator(data) > Returns `true` or `false`. - **data**: `Object` _(Required)_ a [creator](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#creator) object ```js let isValid = validate.creator(data) ``` ### validate.entry(data) > Returns `true` or `false`. - **data**: `Object` _(Required)_ an [entry](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#entries) object ```js let isValid = validate.entry(data) ``` ### validate.har(data) > Returns `true` or `false`. - **data**: `Object` _(Required)_ a full [HAR](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md) object ```js let isValid = validate.har(data) ``` ### validate.header(data) > Returns `true` or `false`. - **data**: `Object` _(Required)_ a [header](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#headers) object ```js let isValid = validate.header(data) ``` ### validate.log(data) > Returns `true` or `false`. - **data**: `Object` _(Required)_ a [log](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#log) object ```js let isValid = validate.log(data) ``` ### validate.page(data) > Returns `true` or `false`. - **data**: `Object` _(Required)_ a [page](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#pages) object ```js let isValid = validate.page(data) ``` ### validate.pageTimings(data) > Returns `true` or `false`. - **data**: `Object` _(Required)_ a [pageTimings](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#pageTimings) object ```js let isValid = validate.pageTimings(data) ``` ### validate.postData(data) > Returns `true` or `false`. - **data**: `Object` _(Required)_ a [postData](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#postData) object ```js let isValid = validate.postData(data) ``` ### validate.query(data) > Returns `true` or `false`. - **data**: `Object` _(Required)_ a [queryString](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#querystring) object ```js let isValid = validate.query(data) ``` ### validate.request(data) > Returns `true` or `false`. - **data**: `Object` _(Required)_ a [request](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#request) object ```js let isValid = validate.request(data) ``` ### validate.response(data) > Returns `true` or `false`. - **data**: `Object` _(Required)_ a [response](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#response) object ```js let isValid = validate.cacheEntry(data) ``` ### validate.timings(data) > Returns `true` or `false`. - **data**: `Object` _(Required)_ a [timings](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#timings) object ```js let isValid = validate.timings(data) ``` node-har-validator-5.1.5/docs/callback.md000066400000000000000000000155511371044737000202250ustar00rootroot00000000000000# Callback API ```js import * as validate from 'har-validator/lib/async' import { request, response } from 'har-validator/lib/async' ``` ### validate.afterRequest(data [, callback]) - **data**: `Object` _(Required)_ a [afterRequest"](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#cache) objects - **callback**: `Function` callback function with signature of `(err, valid)` ```js validate.afterRequest(data, (err, valid) => { if (err) console.error(err.errors) if (valid) console.log('✔️') }) ``` ### validate.beforeRequest(data [, callback]) - **data**: `Object` _(Required)_ a ["beforeRequest"](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#cache) objects - **callback**: `Function` callback function with signature of `(err, valid)` ```js validate.beforeRequest(data, (err, valid) => { if (err) console.error(err.errors) if (valid) console.log('✔️') }) ``` ### validate.browser(data [, callback]) - **data**: `Object` _(Required)_ a [browser](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#browser) object - **callback**: `Function` callback function with signature of `(err, valid)` ```js validate.browser(data, (err, valid) => { if (err) console.error(err.errors) if (valid) console.log('✔️') }) ``` ### validate.cache(data [, callback]) - **data**: `Object` _(Required)_ a [cache](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#cache) object - **callback**: `Function` callback function with signature of `(err, valid)` ```js validate.cache(data, (err, valid) => { if (err) console.error(err.errors) if (valid) console.log('✔️') }) ``` ### validate.content(data [, callback]) - **data**: `Object` _(Required)_ a [content](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#content) object - **callback**: `Function` callback function with signature of `(err, valid)` ```js validate.content(data, (err, valid) => { if (err) console.error(err.errors) if (valid) console.log('✔️') }) ``` ### validate.cookie(data [, callback]) - **data**: `Object` _(Required)_ a [cookie](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#cookies) object - **callback**: `Function` callback function with signature of `(err, valid)` ```js validate.cookie(data, (err, valid) => { if (err) console.error(err.errors) if (valid) console.log('✔️') }) ``` ### validate.creator(data [, callback]) - **data**: `Object` _(Required)_ a [creator](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#creator) object - **callback**: `Function` callback function with signature of `(err, valid)` ```js validate.creator(data, (err, valid) => { if (err) console.error(err.errors) if (valid) console.log('✔️') }) ``` ### validate.entry(data [, callback]) - **data**: `Object` _(Required)_ an [entry](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#entries) object - **callback**: `Function` callback function with signature of `(err, valid)` ```js validate.entry(data, (err, valid) => { if (err) console.error(err.errors) if (valid) console.log('✔️') }) ``` ### validate.har(data [, callback]) - **data**: `Object` _(Required)_ a full [HAR](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md) object - **callback**: `Function` callback function with signature of `(err, valid)` ```js validate.har(data, (err, valid) => { if (err) console.error(err.errors) if (valid) console.log('✔️') }) ``` ### validate.header(data [, callback]) - **data**: `Object` _(Required)_ a [header](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#headers) object - **callback**: `Function` callback function with signature of `(err, valid)` ```js validate.header(data, (err, valid) => { if (err) console.error(err.errors) if (valid) console.log('✔️') }) ``` ### validate.log(data [, callback]) - **data**: `Object` _(Required)_ a [log](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#log) object - **callback**: `Function` callback function with signature of `(err, valid)` ```js validate.log(data, (err, valid) => { if (err) console.error(err.errors) if (valid) console.log('✔️') }) ``` ### validate.page(data [, callback]) - **data**: `Object` _(Required)_ a [page](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#page) object - **callback**: `Function` callback function with signature of `(err, valid)` ```js validate.page(data, (err, valid) => { if (err) console.error(err.errors) if (valid) console.log('✔️') }) ``` ### validate.pageTimings(data [, callback]) - **data**: `Object` _(Required)_ a [pageTimings](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#pageTimings) object - **callback**: `Function` callback function with signature of `(err, valid)` ```js validate.pageTimings(data, (err, valid) => { if (err) console.error(err.errors) if (valid) console.log('✔️') }) ``` ### validate.postData(data [, callback]) - **data**: `Object` _(Required)_ a [postData](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#postdata') object - **callback**: `Function` callback function with signature of `(err, valid)` ```js validate.postData(data, (err, valid) => { if (err) console.error(err.errors) if (valid) console.log('✔️') }) ``` ### validate.query(data [, callback]) - **data**: `Object` _(Required)_ a [queryString](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#querystring) object - **callback**: `Function` callback function with signature of `(err, valid)` ```js validate.query(data, (err, valid) => { if (err) console.error(err.errors) if (valid) console.log('✔️') }) ``` ### validate.request(data [, callback]) - **data**: `Object` _(Required)_ a [request](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#request) object - **callback**: `Function` callback function with signature of `(err, valid)` ```js validate.request(data, (err, valid) => { if (err) console.error(err.errors) if (valid) console.log('✔️') }) ``` ### validate.response(data [, callback]) - **data**: `Object` _(Required)_ a [response](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#response) object - **callback**: `Function` callback function with signature of `(err, valid)` ```js validate.cacheEntry(data, (err, valid) => { if (err) console.error(err.errors) if (valid) console.log('✔️') }) ``` ### validate.timings(data [, callback]) - **data**: `Object` _(Required)_ a [timings](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#timings) object - **callback**: `Function` callback function with signature of `(err, valid)` ```js validate.timings(data, (err, valid) => { if (err) console.error(err.errors) if (valid) console.log('✔️') }) ``` node-har-validator-5.1.5/docs/promise.md000066400000000000000000000133621371044737000201450ustar00rootroot00000000000000# Promise API ```js import * as validate from 'har-validator' import * as validate from 'har-validator/lib/promise' import { request, response } from 'har-validator/lib/promise' ``` ### validate.afterRequest(data) > Returns a promise that resolves to the valid object. - **data**: `Object` _(Required)_ a [afterRequest"](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#cache) objects ```js validate.afterRequest(data) .then((data) => console.log('✔️')) .catch(console.error) ``` ### validate.beforeRequest(data) > Returns a promise that resolves to the valid object. - **data**: `Object` _(Required)_ a ["beforeRequest"](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#cache) objects ```js validate.beforeRequest(data) .then((data) => console.log('✔️')) .catch(console.error) ``` ### validate.browser(data) > Returns a promise that resolves to the valid object. - **data**: `Object` _(Required)_ a [browser](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#browser) object ```js validate.browser(data) .then((data) => console.log('✔️')) .catch(console.error) ``` ### validate.cache(data) > Returns a promise that resolves to the valid object. - **data**: `Object` _(Required)_ a [cache](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#cache) object ```js validate.cache(data) .then((data) => console.log('✔️')) .catch(console.error) ``` ### validate.content(data) > Returns a promise that resolves to the valid object. - **data**: `Object` _(Required)_ a [content](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#content) object ```js validate.content(data) .then((data) => console.log('✔️')) .catch(console.error) ``` ### validate.cookie(data) > Returns a promise that resolves to the valid object. - **data**: `Object` _(Required)_ a [cookie](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#cookies) object ```js validate.cookie(data) .then((data) => console.log('✔️')) .catch(console.error) ``` ### validate.creator(data) > Returns a promise that resolves to the valid object. - **data**: `Object` _(Required)_ a [creator](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#creator) object ```js validate.creator(data) .then((data) => console.log('✔️')) .catch(console.error) ``` ### validate.entry(data) > Returns a promise that resolves to the valid object. - **data**: `Object` _(Required)_ an [entry](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#entries) object ```js validate.entry(data) .then((data) => console.log('✔️')) .catch(console.error) ``` ### validate.har(data) > Returns a promise that resolves to the valid object. - **data**: `Object` _(Required)_ a full [HAR](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md) object ```js validate.har(data) .then((data) => console.log('✔️')) .catch(console.error) ``` ### validate.header(data) > Returns a promise that resolves to the valid object. - **data**: `Object` _(Required)_ a [header](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#headers) object ```js validate.header(data) .then((data) => console.log('✔️')) .catch(console.error) ``` ### validate.log(data) > Returns a promise that resolves to the valid object. - **data**: `Object` _(Required)_ a [log](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#log) object ```js validate.log(data) .then((data) => console.log('✔️')) .catch(console.error) ``` ### validate.page(data) > Returns a promise that resolves to the valid object. - **data**: `Object` _(Required)_ a [page](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#pages) object ```js validate.page(data) .then((data) => console.log('✔️')) .catch(console.error) ``` ### validate.pageTimings(data) > Returns a promise that resolves to the valid object. - **data**: `Object` _(Required)_ a [pageTimings](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#pageTimings) object ```js validate.pageTimings(data) .then((data) => console.log('✔️')) .catch(console.error) ``` ### validate.postData(data) > Returns a promise that resolves to the valid object. - **data**: `Object` _(Required)_ a [postData](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#postData) object ```js validate.postData(data) .then((data) => console.log('✔️')) .catch(console.error) ``` ### validate.query(data) > Returns a promise that resolves to the valid object. - **data**: `Object` _(Required)_ a [queryString](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#querystring) object ```js validate.query(data) .then((data) => console.log('✔️')) .catch(console.error) ``` ### validate.request(data) > Returns a promise that resolves to the valid object. - **data**: `Object` _(Required)_ a [request](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#request) object ```js validate.request(data) .then((data) => console.log('✔️')) .catch(console.error) ``` ### validate.response(data) > Returns a promise that resolves to the valid object. - **data**: `Object` _(Required)_ a [response](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#response) object ```js validate.cacheEntry(data) .then((data) => console.log('✔️')) .catch(console.error) ``` ### validate.timings(data) > Returns a promise that resolves to the valid object. - **data**: `Object` _(Required)_ a [timings](https://github.com/ahmadnassri/har-spec/blob/master/versions/1.2.md#timings) object ```js validate.timings(data) .then((data) => console.log('✔️')) .catch(console.error) ``` node-har-validator-5.1.5/lib/000077500000000000000000000000001371044737000157565ustar00rootroot00000000000000node-har-validator-5.1.5/lib/async.js000066400000000000000000000042041371044737000174310ustar00rootroot00000000000000var Ajv = require('ajv') var HARError = require('./error') var schemas = require('har-schema') var ajv function createAjvInstance () { var ajv = new Ajv({ allErrors: true }) ajv.addMetaSchema(require('ajv/lib/refs/json-schema-draft-06.json')) ajv.addSchema(schemas) return ajv } function validate (name, data, next) { data = data || {} // validator config ajv = ajv || createAjvInstance() var validate = ajv.getSchema(name + '.json') var valid = validate(data) // callback? if (typeof next === 'function') { return next(!valid ? new HARError(validate.errors) : null, valid) } return valid } exports.afterRequest = function (data, next) { return validate('afterRequest', data, next) } exports.beforeRequest = function (data, next) { return validate('beforeRequest', data, next) } exports.browser = function (data, next) { return validate('browser', data, next) } exports.cache = function (data, next) { return validate('cache', data, next) } exports.content = function (data, next) { return validate('content', data, next) } exports.cookie = function (data, next) { return validate('cookie', data, next) } exports.creator = function (data, next) { return validate('creator', data, next) } exports.entry = function (data, next) { return validate('entry', data, next) } exports.har = function (data, next) { return validate('har', data, next) } exports.header = function (data, next) { return validate('header', data, next) } exports.log = function (data, next) { return validate('log', data, next) } exports.page = function (data, next) { return validate('page', data, next) } exports.pageTimings = function (data, next) { return validate('pageTimings', data, next) } exports.postData = function (data, next) { return validate('postData', data, next) } exports.query = function (data, next) { return validate('query', data, next) } exports.request = function (data, next) { return validate('request', data, next) } exports.response = function (data, next) { return validate('response', data, next) } exports.timings = function (data, next) { return validate('timings', data, next) } node-har-validator-5.1.5/lib/error.js000066400000000000000000000005651371044737000174530ustar00rootroot00000000000000function HARError (errors) { var message = 'validation failed' this.name = 'HARError' this.message = message this.errors = errors if (typeof Error.captureStackTrace === 'function') { Error.captureStackTrace(this, this.constructor) } else { this.stack = (new Error(message)).stack } } HARError.prototype = Error.prototype module.exports = HARError node-har-validator-5.1.5/lib/promise.js000066400000000000000000000036251371044737000200000ustar00rootroot00000000000000var Ajv = require('ajv') var HARError = require('./error') var schemas = require('har-schema') var ajv function createAjvInstance () { var ajv = new Ajv({ allErrors: true }) ajv.addMetaSchema(require('ajv/lib/refs/json-schema-draft-06.json')) ajv.addSchema(schemas) return ajv } function validate (name, data) { data = data || {} // validator config ajv = ajv || createAjvInstance() var validate = ajv.getSchema(name + '.json') return new Promise(function (resolve, reject) { var valid = validate(data) !valid ? reject(new HARError(validate.errors)) : resolve(data) }) } exports.afterRequest = function (data) { return validate('afterRequest', data) } exports.beforeRequest = function (data) { return validate('beforeRequest', data) } exports.browser = function (data) { return validate('browser', data) } exports.cache = function (data) { return validate('cache', data) } exports.content = function (data) { return validate('content', data) } exports.cookie = function (data) { return validate('cookie', data) } exports.creator = function (data) { return validate('creator', data) } exports.entry = function (data) { return validate('entry', data) } exports.har = function (data) { return validate('har', data) } exports.header = function (data) { return validate('header', data) } exports.log = function (data) { return validate('log', data) } exports.page = function (data) { return validate('page', data) } exports.pageTimings = function (data) { return validate('pageTimings', data) } exports.postData = function (data) { return validate('postData', data) } exports.query = function (data) { return validate('query', data) } exports.request = function (data) { return validate('request', data) } exports.response = function (data) { return validate('response', data) } exports.timings = function (data) { return validate('timings', data) } node-har-validator-5.1.5/package-lock.json000066400000000000000000003412321371044737000204310ustar00rootroot00000000000000{ "name": "har-validator", "version": "5.1.3", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/generator": { "version": "7.10.5", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz", "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==", "dev": true, "requires": { "@babel/types": "^7.10.5", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, "dependencies": { "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true } } }, "@babel/helper-function-name": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { "@babel/helper-get-function-arity": "^7.10.4", "@babel/template": "^7.10.4", "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { "@babel/types": "^7.10.4" } }, "@babel/helper-split-export-declaration": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz", "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==", "dev": true, "requires": { "@babel/types": "^7.10.4" } }, "@babel/helper-validator-identifier": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", "dev": true }, "@babel/highlight": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { "version": "7.10.5", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", "dev": true }, "@babel/template": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", "@babel/parser": "^7.10.4", "@babel/types": "^7.10.4" } }, "@babel/traverse": { "version": "7.10.5", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz", "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", "@babel/generator": "^7.10.5", "@babel/helper-function-name": "^7.10.4", "@babel/helper-split-export-declaration": "^7.10.4", "@babel/parser": "^7.10.5", "@babel/types": "^7.10.5", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { "version": "7.10.5", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } }, "ajv": { "version": "6.12.3", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "^1.9.0" } }, "anymatch": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "append-transform": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", "dev": true, "requires": { "default-require-extensions": "^2.0.0" } }, "archy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", "dev": true }, "arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { "sprintf-js": "~1.0.2" } }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "requires": { "safer-buffer": "~2.1.0" } }, "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true }, "async-hook-domain": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/async-hook-domain/-/async-hook-domain-1.1.3.tgz", "integrity": "sha512-ZovMxSbADV3+biB7oR1GL5lGyptI24alp0LWHlmz1OFc5oL47pz3EiIF6nXOkDW7yLqih4NtsiYduzdDW0i+Wg==", "dev": true, "requires": { "source-map-support": "^0.5.11" } }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", "dev": true }, "aws4": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==", "dev": true }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, "requires": { "tweetnacl": "^0.14.3" } }, "binary-extensions": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", "dev": true }, "bind-obj-methods": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/bind-obj-methods/-/bind-obj-methods-2.0.0.tgz", "integrity": "sha512-3/qRXczDi2Cdbz6jE+W3IflJOutRVica8frpBn14de1mBOkzDo+6tY33kNhvkw54Kn3PzRRD2VnGbGPcTAk4sw==", "dev": true }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { "fill-range": "^7.0.1" } }, "browser-process-hrtime": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", "dev": true }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, "caching-transform": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-3.0.2.tgz", "integrity": "sha512-Mtgcv3lh3U0zRii/6qVgQODdPA4G3zhG+jtbCWj39RXuUFTMzH0vcdMtaJS1jPowd+It2Pqr6y3NJMQqOqCE2w==", "dev": true, "requires": { "hasha": "^3.0.0", "make-dir": "^2.0.0", "package-hash": "^3.0.0", "write-file-atomic": "^2.4.2" }, "dependencies": { "write-file-atomic": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", "dev": true, "requires": { "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", "signal-exit": "^3.0.2" } } } }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "chokidar": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz", "integrity": "sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==", "dev": true, "requires": { "anymatch": "~3.1.1", "braces": "~3.0.2", "fsevents": "~2.1.2", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.4.0" } }, "cliui": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { "string-width": "^2.1.1", "strip-ansi": "^4.0.0", "wrap-ansi": "^2.0.0" } }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { "color-name": "1.1.3" } }, "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "color-support": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", "dev": true }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "requires": { "delayed-stream": "~1.0.0" } }, "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "convert-source-map": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", "dev": true, "requires": { "safe-buffer": "~5.1.1" }, "dependencies": { "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true } } }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, "coveralls": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.0.tgz", "integrity": "sha512-sHxOu2ELzW8/NC1UP5XVLbZDzO4S3VxfFye3XYCznopHy02YjNkHcj5bKaVw2O7hVaBdBjEdQGpie4II1mWhuQ==", "dev": true, "requires": { "js-yaml": "^3.13.1", "lcov-parse": "^1.0.0", "log-driver": "^1.2.7", "minimist": "^1.2.5", "request": "^2.88.2" } }, "cp-file": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz", "integrity": "sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA==", "dev": true, "requires": { "graceful-fs": "^4.1.2", "make-dir": "^2.0.0", "nested-error-stacks": "^2.0.0", "pify": "^4.0.1", "safe-buffer": "^5.0.1" } }, "cross-spawn": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", "dev": true, "requires": { "lru-cache": "^4.0.1", "which": "^1.2.9" }, "dependencies": { "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { "isexe": "^2.0.0" } } } }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { "assert-plus": "^1.0.0" } }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" } }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "default-require-extensions": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", "dev": true, "requires": { "strip-bom": "^3.0.0" } }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true }, "diff-frag": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/diff-frag/-/diff-frag-1.0.1.tgz", "integrity": "sha512-6/v2PC/6UTGcWPPetb9acL8foberUg/CtPdALeJUdD1B/weHNvzftoo00gYznqHGRhHEbykUGzqfG9RWOSr5yw==", "dev": true }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" } }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { "is-arrayish": "^0.2.1" } }, "es6-error": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "esm": { "version": "3.2.25", "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", "dev": true }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "events-to-array": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-1.1.2.tgz", "integrity": "sha1-LUH1Y+H+QA7Uli/hpNXGp1Od9/Y=", "dev": true }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", "dev": true }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { "to-regex-range": "^5.0.1" } }, "find-cache-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", "dev": true, "requires": { "commondir": "^1.0.1", "make-dir": "^2.0.0", "pkg-dir": "^3.0.0" } }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { "locate-path": "^3.0.0" } }, "findit": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/findit/-/findit-2.0.0.tgz", "integrity": "sha1-ZQnwEmr0wXhVHPqZOU4DLhOk1W4=", "dev": true }, "flow-parser": { "version": "0.130.0", "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.130.0.tgz", "integrity": "sha512-h9NATB7QsKhj2ucgEH2XzB7p+5ubk8IZX5u/qHkN+oyQoECi1diq6mYfIuYBOyL35f3AhJf/YDkBYQBTqqYK+w==", "dev": true }, "flow-remove-types": { "version": "2.130.0", "resolved": "https://registry.npmjs.org/flow-remove-types/-/flow-remove-types-2.130.0.tgz", "integrity": "sha512-x48wARPzBge8aRd0ZI3lQi59afHwVk7DymUIFf423bUfa3u1GJWOfpdHggPkN1f4R16oUH+YO4KldBz8Ce2ldg==", "dev": true, "requires": { "flow-parser": "^0.130.0", "pirates": "^3.0.2", "vlq": "^0.2.1" } }, "foreground-child": { "version": "1.5.6", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", "dev": true, "requires": { "cross-spawn": "^4", "signal-exit": "^3.0.0" } }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", "dev": true }, "form-data": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", "mime-types": "^2.1.12" } }, "fs-exists-cached": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz", "integrity": "sha1-zyVVTKBQ3EmuZla0HeQiWJidy84=", "dev": true }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "fsevents": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", "dev": true, "optional": true }, "function-loop": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/function-loop/-/function-loop-1.0.2.tgz", "integrity": "sha512-Iw4MzMfS3udk/rqxTiDDCllhGwlOrsr50zViTOO/W6lS/9y6B1J0BD2VZzrnWUYBJsl3aeqjgR5v7bWWhZSYbA==", "dev": true }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { "assert-plus": "^1.0.0" } }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "glob-parent": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "dev": true, "requires": { "is-glob": "^4.0.1" } }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "dev": true, "requires": { "ajv": "^6.5.5", "har-schema": "^2.0.0" } }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "hasha": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/hasha/-/hasha-3.0.0.tgz", "integrity": "sha1-UqMvq4Vp1BymmmH/GiFPjrfIvTk=", "dev": true, "requires": { "is-stream": "^1.0.1" } }, "hosted-git-info": { "version": "2.8.8", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", "dev": true }, "html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", "sshpk": "^1.7.0" } }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" } }, "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { "binary-extensions": "^2.0.0" } }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "requires": { "is-extglob": "^2.1.1" } }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, "istanbul-lib-coverage": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", "dev": true }, "istanbul-lib-hook": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz", "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==", "dev": true, "requires": { "append-transform": "^1.0.0" } }, "istanbul-lib-instrument": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", "dev": true, "requires": { "@babel/generator": "^7.4.0", "@babel/parser": "^7.4.3", "@babel/template": "^7.4.0", "@babel/traverse": "^7.4.3", "@babel/types": "^7.4.0", "istanbul-lib-coverage": "^2.0.5", "semver": "^6.0.0" }, "dependencies": { "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, "istanbul-lib-processinfo": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-1.0.0.tgz", "integrity": "sha512-FY0cPmWa4WoQNlvB8VOcafiRoB5nB+l2Pz2xGuXHRSy1KM8QFOYfz/rN+bGMCAeejrY3mrpF5oJHcN0s/garCg==", "dev": true, "requires": { "archy": "^1.0.0", "cross-spawn": "^6.0.5", "istanbul-lib-coverage": "^2.0.3", "rimraf": "^2.6.3", "uuid": "^3.3.2" }, "dependencies": { "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { "nice-try": "^1.0.4", "path-key": "^2.0.1", "semver": "^5.5.0", "shebang-command": "^1.2.0", "which": "^1.2.9" } }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { "isexe": "^2.0.0" } } } }, "istanbul-lib-report": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", "dev": true, "requires": { "istanbul-lib-coverage": "^2.0.5", "make-dir": "^2.1.0", "supports-color": "^6.1.0" }, "dependencies": { "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "istanbul-lib-source-maps": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", "dev": true, "requires": { "debug": "^4.1.1", "istanbul-lib-coverage": "^2.0.5", "make-dir": "^2.1.0", "rimraf": "^2.6.3", "source-map": "^0.6.1" } }, "istanbul-reports": { "version": "2.2.7", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz", "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==", "dev": true, "requires": { "html-escaper": "^2.0.0" } }, "jackspeak": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-1.4.0.tgz", "integrity": "sha512-VDcSunT+wcccoG46FtzuBAyQKlzhHjli4q31e1fIHGOsRspqNUFjVzGb+7eIFDlTvqLygxapDHPHS0ouT2o/tw==", "dev": true, "requires": { "cliui": "^4.1.0" } }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "js-yaml": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" } }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "dev": true }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", "json-schema": "0.2.3", "verror": "1.10.0" } }, "lcov-parse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz", "integrity": "sha1-6w1GtUER68VhrLTECO+TY73I9+A=", "dev": true }, "load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { "graceful-fs": "^4.1.2", "parse-json": "^4.0.0", "pify": "^3.0.0", "strip-bom": "^3.0.0" }, "dependencies": { "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true } } }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" } }, "lodash": { "version": "4.17.19", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", "dev": true }, "lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", "dev": true }, "log-driver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", "dev": true }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } }, "lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "dev": true, "requires": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" } }, "make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, "requires": { "pify": "^4.0.1", "semver": "^5.6.0" } }, "make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, "merge-source-map": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", "dev": true, "requires": { "source-map": "^0.6.1" } }, "mime-db": { "version": "1.44.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", "dev": true }, "mime-types": { "version": "2.1.27", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "dev": true, "requires": { "mime-db": "1.44.0" } }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, "minipass": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", "dev": true, "requires": { "yallist": "^4.0.0" }, "dependencies": { "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true } } }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "requires": { "minimist": "^1.2.5" } }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "nested-error-stacks": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==", "dev": true }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, "node-modules-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", "dev": true }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "requires": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "nyc": { "version": "14.1.1", "resolved": "https://registry.npmjs.org/nyc/-/nyc-14.1.1.tgz", "integrity": "sha512-OI0vm6ZGUnoGZv/tLdZ2esSVzDwUC88SNs+6JoSOMVxA+gKMB8Tk7jBwgemLx4O40lhhvZCVw1C+OYLOBOPXWw==", "dev": true, "requires": { "archy": "^1.0.0", "caching-transform": "^3.0.2", "convert-source-map": "^1.6.0", "cp-file": "^6.2.0", "find-cache-dir": "^2.1.0", "find-up": "^3.0.0", "foreground-child": "^1.5.6", "glob": "^7.1.3", "istanbul-lib-coverage": "^2.0.5", "istanbul-lib-hook": "^2.0.7", "istanbul-lib-instrument": "^3.3.0", "istanbul-lib-report": "^2.0.8", "istanbul-lib-source-maps": "^3.0.6", "istanbul-reports": "^2.2.4", "js-yaml": "^3.13.1", "make-dir": "^2.1.0", "merge-source-map": "^1.1.0", "resolve-from": "^4.0.0", "rimraf": "^2.6.3", "signal-exit": "^3.0.2", "spawn-wrap": "^1.4.2", "test-exclude": "^5.2.3", "uuid": "^3.3.2", "yargs": "^13.2.2", "yargs-parser": "^13.0.0" } }, "oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", "dev": true }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { "wrappy": "1" } }, "opener": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz", "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==", "dev": true }, "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, "own-or": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/own-or/-/own-or-1.0.0.tgz", "integrity": "sha1-Tod/vtqaLsgAD7wLyuOWRe6L+Nw=", "dev": true }, "own-or-env": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/own-or-env/-/own-or-env-1.0.1.tgz", "integrity": "sha512-y8qULRbRAlL6x2+M0vIe7jJbJx/kmUTzYonRAa2ayesR2qWLswninkVyeJe4x3IEXhdgoNodzjQRKAoEs6Fmrw==", "dev": true, "requires": { "own-or": "^1.0.0" } }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { "p-try": "^2.0.0" } }, "p-locate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { "p-limit": "^2.0.0" } }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, "package-hash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-3.0.0.tgz", "integrity": "sha512-lOtmukMDVvtkL84rJHI7dpTYq+0rli8N2wlnqUcBuDWCfVhRUfOmnR9SsoHFMLpACvEV60dX7rd0rFaYDZI+FA==", "dev": true, "requires": { "graceful-fs": "^4.1.15", "hasha": "^3.0.0", "lodash.flattendeep": "^4.4.0", "release-zalgo": "^1.0.0" } }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" } }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, "path-parse": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, "path-type": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { "pify": "^3.0.0" }, "dependencies": { "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true } } }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, "picomatch": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", "dev": true }, "pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true }, "pirates": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/pirates/-/pirates-3.0.2.tgz", "integrity": "sha512-c5CgUJq6H2k6MJz72Ak1F5sN9n9wlSlJyEnwvpm9/y3WB4E3pHBDT2c6PEiS1vyJvq2bUxUAIu0EGf8Cx4Ic7Q==", "dev": true, "requires": { "node-modules-regexp": "^1.0.0" } }, "pkg-dir": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "dev": true, "requires": { "find-up": "^3.0.0" } }, "prop-types": { "version": "15.7.2", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", "dev": true, "requires": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.8.1" } }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, "psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", "dev": true }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "dev": true }, "react": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2" } }, "react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true }, "read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", "path-type": "^3.0.0" } }, "read-pkg-up": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", "dev": true, "requires": { "find-up": "^3.0.0", "read-pkg": "^3.0.0" } }, "readdirp": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", "dev": true, "requires": { "picomatch": "^2.2.1" } }, "release-zalgo": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", "dev": true, "requires": { "es6-error": "^4.0.1" } }, "request": { "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "dev": true, "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", "caseless": "~0.12.0", "combined-stream": "~1.0.6", "extend": "~3.0.2", "forever-agent": "~0.6.1", "form-data": "~2.3.2", "har-validator": "~5.1.3", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", "mime-types": "~2.1.19", "oauth-sign": "~0.9.0", "performance-now": "^2.1.0", "qs": "~6.5.2", "safe-buffer": "^5.1.2", "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" } }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, "resolve": { "version": "1.17.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", "dev": true, "requires": { "path-parse": "^1.0.6" } }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "requires": { "glob": "^7.1.3" } }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { "shebang-regex": "^1.0.0" } }, "shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, "signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "source-map-support": { "version": "0.5.19", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "spawn-wrap": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.3.tgz", "integrity": "sha512-IgB8md0QW/+tWqcavuFgKYR/qIRvJkRLPJDFaoXtLLUaVcCDK0+HeFTkmQHj3eprcYhc+gOl0aEA1w7qZlYezw==", "dev": true, "requires": { "foreground-child": "^1.5.6", "mkdirp": "^0.5.0", "os-homedir": "^1.0.1", "rimraf": "^2.6.2", "signal-exit": "^3.0.2", "which": "^1.3.0" }, "dependencies": { "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { "isexe": "^2.0.0" } } } }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, "spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", "dev": true }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "sshpk": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "dev": true, "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", "bcrypt-pbkdf": "^1.0.0", "dashdash": "^1.12.0", "ecc-jsbn": "~0.1.1", "getpass": "^0.1.1", "jsbn": "~0.1.0", "safer-buffer": "^2.0.2", "tweetnacl": "~0.14.0" } }, "stack-utils": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==", "dev": true }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" } }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { "ansi-regex": "^3.0.0" } }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" } }, "tap": { "version": "14.10.8", "resolved": "https://registry.npmjs.org/tap/-/tap-14.10.8.tgz", "integrity": "sha512-aamkWefJ0G8GGf9t5LWFtrNF5tfVd8ut/tDUianLF6N4621ERITIl0qkocWCVEnsM6hZnaMKa+SggSAaBlC2tA==", "dev": true, "requires": { "@types/react": "^16.9.16", "async-hook-domain": "^1.1.3", "bind-obj-methods": "^2.0.0", "browser-process-hrtime": "^1.0.0", "chokidar": "^3.3.0", "color-support": "^1.1.0", "coveralls": "^3.0.11", "diff": "^4.0.1", "esm": "^3.2.25", "findit": "^2.0.0", "flow-remove-types": "^2.112.0", "foreground-child": "^1.3.3", "fs-exists-cached": "^1.0.0", "function-loop": "^1.0.2", "glob": "^7.1.6", "import-jsx": "^3.1.0", "ink": "^2.6.0", "isexe": "^2.0.0", "istanbul-lib-processinfo": "^1.0.0", "jackspeak": "^1.4.0", "minipass": "^3.1.1", "mkdirp": "^0.5.4", "nyc": "^14.1.1", "opener": "^1.5.1", "own-or": "^1.0.0", "own-or-env": "^1.0.1", "react": "^16.12.0", "rimraf": "^2.7.1", "signal-exit": "^3.0.0", "source-map-support": "^0.5.16", "stack-utils": "^1.0.2", "tap-mocha-reporter": "^5.0.0", "tap-parser": "^10.0.1", "tap-yaml": "^1.0.0", "tcompare": "^3.0.0", "treport": "^1.0.2", "trivial-deferred": "^1.0.1", "ts-node": "^8.5.2", "typescript": "^3.7.2", "which": "^2.0.2", "write-file-atomic": "^3.0.1", "yaml": "^1.7.2", "yapool": "^1.0.0" }, "dependencies": { "@babel/code-frame": { "version": "7.10.4", "bundled": true, "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/core": { "version": "7.10.5", "bundled": true, "dev": true, "requires": { "@babel/code-frame": "^7.10.4", "@babel/generator": "^7.10.5", "@babel/helper-module-transforms": "^7.10.5", "@babel/helpers": "^7.10.4", "@babel/parser": "^7.10.5", "@babel/template": "^7.10.4", "@babel/traverse": "^7.10.5", "@babel/types": "^7.10.5", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", "json5": "^2.1.2", "lodash": "^4.17.19", "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, "dependencies": { "source-map": { "version": "0.5.7", "bundled": true, "dev": true } } }, "@babel/generator": { "version": "7.10.5", "bundled": true, "dev": true, "requires": { "@babel/types": "^7.10.5", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, "dependencies": { "source-map": { "version": "0.5.7", "bundled": true, "dev": true } } }, "@babel/helper-annotate-as-pure": { "version": "7.10.4", "bundled": true, "dev": true, "requires": { "@babel/types": "^7.10.4" } }, "@babel/helper-builder-react-jsx": { "version": "7.10.4", "bundled": true, "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.10.4", "@babel/types": "^7.10.4" } }, "@babel/helper-builder-react-jsx-experimental": { "version": "7.10.5", "bundled": true, "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.10.4", "@babel/helper-module-imports": "^7.10.4", "@babel/types": "^7.10.5" } }, "@babel/helper-function-name": { "version": "7.10.4", "bundled": true, "dev": true, "requires": { "@babel/helper-get-function-arity": "^7.10.4", "@babel/template": "^7.10.4", "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { "version": "7.10.4", "bundled": true, "dev": true, "requires": { "@babel/types": "^7.10.4" } }, "@babel/helper-member-expression-to-functions": { "version": "7.10.5", "bundled": true, "dev": true, "requires": { "@babel/types": "^7.10.5" } }, "@babel/helper-module-imports": { "version": "7.10.4", "bundled": true, "dev": true, "requires": { "@babel/types": "^7.10.4" } }, "@babel/helper-module-transforms": { "version": "7.10.5", "bundled": true, "dev": true, "requires": { "@babel/helper-module-imports": "^7.10.4", "@babel/helper-replace-supers": "^7.10.4", "@babel/helper-simple-access": "^7.10.4", "@babel/helper-split-export-declaration": "^7.10.4", "@babel/template": "^7.10.4", "@babel/types": "^7.10.5", "lodash": "^4.17.19" } }, "@babel/helper-optimise-call-expression": { "version": "7.10.4", "bundled": true, "dev": true, "requires": { "@babel/types": "^7.10.4" } }, "@babel/helper-plugin-utils": { "version": "7.10.4", "bundled": true, "dev": true }, "@babel/helper-replace-supers": { "version": "7.10.4", "bundled": true, "dev": true, "requires": { "@babel/helper-member-expression-to-functions": "^7.10.4", "@babel/helper-optimise-call-expression": "^7.10.4", "@babel/traverse": "^7.10.4", "@babel/types": "^7.10.4" } }, "@babel/helper-simple-access": { "version": "7.10.4", "bundled": true, "dev": true, "requires": { "@babel/template": "^7.10.4", "@babel/types": "^7.10.4" } }, "@babel/helper-split-export-declaration": { "version": "7.10.4", "bundled": true, "dev": true, "requires": { "@babel/types": "^7.10.4" } }, "@babel/helper-validator-identifier": { "version": "7.10.4", "bundled": true, "dev": true }, "@babel/helpers": { "version": "7.10.4", "bundled": true, "dev": true, "requires": { "@babel/template": "^7.10.4", "@babel/traverse": "^7.10.4", "@babel/types": "^7.10.4" } }, "@babel/highlight": { "version": "7.10.4", "bundled": true, "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { "version": "7.10.5", "bundled": true, "dev": true }, "@babel/plugin-proposal-object-rest-spread": { "version": "7.10.4", "bundled": true, "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.0", "@babel/plugin-transform-parameters": "^7.10.4" } }, "@babel/plugin-syntax-jsx": { "version": "7.10.4", "bundled": true, "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", "bundled": true, "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-transform-destructuring": { "version": "7.10.4", "bundled": true, "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-parameters": { "version": "7.10.5", "bundled": true, "dev": true, "requires": { "@babel/helper-get-function-arity": "^7.10.4", "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-react-jsx": { "version": "7.10.4", "bundled": true, "dev": true, "requires": { "@babel/helper-builder-react-jsx": "^7.10.4", "@babel/helper-builder-react-jsx-experimental": "^7.10.4", "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-syntax-jsx": "^7.10.4" } }, "@babel/template": { "version": "7.10.4", "bundled": true, "dev": true, "requires": { "@babel/code-frame": "^7.10.4", "@babel/parser": "^7.10.4", "@babel/types": "^7.10.4" } }, "@babel/traverse": { "version": "7.10.5", "bundled": true, "dev": true, "requires": { "@babel/code-frame": "^7.10.4", "@babel/generator": "^7.10.5", "@babel/helper-function-name": "^7.10.4", "@babel/helper-split-export-declaration": "^7.10.4", "@babel/parser": "^7.10.5", "@babel/types": "^7.10.5", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { "version": "7.10.5", "bundled": true, "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } }, "@types/color-name": { "version": "1.1.1", "bundled": true, "dev": true }, "@types/prop-types": { "version": "15.7.3", "bundled": true, "dev": true }, "@types/react": { "version": "16.9.43", "bundled": true, "dev": true, "requires": { "@types/prop-types": "*", "csstype": "^2.2.0" } }, "@types/yoga-layout": { "version": "1.9.2", "bundled": true, "dev": true }, "ansi-escapes": { "version": "4.3.1", "bundled": true, "dev": true, "requires": { "type-fest": "^0.11.0" } }, "ansi-regex": { "version": "5.0.0", "bundled": true, "dev": true }, "ansi-styles": { "version": "3.2.1", "bundled": true, "dev": true, "requires": { "color-convert": "^1.9.0" } }, "ansicolors": { "version": "0.3.2", "bundled": true, "dev": true }, "arrify": { "version": "2.0.1", "bundled": true, "dev": true }, "astral-regex": { "version": "2.0.0", "bundled": true, "dev": true }, "auto-bind": { "version": "4.0.0", "bundled": true, "dev": true }, "caller-callsite": { "version": "2.0.0", "bundled": true, "dev": true, "requires": { "callsites": "^2.0.0" } }, "caller-path": { "version": "2.0.0", "bundled": true, "dev": true, "requires": { "caller-callsite": "^2.0.0" } }, "callsites": { "version": "2.0.0", "bundled": true, "dev": true }, "cardinal": { "version": "2.1.1", "bundled": true, "dev": true, "requires": { "ansicolors": "~0.3.2", "redeyed": "~2.1.0" } }, "chalk": { "version": "2.4.2", "bundled": true, "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "ci-info": { "version": "2.0.0", "bundled": true, "dev": true }, "cli-cursor": { "version": "3.1.0", "bundled": true, "dev": true, "requires": { "restore-cursor": "^3.1.0" } }, "cli-truncate": { "version": "2.1.0", "bundled": true, "dev": true, "requires": { "slice-ansi": "^3.0.0", "string-width": "^4.2.0" } }, "color-convert": { "version": "1.9.3", "bundled": true, "dev": true, "requires": { "color-name": "1.1.3" } }, "color-name": { "version": "1.1.3", "bundled": true, "dev": true }, "convert-source-map": { "version": "1.7.0", "bundled": true, "dev": true, "requires": { "safe-buffer": "~5.1.1" }, "dependencies": { "safe-buffer": { "version": "5.1.2", "bundled": true, "dev": true } } }, "csstype": { "version": "2.6.11", "bundled": true, "dev": true }, "debug": { "version": "4.1.1", "bundled": true, "dev": true, "requires": { "ms": "^2.1.1" } }, "emoji-regex": { "version": "8.0.0", "bundled": true, "dev": true }, "escape-string-regexp": { "version": "1.0.5", "bundled": true, "dev": true }, "esprima": { "version": "4.0.1", "bundled": true, "dev": true }, "events-to-array": { "version": "1.1.2", "bundled": true, "dev": true }, "gensync": { "version": "1.0.0-beta.1", "bundled": true, "dev": true }, "globals": { "version": "11.12.0", "bundled": true, "dev": true }, "has-flag": { "version": "3.0.0", "bundled": true, "dev": true }, "import-jsx": { "version": "3.1.0", "bundled": true, "dev": true, "requires": { "@babel/core": "^7.5.5", "@babel/plugin-proposal-object-rest-spread": "^7.5.5", "@babel/plugin-transform-destructuring": "^7.5.0", "@babel/plugin-transform-react-jsx": "^7.3.0", "caller-path": "^2.0.0", "resolve-from": "^3.0.0" } }, "ink": { "version": "2.7.1", "bundled": true, "dev": true, "requires": { "ansi-escapes": "^4.2.1", "arrify": "^2.0.1", "auto-bind": "^4.0.0", "chalk": "^3.0.0", "cli-cursor": "^3.1.0", "cli-truncate": "^2.1.0", "is-ci": "^2.0.0", "lodash.throttle": "^4.1.1", "log-update": "^3.0.0", "prop-types": "^15.6.2", "react-reconciler": "^0.24.0", "scheduler": "^0.18.0", "signal-exit": "^3.0.2", "slice-ansi": "^3.0.0", "string-length": "^3.1.0", "widest-line": "^3.1.0", "wrap-ansi": "^6.2.0", "yoga-layout-prebuilt": "^1.9.3" }, "dependencies": { "ansi-styles": { "version": "4.2.1", "bundled": true, "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "chalk": { "version": "3.0.0", "bundled": true, "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "color-convert": { "version": "2.0.1", "bundled": true, "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "bundled": true, "dev": true }, "has-flag": { "version": "4.0.0", "bundled": true, "dev": true }, "supports-color": { "version": "7.1.0", "bundled": true, "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "is-ci": { "version": "2.0.0", "bundled": true, "dev": true, "requires": { "ci-info": "^2.0.0" } }, "is-fullwidth-code-point": { "version": "3.0.0", "bundled": true, "dev": true }, "js-tokens": { "version": "4.0.0", "bundled": true, "dev": true }, "jsesc": { "version": "2.5.2", "bundled": true, "dev": true }, "json5": { "version": "2.1.3", "bundled": true, "dev": true, "requires": { "minimist": "^1.2.5" } }, "lodash": { "version": "4.17.19", "bundled": true, "dev": true }, "lodash.throttle": { "version": "4.1.1", "bundled": true, "dev": true }, "log-update": { "version": "3.4.0", "bundled": true, "dev": true, "requires": { "ansi-escapes": "^3.2.0", "cli-cursor": "^2.1.0", "wrap-ansi": "^5.0.0" }, "dependencies": { "ansi-escapes": { "version": "3.2.0", "bundled": true, "dev": true }, "ansi-regex": { "version": "4.1.0", "bundled": true, "dev": true }, "cli-cursor": { "version": "2.1.0", "bundled": true, "dev": true, "requires": { "restore-cursor": "^2.0.0" } }, "emoji-regex": { "version": "7.0.3", "bundled": true, "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", "bundled": true, "dev": true }, "mimic-fn": { "version": "1.2.0", "bundled": true, "dev": true }, "onetime": { "version": "2.0.1", "bundled": true, "dev": true, "requires": { "mimic-fn": "^1.0.0" } }, "restore-cursor": { "version": "2.0.0", "bundled": true, "dev": true, "requires": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" } }, "string-width": { "version": "3.1.0", "bundled": true, "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } }, "strip-ansi": { "version": "5.2.0", "bundled": true, "dev": true, "requires": { "ansi-regex": "^4.1.0" } }, "wrap-ansi": { "version": "5.1.0", "bundled": true, "dev": true, "requires": { "ansi-styles": "^3.2.0", "string-width": "^3.0.0", "strip-ansi": "^5.0.0" } } } }, "loose-envify": { "version": "1.4.0", "bundled": true, "dev": true, "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } }, "mimic-fn": { "version": "2.1.0", "bundled": true, "dev": true }, "minimist": { "version": "1.2.5", "bundled": true, "dev": true }, "minipass": { "version": "3.1.3", "bundled": true, "dev": true, "requires": { "yallist": "^4.0.0" }, "dependencies": { "yallist": { "version": "4.0.0", "bundled": true, "dev": true } } }, "ms": { "version": "2.1.2", "bundled": true, "dev": true }, "object-assign": { "version": "4.1.1", "bundled": true, "dev": true }, "onetime": { "version": "5.1.0", "bundled": true, "dev": true, "requires": { "mimic-fn": "^2.1.0" } }, "path-parse": { "version": "1.0.6", "bundled": true, "dev": true }, "prop-types": { "version": "15.7.2", "bundled": true, "dev": true, "requires": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.8.1" } }, "punycode": { "version": "2.1.1", "bundled": true, "dev": true }, "react-is": { "version": "16.13.1", "bundled": true, "dev": true }, "react-reconciler": { "version": "0.24.0", "bundled": true, "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2", "scheduler": "^0.18.0" } }, "redeyed": { "version": "2.1.1", "bundled": true, "dev": true, "requires": { "esprima": "~4.0.0" } }, "resolve": { "version": "1.17.0", "bundled": true, "dev": true, "requires": { "path-parse": "^1.0.6" } }, "resolve-from": { "version": "3.0.0", "bundled": true, "dev": true }, "restore-cursor": { "version": "3.1.0", "bundled": true, "dev": true, "requires": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "scheduler": { "version": "0.18.0", "bundled": true, "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" } }, "semver": { "version": "5.7.1", "bundled": true, "dev": true }, "signal-exit": { "version": "3.0.3", "bundled": true, "dev": true }, "slice-ansi": { "version": "3.0.0", "bundled": true, "dev": true, "requires": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" }, "dependencies": { "ansi-styles": { "version": "4.2.1", "bundled": true, "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "color-convert": { "version": "2.0.1", "bundled": true, "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "bundled": true, "dev": true } } }, "string-length": { "version": "3.1.0", "bundled": true, "dev": true, "requires": { "astral-regex": "^1.0.0", "strip-ansi": "^5.2.0" }, "dependencies": { "ansi-regex": { "version": "4.1.0", "bundled": true, "dev": true }, "astral-regex": { "version": "1.0.0", "bundled": true, "dev": true }, "strip-ansi": { "version": "5.2.0", "bundled": true, "dev": true, "requires": { "ansi-regex": "^4.1.0" } } } }, "string-width": { "version": "4.2.0", "bundled": true, "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" } }, "strip-ansi": { "version": "6.0.0", "bundled": true, "dev": true, "requires": { "ansi-regex": "^5.0.0" } }, "supports-color": { "version": "5.5.0", "bundled": true, "dev": true, "requires": { "has-flag": "^3.0.0" } }, "tap-parser": { "version": "10.0.1", "bundled": true, "dev": true, "requires": { "events-to-array": "^1.0.1", "minipass": "^3.0.0", "tap-yaml": "^1.0.0" } }, "tap-yaml": { "version": "1.0.0", "bundled": true, "dev": true, "requires": { "yaml": "^1.5.0" } }, "to-fast-properties": { "version": "2.0.0", "bundled": true, "dev": true }, "treport": { "version": "1.0.2", "bundled": true, "dev": true, "requires": { "cardinal": "^2.1.1", "chalk": "^3.0.0", "import-jsx": "^3.1.0", "ink": "^2.6.0", "ms": "^2.1.2", "string-length": "^3.1.0", "tap-parser": "^10.0.1", "unicode-length": "^2.0.2" }, "dependencies": { "ansi-styles": { "version": "4.2.1", "bundled": true, "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "chalk": { "version": "3.0.0", "bundled": true, "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "color-convert": { "version": "2.0.1", "bundled": true, "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "bundled": true, "dev": true }, "has-flag": { "version": "4.0.0", "bundled": true, "dev": true }, "supports-color": { "version": "7.1.0", "bundled": true, "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "type-fest": { "version": "0.11.0", "bundled": true, "dev": true }, "unicode-length": { "version": "2.0.2", "bundled": true, "dev": true, "requires": { "punycode": "^2.0.0", "strip-ansi": "^3.0.1" }, "dependencies": { "ansi-regex": { "version": "2.1.1", "bundled": true, "dev": true }, "strip-ansi": { "version": "3.0.1", "bundled": true, "dev": true, "requires": { "ansi-regex": "^2.0.0" } } } }, "widest-line": { "version": "3.1.0", "bundled": true, "dev": true, "requires": { "string-width": "^4.0.0" } }, "wrap-ansi": { "version": "6.2.0", "bundled": true, "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" }, "dependencies": { "ansi-styles": { "version": "4.2.1", "bundled": true, "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "color-convert": { "version": "2.0.1", "bundled": true, "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "bundled": true, "dev": true } } }, "yaml": { "version": "1.10.0", "bundled": true, "dev": true }, "yoga-layout-prebuilt": { "version": "1.9.6", "bundled": true, "dev": true, "requires": { "@types/yoga-layout": "1.9.2" } } } }, "tap-mocha-reporter": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/tap-mocha-reporter/-/tap-mocha-reporter-5.0.1.tgz", "integrity": "sha512-1knFWOwd4khx/7uSEnUeaP9IPW3w+sqTgJMhrwah6t46nZ8P25atOKAjSvVDsT67lOPu0nfdOqUwoyKn+3E5pA==", "dev": true, "requires": { "color-support": "^1.1.0", "debug": "^4.1.1", "diff": "^4.0.1", "escape-string-regexp": "^2.0.0", "glob": "^7.0.5", "tap-parser": "^10.0.0", "tap-yaml": "^1.0.0", "unicode-length": "^2.0.2" }, "dependencies": { "escape-string-regexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true } } }, "tap-parser": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-10.1.0.tgz", "integrity": "sha512-FujQeciDaOiOvaIVGS1Rpb0v4R6XkOjvWCWowlz5oKuhPkEJ8U6pxgqt38xuzYhPt8dWEnfHn2jqpZdJEkW7pA==", "dev": true, "requires": { "events-to-array": "^1.0.1", "minipass": "^3.0.0", "tap-yaml": "^1.0.0" } }, "tap-yaml": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/tap-yaml/-/tap-yaml-1.0.0.tgz", "integrity": "sha512-Rxbx4EnrWkYk0/ztcm5u3/VznbyFJpyXO12dDBHKWiDVxy7O2Qw6MRrwO5H6Ww0U5YhRY/4C/VzWmFPhBQc4qQ==", "dev": true, "requires": { "yaml": "^1.5.0" } }, "tcompare": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/tcompare/-/tcompare-3.0.4.tgz", "integrity": "sha512-Q3TitMVK59NyKgQyFh+857wTAUE329IzLDehuPgU4nF5e8g+EUQ+yUbjUy1/6ugiNnXztphT+NnqlCXolv9P3A==", "dev": true, "requires": { "diff-frag": "^1.0.1" } }, "test-exclude": { "version": "5.2.3", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", "dev": true, "requires": { "glob": "^7.1.3", "minimatch": "^3.0.4", "read-pkg-up": "^4.0.0", "require-main-filename": "^2.0.0" } }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { "is-number": "^7.0.0" } }, "tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "requires": { "psl": "^1.1.28", "punycode": "^2.1.1" } }, "trivial-deferred": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trivial-deferred/-/trivial-deferred-1.0.1.tgz", "integrity": "sha1-N21NKdlR1jaKb3oK6FwvTV4GWPM=", "dev": true }, "ts-node": { "version": "8.10.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz", "integrity": "sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==", "dev": true, "requires": { "arg": "^4.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.17", "yn": "3.1.1" } }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { "safe-buffer": "^5.0.1" } }, "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true }, "typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, "requires": { "is-typedarray": "^1.0.0" } }, "typescript": { "version": "3.9.7", "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==", "dev": true }, "unicode-length": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/unicode-length/-/unicode-length-2.0.2.tgz", "integrity": "sha512-Ph/j1VbS3/r77nhoY2WU0GWGjVYOHL3xpKp0y/Eq2e5r0mT/6b649vm7KFO6RdAdrZkYLdxphYVgvODxPB+Ebg==", "dev": true, "requires": { "punycode": "^2.0.0", "strip-ansi": "^3.0.1" }, "dependencies": { "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { "ansi-regex": "^2.0.0" } } } }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "requires": { "punycode": "^2.1.0" } }, "uuid": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "dev": true }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" } }, "vlq": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", "dev": true }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" } }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { "string-width": "^1.0.1", "strip-ansi": "^3.0.1" }, "dependencies": { "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { "number-is-nan": "^1.0.0" } }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", "strip-ansi": "^3.0.0" } }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { "ansi-regex": "^2.0.0" } } } }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "requires": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", "signal-exit": "^3.0.2", "typedarray-to-buffer": "^3.1.5" } }, "y18n": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, "yaml": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", "dev": true }, "yapool": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/yapool/-/yapool-1.0.0.tgz", "integrity": "sha1-9pPymjFbUNmp2iZGp6ZkXJaYW2o=", "dev": true }, "yargs": { "version": "13.3.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "requires": { "cliui": "^5.0.0", "find-up": "^3.0.0", "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", "string-width": "^3.0.0", "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^13.1.2" }, "dependencies": { "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "cliui": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { "string-width": "^3.1.0", "strip-ansi": "^5.2.0", "wrap-ansi": "^5.1.0" } }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { "ansi-regex": "^4.1.0" } }, "wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "requires": { "ansi-styles": "^3.2.0", "string-width": "^3.0.0", "strip-ansi": "^5.0.0" } } } }, "yargs-parser": { "version": "13.1.2", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" } }, "yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true } } } node-har-validator-5.1.5/package.json000066400000000000000000000017351371044737000175040ustar00rootroot00000000000000{ "version": "5.1.3", "name": "har-validator", "description": "Extremely fast HTTP Archive (HAR) validator using JSON Schema", "author": "Ahmad Nassri (https://www.ahmadnassri.com/)", "homepage": "https://github.com/ahmadnassri/node-har-validator", "repository": { "type": "git", "url": "https://github.com/ahmadnassri/node-har-validator.git" }, "license": "MIT", "main": "lib/promise.js", "keywords": [ "har", "cli", "ajv", "http", "archive", "validate", "validator" ], "engines": { "node": ">=6" }, "files": [ "lib" ], "bugs": { "url": "https://github.com/ahmadnassri/node-har-validator/issues" }, "scripts": { "lint": "npx run-p lint:*", "test": "tap test --no-coverage", "test:coverage": "tap test --coverage-report=lcov --no-browser" }, "devDependencies": { "tap": "^14.10.8" }, "dependencies": { "ajv": "^6.12.3", "har-schema": "^2.0.0" } } node-har-validator-5.1.5/test/000077500000000000000000000000001371044737000161675ustar00rootroot00000000000000node-har-validator-5.1.5/test/async.js000066400000000000000000000023361371044737000176460ustar00rootroot00000000000000'use strict' const HARError = require('../lib/error') const invalid = require('./fixtures/har/invalid') const schemas = require('har-schema') const tap = require('tap') const valid = require('./fixtures/har/valid') const validate = require('../lib/async') tap.test('async', assert => { const keys = Object.keys(schemas).filter(key => key !== 'default') assert.plan(keys.length) keys.forEach(key => { assert.type(validate[key], 'function', `${key} is a function`) }) }) tap.test('failure', assert => { assert.plan(4) const error = new HARError([{ dataPath: '.log.version', message: 'should be string' }]) assert.notOk(validate.har({}), 'should fail') validate.har({}, (err, valid) => { assert.notOk(valid, 'should return false in a callback') assert.type(err, HARError, 'should return HARError object in a callback') }) validate.har(invalid.version, (err) => { assert.match(err, error, 'should fail on bad "log.version"') }) }) tap.test('success', assert => { assert.plan(3) assert.ok(validate.har(valid), 'should be successful') validate.har(valid, (err, valid) => { assert.ok(valid, 'should return true in a callback') assert.equal(err, null, 'should not have any errors') }) }) node-har-validator-5.1.5/test/cache-entry.js000066400000000000000000000006661371044737000207370ustar00rootroot00000000000000'use strict' const tap = require('tap') const validate = require('../lib/promise') tap.test('cache entry', assert => { assert.plan(2) return Promise.all([ validate.cache({ beforeRequest: null }).then(out => assert.match(out, { beforeRequest: null }, 'should allow null beforeRequest')), validate.cache({ afterRequest: null }).then(out => assert.match(out, { afterRequest: null }, 'should allow null afterRequest')) ]) }) node-har-validator-5.1.5/test/fixtures/000077500000000000000000000000001371044737000200405ustar00rootroot00000000000000node-har-validator-5.1.5/test/fixtures/har/000077500000000000000000000000001371044737000206125ustar00rootroot00000000000000node-har-validator-5.1.5/test/fixtures/har/invalid.json000066400000000000000000000014541371044737000231370ustar00rootroot00000000000000{ "creator": { "log": { "version": "1.2", "creator": { "name": "", "version": 2 }, "pages": [], "entries": [] } }, "date": { "log": { "version": "1.2", "creator": { "name": "WebInspector", "version": "537.36" }, "pages": [ { "startedDateTime": "2015-02-10T07:33:17.146", "id": "page_1", "title": "http://mockbin.com/", "pageTimings": { "onContentLoad": 627.4099349975586, "onLoad": 1266.5300369262695 } } ], "entries": [] } }, "version": { "log": { "version": 1.2, "creator": { "name": "", "version": "" }, "pages": [], "entries": [] } } } node-har-validator-5.1.5/test/fixtures/har/valid.json000066400000000000000000000064321371044737000226110ustar00rootroot00000000000000{ "log": { "version": "1.2", "creator": { "name": "WebInspector", "version": "537.36" }, "pages": [ { "startedDateTime": "2015-02-10T07:33:17.146Z", "id": "page_1", "title": "http://mockbin.com/", "pageTimings": { "onContentLoad": 627.4099349975586, "onLoad": 1266.5300369262695 } } ], "entries": [ { "startedDateTime": "2015-02-10T07:33:17.146Z", "time": 181.59985542297363, "serverIPAddress": "::1", "request": { "method": "GET", "url": "http://mockbin.com/", "httpVersion": "HTTP/1.1", "headers": [ { "name": "DNT", "value": "1" }, { "name": "Accept-Encoding", "value": "gzip, deflate, sdch" }, { "name": "Host", "value": "mockbin.com" }, { "name": "Connection", "value": "keep-alive" } ], "queryString": [], "cookies": [ { "name": "foo", "expires": "2015-02-10T07:33:17.146Z", "value": "bar", "httpOnly": false, "secure": false } ], "headersSize": 482, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [ { "name": "X-Response-Time", "value": "3.419ms" }, { "name": "Date", "value": "Tue, 10 Feb 2015 07:33:16 GMT" }, { "name": "Vary", "value": "Accept, Accept-Encoding" }, { "name": "X-Powered-By", "value": "mockbin.com" }, { "name": "Transfer-Encoding", "value": "chunked" }, { "name": "Content-Type", "value": "text/html; charset=utf-8" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "Connection", "value": "keep-alive" } ], "cookies": [], "content": { "size": 30, "mimeType": "text/html", "compression": 0, "text": "ALL YOUR BASE ARE BELONG TO US" }, "redirectURL": "", "headersSize": 430, "bodySize": 30 }, "cache": { "beforeRequest": null, "afterRequest": { "expires": "2009-04-16T15:50:36", "lastAccess": "2009-16-02T15:50:34", "eTag": "", "hitCount": 0, "comment": "" } }, "timings": { "blocked": 0.381000001652865, "dns": -1, "connect": -1, "send": 0.05899999996472599, "wait": 179.1829999983744, "receive": 1.9768554229816289, "ssl": -1 }, "connection": "161767", "pageref": "page_1" } ] } } node-har-validator-5.1.5/test/fixtures/request/000077500000000000000000000000001371044737000215305ustar00rootroot00000000000000node-har-validator-5.1.5/test/fixtures/request/invalid.json000066400000000000000000000012221371044737000240460ustar00rootroot00000000000000{ "headers": { "method": "GET", "url": "http://mockbin.com/", "httpVersion": "HTTP/1.1", "headers": {}, "queryString": [], "cookies": [], "headersSize": 0, "bodySize": 0 }, "malformed": { "method": "GET", "url": "http://mockbin.com/", "httpVersion": "HTTP/1.1", "headers": [ { "foo": "bar" } ], "queryString": [], "cookies": [], "headersSize": 0, "bodySize": 0 }, "url": { "method": "GET", "url": "mockbin.com", "httpVersion": "HTTP/1.1", "headers": [], "queryString": [], "cookies": [], "headersSize": 0, "bodySize": 0 } } node-har-validator-5.1.5/test/fixtures/request/valid.json000066400000000000000000000011261371044737000235220ustar00rootroot00000000000000{ "method": "GET", "url": "http://mockbin.com/", "httpVersion": "HTTP/1.1", "headers": [ { "name": "DNT", "value": "1" }, { "name": "Accept-Encoding", "value": "gzip, deflate, sdch" }, { "name": "Host", "value": "mockbin.com" }, { "name": "Connection", "value": "keep-alive" } ], "queryString": [], "cookies": [ { "name": "foo", "expires": "2015-02-10T07:33:17.146Z", "value": "bar", "httpOnly": false, "secure": false } ], "headersSize": 482, "bodySize": 0 } node-har-validator-5.1.5/test/fixtures/response/000077500000000000000000000000001371044737000216765ustar00rootroot00000000000000node-har-validator-5.1.5/test/fixtures/response/invalid.json000066400000000000000000000015221371044737000242170ustar00rootroot00000000000000{ "bodySize": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [], "cookies": [], "content": { "size": 0, "mimeType": "text/html" }, "redirectURL": "", "headersSize": 0, "bodySize": "0" }, "headers": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": {}, "cookies": [], "content": { "size": 0, "mimeType": "text/html" }, "redirectURL": "", "headersSize": 0, "bodySize": 0 }, "malformed": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [ { "foo": "bar" } ], "cookies": [], "content": { "size": 0, "mimeType": "text/html" }, "redirectURL": "", "headersSize": 0, "bodySize": 0 } } node-har-validator-5.1.5/test/fixtures/response/valid.json000066400000000000000000000016011371044737000236660ustar00rootroot00000000000000{ "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [ { "name": "X-Response-Time", "value": "3.419ms" }, { "name": "Date", "value": "Tue, 10 Feb 2015 07:33:16 GMT" }, { "name": "Vary", "value": "Accept, Accept-Encoding" }, { "name": "X-Powered-By", "value": "mockbin.com" }, { "name": "Transfer-Encoding", "value": "chunked" }, { "name": "Content-Type", "value": "text/html; charset=utf-8" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "Connection", "value": "keep-alive" } ], "cookies": [], "content": { "size": 30, "mimeType": "text/html", "compression": 0, "text": "ALL YOUR BASE ARE BELONG TO US" }, "redirectURL": "", "headersSize": 430, "bodySize": 30 } node-har-validator-5.1.5/test/log.js000066400000000000000000000031361371044737000173110ustar00rootroot00000000000000'use strict' const HARError = require('../lib/error') const invalid = require('./fixtures/har/invalid') const tap = require('tap') const valid = require('./fixtures/har/valid') const validate = require('../lib/promise') const errors = { object: new HARError([{ dataPath: '', message: "should have required property 'log'" }]), array: new HARError([{ dataPath: '', message: 'should be object' }]), undef: new HARError([{ dataPath: '', message: "should have required property 'log'" }]), version: new HARError([{ dataPath: '.log.version', message: 'should be string' }]), creator: new HARError([{ dataPath: '.log.creator.version', message: 'should be string' }]), date: new HARError([{ dataPath: '.log.pages[0].startedDateTime', message: 'should match pattern' }]) } tap.test('log', assert => { assert.plan(7) return Promise.all([ validate.har({}).catch(err => assert.match(err, errors.object, 'should fail with empty object')), validate.har([]).catch(err => assert.match(err, errors.array, 'should fail with empty array')), validate.har(undefined).catch(err => assert.match(err, errors.undef, 'should fail with undefined')), validate.har(invalid.version).catch(err => assert.match(err, errors.version, 'should fail on bad "log.version"')), validate.har(invalid.creator).catch(err => assert.match(err, errors.creator, 'should fail on bad "log.creator"')), validate.har(invalid.date).catch(err => assert.match(err, errors.date, 'should fail on bad "log.pages.*.startedDateTime"')), validate.har(valid).then(out => assert.equal(out, valid, 'should not fail with full example')) ]) }) node-har-validator-5.1.5/test/promise.js000066400000000000000000000013531371044737000202050ustar00rootroot00000000000000'use strict' const fixture = require('./fixtures/har/valid') const HARError = require('../lib/error') const schemas = require('har-schema') const tap = require('tap') const validate = require('../lib/promise') tap.test('promises', assert => { const keys = Object.keys(schemas).filter((key) => key !== 'default') assert.plan((keys.length * 2) + 2) keys.forEach(key => { assert.type(validate[key], 'function', `${key} is a function`) assert.type(validate[key]().catch(() => {}), Promise, `${key}() is a promise`) }) validate.har({}).catch(err => { assert.type(err, HARError, 'thrown error is an object') }) validate.har(fixture).then(out => { assert.equal(out, fixture, 'resolves with the original data') }) }) node-har-validator-5.1.5/test/request.js000066400000000000000000000031471371044737000202220ustar00rootroot00000000000000'use strict' const HARError = require('../lib/error') const invalid = require('./fixtures/request/invalid') const tap = require('tap') const valid = require('./fixtures/request/valid') const validate = require('../lib/promise') const errors = { object: new HARError([{ dataPath: '', message: "should have required property 'method'" }]), array: new HARError([{ dataPath: '', message: 'should be object' }]), undef: new HARError([{ dataPath: '', message: "should have required property 'method'" }]), url: new HARError([{ dataPath: '.url', message: 'should match format "uri"' }]), headers: new HARError([{ dataPath: '.headers', message: 'should be array' }]), malformed: new HARError([{ dataPath: '.headers[0]', message: "should have required property 'name'" }]) } tap.test('request', assert => { assert.plan(7) return Promise.all([ validate.request({}).catch(err => assert.match(err, errors.object, 'should fail with empty object')), validate.request([]).catch(err => assert.match(err, errors.array, 'should fail with empty array')), validate.request(undefined).catch(err => assert.match(err, errors.undef, 'should fail with undefined')), validate.request(invalid.url).catch(err => assert.match(err, errors.url, 'should fail on bad "url"')), validate.request(invalid.headers).catch(err => assert.match(err, errors.headers, 'should fail on bad "headers"')), validate.request(invalid.malformed).catch(err => assert.match(err, errors.malformed, 'should fail on malformed "headers"')), validate.request(valid).then(out => assert.equal(out, valid, 'should not fail with full example')) ]) }) node-har-validator-5.1.5/test/response.js000066400000000000000000000032021371044737000203600ustar00rootroot00000000000000'use strict' const HARError = require('../lib/error') const invalid = require('./fixtures/response/invalid') const valid = require('./fixtures/response/valid') const validate = require('../lib/promise') const tap = require('tap') const errors = { object: new HARError([{ dataPath: '', message: "should have required property 'status'" }]), array: new HARError([{ dataPath: '', message: 'should be object' }]), undef: new HARError([{ dataPath: '', message: "should have required property 'status'" }]), bodySize: new HARError([{ dataPath: '.bodySize', message: 'should be integer' }]), headers: new HARError([{ dataPath: '.headers', message: 'should be array' }]), malformed: new HARError([{ dataPath: '.headers[0]', message: "should have required property 'name'" }]) } tap.test('response', assert => { assert.plan(7) return Promise.all([ validate.response({}).catch(err => assert.match(err, errors.object, 'should fail with empty object')), validate.response([]).catch(err => assert.match(err, errors.array, 'should fail with empty array')), validate.response(undefined).catch(err => assert.match(err, errors.undef, 'should fail with undefined')), validate.response(invalid.bodySize).catch(err => assert.match(err, errors.bodySize, 'should fail on bad "bodySize"')), validate.response(invalid.headers).catch(err => assert.match(err, errors.headers, 'should fail on bad "headers"')), validate.response(invalid.malformed).catch(err => assert.match(err, errors.malformed, 'should fail on malformed "headers"')), validate.response(valid).then(out => assert.equal(out, valid, 'should not fail with full example')) ]) })