diff --git a/.eslintrc.json b/.eslintrc.json
index 0f436c5b..02244542 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -1,32 +1,30 @@
{
"env": {
"browser": true,
+ "commonjs": true,
"es2021": true
},
- "extends": "eslint:recommended",
+ "extends": [
+ "google"
+ ],
"parserOptions": {
- "ecmaVersion": 12
+ "ecmaVersion": "latest"
},
"rules": {
"array-bracket-spacing": "error",
"block-scoped-var": "error",
"block-spacing": "error",
"brace-style": "error",
- "camelcase": "error",
+ "camelcase": "off",
"class-methods-use-this": "error",
"consistent-return": "error",
"default-case": "error",
"default-case-last": "error",
"default-param-last": "error",
"grouped-accessor-pairs": "error",
- "indent": [
- "error",
- 4
- ],
- "linebreak-style": [
- "error",
- "unix"
- ],
+ "indent": [ "error", 4 ],
+ "linebreak-style": [ "error", "unix" ],
+ "max-len": ["error", { "code": 120 }],
"no-caller": "error",
"no-console": "error",
"no-empty-function": "error",
@@ -43,17 +41,25 @@
"no-throw-literal": "error",
"no-undefined": "error",
"no-unreachable-loop": "error",
- "no-unused-expressions": "error",
+ "no-unused-expressions": "off",
"no-useless-backreference": "error",
"no-useless-concat": "error",
"no-var": "error",
+ "object-curly-spacing": [
+ "error",
+ "always",
+ {
+ "arraysInObjects": true
+ }
+ ],
"prefer-const": "error",
"prefer-promise-reject-errors": "error",
"require-atomic-updates": "error",
"require-await": "error",
+ "require-jsdoc" : 0,
"semi": [
"error",
- "always"
+ "never"
],
"quotes": [
"error",
diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml
index 38a53000..a57a1fcc 100644
--- a/.github/workflows/actions.yml
+++ b/.github/workflows/actions.yml
@@ -18,34 +18,36 @@ jobs:
name: Build Docs
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@master
+ - uses: actions/checkout@v3
- name: Set up Python
- uses: actions/setup-python@v3
+ uses: actions/setup-python@v4
with:
- python-version: 3.9
+ python-version: '3.10'
- name: Install tox
run: python -m pip install --upgrade tox
- name: Build docs with tox
- run: python -m tox -e docs
+ run: tox -e docs
tests:
uses: ./.github/workflows/tests.yml
publish:
+ if: github.repository_owner == 'pytest-dev'
name: Publish to PyPI registry
needs:
- tests
runs-on: ubuntu-latest
env:
PY_COLORS: 1
- TOXENV: packaging
-
steps:
- - uses: actions/setup-python@v3
+ - name: Switch to using Python 3.10 by default
+ uses: actions/setup-python@v4
with:
- python-version: 3.9
+ python-version: '3.10'
+
- name: Install tox
run: python -m pip install --user tox
+
- name: Check out src from Git
uses: actions/checkout@v3
with:
@@ -62,6 +64,7 @@ jobs:
) &&
1 || 0
}}
+
- name: Drop Git tags from HEAD for non-tag-create events
if: >-
github.event_name != 'create' ||
@@ -70,8 +73,16 @@ jobs:
git tag --points-at HEAD
|
xargs git tag --delete
- - name: Build dists
- run: python -m tox
+
+ - name: Build and Check Package
+ uses: hynek/build-and-inspect-python-package@v1
+
+ - name: Download Package
+ uses: actions/download-artifact@v3
+ with:
+ name: Packages
+ path: dist
+
- name: Publish to test.pypi.org
if: >-
(
@@ -84,14 +95,15 @@ jobs:
github.event_name == 'create' &&
github.event.ref_type == 'tag'
)
- uses: pypa/gh-action-pypi-publish@master
+ uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.testpypi_password }}
repository_url: https://test.pypi.org/legacy/
+
- name: Publish to pypi.org
if: >- # "create" workflows run separately from "push" & "pull_request"
github.event_name == 'create' &&
github.event.ref_type == 'tag'
- uses: pypa/gh-action-pypi-publish@master
+ uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.pypi_password }}
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 0af6065f..21eea4a3 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -5,123 +5,133 @@ on:
jobs:
test_python:
- name: ${{ matrix.name }}
- runs-on: ${{ matrix.os }}
+ name: ${{ matrix.python-version }}
+ runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- - os: ubuntu-latest
- name: py37-ubuntu
- python-version: 3.7
-
- - os: windows-latest
- name: py37-windows
- python-version: 3.7
+ - tox-env: "py37"
+ python-version: "3.7"
- - os: macOS-latest
- name: py37-mac
- python-version: 3.7
+# https://github.com/pytest-dev/pytest-html/issues/585
+# - os: windows-latest
+# name: py37-windows
+# python-version: 3.7
- - os: ubuntu-latest
- name: py38-ubuntu
- python-version: 3.8
+# https://github.com/pytest-dev/pytest-html/issues/585
+# - os: macOS-latest
+# name: py37-mac
+# python-version: 3.7
- - os: windows-latest
- name: py38-windows
- python-version: 3.8
+ - tox-env: "py38"
+ python-version: "3.8"
- - os: macOS-latest
- name: py38-mac
- python-version: 3.8
+# https://github.com/pytest-dev/pytest-html/issues/585
+# - os: windows-latest
+# name: py38-windows
+# python-version: 3.8
- - os: ubuntu-latest
- name: py39-ubuntu
- python-version: 3.9
+# https://github.com/pytest-dev/pytest-html/issues/585
+# - os: macOS-latest
+# name: py38-mac
+# python-version: 3.8
- - os: windows-latest
- name: py39-windows
- python-version: 3.9
+ - tox-env: "py39"
+ python-version: "3.9"
- - os: macOS-latest
- name: py39-mac
- python-version: 3.9
+ - tox-env: "py310"
+ python-version: "3.10"
- - os: ubuntu-latest
- name: py310-ubuntu
- python-version: '3.10'
+# https://github.com/pytest-dev/pytest-html/issues/585
+# - os: windows-latest
+# name: py39-windows
+# python-version: 3.9
- - os: windows-latest
- name: py310-windows
- python-version: '3.10'
+# https://github.com/pytest-dev/pytest-html/issues/585
+# - os: macOS-latest
+# name: py39-mac
+# python-version: 3.9
- - os: macOS-latest
- name: py310-mac
- python-version: '3.10'
+ - tox-env: "pypy3"
+ python-version: "pypy3.9"
+ skip-coverage: true
- - os: ubuntu-latest
- name: pypy3-ubuntu
- python-version: pypy-3.8
-
- - os: windows-latest
- name: pypy3-windows
- python-version: pypy-3.8
+# https://github.com/pytest-dev/pytest-html/issues/585
+# - os: windows-latest
+# name: pypy3-windows
+# python-version: pypy3
# https://github.com/pytest-dev/pytest-html/issues/482
- - os: macOS-latest
- name: pypy3-mac
- python-version: pypy-3.8
+# - os: macOS-latest
+# name: pypy3-mac
+# python-version: pypy-3.8
- - os: ubuntu-latest
- name: devel-ubuntu
- python-version: 3.9
+ - tox-env: "devel"
+ python-version: "3.11-dev"
steps:
- name: Set Newline Behavior
- run : git config --global core.autocrlf false
+ run: git config --global core.autocrlf false
+
- uses: actions/checkout@v3
+
+ - name: Start chrome
+ run: ./start
+
+ - name: Use Node.js
+ uses: actions/setup-node@v3
with:
- fetch-depth: 0
+ node-version: '16.x'
+
+ - name: Install Dependencies
+ run: npm ci
+
+ - name: Build app
+ run: npm run build:ci
+
- name: Set up Python
- uses: actions/setup-python@v3
+ uses: actions/setup-python@v4
with:
- python-version: ${{ matrix['python-version'] }}
+ python-version: ${{ matrix.python-version }}
+
- name: Install tox
run: python -m pip install --upgrade tox
- - name: Get Tox Environment Name From Matrix Name
- uses: rishabhgupta/split-by@v1
- id: split-matrix-name
- with:
- string: '${{ matrix.name }}'
- split-by: '-'
+
- name: Test with coverage
- if: "! contains(matrix.name, 'pypy3')"
- run: python -m tox -e ${{ steps.split-matrix-name.outputs._0}}-cov
+ if: ${{ ! matrix.skip-coverage }}
+ run: tox -e ${{ matrix.tox-env }}-cov
+
- name: Test without coverage
- if: "contains(matrix.name, 'pypy3')"
- run: python -m tox -e ${{ steps.split-matrix-name.outputs._0}}
-
- # TODO: https://github.com/pytest-dev/pytest-html/issues/481
-# - name: Upload coverage to codecov
-# if: github.event.schedule == ''
-# uses: codecov/codecov-action@v2
-# with:
-# fail_ci_if_error: true
-# file: ./coverage.xml
-# flags: tests
-# name: ${{ matrix.py }} - ${{ matrix.os }}
-# verbose: true
+ if: ${{ matrix.skip-coverage }}
+ run: tox -e ${{ matrix.tox-env }}
+
+ # TODO: https://github.com/pytest-dev/pytest-html/issues/481
+ - name: Upload coverage to codecov
+ if: >-
+ ${{
+ ! github.event.schedule &&
+ ! matrix.skip-coverage &&
+ github.repository_owner == 'pytest-dev'
+ }}
+ uses: codecov/codecov-action@v3
+ with:
+ fail_ci_if_error: true
+ files: ./coverage.xml
+ flags: tests
+ name: ${{ matrix.tox-env }}
+ verbose: true
test_javascript:
- name: grunt
+ name: mocha
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- - name: Use Node.js ${{ matrix.node-version }}
+ - name: Use Node.js
uses: actions/setup-node@v3
with:
- node-version: '12.x'
+ node-version: '16.x'
- name: Install Dependencies
- run: npm install
- - name: QUnit Tests
- run: npm test
+ run: npm ci
+ - name: Mocha Tests
+ run: npm run unit
diff --git a/.gitignore b/.gitignore
index 19f5119a..3c76b5b9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,7 +35,6 @@ local.properties
# JS files/folders
## node / npm
node_modules/
-package-lock.json
# MacOS files
.DS_Store
@@ -51,3 +50,6 @@ Pipfile.lock
# sphinx/read the docs
docs/_build/
+
+*.html
+assets/
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index aa5c6711..2b24580c 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -3,12 +3,14 @@ repos:
rev: 22.3.0
hooks:
- id: black
- args: [--safe, --quiet]
+ args: [--safe, --quiet, --line-length=88]
+
- repo: https://github.com/asottile/blacken-docs
rev: v1.12.1
hooks:
- id: blacken-docs
additional_dependencies: [black==22.3.0]
+
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.1.0
hooks:
@@ -19,6 +21,7 @@ repos:
- id: check-yaml
- id: debug-statements
language_version: python3
+
- repo: https://github.com/PyCQA/flake8
rev: 4.0.1
hooks:
@@ -27,16 +30,19 @@ repos:
additional_dependencies:
- flake8-builtins==1.5.3
- flake8-typing-imports==1.12.0
+
- repo: https://github.com/asottile/reorder_python_imports
rev: v3.0.1
hooks:
- id: reorder-python-imports
args: ["--application-directories=.:src:testing", --py3-plus]
+
- repo: https://github.com/asottile/pyupgrade
rev: v2.32.0
hooks:
- id: pyupgrade
args: [--py3-plus]
+
# - repo: https://github.com/pre-commit/mirrors-eslint
# rev: v7.13.0
# hooks:
@@ -44,6 +50,7 @@ repos:
# additional_dependencies:
# - eslint@7.13.0
# args: [src]
+
- repo: local
hooks:
- id: rst
@@ -52,6 +59,7 @@ repos:
files: ^(README.rst)$
language: python
additional_dependencies: [pygments, restructuredtext_lint]
+
- repo: https://github.com/elidupuis/mirrors-sass-lint
rev: "5cc45653263b423398e4af2561fae362903dd45d"
hooks:
diff --git a/src/pytest_html/resources/.prettierrc b/.prettierrc
similarity index 100%
rename from src/pytest_html/resources/.prettierrc
rename to .prettierrc
diff --git a/Pipfile b/Pipfile
deleted file mode 100644
index 58ceb8cb..00000000
--- a/Pipfile
+++ /dev/null
@@ -1,15 +0,0 @@
-[[source]]
-name = "pypi"
-url = "https://pypi.org/simple"
-verify_ssl = true
-
-[dev-packages]
-pytest = "*"
-tox = "*"
-flake8 = "==4.0.1" # also bump this in .pre-commit-config.yaml
-black = "==22.3.0" # also bump this in .pre-commit-config.yaml
-pre-commit = "*"
-pytest-rerunfailures = "*"
-
-[packages]
-pytest-html = {editable = true,path = "."}
diff --git a/docker-compose.tmpl.yml b/docker-compose.tmpl.yml
new file mode 100644
index 00000000..57060e79
--- /dev/null
+++ b/docker-compose.tmpl.yml
@@ -0,0 +1,12 @@
+version: "3"
+
+services:
+ chrome:
+ image: seleniarm/standalone-chromium:110.0
+ container_name: chrome
+ shm_size: '2gb'
+ ports:
+ - "4444:4444"
+ - "7900:7900"
+ volumes:
+ - "%%VOLUME%%:Z"
diff --git a/docs/development.rst b/docs/development.rst
index 8e0220e1..13f05825 100644
--- a/docs/development.rst
+++ b/docs/development.rst
@@ -93,11 +93,11 @@ Once `npm`_ is installed, you can install all needed dependencies by running:
$ npm install
-Run the following to generate the CSS:
+Run the following to build the application:
.. code-block:: bash
- $ npm run build:css
+ $ npm run build
Releasing a new version
-----------------------
diff --git a/nextgendata.json b/nextgendata.json
deleted file mode 100644
index e8dbab27..00000000
--- a/nextgendata.json
+++ /dev/null
@@ -1 +0,0 @@
-const jsonData = {"title": "Next Gen Report", "collectedItems": 89, "environment": {"Python": "3.7.7", "Platform": "Darwin-19.6.0-x86_64-i386-64bit", "Packages": {"pytest": "6.1.2", "py": "1.10.0", "pluggy": "0.13.1"}, "Plugins": {"html": "2.1.2.dev79", "rerunfailures": "9.1.1", "metadata": "1.11.0", "xdist": "2.1.0", "mock": "3.3.1", "forked": "1.3.0"}}, "tests": [{"nodeid": "testing/test_pytest_html.py::TestHTML::test_durations", "location": ["testing/test_pytest_html.py", 99, "TestHTML.test_durations"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_durations": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0036673380000000755, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_durations", "location": ["testing/test_pytest_html.py", 99, "TestHTML.test_durations"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_durations": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_durations0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_durations.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_durations0/report.html -\n============================== 1 passed in 0.44s ===============================\n"]], "duration": 0.49431424, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_durations", "location": ["testing/test_pytest_html.py", 99, "TestHTML.test_durations"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_durations": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_durations0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_durations.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_durations0/report.html -\n============================== 1 passed in 0.44s ===============================\n"]], "duration": 0.00044317899999990473, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_can_format_duration_column[%f-
\\\\d{2} | ]", "location": ["testing/test_pytest_html.py", 117, "TestHTML.test_can_format_duration_column[%f-\\\\d{2} | ]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_can_format_duration_column[%f-\\\\d{2} | ]": 1, "%f-\\\\d{2} | ": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0013949200000000772, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_can_format_duration_column[%f-\\\\d{2} | ]", "location": ["testing/test_pytest_html.py", 117, "TestHTML.test_can_format_duration_column[%f-\\\\d{2} | ]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_can_format_duration_column[%f-\\\\d{2} | ]": 1, "%f-\\\\d{2} | ": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_can_format_duration_column0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_can_format_duration_column.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_can_format_duration_column0/report.html -\n============================== 1 passed in 0.23s ===============================\n"]], "duration": 0.2922911640000001, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_can_format_duration_column[%f-\\\\d{2} | ]", "location": ["testing/test_pytest_html.py", 117, "TestHTML.test_can_format_duration_column[%f-\\\\d{2} | ]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_can_format_duration_column[%f-\\\\d{2} | ]": 1, "%f-\\\\d{2} | ": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_can_format_duration_column0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_can_format_duration_column.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_can_format_duration_column0/report.html -\n============================== 1 passed in 0.23s ===============================\n"]], "duration": 0.0005133910000001407, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_can_format_duration_column[%S.%f-\\\\d{2}\\\\.\\\\d{2} | ]", "location": ["testing/test_pytest_html.py", 117, "TestHTML.test_can_format_duration_column[%S.%f-\\\\d{2}\\\\.\\\\d{2} | ]"], "keywords": {"()": 1, "%S.%f-\\\\d{2}\\\\.\\\\d{2} | ": 1, "parametrize": 1, "test_can_format_duration_column[%S.%f-\\\\d{2}\\\\.\\\\d{2} | ]": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0015303190000000022, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_can_format_duration_column[%S.%f-\\\\d{2}\\\\.\\\\d{2} | ]", "location": ["testing/test_pytest_html.py", 117, "TestHTML.test_can_format_duration_column[%S.%f-\\\\d{2}\\\\.\\\\d{2} | ]"], "keywords": {"()": 1, "%S.%f-\\\\d{2}\\\\.\\\\d{2} | ": 1, "parametrize": 1, "test_can_format_duration_column[%S.%f-\\\\d{2}\\\\.\\\\d{2} | ]": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_can_format_duration_column1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_can_format_duration_column.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_can_format_duration_column1/report.html -\n============================== 1 passed in 0.23s ===============================\n"]], "duration": 0.29546306199999983, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_can_format_duration_column[%S.%f-\\\\d{2}\\\\.\\\\d{2} | ]", "location": ["testing/test_pytest_html.py", 117, "TestHTML.test_can_format_duration_column[%S.%f-\\\\d{2}\\\\.\\\\d{2} | ]"], "keywords": {"()": 1, "%S.%f-\\\\d{2}\\\\.\\\\d{2} | ": 1, "parametrize": 1, "test_can_format_duration_column[%S.%f-\\\\d{2}\\\\.\\\\d{2} | ]": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_can_format_duration_column1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_can_format_duration_column.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_can_format_duration_column1/report.html -\n============================== 1 passed in 0.23s ===============================\n"]], "duration": 0.0004488010000001097, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_can_format_duration_column[ABC%H %M %S123-ABC\\\\d{2} \\\\d{2} \\\\d{2}123 | ]", "location": ["testing/test_pytest_html.py", 117, "TestHTML.test_can_format_duration_column[ABC%H %M %S123-ABC\\\\d{2} \\\\d{2} \\\\d{2}123 | ]"], "keywords": {"()": 1, "parametrize": 1, "test_can_format_duration_column[ABC%H %M %S123-ABC\\\\d{2} \\\\d{2} \\\\d{2}123 | ]": 1, "ABC%H %M %S123-ABC\\\\d{2} \\\\d{2} \\\\d{2}123 | ": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0015885509999999936, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_can_format_duration_column[ABC%H %M %S123-ABC\\\\d{2} \\\\d{2} \\\\d{2}123 | ]", "location": ["testing/test_pytest_html.py", 117, "TestHTML.test_can_format_duration_column[ABC%H %M %S123-ABC\\\\d{2} \\\\d{2} \\\\d{2}123 | ]"], "keywords": {"()": 1, "parametrize": 1, "test_can_format_duration_column[ABC%H %M %S123-ABC\\\\d{2} \\\\d{2} \\\\d{2}123 | ]": 1, "ABC%H %M %S123-ABC\\\\d{2} \\\\d{2} \\\\d{2}123 | ": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_can_format_duration_column2\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_can_format_duration_column.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_can_format_duration_column2/report.html -\n============================== 1 passed in 0.23s ===============================\n"]], "duration": 0.3065783850000001, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_can_format_duration_column[ABC%H %M %S123-ABC\\\\d{2} \\\\d{2} \\\\d{2}123 | ]", "location": ["testing/test_pytest_html.py", 117, "TestHTML.test_can_format_duration_column[ABC%H %M %S123-ABC\\\\d{2} \\\\d{2} \\\\d{2}123 | ]"], "keywords": {"()": 1, "parametrize": 1, "test_can_format_duration_column[ABC%H %M %S123-ABC\\\\d{2} \\\\d{2} \\\\d{2}123 | ]": 1, "ABC%H %M %S123-ABC\\\\d{2} \\\\d{2} \\\\d{2}123 | ": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_can_format_duration_column2\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_can_format_duration_column.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_can_format_duration_column2/report.html -\n============================== 1 passed in 0.23s ===============================\n"]], "duration": 0.0003937960000000018, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_pass", "location": ["testing/test_pytest_html.py", 161, "TestHTML.test_pass"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_pass": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.001497801999999826, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_pass", "location": ["testing/test_pytest_html.py", 161, "TestHTML.test_pass"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_pass": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_pass0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_pass.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_pass0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.08453357100000014, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_pass", "location": ["testing/test_pytest_html.py", 161, "TestHTML.test_pass"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_pass": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_pass0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_pass.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_pass0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.00046858400000004963, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_skip", "location": ["testing/test_pytest_html.py", 167, "TestHTML.test_skip"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_skip": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.001534004999999894, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_skip", "location": ["testing/test_pytest_html.py", 167, "TestHTML.test_skip"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_skip": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_skip0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_skip.py s [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_skip0/report.html -\n============================== 1 skipped in 0.03s ==============================\n"]], "duration": 0.08762189300000012, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_skip", "location": ["testing/test_pytest_html.py", 167, "TestHTML.test_skip"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_skip": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_skip0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_skip.py s [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_skip0/report.html -\n============================== 1 skipped in 0.03s ==============================\n"]], "duration": 0.00040955400000042275, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_fail", "location": ["testing/test_pytest_html.py", 181, "TestHTML.test_fail"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_fail": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0012714879999999873, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_fail", "location": ["testing/test_pytest_html.py", 181, "TestHTML.test_fail"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_fail": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_fail0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_fail.py F [100%]\n\n=================================== FAILURES ===================================\n__________________________________ test_fail ___________________________________\n\n> def test_fail(): assert False\nE assert False\n\ntest_fail.py:1: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_fail0/report.html -\n=========================== short test summary info ============================\nFAILED test_fail.py::test_fail - assert False\n============================== 1 failed in 0.08s ===============================\n"]], "duration": 0.14583927699999988, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_fail", "location": ["testing/test_pytest_html.py", 181, "TestHTML.test_fail"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_fail": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_fail0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_fail.py F [100%]\n\n=================================== FAILURES ===================================\n__________________________________ test_fail ___________________________________\n\n> def test_fail(): assert False\nE assert False\n\ntest_fail.py:1: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_fail0/report.html -\n=========================== short test summary info ============================\nFAILED test_fail.py::test_fail - assert False\n============================== 1 failed in 0.08s ===============================\n"]], "duration": 0.00038187000000000637, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_rerun", "location": ["testing/test_pytest_html.py", 188, "TestHTML.test_rerun"], "keywords": {"()": 1, "test_rerun": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "flaky": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0013229070000000398, "rerun": 0, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_rerun", "location": ["testing/test_pytest_html.py", 188, "TestHTML.test_rerun"], "keywords": {"()": 1, "test_rerun": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "flaky": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_rerun0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_rerun.py R [100%]R [100%]F [100%]\n\n=================================== FAILURES ===================================\n_________________________________ test_example _________________________________\n\n @pytest.mark.flaky(reruns=2)\n def test_example():\n time.sleep(1)\n> assert False\nE assert False\n\ntest_rerun.py:7: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_rerun0/report.html -\n=========================== short test summary info ============================\nFAILED test_rerun.py::test_example - assert False\n========================== 1 failed, 2 rerun in 3.06s ==========================\n"]], "duration": 3.1173888279999997, "extra": [], "rerun": 0, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_rerun", "location": ["testing/test_pytest_html.py", 188, "TestHTML.test_rerun"], "keywords": {"()": 1, "test_rerun": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "flaky": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_rerun0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_rerun.py R [100%]R [100%]F [100%]\n\n=================================== FAILURES ===================================\n_________________________________ test_example _________________________________\n\n @pytest.mark.flaky(reruns=2)\n def test_example():\n time.sleep(1)\n> assert False\nE assert False\n\ntest_rerun.py:7: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_rerun0/report.html -\n=========================== short test summary info ============================\nFAILED test_rerun.py::test_example - assert False\n========================== 1 failed, 2 rerun in 3.06s ==========================\n"]], "duration": 0.0003732469999997434, "rerun": 0, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_no_rerun", "location": ["testing/test_pytest_html.py", 232, "TestHTML.test_no_rerun"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_no_rerun": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.001328675999999973, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_no_rerun", "location": ["testing/test_pytest_html.py", 232, "TestHTML.test_no_rerun"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_no_rerun": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_no_rerun0\nplugins: html-2.1.2.dev79, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_no_rerun.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_no_rerun0/report.html -\n============================== 1 passed in 0.03s ===============================\n"]], "duration": 0.07826826599999936, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_no_rerun", "location": ["testing/test_pytest_html.py", 232, "TestHTML.test_no_rerun"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_no_rerun": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_no_rerun0\nplugins: html-2.1.2.dev79, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_no_rerun.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_no_rerun0/report.html -\n============================== 1 passed in 0.03s ===============================\n"]], "duration": 0.0004888709999999463, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_conditional_xfails", "location": ["testing/test_pytest_html.py", 238, "TestHTML.test_conditional_xfails"], "keywords": {"()": 1, "pytest-html": 1, "test_conditional_xfails": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0013859060000003254, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_conditional_xfails", "location": ["testing/test_pytest_html.py", 238, "TestHTML.test_conditional_xfails"], "keywords": {"()": 1, "pytest-html": 1, "test_conditional_xfails": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_conditional_xfails0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 4 items\n\ntest_conditional_xfails.py F.xX [100%]\n\n=================================== FAILURES ===================================\n__________________________________ test_fail ___________________________________\n\n @pytest.mark.xfail(False, reason='reason')\n> def test_fail(): assert False\nE assert False\n\ntest_conditional_xfails.py:3: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_conditional_xfails0/report.html -\n=========================== short test summary info ============================\nFAILED test_conditional_xfails.py::test_fail - assert False\n============== 1 failed, 1 passed, 1 xfailed, 1 xpassed in 0.04s ===============\n"]], "duration": 0.10002625400000031, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_conditional_xfails", "location": ["testing/test_pytest_html.py", 238, "TestHTML.test_conditional_xfails"], "keywords": {"()": 1, "pytest-html": 1, "test_conditional_xfails": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_conditional_xfails0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 4 items\n\ntest_conditional_xfails.py F.xX [100%]\n\n=================================== FAILURES ===================================\n__________________________________ test_fail ___________________________________\n\n @pytest.mark.xfail(False, reason='reason')\n> def test_fail(): assert False\nE assert False\n\ntest_conditional_xfails.py:3: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_conditional_xfails0/report.html -\n=========================== short test summary info ============================\nFAILED test_conditional_xfails.py::test_fail - assert False\n============== 1 failed, 1 passed, 1 xfailed, 1 xpassed in 0.04s ===============\n"]], "duration": 0.0004362669999995461, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_setup_error", "location": ["testing/test_pytest_html.py", 256, "TestHTML.test_setup_error"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_setup_error": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.001473638999999416, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_setup_error", "location": ["testing/test_pytest_html.py", 256, "TestHTML.test_setup_error"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_setup_error": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_setup_error0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_setup_error.py E [100%]\n\n==================================== ERRORS ====================================\n_______________________ ERROR at setup of test_function ________________________\n\nrequest = >\n\n @pytest.fixture\n def arg(request):\n> raise ValueError()\nE ValueError\n\ntest_setup_error.py:4: ValueError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_setup_error0/report.html -\n=========================== short test summary info ============================\nERROR test_setup_error.py::test_function - ValueError\n=============================== 1 error in 0.03s ===============================\n"]], "duration": 0.09918738100000013, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_setup_error", "location": ["testing/test_pytest_html.py", 256, "TestHTML.test_setup_error"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_setup_error": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_setup_error0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_setup_error.py E [100%]\n\n==================================== ERRORS ====================================\n_______________________ ERROR at setup of test_function ________________________\n\nrequest = >\n\n @pytest.fixture\n def arg(request):\n> raise ValueError()\nE ValueError\n\ntest_setup_error.py:4: ValueError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_setup_error0/report.html -\n=========================== short test summary info ============================\nERROR test_setup_error.py::test_function - ValueError\n=============================== 1 error in 0.03s ===============================\n"]], "duration": 0.0005321309999999357, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_xfail", "location": ["testing/test_pytest_html.py", 273, "TestHTML.test_xfail"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_xfail": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.002005022999999717, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_xfail", "location": ["testing/test_pytest_html.py", 273, "TestHTML.test_xfail"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_xfail": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_xfail0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_xfail.py x [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_xfail0/report.html -\n============================== 1 xfailed in 0.03s ==============================\n"]], "duration": 0.08785569099999968, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_xfail", "location": ["testing/test_pytest_html.py", 273, "TestHTML.test_xfail"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_xfail": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_xfail0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_xfail.py x [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_xfail0/report.html -\n============================== 1 xfailed in 0.03s ==============================\n"]], "duration": 0.0004199800000002085, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_xpass", "location": ["testing/test_pytest_html.py", 287, "TestHTML.test_xpass"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_xpass": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0015004310000001908, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_xpass", "location": ["testing/test_pytest_html.py", 287, "TestHTML.test_xpass"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_xpass": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_xpass0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_xpass.py X [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_xpass0/report.html -\n============================== 1 xpassed in 0.02s ==============================\n"]], "duration": 0.08331356500000009, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_xpass", "location": ["testing/test_pytest_html.py", 287, "TestHTML.test_xpass"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_xpass": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_xpass0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_xpass.py X [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_xpass0/report.html -\n============================== 1 xpassed in 0.02s ==============================\n"]], "duration": 0.0005206979999998751, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_create_report_path", "location": ["testing/test_pytest_html.py", 300, "TestHTML.test_create_report_path"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_create_report_path": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0014421740000001293, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_create_report_path", "location": ["testing/test_pytest_html.py", 300, "TestHTML.test_create_report_path"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_create_report_path": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_create_report_path0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_create_report_path.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_create_report_path0/directory/report.html -\n============================== 1 passed in 0.03s ===============================\n"]], "duration": 0.1114130900000001, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_create_report_path", "location": ["testing/test_pytest_html.py", 300, "TestHTML.test_create_report_path"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_create_report_path": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_create_report_path0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_create_report_path.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_create_report_path0/directory/report.html -\n============================== 1 passed in 0.03s ===============================\n"]], "duration": 0.0006318069999995402, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_report_title[-False]", "location": ["testing/test_pytest_html.py", 307, "TestHTML.test_report_title[-False]"], "keywords": {"()": 1, "test_report_title[-False]": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "-False": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0020028510000003052, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_report_title[-False]", "location": ["testing/test_pytest_html.py", 307, "TestHTML.test_report_title[-False]"], "keywords": {"()": 1, "test_report_title[-False]": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "-False": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_report_title0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_report_title.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_report_title0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07519385300000003, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_report_title[-False]", "location": ["testing/test_pytest_html.py", 307, "TestHTML.test_report_title[-False]"], "keywords": {"()": 1, "test_report_title[-False]": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "-False": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_report_title0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_report_title.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_report_title0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0006114189999992803, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_report_title[-True]", "location": ["testing/test_pytest_html.py", 307, "TestHTML.test_report_title[-True]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_report_title[-True]": 1, "-True": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0017100860000001106, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_report_title[-True]", "location": ["testing/test_pytest_html.py", 307, "TestHTML.test_report_title[-True]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_report_title[-True]": 1, "-True": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_report_title1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_report_title.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_report_title1/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07526635299999995, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_report_title[-True]", "location": ["testing/test_pytest_html.py", 307, "TestHTML.test_report_title[-True]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_report_title[-True]": 1, "-True": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_report_title1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_report_title.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_report_title1/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0003561030000005516, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_report_title[directory-False]", "location": ["testing/test_pytest_html.py", 307, "TestHTML.test_report_title[directory-False]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_report_title[directory-False]": 1, "directory-False": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0027128549999995144, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_report_title[directory-False]", "location": ["testing/test_pytest_html.py", 307, "TestHTML.test_report_title[directory-False]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_report_title[directory-False]": 1, "directory-False": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_report_title2\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_report_title.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_report_title2/directory/report.html -\n============================== 1 passed in 0.03s ===============================\n"]], "duration": 0.10212423800000003, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_report_title[directory-False]", "location": ["testing/test_pytest_html.py", 307, "TestHTML.test_report_title[directory-False]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_report_title[directory-False]": 1, "directory-False": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_report_title2\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_report_title.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_report_title2/directory/report.html -\n============================== 1 passed in 0.03s ===============================\n"]], "duration": 0.0009715039999997899, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_report_title_addopts_env_var", "location": ["testing/test_pytest_html.py", 336, "TestHTML.test_report_title_addopts_env_var"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_report_title_addopts_env_var": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.003966342000000012, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_report_title_addopts_env_var", "location": ["testing/test_pytest_html.py", 336, "TestHTML.test_report_title_addopts_env_var"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_report_title_addopts_env_var": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_report_title_addopts_env_var0, configfile: pytest.ini\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_report_title_addopts_env_var.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_report_title_addopts_env_var0/MuhReport -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0851062700000007, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_report_title_addopts_env_var", "location": ["testing/test_pytest_html.py", 336, "TestHTML.test_report_title_addopts_env_var"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_report_title_addopts_env_var": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_report_title_addopts_env_var0, configfile: pytest.ini\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_report_title_addopts_env_var.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_report_title_addopts_env_var0/MuhReport -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0003679950000003984, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_resources_inline_css", "location": ["testing/test_pytest_html.py", 353, "TestHTML.test_resources_inline_css"], "keywords": {"()": 1, "test_resources_inline_css": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0018741750000002, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_resources_inline_css", "location": ["testing/test_pytest_html.py", 353, "TestHTML.test_resources_inline_css"], "keywords": {"()": 1, "test_resources_inline_css": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_resources_inline_css0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_resources_inline_css.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_resources_inline_css0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07641232599999981, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_resources_inline_css", "location": ["testing/test_pytest_html.py", 353, "TestHTML.test_resources_inline_css"], "keywords": {"()": 1, "test_resources_inline_css": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_resources_inline_css0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_resources_inline_css.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_resources_inline_css0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0004355919999996516, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_resources", "location": ["testing/test_pytest_html.py", 365, "TestHTML.test_resources"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_resources": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.001727119999999971, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_resources", "location": ["testing/test_pytest_html.py", 365, "TestHTML.test_resources"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_resources": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_resources0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_resources.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_resources0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07604445299999973, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_resources", "location": ["testing/test_pytest_html.py", 365, "TestHTML.test_resources"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_resources": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_resources0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_resources.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_resources0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0003666920000000573, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_stdout[pass]", "location": ["testing/test_pytest_html.py", 379, "TestHTML.test_stdout[pass]"], "keywords": {"()": 1, "parametrize": 1, "pass": 1, "pytest-html": 1, "test_stdout[pass]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0020287680000006247, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_stdout[pass]", "location": ["testing/test_pytest_html.py", 379, "TestHTML.test_stdout[pass]"], "keywords": {"()": 1, "parametrize": 1, "pass": 1, "pytest-html": 1, "test_stdout[pass]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_stdout0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_stdout.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_stdout0/report.html -\n============================== 1 passed in 0.03s ===============================\n"]], "duration": 0.08254114199999929, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_stdout[pass]", "location": ["testing/test_pytest_html.py", 379, "TestHTML.test_stdout[pass]"], "keywords": {"()": 1, "parametrize": 1, "pass": 1, "pytest-html": 1, "test_stdout[pass]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_stdout0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_stdout.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_stdout0/report.html -\n============================== 1 passed in 0.03s ===============================\n"]], "duration": 0.0003728869999992668, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_stdout[fail]", "location": ["testing/test_pytest_html.py", 379, "TestHTML.test_stdout[fail]"], "keywords": {"()": 1, "parametrize": 1, "fail": 1, "test_stdout[fail]": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0019192640000005312, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_stdout[fail]", "location": ["testing/test_pytest_html.py", 379, "TestHTML.test_stdout[fail]"], "keywords": {"()": 1, "parametrize": 1, "fail": 1, "test_stdout[fail]": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_stdout1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_stdout.py F [100%]\n\n=================================== FAILURES ===================================\n_________________________________ test_stdout __________________________________\n\n def test_stdout():\n print('ham')\n> assert f'fail' == 'pass'\nE AssertionError: assert 'fail' == 'pass'\nE - pass\nE + fail\n\ntest_stdout.py:3: AssertionError\n----------------------------- Captured stdout call -----------------------------\nham\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_stdout1/report.html -\n=========================== short test summary info ============================\nFAILED test_stdout.py::test_stdout - AssertionError: assert 'fail' == 'pass'\n============================== 1 failed in 0.03s ===============================\n"]], "duration": 0.08002120400000035, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_stdout[fail]", "location": ["testing/test_pytest_html.py", 379, "TestHTML.test_stdout[fail]"], "keywords": {"()": 1, "parametrize": 1, "fail": 1, "test_stdout[fail]": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_stdout1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_stdout.py F [100%]\n\n=================================== FAILURES ===================================\n_________________________________ test_stdout __________________________________\n\n def test_stdout():\n print('ham')\n> assert f'fail' == 'pass'\nE AssertionError: assert 'fail' == 'pass'\nE - pass\nE + fail\n\ntest_stdout.py:3: AssertionError\n----------------------------- Captured stdout call -----------------------------\nham\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_stdout1/report.html -\n=========================== short test summary info ============================\nFAILED test_stdout.py::test_stdout - AssertionError: assert 'fail' == 'pass'\n============================== 1 failed in 0.03s ===============================\n"]], "duration": 0.00044043299999962926, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_custom_content_in_summary", "location": ["testing/test_pytest_html.py", 393, "TestHTML.test_custom_content_in_summary"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_custom_content_in_summary": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0018412860000003306, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_custom_content_in_summary", "location": ["testing/test_pytest_html.py", 393, "TestHTML.test_custom_content_in_summary"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_custom_content_in_summary": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_custom_content_in_summary0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_custom_content_in_summary.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_custom_content_in_summary0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07787261499999953, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_custom_content_in_summary", "location": ["testing/test_pytest_html.py", 393, "TestHTML.test_custom_content_in_summary"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_custom_content_in_summary": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_custom_content_in_summary0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_custom_content_in_summary.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_custom_content_in_summary0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.00045128399999949664, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_html", "location": ["testing/test_pytest_html.py", 415, "TestHTML.test_extra_html"], "keywords": {"()": 1, "test_extra_html": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.001641712000000517, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_html", "location": ["testing/test_pytest_html.py", 415, "TestHTML.test_extra_html"], "keywords": {"()": 1, "test_extra_html": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_html0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_html.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_html0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07623547800000008, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_html", "location": ["testing/test_pytest_html.py", 415, "TestHTML.test_extra_html"], "keywords": {"()": 1, "test_extra_html": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_html0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_html.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_html0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0003402130000003112, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_text[u'\\x81'-woE=]", "location": ["testing/test_pytest_html.py", 434, "TestHTML.test_extra_text[u'\\x81'-woE=]"], "keywords": {"()": 1, "parametrize": 1, "test_extra_text[u'\\x81'-woE=]": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "u'\\x81'-woE=": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0020583240000000558, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_text[u'\\x81'-woE=]", "location": ["testing/test_pytest_html.py", 434, "TestHTML.test_extra_text[u'\\x81'-woE=]"], "keywords": {"()": 1, "parametrize": 1, "test_extra_text[u'\\x81'-woE=]": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "u'\\x81'-woE=": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_text0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_text.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_text0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.10278271900000036, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_text[u'\\x81'-woE=]", "location": ["testing/test_pytest_html.py", 434, "TestHTML.test_extra_text[u'\\x81'-woE=]"], "keywords": {"()": 1, "parametrize": 1, "test_extra_text[u'\\x81'-woE=]": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "u'\\x81'-woE=": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_text0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_text.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_text0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.00036916100000006224, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_text['foo'-Zm9v]", "location": ["testing/test_pytest_html.py", 434, "TestHTML.test_extra_text['foo'-Zm9v]"], "keywords": {"()": 1, "test_extra_text['foo'-Zm9v]": 1, "parametrize": 1, "'foo'-Zm9v": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0021222090000003746, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_text['foo'-Zm9v]", "location": ["testing/test_pytest_html.py", 434, "TestHTML.test_extra_text['foo'-Zm9v]"], "keywords": {"()": 1, "test_extra_text['foo'-Zm9v]": 1, "parametrize": 1, "'foo'-Zm9v": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_text1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_text.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_text1/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0749503709999999, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_text['foo'-Zm9v]", "location": ["testing/test_pytest_html.py", 434, "TestHTML.test_extra_text['foo'-Zm9v]"], "keywords": {"()": 1, "test_extra_text['foo'-Zm9v]": 1, "parametrize": 1, "'foo'-Zm9v": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_text1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_text.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_text1/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.00048790399999987244, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_text[b'\\\\xe2\\\\x80\\\\x93'-4oCT]", "location": ["testing/test_pytest_html.py", 434, "TestHTML.test_extra_text[b'\\\\xe2\\\\x80\\\\x93'-4oCT]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "b'\\\\xe2\\\\x80\\\\x93'-4oCT": 1, "testing/test_pytest_html.py": 1, "test_extra_text[b'\\\\xe2\\\\x80\\\\x93'-4oCT]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0018659049999998345, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_text[b'\\\\xe2\\\\x80\\\\x93'-4oCT]", "location": ["testing/test_pytest_html.py", 434, "TestHTML.test_extra_text[b'\\\\xe2\\\\x80\\\\x93'-4oCT]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "b'\\\\xe2\\\\x80\\\\x93'-4oCT": 1, "testing/test_pytest_html.py": 1, "test_extra_text[b'\\\\xe2\\\\x80\\\\x93'-4oCT]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_text2\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_text.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_text2/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07276922899999949, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_text[b'\\\\xe2\\\\x80\\\\x93'-4oCT]", "location": ["testing/test_pytest_html.py", 434, "TestHTML.test_extra_text[b'\\\\xe2\\\\x80\\\\x93'-4oCT]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "b'\\\\xe2\\\\x80\\\\x93'-4oCT": 1, "testing/test_pytest_html.py": 1, "test_extra_text[b'\\\\xe2\\\\x80\\\\x93'-4oCT]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_text2\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_text.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_text2/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0004479520000000292, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_json", "location": ["testing/test_pytest_html.py", 458, "TestHTML.test_extra_json"], "keywords": {"()": 1, "test_extra_json": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.001712235000000284, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_json", "location": ["testing/test_pytest_html.py", 458, "TestHTML.test_extra_json"], "keywords": {"()": 1, "test_extra_json": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_json0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_json.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_json0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07308281000000072, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_json", "location": ["testing/test_pytest_html.py", 458, "TestHTML.test_extra_json"], "keywords": {"()": 1, "test_extra_json": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_json0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_json.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_json0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0003538870000001637, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_url", "location": ["testing/test_pytest_html.py", 481, "TestHTML.test_extra_url"], "keywords": {"test_extra_url": 1, "()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0019020869999994972, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_url", "location": ["testing/test_pytest_html.py", 481, "TestHTML.test_extra_url"], "keywords": {"test_extra_url": 1, "()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_url0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_url.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_url0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07493891200000036, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_url", "location": ["testing/test_pytest_html.py", 481, "TestHTML.test_extra_url"], "keywords": {"test_extra_url": 1, "()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_url0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_url.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_url0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0004623109999997155, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image[image/png-png]", "location": ["testing/test_pytest_html.py", 501, "TestHTML.test_extra_image[image/png-png]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "test_extra_image[image/png-png]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "image/png-png": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0017894300000005359, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image[image/png-png]", "location": ["testing/test_pytest_html.py", 501, "TestHTML.test_extra_image[image/png-png]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "test_extra_image[image/png-png]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "image/png-png": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07378127099999965, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image[image/png-png]", "location": ["testing/test_pytest_html.py", 501, "TestHTML.test_extra_image[image/png-png]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "test_extra_image[image/png-png]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "image/png-png": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0005149250000000549, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image[image/png-image]", "location": ["testing/test_pytest_html.py", 501, "TestHTML.test_extra_image[image/png-image]"], "keywords": {"()": 1, "parametrize": 1, "image/png-image": 1, "test_extra_image[image/png-image]": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0018907930000002793, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image[image/png-image]", "location": ["testing/test_pytest_html.py", 501, "TestHTML.test_extra_image[image/png-image]"], "keywords": {"()": 1, "parametrize": 1, "image/png-image": 1, "test_extra_image[image/png-image]": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image1/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07501022800000001, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image[image/png-image]", "location": ["testing/test_pytest_html.py", 501, "TestHTML.test_extra_image[image/png-image]"], "keywords": {"()": 1, "parametrize": 1, "image/png-image": 1, "test_extra_image[image/png-image]": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image1/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0004562729999992854, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image[image/jpeg-jpg]", "location": ["testing/test_pytest_html.py", 501, "TestHTML.test_extra_image[image/jpeg-jpg]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_image[image/jpeg-jpg]": 1, "image/jpeg-jpg": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.002135567999999921, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image[image/jpeg-jpg]", "location": ["testing/test_pytest_html.py", 501, "TestHTML.test_extra_image[image/jpeg-jpg]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_image[image/jpeg-jpg]": 1, "image/jpeg-jpg": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image2\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image2/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0746705470000002, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image[image/jpeg-jpg]", "location": ["testing/test_pytest_html.py", 501, "TestHTML.test_extra_image[image/jpeg-jpg]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_image[image/jpeg-jpg]": 1, "image/jpeg-jpg": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image2\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image2/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.00039477400000009766, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image[image/svg+xml-svg]", "location": ["testing/test_pytest_html.py", 501, "TestHTML.test_extra_image[image/svg+xml-svg]"], "keywords": {"()": 1, "parametrize": 1, "image/svg+xml-svg": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_image[image/svg+xml-svg]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.002661645999999962, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image[image/svg+xml-svg]", "location": ["testing/test_pytest_html.py", 501, "TestHTML.test_extra_image[image/svg+xml-svg]"], "keywords": {"()": 1, "parametrize": 1, "image/svg+xml-svg": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_image[image/svg+xml-svg]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image3\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image3/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07526027599999985, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image[image/svg+xml-svg]", "location": ["testing/test_pytest_html.py", 501, "TestHTML.test_extra_image[image/svg+xml-svg]"], "keywords": {"()": 1, "parametrize": 1, "image/svg+xml-svg": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_image[image/svg+xml-svg]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image3\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image3/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.00034372999999998655, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_windows", "location": ["testing/test_pytest_html.py", 530, "TestHTML.test_extra_image_windows"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_extra_image_windows": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0025055219999998712, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_windows", "location": ["testing/test_pytest_html.py", 530, "TestHTML.test_extra_image_windows"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_extra_image_windows": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_windows0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image_windows.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_windows0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0736806940000001, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_windows", "location": ["testing/test_pytest_html.py", 530, "TestHTML.test_extra_image_windows"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_extra_image_windows": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_windows0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image_windows.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_windows0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.000417881999999814, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_video[video/mp4-mp4]", "location": ["testing/test_pytest_html.py", 536, "TestHTML.test_extra_video[video/mp4-mp4]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "video/mp4-mp4": 1, "test_extra_video[video/mp4-mp4]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.002039147999999713, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_video[video/mp4-mp4]", "location": ["testing/test_pytest_html.py", 536, "TestHTML.test_extra_video[video/mp4-mp4]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "video/mp4-mp4": 1, "test_extra_video[video/mp4-mp4]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_video0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_video.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_video0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07426513900000042, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_video[video/mp4-mp4]", "location": ["testing/test_pytest_html.py", 536, "TestHTML.test_extra_video[video/mp4-mp4]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "video/mp4-mp4": 1, "test_extra_video[video/mp4-mp4]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_video0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_video.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_video0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0004290969999996008, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_video_windows", "location": ["testing/test_pytest_html.py", 559, "TestHTML.test_extra_video_windows"], "keywords": {"()": 1, "test_extra_video_windows": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.001969939000000309, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_video_windows", "location": ["testing/test_pytest_html.py", 559, "TestHTML.test_extra_video_windows"], "keywords": {"()": 1, "test_extra_video_windows": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_video_windows0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_video_windows.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_video_windows0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.10933177699999952, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_video_windows", "location": ["testing/test_pytest_html.py", 559, "TestHTML.test_extra_video_windows"], "keywords": {"()": 1, "test_extra_video_windows": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_video_windows0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_video_windows.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_video_windows0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0004717520000001585, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_text_separated[u'\\x81']", "location": ["testing/test_pytest_html.py", 565, "TestHTML.test_extra_text_separated[u'\\x81']"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "u'\\x81'": 1, "test_extra_text_separated[u'\\x81']": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0019894310000001525, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_text_separated[u'\\x81']", "location": ["testing/test_pytest_html.py", 565, "TestHTML.test_extra_text_separated[u'\\x81']"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "u'\\x81'": 1, "test_extra_text_separated[u'\\x81']": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_text_separated0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_text_separated.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_text_separated0/report.html -\n============================== 1 passed in 0.09s ===============================\n"]], "duration": 0.14134349999999962, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_text_separated[u'\\x81']", "location": ["testing/test_pytest_html.py", 565, "TestHTML.test_extra_text_separated[u'\\x81']"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "u'\\x81'": 1, "test_extra_text_separated[u'\\x81']": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_text_separated0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_text_separated.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_text_separated0/report.html -\n============================== 1 passed in 0.09s ===============================\n"]], "duration": 0.0004216690000014012, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_text_separated['foo']", "location": ["testing/test_pytest_html.py", 565, "TestHTML.test_extra_text_separated['foo']"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_text_separated['foo']": 1, "'foo'": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.001997775999999618, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_text_separated['foo']", "location": ["testing/test_pytest_html.py", 565, "TestHTML.test_extra_text_separated['foo']"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_text_separated['foo']": 1, "'foo'": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_text_separated1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_text_separated.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_text_separated1/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07920805700000066, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_text_separated['foo']", "location": ["testing/test_pytest_html.py", 565, "TestHTML.test_extra_text_separated['foo']"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_text_separated['foo']": 1, "'foo'": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_text_separated1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_text_separated.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_text_separated1/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0003971699999993916, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_text_separated[b'\\\\xe2\\\\x80\\\\x93']", "location": ["testing/test_pytest_html.py", 565, "TestHTML.test_extra_text_separated[b'\\\\xe2\\\\x80\\\\x93']"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "b'\\\\xe2\\\\x80\\\\x93'": 1, "testing/test_pytest_html.py": 1, "test_extra_text_separated[b'\\\\xe2\\\\x80\\\\x93']": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0020385409999992277, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_text_separated[b'\\\\xe2\\\\x80\\\\x93']", "location": ["testing/test_pytest_html.py", 565, "TestHTML.test_extra_text_separated[b'\\\\xe2\\\\x80\\\\x93']"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "b'\\\\xe2\\\\x80\\\\x93'": 1, "testing/test_pytest_html.py": 1, "test_extra_text_separated[b'\\\\xe2\\\\x80\\\\x93']": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_text_separated2\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_text_separated.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_text_separated2/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07518856299999932, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_text_separated[b'\\\\xe2\\\\x80\\\\x93']", "location": ["testing/test_pytest_html.py", 565, "TestHTML.test_extra_text_separated[b'\\\\xe2\\\\x80\\\\x93']"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "b'\\\\xe2\\\\x80\\\\x93'": 1, "testing/test_pytest_html.py": 1, "test_extra_text_separated[b'\\\\xe2\\\\x80\\\\x93']": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_text_separated2\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_text_separated.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_text_separated2/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.00045967299999993827, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_separated[png-image]", "location": ["testing/test_pytest_html.py", 589, "TestHTML.test_extra_image_separated[png-image]"], "keywords": {"()": 1, "parametrize": 1, "TestHTML": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "png-image": 1, "test_extra_image_separated[png-image]": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0023547229999998365, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_separated[png-image]", "location": ["testing/test_pytest_html.py", 589, "TestHTML.test_extra_image_separated[png-image]"], "keywords": {"()": 1, "parametrize": 1, "TestHTML": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "png-image": 1, "test_extra_image_separated[png-image]": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image_separated.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07776453200000155, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_separated[png-image]", "location": ["testing/test_pytest_html.py", 589, "TestHTML.test_extra_image_separated[png-image]"], "keywords": {"()": 1, "parametrize": 1, "TestHTML": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "png-image": 1, "test_extra_image_separated[png-image]": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image_separated.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.00041938600000079873, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_separated[png-png]", "location": ["testing/test_pytest_html.py", 589, "TestHTML.test_extra_image_separated[png-png]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "png-png": 1, "test_extra_image_separated[png-png]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0024543210000000926, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_separated[png-png]", "location": ["testing/test_pytest_html.py", 589, "TestHTML.test_extra_image_separated[png-png]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "png-png": 1, "test_extra_image_separated[png-png]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image_separated.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated1/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07404035599999936, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_separated[png-png]", "location": ["testing/test_pytest_html.py", 589, "TestHTML.test_extra_image_separated[png-png]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "png-png": 1, "test_extra_image_separated[png-png]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image_separated.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated1/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0004252390000001327, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_separated[svg-svg]", "location": ["testing/test_pytest_html.py", 589, "TestHTML.test_extra_image_separated[svg-svg]"], "keywords": {"()": 1, "parametrize": 1, "svg-svg": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_image_separated[svg-svg]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.002307366000000144, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_separated[svg-svg]", "location": ["testing/test_pytest_html.py", 589, "TestHTML.test_extra_image_separated[svg-svg]"], "keywords": {"()": 1, "parametrize": 1, "svg-svg": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_image_separated[svg-svg]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated2\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image_separated.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated2/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07671851899999993, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_separated[svg-svg]", "location": ["testing/test_pytest_html.py", 589, "TestHTML.test_extra_image_separated[svg-svg]"], "keywords": {"()": 1, "parametrize": 1, "svg-svg": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_image_separated[svg-svg]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated2\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image_separated.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated2/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0003951010000005084, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_separated[jpg-jpg]", "location": ["testing/test_pytest_html.py", 589, "TestHTML.test_extra_image_separated[jpg-jpg]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_image_separated[jpg-jpg]": 1, "jpg-jpg": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.002623809999999338, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_separated[jpg-jpg]", "location": ["testing/test_pytest_html.py", 589, "TestHTML.test_extra_image_separated[jpg-jpg]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_image_separated[jpg-jpg]": 1, "jpg-jpg": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated3\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image_separated.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated3/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07601647099999909, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_separated[jpg-jpg]", "location": ["testing/test_pytest_html.py", 589, "TestHTML.test_extra_image_separated[jpg-jpg]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_image_separated[jpg-jpg]": 1, "jpg-jpg": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated3\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image_separated.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated3/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0003881719999991873, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_separated_rerun[png-image]", "location": ["testing/test_pytest_html.py", 617, "TestHTML.test_extra_image_separated_rerun[png-image]"], "keywords": {"()": 1, "parametrize": 1, "test_extra_image_separated_rerun[png-image]": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "png-image": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0027023190000008412, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_separated_rerun[png-image]", "location": ["testing/test_pytest_html.py", 617, "TestHTML.test_extra_image_separated_rerun[png-image]"], "keywords": {"()": 1, "parametrize": 1, "test_extra_image_separated_rerun[png-image]": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "png-image": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated_rerun0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image_separated_rerun.py R [100%]R [100%]F [100%]\n\n=================================== FAILURES ===================================\n__________________________________ test_fail ___________________________________\n\n @pytest.mark.flaky(reruns=2)\n def test_fail():\n> assert False\nE assert False\n\ntest_extra_image_separated_rerun.py:4: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated_rerun0/report.html -\n=========================== short test summary info ============================\nFAILED test_extra_image_separated_rerun.py::test_fail - assert False\n========================== 1 failed, 2 rerun in 0.04s ==========================\n"]], "duration": 0.08933292399999893, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_separated_rerun[png-image]", "location": ["testing/test_pytest_html.py", 617, "TestHTML.test_extra_image_separated_rerun[png-image]"], "keywords": {"()": 1, "parametrize": 1, "test_extra_image_separated_rerun[png-image]": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "png-image": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated_rerun0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image_separated_rerun.py R [100%]R [100%]F [100%]\n\n=================================== FAILURES ===================================\n__________________________________ test_fail ___________________________________\n\n @pytest.mark.flaky(reruns=2)\n def test_fail():\n> assert False\nE assert False\n\ntest_extra_image_separated_rerun.py:4: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated_rerun0/report.html -\n=========================== short test summary info ============================\nFAILED test_extra_image_separated_rerun.py::test_fail - assert False\n========================== 1 failed, 2 rerun in 0.04s ==========================\n"]], "duration": 0.0006449430000010636, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_separated_rerun[png-png]", "location": ["testing/test_pytest_html.py", 617, "TestHTML.test_extra_image_separated_rerun[png-png]"], "keywords": {"()": 1, "parametrize": 1, "TestHTML": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "png-png": 1, "test_extra_image_separated_rerun[png-png]": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0022780820000001256, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_separated_rerun[png-png]", "location": ["testing/test_pytest_html.py", 617, "TestHTML.test_extra_image_separated_rerun[png-png]"], "keywords": {"()": 1, "parametrize": 1, "TestHTML": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "png-png": 1, "test_extra_image_separated_rerun[png-png]": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated_rerun1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image_separated_rerun.py R [100%]R [100%]F [100%]\n\n=================================== FAILURES ===================================\n__________________________________ test_fail ___________________________________\n\n @pytest.mark.flaky(reruns=2)\n def test_fail():\n> assert False\nE assert False\n\ntest_extra_image_separated_rerun.py:4: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated_rerun1/report.html -\n=========================== short test summary info ============================\nFAILED test_extra_image_separated_rerun.py::test_fail - assert False\n========================== 1 failed, 2 rerun in 0.03s ==========================\n"]], "duration": 0.08476164600000047, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_separated_rerun[png-png]", "location": ["testing/test_pytest_html.py", 617, "TestHTML.test_extra_image_separated_rerun[png-png]"], "keywords": {"()": 1, "parametrize": 1, "TestHTML": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "png-png": 1, "test_extra_image_separated_rerun[png-png]": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated_rerun1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image_separated_rerun.py R [100%]R [100%]F [100%]\n\n=================================== FAILURES ===================================\n__________________________________ test_fail ___________________________________\n\n @pytest.mark.flaky(reruns=2)\n def test_fail():\n> assert False\nE assert False\n\ntest_extra_image_separated_rerun.py:4: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated_rerun1/report.html -\n=========================== short test summary info ============================\nFAILED test_extra_image_separated_rerun.py::test_fail - assert False\n========================== 1 failed, 2 rerun in 0.03s ==========================\n"]], "duration": 0.00043224999999935676, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_separated_rerun[svg-svg]", "location": ["testing/test_pytest_html.py", 617, "TestHTML.test_extra_image_separated_rerun[svg-svg]"], "keywords": {"()": 1, "parametrize": 1, "svg-svg": 1, "pytest-html": 1, "test_extra_image_separated_rerun[svg-svg]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.002023281999999682, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_separated_rerun[svg-svg]", "location": ["testing/test_pytest_html.py", 617, "TestHTML.test_extra_image_separated_rerun[svg-svg]"], "keywords": {"()": 1, "parametrize": 1, "svg-svg": 1, "pytest-html": 1, "test_extra_image_separated_rerun[svg-svg]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated_rerun2\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image_separated_rerun.py R [100%]R [100%]F [100%]\n\n=================================== FAILURES ===================================\n__________________________________ test_fail ___________________________________\n\n @pytest.mark.flaky(reruns=2)\n def test_fail():\n> assert False\nE assert False\n\ntest_extra_image_separated_rerun.py:4: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated_rerun2/report.html -\n=========================== short test summary info ============================\nFAILED test_extra_image_separated_rerun.py::test_fail - assert False\n========================== 1 failed, 2 rerun in 0.09s ==========================\n"]], "duration": 0.1447912260000006, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_separated_rerun[svg-svg]", "location": ["testing/test_pytest_html.py", 617, "TestHTML.test_extra_image_separated_rerun[svg-svg]"], "keywords": {"()": 1, "parametrize": 1, "svg-svg": 1, "pytest-html": 1, "test_extra_image_separated_rerun[svg-svg]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated_rerun2\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image_separated_rerun.py R [100%]R [100%]F [100%]\n\n=================================== FAILURES ===================================\n__________________________________ test_fail ___________________________________\n\n @pytest.mark.flaky(reruns=2)\n def test_fail():\n> assert False\nE assert False\n\ntest_extra_image_separated_rerun.py:4: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated_rerun2/report.html -\n=========================== short test summary info ============================\nFAILED test_extra_image_separated_rerun.py::test_fail - assert False\n========================== 1 failed, 2 rerun in 0.09s ==========================\n"]], "duration": 0.0006565300000005436, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_separated_rerun[jpg-jpg]", "location": ["testing/test_pytest_html.py", 617, "TestHTML.test_extra_image_separated_rerun[jpg-jpg]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "test_extra_image_separated_rerun[jpg-jpg]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "jpg-jpg": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0028438689999994438, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_separated_rerun[jpg-jpg]", "location": ["testing/test_pytest_html.py", 617, "TestHTML.test_extra_image_separated_rerun[jpg-jpg]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "test_extra_image_separated_rerun[jpg-jpg]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "jpg-jpg": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated_rerun3\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image_separated_rerun.py R [100%]R [100%]F [100%]\n\n=================================== FAILURES ===================================\n__________________________________ test_fail ___________________________________\n\n @pytest.mark.flaky(reruns=2)\n def test_fail():\n> assert False\nE assert False\n\ntest_extra_image_separated_rerun.py:4: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated_rerun3/report.html -\n=========================== short test summary info ============================\nFAILED test_extra_image_separated_rerun.py::test_fail - assert False\n========================== 1 failed, 2 rerun in 0.03s ==========================\n"]], "duration": 0.08734974400000084, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_separated_rerun[jpg-jpg]", "location": ["testing/test_pytest_html.py", 617, "TestHTML.test_extra_image_separated_rerun[jpg-jpg]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "test_extra_image_separated_rerun[jpg-jpg]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "jpg-jpg": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated_rerun3\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image_separated_rerun.py R [100%]R [100%]F [100%]\n\n=================================== FAILURES ===================================\n__________________________________ test_fail ___________________________________\n\n @pytest.mark.flaky(reruns=2)\n def test_fail():\n> assert False\nE assert False\n\ntest_extra_image_separated_rerun.py:4: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_separated_rerun3/report.html -\n=========================== short test summary info ============================\nFAILED test_extra_image_separated_rerun.py::test_fail - assert False\n========================== 1 failed, 2 rerun in 0.03s ==========================\n"]], "duration": 0.00044896300000019096, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_non_b64[https://]", "location": ["testing/test_pytest_html.py", 654, "TestHTML.test_extra_image_non_b64[https://]"], "keywords": {"()": 1, "parametrize": 1, "test_extra_image_non_b64[https://]": 1, "pytest-html": 1, "https://": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.002162843999998998, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_non_b64[https://]", "location": ["testing/test_pytest_html.py", 654, "TestHTML.test_extra_image_non_b64[https://]"], "keywords": {"()": 1, "parametrize": 1, "test_extra_image_non_b64[https://]": 1, "pytest-html": 1, "https://": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_non_b640\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image_non_b64.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_non_b640/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07512124600000014, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_non_b64[https://]", "location": ["testing/test_pytest_html.py", 654, "TestHTML.test_extra_image_non_b64[https://]"], "keywords": {"()": 1, "parametrize": 1, "test_extra_image_non_b64[https://]": 1, "pytest-html": 1, "https://": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_non_b640\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image_non_b64.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_non_b640/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0004256799999993177, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_non_b64[file://]", "location": ["testing/test_pytest_html.py", 654, "TestHTML.test_extra_image_non_b64[file://]"], "keywords": {"()": 1, "parametrize": 1, "file://": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_image_non_b64[file://]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.00241537600000008, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_non_b64[file://]", "location": ["testing/test_pytest_html.py", 654, "TestHTML.test_extra_image_non_b64[file://]"], "keywords": {"()": 1, "parametrize": 1, "file://": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_image_non_b64[file://]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_non_b641\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image_non_b64.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_non_b641/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07620754899999937, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_non_b64[file://]", "location": ["testing/test_pytest_html.py", 654, "TestHTML.test_extra_image_non_b64[file://]"], "keywords": {"()": 1, "parametrize": 1, "file://": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_image_non_b64[file://]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_non_b641\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image_non_b64.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_non_b641/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0004170699999992422, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_non_b64[image.png]", "location": ["testing/test_pytest_html.py", 654, "TestHTML.test_extra_image_non_b64[image.png]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "image.png": 1, "test_extra_image_non_b64[image.png]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0026169379999991804, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_non_b64[image.png]", "location": ["testing/test_pytest_html.py", 654, "TestHTML.test_extra_image_non_b64[image.png]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "image.png": 1, "test_extra_image_non_b64[image.png]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_non_b642\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image_non_b64.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_non_b642/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07362449599999898, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_image_non_b64[image.png]", "location": ["testing/test_pytest_html.py", 654, "TestHTML.test_extra_image_non_b64[image.png]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "image.png": 1, "test_extra_image_non_b64[image.png]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_non_b642\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_image_non_b64.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_image_non_b642/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0003841639999997426, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_very_long_test_name[10]", "location": ["testing/test_pytest_html.py", 676, "TestHTML.test_very_long_test_name[10]"], "keywords": {"()": 1, "parametrize": 1, "10": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_very_long_test_name[10]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0021104330000003557, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_very_long_test_name[10]", "location": ["testing/test_pytest_html.py", 676, "TestHTML.test_very_long_test_name[10]"], "keywords": {"()": 1, "parametrize": 1, "10": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_very_long_test_name[10]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_very_long_test_name0, configfile: tox.ini\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_very_long_test_name.py F [100%]\n\n=================================== FAILURES ===================================\n_ test_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa _\n\n def test_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa():\n> assert False\nE assert False\n\ntest_very_long_test_name.py:2: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_very_long_test_name0/report.html -\n=========================== short test summary info ============================\nFAILED test_very_long_test_name.py::test_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n============================== 1 failed in 0.03s ===============================\n"]], "duration": 0.07612730099999965, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_very_long_test_name[10]", "location": ["testing/test_pytest_html.py", 676, "TestHTML.test_very_long_test_name[10]"], "keywords": {"()": 1, "parametrize": 1, "10": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_very_long_test_name[10]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_very_long_test_name0, configfile: tox.ini\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_very_long_test_name.py F [100%]\n\n=================================== FAILURES ===================================\n_ test_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa _\n\n def test_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa():\n> assert False\nE assert False\n\ntest_very_long_test_name.py:2: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_very_long_test_name0/report.html -\n=========================== short test summary info ============================\nFAILED test_very_long_test_name.py::test_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n============================== 1 failed in 0.03s ===============================\n"]], "duration": 0.00043311599999995565, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_very_long_test_name[100]", "location": ["testing/test_pytest_html.py", 676, "TestHTML.test_very_long_test_name[100]"], "keywords": {"()": 1, "parametrize": 1, "100": 1, "TestHTML": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_very_long_test_name[100]": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0023714280000000088, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_very_long_test_name[100]", "location": ["testing/test_pytest_html.py", 676, "TestHTML.test_very_long_test_name[100]"], "keywords": {"()": 1, "parametrize": 1, "100": 1, "TestHTML": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_very_long_test_name[100]": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_very_long_test_name1, configfile: tox.ini\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_very_long_test_name.py F [100%]\n\n=================================== FAILURES ===================================\n_ test_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa _\n\n def test_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa():\n> assert False\nE assert False\n\ntest_very_long_test_name.py:2: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_very_long_test_name1/report.html -\n=========================== short test summary info ============================\nFAILED test_very_long_test_name.py::test_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n============================== 1 failed in 0.03s ===============================\n"]], "duration": 0.07704977800000101, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_very_long_test_name[100]", "location": ["testing/test_pytest_html.py", 676, "TestHTML.test_very_long_test_name[100]"], "keywords": {"()": 1, "parametrize": 1, "100": 1, "TestHTML": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_very_long_test_name[100]": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_very_long_test_name1, configfile: tox.ini\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_very_long_test_name.py F [100%]\n\n=================================== FAILURES ===================================\n_ test_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa _\n\n def test_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa():\n> assert False\nE assert False\n\ntest_very_long_test_name.py:2: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_very_long_test_name1/report.html -\n=========================== short test summary info ============================\nFAILED test_very_long_test_name.py::test_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n============================== 1 failed in 0.03s ===============================\n"]], "duration": 0.0004397189999991724, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_fixture", "location": ["testing/test_pytest_html.py", 716, "TestHTML.test_extra_fixture"], "keywords": {"()": 1, "pytest-html": 1, "test_extra_fixture": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0022685420000012613, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_fixture", "location": ["testing/test_pytest_html.py", 716, "TestHTML.test_extra_fixture"], "keywords": {"()": 1, "pytest-html": 1, "test_extra_fixture": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_fixture0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_fixture.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_fixture0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0742847280000003, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_fixture", "location": ["testing/test_pytest_html.py", 716, "TestHTML.test_extra_fixture"], "keywords": {"()": 1, "pytest-html": 1, "test_extra_fixture": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_fixture0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_fixture.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_fixture0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.00041141300000013814, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_no_invalid_characters_in_filename", "location": ["testing/test_pytest_html.py", 730, "TestHTML.test_no_invalid_characters_in_filename"], "keywords": {"()": 1, "pytest-html": 1, "test_no_invalid_characters_in_filename": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0021758670000000535, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_no_invalid_characters_in_filename", "location": ["testing/test_pytest_html.py", 730, "TestHTML.test_no_invalid_characters_in_filename"], "keywords": {"()": 1, "pytest-html": 1, "test_no_invalid_characters_in_filename": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_no_invalid_characters_in_filename0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_no_invalid_characters_in_filename.py F [100%]\n\n=================================== FAILURES ===================================\n__________________________________ test_fail ___________________________________\n\n def test_fail():\n> assert False\nE assert False\n\ntest_no_invalid_characters_in_filename.py:2: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_no_invalid_characters_in_filename0/report.html -\n=========================== short test summary info ============================\nFAILED test_no_invalid_characters_in_filename.py::test_fail - assert False\n============================== 1 failed in 0.03s ===============================\n"]], "duration": 0.07980294100000052, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_no_invalid_characters_in_filename", "location": ["testing/test_pytest_html.py", 730, "TestHTML.test_no_invalid_characters_in_filename"], "keywords": {"()": 1, "pytest-html": 1, "test_no_invalid_characters_in_filename": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_no_invalid_characters_in_filename0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_no_invalid_characters_in_filename.py F [100%]\n\n=================================== FAILURES ===================================\n__________________________________ test_fail ___________________________________\n\n def test_fail():\n> assert False\nE assert False\n\ntest_no_invalid_characters_in_filename.py:2: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_no_invalid_characters_in_filename0/report.html -\n=========================== short test summary info ============================\nFAILED test_no_invalid_characters_in_filename.py::test_fail - assert False\n============================== 1 failed in 0.03s ===============================\n"]], "duration": 0.000454550999998915, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_no_environment", "location": ["testing/test_pytest_html.py", 753, "TestHTML.test_no_environment"], "keywords": {"()": 1, "pytest-html": 1, "test_no_environment": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.00260525399999878, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_no_environment", "location": ["testing/test_pytest_html.py", 753, "TestHTML.test_no_environment"], "keywords": {"()": 1, "pytest-html": 1, "test_no_environment": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_no_environment0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_no_environment.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_no_environment0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07780680399999973, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_no_environment", "location": ["testing/test_pytest_html.py", 753, "TestHTML.test_no_environment"], "keywords": {"()": 1, "pytest-html": 1, "test_no_environment": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_no_environment0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_no_environment.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_no_environment0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.00037355399999938754, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment", "location": ["testing/test_pytest_html.py", 765, "TestHTML.test_environment"], "keywords": {"()": 1, "test_environment": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.002056109000001527, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment", "location": ["testing/test_pytest_html.py", 765, "TestHTML.test_environment"], "keywords": {"()": 1, "test_environment": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_environment.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment0/report.html -\n============================== 1 passed in 0.03s ===============================\n"]], "duration": 0.08133517200000107, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment", "location": ["testing/test_pytest_html.py", 765, "TestHTML.test_environment"], "keywords": {"()": 1, "test_environment": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_environment.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment0/report.html -\n============================== 1 passed in 0.03s ===============================\n"]], "duration": 0.0005175210000007979, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment_xdist", "location": ["testing/test_pytest_html.py", 779, "TestHTML.test_environment_xdist"], "keywords": {"()": 1, "pytest-html": 1, "test_environment_xdist": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0023436949999986467, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment_xdist", "location": ["testing/test_pytest_html.py", 779, "TestHTML.test_environment_xdist"], "keywords": {"()": 1, "pytest-html": 1, "test_environment_xdist": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_xdist0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ngw0 I\ngw0 [1]\n\n. [100%]\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_xdist0/report.html -\n============================== 1 passed in 0.50s ===============================\n"]], "duration": 0.6549468090000001, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment_xdist", "location": ["testing/test_pytest_html.py", 779, "TestHTML.test_environment_xdist"], "keywords": {"()": 1, "pytest-html": 1, "test_environment_xdist": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_xdist0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ngw0 I\ngw0 [1]\n\n. [100%]\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_xdist0/report.html -\n============================== 1 passed in 0.50s ===============================\n"]], "duration": 0.0005394220000010108, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment_xdist_reruns", "location": ["testing/test_pytest_html.py", 794, "TestHTML.test_environment_xdist_reruns"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_environment_xdist_reruns": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0025591660000010563, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment_xdist_reruns", "location": ["testing/test_pytest_html.py", 794, "TestHTML.test_environment_xdist_reruns"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_environment_xdist_reruns": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_xdist_reruns0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ngw0 I\ngw0 [1]\n\nR [100%]F [100%]\n=================================== FAILURES ===================================\n__________________________________ test_fail ___________________________________\n[gw0] darwin -- Python 3.7.7 /Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/bin/python\n\n> def test_fail(): assert False\nE assert False\n\ntest_environment_xdist_reruns.py:1: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_xdist_reruns0/report.html -\n=========================== short test summary info ============================\nFAILED test_environment_xdist_reruns.py::test_fail - assert False\n========================== 1 failed, 1 rerun in 0.55s ==========================\n"]], "duration": 0.6445627309999988, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment_xdist_reruns", "location": ["testing/test_pytest_html.py", 794, "TestHTML.test_environment_xdist_reruns"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_environment_xdist_reruns": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_xdist_reruns0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ngw0 I\ngw0 [1]\n\nR [100%]F [100%]\n=================================== FAILURES ===================================\n__________________________________ test_fail ___________________________________\n[gw0] darwin -- Python 3.7.7 /Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/bin/python\n\n> def test_fail(): assert False\nE assert False\n\ntest_environment_xdist_reruns.py:1: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_xdist_reruns0/report.html -\n=========================== short test summary info ============================\nFAILED test_environment_xdist_reruns.py::test_fail - assert False\n========================== 1 failed, 1 rerun in 0.55s ==========================\n"]], "duration": 0.0004953570000001406, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment_list_value[content0-123Go, Hello, fzWZP6vKRv, garAge, hello]", "location": ["testing/test_pytest_html.py", 821, "TestHTML.test_environment_list_value[content0-123Go, Hello, fzWZP6vKRv, garAge, hello]"], "keywords": {"()": 1, "test_environment_list_value[content0-123Go, Hello, fzWZP6vKRv, garAge, hello]": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "content0-123Go, Hello, fzWZP6vKRv, garAge, hello": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.002440452000000093, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment_list_value[content0-123Go, Hello, fzWZP6vKRv, garAge, hello]", "location": ["testing/test_pytest_html.py", 821, "TestHTML.test_environment_list_value[content0-123Go, Hello, fzWZP6vKRv, garAge, hello]"], "keywords": {"()": 1, "test_environment_list_value[content0-123Go, Hello, fzWZP6vKRv, garAge, hello]": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "content0-123Go, Hello, fzWZP6vKRv, garAge, hello": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_list_value0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_environment_list_value.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_list_value0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.08282610400000046, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment_list_value[content0-123Go, Hello, fzWZP6vKRv, garAge, hello]", "location": ["testing/test_pytest_html.py", 821, "TestHTML.test_environment_list_value[content0-123Go, Hello, fzWZP6vKRv, garAge, hello]"], "keywords": {"()": 1, "test_environment_list_value[content0-123Go, Hello, fzWZP6vKRv, garAge, hello]": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "content0-123Go, Hello, fzWZP6vKRv, garAge, hello": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_list_value0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_environment_list_value.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_list_value0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0004465880000008582, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment_list_value[content1-1, 2, 2, 4, 54]", "location": ["testing/test_pytest_html.py", 821, "TestHTML.test_environment_list_value[content1-1, 2, 2, 4, 54]"], "keywords": {"()": 1, "test_environment_list_value[content1-1, 2, 2, 4, 54]": 1, "parametrize": 1, "content1-1, 2, 2, 4, 54": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.002508066999999059, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment_list_value[content1-1, 2, 2, 4, 54]", "location": ["testing/test_pytest_html.py", 821, "TestHTML.test_environment_list_value[content1-1, 2, 2, 4, 54]"], "keywords": {"()": 1, "test_environment_list_value[content1-1, 2, 2, 4, 54]": 1, "parametrize": 1, "content1-1, 2, 2, 4, 54": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_list_value1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_environment_list_value.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_list_value1/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07759127799999987, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment_list_value[content1-1, 2, 2, 4, 54]", "location": ["testing/test_pytest_html.py", 821, "TestHTML.test_environment_list_value[content1-1, 2, 2, 4, 54]"], "keywords": {"()": 1, "test_environment_list_value[content1-1, 2, 2, 4, 54]": 1, "parametrize": 1, "content1-1, 2, 2, 4, 54": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_list_value1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_environment_list_value.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_list_value1/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.00045210900000114407, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment_list_value[content2-400, 5.4, Yes]", "location": ["testing/test_pytest_html.py", 821, "TestHTML.test_environment_list_value[content2-400, 5.4, Yes]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "content2-400, 5.4, Yes": 1, "test_environment_list_value[content2-400, 5.4, Yes]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0027007730000008223, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment_list_value[content2-400, 5.4, Yes]", "location": ["testing/test_pytest_html.py", 821, "TestHTML.test_environment_list_value[content2-400, 5.4, Yes]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "content2-400, 5.4, Yes": 1, "test_environment_list_value[content2-400, 5.4, Yes]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_list_value2\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_environment_list_value.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_list_value2/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07471688300000068, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment_list_value[content2-400, 5.4, Yes]", "location": ["testing/test_pytest_html.py", 821, "TestHTML.test_environment_list_value[content2-400, 5.4, Yes]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "content2-400, 5.4, Yes": 1, "test_environment_list_value[content2-400, 5.4, Yes]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_list_value2\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_environment_list_value.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_list_value2/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0005010579999993325, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment_unordered_dict_value[unordered_dict0-content | \\\\n\\\\s+{\"123Go\": 5, \"Hello\": 5, \"fzWZP6vKRv\": 10, \"garAge\": 6, \"hello\": 5} | ]", "location": ["testing/test_pytest_html.py", 856, "TestHTML.test_environment_unordered_dict_value[unordered_dict0-content | \\\\n\\\\s+{\"123Go\": 5, \"Hello\": 5, \"fzWZP6vKRv\": 10, \"garAge\": 6, \"hello\": 5} | ]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_environment_unordered_dict_value[unordered_dict0-content | \\\\n\\\\s+{\"123Go\": 5, \"Hello\": 5, \"fzWZP6vKRv\": 10, \"garAge\": 6, \"hello\": 5} | ]": 1, "unordered_dict0-content | \\\\n\\\\s+{\"123Go\": 5, \"Hello\": 5, \"fzWZP6vKRv\": 10, \"garAge\": 6, \"hello\": 5} | ": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0023269179999996226, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment_unordered_dict_value[unordered_dict0-content | \\\\n\\\\s+{\"123Go\": 5, \"Hello\": 5, \"fzWZP6vKRv\": 10, \"garAge\": 6, \"hello\": 5} | ]", "location": ["testing/test_pytest_html.py", 856, "TestHTML.test_environment_unordered_dict_value[unordered_dict0-content | \\\\n\\\\s+{\"123Go\": 5, \"Hello\": 5, \"fzWZP6vKRv\": 10, \"garAge\": 6, \"hello\": 5} | ]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_environment_unordered_dict_value[unordered_dict0-content | \\\\n\\\\s+{\"123Go\": 5, \"Hello\": 5, \"fzWZP6vKRv\": 10, \"garAge\": 6, \"hello\": 5} | ]": 1, "unordered_dict0-content | \\\\n\\\\s+{\"123Go\": 5, \"Hello\": 5, \"fzWZP6vKRv\": 10, \"garAge\": 6, \"hello\": 5} | ": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_unordered_dict_value0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_environment_unordered_dict_value.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_unordered_dict_value0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.08259163299999983, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment_unordered_dict_value[unordered_dict0-content | \\\\n\\\\s+{\"123Go\": 5, \"Hello\": 5, \"fzWZP6vKRv\": 10, \"garAge\": 6, \"hello\": 5} | ]", "location": ["testing/test_pytest_html.py", 856, "TestHTML.test_environment_unordered_dict_value[unordered_dict0-content | \\\\n\\\\s+{\"123Go\": 5, \"Hello\": 5, \"fzWZP6vKRv\": 10, \"garAge\": 6, \"hello\": 5} | ]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_environment_unordered_dict_value[unordered_dict0-content | \\\\n\\\\s+{\"123Go\": 5, \"Hello\": 5, \"fzWZP6vKRv\": 10, \"garAge\": 6, \"hello\": 5} | ]": 1, "unordered_dict0-content | \\\\n\\\\s+{\"123Go\": 5, \"Hello\": 5, \"fzWZP6vKRv\": 10, \"garAge\": 6, \"hello\": 5} | ": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_unordered_dict_value0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_environment_unordered_dict_value.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_unordered_dict_value0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.00047863100000000713, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment_unordered_dict_value[unordered_dict1-content | \\\\n\\\\s+{\"First Link\": \"W3Schools\", \"Second Link\": \"W2Schools\", \"Third Link\": \"W4Schools\"} | ]", "location": ["testing/test_pytest_html.py", 856, "TestHTML.test_environment_unordered_dict_value[unordered_dict1-content | \\\\n\\\\s+{\"First Link\": \"W3Schools\", \"Second Link\": \"W2Schools\", \"Third Link\": \"W4Schools\"} | ]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "unordered_dict1-content | \\\\n\\\\s+{\"First Link\": \"W3Schools\", \"Second Link\": \"W2Schools\", \"Third Link\": \"W4Schools\"} | ": 1, "test_environment_unordered_dict_value[unordered_dict1-content | \\\\n\\\\s+{\"First Link\": \"W3Schools\", \"Second Link\": \"W2Schools\", \"Third Link\": \"W4Schools\"} | ]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.002459331999999037, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment_unordered_dict_value[unordered_dict1-content | \\\\n\\\\s+{\"First Link\": \"W3Schools\", \"Second Link\": \"W2Schools\", \"Third Link\": \"W4Schools\"} | ]", "location": ["testing/test_pytest_html.py", 856, "TestHTML.test_environment_unordered_dict_value[unordered_dict1-content | \\\\n\\\\s+{\"First Link\": \"W3Schools\", \"Second Link\": \"W2Schools\", \"Third Link\": \"W4Schools\"} | ]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "unordered_dict1-content | \\\\n\\\\s+{\"First Link\": \"W3Schools\", \"Second Link\": \"W2Schools\", \"Third Link\": \"W4Schools\"} | ": 1, "test_environment_unordered_dict_value[unordered_dict1-content | \\\\n\\\\s+{\"First Link\": \"W3Schools\", \"Second Link\": \"W2Schools\", \"Third Link\": \"W4Schools\"} | ]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_unordered_dict_value1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_environment_unordered_dict_value.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_unordered_dict_value1/report.html -\n============================== 1 passed in 0.07s ===============================\n"]], "duration": 0.12423887899999997, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment_unordered_dict_value[unordered_dict1-content | \\\\n\\\\s+{\"First Link\": \"W3Schools\", \"Second Link\": \"W2Schools\", \"Third Link\": \"W4Schools\"} | ]", "location": ["testing/test_pytest_html.py", 856, "TestHTML.test_environment_unordered_dict_value[unordered_dict1-content | \\\\n\\\\s+{\"First Link\": \"W3Schools\", \"Second Link\": \"W2Schools\", \"Third Link\": \"W4Schools\"} | ]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "unordered_dict1-content | \\\\n\\\\s+{\"First Link\": \"W3Schools\", \"Second Link\": \"W2Schools\", \"Third Link\": \"W4Schools\"} | ": 1, "test_environment_unordered_dict_value[unordered_dict1-content | \\\\n\\\\s+{\"First Link\": \"W3Schools\", \"Second Link\": \"W2Schools\", \"Third Link\": \"W4Schools\"} | ]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_unordered_dict_value1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_environment_unordered_dict_value.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_unordered_dict_value1/report.html -\n============================== 1 passed in 0.07s ===============================\n"]], "duration": 0.0005294230000014721, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment_ordered", "location": ["testing/test_pytest_html.py", 879, "TestHTML.test_environment_ordered"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_environment_ordered": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.002756703999999388, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment_ordered", "location": ["testing/test_pytest_html.py", 879, "TestHTML.test_environment_ordered"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_environment_ordered": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_ordered0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_environment_ordered.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_ordered0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07362023800000017, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_environment_ordered", "location": ["testing/test_pytest_html.py", 879, "TestHTML.test_environment_ordered"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_environment_ordered": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_ordered0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_environment_ordered.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_environment_ordered0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0004323270000003987, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_xdist_crashing_worker", "location": ["testing/test_pytest_html.py", 893, "TestHTML.test_xdist_crashing_worker"], "keywords": {"()": 1, "pytest-html": 1, "test_xdist_crashing_worker": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0022076760000011575, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_xdist_crashing_worker", "location": ["testing/test_pytest_html.py", 893, "TestHTML.test_xdist_crashing_worker"], "keywords": {"()": 1, "pytest-html": 1, "test_xdist_crashing_worker": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_xdist_crashing_worker0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ngw0 I\ngw0 [1]\n\n[gw0] node down: Not properly terminated\nF\nreplacing crashed worker gw0\n\n=================================== FAILURES ===================================\n________________________ test_xdist_crashing_worker.py _________________________\n[gw0] darwin -- Python 3.7.7 /Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/bin/python\n[gw0] darwin -- Python 3.7.7 /Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/bin/python[gw0] darwin -- Python 3.7.7 /Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/bin/python\nworker 'gw0' crashed while running 'test_xdist_crashing_worker.py::test_exit'\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_xdist_crashing_worker0/report.html -\n=========================== short test summary info ============================\nFAILED test_xdist_crashing_worker.py::test_exit\n============================== 1 failed in 0.92s ===============================\n"]], "duration": 1.0114465750000008, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_xdist_crashing_worker", "location": ["testing/test_pytest_html.py", 893, "TestHTML.test_xdist_crashing_worker"], "keywords": {"()": 1, "pytest-html": 1, "test_xdist_crashing_worker": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_xdist_crashing_worker0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ngw0 I\ngw0 [1]\n\n[gw0] node down: Not properly terminated\nF\nreplacing crashed worker gw0\n\n=================================== FAILURES ===================================\n________________________ test_xdist_crashing_worker.py _________________________\n[gw0] darwin -- Python 3.7.7 /Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/bin/python\n[gw0] darwin -- Python 3.7.7 /Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/bin/python[gw0] darwin -- Python 3.7.7 /Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/bin/python\nworker 'gw0' crashed while running 'test_xdist_crashing_worker.py::test_exit'\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_xdist_crashing_worker0/report.html -\n=========================== short test summary info ============================\nFAILED test_xdist_crashing_worker.py::test_exit\n============================== 1 failed in 0.92s ===============================\n"]], "duration": 0.0006572290000015357, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_utf8_surrogate", "location": ["testing/test_pytest_html.py", 905, "TestHTML.test_utf8_surrogate"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_utf8_surrogate": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.004413776999999897, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_utf8_surrogate", "location": ["testing/test_pytest_html.py", 905, "TestHTML.test_utf8_surrogate"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_utf8_surrogate": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_utf8_surrogate0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_utf8_surrogate.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_utf8_surrogate0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.08202881699999942, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_utf8_surrogate", "location": ["testing/test_pytest_html.py", 905, "TestHTML.test_utf8_surrogate"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_utf8_surrogate": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_utf8_surrogate0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_utf8_surrogate.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_utf8_surrogate0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.00043729899999966904, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_ansi_color[True]", "location": ["testing/test_pytest_html.py", 919, "TestHTML.test_ansi_color[True]"], "keywords": {"()": 1, "parametrize": 1, "TestHTML": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_ansi_color[True]": 1, "True": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0029103199999997997, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_ansi_color[True]", "location": ["testing/test_pytest_html.py", 919, "TestHTML.test_ansi_color[True]"], "keywords": {"()": 1, "parametrize": 1, "TestHTML": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_ansi_color[True]": 1, "True": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_ansi_color0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_ansi_color.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_ansi_color0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07626180599999977, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_ansi_color[True]", "location": ["testing/test_pytest_html.py", 919, "TestHTML.test_ansi_color[True]"], "keywords": {"()": 1, "parametrize": 1, "TestHTML": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_ansi_color[True]": 1, "True": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_ansi_color0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_ansi_color.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_ansi_color0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.00047136900000133153, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_ansi_color[False]", "location": ["testing/test_pytest_html.py", 919, "TestHTML.test_ansi_color[False]"], "keywords": {"()": 1, "parametrize": 1, "False": 1, "pytest-html": 1, "test_ansi_color[False]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.002700037999998628, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_ansi_color[False]", "location": ["testing/test_pytest_html.py", 919, "TestHTML.test_ansi_color[False]"], "keywords": {"()": 1, "parametrize": 1, "False": 1, "pytest-html": 1, "test_ansi_color[False]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_ansi_color1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_ansi_color.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_ansi_color1/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.06922463499999942, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_ansi_color[False]", "location": ["testing/test_pytest_html.py", 919, "TestHTML.test_ansi_color[False]"], "keywords": {"()": 1, "parametrize": 1, "False": 1, "pytest-html": 1, "test_ansi_color[False]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_ansi_color1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_ansi_color.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_ansi_color1/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0004493079999985383, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_ansi_escape_sequence_removed", "location": ["testing/test_pytest_html.py", 950, "TestHTML.test_ansi_escape_sequence_removed"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_ansi_escape_sequence_removed": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0027426280000000247, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_ansi_escape_sequence_removed", "location": ["testing/test_pytest_html.py", 950, "TestHTML.test_ansi_escape_sequence_removed"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_ansi_escape_sequence_removed": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "\u001b[1m============================= test session starts ==============================\u001b[0m\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_ansi_escape_sequence_removed0, configfile: tox.ini\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_ansi_escape_sequence_removed.py::test_ansi \n\u001b[1m-------------------------------- live log call ---------------------------------\u001b[0m\n\u001b[32mINFO \u001b[0m root:test_ansi_escape_sequence_removed.py:5 ANSI removed\n\u001b[32mPASSED\u001b[0m\u001b[32m [100%]\u001b[0m\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_ansi_escape_sequence_removed0/report.html -\n\u001b[32m============================== \u001b[32m\u001b[1m1 passed\u001b[0m\u001b[32m in 0.02s\u001b[0m\u001b[32m ===============================\u001b[0m\n"], ["Captured log call", "\u001b[32mINFO \u001b[0m root:test_ansi_escape_sequence_removed.py:5 ANSI removed"]], "duration": 0.0749211609999989, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_ansi_escape_sequence_removed", "location": ["testing/test_pytest_html.py", 950, "TestHTML.test_ansi_escape_sequence_removed"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_ansi_escape_sequence_removed": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "\u001b[1m============================= test session starts ==============================\u001b[0m\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_ansi_escape_sequence_removed0, configfile: tox.ini\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_ansi_escape_sequence_removed.py::test_ansi \n\u001b[1m-------------------------------- live log call ---------------------------------\u001b[0m\n\u001b[32mINFO \u001b[0m root:test_ansi_escape_sequence_removed.py:5 ANSI removed\n\u001b[32mPASSED\u001b[0m\u001b[32m [100%]\u001b[0m\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_ansi_escape_sequence_removed0/report.html -\n\u001b[32m============================== \u001b[32m\u001b[1m1 passed\u001b[0m\u001b[32m in 0.02s\u001b[0m\u001b[32m ===============================\u001b[0m\n"], ["Captured log call", "\u001b[32mINFO \u001b[0m root:test_ansi_escape_sequence_removed.py:5 ANSI removed"]], "duration": 0.0004019010000000378, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_utf8_longrepr['foo']", "location": ["testing/test_pytest_html.py", 973, "TestHTML.test_utf8_longrepr['foo']"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "'foo'": 1, "test_utf8_longrepr['foo']": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.002480152000000402, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_utf8_longrepr['foo']", "location": ["testing/test_pytest_html.py", 973, "TestHTML.test_utf8_longrepr['foo']"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "'foo'": 1, "test_utf8_longrepr['foo']": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_utf8_longrepr0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_utf8_longrepr.py F [100%]\n\n=================================== FAILURES ===================================\n__________________________________ test_fail ___________________________________\nutf8 longrepr: foo\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_utf8_longrepr0/report.html -\n=========================== short test summary info ============================\nFAILED test_utf8_longrepr.py::test_fail\n============================== 1 failed in 0.03s ===============================\n"]], "duration": 0.08368820800000165, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_utf8_longrepr['foo']", "location": ["testing/test_pytest_html.py", 973, "TestHTML.test_utf8_longrepr['foo']"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "'foo'": 1, "test_utf8_longrepr['foo']": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_utf8_longrepr0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_utf8_longrepr.py F [100%]\n\n=================================== FAILURES ===================================\n__________________________________ test_fail ___________________________________\nutf8 longrepr: foo\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_utf8_longrepr0/report.html -\n=========================== short test summary info ============================\nFAILED test_utf8_longrepr.py::test_fail\n============================== 1 failed in 0.03s ===============================\n"]], "duration": 0.0004315699999999367, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_utf8_longrepr[u'\\x81']", "location": ["testing/test_pytest_html.py", 973, "TestHTML.test_utf8_longrepr[u'\\x81']"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "u'\\x81'": 1, "test_utf8_longrepr[u'\\x81']": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0027388029999997343, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_utf8_longrepr[u'\\x81']", "location": ["testing/test_pytest_html.py", 973, "TestHTML.test_utf8_longrepr[u'\\x81']"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "u'\\x81'": 1, "test_utf8_longrepr[u'\\x81']": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_utf8_longrepr1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_utf8_longrepr.py F [100%]\n\n=================================== FAILURES ===================================\n__________________________________ test_fail ___________________________________\nutf8 longrepr: \u0081\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_utf8_longrepr1/report.html -\n=========================== short test summary info ============================\nFAILED test_utf8_longrepr.py::test_fail\n============================== 1 failed in 0.03s ===============================\n"]], "duration": 0.07854923900000088, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_utf8_longrepr[u'\\x81']", "location": ["testing/test_pytest_html.py", 973, "TestHTML.test_utf8_longrepr[u'\\x81']"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "u'\\x81'": 1, "test_utf8_longrepr[u'\\x81']": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_utf8_longrepr1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_utf8_longrepr.py F [100%]\n\n=================================== FAILURES ===================================\n__________________________________ test_fail ___________________________________\nutf8 longrepr: \u0081\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_utf8_longrepr1/report.html -\n=========================== short test summary info ============================\nFAILED test_utf8_longrepr.py::test_fail\n============================== 1 failed in 0.03s ===============================\n"]], "duration": 0.0004905749999988274, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_collect_error", "location": ["testing/test_pytest_html.py", 997, "TestHTML.test_collect_error"], "keywords": {"test_collect_error": 1, "()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.002562215000001089, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_collect_error", "location": ["testing/test_pytest_html.py", 997, "TestHTML.test_collect_error"], "keywords": {"test_collect_error": 1, "()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_collect_error0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 0 items / 1 error\n\n==================================== ERRORS ====================================\n____________________ ERROR collecting test_collect_error.py ____________________\nImportError while importing test module '/private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_collect_error0/test_collect_error.py'.\nHint: make sure your test modules/packages have valid Python names.\nTraceback:\n/usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/lib/python3.7/importlib/__init__.py:127: in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\ntest_collect_error.py:1: in \n import xyz\nE ModuleNotFoundError: No module named 'xyz'\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_collect_error0/report.html -\n=========================== short test summary info ============================\nERROR test_collect_error.py\n!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!\n=============================== 1 error in 0.14s ===============================\n"]], "duration": 0.19529317499999976, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_collect_error", "location": ["testing/test_pytest_html.py", 997, "TestHTML.test_collect_error"], "keywords": {"test_collect_error": 1, "()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_collect_error0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 0 items / 1 error\n\n==================================== ERRORS ====================================\n____________________ ERROR collecting test_collect_error.py ____________________\nImportError while importing test module '/private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_collect_error0/test_collect_error.py'.\nHint: make sure your test modules/packages have valid Python names.\nTraceback:\n/usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/lib/python3.7/importlib/__init__.py:127: in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\ntest_collect_error.py:1: in \n import xyz\nE ModuleNotFoundError: No module named 'xyz'\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_collect_error0/report.html -\n=========================== short test summary info ============================\nERROR test_collect_error.py\n!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!\n=============================== 1 error in 0.14s ===============================\n"]], "duration": 0.000406375000000736, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_css[colors0]", "location": ["testing/test_pytest_html.py", 1010, "TestHTML.test_css[colors0]"], "keywords": {"()": 1, "test_css[colors0]": 1, "parametrize": 1, "pytest-html": 1, "colors0": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.002754986000001125, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_css[colors0]", "location": ["testing/test_pytest_html.py", 1010, "TestHTML.test_css[colors0]"], "keywords": {"()": 1, "test_css[colors0]": 1, "parametrize": 1, "pytest-html": 1, "colors0": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_css0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_css.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_css0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07313791199999997, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_css[colors0]", "location": ["testing/test_pytest_html.py", 1010, "TestHTML.test_css[colors0]"], "keywords": {"()": 1, "test_css[colors0]": 1, "parametrize": 1, "pytest-html": 1, "colors0": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_css0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_css.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_css0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.00044393900000017084, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_css[colors1]", "location": ["testing/test_pytest_html.py", 1010, "TestHTML.test_css[colors1]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "colors1": 1, "test_css[colors1]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0032496410000000253, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_css[colors1]", "location": ["testing/test_pytest_html.py", 1010, "TestHTML.test_css[colors1]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "colors1": 1, "test_css[colors1]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_css1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_css.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_css1/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.07624548400000108, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_css[colors1]", "location": ["testing/test_pytest_html.py", 1010, "TestHTML.test_css[colors1]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "colors1": 1, "test_css[colors1]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_css1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_css.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_css1/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0004515600000001285, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_css_invalid[style.css]", "location": ["testing/test_pytest_html.py", 1028, "TestHTML.test_css_invalid[style.css]"], "keywords": {"()": 1, "parametrize": 1, "test_css_invalid[style.css]": 1, "pytest-html": 1, "style.css": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0027692379999990635, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_css_invalid[style.css]", "location": ["testing/test_pytest_html.py", 1028, "TestHTML.test_css_invalid[style.css]"], "keywords": {"()": 1, "parametrize": 1, "test_css_invalid[style.css]": 1, "pytest-html": 1, "style.css": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stderr call", "INTERNALERROR> Traceback (most recent call last):\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/_pytest/main.py\", line 253, in wrap_session\nINTERNALERROR> config._do_configure()\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/_pytest/config/__init__.py\", line 982, in _do_configure\nINTERNALERROR> self.hook.pytest_configure.call_historic(kwargs=dict(config=self))\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/hooks.py\", line 308, in call_historic\nINTERNALERROR> res = self._hookexec(self, self.get_hookimpls(), kwargs)\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/manager.py\", line 93, in _hookexec\nINTERNALERROR> return self._inner_hookexec(hook, methods, kwargs)\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/manager.py\", line 87, in \nINTERNALERROR> firstresult=hook.spec.opts.get(\"firstresult\") if hook.spec else False,\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/callers.py\", line 208, in _multicall\nINTERNALERROR> return outcome.get_result()\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/callers.py\", line 80, in get_result\nINTERNALERROR> raise ex[1].with_traceback(ex[2])\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/callers.py\", line 187, in _multicall\nINTERNALERROR> res = hook_impl.function(*args)\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pytest_html/plugin.py\", line 102, in pytest_configure\nINTERNALERROR> raise OSError(oserror)\nINTERNALERROR> OSError: Missing CSS file: style.css\n"]], "duration": 0.04845003500000011, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_css_invalid[style.css]", "location": ["testing/test_pytest_html.py", 1028, "TestHTML.test_css_invalid[style.css]"], "keywords": {"()": 1, "parametrize": 1, "test_css_invalid[style.css]": 1, "pytest-html": 1, "style.css": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stderr call", "INTERNALERROR> Traceback (most recent call last):\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/_pytest/main.py\", line 253, in wrap_session\nINTERNALERROR> config._do_configure()\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/_pytest/config/__init__.py\", line 982, in _do_configure\nINTERNALERROR> self.hook.pytest_configure.call_historic(kwargs=dict(config=self))\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/hooks.py\", line 308, in call_historic\nINTERNALERROR> res = self._hookexec(self, self.get_hookimpls(), kwargs)\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/manager.py\", line 93, in _hookexec\nINTERNALERROR> return self._inner_hookexec(hook, methods, kwargs)\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/manager.py\", line 87, in \nINTERNALERROR> firstresult=hook.spec.opts.get(\"firstresult\") if hook.spec else False,\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/callers.py\", line 208, in _multicall\nINTERNALERROR> return outcome.get_result()\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/callers.py\", line 80, in get_result\nINTERNALERROR> raise ex[1].with_traceback(ex[2])\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/callers.py\", line 187, in _multicall\nINTERNALERROR> res = hook_impl.function(*args)\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pytest_html/plugin.py\", line 102, in pytest_configure\nINTERNALERROR> raise OSError(oserror)\nINTERNALERROR> OSError: Missing CSS file: style.css\n"]], "duration": 0.0006770119999988111, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_css_invalid[files1]", "location": ["testing/test_pytest_html.py", 1028, "TestHTML.test_css_invalid[files1]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "test_css_invalid[files1]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "files1": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0032816659999994613, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_css_invalid[files1]", "location": ["testing/test_pytest_html.py", 1028, "TestHTML.test_css_invalid[files1]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "test_css_invalid[files1]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "files1": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stderr call", "INTERNALERROR> Traceback (most recent call last):\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/_pytest/main.py\", line 253, in wrap_session\nINTERNALERROR> config._do_configure()\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/_pytest/config/__init__.py\", line 982, in _do_configure\nINTERNALERROR> self.hook.pytest_configure.call_historic(kwargs=dict(config=self))\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/hooks.py\", line 308, in call_historic\nINTERNALERROR> res = self._hookexec(self, self.get_hookimpls(), kwargs)\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/manager.py\", line 93, in _hookexec\nINTERNALERROR> return self._inner_hookexec(hook, methods, kwargs)\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/manager.py\", line 87, in \nINTERNALERROR> firstresult=hook.spec.opts.get(\"firstresult\") if hook.spec else False,\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/callers.py\", line 208, in _multicall\nINTERNALERROR> return outcome.get_result()\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/callers.py\", line 80, in get_result\nINTERNALERROR> raise ex[1].with_traceback(ex[2])\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/callers.py\", line 187, in _multicall\nINTERNALERROR> res = hook_impl.function(*args)\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pytest_html/plugin.py\", line 102, in pytest_configure\nINTERNALERROR> raise OSError(oserror)\nINTERNALERROR> OSError: Missing CSS files: abc.css, xyz.css\n"]], "duration": 0.04595616199999952, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_css_invalid[files1]", "location": ["testing/test_pytest_html.py", 1028, "TestHTML.test_css_invalid[files1]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "test_css_invalid[files1]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "files1": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stderr call", "INTERNALERROR> Traceback (most recent call last):\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/_pytest/main.py\", line 253, in wrap_session\nINTERNALERROR> config._do_configure()\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/_pytest/config/__init__.py\", line 982, in _do_configure\nINTERNALERROR> self.hook.pytest_configure.call_historic(kwargs=dict(config=self))\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/hooks.py\", line 308, in call_historic\nINTERNALERROR> res = self._hookexec(self, self.get_hookimpls(), kwargs)\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/manager.py\", line 93, in _hookexec\nINTERNALERROR> return self._inner_hookexec(hook, methods, kwargs)\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/manager.py\", line 87, in \nINTERNALERROR> firstresult=hook.spec.opts.get(\"firstresult\") if hook.spec else False,\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/callers.py\", line 208, in _multicall\nINTERNALERROR> return outcome.get_result()\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/callers.py\", line 80, in get_result\nINTERNALERROR> raise ex[1].with_traceback(ex[2])\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/callers.py\", line 187, in _multicall\nINTERNALERROR> res = hook_impl.function(*args)\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pytest_html/plugin.py\", line 102, in pytest_configure\nINTERNALERROR> raise OSError(oserror)\nINTERNALERROR> OSError: Missing CSS files: abc.css, xyz.css\n"]], "duration": 0.0006143639999987016, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_css_invalid[testdir.makefile('.css', * {color: 'white'}]", "location": ["testing/test_pytest_html.py", 1028, "TestHTML.test_css_invalid[testdir.makefile('.css', * {color: 'white'}]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "test_css_invalid[testdir.makefile('.css', * {color: 'white'}]": 1, "testing/test_pytest_html.py": 1, "testdir.makefile('.css', * {color: 'white'}": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0028072659999995864, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_css_invalid[testdir.makefile('.css', * {color: 'white'}]", "location": ["testing/test_pytest_html.py", 1028, "TestHTML.test_css_invalid[testdir.makefile('.css', * {color: 'white'}]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "test_css_invalid[testdir.makefile('.css', * {color: 'white'}]": 1, "testing/test_pytest_html.py": 1, "testdir.makefile('.css', * {color: 'white'}": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stderr call", "INTERNALERROR> Traceback (most recent call last):\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/_pytest/main.py\", line 253, in wrap_session\nINTERNALERROR> config._do_configure()\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/_pytest/config/__init__.py\", line 982, in _do_configure\nINTERNALERROR> self.hook.pytest_configure.call_historic(kwargs=dict(config=self))\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/hooks.py\", line 308, in call_historic\nINTERNALERROR> res = self._hookexec(self, self.get_hookimpls(), kwargs)\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/manager.py\", line 93, in _hookexec\nINTERNALERROR> return self._inner_hookexec(hook, methods, kwargs)\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/manager.py\", line 87, in \nINTERNALERROR> firstresult=hook.spec.opts.get(\"firstresult\") if hook.spec else False,\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/callers.py\", line 208, in _multicall\nINTERNALERROR> return outcome.get_result()\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/callers.py\", line 80, in get_result\nINTERNALERROR> raise ex[1].with_traceback(ex[2])\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/callers.py\", line 187, in _multicall\nINTERNALERROR> res = hook_impl.function(*args)\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pytest_html/plugin.py\", line 102, in pytest_configure\nINTERNALERROR> raise OSError(oserror)\nINTERNALERROR> OSError: Missing CSS file: testdir.makefile('.css', * {color: 'white'}\n"]], "duration": 0.04631043200000029, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_css_invalid[testdir.makefile('.css', * {color: 'white'}]", "location": ["testing/test_pytest_html.py", 1028, "TestHTML.test_css_invalid[testdir.makefile('.css', * {color: 'white'}]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "test_css_invalid[testdir.makefile('.css', * {color: 'white'}]": 1, "testing/test_pytest_html.py": 1, "testdir.makefile('.css', * {color: 'white'}": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stderr call", "INTERNALERROR> Traceback (most recent call last):\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/_pytest/main.py\", line 253, in wrap_session\nINTERNALERROR> config._do_configure()\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/_pytest/config/__init__.py\", line 982, in _do_configure\nINTERNALERROR> self.hook.pytest_configure.call_historic(kwargs=dict(config=self))\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/hooks.py\", line 308, in call_historic\nINTERNALERROR> res = self._hookexec(self, self.get_hookimpls(), kwargs)\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/manager.py\", line 93, in _hookexec\nINTERNALERROR> return self._inner_hookexec(hook, methods, kwargs)\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/manager.py\", line 87, in \nINTERNALERROR> firstresult=hook.spec.opts.get(\"firstresult\") if hook.spec else False,\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/callers.py\", line 208, in _multicall\nINTERNALERROR> return outcome.get_result()\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/callers.py\", line 80, in get_result\nINTERNALERROR> raise ex[1].with_traceback(ex[2])\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pluggy/callers.py\", line 187, in _multicall\nINTERNALERROR> res = hook_impl.function(*args)\nINTERNALERROR> File \"/Users/jimbrannlund/dev/pytest-dev/pytest-html/.tox/py37/lib/python3.7/site-packages/pytest_html/plugin.py\", line 102, in pytest_configure\nINTERNALERROR> raise OSError(oserror)\nINTERNALERROR> OSError: Missing CSS file: testdir.makefile('.css', * {color: 'white'}\n"]], "duration": 0.0010135429999991175, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_css_invalid_no_html", "location": ["testing/test_pytest_html.py", 1054, "TestHTML.test_css_invalid_no_html"], "keywords": {"()": 1, "test_css_invalid_no_html": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.002500257000001227, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_css_invalid_no_html", "location": ["testing/test_pytest_html.py", 1054, "TestHTML.test_css_invalid_no_html"], "keywords": {"()": 1, "test_css_invalid_no_html": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_css_invalid_no_html0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_css_invalid_no_html.py . [100%]\n\n============================== 1 passed in 0.01s ===============================\n"]], "duration": 0.06519910600000145, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_css_invalid_no_html", "location": ["testing/test_pytest_html.py", 1054, "TestHTML.test_css_invalid_no_html"], "keywords": {"()": 1, "test_css_invalid_no_html": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_css_invalid_no_html0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_css_invalid_no_html.py . [100%]\n\n============================== 1 passed in 0.01s ===============================\n"]], "duration": 0.000412811000000346, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_report_display_utf8", "location": ["testing/test_pytest_html.py", 1059, "TestHTML.test_report_display_utf8"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_report_display_utf8": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.002688021000000873, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_report_display_utf8", "location": ["testing/test_pytest_html.py", 1059, "TestHTML.test_report_display_utf8"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_report_display_utf8": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_report_display_utf80\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_report_display_utf8.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_report_display_utf80/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.08065511899999933, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_report_display_utf8", "location": ["testing/test_pytest_html.py", 1059, "TestHTML.test_report_display_utf8"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_report_display_utf8": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_report_display_utf80\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_report_display_utf8.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_report_display_utf80/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.000614589000001331, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_collapsed[True]", "location": ["testing/test_pytest_html.py", 1072, "TestHTML.test_collapsed[True]"], "keywords": {"()": 1, "parametrize": 1, "TestHTML": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_collapsed[True]": 1, "True": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0028289849999989514, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_collapsed[True]", "location": ["testing/test_pytest_html.py", 1072, "TestHTML.test_collapsed[True]"], "keywords": {"()": 1, "parametrize": 1, "TestHTML": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_collapsed[True]": 1, "True": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_collapsed0, configfile: tox.ini\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 2 items\n\ntest_collapsed.py F. [100%]\n\n=================================== FAILURES ===================================\n__________________________________ test_fail ___________________________________\n\n def test_fail():\n> assert False\nE assert False\n\ntest_collapsed.py:2: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_collapsed0/report.html -\n=========================== short test summary info ============================\nFAILED test_collapsed.py::test_fail - assert False\n========================= 1 failed, 1 passed in 0.03s ==========================\n"]], "duration": 0.08273393600000034, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_collapsed[True]", "location": ["testing/test_pytest_html.py", 1072, "TestHTML.test_collapsed[True]"], "keywords": {"()": 1, "parametrize": 1, "TestHTML": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_collapsed[True]": 1, "True": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_collapsed0, configfile: tox.ini\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 2 items\n\ntest_collapsed.py F. [100%]\n\n=================================== FAILURES ===================================\n__________________________________ test_fail ___________________________________\n\n def test_fail():\n> assert False\nE assert False\n\ntest_collapsed.py:2: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_collapsed0/report.html -\n=========================== short test summary info ============================\nFAILED test_collapsed.py::test_fail - assert False\n========================= 1 failed, 1 passed in 0.03s ==========================\n"]], "duration": 0.0004608870000009091, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_collapsed[False]", "location": ["testing/test_pytest_html.py", 1072, "TestHTML.test_collapsed[False]"], "keywords": {"()": 1, "parametrize": 1, "False": 1, "pytest-html": 1, "test_collapsed[False]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0027050620000004244, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_collapsed[False]", "location": ["testing/test_pytest_html.py", 1072, "TestHTML.test_collapsed[False]"], "keywords": {"()": 1, "parametrize": 1, "False": 1, "pytest-html": 1, "test_collapsed[False]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_collapsed1, configfile: tox.ini\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 2 items\n\ntest_collapsed.py F. [100%]\n\n=================================== FAILURES ===================================\n__________________________________ test_fail ___________________________________\n\n def test_fail():\n> assert False\nE assert False\n\ntest_collapsed.py:2: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_collapsed1/report.html -\n=========================== short test summary info ============================\nFAILED test_collapsed.py::test_fail - assert False\n========================= 1 failed, 1 passed in 0.03s ==========================\n"]], "duration": 0.0834847080000003, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_collapsed[False]", "location": ["testing/test_pytest_html.py", 1072, "TestHTML.test_collapsed[False]"], "keywords": {"()": 1, "parametrize": 1, "False": 1, "pytest-html": 1, "test_collapsed[False]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_collapsed1, configfile: tox.ini\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 2 items\n\ntest_collapsed.py F. [100%]\n\n=================================== FAILURES ===================================\n__________________________________ test_fail ___________________________________\n\n def test_fail():\n> assert False\nE assert False\n\ntest_collapsed.py:2: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_collapsed1/report.html -\n=========================== short test summary info ============================\nFAILED test_collapsed.py::test_fail - assert False\n========================= 1 failed, 1 passed in 0.03s ==========================\n"]], "duration": 0.0005135860000002879, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_setup_and_teardown_in_html", "location": ["testing/test_pytest_html.py", 1096, "TestHTML.test_setup_and_teardown_in_html"], "keywords": {"test_setup_and_teardown_in_html": 1, "()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.002627649000000787, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_setup_and_teardown_in_html", "location": ["testing/test_pytest_html.py", 1096, "TestHTML.test_setup_and_teardown_in_html"], "keywords": {"test_setup_and_teardown_in_html": 1, "()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_setup_and_teardown_in_html0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_setup_and_teardown_in_html.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_setup_and_teardown_in_html0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.08014061999999988, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_setup_and_teardown_in_html", "location": ["testing/test_pytest_html.py", 1096, "TestHTML.test_setup_and_teardown_in_html"], "keywords": {"test_setup_and_teardown_in_html": 1, "()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_setup_and_teardown_in_html0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_setup_and_teardown_in_html.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_setup_and_teardown_in_html0/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0005616489999997754, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_setup_failures_are_errors", "location": ["testing/test_pytest_html.py", 1117, "TestHTML.test_setup_failures_are_errors"], "keywords": {"test_setup_failures_are_errors": 1, "()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.00315178199999977, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_setup_failures_are_errors", "location": ["testing/test_pytest_html.py", 1117, "TestHTML.test_setup_failures_are_errors"], "keywords": {"test_setup_failures_are_errors": 1, "()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_setup_failures_are_errors0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_setup_failures_are_errors.py E [100%]\n\n==================================== ERRORS ====================================\n_________________________ ERROR at setup of test_setup _________________________\n\n @pytest.fixture(scope=\"function\")\n def setup():\n> assert 0, \"failure!\"\nE AssertionError: failure!\nE assert 0\n\ntest_setup_failures_are_errors.py:4: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_setup_failures_are_errors0/report.html -\n=========================== short test summary info ============================\nERROR test_setup_failures_are_errors.py::test_setup - AssertionError: failure!\n=============================== 1 error in 0.08s ===============================\n"]], "duration": 0.1399361300000006, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_setup_failures_are_errors", "location": ["testing/test_pytest_html.py", 1117, "TestHTML.test_setup_failures_are_errors"], "keywords": {"test_setup_failures_are_errors": 1, "()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_setup_failures_are_errors0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_setup_failures_are_errors.py E [100%]\n\n==================================== ERRORS ====================================\n_________________________ ERROR at setup of test_setup _________________________\n\n @pytest.fixture(scope=\"function\")\n def setup():\n> assert 0, \"failure!\"\nE AssertionError: failure!\nE assert 0\n\ntest_setup_failures_are_errors.py:4: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_setup_failures_are_errors0/report.html -\n=========================== short test summary info ============================\nERROR test_setup_failures_are_errors.py::test_setup - AssertionError: failure!\n=============================== 1 error in 0.08s ===============================\n"]], "duration": 0.0005380159999983647, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_teardown_failures_are_errors", "location": ["testing/test_pytest_html.py", 1134, "TestHTML.test_teardown_failures_are_errors"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_teardown_failures_are_errors": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0030783819999999906, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_teardown_failures_are_errors", "location": ["testing/test_pytest_html.py", 1134, "TestHTML.test_teardown_failures_are_errors"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_teardown_failures_are_errors": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_teardown_failures_are_errors0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_teardown_failures_are_errors.py .E [100%]\n\n==================================== ERRORS ====================================\n_______________________ ERROR at teardown of test_setup ________________________\n@pytest.fixture(scope=\"function\")\n def teardown():\n yield\n> assert 0, \"failure!\"\nE AssertionError: failure!\nE assert 0\n\ntest_teardown_failures_are_errors.py:5: AssertionError\n----------------------------- Captured stdout call -----------------------------\nthis is the test case\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_teardown_failures_are_errors0/report.html -\n=========================== short test summary info ============================\nERROR test_teardown_failures_are_errors.py::test_setup\n========================== 1 passed, 1 error in 0.03s ==========================\n"]], "duration": 0.08171784500000001, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_teardown_failures_are_errors", "location": ["testing/test_pytest_html.py", 1134, "TestHTML.test_teardown_failures_are_errors"], "keywords": {"()": 1, "pytest-html": 1, "testing/test_pytest_html.py": 1, "test_teardown_failures_are_errors": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_teardown_failures_are_errors0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_teardown_failures_are_errors.py .E [100%]\n\n==================================== ERRORS ====================================\n_______________________ ERROR at teardown of test_setup ________________________\n@pytest.fixture(scope=\"function\")\n def teardown():\n yield\n> assert 0, \"failure!\"\nE AssertionError: failure!\nE assert 0\n\ntest_teardown_failures_are_errors.py:5: AssertionError\n----------------------------- Captured stdout call -----------------------------\nthis is the test case\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_teardown_failures_are_errors0/report.html -\n=========================== short test summary info ============================\nERROR test_teardown_failures_are_errors.py::test_setup\n========================== 1 passed, 1 error in 0.03s ==========================\n"]], "duration": 0.0007529339999994278, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_log_reporting_respects_capture_no[-s-False]", "location": ["testing/test_pytest_html.py", 1152, "TestHTML.test_extra_log_reporting_respects_capture_no[-s-False]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "-s-False": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_log_reporting_respects_capture_no[-s-False]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0029641509999986937, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_log_reporting_respects_capture_no[-s-False]", "location": ["testing/test_pytest_html.py", 1152, "TestHTML.test_extra_log_reporting_respects_capture_no[-s-False]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "-s-False": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_log_reporting_respects_capture_no[-s-False]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_log_reporting_respects_capture_no0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_log_reporting_respects_capture_no.py stdout print line\n.\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_log_reporting_respects_capture_no0/report.html -\n============================== 1 passed in 0.02s ===============================\n"], ["Captured stderr call", "stderr print line\n"]], "duration": 0.07706082899999878, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_log_reporting_respects_capture_no[-s-False]", "location": ["testing/test_pytest_html.py", 1152, "TestHTML.test_extra_log_reporting_respects_capture_no[-s-False]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "-s-False": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_log_reporting_respects_capture_no[-s-False]": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_log_reporting_respects_capture_no0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_log_reporting_respects_capture_no.py stdout print line\n.\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_log_reporting_respects_capture_no0/report.html -\n============================== 1 passed in 0.02s ===============================\n"], ["Captured stderr call", "stderr print line\n"]], "duration": 0.0004620900000009698, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_log_reporting_respects_capture_no[--capture=no-False]", "location": ["testing/test_pytest_html.py", 1152, "TestHTML.test_extra_log_reporting_respects_capture_no[--capture=no-False]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "test_extra_log_reporting_respects_capture_no[--capture=no-False]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "--capture=no-False": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0035967320000001024, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_log_reporting_respects_capture_no[--capture=no-False]", "location": ["testing/test_pytest_html.py", 1152, "TestHTML.test_extra_log_reporting_respects_capture_no[--capture=no-False]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "test_extra_log_reporting_respects_capture_no[--capture=no-False]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "--capture=no-False": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_log_reporting_respects_capture_no1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_log_reporting_respects_capture_no.py stdout print line\n.\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_log_reporting_respects_capture_no1/report.html -\n============================== 1 passed in 0.02s ===============================\n"], ["Captured stderr call", "stderr print line\n"]], "duration": 0.07950004200000116, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_log_reporting_respects_capture_no[--capture=no-False]", "location": ["testing/test_pytest_html.py", 1152, "TestHTML.test_extra_log_reporting_respects_capture_no[--capture=no-False]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "test_extra_log_reporting_respects_capture_no[--capture=no-False]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "--capture=no-False": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_log_reporting_respects_capture_no1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_log_reporting_respects_capture_no.py stdout print line\n.\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_log_reporting_respects_capture_no1/report.html -\n============================== 1 passed in 0.02s ===============================\n"], ["Captured stderr call", "stderr print line\n"]], "duration": 0.0007705019999999507, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_log_reporting_respects_capture_no[--capture=sys-True]", "location": ["testing/test_pytest_html.py", 1152, "TestHTML.test_extra_log_reporting_respects_capture_no[--capture=sys-True]"], "keywords": {"--capture=sys-True": 1, "()": 1, "parametrize": 1, "pytest-html": 1, "test_extra_log_reporting_respects_capture_no[--capture=sys-True]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0029190879999987374, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_log_reporting_respects_capture_no[--capture=sys-True]", "location": ["testing/test_pytest_html.py", 1152, "TestHTML.test_extra_log_reporting_respects_capture_no[--capture=sys-True]"], "keywords": {"--capture=sys-True": 1, "()": 1, "parametrize": 1, "pytest-html": 1, "test_extra_log_reporting_respects_capture_no[--capture=sys-True]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_log_reporting_respects_capture_no2\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_log_reporting_respects_capture_no.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_log_reporting_respects_capture_no2/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0791075879999994, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_log_reporting_respects_capture_no[--capture=sys-True]", "location": ["testing/test_pytest_html.py", 1152, "TestHTML.test_extra_log_reporting_respects_capture_no[--capture=sys-True]"], "keywords": {"--capture=sys-True": 1, "()": 1, "parametrize": 1, "pytest-html": 1, "test_extra_log_reporting_respects_capture_no[--capture=sys-True]": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_log_reporting_respects_capture_no2\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_log_reporting_respects_capture_no.py . [100%]\n\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_log_reporting_respects_capture_no2/report.html -\n============================== 1 passed in 0.02s ===============================\n"]], "duration": 0.0004722790000002419, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_log_reporting_respects_show_capture_no[--show-capture=no-False]", "location": ["testing/test_pytest_html.py", 1181, "TestHTML.test_extra_log_reporting_respects_show_capture_no[--show-capture=no-False]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_log_reporting_respects_show_capture_no[--show-capture=no-False]": 1, "--show-capture=no-False": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0032517869999999505, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_log_reporting_respects_show_capture_no[--show-capture=no-False]", "location": ["testing/test_pytest_html.py", 1181, "TestHTML.test_extra_log_reporting_respects_show_capture_no[--show-capture=no-False]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_log_reporting_respects_show_capture_no[--show-capture=no-False]": 1, "--show-capture=no-False": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_log_reporting_respects_show_capture_no0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_log_reporting_respects_show_capture_no.py F [100%]\n\n=================================== FAILURES ===================================\n_____________________________ test_show_capture_no _____________________________\n\n def test_show_capture_no():\n print(\"stdout print line\")\n print(\"stderr print line\", file=sys.stderr)\n> assert False\nE assert False\n\ntest_extra_log_reporting_respects_show_capture_no.py:5: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_log_reporting_respects_show_capture_no0/report.html -\n=========================== short test summary info ============================\nFAILED test_extra_log_reporting_respects_show_capture_no.py::test_show_capture_no\n============================== 1 failed in 0.03s ===============================\n"]], "duration": 0.08407768700000062, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_log_reporting_respects_show_capture_no[--show-capture=no-False]", "location": ["testing/test_pytest_html.py", 1181, "TestHTML.test_extra_log_reporting_respects_show_capture_no[--show-capture=no-False]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_log_reporting_respects_show_capture_no[--show-capture=no-False]": 1, "--show-capture=no-False": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_log_reporting_respects_show_capture_no0\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_log_reporting_respects_show_capture_no.py F [100%]\n\n=================================== FAILURES ===================================\n_____________________________ test_show_capture_no _____________________________\n\n def test_show_capture_no():\n print(\"stdout print line\")\n print(\"stderr print line\", file=sys.stderr)\n> assert False\nE assert False\n\ntest_extra_log_reporting_respects_show_capture_no.py:5: AssertionError\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_log_reporting_respects_show_capture_no0/report.html -\n=========================== short test summary info ============================\nFAILED test_extra_log_reporting_respects_show_capture_no.py::test_show_capture_no\n============================== 1 failed in 0.03s ===============================\n"]], "duration": 0.000836107999999669, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_log_reporting_respects_show_capture_no[--show-capture=all-True]", "location": ["testing/test_pytest_html.py", 1181, "TestHTML.test_extra_log_reporting_respects_show_capture_no[--show-capture=all-True]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_log_reporting_respects_show_capture_no[--show-capture=all-True]": 1, "--show-capture=all-True": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "setup", "user_properties": [], "sections": [], "duration": 0.0028689269999997435, "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_log_reporting_respects_show_capture_no[--show-capture=all-True]", "location": ["testing/test_pytest_html.py", 1181, "TestHTML.test_extra_log_reporting_respects_show_capture_no[--show-capture=all-True]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_log_reporting_respects_show_capture_no[--show-capture=all-True]": 1, "--show-capture=all-True": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "call", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_log_reporting_respects_show_capture_no1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_log_reporting_respects_show_capture_no.py F [100%]\n\n=================================== FAILURES ===================================\n_____________________________ test_show_capture_no _____________________________\n\n def test_show_capture_no():\n print(\"stdout print line\")\n print(\"stderr print line\", file=sys.stderr)\n> assert False\nE assert False\n\ntest_extra_log_reporting_respects_show_capture_no.py:5: AssertionError\n----------------------------- Captured stdout call -----------------------------\nstdout print line\n----------------------------- Captured stderr call -----------------------------\nstderr print line\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_log_reporting_respects_show_capture_no1/report.html -\n=========================== short test summary info ============================\nFAILED test_extra_log_reporting_respects_show_capture_no.py::test_show_capture_no\n============================== 1 failed in 0.03s ===============================\n"]], "duration": 0.08307687099999939, "extra": [], "$report_type": "TestReport"}, {"nodeid": "testing/test_pytest_html.py::TestHTML::test_extra_log_reporting_respects_show_capture_no[--show-capture=all-True]", "location": ["testing/test_pytest_html.py", 1181, "TestHTML.test_extra_log_reporting_respects_show_capture_no[--show-capture=all-True]"], "keywords": {"()": 1, "parametrize": 1, "pytest-html": 1, "pytestmark": 1, "testing/test_pytest_html.py": 1, "test_extra_log_reporting_respects_show_capture_no[--show-capture=all-True]": 1, "--show-capture=all-True": 1, "TestHTML": 1}, "outcome": "passed", "longrepr": null, "when": "teardown", "user_properties": [], "sections": [["Captured stdout call", "============================= test session starts ==============================\nplatform darwin -- Python 3.7.7, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\nrootdir: /private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_log_reporting_respects_show_capture_no1\nplugins: html-2.1.2.dev79, rerunfailures-9.1.1, metadata-1.11.0, xdist-2.1.0, mock-3.3.1, forked-1.3.0\ncollected 1 item\n\ntest_extra_log_reporting_respects_show_capture_no.py F [100%]\n\n=================================== FAILURES ===================================\n_____________________________ test_show_capture_no _____________________________\n\n def test_show_capture_no():\n print(\"stdout print line\")\n print(\"stderr print line\", file=sys.stderr)\n> assert False\nE assert False\n\ntest_extra_log_reporting_respects_show_capture_no.py:5: AssertionError\n----------------------------- Captured stdout call -----------------------------\nstdout print line\n----------------------------- Captured stderr call -----------------------------\nstderr print line\n- generated html file: file:///private/var/folders/dd/9_wsvj410rq6ry4pqxcsw9vr0000gn/T/pytest-of-jimbrannlund/pytest-22/test_extra_log_reporting_respects_show_capture_no1/report.html -\n=========================== short test summary info ============================\nFAILED test_extra_log_reporting_respects_show_capture_no.py::test_show_capture_no\n============================== 1 failed in 0.03s ===============================\n"]], "duration": 0.0026729389999999853, "$report_type": "TestReport"}]}
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 00000000..f951ac4c
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,6225 @@
+{
+ "name": "pytest-html",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "devDependencies": {
+ "browserify": "^17.0.0",
+ "chai": "^4.3.6",
+ "eslint": "^8.20.0",
+ "eslint-config-google": "^0.14.0",
+ "mocha": "^10.0.0",
+ "sass": "^1.52.3",
+ "sinon": "^14.0.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz",
+ "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==",
+ "dev": true,
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.4.0",
+ "globals": "^13.19.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.11.8",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
+ "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
+ "dev": true,
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^1.2.1",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.5"
+ },
+ "engines": {
+ "node": ">=10.10.0"
+ }
+ },
+ "node_modules/@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.22"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
+ },
+ "node_modules/@humanwhocodes/object-schema": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
+ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "dev": true
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@sinonjs/commons": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz",
+ "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==",
+ "dev": true,
+ "dependencies": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "node_modules/@sinonjs/fake-timers": {
+ "version": "9.1.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz",
+ "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==",
+ "dev": true,
+ "dependencies": {
+ "@sinonjs/commons": "^1.7.0"
+ }
+ },
+ "node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": {
+ "version": "1.8.6",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz",
+ "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==",
+ "dev": true,
+ "dependencies": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "node_modules/@sinonjs/samsam": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-7.0.1.tgz",
+ "integrity": "sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw==",
+ "dev": true,
+ "dependencies": {
+ "@sinonjs/commons": "^2.0.0",
+ "lodash.get": "^4.4.2",
+ "type-detect": "^4.0.8"
+ }
+ },
+ "node_modules/@sinonjs/text-encoding": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz",
+ "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==",
+ "dev": true
+ },
+ "node_modules/acorn": {
+ "version": "8.8.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+ "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
+ "dev": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/acorn-node": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz",
+ "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^7.0.0",
+ "acorn-walk": "^7.0.0",
+ "xtend": "^4.0.2"
+ }
+ },
+ "node_modules/acorn-node/node_modules/acorn": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+ "dev": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-walk": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
+ "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/ansi-colors": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
+ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
+ "node_modules/asn1.js": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
+ "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
+ "dev": true,
+ "dependencies": {
+ "bn.js": "^4.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "node_modules/asn1.js/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "node_modules/assert": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
+ "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
+ "dev": true,
+ "dependencies": {
+ "object-assign": "^4.1.1",
+ "util": "0.10.3"
+ }
+ },
+ "node_modules/assert/node_modules/inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==",
+ "dev": true
+ },
+ "node_modules/assert/node_modules/util": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+ "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "2.0.1"
+ }
+ },
+ "node_modules/assertion-error": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/available-typed-arrays": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
+ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/bn.js": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
+ "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==",
+ "dev": true
+ },
+ "node_modules/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,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==",
+ "dev": true
+ },
+ "node_modules/browser-pack": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz",
+ "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==",
+ "dev": true,
+ "dependencies": {
+ "combine-source-map": "~0.8.0",
+ "defined": "^1.0.0",
+ "JSONStream": "^1.0.3",
+ "safe-buffer": "^5.1.1",
+ "through2": "^2.0.0",
+ "umd": "^3.0.0"
+ },
+ "bin": {
+ "browser-pack": "bin/cmd.js"
+ }
+ },
+ "node_modules/browser-resolve": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz",
+ "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==",
+ "dev": true,
+ "dependencies": {
+ "resolve": "^1.17.0"
+ }
+ },
+ "node_modules/browser-stdout": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
+ "dev": true
+ },
+ "node_modules/browserify": {
+ "version": "17.0.0",
+ "resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz",
+ "integrity": "sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==",
+ "dev": true,
+ "dependencies": {
+ "assert": "^1.4.0",
+ "browser-pack": "^6.0.1",
+ "browser-resolve": "^2.0.0",
+ "browserify-zlib": "~0.2.0",
+ "buffer": "~5.2.1",
+ "cached-path-relative": "^1.0.0",
+ "concat-stream": "^1.6.0",
+ "console-browserify": "^1.1.0",
+ "constants-browserify": "~1.0.0",
+ "crypto-browserify": "^3.0.0",
+ "defined": "^1.0.0",
+ "deps-sort": "^2.0.1",
+ "domain-browser": "^1.2.0",
+ "duplexer2": "~0.1.2",
+ "events": "^3.0.0",
+ "glob": "^7.1.0",
+ "has": "^1.0.0",
+ "htmlescape": "^1.1.0",
+ "https-browserify": "^1.0.0",
+ "inherits": "~2.0.1",
+ "insert-module-globals": "^7.2.1",
+ "JSONStream": "^1.0.3",
+ "labeled-stream-splicer": "^2.0.0",
+ "mkdirp-classic": "^0.5.2",
+ "module-deps": "^6.2.3",
+ "os-browserify": "~0.3.0",
+ "parents": "^1.0.1",
+ "path-browserify": "^1.0.0",
+ "process": "~0.11.0",
+ "punycode": "^1.3.2",
+ "querystring-es3": "~0.2.0",
+ "read-only-stream": "^2.0.0",
+ "readable-stream": "^2.0.2",
+ "resolve": "^1.1.4",
+ "shasum-object": "^1.0.0",
+ "shell-quote": "^1.6.1",
+ "stream-browserify": "^3.0.0",
+ "stream-http": "^3.0.0",
+ "string_decoder": "^1.1.1",
+ "subarg": "^1.0.0",
+ "syntax-error": "^1.1.1",
+ "through2": "^2.0.0",
+ "timers-browserify": "^1.0.1",
+ "tty-browserify": "0.0.1",
+ "url": "~0.11.0",
+ "util": "~0.12.0",
+ "vm-browserify": "^1.0.0",
+ "xtend": "^4.0.0"
+ },
+ "bin": {
+ "browserify": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/browserify-aes": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+ "dev": true,
+ "dependencies": {
+ "buffer-xor": "^1.0.3",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.3",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/browserify-cipher": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
+ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
+ "dev": true,
+ "dependencies": {
+ "browserify-aes": "^1.0.4",
+ "browserify-des": "^1.0.0",
+ "evp_bytestokey": "^1.0.0"
+ }
+ },
+ "node_modules/browserify-des": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
+ "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
+ "dev": true,
+ "dependencies": {
+ "cipher-base": "^1.0.1",
+ "des.js": "^1.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "node_modules/browserify-rsa": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz",
+ "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==",
+ "dev": true,
+ "dependencies": {
+ "bn.js": "^5.0.0",
+ "randombytes": "^2.0.1"
+ }
+ },
+ "node_modules/browserify-sign": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz",
+ "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==",
+ "dev": true,
+ "dependencies": {
+ "bn.js": "^5.1.1",
+ "browserify-rsa": "^4.0.1",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "elliptic": "^6.5.3",
+ "inherits": "^2.0.4",
+ "parse-asn1": "^5.1.5",
+ "readable-stream": "^3.6.0",
+ "safe-buffer": "^5.2.0"
+ }
+ },
+ "node_modules/browserify-sign/node_modules/readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/browserify-zlib": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
+ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
+ "dev": true,
+ "dependencies": {
+ "pako": "~1.0.5"
+ }
+ },
+ "node_modules/buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz",
+ "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==",
+ "dev": true,
+ "dependencies": {
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4"
+ }
+ },
+ "node_modules/buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "dev": true
+ },
+ "node_modules/buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==",
+ "dev": true
+ },
+ "node_modules/builtin-status-codes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
+ "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==",
+ "dev": true
+ },
+ "node_modules/cached-path-relative": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz",
+ "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==",
+ "dev": true
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/chai": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz",
+ "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==",
+ "dev": true,
+ "dependencies": {
+ "assertion-error": "^1.1.0",
+ "check-error": "^1.0.2",
+ "deep-eql": "^4.1.2",
+ "get-func-name": "^2.0.0",
+ "loupe": "^2.3.1",
+ "pathval": "^1.1.1",
+ "type-detect": "^4.0.5"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/check-error": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
+ "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/chokidar/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/cipher-base": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/combine-source-map": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz",
+ "integrity": "sha512-UlxQ9Vw0b/Bt/KYwCFqdEwsQ1eL8d1gibiFb7lxQJFdvTgc2hIZi6ugsg+kyhzhPV+QEpUiEIwInIAIrgoEkrg==",
+ "dev": true,
+ "dependencies": {
+ "convert-source-map": "~1.1.0",
+ "inline-source-map": "~0.6.0",
+ "lodash.memoize": "~3.0.3",
+ "source-map": "~0.5.3"
+ }
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true
+ },
+ "node_modules/concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
+ "engines": [
+ "node >= 0.8"
+ ],
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "node_modules/console-browserify": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
+ "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==",
+ "dev": true
+ },
+ "node_modules/constants-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+ "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==",
+ "dev": true
+ },
+ "node_modules/convert-source-map": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz",
+ "integrity": "sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg==",
+ "dev": true
+ },
+ "node_modules/core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
+ "dev": true
+ },
+ "node_modules/create-ecdh": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
+ "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
+ "dev": true,
+ "dependencies": {
+ "bn.js": "^4.1.0",
+ "elliptic": "^6.5.3"
+ }
+ },
+ "node_modules/create-ecdh/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "node_modules/create-hash": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+ "dev": true,
+ "dependencies": {
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "md5.js": "^1.3.4",
+ "ripemd160": "^2.0.1",
+ "sha.js": "^2.4.0"
+ }
+ },
+ "node_modules/create-hmac": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+ "dev": true,
+ "dependencies": {
+ "cipher-base": "^1.0.3",
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1",
+ "ripemd160": "^2.0.0",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/crypto-browserify": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
+ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
+ "dev": true,
+ "dependencies": {
+ "browserify-cipher": "^1.0.0",
+ "browserify-sign": "^4.0.0",
+ "create-ecdh": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.0",
+ "diffie-hellman": "^5.0.0",
+ "inherits": "^2.0.1",
+ "pbkdf2": "^3.0.3",
+ "public-encrypt": "^4.0.0",
+ "randombytes": "^2.0.0",
+ "randomfill": "^1.0.3"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/dash-ast": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz",
+ "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==",
+ "dev": true
+ },
+ "node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/decamelize": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
+ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/deep-eql": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz",
+ "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==",
+ "dev": true,
+ "dependencies": {
+ "type-detect": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true
+ },
+ "node_modules/defined": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz",
+ "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/deps-sort": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz",
+ "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==",
+ "dev": true,
+ "dependencies": {
+ "JSONStream": "^1.0.3",
+ "shasum-object": "^1.0.0",
+ "subarg": "^1.0.0",
+ "through2": "^2.0.0"
+ },
+ "bin": {
+ "deps-sort": "bin/cmd.js"
+ }
+ },
+ "node_modules/des.js": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
+ "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "node_modules/detective": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz",
+ "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==",
+ "dev": true,
+ "dependencies": {
+ "acorn-node": "^1.8.2",
+ "defined": "^1.0.0",
+ "minimist": "^1.2.6"
+ },
+ "bin": {
+ "detective": "bin/detective.js"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/diff": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
+ "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "node_modules/diffie-hellman": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
+ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
+ "dev": true,
+ "dependencies": {
+ "bn.js": "^4.1.0",
+ "miller-rabin": "^4.0.0",
+ "randombytes": "^2.0.0"
+ }
+ },
+ "node_modules/diffie-hellman/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/domain-browser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
+ "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4",
+ "npm": ">=1.2"
+ }
+ },
+ "node_modules/duplexer2": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
+ "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==",
+ "dev": true,
+ "dependencies": {
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "node_modules/elliptic": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
+ "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
+ "dev": true,
+ "dependencies": {
+ "bn.js": "^4.11.9",
+ "brorand": "^1.1.0",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.1",
+ "inherits": "^2.0.4",
+ "minimalistic-assert": "^1.0.1",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "node_modules/elliptic/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "node_modules/escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "8.34.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.34.0.tgz",
+ "integrity": "sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==",
+ "dev": true,
+ "dependencies": {
+ "@eslint/eslintrc": "^1.4.1",
+ "@humanwhocodes/config-array": "^0.11.8",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "ajv": "^6.10.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.1.1",
+ "eslint-utils": "^3.0.0",
+ "eslint-visitor-keys": "^3.3.0",
+ "espree": "^9.4.0",
+ "esquery": "^1.4.0",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.19.0",
+ "grapheme-splitter": "^1.0.4",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-sdsl": "^4.1.4",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "regexpp": "^3.2.0",
+ "strip-ansi": "^6.0.1",
+ "strip-json-comments": "^3.1.0",
+ "text-table": "^0.2.0"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-config-google": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.14.0.tgz",
+ "integrity": "sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "peerDependencies": {
+ "eslint": ">=5.16.0"
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
+ "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
+ "dev": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/eslint-utils": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
+ "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
+ "dev": true,
+ "dependencies": {
+ "eslint-visitor-keys": "^2.0.0"
+ },
+ "engines": {
+ "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ },
+ "peerDependencies": {
+ "eslint": ">=5"
+ }
+ },
+ "node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
+ "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/espree": {
+ "version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz",
+ "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^8.8.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/esquery": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
+ "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
+ "dev": true,
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.x"
+ }
+ },
+ "node_modules/evp_bytestokey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+ "dev": true,
+ "dependencies": {
+ "md5.js": "^1.3.4",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "node_modules/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==",
+ "dev": true
+ },
+ "node_modules/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==",
+ "dev": true
+ },
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+ "dev": true
+ },
+ "node_modules/fast-safe-stringify": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
+ "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==",
+ "dev": true
+ },
+ "node_modules/fastq": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
+ "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
+ "dev": true,
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "dev": true,
+ "dependencies": {
+ "flat-cache": "^3.0.4"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/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,
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/flat": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
+ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
+ "dev": true,
+ "bin": {
+ "flat": "cli.js"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "dev": true,
+ "dependencies": {
+ "flatted": "^3.1.0",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
+ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
+ "dev": true
+ },
+ "node_modules/for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dev": true,
+ "dependencies": {
+ "is-callable": "^1.1.3"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "node_modules/get-assigned-identifiers": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz",
+ "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==",
+ "dev": true
+ },
+ "node_modules/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,
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/get-func-name": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
+ "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/globals": {
+ "version": "13.20.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
+ "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/gopd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/grapheme-splitter": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
+ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
+ "dev": true
+ },
+ "node_modules/has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-tostringtag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
+ "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+ "dev": true,
+ "dependencies": {
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/hash-base": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
+ "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.6.0",
+ "safe-buffer": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/hash-base/node_modules/readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/hash.js": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
+ }
+ },
+ "node_modules/he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "dev": true,
+ "bin": {
+ "he": "bin/he"
+ }
+ },
+ "node_modules/hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
+ "dev": true,
+ "dependencies": {
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "node_modules/htmlescape": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz",
+ "integrity": "sha512-eVcrzgbR4tim7c7soKQKtxa/kQM4TzjnlU83rcZ9bHU6t31ehfV7SktN6McWgwPWg+JYMA/O3qpGxBvFq1z2Jg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/https-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
+ "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==",
+ "dev": true
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/ignore": {
+ "version": "5.2.4",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
+ "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/immutable": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.2.4.tgz",
+ "integrity": "sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w==",
+ "dev": true
+ },
+ "node_modules/import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dev": true,
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "dev": true,
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "node_modules/inline-source-map": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz",
+ "integrity": "sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA==",
+ "dev": true,
+ "dependencies": {
+ "source-map": "~0.5.3"
+ }
+ },
+ "node_modules/insert-module-globals": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz",
+ "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==",
+ "dev": true,
+ "dependencies": {
+ "acorn-node": "^1.5.2",
+ "combine-source-map": "^0.8.0",
+ "concat-stream": "^1.6.1",
+ "is-buffer": "^1.1.0",
+ "JSONStream": "^1.0.3",
+ "path-is-absolute": "^1.0.1",
+ "process": "~0.11.0",
+ "through2": "^2.0.0",
+ "undeclared-identifiers": "^1.1.2",
+ "xtend": "^4.0.0"
+ },
+ "bin": {
+ "insert-module-globals": "bin/cmd.js"
+ }
+ },
+ "node_modules/is-arguments": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
+ "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/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,
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
+ },
+ "node_modules/is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
+ "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "dev": true,
+ "dependencies": {
+ "has": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-generator-function": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
+ "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
+ "dev": true,
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/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,
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-path-inside": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-plain-obj": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-typed-array": {
+ "version": "1.1.10",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz",
+ "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==",
+ "dev": true,
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "dev": true
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true
+ },
+ "node_modules/js-sdsl": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz",
+ "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==",
+ "dev": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/js-sdsl"
+ }
+ },
+ "node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/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==",
+ "dev": true
+ },
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+ "dev": true
+ },
+ "node_modules/jsonparse": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
+ "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
+ "dev": true,
+ "engines": [
+ "node >= 0.2.0"
+ ]
+ },
+ "node_modules/JSONStream": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
+ "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
+ "dev": true,
+ "dependencies": {
+ "jsonparse": "^1.2.0",
+ "through": ">=2.2.7 <3"
+ },
+ "bin": {
+ "JSONStream": "bin.js"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/just-extend": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz",
+ "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==",
+ "dev": true
+ },
+ "node_modules/labeled-stream-splicer": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz",
+ "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "stream-splicer": "^2.0.0"
+ }
+ },
+ "node_modules/levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lodash.get": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
+ "dev": true
+ },
+ "node_modules/lodash.memoize": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz",
+ "integrity": "sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A==",
+ "dev": true
+ },
+ "node_modules/lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "dev": true
+ },
+ "node_modules/log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/loupe": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz",
+ "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==",
+ "dev": true,
+ "dependencies": {
+ "get-func-name": "^2.0.0"
+ }
+ },
+ "node_modules/md5.js": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+ "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+ "dev": true,
+ "dependencies": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "node_modules/miller-rabin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+ "dev": true,
+ "dependencies": {
+ "bn.js": "^4.0.0",
+ "brorand": "^1.0.1"
+ },
+ "bin": {
+ "miller-rabin": "bin/miller-rabin"
+ }
+ },
+ "node_modules/miller-rabin/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "node_modules/minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
+ "dev": true
+ },
+ "node_modules/minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==",
+ "dev": true
+ },
+ "node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/mkdirp-classic": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
+ "dev": true
+ },
+ "node_modules/mocha": {
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz",
+ "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==",
+ "dev": true,
+ "dependencies": {
+ "ansi-colors": "4.1.1",
+ "browser-stdout": "1.3.1",
+ "chokidar": "3.5.3",
+ "debug": "4.3.4",
+ "diff": "5.0.0",
+ "escape-string-regexp": "4.0.0",
+ "find-up": "5.0.0",
+ "glob": "7.2.0",
+ "he": "1.2.0",
+ "js-yaml": "4.1.0",
+ "log-symbols": "4.1.0",
+ "minimatch": "5.0.1",
+ "ms": "2.1.3",
+ "nanoid": "3.3.3",
+ "serialize-javascript": "6.0.0",
+ "strip-json-comments": "3.1.1",
+ "supports-color": "8.1.1",
+ "workerpool": "6.2.1",
+ "yargs": "16.2.0",
+ "yargs-parser": "20.2.4",
+ "yargs-unparser": "2.0.0"
+ },
+ "bin": {
+ "_mocha": "bin/_mocha",
+ "mocha": "bin/mocha.js"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mochajs"
+ }
+ },
+ "node_modules/mocha/node_modules/glob": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
+ "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
+ "dev": true,
+ "dependencies": {
+ "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"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/mocha/node_modules/glob/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/mocha/node_modules/minimatch": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
+ "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/mocha/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ },
+ "node_modules/mocha/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/module-deps": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz",
+ "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==",
+ "dev": true,
+ "dependencies": {
+ "browser-resolve": "^2.0.0",
+ "cached-path-relative": "^1.0.2",
+ "concat-stream": "~1.6.0",
+ "defined": "^1.0.0",
+ "detective": "^5.2.0",
+ "duplexer2": "^0.1.2",
+ "inherits": "^2.0.1",
+ "JSONStream": "^1.0.3",
+ "parents": "^1.0.0",
+ "readable-stream": "^2.0.2",
+ "resolve": "^1.4.0",
+ "stream-combiner2": "^1.1.1",
+ "subarg": "^1.0.0",
+ "through2": "^2.0.0",
+ "xtend": "^4.0.0"
+ },
+ "bin": {
+ "module-deps": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/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
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz",
+ "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==",
+ "dev": true,
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true
+ },
+ "node_modules/nise": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.4.tgz",
+ "integrity": "sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg==",
+ "dev": true,
+ "dependencies": {
+ "@sinonjs/commons": "^2.0.0",
+ "@sinonjs/fake-timers": "^10.0.2",
+ "@sinonjs/text-encoding": "^0.7.1",
+ "just-extend": "^4.0.2",
+ "path-to-regexp": "^1.7.0"
+ }
+ },
+ "node_modules/nise/node_modules/@sinonjs/fake-timers": {
+ "version": "10.0.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz",
+ "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==",
+ "dev": true,
+ "dependencies": {
+ "@sinonjs/commons": "^2.0.0"
+ }
+ },
+ "node_modules/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,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dev": true,
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/optionator": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "dev": true,
+ "dependencies": {
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/os-browserify": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
+ "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==",
+ "dev": true
+ },
+ "node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/pako": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
+ "dev": true
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parents": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz",
+ "integrity": "sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg==",
+ "dev": true,
+ "dependencies": {
+ "path-platform": "~0.11.15"
+ }
+ },
+ "node_modules/parse-asn1": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz",
+ "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==",
+ "dev": true,
+ "dependencies": {
+ "asn1.js": "^5.2.0",
+ "browserify-aes": "^1.0.0",
+ "evp_bytestokey": "^1.0.0",
+ "pbkdf2": "^3.0.3",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "node_modules/path-browserify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
+ "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
+ "dev": true
+ },
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
+ },
+ "node_modules/path-platform": {
+ "version": "0.11.15",
+ "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz",
+ "integrity": "sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/path-to-regexp": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
+ "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
+ "dev": true,
+ "dependencies": {
+ "isarray": "0.0.1"
+ }
+ },
+ "node_modules/path-to-regexp/node_modules/isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
+ "dev": true
+ },
+ "node_modules/pathval": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
+ "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/pbkdf2": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
+ "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
+ "dev": true,
+ "dependencies": {
+ "create-hash": "^1.1.2",
+ "create-hmac": "^1.1.4",
+ "ripemd160": "^2.0.1",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ },
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6.0"
+ }
+ },
+ "node_modules/process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+ "dev": true
+ },
+ "node_modules/public-encrypt": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
+ "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
+ "dev": true,
+ "dependencies": {
+ "bn.js": "^4.1.0",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "parse-asn1": "^5.0.0",
+ "randombytes": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "node_modules/public-encrypt/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "node_modules/punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==",
+ "dev": true
+ },
+ "node_modules/querystring": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+ "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==",
+ "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4.x"
+ }
+ },
+ "node_modules/querystring-es3": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+ "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4.x"
+ }
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dev": true,
+ "dependencies": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "node_modules/randomfill": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
+ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
+ "dev": true,
+ "dependencies": {
+ "randombytes": "^2.0.5",
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "node_modules/read-only-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz",
+ "integrity": "sha512-3ALe0bjBVZtkdWKIcThYpQCLbBMd/+Tbh2CDSrAIDO3UsZ4Xs+tnyjv2MjCOMMgBG+AsUOeuP1cgtY1INISc8w==",
+ "dev": true,
+ "dependencies": {
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dev": true,
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/readable-stream/node_modules/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
+ },
+ "node_modules/readable-stream/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/regexpp": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
+ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ }
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "dev": true,
+ "dependencies": {
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/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,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true,
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/ripemd160": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+ "dev": true,
+ "dependencies": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/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,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "dev": true
+ },
+ "node_modules/sass": {
+ "version": "1.58.0",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.58.0.tgz",
+ "integrity": "sha512-PiMJcP33DdKtZ/1jSjjqVIKihoDc6yWmYr9K/4r3fVVIEDAluD0q7XZiRKrNJcPK3qkLRF/79DND1H5q1LBjgg==",
+ "dev": true,
+ "dependencies": {
+ "chokidar": ">=3.0.0 <4.0.0",
+ "immutable": "^4.0.0",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ },
+ "bin": {
+ "sass": "sass.js"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/serialize-javascript": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
+ "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
+ "dev": true,
+ "dependencies": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "node_modules/sha.js": {
+ "version": "2.4.11",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ },
+ "bin": {
+ "sha.js": "bin.js"
+ }
+ },
+ "node_modules/shasum-object": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz",
+ "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==",
+ "dev": true,
+ "dependencies": {
+ "fast-safe-stringify": "^2.0.7"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shell-quote": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz",
+ "integrity": "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/simple-concat": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/sinon": {
+ "version": "14.0.2",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-14.0.2.tgz",
+ "integrity": "sha512-PDpV0ZI3ZCS3pEqx0vpNp6kzPhHrLx72wA0G+ZLaaJjLIYeE0n8INlgaohKuGy7hP0as5tbUd23QWu5U233t+w==",
+ "dev": true,
+ "dependencies": {
+ "@sinonjs/commons": "^2.0.0",
+ "@sinonjs/fake-timers": "^9.1.2",
+ "@sinonjs/samsam": "^7.0.1",
+ "diff": "^5.0.0",
+ "nise": "^5.1.2",
+ "supports-color": "^7.2.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/sinon"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/stream-browserify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz",
+ "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "~2.0.4",
+ "readable-stream": "^3.5.0"
+ }
+ },
+ "node_modules/stream-browserify/node_modules/readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/stream-combiner2": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
+ "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==",
+ "dev": true,
+ "dependencies": {
+ "duplexer2": "~0.1.0",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "node_modules/stream-http": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz",
+ "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==",
+ "dev": true,
+ "dependencies": {
+ "builtin-status-codes": "^3.0.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.6.0",
+ "xtend": "^4.0.2"
+ }
+ },
+ "node_modules/stream-http/node_modules/readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/stream-splicer": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz",
+ "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "node_modules/string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "dev": true,
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/subarg": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz",
+ "integrity": "sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==",
+ "dev": true,
+ "dependencies": {
+ "minimist": "^1.1.0"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/syntax-error": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz",
+ "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==",
+ "dev": true,
+ "dependencies": {
+ "acorn-node": "^1.2.0"
+ }
+ },
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+ "dev": true
+ },
+ "node_modules/through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
+ "dev": true
+ },
+ "node_modules/through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dev": true,
+ "dependencies": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "node_modules/timers-browserify": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz",
+ "integrity": "sha512-PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q==",
+ "dev": true,
+ "dependencies": {
+ "process": "~0.11.0"
+ },
+ "engines": {
+ "node": ">=0.6.0"
+ }
+ },
+ "node_modules/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,
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/tty-browserify": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz",
+ "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==",
+ "dev": true
+ },
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dev": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
+ "dev": true
+ },
+ "node_modules/umd": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz",
+ "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==",
+ "dev": true,
+ "bin": {
+ "umd": "bin/cli.js"
+ }
+ },
+ "node_modules/undeclared-identifiers": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz",
+ "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==",
+ "dev": true,
+ "dependencies": {
+ "acorn-node": "^1.3.0",
+ "dash-ast": "^1.0.0",
+ "get-assigned-identifiers": "^1.2.0",
+ "simple-concat": "^1.0.0",
+ "xtend": "^4.0.1"
+ },
+ "bin": {
+ "undeclared-identifiers": "bin.js"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/uri-js/node_modules/punycode": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
+ "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/url": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+ "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==",
+ "dev": true,
+ "dependencies": {
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
+ }
+ },
+ "node_modules/url/node_modules/punycode": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+ "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==",
+ "dev": true
+ },
+ "node_modules/util": {
+ "version": "0.12.5",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
+ "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "is-arguments": "^1.0.4",
+ "is-generator-function": "^1.0.7",
+ "is-typed-array": "^1.1.3",
+ "which-typed-array": "^1.1.2"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "dev": true
+ },
+ "node_modules/vm-browserify": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
+ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==",
+ "dev": true
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/which-typed-array": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz",
+ "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==",
+ "dev": true,
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/workerpool": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz",
+ "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==",
+ "dev": true
+ },
+ "node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "dev": true
+ },
+ "node_modules/xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4"
+ }
+ },
+ "node_modules/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "dev": true,
+ "dependencies": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "20.2.4",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
+ "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yargs-unparser": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
+ "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
+ "dev": true,
+ "dependencies": {
+ "camelcase": "^6.0.0",
+ "decamelize": "^4.0.0",
+ "flat": "^5.0.2",
+ "is-plain-obj": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ }
+ },
+ "dependencies": {
+ "@eslint/eslintrc": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz",
+ "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.4.0",
+ "globals": "^13.19.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
+ }
+ },
+ "@humanwhocodes/config-array": {
+ "version": "0.11.8",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
+ "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
+ "dev": true,
+ "requires": {
+ "@humanwhocodes/object-schema": "^1.2.1",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.5"
+ }
+ },
+ "@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+ "dev": true
+ },
+ "@humanwhocodes/object-schema": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
+ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "dev": true
+ },
+ "@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ }
+ },
+ "@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true
+ },
+ "@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ }
+ },
+ "@sinonjs/commons": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz",
+ "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==",
+ "dev": true,
+ "requires": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "@sinonjs/fake-timers": {
+ "version": "9.1.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz",
+ "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^1.7.0"
+ },
+ "dependencies": {
+ "@sinonjs/commons": {
+ "version": "1.8.6",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz",
+ "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==",
+ "dev": true,
+ "requires": {
+ "type-detect": "4.0.8"
+ }
+ }
+ }
+ },
+ "@sinonjs/samsam": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-7.0.1.tgz",
+ "integrity": "sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^2.0.0",
+ "lodash.get": "^4.4.2",
+ "type-detect": "^4.0.8"
+ }
+ },
+ "@sinonjs/text-encoding": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz",
+ "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==",
+ "dev": true
+ },
+ "acorn": {
+ "version": "8.8.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+ "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
+ "dev": true
+ },
+ "acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "requires": {}
+ },
+ "acorn-node": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz",
+ "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==",
+ "dev": true,
+ "requires": {
+ "acorn": "^7.0.0",
+ "acorn-walk": "^7.0.0",
+ "xtend": "^4.0.2"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+ "dev": true
+ }
+ }
+ },
+ "acorn-walk": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
+ "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
+ "dev": true
+ },
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "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-colors": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
+ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
+ "asn1.js": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
+ "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "safer-buffer": "^2.1.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ },
+ "assert": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
+ "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
+ "dev": true,
+ "requires": {
+ "object-assign": "^4.1.1",
+ "util": "0.10.3"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==",
+ "dev": true
+ },
+ "util": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+ "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.1"
+ }
+ }
+ }
+ },
+ "assertion-error": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
+ "dev": true
+ },
+ "available-typed-arrays": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
+ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "dev": true
+ },
+ "binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "dev": true
+ },
+ "bn.js": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
+ "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==",
+ "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"
+ }
+ },
+ "brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==",
+ "dev": true
+ },
+ "browser-pack": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz",
+ "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==",
+ "dev": true,
+ "requires": {
+ "combine-source-map": "~0.8.0",
+ "defined": "^1.0.0",
+ "JSONStream": "^1.0.3",
+ "safe-buffer": "^5.1.1",
+ "through2": "^2.0.0",
+ "umd": "^3.0.0"
+ }
+ },
+ "browser-resolve": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz",
+ "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==",
+ "dev": true,
+ "requires": {
+ "resolve": "^1.17.0"
+ }
+ },
+ "browser-stdout": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
+ "dev": true
+ },
+ "browserify": {
+ "version": "17.0.0",
+ "resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz",
+ "integrity": "sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==",
+ "dev": true,
+ "requires": {
+ "assert": "^1.4.0",
+ "browser-pack": "^6.0.1",
+ "browser-resolve": "^2.0.0",
+ "browserify-zlib": "~0.2.0",
+ "buffer": "~5.2.1",
+ "cached-path-relative": "^1.0.0",
+ "concat-stream": "^1.6.0",
+ "console-browserify": "^1.1.0",
+ "constants-browserify": "~1.0.0",
+ "crypto-browserify": "^3.0.0",
+ "defined": "^1.0.0",
+ "deps-sort": "^2.0.1",
+ "domain-browser": "^1.2.0",
+ "duplexer2": "~0.1.2",
+ "events": "^3.0.0",
+ "glob": "^7.1.0",
+ "has": "^1.0.0",
+ "htmlescape": "^1.1.0",
+ "https-browserify": "^1.0.0",
+ "inherits": "~2.0.1",
+ "insert-module-globals": "^7.2.1",
+ "JSONStream": "^1.0.3",
+ "labeled-stream-splicer": "^2.0.0",
+ "mkdirp-classic": "^0.5.2",
+ "module-deps": "^6.2.3",
+ "os-browserify": "~0.3.0",
+ "parents": "^1.0.1",
+ "path-browserify": "^1.0.0",
+ "process": "~0.11.0",
+ "punycode": "^1.3.2",
+ "querystring-es3": "~0.2.0",
+ "read-only-stream": "^2.0.0",
+ "readable-stream": "^2.0.2",
+ "resolve": "^1.1.4",
+ "shasum-object": "^1.0.0",
+ "shell-quote": "^1.6.1",
+ "stream-browserify": "^3.0.0",
+ "stream-http": "^3.0.0",
+ "string_decoder": "^1.1.1",
+ "subarg": "^1.0.0",
+ "syntax-error": "^1.1.1",
+ "through2": "^2.0.0",
+ "timers-browserify": "^1.0.1",
+ "tty-browserify": "0.0.1",
+ "url": "~0.11.0",
+ "util": "~0.12.0",
+ "vm-browserify": "^1.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "browserify-aes": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+ "dev": true,
+ "requires": {
+ "buffer-xor": "^1.0.3",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.3",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "browserify-cipher": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
+ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
+ "dev": true,
+ "requires": {
+ "browserify-aes": "^1.0.4",
+ "browserify-des": "^1.0.0",
+ "evp_bytestokey": "^1.0.0"
+ }
+ },
+ "browserify-des": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
+ "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
+ "dev": true,
+ "requires": {
+ "cipher-base": "^1.0.1",
+ "des.js": "^1.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "browserify-rsa": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz",
+ "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^5.0.0",
+ "randombytes": "^2.0.1"
+ }
+ },
+ "browserify-sign": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz",
+ "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^5.1.1",
+ "browserify-rsa": "^4.0.1",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "elliptic": "^6.5.3",
+ "inherits": "^2.0.4",
+ "parse-asn1": "^5.1.5",
+ "readable-stream": "^3.6.0",
+ "safe-buffer": "^5.2.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "browserify-zlib": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
+ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
+ "dev": true,
+ "requires": {
+ "pako": "~1.0.5"
+ }
+ },
+ "buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz",
+ "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4"
+ }
+ },
+ "buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "dev": true
+ },
+ "buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==",
+ "dev": true
+ },
+ "builtin-status-codes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
+ "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==",
+ "dev": true
+ },
+ "cached-path-relative": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz",
+ "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==",
+ "dev": true
+ },
+ "call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "dev": true
+ },
+ "chai": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz",
+ "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==",
+ "dev": true,
+ "requires": {
+ "assertion-error": "^1.1.0",
+ "check-error": "^1.0.2",
+ "deep-eql": "^4.1.2",
+ "get-func-name": "^2.0.0",
+ "loupe": "^2.3.1",
+ "pathval": "^1.1.1",
+ "type-detect": "^4.0.5"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "check-error": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
+ "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==",
+ "dev": true
+ },
+ "chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "dev": true,
+ "requires": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "fsevents": "~2.3.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "dependencies": {
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ }
+ }
+ },
+ "cipher-base": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "dev": true,
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "combine-source-map": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz",
+ "integrity": "sha512-UlxQ9Vw0b/Bt/KYwCFqdEwsQ1eL8d1gibiFb7lxQJFdvTgc2hIZi6ugsg+kyhzhPV+QEpUiEIwInIAIrgoEkrg==",
+ "dev": true,
+ "requires": {
+ "convert-source-map": "~1.1.0",
+ "inline-source-map": "~0.6.0",
+ "lodash.memoize": "~3.0.3",
+ "source-map": "~0.5.3"
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true
+ },
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "console-browserify": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
+ "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==",
+ "dev": true
+ },
+ "constants-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+ "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==",
+ "dev": true
+ },
+ "convert-source-map": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz",
+ "integrity": "sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg==",
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
+ "dev": true
+ },
+ "create-ecdh": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
+ "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "elliptic": "^6.5.3"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ },
+ "create-hash": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+ "dev": true,
+ "requires": {
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "md5.js": "^1.3.4",
+ "ripemd160": "^2.0.1",
+ "sha.js": "^2.4.0"
+ }
+ },
+ "create-hmac": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+ "dev": true,
+ "requires": {
+ "cipher-base": "^1.0.3",
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1",
+ "ripemd160": "^2.0.0",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "crypto-browserify": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
+ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
+ "dev": true,
+ "requires": {
+ "browserify-cipher": "^1.0.0",
+ "browserify-sign": "^4.0.0",
+ "create-ecdh": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.0",
+ "diffie-hellman": "^5.0.0",
+ "inherits": "^2.0.1",
+ "pbkdf2": "^3.0.3",
+ "public-encrypt": "^4.0.0",
+ "randombytes": "^2.0.0",
+ "randomfill": "^1.0.3"
+ }
+ },
+ "dash-ast": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz",
+ "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==",
+ "dev": true
+ },
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "decamelize": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
+ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
+ "dev": true
+ },
+ "deep-eql": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz",
+ "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==",
+ "dev": true,
+ "requires": {
+ "type-detect": "^4.0.0"
+ }
+ },
+ "deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true
+ },
+ "defined": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz",
+ "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==",
+ "dev": true
+ },
+ "deps-sort": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz",
+ "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==",
+ "dev": true,
+ "requires": {
+ "JSONStream": "^1.0.3",
+ "shasum-object": "^1.0.0",
+ "subarg": "^1.0.0",
+ "through2": "^2.0.0"
+ }
+ },
+ "des.js": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
+ "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "detective": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz",
+ "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==",
+ "dev": true,
+ "requires": {
+ "acorn-node": "^1.8.2",
+ "defined": "^1.0.0",
+ "minimist": "^1.2.6"
+ }
+ },
+ "diff": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
+ "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
+ "dev": true
+ },
+ "diffie-hellman": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
+ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "miller-rabin": "^4.0.0",
+ "randombytes": "^2.0.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ },
+ "doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "domain-browser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
+ "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
+ "dev": true
+ },
+ "duplexer2": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
+ "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "elliptic": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
+ "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.9",
+ "brorand": "^1.1.0",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.1",
+ "inherits": "^2.0.4",
+ "minimalistic-assert": "^1.0.1",
+ "minimalistic-crypto-utils": "^1.0.1"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true
+ },
+ "eslint": {
+ "version": "8.34.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.34.0.tgz",
+ "integrity": "sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==",
+ "dev": true,
+ "requires": {
+ "@eslint/eslintrc": "^1.4.1",
+ "@humanwhocodes/config-array": "^0.11.8",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "ajv": "^6.10.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.1.1",
+ "eslint-utils": "^3.0.0",
+ "eslint-visitor-keys": "^3.3.0",
+ "espree": "^9.4.0",
+ "esquery": "^1.4.0",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.19.0",
+ "grapheme-splitter": "^1.0.4",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-sdsl": "^4.1.4",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "regexpp": "^3.2.0",
+ "strip-ansi": "^6.0.1",
+ "strip-json-comments": "^3.1.0",
+ "text-table": "^0.2.0"
+ }
+ },
+ "eslint-config-google": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.14.0.tgz",
+ "integrity": "sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==",
+ "dev": true,
+ "requires": {}
+ },
+ "eslint-scope": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
+ "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ }
+ },
+ "eslint-utils": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
+ "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^2.0.0"
+ },
+ "dependencies": {
+ "eslint-visitor-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
+ "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
+ "dev": true
+ },
+ "espree": {
+ "version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz",
+ "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==",
+ "dev": true,
+ "requires": {
+ "acorn": "^8.8.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.3.0"
+ }
+ },
+ "esquery": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
+ "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^5.1.0"
+ }
+ },
+ "esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^5.2.0"
+ }
+ },
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true
+ },
+ "events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "dev": true
+ },
+ "evp_bytestokey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+ "dev": true,
+ "requires": {
+ "md5.js": "^1.3.4",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+ "dev": true
+ },
+ "fast-safe-stringify": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
+ "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==",
+ "dev": true
+ },
+ "fastq": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
+ "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
+ "dev": true,
+ "requires": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "dev": true,
+ "requires": {
+ "flat-cache": "^3.0.4"
+ }
+ },
+ "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-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "flat": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
+ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
+ "dev": true
+ },
+ "flat-cache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "dev": true,
+ "requires": {
+ "flatted": "^3.1.0",
+ "rimraf": "^3.0.2"
+ }
+ },
+ "flatted": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
+ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
+ "dev": true
+ },
+ "for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.3"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true
+ },
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "optional": true
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "get-assigned-identifiers": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz",
+ "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==",
+ "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
+ },
+ "get-func-name": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
+ "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==",
+ "dev": true
+ },
+ "get-intrinsic": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
+ }
+ },
+ "glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.3"
+ }
+ },
+ "globals": {
+ "version": "13.20.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
+ "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.20.2"
+ }
+ },
+ "gopd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "dev": true,
+ "requires": {
+ "get-intrinsic": "^1.1.3"
+ }
+ },
+ "grapheme-splitter": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
+ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
+ "dev": true
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "dev": true
+ },
+ "has-tostringtag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
+ "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.2"
+ }
+ },
+ "hash-base": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
+ "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.6.0",
+ "safe-buffer": "^5.2.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "hash.js": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
+ }
+ },
+ "he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "dev": true
+ },
+ "hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
+ "dev": true,
+ "requires": {
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "htmlescape": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz",
+ "integrity": "sha512-eVcrzgbR4tim7c7soKQKtxa/kQM4TzjnlU83rcZ9bHU6t31ehfV7SktN6McWgwPWg+JYMA/O3qpGxBvFq1z2Jg==",
+ "dev": true
+ },
+ "https-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
+ "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==",
+ "dev": true
+ },
+ "ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "dev": true
+ },
+ "ignore": {
+ "version": "5.2.4",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
+ "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
+ "dev": true
+ },
+ "immutable": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.2.4.tgz",
+ "integrity": "sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w==",
+ "dev": true
+ },
+ "import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dev": true,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ }
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "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
+ },
+ "inline-source-map": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz",
+ "integrity": "sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA==",
+ "dev": true,
+ "requires": {
+ "source-map": "~0.5.3"
+ }
+ },
+ "insert-module-globals": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz",
+ "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==",
+ "dev": true,
+ "requires": {
+ "acorn-node": "^1.5.2",
+ "combine-source-map": "^0.8.0",
+ "concat-stream": "^1.6.1",
+ "is-buffer": "^1.1.0",
+ "JSONStream": "^1.0.3",
+ "path-is-absolute": "^1.0.1",
+ "process": "~0.11.0",
+ "through2": "^2.0.0",
+ "undeclared-identifiers": "^1.1.2",
+ "xtend": "^4.0.0"
+ }
+ },
+ "is-arguments": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
+ "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "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-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
+ },
+ "is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "dev": true
+ },
+ "is-core-module": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
+ "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "is-generator-function": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
+ "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
+ "dev": true,
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "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-path-inside": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+ "dev": true
+ },
+ "is-plain-obj": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "dev": true
+ },
+ "is-typed-array": {
+ "version": "1.1.10",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz",
+ "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==",
+ "dev": true,
+ "requires": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true
+ },
+ "js-sdsl": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz",
+ "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+ "dev": true
+ },
+ "jsonparse": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
+ "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
+ "dev": true
+ },
+ "JSONStream": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
+ "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
+ "dev": true,
+ "requires": {
+ "jsonparse": "^1.2.0",
+ "through": ">=2.2.7 <3"
+ }
+ },
+ "just-extend": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz",
+ "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==",
+ "dev": true
+ },
+ "labeled-stream-splicer": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz",
+ "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "stream-splicer": "^2.0.0"
+ }
+ },
+ "levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ }
+ },
+ "locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^5.0.0"
+ }
+ },
+ "lodash.get": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
+ "dev": true
+ },
+ "lodash.memoize": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz",
+ "integrity": "sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A==",
+ "dev": true
+ },
+ "lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "dev": true
+ },
+ "log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ }
+ },
+ "loupe": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz",
+ "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==",
+ "dev": true,
+ "requires": {
+ "get-func-name": "^2.0.0"
+ }
+ },
+ "md5.js": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+ "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+ "dev": true,
+ "requires": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "miller-rabin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.0.0",
+ "brorand": "^1.0.1"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ },
+ "minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
+ "dev": true
+ },
+ "minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "dev": true
+ },
+ "mkdirp-classic": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
+ "dev": true
+ },
+ "mocha": {
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz",
+ "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==",
+ "dev": true,
+ "requires": {
+ "ansi-colors": "4.1.1",
+ "browser-stdout": "1.3.1",
+ "chokidar": "3.5.3",
+ "debug": "4.3.4",
+ "diff": "5.0.0",
+ "escape-string-regexp": "4.0.0",
+ "find-up": "5.0.0",
+ "glob": "7.2.0",
+ "he": "1.2.0",
+ "js-yaml": "4.1.0",
+ "log-symbols": "4.1.0",
+ "minimatch": "5.0.1",
+ "ms": "2.1.3",
+ "nanoid": "3.3.3",
+ "serialize-javascript": "6.0.0",
+ "strip-json-comments": "3.1.1",
+ "supports-color": "8.1.1",
+ "workerpool": "6.2.1",
+ "yargs": "16.2.0",
+ "yargs-parser": "20.2.4",
+ "yargs-unparser": "2.0.0"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
+ "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
+ "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"
+ },
+ "dependencies": {
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ }
+ }
+ },
+ "minimatch": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
+ "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ }
+ }
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "module-deps": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz",
+ "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==",
+ "dev": true,
+ "requires": {
+ "browser-resolve": "^2.0.0",
+ "cached-path-relative": "^1.0.2",
+ "concat-stream": "~1.6.0",
+ "defined": "^1.0.0",
+ "detective": "^5.2.0",
+ "duplexer2": "^0.1.2",
+ "inherits": "^2.0.1",
+ "JSONStream": "^1.0.3",
+ "parents": "^1.0.0",
+ "readable-stream": "^2.0.2",
+ "resolve": "^1.4.0",
+ "stream-combiner2": "^1.1.1",
+ "subarg": "^1.0.0",
+ "through2": "^2.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "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
+ },
+ "nanoid": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz",
+ "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==",
+ "dev": true
+ },
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true
+ },
+ "nise": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.4.tgz",
+ "integrity": "sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^2.0.0",
+ "@sinonjs/fake-timers": "^10.0.2",
+ "@sinonjs/text-encoding": "^0.7.1",
+ "just-extend": "^4.0.2",
+ "path-to-regexp": "^1.7.0"
+ },
+ "dependencies": {
+ "@sinonjs/fake-timers": {
+ "version": "10.0.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz",
+ "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^2.0.0"
+ }
+ }
+ }
+ },
+ "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
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "dev": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "optionator": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "dev": true,
+ "requires": {
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.3"
+ }
+ },
+ "os-browserify": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
+ "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
+ "requires": {
+ "yocto-queue": "^0.1.0"
+ }
+ },
+ "p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^3.0.2"
+ }
+ },
+ "pako": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
+ "dev": true
+ },
+ "parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "requires": {
+ "callsites": "^3.0.0"
+ }
+ },
+ "parents": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz",
+ "integrity": "sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg==",
+ "dev": true,
+ "requires": {
+ "path-platform": "~0.11.15"
+ }
+ },
+ "parse-asn1": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz",
+ "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==",
+ "dev": true,
+ "requires": {
+ "asn1.js": "^5.2.0",
+ "browserify-aes": "^1.0.0",
+ "evp_bytestokey": "^1.0.0",
+ "pbkdf2": "^3.0.3",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "path-browserify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
+ "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "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": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "dev": true
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
+ },
+ "path-platform": {
+ "version": "0.11.15",
+ "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz",
+ "integrity": "sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg==",
+ "dev": true
+ },
+ "path-to-regexp": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
+ "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
+ "dev": true,
+ "requires": {
+ "isarray": "0.0.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
+ "dev": true
+ }
+ }
+ },
+ "pathval": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
+ "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
+ "dev": true
+ },
+ "pbkdf2": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
+ "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
+ "dev": true,
+ "requires": {
+ "create-hash": "^1.1.2",
+ "create-hmac": "^1.1.4",
+ "ripemd160": "^2.0.1",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true
+ },
+ "prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "dev": true
+ },
+ "process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+ "dev": true
+ },
+ "public-encrypt": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
+ "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "parse-asn1": "^5.0.0",
+ "randombytes": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==",
+ "dev": true
+ },
+ "querystring": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+ "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==",
+ "dev": true
+ },
+ "querystring-es3": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+ "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==",
+ "dev": true
+ },
+ "queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true
+ },
+ "randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "randomfill": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
+ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
+ "dev": true,
+ "requires": {
+ "randombytes": "^2.0.5",
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "read-only-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz",
+ "integrity": "sha512-3ALe0bjBVZtkdWKIcThYpQCLbBMd/+Tbh2CDSrAIDO3UsZ4Xs+tnyjv2MjCOMMgBG+AsUOeuP1cgtY1INISc8w==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.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
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
+ },
+ "regexpp": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
+ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
+ "dev": true
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "dev": true
+ },
+ "resolve": {
+ "version": "1.22.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "dev": true,
+ "requires": {
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ }
+ },
+ "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
+ },
+ "reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true
+ },
+ "rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "ripemd160": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+ "dev": true,
+ "requires": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1"
+ }
+ },
+ "run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "requires": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "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
+ },
+ "sass": {
+ "version": "1.58.0",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.58.0.tgz",
+ "integrity": "sha512-PiMJcP33DdKtZ/1jSjjqVIKihoDc6yWmYr9K/4r3fVVIEDAluD0q7XZiRKrNJcPK3qkLRF/79DND1H5q1LBjgg==",
+ "dev": true,
+ "requires": {
+ "chokidar": ">=3.0.0 <4.0.0",
+ "immutable": "^4.0.0",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ }
+ },
+ "serialize-javascript": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
+ "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
+ "dev": true,
+ "requires": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "sha.js": {
+ "version": "2.4.11",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "shasum-object": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz",
+ "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==",
+ "dev": true,
+ "requires": {
+ "fast-safe-stringify": "^2.0.7"
+ }
+ },
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true
+ },
+ "shell-quote": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz",
+ "integrity": "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==",
+ "dev": true
+ },
+ "simple-concat": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
+ "dev": true
+ },
+ "sinon": {
+ "version": "14.0.2",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-14.0.2.tgz",
+ "integrity": "sha512-PDpV0ZI3ZCS3pEqx0vpNp6kzPhHrLx72wA0G+ZLaaJjLIYeE0n8INlgaohKuGy7hP0as5tbUd23QWu5U233t+w==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^2.0.0",
+ "@sinonjs/fake-timers": "^9.1.2",
+ "@sinonjs/samsam": "^7.0.1",
+ "diff": "^5.0.0",
+ "nise": "^5.1.2",
+ "supports-color": "^7.2.0"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "dev": true
+ },
+ "source-map-js": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "dev": true
+ },
+ "stream-browserify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz",
+ "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==",
+ "dev": true,
+ "requires": {
+ "inherits": "~2.0.4",
+ "readable-stream": "^3.5.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "stream-combiner2": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
+ "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==",
+ "dev": true,
+ "requires": {
+ "duplexer2": "~0.1.0",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "stream-http": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz",
+ "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==",
+ "dev": true,
+ "requires": {
+ "builtin-status-codes": "^3.0.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.6.0",
+ "xtend": "^4.0.2"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "stream-splicer": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz",
+ "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ },
+ "strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true
+ },
+ "subarg": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz",
+ "integrity": "sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.1.0"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true
+ },
+ "syntax-error": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz",
+ "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==",
+ "dev": true,
+ "requires": {
+ "acorn-node": "^1.2.0"
+ }
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+ "dev": true
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
+ "dev": true
+ },
+ "through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "timers-browserify": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz",
+ "integrity": "sha512-PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q==",
+ "dev": true,
+ "requires": {
+ "process": "~0.11.0"
+ }
+ },
+ "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"
+ }
+ },
+ "tty-browserify": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz",
+ "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==",
+ "dev": true
+ },
+ "type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "^1.2.1"
+ }
+ },
+ "type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "dev": true
+ },
+ "type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
+ "dev": true
+ },
+ "umd": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz",
+ "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==",
+ "dev": true
+ },
+ "undeclared-identifiers": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz",
+ "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==",
+ "dev": true,
+ "requires": {
+ "acorn-node": "^1.3.0",
+ "dash-ast": "^1.0.0",
+ "get-assigned-identifiers": "^1.2.0",
+ "simple-concat": "^1.0.0",
+ "xtend": "^4.0.1"
+ }
+ },
+ "uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "requires": {
+ "punycode": "^2.1.0"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
+ "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
+ "dev": true
+ }
+ }
+ },
+ "url": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+ "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==",
+ "dev": true,
+ "requires": {
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+ "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==",
+ "dev": true
+ }
+ }
+ },
+ "util": {
+ "version": "0.12.5",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
+ "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "is-arguments": "^1.0.4",
+ "is-generator-function": "^1.0.7",
+ "is-typed-array": "^1.1.3",
+ "which-typed-array": "^1.1.2"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "dev": true
+ },
+ "vm-browserify": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
+ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==",
+ "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-typed-array": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz",
+ "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==",
+ "dev": true,
+ "requires": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0",
+ "is-typed-array": "^1.1.10"
+ }
+ },
+ "word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "dev": true
+ },
+ "workerpool": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz",
+ "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==",
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "dev": true
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "dev": true
+ },
+ "y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "dev": true
+ },
+ "yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "dev": true,
+ "requires": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ }
+ },
+ "yargs-parser": {
+ "version": "20.2.4",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
+ "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
+ "dev": true
+ },
+ "yargs-unparser": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
+ "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^6.0.0",
+ "decamelize": "^4.0.0",
+ "flat": "^5.0.2",
+ "is-plain-obj": "^2.1.0"
+ }
+ },
+ "yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true
+ }
+ }
+}
diff --git a/package.json b/package.json
index 73cb2b55..dd7b4856 100644
--- a/package.json
+++ b/package.json
@@ -1,13 +1,18 @@
{
- "main": "Gruntfile.js",
- "devDependencies": {
- "grunt": "^1.3.0",
- "grunt-cli": "^1.3.2",
- "grunt-contrib-qunit": "^4.0.0",
- "sass": "^1.29.0"
- },
"scripts": {
- "test": "grunt test",
- "build:css": "sass --no-source-map --no-error-css src/layout/css/style.scss src/pytest_html/resources/style.css"
+ "unit": "mocha testing/**/unittest.js",
+ "build:ci": "npm run build:css && npm run build:jsapp",
+ "build:css": "sass --no-source-map --no-error-css src/layout/css/style.scss src/pytest_html/resources/style.css",
+ "build:jsapp": "browserify ./src/pytest_html/scripts/index.js > ./src/pytest_html/resources/app.js",
+ "build": "npm run unit && npm run build:css && npm run build:jsapp"
+ },
+ "devDependencies": {
+ "browserify": "^17.0.0",
+ "chai": "^4.3.6",
+ "eslint": "^8.20.0",
+ "eslint-config-google": "^0.14.0",
+ "mocha": "^10.0.0",
+ "sass": "^1.52.3",
+ "sinon": "^14.0.0"
}
}
diff --git a/poetry.lock b/poetry.lock
new file mode 100644
index 00000000..47302b52
--- /dev/null
+++ b/poetry.lock
@@ -0,0 +1,766 @@
+[[package]]
+name = "assertpy"
+version = "1.1"
+description = "Simple assertion library for unit testing in python with a fluent API"
+category = "dev"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "attrs"
+version = "22.2.0"
+description = "Classes Without Boilerplate"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.extras]
+cov = ["attrs[tests]", "coverage-enable-subprocess", "coverage[toml] (>=5.3)"]
+dev = ["attrs[docs,tests]"]
+docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope.interface"]
+tests = ["attrs[tests-no-zope]", "zope.interface"]
+tests-no-zope = ["cloudpickle", "cloudpickle", "hypothesis", "hypothesis", "mypy (>=0.971,<0.990)", "mypy (>=0.971,<0.990)", "pympler", "pympler", "pytest (>=4.3.0)", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-mypy-plugins", "pytest-xdist[psutil]", "pytest-xdist[psutil]"]
+
+[[package]]
+name = "black"
+version = "23.1.0"
+description = "The uncompromising code formatter."
+category = "dev"
+optional = false
+python-versions = ">=3.7"
+
+[package.dependencies]
+click = ">=8.0.0"
+mypy-extensions = ">=0.4.3"
+packaging = ">=22.0"
+pathspec = ">=0.9.0"
+platformdirs = ">=2"
+tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""}
+typed-ast = {version = ">=1.4.2", markers = "python_version < \"3.8\" and implementation_name == \"cpython\""}
+typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""}
+
+[package.extras]
+colorama = ["colorama (>=0.4.3)"]
+d = ["aiohttp (>=3.7.4)"]
+jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"]
+uvloop = ["uvloop (>=0.15.2)"]
+
+[[package]]
+name = "cfgv"
+version = "3.3.1"
+description = "Validate configuration and produce human readable error messages."
+category = "dev"
+optional = false
+python-versions = ">=3.6.1"
+
+[[package]]
+name = "click"
+version = "8.1.3"
+description = "Composable command line interface toolkit"
+category = "dev"
+optional = false
+python-versions = ">=3.7"
+
+[package.dependencies]
+colorama = {version = "*", markers = "platform_system == \"Windows\""}
+importlib-metadata = {version = "*", markers = "python_version < \"3.8\""}
+
+[[package]]
+name = "colorama"
+version = "0.4.6"
+description = "Cross-platform colored terminal text."
+category = "main"
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
+
+[[package]]
+name = "distlib"
+version = "0.3.6"
+description = "Distribution utilities"
+category = "dev"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "exceptiongroup"
+version = "1.1.0"
+description = "Backport of PEP 654 (exception groups)"
+category = "main"
+optional = false
+python-versions = ">=3.7"
+
+[package.extras]
+test = ["pytest (>=6)"]
+
+[[package]]
+name = "execnet"
+version = "1.9.0"
+description = "execnet: rapid multi-Python deployment"
+category = "dev"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[package.extras]
+testing = ["pre-commit"]
+
+[[package]]
+name = "filelock"
+version = "3.9.0"
+description = "A platform independent file lock."
+category = "dev"
+optional = false
+python-versions = ">=3.7"
+
+[package.extras]
+docs = ["furo (>=2022.12.7)", "sphinx (>=5.3)", "sphinx-autodoc-typehints (>=1.19.5)"]
+testing = ["covdefaults (>=2.2.2)", "coverage (>=7.0.1)", "pytest (>=7.2)", "pytest-cov (>=4)", "pytest-timeout (>=2.1)"]
+
+[[package]]
+name = "flake8"
+version = "5.0.4"
+description = "the modular source code checker: pep8 pyflakes and co"
+category = "dev"
+optional = false
+python-versions = ">=3.6.1"
+
+[package.dependencies]
+importlib-metadata = {version = ">=1.1.0,<4.3", markers = "python_version < \"3.8\""}
+mccabe = ">=0.7.0,<0.8.0"
+pycodestyle = ">=2.9.0,<2.10.0"
+pyflakes = ">=2.5.0,<2.6.0"
+
+[[package]]
+name = "identify"
+version = "2.5.17"
+description = "File identification library for Python"
+category = "dev"
+optional = false
+python-versions = ">=3.7"
+
+[package.extras]
+license = ["ukkonen"]
+
+[[package]]
+name = "importlib-metadata"
+version = "4.2.0"
+description = "Read metadata from Python packages"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""}
+zipp = ">=0.5"
+
+[package.extras]
+docs = ["jaraco.packaging (>=8.2)", "rst.linker (>=1.9)", "sphinx"]
+testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pep517", "pyfakefs", "pytest (>=4.6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-flake8", "pytest-mypy"]
+
+[[package]]
+name = "iniconfig"
+version = "2.0.0"
+description = "brain-dead simple config-ini parsing"
+category = "main"
+optional = false
+python-versions = ">=3.7"
+
+[[package]]
+name = "jinja2"
+version = "3.1.2"
+description = "A very fast and expressive template engine."
+category = "main"
+optional = false
+python-versions = ">=3.7"
+
+[package.dependencies]
+MarkupSafe = ">=2.0"
+
+[package.extras]
+i18n = ["Babel (>=2.7)"]
+
+[[package]]
+name = "markupsafe"
+version = "2.1.2"
+description = "Safely add untrusted strings to HTML/XML markup."
+category = "main"
+optional = false
+python-versions = ">=3.7"
+
+[[package]]
+name = "mccabe"
+version = "0.7.0"
+description = "McCabe checker, plugin for flake8"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[[package]]
+name = "mypy-extensions"
+version = "1.0.0"
+description = "Type system extensions for programs checked with the mypy type checker."
+category = "dev"
+optional = false
+python-versions = ">=3.5"
+
+[[package]]
+name = "nodeenv"
+version = "1.7.0"
+description = "Node.js virtual environment builder"
+category = "dev"
+optional = false
+python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*"
+
+[package.dependencies]
+setuptools = "*"
+
+[[package]]
+name = "packaging"
+version = "23.0"
+description = "Core utilities for Python packages"
+category = "main"
+optional = false
+python-versions = ">=3.7"
+
+[[package]]
+name = "pathspec"
+version = "0.11.0"
+description = "Utility library for gitignore style pattern matching of file paths."
+category = "dev"
+optional = false
+python-versions = ">=3.7"
+
+[[package]]
+name = "platformdirs"
+version = "2.6.2"
+description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
+category = "dev"
+optional = false
+python-versions = ">=3.7"
+
+[package.dependencies]
+typing-extensions = {version = ">=4.4", markers = "python_version < \"3.8\""}
+
+[package.extras]
+docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx (>=5.3)", "sphinx-autodoc-typehints (>=1.19.5)"]
+test = ["appdirs (==1.4.4)", "covdefaults (>=2.2.2)", "pytest (>=7.2)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"]
+
+[[package]]
+name = "pluggy"
+version = "1.0.0"
+description = "plugin and hook calling mechanisms for python"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
+
+[package.extras]
+dev = ["pre-commit", "tox"]
+testing = ["pytest", "pytest-benchmark"]
+
+[[package]]
+name = "pre-commit"
+version = "2.21.0"
+description = "A framework for managing and maintaining multi-language pre-commit hooks."
+category = "dev"
+optional = false
+python-versions = ">=3.7"
+
+[package.dependencies]
+cfgv = ">=2.0.0"
+identify = ">=1.0.0"
+importlib-metadata = {version = "*", markers = "python_version < \"3.8\""}
+nodeenv = ">=0.11.1"
+pyyaml = ">=5.1"
+virtualenv = ">=20.10.0"
+
+[[package]]
+name = "py"
+version = "1.11.0"
+description = "library with cross-python path, ini-parsing, io, code, log facilities"
+category = "dev"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[[package]]
+name = "pycodestyle"
+version = "2.9.1"
+description = "Python style guide checker"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[[package]]
+name = "pyflakes"
+version = "2.5.0"
+description = "passive checker of Python programs"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[[package]]
+name = "pytest"
+version = "7.2.1"
+description = "pytest: simple powerful testing with Python"
+category = "main"
+optional = false
+python-versions = ">=3.7"
+
+[package.dependencies]
+attrs = ">=19.2.0"
+colorama = {version = "*", markers = "sys_platform == \"win32\""}
+exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""}
+importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
+iniconfig = "*"
+packaging = "*"
+pluggy = ">=0.12,<2.0"
+tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""}
+
+[package.extras]
+testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"]
+
+[[package]]
+name = "pytest-metadata"
+version = "2.0.4"
+description = "pytest plugin for test session metadata"
+category = "main"
+optional = false
+python-versions = ">=3.7,<4.0"
+
+[package.dependencies]
+pytest = ">=3.0.0,<8.0.0"
+
+[[package]]
+name = "pytest-mock"
+version = "3.10.0"
+description = "Thin-wrapper around the mock package for easier use with pytest"
+category = "dev"
+optional = false
+python-versions = ">=3.7"
+
+[package.dependencies]
+pytest = ">=5.0"
+
+[package.extras]
+dev = ["pre-commit", "pytest-asyncio", "tox"]
+
+[[package]]
+name = "pytest-xdist"
+version = "3.2.0"
+description = "pytest xdist plugin for distributed testing, most importantly across multiple CPUs"
+category = "dev"
+optional = false
+python-versions = ">=3.7"
+
+[package.dependencies]
+execnet = ">=1.1"
+pytest = ">=6.2.0"
+
+[package.extras]
+psutil = ["psutil (>=3.0)"]
+setproctitle = ["setproctitle"]
+testing = ["filelock"]
+
+[[package]]
+name = "pyyaml"
+version = "6.0"
+description = "YAML parser and emitter for Python"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[[package]]
+name = "setuptools"
+version = "67.2.0"
+description = "Easily download, build, install, upgrade, and uninstall Python packages"
+category = "dev"
+optional = false
+python-versions = ">=3.7"
+
+[package.extras]
+docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"]
+testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"]
+testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"]
+
+[[package]]
+name = "six"
+version = "1.16.0"
+description = "Python 2 and 3 compatibility utilities"
+category = "dev"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
+
+[[package]]
+name = "tomli"
+version = "2.0.1"
+description = "A lil' TOML parser"
+category = "main"
+optional = false
+python-versions = ">=3.7"
+
+[[package]]
+name = "tox"
+version = "3.28.0"
+description = "tox is a generic virtualenv management and test command line tool"
+category = "dev"
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
+
+[package.dependencies]
+colorama = {version = ">=0.4.1", markers = "platform_system == \"Windows\""}
+filelock = ">=3.0.0"
+importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
+packaging = ">=14"
+pluggy = ">=0.12.0"
+py = ">=1.4.17"
+six = ">=1.14.0"
+tomli = {version = ">=2.0.1", markers = "python_version >= \"3.7\" and python_version < \"3.11\""}
+virtualenv = ">=16.0.0,<20.0.0 || >20.0.0,<20.0.1 || >20.0.1,<20.0.2 || >20.0.2,<20.0.3 || >20.0.3,<20.0.4 || >20.0.4,<20.0.5 || >20.0.5,<20.0.6 || >20.0.6,<20.0.7 || >20.0.7"
+
+[package.extras]
+docs = ["pygments-github-lexers (>=0.0.5)", "sphinx (>=2.0.0)", "sphinxcontrib-autoprogram (>=0.1.5)", "towncrier (>=18.5.0)"]
+testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pathlib2 (>=2.3.3)", "psutil (>=5.6.1)", "pytest (>=4.0.0)", "pytest-cov (>=2.5.1)", "pytest-mock (>=1.10.0)", "pytest-randomly (>=1.0.0)"]
+
+[[package]]
+name = "typed-ast"
+version = "1.5.4"
+description = "a fork of Python 2 and 3 ast modules with type comment support"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[[package]]
+name = "typing-extensions"
+version = "4.4.0"
+description = "Backported and Experimental Type Hints for Python 3.7+"
+category = "main"
+optional = false
+python-versions = ">=3.7"
+
+[[package]]
+name = "virtualenv"
+version = "20.16.2"
+description = "Virtual Python Environment builder"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+distlib = ">=0.3.1,<1"
+filelock = ">=3.2,<4"
+importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
+platformdirs = ">=2,<3"
+
+[package.extras]
+docs = ["proselint (>=0.10.2)", "sphinx (>=3)", "sphinx-argparse (>=0.2.5)", "sphinx-rtd-theme (>=0.4.3)", "towncrier (>=21.3)"]
+testing = ["coverage (>=4)", "coverage-enable-subprocess (>=1)", "flaky (>=3)", "packaging (>=20.0)", "pytest (>=4)", "pytest-env (>=0.6.2)", "pytest-freezegun (>=0.4.1)", "pytest-mock (>=2)", "pytest-randomly (>=1)", "pytest-timeout (>=1)"]
+
+[[package]]
+name = "zipp"
+version = "3.13.0"
+description = "Backport of pathlib-compatible object wrapper for zip files"
+category = "main"
+optional = false
+python-versions = ">=3.7"
+
+[package.extras]
+docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
+testing = ["flake8 (<5)", "func-timeout", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"]
+
+[metadata]
+lock-version = "1.1"
+python-versions = ">=3.7, <4.0.0"
+content-hash = "288796311da5b8708fdc236a6a1e57c26f710715e13a2ff487beb9266eca38ac"
+
+[metadata.files]
+assertpy = [
+ {file = "assertpy-1.1.tar.gz", hash = "sha256:acc64329934ad71a3221de185517a43af33e373bb44dc05b5a9b174394ef4833"},
+]
+attrs = [
+ {file = "attrs-22.2.0-py3-none-any.whl", hash = "sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836"},
+ {file = "attrs-22.2.0.tar.gz", hash = "sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99"},
+]
+black = [
+ {file = "black-23.1.0-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:b6a92a41ee34b883b359998f0c8e6eb8e99803aa8bf3123bf2b2e6fec505a221"},
+ {file = "black-23.1.0-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:57c18c5165c1dbe291d5306e53fb3988122890e57bd9b3dcb75f967f13411a26"},
+ {file = "black-23.1.0-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:9880d7d419bb7e709b37e28deb5e68a49227713b623c72b2b931028ea65f619b"},
+ {file = "black-23.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e6663f91b6feca5d06f2ccd49a10f254f9298cc1f7f49c46e498a0771b507104"},
+ {file = "black-23.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:9afd3f493666a0cd8f8df9a0200c6359ac53940cbde049dcb1a7eb6ee2dd7074"},
+ {file = "black-23.1.0-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:bfffba28dc52a58f04492181392ee380e95262af14ee01d4bc7bb1b1c6ca8d27"},
+ {file = "black-23.1.0-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:c1c476bc7b7d021321e7d93dc2cbd78ce103b84d5a4cf97ed535fbc0d6660648"},
+ {file = "black-23.1.0-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:382998821f58e5c8238d3166c492139573325287820963d2f7de4d518bd76958"},
+ {file = "black-23.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bf649fda611c8550ca9d7592b69f0637218c2369b7744694c5e4902873b2f3a"},
+ {file = "black-23.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:121ca7f10b4a01fd99951234abdbd97728e1240be89fde18480ffac16503d481"},
+ {file = "black-23.1.0-cp37-cp37m-macosx_10_16_x86_64.whl", hash = "sha256:a8471939da5e824b891b25751955be52ee7f8a30a916d570a5ba8e0f2eb2ecad"},
+ {file = "black-23.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8178318cb74f98bc571eef19068f6ab5613b3e59d4f47771582f04e175570ed8"},
+ {file = "black-23.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:a436e7881d33acaf2536c46a454bb964a50eff59b21b51c6ccf5a40601fbef24"},
+ {file = "black-23.1.0-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:a59db0a2094d2259c554676403fa2fac3473ccf1354c1c63eccf7ae65aac8ab6"},
+ {file = "black-23.1.0-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:0052dba51dec07ed029ed61b18183942043e00008ec65d5028814afaab9a22fd"},
+ {file = "black-23.1.0-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:49f7b39e30f326a34b5c9a4213213a6b221d7ae9d58ec70df1c4a307cf2a1580"},
+ {file = "black-23.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:162e37d49e93bd6eb6f1afc3e17a3d23a823042530c37c3c42eeeaf026f38468"},
+ {file = "black-23.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:8b70eb40a78dfac24842458476135f9b99ab952dd3f2dab738c1881a9b38b753"},
+ {file = "black-23.1.0-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:a29650759a6a0944e7cca036674655c2f0f63806ddecc45ed40b7b8aa314b651"},
+ {file = "black-23.1.0-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:bb460c8561c8c1bec7824ecbc3ce085eb50005883a6203dcfb0122e95797ee06"},
+ {file = "black-23.1.0-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:c91dfc2c2a4e50df0026f88d2215e166616e0c80e86004d0003ece0488db2739"},
+ {file = "black-23.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a951cc83ab535d248c89f300eccbd625e80ab880fbcfb5ac8afb5f01a258ac9"},
+ {file = "black-23.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:0680d4380db3719ebcfb2613f34e86c8e6d15ffeabcf8ec59355c5e7b85bb555"},
+ {file = "black-23.1.0-py3-none-any.whl", hash = "sha256:7a0f701d314cfa0896b9001df70a530eb2472babb76086344e688829efd97d32"},
+ {file = "black-23.1.0.tar.gz", hash = "sha256:b0bd97bea8903f5a2ba7219257a44e3f1f9d00073d6cc1add68f0beec69692ac"},
+]
+cfgv = [
+ {file = "cfgv-3.3.1-py2.py3-none-any.whl", hash = "sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426"},
+ {file = "cfgv-3.3.1.tar.gz", hash = "sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"},
+]
+click = [
+ {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"},
+ {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"},
+]
+colorama = [
+ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
+ {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
+]
+distlib = [
+ {file = "distlib-0.3.6-py2.py3-none-any.whl", hash = "sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e"},
+ {file = "distlib-0.3.6.tar.gz", hash = "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46"},
+]
+exceptiongroup = [
+ {file = "exceptiongroup-1.1.0-py3-none-any.whl", hash = "sha256:327cbda3da756e2de031a3107b81ab7b3770a602c4d16ca618298c526f4bec1e"},
+ {file = "exceptiongroup-1.1.0.tar.gz", hash = "sha256:bcb67d800a4497e1b404c2dd44fca47d3b7a5e5433dbab67f96c1a685cdfdf23"},
+]
+execnet = [
+ {file = "execnet-1.9.0-py2.py3-none-any.whl", hash = "sha256:a295f7cc774947aac58dde7fdc85f4aa00c42adf5d8f5468fc630c1acf30a142"},
+ {file = "execnet-1.9.0.tar.gz", hash = "sha256:8f694f3ba9cc92cab508b152dcfe322153975c29bda272e2fd7f3f00f36e47c5"},
+]
+filelock = [
+ {file = "filelock-3.9.0-py3-none-any.whl", hash = "sha256:f58d535af89bb9ad5cd4df046f741f8553a418c01a7856bf0d173bbc9f6bd16d"},
+ {file = "filelock-3.9.0.tar.gz", hash = "sha256:7b319f24340b51f55a2bf7a12ac0755a9b03e718311dac567a0f4f7fabd2f5de"},
+]
+flake8 = [
+ {file = "flake8-5.0.4-py2.py3-none-any.whl", hash = "sha256:7a1cf6b73744f5806ab95e526f6f0d8c01c66d7bbe349562d22dfca20610b248"},
+ {file = "flake8-5.0.4.tar.gz", hash = "sha256:6fbe320aad8d6b95cec8b8e47bc933004678dc63095be98528b7bdd2a9f510db"},
+]
+identify = [
+ {file = "identify-2.5.17-py2.py3-none-any.whl", hash = "sha256:7d526dd1283555aafcc91539acc061d8f6f59adb0a7bba462735b0a318bff7ed"},
+ {file = "identify-2.5.17.tar.gz", hash = "sha256:93cc61a861052de9d4c541a7acb7e3dcc9c11b398a2144f6e52ae5285f5f4f06"},
+]
+importlib-metadata = [
+ {file = "importlib_metadata-4.2.0-py3-none-any.whl", hash = "sha256:057e92c15bc8d9e8109738a48db0ccb31b4d9d5cfbee5a8670879a30be66304b"},
+ {file = "importlib_metadata-4.2.0.tar.gz", hash = "sha256:b7e52a1f8dec14a75ea73e0891f3060099ca1d8e6a462a4dff11c3e119ea1b31"},
+]
+iniconfig = [
+ {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"},
+ {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"},
+]
+jinja2 = [
+ {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"},
+ {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"},
+]
+markupsafe = [
+ {file = "MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:665a36ae6f8f20a4676b53224e33d456a6f5a72657d9c83c2aa00765072f31f7"},
+ {file = "MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:340bea174e9761308703ae988e982005aedf427de816d1afe98147668cc03036"},
+ {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22152d00bf4a9c7c83960521fc558f55a1adbc0631fbb00a9471e097b19d72e1"},
+ {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28057e985dace2f478e042eaa15606c7efccb700797660629da387eb289b9323"},
+ {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca244fa73f50a800cf8c3ebf7fd93149ec37f5cb9596aa8873ae2c1d23498601"},
+ {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d9d971ec1e79906046aa3ca266de79eac42f1dbf3612a05dc9368125952bd1a1"},
+ {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7e007132af78ea9df29495dbf7b5824cb71648d7133cf7848a2a5dd00d36f9ff"},
+ {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7313ce6a199651c4ed9d7e4cfb4aa56fe923b1adf9af3b420ee14e6d9a73df65"},
+ {file = "MarkupSafe-2.1.2-cp310-cp310-win32.whl", hash = "sha256:c4a549890a45f57f1ebf99c067a4ad0cb423a05544accaf2b065246827ed9603"},
+ {file = "MarkupSafe-2.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:835fb5e38fd89328e9c81067fd642b3593c33e1e17e2fdbf77f5676abb14a156"},
+ {file = "MarkupSafe-2.1.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2ec4f2d48ae59bbb9d1f9d7efb9236ab81429a764dedca114f5fdabbc3788013"},
+ {file = "MarkupSafe-2.1.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:608e7073dfa9e38a85d38474c082d4281f4ce276ac0010224eaba11e929dd53a"},
+ {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65608c35bfb8a76763f37036547f7adfd09270fbdbf96608be2bead319728fcd"},
+ {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2bfb563d0211ce16b63c7cb9395d2c682a23187f54c3d79bfec33e6705473c6"},
+ {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:da25303d91526aac3672ee6d49a2f3db2d9502a4a60b55519feb1a4c7714e07d"},
+ {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9cad97ab29dfc3f0249b483412c85c8ef4766d96cdf9dcf5a1e3caa3f3661cf1"},
+ {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:085fd3201e7b12809f9e6e9bc1e5c96a368c8523fad5afb02afe3c051ae4afcc"},
+ {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1bea30e9bf331f3fef67e0a3877b2288593c98a21ccb2cf29b74c581a4eb3af0"},
+ {file = "MarkupSafe-2.1.2-cp311-cp311-win32.whl", hash = "sha256:7df70907e00c970c60b9ef2938d894a9381f38e6b9db73c5be35e59d92e06625"},
+ {file = "MarkupSafe-2.1.2-cp311-cp311-win_amd64.whl", hash = "sha256:e55e40ff0cc8cc5c07996915ad367fa47da6b3fc091fdadca7f5403239c5fec3"},
+ {file = "MarkupSafe-2.1.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a6e40afa7f45939ca356f348c8e23048e02cb109ced1eb8420961b2f40fb373a"},
+ {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf877ab4ed6e302ec1d04952ca358b381a882fbd9d1b07cccbfd61783561f98a"},
+ {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63ba06c9941e46fa389d389644e2d8225e0e3e5ebcc4ff1ea8506dce646f8c8a"},
+ {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f1cd098434e83e656abf198f103a8207a8187c0fc110306691a2e94a78d0abb2"},
+ {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:55f44b440d491028addb3b88f72207d71eeebfb7b5dbf0643f7c023ae1fba619"},
+ {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:a6f2fcca746e8d5910e18782f976489939d54a91f9411c32051b4aab2bd7c513"},
+ {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0b462104ba25f1ac006fdab8b6a01ebbfbce9ed37fd37fd4acd70c67c973e460"},
+ {file = "MarkupSafe-2.1.2-cp37-cp37m-win32.whl", hash = "sha256:7668b52e102d0ed87cb082380a7e2e1e78737ddecdde129acadb0eccc5423859"},
+ {file = "MarkupSafe-2.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6d6607f98fcf17e534162f0709aaad3ab7a96032723d8ac8750ffe17ae5a0666"},
+ {file = "MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a806db027852538d2ad7555b203300173dd1b77ba116de92da9afbc3a3be3eed"},
+ {file = "MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a4abaec6ca3ad8660690236d11bfe28dfd707778e2442b45addd2f086d6ef094"},
+ {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f03a532d7dee1bed20bc4884194a16160a2de9ffc6354b3878ec9682bb623c54"},
+ {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cf06cdc1dda95223e9d2d3c58d3b178aa5dacb35ee7e3bbac10e4e1faacb419"},
+ {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:22731d79ed2eb25059ae3df1dfc9cb1546691cc41f4e3130fe6bfbc3ecbbecfa"},
+ {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f8ffb705ffcf5ddd0e80b65ddf7bed7ee4f5a441ea7d3419e861a12eaf41af58"},
+ {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8db032bf0ce9022a8e41a22598eefc802314e81b879ae093f36ce9ddf39ab1ba"},
+ {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2298c859cfc5463f1b64bd55cb3e602528db6fa0f3cfd568d3605c50678f8f03"},
+ {file = "MarkupSafe-2.1.2-cp38-cp38-win32.whl", hash = "sha256:50c42830a633fa0cf9e7d27664637532791bfc31c731a87b202d2d8ac40c3ea2"},
+ {file = "MarkupSafe-2.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:bb06feb762bade6bf3c8b844462274db0c76acc95c52abe8dbed28ae3d44a147"},
+ {file = "MarkupSafe-2.1.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:99625a92da8229df6d44335e6fcc558a5037dd0a760e11d84be2260e6f37002f"},
+ {file = "MarkupSafe-2.1.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8bca7e26c1dd751236cfb0c6c72d4ad61d986e9a41bbf76cb445f69488b2a2bd"},
+ {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40627dcf047dadb22cd25ea7ecfe9cbf3bbbad0482ee5920b582f3809c97654f"},
+ {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40dfd3fefbef579ee058f139733ac336312663c6706d1163b82b3003fb1925c4"},
+ {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:090376d812fb6ac5f171e5938e82e7f2d7adc2b629101cec0db8b267815c85e2"},
+ {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2e7821bffe00aa6bd07a23913b7f4e01328c3d5cc0b40b36c0bd81d362faeb65"},
+ {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c0a33bc9f02c2b17c3ea382f91b4db0e6cde90b63b296422a939886a7a80de1c"},
+ {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b8526c6d437855442cdd3d87eede9c425c4445ea011ca38d937db299382e6fa3"},
+ {file = "MarkupSafe-2.1.2-cp39-cp39-win32.whl", hash = "sha256:137678c63c977754abe9086a3ec011e8fd985ab90631145dfb9294ad09c102a7"},
+ {file = "MarkupSafe-2.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:0576fe974b40a400449768941d5d0858cc624e3249dfd1e0c33674e5c7ca7aed"},
+ {file = "MarkupSafe-2.1.2.tar.gz", hash = "sha256:abcabc8c2b26036d62d4c746381a6f7cf60aafcc653198ad678306986b09450d"},
+]
+mccabe = [
+ {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"},
+ {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"},
+]
+mypy-extensions = [
+ {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"},
+ {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"},
+]
+nodeenv = [
+ {file = "nodeenv-1.7.0-py2.py3-none-any.whl", hash = "sha256:27083a7b96a25f2f5e1d8cb4b6317ee8aeda3bdd121394e5ac54e498028a042e"},
+ {file = "nodeenv-1.7.0.tar.gz", hash = "sha256:e0e7f7dfb85fc5394c6fe1e8fa98131a2473e04311a45afb6508f7cf1836fa2b"},
+]
+packaging = [
+ {file = "packaging-23.0-py3-none-any.whl", hash = "sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2"},
+ {file = "packaging-23.0.tar.gz", hash = "sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97"},
+]
+pathspec = [
+ {file = "pathspec-0.11.0-py3-none-any.whl", hash = "sha256:3a66eb970cbac598f9e5ccb5b2cf58930cd8e3ed86d393d541eaf2d8b1705229"},
+ {file = "pathspec-0.11.0.tar.gz", hash = "sha256:64d338d4e0914e91c1792321e6907b5a593f1ab1851de7fc269557a21b30ebbc"},
+]
+platformdirs = [
+ {file = "platformdirs-2.6.2-py3-none-any.whl", hash = "sha256:83c8f6d04389165de7c9b6f0c682439697887bca0aa2f1c87ef1826be3584490"},
+ {file = "platformdirs-2.6.2.tar.gz", hash = "sha256:e1fea1fe471b9ff8332e229df3cb7de4f53eeea4998d3b6bfff542115e998bd2"},
+]
+pluggy = [
+ {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"},
+ {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"},
+]
+pre-commit = [
+ {file = "pre_commit-2.21.0-py2.py3-none-any.whl", hash = "sha256:e2f91727039fc39a92f58a588a25b87f936de6567eed4f0e673e0507edc75bad"},
+ {file = "pre_commit-2.21.0.tar.gz", hash = "sha256:31ef31af7e474a8d8995027fefdfcf509b5c913ff31f2015b4ec4beb26a6f658"},
+]
+py = [
+ {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"},
+ {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"},
+]
+pycodestyle = [
+ {file = "pycodestyle-2.9.1-py2.py3-none-any.whl", hash = "sha256:d1735fc58b418fd7c5f658d28d943854f8a849b01a5d0a1e6f3f3fdd0166804b"},
+ {file = "pycodestyle-2.9.1.tar.gz", hash = "sha256:2c9607871d58c76354b697b42f5d57e1ada7d261c261efac224b664affdc5785"},
+]
+pyflakes = [
+ {file = "pyflakes-2.5.0-py2.py3-none-any.whl", hash = "sha256:4579f67d887f804e67edb544428f264b7b24f435b263c4614f384135cea553d2"},
+ {file = "pyflakes-2.5.0.tar.gz", hash = "sha256:491feb020dca48ccc562a8c0cbe8df07ee13078df59813b83959cbdada312ea3"},
+]
+pytest = [
+ {file = "pytest-7.2.1-py3-none-any.whl", hash = "sha256:c7c6ca206e93355074ae32f7403e8ea12163b1163c976fee7d4d84027c162be5"},
+ {file = "pytest-7.2.1.tar.gz", hash = "sha256:d45e0952f3727241918b8fd0f376f5ff6b301cc0777c6f9a556935c92d8a7d42"},
+]
+pytest-metadata = [
+ {file = "pytest_metadata-2.0.4-py3-none-any.whl", hash = "sha256:acb739f89fabb3d798c099e9e0c035003062367a441910aaaf2281bc1972ee14"},
+ {file = "pytest_metadata-2.0.4.tar.gz", hash = "sha256:fcc653f65fe3035b478820b5284fbf0f52803622ee3f60a2faed7a7d3ba1f41e"},
+]
+pytest-mock = [
+ {file = "pytest-mock-3.10.0.tar.gz", hash = "sha256:fbbdb085ef7c252a326fd8cdcac0aa3b1333d8811f131bdcc701002e1be7ed4f"},
+ {file = "pytest_mock-3.10.0-py3-none-any.whl", hash = "sha256:f4c973eeae0282963eb293eb173ce91b091a79c1334455acfac9ddee8a1c784b"},
+]
+pytest-xdist = [
+ {file = "pytest-xdist-3.2.0.tar.gz", hash = "sha256:fa10f95a2564cd91652f2d132725183c3b590d9fdcdec09d3677386ecf4c1ce9"},
+ {file = "pytest_xdist-3.2.0-py3-none-any.whl", hash = "sha256:336098e3bbd8193276867cc87db8b22903c3927665dff9d1ac8684c02f597b68"},
+]
+pyyaml = [
+ {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"},
+ {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"},
+ {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"},
+ {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"},
+ {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"},
+ {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"},
+ {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"},
+ {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"},
+ {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"},
+ {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"},
+ {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"},
+ {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"},
+ {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"},
+ {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"},
+ {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"},
+ {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"},
+ {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"},
+ {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"},
+ {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"},
+ {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"},
+ {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"},
+ {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"},
+ {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"},
+ {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"},
+ {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"},
+ {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"},
+ {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"},
+ {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"},
+ {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"},
+ {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"},
+ {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"},
+ {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"},
+ {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"},
+ {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"},
+ {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"},
+ {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"},
+ {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"},
+ {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"},
+ {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"},
+ {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"},
+]
+setuptools = [
+ {file = "setuptools-67.2.0-py3-none-any.whl", hash = "sha256:16ccf598aab3b506593c17378473978908a2734d7336755a8769b480906bec1c"},
+ {file = "setuptools-67.2.0.tar.gz", hash = "sha256:b440ee5f7e607bb8c9de15259dba2583dd41a38879a7abc1d43a71c59524da48"},
+]
+six = [
+ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
+ {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
+]
+tomli = [
+ {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"},
+ {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"},
+]
+tox = [
+ {file = "tox-3.28.0-py2.py3-none-any.whl", hash = "sha256:57b5ab7e8bb3074edc3c0c0b4b192a4f3799d3723b2c5b76f1fa9f2d40316eea"},
+ {file = "tox-3.28.0.tar.gz", hash = "sha256:d0d28f3fe6d6d7195c27f8b054c3e99d5451952b54abdae673b71609a581f640"},
+]
+typed-ast = [
+ {file = "typed_ast-1.5.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:669dd0c4167f6f2cd9f57041e03c3c2ebf9063d0757dc89f79ba1daa2bfca9d4"},
+ {file = "typed_ast-1.5.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:211260621ab1cd7324e0798d6be953d00b74e0428382991adfddb352252f1d62"},
+ {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:267e3f78697a6c00c689c03db4876dd1efdfea2f251a5ad6555e82a26847b4ac"},
+ {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c542eeda69212fa10a7ada75e668876fdec5f856cd3d06829e6aa64ad17c8dfe"},
+ {file = "typed_ast-1.5.4-cp310-cp310-win_amd64.whl", hash = "sha256:a9916d2bb8865f973824fb47436fa45e1ebf2efd920f2b9f99342cb7fab93f72"},
+ {file = "typed_ast-1.5.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:79b1e0869db7c830ba6a981d58711c88b6677506e648496b1f64ac7d15633aec"},
+ {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a94d55d142c9265f4ea46fab70977a1944ecae359ae867397757d836ea5a3f47"},
+ {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:183afdf0ec5b1b211724dfef3d2cad2d767cbefac291f24d69b00546c1837fb6"},
+ {file = "typed_ast-1.5.4-cp36-cp36m-win_amd64.whl", hash = "sha256:639c5f0b21776605dd6c9dbe592d5228f021404dafd377e2b7ac046b0349b1a1"},
+ {file = "typed_ast-1.5.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cf4afcfac006ece570e32d6fa90ab74a17245b83dfd6655a6f68568098345ff6"},
+ {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed855bbe3eb3715fca349c80174cfcfd699c2f9de574d40527b8429acae23a66"},
+ {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6778e1b2f81dfc7bc58e4b259363b83d2e509a65198e85d5700dfae4c6c8ff1c"},
+ {file = "typed_ast-1.5.4-cp37-cp37m-win_amd64.whl", hash = "sha256:0261195c2062caf107831e92a76764c81227dae162c4f75192c0d489faf751a2"},
+ {file = "typed_ast-1.5.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2efae9db7a8c05ad5547d522e7dbe62c83d838d3906a3716d1478b6c1d61388d"},
+ {file = "typed_ast-1.5.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7d5d014b7daa8b0bf2eaef684295acae12b036d79f54178b92a2b6a56f92278f"},
+ {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:370788a63915e82fd6f212865a596a0fefcbb7d408bbbb13dea723d971ed8bdc"},
+ {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4e964b4ff86550a7a7d56345c7864b18f403f5bd7380edf44a3c1fb4ee7ac6c6"},
+ {file = "typed_ast-1.5.4-cp38-cp38-win_amd64.whl", hash = "sha256:683407d92dc953c8a7347119596f0b0e6c55eb98ebebd9b23437501b28dcbb8e"},
+ {file = "typed_ast-1.5.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4879da6c9b73443f97e731b617184a596ac1235fe91f98d279a7af36c796da35"},
+ {file = "typed_ast-1.5.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3e123d878ba170397916557d31c8f589951e353cc95fb7f24f6bb69adc1a8a97"},
+ {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebd9d7f80ccf7a82ac5f88c521115cc55d84e35bf8b446fcd7836eb6b98929a3"},
+ {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98f80dee3c03455e92796b58b98ff6ca0b2a6f652120c263efdba4d6c5e58f72"},
+ {file = "typed_ast-1.5.4-cp39-cp39-win_amd64.whl", hash = "sha256:0fdbcf2fef0ca421a3f5912555804296f0b0960f0418c440f5d6d3abb549f3e1"},
+ {file = "typed_ast-1.5.4.tar.gz", hash = "sha256:39e21ceb7388e4bb37f4c679d72707ed46c2fbf2a5609b8b8ebc4b067d977df2"},
+]
+typing-extensions = [
+ {file = "typing_extensions-4.4.0-py3-none-any.whl", hash = "sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e"},
+ {file = "typing_extensions-4.4.0.tar.gz", hash = "sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa"},
+]
+virtualenv = [
+ {file = "virtualenv-20.16.2-py2.py3-none-any.whl", hash = "sha256:635b272a8e2f77cb051946f46c60a54ace3cb5e25568228bd6b57fc70eca9ff3"},
+ {file = "virtualenv-20.16.2.tar.gz", hash = "sha256:0ef5be6d07181946891f5abc8047fda8bc2f0b4b9bf222c64e6e8963baee76db"},
+]
+zipp = [
+ {file = "zipp-3.13.0-py3-none-any.whl", hash = "sha256:e8b2a36ea17df80ffe9e2c4fda3f693c3dad6df1697d3cd3af232db680950b0b"},
+ {file = "zipp-3.13.0.tar.gz", hash = "sha256:23f70e964bc11a34cef175bc90ba2914e1e4545ea1e3e2f67c079671883f9cb6"},
+]
diff --git a/pyproject.toml b/pyproject.toml
index 2683f072..25792869 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,12 +1,64 @@
[build-system]
-requires = [
- "pip >= 19.3.1",
- "setuptools >= 42",
- "setuptools_scm[toml] >= 3.5.0",
- "setuptools_scm_git_archive >= 1.1",
- "wheel >= 0.33.6",
-]
-build-backend = "setuptools.build_meta"
+requires = ["poetry-core>=1.0.0"]
+build-backend = "poetry.core.masonry.api"
+
+[tool.poetry]
+name = "pytest-html"
+description = "pytest plugin for generating HTML reports"
+version = "4.0.0-rc0"
+license = "MPL-2.0"
+authors = [
+ "Dave Hunt ",
+ "Jim Brannlund "
+]
+readme = "README.rst"
+homepage = "https://github.com/pytest-dev/pytest-html"
+repository = "https://github.com/pytest-dev/pytest-html"
+keywords = [
+ "pytest",
+ "html",
+ "report",
+]
+classifiers = [
+ "Development Status :: 5 - Production/Stable",
+ "Framework :: Pytest",
+ "Intended Audience :: Developers",
+ "Operating System :: POSIX",
+ "Operating System :: Microsoft :: Windows",
+ "Operating System :: MacOS :: MacOS X",
+ "Topic :: Software Development :: Quality Assurance",
+ "Topic :: Software Development :: Testing",
+ "Topic :: Utilities",
+]
+packages = [
+ { include = "pytest_html", from = "src" },
+]
+include = [
+ { path = "testing", format = "sdist" },
+ { path = "docs", format = "sdist" },
+ "src/pytest_html/resources",
+ "src/pytest_html/resources/app.js",
+]
+
+[tool.poetry.dependencies]
+python = ">=3.7"
+pytest = ">=7.0.0"
+pytest-metadata = ">=2.0.2"
+Jinja2 = ">=3.0.0"
+
+[tool.poetry.dev-dependencies]
+assertpy = ">=1.1"
+beautifulsoup4 = ">=4.11.1"
+black = ">=22.1.0"
+flake8 = ">=4.0.1"
+pre-commit = ">=2.17.0"
+pytest-xdist = ">=2.4.0"
+pytest-mock = ">=3.7.0"
+selenium = ">=4.3.0"
+tox = ">=3.24.5"
+
+[tool.poetry.plugins.pytest11]
+html = "pytest_html.plugin"
[tool.setuptools_scm]
local_scheme = "no-local-version"
diff --git a/resources/nextgendata.js b/resources/nextgendata.js
deleted file mode 100644
index 2cee01f8..00000000
--- a/resources/nextgendata.js
+++ /dev/null
@@ -1 +0,0 @@
-const jsonData = {"title": "Next Gen Report", "collectedItems": 89, "environment": {"Python": "3.7.7", "Platform": "Darwin-19.6.0-x86_64-i386-64bit", "Packages": {"pytest": "6.1.2", "py": "1.10.0", "pluggy": "0.13.1"}, "Plugins": {"rerunfailures": "9.1.1", "metadata": "1.11.0", "xdist": "2.1.0", "mock": "3.3.1", "html": "2.1.2.dev80", "forked": "1.3.0"}}, "tests": []}
diff --git a/setup.py b/setup.py
index 5c01738b..dd2d6e5b 100644
--- a/setup.py
+++ b/setup.py
@@ -10,10 +10,10 @@
url="https://github.com/pytest-dev/pytest-html",
package_dir={"": "src"},
packages=["pytest_html"],
- package_data={"pytest_html": ["resources/*"]},
+ package_data={"pytest_html": ["resources/*", "scripts/*"]},
entry_points={"pytest11": ["html = pytest_html.plugin"]},
setup_requires=["setuptools_scm"],
- install_requires=["pytest>=5.0,!=6.0.0", "pytest-metadata"],
+ install_requires=["pytest>=5.0,!=6.0.0", "pytest-metadata", "jinja2>=3.0,<4.0"],
license="Mozilla Public License 2.0 (MPL 2.0)",
keywords="py.test pytest html report",
python_requires=">=3.6",
diff --git a/src/.gitignore b/src/.gitignore
index ad9a5c93..b96a0039 100644
--- a/src/.gitignore
+++ b/src/.gitignore
@@ -1,3 +1,5 @@
-
# file generated by setuptools_scm. don't track in version control
pytest_html/__version.py
+
+# don't track built file
+app.js
diff --git a/src/layout/css/style.scss b/src/layout/css/style.scss
index 05e1a266..5fa7be7f 100644
--- a/src/layout/css/style.scss
+++ b/src/layout/css/style.scss
@@ -82,9 +82,6 @@ span.xpassed,
color: red;
}
-.col-result {
- text-transform: capitalize;
-}
.col-links__extra {
margin-right: 3px;
}
@@ -143,50 +140,74 @@ $extra-media-width: 320px;
}
}
-div.image {
+div.media {
border: $border-width solid #e6e6e6;
float: right;
height: $extra-height;
- margin-left: $spacing;
+ margin: 0 $spacing;
overflow: hidden;
width: $extra-media-width;
-
- img {
- width: $extra-media-width;
- }
}
-div.video {
- border: $border-width solid #e6e6e6;
- float: right;
- height: $extra-height;
- margin-left: $spacing;
+.media-container {
+ display: grid;
+ grid-template-columns: 25px auto 25px;
+ align-items: center;
+ flex: 1 1;
overflow: hidden;
- width: $extra-media-width;
+ height: 200px;
+}
+.media-container__nav--right,
+.media-container__nav--left {
+ text-align: center;
+ cursor: pointer;
+}
+.media-container__viewport {
+ cursor: pointer;
+ text-align: center;
+ height: inherit;
+ img,
video {
- overflow: hidden;
- width: $extra-media-width;
- height: $extra-height;
+ object-fit: cover;
+ width: 100%;
+ max-height: 100%;
}
}
+.media__name,
+.media__counter {
+ display: flex;
+ flex-direction: row;
+ justify-content: space-around;
+ flex: 0 0 25px;
+ align-items: center;
+}
.collapsed {
display: none;
}
-.expander::after {
- content: ' (show details)';
+@mixin rowToggle {
color: #bbb;
font-style: italic;
cursor: pointer;
}
-.collapser::after {
- content: ' (hide details)';
- color: #bbb;
- font-style: italic;
+.col-result {
cursor: pointer;
+ &:hover::after {
+ @include rowToggle;
+ }
+}
+.col-result.collapser {
+ &:hover::after {
+ content: ' (hide details)';
+ }
+}
+.col-result.expander {
+ &:hover::after {
+ content: ' (show details)';
+ }
}
/*------------------
@@ -249,7 +270,6 @@ div.video {
}
.summary {
- display: flex;
&__data {
flex: 0 0 550px;
}
@@ -280,7 +300,25 @@ div.video {
flex: 0 0 550px;
}
}
-
-input.filter {
- margin-left: 10px;
+.controls {
+ display: flex;
+ justify-content: space-between;
+}
+.filters,
+.collapse {
+ display: flex;
+ align-items: center;
+ button {
+ color: #999;
+ border: none;
+ background: none;
+ cursor: pointer;
+ text-decoration: underline;
+ &:hover {
+ color: #ccc;
+ }
+ }
+}
+.filter__label {
+ margin-right: 10px;
}
diff --git a/src/pytest_html/html_report.py b/src/pytest_html/html_report.py
deleted file mode 100644
index 28afe823..00000000
--- a/src/pytest_html/html_report.py
+++ /dev/null
@@ -1,342 +0,0 @@
-import bisect
-import datetime
-import json
-import os
-import re
-import time
-from collections import defaultdict
-from collections import OrderedDict
-
-from py.xml import html
-from py.xml import raw
-
-from . import __pypi_url__
-from . import __version__
-from .outcome import Outcome
-from .result import TestResult
-from .util import ansi_support
-
-
-class HTMLReport:
- def __init__(self, logfile, config):
- logfile = os.path.expanduser(os.path.expandvars(logfile))
- self.logfile = os.path.abspath(logfile)
- self.test_logs = []
- self.title = os.path.basename(self.logfile)
- self.results = []
- self.errors = self.failed = 0
- self.passed = self.skipped = 0
- self.xfailed = self.xpassed = 0
- has_rerun = config.pluginmanager.hasplugin("rerunfailures")
- self.rerun = 0 if has_rerun else None
- self.self_contained = config.getoption("self_contained_html")
- self.config = config
- self.reports = defaultdict(list)
-
- def _appendrow(self, outcome, report):
- result = TestResult(outcome, report, self.logfile, self.config)
- if result.row_table is not None:
- index = bisect.bisect_right(self.results, result)
- self.results.insert(index, result)
- tbody = html.tbody(
- result.row_table,
- class_="{} results-table-row".format(result.outcome.lower()),
- )
- if result.row_extra is not None:
- tbody.append(result.row_extra)
- self.test_logs.insert(index, tbody)
-
- def append_passed(self, report):
- if report.when == "call":
- if hasattr(report, "wasxfail"):
- self.xpassed += 1
- self._appendrow("XPassed", report)
- else:
- self.passed += 1
- self._appendrow("Passed", report)
-
- def append_failed(self, report):
- if getattr(report, "when", None) == "call":
- if hasattr(report, "wasxfail"):
- # pytest < 3.0 marked xpasses as failures
- self.xpassed += 1
- self._appendrow("XPassed", report)
- else:
- self.failed += 1
- self._appendrow("Failed", report)
- else:
- self.errors += 1
- self._appendrow("Error", report)
-
- def append_rerun(self, report):
- self.rerun += 1
- self._appendrow("Rerun", report)
-
- def append_skipped(self, report):
- if hasattr(report, "wasxfail"):
- self.xfailed += 1
- self._appendrow("XFailed", report)
- else:
- self.skipped += 1
- self._appendrow("Skipped", report)
-
- def _generate_report(self, session):
- suite_stop_time = time.time()
- suite_time_delta = suite_stop_time - self.suite_start_time
- numtests = self.passed + self.failed + self.xpassed + self.xfailed
- generated = datetime.datetime.now()
-
- with open(
- os.path.join(os.path.dirname(__file__), "resources", "style.css")
- ) as style_css_fp:
- self.style_css = style_css_fp.read()
-
- if ansi_support():
- ansi_css = [
- "\n/******************************",
- " * ANSI2HTML STYLES",
- " ******************************/\n",
- ]
- ansi_css.extend([str(r) for r in ansi_support().style.get_styles()])
- self.style_css += "\n".join(ansi_css)
-
- # Add user-provided CSS
- for path in self.config.getoption("css"):
- self.style_css += "\n/******************************"
- self.style_css += "\n * CUSTOM CSS"
- self.style_css += f"\n * {path}"
- self.style_css += "\n ******************************/\n\n"
- with open(path) as f:
- self.style_css += f.read()
-
- css_href = "assets/style.css"
- html_css = html.link(href=css_href, rel="stylesheet", type="text/css")
- if self.self_contained:
- html_css = html.style(raw(self.style_css))
-
- session.config.hook.pytest_html_report_title(report=self)
-
- head = html.head(html.meta(charset="utf-8"), html.title(self.title), html_css)
-
- outcomes = [
- Outcome("passed", self.passed),
- Outcome("skipped", self.skipped),
- Outcome("failed", self.failed),
- Outcome("error", self.errors, label="errors"),
- Outcome("xfailed", self.xfailed, label="expected failures"),
- Outcome("xpassed", self.xpassed, label="unexpected passes"),
- ]
-
- if self.rerun is not None:
- outcomes.append(Outcome("rerun", self.rerun))
-
- summary = [
- html.p(f"{numtests} tests ran in {suite_time_delta:.2f} seconds. "),
- html.p(
- "(Un)check the boxes to filter the results.",
- class_="filter",
- hidden="true",
- ),
- ]
-
- for i, outcome in enumerate(outcomes, start=1):
- summary.append(outcome.checkbox)
- summary.append(outcome.summary_item)
- if i < len(outcomes):
- summary.append(", ")
-
- cells = [
- html.th("Result", class_="sortable result initial-sort", col="result"),
- html.th("Test", class_="sortable", col="name"),
- html.th("Duration", class_="sortable", col="duration"),
- html.th("Links", class_="sortable links", col="links"),
- ]
- session.config.hook.pytest_html_results_table_header(cells=cells)
-
- results = [
- html.h2("Results"),
- html.table(
- [
- html.thead(
- html.tr(cells),
- html.tr(
- [
- html.th(
- "No results found. Try to check the filters",
- colspan=len(cells),
- )
- ],
- id="not-found-message",
- hidden="true",
- ),
- id="results-table-head",
- ),
- self.test_logs,
- ],
- id="results-table",
- ),
- ]
-
- with open(
- os.path.join(os.path.dirname(__file__), "resources", "old_main.js")
- ) as main_js_fp:
- main_js = main_js_fp.read()
-
- body = html.body(
- html.script(raw(main_js)),
- html.h1(self.title),
- html.p(
- "Report generated on {} at {} by ".format(
- generated.strftime("%d-%b-%Y"), generated.strftime("%H:%M:%S")
- ),
- html.a("pytest-html", href=__pypi_url__),
- f" v{__version__}",
- ),
- onLoad="init()",
- )
-
- body.extend(self._generate_environment(session.config))
-
- summary_prefix, summary_postfix = [], []
- session.config.hook.pytest_html_results_summary(
- prefix=summary_prefix, summary=summary, postfix=summary_postfix
- )
- body.extend([html.h2("Summary")] + summary_prefix + summary + summary_postfix)
-
- body.extend(results)
-
- doc = html.html(head, body)
-
- unicode_doc = "\n{}".format(doc.unicode(indent=2))
-
- # Fix encoding issues, e.g. with surrogates
- unicode_doc = unicode_doc.encode("utf-8", errors="xmlcharrefreplace")
- return unicode_doc.decode("utf-8")
-
- def _generate_environment(self, config):
- if not hasattr(config, "_metadata") or config._metadata is None:
- return []
-
- metadata = config._metadata
- environment = [html.h2("Environment")]
- rows = []
-
- keys = [k for k in metadata.keys()]
- if not isinstance(metadata, OrderedDict):
- keys.sort()
-
- for key in keys:
- value = metadata[key]
- if self._is_redactable_environment_variable(key, config):
- black_box_ascii_value = 0x2593
- value = "".join(chr(black_box_ascii_value) for char in str(value))
-
- if isinstance(value, str) and value.startswith("http"):
- value = html.a(value, href=value, target="_blank")
- elif isinstance(value, (list, tuple, set)):
- value = ", ".join(str(i) for i in sorted(map(str, value)))
- elif isinstance(value, dict):
- sorted_dict = {k: value[k] for k in sorted(value)}
- value = json.dumps(sorted_dict)
- raw_value_string = raw(str(value))
- rows.append(html.tr(html.td(key), html.td(raw_value_string)))
-
- environment.append(html.table(rows, id="environment"))
- return environment
-
- def _is_redactable_environment_variable(self, environment_variable, config):
- redactable_regexes = config.getini("environment_table_redact_list")
- for redactable_regex in redactable_regexes:
- if re.match(redactable_regex, environment_variable):
- return True
-
- return False
-
- def _save_report(self, report_content):
- dir_name = os.path.dirname(self.logfile)
- assets_dir = os.path.join(dir_name, "assets")
-
- os.makedirs(dir_name, exist_ok=True)
- if not self.self_contained:
- os.makedirs(assets_dir, exist_ok=True)
-
- with open(self.logfile, "w", encoding="utf-8") as f:
- f.write(report_content)
- if not self.self_contained:
- style_path = os.path.join(assets_dir, "style.css")
- with open(style_path, "w", encoding="utf-8") as f:
- f.write(self.style_css)
-
- def _post_process_reports(self):
- for test_name, test_reports in self.reports.items():
- report_outcome = "passed"
- wasxfail = False
- failure_when = None
- full_text = ""
- extras = []
- duration = 0.0
-
- # in theory the last one should have all logs so we just go
- # through them all to figure out the outcome, xfail, duration,
- # extras, and when it swapped from pass
- for test_report in test_reports:
- if test_report.outcome == "rerun":
- # reruns are separate test runs for all intensive purposes
- self.append_rerun(test_report)
- else:
- full_text += test_report.longreprtext
- extras.extend(getattr(test_report, "extra", []))
- duration += getattr(test_report, "duration", 0.0)
-
- if (
- test_report.outcome not in ("passed", "rerun")
- and report_outcome == "passed"
- ):
- report_outcome = test_report.outcome
- failure_when = test_report.when
-
- if hasattr(test_report, "wasxfail"):
- wasxfail = True
-
- # the following test_report. = settings come at the end of us
- # looping through all test_reports that make up a single
- # case.
-
- # outcome on the right comes from the outcome of the various
- # test_reports that make up this test case
- # we are just carrying it over to the final report.
- test_report.outcome = report_outcome
- test_report.when = "call"
- test_report.nodeid = test_name
- test_report.longrepr = full_text
- test_report.extra = extras
- test_report.duration = duration
-
- if wasxfail:
- test_report.wasxfail = True
-
- if test_report.outcome == "passed":
- self.append_passed(test_report)
- elif test_report.outcome == "skipped":
- self.append_skipped(test_report)
- elif test_report.outcome == "failed":
- test_report.when = failure_when
- self.append_failed(test_report)
-
- def pytest_runtest_logreport(self, report):
- self.reports[report.nodeid].append(report)
-
- def pytest_collectreport(self, report):
- if report.failed:
- self.append_failed(report)
-
- def pytest_sessionstart(self, session):
- self.suite_start_time = time.time()
-
- def pytest_sessionfinish(self, session):
- self._post_process_reports()
- report_content = self._generate_report(session)
- self._save_report(report_content)
-
- def pytest_terminal_summary(self, terminalreporter):
- terminalreporter.write_sep("-", f"generated html file: file://{self.logfile}")
diff --git a/src/pytest_html/nextgen.py b/src/pytest_html/nextgen.py
index 716ad4e6..4e9d8c74 100644
--- a/src/pytest_html/nextgen.py
+++ b/src/pytest_html/nextgen.py
@@ -1,49 +1,241 @@
+import base64
+import binascii
+import datetime
import json
-from typing import Any
-from typing import Dict
+import os
+import re
+import warnings
+from collections import defaultdict
+from functools import partial
+from pathlib import Path
import pytest
+from jinja2 import Environment
+from jinja2 import FileSystemLoader
+from jinja2 import select_autoescape
+from . import __version__
+from . import extras
+from .util import cleanup_unserializable
-class NextGenReport:
- def __init__(self, config, data_file):
+
+try:
+ from ansi2html import Ansi2HTMLConverter, style
+
+ converter = Ansi2HTMLConverter(inline=False, escaped=False)
+ _handle_ansi = partial(converter.convert, full=False)
+ _ansi_styles = style.get_styles()
+except ImportError:
+ from _pytest.logging import _remove_ansi_escape_sequences
+
+ _handle_ansi = _remove_ansi_escape_sequences
+ _ansi_styles = []
+
+
+class BaseReport:
+ class Cells:
+ def __init__(self):
+ self._html = {}
+
+ @property
+ def html(self):
+ return self._html
+
+ def insert(self, index, html):
+ self._html[index] = html
+
+ class Report:
+ def __init__(self, title, duration_format):
+ self._data = {
+ "title": title,
+ "collectedItems": 0,
+ "runningState": "not_started",
+ "durationFormat": duration_format,
+ "environment": {},
+ "tests": [],
+ "resultsTableHeader": {},
+ "additionalSummary": defaultdict(list),
+ }
+
+ @property
+ def data(self):
+ return self._data
+
+ def set_data(self, key, value):
+ self._data[key] = value
+
+ @property
+ def title(self):
+ return self._data["title"]
+
+ @title.setter
+ def title(self, title):
+ self._data["title"] = title
+
+ def __init__(self, report_path, config, default_css="style.css"):
+ self._report_path = Path(os.path.expandvars(report_path)).expanduser()
+ self._report_path.parent.mkdir(parents=True, exist_ok=True)
+ self._resources_path = Path(__file__).parent.joinpath("resources")
self._config = config
- self._data_file = data_file
+ self._template = _read_template([self._resources_path])
+ self._css = _process_css(
+ Path(self._resources_path, default_css), self._config.getoption("css")
+ )
+ self._duration_format = config.getini("duration_format")
+ self._max_asset_filename_length = int(
+ config.getini("max_asset_filename_length")
+ )
+ self._report = self.Report(self._report_path.name, self._duration_format)
- self._title = "Next Gen Report"
- self._data = {
- "title": self._title,
- "collectedItems": 0,
- "environment": {},
- "tests": [],
- }
+ @property
+ def css(self):
+ # implement in subclasses
+ return
- self._data_file.parent.mkdir(parents=True, exist_ok=True)
+ def _asset_filename(self, test_id, extra_index, test_index, file_extension):
+ return "{}_{}_{}.{}".format(
+ re.sub(r"[^\w.]", "_", test_id),
+ str(extra_index),
+ str(test_index),
+ file_extension,
+ )[-self._max_asset_filename_length :]
- def _write(self):
- try:
- data = json.dumps(self._data)
- except TypeError:
- data = cleanup_unserializable(self._data)
- data = json.dumps(data)
+ def _generate_report(self, self_contained=False):
+ generated = datetime.datetime.now()
+ rendered_report = self._render_html(
+ generated.strftime("%d-%b-%Y"),
+ generated.strftime("%H:%M:%S"),
+ __version__,
+ self.css,
+ self_contained=self_contained,
+ test_data=cleanup_unserializable(self._report.data),
+ prefix=self._report.data["additionalSummary"]["prefix"],
+ summary=self._report.data["additionalSummary"]["summary"],
+ postfix=self._report.data["additionalSummary"]["postfix"],
+ )
- with self._data_file.open("w", buffering=1, encoding="UTF-8") as f:
- f.write("const jsonData = ")
- f.write(data)
- f.write("\n")
+ self._write_report(rendered_report)
+
+ def _generate_environment(self):
+ metadata = self._config._metadata
+ for key in metadata.keys():
+ value = metadata[key]
+ if self._is_redactable_environment_variable(key):
+ black_box_ascii_value = 0x2593
+ metadata[key] = "".join(chr(black_box_ascii_value) for _ in str(value))
+
+ return metadata
+
+ def _is_redactable_environment_variable(self, environment_variable):
+ redactable_regexes = self._config.getini("environment_table_redact_list")
+ for redactable_regex in redactable_regexes:
+ if re.match(redactable_regex, environment_variable):
+ return True
+
+ return False
+
+ def _data_content(self, *args, **kwargs):
+ pass
+
+ def _media_content(self, *args, **kwargs):
+ pass
+
+ def _process_extras(self, report, test_id):
+ test_index = hasattr(report, "rerun") and report.rerun + 1 or 0
+ report_extras = getattr(report, "extras", [])
+ for extra_index, extra in enumerate(report_extras):
+ content = extra["content"]
+ asset_name = self._asset_filename(
+ test_id.encode("utf-8").decode("unicode_escape"),
+ extra_index,
+ test_index,
+ extra["extension"],
+ )
+ if extra["format_type"] == extras.FORMAT_JSON:
+ content = json.dumps(content)
+ extra["content"] = self._data_content(
+ content, asset_name=asset_name, mime_type=extra["mime_type"]
+ )
+
+ if extra["format_type"] == extras.FORMAT_TEXT:
+ if isinstance(content, bytes):
+ content = content.decode("utf-8")
+ extra["content"] = self._data_content(
+ content, asset_name=asset_name, mime_type=extra["mime_type"]
+ )
+
+ if (
+ extra["format_type"] == extras.FORMAT_IMAGE
+ or extra["format_type"] == extras.FORMAT_VIDEO
+ ):
+ extra["content"] = self._media_content(
+ content, asset_name=asset_name, mime_type=extra["mime_type"]
+ )
+
+ return report_extras
+
+ def _render_html(
+ self,
+ date,
+ time,
+ version,
+ styles,
+ self_contained,
+ test_data,
+ summary,
+ prefix,
+ postfix,
+ ):
+ return self._template.render(
+ date=date,
+ time=time,
+ version=version,
+ styles=styles,
+ self_contained=self_contained,
+ test_data=json.dumps(test_data),
+ summary=summary,
+ prefix=prefix,
+ postfix=postfix,
+ )
+
+ def _write_report(self, rendered_report):
+ with self._report_path.open("w", encoding="utf-8") as f:
+ f.write(rendered_report)
@pytest.hookimpl(trylast=True)
def pytest_sessionstart(self, session):
config = session.config
if hasattr(config, "_metadata") and config._metadata:
- metadata = config._metadata
- self._data["environment"] = metadata
- self._write()
+ self._report.data["environment"] = self._generate_environment()
+
+ session.config.hook.pytest_html_report_title(report=self._report)
+
+ header_cells = self.Cells()
+ session.config.hook.pytest_html_results_table_header(cells=header_cells)
+ self._report.set_data("resultsTableHeader", header_cells.html)
+
+ self._report.data["runningState"] = "Started"
+ self._generate_report()
+
+ @pytest.hookimpl(trylast=True)
+ def pytest_sessionfinish(self, session):
+ session.config.hook.pytest_html_results_summary(
+ prefix=self._report.data["additionalSummary"]["prefix"],
+ summary=self._report.data["additionalSummary"]["summary"],
+ postfix=self._report.data["additionalSummary"]["postfix"],
+ )
+ self._report.data["runningState"] = "Finished"
+ self._generate_report()
+
+ @pytest.hookimpl(trylast=True)
+ def pytest_terminal_summary(self, terminalreporter):
+ terminalreporter.write_sep(
+ "-", f"Generated html report: file://{self._report_path.resolve()}"
+ )
@pytest.hookimpl(trylast=True)
def pytest_collection_finish(self, session):
- self._data["collectedItems"] = len(session.items)
- self._write()
+ self._report.data["collectedItems"] = len(session.items)
@pytest.hookimpl(trylast=True)
def pytest_runtest_logreport(self, report):
@@ -51,24 +243,138 @@ def pytest_runtest_logreport(self, report):
config=self._config, report=report
)
- # rename to "extras" since list
- if hasattr(report, "extra"):
- for extra in report.extra:
- print(extra)
- if extra["mime_type"] is not None and "image" in extra["mime_type"]:
- data.update({"extras": extra})
+ test_id = report.nodeid
+ if report.when != "call":
+ test_id += f"::{report.when}"
+ data["nodeid"] = test_id
+
+ # Order here matters!
+ log = report.longreprtext or report.capstdout or "No log output captured."
+ data["longreprtext"] = _handle_ansi(log)
+
+ data["outcome"] = _process_outcome(report)
+
+ row_cells = self.Cells()
+ self._config.hook.pytest_html_results_table_row(report=report, cells=row_cells)
+ data.update({"resultsTableRow": row_cells.html})
+
+ table_html = []
+ self._config.hook.pytest_html_results_table_html(report=report, data=table_html)
+ data.update({"tableHtml": table_html})
+
+ data.update({"extras": self._process_extras(report, test_id)})
+ self._report.data["tests"].append(data)
+ self._generate_report()
+
+
+class NextGenReport(BaseReport):
+ def __init__(self, report_path, config):
+ super().__init__(report_path, config)
+ self._assets_path = Path(self._report_path.parent, "assets")
+ self._assets_path.mkdir(parents=True, exist_ok=True)
+ self._css_path = Path(self._assets_path, "style.css")
+
+ with self._css_path.open("w", encoding="utf-8") as f:
+ f.write(self._css)
+
+ @property
+ def css(self):
+ # print("woot", Path(self._assets_path.name, "style.css"))
+ # print("waat", self._css_path.relative_to(self._report_path.parent))
+ return Path(self._assets_path.name, "style.css")
+
+ def _data_content(self, content, asset_name, *args, **kwargs):
+ content = content.encode("utf-8")
+ return self._write_content(content, asset_name)
- self._data["tests"].append(data)
- self._write()
+ def _media_content(self, content, asset_name, *args, **kwargs):
+ try:
+ media_data = base64.b64decode(content.encode("utf-8"), validate=True)
+ return self._write_content(media_data, asset_name)
+ except binascii.Error:
+ # if not base64 content, just return as it's a file or link
+ return content
+
+ def _write_content(self, content, asset_name):
+ content_relative_path = Path(self._assets_path, asset_name)
+ content_relative_path.write_bytes(content)
+ return str(content_relative_path.relative_to(self._report_path.parent))
+
+
+class NextGenSelfContainedReport(BaseReport):
+ def __init__(self, report_path, config):
+ super().__init__(report_path, config)
+ @property
+ def css(self):
+ return self._css
-def cleanup_unserializable(d: Dict[str, Any]) -> Dict[str, Any]:
- """Return new dict with entries that are not json serializable by their str()."""
- result = {}
- for k, v in d.items():
+ def _data_content(self, content, mime_type, *args, **kwargs):
+ charset = "utf-8"
+ data = base64.b64encode(content.encode(charset)).decode(charset)
+ return f"data:{mime_type};charset={charset};base64,{data}"
+
+ def _media_content(self, content, mime_type, *args, **kwargs):
try:
- json.dumps({k: v})
- except TypeError:
- v = str(v)
- result[k] = v
- return result
+ # test if content is base64
+ base64.b64decode(content.encode("utf-8"), validate=True)
+ return f"data:{mime_type};base64,{content}"
+ except binascii.Error:
+ # if not base64, issue warning and just return as it's a file or link
+ warnings.warn(
+ "Self-contained HTML report "
+ "includes link to external "
+ f"resource: {content}"
+ )
+ return content
+
+ def _generate_report(self, *args, **kwargs):
+ super()._generate_report(self_contained=True)
+
+
+def _process_css(default_css, extra_css):
+ with open(default_css, encoding="utf-8") as f:
+ css = f.read()
+
+ # Add user-provided CSS
+ for path in extra_css:
+ css += "\n/******************************"
+ css += "\n * CUSTOM CSS"
+ css += f"\n * {path}"
+ css += "\n ******************************/\n\n"
+ with open(path, encoding="utf-8") as f:
+ css += f.read()
+
+ # ANSI support
+ if _ansi_styles:
+ ansi_css = [
+ "\n/******************************",
+ " * ANSI2HTML STYLES",
+ " ******************************/\n",
+ ]
+ ansi_css.extend([str(r) for r in _ansi_styles])
+ css += "\n".join(ansi_css)
+
+ return css
+
+
+def _process_outcome(report):
+ if report.when in ["setup", "teardown"] and report.outcome == "failed":
+ return "Error"
+ if hasattr(report, "wasxfail"):
+ if report.outcome in ["passed", "failed"]:
+ return "XPassed"
+ if report.outcome == "skipped":
+ return "XFailed"
+
+ return report.outcome.capitalize()
+
+
+def _read_template(search_paths, template_name="index.jinja2"):
+ env = Environment(
+ loader=FileSystemLoader(search_paths),
+ autoescape=select_autoescape(
+ enabled_extensions=("jinja2",),
+ ),
+ )
+ return env.get_template(template_name)
diff --git a/src/pytest_html/outcome.py b/src/pytest_html/outcome.py
deleted file mode 100644
index 1bb71acd..00000000
--- a/src/pytest_html/outcome.py
+++ /dev/null
@@ -1,33 +0,0 @@
-from py.xml import html
-
-
-class Outcome:
- def __init__(self, outcome, total=0, label=None, test_result=None, class_html=None):
- self.outcome = outcome
- self.label = label or outcome
- self.class_html = class_html or outcome
- self.total = total
- self.test_result = test_result or outcome
-
- self.generate_checkbox()
- self.generate_summary_item()
-
- def generate_checkbox(self):
- checkbox_kwargs = {"data-test-result": self.test_result.lower()}
- if self.total == 0:
- checkbox_kwargs["disabled"] = "true"
-
- self.checkbox = html.input(
- type="checkbox",
- checked="true",
- onChange="filterTable(this)",
- name="filter_checkbox",
- class_="filter",
- hidden="true",
- **checkbox_kwargs,
- )
-
- def generate_summary_item(self):
- self.summary_item = html.span(
- f"{self.total} {self.label}", class_=self.class_html
- )
diff --git a/src/pytest_html/plugin.py b/src/pytest_html/plugin.py
index 3961bcde..2f166c56 100644
--- a/src/pytest_html/plugin.py
+++ b/src/pytest_html/plugin.py
@@ -1,14 +1,13 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-import os
+import warnings
+from pathlib import Path
import pytest
-from _pytest.pathlib import Path
-from . import extras # noqa: F401
-from .html_report import HTMLReport
from .nextgen import NextGenReport
+from .nextgen import NextGenSelfContainedReport
def pytest_addhooks(pluginmanager):
@@ -43,6 +42,11 @@ def pytest_addoption(parser):
default=[],
help="append given css file content to report style file.",
)
+ parser.addini(
+ "duration_format",
+ default=None,
+ help="the format for duration.",
+ )
parser.addini(
"render_collapsed",
type="bool",
@@ -64,40 +68,35 @@ def pytest_addoption(parser):
def pytest_configure(config):
- htmlpath = config.getoption("htmlpath")
- if htmlpath:
+ html_path = config.getoption("htmlpath")
+ if html_path:
missing_css_files = []
- for csspath in config.getoption("css"):
- if not os.path.exists(csspath):
- missing_css_files.append(csspath)
+ for css_path in config.getoption("css"):
+ if not Path(css_path).exists():
+ missing_css_files.append(css_path)
if missing_css_files:
- oserror = (
+ os_error = (
f"Missing CSS file{'s' if len(missing_css_files) > 1 else ''}:"
f" {', '.join(missing_css_files)}"
)
- raise OSError(oserror)
+ raise OSError(os_error)
if not hasattr(config, "workerinput"):
- # prevent opening htmlpath on worker nodes (xdist)
- config._html = HTMLReport(htmlpath, config)
+ # prevent opening html_path on worker nodes (xdist)
+ if config.getoption("self_contained_html"):
+ html = NextGenSelfContainedReport(html_path, config)
+ else:
+ html = NextGenReport(html_path, config)
- config._next_gen = NextGenReport(config, Path("nextgendata.js"))
- config.pluginmanager.register(config._html)
- config.pluginmanager.register(config._next_gen)
+ config.pluginmanager.register(html)
def pytest_unconfigure(config):
- html = getattr(config, "_html", None)
+ html = config.pluginmanager.getplugin("html")
if html:
- del config._html
config.pluginmanager.unregister(html)
- next_gen = getattr(config, "_next_gen", None)
- if next_gen:
- del config._next_gen
- config.pluginmanager.unregister(next_gen)
-
@pytest.hookimpl(tryfirst=True, hookwrapper=True)
def pytest_runtest_makereport(item, call):
@@ -105,8 +104,8 @@ def pytest_runtest_makereport(item, call):
report = outcome.get_result()
if report.when == "call":
fixture_extras = getattr(item.config, "extras", [])
- plugin_extras = getattr(report, "extra", [])
- report.extra = fixture_extras + plugin_extras
+ plugin_extras = getattr(report, "extras", [])
+ report.extras = fixture_extras + plugin_extras
@pytest.fixture
@@ -119,7 +118,29 @@ def extra(pytestconfig):
def test_foo(extra):
- extra.append(pytest_html.extras.url("http://www.example.com/"))
+ extra.append(pytest_html.extras.url("https://www.example.com/"))
+ """
+ warnings.warn(
+ "The 'extra' fixture is deprecated and will be removed in a future release"
+ ", use 'extras' instead.",
+ DeprecationWarning,
+ )
+ pytestconfig.extras = []
+ yield pytestconfig.extras
+ del pytestconfig.extras[:]
+
+
+@pytest.fixture
+def extras(pytestconfig):
+ """Add details to the HTML reports.
+
+ .. code-block:: python
+
+ import pytest_html
+
+
+ def test_foo(extras):
+ extras.append(pytest_html.extras.url("https://www.example.com/"))
"""
pytestconfig.extras = []
yield pytestconfig.extras
diff --git a/src/pytest_html/resources/assets/snapshot_of_what_went_wrong.png b/src/pytest_html/resources/assets/snapshot_of_what_went_wrong.png
deleted file mode 100644
index 1ee54a5a..00000000
Binary files a/src/pytest_html/resources/assets/snapshot_of_what_went_wrong.png and /dev/null differ
diff --git a/src/pytest_html/resources/dom.js b/src/pytest_html/resources/dom.js
deleted file mode 100644
index af59017f..00000000
--- a/src/pytest_html/resources/dom.js
+++ /dev/null
@@ -1,82 +0,0 @@
-// const templateEnvRow = find('#template_environment_row');
-// const templateResult = find('#template_results-table__tbody');
-// const aTag = find('#template_a');
-// const aTagImg = find('#template_img');
-// const listHeader = find('#template_results-table__head');
-const dom = {
- getStaticRow: (key, value) => {
- var envRow = templateEnvRow.content.cloneNode(true);
- const isObj = typeof value === 'object' && value !== null;
- const values = isObj
- ? Object.keys(value).map((k) => `${k}: ${value[k]}`)
- : null;
-
- const valuesElement = htmlToElements(
- values
- ? `