diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
index 1bfa7a41ccc9..ffc0150ebac5 100644
--- a/.devcontainer/Dockerfile
+++ b/.devcontainer/Dockerfile
@@ -1,53 +1,18 @@
-#-------------------------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
-#-------------------------------------------------------------------------------------------------------------
+FROM mcr.microsoft.com/devcontainers/typescript-node:22-bookworm
-FROM node:8
+RUN apt-get install -y wget bzip2
-# Avoid warnings by switching to noninteractive
-ENV DEBIAN_FRONTEND=noninteractive
+# Run in silent mode and save downloaded script as anaconda.sh.
+# Run with /bin/bash and run in silent mode to /opt/conda.
+# Also get rid of installation script after finishing.
+RUN wget --quiet https://repo.anaconda.com/archive/Anaconda3-2023.07-1-Linux-x86_64.sh -O ~/anaconda.sh && \
+ /bin/bash ~/anaconda.sh -b -p /opt/conda && \
+ rm ~/anaconda.sh
-# The node image comes with a base non-root 'node' user which this Dockerfile
-# gives sudo access. However, for Linux, this user's GID/UID must match your local
-# user UID/GID to avoid permission issues with bind mounts. Update USER_UID / USER_GID
-# if yours is not 1000. See https://aka.ms/vscode-remote/containers/non-root-user.
-ARG USER_UID=1000
-ARG USER_GID=$USER_UID
+ENV PATH="/opt/conda/bin:$PATH"
+
+# Sudo apt update needs to run in order for installation of fish to work .
+RUN sudo apt update && \
+ sudo apt install fish -y
-# Configure apt and install packages
-RUN apt-get update \
- && apt-get -y install --no-install-recommends apt-utils dialog 2>&1 \
- #
- # Verify git and needed tools are installed
- && apt-get -y install git iproute2 procps \
- #
- # Remove outdated yarn from /opt and install via package
- # so it can be easily updated via apt-get upgrade yarn
- && rm -rf /opt/yarn-* \
- && rm -f /usr/local/bin/yarn \
- && rm -f /usr/local/bin/yarnpkg \
- && apt-get install -y curl apt-transport-https lsb-release \
- && curl -sS https://dl.yarnpkg.com/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/pubkey.gpg | apt-key add - 2>/dev/null \
- && echo "deb https://dl.yarnpkg.com/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
- && apt-get update \
- && apt-get -y install --no-install-recommends yarn \
- #
- # Install tslint and typescript globally
- && npm install -g tslint typescript \
- #
- # [Optional] Update a non-root user to match UID/GID - see https://aka.ms/vscode-remote/containers/non-root-user.
- && if [ "$USER_GID" != "1000" ]; then groupmod node --gid $USER_GID; fi \
- && if [ "$USER_UID" != "1000" ]; then usermod --uid $USER_UID node; fi \
- # [Optional] Add add sudo support for non-root user
- && apt-get install -y sudo \
- && echo node ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/node \
- && chmod 0440 /etc/sudoers.d/node \
- #
- # Clean up
- && apt-get autoremove -y \
- && apt-get clean -y \
- && rm -rf /var/lib/apt/lists/*
-# Switch back to dialog for any ad-hoc use of apt-get
-ENV DEBIAN_FRONTEND=
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index 17c0189dcafd..67a8833d30cf 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -1,26 +1,30 @@
-// For format details, see https://aka.ms/vscode-remote/devcontainer.json or the definition README at
-// https://github.com/microsoft/vscode-dev-containers/tree/master/containers/typescript-node-8
+// For format details, see https://aka.ms/devcontainer.json.
{
- "name": "Node.js 8 & TypeScript",
- "dockerFile": "Dockerfile",
-
- // Use 'settings' to set *default* container specific settings.json values on container create.
- // You can edit these settings after create using File > Preferences > Settings > Remote.
- "settings": {
- "terminal.integrated.shell.linux": "/bin/bash"
+ "name": "VS Code Python Dev Container",
+ // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
+ "build": {
+ "dockerfile": "./Dockerfile",
+ "context": ".."
},
+ "customizations": {
+ "vscode": {
+ "extensions": [
+ "charliermarsh.ruff",
+ "editorconfig.editorconfig",
+ "esbenp.prettier-vscode",
+ "dbaeumer.vscode-eslint",
+ "ms-python.python",
+ "ms-python.vscode-pylance",
+ "ms-python.debugpy"
+ ]
+ }
+ },
+ // Commands to execute on container creation,start.
+ "postCreateCommand": "bash scripts/postCreateCommand.sh",
+ "onCreateCommand": "bash scripts/onCreateCommand.sh",
- // Uncomment the next line if you want to publish any ports.
- // "appPort": [],
-
- // Uncomment the next line to run commands after the container is created.
- // "postCreateCommand": "yarn install",
-
- // Uncomment the next line to use a non-root user. On Linux, this will prevent
- // new files getting created as root, but you may need to update the USER_UID
- // and USER_GID in .devcontainer/Dockerfile to match your user if not 1000.
- // "runArgs": [ "-u", "node" ],
+ "containerEnv": {
+ "CI_PYTHON_PATH": "/workspaces/vscode-python/.venv/bin/python"
+ }
- // Add the IDs of extensions you want installed when the container is created in the array below.
- "extensions": ["ms-vscode.vscode-typescript-tslint-plugin"]
}
diff --git a/.eslintignore b/.eslintignore
deleted file mode 100644
index 8ae5de73e229..000000000000
--- a/.eslintignore
+++ /dev/null
@@ -1 +0,0 @@
-src/ipywidgets/*
diff --git a/.eslintplugin/no-bad-gdpr-comment.js b/.eslintplugin/no-bad-gdpr-comment.js
new file mode 100644
index 000000000000..786259683ff6
--- /dev/null
+++ b/.eslintplugin/no-bad-gdpr-comment.js
@@ -0,0 +1,51 @@
+"use strict";
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *--------------------------------------------------------------------------------------------*/
+Object.defineProperty(exports, "__esModule", { value: true });
+var noBadGDPRComment = {
+ create: function (context) {
+ var _a;
+ return _a = {},
+ _a['Program'] = function (node) {
+ for (var _i = 0, _a = node.comments; _i < _a.length; _i++) {
+ var comment = _a[_i];
+ if (comment.type !== 'Block' || !comment.loc) {
+ continue;
+ }
+ if (!comment.value.includes('__GDPR__')) {
+ continue;
+ }
+ var dataStart = comment.value.indexOf('\n');
+ var data = comment.value.substring(dataStart);
+ var gdprData = void 0;
+ try {
+ var jsonRaw = "{ ".concat(data, " }");
+ gdprData = JSON.parse(jsonRaw);
+ }
+ catch (e) {
+ context.report({
+ loc: { start: comment.loc.start, end: comment.loc.end },
+ message: 'GDPR comment is not valid JSON',
+ });
+ }
+ if (gdprData) {
+ var len = Object.keys(gdprData).length;
+ if (len !== 1) {
+ context.report({
+ loc: { start: comment.loc.start, end: comment.loc.end },
+ message: "GDPR comment must contain exactly one key, not ".concat(Object.keys(gdprData).join(', ')),
+ });
+ }
+ }
+ }
+ },
+ _a;
+ },
+};
+module.exports = {
+ rules: {
+ 'no-bad-gdpr-comment': noBadGDPRComment, // Ensure correct structure
+ },
+};
diff --git a/.eslintplugin/no-bad-gdpr-comment.ts b/.eslintplugin/no-bad-gdpr-comment.ts
new file mode 100644
index 000000000000..1eba899a7de3
--- /dev/null
+++ b/.eslintplugin/no-bad-gdpr-comment.ts
@@ -0,0 +1,55 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *--------------------------------------------------------------------------------------------*/
+
+import * as eslint from 'eslint';
+const noBadGDPRComment: eslint.Rule.RuleModule = {
+ create(context: eslint.Rule.RuleContext): eslint.Rule.RuleListener {
+ return {
+ ['Program'](node) {
+ for (const comment of (node as eslint.AST.Program).comments) {
+ if (comment.type !== 'Block' || !comment.loc) {
+ continue;
+ }
+ if (!comment.value.includes('__GDPR__')) {
+ continue;
+ }
+
+ const dataStart = comment.value.indexOf('\n');
+ const data = comment.value.substring(dataStart);
+
+ let gdprData: { [key: string]: object } | undefined;
+
+ try {
+ const jsonRaw = `{ ${data} }`;
+ gdprData = JSON.parse(jsonRaw);
+ } catch (e) {
+ context.report({
+ loc: { start: comment.loc.start, end: comment.loc.end },
+ message: 'GDPR comment is not valid JSON',
+ });
+ }
+
+ if (gdprData) {
+ const len = Object.keys(gdprData).length;
+ if (len !== 1) {
+ context.report({
+ loc: { start: comment.loc.start, end: comment.loc.end },
+ message: `GDPR comment must contain exactly one key, not ${Object.keys(gdprData).join(
+ ', ',
+ )}`,
+ });
+ }
+ }
+ }
+ },
+ };
+ },
+};
+
+module.exports = {
+ rules: {
+ 'no-bad-gdpr-comment': noBadGDPRComment, // Ensure correct structure
+ },
+};
diff --git a/.eslintrc b/.eslintrc
deleted file mode 100644
index a74911001e09..000000000000
--- a/.eslintrc
+++ /dev/null
@@ -1,109 +0,0 @@
-{
- "env": {
- "node": true,
- "es6": true,
- "mocha": true
- },
- "parser": "@typescript-eslint/parser",
- "plugins": [
- "@typescript-eslint"
- ],
- "extends": [
- "airbnb",
- "plugin:@typescript-eslint/recommended",
- "plugin:import/errors",
- "plugin:import/warnings",
- "plugin:import/typescript"
- ],
- "rules": {
- // Overriding ESLint rules with Typescript-specific ones
- "@typescript-eslint/ban-ts-comment": [
- "error",
- {
- "ts-ignore": "allow-with-description"
- }
- ],
- "no-bitwise": "off",
- "no-dupe-class-members": "off",
- "@typescript-eslint/no-dupe-class-members": "error",
- "no-empty-function": "off",
- "@typescript-eslint/no-empty-function": [
- "error"
- ],
- "@typescript-eslint/no-empty-interface": "off",
- "@typescript-eslint/no-non-null-assertion": "off",
- "no-unused-vars": "off",
- "@typescript-eslint/no-unused-vars": "error",
- "no-use-before-define": "off",
- "@typescript-eslint/no-use-before-define": [
- "error",
- {
- "functions": false
- }
- ],
- "no-useless-constructor": "off",
- "@typescript-eslint/no-useless-constructor": "error",
- "@typescript-eslint/no-var-requires": "off",
- // Other rules
- "comma-dangle": "off",
- "func-names": "off",
- "import/extensions": "off",
- "import/namespace": "off",
- "import/no-extraneous-dependencies": "off",
- "import/no-unresolved": [
- "error",
- {
- "ignore": [
- "monaco-editor",
- "vscode"
- ]
- }
- ],
- "import/prefer-default-export": "off",
- "indent": [
- "error",
- 4,
- {
- "SwitchCase": 1
- }
- ],
- "max-classes-per-file": "off",
- "max-len": [
- "error",
- {
- "code": 120
- }
- ],
- "no-confusing-arrow": [
- "error",
- {
- "allowParens": true
- }
- ],
- "no-console": "off",
- "no-control-regex": "off",
- "no-extend-native": "off",
- "no-multi-str": "off",
- "no-param-reassign": "off",
- "no-prototype-builtins": "off",
- "no-template-curly-in-string": "off",
- "no-underscore-dangle": "off",
- "no-useless-escape": "off",
- "no-void": [
- "error",
- {
- "allowAsStatement": true
- }
- ],
- "operator-assignment": "off",
- "react/jsx-filename-extension": [
- 1,
- {
- "extensions": [
- ".tsx"
- ]
- }
- ],
- "strict": "off"
- }
-}
diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs
new file mode 100644
index 000000000000..e2c2a50781b9
--- /dev/null
+++ b/.git-blame-ignore-revs
@@ -0,0 +1,15 @@
+# Prettier
+2b6a8f2d439fe9d5e66665ea46d8b690ac9b2c39
+649156a09ccdc51c0d20f7cd44540f1918f9347b
+4f774d94bf4fbf87bb417b2b2b8e79e334eb3536
+61b179b2092050709e3c373a6738abad8ce581c4
+c33617b0b98daeb4d72040b48c5850b476d6256c
+db8e1e2460e9754ec0672d958789382b6d15c5aa
+08bc9ad3bee5b19f02fa756fbc53ab32f1b39920
+# Black
+a58eeffd1b64498e2afe5f11597888dfd1c8699c
+5cd8f539f4d2086b718c8f11f823c0ac12fc2c49
+9ec9e9eaebb25adc6d942ac19d4d6c128abb987f
+c4af91e090057d20d7a633b3afa45eaa13ece76f
+# Ruff
+e931bed3efbede7b05113316506958ecd7506777
diff --git a/.github/ISSUE_TEMPLATE/1_ds_bug_report.md b/.github/ISSUE_TEMPLATE/1_ds_bug_report.md
deleted file mode 100644
index ab52c81e6a1e..000000000000
--- a/.github/ISSUE_TEMPLATE/1_ds_bug_report.md
+++ /dev/null
@@ -1,50 +0,0 @@
----
-name: Bug report for Notebook Editor, Interactive Window, Python Editor cells
-about: Create a report to help us improve
-labels: type-bug, data science
----
-
-# Bug: Notebook Editor, Interactive Window, Editor cells
-
-
-
-## Steps to cause the bug to occur
-
-1.
-
-## Actual behavior
-
-## Expected behavior
-
-
-
-### Your Jupyter and/or Python environment
-
-_Please provide as much info as you readily know_
-
-- **Jupyter server running:** Local | Remote | N/A
-- **Extension version:** 20YY.MM.#####-xxx
-- **VS Code version:** #.##
-- **Setting python.jediEnabled:** true | false
-- **Setting python.languageServer:** Jedi | Microsoft | None
-- **Python and/or Anaconda version:** #.#.#
-- **OS:** Windows | Mac | Linux (distro):
-- **Virtual environment:** conda | venv | virtualenv | N/A | ...
-
-## Developer Tools Console Output
-
-
-
-Microsoft Data Science for VS Code Engineering Team: @rchiodo, @IanMatthewHuff, @DavidKutu, @DonJayamanne, @greazer, @joyceerhl
diff --git a/.github/ISSUE_TEMPLATE/2_bug_report.md b/.github/ISSUE_TEMPLATE/2_bug_report.md
deleted file mode 100644
index 63ebddf67b47..000000000000
--- a/.github/ISSUE_TEMPLATE/2_bug_report.md
+++ /dev/null
@@ -1,54 +0,0 @@
----
-name: General bug report
-about: Create a report to help us improve
-labels: classify, type-bug
----
-
-
-
-## Environment data
-
-- VS Code version: XXX
-- Extension version (available under the Extensions sidebar): XXX
-- OS and version: XXX
-- Python version (& distribution if applicable, e.g. Anaconda): XXX
-- Type of virtual environment used (N/A | venv | virtualenv | conda | ...): XXX
-- Relevant/affected Python packages and their versions: XXX
-- Relevant/affected Python-related VS Code extensions and their versions: XXX
-- Value of the `python.languageServer` setting: XXX
-
-[**NOTE**: If you suspect that your issue is related to the Microsoft Python Language Server (`python.languageServer: 'Microsoft'`), please download our new language server [Pylance](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance) from the VS Code marketplace to see if that fixes your issue]
-
-## Expected behaviour
-
-XXX
-
-## Actual behaviour
-
-XXX
-
-## Steps to reproduce:
-
-[**NOTE**: Self-contained, minimal reproducing code samples are **extremely** helpful and will expedite addressing your issue]
-
-1. XXX
-
-
-
-## Logs
-
-
-
-Output for Python in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Python)
-
-
-
-
-```
-XXX
-```
-
-
-
diff --git a/.github/ISSUE_TEMPLATE/3_ds_feature_request.md b/.github/ISSUE_TEMPLATE/3_ds_feature_request.md
deleted file mode 100644
index 71876c9f3aad..000000000000
--- a/.github/ISSUE_TEMPLATE/3_ds_feature_request.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-name: Feature request for Notebook Editor, Interactive Window, Editor cells
-about: Suggest an idea for this project
-labels: type-enhancement, data science
----
-
-# Feature: Notebook Editor, Interactive Window, Python Editor cells
-
-
-
-## Description
-
-Microsoft Data Science for VS Code Engineering Team: @rchiodo, @IanMatthewHuff, @DavidKutu, @DonJayamanne, @greazer, @joyceerhl
diff --git a/.github/ISSUE_TEMPLATE/3_feature_request.md b/.github/ISSUE_TEMPLATE/3_feature_request.md
new file mode 100644
index 000000000000..d13a5e94e700
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/3_feature_request.md
@@ -0,0 +1,7 @@
+---
+name: Feature request
+about: Request for the Python extension, not supporting/sibling extensions
+labels: classify, feature-request
+---
+
+
diff --git a/.github/ISSUE_TEMPLATE/4_feature_request.md b/.github/ISSUE_TEMPLATE/4_feature_request.md
deleted file mode 100644
index e98872ab0d10..000000000000
--- a/.github/ISSUE_TEMPLATE/4_feature_request.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-name: General feature request
-about: Suggest an idea for this project
-labels: classify, type-enhancement
----
-
-
-
-
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index ef0e2aae348f..c966f6bde856 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -1,5 +1,17 @@
blank_issues_enabled: false
contact_links:
- - name: Stack Overflow
- url: https://stackoverflow.com/questions/tagged/visual-studio-code+python
- about: Please ask questions here.
+ - name: 'Bug 🐜'
+ url: https://aka.ms/pvsc-bug
+ about: 'Use the `Python: Report Issue...` command (follow the link for instructions)'
+ - name: 'Pylance'
+ url: https://github.com/microsoft/pylance-release/issues
+ about: 'For issues relating to the Pylance language server extension'
+ - name: 'Jupyter'
+ url: https://github.com/microsoft/vscode-jupyter/issues
+ about: 'For issues relating to the Jupyter extension (including the interactive window)'
+ - name: 'Python Debugger'
+ url: https://github.com/microsoft/vscode-python-debugger/issues
+ about: 'For issues relating to the Python debugger'
+ - name: Help/Support
+ url: https://github.com/microsoft/vscode-python/discussions/categories/q-a
+ about: 'Having trouble with the extension? Need help getting something to work?'
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
deleted file mode 100644
index 1d41e4544cbd..000000000000
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ /dev/null
@@ -1,17 +0,0 @@
-For #
-
-
-
-- [ ] Pull request represents a single change (i.e. not fixing disparate/unrelated things in a single PR).
-- [ ] Title summarizes what is changing.
-- [ ] Has a [news entry](https://github.com/Microsoft/vscode-python/tree/master/news) file (remember to thank yourself!).
-- [ ] Appropriate comments and documentation strings in the code.
-- [ ] Has sufficient logging.
-- [ ] Has telemetry for enhancements.
-- [ ] Unit tests & system/integration tests are added/updated.
-- [ ] [Test plan](https://github.com/Microsoft/vscode-python/blob/master/.github/test_plan.md) is updated as appropriate.
-- [ ] [`package-lock.json`](https://github.com/Microsoft/vscode-python/blob/master/package-lock.json) has been regenerated by running `npm install` (if dependencies have changed).
-- [ ] The wiki is updated with any design decisions/details.
diff --git a/.github/actions/build-vsix/action.yml b/.github/actions/build-vsix/action.yml
new file mode 100644
index 000000000000..912ff2c34a74
--- /dev/null
+++ b/.github/actions/build-vsix/action.yml
@@ -0,0 +1,101 @@
+name: 'Build VSIX'
+description: "Build the extension's VSIX"
+
+inputs:
+ node_version:
+ description: 'Version of Node to install'
+ required: true
+ vsix_name:
+ description: 'Name to give the final VSIX'
+ required: true
+ artifact_name:
+ description: 'Name to give the artifact containing the VSIX'
+ required: true
+ cargo_target:
+ description: 'Cargo build target for the native build'
+ required: true
+ vsix_target:
+ description: 'vsix build target for the native build'
+ required: true
+
+runs:
+ using: 'composite'
+ steps:
+ - name: Install Node
+ uses: actions/setup-node@v6
+ with:
+ node-version: ${{ inputs.node_version }}
+ cache: 'npm'
+
+ - name: Rust Tool Chain setup
+ uses: dtolnay/rust-toolchain@stable
+
+ # Jedi LS depends on dataclasses which is not in the stdlib in Python 3.7.
+ - name: Use Python 3.10 for JediLSP
+ uses: actions/setup-python@v6
+ with:
+ python-version: '3.10'
+ cache: 'pip'
+ cache-dependency-path: |
+ requirements.txt
+ python_files/jedilsp_requirements/requirements.txt
+
+ - name: Upgrade Pip
+ run: python -m pip install -U pip
+ shell: bash
+
+ # For faster/better builds of sdists.
+ - name: Install build pre-requisite
+ run: python -m pip install wheel nox
+ shell: bash
+
+ - name: Install Python Extension dependencies (jedi, etc.)
+ run: nox --session install_python_libs
+ shell: bash
+
+ - name: Add Rustup target
+ run: rustup target add "${CARGO_TARGET}"
+ shell: bash
+ env:
+ CARGO_TARGET: ${{ inputs.cargo_target }}
+
+ - name: Build Native Binaries
+ run: nox --session native_build
+ shell: bash
+ env:
+ CARGO_TARGET: ${{ inputs.cargo_target }}
+
+ - name: Run npm ci
+ run: npm ci --prefer-offline
+ shell: bash
+
+ - name: Update optional extension dependencies
+ run: npm run addExtensionPackDependencies
+ shell: bash
+
+ - name: Build Webpack
+ run: |
+ npx gulp clean
+ npx gulp prePublishBundle
+ shell: bash
+
+ - name: Build VSIX
+ run: npx vsce package --target "${VSIX_TARGET}" --out ms-python-insiders.vsix --pre-release
+ shell: bash
+ env:
+ VSIX_TARGET: ${{ inputs.vsix_target }}
+
+ - name: Rename VSIX
+ # Move to a temp name in case the specified name happens to match the default name.
+ run: mv ms-python-insiders.vsix ms-python-temp.vsix && mv ms-python-temp.vsix "${VSIX_NAME}"
+ shell: bash
+ env:
+ VSIX_NAME: ${{ inputs.vsix_name }}
+
+ - name: Upload VSIX
+ uses: actions/upload-artifact@v7
+ with:
+ name: ${{ inputs.artifact_name }}
+ path: ${{ inputs.vsix_name }}
+ if-no-files-found: error
+ retention-days: 7
diff --git a/.github/actions/lint/action.yml b/.github/actions/lint/action.yml
new file mode 100644
index 000000000000..0bd5a2d8e1e2
--- /dev/null
+++ b/.github/actions/lint/action.yml
@@ -0,0 +1,50 @@
+name: 'Lint'
+description: 'Lint TypeScript and Python code'
+
+inputs:
+ node_version:
+ description: 'Version of Node to install'
+ required: true
+
+runs:
+ using: 'composite'
+ steps:
+ - name: Install Node
+ uses: actions/setup-node@v6
+ with:
+ node-version: ${{ inputs.node_version }}
+ cache: 'npm'
+
+ - name: Install Node dependencies
+ run: npm ci --prefer-offline
+ shell: bash
+
+ - name: Run `gulp prePublishNonBundle`
+ run: npx gulp prePublishNonBundle
+ shell: bash
+
+ - name: Check dependencies
+ run: npm run checkDependencies
+ shell: bash
+
+ - name: Lint TypeScript code
+ run: npm run lint
+ shell: bash
+
+ - name: Check TypeScript format
+ run: npm run format-check
+ shell: bash
+
+ - name: Install Python
+ uses: actions/setup-python@v6
+ with:
+ python-version: '3.x'
+ cache: 'pip'
+
+ - name: Run Ruff
+ run: |
+ python -m pip install -U "ruff"
+ python -m ruff check .
+ python -m ruff format --check
+ working-directory: python_files
+ shell: bash
diff --git a/.github/actions/smoke-tests/action.yml b/.github/actions/smoke-tests/action.yml
new file mode 100644
index 000000000000..0531ef5d42a3
--- /dev/null
+++ b/.github/actions/smoke-tests/action.yml
@@ -0,0 +1,66 @@
+name: 'Smoke tests'
+description: 'Run smoke tests'
+
+inputs:
+ node_version:
+ description: 'Version of Node to install'
+ required: true
+ artifact_name:
+ description: 'Name of the artifact containing the VSIX'
+ required: true
+
+runs:
+ using: 'composite'
+ steps:
+ - name: Install Node
+ uses: actions/setup-node@v4
+ with:
+ node-version: ${{ inputs.node_version }}
+ cache: 'npm'
+
+ - name: Install Python
+ uses: actions/setup-python@v5
+ with:
+ python-version: '3.x'
+ cache: 'pip'
+ cache-dependency-path: |
+ build/test-requirements.txt
+ requirements.txt
+
+ - name: Install dependencies (npm ci)
+ run: npm ci --prefer-offline
+ shell: bash
+
+ - name: Install Python requirements
+ uses: brettcannon/pip-secure-install@92f400e3191171c1858cc0e0d9ac6320173fdb0c # v1.0.0
+ with:
+ options: '-t ./python_files/lib/python --implementation py'
+
+ - name: pip install system test requirements
+ run: |
+ python -m pip install --upgrade -r build/test-requirements.txt
+ shell: bash
+
+ # Bits from the VSIX are reused by smokeTest.ts to speed things up.
+ - name: Download VSIX
+ uses: actions/download-artifact@v4
+ with:
+ name: ${{ inputs.artifact_name }}
+
+ - name: Prepare for smoke tests
+ run: npx tsc -p ./
+ shell: bash
+
+ - name: Set CI_PYTHON_PATH and CI_DISABLE_AUTO_SELECTION
+ run: |
+ echo "CI_PYTHON_PATH=python" >> $GITHUB_ENV
+ echo "CI_DISABLE_AUTO_SELECTION=1" >> $GITHUB_ENV
+ shell: bash
+
+ - name: Run smoke tests
+ env:
+ DISPLAY: 10
+ INSTALL_JUPYTER_EXTENSION: true
+ uses: GabrielBB/xvfb-action@b706e4e27b14669b486812790492dc50ca16b465 # v1.7
+ with:
+ run: node --no-force-async-hooks-checks ./out/test/smokeTest.js
diff --git a/.github/commands.json b/.github/commands.json
new file mode 100644
index 000000000000..2fb6684a7ee6
--- /dev/null
+++ b/.github/commands.json
@@ -0,0 +1,157 @@
+[
+ {
+ "type": "label",
+ "name": "*question",
+ "action": "close",
+ "reason": "not_planned",
+ "comment": "We closed this issue because it is a question about using the Python extension for VS Code rather than an issue or feature request. We recommend browsing resources such as our [Python documentation](https://code.visualstudio.com/docs/languages/python) and our [Discussions page](https://github.com/microsoft/vscode-python/discussions). You may also find help on [StackOverflow](https://stackoverflow.com/questions/tagged/vscode-python), where the community has already answered thousands of similar questions. \n\nHappy Coding!"
+ },
+ {
+ "type": "label",
+ "name": "*dev-question",
+ "action": "close",
+ "reason": "not_planned",
+ "comment": "We have a great extension developer community over on [GitHub discussions](https://github.com/microsoft/vscode-discussions/discussions) and [Slack](https://vscode-dev-community.slack.com/) where extension authors help each other. This is a great place for you to ask questions and find support.\n\nHappy Coding!"
+ },
+ {
+ "type": "label",
+ "name": "*extension-candidate",
+ "action": "close",
+ "reason": "not_planned",
+ "comment": "We try to keep the Python extension lean and we think the functionality you're asking for is great for a VS Code extension. You might be able to find one that suits you in the [VS Code Marketplace](https://aka.ms/vscodemarketplace) already. If not, in a few simple steps you can get started [writing your own extension](https://aka.ms/vscodewritingextensions) or leverage our [tool extension template](https://github.com/microsoft/vscode-python-tools-extension-template) to get started. In addition, check out the [vscode-python-environments](https://github.com/microsoft/vscode-python-environments) as this may be the right spot for your request. \n\nHappy Coding!"
+ },
+ {
+ "type": "label",
+ "name": "*not-reproducible",
+ "action": "close",
+ "reason": "not_planned",
+ "comment": "We closed this issue because we are unable to reproduce the problem with the steps you describe. Chances are we've already fixed your problem in a recent version of the Python extension, so we recommend updating to the latest version and trying again. If you continue to experience this issue, please ask us to reopen the issue and provide us with more detail.\n\nHappy Coding!"
+ },
+ {
+ "type": "label",
+ "name": "*out-of-scope",
+ "action": "close",
+ "reason": "not_planned",
+ "comment": "We closed this issue because we [don't plan to address it](https://github.com/microsoft/vscode-python/wiki/Issue-Management#criteria-for-closing-out-of-scope-feature-requests) in the foreseeable future. If you disagree and feel that this issue is crucial: we are happy to listen and to reconsider.\n\nIf you wonder what we are up to, please see our [roadmap](https://aka.ms/pythonvscoderoadmap) and [issue reporting guidelines]( https://github.com/microsoft/vscode-python/wiki/Issue-Management).\n\nThanks for your understanding, and happy coding!"
+ },
+ {
+ "type": "label",
+ "name": "wont-fix",
+ "action": "close",
+ "reason": "not_planned",
+ "comment": "We closed this issue because we [don't plan to address it](https://github.com/microsoft/vscode/wiki/Issue-Grooming#wont-fix-bugs).\n\nThanks for your understanding, and happy coding!"
+ },
+ {
+ "type": "label",
+ "name": "*caused-by-extension",
+ "action": "close",
+ "reason": "not_planned",
+ "comment": "This issue is caused by an extension, please file it with the repository (or contact) the extension has linked in its overview in VS Code or the [marketplace](https://aka.ms/vscodemarketplace) for VS Code. See also our [issue reporting guidelines](https://aka.ms/vscodeissuereporting). If you don't know which extension is causing the problem, you can run `Help: Start extension bisect` from the command palette (F1) to help identify the problem extension.\n\nHappy Coding!"
+ },
+ {
+ "type": "label",
+ "name": "*as-designed",
+ "action": "close",
+ "reason": "not_planned",
+ "comment": "The described behavior is how it is expected to work. If you disagree, please explain what is expected and what is not in more detail. See also our [issue reporting guidelines](https://aka.ms/vscodeissuereporting).\n\nHappy Coding!"
+ },
+ {
+ "type": "label",
+ "name": "L10N",
+ "assign": [
+ "csigs",
+ "TylerLeonhardt"
+ ]
+ },
+ {
+ "type": "label",
+ "name": "*duplicate",
+ "action": "close",
+ "reason": "not_planned",
+ "comment": "Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for [similar existing issues](${duplicateQuery}). See also our [issue reporting guidelines](https://aka.ms/vscodeissuereporting).\n\nHappy Coding!"
+ },
+ {
+ "type": "comment",
+ "name": "verified",
+ "allowUsers": [
+ "@author"
+ ],
+ "action": "updateLabels",
+ "addLabel": "verified",
+ "removeLabel": "author-verification-requested",
+ "requireLabel": "author-verification-requested",
+ "disallowLabel": "unreleased"
+ },
+ {
+ "type": "comment",
+ "name": "confirm",
+ "allowUsers": [
+ "cleidigh",
+ "usernamehw",
+ "gjsjohnmurray",
+ "IllusionMH"
+ ],
+ "action": "updateLabels",
+ "addLabel": "confirmed",
+ "removeLabel": "confirmation-pending"
+ },
+ {
+ "type": "label",
+ "name": "*off-topic",
+ "action": "close",
+ "reason": "not_planned",
+ "comment": "Thanks for creating this issue. We think this issue is unactionable or unrelated to the goals of this project. Please follow our [issue reporting guidelines](https://aka.ms/vscodeissuereporting).\n\nHappy Coding!"
+ },
+ {
+ "type": "comment",
+ "name": "gifPlease",
+ "allowUsers": [
+ "cleidigh",
+ "usernamehw",
+ "gjsjohnmurray",
+ "IllusionMH"
+ ],
+ "action": "comment",
+ "addLabel": "info-needed",
+ "comment": "Thanks for reporting this issue! Unfortunately, it's hard for us to understand what issue you're seeing. Please help us out by providing a screen recording showing exactly what isn't working as expected. While we can work with most standard formats, `.gif` files are preferred as they are displayed inline on GitHub. You may find https://gifcap.dev helpful as a browser-based gif recording tool.\n\nIf the issue depends on keyboard input, you can help us by enabling screencast mode for the recording (`Developer: Toggle Screencast Mode` in the command palette). Lastly, please attach this file via the GitHub web interface as emailed responses will strip files out from the issue.\n\nHappy coding!"
+ },
+ {
+ "type": "label",
+ "name": "*workspace-trust-docs",
+ "action": "close",
+ "reason": "not_planned",
+ "comment": "This issue appears to be the result of the new workspace trust feature shipped in June 2021. This security-focused feature has major impact on the functionality of VS Code. Due to the volume of issues, we ask that you take some time to review our [comprehensive documentation](https://aka.ms/vscode-workspace-trust) on the feature. If your issue is still not resolved, please let us know."
+ },
+ {
+ "type": "label",
+ "name": "~verification-steps-needed",
+ "action": "updateLabels",
+ "addLabel": "verification-steps-needed",
+ "removeLabel": "~verification-steps-needed",
+ "comment": "Friendly ping! Looks like this issue requires some further steps to be verified. Please provide us with the steps necessary to verify this issue."
+ },
+ {
+ "type": "label",
+ "name": "~info-needed",
+ "action": "updateLabels",
+ "addLabel": "info-needed",
+ "removeLabel": "~info-needed",
+ "comment": "Thanks for creating this issue! We figured it's missing some basic information or in some other way doesn't follow our [issue reporting guidelines](https://aka.ms/pvsc-bug). Please take the time to review these and update the issue or even open a new one with the Report Issue command in VS Code (**Help > Report Issue**) to have all the right information collected for you.\n\nHappy Coding!"
+ },
+ {
+ "type": "label",
+ "name": "~version-info-needed",
+ "action": "updateLabels",
+ "addLabel": "info-needed",
+ "removeLabel": "~version-info-needed",
+ "comment": "Thanks for creating this issue! We figured it's missing some basic information, such as a version number, or in some other way doesn't follow our issue reporting guidelines. Please take the time to review these and update the issue or even open a new one with the Report Issue command in VS Code (**Help > Report Issue**) to have all the right information collected for you.\n\nHappy Coding!"
+ },
+ {
+ "type": "label",
+ "name": "~confirmation-needed",
+ "action": "updateLabels",
+ "addLabel": "info-needed",
+ "removeLabel": "~confirmation-needed",
+ "comment": "Please diagnose the root cause of the issue by running the command `F1 > Help: Troubleshoot Issue` and following the instructions. Once you have done that, please update the issue with the results.\n\nHappy Coding!"
+ }
+]
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 000000000000..14c8e18d475d
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,49 @@
+version: 2
+updates:
+ - package-ecosystem: 'github-actions'
+ directory: /
+ schedule:
+ interval: daily
+ labels:
+ - 'no-changelog'
+
+ - package-ecosystem: 'github-actions'
+ directory: .github/actions/build-vsix
+ schedule:
+ interval: daily
+ labels:
+ - 'no-changelog'
+
+ - package-ecosystem: 'github-actions'
+ directory: .github/actions/lint
+ schedule:
+ interval: daily
+ labels:
+ - 'no-changelog'
+
+ - package-ecosystem: 'github-actions'
+ directory: .github/actions/smoke-test
+ schedule:
+ interval: daily
+ labels:
+ - 'no-changelog'
+
+ # Not skipping the news for some Python dependencies in case it's actually useful to communicate to users.
+ - package-ecosystem: 'pip'
+ directory: /
+ schedule:
+ interval: daily
+ ignore:
+ - dependency-name: prospector # Due to Python 2.7 and #14477.
+ - dependency-name: pytest # Due to Python 2.7 and #13776.
+ - dependency-name: py # Due to Python 2.7.
+ - dependency-name: jedi-language-server
+ labels:
+ - 'no-changelog'
+ # Activate when we feel ready to keep up with frequency.
+ # - package-ecosystem: 'npm'
+ # directory: /
+ # schedule:
+ # interval: daily
+ # default_labels:
+ # - "no-changelog"
diff --git a/.github/instructions/learning.instructions.md b/.github/instructions/learning.instructions.md
new file mode 100644
index 000000000000..28b085f486ce
--- /dev/null
+++ b/.github/instructions/learning.instructions.md
@@ -0,0 +1,34 @@
+---
+applyTo: '**'
+description: This document describes how to deal with learnings that you make. (meta instruction)
+---
+
+This document describes how to deal with learnings that you make.
+It is a meta-instruction file.
+
+Structure of learnings:
+
+- Each instruction file has a "Learnings" section.
+- Each learning has a counter that indicates how often that learning was useful (initially 1).
+- Each learning has a 1 sentence description of the learning that is clear and concise.
+
+Example:
+
+```markdown
+## Learnings
+
+- Prefer `const` over `let` whenever possible (1)
+- Avoid `any` type (3)
+```
+
+When the user tells you "learn!", you should:
+
+- extract a learning from the recent conversation
+ _ identify the problem that you created
+ _ identify why it was a problem
+ _ identify how you were told to fix it/how the user fixed it
+ _ generate only one learning (1 sentence) that helps to summarize the insight gained
+- then, add the reflected learning to the "Learnings" section of the most appropriate instruction file
+
+Important: Whenever a learning was really useful, increase the counter!!
+When a learning was not useful and just caused more problems, decrease the counter.
diff --git a/.github/instructions/pytest-json-test-builder.instructions.md b/.github/instructions/pytest-json-test-builder.instructions.md
new file mode 100644
index 000000000000..436bce0c9cd8
--- /dev/null
+++ b/.github/instructions/pytest-json-test-builder.instructions.md
@@ -0,0 +1,126 @@
+---
+applyTo: 'python_files/tests/pytestadapter/test_discovery.py'
+description: 'A guide for adding new tests for pytest discovery and JSON formatting in the test_pytest_collect suite.'
+---
+
+# How to Add New Pytest Discovery Tests
+
+This guide explains how to add new tests for pytest discovery and JSON formatting in the `test_pytest_collect` suite. Follow these steps to ensure your tests are consistent and correct.
+
+---
+
+## 1. Add Your Test File
+
+- Place your new test file/files in the appropriate subfolder under:
+ ```
+ python_files/tests/pytestadapter/.data/
+ ```
+- Organize folders and files to match the structure you want to test. For example, to test nested folders, create the corresponding directory structure.
+- In your test file, mark each test function with a comment:
+ ```python
+ def test_function(): # test_marker--test_function
+ ...
+ ```
+
+**Root Node Matching:**
+
+- The root node in your expected output must match the folder or file you pass to pytest discovery. For example, if you run discovery on a subfolder, the root `"name"`, `"path"`, and `"id_"` in your expected output should be that subfolder, not the parent `.data` folder.
+- Only use `.data` as the root if you are running discovery on the entire `.data` folder.
+
+**Example:**
+If you run:
+
+```python
+helpers.runner([os.fspath(TEST_DATA_PATH / "myfolder"), "--collect-only"])
+```
+
+then your expected output root should be:
+
+```python
+{
+ "name": "myfolder",
+ "path": os.fspath(TEST_DATA_PATH / "myfolder"),
+ "type_": "folder",
+ ...
+}
+```
+
+---
+
+## 2. Update `expected_discovery_test_output.py`
+
+- Open `expected_discovery_test_output.py` in the same test suite.
+- Add a new expected output dictionary for your test file, following the format of existing entries.
+- Use the helper functions and path conventions:
+ - Use `os.fspath()` for all paths.
+ - Use `find_test_line_number("function_name", file_path)` for the `lineno` field.
+ - Use `get_absolute_test_id("relative_path::function_name", file_path)` for `id_` and `runID`.
+ - Always use current path concatenation (e.g., `TEST_DATA_PATH / "your_folder" / "your_file.py"`).
+ - Create new constants as needed to keep the code clean and maintainable.
+
+**Important:**
+
+- Do **not** read the entire `expected_discovery_test_output.py` file if you only need to add or reference a single constant. This file is very large; prefer searching for the relevant section or appending to the end.
+
+**Example:**
+If you run discovery on a subfolder:
+
+```python
+helpers.runner([os.fspath(TEST_DATA_PATH / "myfolder"), "--collect-only"])
+```
+
+then your expected output root should be:
+
+```python
+myfolder_path = TEST_DATA_PATH / "myfolder"
+my_expected_output = {
+ "name": "myfolder",
+ "path": os.fspath(myfolder_path),
+ "type_": "folder",
+ ...
+}
+```
+
+- Add a comment above your dictionary describing the structure, as in the existing examples.
+
+---
+
+## 3. Add Your Test to `test_discovery.py`
+
+- In `test_discovery.py`, add your new test as a parameterized case to the main `test_pytest_collect` function. Do **not** create a standalone test function for new discovery cases.
+- Reference your new expected output constant from `expected_discovery_test_output.py`.
+
+**Example:**
+
+```python
+@pytest.mark.parametrize(
+ ("file", "expected_const"),
+ [
+ ("myfolder", my_expected_output),
+ # ... other cases ...
+ ],
+)
+def test_pytest_collect(file, expected_const):
+ ...
+```
+
+---
+
+## 4. Run and Verify
+
+- Run the test suite to ensure your new test is discovered and passes.
+- If the test fails, check your expected output dictionary for path or structure mismatches.
+
+---
+
+## 5. Tips
+
+- Always use the helper functions for line numbers and IDs.
+- Match the folder/file structure in `.data` to the expected JSON structure.
+- Use comments to document the expected output structure for clarity.
+- Ensure all `"path"` and `"id_"` fields in your expected output match exactly what pytest returns, including absolute paths and root node structure.
+
+---
+
+**Reference:**
+See `expected_discovery_test_output.py` for more examples and formatting. Use search or jump to the end of the file to avoid reading the entire file when possible.
diff --git a/.github/instructions/python-quality-checks.instructions.md b/.github/instructions/python-quality-checks.instructions.md
new file mode 100644
index 000000000000..48f37529dfbc
--- /dev/null
+++ b/.github/instructions/python-quality-checks.instructions.md
@@ -0,0 +1,97 @@
+---
+applyTo: 'python_files/**'
+description: Guide for running and fixing Python quality checks (Ruff and Pyright) that run in CI
+---
+
+# Python Quality Checks — Ruff and Pyright
+
+Run the same Python quality checks that run in CI. All checks target `python_files/` and use config from `python_files/pyproject.toml`.
+
+## Commands
+
+```bash
+npm run check-python # Run both Ruff and Pyright
+npm run check-python:ruff # Linting and formatting only
+npm run check-python:pyright # Type checking only
+```
+
+## Fixing Ruff Errors
+
+**Auto-fix most issues:**
+
+```bash
+cd python_files
+python -m ruff check . --fix
+python -m ruff format
+npm run check-python:ruff # Verify
+```
+
+**Manual fixes:**
+
+- Ruff shows file, line number, rule code (e.g., `F841`), and description
+- Open the file, read the error, fix the code
+- Common: line length (100 char max), import sorting, unused variables
+
+## Fixing Pyright Errors
+
+**Common patterns and fixes:**
+
+- **Undefined variable/import**: Add the missing import
+- **Type mismatch**: Correct the type or add type annotations
+- **Missing return type**: Add `-> ReturnType` to function signatures
+ ```python
+ def my_function() -> str: # Add return type
+ return "result"
+ ```
+
+**Verify:**
+
+```bash
+npm run check-python:pyright
+```
+
+## Configuration
+
+- **Ruff**: Line length 100, Python 3.9+, 40+ rule families (flake8, isort, pyupgrade, etc.)
+- **Pyright**: Version 1.1.308 (or whatever is found in the environment), ignores `lib/` and 15+ legacy files
+- Config: `python_files/pyproject.toml` sections `[tool.ruff]` and `[tool.pyright]`
+
+## Troubleshooting
+
+**"Module not found" in Pyright**: Install dependencies
+
+```bash
+python -m pip install --upgrade -r build/test-requirements.txt
+nox --session install_python_libs
+```
+
+**Import order errors**: Auto-fix with `ruff check . --fix`
+
+**Type errors in ignored files**: Legacy files in `pyproject.toml` ignore list—fix if working on them
+
+## When Writing Tests
+
+**Always format your test files before committing:**
+
+```bash
+cd python_files
+ruff format tests/ # Format all test files
+# or format specific files:
+ruff format tests/unittestadapter/test_utils.py
+```
+
+**Best practice workflow:**
+
+1. Write your test code
+2. Run `ruff format` on the test files
+3. Run the tests to verify they pass
+4. Run `npm run check-python` to catch any remaining issues
+
+This ensures your tests pass both functional checks and quality checks in CI.
+
+## Learnings
+
+- Always run `npm run check-python` before pushing to catch CI failures early (1)
+- Use `ruff check . --fix` to auto-fix most linting issues before manual review (1)
+- Pyright version must match CI (1.1.308) to avoid inconsistent results between local and CI runs (1)
+- Always run `ruff format` on test files after writing them to avoid formatting CI failures (1)
diff --git a/.github/instructions/testing-workflow.instructions.md b/.github/instructions/testing-workflow.instructions.md
new file mode 100644
index 000000000000..844946404328
--- /dev/null
+++ b/.github/instructions/testing-workflow.instructions.md
@@ -0,0 +1,581 @@
+---
+applyTo: '**/test/**'
+---
+
+# AI Testing Workflow Guide: Write, Run, and Fix Tests
+
+This guide provides comprehensive instructions for AI agents on the complete testing workflow: writing tests, running them, diagnosing failures, and fixing issues. Use this guide whenever working with test files or when users request testing tasks.
+
+## Complete Testing Workflow
+
+This guide covers the full testing lifecycle:
+
+1. **📝 Writing Tests** - Create comprehensive test suites
+2. **▶️ Running Tests** - Execute tests using VS Code tools
+3. **🔍 Diagnosing Issues** - Analyze failures and errors
+4. **🛠️ Fixing Problems** - Resolve compilation and runtime issues
+5. **✅ Validation** - Ensure coverage and resilience
+
+### When to Use This Guide
+
+**User Requests Testing:**
+
+- "Write tests for this function"
+- "Run the tests"
+- "Fix the failing tests"
+- "Test this code"
+- "Add test coverage"
+
+**File Context Triggers:**
+
+- Working in `**/test/**` directories
+- Files ending in `.test.ts` or `.unit.test.ts`
+- Test failures or compilation errors
+- Coverage reports or test output analysis
+
+## Test Types
+
+When implementing tests as an AI agent, choose between two main types:
+
+### Unit Tests (`*.unit.test.ts`)
+
+- **Fast isolated testing** - Mock all external dependencies
+- **Use for**: Pure functions, business logic, data transformations
+- **Execute with**: `runTests` tool with specific file patterns
+- **Mock everything** - VS Code APIs automatically mocked via `/src/test/unittests.ts`
+
+### Extension Tests (`*.test.ts`)
+
+- **Full VS Code integration** - Real environment with actual APIs
+- **Use for**: Command registration, UI interactions, extension lifecycle
+- **Execute with**: VS Code launch configurations or `runTests` tool
+- **Slower but comprehensive** - Tests complete user workflows
+
+## 🤖 Agent Tool Usage for Test Execution
+
+### Primary Tool: `runTests`
+
+Use the `runTests` tool to execute tests programmatically rather than terminal commands for better integration and result parsing:
+
+```typescript
+// Run specific test files
+await runTests({
+ files: ['/absolute/path/to/test.unit.test.ts'],
+ mode: 'run',
+});
+
+// Run tests with coverage
+await runTests({
+ files: ['/absolute/path/to/test.unit.test.ts'],
+ mode: 'coverage',
+ coverageFiles: ['/absolute/path/to/source.ts'],
+});
+
+// Run specific test names
+await runTests({
+ files: ['/absolute/path/to/test.unit.test.ts'],
+ testNames: ['should handle edge case', 'should validate input'],
+});
+```
+
+### Compilation Requirements
+
+Before running tests, ensure compilation. Always start compilation with `npm run watch-tests` before test execution to ensure TypeScript files are built. Recompile after making import/export changes before running tests, as stubs won't work if they're applied to old compiled JavaScript that doesn't have the updated imports:
+
+```typescript
+// Start watch mode for auto-compilation
+await run_in_terminal({
+ command: 'npm run watch-tests',
+ isBackground: true,
+ explanation: 'Start test compilation in watch mode',
+});
+
+// Or compile manually
+await run_in_terminal({
+ command: 'npm run compile-tests',
+ isBackground: false,
+ explanation: 'Compile TypeScript test files',
+});
+```
+
+### Alternative: Terminal Execution
+
+For targeted test runs when `runTests` tool is unavailable. Note: When a targeted test run yields 0 tests, first verify the compiled JS exists under `out/test` (rootDir is `src`); absence almost always means the test file sits outside `src` or compilation hasn't run yet:
+
+```typescript
+// Run specific test suite
+await run_in_terminal({
+ command: 'npm run unittest -- --grep "Suite Name"',
+ isBackground: false,
+ explanation: 'Run targeted unit tests',
+});
+```
+
+## 🔍 Diagnosing Test Failures
+
+### Common Failure Patterns
+
+**Compilation Errors:**
+
+```typescript
+// Missing imports
+if (error.includes('Cannot find module')) {
+ await addMissingImports(testFile);
+}
+
+// Type mismatches
+if (error.includes("Type '" && error.includes("' is not assignable"))) {
+ await fixTypeIssues(testFile);
+}
+```
+
+**Runtime Errors:**
+
+```typescript
+// Mock setup issues
+if (error.includes('stub') || error.includes('mock')) {
+ await fixMockConfiguration(testFile);
+}
+
+// Assertion failures
+if (error.includes('AssertionError')) {
+ await analyzeAssertionFailure(error);
+}
+```
+
+### Systematic Failure Analysis
+
+Fix test issues iteratively - run tests, analyze failures, apply fixes, repeat until passing. When unit tests fail with VS Code API errors like `TypeError: X is not a constructor` or `Cannot read properties of undefined (reading 'Y')`, check if VS Code APIs are properly mocked in `/src/test/unittests.ts` - add missing APIs following the existing pattern.
+
+```typescript
+interface TestFailureAnalysis {
+ type: 'compilation' | 'runtime' | 'assertion' | 'timeout';
+ message: string;
+ location: { file: string; line: number; col: number };
+ suggestedFix: string;
+}
+
+function analyzeFailure(failure: TestFailure): TestFailureAnalysis {
+ if (failure.message.includes('Cannot find module')) {
+ return {
+ type: 'compilation',
+ message: failure.message,
+ location: failure.location,
+ suggestedFix: 'Add missing import statement',
+ };
+ }
+ // ... other failure patterns
+}
+```
+
+### Agent Decision Logic for Test Type Selection
+
+**Choose Unit Tests (`*.unit.test.ts`) when analyzing:**
+
+- Functions with clear inputs/outputs and no VS Code API dependencies
+- Data transformation, parsing, or utility functions
+- Business logic that can be isolated with mocks
+- Error handling scenarios with predictable inputs
+
+**Choose Extension Tests (`*.test.ts`) when analyzing:**
+
+- Functions that register VS Code commands or use `vscode.*` APIs
+- UI components, tree views, or command palette interactions
+- File system operations requiring workspace context
+- Extension lifecycle events (activation, deactivation)
+
+**Agent Implementation Pattern:**
+
+```typescript
+function determineTestType(functionCode: string): 'unit' | 'extension' {
+ if (
+ functionCode.includes('vscode.') ||
+ functionCode.includes('commands.register') ||
+ functionCode.includes('window.') ||
+ functionCode.includes('workspace.')
+ ) {
+ return 'extension';
+ }
+ return 'unit';
+}
+```
+
+## 🎯 Step 1: Automated Function Analysis
+
+As an AI agent, analyze the target function systematically:
+
+### Code Analysis Checklist
+
+```typescript
+interface FunctionAnalysis {
+ name: string;
+ inputs: string[]; // Parameter types and names
+ outputs: string; // Return type
+ dependencies: string[]; // External modules/APIs used
+ sideEffects: string[]; // Logging, file system, network calls
+ errorPaths: string[]; // Exception scenarios
+ testType: 'unit' | 'extension';
+}
+```
+
+### Analysis Implementation
+
+1. **Read function source** using `read_file` tool
+2. **Identify imports** - look for `vscode.*`, `child_process`, `fs`, etc.
+3. **Map data flow** - trace inputs through transformations to outputs
+4. **Catalog dependencies** - external calls that need mocking
+5. **Document side effects** - logging, file operations, state changes
+
+### Test Setup Differences
+
+#### Unit Test Setup (\*.unit.test.ts)
+
+```typescript
+// Mock VS Code APIs - handled automatically by unittests.ts
+import * as sinon from 'sinon';
+import * as workspaceApis from '../../common/workspace.apis'; // Wrapper functions
+
+// Stub wrapper functions, not VS Code APIs directly
+// Always mock wrapper functions (e.g., workspaceApis.getConfiguration()) instead of
+// VS Code APIs directly to avoid stubbing issues
+const mockGetConfiguration = sinon.stub(workspaceApis, 'getConfiguration');
+```
+
+#### Extension Test Setup (\*.test.ts)
+
+```typescript
+// Use real VS Code APIs
+import * as vscode from 'vscode';
+
+// Real VS Code APIs available - no mocking needed
+const config = vscode.workspace.getConfiguration('python');
+```
+
+## 🎯 Step 2: Generate Test Coverage Matrix
+
+Based on function analysis, automatically generate comprehensive test scenarios:
+
+### Coverage Matrix Generation
+
+```typescript
+interface TestScenario {
+ category: 'happy-path' | 'edge-case' | 'error-handling' | 'side-effects';
+ description: string;
+ inputs: Record;
+ expectedOutput?: any;
+ expectedSideEffects?: string[];
+ shouldThrow?: boolean;
+}
+```
+
+### Automated Scenario Creation
+
+1. **Happy Path**: Normal execution with typical inputs
+2. **Edge Cases**: Boundary conditions, empty/null inputs, unusual but valid data
+3. **Error Scenarios**: Invalid inputs, dependency failures, exception paths
+4. **Side Effects**: Verify logging calls, file operations, state changes
+
+### Agent Pattern for Scenario Generation
+
+```typescript
+function generateTestScenarios(analysis: FunctionAnalysis): TestScenario[] {
+ const scenarios: TestScenario[] = [];
+
+ // Generate happy path for each input combination
+ scenarios.push(...generateHappyPathScenarios(analysis));
+
+ // Generate edge cases for boundary conditions
+ scenarios.push(...generateEdgeCaseScenarios(analysis));
+
+ // Generate error scenarios for each dependency
+ scenarios.push(...generateErrorScenarios(analysis));
+
+ return scenarios;
+}
+```
+
+## 🗺️ Step 3: Plan Your Test Coverage
+
+### Create a Test Coverage Matrix
+
+#### Main Flows
+
+- ✅ **Happy path scenarios** - normal expected usage
+- ✅ **Alternative paths** - different configuration combinations
+- ✅ **Integration scenarios** - multiple features working together
+
+#### Edge Cases
+
+- 🔸 **Boundary conditions** - empty inputs, missing data
+- 🔸 **Error scenarios** - network failures, permission errors
+- 🔸 **Data validation** - invalid inputs, type mismatches
+
+#### Real-World Scenarios
+
+- ✅ **Fresh install** - clean slate
+- ✅ **Existing user** - migration scenarios
+- ✅ **Power user** - complex configurations
+- 🔸 **Error recovery** - graceful degradation
+
+### Example Test Plan Structure
+
+```markdown
+## Test Categories
+
+### 1. Configuration Migration Tests
+
+- No legacy settings exist
+- Legacy settings already migrated
+- Fresh migration needed
+- Partial migration required
+- Migration failures
+
+### 2. Configuration Source Tests
+
+- Global search paths
+- Workspace search paths
+- Settings precedence
+- Configuration errors
+
+### 3. Path Resolution Tests
+
+- Absolute vs relative paths
+- Workspace folder resolution
+- Path validation and filtering
+
+### 4. Integration Scenarios
+
+- Combined configurations
+- Deduplication logic
+- Error handling flows
+```
+
+## 🔧 Step 4: Set Up Your Test Infrastructure
+
+### Test File Structure
+
+```typescript
+// 1. Imports - group logically
+import assert from 'node:assert';
+import * as sinon from 'sinon';
+import { Uri } from 'vscode';
+import * as logging from '../../../common/logging';
+import * as pathUtils from '../../../common/utils/pathUtils';
+import * as workspaceApis from '../../../common/workspace.apis';
+
+// 2. Function under test
+import { getAllExtraSearchPaths } from '../../../managers/common/nativePythonFinder';
+
+// 3. Mock interfaces
+interface MockWorkspaceConfig {
+ get: sinon.SinonStub;
+ inspect: sinon.SinonStub;
+ update: sinon.SinonStub;
+}
+```
+
+### Mock Setup Strategy
+
+Create minimal mock objects with only required methods and use TypeScript type assertions (e.g., `mockApi as PythonEnvironmentApi`) to satisfy interface requirements instead of implementing all interface methods when only specific methods are needed for the test. Simplify mock setup by only mocking methods actually used in tests and use `as unknown as Type` for TypeScript compatibility.
+
+```typescript
+suite('Function Integration Tests', () => {
+ // 1. Declare all mocks
+ let mockGetConfiguration: sinon.SinonStub;
+ let mockGetWorkspaceFolders: sinon.SinonStub;
+ let mockTraceLog: sinon.SinonStub;
+ let mockTraceError: sinon.SinonStub;
+ let mockTraceWarn: sinon.SinonStub;
+
+ // 2. Mock complex objects
+ let pythonConfig: MockWorkspaceConfig;
+ let envConfig: MockWorkspaceConfig;
+
+ setup(() => {
+ // 3. Initialize all mocks
+ mockGetConfiguration = sinon.stub(workspaceApis, 'getConfiguration');
+ mockGetWorkspaceFolders = sinon.stub(workspaceApis, 'getWorkspaceFolders');
+ mockTraceLog = sinon.stub(logging, 'traceLog');
+ mockTraceError = sinon.stub(logging, 'traceError');
+ mockTraceWarn = sinon.stub(logging, 'traceWarn');
+
+ // 4. Set up default behaviors
+ mockGetWorkspaceFolders.returns(undefined);
+
+ // 5. Create mock configuration objects
+ // When fixing mock environment creation, use null to truly omit
+ // properties rather than undefined
+ pythonConfig = {
+ get: sinon.stub(),
+ inspect: sinon.stub(),
+ update: sinon.stub(),
+ };
+
+ envConfig = {
+ get: sinon.stub(),
+ inspect: sinon.stub(),
+ update: sinon.stub(),
+ };
+ });
+
+ teardown(() => {
+ sinon.restore(); // Always clean up!
+ });
+});
+```
+
+## Step 4: Write Tests Using Mock → Run → Assert Pattern
+
+### The Three-Phase Pattern
+
+#### Phase 1: Mock (Set up the scenario)
+
+```typescript
+test('Description of what this tests', async () => {
+ // Mock → Clear description of the scenario
+ pythonConfig.inspect.withArgs('venvPath').returns({ globalValue: '/path' });
+ envConfig.inspect.withArgs('globalSearchPaths').returns({ globalValue: [] });
+ mockGetWorkspaceFolders.returns([{ uri: Uri.file('/workspace') }]);
+```
+
+#### Phase 2: Run (Execute the function)
+
+```typescript
+// Run
+const result = await getAllExtraSearchPaths();
+```
+
+#### Phase 3: Assert (Verify the behavior)
+
+```typescript
+ // Assert - Use set-based comparison for order-agnostic testing
+ const expected = new Set(['/expected', '/paths']);
+ const actual = new Set(result);
+ assert.strictEqual(actual.size, expected.size, 'Should have correct number of paths');
+ assert.deepStrictEqual(actual, expected, 'Should contain exactly the expected paths');
+
+ // Verify side effects
+ // Use sinon.match() patterns for resilient assertions that don't break on minor output changes
+ assert(mockTraceLog.calledWith(sinon.match(/completion/i)), 'Should log completion');
+});
+```
+
+## Step 6: Make Tests Resilient
+
+### Use Order-Agnostic Comparisons
+
+```typescript
+// ❌ Brittle - depends on order
+assert.deepStrictEqual(result, ['/path1', '/path2', '/path3']);
+
+// ✅ Resilient - order doesn't matter
+const expected = new Set(['/path1', '/path2', '/path3']);
+const actual = new Set(result);
+assert.strictEqual(actual.size, expected.size, 'Should have correct number of paths');
+assert.deepStrictEqual(actual, expected, 'Should contain exactly the expected paths');
+```
+
+### Use Flexible Error Message Testing
+
+```typescript
+// ❌ Brittle - exact text matching
+assert(mockTraceError.calledWith('Error during legacy python settings migration:'));
+
+// ✅ Resilient - pattern matching
+assert(mockTraceError.calledWith(sinon.match.string, sinon.match.instanceOf(Error)), 'Should log migration error');
+
+// ✅ Resilient - key terms with regex
+assert(mockTraceError.calledWith(sinon.match(/migration.*error/i)), 'Should log migration error');
+```
+
+### Handle Complex Mock Scenarios
+
+```typescript
+// For functions that call the same mock multiple times
+envConfig.inspect.withArgs('globalSearchPaths').returns({ globalValue: [] });
+envConfig.inspect
+ .withArgs('globalSearchPaths')
+ .onSecondCall()
+ .returns({
+ globalValue: ['/migrated/paths'],
+ });
+
+// Testing async functions with child processes:
+// Call the function first to get a promise, then use setTimeout to emit mock events,
+// then await the promise - this ensures proper timing of mock setup versus function execution
+
+// Cannot stub internal function calls within the same module after import - stub external
+// dependencies instead (e.g., stub childProcessApis.spawnProcess rather than trying to stub
+// helpers.isUvInstalled when testing helpers.shouldUseUv) because intra-module calls use
+// direct references, not module exports
+```
+
+## 🧪 Step 7: Test Categories and Patterns
+
+### Configuration Tests
+
+- Test different setting combinations
+- Test setting precedence (workspace > user > default)
+- Test configuration errors and recovery
+- Always use dynamic path construction with Node.js `path` module when testing functions that resolve paths against workspace folders to ensure cross-platform compatibility
+
+### Data Flow Tests
+
+- Test how data moves through the system
+- Test transformations (path resolution, filtering)
+- Test state changes (migrations, updates)
+
+### Error Handling Tests
+
+- Test graceful degradation
+- Test error logging
+- Test fallback behaviors
+
+### Integration Tests
+
+- Test multiple features together
+- Test real-world scenarios
+- Test edge case combinations
+
+## 📊 Step 8: Review and Refine
+
+### Test Quality Checklist
+
+- [ ] **Clear naming** - test names describe the scenario and expected outcome
+- [ ] **Good coverage** - main flows, edge cases, error scenarios
+- [ ] **Resilient assertions** - won't break due to minor changes
+- [ ] **Readable structure** - follows Mock → Run → Assert pattern
+- [ ] **Isolated tests** - each test is independent
+- [ ] **Fast execution** - tests run quickly with proper mocking
+
+### Common Anti-Patterns to Avoid
+
+- ❌ Testing implementation details instead of behavior
+- ❌ Brittle assertions that break on cosmetic changes
+- ❌ Order-dependent tests that fail due to processing changes
+- ❌ Tests that don't clean up mocks properly
+- ❌ Overly complex test setup that's hard to understand
+
+## 🔄 Reviewing and Improving Existing Tests
+
+### Quick Review Process
+
+1. **Read test files** - Check structure and mock setup
+2. **Run tests** - Establish baseline functionality
+3. **Apply improvements** - Use patterns below. When reviewing existing tests, focus on behavior rather than implementation details in test names and assertions
+4. **Verify** - Ensure tests still pass
+
+### Common Fixes
+
+- Over-complex mocks → Minimal mocks with only needed methods
+- Brittle assertions → Behavior-focused with error messages
+- Vague test names → Clear scenario descriptions (transform "should return X when Y" into "should [expected behavior] when [scenario context]")
+- Missing structure → Mock → Run → Assert pattern
+- Untestable Node.js APIs → Create proxy abstraction functions (use function overloads to preserve intelligent typing while making functions mockable)
+
+## 🧠 Agent Learnings
+
+- When mocking `testController.createTestItem()` in unit tests, use `typemoq.It.isAny()` for parameters when testing handler behavior (not ID/label generation logic), but consider using specific matchers (e.g., `It.is((id: string) => id.startsWith('_error_'))`) when the actual values being passed are important for correctness - this balances test precision with maintainability (2)
+- Remove unused variables from test code immediately - leftover tracking variables like `validationCallCount` that aren't referenced indicate dead code that should be simplified (1)
+- Use `Uri.file(path).fsPath` for both sides of path comparisons in tests to ensure cross-platform compatibility - Windows converts forward slashes to backslashes automatically (1)
+- When tests fail with "Cannot stub non-existent property", the method likely moved to a different class during refactoring - find the class that owns the method and test that class directly instead of stubbing on the original class (1)
diff --git a/.github/instructions/testing_feature_area.instructions.md b/.github/instructions/testing_feature_area.instructions.md
new file mode 100644
index 000000000000..a4e11523d7c8
--- /dev/null
+++ b/.github/instructions/testing_feature_area.instructions.md
@@ -0,0 +1,263 @@
+---
+applyTo: 'src/client/testing/**'
+---
+
+# Testing feature area — Discovery, Run, Debug, and Results
+
+This document maps the testing support in the extension: discovery, execution (run), debugging, result reporting and how those pieces connect to the codebase. It's written for contributors and agents who need to navigate, modify, or extend test support (both `unittest` and `pytest`).
+
+## Overview
+
+- Purpose: expose Python tests in the VS Code Test Explorer (TestController), support discovery, run, debug, and surface rich results and outputs.
+- Scope: provider-agnostic orchestration + provider-specific adapters, TestController mapping, IPC with Python-side scripts, debug launch integration, and configuration management.
+
+## High-level architecture
+
+- Controller / UI bridge: orchestrates TestController requests and routes them to workspace adapters.
+- Workspace adapter: provider-agnostic coordinator that translates TestController requests to provider adapters and maps payloads back into TestItems/TestRuns.
+- Provider adapters: implement discovery/run/debug for `unittest` and `pytest` by launching Python scripts and wiring named-pipe IPC.
+- Result resolver: translates Python-side JSON/IPCPayloads into TestController updates (start/pass/fail/output/attachments).
+- Debug launcher: prepares debug sessions and coordinates the debugger attach flow with the Python runner.
+
+## Key components (files and responsibilities)
+
+- Entrypoints
+ - `src/client/testing/testController/controller.ts` — `PythonTestController` (main orchestrator).
+ - `src/client/testing/serviceRegistry.ts` — DI/wiring for testing services.
+- Workspace orchestration
+ - `src/client/testing/testController/workspaceTestAdapter.ts` — `WorkspaceTestAdapter` (provider-agnostic entry used by controller).
+- **Project-based testing (multi-project workspaces)**
+ - `src/client/testing/testController/common/testProjectRegistry.ts` — `TestProjectRegistry` (manages project lifecycle, discovery, and nested project handling).
+ - `src/client/testing/testController/common/projectAdapter.ts` — `ProjectAdapter` interface (represents a single Python project with its own test infrastructure).
+ - `src/client/testing/testController/common/projectUtils.ts` — utilities for project ID generation, display names, and shared adapter creation.
+- Provider adapters
+ - Unittest
+ - `src/client/testing/testController/unittest/testDiscoveryAdapter.ts`
+ - `src/client/testing/testController/unittest/testExecutionAdapter.ts`
+ - Pytest
+ - `src/client/testing/testController/pytest/pytestDiscoveryAdapter.ts`
+ - `src/client/testing/testController/pytest/pytestExecutionAdapter.ts`
+- Result resolution and helpers
+ - `src/client/testing/testController/common/resultResolver.ts` — `PythonResultResolver` (maps payload -> TestController updates).
+ - `src/client/testing/testController/common/testItemUtilities.ts` — helpers for TestItem lifecycle.
+ - `src/client/testing/testController/common/types.ts` — `ITestDiscoveryAdapter`, `ITestExecutionAdapter`, `ITestResultResolver`, `ITestDebugLauncher`.
+ - `src/client/testing/testController/common/debugLauncher.ts` — debug session creation helper.
+ - `src/client/testing/testController/common/utils.ts` — named-pipe helpers and command builders (`startDiscoveryNamedPipe`, etc.).
+- Configuration
+ - `src/client/testing/common/testConfigurationManager.ts` — per-workspace test settings.
+ - `src/client/testing/configurationFactory.ts` — configuration service factory.
+- Utilities & glue
+ - `src/client/testing/utils.ts` — assorted helpers used by adapters.
+ - Python-side scripts: `python_files/unittestadapter/*`, `python_files/pytestadapter/*` — discovery/run code executed by adapters.
+
+## Python subprocess runners (what runs inside Python)
+
+The adapters in the extension don't implement test discovery/run logic themselves — they spawn a Python subprocess that runs small helper scripts located under `python_files/` and stream structured events back to the extension over the named-pipe IPC. This is a central part of the feature area; changes here usually require coordinated edits in both the TypeScript adapters and the Python scripts.
+
+- Unittest helpers (folder: `python_files/unittestadapter`)
+
+ - `discovery.py` — performs `unittest` discovery and emits discovery payloads (test suites, cases, locations) on the IPC channel.
+ - `execution.py` / `django_test_runner.py` — run tests for `unittest` and, where applicable, Django test runners; emit run events (start, stdout/stderr, pass, fail, skip, teardown) and attachment info.
+ - `pvsc_utils.py`, `django_handler.py` — utility helpers used by the runners for environment handling and Django-specific wiring.
+ - The adapter TypeScript files (`testDiscoveryAdapter.ts`, `testExecutionAdapter.ts`) construct the command line, start a named-pipe listener, and spawn these Python scripts using the extension's ExecutionFactory (activated interpreter) so the scripts execute inside the user's selected environment.
+
+- Pytest helpers (folder: `python_files/vscode_pytest`)
+
+ - `_common.py` — shared helpers for pytest runner scripts.
+ - `run_pytest_script.py` — the primary pytest runner used for discovery and execution; emits the same structured IPC payloads the extension expects (discovery events and run events).
+ - The `pytest` execution adapter (`pytestExecutionAdapter.ts`) and discovery adapter build the CLI to run `run_pytest_script.py`, start the pipe, and translate incoming payloads via `PythonResultResolver`.
+
+- IPC contract and expectations
+
+ - Adapters rely on a stable JSON payload contract emitted by the Python scripts: identifiers for tests, event types (discovered, collected, started, passed, failed, skipped), timings, error traces, and optional attachments (logs, captured stdout/stderr, file links).
+ - The extension maps these payloads to `TestItem`/`TestRun` updates via `PythonResultResolver` (`src/client/testing/testController/common/resultResolver.ts`). If you change payload shape, update the resolver and tests concurrently.
+
+- How the subprocess is started
+ - Execution adapters use the extension's `ExecutionFactory` (preferred) to get an activated interpreter and then spawn a child process that runs the helper script. The adapter will set up environment variables and command-line args (including the pipe name / run-id) so the Python runner knows where to send events and how to behave (discovery vs run vs debug).
+ - For debug sessions a debug-specific entry argument/port is passed and `common/debugLauncher.ts` coordinates starting a VS Code debug session that will attach to the Python process.
+
+## Core functionality (what to change where)
+
+- Discovery
+ - Entry: `WorkspaceTestAdapter.discoverTests` → provider discovery adapter. Adapter starts a named-pipe listener, spawns the discovery script in an activated interpreter, forwards discovery events to `PythonResultResolver` which creates/updates TestItems.
+ - Files: `workspaceTestAdapter.ts`, `*DiscoveryAdapter.ts`, `resultResolver.ts`, `testItemUtilities.ts`.
+- Run / Execution
+ - Entry: `WorkspaceTestAdapter.executeTests` → provider execution adapter. Adapter spawns runner in an activated env, runner streams run events to the pipe, `PythonResultResolver` updates a `TestRun` with start/pass/fail and attachments.
+ - Files: `workspaceTestAdapter.ts`, `*ExecutionAdapter.ts`, `resultResolver.ts`.
+- Debugging
+ - Flow: debug request flows like a run but goes through `debugLauncher.ts` to create a VS Code debug session with prepared ports/pipes. The Python runner coordinates attach/continue with the debugger.
+ - Files: `*ExecutionAdapter.ts`, `common/debugLauncher.ts`, `common/types.ts`.
+- Result reporting
+ - `resultResolver.ts` is the canonical place to change how JSON payloads map to TestController constructs (messages, durations, error traces, attachments).
+
+## Typical workflows (short)
+
+- Full discovery
+
+ 1. `PythonTestController` triggers discovery -> `WorkspaceTestAdapter.discoverTests`.
+ 2. Provider discovery adapter starts pipe and launches Python discovery script.
+ 3. Discovery events -> `PythonResultResolver` -> TestController tree updated.
+
+- Run tests
+
+ 1. Controller collects TestItems -> creates `TestRun`.
+ 2. `WorkspaceTestAdapter.executeTests` delegates to execution adapter which launches the runner.
+ 3. Runner events arrive via pipe -> `PythonResultResolver` updates `TestRun`.
+ 4. On process exit the run is finalized.
+
+- Debug a test
+ 1. Debug request flows to execution adapter.
+ 2. Adapter prepares ports and calls `debugLauncher` to start a VS Code debug session with the run ID.
+ 3. Runner coordinates with the debugger; `PythonResultResolver` still receives and applies run events.
+
+## Tests and examples to inspect
+
+- Unit/integration tests for adapters and orchestration under `src/test/` (examples):
+ - `src/test/testing/common/testingAdapter.test.ts`
+ - `src/test/testing/testController/workspaceTestAdapter.unit.test.ts`
+ - `src/test/testing/testController/unittest/testExecutionAdapter.unit.test.ts`
+ - Adapter tests demonstrate expected telemetry, debug-launch payloads and result resolution.
+
+## History & evolution (brief)
+
+- Migration to TestController API: the code organizes around VS Code TestController, mapping legacy adapter behaviour into TestItems/TestRuns.
+- Named-pipe IPC: discovery/run use named-pipe IPC to stream events from Python runner scripts (`python_files/*`) which enables richer, incremental updates and debug coordination.
+- Environment activation: adapters prefer the extension ExecutionFactory (activated interpreter) to run discovery and test scripts.
+
+## Pointers for contributors (practical)
+
+- To extend discovery output: update the Python discovery script in `python_files/*` and `resultResolver.ts` to parse new payload fields.
+- To change run behaviour (args/env/timouts): update the provider execution adapter (`*ExecutionAdapter.ts`) and add/update tests under `src/test/`.
+- To change debug flow: edit `common/debugLauncher.ts` and adapters' debug paths; update tests that assert launch argument shapes.
+
+## Django support (how it works)
+
+- The extension supports Django projects by delegating discovery and execution to Django-aware Python helpers under `python_files/unittestadapter`.
+ - `python_files/unittestadapter/django_handler.py` contains helpers that invoke `manage.py` for discovery or execute Django test runners inside the project context.
+ - `python_files/unittestadapter/django_test_runner.py` provides `CustomDiscoveryTestRunner` and `CustomExecutionTestRunner` which integrate with the extension by using the same IPC contract (they use `UnittestTestResult` and `send_post_request` to emit discovery/run payloads).
+- How adapters pass Django configuration:
+ - Execution adapters set environment variables (e.g. `MANAGE_PY_PATH`) and modify `PYTHONPATH` so Django code and the custom test runner are importable inside the spawned subprocess.
+ - For discovery the adapter may run the discovery helper which calls `manage.py test` with a custom test runner that emits discovery payloads instead of executing tests.
+- Practical notes for contributors:
+ - Changes to Django discovery/execution often require edits in both `django_test_runner.py`/`django_handler.py` and the TypeScript adapters (`testDiscoveryAdapter.ts` / `testExecutionAdapter.ts`).
+ - The Django test runner expects `TEST_RUN_PIPE` environment variable to be present to send IPC events (see `django_test_runner.py`).
+
+## Settings referenced by this feature area
+
+- The extension exposes several `python.testing.*` settings used by adapters and configuration code (declared in `package.json`):
+ - `python.testing.pytestEnabled`, `python.testing.unittestEnabled` — enable/disable frameworks.
+ - `python.testing.pytestPath`, `python.testing.pytestArgs`, `python.testing.unittestArgs` — command path and CLI arguments used when spawning helper scripts.
+ - `python.testing.cwd` — optional working directory used when running discovery/runs.
+ - `python.testing.autoTestDiscoverOnSaveEnabled`, `python.testing.autoTestDiscoverOnSavePattern` — control automatic discovery on save.
+ - `python.testing.debugPort` — default port used for debug runs.
+ - `python.testing.promptToConfigure` — whether to prompt users to configure tests when potential test folders are found.
+- Where to look in the code:
+ - Settings are consumed by `src/client/testing/common/testConfigurationManager.ts`, `src/client/testing/configurationFactory.ts`, and adapters under `src/client/testing/testController/*` which read settings to build CLI args and env for subprocesses.
+ - The setting definitions and descriptions are in `package.json` and localized strings in `package.nls.json`.
+
+## Project-based testing (multi-project workspaces)
+
+Project-based testing enables multi-project workspace support where each Python project gets its own test tree root with its own Python environment.
+
+### Architecture
+
+- **TestProjectRegistry** (`testProjectRegistry.ts`): Central registry that:
+
+ - Discovers Python projects via the Python Environments API
+ - Creates and manages `ProjectAdapter` instances per workspace
+ - Computes nested project relationships and configures ignore lists
+ - Falls back to "legacy" single-adapter mode when API unavailable
+
+- **ProjectAdapter** (`projectAdapter.ts`): Interface representing a single project with:
+ - Project identity (ID, name, URI from Python Environments API)
+ - Python environment with execution details
+ - Test framework adapters (discovery/execution)
+ - Nested project ignore paths (for parent projects)
+
+### How it works
+
+1. **Activation**: When the extension activates, `PythonTestController` checks if the Python Environments API is available.
+2. **Project discovery**: `TestProjectRegistry.discoverAndRegisterProjects()` queries the API for all Python projects in each workspace.
+3. **Nested handling**: `configureNestedProjectIgnores()` identifies child projects and adds their paths to parent projects' ignore lists.
+4. **Test discovery**: For each project, the controller calls `project.discoveryAdapter.discoverTests()` with the project's URI. The adapter sets `PROJECT_ROOT_PATH` environment variable for the Python runner.
+5. **Python side**:
+ - For pytest: `get_test_root_path()` in `vscode_pytest/__init__.py` returns `PROJECT_ROOT_PATH` (if set) or falls back to `cwd`.
+ - For unittest: `discovery.py` uses `PROJECT_ROOT_PATH` as `top_level_dir` and `project_root_path` to root the test tree at the project directory.
+6. **Test tree**: Each project gets its own root node in the Test Explorer, with test IDs scoped by project ID using the `@@vsc@@` separator (defined in `projectUtils.ts`).
+
+### Nested project handling: pytest vs unittest
+
+**pytest** supports the `--ignore` flag to exclude paths during test collection. When nested projects are detected, parent projects automatically receive `--ignore` flags for child project paths. This ensures each test appears under exactly one project in the test tree.
+
+**unittest** does not support path exclusion during `discover()`. Therefore, tests in nested project directories may appear under multiple project roots (both the parent and the child project). This is **expected behavior** for unittest:
+
+- Each project discovers and displays all tests it finds within its directory structure
+- There is no deduplication or collision detection
+- Users may see the same test file under multiple project roots if their project structure has nesting
+
+This approach was chosen because:
+
+1. unittest's `TestLoader.discover()` has no built-in path exclusion mechanism
+2. Implementing custom exclusion would add significant complexity with minimal benefit
+3. The existing approach is transparent and predictable - each project shows what it finds
+
+### Empty projects and root nodes
+
+If a project discovers zero tests, its root node will still appear in the Test Explorer as an empty folder. This ensures consistent behavior and makes it clear which projects were discovered, even if they have no tests yet.
+
+### Logging prefix
+
+All project-based testing logs use the `[test-by-project]` prefix for easy filtering in the output channel.
+
+### Key files
+
+- Python side:
+ - `python_files/vscode_pytest/__init__.py` — `get_test_root_path()` function and `PROJECT_ROOT_PATH` environment variable for pytest.
+ - `python_files/unittestadapter/discovery.py` — `discover_tests()` with `project_root_path` parameter and `PROJECT_ROOT_PATH` handling for unittest discovery.
+ - `python_files/unittestadapter/execution.py` — `run_tests()` with `project_root_path` parameter and `PROJECT_ROOT_PATH` handling for unittest execution.
+- TypeScript: `testProjectRegistry.ts`, `projectAdapter.ts`, `projectUtils.ts`, and the discovery/execution adapters.
+
+### Tests
+
+- `src/test/testing/testController/common/testProjectRegistry.unit.test.ts` — TestProjectRegistry tests
+- `src/test/testing/testController/common/projectUtils.unit.test.ts` — Project utility function tests
+- `python_files/tests/pytestadapter/test_discovery.py` — pytest PROJECT_ROOT_PATH tests (see `test_project_root_path_env_var()` and `test_symlink_with_project_root_path()`)
+- `python_files/tests/unittestadapter/test_discovery.py` — unittest `project_root_path` / PROJECT_ROOT_PATH discovery tests
+- `python_files/tests/unittestadapter/test_execution.py` — unittest `project_root_path` / PROJECT_ROOT_PATH execution tests
+- `src/test/testing/testController/unittest/testDiscoveryAdapter.unit.test.ts` — unittest discovery adapter PROJECT_ROOT_PATH tests
+- `src/test/testing/testController/unittest/testExecutionAdapter.unit.test.ts` — unittest execution adapter PROJECT_ROOT_PATH tests
+
+## Coverage support (how it works)
+
+- Coverage is supported by running the Python helper scripts with coverage enabled and then collecting a coverage payload from the runner.
+ - Pytest-side coverage logic lives in `python_files/vscode_pytest/__init__.py` (checks `COVERAGE_ENABLED`, imports `coverage`, computes per-file metrics and emits a `CoveragePayloadDict`).
+ - Unittest adapters enable coverage by setting environment variable(s) (e.g. `COVERAGE_ENABLED`) when launching the subprocess; adapters and `resultResolver.ts` handle the coverage profile kind (`TestRunProfileKind.Coverage`).
+- Flow summary:
+ 1. User starts a Coverage run via Test Explorer (profile kind `Coverage`).
+ 2. Controller/adapters set `COVERAGE_ENABLED` (or equivalent) in the subprocess env and invoke the runner script.
+ 3. The Python runner collects coverage (using `coverage` or `pytest-cov`), builds a file-level coverage map, and sends a coverage payload back over the IPC.
+ 4. `PythonResultResolver` (`src/client/testing/testController/common/resultResolver.ts`) receives the coverage payload and stores `detailedCoverageMap` used by the TestController profile to show file-level coverage details.
+- Tests that exercise coverage flows are under `src/test/testing/*` and `python_files/tests/*` (see `testingAdapter.test.ts` and adapter unit tests that assert `COVERAGE_ENABLED` is set appropriately).
+
+## Interaction with the VS Code API
+
+- TestController API
+ - The feature area is built on VS Code's TestController/TestItem/TestRun APIs (`vscode.tests.createTestController` / `tests.createTestController` in the code). The controller creates a `TestController` in `src/client/testing/testController/controller.ts` and synchronizes `TestItem` trees with discovery payloads.
+ - `PythonResultResolver` maps incoming JSON events to VS Code API calls: `testRun.appendOutput`, `testRun.passed/failed/skipped`, `testRun.end`, and `TestItem` updates (labels, locations, children).
+- Debug API
+ - Debug runs use the Debug API to start an attach/launch session. The debug launcher implementation is in `src/client/testing/testController/common/debugLauncher.ts` which constructs a debug configuration and calls the VS Code debug API to start a session (e.g. `vscode.debug.startDebugging`).
+ - Debug adapter/resolver code in the extension's debugger modules may also be used when attaching to Django or test subprocesses.
+- Commands and configuration
+ - The Test Controller wires commands that appear in the Test Explorer and editor context menus (see `package.json` contributes `commands`) and listens to configuration changes filtered by `python.testing` in `src/client/testing/main.ts`.
+- The "Copy Test ID" command (`python.copyTestId`) can be accessed from both the Test Explorer context menu (`testing/item/context`) and the editor gutter icon context menu (`testing/item/gutter`). This command copies test identifiers to the clipboard in the appropriate format for the active test framework (pytest path format or unittest module.class.method format).
+- Execution factory & activated environments
+ - Adapters use the extension `ExecutionFactory` to spawn subprocesses in an activated interpreter (so the user's venv/conda is used). This involves the extension's internal environment execution APIs and sometimes `envExt` helpers when the external environment extension is present.
+
+## Learnings
+
+- Never await `showErrorMessage()` calls in test execution adapters as it blocks the test UI thread and freezes the Test Explorer (1)
+- VS Code test-related context menus are contributed to using both `testing/item/context` and `testing/item/gutter` menu locations in package.json for full coverage (1)
+
+```
+
+```
diff --git a/.github/lock.yml b/.github/lock.yml
deleted file mode 100644
index 16fbb5233be9..000000000000
--- a/.github/lock.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-daysUntilLock: 7
-lockComment: false
diff --git a/.github/prompts/extract-impl-instructions.prompt.md b/.github/prompts/extract-impl-instructions.prompt.md
new file mode 100644
index 000000000000..c2fb08b443c7
--- /dev/null
+++ b/.github/prompts/extract-impl-instructions.prompt.md
@@ -0,0 +1,79 @@
+---
+mode: edit
+---
+
+Analyze the specified part of the VS Code Python Extension codebase to generate or update implementation instructions in `.github/instructions/.instructions.md`.
+
+## Task
+
+Create concise developer guidance focused on:
+
+### Implementation Essentials
+
+- **Core patterns**: How this component is typically implemented and extended
+- **Key interfaces**: Essential classes, services, and APIs with usage examples
+- **Integration points**: How this component interacts with other extension parts
+- **Common tasks**: Typical development scenarios with step-by-step guidance
+
+### Content Structure
+
+````markdown
+---
+description: 'Implementation guide for the part of the Python Extension'
+---
+
+# Implementation Guide
+
+## Overview
+
+Brief description of the component's purpose and role in VS Code Python Extension.
+
+## Key Concepts
+
+- Main abstractions and their responsibilities
+- Important interfaces and base classes
+
+## Common Implementation Patterns
+
+### Pattern 1: [Specific Use Case]
+
+```typescript
+// Code example showing typical implementation
+```
+````
+
+### Pattern 2: [Another Use Case]
+
+```typescript
+// Another practical example
+```
+
+## Integration Points
+
+- How this component connects to other VS Code Python Extension systems
+- Required services and dependencies
+- Extension points and contribution models
+
+## Essential APIs
+
+- Key methods and interfaces developers need
+- Common parameters and return types
+
+## Gotchas and Best Practices
+
+- Non-obvious behaviors to watch for
+- Performance considerations
+- Common mistakes to avoid
+
+```
+
+## Guidelines
+- **Be specific**: Use actual class names, method signatures, and file paths
+- **Show examples**: Include working code snippets from the codebase
+- **Target implementation**: Focus on how to build with/extend this component
+- **Keep it actionable**: Every section should help developers accomplish tasks
+
+Source conventions from existing `.github/instructions/*.instructions.md`, `CONTRIBUTING.md`, and codebase patterns.
+
+If `.github/instructions/.instructions.md` exists, intelligently merge new insights with existing content.
+```
diff --git a/.github/prompts/extract-usage-instructions.prompt.md b/.github/prompts/extract-usage-instructions.prompt.md
new file mode 100644
index 000000000000..ea48f162a220
--- /dev/null
+++ b/.github/prompts/extract-usage-instructions.prompt.md
@@ -0,0 +1,30 @@
+---
+mode: edit
+---
+
+Analyze the user requested part of the codebase (use a suitable ) to generate or update `.github/instructions/.instructions.md` for guiding developers and AI coding agents.
+
+Focus on practical usage patterns and essential knowledge:
+
+- How to use, extend, or integrate with this code area
+- Key architectural patterns and conventions specific to this area
+- Common implementation patterns with code examples
+- Integration points and typical interaction patterns with other components
+- Essential gotchas and non-obvious behaviors
+
+Source existing conventions from `.github/instructions/*.instructions.md`, `CONTRIBUTING.md`, and `README.md`.
+
+Guidelines:
+
+- Write concise, actionable instructions using markdown structure
+- Document discoverable patterns with concrete examples
+- If `.github/instructions/.instructions.md` exists, merge intelligently
+- Target developers who need to work with or extend this code area
+
+Update `.github/instructions/.instructions.md` with header:
+
+```
+---
+description: "How to work with the part of the codebase"
+---
+```
diff --git a/.github/release.yml b/.github/release.yml
new file mode 100644
index 000000000000..0058580e92e0
--- /dev/null
+++ b/.github/release.yml
@@ -0,0 +1,19 @@
+changelog:
+ exclude:
+ labels:
+ - 'no-changelog'
+ authors:
+ - 'dependabot'
+
+ categories:
+ - title: Enhancements
+ labels:
+ - 'feature-request'
+
+ - title: Bug Fixes
+ labels:
+ - 'bug'
+
+ - title: Code Health
+ labels:
+ - 'debt'
diff --git a/.github/release_plan.md b/.github/release_plan.md
index 4ab57dbd9e1a..091ed559825b 100644
--- a/.github/release_plan.md
+++ b/.github/release_plan.md
@@ -1,91 +1,138 @@
-# Prerequisites
-
-- Python 3.7 and higher
-- run `python3 -m pip install --user -r news/requirements.txt`
-
-# Release candidate (Monday, XXX XX)
-
-- [ ] Announce the code freeze (not just to team but also to debugger and language server)
-- [ ] Update master for the release
- - [ ] Create a branch against `master` for a pull request
- - [ ] Change the version in [`package.json`](https://github.com/Microsoft/vscode-python/blob/master/package.json) from a `-dev` suffix to `-rc` (🤖)
- - [ ] Run `npm install` to make sure [`package-lock.json`](https://github.com/Microsoft/vscode-python/blob/master/package.json) is up-to-date (🤖)
- - [ ] Extension will pick up latest version of `debugpy`. If you need to pin to a particular version see `install_debugpy.py`.
- - [ ] Update `languageServerVersion` in `package.json` to point to the latest version of the [Language Server](https://github.com/Microsoft/python-language-server).
- - [ ] Update [`CHANGELOG.md`](https://github.com/Microsoft/vscode-python/blob/master/CHANGELOG.md) (🤖)
- - [ ] Run [`news`](https://github.com/Microsoft/vscode-python/tree/master/news) (typically `python news --final --update CHANGELOG.md | code-insiders -`)
- - [ ] Copy over the "Thanks" section from the previous release
- - [ ] Make sure the "Thanks" section is up-to-date (e.g. compare to versions in requirements.json)
- - [ ] Touch up news entries (e.g. add missing periods)
- - [ ] Check the Markdown rendering to make sure everything looks good
- - [ ] Add any relevant news entries for `debugpy` and the language server if they were updated
- - [ ] Update [`ThirdPartyNotices-Distribution.txt`](https://github.com/Microsoft/vscode-python/blob/master/ThirdPartyNotices-Distribution.txt) by using https://tools.opensource.microsoft.com/notice (see team notes)
- - [ ] Update [`ThirdPartyNotices-Repository.txt`](https://github.com/Microsoft/vscode-python/blob/master/ThirdPartyNotices-Repository.txt) as appropriate
- - [ ] Create a pull request against `master` (🤖)
- - [ ] Merge pull request into `master`
-- [ ] Update the [`release` branch](https://github.com/microsoft/vscode-python/branches)
- - [ ] Delete the `release` branch in the repo
- - [ ] Create a new `release` branch from `master`
- - (alternately, force-push the master branch to the GitHub "release" branch)
- - [ ] (if necessary) Request that the branch be set anew as "protected"
-- [ ] Update master post-release (🤖)
- - [ ] Bump the version number to the next monthly ("YYYY.M.0-dev") release in the `master` branch
- - [ ] `package.json`
- - [ ] `package-lock.json`
- - [ ] Create a pull request against `master`
- - [ ] Merge pull request into `master`
-- [ ] Announce the code freeze is over
-- [ ] Update [Component Governance](https://dev.azure.com/ms/vscode-python/_componentGovernance) (Click on "microsoft/vscode-python" on that page)
- - [ ] Provide details for any automatically detected npm dependencies
- - [ ] Manually add any repository dependencies
-- [ ] GDPR bookkeeping (@brettcannon) (🤖; see team notes)
-- [ ] Open appropriate [documentation issues](https://github.com/microsoft/vscode-docs/issues?q=is%3Aissue+is%3Aopen+label%3Apython)
- - new features
- - settings changes
- - etc. (ask the team)
-- [ ] Schedule a bug bash
-- [ ] Begin drafting a [blog](http://aka.ms/pythonblog) post
-- [ ] Ask CTI to test the release candidate
-
-# Final (Monday, XXX XX)
-
-## Preparation
-
-- [ ] Make sure the [appropriate pull requests](https://github.com/microsoft/vscode-docs/pulls) for the [documentation](https://code.visualstudio.com/docs/python/python-tutorial) -- including the [WOW](https://code.visualstudio.com/docs/languages/python) page -- are ready
-- [ ] final updates to the `release` branch
- - [ ] Create a branch against `release` for a pull request
- - [ ] Update the version in [`package.json`](https://github.com/Microsoft/vscode-python/blob/master/package.json) (🤖)
- - [ ] Run `npm install` to make sure [`package-lock.json`](https://github.com/Microsoft/vscode-python/blob/master/package.json) is up-to-date (the only update should be the version number if `package-lock.json` has been kept up-to-date) (🤖)
- - [ ] Update [`CHANGELOG.md`](https://github.com/Microsoft/vscode-python/blob/master/CHANGELOG.md) (🤖)
- - [ ] Update version and date for the release section
- - [ ] Run [`news`](https://github.com/Microsoft/vscode-python/tree/master/news) and copy-and-paste new entries (typically `python news --final | code-insiders -`; quite possibly nothing new to add)
- - [ ] Update [`ThirdPartyNotices-Distribution.txt`](https://github.com/Microsoft/vscode-python/blob/master/ThirdPartyNotices-Distribution.txt) by using https://tools.opensource.microsoft.com/notice (🤖; see team notes)
- - [ ] Update [`ThirdPartyNotices-Repository.txt`](https://github.com/Microsoft/vscode-python/blob/master/ThirdPartyNotices-Repository.txt) manually if necessary
- - [ ] Create pull request against `release` (🤖)
- - [ ] Merge pull request into `release`
-- [ ] Make sure component governance is happy
-
-## Release
-
-- [ ] Publish the release via Azure DevOps
- - [ ] Make sure [CI](https://github.com/Microsoft/vscode-python/blob/master/CONTRIBUTING.md) is passing
- - [ ] Make sure the "Upload" stage on the release page succeeded
- - [ ] Make sure no extraneous files are being included in the `.vsix` file (make sure to check for hidden files)
- - [ ] Deploy the "Publish" stage
-- [ ] Create a [GitHub release](https://github.com/microsoft/vscode-python/releases)
- - [ ] Have tag match the released version
- - [ ] Copy the changelog entry for the release as the description
-- [ ] Publish [documentation changes](https://github.com/Microsoft/vscode-docs/pulls?q=is%3Apr+is%3Aopen+label%3Apython)
-- [ ] Publish the [blog](http://aka.ms/pythonblog) post
-- [ ] Determine if a hotfix is needed
-- [ ] Merge `release` back into `master` (🤖)
-
-## Clean up after _this_ release
-
-- [ ] Go through [`info needed` issues](https://github.com/Microsoft/vscode-python/issues?q=is%3Aopen+label%3A%22info+needed%22+-label%3A%22data+science%22+sort%3Aupdated-asc) and close any that have no activity for over a month (🤖)
-- [ ] GDPR bookkeeping (🤖)
+### General Notes
+All dates should align with VS Code's [iteration](https://github.com/microsoft/vscode/labels/iteration-plan) and [endgame](https://github.com/microsoft/vscode/labels/endgame-plan) plans.
+
+Feature freeze is Monday @ 17:00 America/Vancouver, XXX XX. At that point, commits to `main` should only be in response to bugs found during endgame testing until the release candidate is ready.
+
+
+ Release Primary and Secondary Assignments for the 2025 Calendar Year
+
+| Month and version number | Primary | Secondary |
+|------------|----------|-----------|
+| January v2025.0.0 | Eleanor | Karthik |
+| February v2025.2.0 | Anthony | Eleanor |
+| March v2025.4.0 | Karthik | Anthony |
+| April v2025.6.0 | Eleanor | Karthik |
+| May v2025.8.0 | Anthony | Eleanor |
+| June v2025.10.0 | Karthik | Anthony |
+| July v2025.12.0 | Eleanor | Karthik |
+| August v2025.14.0 | Anthony | Eleanor |
+| September v2025.16.0 | Karthik | Anthony |
+| October v2025.18.0 | Eleanor | Karthik |
+| November v2025.20.0 | Anthony | Eleanor |
+| December v2025.22.0 | Karthik | Anthony |
+
+
+
+
+# Release candidate (Thursday, XXX XX)
+NOTE: This Thursday occurs during TESTING week. Branching should be done during this week to freeze the release with only the correct changes. Any last minute fixes go in as candidates into the release branch and will require team approval.
+
+Other:
+NOTE: Third Party Notices are automatically added by our build pipelines using https://tools.opensource.microsoft.com/notice.
+NOTE: the number of this release is in the issue title and can be substituted in wherever you see [YYYY.minor].
+
+
+### Step 1:
+##### Bump the version of `main` to be a release candidate (also updating third party notices, and package-lock.json).❄️ (steps with ❄️ will dictate this step happens while main is frozen 🥶)
+
+- [ ] checkout to `main` on your local machine and run `git fetch` to ensure your local is up to date with the remote repo.
+- [ ] Create a new branch called **`bump-release-[YYYY.minor]`**.
+- [ ] Update `pet`:
+ - [ ] Go to the [pet](https://github.com/microsoft/python-environment-tools) repo and check `main` and latest `release/*` branch. If there are new changes in `main` then create a branch called `release/YYYY.minor` (matching python extension release `major.minor`).
+ - [ ] Update `build\azure-pipeline.stable.yml` to point to the latest `release/YYYY.minor` for `python-environment-tools`.
+- [ ] Change the version in `package.json` to the next **even** number. (🤖)
+- [ ] Run `npm install` to make sure `package-lock.json` is up-to-date _(you should now see changes to the `package.json` and `package-lock.json` at this point which update the version number **only**)_. (🤖)
+- [ ] Update `ThirdPartyNotices-Repository.txt` as appropriate. You can check by looking at the [commit history](https://github.com/microsoft/vscode-python/commits/main) and scrolling through to see if there's anything listed there which might have pulled in some code directly into the repository from somewhere else. If you are still unsure you can check with the team.
+- [ ] Create a PR from your branch **`bump-release-[YYYY.minor]`** to `main`. Add the `"no change-log"` tag to the PR so it does not show up on the release notes before merging it.
+
+NOTE: this PR will fail the test in our internal release pipeline called `VS Code (pre-release)` because the version specified in `main` is (temporarily) an invalid pre-release version. This is expected as this will be resolved below.
+
+
+### Step 2: Creating your release branch ❄️
+- [ ] Create a release branch by creating a new branch called **`release/YYYY.minor`** branch from `main`. This branch is now the candidate for our release which will be the base from which we will release.
+
+NOTE: If there are release branches that are two versions old you can delete them at this time.
+
+### Step 3 Create a draft GitHub release for the release notes (🤖) ❄️
+
+- [ ] Create a new [GitHub release](https://github.com/microsoft/vscode-python/releases/new).
+- [ ] Specify a new tag called `YYYY.minor.0`.
+- [ ] Have the `target` for the github release be your release branch called **`release/YYYY.minor`**.
+- [ ] Create the release notes by specifying the previous tag for the last stable release and click `Generate release notes`. Quickly check that it only contain notes from what is new in this release.
+- [ ] Click `Save draft`.
+
+### Step 4: Return `main` to dev and unfreeze (❄️ ➡ 💧)
+NOTE: The purpose of this step is ensuring that main always is on a dev version number for every night's 🌃 pre-release. Therefore it is imperative that you do this directly after the previous steps to reset the version in main to a dev version **before** a pre-release goes out.
+- [ ] Create a branch called **`bump-dev-version-YYYY.[minor+1]`**.
+- [ ] Bump the minor version number in the `package.json` to the next `YYYY.[minor+1]` which will be an odd number, and add `-dev`.(🤖)
+- [ ] Run `npm install` to make sure `package-lock.json` is up-to-date _(you should now see changes to the `package.json` and `package-lock.json` only relating to the new version number)_ . (🤖)
+- [ ] Create a PR from this branch against `main` and merge it.
+
+NOTE: this PR should make all CI relating to `main` be passing again (such as the failures stemming from step 1).
+
+### Step 5: Notifications and Checks on External Release Factors
+- [ ] Check [Component Governance](https://dev.azure.com/monacotools/Monaco/_componentGovernance/192726?_a=alerts&typeId=11825783&alerts-view-option=active) to make sure there are no active alerts.
+- [ ] Manually add/fix any 3rd-party licenses as appropriate based on what the internal build pipeline detects.
+- [ ] Open appropriate [documentation issues](https://github.com/microsoft/vscode-docs/issues?q=is%3Aissue+is%3Aopen+label%3Apython).
+- [ ] Contact the PM team to begin drafting a blog post.
+- [ ] Announce to the development team that `main` is open again.
+
+
+# Release (Wednesday, XXX XX)
+
+### Step 6: Take the release branch from a candidate to the finalized release
+- [ ] Make sure the [appropriate pull requests](https://github.com/microsoft/vscode-docs/pulls) for the [documentation](https://code.visualstudio.com/docs/python/python-tutorial) -- including the [WOW](https://code.visualstudio.com/docs/languages/python) page -- are ready.
+- [ ] Check to make sure any final updates to the **`release/YYYY.minor`** branch have been merged.
+
+### Step 7: Execute the Release
+- [ ] Make sure CI is passing for **`release/YYYY.minor`** release branch (🤖).
+- [ ] Run the [CD](https://dev.azure.com/monacotools/Monaco/_build?definitionId=299) pipeline on the **`release/YYYY.minor`** branch.
+ - [ ] Click `run pipeline`.
+ - [ ] for `branch/tag` select the release branch which is **`release/YYYY.minor`**.
+ - NOTE: Please opt to release the python extension close to when VS Code is released to align when release notes go out. When we bump the VS Code engine number, our extension will not go out to stable until the VS Code stable release but this only occurs when we bump the engine number.
+- [ ] 🧍🧍 Get approval on the release on the [CD](https://dev.azure.com/monacotools/Monaco/_build?definitionId=299).
+- [ ] Click "approve" in the publish step of [CD](https://dev.azure.com/monacotools/Monaco/_build?definitionId=299) to publish the release to the marketplace. 🎉
+- [ ] Take the Github release out of draft.
+- [ ] Publish documentation changes.
+- [ ] Contact the PM team to publish the blog post.
+- [ ] Determine if a hotfix is needed.
+- [ ] Merge the release branch **`release/YYYY.minor`** back into `main`. (This step is only required if changes were merged into the release branch. If the only change made on the release branch is the version, this is not necessary. Overall you need to ensure you DO NOT overwrite the version on the `main` branch.)
+
+
+## Steps for Point Release (if necessary)
+- [ ] checkout to `main` on your local machine and run `git fetch` to ensure your local is up to date with the remote repo.
+- [ ] checkout to the `release/YYY.minor` and check to make sure all necessary changes for the point release have been cherry-picked into the release branch. If not, contact the owner of the changes to do so.
+- [ ] Create a branch against **`release/YYYY.minor`** called **`release-[YYYY.minor.point]`**.
+- [ ] Bump the point version number in the `package.json` to the next `YYYY.minor.point`
+- [ ] Run `npm install` to make sure `package-lock.json` is up-to-date _(you should now see changes to the `package.json` and `package-lock.json` only relating to the new version number)_ . (🤖)
+- [ ] If Point Release is due to an issue in `pet`. Update `build\azure-pipeline.stable.yml` to point to the branch `release/YYYY.minor` for `python-environment-tools` with the fix or decided by the team.
+- [ ] Create a PR from this branch against `release/YYYY.minor`
+- [ ] **Rebase** and merge this PR into the release branch
+- [ ] Create a draft GitHub release for the release notes (🤖) ❄️
+ - [ ] Create a new [GitHub release](https://github.com/microsoft/vscode-python/releases/new).
+ - [ ] Specify a new tag called `vYYYY.minor.point`.
+ - [ ] Have the `target` for the github release be your release branch called **`release/YYYY.minor`**.
+ - [ ] Create the release notes by specifying the previous tag as the previous version of stable, so the minor release **`vYYYY.minor`** for the last stable release and click `Generate release notes`.
+ - [ ] Check the generated notes to ensure that all PRs for the point release are included so users know these new changes.
+ - [ ] Click `Save draft`.
+- [ ] Publish the point release
+ - [ ] Make sure CI is passing for **`release/YYYY.minor`** release branch (🤖).
+ - [ ] Run the [CD](https://dev.azure.com/monacotools/Monaco/_build?definitionId=299) pipeline on the **`release/YYYY.minor`** branch.
+ - [ ] Click `run pipeline`.
+ - [ ] for `branch/tag` select the release branch which is **`release/YYYY.minor`**.
+ - [ ] 🧍🧍 Get approval on the release on the [CD](https://dev.azure.com/monacotools/Monaco/_build?definitionId=299) and publish the release to the marketplace. 🎉
+ - [ ] Take the Github release out of draft.
+
+## Steps for contributing to a point release
+- [ ] Work with team to decide if point release is necessary
+- [ ] Work with team or users to verify the fix is correct and solves the problem without creating any new ones
+- [ ] Create PR/PRs and merge then each into main as usual
+- [ ] Make sure to still mark if the change is "bug" or "no-changelog"
+- [ ] Cherry-pick all PRs to the release branch and check that the changes are in before the package is bumped
+- [ ] Notify the release champ that your changes are in so they can trigger a point-release
+
## Prep for the _next_ release
-- [ ] Create a new [release plan](https://raw.githubusercontent.com/microsoft/vscode-python/master/.github/release_plan.md) (🤖)
-- [ ] [(Un-)pin](https://help.github.com/en/articles/pinning-an-issue-to-your-repository) [release plan issues](https://github.com/Microsoft/vscode-python/labels/release%20plan) (🤖)
+- [ ] Create a new [release plan](https://raw.githubusercontent.com/microsoft/vscode-python/main/.github/release_plan.md). (🤖)
+- [ ] [(Un-)pin](https://help.github.com/en/articles/pinning-an-issue-to-your-repository) [release plan issues](https://github.com/Microsoft/vscode-python/labels/release-plan) (🤖)
diff --git a/.github/test_plan.md b/.github/test_plan.md
deleted file mode 100644
index 161f301f983d..000000000000
--- a/.github/test_plan.md
+++ /dev/null
@@ -1,630 +0,0 @@
-# Test plan
-
-## Environment
-
-- OS: XXX (Windows, macOS, latest Ubuntu LTS)
- - Shell: XXX (Command Prompt, PowerShell, bash, fish)
-- Python
- - Distribution: XXX (CPython, miniconda)
- - Version: XXX (2.7, latest 3.x)
-- VS Code: XXX (Insiders)
-
-## Tests
-
-**ALWAYS**:
-
-- Check the `Output` window under `Python` for logged errors
-- Have `Developer Tools` open to detect any errors
-- Consider running the tests in a multi-folder workspace
-- Focus on in-development features (i.e. experimental debugger and language server)
-
-
- Scenarios
-
-### [Environment](https://code.visualstudio.com/docs/python/environments)
-
-#### Interpreters
-
-- [ ] Interpreter is [shown in the status bar](https://code.visualstudio.com/docs/python/environments#_choosing-an-environment)
-- [ ] An interpreter can be manually specified using the [`Select Interpreter` command](https://code.visualstudio.com/docs/python/environments#_choosing-an-environment)
-- [ ] Detected system-installed interpreters
-- [ ] Detected an Anaconda installation
-- [ ] (Linux/macOS) Detected all interpreters installed w/ [pyenv](https://github.com/pyenv/pyenv) detected
-- [ ] [`"python.pythonPath"`](https://code.visualstudio.com/docs/python/environments#_manually-specifying-an-interpreter) triggers an update in the status bar
-- [ ] `Run Python File in Terminal`
-- [ ] `Run Selection/Line in Python Terminal`
- - [ ] Right-click
- - [ ] Command
- - [ ] `Shift+Enter`
-
-#### Terminal
-
-Sample file:
-
-```python
-import requests
-request = requests.get("https://drive.google.com/uc?export=download&id=1_9On2-nsBQIw3JiY43sWbrF8EjrqrR4U")
-with open("survey2017.zip", "wb") as file:
- file.write(request.content)
-import zipfile
-with zipfile.ZipFile('survey2017.zip') as zip:
- zip.extractall('survey2017')
-import shutil, os
-shutil.move('survey2017/survey_results_public.csv','survey2017.csv')
-shutil.rmtree('survey2017')
-os.remove('survey2017.zip')
-```
-
-- [ ] _Shift+Enter_ to send selected code in sample file to terminal works
-
-#### Virtual environments
-
-**ALWAYS**:
-
-- Use the latest version of Anaconda
-- Realize that `conda` is slow
-- Create an environment with a space in their path somewhere as well as upper and lowercase characters
-- Make sure that you do not have `python.pythonPath` specified in your `settings.json` when testing automatic detection
-- Do note that the `Select Interpreter` drop-down window scrolls
-
-- [ ] Detected a single virtual environment at the top-level of the workspace folder on Mac when when `python` command points to default Mac Python installation or `python` command fails in the terminal.
- - [ ] Appropriate suffix label specified in status bar (e.g. `(venv)`)
-- [ ] Detected a single virtual environment at the top-level of the workspace folder on Windows when `python` fails in the terminal.
- - [ ] Appropriate suffix label specified in status bar (e.g. `(venv)`)
-- [ ] Detected a single virtual environment at the top-level of the workspace folder
- - [ ] Appropriate suffix label specified in status bar (e.g. `(venv)`)
- - [ ] [`Create Terminal`](https://code.visualstudio.com/docs/python/environments#_activating-an-environment-in-the-terminal) works
- - [ ] Steals focus
- - [ ] `"python.terminal.activateEnvironment": false` deactivates automatically running the activation script in the terminal
- - [ ] After the language server downloads it is able to complete its analysis of the environment w/o requiring a restart
-- [ ] Detect multiple virtual environments contained in the directory specified in `"python.venvPath"`
-- [ ] Detected all [conda environments created with an interpreter](https://code.visualstudio.com/docs/python/environments#_conda-environments)
- - [ ] Appropriate suffix label specified in status bar (e.g. `(condaenv)`)
- - [ ] Prompted to install Pylint
- - [ ] Asked whether to install using conda or pip
- - [ ] Installs into environment
- - [ ] [`Create Terminal`](https://code.visualstudio.com/docs/python/environments#_activating-an-environment-in-the-terminal) works
- - [ ] `"python.terminal.activateEnvironment": false` deactivates automatically running the activation script in the terminal
- - [ ] After the language server downloads it is able to complete its analysis of the environment w/o requiring a restart
-- [ ] (Linux/macOS until [`-m` is supported](https://github.com/Microsoft/vscode-python/issues/978)) Detected the virtual environment created by [pipenv](https://docs.pipenv.org/)
- - [ ] Appropriate suffix label specified in status bar (e.g. `(pipenv)`)
- - [ ] Prompt to install Pylint uses `pipenv install --dev`
- - [ ] [`Create Terminal`](https://code.visualstudio.com/docs/python/environments#_activating-an-environment-in-the-terminal) works
- - [ ] `"python.terminal.activateEnvironment": false` deactivates automatically running the activation script in the terminal
- - [ ] After the language server downloads it is able to complete its analysis of the environment w/o requiring a restart
-- [ ] (Linux/macOS) Virtual environments created under `{workspaceFolder}/.direnv/python-{python_version}` are detected (for [direnv](https://direnv.net/) and its [`layout python3`](https://github.com/direnv/direnv/blob/master/stdlib.sh) support)
- - [ ] Appropriate suffix label specified in status bar (e.g. `(venv)`)
-
-#### [Environment files](https://code.visualstudio.com/docs/python/environments#_environment-variable-definitions-file)
-
-Sample files:
-
-```python
-# example.py
-import os
-print('Hello,', os.environ.get('WHO'), '!')
-```
-
-```
-# .env
-WHO=world
-PYTHONPATH=some/path/somewhere
-SPAM='hello ${WHO}'
-```
-
-**ALWAYS**:
-
-- Make sure to use `Reload Window` between tests to reset your environment
-- Note that environment files only apply under the debugger and Jedi
-
-- [ ] Environment variables in a `.env` file are exposed when running under the debugger
-- [ ] `"python.envFile"` allows for specifying an environment file manually (e.g. Jedi picks up `PYTHONPATH` changes)
-- [ ] `envFile` in a `launch.json` configuration works
-- [ ] simple variable substitution works
-
-#### [Debugging](https://code.visualstudio.com/docs/python/environments#_python-interpreter-for-debugging)
-
-- [ ] `pythonPath` setting in your `launch.json` overrides your `python.pythonPath` default setting
-
-### [Linting](https://code.visualstudio.com/docs/python/linting)
-
-**ALWAYS**:
-
-- Check under the `Problems` tab to see e.g. if a linter is raising errors
-
-#### Language server
-
-- [ ] LS is downloaded using HTTP (no SSL) when the "http.proxyStrictSSL" setting is false
-- [ ] An item with a cloud icon appears in the status bar indicating progress while downloading the language server
-- [ ] Installing [`requests`](https://pypi.org/project/requests/) in virtual environment is detected
- - [ ] Import of `requests` without package installed is flagged as unresolved
- - [ ] Create a virtual environment
- - [ ] Install `requests` into the virtual environment
-
-#### Pylint/default linting
-
-[Prompting to install Pylint is covered under `Environments` above]
-
-For testing the disablement of the default linting rules for Pylint:
-
-```ini
-# pylintrc
-[MESSAGES CONTROL]
-enable=bad-names
-```
-
-```python3
-# example.py
-foo = 42 # Marked as a blacklisted name.
-```
-
-- [ ] Installation via the prompt installs Pylint as appropriate
- - [ ] Uses `--user` for system-install of Python
- - [ ] Installs into a virtual environment environment directly
-- [ ] Pylint works
-- [ ] `"python.linting.pylintUseMinimalCheckers": false` turns off the default rules w/ no `pylintrc` file present
-- [ ] The existence of a `pylintrc` file turns off the default rules
-
-#### Other linters
-
-**Note**:
-
-- You can use the `Run Linting` command to run a newly installed linter
-- When the extension installs a new linter, it turns off all other linters
-
-- [ ] flake8 works
- - [ ] `Select linter` lists the linter and installs it if necessary
-- [ ] mypy works
- - [ ] `Select linter` lists the linter and installs it if necessary
-- [ ] pycodestyle works
- - [ ] `Select linter` lists the linter and installs it if necessary
-- [ ] prospector works
- - [ ] `Select linter` lists the linter and installs it if necessary
-- [ ] pydocstyle works
- - [ ] `Select linter` lists the linter and installs it if necessary
-- [ ] pylama works
- - [ ] `Select linter` lists the linter and installs it if necessary
-- [ ] 3 or more linters work simultaneously (make sure you have turned on the linters in your `settings.json`)
- - [ ] `Run Linting` runs all activated linters
- - [ ] `"python.linting.enabled": false` disables all linters
- - [ ] The `Enable Linting` command changes `"python.linting.enabled"`
-- [ ] `"python.linting.lintOnSave` works
-
-### [Editing](https://code.visualstudio.com/docs/python/editing)
-
-#### [IntelliSense](https://code.visualstudio.com/docs/python/editing#_autocomplete-and-intellisense)
-
-Please also test for general accuracy on the most "interesting" code you can find.
-
-- [ ] `"python.autoComplete.extraPaths"` works
-- [ ] `"python.autocomplete.addBrackets": true` causes auto-completion of functions to append `()`
-- [ ] Auto-completions works
-
-#### [Formatting](https://code.visualstudio.com/docs/python/editing#_formatting)
-
-Sample file:
-
-```python
-# There should be _some_ change after running `Format Document`.
-import os,sys;
-def foo():pass
-```
-
-- [ ] Prompted to install a formatter if none installed and `Format Document` is run
- - [ ] Installing `autopep8` works
- - [ ] Installing `black` works
- - [ ] Installing `yapf` works
-- [ ] Formatters work with default settings (i.e. `"python.formatting.provider"` is specified but not matching `*Path`or `*Args` settings)
- - [ ] autopep8
- - [ ] black
- - [ ] yapf
-- [ ] Formatters work when appropriate `*Path` and `*Args` settings are specified (use absolute paths; use `~` if possible)
- - [ ] autopep8
- - [ ] black
- - [ ] yapf
-- [ ] `"editor.formatOnType": true` works and has expected results
-
-#### [Refactoring](https://code.visualstudio.com/docs/python/editing#_refactoring)
-
-- [ ] [`Extract Variable`](https://code.visualstudio.com/docs/python/editing#_extract-variable) works
- - [ ] You are prompted to install `rope` if it is not already available
-- [ ] [`Extract method`](https://code.visualstudio.com/docs/python/editing#_extract-method) works
- - [ ] You are prompted to install `rope` if it is not already available
-- [ ] [`Sort Imports`](https://code.visualstudio.com/docs/python/editing#_sort-imports) works
-
-### [Debugging](https://code.visualstudio.com/docs/python/debugging)
-
-- [ ] [Configurations](https://code.visualstudio.com/docs/python/debugging#_debugging-specific-app-types) work (see [`package.json`](https://github.com/Microsoft/vscode-python/blob/master/package.json) and the `"configurationSnippets"` section for all of the possible configurations)
-- [ ] Running code from start to finish w/ no special debugging options (e.g. no breakpoints)
-- [ ] Breakpoint-like things
- - [ ] Breakpoint
- - [ ] Set
- - [ ] Hit
- - [ ] Conditional breakpoint
- - [ ] Expression
- - [ ] Set
- - [ ] Hit
- - [ ] Hit count
- - [ ] Set
- - [ ] Hit
- - [ ] Logpoint
- - [ ] Set
- - [ ] Hit
-- [ ] Stepping
- - [ ] Over
- - [ ] Into
- - [ ] Out
-- [ ] Can inspect variables
- - [ ] Through hovering over variable in code
- - [ ] `Variables` section of debugger sidebar
-- [ ] [Remote debugging](https://code.visualstudio.com/docs/python/debugging#_remote-debugging) works
- - [ ] ... over SSH
- - [ ] ... on other branches
-- [ ] [App Engine](https://code.visualstudio.com/docs/python/debugging#_google-app-engine-debugging)
-
-### [Unit testing](https://code.visualstudio.com/docs/python/unit-testing)
-
-#### [`unittest`](https://code.visualstudio.com/docs/python/unit-testing#_unittest-configuration-settings)
-
-```python
-import unittest
-
-MODULE_SETUP = False
-
-
-def setUpModule():
- global MODULE_SETUP
- MODULE_SETUP = True
-
-
-class PassingSetupTests(unittest.TestCase):
- CLASS_SETUP = False
- METHOD_SETUP = False
-
- @classmethod
- def setUpClass(cls):
- cls.CLASS_SETUP = True
-
- def setUp(self):
- self.METHOD_SETUP = True
-
- def test_setup(self):
- self.assertTrue(MODULE_SETUP)
- self.assertTrue(self.CLASS_SETUP)
- self.assertTrue(self.METHOD_SETUP)
-
-
-class PassingTests(unittest.TestCase):
-
- def test_passing(self):
- self.assertEqual(42, 42)
-
- def test_passing_still(self):
- self.assertEqual("silly walk", "silly walk")
-
-
-class FailingTests(unittest.TestCase):
-
- def test_failure(self):
- self.assertEqual(42, -13)
-
- def test_failure_still(self):
- self.assertEqual("I'm right!", "no, I am!")
-```
-
-- [ ] `Run All Unit Tests` triggers the prompt to configure the test runner
-- [ ] Tests are discovered (as shown by code lenses on each test)
- - [ ] Code lens for a class runs all tests for that class
- - [ ] Code lens for a method runs just that test
- - [ ] `Run Test` works
- - [ ] `Debug Test` works
- - [ ] Module/suite setup methods are also run (run the `test_setup` method to verify)
-- [ ] while debugging tests, an uncaught exception in a test does not
- cause `debugpy` to raise `SystemExit` exception.
-
-#### [`pytest`](https://code.visualstudio.com/docs/python/unit-testing#_pytest-configuration-settings)
-
-```python
-def test_passing():
- assert 42 == 42
-
-def test_failure():
- assert 42 == -13
-```
-
-- [ ] `Run All Unit Tests` triggers the prompt to configure the test runner
- - [ ] `pytest` gets installed
-- [ ] Tests are discovered (as shown by code lenses on each test)
- - [ ] `Run Test` works
- - [ ] `Debug Test` works
-- [ ] A `Diagnostic` is shown in the problems pane for each failed/skipped test
- - [ ] The `Diagnostic`s are organized according to the file the test was executed from (not necessarily the file it was defined in)
- - [ ] The appropriate `DiagnosticRelatedInformation` is shown for each `Diagnostic`
- - [ ] The `DiagnosticRelatedInformation` reflects the traceback for the test
-
-#### [`nose`](https://code.visualstudio.com/docs/python/unit-testing#_nose-configuration-settings)
-
-```python
-def test_passing():
- assert 42 == 42
-
-def test_failure():
- assert 42 == -13
-```
-
-- [ ] `Run All Unit Tests` triggers the prompt to configure the test runner
- - [ ] Nose gets installed
-- [ ] Tests are discovered (as shown by code lenses on each test)
- - [ ] `Run Test` works
- - [ ] `Debug Test` works
-
-#### General
-
-- [ ] Code lenses appears
- - [ ] `Run Test` lens works (and status bar updates as appropriate)
- - [ ] `Debug Test` lens works
- - [ ] Appropriate ✔/❌ shown for each test
-- [ ] Status bar is functioning
- - [ ] Appropriate test results displayed
- - [ ] `Run All Unit Tests` works
- - [ ] `Discover Unit Tests` works (resets tests result display in status bar)
- - [ ] `Run Unit Test Method ...` works
- - [ ] `View Unit Test Output` works
- - [ ] After having at least one failure, `Run Failed Tests` works
-- [ ] `Configure Unit Tests` works
- - [ ] quick pick for framework (and its settings)
- - [ ] selected framework enabled in workspace settings
- - [ ] framework's config added (and old config removed)
- - [ ] other frameworks disabled in workspace settings
-- [ ] `Configure Unit Tests` does not close if it loses focus
-- [ ] Cancelling configuration does not leave incomplete settings
-- [ ] The first `"request": "test"` entry in launch.json is used for running unit tests
-
-### [Data Science](https://code.visualstudio.com/docs/python/jupyter-support)
-
-#### P0 Test Scenarios
-
-- [ ] Start and connect to local Jupyter server
- 1. Open the file src/test/datascience/manualTestFiles/manualTestFile.py in VSCode
- 1. At the top of the file it will list the things that you need installed in your Python environment
- 1. On the first cell click `Run Below`
- 1. Interactive Window should open, show connection information, and execute cells
- 1. The first thing in the window should have a line like this: `Jupyter Server URI: http://localhost:[port number]/?token=[token value]`
-- [ ] Verify Basic Notebook Editor
- 1. Create a new file in VS code with the extension .ipynb
- 1. Open the file
- 1. The Notebook Editor should open
- 1. Verify that there is a single cell in the notebook editor
- 1. Add `print('bar')` to that cell
- 1. Run the cell
- 1. Verify that `bar` shows up below the input
- 1. Add a cell with the topmost hover bar
- 1. Verify the cell appears above all others
- 1. Add a cell at the bottom with the bottom most hover bar
- 1. Verify the cell appears below all cells
- 1. Select a cell
- 1. Add a cell with the plus button on the cell
- 1. Verify cell appears below
- 1. Repeat with the topmost toolbar
-- [ ] Verify basic outputs
- 1. Run all the cells in manualTestFile.py
- 1. Check to make sure that no outputs have errors
- 1. Verify that graphs and progress bars are shown
-- [ ] Verify export / import
- 1. With the results from `Start and connect to local server` open click the `Export as Jupyter Notebook` button in the Interactive Window
- 1. Choose a file location and save the generated .ipynb file
- 1. When the prompt comes up in the lower right choose to open the file in the browser
- 1. The file should open in the web browser and contain the output from the Interactive Window
- 1. Try the same steps and choose to open the file in the ipynb editor.
- 1. The file should open in the Notebook Editor.
-- [ ] Verify text entry
- 1. In the Interactive Window type in some new code `print('testing')` and submit it to the Interactive Windows
- 1. Verify the output from what you added
-- [ ] Verify dark and light main themes
- 1. Repeat the `Start and connect to local server` and `Verify basic outputs` steps using `Default Dark+` and `Default Light+` themes
-- [ ] Verify Variable Explorer
- 1. After manualTestFile.py has been run drop down the Variables section at the top of the Interactive Window
- 1. In the Variables list there should be an entry for all variables created. These variables might change as more is added to manualTestFile.py.
- 1. Check that variables have expected values. They will be truncated for longer items
- 1. Sort the list ascending and descending by Type. Also sort the list ascending and descending by Count. Values like (X, Y) use the first X value for Count sort ordering
- 1. Check that list, Series, ndarray, and DataFrame types have a button to "Show variable in data viewer" on the right
- 1. In the Interactive Window input box add a new variable. Verify that it is added into the Variable Explorer
- 1. Export the contents of the interactive window as a notebook and open the notebook editor
- 1. Find the first cell and click on the Run Below button
- 1. Open the variable explorer and verify the same variables are there
- 1. Add a new cell with a variable in it.
- 1. Run the cell and verify the variable shows up in the variable explorer
-- [ ] Verify Data Explorer
- 1. From the listed types in the Variable explorer open up the Data Viewer by clicking the button or double clicking the row
- 1. Inspect the data in the Data Viewer for the expected values
- [ ] Verify Sorting and Filtering
- 1. Open up the myDataFrame item
- 1. Sort the name column ascending and descending
- 1. Sort one of the numerical columns ascending and descending
- 1. Click the Filter Rows button
- 1. In the name filter box input 'a' to filter to just name with an a in them
- 1. In one of the numerical columns input a number 1 - 9 to filter to just that column
- 1. Open the myList variable in the explorer
- 1. Make sure that you can scroll all the way to the end of the entries
- [ ] Verify notebook outputs
- 1. Open the src/test/datascience/manualTestFiles/manualTestFile.py in VSCode.
- 1. Run all of the cells in the file.
- 1. Interactive Window should open
- 1. Export the cells in the interactive window and open the notebook editor
- 1. Run all the cells in the notebook editor and verify the same outputs appear as in the interactive window
-- [ ] Verify Notebook Editor Intellisense
- 1. Open the src/test/datascience/manualTestFiles/manualTestFile.py in VSCode.
- 1. Run all of the cells in the file.
- 1. Interactive Window should open
- 1. Export the cells in the interactive window and open the notebook editor
- 1. Hover over each cell in the notebook editor and verify you get hover intellisense
- 1. Add a new cell in between cells
- 1. Add `import sys` and `sys.executable` to the cell
- 1. Move the cell around and verify intellisense hover still works on the `import sys`
- 1. Delete and readd the cell and verify intellisense hover still works.
-- [ ] Verify Notebook Keyboard Shortcuts
- 1. Using the notebook generated from the manualTestFile.py, do the following
- 1. Select a cell by clicking on it
- 1. Move selection up and down with j,k and arrow keys.
- 1. Focus a cell by double clicking on it or hitting the enter key when selected
- 1. Move selection through the code with the arrow keys.
- 1. Verify selection travels between focused cells
- 1. Hit escape when a cell has focus and verify it becomes selected instead of focused
- 1. Hit `y` on a markdown cell when not focused and see that it becomes a code cell
- 1. Hit `m` on a code cell when not focused and see that it becomes a markdown cell
- 1. Hit `l` on a code cell and verify line numbers appear
- 1. Hit `o` on a code cell with output and verify that outputs disappear
- 1. Hit `d` + `d` and verify a cell is deleted.
- 1. Hit `z` and verify a deleted cell reappears
- 1. Hit `a` and verify the selected cell moves up
- 1. Hit `b` and verify the selected cell moves down
- 1. Hit `shift+enter` and verify a cell runs and selection moves to the next cell
- 1. Hit `alt+enter` and verify a cell runs and a new cell is added below
- 1. Hit `ctrl+enter` and verify a cell runs and selection does not change
-- [ ] Verify debugging
- 1. Open the file src/test/datascience/manualTestFiles/manualTestFile.py in VSCode
- 1. On the first cell click `Run Below`
- 1. Interactive Window should open, show connection information, and execute cells
- 1. Go back to the first cell and click `Debug Cell`
- 1. Debugger should start and have an ip indicator on the first line of the cell
- 1. Step through the debugger.
- 1. Verify the variables tab of the debugger shows variables.
- 1. Verify the variables explorer window shows output not available while debugging
- 1. When you get to the end of the cell, the debugger should stop
- 1. Output from the cell should show up in the Interactive Window (sometimes you have to finish debugging the cell first)
-
-#### P1 Test Scenarios
-
-- [ ] Connect to a `remote` server
- 1. Open up a valid python command prompt that can run `jupyter notebook` (a default Anaconda prompt works well)
- 1. Run `jupyter notebook` to start up a local Jupyter server
- 1. In the command window that launched Jupyter look for the server / token name like so: http://localhost:8888/?token=bf9eae43641cd75015df9104f814b8763ef0e23ffc73720d
- 1. Run the command `Python: Select Jupyter server URI` then `Type in the URI to connect to a running jupyter server`
- 1. Input the server / token name here
- 1. Now run the cells in the manualTestFile.py
- 1. Verify that you see the server name in the initial connection message
- 1. Verify the outputs of the cells
-- [ ] Interactive Window commands
- - [ ] Verify per-cell commands
- 1. Expand and collapse the input area of a cell
- 1. Use the `X` button to remove a cell
- 1. Use the `Goto Code` button to jump to the part of the .py file that submitted the code
- - [ ] Verify top menu commands
- 1. Use `X` to delete all cells
- 1. Undo the delete action with `Undo`
- 1. Redo the delete action with `Redo`
- 1. In manualTestFile.py modify the trange command in the progress bar from 100 to 2000. Run the Cell. As the cell is running hit the `Interrupt iPython Kernel` button
- 1. The progress bar should be interrupted and you should see a KeyboardInterrupt error message in the output
- 1. Test the `Restart iPython kernel` command. Kernel should be restarted and you should see a status output message for the kernel restart
- 1. Use the expand all input and collapse all input commands to collapse all cell inputs
-- [ ] Verify theming works
- 1. Start Python Interactive window
- 1. Add a cell with some comments
- 1. Switch VS Code theme to something else
- 1. Check that the cell you just added updates the comment color
- 1. Switch back and forth between a 'light' and a 'dark' theme
- 1. Check that the cell switches colors
- 1. Check that the buttons on the top change to their appropriate 'light' or 'dark' versions
- 1. Enable the 'ignoreVscodeTheme' setting
- 1. Close the Python Interactive window and reopen it. The theme in just the 'Python Interactive' window should be light
- 1. Switch to a dark theme. Make sure the interactive window remains in the light theme.
-- [ ] Verify code lenses
- 1. Check that `Run Cell` `Run Above` and `Run Below` all do the correct thing
-- [ ] Verify context menu navigation commands
- 1. Check the `Run Current Cell` and `Run Current Cell And Advance` context menu commands
- 1. If run on the last cell of the file `Run Current Cell And Advance` should create a new empty cell and advance to it
-- [ ] Verify command palette commands
- 1. Close the Interactive Window then pick `Python: Show Interactive Window`
- 1. Restart the kernel and pick `Python: Run Current File In Python Interactive Window` it should run the whole file again
-- [ ] Verify shift-enter
- 1. Move to the top cell in the .py file
- 1. Shift-enter should run each cell and advance to the next
- 1. Shift-enter on the final cell should create a new cell and move to it
-- [ ] Verify file without cells
- 1. Open the manualTestFileNoCells.py file
- 1. Select a chunk of code, shift-enter should send it to the terminal
- 1. Open VSCode settings, change `Send Selection To Interactive Window` to true
- 1. Select a chunk of code, shift-enter should send that selection to the Interactive Windows
- 1. Move your cursor to a line, but don't select anything. Shift-enter should send that line to the Interactive Window
-- [ ] Multiple installs
- 1. Close and re-open VSCode to make sure that all jupyter servers are closed
- 1. Also make sure you are set to locally launch Jupyter and not to connect to an existing URI
- 1. In addition to your main testing environment install a new python or miniconda install (conda won't work as it has Jupyter by default)
- 1. In VS code change the python interpreter to the new install
- 1. Try `Run Cell`
- 1. You should get a message that Jupyter was not found and that it is defaulting back to launch on the python instance that has Jupyter
-- [ ] LiveShare Support
- 1. Install the LiveShare VSCode Extension
- 1. Open manualTestFile.py in VSCode
- 1. Run the first cell in the file
- 1. Switch to the `Live Share` tab in VS Code and start a session
- - [ ] Verify server start
- 1. Jupyter server instance should appear in the live share tab
- 1. Open another window of VSCode
- 1. Connect the second instance of VSCode as a Guest to the first Live Share session
- 1. After the workspace opens, open the manualTestFile.py on the Guest instance
- 1. On the Guest instance run a cell from the file, both via the codelens and via the command palette `Run Cell` command
- - [ ] Verify results
- 1. Output should show up on the Guest Interactive Window
- 1. Same output should show up in the Host Interactive Window
- 1. On the Host instance run a cell from the file, both via the codelens and via the command palette
- - [ ] Verify results
- 1. Output should show up on the Guest Interactive Window
- 1. Same output should show up in the Host Interactive Window
- 1. Export the file to a notebook
- 1. Open the notebook editor on the host
- 1. Run a cell on the host
- 1. Verify the editor opens on the guest and the cell is run there too
-- [ ] Jupyter Hub support
- 1. Windows install instructions
- 1. Install Docker Desktop onto a machine
- 1. Create a folder with a file 'Dockerfile' in it.
- 1. Mark the file to look like so:
-
- ```
- ARG BASE_CONTAINER=jupyterhub/jupyterhub
- FROM $BASE_CONTAINER
-
- USER root
-
- USER $NB_UID
- ```
-
- 1. From a command prompt (in the same folder as the Dockerfile), run ```docker build -t jupyterhubcontainer:1.0 .```
- 1. Run ```docker container create --name jupyterhub jupyterhubcontainer:1.0 jupyterhub```
- 1. From the docker desktop app, start the jupyterhub container.
- 1. From the docker desktop app, run the CLI
- 1. OR Mac / Linux install instructions
- 1. Install docker
- 1. From the terminal ```docker run -p 8000:8000 -d --name jupyterhub jupyterhub/jupyterhub jupyterhub```
- 1. Open a terminal in the docker container with ```docker exec -it jupyterhub bash```
- 1. From that terminal run ```python3 -m pip install notebook```
- 1. From the new command prompt, run ```adduser testuser```
- 1. Follow the series of prompts to add a password for this user
- 1. Open VS code
- 1. Open a folder with a python file in it.
- 1. Run the ```Python: Specify local or remote Jupyter server for connections``` command.
- 1. Pick 'Existing'
- 1. Enter ```http://localhost:8000``` (assuming the jupyter hub container was successful in launching)
- 1. Reload VS code and reopen this folder.
- 1. Run a cell in a python file.
- [ ] Verify results
- 1. Verify you are asked first for a user name and then a password.
- 1. Verify a cell runs once you enter the user name and password
- 1. Verify that the python that is running in the interactive window is from the docker container (if on windows it should show a linux path)
-
-#### P2 Test Scenarios
-
-- [ ] Directory change
- - [ ] Verify directory change in export
- 1. Follow the previous steps for export, but export the ipynb to a directory outside of the current workspace
- 1. Open the file in the browser, you should get an initial cell added to change directory back to your workspace directory
- - [ ] Verify directory change in import
- 1. Follow the previous steps for import, but import an ipynb that is located outside of your current workspace
- 1. Open the file in the editor. There should be python code at the start to change directory to the previous location of the .ipynb file
-- [ ] Interactive Window input history history
- 1. Start up an Interactive Window session
- 1. Input several lines into the Interactive Window terminal
- 1. Press up to verify that those previously entered lines show in the Interactive Window terminal history
-- [ ] Extra themes 1. Try several of the themes that come with VSCode that are not the default Dark+ and Light+
-
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 000000000000..09d019dec4a7
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,449 @@
+name: Build
+
+on:
+ push:
+ branches:
+ - 'main'
+ - 'release'
+ - 'release/*'
+ - 'release-*'
+
+permissions: {}
+
+env:
+ NODE_VERSION: 22.21.1
+ PYTHON_VERSION: '3.10' # YML treats 3.10 the number as 3.1, so quotes around 3.10
+ # Force a path with spaces and to test extension works in these scenarios
+ # Unicode characters are causing 2.7 failures so skip that for now.
+ special-working-directory: './path with spaces'
+ special-working-directory-relative: 'path with spaces'
+ # Use the mocha-multi-reporters and send output to both console (spec) and JUnit (mocha-junit-reporter).
+ # Also enables a reporter which exits the process running the tests if it haven't already.
+ MOCHA_REPORTER_JUNIT: true
+
+jobs:
+ setup:
+ name: Set up
+ if: github.repository == 'microsoft/vscode-python'
+ runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: python
+ outputs:
+ vsix_basename: ${{ steps.vsix_names.outputs.vsix_basename }}
+ vsix_name: ${{ steps.vsix_names.outputs.vsix_name }}
+ vsix_artifact_name: ${{ steps.vsix_names.outputs.vsix_artifact_name }}
+ steps:
+ - name: VSIX names
+ id: vsix_names
+ run: |
+ import os
+ if os.environ["GITHUB_REF"].endswith("/main"):
+ vsix_type = "insiders"
+ else:
+ vsix_type = "release"
+ print(f"::set-output name=vsix_name::ms-python-{vsix_type}.vsix")
+ print(f"::set-output name=vsix_basename::ms-python-{vsix_type}")
+ print(f"::set-output name=vsix_artifact_name::ms-python-{vsix_type}-vsix")
+
+ build-vsix:
+ name: Create VSIX
+ if: github.repository == 'microsoft/vscode-python'
+ needs: setup
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - os: windows-latest
+ target: x86_64-pc-windows-msvc
+ vsix-target: win32-x64
+ - os: windows-latest
+ target: aarch64-pc-windows-msvc
+ vsix-target: win32-arm64
+ - os: ubuntu-latest
+ target: x86_64-unknown-linux-musl
+ vsix-target: linux-x64
+ # - os: ubuntu-latest
+ # target: aarch64-unknown-linux-gnu
+ # vsix-target: linux-arm64
+ # - os: ubuntu-latest
+ # target: arm-unknown-linux-gnueabihf
+ # vsix-target: linux-armhf
+ # - os: macos-latest
+ # target: x86_64-apple-darwin
+ # vsix-target: darwin-x64
+ # - os: macos-14
+ # target: aarch64-apple-darwin
+ # vsix-target: darwin-arm64
+ - os: ubuntu-latest
+ target: x86_64-unknown-linux-musl
+ vsix-target: alpine-x64
+ # - os: ubuntu-latest
+ # target: aarch64-unknown-linux-musl
+ # vsix-target: alpine-arm64
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v6
+ with:
+ persist-credentials: false
+
+ - name: Checkout Python Environment Tools
+ uses: actions/checkout@v6
+ with:
+ repository: 'microsoft/python-environment-tools'
+ path: 'python-env-tools'
+ persist-credentials: false
+ sparse-checkout: |
+ crates
+ Cargo.toml
+ Cargo.lock
+ sparse-checkout-cone-mode: false
+
+ - name: Build VSIX
+ uses: ./.github/actions/build-vsix
+ with:
+ node_version: ${{ env.NODE_VERSION}}
+ vsix_name: ${{ needs.setup.outputs.vsix_basename }}-${{ matrix.vsix-target }}.vsix
+ artifact_name: ${{ needs.setup.outputs.vsix_artifact_name }}-${{ matrix.vsix-target }}
+ cargo_target: ${{ matrix.target }}
+ vsix_target: ${{ matrix.vsix-target }}
+
+ lint:
+ name: Lint
+ if: github.repository == 'microsoft/vscode-python'
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v6
+ with:
+ persist-credentials: false
+
+ - name: Lint
+ uses: ./.github/actions/lint
+ with:
+ node_version: ${{ env.NODE_VERSION }}
+
+ check-types:
+ name: Check Python types
+ if: github.repository == 'microsoft/vscode-python'
+ runs-on: ubuntu-latest
+ steps:
+ - name: Use Python ${{ env.PYTHON_VERSION }}
+ uses: actions/setup-python@v6
+ with:
+ python-version: ${{ env.PYTHON_VERSION }}
+
+ - name: Checkout
+ uses: actions/checkout@v6
+ with:
+ persist-credentials: false
+
+ - name: Install core Python requirements
+ uses: brettcannon/pip-secure-install@92f400e3191171c1858cc0e0d9ac6320173fdb0c # v1.0.0
+ with:
+ options: '-t ./python_files/lib/python --no-cache-dir --implementation py'
+
+ - name: Install Jedi requirements
+ uses: brettcannon/pip-secure-install@92f400e3191171c1858cc0e0d9ac6320173fdb0c # v1.0.0
+ with:
+ requirements-file: './python_files/jedilsp_requirements/requirements.txt'
+ options: '-t ./python_files/lib/jedilsp --no-cache-dir --implementation py'
+
+ - name: Install other Python requirements
+ run: |
+ python -m pip install --upgrade -r build/test-requirements.txt
+
+ - name: Run Pyright
+ uses: jakebailey/pyright-action@8ec14b5cfe41f26e5f41686a31eb6012758217ef # v3.0.2
+ with:
+ version: 1.1.308
+ working-directory: 'python_files'
+
+ python-tests:
+ name: Python Tests
+ # The value of runs-on is the OS of the current job (specified in the strategy matrix below) instead of being hardcoded.
+ runs-on: ${{ matrix.os }}
+ defaults:
+ run:
+ working-directory: ${{ env.special-working-directory }}
+ strategy:
+ fail-fast: false
+ matrix:
+ # We're not running CI on macOS for now because it's one less matrix entry to lower the number of runners used,
+ # macOS runners are expensive, and we assume that Ubuntu is enough to cover the Unix case.
+ os: [ubuntu-latest, windows-latest]
+ # Run the tests on the oldest and most recent versions of Python.
+ python: ['3.10', '3.x', '3.13']
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v6
+ with:
+ path: ${{ env.special-working-directory-relative }}
+ persist-credentials: false
+
+ - name: Use Python ${{ matrix.python }}
+ uses: actions/setup-python@v6
+ with:
+ python-version: ${{ matrix.python }}
+
+ - name: Install base Python requirements
+ uses: brettcannon/pip-secure-install@92f400e3191171c1858cc0e0d9ac6320173fdb0c # v1.0.0
+ with:
+ requirements-file: '"${{ env.special-working-directory-relative }}/requirements.txt"'
+ options: '-t "${{ env.special-working-directory-relative }}/python_files/lib/python" --no-cache-dir --implementation py'
+
+ - name: Install test requirements
+ run: python -m pip install --upgrade -r build/test-requirements.txt
+
+ - name: Run Python unit tests
+ run: python python_files/tests/run_all.py
+
+ tests:
+ name: Tests
+ if: github.repository == 'microsoft/vscode-python'
+ runs-on: ${{ matrix.os }}
+ defaults:
+ run:
+ working-directory: ${{ env.special-working-directory }}
+ strategy:
+ fail-fast: false
+ matrix:
+ # We're not running CI on macOS for now because it's one less matrix
+ # entry to lower the number of runners used, macOS runners are expensive,
+ # and we assume that Ubuntu is enough to cover the UNIX case.
+ os: [ubuntu-latest, windows-latest]
+ python: ['3.x']
+ test-suite: [ts-unit, venv, single-workspace, multi-workspace, debugger, functional]
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v6
+ with:
+ path: ${{ env.special-working-directory-relative }}
+ persist-credentials: false
+
+ - name: Checkout Python Environment Tools
+ uses: actions/checkout@v6
+ with:
+ repository: 'microsoft/python-environment-tools'
+ path: ${{ env.special-working-directory-relative }}/python-env-tools
+ persist-credentials: false
+ sparse-checkout: |
+ crates
+ Cargo.toml
+ Cargo.lock
+ sparse-checkout-cone-mode: false
+
+ - name: Install Node
+ uses: actions/setup-node@v6
+ with:
+ node-version: ${{ env.NODE_VERSION }}
+ cache: 'npm'
+ cache-dependency-path: ${{ env.special-working-directory-relative }}/package-lock.json
+
+ - name: Install dependencies (npm ci)
+ run: npm ci
+
+ - name: Compile
+ run: npx gulp prePublishNonBundle
+
+ - name: Localization
+ run: npx @vscode/l10n-dev@latest export ./src
+
+ - name: Install Python ${{ matrix.python }}
+ uses: actions/setup-python@v6
+ with:
+ python-version: ${{ matrix.python }}
+
+ - name: Upgrade Pip
+ run: python -m pip install -U pip
+
+ # For faster/better builds of sdists.
+ - name: Install build pre-requisite
+ run: python -m pip install wheel nox
+
+ - name: Install Python Extension dependencies (jedi, etc.)
+ run: nox --session install_python_libs
+
+ - name: Install test requirements
+ run: python -m pip install --upgrade -r build/test-requirements.txt
+
+ - name: Rust Tool Chain setup
+ uses: dtolnay/rust-toolchain@stable
+
+ - name: Build Native Binaries
+ run: nox --session native_build
+ shell: bash
+
+ - name: Install functional test requirements
+ run: python -m pip install --upgrade -r ./build/functional-test-requirements.txt
+ if: matrix.test-suite == 'functional'
+
+ - name: Prepare pipenv for venv tests
+ env:
+ TEST_FILES_SUFFIX: testvirtualenvs
+ PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
+ shell: pwsh
+ if: matrix.test-suite == 'venv'
+ run: |
+ python -m pip install pipenv
+ python -m pipenv run python ./build/ci/addEnvPath.py ${{ env.PYTHON_VIRTUAL_ENVS_LOCATION }} pipenvPath
+
+ - name: Prepare poetry for venv tests
+ env:
+ TEST_FILES_SUFFIX: testvirtualenvs
+ shell: pwsh
+ if: matrix.test-suite == 'venv'
+ run: |
+ python -m pip install poetry
+ Move-Item -Path ".\build\ci\pyproject.toml" -Destination .
+ poetry env use python
+
+ - name: Prepare virtualenv for venv tests
+ env:
+ TEST_FILES_SUFFIX: testvirtualenvs
+ PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
+ shell: pwsh
+ if: matrix.test-suite == 'venv'
+ run: |
+ python -m pip install virtualenv
+ python -m virtualenv .virtualenv/
+ if ('${{ matrix.os }}' -match 'windows-latest') {
+ & ".virtualenv/Scripts/python.exe" ./build/ci/addEnvPath.py ${{ env.PYTHON_VIRTUAL_ENVS_LOCATION }} virtualEnvPath
+ } else {
+ & ".virtualenv/bin/python" ./build/ci/addEnvPath.py ${{ env.PYTHON_VIRTUAL_ENVS_LOCATION }} virtualEnvPath
+ }
+
+ - name: Prepare venv for venv tests
+ env:
+ TEST_FILES_SUFFIX: testvirtualenvs
+ PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
+ shell: pwsh
+ if: matrix.test-suite == 'venv' && startsWith(matrix.python, 3.)
+ run: |
+ python -m venv .venv
+ if ('${{ matrix.os }}' -match 'windows-latest') {
+ & ".venv/Scripts/python.exe" ./build/ci/addEnvPath.py ${{ env.PYTHON_VIRTUAL_ENVS_LOCATION }} venvPath
+ } else {
+ & ".venv/bin/python" ./build/ci/addEnvPath.py ${{ env.PYTHON_VIRTUAL_ENVS_LOCATION }} venvPath
+ }
+
+ - name: Prepare conda for venv tests
+ env:
+ TEST_FILES_SUFFIX: testvirtualenvs
+ PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
+ shell: pwsh
+ if: matrix.test-suite == 'venv'
+ run: |
+ # 1. For `*.testvirtualenvs.test.ts`
+ if ('${{ matrix.os }}' -match 'windows-latest') {
+ $condaPythonPath = Join-Path -Path $Env:CONDA -ChildPath python.exe
+ $condaExecPath = Join-Path -Path $Env:CONDA -ChildPath Scripts | Join-Path -ChildPath conda
+ } else{
+ $condaPythonPath = Join-Path -Path $Env:CONDA -ChildPath bin | Join-Path -ChildPath python
+ $condaExecPath = Join-Path -Path $Env:CONDA -ChildPath bin | Join-Path -ChildPath conda
+ }
+ & $condaPythonPath ./build/ci/addEnvPath.py ${{ env.PYTHON_VIRTUAL_ENVS_LOCATION }} condaExecPath $condaExecPath
+ & $condaPythonPath ./build/ci/addEnvPath.py ${{ env.PYTHON_VIRTUAL_ENVS_LOCATION }} condaPath
+ & $condaExecPath init --all
+
+ - name: Set CI_PYTHON_PATH and CI_DISABLE_AUTO_SELECTION
+ run: |
+ echo "CI_PYTHON_PATH=python" >> $GITHUB_ENV
+ echo "CI_DISABLE_AUTO_SELECTION=1" >> $GITHUB_ENV
+ shell: bash
+ if: matrix.test-suite != 'ts-unit'
+
+ # Run TypeScript unit tests only for Python 3.X.
+ - name: Run TypeScript unit tests
+ run: npm run test:unittests
+ if: matrix.test-suite == 'ts-unit' && startsWith(matrix.python, '3.')
+
+ # The virtual environment based tests use the `testSingleWorkspace` set of tests
+ # with the environment variable `TEST_FILES_SUFFIX` set to `testvirtualenvs`,
+ # which is set in the "Prepare environment for venv tests" step.
+ # We also use a third-party GitHub Action to install xvfb on Linux,
+ # run tests and then clean up the process once the tests ran.
+ # See https://github.com/GabrielBB/xvfb-action
+ - name: Run venv tests
+ env:
+ TEST_FILES_SUFFIX: testvirtualenvs
+ CI_PYTHON_VERSION: ${{ matrix.python }}
+ uses: GabrielBB/xvfb-action@b706e4e27b14669b486812790492dc50ca16b465 # v1.7
+ with:
+ run: npm run testSingleWorkspace
+ working-directory: ${{ env.special-working-directory }}
+ if: matrix.test-suite == 'venv' && matrix.os == 'ubuntu-latest'
+
+ - name: Run single-workspace tests
+ env:
+ CI_PYTHON_VERSION: ${{ matrix.python }}
+ uses: GabrielBB/xvfb-action@b706e4e27b14669b486812790492dc50ca16b465 # v1.7
+ with:
+ run: npm run testSingleWorkspace
+ working-directory: ${{ env.special-working-directory }}
+ if: matrix.test-suite == 'single-workspace'
+
+ - name: Run multi-workspace tests
+ env:
+ CI_PYTHON_VERSION: ${{ matrix.python }}
+ uses: GabrielBB/xvfb-action@b706e4e27b14669b486812790492dc50ca16b465 # v1.7
+ with:
+ run: npm run testMultiWorkspace
+ working-directory: ${{ env.special-working-directory }}
+ if: matrix.test-suite == 'multi-workspace'
+
+ - name: Run debugger tests
+ env:
+ CI_PYTHON_VERSION: ${{ matrix.python }}
+ uses: GabrielBB/xvfb-action@b706e4e27b14669b486812790492dc50ca16b465 # v1.7
+ with:
+ run: npm run testDebugger
+ working-directory: ${{ env.special-working-directory }}
+ if: matrix.test-suite == 'debugger'
+
+ # Run TypeScript functional tests
+ - name: Run TypeScript functional tests
+ run: npm run test:functional
+ if: matrix.test-suite == 'functional'
+
+ smoke-tests:
+ name: Smoke tests
+ if: github.repository == 'microsoft/vscode-python'
+ runs-on: ${{ matrix.os }}
+ needs: [setup, build-vsix]
+ strategy:
+ fail-fast: false
+ matrix:
+ # We're not running CI on macOS for now because it's one less matrix entry to lower the number of runners used,
+ # macOS runners are expensive, and we assume that Ubuntu is enough to cover the UNIX case.
+ include:
+ - os: windows-latest
+ vsix-target: win32-x64
+ - os: ubuntu-latest
+ vsix-target: linux-x64
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v6
+ with:
+ persist-credentials: false
+
+ - name: Checkout Python Environment Tools
+ uses: actions/checkout@v6
+ with:
+ repository: 'microsoft/python-environment-tools'
+ path: ${{ env.special-working-directory-relative }}/python-env-tools
+ persist-credentials: false
+ sparse-checkout: |
+ crates
+ Cargo.toml
+ Cargo.lock
+ sparse-checkout-cone-mode: false
+
+ - name: Smoke tests
+ uses: ./.github/actions/smoke-tests
+ with:
+ node_version: ${{ env.NODE_VERSION }}
+ artifact_name: ${{ needs.setup.outputs.vsix_artifact_name }}-${{ matrix.vsix-target }}
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
deleted file mode 100644
index a16f010a30a2..000000000000
--- a/.github/workflows/ci.yml
+++ /dev/null
@@ -1,564 +0,0 @@
-name: CI
-
-on:
- push:
- branches:
- # Run the CI workflow only on master for microsoft/vscode-python for now.
- - master
-
-env:
- PYTHON_VERSION: 3.8
- MOCHA_REPORTER_JUNIT: true # Use the mocha-multi-reporters and send output to both console (spec) and JUnit (mocha-junit-reporter). Also enables a reporter which exits the process running the tests if it haven't already.
- CACHE_NPM_DEPS: cache-npm
- CACHE_OUT_DIRECTORY: cache-out-directory
- CACHE_PIP_DEPS: cache-pip
- # Key for the cache created at the end of the the 'Cache ./pythonFiles/lib/python' step.
- CACHE_PYTHONFILES: cache-pvsc-pythonFiles
- ARTIFACT_NAME_VSIX: ms-python-insiders-vsix
- COVERAGE_REPORTS: tests-coverage-reports
- TEST_RESULTS_DIRECTORY: .
- LKG_TAG: ci-lkg
-
-jobs:
- ### Initialization: retrieve, install and cache dependencies
- python-deps:
- name: Install Python Requirements
- runs-on: ubuntu-latest
- if: github.repository == 'microsoft/vscode-python'
- steps:
- - name: Checkout
- uses: actions/checkout@v2
-
- - name: Show all env vars
- run: |
- printenv
- shell: bash
-
- - name: Use Python ${{env.PYTHON_VERSION}}
- uses: actions/setup-python@v2
- with:
- python-version: ${{env.PYTHON_VERSION}}
-
- - name: Upgrade pip
- run: python -m pip install -U pip
-
- - name: Install Python requirements
- run: |
- python -m pip --disable-pip-version-check install -t ./pythonFiles/lib/python --no-cache-dir --implementation py --no-deps --upgrade -r requirements.txt
-
- - name: Install debugpy with wheels
- run: |
- python -m pip install wheel
- python -m pip --disable-pip-version-check install -r build/debugger-install-requirements.txt
- python ./pythonFiles/install_debugpy.py
-
- # Retrieve the list of debugpy versions from PyPI in order to increase the specificity of the pip cache key,
- # so that the cache gets invalidated as necessary.
- # See https://github.com/microsoft/vscode-python/pull/9843#discussion_r373635221
- - name: curl PyPI to get debugpy versions
- run: curl --output debugpy.json https://pypi.org/pypi/debugpy/json
-
- - name: Cache pip files
- uses: actions/cache@v1
- with:
- path: ~/.cache/pip
- key: ${{runner.os}}-${{env.CACHE_PIP_DEPS}}-pip-${{env.PYTHON_VERSION}}-${{hashFiles('requirements.txt')}}-${{hashFiles('build/debugger-install-requirements.txt')}}-${{hashFiles('debugpy.json')}}
-
- - name: Cache ./pythonFiles/lib/python
- uses: actions/cache@v1
- with:
- path: ./pythonFiles/lib/python
- key: ${{runner.os}}-${{env.CACHE_PYTHONFILES}}-pythonFiles-${{env.PYTHON_VERSION}}-${{hashFiles('requirements.txt')}}-${{hashFiles('build/debugger-install-requirements.txt')}}-${{hashFiles('debugpy.json')}}
-
- js-ts-deps:
- name: Install npm dependencies
- runs-on: ubuntu-latest
- if: github.repository == 'microsoft/vscode-python'
- steps:
- - name: Checkout
- uses: actions/checkout@v2
-
- - name: Install dependencies (npm ci)
- run: npm ci --prefer-offline
-
- - name: Cache npm files
- uses: actions/cache@v1
- with:
- path: ~/.npm
- key: ${{runner.os}}-${{env.CACHE_NPM_DEPS}}-${{hashFiles('package-lock.json')}}
-
- ### Hygiene + VSIX upload
- compile-hygiene:
- name: Compile, lint, check for errors
- runs-on: ubuntu-latest
- if: github.repository == 'microsoft/vscode-python'
- needs: [js-ts-deps, python-deps]
- steps:
- - name: Checkout
- uses: actions/checkout@v2
-
- - name: Show all env vars
- run: |
- printenv
- shell: bash
-
- - name: Retrieve cached npm files
- uses: actions/cache@v1
- with:
- path: ~/.npm
- key: ${{runner.os}}-${{env.CACHE_NPM_DEPS}}-${{hashFiles('package-lock.json')}}
-
- - name: Install dependencies (npm ci)
- run: npm ci --prefer-offline
-
- - name: Run gulp prePublishNonBundle
- run: npx gulp prePublishNonBundle
-
- - name: Cache the out/ directory
- uses: actions/cache@v1
- with:
- path: ./out
- key: ${{runner.os}}-${{env.CACHE_OUT_DIRECTORY}}-${{hashFiles('src/**')}}
-
- - name: Check dependencies
- run: npm run checkDependencies
-
- - name: Run linting on TypeScript code
- run: npx tslint --project tsconfig.json
-
- - name: Run prettier on TypeScript code
- run: npx prettier 'src/**/*.ts*' --check
-
- - name: Run prettier on JavaScript code
- run: npx prettier 'build/**/*.js' --check
-
- - name: Use Python ${{env.PYTHON_VERSION}}
- uses: actions/setup-python@v2
- with:
- python-version: ${{env.PYTHON_VERSION}}
-
- - name: Run Black on Python code
- run: |
- python -m pip install -U black
- python -m black . --check
- working-directory: pythonFiles
-
- build-vsix:
- name: Build VSIX
- runs-on: ubuntu-latest
- if: github.repository == 'microsoft/vscode-python'
- needs: [python-deps, js-ts-deps]
- steps:
- - name: Checkout
- uses: actions/checkout@v2
-
- - name: Retrieve cached npm files
- uses: actions/cache@v1
- with:
- path: ~/.npm
- key: ${{runner.os}}-${{env.CACHE_NPM_DEPS}}-${{hashFiles('package-lock.json')}}
-
- - name: curl PyPI to get debugpy versions
- run: curl --output debugpy.json https://pypi.org/pypi/debugpy/json
-
- - name: Retrieve cached pythonFiles/ directory
- uses: actions/cache@v1
- with:
- path: ./pythonFiles/lib/python
- key: ${{runner.os}}-${{env.CACHE_PYTHONFILES}}-pythonFiles-${{env.PYTHON_VERSION}}-${{hashFiles('requirements.txt')}}-${{hashFiles('build/debugger-install-requirements.txt')}}-${{hashFiles('debugpy.json')}}
-
- - name: Install dependencies (npm ci)
- run: npm ci --prefer-offline
-
- - name: Clean directory
- run: npm run clean
-
- # Use the GITHUB_RUN_ID environment variable to update the build number.
- # GITHUB_RUN_ID is a unique number for each run within a repository.
- # This number does not change if you re-run the workflow run.
- - name: Update build number
- run: npm run updateBuildNumber -- --buildNumber $GITHUB_RUN_ID
-
- - name: Package the VSIX
- run: npm run package
-
- - uses: actions/upload-artifact@v1
- with:
- name: ${{env.ARTIFACT_NAME_VSIX}}
- path: ms-python-insiders.vsix
-
- ### Non-smoke tests
- tests:
- name: Tests
- # The value of runs-on is the OS of the current job (specified in the strategy matrix below) instead of being hardcoded.
- runs-on: ${{ matrix.os }}
- if: github.repository == 'microsoft/vscode-python'
- needs: [python-deps, js-ts-deps]
- strategy:
- fail-fast: false
- matrix:
- # We're not running CI on macOS for now because it's one less matrix entry to lower the number of runners used,
- # macOS runners are expensive, and we assume that Ubuntu is enough to cover the UNIX case.
- os: [ubuntu-latest, windows-latest]
- # Run the tests on the oldest and most recent versions of Python.
- python: [2.7, 3.8]
- test-suite: [ts-unit, python-unit, venv, single-workspace, multi-workspace, debugger, functional]
- env:
- # Something in Node 12.16.0 breaks the TS debug adapter, and ubuntu-latest bundles Node 12.16.1.
- # We can remove this when we switch over to the python-based DA in https://github.com/microsoft/vscode-python/issues/7136.
- # See https://github.com/microsoft/ptvsd/issues/2068
- # At this point pinning is only needed for consistency. We no longer have TS debug adapter.
- NODE_VERSION: 12.15.0
- steps:
- - name: Checkout
- uses: actions/checkout@v2
-
- - name: Show all env vars
- run: |
- printenv
- shell: bash
-
- - name: Retrieve cached npm files
- uses: actions/cache@v1
- with:
- path: ~/.npm
- key: ${{runner.os}}-${{env.CACHE_NPM_DEPS}}-${{hashFiles('package-lock.json')}}
-
- - name: Install dependencies (npm ci)
- run: npm ci
-
- - name: Retrieve cached compile output directory
- # Use an id for this step so that its cache-hit output can be accessed and checked in the next step.
- id: out-cache
- uses: actions/cache@v1
- with:
- path: ./out
- key: ${{runner.os}}-${{env.CACHE_OUT_DIRECTORY}}-${{hashFiles('src/**')}}
-
- - name: Compile if not cached
- run: npx gulp prePublishNonBundle
- if: steps.out-cache.outputs.cache-hit == false
-
- - name: Use Python ${{matrix.python}}
- uses: actions/setup-python@v2
- with:
- python-version: ${{matrix.python}}
-
- - name: Use Node ${{env.NODE_VERSION}}
- uses: actions/setup-node@v1
- with:
- node-version: ${{env.NODE_VERSION}}
-
- - name: curl PyPI to get debugpy versions
- run: curl --output debugpy.json https://pypi.org/pypi/debugpy/json
-
- # We're intentionally not retrieving cached Python requirements installation, as it appears that pulling the cache pulls in some extra libraries as well,
- # which causes problems with the tests. Also, running the installation seems much faster than retrieving it from cache.
- - name: Install Python requirements
- run: |
- python -m pip --disable-pip-version-check install -t ./pythonFiles/lib/python --no-cache-dir --implementation py --no-deps --upgrade -r requirements.txt
- # We need to have debugpy so that tests relying on it keep passing, but we don't need install_debugpy's logic in the test phase.
- python -m pip --disable-pip-version-check install -t ./pythonFiles/lib/python --no-cache-dir --implementation py --no-deps --upgrade --pre debugpy
-
- - name: Install test requirements
- run: python -m pip install --upgrade -r build/test-requirements.txt
-
- - name: pip install ipython requirements
- run: |
- python -m pip install numpy
- python -m pip install --upgrade -r ./build/ipython-test-requirements.txt
- if: matrix.test-suite == 'python-unit'
-
- - name: Install debugpy wheels (python 3.8)
- run: |
- python -m pip install wheel
- python -m pip --disable-pip-version-check install -r build/debugger-install-requirements.txt
- python ./pythonFiles/install_debugpy.py
- shell: bash
- if: matrix.test-suite == 'debugger' && matrix.python == 3.8
-
- - name: Install debugpy (python 2.7)
- run: |
- python -m pip --disable-pip-version-check install -t ./pythonFiles/lib/python --no-cache-dir --implementation py --no-deps --upgrade --pre debugpy
- shell: bash
- if: matrix.test-suite == 'debugger' && matrix.python == 2.7
-
- - name: Install functional test requirements
- run: |
- python -m pip install numpy
- python -m pip install --upgrade -r ./build/functional-test-requirements.txt
- if: matrix.test-suite == 'functional'
-
- - name: Prepare pipenv for venv tests
- env:
- TEST_FILES_SUFFIX: testvirtualenvs
- PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
- shell: pwsh
- if: matrix.test-suite == 'venv'
- run: |
- python -m pip install pipenv
- python -m pipenv run python ./build/ci/addEnvPath.py ${{env.PYTHON_VIRTUAL_ENVS_LOCATION}} pipenvPath
-
- - name: Prepare virtualenv for venv tests
- env:
- TEST_FILES_SUFFIX: testvirtualenvs
- PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
- shell: pwsh
- if: matrix.test-suite == 'venv'
- run: |
- python -m pip install virtualenv
- python -m virtualenv .virtualenv/
- if ('${{matrix.os}}' -match 'windows-latest') {
- & ".virtualenv/Scripts/python.exe" ./build/ci/addEnvPath.py ${{env.PYTHON_VIRTUAL_ENVS_LOCATION}} virtualEnvPath
- } else {
- & ".virtualenv/bin/python" ./build/ci/addEnvPath.py ${{env.PYTHON_VIRTUAL_ENVS_LOCATION}} virtualEnvPath
- }
-
- - name: Prepare venv for venv tests
- env:
- TEST_FILES_SUFFIX: testvirtualenvs
- PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
- shell: pwsh
- if: matrix.test-suite == 'venv' && startsWith(matrix.python, 3.)
- run: |
- python -m venv .venv
- if ('${{matrix.os}}' -match 'windows-latest') {
- & ".venv/Scripts/python.exe" ./build/ci/addEnvPath.py ${{env.PYTHON_VIRTUAL_ENVS_LOCATION}} venvPath
- } else {
- & ".venv/bin/python" ./build/ci/addEnvPath.py ${{env.PYTHON_VIRTUAL_ENVS_LOCATION}} venvPath
- }
-
- - name: Prepare conda for venv tests
- env:
- TEST_FILES_SUFFIX: testvirtualenvs
- PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
- shell: pwsh
- if: matrix.test-suite == 'venv'
- run: |
- # 1. For `terminalActivation.testvirtualenvs.test.ts`
- if ('${{matrix.os}}' -match 'windows-latest') {
- $condaPythonPath = Join-Path -Path $Env:CONDA -ChildPath python.exe
- $condaExecPath = Join-Path -Path $Env:CONDA -ChildPath Scripts | Join-Path -ChildPath conda
- } else{
- $condaPythonPath = Join-Path -Path $Env:CONDA -ChildPath bin | Join-Path -ChildPath python
- $condaExecPath = Join-Path -Path $Env:CONDA -ChildPath bin | Join-Path -ChildPath conda
- }
- & $condaPythonPath ./build/ci/addEnvPath.py ${{env.PYTHON_VIRTUAL_ENVS_LOCATION}} condaExecPath $condaExecPath
- & $condaPythonPath ./build/ci/addEnvPath.py ${{env.PYTHON_VIRTUAL_ENVS_LOCATION}} condaPath
-
- # 2. For `interpreterLocatorService.testvirtualenvs.ts`
-
- & $condaExecPath create -n "test_env1" -y python
- & $condaExecPath create -p "./test_env2" -y python
- & $condaExecPath create -p "~/test_env3" -y python
-
- - name: Set CI_PYTHON_PATH and CI_DISABLE_AUTO_SELECTION
- run: |
- echo "::set-env name=CI_PYTHON_PATH::python"
- echo "::set-env name=CI_DISABLE_AUTO_SELECTION::1"
- shell: bash
- if: matrix.test-suite != 'ts-unit'
-
- # Run TypeScript unit tests only for Python 3.X.
- - name: Run TypeScript unit tests
- run: npm run test:unittests:cover
- if: matrix.test-suite == 'ts-unit' && startsWith(matrix.python, 3.)
-
- # Upload unit test coverage reports for later use in the "reports" job.
- - name: Upload unit test coverage reports
- uses: actions/upload-artifact@v1
- with:
- name: ${{runner.os}}-${{env.COVERAGE_REPORTS}}
- path: .nyc_output
- if: matrix.test-suite == 'ts-unit' && startsWith(matrix.python, 3.)
-
- # Run the Python and IPython tests in our codebase.
- - name: Run Python and IPython unit tests
- run: |
- python pythonFiles/tests/run_all.py
- python -m IPython pythonFiles/tests/run_all.py
- if: matrix.test-suite == 'python-unit'
-
- # The virtual environment based tests use the `testSingleWorkspace` set of tests
- # with the environment variable `TEST_FILES_SUFFIX` set to `testvirtualenvs`,
- # which is set in the "Prepare environment for venv tests" step.
- # We also use a third-party GitHub Action to install xvfb on Linux,
- # run tests and then clean up the process once the tests ran.
- # See https://github.com/GabrielBB/xvfb-action
- - name: Run venv tests
- env:
- TEST_FILES_SUFFIX: testvirtualenvs
- CI_PYTHON_VERSION: ${{matrix.python}}
- uses: GabrielBB/xvfb-action@v1.0
- with:
- run: npm run testSingleWorkspace
- if: matrix.test-suite == 'venv'
-
- - name: Run single-workspace tests
- uses: GabrielBB/xvfb-action@v1.0
- with:
- run: npm run testSingleWorkspace
- if: matrix.test-suite == 'single-workspace'
-
- - name: Run multi-workspace tests
- uses: GabrielBB/xvfb-action@v1.0
- with:
- run: npm run testMultiWorkspace
- if: matrix.test-suite == 'multi-workspace'
-
- - name: Run debugger tests
- uses: GabrielBB/xvfb-action@v1.0
- with:
- run: npm run testDebugger
- if: matrix.test-suite == 'debugger'
-
- - name: Run functional tests
- run: npm run test:functional
- if: matrix.test-suite == 'functional'
-
- smoke-tests:
- name: Smoke tests
- # The value of runs-on is the OS of the current job (specified in the strategy matrix below) instead of being hardcoded.
- runs-on: ${{ matrix.os }}
- needs: [build-vsix]
- if: github.repository == 'microsoft/vscode-python'
- strategy:
- fail-fast: false
- matrix:
- # We're not running CI on macOS for now because it's one less matrix entry to lower the number of runners used,
- # macOS runners are expensive, and we assume that Ubuntu is enough to cover the UNIX case.
- os: [ubuntu-latest, windows-latest]
- python: [3.8]
- steps:
- - name: Checkout
- uses: actions/checkout@v2
-
- - name: Show all env vars
- run: |
- printenv
- shell: bash
-
- - name: Use Python ${{matrix.python}}
- uses: actions/setup-python@v2
- with:
- python-version: ${{matrix.python}}
-
- - name: Retrieve cached npm files
- uses: actions/cache@v1
- with:
- path: ~/.npm
- key: ${{runner.os}}-${{env.CACHE_NPM_DEPS}}-${{hashFiles('package-lock.json')}}
-
- - name: Install dependencies (npm ci)
- run: npm ci --prefer-offline
-
- - name: pip install system test requirements
- run: |
- python -m pip install --upgrade -r build/test-requirements.txt
- python -m pip --disable-pip-version-check install -t ./pythonFiles/lib/python --no-cache-dir --implementation py --no-deps --upgrade -r requirements.txt
- python -m pip --disable-pip-version-check install -t ./pythonFiles/lib/python --no-cache-dir --implementation py --no-deps --upgrade --pre debugpy
- shell: bash
-
- - name: pip install ipython requirements
- run: |
- python -m pip install numpy
- python -m pip install --upgrade -r ./build/ipython-test-requirements.txt
-
- - name: pip install jupyter
- run: |
- python -m pip install --upgrade jupyter
-
- - name: Download VSIX
- uses: actions/download-artifact@v1
- with:
- name: ${{env.ARTIFACT_NAME_VSIX}}
-
- # Extract the artifact from its download folder (./${{env.ARTIFACT_NAME_VSIX}}) to the repo root,
- # then delete the download folder and compile the source code.
- - name: Prepare for smoke tests
- run: |
- mv ${{env.ARTIFACT_NAME_VSIX}}/* .
- rm -r ${{env.ARTIFACT_NAME_VSIX}}
- npx tsc -p ./
- shell: bash
-
- - name: Set CI_PYTHON_PATH and CI_DISABLE_AUTO_SELECTION
- run: |
- echo "::set-env name=CI_PYTHON_PATH::python"
- echo "::set-env name=CI_DISABLE_AUTO_SELECTION::1"
- shell: bash
-
- - name: Run smoke tests
- env:
- DISPLAY: 10
- uses: GabrielBB/xvfb-action@v1.0
- with:
- run: node --no-force-async-hooks-checks ./out/test/smokeTest.js
-
- coverage:
- name: Coverage reports upload
- runs-on: ubuntu-latest
- if: github.repository == 'microsoft/vscode-python'
- needs: [tests, smoke-tests]
- steps:
- - name: Checkout
- uses: actions/checkout@v2
-
- - name: Retrieve cached npm files
- uses: actions/cache@v1
- with:
- path: ~/.npm
- key: ${{runner.os}}-${{env.CACHE_NPM_DEPS}}-${{hashFiles('package-lock.json')}}
-
- - name: Install dependencies (npm ci)
- run: npm ci --prefer-offline
-
- # It isn't possible to specify a regex for artifact names, so we have to download each artifact manually.
- # The name pattern is ${{runner.os}}-${{env.COVERAGE_REPORTS}}, and possible values for runner.os are `Linux`, `Windows`, or `macOS`.
- # See https://help.github.com/en/actions/reference/contexts-and-expression-syntax-for-github-actions#runner-context
- - name: Download Ubuntu test coverage artifacts
- uses: actions/download-artifact@v1
- with:
- name: Linux-${{env.COVERAGE_REPORTS}}
-
- - name: Extract Ubuntu coverage artifacts to ./nyc_output
- run: |
- mkdir .nyc_output
- mv Linux-${{env.COVERAGE_REPORTS}}/* .nyc_output
- rm -r Linux-${{env.COVERAGE_REPORTS}}
-
- - name: Generate coverage reports
- run: npm run test:cover:report
- continue-on-error: true
-
- - name: Upload coverage to codecov
- uses: codecov/codecov-action@v1
- with:
- CODECOV_TOKEN: ${{secrets.CODECOV_TOKEN}}
- file: ./coverage/cobertura-coverage.xml
-
- lkg-tag:
- # LKG = last known good
- name: Tag successful build as CI LKG
- runs-on: ubuntu-latest
- needs: [tests, smoke-tests]
- if: github.repository == 'microsoft/vscode-python'
- steps:
- - name: Delete existing tag
- run: |
- curl -s -X DELETE https://api.github.com/repos/microsoft/vscode-python/git/refs/tags/${{env.LKG_TAG}} \
- -H "Authorization: token ${{secrets.GITHUB_TOKEN}}"
-
- # We only need to create a tag reference for lightweight tags.
- # See https://developer.github.com/v3/git/tags/#create-a-tag-object
- # And https://developer.github.com/v3/git/refs/#create-a-reference
- - name: Create a tag reference
- run: |
- curl -s -X POST "https://api.github.com/repos/microsoft/vscode-python/git/refs" \
- -H "Authorization: token ${{secrets.GITHUB_TOKEN}}" \
- -d @- << EOF
- {
- "ref": "refs/tags/${{env.LKG_TAG}}",
- "sha": "${{github.sha}}"
- }
- EOF
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
new file mode 100644
index 000000000000..5528fbbe9c0a
--- /dev/null
+++ b/.github/workflows/codeql-analysis.yml
@@ -0,0 +1,70 @@
+# For most projects, this workflow file will not need changing; you simply need
+# to commit it to your repository.
+#
+# You may wish to alter this file to override the set of languages analyzed,
+# or to provide custom queries or build logic.
+name: 'CodeQL'
+
+on:
+ push:
+ branches:
+ - main
+ - release-*
+ - release/*
+ pull_request:
+ # The branches below must be a subset of the branches above
+ branches: [main]
+ schedule:
+ - cron: '0 3 * * 0'
+
+permissions:
+ security-events: write
+
+jobs:
+ analyze:
+ name: Analyze
+ runs-on: ubuntu-latest
+
+ strategy:
+ fail-fast: false
+ matrix:
+ # Override automatic language detection by changing the below list
+ # Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python']
+ language: ['javascript', 'python']
+ # Learn more...
+ # https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v6
+ with:
+ persist-credentials: false
+
+ # Initializes the CodeQL tools for scanning.
+ - name: Initialize CodeQL
+ uses: github/codeql-action/init@v4
+ with:
+ languages: ${{ matrix.language }}
+ # If you wish to specify custom queries, you can do so here or in a config file.
+ # By default, queries listed here will override any specified in a config file.
+ # Prefix the list here with "+" to use these queries and those in the config file.
+ # queries: ./path/to/local/query, your-org/your-repo/queries@main
+
+ # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
+ # If this step fails, then you should remove it and run the build manually (see below)
+ #- name: Autobuild
+ # uses: github/codeql-action/autobuild@v1
+
+ # ℹ️ Command-line programs to run using the OS shell.
+ # 📚 https://git.io/JvXDl
+
+ # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
+ # and modify them (or add more) to build your code if your project
+ # uses a compiled language
+
+ #- run: |
+ # make bootstrap
+ # make release
+
+ - name: Perform CodeQL Analysis
+ uses: github/codeql-action/analyze@v4
diff --git a/.github/workflows/community-feedback-auto-comment.yml b/.github/workflows/community-feedback-auto-comment.yml
new file mode 100644
index 000000000000..27f93400a023
--- /dev/null
+++ b/.github/workflows/community-feedback-auto-comment.yml
@@ -0,0 +1,28 @@
+name: Community Feedback Auto Comment
+
+on:
+ issues:
+ types:
+ - labeled
+jobs:
+ add-comment:
+ if: github.event.label.name == 'needs community feedback'
+ runs-on: ubuntu-latest
+ permissions:
+ issues: write
+ steps:
+ - name: Check For Existing Comment
+ uses: peter-evans/find-comment@b30e6a3c0ed37e7c023ccd3f1db5c6c0b0c23aad # v4.0.0
+ id: finder
+ with:
+ issue-number: ${{ github.event.issue.number }}
+ comment-author: 'github-actions[bot]'
+ body-includes: 'Thanks for the feature request! We are going to give the community'
+
+ - name: Add Community Feedback Comment
+ if: steps.finder.outputs.comment-id == ''
+ uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0
+ with:
+ issue-number: ${{ github.event.issue.number }}
+ body: |
+ Thanks for the feature request! We are going to give the community 60 days from when this issue was created to provide 7 👍 upvotes on the opening comment to gauge general interest in this idea. If there's enough upvotes then we will consider this feature request in our future planning. If there's unfortunately not enough upvotes then we will close this issue.
diff --git a/.github/workflows/gen-issue-velocity.yml b/.github/workflows/gen-issue-velocity.yml
new file mode 100644
index 000000000000..41d79e4074d0
--- /dev/null
+++ b/.github/workflows/gen-issue-velocity.yml
@@ -0,0 +1,34 @@
+name: Issues Summary
+
+on:
+ schedule:
+ - cron: '0 0 * * 2' # Runs every Tuesday at midnight
+ workflow_dispatch:
+
+permissions:
+ issues: read
+
+jobs:
+ generate-summary:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v6
+ with:
+ persist-credentials: false
+
+ - name: Set up Python
+ uses: actions/setup-python@v6
+ with:
+ python-version: '3.x'
+
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install requests
+
+ - name: Run summary script
+ run: python scripts/issue_velocity_summary_script.py
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/info-needed-closer.yml b/.github/workflows/info-needed-closer.yml
new file mode 100644
index 000000000000..46892a58e800
--- /dev/null
+++ b/.github/workflows/info-needed-closer.yml
@@ -0,0 +1,33 @@
+name: Info-Needed Closer
+on:
+ schedule:
+ - cron: 20 12 * * * # 5:20am Redmond
+ repository_dispatch:
+ types: [trigger-needs-more-info]
+ workflow_dispatch:
+
+permissions:
+ issues: write
+
+jobs:
+ main:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout Actions
+ uses: actions/checkout@v6
+ with:
+ repository: 'microsoft/vscode-github-triage-actions'
+ path: ./actions
+ persist-credentials: false
+ ref: stable
+ - name: Install Actions
+ run: npm install --production --prefix ./actions
+ - name: Run info-needed Closer
+ uses: ./actions/needs-more-info-closer
+ with:
+ token: ${{secrets.GITHUB_TOKEN}}
+ label: info-needed
+ closeDays: 30
+ closeComment: "Because we have not heard back with the information we requested, we are closing this issue for now. If you are able to provide the info later on, then we will be happy to re-open this issue to pick up where we left off. \n\nHappy Coding!"
+ pingDays: 30
+ pingComment: "Hey @${assignee}, this issue might need further attention.\n\n@${author}, you can help us out by closing this issue if the problem no longer exists, or adding more information."
diff --git a/.github/workflows/issue-labels.yml b/.github/workflows/issue-labels.yml
new file mode 100644
index 000000000000..dcbd114086e2
--- /dev/null
+++ b/.github/workflows/issue-labels.yml
@@ -0,0 +1,34 @@
+name: Issue labels
+
+on:
+ issues:
+ types: [opened, reopened]
+
+env:
+ TRIAGERS: '["karthiknadig","eleanorjboyd","anthonykim1"]'
+
+permissions:
+ issues: write
+
+jobs:
+ # From https://github.com/marketplace/actions/github-script#apply-a-label-to-an-issue.
+ add-classify-label:
+ name: "Add 'triage-needed' and remove assignees"
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout Actions
+ uses: actions/checkout@v6
+ with:
+ repository: 'microsoft/vscode-github-triage-actions'
+ ref: stable
+ path: ./actions
+ persist-credentials: false
+
+ - name: Install Actions
+ run: npm install --production --prefix ./actions
+
+ - name: "Add 'triage-needed' and remove assignees"
+ uses: ./actions/python-issue-labels
+ with:
+ triagers: ${{ env.TRIAGERS }}
+ token: ${{secrets.GITHUB_TOKEN}}
diff --git a/.github/workflows/lock-issues.yml b/.github/workflows/lock-issues.yml
new file mode 100644
index 000000000000..544d04ee185e
--- /dev/null
+++ b/.github/workflows/lock-issues.yml
@@ -0,0 +1,24 @@
+name: 'Lock Issues'
+
+on:
+ schedule:
+ - cron: '0 0 * * *'
+ workflow_dispatch:
+
+permissions:
+ issues: write
+
+concurrency:
+ group: lock
+
+jobs:
+ lock-issues:
+ runs-on: ubuntu-latest
+ steps:
+ - name: 'Lock Issues'
+ uses: dessant/lock-threads@7266a7ce5c1df01b1c6db85bf8cd86c737dadbe7 # v6.0.0
+ with:
+ github-token: ${{ github.token }}
+ issue-inactive-days: '30'
+ process-only: 'issues'
+ log-output: true
diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml
new file mode 100644
index 000000000000..c8a6f2dd416e
--- /dev/null
+++ b/.github/workflows/pr-check.yml
@@ -0,0 +1,689 @@
+name: PR/CI Check
+
+on:
+ pull_request:
+ push:
+ branches-ignore:
+ - main
+ - release*
+
+permissions: {}
+
+env:
+ NODE_VERSION: 22.21.1
+ PYTHON_VERSION: '3.10' # YML treats 3.10 the number as 3.1, so quotes around 3.10
+ MOCHA_REPORTER_JUNIT: true # Use the mocha-multi-reporters and send output to both console (spec) and JUnit (mocha-junit-reporter). Also enables a reporter which exits the process running the tests if it haven't already.
+ ARTIFACT_NAME_VSIX: ms-python-insiders-vsix
+ TEST_RESULTS_DIRECTORY: .
+ # Force a path with spaces and to test extension works in these scenarios
+ # Unicode characters are causing 2.7 failures so skip that for now.
+ special-working-directory: './path with spaces'
+ special-working-directory-relative: 'path with spaces'
+
+jobs:
+ build-vsix:
+ name: Create VSIX
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - os: windows-latest
+ target: x86_64-pc-windows-msvc
+ vsix-target: win32-x64
+ - os: windows-latest
+ target: aarch64-pc-windows-msvc
+ vsix-target: win32-arm64
+ - os: ubuntu-latest
+ target: x86_64-unknown-linux-musl
+ vsix-target: linux-x64
+ # - os: ubuntu-latest
+ # target: aarch64-unknown-linux-gnu
+ # vsix-target: linux-arm64
+ # - os: ubuntu-latest
+ # target: arm-unknown-linux-gnueabihf
+ # vsix-target: linux-armhf
+ # - os: macos-latest
+ # target: x86_64-apple-darwin
+ # vsix-target: darwin-x64
+ # - os: macos-14
+ # target: aarch64-apple-darwin
+ # vsix-target: darwin-arm64
+ - os: ubuntu-latest
+ target: x86_64-unknown-linux-musl
+ vsix-target: alpine-x64
+ # - os: ubuntu-latest
+ # target: aarch64-unknown-linux-musl
+ # vsix-target: alpine-arm64
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v6
+ with:
+ persist-credentials: false
+
+ - name: Checkout Python Environment Tools
+ uses: actions/checkout@v6
+ with:
+ repository: 'microsoft/python-environment-tools'
+ path: 'python-env-tools'
+ persist-credentials: false
+ sparse-checkout: |
+ crates
+ Cargo.toml
+ Cargo.lock
+ sparse-checkout-cone-mode: false
+
+ - name: Build VSIX
+ uses: ./.github/actions/build-vsix
+ with:
+ node_version: ${{ env.NODE_VERSION}}
+ vsix_name: 'ms-python-insiders-${{ matrix.vsix-target }}.vsix'
+ artifact_name: '${{ env.ARTIFACT_NAME_VSIX }}-${{ matrix.vsix-target }}'
+ cargo_target: ${{ matrix.target }}
+ vsix_target: ${{ matrix.vsix-target }}
+
+ lint:
+ name: Lint
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v6
+ with:
+ persist-credentials: false
+
+ - name: Lint
+ uses: ./.github/actions/lint
+ with:
+ node_version: ${{ env.NODE_VERSION }}
+
+ check-types:
+ name: Check Python types
+ runs-on: ubuntu-latest
+ steps:
+ - name: Use Python ${{ env.PYTHON_VERSION }}
+ uses: actions/setup-python@v6
+ with:
+ python-version: ${{ env.PYTHON_VERSION }}
+
+ - name: Checkout
+ uses: actions/checkout@v6
+ with:
+ persist-credentials: false
+
+ - name: Checkout Python Environment Tools
+ uses: actions/checkout@v6
+ with:
+ repository: 'microsoft/python-environment-tools'
+ path: 'python-env-tools'
+ persist-credentials: false
+ sparse-checkout: |
+ crates
+ Cargo.toml
+ Cargo.lock
+ sparse-checkout-cone-mode: false
+
+ - name: Install base Python requirements
+ uses: brettcannon/pip-secure-install@92f400e3191171c1858cc0e0d9ac6320173fdb0c # v1.0.0
+ with:
+ options: '-t ./python_files/lib/python --no-cache-dir --implementation py'
+
+ - name: Install Jedi requirements
+ uses: brettcannon/pip-secure-install@92f400e3191171c1858cc0e0d9ac6320173fdb0c # v1.0.0
+ with:
+ requirements-file: './python_files/jedilsp_requirements/requirements.txt'
+ options: '-t ./python_files/lib/jedilsp --no-cache-dir --implementation py'
+
+ - name: Install other Python requirements
+ run: |
+ python -m pip install --upgrade -r build/test-requirements.txt
+
+ - name: Run Pyright
+ uses: jakebailey/pyright-action@8ec14b5cfe41f26e5f41686a31eb6012758217ef # v3.0.2
+ with:
+ version: 1.1.308
+ working-directory: 'python_files'
+
+ python-tests:
+ name: Python Tests
+ # The value of runs-on is the OS of the current job (specified in the strategy matrix below) instead of being hardcoded.
+ runs-on: ${{ matrix.os }}
+ defaults:
+ run:
+ working-directory: ${{ env.special-working-directory }}
+ strategy:
+ fail-fast: false
+ matrix:
+ # We're not running CI on macOS for now because it's one less matrix entry to lower the number of runners used,
+ # macOS runners are expensive, and we assume that Ubuntu is enough to cover the Unix case.
+ os: [ubuntu-latest, windows-latest]
+ # Run the tests on the oldest and most recent versions of Python.
+ python: ['3.10', '3.x', '3.13'] # run for 3 pytest versions, most recent stable, oldest version supported and pre-release
+ pytest-version: ['pytest', 'pytest@pre-release', 'pytest==6.2.0']
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v6
+ with:
+ path: ${{ env.special-working-directory-relative }}
+ persist-credentials: false
+
+ - name: Use Python ${{ matrix.python }}
+ uses: actions/setup-python@v6
+ with:
+ python-version: ${{ matrix.python }}
+
+ - name: Install specific pytest version
+ if: matrix.pytest-version == 'pytest@pre-release'
+ run: |
+ python -m pip install --pre pytest
+
+ - name: Install specific pytest version
+ if: matrix.pytest-version != 'pytest@pre-release'
+ run: |
+ python -m pip install "${{ matrix.pytest-version }}"
+
+ - name: Install specific pytest version
+ run: python -m pytest --version
+ - name: Install base Python requirements
+ uses: brettcannon/pip-secure-install@92f400e3191171c1858cc0e0d9ac6320173fdb0c # v1.0.0
+ with:
+ requirements-file: '"${{ env.special-working-directory-relative }}/requirements.txt"'
+ options: '-t "${{ env.special-working-directory-relative }}/python_files/lib/python" --no-cache-dir --implementation py'
+
+ - name: Install test requirements
+ run: python -m pip install --upgrade -r build/test-requirements.txt
+
+ - name: Run Python unit tests
+ run: python python_files/tests/run_all.py
+
+ tests:
+ name: Tests
+ # The value of runs-on is the OS of the current job (specified in the strategy matrix below) instead of being hardcoded.
+ runs-on: ${{ matrix.os }}
+ defaults:
+ run:
+ working-directory: ${{ env.special-working-directory }}
+ strategy:
+ fail-fast: false
+ matrix:
+ # We're not running CI on macOS for now because it's one less matrix entry to lower the number of runners used,
+ # macOS runners are expensive, and we assume that Ubuntu is enough to cover the Unix case.
+ os: [ubuntu-latest, windows-latest]
+ # Run the tests on the oldest and most recent versions of Python.
+ python: ['3.x']
+ test-suite: [ts-unit, venv, single-workspace, debugger, functional]
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v6
+ with:
+ path: ${{ env.special-working-directory-relative }}
+ persist-credentials: false
+
+ - name: Checkout Python Environment Tools
+ uses: actions/checkout@v6
+ with:
+ repository: 'microsoft/python-environment-tools'
+ path: ${{ env.special-working-directory-relative }}/python-env-tools
+ persist-credentials: false
+ sparse-checkout: |
+ crates
+ Cargo.toml
+ Cargo.lock
+ sparse-checkout-cone-mode: false
+
+ - name: Install Node
+ uses: actions/setup-node@v6
+ with:
+ node-version: ${{ env.NODE_VERSION }}
+ cache: 'npm'
+ cache-dependency-path: ${{ env.special-working-directory-relative }}/package-lock.json
+
+ - name: Install dependencies (npm ci)
+ run: npm ci
+
+ - name: Compile
+ run: npx gulp prePublishNonBundle
+
+ - name: Localization
+ run: npx @vscode/l10n-dev@latest export ./src
+
+ - name: Use Python ${{ matrix.python }}
+ uses: actions/setup-python@v6
+ with:
+ python-version: ${{ matrix.python }}
+
+ - name: Upgrade Pip
+ run: python -m pip install -U pip
+
+ # For faster/better builds of sdists.
+ - name: Install build pre-requisite
+ run: python -m pip install wheel nox
+
+ - name: Install Python Extension dependencies (jedi, etc.)
+ run: nox --session install_python_libs
+
+ - name: Install test requirements
+ run: python -m pip install --upgrade -r build/test-requirements.txt
+
+ - name: Rust Tool Chain setup
+ uses: dtolnay/rust-toolchain@stable
+
+ - name: Build Native Binaries
+ run: nox --session native_build
+ shell: bash
+
+ - name: Install functional test requirements
+ run: python -m pip install --upgrade -r ./build/functional-test-requirements.txt
+ if: matrix.test-suite == 'functional'
+
+ - name: Prepare pipenv for venv tests
+ env:
+ TEST_FILES_SUFFIX: testvirtualenvs
+ PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
+ shell: pwsh
+ if: matrix.test-suite == 'venv'
+ run: |
+ python -m pip install pipenv
+ python -m pipenv run python ./build/ci/addEnvPath.py ${{ env.PYTHON_VIRTUAL_ENVS_LOCATION }} pipenvPath
+
+ - name: Prepare poetry for venv tests
+ env:
+ TEST_FILES_SUFFIX: testvirtualenvs
+ shell: pwsh
+ if: matrix.test-suite == 'venv'
+ run: |
+ python -m pip install poetry
+ Move-Item -Path ".\build\ci\pyproject.toml" -Destination .
+ poetry env use python
+
+ - name: Prepare virtualenv for venv tests
+ env:
+ TEST_FILES_SUFFIX: testvirtualenvs
+ PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
+ shell: pwsh
+ if: matrix.test-suite == 'venv'
+ run: |
+ python -m pip install virtualenv
+ python -m virtualenv .virtualenv/
+ if ('${{ matrix.os }}' -match 'windows-latest') {
+ & ".virtualenv/Scripts/python.exe" ./build/ci/addEnvPath.py ${{ env.PYTHON_VIRTUAL_ENVS_LOCATION }} virtualEnvPath
+ } else {
+ & ".virtualenv/bin/python" ./build/ci/addEnvPath.py ${{ env.PYTHON_VIRTUAL_ENVS_LOCATION }} virtualEnvPath
+ }
+
+ - name: Prepare venv for venv tests
+ env:
+ TEST_FILES_SUFFIX: testvirtualenvs
+ PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
+ shell: pwsh
+ if: matrix.test-suite == 'venv' && startsWith(matrix.python, 3.)
+ run: |
+ python -m venv .venv
+ if ('${{ matrix.os }}' -match 'windows-latest') {
+ & ".venv/Scripts/python.exe" ./build/ci/addEnvPath.py ${{ env.PYTHON_VIRTUAL_ENVS_LOCATION }} venvPath
+ } else {
+ & ".venv/bin/python" ./build/ci/addEnvPath.py ${{ env.PYTHON_VIRTUAL_ENVS_LOCATION }} venvPath
+ }
+
+ - name: Prepare conda for venv tests
+ env:
+ TEST_FILES_SUFFIX: testvirtualenvs
+ PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
+ shell: pwsh
+ if: matrix.test-suite == 'venv'
+ run: |
+ # 1. For `*.testvirtualenvs.test.ts`
+ if ('${{ matrix.os }}' -match 'windows-latest') {
+ $condaPythonPath = Join-Path -Path $Env:CONDA -ChildPath python.exe
+ $condaExecPath = Join-Path -Path $Env:CONDA -ChildPath Scripts | Join-Path -ChildPath conda
+ } else{
+ $condaPythonPath = Join-Path -Path $Env:CONDA -ChildPath bin | Join-Path -ChildPath python
+ $condaExecPath = Join-Path -Path $Env:CONDA -ChildPath bin | Join-Path -ChildPath conda
+ }
+ & $condaPythonPath ./build/ci/addEnvPath.py ${{ env.PYTHON_VIRTUAL_ENVS_LOCATION }} condaExecPath $condaExecPath
+ & $condaPythonPath ./build/ci/addEnvPath.py ${{ env.PYTHON_VIRTUAL_ENVS_LOCATION }} condaPath
+ & $condaExecPath init --all
+
+ - name: Set CI_PYTHON_PATH and CI_DISABLE_AUTO_SELECTION
+ run: |
+ echo "CI_PYTHON_PATH=python" >> $GITHUB_ENV
+ echo "CI_DISABLE_AUTO_SELECTION=1" >> $GITHUB_ENV
+ shell: bash
+ if: matrix.test-suite != 'ts-unit'
+
+ # Run TypeScript unit tests only for Python 3.X.
+ - name: Run TypeScript unit tests
+ run: npm run test:unittests
+ if: matrix.test-suite == 'ts-unit' && startsWith(matrix.python, 3.)
+
+ # The virtual environment based tests use the `testSingleWorkspace` set of tests
+ # with the environment variable `TEST_FILES_SUFFIX` set to `testvirtualenvs`,
+ # which is set in the "Prepare environment for venv tests" step.
+ # We also use a third-party GitHub Action to install xvfb on Linux,
+ # run tests and then clean up the process once the tests ran.
+ # See https://github.com/GabrielBB/xvfb-action
+ - name: Run venv tests
+ env:
+ TEST_FILES_SUFFIX: testvirtualenvs
+ CI_PYTHON_VERSION: ${{ matrix.python }}
+ uses: GabrielBB/xvfb-action@b706e4e27b14669b486812790492dc50ca16b465 # v1.7
+ with:
+ run: npm run testSingleWorkspace
+ working-directory: ${{ env.special-working-directory }}
+ if: matrix.test-suite == 'venv'
+
+ - name: Run single-workspace tests
+ env:
+ CI_PYTHON_VERSION: ${{ matrix.python }}
+ uses: GabrielBB/xvfb-action@b706e4e27b14669b486812790492dc50ca16b465 # v1.7
+ with:
+ run: npm run testSingleWorkspace
+ working-directory: ${{ env.special-working-directory }}
+ if: matrix.test-suite == 'single-workspace'
+
+ - name: Run debugger tests
+ env:
+ CI_PYTHON_VERSION: ${{ matrix.python }}
+ uses: GabrielBB/xvfb-action@b706e4e27b14669b486812790492dc50ca16b465 # v1.7
+ with:
+ run: npm run testDebugger
+ working-directory: ${{ env.special-working-directory }}
+ if: matrix.test-suite == 'debugger'
+
+ # Run TypeScript functional tests
+ - name: Run TypeScript functional tests
+ run: npm run test:functional
+ if: matrix.test-suite == 'functional'
+
+ native-tests:
+ name: Native Tests
+ # The value of runs-on is the OS of the current job (specified in the strategy matrix below) instead of being hardcoded.
+ runs-on: ${{ matrix.os }}
+ defaults:
+ run:
+ working-directory: ${{ env.special-working-directory }}
+ strategy:
+ fail-fast: false
+ matrix:
+ # We're not running CI on macOS for now because it's one less matrix entry to lower the number of runners used,
+ # macOS runners are expensive, and we assume that Ubuntu is enough to cover the Unix case.
+ os: [ubuntu-latest, windows-latest]
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v6
+ with:
+ path: ${{ env.special-working-directory-relative }}
+ persist-credentials: false
+
+ - name: Checkout Python Environment Tools
+ uses: actions/checkout@v6
+ with:
+ repository: 'microsoft/python-environment-tools'
+ path: ${{ env.special-working-directory-relative }}/python-env-tools
+ persist-credentials: false
+ sparse-checkout: |
+ crates
+ Cargo.toml
+ Cargo.lock
+ sparse-checkout-cone-mode: false
+
+ - name: Python Environment Tools tests
+ run: cargo test -- --nocapture
+ working-directory: ${{ env.special-working-directory }}/python-env-tools
+
+ smoke-tests:
+ name: Smoke tests
+ # The value of runs-on is the OS of the current job (specified in the strategy matrix below) instead of being hardcoded.
+ runs-on: ${{ matrix.os }}
+ needs: [build-vsix]
+ strategy:
+ fail-fast: false
+ matrix:
+ # We're not running CI on macOS for now because it's one less matrix entry to lower the number of runners used,
+ # macOS runners are expensive, and we assume that Ubuntu is enough to cover the UNIX case.
+ include:
+ - os: windows-latest
+ vsix-target: win32-x64
+ - os: ubuntu-latest
+ vsix-target: linux-x64
+
+ steps:
+ # Need the source to have the tests available.
+ - name: Checkout
+ uses: actions/checkout@v6
+ with:
+ persist-credentials: false
+
+ - name: Checkout Python Environment Tools
+ uses: actions/checkout@v6
+ with:
+ repository: 'microsoft/python-environment-tools'
+ path: python-env-tools
+ persist-credentials: false
+ sparse-checkout: |
+ crates
+ Cargo.toml
+ Cargo.lock
+ sparse-checkout-cone-mode: false
+
+ - name: Smoke tests
+ uses: ./.github/actions/smoke-tests
+ with:
+ node_version: ${{ env.NODE_VERSION }}
+ artifact_name: '${{ env.ARTIFACT_NAME_VSIX }}-${{ matrix.vsix-target }}'
+
+ ### Coverage run
+ coverage:
+ name: Coverage
+ # TEMPORARILY DISABLED - hanging in CI, needs investigation
+ if: false
+ # The value of runs-on is the OS of the current job (specified in the strategy matrix below) instead of being hardcoded.
+ runs-on: ${{ matrix.os }}
+ needs: [lint, check-types, python-tests, tests, native-tests]
+ strategy:
+ fail-fast: false
+ matrix:
+ # Only run coverage on linux for PRs
+ os: [ubuntu-latest]
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v6
+ with:
+ persist-credentials: false
+
+ - name: Checkout Python Environment Tools
+ uses: actions/checkout@v6
+ with:
+ repository: 'microsoft/python-environment-tools'
+ path: python-env-tools
+ persist-credentials: false
+ sparse-checkout: |
+ crates
+ Cargo.toml
+ Cargo.lock
+ sparse-checkout-cone-mode: false
+
+ - name: Install Node
+ uses: actions/setup-node@v6
+ with:
+ node-version: ${{ env.NODE_VERSION }}
+ cache: 'npm'
+
+ - name: Install dependencies (npm ci)
+ run: npm ci
+
+ - name: Compile
+ run: npx gulp prePublishNonBundle
+
+ - name: Localization
+ run: npx @vscode/l10n-dev@latest export ./src
+
+ - name: Use Python ${{ env.PYTHON_VERSION }}
+ uses: actions/setup-python@v6
+ with:
+ python-version: ${{ env.PYTHON_VERSION }}
+ cache: 'pip'
+ cache-dependency-path: |
+ requirements.txt
+ python_files/jedilsp_requirements/requirements.txt
+ build/test-requirements.txt
+ build/functional-test-requirements.txt
+
+ - name: Install base Python requirements
+ uses: brettcannon/pip-secure-install@92f400e3191171c1858cc0e0d9ac6320173fdb0c # v1.0.0
+ with:
+ options: '-t ./python_files/lib/python --implementation py'
+
+ - name: Install Jedi requirements
+ uses: brettcannon/pip-secure-install@92f400e3191171c1858cc0e0d9ac6320173fdb0c # v1.0.0
+ with:
+ requirements-file: './python_files/jedilsp_requirements/requirements.txt'
+ options: '-t ./python_files/lib/jedilsp --implementation py'
+
+ - name: Install build pre-requisite
+ run: python -m pip install wheel nox
+ shell: bash
+
+ - name: Rust Tool Chain setup
+ uses: dtolnay/rust-toolchain@stable
+
+ - name: Build Native Binaries
+ run: nox --session native_build
+ shell: bash
+
+ - name: Install test requirements
+ run: python -m pip install --upgrade -r build/test-requirements.txt
+
+ - name: Install functional test requirements
+ run: python -m pip install --upgrade -r ./build/functional-test-requirements.txt
+
+ - name: Prepare pipenv for venv tests
+ env:
+ TEST_FILES_SUFFIX: testvirtualenvs
+ PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
+ shell: pwsh
+ run: |
+ python -m pip install pipenv
+ python -m pipenv run python ./build/ci/addEnvPath.py ${{ env.PYTHON_VIRTUAL_ENVS_LOCATION }} pipenvPath
+
+ - name: Prepare poetry for venv tests
+ env:
+ TEST_FILES_SUFFIX: testvirtualenvs
+ shell: pwsh
+ run: |
+ python -m pip install poetry
+ Move-Item -Path ".\build\ci\pyproject.toml" -Destination .
+ poetry env use python
+
+ - name: Prepare virtualenv for venv tests
+ env:
+ TEST_FILES_SUFFIX: testvirtualenvs
+ PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
+ shell: pwsh
+ run: |
+ python -m pip install virtualenv
+ python -m virtualenv .virtualenv/
+ if ('${{ matrix.os }}' -match 'windows-latest') {
+ & ".virtualenv/Scripts/python.exe" ./build/ci/addEnvPath.py ${{ env.PYTHON_VIRTUAL_ENVS_LOCATION }} virtualEnvPath
+ } else {
+ & ".virtualenv/bin/python" ./build/ci/addEnvPath.py ${{ env.PYTHON_VIRTUAL_ENVS_LOCATION }} virtualEnvPath
+ }
+
+ - name: Prepare venv for venv tests
+ env:
+ TEST_FILES_SUFFIX: testvirtualenvs
+ PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
+ shell: pwsh
+ run: |
+ python -m venv .venv
+ if ('${{ matrix.os }}' -match 'windows-latest') {
+ & ".venv/Scripts/python.exe" ./build/ci/addEnvPath.py ${{ env.PYTHON_VIRTUAL_ENVS_LOCATION }} venvPath
+ } else {
+ & ".venv/bin/python" ./build/ci/addEnvPath.py ${{ env.PYTHON_VIRTUAL_ENVS_LOCATION }} venvPath
+ }
+
+ - name: Prepare conda for venv tests
+ env:
+ TEST_FILES_SUFFIX: testvirtualenvs
+ PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
+ shell: pwsh
+ run: |
+ # 1. For `*.testvirtualenvs.test.ts`
+ if ('${{ matrix.os }}' -match 'windows-latest') {
+ $condaPythonPath = Join-Path -Path $Env:CONDA -ChildPath python.exe
+ $condaExecPath = Join-Path -Path $Env:CONDA -ChildPath Scripts | Join-Path -ChildPath conda
+ } else{
+ $condaPythonPath = Join-Path -Path $Env:CONDA -ChildPath bin | Join-Path -ChildPath python
+ $condaExecPath = Join-Path -Path $Env:CONDA -ChildPath bin | Join-Path -ChildPath conda
+ }
+ & $condaPythonPath ./build/ci/addEnvPath.py ${{ env.PYTHON_VIRTUAL_ENVS_LOCATION }} condaExecPath $condaExecPath
+ & $condaPythonPath ./build/ci/addEnvPath.py ${{ env.PYTHON_VIRTUAL_ENVS_LOCATION }} condaPath
+ & $condaExecPath init --all
+
+ - name: Run TypeScript unit tests
+ run: npm run test:unittests:cover
+
+ - name: Run Python unit tests
+ run: |
+ python python_files/tests/run_all.py
+
+ # The virtual environment based tests use the `testSingleWorkspace` set of tests
+ # with the environment variable `TEST_FILES_SUFFIX` set to `testvirtualenvs`,
+ # which is set in the "Prepare environment for venv tests" step.
+ # We also use a third-party GitHub Action to install xvfb on Linux,
+ # run tests and then clean up the process once the tests ran.
+ # See https://github.com/GabrielBB/xvfb-action
+ - name: Run venv tests
+ env:
+ TEST_FILES_SUFFIX: testvirtualenvs
+ CI_PYTHON_VERSION: ${{ env.PYTHON_VERSION }}
+ CI_DISABLE_AUTO_SELECTION: 1
+ uses: GabrielBB/xvfb-action@b706e4e27b14669b486812790492dc50ca16b465 # v1.7
+ with:
+ run: npm run testSingleWorkspace:cover
+
+ - name: Run single-workspace tests
+ env:
+ CI_PYTHON_VERSION: ${{ env.PYTHON_VERSION }}
+ CI_DISABLE_AUTO_SELECTION: 1
+ uses: GabrielBB/xvfb-action@b706e4e27b14669b486812790492dc50ca16b465 # v1.7
+ with:
+ run: npm run testSingleWorkspace:cover
+
+ # Enable these tests when coverage is setup for multiroot workspace tests
+ # - name: Run multi-workspace tests
+ # env:
+ # CI_PYTHON_VERSION: ${{ env.PYTHON_VERSION }}
+ # CI_DISABLE_AUTO_SELECTION: 1
+ # uses: GabrielBB/xvfb-action@b706e4e27b14669b486812790492dc50ca16b465 # v1.7
+ # with:
+ # run: npm run testMultiWorkspace:cover
+
+ # Enable these tests when coverage is setup for debugger tests
+ # - name: Run debugger tests
+ # env:
+ # CI_PYTHON_VERSION: ${{ env.PYTHON_VERSION }}
+ # CI_DISABLE_AUTO_SELECTION: 1
+ # uses: GabrielBB/xvfb-action@b706e4e27b14669b486812790492dc50ca16b465 # v1.7
+ # with:
+ # run: npm run testDebugger:cover
+
+ # Run TypeScript functional tests
+ - name: Run TypeScript functional tests
+ env:
+ CI_PYTHON_VERSION: ${{ env.PYTHON_VERSION }}
+ CI_DISABLE_AUTO_SELECTION: 1
+ run: npm run test:functional:cover
+
+ - name: Generate coverage reports
+ run: npm run test:cover:report
+
+ - name: Upload HTML report
+ uses: actions/upload-artifact@v7
+ with:
+ name: ${{ runner.os }}-coverage-report-html
+ path: ./coverage
+ retention-days: 1
diff --git a/.github/workflows/pr-file-check.yml b/.github/workflows/pr-file-check.yml
new file mode 100644
index 000000000000..6364e5fa744e
--- /dev/null
+++ b/.github/workflows/pr-file-check.yml
@@ -0,0 +1,44 @@
+name: PR files
+
+on:
+ pull_request:
+ types:
+ - 'opened'
+ - 'reopened'
+ - 'synchronize'
+ - 'labeled'
+ - 'unlabeled'
+
+permissions: {}
+
+jobs:
+ changed-files-in-pr:
+ name: 'Check for changed files'
+ runs-on: ubuntu-latest
+ steps:
+ - name: 'package-lock.json matches package.json'
+ uses: brettcannon/check-for-changed-files@871d7b8b5917a4f6f06662e2262e8ffc51dff6d1 # v1.2.1
+ with:
+ prereq-pattern: 'package.json'
+ file-pattern: 'package-lock.json'
+ skip-label: 'skip package*.json'
+ failure-message: '${prereq-pattern} was edited but ${file-pattern} was not (the ${skip-label} label can be used to pass this check)'
+
+ - name: 'package.json matches package-lock.json'
+ uses: brettcannon/check-for-changed-files@871d7b8b5917a4f6f06662e2262e8ffc51dff6d1 # v1.2.1
+ with:
+ prereq-pattern: 'package-lock.json'
+ file-pattern: 'package.json'
+ skip-label: 'skip package*.json'
+ failure-message: '${prereq-pattern} was edited but ${file-pattern} was not (the ${skip-label} label can be used to pass this check)'
+
+ - name: 'Tests'
+ uses: brettcannon/check-for-changed-files@871d7b8b5917a4f6f06662e2262e8ffc51dff6d1 # v1.2.1
+ with:
+ prereq-pattern: src/**/*.ts
+ file-pattern: |
+ src/**/*.test.ts
+ src/**/*.testvirtualenvs.ts
+ .github/test_plan.md
+ skip-label: 'skip tests'
+ failure-message: 'TypeScript code was edited without also editing a ${file-pattern} file; see the Testing page in our wiki on testing guidelines (the ${skip-label} label can be used to pass this check)'
diff --git a/.github/workflows/pr-issue-check.yml b/.github/workflows/pr-issue-check.yml
new file mode 100644
index 000000000000..5587227d2848
--- /dev/null
+++ b/.github/workflows/pr-issue-check.yml
@@ -0,0 +1,31 @@
+name: PR issue check
+
+on:
+ pull_request:
+ types:
+ - 'opened'
+ - 'reopened'
+ - 'synchronize'
+ - 'labeled'
+ - 'unlabeled'
+
+permissions: {}
+
+jobs:
+ check-for-attached-issue:
+ name: 'Check for attached issue'
+ runs-on: ubuntu-latest
+ steps:
+ - name: 'Ensure PR has an associated issue'
+ uses: actions/github-script@v9
+ with:
+ script: |
+ const labels = context.payload.pull_request.labels.map(label => label.name);
+ if (!labels.includes('skip-issue-check')) {
+ const prBody = context.payload.pull_request.body || '';
+ const issueLink = prBody.match(/https:\/\/github\.com\/\S+\/issues\/\d+/);
+ const issueReference = prBody.match(/#\d+/);
+ if (!issueLink && !issueReference) {
+ core.setFailed('No associated issue found in the PR description.');
+ }
+ }
diff --git a/.github/workflows/pr-labels.yml b/.github/workflows/pr-labels.yml
new file mode 100644
index 000000000000..af24ac10772c
--- /dev/null
+++ b/.github/workflows/pr-labels.yml
@@ -0,0 +1,24 @@
+name: 'PR labels'
+on:
+ pull_request:
+ types:
+ - 'opened'
+ - 'reopened'
+ - 'labeled'
+ - 'unlabeled'
+ - 'synchronize'
+
+jobs:
+ classify:
+ name: 'Classify PR'
+ runs-on: ubuntu-latest
+ permissions:
+ issues: write
+ pull-requests: write
+ steps:
+ - name: 'PR impact specified'
+ uses: mheap/github-action-required-labels@0ac283b4e65c1fb28ce6079dea5546ceca98ccbe # v5.5.2
+ with:
+ mode: exactly
+ count: 1
+ labels: 'bug, debt, feature-request, no-changelog'
diff --git a/.github/workflows/python27-issue-response.yml b/.github/workflows/python27-issue-response.yml
new file mode 100644
index 000000000000..9db84bca1a23
--- /dev/null
+++ b/.github/workflows/python27-issue-response.yml
@@ -0,0 +1,16 @@
+on:
+ issues:
+ types: [opened]
+
+jobs:
+ python27-issue-response:
+ runs-on: ubuntu-latest
+ permissions:
+ issues: write
+ if: "contains(github.event.issue.body, 'Python version (& distribution if applicable, e.g. Anaconda): 2.7')"
+ steps:
+ - name: Check for Python 2.7 string
+ run: |
+ response="We're sorry, but we no longer support Python 2.7. If you need to work with Python 2.7, you will have to pin to 2022.2.* version of the extension, which was the last version that had the debugger (debugpy) with support for python 2.7, and was tested with `2.7`. Thank you for your understanding! \n "
+ gh issue comment ${{ github.event.issue.number }} --body "$response"
+ gh issue close ${{ github.event.issue.number }}
diff --git a/.github/workflows/remove-needs-labels.yml b/.github/workflows/remove-needs-labels.yml
new file mode 100644
index 000000000000..24352526d0d8
--- /dev/null
+++ b/.github/workflows/remove-needs-labels.yml
@@ -0,0 +1,20 @@
+name: 'Remove Needs Label'
+on:
+ issues:
+ types: [closed]
+
+jobs:
+ classify:
+ name: 'Remove needs labels on issue closing'
+ runs-on: ubuntu-latest
+ permissions:
+ issues: write
+ steps:
+ - name: 'Removes needs labels on issue close'
+ uses: actions-ecosystem/action-remove-labels@2ce5d41b4b6aa8503e285553f75ed56e0a40bae0 # v1.3.0
+ with:
+ labels: |
+ needs PR
+ needs spike
+ needs community feedback
+ needs proposal
diff --git a/.github/workflows/test-plan-item-validator.yml b/.github/workflows/test-plan-item-validator.yml
new file mode 100644
index 000000000000..57db4a3e18a7
--- /dev/null
+++ b/.github/workflows/test-plan-item-validator.yml
@@ -0,0 +1,30 @@
+name: Test Plan Item Validator
+on:
+ issues:
+ types: [edited, labeled]
+
+permissions:
+ issues: write
+
+jobs:
+ main:
+ runs-on: ubuntu-latest
+ if: contains(github.event.issue.labels.*.name, 'testplan-item') || contains(github.event.issue.labels.*.name, 'invalid-testplan-item')
+ steps:
+ - name: Checkout Actions
+ uses: actions/checkout@v6
+ with:
+ repository: 'microsoft/vscode-github-triage-actions'
+ path: ./actions
+ persist-credentials: false
+ ref: stable
+
+ - name: Install Actions
+ run: npm install --production --prefix ./actions
+
+ - name: Run Test Plan Item Validator
+ uses: ./actions/test-plan-item-validator
+ with:
+ label: testplan-item
+ invalidLabel: invalid-testplan-item
+ comment: Invalid test plan item. See errors below and the [test plan item spec](https://github.com/microsoft/vscode/wiki/Writing-Test-Plan-Items) for more information. This comment will go away when the issues are resolved.
diff --git a/.github/workflows/triage-info-needed.yml b/.github/workflows/triage-info-needed.yml
new file mode 100644
index 000000000000..c7a37ba0c78d
--- /dev/null
+++ b/.github/workflows/triage-info-needed.yml
@@ -0,0 +1,57 @@
+name: Triage "info-needed" label
+
+on:
+ issue_comment:
+ types: [created]
+
+env:
+ TRIAGERS: '["karrtikr","karthiknadig","paulacamargo25","eleanorjboyd", "brettcannon","anthonykim1"]'
+
+jobs:
+ add_label:
+ if: contains(github.event.issue.labels.*.name, 'triage-needed') && !contains(github.event.issue.labels.*.name, 'info-needed')
+ runs-on: ubuntu-latest
+ permissions:
+ issues: write
+ steps:
+ - name: Checkout Actions
+ uses: actions/checkout@v6
+ with:
+ repository: 'microsoft/vscode-github-triage-actions'
+ ref: stable
+ path: ./actions
+ persist-credentials: false
+
+ - name: Install Actions
+ run: npm install --production --prefix ./actions
+
+ - name: Add "info-needed" label
+ uses: ./actions/python-triage-info-needed
+ with:
+ triagers: ${{ env.TRIAGERS }}
+ action: 'add'
+ token: ${{secrets.GITHUB_TOKEN}}
+
+ remove_label:
+ if: contains(github.event.issue.labels.*.name, 'info-needed') && contains(github.event.issue.labels.*.name, 'triage-needed')
+ runs-on: ubuntu-latest
+ permissions:
+ issues: write
+ steps:
+ - name: Checkout Actions
+ uses: actions/checkout@v6
+ with:
+ repository: 'microsoft/vscode-github-triage-actions'
+ ref: stable
+ path: ./actions
+ persist-credentials: false
+
+ - name: Install Actions
+ run: npm install --production --prefix ./actions
+
+ - name: Remove "info-needed" label
+ uses: ./actions/python-triage-info-needed
+ with:
+ triagers: ${{ env.TRIAGERS }}
+ action: 'remove'
+ token: ${{secrets.GITHUB_TOKEN}}
diff --git a/.gitignore b/.gitignore
index 1ccb649e514f..2fa056f84fa6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,6 +5,7 @@ log.log
**/node_modules
*.pyc
*.vsix
+envVars.txt
**/.vscode/.ropeproject/**
**/testFiles/**/.cache/**
*.noseids
@@ -22,7 +23,8 @@ cucumber-report.json
**/.venv*/
port.txt
precommit.hook
-pythonFiles/lib/**
+python_files/lib/**
+python_files/get-pip.py
debug_coverage*/**
languageServer/**
languageServer.*/**
@@ -32,7 +34,7 @@ obj/**
tmp/**
.python-version
.vs/
-test-results.xml
+test-results*.xml
xunit-test-results.xml
build/ci/performance/performance-results.json
!build/
@@ -41,3 +43,16 @@ debugpy*.log
pydevd*.log
nodeLanguageServer/**
nodeLanguageServer.*/**
+dist/**
+# translation files
+*.xlf
+package.nls.*.json
+l10n/
+python-env-tools/**
+# coverage files produced as test output
+python_files/tests/*/.data/.coverage*
+python_files/tests/*/.data/*/.coverage*
+src/testTestingRootWkspc/coverageWorkspace/.coverage
+
+# ignore ai artifacts generated and placed in this folder
+ai-artifacts/*
diff --git a/.nvmrc b/.nvmrc
index 764b945d130f..c6a66a6e6a68 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1 +1 @@
-v12.15.0
+v22.21.1
diff --git a/.prettierrc.js b/.prettierrc.js
index e584661edd38..87a94b7bf466 100644
--- a/.prettierrc.js
+++ b/.prettierrc.js
@@ -3,19 +3,13 @@ module.exports = {
printWidth: 120,
tabWidth: 4,
endOfLine: 'auto',
- trailingComma: 'none',
+ trailingComma: 'all',
overrides: [
{
files: ['*.yml', '*.yaml'],
options: {
tabWidth: 2
}
- },
- {
- files: ['**/datascience/serviceRegistry.ts'],
- options: {
- printWidth: 240
- }
}
]
};
diff --git a/.sonarcloud.properties b/.sonarcloud.properties
index cee889d8051b..9e466689a90a 100644
--- a/.sonarcloud.properties
+++ b/.sonarcloud.properties
@@ -1,5 +1,4 @@
-sonar.sources=src/client,src/datascience-ui
-sonar.exclusions=src/datascience-ui/**/codicon*.*
+sonar.sources=src/client
sonar.tests=src/test
sonar.cfamily.build-wrapper-output.bypass=true
-sonar.cpd.exclusions=src/datascience-ui/**/redux/actions.ts,src/client/**/raw-kernel/rawKernel.ts,src/client/datascience/jupyter/*ariable*.ts
+sonar.cpd.exclusions=src/client/activation/**/*.ts
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
index 508eae4c5ddc..15e6aada1d50 100644
--- a/.vscode/extensions.json
+++ b/.vscode/extensions.json
@@ -2,8 +2,11 @@
// See https://go.microsoft.com/fwlink/?LinkId=827846
// for the documentation about the extensions.json format
"recommendations": [
- "ms-vscode.vscode-typescript-tslint-plugin",
+ "charliermarsh.ruff",
"editorconfig.editorconfig",
- "esbenp.prettier-vscode"
+ "esbenp.prettier-vscode",
+ "dbaeumer.vscode-eslint",
+ "ms-python.python",
+ "ms-python.vscode-pylance"
]
}
diff --git a/.vscode/launch.json b/.vscode/launch.json
index 233420f4e6e6..1e983413c8d4 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -7,20 +7,12 @@
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
- "args": [
- "--extensionDevelopmentPath=${workspaceFolder}"
- ],
- "stopOnEntry": false,
+ "args": ["--extensionDevelopmentPath=${workspaceFolder}"],
"smartStep": true,
"sourceMaps": true,
- "outFiles": [
- "${workspaceFolder}/out/**/*",
- "!${workspaceFolder}/**/node_modules**/*"
- ],
+ "outFiles": ["${workspaceFolder}/out/**/*", "!${workspaceFolder}/**/node_modules**/*"],
"preLaunchTask": "Compile",
- "skipFiles": [
- "/**"
- ],
+ "skipFiles": ["/**"],
"env": {
// Enable this to turn on redux logging during debugging
"XVSC_PYTHON_FORCE_LOGGING": "1",
@@ -32,64 +24,17 @@
"XDEBUGPY_LOG_DIR": "${workspaceRoot}/tmp/Debug_Output_Ex"
}
},
- {
- "name": "Extension (DS UI in Browser)",
- "type": "extensionHost",
- "request": "launch",
- "runtimeExecutable": "${execPath}",
- "args": [
- "--extensionDevelopmentPath=${workspaceFolder}"
- ],
- "stopOnEntry": false,
- "smartStep": true,
- "sourceMaps": true,
- "outFiles": [
- "${workspaceFolder}/out/**/*",
- "!${workspaceFolder}/**/node_modules**/*"
- ],
- "preLaunchTask": "Inject DS WebBrowser UI",
- "env": {
- "VSC_PYTHON_DS_UI_PROMPT": "1"
- },
- "skipFiles": [
- "/**"
- ]
- },
{
"name": "Extension inside container",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
- "args": [
- "--extensionDevelopmentPath=${workspaceFolder}",
- "${workspaceFolder}/data"
- ],
- "stopOnEntry": false,
+ "args": ["--extensionDevelopmentPath=${workspaceFolder}", "${workspaceFolder}/data"],
"smartStep": true,
"sourceMaps": true,
- "outFiles": [
- "${workspaceFolder}/out/**/*",
- "!${workspaceFolder}/**/node_modules**/*"
- ],
+ "outFiles": ["${workspaceFolder}/out/**/*", "!${workspaceFolder}/**/node_modules**/*"],
"preLaunchTask": "Compile"
},
- {
- "name": "Python: Current File with iPython",
- "type": "python",
- "request": "launch",
- "module": "IPython",
- "console": "integratedTerminal",
- "args": [
- "${file}"
- ] // Additional args should be prefixed with a '--' first.
- },
- {
- "name": "Python: Current File",
- "type": "python",
- "request": "launch",
- "program": "${file}",
- "console": "integratedTerminal"
- },
{
"name": "Tests (Debugger, VS Code, *.test.ts)",
"type": "extensionHost",
@@ -101,20 +46,14 @@
"--extensionDevelopmentPath=${workspaceFolder}",
"--extensionTestsPath=${workspaceFolder}/out/test"
],
- "stopOnEntry": false,
"sourceMaps": true,
"smartStep": true,
- "outFiles": [
- "${workspaceFolder}/out/**/*",
- "!${workspaceFolder}/**/node_modules**/*"
- ],
+ "outFiles": ["${workspaceFolder}/out/**/*", "!${workspaceFolder}/**/node_modules**/*"],
"preLaunchTask": "Compile",
"env": {
"IS_CI_SERVER_TEST_DEBUGGER": "1"
},
- "skipFiles": [
- "/**"
- ]
+ "skipFiles": ["/**"]
},
{
// Note, for the smoke test you want to debug, you may need to copy the file,
@@ -130,18 +69,14 @@
"--extensionTestsPath=${workspaceFolder}/out/test"
],
"env": {
- "VSC_PYTHON_CI_TEST_GREP": "Smoke Test"
+ "VSC_PYTHON_CI_TEST_GREP": "Smoke Test",
+ "VSC_PYTHON_SMOKE_TEST": "1",
+ "TEST_FILES_SUFFIX": "smoke.test"
},
- "stopOnEntry": false,
"sourceMaps": true,
- "outFiles": [
- "${workspaceFolder}/out/**/*.js",
- "!${workspaceFolder}/**/node_modules**/*"
- ],
+ "outFiles": ["${workspaceFolder}/out/**/*.js", "!${workspaceFolder}/**/node_modules**/*"],
"preLaunchTask": "Compile",
- "skipFiles": [
- "/**"
- ]
+ "skipFiles": ["/**"]
},
{
"name": "Tests (Single Workspace, VS Code, *.test.ts)",
@@ -157,46 +92,29 @@
"env": {
"VSC_PYTHON_CI_TEST_GREP": "" // Modify this to run a subset of the single workspace tests
},
- "stopOnEntry": false,
"sourceMaps": true,
- "outFiles": [
- "${workspaceFolder}/out/**/*.js",
- "!${workspaceFolder}/**/node_modules**/*"
- ],
+ "outFiles": ["${workspaceFolder}/out/**/*.js", "!${workspaceFolder}/**/node_modules**/*"],
"preLaunchTask": "Compile",
- "skipFiles": [
- "/**"
- ]
+ "skipFiles": ["/**"]
},
{
- "name": "Tests (DataScience, *.ds.test.ts)",
+ "name": "Jedi LSP tests",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": [
- "${workspaceFolder}/src/test/datascience",
+ "${workspaceFolder}/src/test",
"--disable-extensions",
- "--enable-proposed-api",
"--extensionDevelopmentPath=${workspaceFolder}",
"--extensionTestsPath=${workspaceFolder}/out/test"
],
"env": {
- "VSC_PYTHON_CI_TEST_GREP": "", // Modify this to run a subset of the single workspace tests
- "VSC_PYTHON_CI_TEST_INVERT_GREP": "", // Initialize this to invert the grep (exclude tests with value defined in grep).
-
- "VSC_PYTHON_LOAD_EXPERIMENTS_FROM_FILE": "true",
- "TEST_FILES_SUFFIX": "ds.test"
+ "VSC_PYTHON_CI_TEST_GREP": "Language Server:"
},
- "stopOnEntry": false,
"sourceMaps": true,
- "outFiles": [
- "${workspaceFolder}/out/**/*.js",
- "!${workspaceFolder}/**/node_modules**/*"
- ],
- "preLaunchTask": "Compile",
- "skipFiles": [
- "/**"
- ]
+ "outFiles": ["${workspaceFolder}/out/**/*.js", "!${workspaceFolder}/**/node_modules**/*"],
+ "preLaunchTask": "preTestJediLSP",
+ "skipFiles": ["/**"]
},
{
"name": "Tests (Multiroot, VS Code, *.test.ts)",
@@ -209,17 +127,14 @@
"--extensionDevelopmentPath=${workspaceFolder}",
"--extensionTestsPath=${workspaceFolder}/out/test"
],
- "stopOnEntry": false,
+ "env": {
+ "VSC_PYTHON_CI_TEST_GREP": "" // Modify this to run a subset of the single workspace tests
+ },
"sourceMaps": true,
"smartStep": true,
- "outFiles": [
- "${workspaceFolder}/out/**/*",
- "!${workspaceFolder}/**/node_modules**/*"
- ],
+ "outFiles": ["${workspaceFolder}/out/**/*", "!${workspaceFolder}/**/node_modules**/*"],
"preLaunchTask": "Compile",
- "skipFiles": [
- "/**"
- ]
+ "skipFiles": ["/**"]
},
{
"name": "Unit Tests (without VS Code, *.unit.test.ts)",
@@ -237,14 +152,9 @@
//"--grep", "",
"--timeout=300000"
],
- "outFiles": [
- "${workspaceFolder}/out/**/*.js",
- "!${workspaceFolder}/**/node_modules**/*"
- ],
+ "outFiles": ["${workspaceFolder}/out/**/*.js", "!${workspaceFolder}/**/node_modules**/*"],
"preLaunchTask": "Compile",
- "skipFiles": [
- "/**"
- ]
+ "skipFiles": ["/**"]
},
{
"name": "Unit Tests (fast, without VS Code and without react/monaco, *.unit.test.ts)",
@@ -263,14 +173,9 @@
"--timeout=300000",
"--fast"
],
- "outFiles": [
- "${workspaceFolder}/out/**/*.js",
- "!${workspaceFolder}/**/node_modules**/*"
- ],
+ "outFiles": ["${workspaceFolder}/out/**/*.js", "!${workspaceFolder}/**/node_modules**/*"],
"preLaunchTask": "Compile",
- "skipFiles": [
- "/**"
- ]
+ "skipFiles": ["/**"]
},
{
"name": "Functional Tests (without VS Code, *.functional.test.ts)",
@@ -299,64 +204,59 @@
// Remove `X` prefix and update path to test with real python interpreter (for DS functional tests).
"XCI_PYTHON_PATH": "",
// Remove 'X' prefix to dump output for debugger. Directory has to exist prior to launch
- "XDEBUGPY_LOG_DIR": "${workspaceRoot}/tmp/Debug_Output"
+ "XDEBUGPY_LOG_DIR": "${workspaceRoot}/tmp/Debug_Output",
+ // Remove 'X' prefix to dump webview redux action log
+ "XVSC_PYTHON_WEBVIEW_LOG_FILE": "${workspaceRoot}/test-webview.log"
},
- "outFiles": [
- "${workspaceFolder}/out/**/*.js",
- "!${workspaceFolder}/**/node_modules**/*"
- ],
+ "outFiles": ["${workspaceFolder}/out/**/*.js", "!${workspaceFolder}/**/node_modules**/*"],
"preLaunchTask": "Compile",
- "skipFiles": [
- "/**"
- ]
+ "skipFiles": ["/**"]
},
{
- "name": "Functional DS UI Tests (without VS Code, *.ui.functional.test.ts)",
"type": "node",
"request": "launch",
- "program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
- "stopOnEntry": false,
- "sourceMaps": true,
- "args": [
- "./out/test/**/*.ui.functional.test.js",
- "--require=out/test/unittests.js",
- "--ui=tdd",
- "--recursive",
- "--colors",
- //"--grep", "",
- "--timeout=300000",
- "--fast"
- ],
- "env": {
- // Remove `X` prefix to test with real browser to host DS ui (for DS functional tests).
- "XVSC_PYTHON_DS_UI_BROWSER": "1",
- // Remove `X` prefix to test with real python (for DS functional tests).
- "XVSCODE_PYTHON_ROLLING": "1",
- // Remove 'X' to turn on all logging in the debug output
- "XVSC_PYTHON_FORCE_LOGGING": "1",
- // Remove `X` prefix and update path to test with real python interpreter (for DS functional tests).
- "XCI_PYTHON_PATH": ""
- },
- "outFiles": [
- "${workspaceFolder}/out/**/*.js",
- "!${workspaceFolder}/**/node_modules**/*"
- ],
- "preLaunchTask": "Compile",
- "skipFiles": [
- "/**"
- ]
+ "name": "Gulp tasks (helpful for debugging gulpfile.js)",
+ "program": "${workspaceFolder}/node_modules/gulp/bin/gulp.js",
+ "args": ["watch"],
+ "skipFiles": ["/**"]
},
{
- "type": "node",
+ "name": "Node: Current File",
+ "program": "${file}",
"request": "launch",
- "name": "Gulp tasks (helpful for debugging gulpfile.js)",
- "program": "${workspaceFolder}/node_modules/gulp/bin/gulp.js",
- "args": [
- "watch"
- ],
- "skipFiles": [
- "/**"
- ]
+ "skipFiles": ["/**"],
+ "type": "node"
+ },
+ {
+ "name": "Python: Current File",
+ "type": "debugpy",
+ "justMyCode": true,
+ "request": "launch",
+ "program": "${file}",
+ "console": "integratedTerminal",
+ "cwd": "${workspaceFolder}"
+ },
+ {
+ "name": "Python: Attach Listen",
+ "type": "debugpy",
+ "request": "attach",
+ "listen": { "host": "localhost", "port": 5678 },
+ "justMyCode": true
+ },
+ {
+ "name": "Debug pytest plugin tests",
+
+ "type": "debugpy",
+ "request": "launch",
+ "module": "pytest",
+ "args": ["${workspaceFolder}/python_files/tests/pytestadapter"],
+ "justMyCode": true
+ }
+ ],
+ "compounds": [
+ {
+ "name": "Debug Python and Extension",
+ "configurations": ["Python: Attach Listen", "Extension"]
}
]
}
diff --git a/.vscode/settings.json b/.vscode/settings.json
index b2dc13efe26e..01de0d907706 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -2,6 +2,7 @@
{
"files.exclude": {
"out": true, // set this to true to hide the "out" folder with the compiled JS files
+ "dist": true,
"**/*.pyc": true,
".nyc_output": true,
"obj": true,
@@ -10,11 +11,11 @@
"**/node_modules": true,
".vscode-test": false,
".vscode test": false,
- "**/.mypy_cache/**": true,
- "**/.ropeproject/**": true
+ "**/.mypy_cache/**": true
},
"search.exclude": {
"out": true, // set this to false to include "out" folder in search results
+ "dist": true,
"**/node_modules": true,
"coverage": true,
"languageServer*/**": true,
@@ -22,39 +23,56 @@
".vscode test": true
},
"[python]": {
+ "editor.formatOnSave": true,
+ "editor.codeActionsOnSave": {
+ "source.fixAll.eslint": "explicit",
+ "source.organizeImports.isort": "explicit"
+ },
+ "editor.defaultFormatter": "charliermarsh.ruff",
+ },
+ "[rust]": {
+ "editor.defaultFormatter": "rust-lang.rust-analyzer",
"editor.formatOnSave": true
},
"[typescript]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true
},
"[javascript]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
+ "editor.formatOnSave": true
+ },
+ "[JSON]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
+ "editor.formatOnSave": true
+ },
+ "[YAML]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true
},
"typescript.tsdk": "./node_modules/typescript/lib", // we want to use the TS server from our node_modules folder to control its version
- "tslint.enable": true,
- "python.linting.enabled": false,
- "python.testing.promptToConfigure": false,
- "python.workspaceSymbols.enabled": false,
- "python.formatting.provider": "black",
"typescript.preferences.quoteStyle": "single",
"javascript.preferences.quoteStyle": "single",
- "typescriptHero.imports.stringQuoteStyle": "'",
"prettier.printWidth": 120,
"prettier.singleQuote": true,
"editor.codeActionsOnSave": {
- "source.fixAll.eslint": true,
- "source.fixAll.tslint": true
- },
- "python.languageServer": "Microsoft",
- "python.analysis.logLevel": "Trace",
- "python.analysis.downloadChannel": "beta",
- "python.linting.pylintEnabled": false,
- "python.linting.flake8Enabled": true,
- "cucumberautocomplete.skipDocStringsFormat": true,
- "python.linting.flake8Args": [
- // Match what black does.
- "--max-line-length=88"
- ],
+ "source.fixAll.eslint": "explicit"
+ },
+ "python.languageServer": "Default",
"typescript.preferences.importModuleSpecifier": "relative",
- "debug.javascript.usePreview": false
+ // Branch name suggestion.
+ "git.branchProtectionPrompt": "alwaysCommitToNewBranch",
+ "git.branchRandomName.enable": true,
+ "git.branchProtection": ["main", "release/*"],
+ "git.pullBeforeCheckout": true,
+ // Open merge editor for resolving conflicts.
+ "git.mergeEditor": true,
+ "python.testing.pytestArgs": [
+ "python_files/tests"
+ ],
+ "python.testing.unittestEnabled": false,
+ "python.testing.pytestEnabled": true,
+ "rust-analyzer.linkedProjects": [
+ ".\\python-env-tools\\Cargo.toml"
+ ]
}
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index 6f0b07bc7214..c5a054ed43cf 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -12,32 +12,12 @@
"type": "npm",
"script": "compile",
"isBackground": true,
- "problemMatcher": [
- "$tsc-watch",
- {
- "base": "$tslint5",
- "fileLocation": "relative"
- }
- ],
+ "problemMatcher": ["$tsc-watch"],
"group": {
"kind": "build",
"isDefault": true
}
},
- {
- "label": "Compile Web Views",
- "type": "npm",
- "script": "compile-webviews-watch",
- "isBackground": true,
- "group": {
- "kind": "build",
- "isDefault": true
- },
- "problemMatcher": [
- "$tsc-watch",
- "$ts-checker-webpack-watch"
- ]
- },
{
"label": "Run Unit Tests",
"type": "npm",
@@ -48,13 +28,35 @@
}
},
{
- "label": "Inject DS WebBrowser UI",
+ "type": "npm",
+ "script": "preTestJediLSP",
+ "problemMatcher": [],
+ "label": "preTestJediLSP"
+ },
+ {
+ "type": "npm",
+ "script": "check-python",
+ "problemMatcher": ["$python"],
+ "label": "npm: check-python",
+ "detail": "npm run check-python:ruff && npm run check-python:pyright"
+ },
+ {
+ "label": "npm: check-python (venv)",
"type": "shell",
- "command": "node",
- "args": [
- "build/debug/replaceWithWebBrowserPanel.js"
- ],
- "problemMatcher": []
+ "command": "bash",
+ "args": ["-lc", "source .venv/bin/activate && npm run check-python"],
+ "problemMatcher": [],
+ "detail": "Activates the repo .venv first (avoids pyenv/shim Python) then runs: npm run check-python",
+ "windows": {
+ "command": "pwsh",
+ "args": [
+ "-NoProfile",
+ "-ExecutionPolicy",
+ "Bypass",
+ "-Command",
+ ".\\.venv\\Scripts\\Activate.ps1; npm run check-python"
+ ]
+ }
}
]
}
diff --git a/.vscodeignore b/.vscodeignore
index d0da6f84ddf9..d636ab48f361 100644
--- a/.vscodeignore
+++ b/.vscodeignore
@@ -1,55 +1,36 @@
**/*.map
**/*.analyzer.html
-!out/datascience-ui/common/node_modules/**/*
-!out/datascience-ui/notebook/commons.initial.bundle.js.map
-!out/datascience-ui/notebook/interactiveWindow.js.map
-!out/datascience-ui/notebook/nativeEditor.js.map
-!out/datascience-ui/viewers/commons.initial.bundle.js.map
-!out/datascience-ui/viewers/dataExplorer.js.map
-!out/datascience-ui/viewers/plotViewer.js.map
+**/.env
*.vsix
-.appveyor.yml
.editorconfig
.env
.eslintrc
+.eslintignore
.gitattributes
.gitignore
.gitmodules
-.huskyrc.json
+.git*
.npmrc
.nvmrc
.nycrc
-.travis.yml
CODE_OF_CONDUCT.md
CODING_STANDARDS.md
CONTRIBUTING.md
-CONTRIBUTING - LANGUAGE SERVER.md
-coverconfig.json
-cucumber-report.json
gulpfile.js
-package.datascience-ui.dependencies.json
package-lock.json
-packageExtension.cmd
-pvsc-dev-ext.py
-pvsc.code-workspace
-PYTHON_INTERACTIVE_TROUBLESHOOTING.md
requirements.in
sprint-planning.github-issues
test.ipynb
-travis*.log
tsconfig*.json
tsfmt.json
-tslint.json
-typings.json
-vsc-extension-quickstart.md
vscode-python-signing.*
-webpack.config.js
-webpack.datascience-*.config.js
+noxfile.py
-.devcontainer/**
+.config/**
.github/**
.mocha-reporter/**
.nvm/**
+.nox/**
.nyc_output
.prettierrc.js
.sonarcloud.properties
@@ -70,43 +51,39 @@ debug_coverage*/**
images/**/*.gif
images/**/*.png
ipywidgets/**
-news/**
+i18n/**
node_modules/**
obj/**
out/**/*.stats.json
out/client/**/*.analyzer.html
out/coverconfig.json
-out/datascience-ui/**/*.analyzer.html
-out/datascience-ui/common/**
-out/datascience-ui/**/*.js.LICENSE
-out/datascience-ui/data-explorer/**
-out/datascience-ui/datascience-ui/**
-out/datascience-ui/history-react/**
-out/datascience-ui/interactive-common/**
-out/datascience-ui/ipywidgets/**
-out/datascience-ui/native-editor/**
-out/datascience-ui/notebook/datascience-ui/**
-out/datascience-ui/notebook/ipywidgets/**
-out/datascience-ui/notebook/index.*.html
-out/datascience-ui/plot/**
-out/datascience-ui/react-common/**
-out/datascience-ui/viewers/datascience-ui/**
-out/datascience-ui/viewers/ipywidgets/**
-out/datascience-ui/viewers/index.*.html
-out/pythonFiles/**
+out/python_files/**
out/src/**
out/test/**
out/testMultiRootWkspc/**
precommit.hook
-pythonFiles/**/*.pyc
-pythonFiles/lib/**/*.dist-info/**
-pythonFiles/lib/**/*.egg-info/**
-pythonFiles/lib/python/bin/**
-pythonFiles/tests/**
-requirements.txt
+python_files/**/*.pyc
+python_files/lib/**/*.egg-info/**
+python_files/lib/jedilsp/bin/**
+python_files/lib/python/bin/**
+python_files/tests/**
scripts/**
src/**
test/**
tmp/**
typings/**
types/**
+**/__pycache__/**
+**/.devcontainer/**
+
+python-env-tools/.gitignore
+python-env-tools/bin/.gitignore
+python-env-tools/.github/**
+python-env-tools/.vscode/**
+python-env-tools/crates/**
+python-env-tools/target/**
+python-env-tools/Cargo.*
+python-env-tools/.cargo/**
+
+python-env-tools/**/*.md
+pythonExtensionApi/**
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 99392e6969c7..56c1f7697ad7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,4502 @@
# Changelog
-## 2020.7.0-rc (8 July 2020)
+**Please see https://github.com/microsoft/vscode-python/releases for the latest release notes. The notes below have been kept for historical purposes.**
+
+## 2022.10.1 (14 July 2022)
+
+### Code Health
+
+- Update app insights key by [karthiknadig](https://github.com/karthiknadig) in ([#19463](https://github.com/microsoft/vscode-python/pull/19463)).
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Pylance](https://github.com/microsoft/pylance-release)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [poetry](https://pypi.org/project/poetry/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2022.10.0 (7 July 2022)
+
+### Enhancements
+
+- Add `breakpoint` support for `django-html` & `django-txt` by [Lakshmikanth2001](https://github.com/Lakshmikanth2001) in ([#19288](https://github.com/microsoft/vscode-python/pull/19288)).
+- Fix `unittest` discovery issue with experimental component by [ksy7588](https://github.com/ksy7588) in ([#19324](https://github.com/microsoft/vscode-python/pull/19324)).
+- Trigger refresh when using `Select Interpreter` command if no envs were found previously by [karrtikr](https://github.com/karrtikr) in ([#19361](https://github.com/microsoft/vscode-python/pull/19361)).
+- Update `debugpy` to 1.6.2.
+
+### Bug Fixes
+
+- Fix variable name for `flake8Path`'s description by [usta](https://github.com/usta) in ([#19313](https://github.com/microsoft/vscode-python/pull/19313)).
+- Ensure we dispose objects on deactivate by [karthiknadig](https://github.com/karthiknadig) in ([#19341](https://github.com/microsoft/vscode-python/pull/19341)).
+- Ensure we can change interpreters after trusting a workspace by [karrtikr](https://github.com/karrtikr) in ([#19353](https://github.com/microsoft/vscode-python/pull/19353)).
+- Fix for `::::` in node id for `pytest` by [karthiknadig](https://github.com/karthiknadig) in ([#19356](https://github.com/microsoft/vscode-python/pull/19356)).
+- Ensure we register for interpreter change when moving from untrusted to trusted. by [karthiknadig](https://github.com/karthiknadig) in ([#19351](https://github.com/microsoft/vscode-python/pull/19351)).
+
+### Code Health
+
+- Update CI for using GitHub Actions for release notes by [brettcannon](https://github.com/brettcannon) in ([#19273](https://github.com/microsoft/vscode-python/pull/19273)).
+- Add missing translations by [paulacamargo25](https://github.com/paulacamargo25) in ([#19305](https://github.com/microsoft/vscode-python/pull/19305)).
+- Delete the `news` directory by [brettcannon](https://github.com/brettcannon) in ([#19308](https://github.com/microsoft/vscode-python/pull/19308)).
+- Fix interpreter discovery related telemetry by [karrtikr](https://github.com/karrtikr) in ([#19319](https://github.com/microsoft/vscode-python/pull/19319)).
+- Simplify and merge async dispose and dispose by [karthiknadig](https://github.com/karthiknadig) in ([#19348](https://github.com/microsoft/vscode-python/pull/19348)).
+- Updating required packages by [karthiknadig](https://github.com/karthiknadig) in ([#19375](https://github.com/microsoft/vscode-python/pull/19375)).
+- Update the issue notebook by [brettcannon](https://github.com/brettcannon) in ([#19388](https://github.com/microsoft/vscode-python/pull/19388)).
+- Remove `notebookeditor` proposed API by [karthiknadig](https://github.com/karthiknadig) in ([#19392](https://github.com/microsoft/vscode-python/pull/19392)).
+
+**Full Changelog**: https://github.com/microsoft/vscode-python/compare/2022.8.1...2022.10.0
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Pylance](https://github.com/microsoft/pylance-release)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [poetry](https://pypi.org/project/poetry/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2022.8.1 (28 June 2022)
+
+### Code Health
+
+1. Update vscode `extension-telemetry` package.
+ ([#19375](https://github.com/microsoft/vscode-python/pull/19375))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Pylance](https://github.com/microsoft/pylance-release)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [poetry](https://pypi.org/project/poetry/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2022.8.0 (9 June 2022)
+
+### Enhancements
+
+1. Make cursor focus switch automatically to the terminal after launching a python process with configuration option. (Thanks [djplt](https://github.com/djplt))
+ ([#14851](https://github.com/Microsoft/vscode-python/issues/14851))
+1. Enable localization using vscode-nls.
+ ([#18286](https://github.com/Microsoft/vscode-python/issues/18286))
+1. Add support for referencing multiroot-workspace folders in settings using `${workspaceFolder:}`.
+ ([#18650](https://github.com/Microsoft/vscode-python/issues/18650))
+1. Ensure conda envs lacking an interpreter which do not use a valid python binary are also discovered and is selectable, so that `conda env list` matches with what the extension reports.
+ ([#18934](https://github.com/Microsoft/vscode-python/issues/18934))
+1. Improve information collected by the `Python: Report Issue` command.
+ ([#19067](https://github.com/Microsoft/vscode-python/issues/19067))
+1. Only trigger auto environment discovery if a user attempts to choose a different interpreter, or when a particular scope (a workspace folder or globally) is opened for the first time.
+ ([#19102](https://github.com/Microsoft/vscode-python/issues/19102))
+1. Added a proposed API to report progress of environment discovery in two phases.
+ ([#19103](https://github.com/Microsoft/vscode-python/issues/19103))
+1. Update to latest LS client (v8.0.0) and server (v8.0.0).
+ ([#19114](https://github.com/Microsoft/vscode-python/issues/19114))
+1. Update to latest LS client (v8.0.1) and server (v8.0.1) that contain the race condition fix around `LangClient.stop`.
+ ([#19139](https://github.com/Microsoft/vscode-python/issues/19139))
+
+### Fixes
+
+1. Do not use `--user` flag when installing in a virtual environment.
+ ([#14327](https://github.com/Microsoft/vscode-python/issues/14327))
+1. Fix error `No such file or directory` on conda activate, and simplify the environment activation code.
+ ([#18989](https://github.com/Microsoft/vscode-python/issues/18989))
+1. Add proposed async execution API under environments.
+ ([#19079](https://github.com/Microsoft/vscode-python/issues/19079))
+
+### Code Health
+
+1. Capture whether environment discovery was triggered using Quickpick UI.
+ ([#19077](https://github.com/Microsoft/vscode-python/issues/19077))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Pylance](https://github.com/microsoft/pylance-release)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [poetry](https://pypi.org/project/poetry/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2022.6.0 (5 May 2022)
+
+### Enhancements
+
+1. Rewrite support for unittest test discovery.
+ ([#17242](https://github.com/Microsoft/vscode-python/issues/17242))
+1. Do not require a reload when swapping between language servers.
+ ([#18509](https://github.com/Microsoft/vscode-python/issues/18509))
+
+### Fixes
+
+1. Do not show inherit env prompt for conda envs when running "remotely".
+ ([#18510](https://github.com/Microsoft/vscode-python/issues/18510))
+1. Fixes invalid regular expression logging error occurs when file paths contain special characters.
+ (Thanks [sunyinqi0508](https://github.com/sunyinqi0508))
+ ([#18829](https://github.com/Microsoft/vscode-python/issues/18829))
+1. Do not prompt to select new virtual envrionment if it has already been selected.
+ ([#18915](https://github.com/Microsoft/vscode-python/issues/18915))
+1. Disable isort when using isort extension.
+ ([#18945](https://github.com/Microsoft/vscode-python/issues/18945))
+1. Remove `process` check from browser specific entry point for the extension.
+ ([#18974](https://github.com/Microsoft/vscode-python/issues/18974))
+1. Use built-in test refresh button.
+ ([#19012](https://github.com/Microsoft/vscode-python/issues/19012))
+1. Update vscode-telemetry-extractor to @vscode/telemetry-extractor@1.9.7.
+ (Thanks [Quan Zhuo](https://github.com/quanzhuo))
+ ([#19036](https://github.com/Microsoft/vscode-python/issues/19036))
+1. Ensure 64-bit interpreters are preferred over 32-bit when auto-selecting.
+ ([#19042](https://github.com/Microsoft/vscode-python/issues/19042))
+
+### Code Health
+
+1. Update Jedi minimum to python 3.7.
+ ([#18324](https://github.com/Microsoft/vscode-python/issues/18324))
+1. Stop using `--live-stream` when using `conda run` (see https://github.com/conda/conda/issues/11209 for details).
+ ([#18511](https://github.com/Microsoft/vscode-python/issues/18511))
+1. Remove prompt to recommend users in old insiders program to switch to pre-release.
+ ([#18809](https://github.com/Microsoft/vscode-python/issues/18809))
+1. Update requirements to remove python 2.7 version restrictions.
+ ([#19060](https://github.com/Microsoft/vscode-python/issues/19060))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Pylance](https://github.com/microsoft/pylance-release)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [poetry](https://pypi.org/project/poetry/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2022.4.1 (7 April 2022)
+
+### Fixes
+
+1. Ensure `conda info` command isn't run multiple times during startup when large number of conda interpreters are present.
+ ([#18200](https://github.com/Microsoft/vscode-python/issues/18200))
+1. If a conda environment is not returned via the `conda env list` command, consider it as unknown env type.
+ ([#18530](https://github.com/Microsoft/vscode-python/issues/18530))
+1. Wrap file paths containing an ampersand in double quotation marks for running commands in a shell.
+ ([#18722](https://github.com/Microsoft/vscode-python/issues/18722))
+1. Fixes regression with support for python binaries not following the standard names.
+ ([#18835](https://github.com/Microsoft/vscode-python/issues/18835))
+1. Fix launch of Python Debugger when using conda environments.
+ ([#18847](https://github.com/Microsoft/vscode-python/issues/18847))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Pylance](https://github.com/microsoft/pylance-release)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [poetry](https://pypi.org/project/poetry/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2022.4.0 (30 March 2022)
+
+### Enhancements
+
+1. Use new pre-release mechanism to install insiders.
+ ([#18144](https://github.com/Microsoft/vscode-python/issues/18144))
+1. Add support for detection and selection of conda environments lacking a python interpreter.
+ ([#18357](https://github.com/Microsoft/vscode-python/issues/18357))
+1. Retains the state of the TensorBoard webview.
+ ([#18591](https://github.com/Microsoft/vscode-python/issues/18591))
+1. Move interpreter info status bar item to the right.
+ ([#18710](https://github.com/Microsoft/vscode-python/issues/18710))
+1. `debugpy` updated to version `v1.6.0`.
+ ([#18795](https://github.com/Microsoft/vscode-python/issues/18795))
+
+### Fixes
+
+1. Properly dismiss the error popup dialog when having a linter error. (Thanks [Virgil Sisoe](https://github.com/sisoe24))
+ ([#18553](https://github.com/Microsoft/vscode-python/issues/18553))
+1. Python files are no longer excluded from Pytest arguments during test discovery.
+ (thanks [Marc Mueller](https://github.com/cdce8p/))
+ ([#18562](https://github.com/Microsoft/vscode-python/issues/18562))
+1. Fixes regression caused due to using `conda run` for executing files.
+ ([#18634](https://github.com/Microsoft/vscode-python/issues/18634))
+1. Use `conda run` to get the activated environment variables instead of activation using shell scripts.
+ ([#18698](https://github.com/Microsoft/vscode-python/issues/18698))
+
+### Code Health
+
+1. Remove old settings migrator.
+ ([#14334](https://github.com/Microsoft/vscode-python/issues/14334))
+1. Remove old language server setting migration.
+ ([#14337](https://github.com/Microsoft/vscode-python/issues/14337))
+1. Remove dependency on other file system watchers.
+ ([#18381](https://github.com/Microsoft/vscode-python/issues/18381))
+1. Update TypeScript version to 4.5.5.
+ ([#18602](https://github.com/Microsoft/vscode-python/issues/18602))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Pylance](https://github.com/microsoft/pylance-release)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [poetry](https://pypi.org/project/poetry/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2022.2.0 (3 March 2022)
+
+### Enhancements
+
+1. Implement a "New Python File" command
+ ([#18376](https://github.com/Microsoft/vscode-python/issues/18376))
+1. Use `conda run` for conda environments for running python files and installing modules.
+ ([#18479](https://github.com/Microsoft/vscode-python/issues/18479))
+1. Better filename patterns for pip-requirements.
+ (thanks [Baptiste Darthenay](https://github.com/batisteo))
+ ([#18498](https://github.com/Microsoft/vscode-python/issues/18498))
+
+### Fixes
+
+1. Ensure clicking "Discovering Python Interpreters" in the status bar shows the current discovery progress.
+ ([#18443](https://github.com/Microsoft/vscode-python/issues/18443))
+1. Fixes Pylama output parsing with MyPy. (thanks [Nicola Marella](https://github.com/nicolamarella))
+ ([#15609](https://github.com/Microsoft/vscode-python/issues/15609))
+1. Fix CPU load issue caused by poetry plugin by not watching directories which do not exist.
+ ([#18459](https://github.com/Microsoft/vscode-python/issues/18459))
+1. Explicitly add `"justMyCode": "true"` to all `launch.json` configurations.
+ (Thanks [Matt Bogosian](https://github.com/posita))
+ ([#18471](https://github.com/Microsoft/vscode-python/issues/18471))
+1. Identify base conda environments inside pyenv correctly.
+ ([#18500](https://github.com/Microsoft/vscode-python/issues/18500))
+1. Fix for a crash when loading environments with no info.
+ ([#18594](https://github.com/Microsoft/vscode-python/issues/18594))
+
+### Code Health
+
+1. Remove dependency on `ts-mock-imports`.
+ ([#14757](https://github.com/Microsoft/vscode-python/issues/14757))
+1. Update `vsce` to `v2.6.6`.
+ ([#18411](https://github.com/Microsoft/vscode-python/issues/18411))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Pylance](https://github.com/microsoft/pylance-release)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [poetry](https://pypi.org/project/poetry/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2022.0.1 (8 February 2022)
+
+### Fixes
+
+1. Fix `invalid patch string` error when using conda.
+ ([#18455](https://github.com/Microsoft/vscode-python/issues/18455))
+1. Revert to old way of running debugger if conda version less than 4.9.0.
+ ([#18436](https://github.com/Microsoft/vscode-python/issues/18436))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Pylance](https://github.com/microsoft/pylance-release)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [poetry](https://pypi.org/project/poetry/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2022.0.0 (3 February 2022)
+
+### Enhancements
+
+1. Add support for conda run without output, using `--no-capture-output` flag.
+ ([#7696](https://github.com/Microsoft/vscode-python/issues/7696))
+1. Add an option to clear interpreter setting for all workspace folders in multiroot scenario.
+ ([#17693](https://github.com/Microsoft/vscode-python/issues/17693))
+1. Public API for environments (proposed).
+ ([#17905](https://github.com/Microsoft/vscode-python/issues/17905))
+1. Group interpreters in interpreter quick picker using separators.
+ ([#17944](https://github.com/Microsoft/vscode-python/issues/17944))
+1. Add support for pylint error ranges. Requires Python 3.8 and pylint 2.12.2 or higher. (thanks [Marc Mueller](https://github.com/cdce8p))
+ ([#18068](https://github.com/Microsoft/vscode-python/issues/18068))
+1. Move pinned interpreter status bar item towards the right behind `pythonInterpreterInfoPinned` experiment.
+ ([#18282](https://github.com/Microsoft/vscode-python/issues/18282))
+1. Move interpreter status bar item into the `Python` language status item behind `pythonInterpreterInfoUnpinned` experiment.
+ ([#18283](https://github.com/Microsoft/vscode-python/issues/18283))
+1. Update Jedi language server to latest.
+ ([#18325](https://github.com/Microsoft/vscode-python/issues/18325))
+
+### Fixes
+
+1. Update zh-tw translations. (thanks [ted1030](https://github.com/ted1030))
+ ([#17991](https://github.com/Microsoft/vscode-python/issues/17991))
+1. Support selecting conda environments with python `3.10`.
+ ([#18128](https://github.com/Microsoft/vscode-python/issues/18128))
+1. Fixes to telemetry handler in language server middleware.
+ ([#18188](https://github.com/Microsoft/vscode-python/issues/18188))
+1. Resolve system variables in `python.defaultInterpreterPath`.
+ ([#18207](https://github.com/Microsoft/vscode-python/issues/18207))
+1. Ensures interpreters are discovered even when running `interpreterInfo.py` script prints more than just the script output.
+ ([#18234](https://github.com/Microsoft/vscode-python/issues/18234))
+1. Remove restrictions on using `purpose` in debug configuration.
+ ([#18248](https://github.com/Microsoft/vscode-python/issues/18248))
+1. Ensure Python Interpreter information in the status bar is updated if Interpreter information changes.
+ ([#18257](https://github.com/Microsoft/vscode-python/issues/18257))
+1. Fix "Run Selection/Line in Python Terminal" for Python < 3.8 when the code includes decorators.
+ ([#18258](https://github.com/Microsoft/vscode-python/issues/18258))
+1. Ignore notebook cells for pylance. Jupyter extension is handling notebooks.
+ ([#18259](https://github.com/Microsoft/vscode-python/issues/18259))
+1. Fix for UriError when using python.interpreterPath command in tasks.
+ ([#18285](https://github.com/Microsoft/vscode-python/issues/18285))
+1. Ensure linting works under `conda run` (work-around for https://github.com/conda/conda/issues/10972).
+ ([#18364](https://github.com/Microsoft/vscode-python/issues/18364))
+1. Ensure items are removed from the array in reverse order when using array indices.
+ ([#18382](https://github.com/Microsoft/vscode-python/issues/18382))
+1. Log experiments only after we finish updating active experiments list.
+ ([#18393](https://github.com/Microsoft/vscode-python/issues/18393))
+
+### Code Health
+
+1. Improve unit tests for envVarsService, in particular the variable substitution logic (Thanks [Keshav Kini](https://github.com/kini))
+ ([#17747](https://github.com/Microsoft/vscode-python/issues/17747))
+1. Remove `python.pythonPath` setting and `pythonDeprecatePythonPath` experiment.
+ ([#17977](https://github.com/Microsoft/vscode-python/issues/17977))
+1. Remove `pythonTensorboardExperiment` and `PythonPyTorchProfiler` experiments.
+ ([#18074](https://github.com/Microsoft/vscode-python/issues/18074))
+1. Reduce direct dependency on IOutputChannel.
+ ([#18132](https://github.com/Microsoft/vscode-python/issues/18132))
+1. Upgrade to Node 14 LTS (v14.18.2).
+ ([#18148](https://github.com/Microsoft/vscode-python/issues/18148))
+1. Switch `jedils_requirements.txt` to `requirements.txt` under `pythonFiles/jedilsp_requirements/`.
+ ([#18185](https://github.com/Microsoft/vscode-python/issues/18185))
+1. Removed `experiments.json` file.
+ ([#18235](https://github.com/Microsoft/vscode-python/issues/18235))
+1. Fixed typescript and namespace errors. (Thanks [Harry-Hopkinson](https://github.com/Harry-Hopkinson))
+ ([#18345](https://github.com/Microsoft/vscode-python/issues/18345))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Pylance](https://github.com/microsoft/pylance-release)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [poetry](https://pypi.org/project/poetry/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.12.0 (9 December 2021)
+
+### Enhancements
+
+1. Python extension should activate on onDebugInitialConfigurations.
+ (thanks [Nayana Vinod](https://github.com/nayana-vinod) and [Jessica Jolly](https://github.com/JessieJolly)).
+ ([#9557](https://github.com/Microsoft/vscode-python/issues/9557))
+1. Declare limited support when running in virtual workspaces by only supporting language servers.
+ ([#17519](https://github.com/Microsoft/vscode-python/issues/17519))
+1. Add a "Do not show again" option to the formatter installation prompt.
+ ([#17937](https://github.com/Microsoft/vscode-python/issues/17937))
+1. Add the ability to install `pip` if missing, when installing missing packages from the `Jupyter Extension`.
+ ([#17975](https://github.com/Microsoft/vscode-python/issues/17975))
+1. Declare limited support for untrusted workspaces by only supporting Pylance.
+ ([#18031](https://github.com/Microsoft/vscode-python/issues/18031))
+1. Update to latest jedi language server.
+ ([#18051](https://github.com/Microsoft/vscode-python/issues/18051))
+1. Add language status item indicating that extension works partially in virtual and untrusted workspaces.
+ ([#18059](https://github.com/Microsoft/vscode-python/issues/18059))
+
+### Fixes
+
+1. Partial fix for using the same directory as discovery when running tests.
+ (thanks [Brian Rutledge](https://github.com/bhrutledge))
+ ([#9553](https://github.com/Microsoft/vscode-python/issues/9553))
+1. Handle decorators properly when using the `Run Selection/Line in Python Terminal` command.
+ ([#15058](https://github.com/Microsoft/vscode-python/issues/15058))
+1. Don't interpret `--rootdir` as a test folder for `pytest`.
+ (thanks [Brian Rutledge](https://github.com/bhrutledge))
+ ([#16079](https://github.com/Microsoft/vscode-python/issues/16079))
+1. Ensure debug configuration env variables overwrite env variables defined in .env file.
+ ([#16984](https://github.com/Microsoft/vscode-python/issues/16984))
+1. Fix for `pytest` run all tests when using `pytest.ini` and `cwd`.
+ (thanks [Brian Rutledge](https://github.com/bhrutledge))
+ ([#17546](https://github.com/Microsoft/vscode-python/issues/17546))
+1. When parsing pytest node ids with parameters, use native pytest information to separate out the parameter decoration rather than try and parse the nodeid as text.
+ (thanks [Martijn Pieters](https://github.com/mjpieters))
+ ([#17676](https://github.com/Microsoft/vscode-python/issues/17676))
+1. Do not process system Python 2 installs on macOS Monterey.
+ ([#17870](https://github.com/Microsoft/vscode-python/issues/17870))
+1. Remove duplicate "Clear Workspace Interpreter Setting" command from the command palette.
+ ([#17890](https://github.com/Microsoft/vscode-python/issues/17890))
+1. Ensure that path towards extenal tools like linters are not synched between
+ machines. (thanks [Sorin Sbarnea](https://github.com/ssbarnea))
+ ([#18008](https://github.com/Microsoft/vscode-python/issues/18008))
+1. Increase timeout for activation of conda environments from 30s to 60s.
+ ([#18017](https://github.com/Microsoft/vscode-python/issues/18017))
+
+### Code Health
+
+1. Removing experiments for refresh and failed tests buttons.
+ ([#17868](https://github.com/Microsoft/vscode-python/issues/17868))
+1. Remove caching debug configuration experiment only.
+ ([#17895](https://github.com/Microsoft/vscode-python/issues/17895))
+1. Remove "join mailing list" notification experiment.
+ ([#17904](https://github.com/Microsoft/vscode-python/issues/17904))
+1. Remove dependency on `winston` logger.
+ ([#17921](https://github.com/Microsoft/vscode-python/issues/17921))
+1. Bump isort from 5.9.3 to 5.10.0.
+ ([#17923](https://github.com/Microsoft/vscode-python/issues/17923))
+1. Remove old discovery code and discovery experiments.
+ ([#17962](https://github.com/Microsoft/vscode-python/issues/17962))
+1. Remove dependency on `azure-storage`.
+ ([#17972](https://github.com/Microsoft/vscode-python/issues/17972))
+1. Ensure telemetry correctly identifies when users set linter paths.
+ ([#18019](https://github.com/Microsoft/vscode-python/issues/18019))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [poetry](https://pypi.org/project/poetry/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.11.0 (4 November 2021)
+
+### Enhancements
+
+1. Improve setting description for enabling A/B tests. (Thanks [Thi Le](https://github.com/thi-lee))
+ ([#7793](https://github.com/Microsoft/vscode-python/issues/7793))
+1. Support `expectedFailure` when running `unittest` tests using `pytest`.
+ ([#8427](https://github.com/Microsoft/vscode-python/issues/8427))
+1. Support environment variable substitution in `python` property for `launch.json`.
+ ([#12289](https://github.com/Microsoft/vscode-python/issues/12289))
+1. Update homebrew instructions to install python 3.
+ (thanks [Carolinekung2 ](https://github.com/Carolinekung2))
+ ([#17590](https://github.com/Microsoft/vscode-python/issues/17590))
+
+### Fixes
+
+1. Reworded message for A/B testing in the output channel to "Experiment 'X' is active/inactive".
+ (Thanks [Vidushi Gupta](https://github.com/Vidushi-Gupta) for the contribution)
+ ([#6352](https://github.com/Microsoft/vscode-python/issues/6352))
+1. Change text to "Select at workspace level" instead of "Entire workspace" when selecting or clearing interpreters in a multiroot folder scenario.
+ (Thanks [Quynh Do](https://github.com/quynhd07))
+ ([#10737](https://github.com/Microsoft/vscode-python/issues/10737))
+1. Fix unresponsive extension issues caused by discovery component.
+ ([#11924](https://github.com/Microsoft/vscode-python/issues/11924))
+1. Remove duplicate 'Run Python file' commands in command palette.
+ ([#14562](https://github.com/Microsoft/vscode-python/issues/14562))
+1. Change drive first before changing directory in windows, to anticipate running file outside working directory with different storage drive. (thanks [afikrim](https://github.com/afikrim))
+ ([#14730](https://github.com/Microsoft/vscode-python/issues/14730))
+1. Support installing Insiders extension in remote sessions.
+ ([#15145](https://github.com/Microsoft/vscode-python/issues/15145))
+1. If the executeInFileDir setting is enabled, always change to the script directory before running the script, even if the script is in the Workspace folder. (thanks (acash715)[https://github.com/acash715])
+ ([#15181](https://github.com/Microsoft/vscode-python/issues/15181))
+1. replaceAll for replacing separators. (thanks [Aliva Das](https://github.com/IceJinx33))
+ ([#15288](https://github.com/Microsoft/vscode-python/issues/15288))
+1. When activating environment, creating new Integrated Terminal doesn't take selected workspace into account. (Thanks [Vidushi Gupta](https://github.com/Vidushi-Gupta) for the contribution)
+ ([#15522](https://github.com/Microsoft/vscode-python/issues/15522))
+1. Fix truncated mypy errors by setting `--no-pretty`.
+ (thanks [Peter Lithammer](https://github.com/lithammer))
+ ([#16836](https://github.com/Microsoft/vscode-python/issues/16836))
+1. Renamed the commands in the Run/Debug button of the editor title. (thanks (Analía Bannura)[https://github.com/analiabs] and (Anna Arsentieva)[https://github.com/arsentieva])
+ ([#17019](https://github.com/Microsoft/vscode-python/issues/17019))
+1. Fix for `pytest` run all tests when using `pytest.ini`.
+ ([#17546](https://github.com/Microsoft/vscode-python/issues/17546))
+1. Ensures test node is updated when `unittest` sub-tests are used.
+ ([#17561](https://github.com/Microsoft/vscode-python/issues/17561))
+1. Update debugpy to 1.5.1 to ensure user-unhandled exception setting is false by default.
+ ([#17789](https://github.com/Microsoft/vscode-python/issues/17789))
+1. Ensure we filter out unsupported features in web scenario using `shellExecutionSupported` context key.
+ ([#17811](https://github.com/Microsoft/vscode-python/issues/17811))
+1. Remove `python.condaPath` from workspace scope.
+ ([#17819](https://github.com/Microsoft/vscode-python/issues/17819))
+1. Make updateTestItemFromRawData async to prevent blocking the extension.
+ ([#17823](https://github.com/Microsoft/vscode-python/issues/17823))
+1. Semantic colorization can sometimes require reopening or scrolling of a file.
+ ([#17878](https://github.com/Microsoft/vscode-python/issues/17878))
+
+### Code Health
+
+1. Remove TSLint comments since we use ESLint.
+ ([#4060](https://github.com/Microsoft/vscode-python/issues/4060))
+1. Remove unused SHA512 hashing code.
+ ([#7333](https://github.com/Microsoft/vscode-python/issues/7333))
+1. Remove unused packages.
+ ([#16840](https://github.com/Microsoft/vscode-python/issues/16840))
+1. Remove old discovery code and discovery experiments.
+ ([#17795](https://github.com/Microsoft/vscode-python/issues/17795))
+1. Do not query for version and kind if it's not needed when reporting an issue.
+ ([#17815](https://github.com/Microsoft/vscode-python/issues/17815))
+1. Remove Microsoft Python Language Server support from the extension.
+ ([#17834](https://github.com/Microsoft/vscode-python/issues/17834))
+1. Bump `packaging` from 21.0 to 21.2.
+ ([#17886](https://github.com/Microsoft/vscode-python/issues/17886))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [poetry](https://pypi.org/project/poetry/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.10.1 (13 October 2021)
+
+### Enhancements
+
+1. Provide IntelliSense status information when using `github.dev` or any other web platform.
+ ([#17658](https://github.com/Microsoft/vscode-python/issues/17658))
+
+### Fixes
+
+1. Ensure commands run are not logged twice in Python output channel.
+ ([#7160](https://github.com/Microsoft/vscode-python/issues/7160))
+1. Ensure we use fragment when formatting notebook cells.
+ ([#16980](https://github.com/Microsoft/vscode-python/issues/16980))
+1. Hide UI elements that are not applicable when using `github.dev` or any other web platform.
+ ([#17252](https://github.com/Microsoft/vscode-python/issues/17252))
+1. Localize strings on `github.dev` using VSCode FS API.
+ ([#17712](https://github.com/Microsoft/vscode-python/issues/17712))
+
+### Code Health
+
+1. Log commands run by the discovery component in the output channel.
+ ([#16732](https://github.com/Microsoft/vscode-python/issues/16732))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [poetry](https://pypi.org/project/poetry/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.10.0 (7 October 2021)
+
+### Enhancements
+
+1. Set the default value of `python.linting.pylintEnabled` to `false`.
+ ([#3007](https://github.com/Microsoft/vscode-python/issues/3007))
+1. Phase out Jedi 0.17, and use Jedi behind a language server protocol as the Jedi option. Remove Jedi-related settings `python.jediMemoryLimit` and `python.jediPath`, since they are not used with the new language server implementation.
+ ([#11995](https://github.com/Microsoft/vscode-python/issues/11995))
+1. Add support for dynamic updates in interpreter list.
+ ([#17043](https://github.com/Microsoft/vscode-python/issues/17043))
+1. Query for fresh workspace envs when auto-selecting interpreters in a new workspace.
+ ([#17264](https://github.com/Microsoft/vscode-python/issues/17264))
+1. Increase Microsoft Python Language Server deprecation prompt frequency and update wording.
+ ([#17361](https://github.com/Microsoft/vscode-python/issues/17361))
+1. Remove "The Python extension will have limited support for Python 2.7 in the next release" notification.
+ ([#17451](https://github.com/Microsoft/vscode-python/issues/17451))
+1. Added non-blocking discovery APIs for Jupyter.
+ ([#17452](https://github.com/Microsoft/vscode-python/issues/17452))
+1. Resolve environments using cache if cache has complete env info.
+ ([#17474](https://github.com/Microsoft/vscode-python/issues/17474))
+1. Ensure debugger contribution points are turned off when using virtual workspaces.
+ ([#17493](https://github.com/Microsoft/vscode-python/issues/17493))
+1. Display a notification about the end of Jedi support when using Python 2.7.
+ ([#17512](https://github.com/Microsoft/vscode-python/issues/17512))
+1. If user has selected an interpreter which is not discovery cache, correctly add it to cache.
+ ([#17575](https://github.com/Microsoft/vscode-python/issues/17575))
+1. Update to latest version of Jedi LS.
+ ([#17591](https://github.com/Microsoft/vscode-python/issues/17591))
+1. Update to `vscode-extension-telemetry` 0.4.2.
+ ([#17608](https://github.com/Microsoft/vscode-python/issues/17608))
+
+### Fixes
+
+1. Don't override user provided `--rootdir` in pytest args.
+ ([#8678](https://github.com/Microsoft/vscode-python/issues/8678))
+1. Don't log error during settings migration if settings.json doesn't exist.
+ ([#11354](https://github.com/Microsoft/vscode-python/issues/11354))
+1. Fix casing of text in `unittest` patterns quickpick.
+ (thanks [Anupama Nadig](https://github.com/anu-ka))
+ ([#17093](https://github.com/Microsoft/vscode-python/issues/17093))
+1. Use quickpick details for the "Use Python from `python.defaultInterpreterPath` setting" entry.
+ ([#17124](https://github.com/Microsoft/vscode-python/issues/17124))
+1. Fix refreshing progress display in the status bar.
+ ([#17338](https://github.com/Microsoft/vscode-python/issues/17338))
+1. Ensure we do not start a new discovery for an event if one is already scheduled.
+ ([#17339](https://github.com/Microsoft/vscode-python/issues/17339))
+1. Do not display workspace related envs if no workspace is open.
+ ([#17358](https://github.com/Microsoft/vscode-python/issues/17358))
+1. Ensure we correctly evaluate Unknown type before sending startup telemetry.
+ ([#17362](https://github.com/Microsoft/vscode-python/issues/17362))
+1. Fix for unittest discovery failure due to root id mismatch.
+ ([#17386](https://github.com/Microsoft/vscode-python/issues/17386))
+1. Improve pattern matching for shell detection on Windows.
+ (thanks [Erik Demaine](https://github.com/edemaine/))
+ ([#17426](https://github.com/Microsoft/vscode-python/issues/17426))
+1. Changed the way of searching left bracket `[` in case of subsets of tests.
+ (thanks [ilexei](https://github.com/ilexei))
+ ([#17461](https://github.com/Microsoft/vscode-python/issues/17461))
+1. Fix hang caused by loop in getting interpreter information.
+ ([#17484](https://github.com/Microsoft/vscode-python/issues/17484))
+1. Ensure database storage extension uses to track all storages does not grow unnecessarily.
+ ([#17488](https://github.com/Microsoft/vscode-python/issues/17488))
+1. Ensure all users use new discovery code regardless of their experiment settings.
+ ([#17563](https://github.com/Microsoft/vscode-python/issues/17563))
+1. Add timeout when discovery runs `conda info --json` command.
+ ([#17576](https://github.com/Microsoft/vscode-python/issues/17576))
+1. Use `conda-forge` channel when installing packages into conda environments.
+ ([#17628](https://github.com/Microsoft/vscode-python/issues/17628))
+
+### Code Health
+
+1. Remove support for `rope`. Refactoring now supported via language servers.
+ ([#10440](https://github.com/Microsoft/vscode-python/issues/10440))
+1. Remove `pylintMinimalCheckers` setting. Syntax errors now reported via language servers.
+ ([#13321](https://github.com/Microsoft/vscode-python/issues/13321))
+1. Remove `ctags` support. Workspace symbols now supported via language servers.
+ ([#16063](https://github.com/Microsoft/vscode-python/issues/16063))
+1. Fix linting for some files in .eslintignore.
+ ([#17181](https://github.com/Microsoft/vscode-python/issues/17181))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [poetry](https://pypi.org/project/poetry/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.9.3 (20 September 2021)
+
+### Fixes
+
+1. Fix `Python extension loading...` issue for users who have disabled telemetry.
+ ([#17447](https://github.com/Microsoft/vscode-python/issues/17447))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [poetry](https://pypi.org/project/poetry/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.9.2 (13 September 2021)
+
+### Fixes
+
+1. Ensure line feeds are changed to CRLF in test messages.
+ ([#17111](https://github.com/Microsoft/vscode-python/issues/17111))
+1. Fix for `unittest` ModuleNotFoundError when discovering tests.
+ ([#17363](https://github.com/Microsoft/vscode-python/issues/17363))
+1. Ensure we block getting active interpreter on auto-selection.
+ ([#17370](https://github.com/Microsoft/vscode-python/issues/17370))
+1. Fix to handle undefined uri in debug in terminal command.
+ ([#17374](https://github.com/Microsoft/vscode-python/issues/17374))
+1. Fix for missing buttons for tests when using multiple test folders.
+ ([#17378](https://github.com/Microsoft/vscode-python/issues/17378))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [poetry](https://pypi.org/project/poetry/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.9.1 (9 September 2021)
+
+### Fixes
+
+1. Fix for debug configuration used when no launch.json exists is still used after launch.json is created.
+ ([#17353](https://github.com/Microsoft/vscode-python/issues/17353))
+1. Ensure default python executable to use is 'python' instead of ''.
+ ([#17089](https://github.com/Microsoft/vscode-python/issues/17089))
+1. Ensure workspace interpreters are discovered and watched when in `pythonDiscoveryModuleWithoutWatcher` experiment.
+ ([#17144](https://github.com/Microsoft/vscode-python/issues/17144))
+1. Do path comparisons appropriately in the new discovery component.
+ ([#17244](https://github.com/Microsoft/vscode-python/issues/17244))
+1. Fix for test result not found for files starting with py.
+ ([#17270](https://github.com/Microsoft/vscode-python/issues/17270))
+1. Fix for unable to import when running unittest.
+ ([#17280](https://github.com/Microsoft/vscode-python/issues/17280))
+1. Fix for multiple folders in `pytest` args.
+ ([#17281](https://github.com/Microsoft/vscode-python/issues/17281))
+1. Fix issue with incomplete `unittest` runs.
+ ([#17282](https://github.com/Microsoft/vscode-python/issues/17282))
+1. Improve detecting lines when using testing wrappers.
+ ([#17285](https://github.com/Microsoft/vscode-python/issues/17285))
+1. Ensure we trigger discovery for the first time as part of extension activation.
+ ([#17303](https://github.com/Microsoft/vscode-python/issues/17303))
+1. Correctly indicate when interpreter refresh has finished.
+ ([#17335](https://github.com/Microsoft/vscode-python/issues/17335))
+1. Missing location info for `async def` functions.
+ ([#17309](https://github.com/Microsoft/vscode-python/issues/17309))
+1. For CI ensure `tensorboard` is installed in python 3 environments only.
+ ([#17325](https://github.com/Microsoft/vscode-python/issues/17325))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [poetry](https://pypi.org/project/poetry/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.9.0 (1 September 2021)
+
+### Enhancements
+
+1. Added commands to select and run a set of tests.
+ ([#3652](https://github.com/Microsoft/vscode-python/issues/3652))
+1. Fix for tests should be re-discovered after switching environment.
+ ([#5347](https://github.com/Microsoft/vscode-python/issues/5347))
+1. Remove the testing functionality from the status bar.
+ ([#8405](https://github.com/Microsoft/vscode-python/issues/8405))
+1. Automatically detect new test file in test explorer.
+ ([#8675](https://github.com/Microsoft/vscode-python/issues/8675))
+1. Search test names in test explorer.
+ ([#8836](https://github.com/Microsoft/vscode-python/issues/8836))
+1. Added a command for displaying the test explorer.
+ ([#9026](https://github.com/Microsoft/vscode-python/issues/9026))
+1. Make "run all tests" icon gray instead of green.
+ ([#9402](https://github.com/Microsoft/vscode-python/issues/9402))
+1. Use VS Code's test UI instead of code lenses above tests.
+ ([#10898](https://github.com/Microsoft/vscode-python/issues/10898))
+1. Added command to run last executed test.
+ ([#11864](https://github.com/Microsoft/vscode-python/issues/11864))
+1. Fix for PyTest discovery can fail but not give any clue as to what the problem is.
+ ([#12043](https://github.com/Microsoft/vscode-python/issues/12043))
+1. Add shortcut to run the current test (at cursor position).
+ ([#12218](https://github.com/Microsoft/vscode-python/issues/12218))
+1. Run all tests in a multi-root workspace without prompting.
+ ([#13147](https://github.com/Microsoft/vscode-python/issues/13147))
+1. Plug into VS Code's Test UI.
+ ([#15750](https://github.com/Microsoft/vscode-python/issues/15750))
+1. Show notification to join insiders after 5 mins.
+ ([#16833](https://github.com/Microsoft/vscode-python/issues/16833))
+1. Update Simplified Chinese translation. (thanks [FiftysixTimes7](https://github.com/FiftysixTimes7))
+ ([#16916](https://github.com/Microsoft/vscode-python/issues/16916))
+1. Added Debug file button to editor run menu.
+ ([#16924](https://github.com/Microsoft/vscode-python/issues/16924))
+1. Cache last selection for debug configuration when debugging without launch.json.
+ ([#16934](https://github.com/Microsoft/vscode-python/issues/16934))
+1. Improve display of default interpreter and suggested interpreter in the interpreter selection quick pick.
+ ([#16971](https://github.com/Microsoft/vscode-python/issues/16971))
+1. Improve discovery component API.
+ ([#17005](https://github.com/Microsoft/vscode-python/issues/17005))
+1. Add a notification about Python 2.7 support, displayed whenever a tool is used or whenever debugging is started.
+ ([#17009](https://github.com/Microsoft/vscode-python/issues/17009))
+1. Add caching debug configuration behind experiment.
+ ([#17025](https://github.com/Microsoft/vscode-python/issues/17025))
+1. Do not query to get all interpreters where it's not needed in the extension code.
+ ([#17030](https://github.com/Microsoft/vscode-python/issues/17030))
+1. Add a warning prompt for the Microsoft Python Language Server deprecation.
+ ([#17056](https://github.com/Microsoft/vscode-python/issues/17056))
+1. Update to latest jedi-language-server.
+ ([#17072](https://github.com/Microsoft/vscode-python/issues/17072))
+
+### Fixes
+
+1. Fix for test code lenses do not disappear even after disabling the unit tests.
+ ([#1654](https://github.com/Microsoft/vscode-python/issues/1654))
+1. Fix for code lens for a test class run under unittest doesn't show overall results for methods.
+ ([#2382](https://github.com/Microsoft/vscode-python/issues/2382))
+1. Fix for test code lens do not appear on initial activation of testing support.
+ ([#2644](https://github.com/Microsoft/vscode-python/issues/2644))
+1. Fix for "No tests ran, please check the configuration settings for the tests".
+ ([#2660](https://github.com/Microsoft/vscode-python/issues/2660))
+1. Fix for code lenses disappear on save, then re-appear when tabbing on/off the file.
+ ([#2790](https://github.com/Microsoft/vscode-python/issues/2790))
+1. Fix for code lenses for tests not showing up when test is defined on line 1.
+ ([#3062](https://github.com/Microsoft/vscode-python/issues/3062))
+1. Fix for command 'python.runtests' not found.
+ ([#3591](https://github.com/Microsoft/vscode-python/issues/3591))
+1. Fix for navigation to code doesn't work with parameterized tests.
+ ([#4469](https://github.com/Microsoft/vscode-python/issues/4469))
+1. Fix for tests are not being discovered at first in multiroot workspace.
+ ([#4848](https://github.com/Microsoft/vscode-python/issues/4848))
+1. Fix for tests not found after upgrade.
+ ([#5417](https://github.com/Microsoft/vscode-python/issues/5417))
+1. Fix for failed icon of the first failed test doesn't changed to running icon when using unittest framework.
+ ([#5791](https://github.com/Microsoft/vscode-python/issues/5791))
+1. Fix for failure details in unittest discovery are not always logged.
+ ([#5889](https://github.com/Microsoft/vscode-python/issues/5889))
+1. Fix for test results not updated if test is run via codelens.
+ ([#6787](https://github.com/Microsoft/vscode-python/issues/6787))
+1. Fix for "Run Current Test File" is not running tests, just discovering them.
+ ([#7150](https://github.com/Microsoft/vscode-python/issues/7150))
+1. Fix for testing code lenses don't show for remote sessions to a directory symlink.
+ ([#7443](https://github.com/Microsoft/vscode-python/issues/7443))
+1. Fix for discover test per folder icon is missing in multi-root workspace after upgrade.
+ ([#7870](https://github.com/Microsoft/vscode-python/issues/7870))
+1. Fix for clicking on a test in the Test Explorer does not navigate to the correct test.
+ ([#8448](https://github.com/Microsoft/vscode-python/issues/8448))
+1. Fix for if multiple tests have the same name, only one is run.
+ ([#8761](https://github.com/Microsoft/vscode-python/issues/8761))
+1. Fix for test failure is reported as a compile error.
+ ([#9640](https://github.com/Microsoft/vscode-python/issues/9640))
+1. Fix for discovering tests immediately after interpreter change often fails.
+ ([#9854](https://github.com/Microsoft/vscode-python/issues/9854))
+1. Fix for unittest module invoking wrong TestCase.
+ ([#10972](https://github.com/Microsoft/vscode-python/issues/10972))
+1. Fix for unable to navigate to test function.
+ ([#11866](https://github.com/Microsoft/vscode-python/issues/11866))
+1. Fix for running test fails trying to access non-existing file.
+ ([#12403](https://github.com/Microsoft/vscode-python/issues/12403))
+1. Fix for code lenses don't work after opening files from different projects in workspace.
+ ([#12995](https://github.com/Microsoft/vscode-python/issues/12995))
+1. Fix for the pytest icons keep spinning when run Test Method.
+ ([#13285](https://github.com/Microsoft/vscode-python/issues/13285))
+1. Test for any functionality related to testing doesn't work if language server is set to none.
+ ([#13713](https://github.com/Microsoft/vscode-python/issues/13713))
+1. Fix for cannot configure PyTest from UI.
+ ([#13916](https://github.com/Microsoft/vscode-python/issues/13916))
+1. Fix for test icons not updating when using pytest.
+ ([#15260](https://github.com/Microsoft/vscode-python/issues/15260))
+1. Fix for debugging tests is returning errors due to "unsupported status".
+ ([#15736](https://github.com/Microsoft/vscode-python/issues/15736))
+1. Removes `"request": "test"` as a config option. This can now be done with `"purpose": ["debug-test"]`.
+ ([#15790](https://github.com/Microsoft/vscode-python/issues/15790))
+1. Fix for "There was an error in running the tests" when stopping debugger.
+ ([#16475](https://github.com/Microsoft/vscode-python/issues/16475))
+1. Use the vscode API appropriately to find out what terminal is being used.
+ ([#16577](https://github.com/Microsoft/vscode-python/issues/16577))
+1. Fix unittest discovery. (thanks [JulianEdwards](https://github.com/bigjools))
+ ([#16593](https://github.com/Microsoft/vscode-python/issues/16593))
+1. Fix run `installPythonLibs` error in windows.
+ ([#16844](https://github.com/Microsoft/vscode-python/issues/16844))
+1. Fix for test welcome screen flashes on refresh.
+ ([#16855](https://github.com/Microsoft/vscode-python/issues/16855))
+1. Show re-run failed test button only when there are failed tests.
+ ([#16856](https://github.com/Microsoft/vscode-python/issues/16856))
+1. Triggering test refresh shows progress indicator.
+ ([#16891](https://github.com/Microsoft/vscode-python/issues/16891))
+1. Fix environment sorting for the `Python: Select Interpreter` command.
+ (thanks [Marc Mueller](https://github.com/cdce8p))
+ ([#16893](https://github.com/Microsoft/vscode-python/issues/16893))
+1. Fix for unittest not getting discovered in all cases.
+ ([#16902](https://github.com/Microsoft/vscode-python/issues/16902))
+1. Don't show full path in the description for each test node.
+ ([#16927](https://github.com/Microsoft/vscode-python/issues/16927))
+1. Fix for no notification shown if test framework is not configured and run all tests is called.
+ ([#16941](https://github.com/Microsoft/vscode-python/issues/16941))
+1. In experiments service don't always `await` on `initialfetch` which can be slow depending on the network.
+ ([#16959](https://github.com/Microsoft/vscode-python/issues/16959))
+1. Ensure 2.7 unittest still work with new test support.
+ ([#16962](https://github.com/Microsoft/vscode-python/issues/16962))
+1. Fix issue with parsing test run ids for reporting test status.
+ ([#16963](https://github.com/Microsoft/vscode-python/issues/16963))
+1. Fix cell magics, line magics, and shell escaping in jupyter notebooks to not show error diagnostics.
+ ([#17058](https://github.com/Microsoft/vscode-python/issues/17058))
+1. Fix for testing ui update issue when `pytest` parameter has '/'.
+ ([#17079](https://github.com/Microsoft/vscode-python/issues/17079))
+
+### Code Health
+
+1. Remove nose test support.
+ ([#16371](https://github.com/Microsoft/vscode-python/issues/16371))
+1. Remove custom start page experience in favor of VSCode's built-in walkthrough support.
+ ([#16453](https://github.com/Microsoft/vscode-python/issues/16453))
+1. Run auto-selection only once, and return the cached value for subsequent calls.
+ ([#16735](https://github.com/Microsoft/vscode-python/issues/16735))
+1. Add telemetry for when an interpreter gets auto-selected.
+ ([#16764](https://github.com/Microsoft/vscode-python/issues/16764))
+1. Remove pre-existing environment sorting algorithm and old rule-based auto-selection logic.
+ ([#16935](https://github.com/Microsoft/vscode-python/issues/16935))
+1. Add API to run code after extension activation.
+ ([#16983](https://github.com/Microsoft/vscode-python/issues/16983))
+1. Add telemetry sending time it took to load data from experiment service.
+ ([#17011](https://github.com/Microsoft/vscode-python/issues/17011))
+1. Improve reliability of virtual env tests and disable poetry watcher tests.
+ ([#17088](https://github.com/Microsoft/vscode-python/issues/17088))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [poetry](https://pypi.org/project/poetry/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.8.3 (23 August 2021)
+
+### Fixes
+
+1. Update `vsce` to latest to fix metadata in VSIX for web extension.
+ ([#17049](https://github.com/Microsoft/vscode-python/issues/17049))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.8.2 (19 August 2021)
+
+### Enhancements
+
+1. Add a basic web extension bundle.
+ ([#16869](https://github.com/Microsoft/vscode-python/issues/16869))
+1. Add basic Pylance support to the web extension.
+ ([#16870](https://github.com/Microsoft/vscode-python/issues/16870))
+
+### Code Health
+
+1. Update telemetry client to support browser, plumb to Pylance.
+ ([#16871](https://github.com/Microsoft/vscode-python/issues/16871))
+1. Refactor language server middleware to work in the browser.
+ ([#16872](https://github.com/Microsoft/vscode-python/issues/16872))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.8.1 (6 August 2021)
+
+### Fixes
+
+1. Fix random delay before running python code.
+ ([#16768](https://github.com/Microsoft/vscode-python/issues/16768))
+1. Fix the order of default unittest arguments.
+ (thanks [Nikolay Kondratyev](https://github.com/kondratyev-nv/))
+ ([#16882](https://github.com/Microsoft/vscode-python/issues/16882))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.8.0 (5 August 2021)
+
+### Enhancements
+
+1. Add new getting started page using VS Code's API to replace our custom start page.
+ ([#16678](https://github.com/Microsoft/vscode-python/issues/16678))
+1. Replace deprecated vscode-test with @vscode/test-electron for CI. (thanks [iChenLei](https://github.com/iChenLei))
+ ([#16765](https://github.com/Microsoft/vscode-python/issues/16765))
+
+### Code Health
+
+1. Sort Settings Alphabetically. (thanks [bfarahdel](https://github.com/bfarahdel))
+ ([#8406](https://github.com/Microsoft/vscode-python/issues/8406))
+1. Changed default language server to `Pylance` for extension development. (thanks [jasleen101010](https://github.com/jasleen101010))
+ ([#13007](https://github.com/Microsoft/vscode-python/issues/13007))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.7.2 (23 July 2021)
+
+### Enhancements
+
+1. Update `debugpy` with fix for https://github.com/microsoft/debugpy/issues/669.
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.7.1 (21 July 2021)
+
+### Enhancements
+
+1. Update `debugpy` to the latest version.
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.7.0 (20 July 2021)
+
+### Enhancements
+
+1. Support starting a TensorBoard session with a remote URL hosting log files.
+ ([#16461](https://github.com/Microsoft/vscode-python/issues/16461))
+1. Sort environments in the selection quickpick by assumed usefulness.
+ ([#16520](https://github.com/Microsoft/vscode-python/issues/16520))
+
+### Fixes
+
+1. Add link to docs page on how to install the Python extension to README. (thanks [KamalSinghKhanna](https://github.com/KamalSinghKhanna))
+ ([#15199](https://github.com/Microsoft/vscode-python/issues/15199))
+1. Make test explorer only show file/folder names on nodes.
+ (thanks [bobwalker99](https://github.com/bobwalker99))
+ ([#16368](https://github.com/Microsoft/vscode-python/issues/16368))
+1. Ensure we dispose restart command registration before we create a new instance of Jedi LS.
+ ([#16441](https://github.com/Microsoft/vscode-python/issues/16441))
+1. Ensure `shellIdentificationSource` is set correctly. (thanks [intrigus-lgtm](https://github.com/intrigus-lgtm))
+ ([#16517](https://github.com/Microsoft/vscode-python/issues/16517))
+1. Clear Notebook Cell diagnostics when deleting a cell or closing a notebook.
+ ([#16528](https://github.com/Microsoft/vscode-python/issues/16528))
+1. The `poetryPath` setting will correctly apply system variable substitutions. (thanks [Anthony Shaw](https://github.com/tonybaloney))
+ ([#16607](https://github.com/Microsoft/vscode-python/issues/16607))
+1. The Jupyter Notebook extension will install any missing dependencies using Poetry or Pipenv if those are the selected environments. (thanks [Anthony Shaw](https://github.com/tonybaloney))
+ ([#16615](https://github.com/Microsoft/vscode-python/issues/16615))
+1. Ensure we block on autoselection when no interpreter is explictly set by user.
+ ([#16723](https://github.com/Microsoft/vscode-python/issues/16723))
+1. Fix autoselection when opening a python file directly.
+ ([#16733](https://github.com/Microsoft/vscode-python/issues/16733))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.6.0 (16 June 2021)
+
+### Enhancements
+
+1. Improved telemetry around the availability of `pip` for installation of Jupyter dependencies.
+ ([#15937](https://github.com/Microsoft/vscode-python/issues/15937))
+1. Move the Jupyter extension from being a hard dependency to an optional one, and display an informational prompt if Jupyter commands try to be executed from the Start Page.
+ ([#16102](https://github.com/Microsoft/vscode-python/issues/16102))
+1. Add an `enumDescriptions` key under the `python.languageServer` setting to describe all language server options.
+ ([#16141](https://github.com/Microsoft/vscode-python/issues/16141))
+1. Ensure users upgrade to v0.2.0 of the torch-tb-profiler TensorBoard plugin to access jump-to-source functionality.
+ ([#16330](https://github.com/Microsoft/vscode-python/issues/16330))
+1. Added `python.defaultInterpreterPath` setting at workspace level when in `pythonDeprecatePythonPath` experiment.
+ ([#16485](https://github.com/Microsoft/vscode-python/issues/16485))
+1. Added default Interpreter path entry at the bottom of the interpreter list.
+ ([#16485](https://github.com/Microsoft/vscode-python/issues/16485))
+1. Remove execution isolation script used to run tools.
+ ([#16485](https://github.com/Microsoft/vscode-python/issues/16485))
+1. Show `python.pythonPath` deprecation prompt when in `pythonDeprecatePythonPath` experiment.
+ ([#16485](https://github.com/Microsoft/vscode-python/issues/16485))
+1. Do not show safety prompt before auto-selecting a workspace interpreter.
+ ([#16485](https://github.com/Microsoft/vscode-python/issues/16485))
+1. Assume workspace interpreters are safe to execute for discovery.
+ ([#16485](https://github.com/Microsoft/vscode-python/issues/16485))
+
+### Fixes
+
+1. Fixes a bug in the bandit linter where messages weren't being propagated to the editor.
+ (thanks [Anthony Shaw](https://github.com/tonybaloney))
+ ([#15561](https://github.com/Microsoft/vscode-python/issues/15561))
+1. Workaround existing MIME type misconfiguration on Windows preventing TensorBoard from loading when starting TensorBoard.
+ ([#16072](https://github.com/Microsoft/vscode-python/issues/16072))
+1. Changed the version of npm to version 6 instead of 7 in the lockfile.
+ ([#16208](https://github.com/Microsoft/vscode-python/issues/16208))
+1. Ensure selected interpreter doesn't change when the extension is starting up and in experiment.
+ ([#16291](https://github.com/Microsoft/vscode-python/issues/16291))
+1. Fix issue with sys.prefix when getting environment details.
+ ([#16355](https://github.com/Microsoft/vscode-python/issues/16355))
+1. Activate the extension when selecting the command `Clear Internal Extension Cache (python.clearPersistentStorage)`.
+ ([#16397](https://github.com/Microsoft/vscode-python/issues/16397))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.5.2 (14 May 2021)
+
+### Fixes
+
+1. Ensure Pylance is used with Python 2 if explicitly chosen
+ ([#16246](https://github.com/microsoft/vscode-python/issues/16246))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.5.1 (13 May 2021)
+
+### Fixes
+
+1. Allow Pylance to be used with Python 2 if explicitly chosen
+ ([#16204](https://github.com/microsoft/vscode-python/issues/16204))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.5.0 (10 May 2021)
+
+### Enhancements
+
+1. In an integrated TensorBoard session, if the jump to source request is for a file that does not exist on disk, allow the user to manually specify the file using the system file picker.
+ ([#15695](https://github.com/Microsoft/vscode-python/issues/15695))
+1. Allow running tests for all files within directories from test explorer.
+ (thanks [Vladimir Kotikov](https://github.com/vladimir-kotikov))
+ ([#15862](https://github.com/Microsoft/vscode-python/issues/15862))
+1. Reveal selection in editor after jump to source command. (thanks [Wenlu Wang](https://github.com/Kingwl))
+ ([#15924](https://github.com/Microsoft/vscode-python/issues/15924))
+1. Add support for debugger code reloading.
+ ([#16029](https://github.com/Microsoft/vscode-python/issues/16029))
+1. Add Python: Refresh TensorBoard command, keybinding and editor title button to reload TensorBoard (equivalent to browser refresh).
+ ([#16053](https://github.com/Microsoft/vscode-python/issues/16053))
+1. Automatically indent following `match` and `case` statements. (thanks [Marc Mueller](https://github.com/cdce8p))
+ ([#16104](https://github.com/Microsoft/vscode-python/issues/16104))
+1. Bundle Pylance with the extension as an optional dependency.
+ ([#16116](https://github.com/Microsoft/vscode-python/issues/16116))
+1. Add a "Default" language server option, which dynamically chooses which language server to use.
+ ([#16157](https://github.com/Microsoft/vscode-python/issues/16157))
+
+### Fixes
+
+1. Stop `unittest.TestCase` appearing as a test suite in the test explorer tree.
+ (thanks [Bob](https://github.com/bobwalker99)).
+ ([#15681](https://github.com/Microsoft/vscode-python/issues/15681))
+1. Support `~` in WORKON_HOME and venvPath setting when in discovery experiment.
+ ([#15788](https://github.com/Microsoft/vscode-python/issues/15788))
+1. Fix TensorBoard integration in Remote-SSH by auto-configuring port forwards.
+ ([#15807](https://github.com/Microsoft/vscode-python/issues/15807))
+1. Ensure venvPath and venvFolders setting can only be set at User or Remote settings.
+ ([#15947](https://github.com/Microsoft/vscode-python/issues/15947))
+1. Added compatability with pypy3.7 interpreter.
+ (thanks [Oliver Margetts](https://github.com/olliemath))
+ ([#15968](https://github.com/Microsoft/vscode-python/issues/15968))
+1. Revert linter installation prompt removal.
+ ([#16027](https://github.com/Microsoft/vscode-python/issues/16027))
+1. Ensure that `dataclasses` is installed when using Jedi LSP.
+ ([#16119](https://github.com/Microsoft/vscode-python/issues/16119))
+
+### Code Health
+
+1. Log the failures when checking whether certain modules are installed or getting their version information.
+ ([#15837](https://github.com/Microsoft/vscode-python/issues/15837))
+1. Better logging (telemetry) when installation of Python packages fail.
+ ([#15933](https://github.com/Microsoft/vscode-python/issues/15933))
+1. Ensure npm packave `canvas` is setup as an optional dependency.
+ ([#16127](https://github.com/Microsoft/vscode-python/issues/16127))
+1. Add ability for Jupyter extension to pass addtional installer arguments.
+ ([#16131](https://github.com/Microsoft/vscode-python/issues/16131))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.4.0 (19 April 2021)
+
+### Enhancements
+
+1. Add new command to report an Issue using the vscode-python template.
+ ([#1119](https://github.com/microsoft/vscode-python/issues/1119))
+1. Highlight `.pypirc`, `.pep8`, and `.pylintrc` as ini-files. (thanks [Jan Pilzer](https://github.com/Hirse))
+ ([#11250](https://github.com/Microsoft/vscode-python/issues/11250))
+1. Added `python.linting.cwd` to change the working directory of the linters. (thanks [Matthew Shirley](https://github.com/matthewshirley))
+ ([#15170](https://github.com/Microsoft/vscode-python/issues/15170))
+1. Remove prompt to install a linter when none are available.
+ ([#15465](https://github.com/Microsoft/vscode-python/issues/15465))
+1. Add jump to source integration with the PyTorch profiler TensorBoard plugin during TensorBoard sessions.
+ ([#15641](https://github.com/Microsoft/vscode-python/issues/15641))
+1. Drop prompt being displayed on first extension launch with a tip or a survey.
+ ([#15647](https://github.com/Microsoft/vscode-python/issues/15647))
+1. Use the updated logic for normalizing code sent to REPL as the default behavior.
+ ([#15649](https://github.com/Microsoft/vscode-python/issues/15649))
+1. Open TensorBoard webview panel in the active viewgroup on the first launch or the last viewgroup that it was moved to.
+ ([#15708](https://github.com/Microsoft/vscode-python/issues/15708))
+1. Support discovering Poetry virtual environments when in discovery experiment.
+ ([#15765](https://github.com/Microsoft/vscode-python/issues/15765))
+1. Install dev tools using Poetry when the poetry environment related to current folder is selected when in discovery experiment.
+ ([#15786](https://github.com/Microsoft/vscode-python/issues/15786))
+1. Add a refresh icon next to interpreter list.
+ ([#15868](https://github.com/Microsoft/vscode-python/issues/15868))
+1. Added command `Python: Clear internal extension cache` to clear extension related cache.
+ ([#15883](https://github.com/Microsoft/vscode-python/issues/15883))
+
+### Fixes
+
+1. Fix `python.poetryPath` setting for installer on Windows.
+ ([#9672](https://github.com/Microsoft/vscode-python/issues/9672))
+1. Prevent mypy errors for other files showing in current file.
+ (thanks [Steve Dignam](https://github.com/sbdchd))
+ ([#10190](https://github.com/Microsoft/vscode-python/issues/10190))
+1. Update pytest results when debugging. (thanks [djplt](https://github.com/djplt))
+ ([#15353](https://github.com/Microsoft/vscode-python/issues/15353))
+1. Ensure release level is set when using new environment discovery component.
+ ([#15462](https://github.com/Microsoft/vscode-python/issues/15462))
+1. Ensure right environment is activated in the terminal when installing Python packages.
+ ([#15503](https://github.com/Microsoft/vscode-python/issues/15503))
+1. Update nosetest results when debugging. (thanks [djplt](https://github.com/djplt))
+ ([#15642](https://github.com/Microsoft/vscode-python/issues/15642))
+1. Ensure any stray jedi process is terminated on language server dispose.
+ ([#15644](https://github.com/Microsoft/vscode-python/issues/15644))
+1. Fix README image indent for VSCode extension page. (thanks [Johnson](https://github.com/j3soon/))
+ ([#15662](https://github.com/Microsoft/vscode-python/issues/15662))
+1. Run `conda update` and not `conda install` when installing a compatible version of the `tensorboard` package.
+ ([#15778](https://github.com/Microsoft/vscode-python/issues/15778))
+1. Temporarily fix support for folders in interpreter path setting.
+ ([#15782](https://github.com/Microsoft/vscode-python/issues/15782))
+1. In completions.py: jedi.api.names has been deprecated, switch to new syntax.
+ (thanks [moselhy](https://github.com/moselhy)).
+ ([#15791](https://github.com/Microsoft/vscode-python/issues/15791))
+1. Fixes activation of prefixed conda environments.
+ ([#15823](https://github.com/Microsoft/vscode-python/issues/15823))
+
+### Code Health
+
+1. Deprecating on-type line formatter since it isn't used in newer Language servers.
+ ([#15709](https://github.com/Microsoft/vscode-python/issues/15709))
+1. Removing old way of feature deprecation where we showed notification for each feature we deprecated.
+ ([#15714](https://github.com/Microsoft/vscode-python/issues/15714))
+1. Remove unused code from extension.
+ ([#15717](https://github.com/Microsoft/vscode-python/issues/15717))
+1. Add telemetry for identifying torch.profiler users.
+ ([#15825](https://github.com/Microsoft/vscode-python/issues/15825))
+1. Update notebook code to not use deprecated .cells function on NotebookDocument.
+ ([#15885](https://github.com/Microsoft/vscode-python/issues/15885))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.3.1 (23 March 2021)
+
+### Fixes
+
+1. Fix link to create a new Jupyter notebook in Python start page.
+ ([#15621](https://github.com/Microsoft/vscode-python/issues/15621))
+1. Upgrade to latest `jedi-language-server` and use it for python >= 3.6. Use `jedi<0.18` for python 2.7 and <=3.5.
+ ([#15724](https://github.com/Microsoft/vscode-python/issues/15724))
+1. Check if Python executable file exists instead of launching the Python process.
+ ([#15725](https://github.com/Microsoft/vscode-python/issues/15725))
+1. Fix for Go to definition needs to be pressed twice.
+ (thanks [djplt](https://github.com/djplt))
+ ([#15727](https://github.com/Microsoft/vscode-python/issues/15727))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.3.0 (16 March 2021)
+
+### Enhancements
+
+1. Activate the extension when the following files are found: `Pipfile`, `setup.py`, `requirements.txt`, `manage.py`, `app.py`
+ (thanks [Dhaval Soneji](https://github.com/soneji))
+ ([#4765](https://github.com/Microsoft/vscode-python/issues/4765))
+1. Add optional user-level `python.tensorBoard.logDirectory` setting. When starting a TensorBoard session, use this setting if it is present instead of prompting the user to select a log directory.
+ ([#15476](https://github.com/Microsoft/vscode-python/issues/15476))
+
+### Fixes
+
+1. Fix nosetests to run tests only once. (thanks [djplt](https://github.com/djplt))
+ ([#6043](https://github.com/Microsoft/vscode-python/issues/6043))
+1. Make on-enter behaviour after `raise` much more like that of `return`, fixing
+ handling in the case of pressing enter to wrap the parentheses of an exception
+ call.
+ (thanks [PeterJCLaw](https://github.com/PeterJCLaw))
+ ([#10583](https://github.com/Microsoft/vscode-python/issues/10583))
+1. Add configuration debugpyPath. (thanks [djplt](https://github.com/djplt))
+ ([#14631](https://github.com/Microsoft/vscode-python/issues/14631))
+1. Fix Mypy linter pointing to wrong column number (off by one).
+ (thanks [anttipessa](https://github.com/anttipessa/), [haalto](https://github.com/haalto/), [JeonCD](https://github.com/JeonCD/) and [junskU](https://github.com/junskU))
+ ([#14978](https://github.com/Microsoft/vscode-python/issues/14978))
+1. Show each python.org install only once on Mac when in discovery experiment.
+ ([#15302](https://github.com/Microsoft/vscode-python/issues/15302))
+1. All relative interpreter path reported start with `~` when in discovery experiment.
+ ([#15312](https://github.com/Microsoft/vscode-python/issues/15312))
+1. Remove FLASK_DEBUG from flask debug configuration to allow reload.
+ ([#15373](https://github.com/Microsoft/vscode-python/issues/15373))
+1. Install using pipenv only if the selected environment is pipenv which is related to workspace folder, when in discovery experiment.
+ ([#15489](https://github.com/Microsoft/vscode-python/issues/15489))
+1. Fixes issue with detecting new installations of Windows Store python.
+ ([#15541](https://github.com/Microsoft/vscode-python/issues/15541))
+1. Add `cached-property` package to bundled python packages. This is needed by `jedi-language-server` running on `python 3.6` and `python 3.7`.
+ ([#15566](https://github.com/Microsoft/vscode-python/issues/15566))
+1. Remove limit on workspace symbols when using Jedi language server.
+ ([#15576](https://github.com/Microsoft/vscode-python/issues/15576))
+1. Use shorter paths for python interpreter when possible.
+ ([#15580](https://github.com/Microsoft/vscode-python/issues/15580))
+1. Ensure that jedi language server uses jedi shipped with the extension.
+ ([#15586](https://github.com/Microsoft/vscode-python/issues/15586))
+1. Updates to Proposed API, and fix the failure in VS Code Insider tests.
+ ([#15638](https://github.com/Microsoft/vscode-python/issues/15638))
+
+### Code Health
+
+1. Add support for "Trusted Workspaces".
+
+ "Trusted Workspaces" is an upcoming feature in VS Code. (See:
+ https://github.com/microsoft/vscode/issues/106488.) For now you need
+ the following for the experience:
+
+ - the latest VS Code Insiders
+ - add `"workspace.trustEnabled": true` to your user settings.json
+
+ At that point, when the Python extension would normally activate, VS Code
+ will prompt you about whether or not the current workspace is trusted.
+ If not then the extension will be disabled (but only for that workspace).
+ As soon as the workspace is marked as trusted, the extension will
+ activate.
+ ([#15525](https://github.com/Microsoft/vscode-python/issues/15525))
+
+1. Updates to the VSCode Notebook API.
+ ([#15567](https://github.com/Microsoft/vscode-python/issues/15567))
+1. Fix failing smoke tests on CI.
+ ([#15573](https://github.com/Microsoft/vscode-python/issues/15573))
+1. Update VS Code engine to 1.54.0
+ ([#15604](https://github.com/Microsoft/vscode-python/issues/15604))
+1. Use `onReady` method available on language client to ensure language server is ready.
+ ([#15612](https://github.com/Microsoft/vscode-python/issues/15612))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.2.4 (9 March 2021)
+
+### Fixes
+
+1. Update to latest VSCode Notebook API.
+ ([#15415](https://github.com/Microsoft/vscode-python/issues/15415))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.2.3 (8 March 2021)
+
+### Fixes
+
+1. Add event handlers to stream error events to prevent process from exiting due to errors in process stdout & stderr streams.
+ ([#15395](https://github.com/Microsoft/vscode-python/issues/15395))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [jedi-language-server](https://pypi.org/project/jedi-language-server/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.2.2 (5 March 2021)
+
+### Fixes
+
+1. Fixes issue with Jedi Language Server telemetry.
+ ([#15419](https://github.com/microsoft/vscode-python/issues/15419))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.2.1 (19 February 2021)
+
+### Fixes
+
+1. Fix for missing pyenv virtual environments from selectable environments.
+ ([#15439](https://github.com/Microsoft/vscode-python/issues/15439))
+1. Register Jedi regardless of what language server is configured.
+ ([#15452](https://github.com/Microsoft/vscode-python/issues/15452))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.2.0 (17 February 2021)
+
+### Enhancements
+
+1. Use Language Server Protocol to work with Jedi.
+ ([#11995](https://github.com/Microsoft/vscode-python/issues/11995))
+
+### Fixes
+
+1. Don't suggest insiders program nor show start page when in Codespaces.
+ ([#14833](https://github.com/Microsoft/vscode-python/issues/14833))
+1. Fix description of `Pyramid` debug config.
+ (thanks [vvijayalakshmi21](https://github.com/vvijayalakshmi21/))
+ ([#5479](https://github.com/Microsoft/vscode-python/issues/5479))
+1. Refactored the Enable Linting command to provide the user with a choice of "Enable" or "Disable" linting to make it more intuitive. (thanks [henryboisdequin](https://github.com/henryboisdequin))
+ ([#8800](https://github.com/Microsoft/vscode-python/issues/8800))
+1. Fix marketplace links in popups opening a non-browser VS Code instance in Codespaces.
+ ([#14264](https://github.com/Microsoft/vscode-python/issues/14264))
+1. Fixed the error command suggested when attempting to use "debug tests" configuration
+ (Thanks [Shahzaib paracha](https://github.com/ShahzaibParacha))
+ ([#14729](https://github.com/Microsoft/vscode-python/issues/14729))
+1. Single test run fails sometimes if there is an error in unrelated file imported during discovery.
+ (thanks [Szymon Janota](https://github.com/sjanota/))
+ ([#15147](https://github.com/Microsoft/vscode-python/issues/15147))
+1. Re-enable localization on the start page. It was accidentally
+ disabled in October when the Jupyter extension was split out.
+ ([#15232](https://github.com/Microsoft/vscode-python/issues/15232))
+1. Ensure target environment is activated in the terminal when running install scripts.
+ ([#15285](https://github.com/Microsoft/vscode-python/issues/15285))
+1. Allow support for using notebook APIs in the VS code stable build.
+ ([#15364](https://github.com/Microsoft/vscode-python/issues/15364))
+
+### Code Health
+
+1. Raised the minimum required VS Code version to 1.51.
+ ([#15237](https://github.com/Microsoft/vscode-python/issues/15237))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2021.1.0 (21 January 2021)
+
+### Enhancements
+
+1. Remove code snippets (you can copy the
+ [old snippets](https://github.com/microsoft/vscode-python/blob/2020.12.424452561/snippets/python.json)
+ and use them as
+ [your own snippets](https://code.visualstudio.com/docs/editor/userdefinedsnippets#_create-your-own-snippets)).
+ ([#14781](https://github.com/Microsoft/vscode-python/issues/14781))
+1. Add PYTHONPATH to the language server settings response.
+ ([#15106](https://github.com/Microsoft/vscode-python/issues/15106))
+1. Integration with the bandit linter will highlight the variable, function or method for an issue instead of the entire line.
+ Requires latest version of the bandit package to be installed.
+ (thanks [Anthony Shaw](https://github.com/tonybaloney))
+ ([#15003](https://github.com/Microsoft/vscode-python/issues/15003))
+1. Translated some more of the Python Extension messages in Simplified Chinese.
+ (thanks [Shinoyasan](https://github.com/shinoyasan/))
+ ([#15079](https://github.com/Microsoft/vscode-python/issues/15079))
+1. Update Simplified Chinese translation.
+ (thanks [Fiftysixtimes7](https://github.com/FiftysixTimes7))
+ ([#14997](https://github.com/Microsoft/vscode-python/issues/14997))
+
+### Fixes
+
+1. Fix environment variables not refreshing on env file edits.
+ ([#3805](https://github.com/Microsoft/vscode-python/issues/3805))
+1. fix npm audit[high]: [Remote Code Execution](npmjs.com/advisories/1548)
+ ([#14640](https://github.com/Microsoft/vscode-python/issues/14640))
+1. Ignore false positives when scraping environment variables.
+ ([#14812](https://github.com/Microsoft/vscode-python/issues/14812))
+1. Fix unittest discovery when using VS Code Insiders by using Inversify's `skipBaseClassChecks` option.
+ ([#14962](https://github.com/Microsoft/vscode-python/issues/14962))
+1. Make filtering in findInterpretersInDir() faster.
+ ([#14983](https://github.com/Microsoft/vscode-python/issues/14983))
+1. Remove the Buffer() is deprecated warning from Developer tools. ([#15045](https://github.com/microsoft/vscode-python/issues/15045))
+ ([#15045](https://github.com/Microsoft/vscode-python/issues/15045))
+1. Add support for pytest 6 options.
+ ([#15094](https://github.com/Microsoft/vscode-python/issues/15094))
+
+### Code Health
+
+1. Update to Node 12.20.0.
+ ([#15046](https://github.com/Microsoft/vscode-python/issues/15046))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2020.12.2 (15 December 2020)
+
+### Fixes
+
+1. Only activate discovery component when in experiment.
+ ([#14977](https://github.com/Microsoft/vscode-python/issues/14977))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2020.12.1 (15 December 2020)
+
+### Fixes
+
+1. Fix for extension loading issue in the latest release.
+ ([#14977](https://github.com/Microsoft/vscode-python/issues/14977))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2020.12.0 (14 December 2020)
+
+### Enhancements
+
+1. FastAPI debugger feature.
+ (thanks [Marcelo Trylesinski](https://github.com/kludex/)!)
+ ([#14247](https://github.com/Microsoft/vscode-python/issues/14247))
+1. Put linter prompt behind an experiment flag.
+ ([#14760](https://github.com/Microsoft/vscode-python/issues/14760))
+1. Add Python: Launch TensorBoard command behind an experiment.
+ ([#14806](https://github.com/Microsoft/vscode-python/issues/14806))
+1. Detect tfevent files in workspace and prompt to launch native TensorBoard session.
+ ([#14807](https://github.com/Microsoft/vscode-python/issues/14807))
+1. Use default color for "Select Python interpreter" on the status bar.
+ (thanks [Daniel Rodriguez](https://github.com/danielfrg)!)
+ ([#14859](https://github.com/Microsoft/vscode-python/issues/14859))
+1. Experiment to use the new environment discovery module.
+ ([#14868](https://github.com/Microsoft/vscode-python/issues/14868))
+1. Add experimentation API support for Pylance.
+ ([#14895](https://github.com/Microsoft/vscode-python/issues/14895))
+
+### Fixes
+
+1. Format `.pyi` files correctly when using Black.
+ (thanks [Steve Dignam](https://github.com/sbdchd)!)
+ ([#13341](https://github.com/Microsoft/vscode-python/issues/13341))
+1. Add `node-loader` to support `webpack` for `fsevents` package.
+ ([#14664](https://github.com/Microsoft/vscode-python/issues/14664))
+1. Don't show play icon in diff editor.
+ (thanks [David Sanders](https://github.com/dsanders11)!)
+ ([#14800](https://github.com/Microsoft/vscode-python/issues/14800))
+1. Do not show "You need to select a Python interpreter before you start debugging" when "python" in debug configuration is invalid.
+ ([#14814](https://github.com/Microsoft/vscode-python/issues/14814))
+1. Fix custom language server message handlers being registered too late in startup.
+ ([#14893](https://github.com/Microsoft/vscode-python/issues/14893))
+
+### Code Health
+
+1. Modified the errors generated when `launch.json` is not properly configured to be more specific about which fields are missing.
+ (thanks [Shahzaib Paracha](https://github.com/ShahzaibP)!)
+ ([#14739](https://github.com/Microsoft/vscode-python/issues/14739))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2020.11.1 (17 November 2020)
+
+### Enhancements
+
+1. Replaced "pythonPath" debug configuration property with "python".
+ ([#12462](https://github.com/Microsoft/vscode-python/issues/12462))
+
+### Fixes
+
+1. Fix for Process Id Picker no longer showing up
+ ([#14678](https://github.com/Microsoft/vscode-python/issues/14678)))
+1. Fix workspace symbol searching always returning empty.
+ ([#14727](https://github.com/Microsoft/vscode-python/issues/14727))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2020.11.0 (11 November 2020)
+
+### Enhancements
+
+1. Update shipped debugger wheels to python 3.8.
+ ([#14614](https://github.com/Microsoft/vscode-python/issues/14614))
+
+### Fixes
+
+1. Update the logic for parsing and sending selected code to the REPL.
+ ([#14048](https://github.com/Microsoft/vscode-python/issues/14048))
+1. Fix "TypeError: message must be set" error when debugging with `pytest`.
+ ([#14067](https://github.com/Microsoft/vscode-python/issues/14067))
+1. When sending code to the REPL, read input from `sys.stdin` instead of passing it as an argument.
+ ([#14471](https://github.com/Microsoft/vscode-python/issues/14471))
+
+### Code Health
+
+1. Code for Jupyter Notebooks support has been refactored into the Jupyter extension, which is now a dependency for the Python extension
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2020.10.0 (27 October 2020)
+
+### Enhancements
+
+1. `debugpy` updated to latest stable version.
+1. Make data viewer openable from the variables window context menu while debugging.
+ ([#14406](https://github.com/Microsoft/vscode-python/issues/14406))
+1. Do not opt users out of the insiders program if they have a stable version installed.
+ ([#14090](https://github.com/Microsoft/vscode-python/issues/14090))
+
+### Fixes
+
+1. Make sure not to set `__file__` unless necessary as this can mess up some modules (like multiprocessing).
+ ([#12530](https://github.com/Microsoft/vscode-python/issues/12530))
+1. Fix isolate script to only remove current working directory.
+ ([#13942](https://github.com/Microsoft/vscode-python/issues/13942))
+1. Make sure server name and kernel name show up when connecting.
+ ([#13955](https://github.com/Microsoft/vscode-python/issues/13955))
+1. Have Custom Editors load on editor show unless autostart is disabled.
+ ([#14016](https://github.com/Microsoft/vscode-python/issues/14016))
+1. For exporting, first check the notebook or interactive window interpreter before the jupyter selected interpreter.
+ ([#14143](https://github.com/Microsoft/vscode-python/issues/14143))
+1. Fix interactive debugging starting (trimQuotes error).
+ ([#14212](https://github.com/Microsoft/vscode-python/issues/14212))
+1. Use the kernel defined in the metadata of Notebook instead of using the default workspace interpreter.
+ ([#14213](https://github.com/Microsoft/vscode-python/issues/14213))
+1. Fix latex output not showing up without a 'display' call.
+ ([#14216](https://github.com/Microsoft/vscode-python/issues/14216))
+1. Fix markdown cell marker when exporting a notebook to a Python script.
+ ([#14359](https://github.com/Microsoft/vscode-python/issues/14359))
+
+### Code Health
+
+1. Add Windows unit tests to the PR validation pipeline.
+ ([#14013](https://github.com/Microsoft/vscode-python/issues/14013))
+1. Functional test failures related to kernel ports overlapping.
+ ([#14290](https://github.com/Microsoft/vscode-python/issues/14290))
+1. Change message from `IPython kernel` to `Jupyter kernel`.
+ ([#14309](https://github.com/Microsoft/vscode-python/issues/14309))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2020.9.2 (6 October 2020)
+
+### Fixes
+
+1. Support nbconvert version 6+ for exporting notebooks to python code.
+ ([#14169](https://github.com/Microsoft/vscode-python/issues/14169))
+1. Do not escape output in the actual ipynb file.
+ ([#14182](https://github.com/Microsoft/vscode-python/issues/14182))
+1. Fix exporting from the interactive window.
+ ([#14210](https://github.com/Microsoft/vscode-python/issues/14210))
+1. Fix for CVE-2020-16977
+ ([CVE-2020-16977](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2020-16977))
+1. Fix for CVE-2020-17163
+ ([CVE-2020-17163](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2020-17163))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2020.9.1 (29 September 2020)
+
+### Fixes
+
+1. Fix IPyKernel install issue with windows paths.
+ ([#13493](https://github.com/microsoft/vscode-python/issues/13493))
+1. Fix escaping of output to encode HTML chars correctly.
+ ([#5678](https://github.com/Microsoft/vscode-python/issues/5678))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2020.9.0 (23 September 2020)
+
+### Enhancements
+
+1. Docstrings are added to `class` and `def` snippets (thanks [alannt777](https://github.com/alannt777/)).
+ ([#5578](https://github.com/Microsoft/vscode-python/issues/5578))
+1. Upgraded isort to `5.3.2`.
+ ([#12932](https://github.com/Microsoft/vscode-python/issues/12932))
+1. Remove default "--no-reload" from debug configurations.
+ (thanks [ian910297](https://github.com/ian910297))
+ ([#13061](https://github.com/Microsoft/vscode-python/issues/13061))
+1. Update API to expose events for cell excecution and kernel restart.
+ ([#13306](https://github.com/Microsoft/vscode-python/issues/13306))
+1. Show a general warning prompt pointing to the upgrade guide when users attempt to run isort5 using deprecated settings.
+ ([#13716](https://github.com/Microsoft/vscode-python/issues/13716))
+1. Upgrade isort to `5.5.2`.
+ ([#13831](https://github.com/Microsoft/vscode-python/issues/13831))
+1. Enable custom editor support in stable VS code at 20%.
+ ([#13890](https://github.com/Microsoft/vscode-python/issues/13890))
+1. Upgraded to isort `5.5.3`.
+ ([#14027](https://github.com/Microsoft/vscode-python/issues/14027))
+
+### Fixes
+
+1. Fixed the output being trimmed. Tables that start with empty space will now display correctly.
+ ([#10270](https://github.com/Microsoft/vscode-python/issues/10270))
+1. #11729
+ Prevent test discovery from picking up stdout from low level file descriptors.
+ (thanks [Ryo Miyajima](https://github.com/sergeant-wizard))
+ ([#11729](https://github.com/Microsoft/vscode-python/issues/11729))
+1. Fix opening new blank notebooks when using the VS code custom editor API.
+ ([#12245](https://github.com/Microsoft/vscode-python/issues/12245))
+1. Support starting kernels with the same directory as the notebook.
+ ([#12760](https://github.com/Microsoft/vscode-python/issues/12760))
+1. Fixed `Sort imports` command with setuptools version `49.2`.
+ ([#12949](https://github.com/Microsoft/vscode-python/issues/12949))
+1. Do not fail interpreter discovery if accessing Windows registry fails.
+ ([#12962](https://github.com/Microsoft/vscode-python/issues/12962))
+1. Show error output from nbconvert when exporting a notebook fails.
+ ([#13229](https://github.com/Microsoft/vscode-python/issues/13229))
+1. Prevent daemon from trying to prewarm an execution service.
+ ([#13258](https://github.com/Microsoft/vscode-python/issues/13258))
+1. Respect stop on error setting for executing cells in native notebook.
+ ([#13338](https://github.com/Microsoft/vscode-python/issues/13338))
+1. Native notebook launch doesn't hang if the kernel does not start, and notifies the user of the failure. Also does not show the first cell as executing until the kernel is actually started and connected.
+ ([#13409](https://github.com/Microsoft/vscode-python/issues/13409))
+1. Fix path to isolated script on Windows shell_exec.
+ ([#13493](https://github.com/Microsoft/vscode-python/issues/13493))
+1. Updating other cells with display.update does not work in native notebooks.
+ ([#13509](https://github.com/Microsoft/vscode-python/issues/13509))
+1. Fix for notebook using the first kernel every time. It will now use the language in the notebook to determine the most appropriate kernel.
+ ([#13520](https://github.com/Microsoft/vscode-python/issues/13520))
+1. Shift+enter should execute current cell and select the next cell.
+ ([#13553](https://github.com/Microsoft/vscode-python/issues/13553))
+1. Fixes typo in export command registration.
+ (thanks [Anton Kosyakov](https://github.com/akosyakov/))
+ ([#13612](https://github.com/Microsoft/vscode-python/issues/13612))
+1. Fix the behavior of the 'python.showStartPage' setting.
+ ([#13706](https://github.com/Microsoft/vscode-python/issues/13706))
+1. Correctly install ipykernel when launching from an interpreter.
+ ([#13956](https://github.com/Microsoft/vscode-python/issues/13956))
+1. Backup on custom editors is being ignored.
+ ([#13981](https://github.com/Microsoft/vscode-python/issues/13981))
+
+### Code Health
+
+1. Fix bandit issues in vscode_datascience_helpers.
+ ([#13103](https://github.com/Microsoft/vscode-python/issues/13103))
+1. Cast type to `any` to get around issues with `ts-node` (`ts-node` is used by `nyc` for code coverage).
+ ([#13411](https://github.com/Microsoft/vscode-python/issues/13411))
+1. Drop support for Python 3.5 (it reaches end-of-life on September 13, 2020 and isort 5 does not support it).
+ ([#13459](https://github.com/Microsoft/vscode-python/issues/13459))
+1. Fix nightly flake test issue with timeout waiting for kernel.
+ ([#13501](https://github.com/Microsoft/vscode-python/issues/13501))
+1. Disable sorting tests for Python 2.7 as isort5 is not compatible with Python 2.7.
+ ([#13542](https://github.com/Microsoft/vscode-python/issues/13542))
+1. Fix nightly flake test current directory failing test.
+ ([#13605](https://github.com/Microsoft/vscode-python/issues/13605))
+1. Rename the `master` branch to `main`.
+ ([#13645](https://github.com/Microsoft/vscode-python/issues/13645))
+1. Remove usage of the terms "blacklist" and "whitelist".
+ ([#13647](https://github.com/Microsoft/vscode-python/issues/13647))
+1. Fix a test failure and warning when running test adapter tests under pytest 5.
+ ([#13726](https://github.com/Microsoft/vscode-python/issues/13726))
+1. Remove unused imports from data science ipython test files.
+ ([#13729](https://github.com/Microsoft/vscode-python/issues/13729))
+1. Fix nighly failure with beakerx.
+ ([#13734](https://github.com/Microsoft/vscode-python/issues/13734))
+
+## 2020.8.6 (15 September 2020)
+
+### Fixes
+
+1. Workaround problem caused by https://github.com/microsoft/vscode/issues/106547
+
+## 2020.8.6 (15 September 2020)
+
+### Fixes
+
+1. Workaround problem caused by https://github.com/microsoft/vscode/issues/106547
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2020.8.5 (9 September 2020)
+
+### Fixes
+
+1. Experiments.json is now read from 'main' branch.
+ ([#13839](https://github.com/Microsoft/vscode-python/issues/13839))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2020.8.4 (2 September 2020)
+
+### Enhancements
+
+1. Make Jupyter Server name clickable to select Jupyter server.
+ ([#13656](https://github.com/Microsoft/vscode-python/issues/13656))
+
+### Fixes
+
+1. Fixed connection to a Compute Instance from the quickpicks history options.
+ ([#13387](https://github.com/Microsoft/vscode-python/issues/13387))
+1. Fixed the behavior of the 'python.showStartPage' setting.
+ ([#13347](https://github.com/microsoft/vscode-python/issues/13347))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2020.8.3 (31 August 2020)
+
+### Enhancements
+
+1. Add telemetry about the install source for the extension.
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2020.8.2 (27 August 2020)
+
+### Enhancements
+
+1. Update "Tip" notification for new users to either show the existing tip, a link to a feedback survey or nothing.
+ ([#13535](https://github.com/Microsoft/vscode-python/issues/13535))
+
+### Fixes
+
+1. Fix saving during close and auto backup to actually save a notebook.
+ ([#11711](https://github.com/Microsoft/vscode-python/issues/11711))
+1. Show the server display string that the user is going to connect to after selecting a compute instance and reloading the window.
+ ([#13551](https://github.com/Microsoft/vscode-python/issues/13551))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2020.8.1 (20 August 2020)
+
+### Fixes
+
+1. Update LSP to latest to resolve problems with LS settings.
+ ([#13511](https://github.com/microsoft/vscode-python/pull/13511))
+1. Update debugger to address terminal input issues.
+1. Added tooltip to indicate status of server connection
+ ([#13543](https://github.com/Microsoft/vscode-python/issues/13543))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2020.8.0 (12 August 2020)
+
+### Enhancements
+
+1. Cell id and cell metadata are now passed as the metadata field for execute_request messages.
+ (thanks [stisa](https://github.com/stisa/))
+ ([#13252](https://github.com/Microsoft/vscode-python/issues/13252))
+1. Add "Restart Language Server" command.
+ ([#3073](https://github.com/Microsoft/vscode-python/issues/3073))
+1. Support multiple and per file interactive windows. See the description for the new 'python.dataScience.interactiveWindowMode' setting.
+ ([#3104](https://github.com/Microsoft/vscode-python/issues/3104))
+1. Add cell editing shortcuts for python interactive cells. (thanks [@earthastronaut](https://github.com/earthastronaut/)).
+ ([#12414](https://github.com/Microsoft/vscode-python/issues/12414))
+1. Allow `python.dataScience.runStartupCommands` to be an array. (thanks [@janosh](https://github.com/janosh)).
+ ([#12827](https://github.com/Microsoft/vscode-python/issues/12827))
+1. Remember remote kernel ids when reopening notebooks.
+ ([#12828](https://github.com/Microsoft/vscode-python/issues/12828))
+1. The file explorer dialog now has an appropriate title when browsing for an interpreter. (thanks [ziebam](https://github.com/ziebam)).
+ ([#12959](https://github.com/Microsoft/vscode-python/issues/12959))
+1. Warn users if they are connecting over http without a token.
+ ([#12980](https://github.com/Microsoft/vscode-python/issues/12980))
+1. Allow a custom display string for remote servers as part of the remote Jupyter server provider extensibility point.
+ ([#12988](https://github.com/Microsoft/vscode-python/issues/12988))
+1. Update to the latest version of [`jedi`](https://github.com/davidhalter/jedi) (`0.17.2`). This adds support for Python 3.9 and fixes some bugs, but is expected to be the last release to support Python 2.7 and 3.5. (thanks [Peter Law](https://github.com/PeterJCLaw/)).
+ ([#13037](https://github.com/Microsoft/vscode-python/issues/13037))
+1. Expose `Pylance` setting in `python.languageServer`. If [Pylance extension](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance) is not installed, prompt user to install it.
+ ([#13122](https://github.com/Microsoft/vscode-python/issues/13122))
+1. Added "pythonArgs" to debugpy launch.json schema.
+ ([#13218](https://github.com/Microsoft/vscode-python/issues/13218))
+1. Use jupyter inspect to get signature of dynamic functions in notebook editor when language server doesn't provide enough hint.
+ ([#13259](https://github.com/Microsoft/vscode-python/issues/13259))
+1. The gather icon will change and get disabled while gather is executing.
+ ([#13177](https://github.com/microsoft/vscode-python/issues/13177))
+
+### Fixes
+
+1. Gathered notebooks will now use the same kernelspec as the notebook it was created from.
+ ([#10924](https://github.com/Microsoft/vscode-python/issues/10924))
+1. Don't loop selection through all failed tests every time tests are run.
+ ([#11743](https://github.com/Microsoft/vscode-python/issues/11743))
+1. Some tools (like pytest) rely on the existence of `sys.path[0]`, so
+ deleting it in the isolation script can sometimes cause problems. The
+ solution is to point `sys.path[0]` to a bogus directory that we know
+ does not exist (assuming noone modifies the extension install dir).
+ ([#11875](https://github.com/Microsoft/vscode-python/issues/11875))
+1. Fix missing css for some ipywidget output.
+ ([#12202](https://github.com/Microsoft/vscode-python/issues/12202))
+1. Delete backing untitled ipynb notebook files as soon as the remote session has been created.
+ ([#12510](https://github.com/Microsoft/vscode-python/issues/12510))
+1. Make the data science variable explorer support high contrast color theme.
+ ([#12766](https://github.com/Microsoft/vscode-python/issues/12766))
+1. The change in PR #12795 led to one particular test suite to take longer
+ to run. Here we increase the timeout for that suite to get the test
+ passing.
+ ([#12833](https://github.com/Microsoft/vscode-python/issues/12833))
+1. Refactor data science filesystem usage to correctly handle files which are potentially remote.
+ ([#12931](https://github.com/Microsoft/vscode-python/issues/12931))
+1. Allow custom Jupyter server URI providers to have an expiration on their authorization headers.
+ ([#12987](https://github.com/Microsoft/vscode-python/issues/12987))
+1. If a webpanel fails to load, dispose our webviewhost so that it can try again.
+ ([#13106](https://github.com/Microsoft/vscode-python/issues/13106))
+1. Ensure terminal is not shown or activated if hideFromUser is set to true.
+ ([#13117](https://github.com/Microsoft/vscode-python/issues/13117))
+1. Do not automatically start kernel for untrusted notebooks.
+ ([#13124](https://github.com/Microsoft/vscode-python/issues/13124))
+1. Fix settings links to open correctly in the notebook editor.
+ ([#13156](https://github.com/Microsoft/vscode-python/issues/13156))
+1. "a" and "b" Jupyter shortcuts should not automatically enter edit mode.
+ ([#13165](https://github.com/Microsoft/vscode-python/issues/13165))
+1. Scope custom notebook keybindings to Jupyter Notebooks.
+ ([#13172](https://github.com/Microsoft/vscode-python/issues/13172))
+1. Rename "Count" column in variable explorer to "Size".
+ ([#13205](https://github.com/Microsoft/vscode-python/issues/13205))
+1. Handle `Save As` of preview Notebooks.
+ ([#13235](https://github.com/Microsoft/vscode-python/issues/13235))
+
+### Code Health
+
+1. Move non-mock jupyter nightly tests to use raw kernel by default.
+ ([#10772](https://github.com/Microsoft/vscode-python/issues/10772))
+1. Add new services to data science IOC container and rename misspelled service.
+ ([#12809](https://github.com/Microsoft/vscode-python/issues/12809))
+1. Disable Notebook icons when Notebook is not trusted.
+ ([#12893](https://github.com/Microsoft/vscode-python/issues/12893))
+1. Removed control tower code for the start page.
+ ([#12919](https://github.com/Microsoft/vscode-python/issues/12919))
+1. Add better tests for trusted notebooks in the classic notebook editor.
+ ([#12966](https://github.com/Microsoft/vscode-python/issues/12966))
+1. Custom renderers for `png/jpeg` images in `Notebooks`.
+ ([#12977](https://github.com/Microsoft/vscode-python/issues/12977))
+1. Fix broken nightly variable explorer tests.
+ ([#13075](https://github.com/Microsoft/vscode-python/issues/13075))
+1. Fix nightly flake test failures for startup and shutdown native editor test.
+ ([#13171](https://github.com/Microsoft/vscode-python/issues/13171))
+1. Fix failing interactive window and variable explorer tests.
+ ([#13269](https://github.com/Microsoft/vscode-python/issues/13269))
+
+### Thanks
+
+Thanks to the following projects which we fully rely on to provide some of
+our features:
+
+- [debugpy](https://pypi.org/project/debugpy/)
+- [isort](https://pypi.org/project/isort/)
+- [jedi](https://pypi.org/project/jedi/)
+ and [parso](https://pypi.org/project/parso/)
+- [Microsoft Python Language Server](https://github.com/microsoft/python-language-server)
+- [Pylance](https://github.com/microsoft/pylance-release)
+- [exuberant ctags](http://ctags.sourceforge.net/) (user-installed)
+- [rope](https://pypi.org/project/rope/) (user-installed)
+
+Also thanks to the various projects we provide integrations with which help
+make this extension useful:
+
+- Debugging support:
+ [Django](https://pypi.org/project/Django/),
+ [Flask](https://pypi.org/project/Flask/),
+ [gevent](https://pypi.org/project/gevent/),
+ [Jinja](https://pypi.org/project/Jinja/),
+ [Pyramid](https://pypi.org/project/pyramid/),
+ [PySpark](https://pypi.org/project/pyspark/),
+ [Scrapy](https://pypi.org/project/Scrapy/),
+ [Watson](https://pypi.org/project/Watson/)
+- Formatting:
+ [autopep8](https://pypi.org/project/autopep8/),
+ [black](https://pypi.org/project/black/),
+ [yapf](https://pypi.org/project/yapf/)
+- Interpreter support:
+ [conda](https://conda.io/),
+ [direnv](https://direnv.net/),
+ [pipenv](https://pypi.org/project/pipenv/),
+ [pyenv](https://github.com/pyenv/pyenv),
+ [venv](https://docs.python.org/3/library/venv.html#module-venv),
+ [virtualenv](https://pypi.org/project/virtualenv/)
+- Linting:
+ [bandit](https://pypi.org/project/bandit/),
+ [flake8](https://pypi.org/project/flake8/),
+ [mypy](https://pypi.org/project/mypy/),
+ [prospector](https://pypi.org/project/prospector/),
+ [pylint](https://pypi.org/project/pylint/),
+ [pydocstyle](https://pypi.org/project/pydocstyle/),
+ [pylama](https://pypi.org/project/pylama/)
+- Testing:
+ [nose](https://pypi.org/project/nose/),
+ [pytest](https://pypi.org/project/pytest/),
+ [unittest](https://docs.python.org/3/library/unittest.html#module-unittest)
+
+And finally thanks to the [Python](https://www.python.org/) development team and
+community for creating a fantastic programming language and community to be a
+part of!
+
+## 2020.7.1 (22 July 2020)
+
+1. Fix language server setting when provided an invalid value, send config event more consistently.
+ ([#13064](https://github.com/Microsoft/vscode-python/pull/13064))
+1. Add banner for pylance, and remove old LS experiment.
+ ([#12817](https://github.com/microsoft/vscode-python/pull/12817))
+
+## 2020.7.0 (16 July 2020)
### Enhancements
@@ -9,7 +4505,8 @@
([#9679](https://github.com/Microsoft/vscode-python/issues/9679))
1. Added "argsExpansion" to debugpy launch.json schema.
([#11678](https://github.com/Microsoft/vscode-python/issues/11678))
-1. The extension will now automatically load if a `pyproject.toml` file is present in the workspace root directory. (@BrandonLWhite)
+1. The extension will now automatically load if a `pyproject.toml` file is present in the workspace root directory.
+ (thanks [Brandon White](https://github.com/BrandonLWhite))
([#12056](https://github.com/Microsoft/vscode-python/issues/12056))
1. Add ability to check and update whether a notebook is trusted.
([#12146](https://github.com/Microsoft/vscode-python/issues/12146))
@@ -29,10 +4526,12 @@
([#12611](https://github.com/Microsoft/vscode-python/issues/12611))
1. Include the JUPYTER_PATH environment variable when searching the disk for kernels.
([#12694](https://github.com/Microsoft/vscode-python/issues/12694))
-1. Added exporting to python, HTML and PDF from the interative window.
+1. Added exporting to python, HTML and PDF from the interactive window.
([#12732](https://github.com/Microsoft/vscode-python/issues/12732))
1. Show a prompt asking user to upgrade Code runner to new version to keep using it when in Deprecate PythonPath experiment.
([#12764](https://github.com/Microsoft/vscode-python/issues/12764))
+1. Opening notebooks in the preview Notebook editor for [Visual Studio Code Insiders](https://code.visualstudio.com/insiders/).
+ ([#10496](https://github.com/Microsoft/vscode-python/issues/10496))
### Fixes
@@ -40,6 +4539,8 @@
([#10579](https://github.com/Microsoft/vscode-python/issues/10579))
1. Provided a method for external partners to participate in jupyter server URI picking/authentication.
([#10993](https://github.com/Microsoft/vscode-python/issues/10993))
+1. Check for hideFromUser before activating current terminal.
+ ([#11122](https://github.com/Microsoft/vscode-python/issues/11122))
1. In Markdown cells, turn HTML links to markdown links so that nteract renders them.
([#11254](https://github.com/Microsoft/vscode-python/issues/11254))
1. Prevent incorrect ipywidget display (double plots) due to synchronization issues.
@@ -85,6 +4586,10 @@
([#12588](https://github.com/Microsoft/vscode-python/issues/12588))
1. Open variable explorer when opening variable explorer during debugging.
([#12773](https://github.com/Microsoft/vscode-python/issues/12773))
+1. Use the given interpreter for launching the non-daemon python
+ ([#12821](https://github.com/Microsoft/vscode-python/issues/12821))
+1. Correct the color of the 'Collapse All' button in the Interactive Window
+ ([#12838](https://github.com/microsoft/vscode-python/issues/12838))
### Code Health
@@ -115,6 +4620,10 @@
([#12656](https://github.com/Microsoft/vscode-python/issues/12656))
1. Add more telemetry for "Select Interpreter" command.
([#12722](https://github.com/Microsoft/vscode-python/issues/12722))
+1. Add tests for trusted notebooks.
+ ([#12554](https://github.com/Microsoft/vscode-python/issues/12554))
+1. Update categories in `package.json`.
+ ([#12844](https://github.com/Microsoft/vscode-python/issues/12844))
### Thanks
@@ -2091,7 +6600,7 @@ part of!
([#8000](https://github.com/Microsoft/vscode-python/issues/8000))
1. Prompt to open exported `Notebook` in the `Notebook Editor`.
([#8078](https://github.com/Microsoft/vscode-python/issues/8078))
-1. Add commands translation for Farsi locale.
+1. Add commands translation for Persian locale.
(thanks [Nikronic](https://github.com/Nikronic))
([#8092](https://github.com/Microsoft/vscode-python/issues/8092))
1. Enhance "select a workspace" message when selecting interpreter.
@@ -2637,7 +7146,7 @@ part of!
([#7376](https://github.com/Microsoft/vscode-python/issues/7376))
1. Refactor Azure Pipelines to use stages.
([#7431](https://github.com/Microsoft/vscode-python/issues/7431))
-1. Add unit tests to guarantee that the extension version in the master branch has the '-dev' suffix.
+1. Add unit tests to guarantee that the extension version in the main branch has the '-dev' suffix.
([#7471](https://github.com/Microsoft/vscode-python/issues/7471))
1. Add a smoke test for the `Interactive Window`.
([#7653](https://github.com/Microsoft/vscode-python/issues/7653))
@@ -4712,7 +9221,7 @@ part of!
([#3317](https://github.com/Microsoft/vscode-python/issues/3317))
1. Add YAML file specification for CI builds
([#3350](https://github.com/Microsoft/vscode-python/issues/3350))
-1. Stop running CI tests against the `master` branch of ptvsd.
+1. Stop running CI tests against the `main` branch of ptvsd.
([#3414](https://github.com/Microsoft/vscode-python/issues/3414))
1. Be more aggressive in searching for a Python environment that can run Jupyter
(make sure to cleanup any kernelspecs that are created during this process).
@@ -5583,7 +10092,7 @@ nearly as feature-rich and useful as it is.
([#1703](https://github.com/Microsoft/vscode-python/issues/1703))
1. Update debug capabilities to add support for the setting `supportTerminateDebuggee` due to an upstream update from [PTVSD](https://github.com/Microsoft/ptvsd/issues).
([#1719](https://github.com/Microsoft/vscode-python/issues/1719))
-1. Build and upload development build of the extension to the Azure blob store even if CI tests fail on the `master` branch.
+1. Build and upload development build of the extension to the Azure blob store even if CI tests fail on the `main` branch.
([#1730](https://github.com/Microsoft/vscode-python/issues/1730))
1. Changes to the script used to upload the extension to the Azure blob store.
([#1732](https://github.com/Microsoft/vscode-python/issues/1732))
@@ -5713,7 +10222,7 @@ his help on [our issue tracker](https://github.com/Microsoft/vscode-python)!
([#1216](https://github.com/Microsoft/vscode-python/issues/1216))
1. Parallelize jobs (unit tests) on CI server.
([#1247](https://github.com/Microsoft/vscode-python/issues/1247))
-1. Run CI tests against the release version and master branch of PTVSD (experimental debugger), allowing tests to fail against the master branch of PTVSD.
+1. Run CI tests against the release version and main branch of PTVSD (experimental debugger), allowing tests to fail against the main branch of PTVSD.
([#1253](https://github.com/Microsoft/vscode-python/issues/1253))
1. Only trigger the extension for `file` and `untitled` in preparation for
[Visual Studio Live Share](https://aka.ms/vsls)
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
index 18873b3ccf8a..f9ba8cf65f3e 100644
--- a/CODE_OF_CONDUCT.md
+++ b/CODE_OF_CONDUCT.md
@@ -1,6 +1,9 @@
-This project has adopted the [Microsoft Open Source Code of
-Conduct](https://opensource.microsoft.com/codeofconduct/).
-For more information see the [Code of Conduct
-FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
-contact [opencode@microsoft.com](mailto:opencode@microsoft.com)
-with any additional questions or comments.
+# Microsoft Open Source Code of Conduct
+
+This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
+
+Resources:
+
+- [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
+- [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)
+- Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns
diff --git a/CODING_STANDARDS.md b/CODING_STANDARDS.md
deleted file mode 100644
index f6d3a03a943d..000000000000
--- a/CODING_STANDARDS.md
+++ /dev/null
@@ -1,55 +0,0 @@
-## Coding guidelines for TypeScript
-
-- The following standards are inspired from [Coding guidelines for TypeScript](https://github.com/Microsoft/TypeScript/wiki/Coding-guidelines) (which you should follow when something is not specified in this document, although any pre-existing practices in a file being edited trump either style guide).
-
-### Names
-
-- Use `PascalCase` for type names.
-- Use `I` as a prefix for interface names only when an interface is implemented by a class.
-- Use `PascalCase` for enum values.
-- Use `camelCase` for function names.
-- Use `camelCase` for property names and local variables.
-- Do not use `_` as a prefix for private properties (unless used as backing properties).
-- Use whole words in names when possible.
-
-### Types
-
-- Do not export types/functions unless you need to share it across multiple components.
-- Do not introduce new types/values to the global namespace.
-- Shared types should be defined in `types.ts`.
- Within a file, type definitions should come first.
-
-### null and undefined
-
-Use undefined. Do not use null.
-
-### Comments
-
-- Comments must end with a period.
-- Use JSDoc style comments for functions, interfaces, enums, and classes.
-
-### Strings
-
-Use single quotes for strings.
-
-### Imports
-
-- Use ES6 module imports.
-- Do not use bare `import *`; all imports should either explicitly pull in an object or import an entire module, otherwise you're implicitly polluting the global namespace and making it difficult to figure out from code examination where a name originates from.
-
-### Style
-
-- Use `prettier` to format `TypeScript` and `JavaScript` code.
-- Use arrow functions over anonymous function expressions.
-- Always surround loop and conditional bodies with curly braces. Statements on the same line are allowed to omit braces.
-- Open curly braces always go on the same line as whatever necessitates them.
-- Parenthesized constructs should have no surrounding whitespace.
-- A single space follows commas, colons, and semicolons in those constructs. For example:
-
- - `for (var i = 0, n = str.length; i < 10; i++) { }`
- - `if (x < 10) { }`
- - `function f(x: number, y: string): void { }`
-
-- `else` goes on the same line from the closing curly brace.
-- Use 4 spaces per indentation.
-- All files must end with an empty line.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index bc702e236bb4..c6c0998395b2 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,358 +1 @@
-# Contributing to the Python extension for Visual Studio Code
-
----
-
-| `release` branch | `master` branch | Nightly CI | coverage (`master` branch) |
-| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------- |
-| [](https://dev.azure.com/ms/vscode-python/_build/latest?definitionId=88&branchName=release) | [](https://dev.azure.com/ms/vscode-python/_build/latest?definitionId=88&branchName=master) | [](https://dev.azure.com/ms/vscode-python/_build/latest?definitionId=85&branchName=master) | [](https://codecov.io/gh/microsoft/vscode-python) |
-
-[[Development build](https://pvsc.blob.core.windows.net/extension-builds/ms-python-insiders.vsix)]
-
----
-
-[For contributing to the [Microsoft Python Language Server](https://github.com/Microsoft/python-language-server) see its own repo; for [Pylance](https://github.com/microsoft/pylance-release) see its own repo; for [debugpy](https://github.com/microsoft/debugpy) see its own repo]
-
-## Contributing a pull request
-
-### Prerequisites
-
-1. [Node.js](https://nodejs.org/) 12.15
-1. [Python](https://www.python.org/) 2.7 or later
-1. Windows, macOS, or Linux
-1. [Visual Studio Code](https://code.visualstudio.com/)
-1. The following VS Code extensions:
- - [TSLint](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-typescript-tslint-plugin)
- - [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)
- - [EditorConfig for VS Code](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig)
-1. Have an issue which has a "needs PR" label (feel free to indicate you would like to provide a PR for the issue so others don't work on it as well)
-
-### Setup
-
-```shell
-git clone https://github.com/microsoft/vscode-python
-cd vscode-python
-npm ci
-python3 -m venv .venv
-# Activate the virtual environment as appropriate for your shell, For example, on bash it's ...
-source .venv/bin/activate
-# The Python code in the extension is formatted using Black.
-python3 -m pip install black
-# Install Python dependencies using `python3`.
-# If you want to use a different interpreter then specify it in the
-# CI_PYTHON_PATH environment variable.
-npx gulp installPythonLibs
-```
-
-If you see warnings that `The engine "vscode" appears to be invalid.`, you can ignore these.
-
-### Incremental Build
-
-Run the `Compile` and `Hygiene` build Tasks from the [Run Build Task...](https://code.visualstudio.com/docs/editor/tasks) command picker (short cut `CTRL+SHIFT+B` or `⇧⌘B`). This will leave build and hygiene tasks running in the background and which will re-run as files are edited and saved. You can see the output from either task in the Terminal panel (use the selector to choose which output to look at).
-
-You can also compile from the command-line. For a full compile you can use:
-
-```shell
-npx gulp prePublishNonBundle
-```
-
-For incremental builds you can use the following commands depending on your needs:
-
-```shell
-npm run compile
-npm run compile-webviews-watch # For data science (React Code)
-```
-
-Sometimes you will need to run `npm run clean` and even `rm -r out`.
-This is especially true if you have added or removed files.
-
-### Errors and Warnings
-
-TypeScript errors and warnings will be displayed in the `Problems` window of Visual Studio Code.
-
-### Run dev build and validate your changes
-
-To test changes, open the `vscode-python` folder in VSCode, and select the workspace titled `vscode-python`.
-Then, open the debug panel by clicking the `Run and Debug` icon on the sidebar, select the `Extension`
-option from the top menu, and click start. A new window will launch with the title
-`[Extension Development Host]`.
-
-### Running Unit Tests
-
-Note: Unit tests are those in files with extension `.unit.test.ts`.
-
-1. Make sure you have compiled all code (done automatically when using incremental building)
-1. Ensure you have disabled breaking into 'Uncaught Exceptions' when running the Unit Tests
-1. For the linters and formatters tests to pass successfully, you will need to have those corresponding Python libraries installed locally
-1. Run the Tests via the `Unit Tests` launch option.
-
-You can also run them from the command-line (after compiling):
-
-```shell
-npm run test:unittests # runs all unit tests
-npm run test:unittests -- --grep=''
-```
-
-_To run only a specific test suite for unit tests:_
-Alter the `launch.json` file in the `"Debug Unit Tests"` section by setting the `grep` field:
-
-```js
- "args": [
- "--timeout=60000",
- "--grep", ""
- ],
-```
-
-...this will only run the suite with the tests you care about during a test run (be sure to set the debugger to run the `Debug Unit Tests` launcher).
-
-### Running Functional Tests
-
-Functional tests are those in files with extension `.functional.test.ts`.
-These tests are similar to system tests in scope, but are run like unit tests.
-
-You can run functional tests in a similar way to that for unit tests:
-
-- via the "Functional Tests" launch option, or
-- on the command line via `npm run test:functional`
-
-### Running System Tests
-
-Note: System tests are those in files with extension `.test*.ts` but which are neither `.functional.test.ts` nor `.unit.test.ts`.
-
-1. Make sure you have compiled all code (done automatically when using incremental building)
-1. Ensure you have disabled breaking into 'Uncaught Exceptions' when running the Unit Tests
-1. For the linters and formatters tests to pass successfully, you will need to have those corresponding Python libraries installed locally by using the `./requirements.txt` and `build/test-requirements.txt` files
-1. Run the tests via `npm run` or the Debugger launch options (you can "Start Without Debugging").
-1. **Note** you will be running tests under the default Python interpreter for the system.
-
-You can also run the tests from the command-line (after compiling):
-
-```shell
-npm run testSingleWorkspace # will launch the VSC UI
-npm run testMultiWorkspace # will launch the VSC UI
-```
-
-#### Customising the Test Run
-
-If you want to change which tests are run or which version of Python is used,
-you can do this by setting environment variables. The same variables work when
-running from the command line or launching from within VSCode, though the
-mechanism used to specify them changes a little.
-
-* Setting `CI_PYTHON_PATH` lets you change the version of python the tests are executed with
-* Setting `VSC_PYTHON_CI_TEST_GREP` lets you filter the tests by name
-
-_`CI_PYTHON_PATH`_
-
-In some tests a Python executable is actually run. The default executable is
-`python` (for now). Unless you've run the tests inside a virtual environment,
-this will almost always mean Python 2 is used, which probably isn't what you
-want.
-
-By setting the `CI_PYTHON_PATH` environment variable you can
-control the exact Python executable that gets used. If the executable
-you specify isn't on `$PATH` then be sure to use an absolute path.
-
-This is also the mechanism for testing against other versions of Python.
-
-_`VSC_PYTHON_CI_TEST_GREP`_
-
-This environment variable allows providing a regular expression which will
-be matched against suite and test "names" to be run. By default all tests
-are run.
-
-For example, to run only the tests in the `Sorting` suite (from
-[`src/test/format/extension.sort.test.ts`](https://github.com/Microsoft/vscode-python/blob/84f9c7a174111/src/test/format/extension.sort.test.ts))
-you would set the value to `Sorting`. To run the `ProcessService` and
-`ProcessService Observable` tests which relate to `stderr` handling, you might
-use the value `ProcessService.*stderr`.
-
-Be sure to escape any grep-sensitive characters in your suite name.
-
-In some rare cases in the "system" tests the `VSC_PYTHON_CI_TEST_GREP`
-environment variable is ignored. If that happens then you will need to
-temporarily modify the `const grep = ` line in
-[`src/test/index.ts`](https://github.com/Microsoft/vscode-python/blob/84f9c7a174111/src/test/index.ts#L64).
-
-_Launching from VSCode_
-
-In order to set environment variables when launching the tests from VSCode you
-should edit the `launch.json` file. For example you can add the following to the
-appropriate configuration you want to run to change the interpreter used during
-testing:
-
-```js
- "env": {
- "CI_PYTHON_PATH": "/absolute/path/to/interpreter/of/choice/python"
- }
-```
-
-_On the command line_
-
-The mechanism to set environment variables on the command line will vary based
-on your system, however most systems support a syntax like the following for
-setting a single variable for a subprocess:
-
-```shell
-VSC_PYTHON_CI_TEST_GREP=Sorting npm run testSingleWorkspace
-```
-
-### Testing Python Scripts
-
-The extension has a number of scripts in ./pythonFiles. Tests for these
-scripts are found in ./pythonFiles/tests. To run those tests:
-
-- `python2.7 pythonFiles/tests/run_all.py`
-- `python3 -m pythonFiles.tests`
-
-By default, functional tests are included. To exclude them:
-
-`python3 -m pythonFiles.tests --no-functional`
-
-To run only the functional tests:
-
-`python3 -m pythonFiles.tests --functional`
-
-### Standard Debugging
-
-Clone the repo into any directory, open that directory in VSCode, and use the `Extension` launch option within VSCode.
-
-### Debugging the Python Extension Debugger
-
-The easiest way to debug the Python Debugger (in our opinion) is to clone this git repo directory into [your](https://code.visualstudio.com/docs/extensions/install-extension#_your-extensions-folder) extensions directory.
-From there use the `Extension + Debugger` launch option.
-
-### Coding Standards
-
-Information on our coding standards can be found [here](https://github.com/Microsoft/vscode-python/blob/master/CODING_STANDARDS.md).
-We have CI tests to ensure the code committed will adhere to the above coding standards. \*You can run this locally by executing the command `npx gulp precommit` or use the `precommit` Task.
-
-Messages displayed to the user must be localized using/created constants from/in the [localize.ts](https://github.com/Microsoft/vscode-python/blob/master/src/client/common/utils/localize.ts) file.
-
-## Development process
-
-To effectively contribute to this extension, it helps to know how its
-development process works. That way you know not only why the
-project maintainers do what they do to keep this project running
-smoothly, but it allows you to help out by noticing when a step is
-missed or to learn in case someday you become a project maintainer as
-well!
-
-### Helping others
-
-First and foremost, we try to be helpful to users of the extension.
-We monitor
-[Stack Overflow questions](https://stackoverflow.com/questions/tagged/visual-studio-code+python)
-to see where people might need help. We also try to respond to all
-issues in some way in a timely manner (typically in less than one
-business day, definitely no more than a week). We also answer
-questions that reach us in other ways, e.g. Twitter.
-
-For pull requests, we aim to review any externally contributed PR no later
-than the next sprint from when it was submitted (see
-[Release Cycle](#release-cycle) below for our sprint schedule).
-
-### Release cycle
-
-Planning is done as one week sprints. We start a sprint every Thursday.
-All [P0](https://github.com/Microsoft/vscode-python/labels/P0) issues are expected
-to be fixed in the current sprint, else the next release will be blocked.
-[P1](https://github.com/Microsoft/vscode-python/labels/P1) issues are a
-top-priority and we try to close before the next release. All other issues are
-considered best-effort for that sprint.
-
-The extension aims to do a new release once a month. A
-[release plan](https://github.com/Microsoft/vscode-python/labels/release%20plan)
-is created for each release to help track anything that requires a
-person to do (long-term this project aims to automate as much of the
-development process as possible).
-
-All development is actively done in the `master` branch of the
-repository. This allows us to have a
-[development build](#development-build) which is expected to be stable at
-all times. Once we reach a release candidate, it becomes
-our [release branch](https://github.com/microsoft/vscode-python/branches).
-At that point only what is in the release branch will make it into the next
-release.
-
-### Issue triaging
-
-#### Classifying issues
-
-To help actively track what stage
-[issues](https://github.com/Microsoft/vscode-python/issues)
-are at, various labels are used. The following label types are expected to
-be set on all open issues (otherwise the issue is not considered triaged):
-
-1. `needs`/`triage`/`classify`
-1. `feature`
-1. `type`
-
-These labels cover what is blocking the issue from closing, what is affected by
-the issue, and what kind of issue it is. (The `feature` label should be `feature-*` if the issue doesn't fit into any other `feature` label appropriately.)
-
-It is also very important to make the title accurate. People often write very brief, quick titles or ones that describe what they think the problem is. By updating the title to be appropriately descriptive for what _you_ think the issue is, you not only make finding older issues easier, but you also help make sure that you and the original reporter agree on what the issue is.
-
-#### Post-classification
-
-Once an issue has been appropriately classified, there are two keys ways to help out. One is to go through open issues that
-have a merged fix and verify that the fix did in fact work. The other is to try to fix issues marked as `needs PR`.
-
-### Pull requests
-
-Key details that all pull requests are expected to handle should be
-in the [pull request template](https://github.com/Microsoft/vscode-python/blob/master/.github/PULL_REQUEST_TEMPLATE.md). We do expect CI to be passing for a pull request before we will consider merging it.
-
-### Versioning
-
-Starting in 2018, the extension switched to
-[calendar versioning](http://calver.org/) since the extension
-auto-updates and thus there is no need to track its version
-number for backwards-compatibility. In 2020, the extension switched to
-having the the major version be the year of release, the minor version the
-release count for that year, and the build number is a number that increments
-for every build.
-For example the first release made in 2020 is `2020.1.`.
-
-## Releasing
-
-Overall steps for releasing are covered in the
-[release plan](https://github.com/Microsoft/vscode-python/labels/release%20plan)
-([template](https://github.com/Microsoft/vscode-python/blob/master/.github/release_plan.md)).
-
-### Building a release
-
-To create a release _build_, follow the steps outlined in the [release plan](https://github.com/Microsoft/vscode-python/labels/release%20plan) (which has a [template](https://github.com/Microsoft/vscode-python/blob/master/.github/release_plan.md)).
-
-## Local Build
-
-Steps to build the extension on your machine once you've cloned the repo:
-
-```bash
-> npm install -g vsce
-# Perform the next steps in the vscode-python folder.
-> npm ci
-> python3 -m pip --disable-pip-version-check install -t ./pythonFiles/lib/python --no-cache-dir --implementation py --no-deps --upgrade -r requirements.txt
-# For python 3.6 and lower use this command to install the debugger
-> python3 -m pip --disable-pip-version-check install -t ./pythonFiles/lib/python --no-cache-dir --implementation py --no-deps --upgrade --pre debugpy
-# For python 3.7 and greater use this command to install the debugger
-> python3 -m pip --disable-pip-version-check install -r build/debugger-install-requirements.txt
-> python3 ./pythonFiles/install_debugpy.py
-> npm run clean
-> npm run package # This step takes around 10 minutes.
-```
-
-Resulting in a `ms-python-insiders.vsix` file in your `vscode-python` folder.
-
-⚠️ If you made changes to `package.json`, run `npm install` (instead of `npm ci`) to update `package-lock.json` and install dependencies all at once.
-
-## Development Build
-
-If you would like to use the latest version of the extension as committed to `master` that has passed our test suite, then you may set the `"python.insidersChannel"` setting to `"daily"` or `"weekly"` based on how often you would like the extension to check for updates.
-
-You may also download and install the extension manually from the following
-[location](https://pvsc.blob.core.windows.net/extension-builds/ms-python-insiders.vsix).
-Once you have downloaded the
-[ms-python-insiders.vsix](https://pvsc.blob.core.windows.net/extension-builds/ms-python-insiders.vsix)
-file, please follow the instructions on
-[this page](https://code.visualstudio.com/docs/editor/extension-gallery#_install-from-a-vsix)
-to install the extension. Do note that the manual install will not automatically update to newer builds unless you set the `"python.insidersChannel"` setting (it will get replaced with released versions from the Marketplace once they are newer than the version install manually).
+Please see [our wiki](https://github.com/microsoft/vscode-python/wiki) on how to contribute to this project.
diff --git a/PYTHON_INTERACTIVE_TROUBLESHOOTING.md b/PYTHON_INTERACTIVE_TROUBLESHOOTING.md
deleted file mode 100644
index 03688ee0a986..000000000000
--- a/PYTHON_INTERACTIVE_TROUBLESHOOTING.md
+++ /dev/null
@@ -1,66 +0,0 @@
-# Troubleshooting Jupyter issues in the Python Interactive Window or Notebook Editor
-
-This document is intended to help troubleshoot problems with starting Jupyter in the Python Interactive Window or Notebook Editor.
-
----
-
-## Jupyter Not Starting
-
-This error can happen when
-
-- Jupyter is out of date
-- Jupyter is not installed
-- You picked the wrong Python environment (one that doesn't have Jupyter installed).
-
-### The first step is to verify you are running the Python environment that you have Jupyter installed into.
-
-The first time that you start the Interactive Window or the Notebook Editor VS Code will attempt to locate a Python environment that has Jupyter installed in it and can start a notebook.
-
-The first Python interpreter to check will be the one selected with the selection dropdown on the bottom left of the VS Code window:
-
-
-
-Once a suitable interpreter with Jupyter has been located, VS Code will continue to use that interpreter for starting up Jupyter servers.
-If no interpreters are found with Jupyter installed a popup message will ask if you would like to install Jupyter into the current interpreter.
-
-
-
-If you would like to change from using the saved Python interpreter to a new interpreter for launching Jupyter just use the "Python: Select interpreter to start Jupyter server" VS Code command to change it.
-
-### The second step is to check that jupyter isn't giving any errors on startup.
-
-Run the following command from an environment that matches the Python you selected:
-`python -m jupyter notebook --version`
-
-If this command shows any warnings, you need to upgrade or fix the warnings to continue with this version of Python.
-If this command says 'no module named jupyter', you need to install Jupyter.
-
-### How to install Jupyter
-
-You can do this in a number of different ways:
-
-#### Anaconda
-
-Anaconda is a popular Python distribution. It makes it super easy to get Jupyter up and running.
-
-If you're already using Anaconda, follow these steps to get Jupyter
-
-1. Start anaconda environment
-1. Run 'conda install jupyter'
-1. Restart VS Code
-1. Pick the conda version of Python in the python selector
-
-Otherwise you can install Anaconda and pick the default options
-https://www.anaconda.com/download
-
-#### Pip
-
-You can also install Jupyter using pip.
-
-1. python -m pip install --upgrade pip
-1. python -m pip install jupyter
-1. Restart VS Code
-1. Pick the Python environment you did the pip install in
-
-For more information see
-http://jupyter.org/install
diff --git a/README.md b/README.md
index 55b9e8e465f1..e9dd52a538cd 100644
--- a/README.md
+++ b/README.md
@@ -1,11 +1,44 @@
# Python extension for Visual Studio Code
-A [Visual Studio Code](https://code.visualstudio.com/) [extension](https://marketplace.visualstudio.com/VSCode) with rich support for the [Python language](https://www.python.org/) (for all [actively supported versions](https://devguide.python.org/#status-of-python-branches) of the language: 2.7, >=3.5), including features such as IntelliSense, linting, debugging, code navigation, code formatting, Jupyter notebook support, refactoring, variable explorer, test explorer, snippets, and more!
+A [Visual Studio Code](https://code.visualstudio.com/) [extension](https://marketplace.visualstudio.com/VSCode) with rich support for the [Python language](https://www.python.org/) (for all [actively supported Python versions](https://devguide.python.org/versions/#supported-versions)), providing access points for extensions to seamlessly integrate and offer support for IntelliSense (Pylance), debugging (Python Debugger), formatting, linting, code navigation, refactoring, variable explorer, test explorer, environment management (**NEW** Python Environments Extension).
+
+## Support for [vscode.dev](https://vscode.dev/)
+
+The Python extension does offer [some support](https://github.com/microsoft/vscode-python/wiki/Partial-mode) when running on [vscode.dev](https://vscode.dev/) (which includes [github.dev](http://github.dev/)). This includes partial IntelliSense for open files in the editor.
+
+
+## Installed extensions
+
+The Python extension will automatically install the following extensions by default to provide the best Python development experience in VS Code:
+
+- [Pylance](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance) – performant Python language support
+- [Python Debugger](https://marketplace.visualstudio.com/items?itemName=ms-python.debugpy) – seamless debug experience with debugpy
+- **(NEW)** [Python Environments](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-python-envs) – dedicated environment management (see below)
+
+These extensions are optional dependencies, meaning the Python extension will remain fully functional if they fail to be installed. Any or all of these extensions can be [disabled](https://code.visualstudio.com/docs/editor/extension-marketplace#_disable-an-extension) or [uninstalled](https://code.visualstudio.com/docs/editor/extension-marketplace#_uninstall-an-extension) at the expense of some features. Extensions installed through the marketplace are subject to the [Marketplace Terms of Use](https://cdn.vsassets.io/v/M146_20190123.39/_content/Microsoft-Visual-Studio-Marketplace-Terms-of-Use.pdf).
+
+### About the Python Environments Extension
+
+You may now see that the **Python Environments Extension** is installed for you, but it may or may not be "enabled" in your VS Code experience. Enablement is controlled by the setting `"python.useEnvironmentsExtension": true` (or `false`).
+
+- If you set this setting to `true`, you will manually opt in to using the Python Environments Extension for environment management.
+- If you do not have this setting specified, you may be randomly assigned to have it turned on as we roll it out until it becomes the default experience for all users.
+
+The Python Environments Extension is still under active development and experimentation. Its goal is to provide a dedicated view and improved workflows for creating, deleting, and switching between Python environments, as well as managing packages. If you have feedback, please let us know via [issues](https://github.com/microsoft/vscode-python/issues).
+
+## Extensibility
+
+The Python extension provides pluggable access points for extensions that extend various feature areas to further improve your Python development experience. These extensions are all optional and depend on your project configuration and preferences.
+
+- [Python formatters](https://code.visualstudio.com/docs/python/formatting#_choose-a-formatter)
+- [Python linters](https://code.visualstudio.com/docs/python/linting#_choose-a-linter)
+
+If you encounter issues with any of the listed extensions, please file an issue in its corresponding repo.
## Quick start
-- **Step 1.** [Install a supported version of Python on your system](https://code.visualstudio.com/docs/python/python-tutorial#_prerequisites) (note: that the system install of Python on macOS is not supported).
-- **Step 2.** Install the Python extension for Visual Studio Code.
+- **Step 1.** [Install a supported version of Python on your system](https://code.visualstudio.com/docs/python/python-tutorial#_prerequisites) (note: the system install of Python on macOS is not supported).
+- **Step 2.** [Install the Python extension for Visual Studio Code](https://code.visualstudio.com/docs/editor/extension-gallery).
- **Step 3.** Open or create a Python file and start coding!
## Set up your environment
@@ -14,21 +47,25 @@ A [Visual Studio Code](https://code.visualstudio.com/) [extension](https://marke
- Select your Python interpreter by clicking on the status bar
-
+
- Configure the debugger through the Debug Activity Bar
-
+
- Configure tests by running the `Configure Tests` command
-
+
## Jupyter Notebook quick start
+The Python extension offers support for Jupyter notebooks via the [Jupyter extension](https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter) to provide you a great Python notebook experience in VS Code.
+
+- Install the [Jupyter extension](https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter).
+
- Open or create a Jupyter Notebook file (.ipynb) and start coding in our Notebook Editor!
-
+
For more information you can:
@@ -43,31 +80,26 @@ Open the Command Palette (Command+Shift+P on macOS and Ctrl+Shift+P on Windows/L
| Command | Description |
| ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Python: Select Interpreter` | Switch between Python interpreters, versions, and environments. |
-| `Python: Start REPL` | Start an interactive Python REPL using the selected interpreter in the VS Code terminal. |
+| `Python: Start Terminal REPL` | Start an interactive Python REPL using the selected interpreter in the VS Code terminal. |
| `Python: Run Python File in Terminal` | Runs the active Python file in the VS Code terminal. You can also run a Python file by right-clicking on the file and selecting `Run Python File in Terminal`. |
-| `Python: Select Linter` | Switch from Pylint to Flake8 or other supported linters. |
-| `Format Document` | Formats code using the provided [formatter](https://code.visualstudio.com/docs/python/editing#_formatting) in the `settings.json` file. |
| `Python: Configure Tests` | Select a test framework and configure it to display the Test Explorer. |
-To see all available Python commands, open the Command Palette and type `Python`.
+To see all available Python commands, open the Command Palette and type `Python`. For Jupyter extension commands, just type `Jupyter`.
## Feature details
Learn more about the rich features of the Python extension:
-- [IntelliSense](https://code.visualstudio.com/docs/python/editing#_autocomplete-and-intellisense): Edit your code with auto-completion, code navigation, syntax checking and more
-- [Linting](https://code.visualstudio.com/docs/python/linting): Get additional code analysis with Pylint, Flake8 and more
-- [Code formatting](https://code.visualstudio.com/docs/python/editing#_formatting): Format your code with black, autopep or yapf
-
-- [Debugging](https://code.visualstudio.com/docs/python/debugging): Debug your Python scripts, web apps, remote or multi-threaded processes
-
-- [Testing](https://code.visualstudio.com/docs/python/unit-testing): Run and debug tests through the Test Explorer with unittest, pytest or nose
-
-- [Jupyter Notebooks](https://code.visualstudio.com/docs/python/jupyter-support): Create and edit Jupyter Notebooks, add and run code cells, render plots, visualize variables through the variable explorer, visualize dataframes with the data viewer, and more
+- [IntelliSense](https://code.visualstudio.com/docs/python/editing#_autocomplete-and-intellisense): Edit your code with auto-completion, code navigation, syntax checking and more.
+- [Linting](https://code.visualstudio.com/docs/python/linting): Get additional code analysis with Pylint, Flake8 and more.
+- [Code formatting](https://code.visualstudio.com/docs/python/formatting): Format your code with black, autopep or yapf.
+- [Debugging](https://code.visualstudio.com/docs/python/debugging): Debug your Python scripts, web apps, remote or multi-threaded processes.
+- [Testing](https://code.visualstudio.com/docs/python/unit-testing): Run and debug tests through the Test Explorer with unittest or pytest.
+- [Jupyter Notebooks](https://code.visualstudio.com/docs/python/jupyter-support): Create and edit Jupyter Notebooks, add and run code cells, render plots, visualize variables through the variable explorer, visualize dataframes with the data viewer, and more.
+- [Environments](https://code.visualstudio.com/docs/python/environments): Automatically activate and switch between virtualenv, venv, pipenv, conda and pyenv environments.
+- [Refactoring](https://code.visualstudio.com/docs/python/editing#_refactoring): Restructure your Python code with variable extraction and method extraction. Additionally, there is componentized support to enable additional refactoring, such as import sorting, through extensions including [isort](https://marketplace.visualstudio.com/items?itemName=ms-python.isort) and [Ruff](https://marketplace.visualstudio.com/items?itemName=charliermarsh.ruff).
-- [Environments](https://code.visualstudio.com/docs/python/environments): Automatically activate and switch between virtualenv, venv, pipenv, conda and pyenv environments
-- [Refactoring](https://code.visualstudio.com/docs/python/editing#_refactoring): Restructure your Python code with variable extraction, method extraction and import sorting
## Supported locales
@@ -75,13 +107,13 @@ The extension is available in multiple languages: `de`, `en`, `es`, `fa`, `fr`,
## Questions, issues, feature requests, and contributions
-- If you have a question about how to accomplish something with the extension, please [ask on Stack Overflow](https://stackoverflow.com/questions/tagged/visual-studio-code+python)
-- If you come across a problem with the extension, please [file an issue](https://github.com/microsoft/vscode-python)
-- Contributions are always welcome! Please see our [contributing guide](https://github.com/Microsoft/vscode-python/blob/master/CONTRIBUTING.md) for more details
+- If you have a question about how to accomplish something with the extension, please [ask on our Discussions page](https://github.com/microsoft/vscode-python/discussions/categories/q-a).
+- If you come across a problem with the extension, please [file an issue](https://github.com/microsoft/vscode-python).
+- Contributions are always welcome! Please see our [contributing guide](https://github.com/Microsoft/vscode-python/blob/main/CONTRIBUTING.md) for more details.
- Any and all feedback is appreciated and welcome!
- - If someone has already [filed an issue](https://github.com/Microsoft/vscode-python) that encompasses your feedback, please leave a 👍/👎 reaction on the issue
- - Otherwise please file a new issue
-- If you're interested in the development of the extension, you can read about our [development process](https://github.com/Microsoft/vscode-python/blob/master/CONTRIBUTING.md#development-process)
+ - If someone has already [filed an issue](https://github.com/Microsoft/vscode-python) that encompasses your feedback, please leave a 👍/👎 reaction on the issue.
+ - Otherwise please start a [new discussion](https://github.com/microsoft/vscode-python/discussions/categories/ideas).
+- If you're interested in the development of the extension, you can read about our [development process](https://github.com/Microsoft/vscode-python/blob/main/CONTRIBUTING.md#development-process).
## Data and telemetry
@@ -89,6 +121,6 @@ The Microsoft Python Extension for Visual Studio Code collects usage
data and sends it to Microsoft to help improve our products and
services. Read our
[privacy statement](https://privacy.microsoft.com/privacystatement) to
-learn more. This extension respects the `telemetry.enableTelemetry`
+learn more. This extension respects the `telemetry.telemetryLevel`
setting which you can learn more about at
https://code.visualstudio.com/docs/supporting/faq#_how-to-disable-telemetry-reporting.
diff --git a/SUPPORT.md b/SUPPORT.md
new file mode 100644
index 000000000000..b1afe54cc555
--- /dev/null
+++ b/SUPPORT.md
@@ -0,0 +1,11 @@
+# Support
+
+## How to file issues and get help
+
+This project uses GitHub Issues to track bugs and feature requests. Please search the [existing issues](https://github.com/microsoft/vscode-python/issues) before filing new issues to avoid duplicates. For new issues, file your bug or feature request as a new Issue.
+
+For help and questions about using this project, please see the [`python`+`visual-studio-code` labels on Stack Overflow](https://stackoverflow.com/questions/tagged/visual-studio-code+python) or the `#vscode` channel on the [`microsoft-python` server on Discord](https://aka.ms/python-discord-invite).
+
+## Microsoft Support Policy
+
+Support for this project is limited to the resources listed above.
diff --git a/ThirdPartyNotices-Distribution.txt b/ThirdPartyNotices-Distribution.txt
deleted file mode 100644
index 02b69b5d6c19..000000000000
--- a/ThirdPartyNotices-Distribution.txt
+++ /dev/null
@@ -1,15662 +0,0 @@
-NOTICES AND INFORMATION
-Do Not Translate or Localize
-
-This software incorporates material from third parties.
-Microsoft makes certain open source code available at https://3rdpartysource.microsoft.com,
-or you may send a check or money order for US $5.00, including the product name,
-the open source component name, platform, and version number, to:
-
-Source Code Compliance Team
-Microsoft Corporation
-One Microsoft Way
-Redmond, WA 98052
-USA
-
-Notwithstanding any other terms, you may reverse engineer this software to the extent
-required to debug changes to any libraries licensed under the GNU Lesser General Public License.
-
----------------------------------------------------------
-
-json-schema 0.2.3 - AFL-2.1 OR BSD-3-Clause
-https://github.com/kriszyp/json-schema#readme
-
-Copyright (c) 2007 Kris Zyp SitePen (www.sitepen.com)
-
-AFL-2.1 OR BSD-3-Clause
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-acorn-node 1.7.0 - Apache-2.0
-https://github.com/browserify/acorn-node
-
-Copyright (c) 2016 Jordan Gensler
-Copyright (c) 2017-2018 by Adrian Heine
-Copyright 2018 Renee Kooi
-
-# [Apache License 2.0](https://spdx.org/licenses/Apache-2.0)
-
-Copyright 2018 Renée Kooi
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-> http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-## acorn-bigint
-
-The code in the `lib/bigint` folder is compiled from code licensed as MIT:
-
-> Copyright (C) 2017-2018 by Adrian Heine
->
-> Permission is hereby granted, free of charge, to any person obtaining a copy
-> of this software and associated documentation files (the "Software"), to deal
-> in the Software without restriction, including without limitation the rights
-> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-> copies of the Software, and to permit persons to whom the Software is
-> furnished to do so, subject to the following conditions:
->
-> The above copyright notice and this permission notice shall be included in
-> all copies or substantial portions of the Software.
->
-> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-> THE SOFTWARE.
-
-Find the source code at https://github.com/acornjs/acorn-bigint.
-
-## acorn-import-meta
-
-The code in the `lib/import-meta` folder is compiled from code licensed as MIT:
-
-> Copyright (C) 2017-2018 by Adrian Heine
->
-> Permission is hereby granted, free of charge, to any person obtaining a copy
-> of this software and associated documentation files (the "Software"), to deal
-> in the Software without restriction, including without limitation the rights
-> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-> copies of the Software, and to permit persons to whom the Software is
-> furnished to do so, subject to the following conditions:
->
-> The above copyright notice and this permission notice shall be included in
-> all copies or substantial portions of the Software.
->
-> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-> THE SOFTWARE.
-
-Find the source code at https://github.com/acornjs/acorn-import-meta.
-
-## acorn-dynamic-import
-
-The code in the `lib/dynamic-import` folder is licensed as MIT:
-
-> MIT License
->
-> Copyright (c) 2016 Jordan Gensler
->
-> Permission is hereby granted, free of charge, to any person obtaining a copy
-> of this software and associated documentation files (the "Software"), to deal
-> in the Software without restriction, including without limitation the rights
-> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-> copies of the Software, and to permit persons to whom the Software is
-> furnished to do so, subject to the following conditions:
->
-> The above copyright notice and this permission notice shall be included in all
-> copies or substantial portions of the Software.
->
-> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-> SOFTWARE.
-
-Find the source code at https://github.com/kesne/acorn-dynamic-import.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-aws-sign2 0.7.0 - Apache-2.0
-https://github.com/mikeal/aws-sign#readme
-
-Copyright 2010 LearnBoost
-
-Apache License
-
-Version 2.0, January 2004
-
-http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
-
-"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
-
-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
-
-"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
-
-"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
-
-"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
-
-"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
-
-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
-
-You must give any other recipients of the Work or Derivative Works a copy of this License; and
-
-You must cause any modified files to carry prominent notices stating that You changed the files; and
-
-You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
-
-If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-azure-storage 2.10.3 - Apache-2.0
-http://github.com/Azure/azure-storage-node
-
-Copyright (c) Microsoft and contributors.
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-caseless 0.12.0 - Apache-2.0
-https://github.com/mikeal/caseless#readme
-
-
-Apache License
-Version 2.0, January 2004
-http://www.apache.org/licenses/
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-1. Definitions.
-"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
-"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
-"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
-"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
-"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
-"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
-"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
-"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
-2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
-3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
-4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
-You must give any other recipients of the Work or Derivative Works a copy of this License; and
-You must cause any modified files to carry prominent notices stating that You changed the files; and
-You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
-If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
-5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
-6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
-7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
-8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
-9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
-END OF TERMS AND CONDITIONS
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-diff-match-patch 1.0.4 - Apache-2.0
-https://github.com/JackuB/diff-match-patch#readme
-
-Copyright 2018
-
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-estree-is-function 1.0.0 - Apache-2.0
-https://github.com/goto-bus-stop/estree-is-function
-
-Copyright 2017 Renee Kooi
-
-# [Apache License 2.0](https://spdx.org/licenses/Apache-2.0)
-
-Copyright 2017 Renée Kooi
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-> http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-forever-agent 0.6.1 - Apache-2.0
-https://github.com/mikeal/forever-agent
-
-
-Apache License
-
-Version 2.0, January 2004
-
-http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
-
-"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
-
-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
-
-"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
-
-"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
-
-"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
-
-"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
-
-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
-
-You must give any other recipients of the Work or Derivative Works a copy of this License; and
-
-You must cause any modified files to carry prominent notices stating that You changed the files; and
-
-You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
-
-If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-get-assigned-identifiers 1.2.0 - Apache-2.0
-https://github.com/goto-bus-stop/get-assigned-identifiers
-
-Copyright 2017 Renee Kooi
-
-# [Apache License 2.0](https://spdx.org/licenses/Apache-2.0)
-
-Copyright 2017 Renée Kooi
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-> http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-log4js 6.1.2 - Apache-2.0
-https://log4js-node.github.io/log4js-node/
-
-Copyright 2015 Gareth Jones
-
-Copyright 2015 Gareth Jones (with contributions from many other people)
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-oauth-sign 0.9.0 - Apache-2.0
-https://github.com/mikeal/oauth-sign#readme
-
-
-Apache License
-
-Version 2.0, January 2004
-
-http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
-
-"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
-
-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
-
-"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
-
-"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
-
-"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
-
-"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
-
-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
-
-You must give any other recipients of the Work or Derivative Works a copy of this License; and
-
-You must cause any modified files to carry prominent notices stating that You changed the files; and
-
-You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
-
-If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-reflect-metadata 0.1.13 - Apache-2.0
-http://rbuckton.github.io/reflect-metadata
-
-Copyright (c) Microsoft.
-Copyright (c) 2016 Brian Terlson
-Copyright (c) 2015 Nicolas Bevacqua
-Copyright (c) Microsoft Corporation.
-
-Apache License
-
-Version 2.0, January 2004
-
-http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
-
-"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
-
-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
-
-"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
-
-"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
-
-"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
-
-"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
-
-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
-
-You must give any other recipients of the Work or Derivative Works a copy of this License; and
-
-You must cause any modified files to carry prominent notices stating that You changed the files; and
-
-You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
-
-If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-request 2.88.0 - Apache-2.0
-https://github.com/request/request#readme
-
-Copyright 2010-2012 Mikeal Rogers
-
-Apache License
-
-Version 2.0, January 2004
-
-http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
-
-"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
-
-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
-
-"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
-
-"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
-
-"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
-
-"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
-
-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
-
-You must give any other recipients of the Work or Derivative Works a copy of this License; and
-
-You must cause any modified files to carry prominent notices stating that You changed the files; and
-
-You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
-
-If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-rxjs 6.5.4 - Apache-2.0
-https://github.com/ReactiveX/RxJS
-
-Copyright Google Inc.
-Copyright (c) Microsoft Corporation.
-Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-rxjs-compat 6.5.4 - Apache-2.0
-
-
-(c) this.destination.next
-(c) this.destination.error
-Copyright (c) Microsoft Corporation.
-Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-scope-analyzer 2.0.5 - Apache-2.0
-https://github.com/goto-bus-stop/scope-analyzer
-
-Copyright 2017 Renee Kooi
-
-# [Apache License 2.0](https://spdx.org/licenses/Apache-2.0)
-
-Copyright 2017 Renée Kooi
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-> http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-tslib 1.10.0 - Apache-2.0
-http://typescriptlang.org/
-
-Copyright (c) Microsoft Corporation.
-
-Apache License
-
-Version 2.0, January 2004
-
-http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
-
-"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
-
-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
-
-"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
-
-"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
-
-"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
-
-"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
-
-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
-
-You must give any other recipients of the Work or Derivative Works a copy of this License; and
-
-You must cause any modified files to carry prominent notices stating that You changed the files; and
-
-You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
-
-If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-tunnel-agent 0.6.0 - Apache-2.0
-https://github.com/mikeal/tunnel-agent#readme
-
-
-Apache License
-
-Version 2.0, January 2004
-
-http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
-
-"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
-
-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
-
-"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
-
-"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
-
-"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
-
-"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
-
-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
-
-You must give any other recipients of the Work or Derivative Works a copy of this License; and
-
-You must cause any modified files to carry prominent notices stating that You changed the files; and
-
-You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
-
-If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-async-listener 0.6.10 - BSD-2-Clause
-https://github.com/othiym23/async-listener#readme
-
-Copyright (c) 2013-2017, Forrest L Norvell
-Copyright Joyent, Inc. and other Node contributors.
-
-BSD 2-Clause License
-
-Copyright (c) 2013-2017, Forrest L Norvell
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-cls-hooked 4.2.2 - BSD-2-Clause
-https://github.com/jeff-lewis/cls-hooked#readme
-
-Copyright (c) 2013-2016, Forrest L Norvell
-
-Copyright (c) 2013-2016, Forrest L Norvell
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-continuation-local-storage 3.2.1 - BSD-2-Clause
-https://github.com/othiym23/node-continuation-local-storage#readme
-
-Copyright (c) 2013-2016, Forrest L Norvell
-
-Copyright (c) 2013-2016, Forrest L Norvell
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-emitter-listener 1.1.2 - BSD-2-Clause
-https://github.com/othiym23/emitter-listener
-
-
-Copyright (c) . All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-escodegen 1.2.0 - BSD-2-Clause
-http://github.com/Constellation/escodegen
-
-Copyright (c) 2012 Kris Kowal
-Copyright (c) 2012 John Freeman
-Copyright (c) 2012 Yusuke Suzuki
-Copyright (c) 2012-2013 Mathias Bynens
-Copyright (c) 2014 Yusuke Suzuki
-Copyright (c) 2013 Irakli Gozalishvili
-Copyright (c) 2009-2011, Mozilla Foundation and contributors
-Copyright (c) 2012 Arpad Borsos
-Copyright (c) 2012-2013 Yusuke Suzuki
-Copyright (c) 2011-2012 Ariya Hidayat
-Copyright (c) 2012 Yusuke Suzuki (http://github.com/Constellation)
-Copyright (c) 2012 Joost-Wim Boekesteijn
-Copyright (c) 2012 Robert Gust-Bardon
-Copyright (c) 2012-2013 Michael Ficarra
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-escodegen 1.9.1 - BSD-2-Clause
-http://github.com/estools/escodegen
-
-Copyright (c) 2014 Ivan Nikulin
-Copyright (c) 2012 Kris Kowal
-Copyright (c) 2012 John Freeman
-Copyright (c) 2015 Ingvar Stepanyan
-Copyright (c) 2012 Yusuke Suzuki
-Copyright (c) 2012-2013 Mathias Bynens
-Copyright (c) 2013 Irakli Gozalishvili
-Copyright (c) 2012 Arpad Borsos
-Copyright (c) 2012-2014 Yusuke Suzuki
-Copyright (c) 2011-2012 Ariya Hidayat
-Copyright (c) 2012 Yusuke Suzuki (http://github.com/Constellation)
-Copyright (c) 2012 Joost-Wim Boekesteijn
-Copyright (c) 2012 Robert Gust-Bardon
-Copyright (c) 2012-2013 Michael Ficarra
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-esprima 3.1.3 - BSD-2-Clause
-http://esprima.org/
-
-Copyright JS Foundation and other contributors, https://js.foundation
-
-Copyright JS Foundation and other contributors, https://js.foundation/
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-esprima 1.0.4 - BSD-2-Clause
-http://esprima.org/
-
-Copyright (c) 2012 Mathias Bynens
-Copyright (c) 2012 Kris Kowal
-Copyright (c) 2011 Yusuke Suzuki
-Copyright (c) 2012 Yusuke Suzuki
-Copyright (c) 2011 Ariya Hidayat
-Copyright (c) 2012 Ariya Hidayat
-Copyright (c) 2011 Arpad Borsos
-Copyright (c) 2012 Arpad Borsos
-Copyright (c) 2012 Joost-Wim Boekesteijn
-Copyright (c) 2012, 2011 Ariya Hidayat (http://ariya.ofilabs.com/about) and other contributors.
-
-Copyright (c) . All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-estraverse 1.5.1 - BSD-2-Clause
-https://github.com/Constellation/estraverse
-
-Copyright (c) 2012 Ariya Hidayat
-Copyright (c) 2012-2013 Yusuke Suzuki
-Copyright (c) 2012-2013 Yusuke Suzuki (http://github.com/Constellation)
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-estraverse 4.3.0 - BSD-2-Clause
-https://github.com/estools/estraverse
-
-Copyright (c) 2014 Yusuke Suzuki
-Copyright (c) 2012 Ariya Hidayat
-Copyright (c) 2012-2013 Yusuke Suzuki
-Copyright (c) 2012-2016 Yusuke Suzuki (http://github.com/Constellation)
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-esutils 2.0.3 - BSD-2-Clause
-https://github.com/estools/esutils
-
-Copyright (c) 2014 Ivan Nikulin
-Copyright (c) 2013 Yusuke Suzuki
-Copyright (c) 2013-2014 Yusuke Suzuki
-Copyright (c) 2013 Yusuke Suzuki (http://github.com/Constellation)
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-esutils 1.0.0 - BSD-2-Clause
-https://github.com/Constellation/esutils
-
-Copyright (c) 2013 Yusuke Suzuki
-Copyright (c) 2013 Yusuke Suzuki (http://github.com/Constellation)
-
-Copyright (c) . All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-http-cache-semantics 3.8.1 - BSD-2-Clause
-https://github.com/pornel/http-cache-semantics#readme
-
-
-Copyright (c) . All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-http-cache-semantics 4.1.0 - BSD-2-Clause
-https://github.com/kornelski/http-cache-semantics#readme
-
-Copyright 2016-2018 Kornel Lesinski
-
-Copyright 2016-2018 Kornel Lesiński
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-sax 0.5.8 - BSD-2-Clause
-https://github.com/isaacs/sax-js
-
-Copyright (c) Isaac Z. Schlueter
-copyright-software-short-notice-20021231.html' W3C Software Short
-copyright' Copyright 2012 W3C http://www.csail.mit.edu/' title Massachusetts Institute of Technology' MIT , http://www.ercim.org/'
-
-Copyright (c) Isaac Z. Schlueter ("Author")
-All rights reserved.
-
-The BSD License
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-The file "examples/strict.dtd" is licensed by the W3C and used according
-to the terms of the W3C SOFTWARE NOTICE AND LICENSE. See LICENSE-W3C.html
-for details.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-shimmer 1.2.1 - BSD-2-Clause
-https://github.com/othiym23/shimmer#readme
-
-Copyright (c) 2013-2019, Forrest L Norvell
-
-BSD 2-Clause License
-
-Copyright (c) 2013-2019, Forrest L Norvell
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-uri-js 4.2.2 - BSD-2-Clause
-https://github.com/garycourt/uri-js
-
-(c) 2011 Gary Court.
-Copyright 2011 Gary Court.
-Copyright (c) 2008 Ariel Flesler
-Copyright (c) 2009 John Resig, Jorn Zaefferer
-
-Copyright (c) . All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-winreg 1.2.4 - BSD-2-Clause
-http://fresc81.github.io/node-winreg
-
-Copyright (c) 2016 Paul
-Copyright (c) 2016, Paul Bottin
-
-Copyright (c) . All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@jupyterlab/coreutils 3.1.0 - BSD-3-Clause
-https://github.com/jupyterlab/jupyterlab
-
-Copyright (c) Jupyter Development Team.
-Copyright (c) 2015 Project Jupyter Contributors
-
-Copyright (c) 2015 Project Jupyter Contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-3. Neither the name of the copyright holder nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-Semver File License
-===================
-
-The semver.py file is from https://github.com/podhmo/python-semver
-which is licensed under the "MIT" license. See the semver.py file for details.
-
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@jupyterlab/coreutils 3.2.0 - BSD-3-Clause
-https://github.com/jupyterlab/jupyterlab
-
-Copyright (c) Jupyter Development Team.
-Copyright (c) 2015 Project Jupyter Contributors
-
-Copyright (c) 2015 Project Jupyter Contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-3. Neither the name of the copyright holder nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-Semver File License
-===================
-
-The semver.py file is from https://github.com/podhmo/python-semver
-which is licensed under the "MIT" license. See the semver.py file for details.
-
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@jupyterlab/observables 2.4.0 - BSD-3-Clause
-https://github.com/jupyterlab/jupyterlab
-
-Copyright (c) Jupyter Development Team.
-Copyright (c) 2015 Project Jupyter Contributors
-
-Copyright (c) 2015 Project Jupyter Contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-3. Neither the name of the copyright holder nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-Semver File License
-===================
-
-The semver.py file is from https://github.com/podhmo/python-semver
-which is licensed under the "MIT" license. See the semver.py file for details.
-
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@jupyterlab/services 4.2.0 - BSD-3-Clause
-https://github.com/jupyterlab/jupyterlab
-
-(c) 2011 Gary Court.
-Copyright (c) Jupyter Development Team.
-Copyright (c) 2015 Project Jupyter Contributors
-
-Copyright (c) 2015 Project Jupyter Contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-3. Neither the name of the copyright holder nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-Semver File License
-===================
-
-The semver.py file is from https://github.com/podhmo/python-semver
-which is licensed under the "MIT" license. See the semver.py file for details.
-
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@jupyter-widgets/schema 0.4.0 - BSD-3-Clause
-https://github.com/jupyter-widgets/ipywidgets#readme
-
-Copyright (c) Jupyter Development Team.
-
-Copyright (c) . All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
- 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@nteract/commutable 7.2.9 - BSD-3-Clause
-
-
-Copyright (c) 2016, nteract contributors
-
-Copyright (c) 2016, nteract contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-* Neither the name of nteract nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@nteract/messaging 7.0.4 - BSD-3-Clause
-
-
-Copyright (c) 2016, nteract contributors
-
-Copyright (c) 2016, nteract contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-* Neither the name of nteract nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@phosphor/algorithm 1.2.0 - BSD-3-Clause
-https://github.com/phosphorjs/phosphor
-
-Copyright (c) 2014-2017, PhosphorJS
-
-Copyright (c) 2014-2017, PhosphorJS Contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-* Neither the name of the copyright holder nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@phosphor/algorithm 1.1.3 - BSD-3-Clause
-https://github.com/phosphorjs/phosphor
-
-Copyright (c) 2014-2017, PhosphorJS
-
-Copyright (c) . All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
- 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@phosphor/collections 1.2.0 - BSD-3-Clause
-https://github.com/phosphorjs/phosphor
-
-Copyright (c) 2014-2017, PhosphorJS
-Copyright (c) 2014-2018, PhosphorJS
-
-Copyright (c) 2014-2017, PhosphorJS Contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-* Neither the name of the copyright holder nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@phosphor/commands 1.7.2 - BSD-3-Clause
-https://github.com/phosphorjs/phosphor
-
-Copyright (c) 2014-2017, PhosphorJS
-
-Copyright (c) 2014-2017, PhosphorJS Contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-* Neither the name of the copyright holder nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@phosphor/coreutils 1.3.1 - BSD-3-Clause
-https://github.com/phosphorjs/phosphor
-
-Copyright (c) 2014-2017, PhosphorJS
-
-Copyright (c) . All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
- 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@phosphor/disposable 1.2.0 - BSD-3-Clause
-https://github.com/phosphorjs/phosphor
-
-Copyright (c) 2014-2017, PhosphorJS
-
-Copyright (c) 2014-2017, PhosphorJS Contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-* Neither the name of the copyright holder nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@phosphor/disposable 1.3.1 - BSD-3-Clause
-https://github.com/phosphorjs/phosphor
-
-Copyright (c) 2014-2017, PhosphorJS
-
-Copyright (c) 2014-2017, PhosphorJS Contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-* Neither the name of the copyright holder nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@phosphor/domutils 1.1.4 - BSD-3-Clause
-https://github.com/phosphorjs/phosphor
-
-Copyright (c) 2014-2017, PhosphorJS
-Copyright (c) 2014-2019, PhosphorJS
-
-Copyright (c) 2014-2017, PhosphorJS Contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-* Neither the name of the copyright holder nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@phosphor/keyboard 1.1.3 - BSD-3-Clause
-https://github.com/phosphorjs/phosphor
-
-Copyright (c) 2014-2017, PhosphorJS
-
-Copyright (c) . All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
- 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@phosphor/messaging 1.3.0 - BSD-3-Clause
-https://github.com/phosphorjs/phosphor
-
-Copyright (c) 2014-2017, PhosphorJS
-
-Copyright (c) 2014-2017, PhosphorJS Contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-* Neither the name of the copyright holder nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@phosphor/properties 1.1.3 - BSD-3-Clause
-https://github.com/phosphorjs/phosphor
-
-Copyright (c) 2014-2017, PhosphorJS
-
-Copyright (c) . All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
- 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@phosphor/signaling 1.3.1 - BSD-3-Clause
-https://github.com/phosphorjs/phosphor
-
-Copyright (c) 2014-2017, PhosphorJS
-
-Copyright (c) 2014-2017, PhosphorJS Contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-* Neither the name of the copyright holder nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@phosphor/signaling 1.2.3 - BSD-3-Clause
-https://github.com/phosphorjs/phosphor
-
-Copyright (c) 2014-2017, PhosphorJS
-
-Copyright (c) . All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
- 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-bcrypt-pbkdf 1.0.2 - BSD-3-Clause
-https://github.com/joyent/node-bcrypt-pbkdf#readme
-
-Copyright 2016, Joyent Inc
-Copyright (c) 2013 Ted Unangst
-Copyright 1997 Niels Provos
-
-The Blowfish portions are under the following license:
-
-Blowfish block cipher for OpenBSD
-Copyright 1997 Niels Provos
-All rights reserved.
-
-Implementation advice by David Mazieres .
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-3. The name of the author may not be used to endorse or promote products
- derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
-The bcrypt_pbkdf portions are under the following license:
-
-Copyright (c) 2013 Ted Unangst
-
-Permission to use, copy, modify, and distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-
-Performance improvements (Javascript-specific):
-
-Copyright 2016, Joyent Inc
-Author: Alex Wilson
-
-Permission to use, copy, modify, and distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-charenc 0.0.2 - BSD-3-Clause
-https://github.com/pvorb/node-charenc#readme
-
-Copyright (c) 2009, Jeff Mott.
-Copyright (c) 2011, Paul Vorbach.
-
-Copyright (c) . All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
- 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-crypt 0.0.2 - BSD-3-Clause
-https://github.com/pvorb/node-crypt#readme
-
-Copyright (c) 2009, Jeff Mott.
-Copyright (c) 2011, Paul Vorbach.
-
-Copyright (c) . All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
- 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-duplexer2 0.1.4 - BSD-3-Clause
-https://github.com/deoxxa/duplexer2#readme
-
-Copyright (c) 2013, Deoxxa Development
-
-Copyright (c) 2013, Deoxxa Development
-======================================
-All rights reserved.
---------------------
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-3. Neither the name of Deoxxa Development nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY DEOXXA DEVELOPMENT ''AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL DEOXXA DEVELOPMENT BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-duplexer3 0.1.4 - BSD-3-Clause
-https://github.com/floatdrop/duplexer3
-
-Copyright (c) 2013, Deoxxa Development
-
-Copyright (c) 2013, Deoxxa Development
-======================================
-All rights reserved.
---------------------
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-3. Neither the name of Deoxxa Development nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY DEOXXA DEVELOPMENT ''AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL DEOXXA DEVELOPMENT BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-hoist-non-react-statics 3.3.1 - BSD-3-Clause
-https://github.com/mridgway/hoist-non-react-statics#readme
-
-Copyright 2015, Yahoo! Inc.
-Copyright (c) 2015, Yahoo! Inc.
-
-Software License Agreement (BSD License)
-========================================
-
-Copyright (c) 2015, Yahoo! Inc. All rights reserved.
-----------------------------------------------------
-
-Redistribution and use of this software in source and binary forms, with or
-without modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
- * Neither the name of Yahoo! Inc. nor the names of YUI's contributors may be
- used to endorse or promote products derived from this software without
- specific prior written permission of Yahoo! Inc.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-hoist-non-react-statics 3.3.0 - BSD-3-Clause
-https://github.com/mridgway/hoist-non-react-statics#readme
-
-Copyright 2015, Yahoo! Inc.
-Copyright (c) 2015, Yahoo! Inc.
-
-Software License Agreement (BSD License)
-========================================
-
-Copyright (c) 2015, Yahoo! Inc. All rights reserved.
-----------------------------------------------------
-
-Redistribution and use of this software in source and binary forms, with or
-without modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
- * Neither the name of Yahoo! Inc. nor the names of YUI's contributors may be
- used to endorse or promote products derived from this software without
- specific prior written permission of Yahoo! Inc.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-md5 2.2.1 - BSD-3-Clause
-https://github.com/pvorb/node-md5#readme
-
-Copyright (c) 2009, Jeff Mott.
-Copyright (c) 2011-2012, Paul Vorbach.
-Copyright (c) 2011-2015, Paul Vorbach.
-
-Copyright © 2011-2012, Paul Vorbach.
-Copyright © 2009, Jeff Mott.
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
- list of conditions and the following disclaimer in the documentation and/or
- other materials provided with the distribution.
-* Neither the name Crypto-JS nor the names of its contributors may be used to
- endorse or promote products derived from this software without specific prior
- written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-qs 6.5.2 - BSD-3-Clause
-https://github.com/ljharb/qs
-
-Copyright (c) 2014 Nathan LaFreniere and other contributors.
-
-Copyright (c) 2014 Nathan LaFreniere and other contributors.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * The names of any contributors may not be used to endorse or promote
- products derived from this software without specific prior written
- permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- * * *
-
-The complete list of contributors can be found at: https://github.com/hapijs/qs/graphs/contributors
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-source-map 0.5.7 - BSD-3-Clause
-https://github.com/mozilla/source-map
-
-Copyright 2011 The Closure Compiler
-Copyright 2011 Mozilla Foundation and contributors
-Copyright 2014 Mozilla Foundation and contributors
-Copyright 2009-2011 Mozilla Foundation and contributors
-Copyright (c) 2009-2011, Mozilla Foundation and contributors
-
-
-Copyright (c) 2009-2011, Mozilla Foundation and contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-* Neither the names of the Mozilla Foundation nor the names of project
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-source-map 0.6.1 - BSD-3-Clause
-https://github.com/mozilla/source-map
-
-Copyright 2011 The Closure Compiler
-Copyright 2011 Mozilla Foundation and contributors
-Copyright 2014 Mozilla Foundation and contributors
-Copyright 2009-2011 Mozilla Foundation and contributors
-Copyright (c) 2009-2011, Mozilla Foundation and contributors
-
-
-Copyright (c) 2009-2011, Mozilla Foundation and contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-* Neither the names of the Mozilla Foundation nor the names of project
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-source-map 0.1.43 - BSD-3-Clause
-https://github.com/mozilla/source-map
-
-Copyright 2011 The Closure Compiler
-Copyright 2011 Mozilla Foundation and contributors
-Copyright 2012 Mozilla Foundation and contributors
-Copyright 2014 Mozilla Foundation and contributors
-Copyright 2009-2011 Mozilla Foundation and contributors
-Copyright (c) 2009-2011, Mozilla Foundation and contributors
-
-
-Copyright (c) 2009-2011, Mozilla Foundation and contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-* Neither the names of the Mozilla Foundation nor the names of project
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-tough-cookie 2.4.3 - BSD-3-Clause
-https://github.com/salesforce/tough-cookie
-
-Copyright (c) 2015, Salesforce.com, Inc.
-Copyright (c) 2018, Salesforce.com, Inc.
-
-Copyright (c) 2015, Salesforce.com, Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
-3. Neither the name of Salesforce.com nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-amdefine 1.0.1 - BSD-3-Clause OR MIT
-http://github.com/jrburke/amdefine
-
-Copyright (c) 2011-2016, The Dojo Foundation
-
-amdefine is released under two licenses: new BSD, and MIT. You may pick the
-license that best suits your development needs. The text of both licenses are
-provided below.
-
-
-The "New" BSD License:
-----------------------
-
-Copyright (c) 2011-2016, The Dojo Foundation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
- * Neither the name of the Dojo Foundation nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
-MIT License
------------
-
-Copyright (c) 2011-2016, The Dojo Foundation
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-d 1.0.1 - ISC
-https://github.com/medikoo/d#readme
-
-Copyright (c) 2013-2019, Mariusz Nowak, medikoo, medikoo.com
-
-ISC License
-
-Copyright (c) 2013-2019, Mariusz Nowak, @medikoo, medikoo.com
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-es5-ext 0.10.50 - ISC
-https://github.com/medikoo/es5-ext#readme
-
-Copyright (c) 2008 Matsuza
-Copyright (c) 2011-2019, Mariusz Nowak, medikoo, medikoo.com
-
-ISC License
-
-Copyright (c) 2011-2019, Mariusz Nowak, @medikoo, medikoo.com
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-flatted 2.0.1 - ISC
-https://github.com/WebReflection/flatted#readme
-
-(c) 2018, Andrea Giammarchi, (ISC)
-Copyright (c) 2018, Andrea Giammarchi, WebReflection
-
-ISC License
-
-Copyright (c) 2018, Andrea Giammarchi, @WebReflection
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-fs.realpath 1.0.0 - ISC
-https://github.com/isaacs/fs.realpath#readme
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-Copyright Joyent, Inc. and other Node contributors.
-
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-----
-
-This library bundles a version of the `fs.realpath` and `fs.realpathSync`
-methods from Node.js v0.10 under the terms of the Node.js MIT license.
-
-Node's license follows, also included at the header of `old.js` which contains
-the licensed code:
-
- Copyright Joyent, Inc. and other Node contributors.
-
- Permission is hereby granted, free of charge, to any person obtaining a
- copy of this software and associated documentation files (the "Software"),
- to deal in the Software without restriction, including without limitation
- the rights to use, copy, modify, merge, publish, distribute, sublicense,
- and/or sell copies of the Software, and to permit persons to whom the
- Software is furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-glob 7.1.4 - ISC
-https://github.com/isaacs/node-glob#readme
-
-
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-## Glob Logo
-
-Glob's logo created by Tanya Brassie , licensed
-under a Creative Commons Attribution-ShareAlike 4.0 International License
-https://creativecommons.org/licenses/by-sa/4.0/
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-graceful-fs 4.2.0 - ISC
-https://github.com/isaacs/node-graceful-fs#readme
-
-Copyright (c) Isaac Z. Schlueter, Ben Noordhuis, and Contributors
-
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter, Ben Noordhuis, and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-har-schema 2.0.0 - ISC
-https://github.com/ahmadnassri/har-schema
-
-Copyright (c) 2015, Ahmad Nassri
-copyright ahmadnassri.com (https://www.ahmadnassri.com/)
-
-Copyright (c) 2015, Ahmad Nassri
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-inflight 1.0.6 - ISC
-https://github.com/isaacs/inflight
-
-Copyright (c) Isaac Z. Schlueter
-
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-inherits 2.0.4 - ISC
-https://github.com/isaacs/inherits#readme
-
-Copyright (c) Isaac Z. Schlueter
-
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-json-stringify-safe 5.0.1 - ISC
-https://github.com/isaacs/json-stringify-safe
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-lru-cache 4.1.5 - ISC
-https://github.com/isaacs/node-lru-cache#readme
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-minimalistic-assert 1.0.1 - ISC
-https://github.com/calvinmetcalf/minimalistic-assert
-
-Copyright 2015 Calvin Metcalf
-
-Copyright 2015 Calvin Metcalf
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-minimatch 3.0.4 - ISC
-https://github.com/isaacs/minimatch#readme
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-once 1.4.0 - ISC
-https://github.com/isaacs/once#readme
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-path-posix 1.0.0 - ISC
-https://github.com/jden/node-path-posix
-
-Copyright Joyent, Inc. and other Node contributors.
-
-Node's license follows:
-
-====
-
-Copyright Joyent, Inc. and other Node contributors. All rights reserved.
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to
-deal in the Software without restriction, including without limitation the
-rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-sell copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-IN THE SOFTWARE.
-
-====
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-pseudomap 1.0.2 - ISC
-https://github.com/isaacs/pseudomap#readme
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-sax 1.2.4 - ISC
-https://github.com/isaacs/sax-js#readme
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-Copyright Mathias Bynens
-
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-====
-
-`String.fromCodePoint` by Mathias Bynens used according to terms of MIT
-License, as follows:
-
- Copyright Mathias Bynens
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- "Software"), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-semver 5.7.0 - ISC
-https://github.com/npm/node-semver#readme
-
-Copyright Isaac Z.
-Copyright Isaac Z. Schlueter
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-semver 6.3.0 - ISC
-https://github.com/npm/node-semver#readme
-
-Copyright Isaac Z.
-Copyright Isaac Z. Schlueter
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-type 1.0.1 - ISC
-https://github.com/medikoo/type#readme
-
-
-ISC License
-
-Copyright (c) 2004-2010 by Internet Systems Consortium, Inc. ("ISC")
-
-Copyright (c) 1995-2003 by Internet Software Consortium
-
-Permission to use, copy, modify, and /or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-wrappy 1.0.2 - ISC
-https://github.com/npm/wrappy
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-yallist 2.1.2 - ISC
-https://github.com/isaacs/yallist#readme
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-sanitize-filename 1.6.3 - ISC OR WTFPL OR (ISC AND WTFPL)
-https://github.com/parshap/node-sanitize-filename#readme
-
-Copyright (c) 2004 Sam Hocevar
-
-This project is licensed under the [WTFPL][] and [ISC][] licenses.
-
-[WTFPL]: https://en.wikipedia.org/wiki/WTFPL
-[ISC]: https://opensource.org/licenses/ISC
-
-## WTFPL
-
-DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
-Version 2, December 2004
-
-Copyright (C) 2004 Sam Hocevar \
-
-Everyone is permitted to copy and distribute verbatim or modified copies
-of this license document, and changing it is allowed as long as the name
-is changed.
-
-DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE TERMS AND CONDITIONS FOR
-COPYING, DISTRIBUTION AND MODIFICATION
-
-0. You just DO WHAT THE FUCK YOU WANT TO.
-
-## ISC
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@babel/runtime 7.5.4 - MIT
-
-
-Copyright (c) 2014-present Sebastian McKenzie and other contributors
-
-MIT License
-
-Copyright (c) 2014-present Sebastian McKenzie and other contributors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@babel/runtime 7.8.3 - MIT
-https://babeljs.io/docs/en/next/babel-runtime
-
-Copyright (c) 2014-present Sebastian McKenzie and other contributors
-
-MIT License
-
-Copyright (c) 2014-present Sebastian McKenzie and other contributors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@loadable/component 5.12.0 - MIT
-https://github.com/gregberge/loadable-components#readme
-
-Copyright 2019 Greg Berge
-
-Copyright 2019 Greg Bergé
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@nteract/types 6.0.4 - MIT
-
-
-Copyright (c) 2016, nteract contributors
-
-Copyright (c) 2016, nteract contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-* Neither the name of nteract nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@sindresorhus/is 0.7.0 - MIT
-https://github.com/sindresorhus/is#readme
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-MIT License
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@sindresorhus/is 0.14.0 - MIT
-https://github.com/sindresorhus/is#readme
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-MIT License
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@szmarczak/http-timer 1.1.2 - MIT
-https://github.com/szmarczak/http-timer#readme
-
-Copyright (c) 2018 Szymon Marczak
-
-MIT License
-
-Copyright (c) 2018 Szymon Marczak
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@types/node 10.14.18 - MIT
-
-
-Copyright (c) Microsoft Corporation.
-
- MIT License
-
- Copyright (c) Microsoft Corporation. All rights reserved.
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@types/tcp-port-used 1.0.0 - MIT
-
-
-Copyright (c) Microsoft Corporation.
-
- MIT License
-
- Copyright (c) Microsoft Corporation. All rights reserved.
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@types/uuid 3.4.5 - MIT
-
-
-Copyright (c) Microsoft Corporation.
-
- MIT License
-
- Copyright (c) Microsoft Corporation. All rights reserved.
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-@types/uuid 7.0.2 - MIT
-
-
-Copyright (c) Microsoft Corporation.
-
- MIT License
-
- Copyright (c) Microsoft Corporation. All rights reserved.
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-1to2 1.0.0 - MIT
-
-
-Copyright (c) 2014 3VOT
-
-The MIT License (MIT)
-
-Copyright (c) 2014 3VOT
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-acorn 7.1.1 - MIT
-https://github.com/acornjs/acorn
-
-Copyright (c) 2012-2018 by various contributors
-
-Copyright (C) 2012-2018 by various contributors (see AUTHORS)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-acorn 6.4.1 - MIT
-https://github.com/acornjs/acorn
-
-Copyright (c) 2012-2018 by various contributors
-
-Copyright (C) 2012-2018 by various contributors (see AUTHORS)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-acorn-dynamic-import 4.0.0 - MIT
-https://github.com/kesne/acorn-dynamic-import
-
-Copyright (c) 2016 Jordan Gensler
-
-MIT License
-
-Copyright (c) 2016 Jordan Gensler
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-acorn-walk 6.2.0 - MIT
-https://github.com/acornjs/acorn
-
-Copyright (c) 2012-2018 by various contributors
-
-Copyright (C) 2012-2018 by various contributors (see AUTHORS)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-aggregate-error 3.0.1 - MIT
-https://github.com/sindresorhus/aggregate-error#readme
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-MIT License
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-ajv 6.10.1 - MIT
-https://github.com/epoberezkin/ajv
-
-(c) 2011 Gary Court.
-Copyright 2011 Gary Court.
-Copyright (c) 2015-2017 Evgeny Poberezkin
-
-The MIT License (MIT)
-
-Copyright (c) 2015-2017 Evgeny Poberezkin
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-ansi-regex 4.1.0 - MIT
-https://github.com/chalk/ansi-regex#readme
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-MIT License
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-applicationinsights 1.7.4 - MIT
-https://github.com/Microsoft/ApplicationInsights-node.js#readme
-
-Copyright (c) Microsoft Corporation.
-
-The MIT License (MIT)
-Copyright © Microsoft Corporation
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-arch 2.1.1 - MIT
-https://github.com/feross/arch
-
-Copyright (c) Feross Aboukhadijeh
-Copyright (c) Feross Aboukhadijeh (http://feross.org).
-
-The MIT License (MIT)
-
-Copyright (c) Feross Aboukhadijeh
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-array-from 2.1.1 - MIT
-https://github.com/studio-b12/array-from#readme
-
-(c) Studio B12 GmbH
-Copyright (c) 2015-2016 Studio B12 GmbH
-
-Copyright © 2015-2016 Studio B12 GmbH
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-asn1 0.2.4 - MIT
-https://github.com/joyent/node-asn1#readme
-
-Copyright (c) 2011 Mark Cavage
-Copyright 2011 Mark Cavage
-
-Copyright (c) 2011 Mark Cavage, All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-assert-plus 1.0.0 - MIT
-https://github.com/mcavage/node-assert-plus#readme
-
-Copyright 2015 Joyent, Inc.
-Copyright (c) 2012 Mark Cavage
-Copyright (c) 2012, Mark Cavage.
-
-MIT License
-
-Copyright (c)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-ast-transform 0.0.0 - MIT
-https://github.com/hughsk/ast-transform
-
-Copyright (c) 2014 Hugh Kennedy
-
-## The MIT License (MIT) ##
-
-Copyright (c) 2014 Hugh Kennedy
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-ast-types 0.7.8 - MIT
-http://github.com/benjamn/ast-types
-
-Copyright (c) 2013 Ben Newman
-
-Copyright (c) 2013 Ben Newman
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-async 2.6.2 - MIT
-https://caolan.github.io/async/
-
-Copyright (c) 2010-2018 Caolan McMahon
-
-Copyright (c) 2010-2018 Caolan McMahon
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-async-hook-jl 1.7.6 - MIT
-https://github.com/jeff-lewis/async-hook-jl#readme
-
-Copyright (c) 2015 Andreas Madsen
-
-Copyright (c) 2015 Andreas Madsen
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-asynckit 0.4.0 - MIT
-https://github.com/alexindigo/asynckit#readme
-
-Copyright (c) 2016 Alex Indigo
-
-The MIT License (MIT)
-
-Copyright (c) 2016 Alex Indigo
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-async-limiter 1.0.0 - MIT
-https://github.com/strml/async-limiter#readme
-
-Copyright (c) 2017 Samuel Reed
-
-The MIT License (MIT)
-Copyright (c) 2017 Samuel Reed
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-aws4 1.8.0 - MIT
-https://github.com/mhart/aws4#readme
-
-Copyright 2013 Michael Hart (michael.hart.au@gmail.com)
-
-Copyright 2013 Michael Hart (michael.hart.au@gmail.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-axios 0.19.2 - MIT
-https://github.com/axios/axios
-
-Copyright (c) 2014-present Matt Zabriskie
-
-Copyright (c) 2014-present Matt Zabriskie
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-babel-runtime 6.26.0 - MIT
-
-
-
-MIT License
-
-Copyright (c)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-backports.functools-lru-cache 1.6.1 - MIT
-
-
-Copyright Jason R. Coombs
-
-Copyright Jason R. Coombs
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-balanced-match 1.0.0 - MIT
-https://github.com/juliangruber/balanced-match
-
-Copyright (c) 2013 Julian Gruber
-
-(MIT)
-
-Copyright (c) 2013 Julian Gruber <julian@juliangruber.com>
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-base64-js 1.3.0 - MIT
-https://github.com/beatgammit/base64-js
-
-Copyright (c) 2014
-
-The MIT License (MIT)
-
-Copyright (c) 2014
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-base64-js 0.0.8 - MIT
-https://github.com/beatgammit/base64-js
-
-Copyright (c) 2014
-
-The MIT License (MIT)
-
-Copyright (c) 2014
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-brace-expansion 1.1.11 - MIT
-https://github.com/juliangruber/brace-expansion
-
-Copyright (c) 2013 Julian Gruber
-
-MIT License
-
-Copyright (c) 2013 Julian Gruber
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-brfs 1.6.1 - MIT
-https://github.com/substack/brfs
-
-
-This software is released under the MIT license:
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-brfs 2.0.2 - MIT
-https://github.com/substack/brfs
-
-
-This software is released under the MIT license:
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-brotli 1.3.2 - MIT
-https://github.com/devongovett/brotli.js
-
-Copyright 2013 Google Inc.
-
-MIT License
-
-Copyright (c)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-browserify-mime 1.2.9 - MIT
-
-
-Copyright (c) 2010 Benjamin Thomas, Robert Kieffer
-
-Copyright (c) 2010 Benjamin Thomas, Robert Kieffer
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-browserify-optional 1.0.1 - MIT
-https://github.com/devongovett/browserify-optional
-
-
-MIT License
-
-Copyright (c)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-browser-resolve 1.11.3 - MIT
-https://github.com/shtylman/node-browser-resolve#readme
-
-Copyright (c) 2013-2015 Roman Shtylman
-
-The MIT License (MIT)
-
-Copyright (c) 2013-2015 Roman Shtylman
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-buffer-equal 0.0.1 - MIT
-https://github.com/substack/node-buffer-equal
-
-
-MIT License
-
-Copyright (c)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-buffer-from 1.1.1 - MIT
-https://github.com/LinusU/buffer-from#readme
-
-Copyright (c) 2016, 2018 Linus Unneback
-
-MIT License
-
-Copyright (c) 2016, 2018 Linus Unnebäck
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-cacheable-request 2.1.4 - MIT
-https://github.com/lukechilds/cacheable-request
-
-(c) Luke Childs
-Copyright (c) 2017 Luke Childs
-
-MIT License
-
-Copyright (c) 2017 Luke Childs
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-cacheable-request 6.1.0 - MIT
-https://github.com/lukechilds/cacheable-request#readme
-
-(c) Luke Childs
-Copyright (c) 2017 Luke Childs
-
-MIT License
-
-Copyright (c) 2017 Luke Childs
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-classnames 2.2.6 - MIT
-https://github.com/JedWatson/classnames#readme
-
-Copyright (c) 2017 Jed Watson.
-
-The MIT License (MIT)
-
-Copyright (c) 2017 Jed Watson
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-clean-stack 2.2.0 - MIT
-https://github.com/sindresorhus/clean-stack#readme
-
-(c) Sindre Sorhus (https://sindresorhus.com)
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-MIT License
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-clone 1.0.4 - MIT
-https://github.com/pvorb/node-clone#readme
-
-Copyright (c) 2011-2015 Paul Vorbach
-Copyright (c) 2011-2015 Paul Vorbach (http://paul.vorba.ch/) and contributors (https://github.com/pvorb/node-clone/graphs/contributors).
-
-Copyright © 2011-2015 Paul Vorbach
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the “Software”), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-clone-response 1.0.2 - MIT
-https://github.com/lukechilds/clone-response
-
-(c) Luke Childs
-Copyright (c) 2017 Luke Childs
-
-MIT License
-
-Copyright (c) 2017 Luke Childs
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-color 3.0.0 - MIT
-https://github.com/Qix-/color#readme
-
-Copyright (c) 2012 Heather Arthur
-
-Copyright (c) 2012 Heather Arthur
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-color-convert 1.9.3 - MIT
-https://github.com/Qix-/color-convert#readme
-
-Copyright (c) 2011-2016, Heather Arthur and Josh Junon.
-Copyright (c) 2011-2016 Heather Arthur
-
-Copyright (c) 2011-2016 Heather Arthur
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-color-name 1.1.3 - MIT
-https://github.com/dfcreative/color-name
-
-Copyright (c) 2015 Dmitry Ivanov
-
-The MIT License (MIT)
-Copyright (c) 2015 Dmitry Ivanov
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-colornames 1.1.1 - MIT
-https://github.com/timoxley/colornames#readme
-
-Copyright (c) 2015 Tim Oxley
-
-The MIT License (MIT)
-
-Copyright (c) 2015 Tim Oxley
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-colors 1.3.3 - MIT
-https://github.com/Marak/colors.js
-
-Copyright (c) Marak Squires
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-MIT License
-
-Original Library
- - Copyright (c) Marak Squires
-
-Additional Functionality
- - Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-colorspace 1.1.2 - MIT
-https://github.com/3rd-Eden/colorspace
-
-Copyright (c) 2015 Arnout Kazemier, Martijn Swaagman
-
-The MIT License (MIT)
-
-Copyright (c) 2015 Arnout Kazemier, Martijn Swaagman, the Contributors.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-color-string 1.5.3 - MIT
-https://github.com/Qix-/color-string#readme
-
-Copyright (c) 2011 Heather Arthur
-
-Copyright (c) 2011 Heather Arthur
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-combined-stream 1.0.8 - MIT
-https://github.com/felixge/node-combined-stream
-
-Copyright (c) 2011 Debuggable Limited
-
-Copyright (c) 2011 Debuggable Limited
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-concat-map 0.0.1 - MIT
-https://github.com/substack/node-concat-map
-
-
-This software is released under the MIT license:
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-concat-stream 1.6.2 - MIT
-https://github.com/maxogden/concat-stream#readme
-
-Copyright (c) 2013 Max Ogden
-
-The MIT License
-
-Copyright (c) 2013 Max Ogden
-
-Permission is hereby granted, free of charge,
-to any person obtaining a copy of this software and
-associated documentation files (the "Software"), to
-deal in the Software without restriction, including
-without limitation the rights to use, copy, modify,
-merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom
-the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice
-shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
-ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-convert-source-map 1.6.0 - MIT
-https://github.com/thlorenz/convert-source-map
-
-Copyright 2013 Thorsten Lorenz.
-
-Copyright 2013 Thorsten Lorenz.
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-core-js 1.2.7 - MIT
-https://github.com/zloirock/core-js#readme
-
-(c) 2016 Denis Pushkarev
-Copyright (c) 2015 Denis Pushkarev
-
-Copyright (c) 2015 Denis Pushkarev
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-core-js 2.6.9 - MIT
-https://github.com/zloirock/core-js#readme
-
-(c) 2019 Denis Pushkarev
-copyright (c) 2019 Denis Pushkarev
-Copyright (c) 2014-2019 Denis Pushkarev
-
-Copyright (c) 2014-2019 Denis Pushkarev
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-core-util-is 1.0.2 - MIT
-https://github.com/isaacs/core-util-is#readme
-
-Copyright Joyent, Inc. and other Node contributors.
-
-Copyright Node.js contributors. All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to
-deal in the Software without restriction, including without limitation the
-rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-sell copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-crypto-js 3.3.0 - MIT
-http://github.com/brix/crypto-js
-
-(c) 2012 by Cedric Mesnil.
-Copyright (c) 2009-2013 Jeff Mott
-Copyright (c) 2013-2016 Evan Vosberg
-
-# License
-
-[The MIT License (MIT)](http://opensource.org/licenses/MIT)
-
-Copyright (c) 2009-2013 Jeff Mott
-Copyright (c) 2013-2016 Evan Vosberg
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-dashdash 1.14.1 - MIT
-https://github.com/trentm/node-dashdash#readme
-
-Copyright 2016 Trent Mick
-Copyright 2016 Joyent, Inc.
-Copyright (c) 2013 Joyent Inc.
-Copyright (c) 2013 Trent Mick.
-
-# This is the MIT license
-
-Copyright (c) 2013 Trent Mick. All rights reserved.
-Copyright (c) 2013 Joyent Inc. All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-date-format 3.0.0 - MIT
-https://github.com/nomiddlename/date-format#readme
-
-Copyright (c) 2013 Gareth Jones
-
-The MIT License (MIT)
-
-Copyright (c) 2013 Gareth Jones
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-date-format 2.1.0 - MIT
-https://github.com/nomiddlename/date-format#readme
-
-Copyright (c) 2013 Gareth Jones
-
-The MIT License (MIT)
-
-Copyright (c) 2013 Gareth Jones
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-debug 2.6.9 - MIT
-https://github.com/visionmedia/debug#readme
-
-Copyright (c) 2014 TJ Holowaychuk
-Copyright (c) 2014-2016 TJ Holowaychuk
-
-(The MIT License)
-
-Copyright (c) 2014 TJ Holowaychuk
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software
-and associated documentation files (the 'Software'), to deal in the Software without restriction,
-including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial
-portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
-LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-debug 4.1.1 - MIT
-https://github.com/visionmedia/debug#readme
-
-Copyright (c) 2014 TJ Holowaychuk
-Copyright (c) 2014-2017 TJ Holowaychuk
-
-(The MIT License)
-
-Copyright (c) 2014 TJ Holowaychuk
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software
-and associated documentation files (the 'Software'), to deal in the Software without restriction,
-including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial
-portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
-LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-debug 3.1.0 - MIT
-https://github.com/visionmedia/debug#readme
-
-Copyright (c) 2014 TJ Holowaychuk
-Copyright (c) 2014-2017 TJ Holowaychuk
-
-(The MIT License)
-
-Copyright (c) 2014 TJ Holowaychuk
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software
-and associated documentation files (the 'Software'), to deal in the Software without restriction,
-including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial
-portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
-LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-debug 3.2.6 - MIT
-https://github.com/visionmedia/debug#readme
-
-Copyright (c) 2014 TJ Holowaychuk
-Copyright (c) 2014-2017 TJ Holowaychuk
-
-(The MIT License)
-
-Copyright (c) 2014 TJ Holowaychuk
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software
-and associated documentation files (the 'Software'), to deal in the Software without restriction,
-including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial
-portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
-LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-debug 4.1.0 - MIT
-https://github.com/visionmedia/debug#readme
-
-Copyright (c) 2014 TJ Holowaychuk
-Copyright (c) 2014-2017 TJ Holowaychuk
-
-(The MIT License)
-
-Copyright (c) 2014 TJ Holowaychuk
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software
-and associated documentation files (the 'Software'), to deal in the Software without restriction,
-including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial
-portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
-LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-decode-uri-component 0.2.0 - MIT
-https://github.com/samverschueren/decode-uri-component#readme
-
-(c) Sam Verschueren (https://github.com/SamVerschueren)
-Copyright (c) Sam Verschueren
-
-The MIT License (MIT)
-
-Copyright (c) Sam Verschueren (github.com/SamVerschueren)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-decompress-response 3.3.0 - MIT
-https://github.com/sindresorhus/decompress-response#readme
-
-(c) Sindre Sorhus (https://sindresorhus.com)
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-`The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-deep-equal 1.0.1 - MIT
-https://github.com/substack/node-deep-equal#readme
-
-
-This software is released under the MIT license:
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-deep-is 0.1.3 - MIT
-https://github.com/thlorenz/deep-is
-
-Copyright (c) 2009 Thomas Robinson <280north.com>
-Copyright (c) 2012 James Halliday
-Copyright (c) 2012, 2013 Thorsten Lorenz
-
-Copyright (c) 2012, 2013 Thorsten Lorenz
-Copyright (c) 2012 James Halliday
-Copyright (c) 2009 Thomas Robinson <280north.com>
-
-This software is released under the MIT license:
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-defer-to-connect 1.1.3 - MIT
-https://github.com/szmarczak/defer-to-connect#readme
-
-Copyright (c) 2018 Szymon Marczak
-
-MIT License
-
-Copyright (c) 2018 Szymon Marczak
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-delayed-stream 1.0.0 - MIT
-https://github.com/felixge/node-delayed-stream
-
-Copyright (c) 2011 Debuggable Limited
-
-Copyright (c) 2011 Debuggable Limited
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-detect-indent 6.0.0 - MIT
-https://github.com/sindresorhus/detect-indent#readme
-
-(c) Sindre Sorhus (https://sindresorhus.com)
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-MIT License
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-dfa 1.2.0 - MIT
-https://github.com/devongovett/dfa#readme
-
-
-MIT License
-
-Copyright (c)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-diagnostic-channel 0.2.0 - MIT
-https://github.com/Microsoft/node-diagnostic-channel
-
-Copyright (c) Microsoft Corporation.
-
- MIT License
-
- Copyright (c) Microsoft Corporation. All rights reserved.
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-diagnostic-channel-publishers 0.3.4 - MIT
-https://github.com/Microsoft/node-diagnostic-channel
-
-Copyright (c) Microsoft Corporation.
-
- MIT License
-
- Copyright (c) Microsoft Corporation. All rights reserved.
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-diagnostics 1.1.1 - MIT
-https://github.com/bigpipe/diagnostics
-
-Copyright (c) 2015 Arnout Kazemier, Martijn Swaagman
-
-The MIT License (MIT)
-
-Copyright (c) 2015 Arnout Kazemier, Martijn Swaagman, the Contributors.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-dns-packet 5.2.1 - MIT
-https://github.com/mafintosh/dns-packet
-
-Copyright (c) 2016 Mathias Buus
-
-The MIT License (MIT)
-
-Copyright (c) 2016 Mathias Buus
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-dns-socket 4.2.0 - MIT
-https://github.com/mafintosh/dns-socket
-
-Copyright (c) 2016 Mathias Buus
-
-The MIT License (MIT)
-
-Copyright (c) 2016 Mathias Buus
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-ecc-jsbn 0.1.2 - MIT
-https://github.com/quartzjer/ecc-jsbn
-
-Copyright (c) 2003-2005 Tom Wu
-Copyright (c) 2014 Jeremie Miller
-
-The MIT License (MIT)
-
-Copyright (c) 2014 Jeremie Miller
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-enabled 1.0.2 - MIT
-https://github.com/bigpipe/enabled#readme
-
-Copyright (c) 2015 Arnout Kazemier, Martijn Swaagman
-
-The MIT License (MIT)
-
-Copyright (c) 2015 Arnout Kazemier, Martijn Swaagman, the Contributors.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-end-of-stream 1.4.1 - MIT
-https://github.com/mafintosh/end-of-stream
-
-Copyright (c) 2014 Mathias Buus
-
-The MIT License (MIT)
-
-Copyright (c) 2014 Mathias Buus
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-env-variable 0.0.5 - MIT
-https://github.com/3rd-Eden/env-variable
-
-Copyright 2014 Arnout Kazemier
-
-Copyright 2014 Arnout Kazemier
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-es6-iterator 2.0.3 - MIT
-https://github.com/medikoo/es6-iterator#readme
-
-Copyright (c) 2013-2017 Mariusz Nowak (www.medikoo.com)
-
-The MIT License (MIT)
-
-Copyright (C) 2013-2017 Mariusz Nowak (www.medikoo.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-es6-map 0.1.5 - MIT
-https://github.com/medikoo/es6-map#readme
-
-Copyright (c) 2013 Mariusz Nowak (www.medikoo.com)
-
-Copyright (C) 2013 Mariusz Nowak (www.medikoo.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-es6-set 0.1.5 - MIT
-https://github.com/medikoo/es6-set#readme
-
-Copyright (c) 2013 Mariusz Nowak (www.medikoo.com)
-
-Copyright (C) 2013 Mariusz Nowak (www.medikoo.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-es6-symbol 3.1.1 - MIT
-https://github.com/medikoo/es6-symbol#readme
-
-Copyright (c) 2013-2015 Mariusz Nowak (www.medikoo.com)
-
-Copyright (C) 2013-2015 Mariusz Nowak (www.medikoo.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-event-emitter 0.3.5 - MIT
-https://github.com/medikoo/event-emitter#readme
-
-Copyright (c) 2012-2015 Mariusz Nowak (www.medikoo.com)
-
-Copyright (C) 2012-2015 Mariusz Nowak (www.medikoo.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-extend 3.0.2 - MIT
-https://github.com/justmoon/node-extend#readme
-
-Copyright (c) 2014 Stefan Thomas
-
-The MIT License (MIT)
-
-Copyright (c) 2014 Stefan Thomas
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-extsprintf 1.3.0 - MIT
-https://github.com/davepacheco/node-extsprintf
-
-Copyright (c) 2012, Joyent, Inc.
-
-Copyright (c) 2012, Joyent, Inc. All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-falafel 2.2.0 - MIT
-https://github.com/substack/node-falafel#readme
-
-
-MIT License
-
-Copyright (c)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-fast-deep-equal 2.0.1 - MIT
-https://github.com/epoberezkin/fast-deep-equal#readme
-
-Copyright (c) 2017 Evgeny Poberezkin
-
-MIT License
-
-Copyright (c) 2017 Evgeny Poberezkin
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-fast-json-stable-stringify 2.0.0 - MIT
-https://github.com/epoberezkin/fast-json-stable-stringify
-
-
-This software is released under the MIT license:
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-fast-levenshtein 2.0.6 - MIT
-https://github.com/hiddentao/fast-levenshtein#readme
-
-Copyright (c) 2013 Ramesh Nair (http://www.hiddentao.com/)
-
-(MIT License)
-
-Copyright (c) 2013 [Ramesh Nair](http://www.hiddentao.com/)
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-fast-safe-stringify 2.0.6 - MIT
-https://github.com/davidmarkclements/fast-safe-stringify#readme
-
-Copyright (c) 2016 David Mark Clements
-Copyright (c) 2017 David Mark Clements & Matteo Collina
-Copyright (c) 2018 David Mark Clements, Matteo Collina & Ruben Bridgewater
-
-The MIT License (MIT)
-
-Copyright (c) 2016 David Mark Clements
-Copyright (c) 2017 David Mark Clements & Matteo Collina
-Copyright (c) 2018 David Mark Clements, Matteo Collina & Ruben Bridgewater
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-fecha 2.3.3 - MIT
-https://github.com/taylorhakes/fecha
-
-Copyright (c) 2015 Taylor Hakes
-
-The MIT License (MIT)
-
-Copyright (c) 2015 Taylor Hakes
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-follow-redirects 1.5.10 - MIT
-https://github.com/follow-redirects/follow-redirects
-
-Copyright 2014-present Olivier Lalonde , James Talmage , Ruben Verborgh
-
-Copyright 2014–present Olivier Lalonde , James Talmage , Ruben Verborgh
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
-IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-fontkit 1.8.0 - MIT
-
-
-
-MIT License
-
-Copyright (c)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-foreach 2.0.5 - MIT
-https://github.com/manuelstofer/foreach
-
-Copyright (c) 2013 Manuel Stofer
-
-The MIT License
-
-Copyright (c) 2013 Manuel Stofer
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-form-data 2.3.3 - MIT
-https://github.com/form-data/form-data#readme
-
-Copyright (c) 2012 Felix Geisendorfer (felix@debuggable.com) and contributors
-
-Copyright (c) 2012 Felix Geisendörfer (felix@debuggable.com) and contributors
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-from2 2.3.0 - MIT
-https://github.com/hughsk/from2
-
-Copyright (c) 2014 Hugh Kennedy
-
-## The MIT License (MIT) ##
-
-Copyright (c) 2014 Hugh Kennedy
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-fs-extra 4.0.3 - MIT
-https://github.com/jprichardson/node-fs-extra
-
-Copyright (c) 2011-2017 JP Richardson
-Copyright (c) 2011-2017 JP Richardson (https://github.com/jprichardson)
-Copyright (c) 2014-2016 Jonathan Ong me@jongleberry.com and Contributors
-
-(The MIT License)
-
-Copyright (c) 2011-2017 JP Richardson
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files
-(the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify,
- merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
-WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
-OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-fs-extra 8.1.0 - MIT
-https://github.com/jprichardson/node-fs-extra
-
-Copyright (c) 2011-2017 JP Richardson
-Copyright (c) 2011-2017 JP Richardson (https://github.com/jprichardson)
-Copyright (c) 2014-2016 Jonathan Ong me@jongleberry.com and Contributors
-
-(The MIT License)
-
-Copyright (c) 2011-2017 JP Richardson
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files
-(the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify,
- merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
-WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
-OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-function-bind 1.1.1 - MIT
-https://github.com/Raynos/function-bind
-
-Copyright (c) 2013 Raynos.
-
-Copyright (c) 2013 Raynos.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-future 0.18.2 - MIT
-
-
-Copyright 2006 Google, Inc.
-Copyright 2013 by the Jinja team
-Copyright (c) 2013 - Damian Avila
-Copyright 2008 by Armin Ronacher.
-Copyright (c) 2000 Bastian Kleineidam
-Copyright (c) 2010 by Armin Ronacher.
-Copyright (c) 1999-2002 by Fredrik Lundh.
-Copyright (c) 1999-2002 by Secret Labs AB.
-Copyright 2013-2019 Python Charmers Pty Ltd
-copyright u'2013-2019, Python Charmers Pty Ltd
-Copyright (c) 2013-2019 Python Charmers Pty Ltd
-Copyright (c) 2001-2006 Python Software Foundation
-Copyright (c) 2001-2007 Python Software Foundation
-Copyright (c) 2001-2010 Python Software Foundation
-Copyright (c) 2002-2006 Python Software Foundation
-Copyright (c) 2002-2007 Python Software Foundation
-Copyright (c) 2004-2006 Python Software Foundation
-Copyright 2000 by Timothy O'Malley
-Copyright 2011 by Armin Ronacher. :license Flask Design License
-Copyright (c) 2000 Luke Kenneth Casson Leighton
-Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Python Software Foundation.
-
-Copyright (c) 2013-2019 Python Charmers Pty Ltd, Australia
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
-Copyright (c) 2010 by Armin Ronacher.
-
-Some rights reserved.
-
-Redistribution and use in source and binary forms of the theme, with or
-without modification, are permitted provided that the following conditions
-are met:
-
-* Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
-
-* The names of the contributors may not be used to endorse or
- promote products derived from this software without specific
- prior written permission.
-
-We kindly ask you to only use these themes in an unmodified manner just
-for Flask and Flask-related products, not for unrelated projects. If you
-like the visual style and want to use it for your own projects, please
-consider making some larger changes to the themes (such as changing
-font faces, sizes, colors or margins).
-
-THIS THEME IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS THEME, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-fuzzy 0.1.3 - MIT
-https://github.com/mattyork/fuzzy
-
-Copyright (c) 2012 Matt York
-Copyright (c) 2015 Matt York
-
-Copyright (c) 2012 Matt York
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-getpass 0.1.7 - MIT
-https://github.com/arekinath/node-getpass#readme
-
-Copyright Joyent, Inc.
-Copyright 2016, Joyent, Inc.
-
-Copyright Joyent, Inc. All rights reserved.
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to
-deal in the Software without restriction, including without limitation the
-rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-sell copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-get-port 3.2.0 - MIT
-https://github.com/sindresorhus/get-port#readme
-
-(c) Sindre Sorhus (https://sindresorhus.com)
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-MIT License
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-get-stream 3.0.0 - MIT
-https://github.com/sindresorhus/get-stream#readme
-
-(c) Sindre Sorhus (https://sindresorhus.com)
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-get-stream 4.1.0 - MIT
-https://github.com/sindresorhus/get-stream#readme
-
-(c) Sindre Sorhus (https://sindresorhus.com)
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-MIT License
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-get-stream 5.1.0 - MIT
-https://github.com/sindresorhus/get-stream#readme
-
-(c) Sindre Sorhus (https://sindresorhus.com)
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-MIT License
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-got 8.3.2 - MIT
-https://github.com/sindresorhus/got#readme
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-MIT License
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-got 9.6.0 - MIT
-https://github.com/sindresorhus/got#readme
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-MIT License
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-har-validator 5.1.3 - MIT
-https://github.com/ahmadnassri/node-har-validator
-
-Copyright (c) 2018 Ahmad Nassri
-
-MIT License
-
-Copyright (c) 2018 Ahmad Nassri
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-has 1.0.3 - MIT
-https://github.com/tarruda/has
-
-Copyright (c) 2013 Thiago de Arruda
-
-Copyright (c) 2013 Thiago de Arruda
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-hash.js 1.1.7 - MIT
-https://github.com/indutny/hash.js
-
-Copyright Fedor Indutny, 2014.
-
-MIT License
-
-Copyright (c)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-hash-base 3.0.4 - MIT
-https://github.com/crypto-browserify/hash-base
-
-Copyright (c) 2016 Kirill Fomichev
-
-The MIT License (MIT)
-
-Copyright (c) 2016 Kirill Fomichev
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-has-symbol-support-x 1.4.2 - MIT
-https://github.com/Xotic750/has-symbol-support-x
-
-Copyright (c) 2015-present
-Copyright (c) 2015-present Graham Fairweather.
-
-https://opensource.org/licenses/MIT
-
-Copyright (c) 2015-present Graham Fairweather.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-has-to-string-tag-x 1.4.1 - MIT
-https://github.com/Xotic750/has-to-string-tag-x
-
-Copyright (c) 2015-2017
-Copyright (c) 2015-2017 Graham Fairweather.
-
-https://opensource.org/licenses/MIT
-
-Copyright (c) 2015-2017 Graham Fairweather.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-http-signature 1.2.0 - MIT
-https://github.com/joyent/node-http-signature/
-
-Copyright Joyent, Inc.
-Copyright 2012 Joyent, Inc.
-Copyright 2015 Joyent, Inc.
-Copyright (c) 2011 Joyent, Inc.
-
-Copyright Joyent, Inc. All rights reserved.
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to
-deal in the Software without restriction, including without limitation the
-rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-sell copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-iconv-lite 0.4.24 - MIT
-https://github.com/ashtuchkin/iconv-lite
-
-Copyright (c) Microsoft Corporation.
-Copyright (c) 2011 Alexander Shtuchkin
-
-Copyright (c) 2011 Alexander Shtuchkin
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-immutable 4.0.0-rc.12 - MIT
-https://facebook.github.com/immutable-js
-
-Copyright (c) 2014-present, Facebook, Inc.
-
-MIT License
-
-Copyright (c) 2014-present, Facebook, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-indent-string 4.0.0 - MIT
-https://github.com/sindresorhus/indent-string#readme
-
-(c) Sindre Sorhus (https://sindresorhus.com)
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-MIT License
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-into-stream 3.1.0 - MIT
-https://github.com/sindresorhus/into-stream#readme
-
-(c) Sindre Sorhus (https://sindresorhus.com)
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-inversify 4.13.0 - MIT
-http://inversify.io/
-
-Copyright (c) 2015-2017 Remo H. Jansen
-Copyright (c) 2015-2017 Remo H. Jansen (http://www.remojansen.com)
-
-The MIT License (MIT)
-
-Copyright (c) 2015-2017 Remo H. Jansen
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-ip 1.1.5 - MIT
-https://github.com/indutny/node-ip
-
-Copyright Fedor Indutny, 2012.
-
-MIT License
-
-Copyright (c)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-ip-regex 2.1.0 - MIT
-https://github.com/sindresorhus/ip-regex#readme
-
-(c) Sindre Sorhus (https://sindresorhus.com)
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-ip-regex 4.1.0 - MIT
-https://github.com/sindresorhus/ip-regex#readme
-
-(c) Sindre Sorhus (https://sindresorhus.com)
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-MIT License
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-is2 2.0.1 - MIT
-http://github.com/stdarg/is2
-
-Copyright (c) 2011 Enrico Marino
-Copyright (c) 2013 Edmond Meinfelder
-Copyright (c) 2013,2014 Edmond Meinfelder
-Copyright (c) 2011 Enrico Marino
-Copyright (c) 2013,2014 Edmond Meinfelder
-
-The MIT License (MIT)
-
-Copyright (c) 2013 Edmond Meinfelder
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-isarray 1.0.0 - MIT
-https://github.com/juliangruber/isarray
-
-Copyright (c) 2013 Julian Gruber
-
-MIT License
-
-Copyright (c)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-isarray 0.0.1 - MIT
-https://github.com/juliangruber/isarray
-
-Copyright (c) 2013 Julian Gruber
-
-MIT License
-
-Copyright (c)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-is-arrayish 0.3.2 - MIT
-https://github.com/qix-/node-is-arrayish#readme
-
-Copyright (c) 2015 JD Ballard
-
-The MIT License (MIT)
-
-Copyright (c) 2015 JD Ballard
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-is-buffer 1.1.6 - MIT
-https://github.com/feross/is-buffer#readme
-
-Copyright (c) Feross Aboukhadijeh
-Copyright (c) Feross Aboukhadijeh (http://feross.org).
-
-The MIT License (MIT)
-
-Copyright (c) Feross Aboukhadijeh
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
----------------------------------------------------------
-
----------------------------------------------------------
-
-is-ip 2.0.0 - MIT
-https://github.com/sindresorhus/is-ip#readme
-
-(c) Sindre Sorhus (https://sindresorhus.com)
-Copyright (c) Sindre Sorhus