From ad3755d4bf268aaa1887397e4a79f5208eb60cd6 Mon Sep 17 00:00:00 2001 From: Sahil Manoj Bhatt Date: Wed, 30 Oct 2024 16:30:09 +0530 Subject: [PATCH 1/5] Initial commit for ANTV2 --- Tasks/ANTV2/README.md | 31 + .../resources.resjson/de-DE/resources.resjson | 47 + .../resources.resjson/en-US/resources.resjson | 47 + .../resources.resjson/es-ES/resources.resjson | 47 + .../resources.resjson/fr-FR/resources.resjson | 47 + .../resources.resjson/it-IT/resources.resjson | 47 + .../resources.resjson/ja-JP/resources.resjson | 47 + .../resources.resjson/ko-KR/resources.resjson | 47 + .../resources.resjson/ru-RU/resources.resjson | 47 + .../resources.resjson/zh-CN/resources.resjson | 47 + .../resources.resjson/zh-TW/resources.resjson | 47 + Tasks/ANTV2/Tests/.npmrc | 3 + Tasks/ANTV2/Tests/L0.ts | 154 ++ Tasks/ANTV2/Tests/L0AllInputs.ts | 15 + Tasks/ANTV2/Tests/L0AntHomeNotSet.ts | 17 + Tasks/ANTV2/Tests/L0FailWithValidInputs.ts | 15 + Tasks/ANTV2/Tests/L0FailedBuilds.ts | 18 + Tasks/ANTV2/Tests/L0InvalidUserHomePath.ts | 16 + Tasks/ANTV2/Tests/L0JDKSetTo5.ts | 16 + Tasks/ANTV2/Tests/L0JDKSetTo8.ts | 19 + Tasks/ANTV2/Tests/L0MissingAntBuildFile.ts | 14 + .../ANTV2/Tests/L0MissingJavaHomeSelection.ts | 14 + .../ANTV2/Tests/L0MissingTestResultsFiles.ts | 14 + Tasks/ANTV2/Tests/L0NoMatchingTestResults.ts | 17 + Tasks/ANTV2/Tests/L0PublishTestResults.ts | 19 + .../Tests/L0RunWithAntHomeUserInputPath.ts | 16 + Tasks/ANTV2/Tests/answers.ts | 160 ++ Tasks/ANTV2/Tests/package-lock.json | 14 + Tasks/ANTV2/Tests/package.json | 22 + Tasks/ANTV2/ThirdPartyNotice.txt | 1935 +++++++++++++++++ Tasks/ANTV2/_buildConfigs/Node20/.npmrc | 3 + Tasks/ANTV2/_buildConfigs/Node20/Tests/.npmrc | 3 + .../Node20/Tests/package-lock.json | 22 + .../_buildConfigs/Node20/Tests/package.json | 22 + .../_buildConfigs/Node20/package-lock.json | 1102 ++++++++++ Tasks/ANTV2/_buildConfigs/Node20/package.json | 20 + Tasks/ANTV2/anttask.ts | 291 +++ Tasks/ANTV2/icon.png | Bin 0 -> 1166 bytes Tasks/ANTV2/icon.svg | 81 + Tasks/ANTV2/make.json | 12 + Tasks/ANTV2/package-lock.json | 862 ++++++++ Tasks/ANTV2/package.json | 20 + Tasks/ANTV2/task.json | 270 +++ Tasks/ANTV2/task.loc.json | 270 +++ Tasks/ANTV2/tsconfig.json | 9 + 45 files changed, 5986 insertions(+) create mode 100644 Tasks/ANTV2/README.md create mode 100644 Tasks/ANTV2/Strings/resources.resjson/de-DE/resources.resjson create mode 100644 Tasks/ANTV2/Strings/resources.resjson/en-US/resources.resjson create mode 100644 Tasks/ANTV2/Strings/resources.resjson/es-ES/resources.resjson create mode 100644 Tasks/ANTV2/Strings/resources.resjson/fr-FR/resources.resjson create mode 100644 Tasks/ANTV2/Strings/resources.resjson/it-IT/resources.resjson create mode 100644 Tasks/ANTV2/Strings/resources.resjson/ja-JP/resources.resjson create mode 100644 Tasks/ANTV2/Strings/resources.resjson/ko-KR/resources.resjson create mode 100644 Tasks/ANTV2/Strings/resources.resjson/ru-RU/resources.resjson create mode 100644 Tasks/ANTV2/Strings/resources.resjson/zh-CN/resources.resjson create mode 100644 Tasks/ANTV2/Strings/resources.resjson/zh-TW/resources.resjson create mode 100644 Tasks/ANTV2/Tests/.npmrc create mode 100644 Tasks/ANTV2/Tests/L0.ts create mode 100644 Tasks/ANTV2/Tests/L0AllInputs.ts create mode 100644 Tasks/ANTV2/Tests/L0AntHomeNotSet.ts create mode 100644 Tasks/ANTV2/Tests/L0FailWithValidInputs.ts create mode 100644 Tasks/ANTV2/Tests/L0FailedBuilds.ts create mode 100644 Tasks/ANTV2/Tests/L0InvalidUserHomePath.ts create mode 100644 Tasks/ANTV2/Tests/L0JDKSetTo5.ts create mode 100644 Tasks/ANTV2/Tests/L0JDKSetTo8.ts create mode 100644 Tasks/ANTV2/Tests/L0MissingAntBuildFile.ts create mode 100644 Tasks/ANTV2/Tests/L0MissingJavaHomeSelection.ts create mode 100644 Tasks/ANTV2/Tests/L0MissingTestResultsFiles.ts create mode 100644 Tasks/ANTV2/Tests/L0NoMatchingTestResults.ts create mode 100644 Tasks/ANTV2/Tests/L0PublishTestResults.ts create mode 100644 Tasks/ANTV2/Tests/L0RunWithAntHomeUserInputPath.ts create mode 100644 Tasks/ANTV2/Tests/answers.ts create mode 100644 Tasks/ANTV2/Tests/package-lock.json create mode 100644 Tasks/ANTV2/Tests/package.json create mode 100644 Tasks/ANTV2/ThirdPartyNotice.txt create mode 100644 Tasks/ANTV2/_buildConfigs/Node20/.npmrc create mode 100644 Tasks/ANTV2/_buildConfigs/Node20/Tests/.npmrc create mode 100644 Tasks/ANTV2/_buildConfigs/Node20/Tests/package-lock.json create mode 100644 Tasks/ANTV2/_buildConfigs/Node20/Tests/package.json create mode 100644 Tasks/ANTV2/_buildConfigs/Node20/package-lock.json create mode 100644 Tasks/ANTV2/_buildConfigs/Node20/package.json create mode 100644 Tasks/ANTV2/anttask.ts create mode 100644 Tasks/ANTV2/icon.png create mode 100644 Tasks/ANTV2/icon.svg create mode 100644 Tasks/ANTV2/make.json create mode 100644 Tasks/ANTV2/package-lock.json create mode 100644 Tasks/ANTV2/package.json create mode 100644 Tasks/ANTV2/task.json create mode 100644 Tasks/ANTV2/task.loc.json create mode 100644 Tasks/ANTV2/tsconfig.json diff --git a/Tasks/ANTV2/README.md b/Tasks/ANTV2/README.md new file mode 100644 index 000000000000..8063be7bb416 --- /dev/null +++ b/Tasks/ANTV2/README.md @@ -0,0 +1,31 @@ +# Build your code using Ant in Azure Pipelines + +### Parameters for Ant build task are explained below + +- **Ant Build File :** This is a Required field. Provide relative path from the repository root to the Ant build file. To know more [click here](https://ant.apache.org/manual/using.html#buildfile) + +- **Options :** Provide any options to pass to the Ant command line. You can provide your own properties (for example, `-DmyProperty=myPropertyValue`) and also use built-in variables (for example, `-DcollectionId=$(system.collectionId)`). Alternatively, the built-in variables are already set as environment variables during the build and can be passed directly (for example, `-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%)` To know more [click here](https://ant.apache.org/manual/running.html#options) + +- **Target(s) :** Provide The task(s) for Ant to execute for this build. To know more [click here](https://ant.apache.org/manual/targets.html#targets) + +#### JUnit Test Results +Use the next three options to manage your JUnit test results in Azure Pipelines + +- **Publish to Azure Pipelines/TFS :** Select this option to publish JUnit Test results produced by the Ant build to Azure Pipelines/TFS. Each test result file matching `Test Results Files` will be published as a test run in Azure Pipelines. + +- **Test Results Files :** This option will appear if you select the above option. Here, provide Test results files path. Wildcards can be used. For example, `**/TEST-*.xml` for all xml files whose name starts with `TEST-."` + +- **Test Run Title :** This option will appear if you select the `Publish to Azure Pipelines/TFS` option. Here provide a name for the Test Run + +#### Advanced +Use the next options to manage your `ANT_HOME` and `JAVA_HOME` attributes + +- **Set ANT_HOME Path :** If set, overrides any existing `ANT_HOME` environment variable with the given path. + +- **Set JAVA_HOME by :** Select to set `JAVA_HOME` either by providing a path or let Azure Pipelines set the `JAVA_HOME` based on JDK version choosen. By default it is set to `JDK Version` + +- **JDK Version/Path :** Here provide the PATH to `JAVA_HOME` if you want to set it by path or select the appropriate JDK version. + +- **JDK Architecture :** Select the approriate JDK Architecture. By default it is set to `x86` + +**We are discontinuing the support of automated Code Coverage report generation for Ant projects starting Sprint 107 deployment of Azure Pipelines and for Team Foundation Server “15”. Please enable Code Coverage in your Ant build.xml file manually.** diff --git a/Tasks/ANTV2/Strings/resources.resjson/de-DE/resources.resjson b/Tasks/ANTV2/Strings/resources.resjson/de-DE/resources.resjson new file mode 100644 index 000000000000..fdaeec624e2e --- /dev/null +++ b/Tasks/ANTV2/Strings/resources.resjson/de-DE/resources.resjson @@ -0,0 +1,47 @@ +{ + "loc.friendlyName": "Ant", + "loc.helpMarkDown": "[Weitere Informationen zu dieser Aufgabe](https://go.microsoft.com/fwlink/?LinkID=613718) oder [Ant-Dokumentation anzeigen](http://ant.apache.org/)", + "loc.description": "Mit Apache Ant erstellen", + "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", + "loc.group.displayName.junitTestResults": "JUnit-Testergebnisse", + "loc.group.displayName.codeCoverage": "Code Coverage", + "loc.group.displayName.advanced": "Erweitert", + "loc.input.label.antBuildFile": "Ant-Builddatei", + "loc.input.help.antBuildFile": "Der relative Pfad vom Repositorystamm zur Ant-Builddatei.", + "loc.input.label.options": "Optionen", + "loc.input.help.options": "Geben Sie die Optionen an, die an die Ant-Befehlszeile übergeben werden sollen. Sie können Ihre eigenen Eigenschaften angeben (z. B. \"***-DmyProperty=meinEigenschaftenWert***\") und auch integrierte Variablen verwenden (z. B. \"***-DcollectionId=$(system.collectionId)***\"). Alternativ werden die integrierten Variablen bereits als Umgebungsvariablen während des Builds festgelegt und können direkt übergeben werden (z. B. \"***-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%***\").", + "loc.input.label.targets": "Ziel(e)", + "loc.input.help.targets": "Eine optionale, durch Leerzeichen getrennte Liste der zu erstellenden Ziele. Wenn keine Angabe erfolgt, wird das \"Standardziel\" verwendet. Wenn kein \"Standardziel\" definiert ist, wird Ant 1.6.0 verwendet, und alle Tasks auf oberster Ebene werden später erstellt.", + "loc.input.label.publishJUnitResults": "In Azure Pipelines veröffentlichen", + "loc.input.help.publishJUnitResults": "Wählen Sie diese Option aus, um vom Ant-Build generierte JUnit-Testergebnisse in Azure Pipelines zu veröffentlichen. Jede Testergebnisdatei, die mit \"Testergebnisdateien\" übereinstimmt, wird als Testlauf in Azure Pipelines veröffentlicht.", + "loc.input.label.testResultsFiles": "Testergebnisdateien", + "loc.input.help.testResultsFiles": "Pfad der Testergebnisdateien. Platzhalter können verwendet werden ([weitere Informationen](https://go.microsoft.com/fwlink/?linkid=856077)). Beispiel: \"**/TEST-*.xml\" für alle XML-Dateien, deren Name mit \"TEST-\" beginnt.", + "loc.input.label.testRunTitle": "Testlauftitel", + "loc.input.help.testRunTitle": "Geben Sie einen Namen für den Testlauf an.", + "loc.input.label.codeCoverageTool": "Code Coverage-Tool", + "loc.input.help.codeCoverageTool": "Wählen Sie das Code Coverage-Tool aus. Verwenden Sie den Link \"Weitere Informationen\" unten, um Support zum lokalen Agent zu erhalten.", + "loc.input.label.classFilesDirectories": "Klassendateiverzeichnisse", + "loc.input.help.classFilesDirectories": "Eine durch Kommas getrennte Liste der relativen Pfade von der Ant-Builddatei zu den Verzeichnissen, die Klassendateien und Archivdateien (JAR-, WAR-Dateien usw.) enthalten. Code Coverage wird für Klassendateien in diesen Verzeichnissen gemeldet, z. B. \"target/classes\", \"target/testClasses\".", + "loc.input.label.classFilter": "Filter für den Klasseneinschluss/-ausschluss", + "loc.input.help.classFilter": "Eine durch Kommas getrennte Liste der Filter, um Klassen in die Erfassung von Code Coverage ein- oder von dieser auszuschließen, z. B. \"+:com.*\", \"+:org.*\", \"-:my.app*.*\".", + "loc.input.label.srcDirectories": "Quelldateiverzeichnisse", + "loc.input.help.srcDirectories": "Eine durch Kommas getrennte Liste der relativen Pfade von der Ant-Builddatei zu den Quellcodeverzeichnissen. Code Coverage-Berichte verwenden diese, um Quellcode hervorzuheben, z. B. \"src/java\", \"src/Test\".", + "loc.input.label.failIfCoverageEmpty": "Fehler, wenn die Code Coverage-Ergebnisse fehlen", + "loc.input.help.failIfCoverageEmpty": "Buildfehler, wenn Code Coverage keine zu veröffentlichenden Ergebnisse ergeben hat.", + "loc.input.label.antHomeUserInputPath": "ANT_HOME-Pfad festlegen", + "loc.input.help.antHomeUserInputPath": "Wenn festgelegt, werden alle vorhandenen ANT_HOME-Umgebungsvariablen mit dem angegebenen Pfad überschrieben.", + "loc.input.label.javaHomeSelection": "JAVA_HOME festlegen durch", + "loc.input.help.javaHomeSelection": "Legt JAVA_HOME durch Auswählen einer JDK-Version fest, die während der Erstellung von Builds oder durch manuelles Eingeben eines JDK-Pfads ermittelt wird.", + "loc.input.label.jdkVersion": "JDK-Version", + "loc.input.help.jdkVersion": "Versucht, den Pfad zur ausgewählten JDK-Version zu ermitteln und JAVA_HOME entsprechend festzulegen.", + "loc.input.label.jdkUserInputPath": "JDK-Pfad", + "loc.input.help.jdkUserInputPath": "Legt JAVA_HOME auf den angegebenen Pfad fest.", + "loc.input.label.jdkArchitecture": "JDK-Architektur", + "loc.input.help.jdkArchitecture": "Geben Sie optional die JDK-Architektur an (x86, x64).", + "loc.messages.LocateJVMBasedOnVersionAndArch": "JAVA_HOME für Java %s %s finden", + "loc.messages.UnsupportedJdkWarning": "JDK 9 und JDK 10 werden nicht unterstützt. Wechseln Sie in Ihrem Projekt und Ihrer Pipeline zu einer neueren Version. Es wird versucht, die Erstellung mit JDK 11 durchzuführen...", + "loc.messages.FailedToLocateSpecifiedJVM": "Die angegebene JDK-Version wurde nicht gefunden. Stellen Sie sicher, dass die angegebene JDK-Version auf dem Agent installiert und die Umgebungsvariable \"%s\" vorhanden und auf den Speicherort eines entsprechenden JDK festgelegt ist. Sie können auch die Aufgabe [Installer für Java-Tools](https://go.microsoft.com/fwlink/?linkid=875287) verwenden, um das gewünschte JDK zu installieren.", + "loc.messages.DiscontinueAntCodeCoverage": "Die Unterstützung der automatisierten Code Coverage-Berichterstellung für Ant-Projekte wird eingestellt. Weitere Informationen erhalten Sie unter https://go.microsoft.com/fwlink/?linkid=875306.", + "loc.messages.NoCodeCoverage": "Keine Code Coverage-Ergebnisse zum Veröffentlichen gefunden.", + "loc.messages.NoTestResults": "Es wurden keine Testergebnisdateien gefunden, die mit %s übereinstimmen. Das Veröffentlichen von JUnit-Testergebnissen wird daher übersprungen." +} \ No newline at end of file diff --git a/Tasks/ANTV2/Strings/resources.resjson/en-US/resources.resjson b/Tasks/ANTV2/Strings/resources.resjson/en-US/resources.resjson new file mode 100644 index 000000000000..3aeb5196f2f5 --- /dev/null +++ b/Tasks/ANTV2/Strings/resources.resjson/en-US/resources.resjson @@ -0,0 +1,47 @@ +{ + "loc.friendlyName": "Ant", + "loc.helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?LinkID=613718) or [see the Ant documentation](http://ant.apache.org/)", + "loc.description": "Build with Apache Ant", + "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", + "loc.group.displayName.junitTestResults": "JUnit Test Results", + "loc.group.displayName.codeCoverage": "Code Coverage", + "loc.group.displayName.advanced": "Advanced", + "loc.input.label.antBuildFile": "Ant build file", + "loc.input.help.antBuildFile": "Relative path from the repository root to the Ant build file.", + "loc.input.label.options": "Options", + "loc.input.help.options": "Provide any options to pass to the Ant command line. You can provide your own properties (for example, ***-DmyProperty=myPropertyValue***) and also use built-in variables (for example, ***-DcollectionId=$(system.collectionId)***). Alternatively, the built-in variables are already set as environment variables during the build and can be passed directly (for example, ***-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%***).", + "loc.input.label.targets": "Target(s)", + "loc.input.help.targets": "An optional, space-separated list of targets to build. If not specified, the `default` target will be used. If no `default` target is defined, Ant 1.6.0 and later will build all top-level tasks.", + "loc.input.label.publishJUnitResults": "Publish to Azure Pipelines", + "loc.input.help.publishJUnitResults": "Select this option to publish JUnit test results produced by the Ant build to Azure Pipelines. Each test results file matching `Test Results Files` will be published as a test run in Azure Pipelines.", + "loc.input.label.testResultsFiles": "Test results files", + "loc.input.help.testResultsFiles": "Test results files path. Wildcards can be used ([more information](https://go.microsoft.com/fwlink/?linkid=856077)). For example, `**/TEST-*.xml` for all XML files whose name starts with TEST-.", + "loc.input.label.testRunTitle": "Test run title", + "loc.input.help.testRunTitle": "Provide a name for the test run.", + "loc.input.label.codeCoverageTool": "Code coverage tool", + "loc.input.help.codeCoverageTool": "Select the code coverage tool. For on-premises agent support, refer to the `More Information` link below.", + "loc.input.label.classFilesDirectories": "Class files directories", + "loc.input.help.classFilesDirectories": "Comma-separated list of relative paths from the Ant build file to directories containing class files and archive files (JAR, WAR, etc.). Code coverage is reported for class files in these directories. For example: target/classes,target/testClasses.", + "loc.input.label.classFilter": "Class inclusion/exclusion filters", + "loc.input.help.classFilter": "Comma-separated list of filters to include or exclude classes from collecting code coverage. For example: +:com.*,+:org.*,-:my.app*.*.", + "loc.input.label.srcDirectories": "Source files directories", + "loc.input.help.srcDirectories": "Comma-separated list of relative paths from the Ant build file to source code directories. Code coverage reports will use these to highlight source code. For example: src/java,src/Test.", + "loc.input.label.failIfCoverageEmpty": "Fail when code coverage results are missing", + "loc.input.help.failIfCoverageEmpty": "Fail the build if code coverage did not produce any results to publish.", + "loc.input.label.antHomeUserInputPath": "Set ANT_HOME path", + "loc.input.help.antHomeUserInputPath": "If set, overrides any existing ANT_HOME environment variable with the given path.", + "loc.input.label.javaHomeSelection": "Set JAVA_HOME by", + "loc.input.help.javaHomeSelection": "Sets JAVA_HOME either by selecting a JDK version that will be discovered during builds or by manually entering a JDK path.", + "loc.input.label.jdkVersion": "JDK version", + "loc.input.help.jdkVersion": "Will attempt to discover the path to the selected JDK version and set JAVA_HOME accordingly.", + "loc.input.label.jdkUserInputPath": "JDK path", + "loc.input.help.jdkUserInputPath": "Sets JAVA_HOME to the given path.", + "loc.input.label.jdkArchitecture": "JDK architecture", + "loc.input.help.jdkArchitecture": "Optionally supply the architecture (x86, x64) of the JDK.", + "loc.messages.LocateJVMBasedOnVersionAndArch": "Locate JAVA_HOME for Java %s %s", + "loc.messages.UnsupportedJdkWarning": "JDK 9 and JDK 10 are out of support. Please switch to a later version in your project and pipeline. Attempting to build with JDK 11...", + "loc.messages.FailedToLocateSpecifiedJVM": "Failed to find the specified JDK version. Please ensure the specified JDK version is installed on the agent and the environment variable '%s' exists and is set to the location of a corresponding JDK or use the [Java Tool Installer](https://go.microsoft.com/fwlink/?linkid=875287) task to install the desired JDK.", + "loc.messages.DiscontinueAntCodeCoverage": "We are discontinuing the support of automated code coverage report generation for Ant projects. Please refer to https://go.microsoft.com/fwlink/?linkid=875306 for more details.", + "loc.messages.NoCodeCoverage": "No code coverage results were found to publish.", + "loc.messages.NoTestResults": "No test result files matching %s were found, so publishing JUnit test results is being skipped." +} \ No newline at end of file diff --git a/Tasks/ANTV2/Strings/resources.resjson/es-ES/resources.resjson b/Tasks/ANTV2/Strings/resources.resjson/es-ES/resources.resjson new file mode 100644 index 000000000000..f86e065e2355 --- /dev/null +++ b/Tasks/ANTV2/Strings/resources.resjson/es-ES/resources.resjson @@ -0,0 +1,47 @@ +{ + "loc.friendlyName": "Ant", + "loc.helpMarkDown": "[Obtener más información acerca de esta tarea](https://go.microsoft.com/fwlink/?LinkID=613718) o [consultar la documentación de Ant](http://ant.apache.org/)", + "loc.description": "Compilar con Apache Ant", + "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", + "loc.group.displayName.junitTestResults": "Resultados de pruebas JUnit", + "loc.group.displayName.codeCoverage": "Cobertura de código", + "loc.group.displayName.advanced": "Avanzado", + "loc.input.label.antBuildFile": "Archivo de compilación de Ant", + "loc.input.help.antBuildFile": "Ruta de acceso relativa de la raíz del repositorio al archivo de compilación de Ant.", + "loc.input.label.options": "Opciones", + "loc.input.help.options": "Proporcione las opciones que se van a pasar a la línea de comandos de Ant. Puede proporcionar sus propiedades (por ejemplo, ***-DmyProperty=myPropertyValue***) y también usar variables integradas (por ejemplo, ***-DcollectionId=$(system.collectionId)***). Puede que las variables integradas ya se hayan establecido como variables de entorno durante la compilación y se puedan pasar directamente (por ejemplo, ***-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%***).", + "loc.input.label.targets": "Destinos", + "loc.input.help.targets": "Una lista opcional y separada por espacios de los destinos que se van a compilar. Si no se especifica, se usará el destino \"predeterminado\". Si no se define ningún destino \"predeterminado\", Ant 1.6.0 y las versiones posteriores compilarán todas las tareas de nivel superior.", + "loc.input.label.publishJUnitResults": "Publicar en Azure Pipelines", + "loc.input.help.publishJUnitResults": "Seleccione esta opción para publicar los resultados de pruebas JUnit generados por la compilación de Ant en Azure Pipelines. Cada archivo de resultados de pruebas que coincida con \"Archivos de resultados de pruebas\" se publicará como una serie de pruebas en Azure Pipelines.", + "loc.input.label.testResultsFiles": "Archivos de resultados de pruebas", + "loc.input.help.testResultsFiles": "Ruta de acceso de los archivos de resultados de pruebas. Puede usar caracteres comodín ([más información](https://go.microsoft.com/fwlink/?linkid=856077)). Por ejemplo, \"**\\*TEST-*.xml\" para todos los archivos XML cuyos nombres empiecen por TEST-.", + "loc.input.label.testRunTitle": "Título de la serie de pruebas", + "loc.input.help.testRunTitle": "Asigne un nombre a la serie de pruebas.", + "loc.input.label.codeCoverageTool": "Herramienta de cobertura de código", + "loc.input.help.codeCoverageTool": "Seleccione la herramienta de cobertura de código. Para el soporte técnico del agente local, consulte el vínculo siguiente \"Más información\".", + "loc.input.label.classFilesDirectories": "Directorios de archivos de clase", + "loc.input.help.classFilesDirectories": "Lista separada por comas de las rutas de acceso relativas desde el archivo de compilación de Ant a los directorios que contienen archivos de clase y archivos de almacenamiento (JAR, WAR, etc.). La cobertura de código se notifica para los archivos de clase que están en los directorios. Por ejemplo: target/classes,target/testClasses.", + "loc.input.label.classFilter": "Filtros de inclusión/exclusión de clase", + "loc.input.help.classFilter": "Lista separada por comas de los filtros para incluir o excluir clases de la recopilación de cobertura de código. Por ejemplo: +:com.*,+:org.*,-:my.app*.*.", + "loc.input.label.srcDirectories": "Directorios de archivos de origen", + "loc.input.help.srcDirectories": "Lista separada por comas de las rutas de acceso relativas desde el archivo de compilación de Ant a los directorios de código fuente. Los informes de cobertura de código las usarán para resaltar el código fuente. Por ejemplo: src/java,src/Test.", + "loc.input.label.failIfCoverageEmpty": "Error si faltan los resultados de cobertura de código", + "loc.input.help.failIfCoverageEmpty": "Error de compilación si la cobertura de código no generó ningún resultado para publicar.", + "loc.input.label.antHomeUserInputPath": "Establecer la ruta ANT_HOME", + "loc.input.help.antHomeUserInputPath": "Si se establece, reemplaza cualquier variable de entorno ANT_HOME existente por la ruta de acceso dada.", + "loc.input.label.javaHomeSelection": "Establecer JAVA_HOME por", + "loc.input.help.javaHomeSelection": "Establece JAVA_HOME seleccionando una versión de JDK que se detectará durante las compilaciones o especificando manualmente una ruta de acceso del JDK.", + "loc.input.label.jdkVersion": "Versión de JDK", + "loc.input.help.jdkVersion": "Se tratará de hallar la ruta de acceso a la versión de JDK seleccionada y establecer JAVA_HOME según sea el caso.", + "loc.input.label.jdkUserInputPath": "Ruta de acceso de JDK", + "loc.input.help.jdkUserInputPath": "Establece JAVA_HOME en la ruta de acceso especificada.", + "loc.input.label.jdkArchitecture": "Arquitectura JDK", + "loc.input.help.jdkArchitecture": "Indique opcionalmente la arquitectura (x86, x64) del JDK.", + "loc.messages.LocateJVMBasedOnVersionAndArch": "Buscar JAVA_HOME para Java %s %s", + "loc.messages.UnsupportedJdkWarning": "JDK 9 y JDK 10 no tienen soporte técnico. Cambie a una versión posterior del proyecto y la canalización. Intentando compilar con JDK 11...", + "loc.messages.FailedToLocateSpecifiedJVM": "No se encontró la versión de JDK especificada. Asegúrese de que dicha versión está instalada en el agente y de que la variable de entorno \"%s\" existe y está establecida en la ubicación de un JDK correspondiente. En caso contrario, use la tarea de [Instalador de herramientas de Java](https://go.microsoft.com/fwlink/?linkid=875287) para instalar el JDK deseado.", + "loc.messages.DiscontinueAntCodeCoverage": "Se va a interrumpir la compatibilidad con la generación automatizada de informes de cobertura de código para proyectos de Ant. Consulte https://go.microsoft.com/fwlink/?linkid=875306 para más información.", + "loc.messages.NoCodeCoverage": "No se encontraron resultados de cobertura de código para publicar.", + "loc.messages.NoTestResults": "No se encontraron archivos de resultados de pruebas que coincidan con %s, por lo que se omite la publicación de los resultados de las pruebas JUnit." +} \ No newline at end of file diff --git a/Tasks/ANTV2/Strings/resources.resjson/fr-FR/resources.resjson b/Tasks/ANTV2/Strings/resources.resjson/fr-FR/resources.resjson new file mode 100644 index 000000000000..b6a0ea35609c --- /dev/null +++ b/Tasks/ANTV2/Strings/resources.resjson/fr-FR/resources.resjson @@ -0,0 +1,47 @@ +{ + "loc.friendlyName": "Ant", + "loc.helpMarkDown": "[En savoir plus sur cette tâche](https://go.microsoft.com/fwlink/?LinkID=613718) ou [consulter la documentation d'Ant](http://ant.apache.org/)", + "loc.description": "Générer avec Apache Ant", + "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", + "loc.group.displayName.junitTestResults": "Résultats du test JUnit", + "loc.group.displayName.codeCoverage": "Couverture du code", + "loc.group.displayName.advanced": "Avancé", + "loc.input.label.antBuildFile": "Fichier de build Ant", + "loc.input.help.antBuildFile": "Chemin relatif de la racine de dépôt au fichier de build Ant.", + "loc.input.label.options": "Options", + "loc.input.help.options": "Indiquez les options à passer à la ligne de commande Ant. Vous pouvez fournir vos propres propriétés (par exemple ***-DmyProperty=myPropertyValue***), et utiliser les variables intégrées (par exemple ***-DcollectionId=$(system.collectionId)***). Sinon, les variables intégrées sont déjà définies comme variables d'environnement durant la génération et peuvent être passées directement (par exemple ***-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%***).", + "loc.input.label.targets": "Cible(s)", + "loc.input.help.targets": "Liste facultative de cibles à générer, séparées par des espaces. Si rien n'est spécifié, la cible 'default' est utilisée. Si aucune cible 'default' n'est définie, Ant 1.6.0 ou ultérieur génère des tâches qui sont toutes de niveau supérieur.", + "loc.input.label.publishJUnitResults": "Publier sur Azure Pipelines", + "loc.input.help.publishJUnitResults": "Sélectionnez cette option pour publier les résultats des tests JUnit produits par la build Ant sur Azure Pipelines. Chaque fichier de résultats des tests correspondant à 'Fichiers de résultats des tests' est publié en tant que série de tests dans Azure Pipelines.", + "loc.input.label.testResultsFiles": "Fichiers de résultats des tests", + "loc.input.help.testResultsFiles": "Chemin des fichiers de résultats des tests. Les caractères génériques sont autorisés. ([Plus d'informations](https://go.microsoft.com/fwlink/?linkid=856077)). Par exemple, '**/TEST-*.xml' pour tous les fichiers XML dont le nom commence par TEST-.", + "loc.input.label.testRunTitle": "Titre de la série de tests", + "loc.input.help.testRunTitle": "Indiquez le nom de la série de tests.", + "loc.input.label.codeCoverageTool": "Outil de couverture du code", + "loc.input.help.codeCoverageTool": "Sélectionnez l'outil de couverture du code. Pour prendre en charge l'agent local, consultez le lien vers les informations supplémentaires ci-dessous.", + "loc.input.label.classFilesDirectories": "Répertoires de fichiers de classe", + "loc.input.help.classFilesDirectories": "Liste de chemins relatifs séparés par une virgule, allant du fichier de build Ant aux répertoires contenant les fichiers de classe et d'archive (JAR, WAR, etc.). La couverture du code est signalée pour les fichiers de classe dans ces répertoires. Exemple : target/classes,target/testClasses.", + "loc.input.label.classFilter": "Filtres d'inclusion/exclusion de classes", + "loc.input.help.classFilter": "Liste de filtres séparés par une virgule, permettant d'inclure ou d'exclure des classes dans la collecte de la couverture du code. Exemple : +:com.*,+:org.*,-:my.app*.*.", + "loc.input.label.srcDirectories": "Répertoires de fichiers sources", + "loc.input.help.srcDirectories": "Liste de chemins relatifs séparés par une virgule, allant du fichier de build Ant aux répertoires de code source. Les rapports de couverture du code les utilisent pour mettre le code source en surbrillance. Exemple : src/java,src/Test.", + "loc.input.label.failIfCoverageEmpty": "Échec quand les résultats de la couverture du code sont manquants", + "loc.input.help.failIfCoverageEmpty": "Échec de la build si la couverture du code ne produit aucun résultat à publier.", + "loc.input.label.antHomeUserInputPath": "Définir le chemin de ANT_HOME", + "loc.input.help.antHomeUserInputPath": "Si elle est définie, cette valeur remplace les variables d'environnement ANT_HOME existantes par le chemin spécifié.", + "loc.input.label.javaHomeSelection": "Définir JAVA_HOME par", + "loc.input.help.javaHomeSelection": "Définit JAVA_HOME en sélectionnant une version de JDK qui sera découverte au moment des builds ou en tapant le chemin de JDK.", + "loc.input.label.jdkVersion": "Version du kit JDK", + "loc.input.help.jdkVersion": "Essaiera de découvrir le chemin d'accès à la version du JDK sélectionné et définira JAVA_HOME en conséquence.", + "loc.input.label.jdkUserInputPath": "Chemin du kit JDK", + "loc.input.help.jdkUserInputPath": "Définissez JAVA_HOME sur le chemin d'accès indiqué.", + "loc.input.label.jdkArchitecture": "Architecture du kit JDK", + "loc.input.help.jdkArchitecture": "Indiquez éventuellement l'architecture (x86, x64) du JDK.", + "loc.messages.LocateJVMBasedOnVersionAndArch": "Localiser JAVA_HOME pour Java %s %s", + "loc.messages.UnsupportedJdkWarning": "JDK 9 et JDK 10 ne sont plus pris en charge. Passez à une version plus récente de votre projet et de votre pipeline. Tentative de génération avec JDK 11...", + "loc.messages.FailedToLocateSpecifiedJVM": "Échec de la localisation de la version spécifiée du kit JDK. Vérifiez que la version spécifiée du kit JDK est installée sur l'agent, que la variable d'environnement '%s' existe et que sa valeur correspond à l'emplacement d'un kit JDK correspondant. Sinon, utilisez la tâche [Programme d'installation de l'outil Java] (https://go.microsoft.com/fwlink/?linkid=875287) pour installer le kit JDK souhaité.", + "loc.messages.DiscontinueAntCodeCoverage": "Nous mettons fin au support de la génération automatisée de rapports de couverture du code pour les projets Ant. Pour plus d'informations, consultez https://go.microsoft.com/fwlink/?linkid=875306.", + "loc.messages.NoCodeCoverage": "Il n'existe aucun résultat de couverture du code à publier.", + "loc.messages.NoTestResults": "Les fichiers de résultats des tests correspondant à %s sont introuvables. La publication des résultats des tests JUnit est ignorée." +} \ No newline at end of file diff --git a/Tasks/ANTV2/Strings/resources.resjson/it-IT/resources.resjson b/Tasks/ANTV2/Strings/resources.resjson/it-IT/resources.resjson new file mode 100644 index 000000000000..aa3286ef0482 --- /dev/null +++ b/Tasks/ANTV2/Strings/resources.resjson/it-IT/resources.resjson @@ -0,0 +1,47 @@ +{ + "loc.friendlyName": "Ant", + "loc.helpMarkDown": "[Altre informazioni su questa attività](https://go.microsoft.com/fwlink/?LinkID=613718). In alternativa [vedere la documentazione di Ant](http://ant.apache.org/)", + "loc.description": "Consente di compilare con Apache Ant", + "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", + "loc.group.displayName.junitTestResults": "Risultati del test JUnit", + "loc.group.displayName.codeCoverage": "Code coverage", + "loc.group.displayName.advanced": "Avanzate", + "loc.input.label.antBuildFile": "File di compilazione Ant", + "loc.input.help.antBuildFile": "Percorso relativo dalla radice del repository al file di compilazione Ant.", + "loc.input.label.options": "Opzioni", + "loc.input.help.options": "Consente di specificare tutte le opzioni da passare alla riga di comando di Ant. È possibile specificare proprietà personalizzate (ad esempio ***-DmyProperty=myPropertyValue***) e usare variabili predefinite (ad esempio ***-DcollectionId=$(system.collectionId)***). In alternativa, le variabili predefinite vengono già impostate come variabili di ambiente durante la compilazione e possono essere passate direttamente (ad esempio ***-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%***).", + "loc.input.label.targets": "Destinazione/i", + "loc.input.help.targets": "Elenco facoltativo di destinazioni per la compilazione separate da virgole. Se non viene specificato, verrà usata la destinazione `default`. Se non è definita alcuna destinazione `default`, Ant 1.6.0 o versioni successiva compilerà tutte le attività di primo livello.", + "loc.input.label.publishJUnitResults": "Pubblica in Azure Pipelines", + "loc.input.help.publishJUnitResults": "Selezionare questa opzione per pubblicare i risultati del test JUnit prodotti dalla compilazione Ant in Azure Pipelines. Ogni file dei risultati del test corrispondente al valore di `File dei risultati del test` verrà pubblicato come esecuzione dei test in Azure Pipelines.", + "loc.input.label.testResultsFiles": "File dei risultati del test", + "loc.input.help.testResultsFiles": "Percorso dei file dei risultati del test. È possibile usare i caratteri jolly, ad esempio `**/TEST-*.xml` per individuare tutti i file XML il cui nome inizia con TEST-. [Altre informazioni](https://go.microsoft.com/fwlink/?linkid=856077)", + "loc.input.label.testRunTitle": "Titolo dell'esecuzione dei test", + "loc.input.help.testRunTitle": "Consente di specificare un nome per l'esecuzione dei test.", + "loc.input.label.codeCoverageTool": "Strumento di code coverage", + "loc.input.help.codeCoverageTool": "Consente di selezionare lo strumento di code coverage. Per il supporto di agenti locali, fare riferimento al collegamento `Altre informazioni` sotto.", + "loc.input.label.classFilesDirectories": "Directory dei file di classe", + "loc.input.help.classFilesDirectories": "Elenco di percorsi relativi separati da virgole dal file di compilazione di Ant alle directory contenenti file di classe e file di archivio (JAR, WAR e così via). I report di code coverage vengono creati per i file di classe presenti in queste directory, ad esempio target/classes,target/testClasses.", + "loc.input.label.classFilter": "Filtri di inclusione/esclusione classi", + "loc.input.help.classFilter": "Elenco di filtri delimitati da virgole per includere o escludere classi dalla raccolta delle informazioni sul code coverage, ad esempio +:com.*,+:org.*,-:my.app*.*.", + "loc.input.label.srcDirectories": "Directory dei file di origine", + "loc.input.help.srcDirectories": "Elenco di percorsi relativi separati da virgole dal file di compilazione di Ant alle directory del codice sorgente. Tali percorsi verranno usati nei report di code coverage per evidenziare il codice sorgente, ad esempio src/java,src/Test.", + "loc.input.label.failIfCoverageEmpty": "Non eseguire se mancano i risultati del code coverage", + "loc.input.help.failIfCoverageEmpty": "Non esegue la compilazione se il code coverage non ha prodotto risultati da pubblicare.", + "loc.input.label.antHomeUserInputPath": "Imposta percorso di ANT_HOME", + "loc.input.help.antHomeUserInputPath": "Se è impostato, esegue l'override di eventuali variabili di ambiente ANT_HOME esistenti con il percorso specificato.", + "loc.input.label.javaHomeSelection": "Imposta JAVA_HOME per", + "loc.input.help.javaHomeSelection": "Consente di impostare JAVA_HOME selezionando una versione di JDK che verrà individuata durante le compilazioni oppure immettendo manualmente un percorso JDK.", + "loc.input.label.jdkVersion": "Versione del JDK", + "loc.input.help.jdkVersion": "Prova a individuare il percorso della versione selezionata di JDK e imposta JAVA_HOME di conseguenza.", + "loc.input.label.jdkUserInputPath": "Percorso del JDK", + "loc.input.help.jdkUserInputPath": "Consente di impostare JAVA_HOME sul percorso specificato.", + "loc.input.label.jdkArchitecture": "Architettura del JDK", + "loc.input.help.jdkArchitecture": "Consente facoltativamente di specificare l'architettura (x86, x64) di JDK.", + "loc.messages.LocateJVMBasedOnVersionAndArch": "Individuare JAVA_HOME per Java %s %s", + "loc.messages.UnsupportedJdkWarning": "JDK 9 e JDK 10 non sono supportati. Passare a una versione più recente nel progetto e nella pipeline. Verrà effettuato un tentativo di compilazione con JDK 11...", + "loc.messages.FailedToLocateSpecifiedJVM": "La versione del JDK specificata non è stata trovata. Assicurarsi che sia installata nell'agente e che la variabile di ambiente '%s' sia presente e impostata sul percorso di un JDK corrispondente oppure usare l'attività [Programma di installazione strumenti Java](https://go.microsoft.com/fwlink/?linkid=875287) per installare il JDK desiderato.", + "loc.messages.DiscontinueAntCodeCoverage": "Il supporto della generazione automatizzata di report di code coverage per progetti Ant a breve verrà sospeso. Per maggiori dettagli, vedere https://go.microsoft.com/fwlink/?linkid=875306.", + "loc.messages.NoCodeCoverage": "Non sono stati trovati risultati del code coverage da pubblicare.", + "loc.messages.NoTestResults": "Non sono stati trovati file dei risultati del test corrispondenti a %s, di conseguenza la pubblicazione dei risultati del test JUnit verrà ignorata." +} \ No newline at end of file diff --git a/Tasks/ANTV2/Strings/resources.resjson/ja-JP/resources.resjson b/Tasks/ANTV2/Strings/resources.resjson/ja-JP/resources.resjson new file mode 100644 index 000000000000..31ca3ed5393f --- /dev/null +++ b/Tasks/ANTV2/Strings/resources.resjson/ja-JP/resources.resjson @@ -0,0 +1,47 @@ +{ + "loc.friendlyName": "Ant", + "loc.helpMarkDown": "[このタスクの詳細を表示](https://go.microsoft.com/fwlink/?LinkID=613718)、または [Ant のドキュメントを参照](http://ant.apache.org/)", + "loc.description": "Apache Ant を使用してビルドします", + "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", + "loc.group.displayName.junitTestResults": "JUnit のテスト結果", + "loc.group.displayName.codeCoverage": "コード カバレッジ", + "loc.group.displayName.advanced": "詳細設定", + "loc.input.label.antBuildFile": "Ant ビルド ファイル", + "loc.input.help.antBuildFile": "リポジトリのルートから Ant のビルド ファイルへの相対パス。", + "loc.input.label.options": "オプション", + "loc.input.help.options": "Ant コマンド ラインに渡すオプションを指定します。独自のプロパティ (たとえば、***-DmyProperty=myPropertyValue***) を指定することも、ビルトイン変数 (たとえば、***-DcollectionId=$(system.collectionId)***) を使用することもできます。あるいは、ビルトイン変数はビルド中は既に環境変数として設定されているため、直接渡すことができます (たとえば、***-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%***)。", + "loc.input.label.targets": "ターゲット", + "loc.input.help.targets": "作成するターゲットのオプションのスペース区切り一覧。指定しない場合、`既定` のターゲットが使用されます。`既定` のターゲットが定義されていない場合は、Ant 1.6.0 以降で最上位レベルのすべてのタスクが作成されます。", + "loc.input.label.publishJUnitResults": "Azure Pipelines に公開する", + "loc.input.help.publishJUnitResults": "Ant のビルドによって生成された JUnit のテスト結果を Azure Pipelines に公開するには、このオプションを選びます。'テスト結果ファイル' と一致する各テスト結果ファイルが、Azure Pipelines でテストの実行として公開されます。", + "loc.input.label.testResultsFiles": "テスト結果ファイル", + "loc.input.help.testResultsFiles": "テスト結果ファイルのパス。ワイルドカードを使用できます ([詳細情報](https://go.microsoft.com/fwlink/?linkid=856077))。たとえば、名前が TEST- で始まるすべての XML ファイルの場合は '**/TEST-*.xml' です。", + "loc.input.label.testRunTitle": "テストの実行のタイトル", + "loc.input.help.testRunTitle": "テストの実行の名前を指定します。", + "loc.input.label.codeCoverageTool": "コード カバレッジ ツール", + "loc.input.help.codeCoverageTool": "コード カバレッジ ツールを選びます。オンプレミスのエージェントのサポートについては、以下の `詳細` リンクをご覧ください。", + "loc.input.label.classFilesDirectories": "クラス ファイル ディレクトリ", + "loc.input.help.classFilesDirectories": "クラス ファイルやアーカイブ ファイル (JAR、WAR など) を格納するディレクトリのパス (Ant ビルド ファイルから見た相対パス) のコンマ区切り一覧。コード カバレッジはこれらのディレクトリ内のクラス ファイルに関して報告されます。たとえば、target/classes,target/testClasses と指定します。", + "loc.input.label.classFilter": "クラス包含/除外フィルター", + "loc.input.help.classFilter": "コード カバレッジの収集にクラスを含めたり除いたりするためのフィルターのコンマ区切り一覧。たとえば、+:com.*,+:org.*,-:my.app*.* と指定します。", + "loc.input.label.srcDirectories": "ソース ファイル ディレクトリ", + "loc.input.help.srcDirectories": "ソース コード ディレクトリのパス (Ant ビルド ファイルから見た相対パス) のコンマ区切り一覧。コード カバレッジ レポートはこれらを使用してソース コードをハイライトします。たとえば、src/java,src/Test と指定します。", + "loc.input.label.failIfCoverageEmpty": "コード カバレッジの結果がない場合に失敗する", + "loc.input.help.failIfCoverageEmpty": "コード カバレッジから発行するべき結果が生成されなかった場合に、ビルドを失敗にします。", + "loc.input.label.antHomeUserInputPath": "ANT_HOME パスの設定", + "loc.input.help.antHomeUserInputPath": "設定されると、指定したパスの既存のあらゆる ANT_HOME 環境変数をオーバーライドします。", + "loc.input.label.javaHomeSelection": "次の条件で JAVA_HOME を設定します", + "loc.input.help.javaHomeSelection": "ビルド中に検出される JDK バージョンを選択するか、JDK パスを手動で入力して JAVA_HOME を設定します。", + "loc.input.label.jdkVersion": "JDK バージョン", + "loc.input.help.jdkVersion": "選択した JDK のバージョンへのパスの検出を試みて、それに従って JAVA_HOME を設定します。", + "loc.input.label.jdkUserInputPath": "JDK パス", + "loc.input.help.jdkUserInputPath": "指定したパスに JAVA_HOME を設定します。", + "loc.input.label.jdkArchitecture": "JDK アーキテクチャ", + "loc.input.help.jdkArchitecture": "(省略可能) JDK のアーキテクチャ (x86、x64) を指定します。", + "loc.messages.LocateJVMBasedOnVersionAndArch": "Java %s %s の JAVA_HOME を検索する", + "loc.messages.UnsupportedJdkWarning": "JDK 9 および JDK 10 はサポートされていません。プロジェクトとパイプラインで新しいバージョンに切り替えてください。JDK 11 でのビルドを試行しています...", + "loc.messages.FailedToLocateSpecifiedJVM": "指定された JDK バージョンが見つかりませんでした。指定された JDK バージョンがエージェントにインストールされており、環境変数 '%s' が存在し、対応する JDK の場所に設定されていることを確認するか、[Java ツール インストーラー](https://go.microsoft.com/fwlink/?linkid=875287) タスクを使用して目的の JDK をインストールしてください。", + "loc.messages.DiscontinueAntCodeCoverage": "Ant プロジェクト向けの自動コード カバレッジ レポート生成のサポートを中止します。詳細については、https://go.microsoft.com/fwlink/?linkid=875306 をご覧ください。", + "loc.messages.NoCodeCoverage": "発行するコード カバレッジの結果が見つかりませんでした。", + "loc.messages.NoTestResults": "%s と一致するテスト結果ファイルが見つからないため、JUnit テスト結果の発行をスキップします。" +} \ No newline at end of file diff --git a/Tasks/ANTV2/Strings/resources.resjson/ko-KR/resources.resjson b/Tasks/ANTV2/Strings/resources.resjson/ko-KR/resources.resjson new file mode 100644 index 000000000000..e75db3aeeaaa --- /dev/null +++ b/Tasks/ANTV2/Strings/resources.resjson/ko-KR/resources.resjson @@ -0,0 +1,47 @@ +{ + "loc.friendlyName": "Ant", + "loc.helpMarkDown": "[이 작업에 대한 자세한 정보](https://go.microsoft.com/fwlink/?LinkID=613718) 또는 [Ant 설명서 참조](http://ant.apache.org/)", + "loc.description": "Apache Ant로 빌드", + "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", + "loc.group.displayName.junitTestResults": "JUnit 테스트 결과", + "loc.group.displayName.codeCoverage": "코드 검사", + "loc.group.displayName.advanced": "고급", + "loc.input.label.antBuildFile": "Ant 빌드 파일", + "loc.input.help.antBuildFile": "Ant 빌드 파일의 리포지토리 루트로부터의 상대 경로입니다.", + "loc.input.label.options": "옵션", + "loc.input.help.options": "Ant 명령줄에 전달할 옵션을 지정하세요. 고유한 속성을 지정할 수도 있고(예: ***-DmyProperty=myPropertyValue***) 기본 제공 변수를 사용할 수도 있습니다(예: ***-DcollectionId=$(system.collectionId)***). 또는 기본 제공 변수가 빌드 중 이미 환경 변수로 설정되어 직접 전달될 수도 있습니다(예: ***-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%***).", + "loc.input.label.targets": "대상", + "loc.input.help.targets": "빌드할 대상의 공백으로 구분된 목록입니다(선택 사항). 지정되지 않은 경우 `기본` 대상이 사용됩니다. `기본` 대상이 정의되지 않은 경우 Ant 1.6.0 이상에서 모든 최상위 작업을 빌드합니다.", + "loc.input.label.publishJUnitResults": "Azure Pipelines/에 게시", + "loc.input.help.publishJUnitResults": "Ant 빌드에서 생성된 JUnit 테스트 결과를 Azure Pipelines에 게시하려면 이 옵션을 선택합니다. '테스트 결과 파일'과 일치하는 각 테스트 결과 파일이 Azure Pipelines에 테스트 실행으로 게시됩니다.", + "loc.input.label.testResultsFiles": "테스트 결과 파일", + "loc.input.help.testResultsFiles": "테스트 결과 파일 경로입니다. 와일드카드를 사용할 수 있습니다([자세한 정보](https://go.microsoft.com/fwlink/?linkid=856077)). 예를 들어 이름이 TEST-로 시작하는 모든 XML 파일을 표시하려면 '**/TEST-*.xml'을 지정합니다.", + "loc.input.label.testRunTitle": "테스트 실행 제목", + "loc.input.help.testRunTitle": "테스트 실행의 이름을 지정하세요.", + "loc.input.label.codeCoverageTool": "코드 검사 도구", + "loc.input.help.codeCoverageTool": "코드 검사 도구를 선택하세요. 온-프레미스 에이전트 지원의 경우 아래의 '추가 정보' 링크를 참조하세요.", + "loc.input.label.classFilesDirectories": "클래스 파일 디렉터리", + "loc.input.help.classFilesDirectories": "Ant 빌드 파일과 클래스 파일, 보관 파일(JAR, WAR 등)이 포함된 디렉터리 간 상대 경로의 쉼표로 구분된 목록입니다. 코드 검사는 이러한 디렉터리에 있는 클래스 파일에 대해 보고됩니다(예: target/classes,target/testClasses).", + "loc.input.label.classFilter": "클래스 포함/제외 필터", + "loc.input.help.classFilter": "코드 검사 수집에서 클래스를 포함하거나 제외할 필터의 쉼표로 구분된 목록입니다(예: +:com.*,+:org.*,-:my.app*.*).", + "loc.input.label.srcDirectories": "소스 파일 디렉터리", + "loc.input.help.srcDirectories": "Ant 빌드 파일과 소스 코드 디렉터리 간 상대 경로의 쉼표로 구분된 목록입니다. 코드 검사 보고서에서는 이를 사용하여 소스 코드를 강조 표시합니다(예: src/java,src/Test).", + "loc.input.label.failIfCoverageEmpty": "코드 검사 결과가 없는 경우 실패", + "loc.input.help.failIfCoverageEmpty": "코드 검사에서 게시할 결과를 생성하지 않은 경우 빌드가 실패합니다.", + "loc.input.label.antHomeUserInputPath": "ANT_HOME 경로 설정", + "loc.input.help.antHomeUserInputPath": "설정하는 경우 기존 ANT_HOME 환경 변수를 지정된 경로로 재정의합니다.", + "loc.input.label.javaHomeSelection": "JAVA_HOME 설정 방법", + "loc.input.help.javaHomeSelection": "빌드 중에 검색될 JDK 버전을 선택하거나 수동으로 JDK 경로를 입력하여 JAVA_HOME을 설정합니다.", + "loc.input.label.jdkVersion": "JDK 버전", + "loc.input.help.jdkVersion": "선택한 JDK 버전의 경로에 대한 검색을 시도하고 그에 따라 JAVA_HOME을 설정하게 됩니다.", + "loc.input.label.jdkUserInputPath": "JDK 경로", + "loc.input.help.jdkUserInputPath": "JAVA_HOME을 지정된 경로로 설정합니다.", + "loc.input.label.jdkArchitecture": "JDK 아키텍처", + "loc.input.help.jdkArchitecture": "선택적으로 JDK의 아키텍처(x86, x64)를 제공하세요.", + "loc.messages.LocateJVMBasedOnVersionAndArch": "Java %s %s에 대해 JAVA_HOME 찾기", + "loc.messages.UnsupportedJdkWarning": "JDK 9 및 JDK 10은 지원되지 않습니다. 프로젝트 및 파이프라인에서 최신 버전으로 전환하세요. JDK 11을 사용하여 빌드를 시도하는 중...", + "loc.messages.FailedToLocateSpecifiedJVM": "지정한 JDK 버전을 찾지 못했습니다. 지정한 JDK 버전이 에이전트에 설치되어 있으며 환경 변수 '%s'이(가) 있고 해당 JDK의 위치로 설정되었는지 확인하거나, [Java 도구 설치 관리자](https://go.microsoft.com/fwlink/?linkid=875287) 작업을 사용하여 원하는 JDK를 설치하세요.", + "loc.messages.DiscontinueAntCodeCoverage": "Ant 프로젝트에 대한 자동 코드 검사 보고서 생성을 더 이상 지원하지 않습니다. 자세한 내용은 https://go.microsoft.com/fwlink/?linkid=875306을 참조하세요.", + "loc.messages.NoCodeCoverage": "게시할 코드 검사 결과가 없습니다.", + "loc.messages.NoTestResults": "%s과(와) 일치하는 테스트 결과 파일을 찾을 수 없으므로 JUnit 테스트 결과 게시를 건너뜁니다." +} \ No newline at end of file diff --git a/Tasks/ANTV2/Strings/resources.resjson/ru-RU/resources.resjson b/Tasks/ANTV2/Strings/resources.resjson/ru-RU/resources.resjson new file mode 100644 index 000000000000..f913b01323ef --- /dev/null +++ b/Tasks/ANTV2/Strings/resources.resjson/ru-RU/resources.resjson @@ -0,0 +1,47 @@ +{ + "loc.friendlyName": "Ant", + "loc.helpMarkDown": "[См. дополнительные сведения об этой задаче](https://go.microsoft.com/fwlink/?LinkID=613718) или [документацию по Ant](http://ant.apache.org/)", + "loc.description": "Сборка с помощью Apache Ant", + "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", + "loc.group.displayName.junitTestResults": "Результаты теста JUnit", + "loc.group.displayName.codeCoverage": "Объем протестированного кода", + "loc.group.displayName.advanced": "Дополнительно", + "loc.input.label.antBuildFile": "Файл сборки Ant", + "loc.input.help.antBuildFile": "Относительный путь от корня репозитория к файлу сборки Ant.", + "loc.input.label.options": "Параметры", + "loc.input.help.options": "Укажите параметры для передачи в командную строку Ant. Вы можете указать собственные свойства (например, ***-DmyProperty=myPropertyValue***), а также использовать встроенные переменные (например, ***-DcollectionId=$(system.collectionId)***). Кроме того, встроенные переменные уже заданы в качестве переменных среды во время сборки и могут быть переданы напрямую (например, ***-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%***).", + "loc.input.label.targets": "Платформы", + "loc.input.help.targets": "Необязательный список целевых объектов сборки с разделителями-пробелами. Если он не задан, будет использоваться целевой объект по умолчанию. Если целевой объект по умолчанию не определен, в Ant 1.6.0 и более поздних версиях будет выполнена сборка всех задач верхнего уровня.", + "loc.input.label.publishJUnitResults": "Опубликовать в Azure Pipelines", + "loc.input.help.publishJUnitResults": "Выберите этот параметр, чтобы опубликовать результаты теста JUnit, созданные сборкой Ant, в Azure Pipelines. Каждый файл результатов теста, соответствующий запросу \"Файлы результатов тестов\", будет опубликован как тестовый запуск в Azure Pipelines.", + "loc.input.label.testResultsFiles": "Файлы результатов теста", + "loc.input.help.testResultsFiles": "Путь к файлам результатов тестов. Можно использовать подстановочные знаки ([дополнительные сведения](https://go.microsoft.com/fwlink/?linkid=856077)). Пример: \"**/TEST-*.xml\" для всех XML-файлов, имена которых начинаются с \"TEST-\".", + "loc.input.label.testRunTitle": "Название тестового запуска", + "loc.input.help.testRunTitle": "Укажите имя для тестового запуска.", + "loc.input.label.codeCoverageTool": "Средство оценки объема протестированного кода", + "loc.input.help.codeCoverageTool": "Выберите средство оценки объема протестированного кода. Сведения о поддержке локального агента см. по ссылке \"Дополнительные сведения\" ниже.", + "loc.input.label.classFilesDirectories": "Каталоги файлов классов", + "loc.input.help.classFilesDirectories": "Список относительных путей с разделителями-запятыми от файла сборки ANT до каталогов, содержащих файлы классов и архивов (JAR, WAR и т. д.). Объем протестированного кода указывается для файлов классов в этих каталогах. Например: target/classes,target/testClasses.", + "loc.input.label.classFilter": "Фильтры включения и исключения классов", + "loc.input.help.classFilter": "Список фильтров с разделителями-запятыми для включения или исключения классов при сборе данных по объему протестированного кода. Например: +:com.*,+:org.*,-:my.app*.*.", + "loc.input.label.srcDirectories": "Каталоги файлов с исходным кодом", + "loc.input.help.srcDirectories": "Список относительных путей с разделителями-запятыми от файла сборки ANT до каталогов с исходным кодом. Он будет использоваться в отчетах об объеме протестированного кода для выделения исходного кода. Например: src/java,src/Test.", + "loc.input.label.failIfCoverageEmpty": "Сбой, если результаты для объема протестированного кода отсутствуют", + "loc.input.help.failIfCoverageEmpty": "Если объем протестированного кода не дал результатов для публикации, завершить сборку сбоем.", + "loc.input.label.antHomeUserInputPath": "Задать путь ANT_HOME", + "loc.input.help.antHomeUserInputPath": "Если этот параметр задан, переопределяет любую существующую переменную среды ANT_HOME заданным путем.", + "loc.input.label.javaHomeSelection": "Установка JAVA_HOME с помощью", + "loc.input.help.javaHomeSelection": "Задается JAVA_HOME указанием версии JDK, которая будет обнаруживаться во время сборок, или указанием пути к JDK вручную.", + "loc.input.label.jdkVersion": "Версия JDK", + "loc.input.help.jdkVersion": "Пытается определить путь к выбранной версии JDK и установить переменную JAVA_HOME соответствующим образом.", + "loc.input.label.jdkUserInputPath": "Путь к JDK", + "loc.input.help.jdkUserInputPath": "Установка для JAVA_HOME определенного пути.", + "loc.input.label.jdkArchitecture": "Архитектура JDK", + "loc.input.help.jdkArchitecture": "Дополнительно укажите архитектуру JDK (x86, x64).", + "loc.messages.LocateJVMBasedOnVersionAndArch": "Найдите JAVA_HOME для Java %s %s", + "loc.messages.UnsupportedJdkWarning": "Поддержка JDK 9 и JDK 10 прекращена. Переключитесь на более позднюю версию в проекте и конвейере. Выполняется попытка сборки с помощью JDK 11...", + "loc.messages.FailedToLocateSpecifiedJVM": "Не удалось найти указанную версию JDK. Убедитесь в том, что указанная версия JDK установлена в агенте и что переменная среды \"%s\" существует и ее значением является расположение соответствующего пакета JDK, или используйте [установщик средств Java] (https://go.microsoft.com/fwlink/?linkid=875287), чтобы установить требуемую версию JDK.", + "loc.messages.DiscontinueAntCodeCoverage": "Мы прекращаем поддержку автоматического создания отчетов об объемах протестированного кода для проектов Ant. Подробности см. на странице https://go.microsoft.com/fwlink/?linkid=875306.", + "loc.messages.NoCodeCoverage": "Результаты по объему протестированного кода для публикации не найдены.", + "loc.messages.NoTestResults": "Не найдены файлы результатов теста, соответствующие \"%s\". Публикация результатов теста JUnit пропускается." +} \ No newline at end of file diff --git a/Tasks/ANTV2/Strings/resources.resjson/zh-CN/resources.resjson b/Tasks/ANTV2/Strings/resources.resjson/zh-CN/resources.resjson new file mode 100644 index 000000000000..766dc3517e1c --- /dev/null +++ b/Tasks/ANTV2/Strings/resources.resjson/zh-CN/resources.resjson @@ -0,0 +1,47 @@ +{ + "loc.friendlyName": "Ant", + "loc.helpMarkDown": "[详细了解此任务](https://go.microsoft.com/fwlink/?LinkID=613718)或[参阅 Ant 文档](http://ant.apache.org/)", + "loc.description": "使用 Apache Ant 生成", + "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", + "loc.group.displayName.junitTestResults": "JUnit 测试结果", + "loc.group.displayName.codeCoverage": "代码覆盖率", + "loc.group.displayName.advanced": "高级", + "loc.input.label.antBuildFile": "Ant 生成文件", + "loc.input.help.antBuildFile": "从存储库根路径到“Ant 生成文件”的相对路径。", + "loc.input.label.options": "选项", + "loc.input.help.options": "提供要传递到 Ant 命令行的任意选项。可以提供自己的属性(例如,***-DmyProperty=myPropertyValue***),也可使用内置变量(例如,**-DcollectionId=$(system.collectionId)***)。或者,已在生成过程中将内置变量设置为环境变量,且可直接传递(例如,***-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%***)。", + "loc.input.label.targets": "对象", + "loc.input.help.targets": "要生成的可选目标列表,以空格分隔。如果未指定,将使用“默认”目标。如果未定义“默认”目标,则 Ant 1.6.0 和更高版本将生成所有顶级任务。", + "loc.input.label.publishJUnitResults": "发布到 Azure Pipelines", + "loc.input.help.publishJUnitResults": "选择此选项可将 Ant 生成产生的 JUnit 测试结果发布到 Azure Pipelines。每个与 `Test Results Files` 匹配的测试结果文件都会在 Azure Pipelines 中发布为测试运行。", + "loc.input.label.testResultsFiles": "测试结果文件", + "loc.input.help.testResultsFiles": "测试结果文件路径。可以使用通配符([详细信息](https://go.microsoft.com/fwlink/?linkid=856077))。例如,\"**/TEST-*.xml\" 表示名称以 TEST- 开头的所有 xml 文件。", + "loc.input.label.testRunTitle": "测试运行标题", + "loc.input.help.testRunTitle": "为测试运行提供一个名称。", + "loc.input.label.codeCoverageTool": "代码覆盖率工具", + "loc.input.help.codeCoverageTool": "选择代码覆盖率工具。有关本地代理支持,请参阅下方的“详细信息”链接。", + "loc.input.label.classFilesDirectories": "类文件目录", + "loc.input.help.classFilesDirectories": "从 Ant 生成文件到目录的相对路径的列表,以逗号分隔,其中目录包含类文件和存档文件(JAR 和 WAR 等)。报告这些目录中类文件的代码覆盖率。例如: target/classes,target/testClasses。", + "loc.input.label.classFilter": "类包含/排除筛选器", + "loc.input.help.classFilter": "用于在收集代码覆盖率时包含或排除类的筛选器列表,以逗号分隔。例如: +:com.*、+:org.*、-:my.app*.*。", + "loc.input.label.srcDirectories": "源文件目录", + "loc.input.help.srcDirectories": "从 Ant 生成文件到源代码目录的相对路径列表,用逗号隔开。代码覆盖率报告将使用这些路径来突出显示源代码。例如: src/java,src/Test。", + "loc.input.label.failIfCoverageEmpty": "缺失代码覆盖率结果时失败", + "loc.input.help.failIfCoverageEmpty": "如果代码覆盖率未产生任何要发布的结果,则生成将失败。", + "loc.input.label.antHomeUserInputPath": "设置 ANT_HOME 路径", + "loc.input.help.antHomeUserInputPath": "如已设置,将用给定路径覆盖任何现有 ANT_HOME 环境变量。", + "loc.input.label.javaHomeSelection": "JAVA_HOME 设置方法", + "loc.input.help.javaHomeSelection": "可通过选择将在生成期间发现的 JDK 版本或手动输入 JDK 路径来设置 JAVA_HOME。", + "loc.input.label.jdkVersion": "JDK 版本", + "loc.input.help.jdkVersion": "将尝试发现所选 JDK 版本的路径并相应地设置 JAVA_HOME。", + "loc.input.label.jdkUserInputPath": "JDK 路径", + "loc.input.help.jdkUserInputPath": "将 JAVA_HOME 设置到给定路径。", + "loc.input.label.jdkArchitecture": "JDK 体系结构", + "loc.input.help.jdkArchitecture": "可以选择提供 JDK 的体系结构(x86、x64)。", + "loc.messages.LocateJVMBasedOnVersionAndArch": "为 Java %s %s 查找 JAVA_HOME", + "loc.messages.UnsupportedJdkWarning": "JDK 9 和 JDK 10 不受支持。请切换到项目和管道中的更高版本。正在尝试使用 JDK 11 进行生成...", + "loc.messages.FailedToLocateSpecifiedJVM": "未能找到指定的 JDK 版本。请确保代理上安装了指定的 JDK 版本,环境变量“%s”存在并设置为对应 JDK 的位置或使用[Java 工具安装程序](https://go.microsoft.com/fwlink/?linkid=875287)任务安装所需 JDK。", + "loc.messages.DiscontinueAntCodeCoverage": "我们将不再支持为 Ant 项目自动生成代码覆盖率报告。有关详细信息,请参阅 https://go.microsoft.com/fwlink/?linkid=875306。", + "loc.messages.NoCodeCoverage": "未找到可发布的代码覆盖率结果。", + "loc.messages.NoTestResults": "未找到匹配 %s 的测试结果文件,因此将跳过发布 JUnit 测试结果。" +} \ No newline at end of file diff --git a/Tasks/ANTV2/Strings/resources.resjson/zh-TW/resources.resjson b/Tasks/ANTV2/Strings/resources.resjson/zh-TW/resources.resjson new file mode 100644 index 000000000000..29a91dfd1ae4 --- /dev/null +++ b/Tasks/ANTV2/Strings/resources.resjson/zh-TW/resources.resjson @@ -0,0 +1,47 @@ +{ + "loc.friendlyName": "Ant", + "loc.helpMarkDown": "[深入了解此工作](https://go.microsoft.com/fwlink/?LinkID=613718)或[參閱 Ant 文件](http://ant.apache.org/)", + "loc.description": "使用 Apache Ant 建置", + "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", + "loc.group.displayName.junitTestResults": "JUnit 測試結果", + "loc.group.displayName.codeCoverage": "程式碼涵蓋範圍", + "loc.group.displayName.advanced": "進階", + "loc.input.label.antBuildFile": "Ant 組建檔案", + "loc.input.help.antBuildFile": "從存放庫根路徑到 Ant 組建檔案的相對路徑。", + "loc.input.label.options": "選項", + "loc.input.help.options": "提供傳遞給 Ant 命令列的任何選項。您可以提供您自己的屬性 (例如 ***-DmyProperty=myPropertyValue***),並同時使用內建變數 (例如 ***-DmyProperty=myPropertyValue***)。或者,如果內建變數已在建置期間設為環境變數,則也可以直接傳遞 (例如 ***-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%***)。", + "loc.input.label.targets": "目標", + "loc.input.help.targets": "以空格分隔的選用清單,內含要建置的目標。若未指定,將使用 `default` 目標。如果未定義 `default` 目標,則 Ant 1.6.0 和更新版本將建置所有最上層工作。", + "loc.input.label.publishJUnitResults": "發佈至 Azure Pipelines", + "loc.input.help.publishJUnitResults": "選取此選項會將 Ant 組建所產生的 JUnit 測試結果發佈至 Azure Pipelines。每個與 `Test Results Files` 相符的測試結果檔案都將作為測試回合於 Azure Pipelines 中發佈。", + "loc.input.label.testResultsFiles": "測試結果檔案", + "loc.input.help.testResultsFiles": "測試結果檔案路徑。可使用萬用字元 ([詳細資訊](https://go.microsoft.com/fwlink/?linkid=856077))。例如 `**/TEST-*.xml` 表示名稱開頭為 TEST- 的所有 XML 檔案。", + "loc.input.label.testRunTitle": "測試回合標題", + "loc.input.help.testRunTitle": "提供測試回合的名稱。", + "loc.input.label.codeCoverageTool": "程式碼涵蓋範圍工具", + "loc.input.help.codeCoverageTool": "選取程式碼涵蓋範圍工具。如需內部部署代理程式支援,請參閱下面的<詳細資訊>連結。", + "loc.input.label.classFilesDirectories": "類別檔案目錄", + "loc.input.help.classFilesDirectories": "以逗號分隔的清單,內含從 Ant 組建檔案到包含類別檔案和封存檔案 (JAR、WAR 等) 之目錄的相對路徑。回報的程式碼涵蓋範圍為這些目錄中的類別檔案。例如: target/classes,target/testClasses。", + "loc.input.label.classFilter": "類別包含/排除篩選", + "loc.input.help.classFilter": "以逗號分隔的清單,內含可從收集程式碼涵蓋範圍將類別加以包含或排除的篩選條件。例如: +:com.*,+:org.*,-:my.app*.*。", + "loc.input.label.srcDirectories": "原始程式檔目錄", + "loc.input.help.srcDirectories": "以逗號分隔的清單,內含從 Ant 組建檔案到原始程式碼目錄的相對路徑。程式碼涵蓋範圍報表會加以使用,以強調顯示原始程式碼。例如: src/java,src/Test。", + "loc.input.label.failIfCoverageEmpty": "遺漏程式碼涵蓋範圍結果時失敗", + "loc.input.help.failIfCoverageEmpty": "如果程式碼涵蓋範圍未產生任何可發行的結果,則建置失敗。", + "loc.input.label.antHomeUserInputPath": "設定 ANT_HOME 路徑", + "loc.input.help.antHomeUserInputPath": "如有設定,將會以指定的路徑覆寫任何現有的 ANT_HOME 環境變數。", + "loc.input.label.javaHomeSelection": "設定 JAVA_HOME 由", + "loc.input.help.javaHomeSelection": "選取一個能在組建期間探索到的 JDK 版本,或者手動輸入 JDK 路徑,均能為 JAVA_HOME 進行設定。", + "loc.input.label.jdkVersion": "JDK 版本", + "loc.input.help.jdkVersion": "將嘗試探索所選取 JDK 版本的路徑並據此設定 JAVA_HOME。", + "loc.input.label.jdkUserInputPath": "JDK 路徑", + "loc.input.help.jdkUserInputPath": "將 JAVA_HOME 設定為指定路徑。", + "loc.input.label.jdkArchitecture": "JDK 架構", + "loc.input.help.jdkArchitecture": "選擇性地提供 JDK 的架構 (x86、x64)。", + "loc.messages.LocateJVMBasedOnVersionAndArch": "為 Java %s %s 找出 JAVA_HOME 的位置", + "loc.messages.UnsupportedJdkWarning": "JDK 9 與 JDK 10 已失去支援。請在您的專案和管線中切換至較新版本。正在嘗試以 JDK 11 進行建置...", + "loc.messages.FailedToLocateSpecifiedJVM": "找不到指定的 JDK 版本。請確認指定的 JDK 版本已安裝在代理程式上,且環境變數 '%s' 存在並已設定為對應 JDK 的位置,或者使用 [Java 工具安裝程式](https://go.microsoft.com/fwlink/?linkid=875287) 工作安裝所需的 JDK。", + "loc.messages.DiscontinueAntCodeCoverage": "我們即將中止對自動產生 Ant 專案程式碼涵蓋範圍報告的支援。如需更多詳細資料,請參閱 https://go.microsoft.com/fwlink/?linkid=875306。", + "loc.messages.NoCodeCoverage": "找不到要發行的程式碼涵蓋範圍結果。", + "loc.messages.NoTestResults": "找不到任何符合 %s 的測試結果,因此跳過發行 JUnit 測試結果。" +} \ No newline at end of file diff --git a/Tasks/ANTV2/Tests/.npmrc b/Tasks/ANTV2/Tests/.npmrc new file mode 100644 index 000000000000..969ccea07661 --- /dev/null +++ b/Tasks/ANTV2/Tests/.npmrc @@ -0,0 +1,3 @@ +registry=https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/ + +always-auth=true \ No newline at end of file diff --git a/Tasks/ANTV2/Tests/L0.ts b/Tasks/ANTV2/Tests/L0.ts new file mode 100644 index 000000000000..12bd4e0bc63b --- /dev/null +++ b/Tasks/ANTV2/Tests/L0.ts @@ -0,0 +1,154 @@ +import assert = require('assert'); +import { MockTestRunner } from 'azure-pipelines-task-lib/mock-test'; +import path = require('path'); +import os = require('os'); + +var isWindows = os.type().match(/^Win/); + +describe('ANT Suite', function () { + this.timeout(parseInt(process.env.TASK_TEST_TIMEOUT) || 20000); + + it('run ANT with all inputs', async () => { + const testPath = path.join(__dirname, 'L0AllInputs.js') + const runner: MockTestRunner = new MockTestRunner(testPath); + await runner.runAsync(); + + assert(runner.ran('/usr/local/bin/ANT -version'), 'it should have run ANT -version'); + assert(runner.ran('/usr/local/bin/ANT -buildfile /build/build.xml'), 'it should have run ANT -buildfile ...'); + assert(runner.invokedToolCount == 2, 'should have only run ANT 2 times'); + assert(runner.stderr.length == 0, 'should not have written to stderr'); + assert(runner.succeeded, 'task should have succeeded'); + }) + + it('fails if missing antBuildFile input', async () => { + const testPath = path.join(__dirname, 'L0MissingAntBuildFile.js') + const runner: MockTestRunner = new MockTestRunner(testPath); + await runner.runAsync(); + + assert(runner.invokedToolCount == 0, 'should not have run ANT'); + assert(runner.failed, 'task should have failed'); + assert(runner.stdOutContained('Input required: antBuildFile'), 'wrong error message'); + }) + + it('fails if missing javaHomeSelection input', async () => { + const testPath = path.join(__dirname, 'L0MissingJavaHomeSelection.js') + const runner: MockTestRunner = new MockTestRunner(testPath); + await runner.runAsync(); + + assert(runner.invokedToolCount == 0, 'should not have run ANT'); + assert(runner.failed, 'task should have failed'); + assert(runner.stdOutContained('Input required: javaHomeSelection'), 'wrong error message"'); + }) + + it('fails if missing testResultsFiles input', async () => { + const testPath = path.join(__dirname, 'L0MissingTestResultsFiles.js') + const runner: MockTestRunner = new MockTestRunner(testPath); + await runner.runAsync(); + + assert(runner.invokedToolCount == 0, 'should not have run ANT'); + assert(runner.failed, 'task should have failed'); + assert(runner.stdOutContained('Input required: testResultsFiles'), 'wrong error message:"'); + }) + + it('run ANT with antHomeUserInputPath', async () => { + const testPath = path.join(__dirname, 'L0RunWithAntHomeUserInputPath.js') + const runner: MockTestRunner = new MockTestRunner(testPath); + await runner.runAsync(); + + assert(runner.ran('/usr/local/bin/ANT -version'), 'it should have run ANT -version'); + assert(runner.ran('/usr/local/bin/ANT -buildfile /build/build.xml'), 'it should have run ANT -buildfile ...'); + assert(runner.invokedToolCount == 2, 'should have only run ANT 2 times'); + assert(runner.stderr.length == 0, 'should not have written to stderr'); + assert(runner.succeeded, 'task should have succeeded'); + assert(runner.stdOutContained('Set ANT_HOME to /usr/local/bin/ANT2'), 'ANT_HOME not set correctly'); + }) + + it('run ANT with antHomeUserInputPath set to invalid path', async () => { + const testPath = path.join(__dirname, 'L0InvalidUserHomePath.js') + const runner: MockTestRunner = new MockTestRunner(testPath); + await runner.runAsync(); + + assert(runner.invokedToolCount == 0, 'should not have run ANT'); + assert(runner.failed, 'task should have failed'); + assert(runner.stdOutContained('Not found /usr/local/bin/ANT_invalid'), 'Invalid path not detected'); + }) + + it('run ANT with ANT_HOME not set', async () => { + const testPath = path.join(__dirname, 'L0AntHomeNotSet.js') + const runner: MockTestRunner = new MockTestRunner(testPath); + await runner.runAsync(); + + // The response file will cause ANT to fail, but we are looking for the warning about ANT_HOME + assert(runner.ran('/usr/local/bin/ANT -version'), 'it should have run ANT -version'); + assert(runner.invokedToolCount == 1, 'should have only run ANT once'); + assert(runner.failed, 'task should have failed'); + assert(runner.stdOutContained('The ANT_HOME environment variable is not set'), 'Missing JAVA_HOME not detected'); + }) + + it('run ANT with jdkVersion set to 1.8', async () => { + const testPath = path.join(__dirname, 'L0JDKSetTo8.js') + const runner: MockTestRunner = new MockTestRunner(testPath); + await runner.runAsync(); + + assert(runner.ran('/usr/local/bin/ANT -version'), 'it should have run ANT -version'); + assert(runner.ran('/usr/local/bin/ANT -buildfile /build/build.xml'), 'it should have run ANT -buildfile ...'); + assert.strictEqual(runner.invokedToolCount, 2, 'should have run ANT 2 times'); + assert(runner.stderr.length == 0, 'should not have written to stderr'); + assert(runner.succeeded, 'task should have succeeded'); + assert(runner.stdOutContained('Set JAVA_HOME to /user/local/bin/ANT8'), 'JAVA_HOME not set correctly'); + }) + + it('run ANT with jdkVersion set to 1.5', async () => { + const testPath = path.join(__dirname, 'L0JDKSetTo5.js') + const runner: MockTestRunner = new MockTestRunner(testPath); + await runner.runAsync(); + + if (isWindows) { + assert.strictEqual(runner.invokedToolCount, 1, 'should have run the reg query toolrunner'); + } else { + assert.strictEqual(runner.invokedToolCount, 0, 'should not have run tools'); + } + assert(runner.failed, 'task should have failed'); + assert(runner.stdOutContained('FailedToLocateSpecifiedJVM'), 'Should write FailedToLocateSpecifiedJVM error'); + }) + + it('run ANT valid inputs but it fails', async () => { + const testPath = path.join(__dirname, 'L0FailWithValidInputs.js') + const runner: MockTestRunner = new MockTestRunner(testPath); + await runner.runAsync(); + + // The response file will cause ANT to fail, but we are looking for the warning about ANT_HOME + assert(runner.ran('/usr/local/bin/ANT -version'), 'it should have run ANT -version'); + assert(runner.ran('/usr/local/bin/ANT -buildfile /build/build.xml'), 'it should have run ANT -buildfile ...'); + assert(runner.invokedToolCount == 2, 'should have only run ANT 2 times'); + assert(runner.failed, 'task should have failed'); + }) + + it('Ant build with Publish Test Results.', async () => { + const testPath = path.join(__dirname, 'L0PublishTestResults.js') + const runner: MockTestRunner = new MockTestRunner(testPath); + await runner.runAsync(); + + assert(runner.succeeded, 'The task should not have failed'); + assert(runner.stdout.search(/##vso\[results.publish type=JUnit;mergeResults=true;publishRunAttachments=true;resultFiles=\/user\/build\/fun\/test-123.xml;\]/) >= 0); + }) + + it('Ant build with Publish Test Results with no matching test result files.', async () => { + const testPath = path.join(__dirname, 'L0NoMatchingTestResults.js') + const runner: MockTestRunner = new MockTestRunner(testPath); + await runner.runAsync(); + + assert(runner.stdout.search(/##vso\[results.publish\]/) < 0, 'publish test results should have not got called.'); + assert(runner.stderr.length == 0, 'should not have written to stderr'); + assert(runner.stdOutContained('NoTestResults'), 'should have warned about lack of test results'); + assert(runner.succeeded, 'task should have succeeded'); + }) + + it('Ant build with Publish Test Results for failed builds.', async () => { + const testPath = path.join(__dirname, 'L0FailedBuilds.js') + const runner: MockTestRunner = new MockTestRunner(testPath); + await runner.runAsync(); + + assert(runner.stdout.search(/##vso\[results.publish type=JUnit;mergeResults=true;publishRunAttachments=true;resultFiles=\/user\/build\/fun\/test-123.xml;\]/) >= 0); + }) +}); diff --git a/Tasks/ANTV2/Tests/L0AllInputs.ts b/Tasks/ANTV2/Tests/L0AllInputs.ts new file mode 100644 index 000000000000..10d215ac3943 --- /dev/null +++ b/Tasks/ANTV2/Tests/L0AllInputs.ts @@ -0,0 +1,15 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + +let taskPath = path.join(__dirname, '..', 'anttask.js'); +let runner: TaskMockRunner = new TaskMockRunner(taskPath); + +runner.setInput('antBuildFile', '/build/build.xml'); // Make that checkPath returns true for this filename in the response file +runner.setInput('javaHomeSelection', 'JDKVersion'); +runner.setInput('jdkVersion', 'default'); +runner.setInput('testResultsFiles', '**/TEST-*.xml'); + +runner.setAnswers(answers.successAnswers); + +runner.run(); diff --git a/Tasks/ANTV2/Tests/L0AntHomeNotSet.ts b/Tasks/ANTV2/Tests/L0AntHomeNotSet.ts new file mode 100644 index 000000000000..f2927496aa4c --- /dev/null +++ b/Tasks/ANTV2/Tests/L0AntHomeNotSet.ts @@ -0,0 +1,17 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + +let taskPath = path.join(__dirname, '..', 'anttask.js'); +let runner: TaskMockRunner = new TaskMockRunner(taskPath); + +runner.setInput('antBuildFile', '/build/build.xml'); // Make that checkPath returns true for this filename in the response file +runner.setInput('javaHomeSelection', 'JDKVersion'); +runner.setInput('jdkVersion', 'default'); +runner.setInput('testResultsFiles', '**/TEST-*.xml'); + +runner.setAnswers(answers.versionFailAnswers); + +delete process.env['ANT_HOME']; + +runner.run(); diff --git a/Tasks/ANTV2/Tests/L0FailWithValidInputs.ts b/Tasks/ANTV2/Tests/L0FailWithValidInputs.ts new file mode 100644 index 000000000000..9fc326d786d6 --- /dev/null +++ b/Tasks/ANTV2/Tests/L0FailWithValidInputs.ts @@ -0,0 +1,15 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + +let taskPath = path.join(__dirname, '..', 'anttask.js'); +let runner: TaskMockRunner = new TaskMockRunner(taskPath); + +runner.setInput('antBuildFile', '/build/build.xml'); +runner.setInput('javaHomeSelection', 'JDKVersion'); +runner.setInput('jdkVersion', 'default'); +runner.setInput('testResultsFiles', '**/TEST-*.xml'); + +runner.setAnswers(answers.failAnswers); + +runner.run(); diff --git a/Tasks/ANTV2/Tests/L0FailedBuilds.ts b/Tasks/ANTV2/Tests/L0FailedBuilds.ts new file mode 100644 index 000000000000..548228eddd73 --- /dev/null +++ b/Tasks/ANTV2/Tests/L0FailedBuilds.ts @@ -0,0 +1,18 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + + +let taskPath = path.join(__dirname, '..', 'anttask.js'); +let runner: TaskMockRunner = new TaskMockRunner(taskPath); + +runner.setInput('antBuildFile', '/build/build.xml'); // Make that checkPath returns true for this filename in the response file +runner.setInput('javaHomeSelection', 'JDKVersion'); +runner.setInput('jdkVersion', 'default'); +runner.setInput('testResultsFiles', '**/TEST-*.xml'); +runner.setInput('publishJUnitResults', 'true'); +runner.setInput('codeCoverageTool', 'None'); + +runner.setAnswers(answers.failAnswers); + +runner.run(); diff --git a/Tasks/ANTV2/Tests/L0InvalidUserHomePath.ts b/Tasks/ANTV2/Tests/L0InvalidUserHomePath.ts new file mode 100644 index 000000000000..e99d78796752 --- /dev/null +++ b/Tasks/ANTV2/Tests/L0InvalidUserHomePath.ts @@ -0,0 +1,16 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + +let taskPath = path.join(__dirname, '..', 'anttask.js'); +let runner: TaskMockRunner = new TaskMockRunner(taskPath); + +runner.setInput('antBuildFile', '/build/build.xml'); +runner.setInput('javaHomeSelection', 'JDKVersion'); +runner.setInput('jdkVersion', 'default'); +runner.setInput('testResultsFiles', '**/TEST-*.xml'); +runner.setInput('antHomeUserInputPath', '/usr/local/bin/ANT_invalid'); + +runner.setAnswers(answers.versionFailAnswers); + +runner.run(); diff --git a/Tasks/ANTV2/Tests/L0JDKSetTo5.ts b/Tasks/ANTV2/Tests/L0JDKSetTo5.ts new file mode 100644 index 000000000000..bbc0f0954791 --- /dev/null +++ b/Tasks/ANTV2/Tests/L0JDKSetTo5.ts @@ -0,0 +1,16 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + +let taskPath = path.join(__dirname, '..', 'anttask.js'); +let runner: TaskMockRunner = new TaskMockRunner(taskPath); + +runner.setInput('antBuildFile', '/build/build.xml'); +runner.setInput('javaHomeSelection', 'JDKVersion'); +runner.setInput('jdkVersion', '1.5'); +runner.setInput('jdkArchitecture', 'x86'); +runner.setInput('testResultsFiles', '**/TEST-*.xml'); + +runner.setAnswers(answers.successAnswers); + +runner.run(); diff --git a/Tasks/ANTV2/Tests/L0JDKSetTo8.ts b/Tasks/ANTV2/Tests/L0JDKSetTo8.ts new file mode 100644 index 000000000000..ee69c7d04d50 --- /dev/null +++ b/Tasks/ANTV2/Tests/L0JDKSetTo8.ts @@ -0,0 +1,19 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + +let taskPath = path.join(__dirname, '..', 'anttask.js'); +let runner: TaskMockRunner = new TaskMockRunner(taskPath); + +runner.setInput('antBuildFile', '/build/build.xml'); +runner.setInput('javaHomeSelection', 'JDKVersion'); +runner.setInput('jdkVersion', '1.8'); +runner.setInput('jdkArchitecture', 'x86'); +runner.setInput('testResultsFiles', '**/TEST-*.xml'); + +runner.setAnswers(answers.successAnswers); + +process.env['JAVA_HOME_8_X86'] = '/user/local/bin/ANT8'; +process.env['JAVA_HOME_8_X64'] = '/user/local/bin/ANT8'; + +runner.run(); diff --git a/Tasks/ANTV2/Tests/L0MissingAntBuildFile.ts b/Tasks/ANTV2/Tests/L0MissingAntBuildFile.ts new file mode 100644 index 000000000000..6e6ddeeed4d7 --- /dev/null +++ b/Tasks/ANTV2/Tests/L0MissingAntBuildFile.ts @@ -0,0 +1,14 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + +let taskPath = path.join(__dirname, '..', 'anttask.js'); +let runner: TaskMockRunner = new TaskMockRunner(taskPath); + +runner.setInput('javaHomeSelection', 'JDKVersion'); +runner.setInput('jdkVersion', 'default'); +runner.setInput('testResultsFiles', '**/TEST-*.xml'); + +runner.setAnswers(answers.successAnswers); + +runner.run(); diff --git a/Tasks/ANTV2/Tests/L0MissingJavaHomeSelection.ts b/Tasks/ANTV2/Tests/L0MissingJavaHomeSelection.ts new file mode 100644 index 000000000000..1df24ee56f42 --- /dev/null +++ b/Tasks/ANTV2/Tests/L0MissingJavaHomeSelection.ts @@ -0,0 +1,14 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + +let taskPath = path.join(__dirname, '..', 'anttask.js'); +let runner: TaskMockRunner = new TaskMockRunner(taskPath); + +runner.setInput('antBuildFile', '/build/build.xml'); +runner.setInput('jdkVersion', 'default'); +runner.setInput('testResultsFiles', '**/TEST-*.xml'); + +runner.setAnswers(answers.successAnswers); + +runner.run(); diff --git a/Tasks/ANTV2/Tests/L0MissingTestResultsFiles.ts b/Tasks/ANTV2/Tests/L0MissingTestResultsFiles.ts new file mode 100644 index 000000000000..e56109d5d6b2 --- /dev/null +++ b/Tasks/ANTV2/Tests/L0MissingTestResultsFiles.ts @@ -0,0 +1,14 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + +let taskPath = path.join(__dirname, '..', 'anttask.js'); +let runner: TaskMockRunner = new TaskMockRunner(taskPath); + +runner.setInput('antBuildFile', '/build/build.xml'); // Make that checkPath returns true for this filename in the response file +runner.setInput('javaHomeSelection', 'JDKVersion'); +runner.setInput('jdkVersion', 'default'); + +runner.setAnswers(answers.successAnswers); + +runner.run(); diff --git a/Tasks/ANTV2/Tests/L0NoMatchingTestResults.ts b/Tasks/ANTV2/Tests/L0NoMatchingTestResults.ts new file mode 100644 index 000000000000..249d2faaf53f --- /dev/null +++ b/Tasks/ANTV2/Tests/L0NoMatchingTestResults.ts @@ -0,0 +1,17 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + +let taskPath = path.join(__dirname, '..', 'anttask.js'); +let runner: TaskMockRunner = new TaskMockRunner(taskPath); + +runner.setInput('antBuildFile', '/build/build.xml'); // Make that checkPath returns true for this filename in the response file +runner.setInput('javaHomeSelection', 'JDKVersion'); +runner.setInput('jdkVersion', 'default'); +runner.setInput('testResultsFiles', '**/InvalidTestFilter-*.xml'); +runner.setInput('publishJUnitResults', 'true'); +runner.setInput('codeCoverageTool', 'None'); + +runner.setAnswers(answers.successAnswers); + +runner.run(); diff --git a/Tasks/ANTV2/Tests/L0PublishTestResults.ts b/Tasks/ANTV2/Tests/L0PublishTestResults.ts new file mode 100644 index 000000000000..e3cce17f80bd --- /dev/null +++ b/Tasks/ANTV2/Tests/L0PublishTestResults.ts @@ -0,0 +1,19 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + +let taskPath = path.join(__dirname, '..', 'anttask.js'); +let runner: TaskMockRunner = new TaskMockRunner(taskPath); + +runner.setInput('antBuildFile', '/build/build.xml'); // Make that checkPath returns true for this filename in the response file +runner.setInput('javaHomeSelection', 'JDKVersion'); +runner.setInput('jdkVersion', 'default'); +runner.setInput('testResultsFiles', '**/TEST-*.xml'); +runner.setInput('publishJUnitResults', 'true'); +runner.setInput('codeCoverageTool', 'None'); + +runner.setAnswers(answers.successAnswers); + +process.env['System.DefaultWorkingDirectory'] = '/user/build'; + +runner.run(); diff --git a/Tasks/ANTV2/Tests/L0RunWithAntHomeUserInputPath.ts b/Tasks/ANTV2/Tests/L0RunWithAntHomeUserInputPath.ts new file mode 100644 index 000000000000..53b3d2daa6ed --- /dev/null +++ b/Tasks/ANTV2/Tests/L0RunWithAntHomeUserInputPath.ts @@ -0,0 +1,16 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + +let taskPath = path.join(__dirname, '..', 'anttask.js'); +let runner: TaskMockRunner = new TaskMockRunner(taskPath); + +runner.setInput('antBuildFile', '/build/build.xml'); +runner.setInput('javaHomeSelection', 'JDKVersion'); +runner.setInput('jdkVersion', 'default'); +runner.setInput('testResultsFiles', '**/TEST-*.xml'); +runner.setInput('antHomeUserInputPath', '/usr/local/bin/ANT2'); + +runner.setAnswers(answers.successAnswers); + +runner.run(); diff --git a/Tasks/ANTV2/Tests/answers.ts b/Tasks/ANTV2/Tests/answers.ts new file mode 100644 index 000000000000..ed2ddf81c437 --- /dev/null +++ b/Tasks/ANTV2/Tests/answers.ts @@ -0,0 +1,160 @@ +import { TaskLibAnswers } from 'azure-pipelines-task-lib/mock-answer'; + +export const successAnswers: TaskLibAnswers = { + "which": { + "ant": "/usr/local/bin/ANT", + "node": "/usr/local/bin/node" + }, + "exec": { + "/usr/local/bin/ANT -version": { + "code": 0, + "stdout": "Apache Ant(TM) version 1.9.7 compiled on April 9 2016" + }, + "/usr/local/bin/ANT -buildfile /build/build.xml": { + "code": 0, + "stdout": "" + }, + "/usr/local/bin/ANT -buildfile /build/build.xml CodeCoverage_9064e1d0": { + "code": 0, + "stdout": "" + }, + "reg query HKLM\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.5 /v JavaHome /reg:32": { + "code": 222, + "stdout": "" + }, + "reg query HKLM\\SOFTWARE\\JavaSoft\\Java Development Kit\\ /f 1.5 /k": { + "code": 50, + "stdout": "" + } + }, + "checkPath": { + "/usr/local/bin/ANT": true, + "/build/build.xml": true, + "/usr/local/bin/ANT2": true + }, + "getVariable": { + "ANT_HOME": "/user/local/bin/ANT", + "JAVA_HOME_8_x86": "/user/local/bin/ANT8", + "JAVA_HOME_8_X64": "/user/local/bin/ANT8", + "System.DefaultWorkingDirectory": "/user/build" + }, + "rmRF": { + "\\build\\InstrumentedClasses": { + "success": true, + "message": "success" + }, + "\\build\\cobertura.ser": { + "success": true, + "message": "success" + }, + "\\build\\CCReport43F6D5EF": { + "success": true, + "message": "success" + }, + "\\build\\CCReportBuildA4D283EG.xml": { + "success": true, + "message": "success" + }, + "/build/InstrumentedClasses": { + "success": true, + "message": "success" + }, + "/build/cobertura.ser": { + "success": true, + "message": "success" + }, + "/build/CCReport43F6D5EF": { + "success": true, + "message": "success" + }, + "/build/CCReportBuildA4D283EG.xml": { + "success": true, + "message": "success" + } + }, + "find": { + "/user/build": [ + "/user/build/fun/test-123.xml" + ] + }, + "findMatch": { + "**/TEST-*.xml": [ + "/user/build/fun/test-123.xml" + ] + } +}; + +export const failAnswers: TaskLibAnswers = { + "which": { + "ant": "/usr/local/bin/ANT", + "node": "/usr/local/bin/node" + }, + "exec": { + "/usr/local/bin/ANT -version": { + "code": 0, + "stdout": "Apache Ant(TM) version 1.9.7 compiled on April 9 2016" + }, + "/usr/local/bin/ANT -buildfile /build/build.xml": { + "code": 222, + "stdout": "" + } + }, + "checkPath": { + "/usr/local/bin/ANT": true, + "/build/build.xml": true + }, + "getVariable": { + "ANT_HOME": "/user/local/bin/ANT" + }, + "rmRF": { + "\\build\\InstrumentedClasses": { + "success": true, + "message": "success" + }, + "/build/InstrumentedClasses": { + "success": true, + "message": "success" + } + }, + "find": { + "/user/build": [ + "/user/build/fun/test-123.xml" + ] + }, + "findMatch": { + "**/TEST-*.xml": [ + "/user/build/fun/test-123.xml" + ] + } +}; + +export const versionFailAnswers: TaskLibAnswers = { + "which": { + "ant": "/usr/local/bin/ANT", + "node": "/usr/local/bin/node" + }, + "exec": { + "/usr/local/bin/ANT -version": { + "code": 222, + "stdout": "Apache Ant(TM) version 1.9.7 compiled on April 9 2016" + }, + "/usr/local/bin/ANT -buildfile /build/build.xml": { + "code": 0, + "stdout": "" + } + }, + "checkPath" : { + "/usr/local/bin/ANT": true, + "/build/build.xml": true + }, + "rmRF": { + "\\build\\InstrumentedClasses": { + "success": true, + "message": "success" + }, + "/build/InstrumentedClasses": { + "success": true, + "message": "success" + } + } +} diff --git a/Tasks/ANTV2/Tests/package-lock.json b/Tasks/ANTV2/Tests/package-lock.json new file mode 100644 index 000000000000..6f85833d69d0 --- /dev/null +++ b/Tasks/ANTV2/Tests/package-lock.json @@ -0,0 +1,14 @@ +{ + "name": "antv1-tests", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@types/mocha": { + "version": "5.2.7", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/mocha/-/mocha-5.2.7.tgz", + "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==", + "dev": true + } + } +} diff --git a/Tasks/ANTV2/Tests/package.json b/Tasks/ANTV2/Tests/package.json new file mode 100644 index 000000000000..37725de724e6 --- /dev/null +++ b/Tasks/ANTV2/Tests/package.json @@ -0,0 +1,22 @@ +{ + "name": "antv1-tests", + "version": "1.0.0", + "description": "Azure Pipelines Ant V1 Task Tests", + "main": "L0.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/Microsoft/azure-pipelines-tasks.git" + }, + "author": "Microsoft Corporation", + "license": "MIT", + "bugs": { + "url": "https://github.com/Microsoft/azure-pipelines-tasks/issues" + }, + "homepage": "https://github.com/Microsoft/azure-pipelines-tasks#readme", + "devDependencies": { + "@types/mocha": "^5.2.7" + } +} diff --git a/Tasks/ANTV2/ThirdPartyNotice.txt b/Tasks/ANTV2/ThirdPartyNotice.txt new file mode 100644 index 000000000000..e02a9dc6967a --- /dev/null +++ b/Tasks/ANTV2/ThirdPartyNotice.txt @@ -0,0 +1,1935 @@ + +THIRD-PARTY SOFTWARE NOTICES AND INFORMATION +Do Not Translate or Localize + +This Azure DevOps extension (ANTV1) is based on or incorporates material from the projects listed below (Third Party IP). The original copyright notice and the license under which Microsoft received such Third Party IP, are set forth below. Such licenses and notices are provided for informational purposes only. Microsoft licenses the Third Party IP to you under the licensing terms for the Azure DevOps extension. Microsoft reserves all other rights not expressly granted under this agreement, whether by implication, estoppel or otherwise. + +1. @types/node (git+https://github.com/DefinitelyTyped/DefinitelyTyped.git) +2. @types/q (git+https://github.com/DefinitelyTyped/DefinitelyTyped.git) +3. balanced-match (git://github.com/juliangruber/balanced-match.git) +4. boolbase (git+https://github.com/fb55/boolbase.git) +5. brace-expansion (git://github.com/juliangruber/brace-expansion.git) +6. cheerio (git://github.com/cheeriojs/cheerio.git) +7. codecoverage-tools (git://github.com/microsoft/azure-pipelines-tasks-coverage-tools.git) +8. concat-map (git://github.com/substack/node-concat-map.git) +9. core-util-is (git://github.com/isaacs/core-util-is.git) +10. css-select (git://github.com/fb55/css-select.git) +11. css-what (git+https://github.com/fb55/css-what.git) +12. dom-serializer (git://github.com/cheeriojs/dom-renderer.git) +13. domelementtype (git://github.com/FB55/domelementtype.git) +14. domelementtype (git://github.com/FB55/domelementtype.git) +15. domhandler (git://github.com/fb55/DomHandler.git) +16. domutils (git://github.com/FB55/domutils.git) +17. entities (git://github.com/fb55/node-entities.git) +18. fs-extra (git+https://github.com/jprichardson/node-fs-extra.git) +19. fs.realpath (git+https://github.com/isaacs/fs.realpath.git) +20. glob (git://github.com/isaacs/node-glob.git) +21. glob (git://github.com/isaacs/node-glob.git) +22. glob (git://github.com/isaacs/node-glob.git) +23. graceful-fs (git+https://github.com/isaacs/node-graceful-fs.git) +24. htmlparser2 (git://github.com/fb55/htmlparser2.git) +25. inflight (git+https://github.com/npm/inflight.git) +26. inherits (git://github.com/isaacs/inherits.git) +27. isarray (git://github.com/juliangruber/isarray.git) +28. jsonfile (git+ssh://git@github.com/jprichardson/node-jsonfile.git) +29. klaw (git+https://github.com/jprichardson/node-klaw.git) +30. lodash.assignin (git+https://github.com/lodash/lodash.git) +31. lodash.bind (git+https://github.com/lodash/lodash.git) +32. lodash.defaults (git+https://github.com/lodash/lodash.git) +33. lodash.filter (git+https://github.com/lodash/lodash.git) +34. lodash.flatten (git+https://github.com/lodash/lodash.git) +35. lodash.foreach (git+https://github.com/lodash/lodash.git) +36. lodash.map (git+https://github.com/lodash/lodash.git) +37. lodash.merge (git+https://github.com/lodash/lodash.git) +38. lodash.pick (git+https://github.com/lodash/lodash.git) +39. lodash.reduce (git+https://github.com/lodash/lodash.git) +40. lodash.reject (git+https://github.com/lodash/lodash.git) +41. lodash.some (git+https://github.com/lodash/lodash.git) +42. minimatch (git://github.com/isaacs/minimatch.git) +43. mockery (git://github.com/mfncooper/mockery.git) +44. node-uuid (git+https://github.com/broofa/node-uuid.git) +45. nth-check (git+https://github.com/fb55/nth-check.git) +46. once (git://github.com/isaacs/once.git) +47. os (git+https://github.com/DiegoRBaquero/node-os.git) +48. path-is-absolute (git+https://github.com/sindresorhus/path-is-absolute.git) +49. process-nextick-args (git+https://github.com/calvinmetcalf/process-nextick-args.git) +50. q (git://github.com/kriskowal/q.git) +51. readable-stream (git://github.com/nodejs/readable-stream.git) +52. rimraf (git://github.com/isaacs/rimraf.git) +53. safe-buffer (git://github.com/feross/safe-buffer.git) +54. sax (git://github.com/isaacs/sax-js.git) +55. semver (git+https://github.com/npm/node-semver.git) +56. shelljs (git://github.com/arturadib/shelljs.git) +57. string_decoder (git://github.com/nodejs/string_decoder.git) +58. strip-bom (git+https://github.com/sindresorhus/strip-bom.git) +59. util-deprecate (git://github.com/TooTallNate/util-deprecate.git) +60. uuid (git+https://github.com/kelektiv/node-uuid.git) +61. vso-node-api (git+https://github.com/Microsoft/vso-node-api.git) +62. vsts-task-lib (git+https://github.com/Microsoft/vsts-task-lib.git) +63. vsts-task-lib (git+https://github.com/Microsoft/vsts-task-lib.git) +64. vsts-task-lib (git+https://github.com/Microsoft/vsts-task-lib.git) +65. wrappy (git+https://github.com/npm/wrappy.git) +66. xml2js (git+https://github.com/Leonidas-from-XIV/node-xml2js.git) +67. xmlbuilder (git://github.com/oozcitak/xmlbuilder-js.git) + + +%% @types/node NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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 +========================================= +END OF @types/node NOTICES, INFORMATION, AND LICENSE + +%% @types/q NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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 +========================================= +END OF @types/q NOTICES, INFORMATION, AND LICENSE + +%% balanced-match NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +(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. +========================================= +END OF balanced-match NOTICES, INFORMATION, AND LICENSE + +%% boolbase NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +NO LICENSE FOUND +========================================= +END OF boolbase NOTICES, INFORMATION, AND LICENSE + +%% brace-expansion NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF brace-expansion NOTICES, INFORMATION, AND LICENSE + +%% cheerio NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +NO LICENSE FOUND +========================================= +END OF cheerio NOTICES, INFORMATION, AND LICENSE + +%% codecoverage-tools NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +NO LICENSE FOUND +========================================= +END OF codecoverage-tools NOTICES, INFORMATION, AND LICENSE + +%% concat-map NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF concat-map NOTICES, INFORMATION, AND LICENSE + +%% core-util-is NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF core-util-is NOTICES, INFORMATION, AND LICENSE + +%% css-select NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) Felix Böhm +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 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, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +========================================= +END OF css-select NOTICES, INFORMATION, AND LICENSE + +%% css-what NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) Felix Böhm +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 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, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +========================================= +END OF css-what NOTICES, INFORMATION, AND LICENSE + +%% dom-serializer NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +License + +(The MIT License) + +Copyright (c) 2014 The cheeriojs 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 dom-serializer NOTICES, INFORMATION, AND LICENSE + +%% domelementtype NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) Felix Böhm +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 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, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +========================================= +END OF domelementtype NOTICES, INFORMATION, AND LICENSE + +%% domelementtype NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) Felix Böhm +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 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, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +========================================= +END OF domelementtype NOTICES, INFORMATION, AND LICENSE + +%% domhandler NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) Felix Böhm +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 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, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +========================================= +END OF domhandler NOTICES, INFORMATION, AND LICENSE + +%% domutils NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) Felix Böhm +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 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, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +========================================= +END OF domutils NOTICES, INFORMATION, AND LICENSE + +%% entities NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) Felix Böhm +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 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, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +========================================= +END OF entities NOTICES, INFORMATION, AND LICENSE + +%% fs-extra NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +(The MIT License) + +Copyright (c) 2011-2016 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. +========================================= +END OF fs-extra NOTICES, INFORMATION, AND LICENSE + +%% fs.realpath NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF fs.realpath NOTICES, INFORMATION, AND LICENSE + +%% glob NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF glob NOTICES, INFORMATION, AND LICENSE + +%% glob NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF glob NOTICES, INFORMATION, AND LICENSE + +%% glob NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF glob NOTICES, INFORMATION, AND LICENSE + +%% graceful-fs NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF graceful-fs NOTICES, INFORMATION, AND LICENSE + +%% htmlparser2 NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright 2010, 2011, Chris Winberry . 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. +========================================= +END OF htmlparser2 NOTICES, INFORMATION, AND LICENSE + +%% inflight NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF inflight NOTICES, INFORMATION, AND LICENSE + +%% inherits NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF inherits NOTICES, INFORMATION, AND LICENSE + +%% isarray NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +NO LICENSE FOUND +========================================= +END OF isarray NOTICES, INFORMATION, AND LICENSE + +%% jsonfile NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +(The MIT License) + +Copyright (c) 2012-2015, 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. +========================================= +END OF jsonfile NOTICES, INFORMATION, AND LICENSE + +%% klaw NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +(The MIT License) + +Copyright (c) 2015-2016 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. +========================================= +END OF klaw NOTICES, INFORMATION, AND LICENSE + +%% lodash.assignin NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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 and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. +========================================= +END OF lodash.assignin NOTICES, INFORMATION, AND LICENSE + +%% lodash.bind NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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 and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. +========================================= +END OF lodash.bind NOTICES, INFORMATION, AND LICENSE + +%% lodash.defaults NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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 and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. +========================================= +END OF lodash.defaults NOTICES, INFORMATION, AND LICENSE + +%% lodash.filter NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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 and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. +========================================= +END OF lodash.filter NOTICES, INFORMATION, AND LICENSE + +%% lodash.flatten NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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 and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. +========================================= +END OF lodash.flatten NOTICES, INFORMATION, AND LICENSE + +%% lodash.foreach NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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 and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. +========================================= +END OF lodash.foreach NOTICES, INFORMATION, AND LICENSE + +%% lodash.map NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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 and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. +========================================= +END OF lodash.map NOTICES, INFORMATION, AND LICENSE + +%% lodash.merge NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright JS Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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 and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. +========================================= +END OF lodash.merge NOTICES, INFORMATION, AND LICENSE + +%% lodash.pick NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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 and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. +========================================= +END OF lodash.pick NOTICES, INFORMATION, AND LICENSE + +%% lodash.reduce NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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 and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. +========================================= +END OF lodash.reduce NOTICES, INFORMATION, AND LICENSE + +%% lodash.reject NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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 and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. +========================================= +END OF lodash.reject NOTICES, INFORMATION, AND LICENSE + +%% lodash.some NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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 and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. +========================================= +END OF lodash.some NOTICES, INFORMATION, AND LICENSE + +%% minimatch NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF minimatch NOTICES, INFORMATION, AND LICENSE + +%% mockery NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyrights for code authored by Yahoo! Inc. is licensed under the following + terms: + + MIT License + + Copyright (c) 2011 Yahoo! 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. +========================================= +END OF mockery NOTICES, INFORMATION, AND LICENSE + +%% node-uuid NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) + +Copyright (c) 2010-2012 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. +========================================= +END OF node-uuid NOTICES, INFORMATION, AND LICENSE + +%% nth-check NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +NO LICENSE FOUND +========================================= +END OF nth-check NOTICES, INFORMATION, AND LICENSE + +%% once NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF once NOTICES, INFORMATION, AND LICENSE + +%% os NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) + +Copyright (c) 2016 Diego Rodríguez Baquero + +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 os NOTICES, INFORMATION, AND LICENSE + +%% path-is-absolute NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF path-is-absolute NOTICES, INFORMATION, AND LICENSE + +%% process-nextick-args NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +# Copyright (c) 2015 Calvin Metcalf + +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 process-nextick-args NOTICES, INFORMATION, AND LICENSE + +%% q NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright 2009–2017 Kristopher Michael Kowal. 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. +========================================= +END OF q NOTICES, INFORMATION, AND LICENSE + +%% readable-stream NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Node.js is licensed for use as follows: + +""" +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. +""" + +This license applies to parts of Node.js originating from the +https://github.com/joyent/node repository: + +""" +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. +""" +========================================= +END OF readable-stream NOTICES, INFORMATION, AND LICENSE + +%% rimraf NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF rimraf NOTICES, INFORMATION, AND LICENSE + +%% safe-buffer NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF safe-buffer NOTICES, INFORMATION, AND LICENSE + +%% sax NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF sax NOTICES, INFORMATION, AND LICENSE + +%% semver NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF semver NOTICES, INFORMATION, AND LICENSE + +%% shelljs NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2012, Artur Adib +All rights reserved. + +You may use this project under the terms of the New BSD license as follows: + +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 Artur Adib nor the + names of the 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 ARTUR ADIB 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. +========================================= +END OF shelljs NOTICES, INFORMATION, AND LICENSE + +%% string_decoder NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Node.js is licensed for use as follows: + +""" +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. +""" + +This license applies to parts of Node.js originating from the +https://github.com/joyent/node repository: + +""" +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. +""" +========================================= +END OF string_decoder NOTICES, INFORMATION, AND LICENSE + +%% strip-bom NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF strip-bom NOTICES, INFORMATION, AND LICENSE + +%% util-deprecate NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +(The MIT License) + +Copyright (c) 2014 Nathan Rajlich + +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 util-deprecate NOTICES, INFORMATION, AND LICENSE + +%% uuid NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) + +Copyright (c) 2010-2016 Robert Kieffer 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. +========================================= +END OF uuid NOTICES, INFORMATION, AND LICENSE + +%% vso-node-api NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +NO LICENSE FOUND +========================================= +END OF vso-node-api NOTICES, INFORMATION, AND LICENSE + +%% vsts-task-lib NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) + +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. +========================================= +END OF vsts-task-lib NOTICES, INFORMATION, AND LICENSE + +%% vsts-task-lib NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) + +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. +========================================= +END OF vsts-task-lib NOTICES, INFORMATION, AND LICENSE + +%% vsts-task-lib NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) + +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. +========================================= +END OF vsts-task-lib NOTICES, INFORMATION, AND LICENSE + +%% wrappy NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF wrappy NOTICES, INFORMATION, AND LICENSE + +%% xml2js NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright 2010, 2011, 2012, 2013. 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. +========================================= +END OF xml2js NOTICES, INFORMATION, AND LICENSE + +%% xmlbuilder NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) + +Copyright (c) 2013 Ozgur Ozcitak + +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 xmlbuilder NOTICES, INFORMATION, AND LICENSE + diff --git a/Tasks/ANTV2/_buildConfigs/Node20/.npmrc b/Tasks/ANTV2/_buildConfigs/Node20/.npmrc new file mode 100644 index 000000000000..969ccea07661 --- /dev/null +++ b/Tasks/ANTV2/_buildConfigs/Node20/.npmrc @@ -0,0 +1,3 @@ +registry=https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/ + +always-auth=true \ No newline at end of file diff --git a/Tasks/ANTV2/_buildConfigs/Node20/Tests/.npmrc b/Tasks/ANTV2/_buildConfigs/Node20/Tests/.npmrc new file mode 100644 index 000000000000..969ccea07661 --- /dev/null +++ b/Tasks/ANTV2/_buildConfigs/Node20/Tests/.npmrc @@ -0,0 +1,3 @@ +registry=https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/ + +always-auth=true \ No newline at end of file diff --git a/Tasks/ANTV2/_buildConfigs/Node20/Tests/package-lock.json b/Tasks/ANTV2/_buildConfigs/Node20/Tests/package-lock.json new file mode 100644 index 000000000000..f7b6ad94e7e6 --- /dev/null +++ b/Tasks/ANTV2/_buildConfigs/Node20/Tests/package-lock.json @@ -0,0 +1,22 @@ +{ + "name": "antv1-tests", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "antv1-tests", + "version": "1.0.0", + "license": "MIT", + "devDependencies": { + "@types/mocha": "^5.2.7" + } + }, + "node_modules/@types/mocha": { + "version": "5.2.7", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/mocha/-/mocha-5.2.7.tgz", + "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==", + "dev": true + } + } +} diff --git a/Tasks/ANTV2/_buildConfigs/Node20/Tests/package.json b/Tasks/ANTV2/_buildConfigs/Node20/Tests/package.json new file mode 100644 index 000000000000..37725de724e6 --- /dev/null +++ b/Tasks/ANTV2/_buildConfigs/Node20/Tests/package.json @@ -0,0 +1,22 @@ +{ + "name": "antv1-tests", + "version": "1.0.0", + "description": "Azure Pipelines Ant V1 Task Tests", + "main": "L0.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/Microsoft/azure-pipelines-tasks.git" + }, + "author": "Microsoft Corporation", + "license": "MIT", + "bugs": { + "url": "https://github.com/Microsoft/azure-pipelines-tasks/issues" + }, + "homepage": "https://github.com/Microsoft/azure-pipelines-tasks#readme", + "devDependencies": { + "@types/mocha": "^5.2.7" + } +} diff --git a/Tasks/ANTV2/_buildConfigs/Node20/package-lock.json b/Tasks/ANTV2/_buildConfigs/Node20/package-lock.json new file mode 100644 index 000000000000..647e5ac283c0 --- /dev/null +++ b/Tasks/ANTV2/_buildConfigs/Node20/package-lock.json @@ -0,0 +1,1102 @@ +{ + "name": "Ant", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "Ant", + "license": "MIT", + "dependencies": { + "@types/mocha": "^5.2.7", + "@types/node": "^20.3.1", + "azure-pipelines-task-lib": "^4.15.0", + "azure-pipelines-tasks-codecoverage-tools": "2.201.0", + "azure-pipelines-tasks-java-common": "2.198.1", + "xml2js": "^0.6.2" + }, + "devDependencies": { + "typescript": "5.1.6" + } + }, + "node_modules/@types/cheerio": { + "version": "0.22.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/cheerio/-/cheerio-0.22.0.tgz", + "integrity": "sha512-dVL3RISC1jdrXilyqmPIga6LmjHwrDbWQoUyHuf/bGjP+HiNtyFJ3Gga1FCu55UYOqbuUGLPzkGkcsplkpSm8Q==" + }, + "node_modules/@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/form-data": { + "version": "0.0.33", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/mocha": { + "version": "5.2.7", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/mocha/-/mocha-5.2.7.tgz", + "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==" + }, + "node_modules/@types/node": { + "version": "20.7.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/node/-/node-20.7.0.tgz", + "integrity": "sha512-zI22/pJW2wUZOVyguFaUL1HABdmSVxpXrzIqkjsHmyUjNhPoWM1CKfvVuXfetHhIok4RY573cqS0mZ1SJEnoTg==" + }, + "node_modules/@types/q": { + "version": "1.5.5", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/q/-/q-1.5.5.tgz", + "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "node_modules/@types/semver": { + "version": "7.3.9", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/semver/-/semver-7.3.9.tgz", + "integrity": "sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==" + }, + "node_modules/adm-zip": { + "version": "0.5.15", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/adm-zip/-/adm-zip-0.5.15.tgz", + "integrity": "sha512-jYPWSeOA8EFoZnucrKCNihqBjoEGQSU4HKgHYQgKNEQ0pQF9a/DYuo/+fAxY76k4qe75LUlLWpAM1QWcBMTOKw==", + "engines": { + "node": ">=12.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/azure-pipelines-task-lib": { + "version": "4.15.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/azure-pipelines-task-lib/-/azure-pipelines-task-lib-4.15.0.tgz", + "integrity": "sha512-Y72FjLTE2CAM9KrBXzc6vjelTBCpdYb2NkyFB0hwksTrhA3q8nsF680dofuTeXztQ94UTpkK27hpgSHnqYf5ZA==", + "dependencies": { + "adm-zip": "^0.5.10", + "minimatch": "3.0.5", + "nodejs-file-downloader": "^4.11.1", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "uuid": "^3.0.1" + } + }, + "node_modules/azure-pipelines-task-lib/node_modules/minimatch": { + "version": "3.0.5", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/azure-pipelines-tasks-codecoverage-tools": { + "version": "2.201.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/azure-pipelines-tasks-codecoverage-tools/-/azure-pipelines-tasks-codecoverage-tools-2.201.0.tgz", + "integrity": "sha512-3yl6vbw62gXWxBxMYi5XOF0Rq7JE3KjQtZHDeTDSNLGttsjlm88jEnYU+lsjOqFtnUbnWTX8HB96Vx5c5iL+fA==", + "dependencies": { + "@types/cheerio": "0.22.0", + "@types/node": "^10.17.0", + "@types/q": "^1.5.4", + "azure-pipelines-task-lib": "^3.1.0", + "cheerio": "1.0.0-rc.6", + "fs-extra": "^0.30.0", + "os": "^0.1.1", + "strip-bom": "^3.0.0", + "xml2js": "^0.4.17" + } + }, + "node_modules/azure-pipelines-tasks-codecoverage-tools/node_modules/@types/node": { + "version": "10.17.60", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + }, + "node_modules/azure-pipelines-tasks-codecoverage-tools/node_modules/azure-pipelines-task-lib": { + "version": "3.4.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/azure-pipelines-task-lib/-/azure-pipelines-task-lib-3.4.0.tgz", + "integrity": "sha512-3eC4OTFw+7xD7A2aUhxR/j+jRlTI+vVfS0CGxt1pCLs4c/KmY0tQWgbqjD3157kmiucWxELBvgZHaD2gCBe9fg==", + "license": "MIT", + "dependencies": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + } + }, + "node_modules/azure-pipelines-tasks-codecoverage-tools/node_modules/minimatch": { + "version": "3.0.5", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/azure-pipelines-tasks-codecoverage-tools/node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/azure-pipelines-tasks-java-common": { + "version": "2.198.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/azure-pipelines-tasks-java-common/-/azure-pipelines-tasks-java-common-2.198.1.tgz", + "integrity": "sha512-LaEdGpC4/5nt3krZOJNIH8r+ZxOEhxocpTH/J//Vx98LeYC6zLGyrmCdTLBrY58nJ9Bo7PD/0ARrasXFPv5VkQ==", + "dependencies": { + "@types/node": "^10.17.0", + "@types/semver": "^7.3.3", + "azure-pipelines-task-lib": "^3.1.0", + "semver": "^7.3.2" + } + }, + "node_modules/azure-pipelines-tasks-java-common/node_modules/@types/node": { + "version": "10.17.60", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + }, + "node_modules/azure-pipelines-tasks-java-common/node_modules/azure-pipelines-task-lib": { + "version": "3.4.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/azure-pipelines-task-lib/-/azure-pipelines-task-lib-3.4.0.tgz", + "integrity": "sha512-3eC4OTFw+7xD7A2aUhxR/j+jRlTI+vVfS0CGxt1pCLs4c/KmY0tQWgbqjD3157kmiucWxELBvgZHaD2gCBe9fg==", + "license": "MIT", + "dependencies": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + } + }, + "node_modules/azure-pipelines-tasks-java-common/node_modules/azure-pipelines-task-lib/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/azure-pipelines-tasks-java-common/node_modules/minimatch": { + "version": "3.0.5", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/azure-pipelines-tasks-java-common/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.6", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/cheerio/-/cheerio-1.0.0-rc.6.tgz", + "integrity": "sha512-hjx1XE1M/D5pAtMgvWwE21QClmAEeGHOIDfycgmndisdNgI6PE1cGRQkMGBcsbUbmEQyWu5PJLUcAOjtQS8DWw==", + "dependencies": { + "cheerio-select": "^1.3.0", + "dom-serializer": "^1.3.1", + "domhandler": "^4.1.0", + "htmlparser2": "^6.1.0", + "parse5": "^6.0.1", + "parse5-htmlparser2-tree-adapter": "^6.0.1" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/cheerio-select": { + "version": "1.6.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/cheerio-select/-/cheerio-select-1.6.0.tgz", + "integrity": "sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==", + "dependencies": { + "css-select": "^4.3.0", + "css-what": "^6.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.3.1", + "domutils": "^2.8.0" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/debug": { + "version": "4.3.6", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "2.5.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/fs-extra": { + "version": "0.30.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/get-intrinsic": { + "version": "1.1.3", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-port": { + "version": "3.2.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-basic": { + "version": "8.1.3", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/http-basic/-/http-basic-8.1.3.tgz", + "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "dependencies": { + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/http-response-object": { + "version": "3.0.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "dependencies": { + "@types/node": "^10.0.3" + } + }, + "node_modules/http-response-object/node_modules/@types/node": { + "version": "10.17.60", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-core-module": { + "version": "2.10.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/jsonfile": { + "version": "2.4.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/klaw": { + "version": "1.3.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", + "optionalDependencies": { + "graceful-fs": "^4.1.9" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mockery": { + "version": "2.1.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/mockery/-/mockery-2.1.0.tgz", + "integrity": "sha512-9VkOmxKlWXoDO/h1jDZaS4lH33aWfRiJiNT/tKj+8OGzrcFDLo8d0syGdbsc3Bc4GvRXPb+NMMvojotmuGJTvA==" + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/nodejs-file-downloader": { + "version": "4.13.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/nodejs-file-downloader/-/nodejs-file-downloader-4.13.0.tgz", + "integrity": "sha512-nI2fKnmJWWFZF6SgMPe1iBodKhfpztLKJTtCtNYGhm/9QXmWa/Pk9Sv00qHgzEvNLe1x7hjGDRor7gcm/ChaIQ==", + "dependencies": { + "follow-redirects": "^1.15.6", + "https-proxy-agent": "^5.0.0", + "mime-types": "^2.1.27", + "sanitize-filename": "^1.6.3" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/os": { + "version": "0.1.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/os/-/os-0.1.2.tgz", + "integrity": "sha512-ZoXJkvAnljwvc56MbvhtKVWmSkzV712k42Is2mA0+0KTSRakq5XXuXpjZjgAt9ctzl51ojhQWakQQpmOvXWfjQ==" + }, + "node_modules/parse-cache-control": { + "version": "1.0.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==" + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/promise": { + "version": "8.2.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/promise/-/promise-8.2.0.tgz", + "integrity": "sha512-+CMAlLHqwRYwBMXKCP+o8ns7DN+xHDUiI+0nArsiJ9y+kJVPLFxEaSw6Ha9s9H0tftxg2Yzl25wqj9G7m5wLZg==", + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/sanitize-filename": { + "version": "1.6.3", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "dependencies": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sync-request": { + "version": "6.1.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/sync-request/-/sync-request-6.1.0.tgz", + "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "dependencies": { + "http-response-object": "^3.0.1", + "sync-rpc": "^1.2.1", + "then-request": "^6.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/sync-rpc": { + "version": "1.3.6", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "dependencies": { + "get-port": "^3.1.0" + } + }, + "node_modules/then-request": { + "version": "6.0.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/then-request/-/then-request-6.0.2.tgz", + "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "dependencies": { + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/node": "^8.0.0", + "@types/qs": "^6.2.31", + "caseless": "~0.12.0", + "concat-stream": "^1.6.0", + "form-data": "^2.2.0", + "http-basic": "^8.1.1", + "http-response-object": "^3.0.1", + "promise": "^8.0.0", + "qs": "^6.4.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/then-request/node_modules/@types/node": { + "version": "8.10.66", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" + }, + "node_modules/truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "dependencies": { + "utf8-byte-length": "^1.0.1" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "node_modules/typescript": { + "version": "5.1.6", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/typescript/-/typescript-5.1.6.tgz", + "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/utf8-byte-length": { + "version": "1.0.5", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz", + "integrity": "sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/xml2js": { + "version": "0.6.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/xml2js/-/xml2js-0.6.2.tgz", + "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "license": "MIT", + "engines": { + "node": ">=4.0" + } + } + } +} diff --git a/Tasks/ANTV2/_buildConfigs/Node20/package.json b/Tasks/ANTV2/_buildConfigs/Node20/package.json new file mode 100644 index 000000000000..9469ac84ae52 --- /dev/null +++ b/Tasks/ANTV2/_buildConfigs/Node20/package.json @@ -0,0 +1,20 @@ +{ + "name": "Ant", + "author": "Microsoft Corporation", + "description": "Build with Apache Ant", + "license": "MIT", + "bugs": { + "url": "https://github.com/Microsoft/vso-agent-tasks/issues" + }, + "dependencies": { + "@types/mocha": "^5.2.7", + "@types/node": "^20.3.1", + "azure-pipelines-task-lib": "^4.15.0", + "azure-pipelines-tasks-codecoverage-tools": "2.201.0", + "azure-pipelines-tasks-java-common": "2.198.1", + "xml2js": "^0.6.2" + }, + "devDependencies": { + "typescript": "5.1.6" + } +} diff --git a/Tasks/ANTV2/anttask.ts b/Tasks/ANTV2/anttask.ts new file mode 100644 index 000000000000..51109b1dd815 --- /dev/null +++ b/Tasks/ANTV2/anttask.ts @@ -0,0 +1,291 @@ +import * as fs from 'fs'; +import * as os from 'os'; +import * as path from 'path'; +import * as Q from "q"; +import * as tl from 'azure-pipelines-task-lib/task'; + +import * as javacommons from 'azure-pipelines-tasks-java-common/java-common'; +import * as ccUtils from 'azure-pipelines-tasks-codecoverage-tools/codecoverageutilities'; +import {CodeCoverageEnablerFactory} from 'azure-pipelines-tasks-codecoverage-tools/codecoveragefactory'; + +tl.setResourcePath(path.join(__dirname, 'task.json')); + +const TESTRUN_SYSTEM = "VSTS - ant"; +const isWindows = os.type().match(/^Win/); + +function pathExistsAsFile(path: string) { + try { + return tl.stats(path).isFile(); + } + catch (error) { + return false; + } +} + +function publishTestResults(publishJUnitResults, testResultsFiles: string) { + if (publishJUnitResults == 'true') { + //check for pattern in testResultsFiles + let matchingTestResultsFiles; + if (testResultsFiles.indexOf('*') >= 0 || testResultsFiles.indexOf('?') >= 0) { + tl.debug('Pattern found in testResultsFiles parameter'); + const buildFolder = tl.getVariable('System.DefaultWorkingDirectory'); + matchingTestResultsFiles = tl.findMatch(buildFolder, testResultsFiles, null, { matchBase: true }); + } + else { + tl.debug('No pattern found in testResultsFiles parameter'); + matchingTestResultsFiles = [testResultsFiles]; + } + + if (!matchingTestResultsFiles || matchingTestResultsFiles.length === 0) { + console.log(tl.loc('NoTestResults', testResultsFiles)); + return 0; + } + + let tp = new tl.TestPublisher("JUnit"); + const testRunTitle = tl.getInput('testRunTitle'); + + tp.publish(matchingTestResultsFiles, 'true', "", "", testRunTitle, 'true', TESTRUN_SYSTEM); + } +} + +function processAntOutputLine(line) { + if (line == null) { + return; + } + + const javacText = "[javac] "; + //[java] [javac] c:\path\to\file:100: error: error_msg + const compileErrorFileRegexWin = /^(\[java\])?\s*\[javac\]\s*([^:]:[^:]+):(\d+):\s*(.+)$/ + //[java] [javac] /path/to/file:100: error: error_msg + const compileErrorFileRegexUnix = /^(\[java\])?\s*\[javac\]\s*([^:]+):(\d+):\s*(.+)$/ + const compileErrorFileRegex = (isWindows) ? compileErrorFileRegexWin : compileErrorFileRegexUnix; + + let severity = null; + if (line.indexOf(javacText) >= 0) { + // parse javac errors and warnings + const matches = compileErrorFileRegex.exec(line); + if (matches) { + let errorMessage = matches[4]; + if (errorMessage) { + if (errorMessage.startsWith('warning:')) { + severity = 'warning'; + } else if (errorMessage.startsWith('error:')) { + severity = 'error'; + } + } + + tl.command('task.issue', { + type: severity, + sourcepath: matches[2], + linenumber: matches[3], + }, matches[0]); + } + } +} + + + +async function doWork() { + + function execEnableCodeCoverage(): Q.Promise { + return enableCodeCoverage() + .then(function (resp) { + tl.debug("Enabled code coverage successfully"); + return "CodeCoverage_9064e1d0"; + }).catch(function (err) { + tl.warning("Failed to enable code coverage: " + err); + return ""; + }); + }; + + function enableCodeCoverage(): Q.Promise { + if (!isCodeCoverageOpted) { + return Q.resolve(true); + } + + const classFilter: string = tl.getInput('classFilter'); + const classFilesDirectories: string = tl.getInput('classFilesDirectories', true); + const sourceDirectories: string = tl.getInput('srcDirectories'); + // appending with small guid to keep it unique. Avoiding full guid to ensure no long path issues. + const reportDirectoryName = "CCReport43F6D5EF"; + reportDirectory = path.join(buildRootPath, reportDirectoryName); + const reportBuildFileName = "CCReportBuildA4D283EG.xml"; + reportBuildFile = path.join(buildRootPath, reportBuildFileName); + let summaryFileName = ""; + if (ccTool.toLowerCase() == "jacoco") { + summaryFileName = "summary.xml"; + }else if (ccTool.toLowerCase() == "cobertura") { + summaryFileName = "coverage.xml"; + } + summaryFile = path.join(buildRootPath, reportDirectoryName, summaryFileName); + const coberturaCCFile = path.join(buildRootPath, "cobertura.ser"); + let instrumentedClassesDirectory = path.join(buildRootPath, "InstrumentedClasses"); + + // clean any previous reports. + try { + tl.rmRF(coberturaCCFile); + tl.rmRF(reportDirectory); + tl.rmRF(reportBuildFile); + tl.rmRF(instrumentedClassesDirectory); + } catch (err) { + tl.debug("Error removing previous cc files: " + err); + } + + let buildProps: { [key: string]: string } = {}; + buildProps['buildfile'] = antBuildFile; + buildProps['classfilter'] = classFilter + buildProps['classfilesdirectories'] = classFilesDirectories; + buildProps['sourcedirectories'] = sourceDirectories; + buildProps['summaryfile'] = summaryFileName; + buildProps['reportdirectory'] = reportDirectory; + buildProps['ccreporttask'] = "CodeCoverage_9064e1d0" + buildProps['reportbuildfile'] = reportBuildFile; + + let ccEnabler = new CodeCoverageEnablerFactory().getTool("ant", ccTool.toLowerCase()); + return ccEnabler.enableCodeCoverage(buildProps); + } + + async function publishCodeCoverage(codeCoverageOpted: boolean, ccReportTask: string) { + tl.debug("publishCodeCoverage f=" + failIfCodeCoverageEmpty + " opt=" + codeCoverageOpted + " task=" + ccReportTask); + if (failIfCodeCoverageEmpty && codeCoverageOpted && !ccReportTask) { + throw tl.loc('NoCodeCoverage'); + } + else if (codeCoverageOpted && ccReportTask) { + tl.debug("Collecting code coverage reports"); + var antRunner = tl.tool(anttool); + antRunner.arg('-buildfile'); + if (pathExistsAsFile(reportBuildFile)) { + antRunner.arg(reportBuildFile); + antRunner.arg(ccReportTask); + } + else { + antRunner.arg(antBuildFile); + antRunner.arg(ccReportTask); + } + antRunner.exec().then(async function (code) { + if (failIfCodeCoverageEmpty && await ccUtils.isCodeCoverageFileEmpty(summaryFile, ccTool)) { + throw tl.loc('NoCodeCoverage'); + } + if (pathExistsAsFile(summaryFile)) { + tl.debug("Summary file = " + summaryFile); + tl.debug("Report directory = " + reportDirectory); + tl.debug("Publishing code coverage results to TFS"); + let ccPublisher = new tl.CodeCoveragePublisher(); + ccPublisher.publish(ccTool, summaryFile, reportDirectory, ""); + } + else { + tl.warning("No code coverage results found to be published. This could occur if there were no tests executed or there was a build failure. Check the ant output for details."); + } + }).fail(function (err) { + tl.warning("No code coverage results found to be published. This could occur if there were no tests executed or there was a build failure. Check the ant output for details."); + }); + } + } + + try { + var anttool = tl.which('ant', true); + var antv = tl.tool(anttool); + antv.arg('-version'); + + var antb = tl.tool(anttool); + var antBuildFile = tl.getPathInput('antBuildFile', true, true); + antb.arg('-buildfile'); + antb.arg(antBuildFile); + + // options and targets are optional + antb.line(tl.getInput('options', false)); + antb.arg(tl.getDelimitedInput('targets', ' ', false)); + + // update ANT_HOME if user specified path manually (not required, but if so, check it) + var antHomeUserInputPath = tl.getPathInput('antHomeUserInputPath', false, true); + if (antHomeUserInputPath) { + tl.debug('Using path from user input to set ANT_HOME'); + tl.debug('Set ANT_HOME to ' + antHomeUserInputPath); + process.env['ANT_HOME'] = antHomeUserInputPath; + } + + // Warn if ANT_HOME is not set either locally or on the task via antHomeUserInputPath + var antHome = tl.getVariable('ANT_HOME'); + if (!antHome) { + tl.warning('The ANT_HOME environment variable is not set. Please make sure that it exists and is set to the location of the bin folder. See https://ant.apache.org/manual/install.html.'); + } + + // update JAVA_HOME if user selected specific JDK version or set path manually + var javaHomeSelection = tl.getInput('javaHomeSelection', true); + var specifiedJavaHome = null; + var javaTelemetryData = null; + if (javaHomeSelection == 'JDKVersion') { + tl.debug('Using JDK version to find and set JAVA_HOME'); + var jdkVersion = tl.getInput('jdkVersion'); + var jdkArchitecture = tl.getInput('jdkArchitecture'); + javaTelemetryData = { "jdkVersion": jdkVersion }; + + if (jdkVersion != 'default') { + specifiedJavaHome = javacommons.findJavaHome(jdkVersion, jdkArchitecture); + } + } + else { + tl.debug('Using path from user input to set JAVA_HOME'); + var jdkUserInputPath = tl.getPathInput('jdkUserInputPath', true, true); + specifiedJavaHome = jdkUserInputPath; + javaTelemetryData = { "jdkVersion": "custom" }; + } + javacommons.publishJavaTelemetry('Ant', javaTelemetryData); + + if (specifiedJavaHome) { + tl.debug('Set JAVA_HOME to ' + specifiedJavaHome); + process.env['JAVA_HOME'] = specifiedJavaHome; + } + + var ccTool = tl.getInput('codeCoverageTool'); + var isCodeCoverageOpted = (typeof ccTool != "undefined" && ccTool && ccTool.toLowerCase() != 'none'); + var failIfCodeCoverageEmpty: boolean = tl.getBoolInput('failIfCoverageEmpty'); + var buildRootPath = path.dirname(antBuildFile); + + var summaryFile: string = null; + var reportDirectory: string = null; + var ccReportTask: string = null; + var reportBuildFile: string = null; + var publishJUnitResults = tl.getInput('publishJUnitResults'); + var testResultsFiles = tl.getInput('testResultsFiles', true); + var publishJUnitResults = tl.getInput('publishJUnitResults'); + var testResultsFiles = tl.getInput('testResultsFiles', true); + + ccReportTask = await execEnableCodeCoverage(); + + await antv.exec(); + var buffer; + antb.on('stdout', (data) => { + if (data) { + buffer += data.toString(); + let idx = buffer.indexOf(os.EOL); + while (idx > -1) { + let line = buffer.substring(0, idx); + processAntOutputLine(line); + buffer = buffer.substring(idx + os.EOL.length); + idx = buffer.indexOf(os.EOL); + } + } + }); + + await antb.exec() + .then(async function (code) { + publishTestResults(publishJUnitResults, testResultsFiles); + await publishCodeCoverage(isCodeCoverageOpted, ccReportTask); + tl.setResult(tl.TaskResult.Succeeded, "Task succeeded"); + }) + .fail(function (err) { + console.error(err.message); + publishTestResults(publishJUnitResults, testResultsFiles); + tl.debug('taskRunner fail'); + tl.setResult(tl.TaskResult.Failed, err); + }); + } catch (e) { + tl.debug(e.message); + tl.error(e); + tl.setResult(tl.TaskResult.Failed, e.message); + } +} + +doWork(); + diff --git a/Tasks/ANTV2/icon.png b/Tasks/ANTV2/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b9b2b3db07b9b18bf5c98c9eefac793499d71514 GIT binary patch literal 1166 zcmV;91abR`P)m47?O~QFJv3L>&Naj(-#Ge%3jzaZM&P8H5*9;icz2#7E)6q&F!~2DP5K@ zx82`)dNCL4Zg>9J2EFn7>hPTB`#c}c;qV-|qW@U}uopMfQ-9AiM0qDP_`hf%i&Xj&%~Owv2M3xvH%Jo&^DN7mWBHL zdr%GrGJ_{p=f%2H$0iMMN#CgG2~k-dxPo#9cq-nN{BgXrZMRk58ura%MIRI7eo$Xj zHe>@#RJ{rd%Dv=)kwF*NnO)?^P*wp0qH+NE6~{j*)*192oi|kg02jn+X<2vbYk*sqRz z$vPGNIA>K$JV^7A0KQl%N`G_z1c-OlZ3i01G-ON#fKh442`TbuP=FACLQ}ju`7J=h zEH`h*p#Pw%9ukp7z_kBX=go9sZKp-2jV?DNLGKI>pz=OqThh_QMuif|_zznlEJJf@ zEQJwmxlG+~U;q`pPmsMpcFQkSXhC(pAmzYu6@Cz92@n~ts3Pq_0UUvntk_{i=f=I{ z!t&1KN5+OK8G4p?7+-50OabT`kVE8n38MC=zyKrG10p15c&51AOYIvD#=6}ORCfZ# zH&n$u_gvgd)yKWMITKUd#R4mxzxu#mWC^6^K zgv>Zb@6PoXXt||o`t+Vi@0lXM5#?GReXYVv{W2~<5K4fiXkwp0391e8uGEV0azDRm z{dIl$kwvOJDZ*caj=wqQEC>qFTu{4M9c=}C>+ry`j%1*FZi%`#TJg7_>_6(6_p-lr zqh>)awRbyhz)`?BmikX-R^AZA7xUb6PI%yDl-0AN{s-CnfdO1xi!~L9)&LI~8}4Y1 zCe{anII-zG*cHIabhLKC$i2W5OY$$KWaQ@&GS?ygzx_5VgD0x+zmXkv{(74U@$#~e$CKqmv{NbGm_ zLUw+0QO#0S*=5lM%e>ScnBWNvtK3Vz*PRfSRuTW!SuzJ=#ac7A(js1?{} gguKc0y`m}AKRyqvX!sW7NdN!<07*qoM6N<$g1#CYDF6Tf literal 0 HcmV?d00001 diff --git a/Tasks/ANTV2/icon.svg b/Tasks/ANTV2/icon.svg new file mode 100644 index 000000000000..c2bb6a7998f6 --- /dev/null +++ b/Tasks/ANTV2/icon.svg @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tasks/ANTV2/make.json b/Tasks/ANTV2/make.json new file mode 100644 index 000000000000..94be52b5a32d --- /dev/null +++ b/Tasks/ANTV2/make.json @@ -0,0 +1,12 @@ +{ + "rm": [ + { + "items": [ + "node_modules/azure-pipelines-tasks-java-common/node_modules/azure-pipelines-task-lib", + "node_modules/azure-pipelines-tasks-codecoverage-tools/node_modules/azure-pipelines-task-lib", + "node_modules/mockery" + ], + "options": "-Rf" + } + ] +} \ No newline at end of file diff --git a/Tasks/ANTV2/package-lock.json b/Tasks/ANTV2/package-lock.json new file mode 100644 index 000000000000..408d6e422877 --- /dev/null +++ b/Tasks/ANTV2/package-lock.json @@ -0,0 +1,862 @@ +{ + "name": "Ant", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@types/cheerio": { + "version": "0.22.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/cheerio/-/cheerio-0.22.0.tgz", + "integrity": "sha512-dVL3RISC1jdrXilyqmPIga6LmjHwrDbWQoUyHuf/bGjP+HiNtyFJ3Gga1FCu55UYOqbuUGLPzkGkcsplkpSm8Q==" + }, + "@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "requires": { + "@types/node": "*" + } + }, + "@types/form-data": { + "version": "0.0.33", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "requires": { + "@types/node": "*" + } + }, + "@types/mocha": { + "version": "5.2.7", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/mocha/-/mocha-5.2.7.tgz", + "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==" + }, + "@types/node": { + "version": "16.11.60", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/node/-/node-16.11.60.tgz", + "integrity": "sha512-kYIYa1D1L+HDv5M5RXQeEu1o0FKA6yedZIoyugm/MBPROkLpX4L7HRxMrPVyo8bnvjpW/wDlqFNGzXNMb7AdRw==" + }, + "@types/q": { + "version": "1.5.5", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/q/-/q-1.5.5.tgz", + "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "@types/semver": { + "version": "7.3.9", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/semver/-/semver-7.3.9.tgz", + "integrity": "sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==" + }, + "adm-zip": { + "version": "0.5.15", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/adm-zip/-/adm-zip-0.5.15.tgz", + "integrity": "sha512-jYPWSeOA8EFoZnucrKCNihqBjoEGQSU4HKgHYQgKNEQ0pQF9a/DYuo/+fAxY76k4qe75LUlLWpAM1QWcBMTOKw==" + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "asap": { + "version": "2.0.6", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "azure-pipelines-task-lib": { + "version": "4.15.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/azure-pipelines-task-lib/-/azure-pipelines-task-lib-4.15.0.tgz", + "integrity": "sha512-Y72FjLTE2CAM9KrBXzc6vjelTBCpdYb2NkyFB0hwksTrhA3q8nsF680dofuTeXztQ94UTpkK27hpgSHnqYf5ZA==", + "requires": { + "adm-zip": "^0.5.10", + "minimatch": "3.0.5", + "nodejs-file-downloader": "^4.11.1", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "uuid": "^3.0.1" + }, + "dependencies": { + "minimatch": { + "version": "3.0.5", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "azure-pipelines-tasks-codecoverage-tools": { + "version": "2.201.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/azure-pipelines-tasks-codecoverage-tools/-/azure-pipelines-tasks-codecoverage-tools-2.201.0.tgz", + "integrity": "sha512-3yl6vbw62gXWxBxMYi5XOF0Rq7JE3KjQtZHDeTDSNLGttsjlm88jEnYU+lsjOqFtnUbnWTX8HB96Vx5c5iL+fA==", + "requires": { + "@types/cheerio": "0.22.0", + "@types/node": "^10.17.0", + "@types/q": "^1.5.4", + "azure-pipelines-task-lib": "^3.1.0", + "cheerio": "1.0.0-rc.6", + "fs-extra": "^0.30.0", + "os": "^0.1.1", + "strip-bom": "^3.0.0", + "xml2js": "^0.4.17" + }, + "dependencies": { + "@types/node": { + "version": "10.17.60", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + }, + "azure-pipelines-task-lib": { + "version": "3.3.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/azure-pipelines-task-lib/-/azure-pipelines-task-lib-3.3.1.tgz", + "integrity": "sha512-56ZAr4MHIoa24VNVuwPL4iUQ5MKaigPoYXkBG8E8fiVmh8yZdatUo25meNoQwg77vDY22F63Q44UzXoMWmy7ag==", + "requires": { + "minimatch": "3.0.5", + "mockery": "^1.7.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + } + }, + "minimatch": { + "version": "3.0.5", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + } + } + }, + "azure-pipelines-tasks-java-common": { + "version": "2.198.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/azure-pipelines-tasks-java-common/-/azure-pipelines-tasks-java-common-2.198.1.tgz", + "integrity": "sha512-LaEdGpC4/5nt3krZOJNIH8r+ZxOEhxocpTH/J//Vx98LeYC6zLGyrmCdTLBrY58nJ9Bo7PD/0ARrasXFPv5VkQ==", + "requires": { + "@types/node": "^10.17.0", + "@types/semver": "^7.3.3", + "azure-pipelines-task-lib": "^3.1.0", + "semver": "^7.3.2" + }, + "dependencies": { + "@types/node": { + "version": "10.17.60", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + }, + "azure-pipelines-task-lib": { + "version": "3.3.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/azure-pipelines-task-lib/-/azure-pipelines-task-lib-3.3.1.tgz", + "integrity": "sha512-56ZAr4MHIoa24VNVuwPL4iUQ5MKaigPoYXkBG8E8fiVmh8yZdatUo25meNoQwg77vDY22F63Q44UzXoMWmy7ag==", + "requires": { + "minimatch": "3.0.5", + "mockery": "^1.7.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" + } + } + }, + "minimatch": { + "version": "3.0.5", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "semver": { + "version": "7.6.3", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==" + } + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "cheerio": { + "version": "1.0.0-rc.6", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/cheerio/-/cheerio-1.0.0-rc.6.tgz", + "integrity": "sha512-hjx1XE1M/D5pAtMgvWwE21QClmAEeGHOIDfycgmndisdNgI6PE1cGRQkMGBcsbUbmEQyWu5PJLUcAOjtQS8DWw==", + "requires": { + "cheerio-select": "^1.3.0", + "dom-serializer": "^1.3.1", + "domhandler": "^4.1.0", + "htmlparser2": "^6.1.0", + "parse5": "^6.0.1", + "parse5-htmlparser2-tree-adapter": "^6.0.1" + } + }, + "cheerio-select": { + "version": "1.6.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/cheerio-select/-/cheerio-select-1.6.0.tgz", + "integrity": "sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==", + "requires": { + "css-select": "^4.3.0", + "css-what": "^6.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.3.1", + "domutils": "^2.8.0" + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "css-select": { + "version": "4.3.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" + }, + "debug": { + "version": "4.3.6", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "requires": { + "ms": "2.1.2" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + }, + "follow-redirects": { + "version": "1.15.6", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==" + }, + "form-data": { + "version": "2.5.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fs-extra": { + "version": "0.30.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-intrinsic": { + "version": "1.1.3", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-port": { + "version": "3.2.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==" + }, + "glob": { + "version": "7.1.6", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "htmlparser2": { + "version": "6.1.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "http-basic": { + "version": "8.1.3", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/http-basic/-/http-basic-8.1.3.tgz", + "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "requires": { + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + } + }, + "http-response-object": { + "version": "3.0.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "requires": { + "@types/node": "^10.0.3" + }, + "dependencies": { + "@types/node": { + "version": "10.17.60", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + } + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "is-core-module": { + "version": "2.10.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "requires": { + "has": "^1.0.3" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", + "requires": { + "graceful-fs": "^4.1.9" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "mockery": { + "version": "1.7.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/mockery/-/mockery-1.7.0.tgz", + "integrity": "sha512-gUQA33ayi0tuAhr/rJNZPr7Q7uvlBt4gyJPbi0CDcAfIzIrDu1YgGMFgmAu3stJqBpK57m7+RxUbcS+pt59fKQ==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "nodejs-file-downloader": { + "version": "4.13.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/nodejs-file-downloader/-/nodejs-file-downloader-4.13.0.tgz", + "integrity": "sha512-nI2fKnmJWWFZF6SgMPe1iBodKhfpztLKJTtCtNYGhm/9QXmWa/Pk9Sv00qHgzEvNLe1x7hjGDRor7gcm/ChaIQ==", + "requires": { + "follow-redirects": "^1.15.6", + "https-proxy-agent": "^5.0.0", + "mime-types": "^2.1.27", + "sanitize-filename": "^1.6.3" + } + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "requires": { + "boolbase": "^1.0.0" + } + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "os": { + "version": "0.1.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/os/-/os-0.1.2.tgz", + "integrity": "sha512-ZoXJkvAnljwvc56MbvhtKVWmSkzV712k42Is2mA0+0KTSRakq5XXuXpjZjgAt9ctzl51ojhQWakQQpmOvXWfjQ==" + }, + "parse-cache-control": { + "version": "1.0.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==" + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "requires": { + "parse5": "^6.0.1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "promise": { + "version": "8.2.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/promise/-/promise-8.2.0.tgz", + "integrity": "sha512-+CMAlLHqwRYwBMXKCP+o8ns7DN+xHDUiI+0nArsiJ9y+kJVPLFxEaSw6Ha9s9H0tftxg2Yzl25wqj9G7m5wLZg==", + "requires": { + "asap": "~2.0.6" + } + }, + "q": { + "version": "1.5.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" + }, + "qs": { + "version": "6.11.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "requires": { + "resolve": "^1.1.6" + } + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "sanitize-filename": { + "version": "1.6.3", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "requires": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "sax": { + "version": "1.4.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" + }, + "semver": { + "version": "5.7.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" + }, + "shelljs": { + "version": "0.8.5", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "sync-request": { + "version": "6.1.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/sync-request/-/sync-request-6.1.0.tgz", + "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "requires": { + "http-response-object": "^3.0.1", + "sync-rpc": "^1.2.1", + "then-request": "^6.0.0" + } + }, + "sync-rpc": { + "version": "1.3.6", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "requires": { + "get-port": "^3.1.0" + } + }, + "then-request": { + "version": "6.0.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/then-request/-/then-request-6.0.2.tgz", + "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "requires": { + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/node": "^8.0.0", + "@types/qs": "^6.2.31", + "caseless": "~0.12.0", + "concat-stream": "^1.6.0", + "form-data": "^2.2.0", + "http-basic": "^8.1.1", + "http-response-object": "^3.0.1", + "promise": "^8.0.0", + "qs": "^6.4.0" + }, + "dependencies": { + "@types/node": { + "version": "8.10.66", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" + } + } + }, + "truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "requires": { + "utf8-byte-length": "^1.0.1" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "typescript": { + "version": "4.0.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/typescript/-/typescript-4.0.2.tgz", + "integrity": "sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==", + "dev": true + }, + "utf8-byte-length": { + "version": "1.0.5", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz", + "integrity": "sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "xml2js": { + "version": "0.6.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/xml2js/-/xml2js-0.6.2.tgz", + "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + } + } +} diff --git a/Tasks/ANTV2/package.json b/Tasks/ANTV2/package.json new file mode 100644 index 000000000000..5bcacfe03dca --- /dev/null +++ b/Tasks/ANTV2/package.json @@ -0,0 +1,20 @@ +{ + "name": "Ant", + "author": "Microsoft Corporation", + "description": "Build with Apache Ant", + "license": "MIT", + "bugs": { + "url": "https://github.com/Microsoft/vso-agent-tasks/issues" + }, + "dependencies": { + "@types/mocha": "^5.2.7", + "@types/node": "^16.11.39", + "azure-pipelines-task-lib": "^4.15.0", + "azure-pipelines-tasks-codecoverage-tools": "2.201.0", + "azure-pipelines-tasks-java-common": "2.198.1", + "xml2js": "^0.6.2" + }, + "devDependencies": { + "typescript": "4.0.2" + } +} diff --git a/Tasks/ANTV2/task.json b/Tasks/ANTV2/task.json new file mode 100644 index 000000000000..a51dad4e60ca --- /dev/null +++ b/Tasks/ANTV2/task.json @@ -0,0 +1,270 @@ +{ + "id": "3A6A2D63-F2B2-4E93-BCF9-0CBE22F5DC26", + "name": "Ant", + "friendlyName": "Ant", + "description": "Build with Apache Ant", + "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/build/ant", + "helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?LinkID=613718) or [see the Ant documentation](http://ant.apache.org/)", + "category": "Build", + "visibility": [ + "Build", + "Release" + ], + "runsOn": [ + "Agent", + "DeploymentGroup" + ], + "author": "Microsoft Corporation", + "version": { + "Major": 1, + "Minor": 246, + "Patch": 2 + }, + "demands": [ + "ant" + ], + "minimumAgentVersion": "1.89.0", + "groups": [ + { + "name": "junitTestResults", + "displayName": "JUnit Test Results", + "isExpanded": true + }, + { + "name": "codeCoverage", + "displayName": "Code Coverage", + "isExpanded": true + }, + { + "name": "advanced", + "displayName": "Advanced", + "isExpanded": false + } + ], + "instanceNameFormat": "Ant $(options) $(antBuildFile)", + "inputs": [ + { + "name": "antBuildFile", + "aliases": [ + "buildFile" + ], + "type": "filePath", + "label": "Ant build file", + "defaultValue": "build.xml", + "required": true, + "helpMarkDown": "Relative path from the repository root to the Ant build file." + }, + { + "name": "options", + "type": "string", + "label": "Options", + "defaultValue": "", + "required": false, + "helpMarkDown": "Provide any options to pass to the Ant command line. You can provide your own properties (for example, ***-DmyProperty=myPropertyValue***) and also use built-in variables (for example, ***-DcollectionId=$(system.collectionId)***). Alternatively, the built-in variables are already set as environment variables during the build and can be passed directly (for example, ***-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%***)." + }, + { + "name": "targets", + "type": "string", + "label": "Target(s)", + "defaultValue": "", + "required": false, + "helpMarkDown": "An optional, space-separated list of targets to build. If not specified, the `default` target will be used. If no `default` target is defined, Ant 1.6.0 and later will build all top-level tasks." + }, + { + "name": "publishJUnitResults", + "type": "boolean", + "label": "Publish to Azure Pipelines", + "required": true, + "defaultValue": "true", + "groupName": "junitTestResults", + "helpMarkDown": "Select this option to publish JUnit test results produced by the Ant build to Azure Pipelines. Each test results file matching `Test Results Files` will be published as a test run in Azure Pipelines." + }, + { + "name": "testResultsFiles", + "type": "filePath", + "label": "Test results files", + "defaultValue": "**/TEST-*.xml", + "required": true, + "groupName": "junitTestResults", + "helpMarkDown": "Test results files path. Wildcards can be used ([more information](https://go.microsoft.com/fwlink/?linkid=856077)). For example, `**/TEST-*.xml` for all XML files whose name starts with TEST-.", + "visibleRule": "publishJUnitResults = true" + }, + { + "name": "testRunTitle", + "type": "string", + "label": "Test run title", + "defaultValue": "", + "required": false, + "groupName": "junitTestResults", + "helpMarkDown": "Provide a name for the test run.", + "visibleRule": "publishJUnitResults = true" + }, + { + "name": "codeCoverageTool", + "aliases": [ + "codeCoverageToolOptions" + ], + "type": "pickList", + "label": "Code coverage tool", + "required": false, + "groupName": "codeCoverage", + "defaultValue": "None", + "helpMarkDown": "Select the code coverage tool. For on-premises agent support, refer to the `More Information` link below.", + "options": { + "None": "None", + "Cobertura": "Cobertura", + "JaCoCo": "JaCoCo" + } + }, + { + "name": "classFilesDirectories", + "aliases": [ + "codeCoverageClassFilesDirectories" + ], + "type": "string", + "label": "Class files directories", + "defaultValue": ".", + "required": true, + "groupName": "codeCoverage", + "helpMarkDown": "Comma-separated list of relative paths from the Ant build file to directories containing class files and archive files (JAR, WAR, etc.). Code coverage is reported for class files in these directories. For example: target/classes,target/testClasses.", + "visibleRule": "codeCoverageTool != None" + }, + { + "name": "classFilter", + "aliases": [ + "codeCoverageClassFilter" + ], + "type": "string", + "label": "Class inclusion/exclusion filters", + "defaultValue": "", + "required": false, + "groupName": "codeCoverage", + "helpMarkDown": "Comma-separated list of filters to include or exclude classes from collecting code coverage. For example: +:com.*,+:org.*,-:my.app*.*.", + "visibleRule": "codeCoverageTool != None" + }, + { + "name": "srcDirectories", + "aliases": [ + "codeCoverageSourceDirectories" + ], + "type": "string", + "label": "Source files directories", + "defaultValue": "", + "required": false, + "groupName": "codeCoverage", + "helpMarkDown": "Comma-separated list of relative paths from the Ant build file to source code directories. Code coverage reports will use these to highlight source code. For example: src/java,src/Test.", + "visibleRule": "codeCoverageTool != None" + }, + { + "name": "failIfCoverageEmpty", + "aliases": [ + "codeCoverageFailIfEmpty" + ], + "type": "boolean", + "label": "Fail when code coverage results are missing", + "defaultValue": "false", + "required": false, + "groupName": "codeCoverage", + "helpMarkDown": "Fail the build if code coverage did not produce any results to publish.", + "visibleRule": "codeCoverageTool != None" + }, + { + "name": "antHomeUserInputPath", + "aliases": [ + "antHomeDirectory" + ], + "type": "string", + "label": "Set ANT_HOME path", + "required": false, + "groupName": "advanced", + "defaultValue": "", + "helpMarkDown": "If set, overrides any existing ANT_HOME environment variable with the given path." + }, + { + "name": "javaHomeSelection", + "aliases": [ + "javaHomeOption" + ], + "type": "radio", + "label": "Set JAVA_HOME by", + "required": true, + "groupName": "advanced", + "defaultValue": "JDKVersion", + "helpMarkDown": "Sets JAVA_HOME either by selecting a JDK version that will be discovered during builds or by manually entering a JDK path.", + "options": { + "JDKVersion": "JDK Version", + "Path": "Path" + } + }, + { + "name": "jdkVersion", + "aliases": [ + "jdkVersionOption" + ], + "type": "pickList", + "label": "JDK version", + "required": false, + "groupName": "advanced", + "defaultValue": "default", + "helpMarkDown": "Will attempt to discover the path to the selected JDK version and set JAVA_HOME accordingly.", + "visibleRule": "javaHomeSelection = JDKVersion", + "options": { + "default": "default", + "1.11": "JDK 11", + "1.10": "JDK 10 (out of support)", + "1.9": "JDK 9 (out of support)", + "1.8": "JDK 8", + "1.7": "JDK 7", + "1.6": "JDK 6 (out of support)" + } + }, + { + "name": "jdkUserInputPath", + "aliases": [ + "jdkUserInputDirectory" + ], + "type": "string", + "label": "JDK path", + "required": true, + "groupName": "advanced", + "defaultValue": "", + "helpMarkDown": "Sets JAVA_HOME to the given path.", + "visibleRule": "javaHomeSelection = Path" + }, + { + "name": "jdkArchitecture", + "aliases": [ + "jdkArchitectureOption" + ], + "type": "pickList", + "label": "JDK architecture", + "defaultValue": "x64", + "required": false, + "helpMarkDown": "Optionally supply the architecture (x86, x64) of the JDK.", + "visibleRule": "jdkVersion != default", + "groupName": "advanced", + "options": { + "x86": "x86", + "x64": "x64" + } + } + ], + "execution": { + "Node10": { + "target": "anttask.js", + "argumentFormat": "" + }, + "Node16": { + "target": "anttask.js", + "argumentFormat": "" + } + }, + "messages": { + "LocateJVMBasedOnVersionAndArch": "Locate JAVA_HOME for Java %s %s", + "UnsupportedJdkWarning": "JDK 9 and JDK 10 are out of support. Please switch to a later version in your project and pipeline. Attempting to build with JDK 11...", + "FailedToLocateSpecifiedJVM": "Failed to find the specified JDK version. Please ensure the specified JDK version is installed on the agent and the environment variable '%s' exists and is set to the location of a corresponding JDK or use the [Java Tool Installer](https://go.microsoft.com/fwlink/?linkid=875287) task to install the desired JDK.", + "DiscontinueAntCodeCoverage": "We are discontinuing the support of automated code coverage report generation for Ant projects. Please refer to https://go.microsoft.com/fwlink/?linkid=875306 for more details.", + "NoCodeCoverage": "No code coverage results were found to publish.", + "NoTestResults": "No test result files matching %s were found, so publishing JUnit test results is being skipped." + } +} \ No newline at end of file diff --git a/Tasks/ANTV2/task.loc.json b/Tasks/ANTV2/task.loc.json new file mode 100644 index 000000000000..a267b45f5581 --- /dev/null +++ b/Tasks/ANTV2/task.loc.json @@ -0,0 +1,270 @@ +{ + "id": "3A6A2D63-F2B2-4E93-BCF9-0CBE22F5DC26", + "name": "Ant", + "friendlyName": "ms-resource:loc.friendlyName", + "description": "ms-resource:loc.description", + "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/build/ant", + "helpMarkDown": "ms-resource:loc.helpMarkDown", + "category": "Build", + "visibility": [ + "Build", + "Release" + ], + "runsOn": [ + "Agent", + "DeploymentGroup" + ], + "author": "Microsoft Corporation", + "version": { + "Major": 1, + "Minor": 246, + "Patch": 2 + }, + "demands": [ + "ant" + ], + "minimumAgentVersion": "1.89.0", + "groups": [ + { + "name": "junitTestResults", + "displayName": "ms-resource:loc.group.displayName.junitTestResults", + "isExpanded": true + }, + { + "name": "codeCoverage", + "displayName": "ms-resource:loc.group.displayName.codeCoverage", + "isExpanded": true + }, + { + "name": "advanced", + "displayName": "ms-resource:loc.group.displayName.advanced", + "isExpanded": false + } + ], + "instanceNameFormat": "ms-resource:loc.instanceNameFormat", + "inputs": [ + { + "name": "antBuildFile", + "aliases": [ + "buildFile" + ], + "type": "filePath", + "label": "ms-resource:loc.input.label.antBuildFile", + "defaultValue": "build.xml", + "required": true, + "helpMarkDown": "ms-resource:loc.input.help.antBuildFile" + }, + { + "name": "options", + "type": "string", + "label": "ms-resource:loc.input.label.options", + "defaultValue": "", + "required": false, + "helpMarkDown": "ms-resource:loc.input.help.options" + }, + { + "name": "targets", + "type": "string", + "label": "ms-resource:loc.input.label.targets", + "defaultValue": "", + "required": false, + "helpMarkDown": "ms-resource:loc.input.help.targets" + }, + { + "name": "publishJUnitResults", + "type": "boolean", + "label": "ms-resource:loc.input.label.publishJUnitResults", + "required": true, + "defaultValue": "true", + "groupName": "junitTestResults", + "helpMarkDown": "ms-resource:loc.input.help.publishJUnitResults" + }, + { + "name": "testResultsFiles", + "type": "filePath", + "label": "ms-resource:loc.input.label.testResultsFiles", + "defaultValue": "**/TEST-*.xml", + "required": true, + "groupName": "junitTestResults", + "helpMarkDown": "ms-resource:loc.input.help.testResultsFiles", + "visibleRule": "publishJUnitResults = true" + }, + { + "name": "testRunTitle", + "type": "string", + "label": "ms-resource:loc.input.label.testRunTitle", + "defaultValue": "", + "required": false, + "groupName": "junitTestResults", + "helpMarkDown": "ms-resource:loc.input.help.testRunTitle", + "visibleRule": "publishJUnitResults = true" + }, + { + "name": "codeCoverageTool", + "aliases": [ + "codeCoverageToolOptions" + ], + "type": "pickList", + "label": "ms-resource:loc.input.label.codeCoverageTool", + "required": false, + "groupName": "codeCoverage", + "defaultValue": "None", + "helpMarkDown": "ms-resource:loc.input.help.codeCoverageTool", + "options": { + "None": "None", + "Cobertura": "Cobertura", + "JaCoCo": "JaCoCo" + } + }, + { + "name": "classFilesDirectories", + "aliases": [ + "codeCoverageClassFilesDirectories" + ], + "type": "string", + "label": "ms-resource:loc.input.label.classFilesDirectories", + "defaultValue": ".", + "required": true, + "groupName": "codeCoverage", + "helpMarkDown": "ms-resource:loc.input.help.classFilesDirectories", + "visibleRule": "codeCoverageTool != None" + }, + { + "name": "classFilter", + "aliases": [ + "codeCoverageClassFilter" + ], + "type": "string", + "label": "ms-resource:loc.input.label.classFilter", + "defaultValue": "", + "required": false, + "groupName": "codeCoverage", + "helpMarkDown": "ms-resource:loc.input.help.classFilter", + "visibleRule": "codeCoverageTool != None" + }, + { + "name": "srcDirectories", + "aliases": [ + "codeCoverageSourceDirectories" + ], + "type": "string", + "label": "ms-resource:loc.input.label.srcDirectories", + "defaultValue": "", + "required": false, + "groupName": "codeCoverage", + "helpMarkDown": "ms-resource:loc.input.help.srcDirectories", + "visibleRule": "codeCoverageTool != None" + }, + { + "name": "failIfCoverageEmpty", + "aliases": [ + "codeCoverageFailIfEmpty" + ], + "type": "boolean", + "label": "ms-resource:loc.input.label.failIfCoverageEmpty", + "defaultValue": "false", + "required": false, + "groupName": "codeCoverage", + "helpMarkDown": "ms-resource:loc.input.help.failIfCoverageEmpty", + "visibleRule": "codeCoverageTool != None" + }, + { + "name": "antHomeUserInputPath", + "aliases": [ + "antHomeDirectory" + ], + "type": "string", + "label": "ms-resource:loc.input.label.antHomeUserInputPath", + "required": false, + "groupName": "advanced", + "defaultValue": "", + "helpMarkDown": "ms-resource:loc.input.help.antHomeUserInputPath" + }, + { + "name": "javaHomeSelection", + "aliases": [ + "javaHomeOption" + ], + "type": "radio", + "label": "ms-resource:loc.input.label.javaHomeSelection", + "required": true, + "groupName": "advanced", + "defaultValue": "JDKVersion", + "helpMarkDown": "ms-resource:loc.input.help.javaHomeSelection", + "options": { + "JDKVersion": "JDK Version", + "Path": "Path" + } + }, + { + "name": "jdkVersion", + "aliases": [ + "jdkVersionOption" + ], + "type": "pickList", + "label": "ms-resource:loc.input.label.jdkVersion", + "required": false, + "groupName": "advanced", + "defaultValue": "default", + "helpMarkDown": "ms-resource:loc.input.help.jdkVersion", + "visibleRule": "javaHomeSelection = JDKVersion", + "options": { + "default": "default", + "1.11": "JDK 11", + "1.10": "JDK 10 (out of support)", + "1.9": "JDK 9 (out of support)", + "1.8": "JDK 8", + "1.7": "JDK 7", + "1.6": "JDK 6 (out of support)" + } + }, + { + "name": "jdkUserInputPath", + "aliases": [ + "jdkUserInputDirectory" + ], + "type": "string", + "label": "ms-resource:loc.input.label.jdkUserInputPath", + "required": true, + "groupName": "advanced", + "defaultValue": "", + "helpMarkDown": "ms-resource:loc.input.help.jdkUserInputPath", + "visibleRule": "javaHomeSelection = Path" + }, + { + "name": "jdkArchitecture", + "aliases": [ + "jdkArchitectureOption" + ], + "type": "pickList", + "label": "ms-resource:loc.input.label.jdkArchitecture", + "defaultValue": "x64", + "required": false, + "helpMarkDown": "ms-resource:loc.input.help.jdkArchitecture", + "visibleRule": "jdkVersion != default", + "groupName": "advanced", + "options": { + "x86": "x86", + "x64": "x64" + } + } + ], + "execution": { + "Node10": { + "target": "anttask.js", + "argumentFormat": "" + }, + "Node16": { + "target": "anttask.js", + "argumentFormat": "" + } + }, + "messages": { + "LocateJVMBasedOnVersionAndArch": "ms-resource:loc.messages.LocateJVMBasedOnVersionAndArch", + "UnsupportedJdkWarning": "ms-resource:loc.messages.UnsupportedJdkWarning", + "FailedToLocateSpecifiedJVM": "ms-resource:loc.messages.FailedToLocateSpecifiedJVM", + "DiscontinueAntCodeCoverage": "ms-resource:loc.messages.DiscontinueAntCodeCoverage", + "NoCodeCoverage": "ms-resource:loc.messages.NoCodeCoverage", + "NoTestResults": "ms-resource:loc.messages.NoTestResults" + } +} \ No newline at end of file diff --git a/Tasks/ANTV2/tsconfig.json b/Tasks/ANTV2/tsconfig.json new file mode 100644 index 000000000000..79a868c8d1e3 --- /dev/null +++ b/Tasks/ANTV2/tsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "commonjs" + }, + "exclude": [ + "node_modules" + ] +} \ No newline at end of file From de4584b2bf3aa3346149adf6aea3d9ff855ea4eb Mon Sep 17 00:00:00 2001 From: Sahil Manoj Bhatt Date: Wed, 30 Oct 2024 16:32:30 +0530 Subject: [PATCH 2/5] updated task version --- Tasks/ANTV2/task.json | 6 +++--- Tasks/ANTV2/task.loc.json | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Tasks/ANTV2/task.json b/Tasks/ANTV2/task.json index a51dad4e60ca..fdc5e1aa4c36 100644 --- a/Tasks/ANTV2/task.json +++ b/Tasks/ANTV2/task.json @@ -16,9 +16,9 @@ ], "author": "Microsoft Corporation", "version": { - "Major": 1, - "Minor": 246, - "Patch": 2 + "Major": 2, + "Minor": 248, + "Patch": 0 }, "demands": [ "ant" diff --git a/Tasks/ANTV2/task.loc.json b/Tasks/ANTV2/task.loc.json index a267b45f5581..b372c055b051 100644 --- a/Tasks/ANTV2/task.loc.json +++ b/Tasks/ANTV2/task.loc.json @@ -16,9 +16,9 @@ ], "author": "Microsoft Corporation", "version": { - "Major": 1, - "Minor": 246, - "Patch": 2 + "Major": 2, + "Minor": 248, + "Patch": 0 }, "demands": [ "ant" From fcd36c20ce8487412a55b25c149ac1b45f7607f9 Mon Sep 17 00:00:00 2001 From: Sahil Manoj Bhatt Date: Fri, 8 Nov 2024 11:10:12 +0530 Subject: [PATCH 3/5] Removed code coverage references --- .../resources.resjson/de-DE/resources.resjson | 13 - .../resources.resjson/en-US/resources.resjson | 13 - .../resources.resjson/es-ES/resources.resjson | 13 - .../resources.resjson/fr-FR/resources.resjson | 13 - .../resources.resjson/it-IT/resources.resjson | 13 - .../resources.resjson/ja-JP/resources.resjson | 13 - .../resources.resjson/ko-KR/resources.resjson | 13 - .../resources.resjson/ru-RU/resources.resjson | 13 - .../resources.resjson/zh-CN/resources.resjson | 13 - .../resources.resjson/zh-TW/resources.resjson | 13 - Tasks/ANTV2/Tests/L0FailedBuilds.ts | 1 - Tasks/ANTV2/Tests/L0NoMatchingTestResults.ts | 1 - Tasks/ANTV2/Tests/L0PublishTestResults.ts | 1 - Tasks/ANTV2/Tests/answers.ts | 58 ----- .../_buildConfigs/Node20/package-lock.json | 61 ----- Tasks/ANTV2/_buildConfigs/Node20/package.json | 1 - Tasks/ANTV2/anttask.ts | 120 --------- Tasks/ANTV2/make.json | 1 - Tasks/ANTV2/package-lock.json | 232 ------------------ Tasks/ANTV2/package.json | 1 - Tasks/ANTV2/task.json | 76 ------ Tasks/ANTV2/task.loc.json | 76 ------ 22 files changed, 759 deletions(-) diff --git a/Tasks/ANTV2/Strings/resources.resjson/de-DE/resources.resjson b/Tasks/ANTV2/Strings/resources.resjson/de-DE/resources.resjson index fdaeec624e2e..f26827b74c49 100644 --- a/Tasks/ANTV2/Strings/resources.resjson/de-DE/resources.resjson +++ b/Tasks/ANTV2/Strings/resources.resjson/de-DE/resources.resjson @@ -4,7 +4,6 @@ "loc.description": "Mit Apache Ant erstellen", "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", "loc.group.displayName.junitTestResults": "JUnit-Testergebnisse", - "loc.group.displayName.codeCoverage": "Code Coverage", "loc.group.displayName.advanced": "Erweitert", "loc.input.label.antBuildFile": "Ant-Builddatei", "loc.input.help.antBuildFile": "Der relative Pfad vom Repositorystamm zur Ant-Builddatei.", @@ -18,16 +17,6 @@ "loc.input.help.testResultsFiles": "Pfad der Testergebnisdateien. Platzhalter können verwendet werden ([weitere Informationen](https://go.microsoft.com/fwlink/?linkid=856077)). Beispiel: \"**/TEST-*.xml\" für alle XML-Dateien, deren Name mit \"TEST-\" beginnt.", "loc.input.label.testRunTitle": "Testlauftitel", "loc.input.help.testRunTitle": "Geben Sie einen Namen für den Testlauf an.", - "loc.input.label.codeCoverageTool": "Code Coverage-Tool", - "loc.input.help.codeCoverageTool": "Wählen Sie das Code Coverage-Tool aus. Verwenden Sie den Link \"Weitere Informationen\" unten, um Support zum lokalen Agent zu erhalten.", - "loc.input.label.classFilesDirectories": "Klassendateiverzeichnisse", - "loc.input.help.classFilesDirectories": "Eine durch Kommas getrennte Liste der relativen Pfade von der Ant-Builddatei zu den Verzeichnissen, die Klassendateien und Archivdateien (JAR-, WAR-Dateien usw.) enthalten. Code Coverage wird für Klassendateien in diesen Verzeichnissen gemeldet, z. B. \"target/classes\", \"target/testClasses\".", - "loc.input.label.classFilter": "Filter für den Klasseneinschluss/-ausschluss", - "loc.input.help.classFilter": "Eine durch Kommas getrennte Liste der Filter, um Klassen in die Erfassung von Code Coverage ein- oder von dieser auszuschließen, z. B. \"+:com.*\", \"+:org.*\", \"-:my.app*.*\".", - "loc.input.label.srcDirectories": "Quelldateiverzeichnisse", - "loc.input.help.srcDirectories": "Eine durch Kommas getrennte Liste der relativen Pfade von der Ant-Builddatei zu den Quellcodeverzeichnissen. Code Coverage-Berichte verwenden diese, um Quellcode hervorzuheben, z. B. \"src/java\", \"src/Test\".", - "loc.input.label.failIfCoverageEmpty": "Fehler, wenn die Code Coverage-Ergebnisse fehlen", - "loc.input.help.failIfCoverageEmpty": "Buildfehler, wenn Code Coverage keine zu veröffentlichenden Ergebnisse ergeben hat.", "loc.input.label.antHomeUserInputPath": "ANT_HOME-Pfad festlegen", "loc.input.help.antHomeUserInputPath": "Wenn festgelegt, werden alle vorhandenen ANT_HOME-Umgebungsvariablen mit dem angegebenen Pfad überschrieben.", "loc.input.label.javaHomeSelection": "JAVA_HOME festlegen durch", @@ -41,7 +30,5 @@ "loc.messages.LocateJVMBasedOnVersionAndArch": "JAVA_HOME für Java %s %s finden", "loc.messages.UnsupportedJdkWarning": "JDK 9 und JDK 10 werden nicht unterstützt. Wechseln Sie in Ihrem Projekt und Ihrer Pipeline zu einer neueren Version. Es wird versucht, die Erstellung mit JDK 11 durchzuführen...", "loc.messages.FailedToLocateSpecifiedJVM": "Die angegebene JDK-Version wurde nicht gefunden. Stellen Sie sicher, dass die angegebene JDK-Version auf dem Agent installiert und die Umgebungsvariable \"%s\" vorhanden und auf den Speicherort eines entsprechenden JDK festgelegt ist. Sie können auch die Aufgabe [Installer für Java-Tools](https://go.microsoft.com/fwlink/?linkid=875287) verwenden, um das gewünschte JDK zu installieren.", - "loc.messages.DiscontinueAntCodeCoverage": "Die Unterstützung der automatisierten Code Coverage-Berichterstellung für Ant-Projekte wird eingestellt. Weitere Informationen erhalten Sie unter https://go.microsoft.com/fwlink/?linkid=875306.", - "loc.messages.NoCodeCoverage": "Keine Code Coverage-Ergebnisse zum Veröffentlichen gefunden.", "loc.messages.NoTestResults": "Es wurden keine Testergebnisdateien gefunden, die mit %s übereinstimmen. Das Veröffentlichen von JUnit-Testergebnissen wird daher übersprungen." } \ No newline at end of file diff --git a/Tasks/ANTV2/Strings/resources.resjson/en-US/resources.resjson b/Tasks/ANTV2/Strings/resources.resjson/en-US/resources.resjson index 3aeb5196f2f5..7caa66c58dcd 100644 --- a/Tasks/ANTV2/Strings/resources.resjson/en-US/resources.resjson +++ b/Tasks/ANTV2/Strings/resources.resjson/en-US/resources.resjson @@ -4,7 +4,6 @@ "loc.description": "Build with Apache Ant", "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", "loc.group.displayName.junitTestResults": "JUnit Test Results", - "loc.group.displayName.codeCoverage": "Code Coverage", "loc.group.displayName.advanced": "Advanced", "loc.input.label.antBuildFile": "Ant build file", "loc.input.help.antBuildFile": "Relative path from the repository root to the Ant build file.", @@ -18,16 +17,6 @@ "loc.input.help.testResultsFiles": "Test results files path. Wildcards can be used ([more information](https://go.microsoft.com/fwlink/?linkid=856077)). For example, `**/TEST-*.xml` for all XML files whose name starts with TEST-.", "loc.input.label.testRunTitle": "Test run title", "loc.input.help.testRunTitle": "Provide a name for the test run.", - "loc.input.label.codeCoverageTool": "Code coverage tool", - "loc.input.help.codeCoverageTool": "Select the code coverage tool. For on-premises agent support, refer to the `More Information` link below.", - "loc.input.label.classFilesDirectories": "Class files directories", - "loc.input.help.classFilesDirectories": "Comma-separated list of relative paths from the Ant build file to directories containing class files and archive files (JAR, WAR, etc.). Code coverage is reported for class files in these directories. For example: target/classes,target/testClasses.", - "loc.input.label.classFilter": "Class inclusion/exclusion filters", - "loc.input.help.classFilter": "Comma-separated list of filters to include or exclude classes from collecting code coverage. For example: +:com.*,+:org.*,-:my.app*.*.", - "loc.input.label.srcDirectories": "Source files directories", - "loc.input.help.srcDirectories": "Comma-separated list of relative paths from the Ant build file to source code directories. Code coverage reports will use these to highlight source code. For example: src/java,src/Test.", - "loc.input.label.failIfCoverageEmpty": "Fail when code coverage results are missing", - "loc.input.help.failIfCoverageEmpty": "Fail the build if code coverage did not produce any results to publish.", "loc.input.label.antHomeUserInputPath": "Set ANT_HOME path", "loc.input.help.antHomeUserInputPath": "If set, overrides any existing ANT_HOME environment variable with the given path.", "loc.input.label.javaHomeSelection": "Set JAVA_HOME by", @@ -41,7 +30,5 @@ "loc.messages.LocateJVMBasedOnVersionAndArch": "Locate JAVA_HOME for Java %s %s", "loc.messages.UnsupportedJdkWarning": "JDK 9 and JDK 10 are out of support. Please switch to a later version in your project and pipeline. Attempting to build with JDK 11...", "loc.messages.FailedToLocateSpecifiedJVM": "Failed to find the specified JDK version. Please ensure the specified JDK version is installed on the agent and the environment variable '%s' exists and is set to the location of a corresponding JDK or use the [Java Tool Installer](https://go.microsoft.com/fwlink/?linkid=875287) task to install the desired JDK.", - "loc.messages.DiscontinueAntCodeCoverage": "We are discontinuing the support of automated code coverage report generation for Ant projects. Please refer to https://go.microsoft.com/fwlink/?linkid=875306 for more details.", - "loc.messages.NoCodeCoverage": "No code coverage results were found to publish.", "loc.messages.NoTestResults": "No test result files matching %s were found, so publishing JUnit test results is being skipped." } \ No newline at end of file diff --git a/Tasks/ANTV2/Strings/resources.resjson/es-ES/resources.resjson b/Tasks/ANTV2/Strings/resources.resjson/es-ES/resources.resjson index f86e065e2355..f0a1c045154d 100644 --- a/Tasks/ANTV2/Strings/resources.resjson/es-ES/resources.resjson +++ b/Tasks/ANTV2/Strings/resources.resjson/es-ES/resources.resjson @@ -4,7 +4,6 @@ "loc.description": "Compilar con Apache Ant", "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", "loc.group.displayName.junitTestResults": "Resultados de pruebas JUnit", - "loc.group.displayName.codeCoverage": "Cobertura de código", "loc.group.displayName.advanced": "Avanzado", "loc.input.label.antBuildFile": "Archivo de compilación de Ant", "loc.input.help.antBuildFile": "Ruta de acceso relativa de la raíz del repositorio al archivo de compilación de Ant.", @@ -18,16 +17,6 @@ "loc.input.help.testResultsFiles": "Ruta de acceso de los archivos de resultados de pruebas. Puede usar caracteres comodín ([más información](https://go.microsoft.com/fwlink/?linkid=856077)). Por ejemplo, \"**\\*TEST-*.xml\" para todos los archivos XML cuyos nombres empiecen por TEST-.", "loc.input.label.testRunTitle": "Título de la serie de pruebas", "loc.input.help.testRunTitle": "Asigne un nombre a la serie de pruebas.", - "loc.input.label.codeCoverageTool": "Herramienta de cobertura de código", - "loc.input.help.codeCoverageTool": "Seleccione la herramienta de cobertura de código. Para el soporte técnico del agente local, consulte el vínculo siguiente \"Más información\".", - "loc.input.label.classFilesDirectories": "Directorios de archivos de clase", - "loc.input.help.classFilesDirectories": "Lista separada por comas de las rutas de acceso relativas desde el archivo de compilación de Ant a los directorios que contienen archivos de clase y archivos de almacenamiento (JAR, WAR, etc.). La cobertura de código se notifica para los archivos de clase que están en los directorios. Por ejemplo: target/classes,target/testClasses.", - "loc.input.label.classFilter": "Filtros de inclusión/exclusión de clase", - "loc.input.help.classFilter": "Lista separada por comas de los filtros para incluir o excluir clases de la recopilación de cobertura de código. Por ejemplo: +:com.*,+:org.*,-:my.app*.*.", - "loc.input.label.srcDirectories": "Directorios de archivos de origen", - "loc.input.help.srcDirectories": "Lista separada por comas de las rutas de acceso relativas desde el archivo de compilación de Ant a los directorios de código fuente. Los informes de cobertura de código las usarán para resaltar el código fuente. Por ejemplo: src/java,src/Test.", - "loc.input.label.failIfCoverageEmpty": "Error si faltan los resultados de cobertura de código", - "loc.input.help.failIfCoverageEmpty": "Error de compilación si la cobertura de código no generó ningún resultado para publicar.", "loc.input.label.antHomeUserInputPath": "Establecer la ruta ANT_HOME", "loc.input.help.antHomeUserInputPath": "Si se establece, reemplaza cualquier variable de entorno ANT_HOME existente por la ruta de acceso dada.", "loc.input.label.javaHomeSelection": "Establecer JAVA_HOME por", @@ -41,7 +30,5 @@ "loc.messages.LocateJVMBasedOnVersionAndArch": "Buscar JAVA_HOME para Java %s %s", "loc.messages.UnsupportedJdkWarning": "JDK 9 y JDK 10 no tienen soporte técnico. Cambie a una versión posterior del proyecto y la canalización. Intentando compilar con JDK 11...", "loc.messages.FailedToLocateSpecifiedJVM": "No se encontró la versión de JDK especificada. Asegúrese de que dicha versión está instalada en el agente y de que la variable de entorno \"%s\" existe y está establecida en la ubicación de un JDK correspondiente. En caso contrario, use la tarea de [Instalador de herramientas de Java](https://go.microsoft.com/fwlink/?linkid=875287) para instalar el JDK deseado.", - "loc.messages.DiscontinueAntCodeCoverage": "Se va a interrumpir la compatibilidad con la generación automatizada de informes de cobertura de código para proyectos de Ant. Consulte https://go.microsoft.com/fwlink/?linkid=875306 para más información.", - "loc.messages.NoCodeCoverage": "No se encontraron resultados de cobertura de código para publicar.", "loc.messages.NoTestResults": "No se encontraron archivos de resultados de pruebas que coincidan con %s, por lo que se omite la publicación de los resultados de las pruebas JUnit." } \ No newline at end of file diff --git a/Tasks/ANTV2/Strings/resources.resjson/fr-FR/resources.resjson b/Tasks/ANTV2/Strings/resources.resjson/fr-FR/resources.resjson index b6a0ea35609c..bfb2573b6acf 100644 --- a/Tasks/ANTV2/Strings/resources.resjson/fr-FR/resources.resjson +++ b/Tasks/ANTV2/Strings/resources.resjson/fr-FR/resources.resjson @@ -4,7 +4,6 @@ "loc.description": "Générer avec Apache Ant", "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", "loc.group.displayName.junitTestResults": "Résultats du test JUnit", - "loc.group.displayName.codeCoverage": "Couverture du code", "loc.group.displayName.advanced": "Avancé", "loc.input.label.antBuildFile": "Fichier de build Ant", "loc.input.help.antBuildFile": "Chemin relatif de la racine de dépôt au fichier de build Ant.", @@ -18,16 +17,6 @@ "loc.input.help.testResultsFiles": "Chemin des fichiers de résultats des tests. Les caractères génériques sont autorisés. ([Plus d'informations](https://go.microsoft.com/fwlink/?linkid=856077)). Par exemple, '**/TEST-*.xml' pour tous les fichiers XML dont le nom commence par TEST-.", "loc.input.label.testRunTitle": "Titre de la série de tests", "loc.input.help.testRunTitle": "Indiquez le nom de la série de tests.", - "loc.input.label.codeCoverageTool": "Outil de couverture du code", - "loc.input.help.codeCoverageTool": "Sélectionnez l'outil de couverture du code. Pour prendre en charge l'agent local, consultez le lien vers les informations supplémentaires ci-dessous.", - "loc.input.label.classFilesDirectories": "Répertoires de fichiers de classe", - "loc.input.help.classFilesDirectories": "Liste de chemins relatifs séparés par une virgule, allant du fichier de build Ant aux répertoires contenant les fichiers de classe et d'archive (JAR, WAR, etc.). La couverture du code est signalée pour les fichiers de classe dans ces répertoires. Exemple : target/classes,target/testClasses.", - "loc.input.label.classFilter": "Filtres d'inclusion/exclusion de classes", - "loc.input.help.classFilter": "Liste de filtres séparés par une virgule, permettant d'inclure ou d'exclure des classes dans la collecte de la couverture du code. Exemple : +:com.*,+:org.*,-:my.app*.*.", - "loc.input.label.srcDirectories": "Répertoires de fichiers sources", - "loc.input.help.srcDirectories": "Liste de chemins relatifs séparés par une virgule, allant du fichier de build Ant aux répertoires de code source. Les rapports de couverture du code les utilisent pour mettre le code source en surbrillance. Exemple : src/java,src/Test.", - "loc.input.label.failIfCoverageEmpty": "Échec quand les résultats de la couverture du code sont manquants", - "loc.input.help.failIfCoverageEmpty": "Échec de la build si la couverture du code ne produit aucun résultat à publier.", "loc.input.label.antHomeUserInputPath": "Définir le chemin de ANT_HOME", "loc.input.help.antHomeUserInputPath": "Si elle est définie, cette valeur remplace les variables d'environnement ANT_HOME existantes par le chemin spécifié.", "loc.input.label.javaHomeSelection": "Définir JAVA_HOME par", @@ -41,7 +30,5 @@ "loc.messages.LocateJVMBasedOnVersionAndArch": "Localiser JAVA_HOME pour Java %s %s", "loc.messages.UnsupportedJdkWarning": "JDK 9 et JDK 10 ne sont plus pris en charge. Passez à une version plus récente de votre projet et de votre pipeline. Tentative de génération avec JDK 11...", "loc.messages.FailedToLocateSpecifiedJVM": "Échec de la localisation de la version spécifiée du kit JDK. Vérifiez que la version spécifiée du kit JDK est installée sur l'agent, que la variable d'environnement '%s' existe et que sa valeur correspond à l'emplacement d'un kit JDK correspondant. Sinon, utilisez la tâche [Programme d'installation de l'outil Java] (https://go.microsoft.com/fwlink/?linkid=875287) pour installer le kit JDK souhaité.", - "loc.messages.DiscontinueAntCodeCoverage": "Nous mettons fin au support de la génération automatisée de rapports de couverture du code pour les projets Ant. Pour plus d'informations, consultez https://go.microsoft.com/fwlink/?linkid=875306.", - "loc.messages.NoCodeCoverage": "Il n'existe aucun résultat de couverture du code à publier.", "loc.messages.NoTestResults": "Les fichiers de résultats des tests correspondant à %s sont introuvables. La publication des résultats des tests JUnit est ignorée." } \ No newline at end of file diff --git a/Tasks/ANTV2/Strings/resources.resjson/it-IT/resources.resjson b/Tasks/ANTV2/Strings/resources.resjson/it-IT/resources.resjson index aa3286ef0482..10eadb608127 100644 --- a/Tasks/ANTV2/Strings/resources.resjson/it-IT/resources.resjson +++ b/Tasks/ANTV2/Strings/resources.resjson/it-IT/resources.resjson @@ -4,7 +4,6 @@ "loc.description": "Consente di compilare con Apache Ant", "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", "loc.group.displayName.junitTestResults": "Risultati del test JUnit", - "loc.group.displayName.codeCoverage": "Code coverage", "loc.group.displayName.advanced": "Avanzate", "loc.input.label.antBuildFile": "File di compilazione Ant", "loc.input.help.antBuildFile": "Percorso relativo dalla radice del repository al file di compilazione Ant.", @@ -18,16 +17,6 @@ "loc.input.help.testResultsFiles": "Percorso dei file dei risultati del test. È possibile usare i caratteri jolly, ad esempio `**/TEST-*.xml` per individuare tutti i file XML il cui nome inizia con TEST-. [Altre informazioni](https://go.microsoft.com/fwlink/?linkid=856077)", "loc.input.label.testRunTitle": "Titolo dell'esecuzione dei test", "loc.input.help.testRunTitle": "Consente di specificare un nome per l'esecuzione dei test.", - "loc.input.label.codeCoverageTool": "Strumento di code coverage", - "loc.input.help.codeCoverageTool": "Consente di selezionare lo strumento di code coverage. Per il supporto di agenti locali, fare riferimento al collegamento `Altre informazioni` sotto.", - "loc.input.label.classFilesDirectories": "Directory dei file di classe", - "loc.input.help.classFilesDirectories": "Elenco di percorsi relativi separati da virgole dal file di compilazione di Ant alle directory contenenti file di classe e file di archivio (JAR, WAR e così via). I report di code coverage vengono creati per i file di classe presenti in queste directory, ad esempio target/classes,target/testClasses.", - "loc.input.label.classFilter": "Filtri di inclusione/esclusione classi", - "loc.input.help.classFilter": "Elenco di filtri delimitati da virgole per includere o escludere classi dalla raccolta delle informazioni sul code coverage, ad esempio +:com.*,+:org.*,-:my.app*.*.", - "loc.input.label.srcDirectories": "Directory dei file di origine", - "loc.input.help.srcDirectories": "Elenco di percorsi relativi separati da virgole dal file di compilazione di Ant alle directory del codice sorgente. Tali percorsi verranno usati nei report di code coverage per evidenziare il codice sorgente, ad esempio src/java,src/Test.", - "loc.input.label.failIfCoverageEmpty": "Non eseguire se mancano i risultati del code coverage", - "loc.input.help.failIfCoverageEmpty": "Non esegue la compilazione se il code coverage non ha prodotto risultati da pubblicare.", "loc.input.label.antHomeUserInputPath": "Imposta percorso di ANT_HOME", "loc.input.help.antHomeUserInputPath": "Se è impostato, esegue l'override di eventuali variabili di ambiente ANT_HOME esistenti con il percorso specificato.", "loc.input.label.javaHomeSelection": "Imposta JAVA_HOME per", @@ -41,7 +30,5 @@ "loc.messages.LocateJVMBasedOnVersionAndArch": "Individuare JAVA_HOME per Java %s %s", "loc.messages.UnsupportedJdkWarning": "JDK 9 e JDK 10 non sono supportati. Passare a una versione più recente nel progetto e nella pipeline. Verrà effettuato un tentativo di compilazione con JDK 11...", "loc.messages.FailedToLocateSpecifiedJVM": "La versione del JDK specificata non è stata trovata. Assicurarsi che sia installata nell'agente e che la variabile di ambiente '%s' sia presente e impostata sul percorso di un JDK corrispondente oppure usare l'attività [Programma di installazione strumenti Java](https://go.microsoft.com/fwlink/?linkid=875287) per installare il JDK desiderato.", - "loc.messages.DiscontinueAntCodeCoverage": "Il supporto della generazione automatizzata di report di code coverage per progetti Ant a breve verrà sospeso. Per maggiori dettagli, vedere https://go.microsoft.com/fwlink/?linkid=875306.", - "loc.messages.NoCodeCoverage": "Non sono stati trovati risultati del code coverage da pubblicare.", "loc.messages.NoTestResults": "Non sono stati trovati file dei risultati del test corrispondenti a %s, di conseguenza la pubblicazione dei risultati del test JUnit verrà ignorata." } \ No newline at end of file diff --git a/Tasks/ANTV2/Strings/resources.resjson/ja-JP/resources.resjson b/Tasks/ANTV2/Strings/resources.resjson/ja-JP/resources.resjson index 31ca3ed5393f..7a08aec9a63d 100644 --- a/Tasks/ANTV2/Strings/resources.resjson/ja-JP/resources.resjson +++ b/Tasks/ANTV2/Strings/resources.resjson/ja-JP/resources.resjson @@ -4,7 +4,6 @@ "loc.description": "Apache Ant を使用してビルドします", "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", "loc.group.displayName.junitTestResults": "JUnit のテスト結果", - "loc.group.displayName.codeCoverage": "コード カバレッジ", "loc.group.displayName.advanced": "詳細設定", "loc.input.label.antBuildFile": "Ant ビルド ファイル", "loc.input.help.antBuildFile": "リポジトリのルートから Ant のビルド ファイルへの相対パス。", @@ -18,16 +17,6 @@ "loc.input.help.testResultsFiles": "テスト結果ファイルのパス。ワイルドカードを使用できます ([詳細情報](https://go.microsoft.com/fwlink/?linkid=856077))。たとえば、名前が TEST- で始まるすべての XML ファイルの場合は '**/TEST-*.xml' です。", "loc.input.label.testRunTitle": "テストの実行のタイトル", "loc.input.help.testRunTitle": "テストの実行の名前を指定します。", - "loc.input.label.codeCoverageTool": "コード カバレッジ ツール", - "loc.input.help.codeCoverageTool": "コード カバレッジ ツールを選びます。オンプレミスのエージェントのサポートについては、以下の `詳細` リンクをご覧ください。", - "loc.input.label.classFilesDirectories": "クラス ファイル ディレクトリ", - "loc.input.help.classFilesDirectories": "クラス ファイルやアーカイブ ファイル (JAR、WAR など) を格納するディレクトリのパス (Ant ビルド ファイルから見た相対パス) のコンマ区切り一覧。コード カバレッジはこれらのディレクトリ内のクラス ファイルに関して報告されます。たとえば、target/classes,target/testClasses と指定します。", - "loc.input.label.classFilter": "クラス包含/除外フィルター", - "loc.input.help.classFilter": "コード カバレッジの収集にクラスを含めたり除いたりするためのフィルターのコンマ区切り一覧。たとえば、+:com.*,+:org.*,-:my.app*.* と指定します。", - "loc.input.label.srcDirectories": "ソース ファイル ディレクトリ", - "loc.input.help.srcDirectories": "ソース コード ディレクトリのパス (Ant ビルド ファイルから見た相対パス) のコンマ区切り一覧。コード カバレッジ レポートはこれらを使用してソース コードをハイライトします。たとえば、src/java,src/Test と指定します。", - "loc.input.label.failIfCoverageEmpty": "コード カバレッジの結果がない場合に失敗する", - "loc.input.help.failIfCoverageEmpty": "コード カバレッジから発行するべき結果が生成されなかった場合に、ビルドを失敗にします。", "loc.input.label.antHomeUserInputPath": "ANT_HOME パスの設定", "loc.input.help.antHomeUserInputPath": "設定されると、指定したパスの既存のあらゆる ANT_HOME 環境変数をオーバーライドします。", "loc.input.label.javaHomeSelection": "次の条件で JAVA_HOME を設定します", @@ -41,7 +30,5 @@ "loc.messages.LocateJVMBasedOnVersionAndArch": "Java %s %s の JAVA_HOME を検索する", "loc.messages.UnsupportedJdkWarning": "JDK 9 および JDK 10 はサポートされていません。プロジェクトとパイプラインで新しいバージョンに切り替えてください。JDK 11 でのビルドを試行しています...", "loc.messages.FailedToLocateSpecifiedJVM": "指定された JDK バージョンが見つかりませんでした。指定された JDK バージョンがエージェントにインストールされており、環境変数 '%s' が存在し、対応する JDK の場所に設定されていることを確認するか、[Java ツール インストーラー](https://go.microsoft.com/fwlink/?linkid=875287) タスクを使用して目的の JDK をインストールしてください。", - "loc.messages.DiscontinueAntCodeCoverage": "Ant プロジェクト向けの自動コード カバレッジ レポート生成のサポートを中止します。詳細については、https://go.microsoft.com/fwlink/?linkid=875306 をご覧ください。", - "loc.messages.NoCodeCoverage": "発行するコード カバレッジの結果が見つかりませんでした。", "loc.messages.NoTestResults": "%s と一致するテスト結果ファイルが見つからないため、JUnit テスト結果の発行をスキップします。" } \ No newline at end of file diff --git a/Tasks/ANTV2/Strings/resources.resjson/ko-KR/resources.resjson b/Tasks/ANTV2/Strings/resources.resjson/ko-KR/resources.resjson index e75db3aeeaaa..33dfbe7d398c 100644 --- a/Tasks/ANTV2/Strings/resources.resjson/ko-KR/resources.resjson +++ b/Tasks/ANTV2/Strings/resources.resjson/ko-KR/resources.resjson @@ -4,7 +4,6 @@ "loc.description": "Apache Ant로 빌드", "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", "loc.group.displayName.junitTestResults": "JUnit 테스트 결과", - "loc.group.displayName.codeCoverage": "코드 검사", "loc.group.displayName.advanced": "고급", "loc.input.label.antBuildFile": "Ant 빌드 파일", "loc.input.help.antBuildFile": "Ant 빌드 파일의 리포지토리 루트로부터의 상대 경로입니다.", @@ -18,16 +17,6 @@ "loc.input.help.testResultsFiles": "테스트 결과 파일 경로입니다. 와일드카드를 사용할 수 있습니다([자세한 정보](https://go.microsoft.com/fwlink/?linkid=856077)). 예를 들어 이름이 TEST-로 시작하는 모든 XML 파일을 표시하려면 '**/TEST-*.xml'을 지정합니다.", "loc.input.label.testRunTitle": "테스트 실행 제목", "loc.input.help.testRunTitle": "테스트 실행의 이름을 지정하세요.", - "loc.input.label.codeCoverageTool": "코드 검사 도구", - "loc.input.help.codeCoverageTool": "코드 검사 도구를 선택하세요. 온-프레미스 에이전트 지원의 경우 아래의 '추가 정보' 링크를 참조하세요.", - "loc.input.label.classFilesDirectories": "클래스 파일 디렉터리", - "loc.input.help.classFilesDirectories": "Ant 빌드 파일과 클래스 파일, 보관 파일(JAR, WAR 등)이 포함된 디렉터리 간 상대 경로의 쉼표로 구분된 목록입니다. 코드 검사는 이러한 디렉터리에 있는 클래스 파일에 대해 보고됩니다(예: target/classes,target/testClasses).", - "loc.input.label.classFilter": "클래스 포함/제외 필터", - "loc.input.help.classFilter": "코드 검사 수집에서 클래스를 포함하거나 제외할 필터의 쉼표로 구분된 목록입니다(예: +:com.*,+:org.*,-:my.app*.*).", - "loc.input.label.srcDirectories": "소스 파일 디렉터리", - "loc.input.help.srcDirectories": "Ant 빌드 파일과 소스 코드 디렉터리 간 상대 경로의 쉼표로 구분된 목록입니다. 코드 검사 보고서에서는 이를 사용하여 소스 코드를 강조 표시합니다(예: src/java,src/Test).", - "loc.input.label.failIfCoverageEmpty": "코드 검사 결과가 없는 경우 실패", - "loc.input.help.failIfCoverageEmpty": "코드 검사에서 게시할 결과를 생성하지 않은 경우 빌드가 실패합니다.", "loc.input.label.antHomeUserInputPath": "ANT_HOME 경로 설정", "loc.input.help.antHomeUserInputPath": "설정하는 경우 기존 ANT_HOME 환경 변수를 지정된 경로로 재정의합니다.", "loc.input.label.javaHomeSelection": "JAVA_HOME 설정 방법", @@ -41,7 +30,5 @@ "loc.messages.LocateJVMBasedOnVersionAndArch": "Java %s %s에 대해 JAVA_HOME 찾기", "loc.messages.UnsupportedJdkWarning": "JDK 9 및 JDK 10은 지원되지 않습니다. 프로젝트 및 파이프라인에서 최신 버전으로 전환하세요. JDK 11을 사용하여 빌드를 시도하는 중...", "loc.messages.FailedToLocateSpecifiedJVM": "지정한 JDK 버전을 찾지 못했습니다. 지정한 JDK 버전이 에이전트에 설치되어 있으며 환경 변수 '%s'이(가) 있고 해당 JDK의 위치로 설정되었는지 확인하거나, [Java 도구 설치 관리자](https://go.microsoft.com/fwlink/?linkid=875287) 작업을 사용하여 원하는 JDK를 설치하세요.", - "loc.messages.DiscontinueAntCodeCoverage": "Ant 프로젝트에 대한 자동 코드 검사 보고서 생성을 더 이상 지원하지 않습니다. 자세한 내용은 https://go.microsoft.com/fwlink/?linkid=875306을 참조하세요.", - "loc.messages.NoCodeCoverage": "게시할 코드 검사 결과가 없습니다.", "loc.messages.NoTestResults": "%s과(와) 일치하는 테스트 결과 파일을 찾을 수 없으므로 JUnit 테스트 결과 게시를 건너뜁니다." } \ No newline at end of file diff --git a/Tasks/ANTV2/Strings/resources.resjson/ru-RU/resources.resjson b/Tasks/ANTV2/Strings/resources.resjson/ru-RU/resources.resjson index f913b01323ef..913c95895aac 100644 --- a/Tasks/ANTV2/Strings/resources.resjson/ru-RU/resources.resjson +++ b/Tasks/ANTV2/Strings/resources.resjson/ru-RU/resources.resjson @@ -4,7 +4,6 @@ "loc.description": "Сборка с помощью Apache Ant", "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", "loc.group.displayName.junitTestResults": "Результаты теста JUnit", - "loc.group.displayName.codeCoverage": "Объем протестированного кода", "loc.group.displayName.advanced": "Дополнительно", "loc.input.label.antBuildFile": "Файл сборки Ant", "loc.input.help.antBuildFile": "Относительный путь от корня репозитория к файлу сборки Ant.", @@ -18,16 +17,6 @@ "loc.input.help.testResultsFiles": "Путь к файлам результатов тестов. Можно использовать подстановочные знаки ([дополнительные сведения](https://go.microsoft.com/fwlink/?linkid=856077)). Пример: \"**/TEST-*.xml\" для всех XML-файлов, имена которых начинаются с \"TEST-\".", "loc.input.label.testRunTitle": "Название тестового запуска", "loc.input.help.testRunTitle": "Укажите имя для тестового запуска.", - "loc.input.label.codeCoverageTool": "Средство оценки объема протестированного кода", - "loc.input.help.codeCoverageTool": "Выберите средство оценки объема протестированного кода. Сведения о поддержке локального агента см. по ссылке \"Дополнительные сведения\" ниже.", - "loc.input.label.classFilesDirectories": "Каталоги файлов классов", - "loc.input.help.classFilesDirectories": "Список относительных путей с разделителями-запятыми от файла сборки ANT до каталогов, содержащих файлы классов и архивов (JAR, WAR и т. д.). Объем протестированного кода указывается для файлов классов в этих каталогах. Например: target/classes,target/testClasses.", - "loc.input.label.classFilter": "Фильтры включения и исключения классов", - "loc.input.help.classFilter": "Список фильтров с разделителями-запятыми для включения или исключения классов при сборе данных по объему протестированного кода. Например: +:com.*,+:org.*,-:my.app*.*.", - "loc.input.label.srcDirectories": "Каталоги файлов с исходным кодом", - "loc.input.help.srcDirectories": "Список относительных путей с разделителями-запятыми от файла сборки ANT до каталогов с исходным кодом. Он будет использоваться в отчетах об объеме протестированного кода для выделения исходного кода. Например: src/java,src/Test.", - "loc.input.label.failIfCoverageEmpty": "Сбой, если результаты для объема протестированного кода отсутствуют", - "loc.input.help.failIfCoverageEmpty": "Если объем протестированного кода не дал результатов для публикации, завершить сборку сбоем.", "loc.input.label.antHomeUserInputPath": "Задать путь ANT_HOME", "loc.input.help.antHomeUserInputPath": "Если этот параметр задан, переопределяет любую существующую переменную среды ANT_HOME заданным путем.", "loc.input.label.javaHomeSelection": "Установка JAVA_HOME с помощью", @@ -41,7 +30,5 @@ "loc.messages.LocateJVMBasedOnVersionAndArch": "Найдите JAVA_HOME для Java %s %s", "loc.messages.UnsupportedJdkWarning": "Поддержка JDK 9 и JDK 10 прекращена. Переключитесь на более позднюю версию в проекте и конвейере. Выполняется попытка сборки с помощью JDK 11...", "loc.messages.FailedToLocateSpecifiedJVM": "Не удалось найти указанную версию JDK. Убедитесь в том, что указанная версия JDK установлена в агенте и что переменная среды \"%s\" существует и ее значением является расположение соответствующего пакета JDK, или используйте [установщик средств Java] (https://go.microsoft.com/fwlink/?linkid=875287), чтобы установить требуемую версию JDK.", - "loc.messages.DiscontinueAntCodeCoverage": "Мы прекращаем поддержку автоматического создания отчетов об объемах протестированного кода для проектов Ant. Подробности см. на странице https://go.microsoft.com/fwlink/?linkid=875306.", - "loc.messages.NoCodeCoverage": "Результаты по объему протестированного кода для публикации не найдены.", "loc.messages.NoTestResults": "Не найдены файлы результатов теста, соответствующие \"%s\". Публикация результатов теста JUnit пропускается." } \ No newline at end of file diff --git a/Tasks/ANTV2/Strings/resources.resjson/zh-CN/resources.resjson b/Tasks/ANTV2/Strings/resources.resjson/zh-CN/resources.resjson index 766dc3517e1c..76c06ee08442 100644 --- a/Tasks/ANTV2/Strings/resources.resjson/zh-CN/resources.resjson +++ b/Tasks/ANTV2/Strings/resources.resjson/zh-CN/resources.resjson @@ -4,7 +4,6 @@ "loc.description": "使用 Apache Ant 生成", "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", "loc.group.displayName.junitTestResults": "JUnit 测试结果", - "loc.group.displayName.codeCoverage": "代码覆盖率", "loc.group.displayName.advanced": "高级", "loc.input.label.antBuildFile": "Ant 生成文件", "loc.input.help.antBuildFile": "从存储库根路径到“Ant 生成文件”的相对路径。", @@ -18,16 +17,6 @@ "loc.input.help.testResultsFiles": "测试结果文件路径。可以使用通配符([详细信息](https://go.microsoft.com/fwlink/?linkid=856077))。例如,\"**/TEST-*.xml\" 表示名称以 TEST- 开头的所有 xml 文件。", "loc.input.label.testRunTitle": "测试运行标题", "loc.input.help.testRunTitle": "为测试运行提供一个名称。", - "loc.input.label.codeCoverageTool": "代码覆盖率工具", - "loc.input.help.codeCoverageTool": "选择代码覆盖率工具。有关本地代理支持,请参阅下方的“详细信息”链接。", - "loc.input.label.classFilesDirectories": "类文件目录", - "loc.input.help.classFilesDirectories": "从 Ant 生成文件到目录的相对路径的列表,以逗号分隔,其中目录包含类文件和存档文件(JAR 和 WAR 等)。报告这些目录中类文件的代码覆盖率。例如: target/classes,target/testClasses。", - "loc.input.label.classFilter": "类包含/排除筛选器", - "loc.input.help.classFilter": "用于在收集代码覆盖率时包含或排除类的筛选器列表,以逗号分隔。例如: +:com.*、+:org.*、-:my.app*.*。", - "loc.input.label.srcDirectories": "源文件目录", - "loc.input.help.srcDirectories": "从 Ant 生成文件到源代码目录的相对路径列表,用逗号隔开。代码覆盖率报告将使用这些路径来突出显示源代码。例如: src/java,src/Test。", - "loc.input.label.failIfCoverageEmpty": "缺失代码覆盖率结果时失败", - "loc.input.help.failIfCoverageEmpty": "如果代码覆盖率未产生任何要发布的结果,则生成将失败。", "loc.input.label.antHomeUserInputPath": "设置 ANT_HOME 路径", "loc.input.help.antHomeUserInputPath": "如已设置,将用给定路径覆盖任何现有 ANT_HOME 环境变量。", "loc.input.label.javaHomeSelection": "JAVA_HOME 设置方法", @@ -41,7 +30,5 @@ "loc.messages.LocateJVMBasedOnVersionAndArch": "为 Java %s %s 查找 JAVA_HOME", "loc.messages.UnsupportedJdkWarning": "JDK 9 和 JDK 10 不受支持。请切换到项目和管道中的更高版本。正在尝试使用 JDK 11 进行生成...", "loc.messages.FailedToLocateSpecifiedJVM": "未能找到指定的 JDK 版本。请确保代理上安装了指定的 JDK 版本,环境变量“%s”存在并设置为对应 JDK 的位置或使用[Java 工具安装程序](https://go.microsoft.com/fwlink/?linkid=875287)任务安装所需 JDK。", - "loc.messages.DiscontinueAntCodeCoverage": "我们将不再支持为 Ant 项目自动生成代码覆盖率报告。有关详细信息,请参阅 https://go.microsoft.com/fwlink/?linkid=875306。", - "loc.messages.NoCodeCoverage": "未找到可发布的代码覆盖率结果。", "loc.messages.NoTestResults": "未找到匹配 %s 的测试结果文件,因此将跳过发布 JUnit 测试结果。" } \ No newline at end of file diff --git a/Tasks/ANTV2/Strings/resources.resjson/zh-TW/resources.resjson b/Tasks/ANTV2/Strings/resources.resjson/zh-TW/resources.resjson index 29a91dfd1ae4..fdf700887b06 100644 --- a/Tasks/ANTV2/Strings/resources.resjson/zh-TW/resources.resjson +++ b/Tasks/ANTV2/Strings/resources.resjson/zh-TW/resources.resjson @@ -4,7 +4,6 @@ "loc.description": "使用 Apache Ant 建置", "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", "loc.group.displayName.junitTestResults": "JUnit 測試結果", - "loc.group.displayName.codeCoverage": "程式碼涵蓋範圍", "loc.group.displayName.advanced": "進階", "loc.input.label.antBuildFile": "Ant 組建檔案", "loc.input.help.antBuildFile": "從存放庫根路徑到 Ant 組建檔案的相對路徑。", @@ -18,16 +17,6 @@ "loc.input.help.testResultsFiles": "測試結果檔案路徑。可使用萬用字元 ([詳細資訊](https://go.microsoft.com/fwlink/?linkid=856077))。例如 `**/TEST-*.xml` 表示名稱開頭為 TEST- 的所有 XML 檔案。", "loc.input.label.testRunTitle": "測試回合標題", "loc.input.help.testRunTitle": "提供測試回合的名稱。", - "loc.input.label.codeCoverageTool": "程式碼涵蓋範圍工具", - "loc.input.help.codeCoverageTool": "選取程式碼涵蓋範圍工具。如需內部部署代理程式支援,請參閱下面的<詳細資訊>連結。", - "loc.input.label.classFilesDirectories": "類別檔案目錄", - "loc.input.help.classFilesDirectories": "以逗號分隔的清單,內含從 Ant 組建檔案到包含類別檔案和封存檔案 (JAR、WAR 等) 之目錄的相對路徑。回報的程式碼涵蓋範圍為這些目錄中的類別檔案。例如: target/classes,target/testClasses。", - "loc.input.label.classFilter": "類別包含/排除篩選", - "loc.input.help.classFilter": "以逗號分隔的清單,內含可從收集程式碼涵蓋範圍將類別加以包含或排除的篩選條件。例如: +:com.*,+:org.*,-:my.app*.*。", - "loc.input.label.srcDirectories": "原始程式檔目錄", - "loc.input.help.srcDirectories": "以逗號分隔的清單,內含從 Ant 組建檔案到原始程式碼目錄的相對路徑。程式碼涵蓋範圍報表會加以使用,以強調顯示原始程式碼。例如: src/java,src/Test。", - "loc.input.label.failIfCoverageEmpty": "遺漏程式碼涵蓋範圍結果時失敗", - "loc.input.help.failIfCoverageEmpty": "如果程式碼涵蓋範圍未產生任何可發行的結果,則建置失敗。", "loc.input.label.antHomeUserInputPath": "設定 ANT_HOME 路徑", "loc.input.help.antHomeUserInputPath": "如有設定,將會以指定的路徑覆寫任何現有的 ANT_HOME 環境變數。", "loc.input.label.javaHomeSelection": "設定 JAVA_HOME 由", @@ -41,7 +30,5 @@ "loc.messages.LocateJVMBasedOnVersionAndArch": "為 Java %s %s 找出 JAVA_HOME 的位置", "loc.messages.UnsupportedJdkWarning": "JDK 9 與 JDK 10 已失去支援。請在您的專案和管線中切換至較新版本。正在嘗試以 JDK 11 進行建置...", "loc.messages.FailedToLocateSpecifiedJVM": "找不到指定的 JDK 版本。請確認指定的 JDK 版本已安裝在代理程式上,且環境變數 '%s' 存在並已設定為對應 JDK 的位置,或者使用 [Java 工具安裝程式](https://go.microsoft.com/fwlink/?linkid=875287) 工作安裝所需的 JDK。", - "loc.messages.DiscontinueAntCodeCoverage": "我們即將中止對自動產生 Ant 專案程式碼涵蓋範圍報告的支援。如需更多詳細資料,請參閱 https://go.microsoft.com/fwlink/?linkid=875306。", - "loc.messages.NoCodeCoverage": "找不到要發行的程式碼涵蓋範圍結果。", "loc.messages.NoTestResults": "找不到任何符合 %s 的測試結果,因此跳過發行 JUnit 測試結果。" } \ No newline at end of file diff --git a/Tasks/ANTV2/Tests/L0FailedBuilds.ts b/Tasks/ANTV2/Tests/L0FailedBuilds.ts index 548228eddd73..4434c14f92d7 100644 --- a/Tasks/ANTV2/Tests/L0FailedBuilds.ts +++ b/Tasks/ANTV2/Tests/L0FailedBuilds.ts @@ -11,7 +11,6 @@ runner.setInput('javaHomeSelection', 'JDKVersion'); runner.setInput('jdkVersion', 'default'); runner.setInput('testResultsFiles', '**/TEST-*.xml'); runner.setInput('publishJUnitResults', 'true'); -runner.setInput('codeCoverageTool', 'None'); runner.setAnswers(answers.failAnswers); diff --git a/Tasks/ANTV2/Tests/L0NoMatchingTestResults.ts b/Tasks/ANTV2/Tests/L0NoMatchingTestResults.ts index 249d2faaf53f..5bb767c11399 100644 --- a/Tasks/ANTV2/Tests/L0NoMatchingTestResults.ts +++ b/Tasks/ANTV2/Tests/L0NoMatchingTestResults.ts @@ -10,7 +10,6 @@ runner.setInput('javaHomeSelection', 'JDKVersion'); runner.setInput('jdkVersion', 'default'); runner.setInput('testResultsFiles', '**/InvalidTestFilter-*.xml'); runner.setInput('publishJUnitResults', 'true'); -runner.setInput('codeCoverageTool', 'None'); runner.setAnswers(answers.successAnswers); diff --git a/Tasks/ANTV2/Tests/L0PublishTestResults.ts b/Tasks/ANTV2/Tests/L0PublishTestResults.ts index e3cce17f80bd..c265214a5ce9 100644 --- a/Tasks/ANTV2/Tests/L0PublishTestResults.ts +++ b/Tasks/ANTV2/Tests/L0PublishTestResults.ts @@ -10,7 +10,6 @@ runner.setInput('javaHomeSelection', 'JDKVersion'); runner.setInput('jdkVersion', 'default'); runner.setInput('testResultsFiles', '**/TEST-*.xml'); runner.setInput('publishJUnitResults', 'true'); -runner.setInput('codeCoverageTool', 'None'); runner.setAnswers(answers.successAnswers); diff --git a/Tasks/ANTV2/Tests/answers.ts b/Tasks/ANTV2/Tests/answers.ts index ed2ddf81c437..1425ef28749f 100644 --- a/Tasks/ANTV2/Tests/answers.ts +++ b/Tasks/ANTV2/Tests/answers.ts @@ -14,10 +14,6 @@ export const successAnswers: TaskLibAnswers = { "code": 0, "stdout": "" }, - "/usr/local/bin/ANT -buildfile /build/build.xml CodeCoverage_9064e1d0": { - "code": 0, - "stdout": "" - }, "reg query HKLM\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.5 /v JavaHome /reg:32": { "code": 222, "stdout": "" @@ -38,40 +34,6 @@ export const successAnswers: TaskLibAnswers = { "JAVA_HOME_8_X64": "/user/local/bin/ANT8", "System.DefaultWorkingDirectory": "/user/build" }, - "rmRF": { - "\\build\\InstrumentedClasses": { - "success": true, - "message": "success" - }, - "\\build\\cobertura.ser": { - "success": true, - "message": "success" - }, - "\\build\\CCReport43F6D5EF": { - "success": true, - "message": "success" - }, - "\\build\\CCReportBuildA4D283EG.xml": { - "success": true, - "message": "success" - }, - "/build/InstrumentedClasses": { - "success": true, - "message": "success" - }, - "/build/cobertura.ser": { - "success": true, - "message": "success" - }, - "/build/CCReport43F6D5EF": { - "success": true, - "message": "success" - }, - "/build/CCReportBuildA4D283EG.xml": { - "success": true, - "message": "success" - } - }, "find": { "/user/build": [ "/user/build/fun/test-123.xml" @@ -106,16 +68,6 @@ export const failAnswers: TaskLibAnswers = { "getVariable": { "ANT_HOME": "/user/local/bin/ANT" }, - "rmRF": { - "\\build\\InstrumentedClasses": { - "success": true, - "message": "success" - }, - "/build/InstrumentedClasses": { - "success": true, - "message": "success" - } - }, "find": { "/user/build": [ "/user/build/fun/test-123.xml" @@ -146,15 +98,5 @@ export const versionFailAnswers: TaskLibAnswers = { "checkPath" : { "/usr/local/bin/ANT": true, "/build/build.xml": true - }, - "rmRF": { - "\\build\\InstrumentedClasses": { - "success": true, - "message": "success" - }, - "/build/InstrumentedClasses": { - "success": true, - "message": "success" - } } } diff --git a/Tasks/ANTV2/_buildConfigs/Node20/package-lock.json b/Tasks/ANTV2/_buildConfigs/Node20/package-lock.json index 647e5ac283c0..5ec9e0c8b1ae 100644 --- a/Tasks/ANTV2/_buildConfigs/Node20/package-lock.json +++ b/Tasks/ANTV2/_buildConfigs/Node20/package-lock.json @@ -10,7 +10,6 @@ "@types/mocha": "^5.2.7", "@types/node": "^20.3.1", "azure-pipelines-task-lib": "^4.15.0", - "azure-pipelines-tasks-codecoverage-tools": "2.201.0", "azure-pipelines-tasks-java-common": "2.198.1", "xml2js": "^0.6.2" }, @@ -118,66 +117,6 @@ "node": "*" } }, - "node_modules/azure-pipelines-tasks-codecoverage-tools": { - "version": "2.201.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/azure-pipelines-tasks-codecoverage-tools/-/azure-pipelines-tasks-codecoverage-tools-2.201.0.tgz", - "integrity": "sha512-3yl6vbw62gXWxBxMYi5XOF0Rq7JE3KjQtZHDeTDSNLGttsjlm88jEnYU+lsjOqFtnUbnWTX8HB96Vx5c5iL+fA==", - "dependencies": { - "@types/cheerio": "0.22.0", - "@types/node": "^10.17.0", - "@types/q": "^1.5.4", - "azure-pipelines-task-lib": "^3.1.0", - "cheerio": "1.0.0-rc.6", - "fs-extra": "^0.30.0", - "os": "^0.1.1", - "strip-bom": "^3.0.0", - "xml2js": "^0.4.17" - } - }, - "node_modules/azure-pipelines-tasks-codecoverage-tools/node_modules/@types/node": { - "version": "10.17.60", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" - }, - "node_modules/azure-pipelines-tasks-codecoverage-tools/node_modules/azure-pipelines-task-lib": { - "version": "3.4.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/azure-pipelines-task-lib/-/azure-pipelines-task-lib-3.4.0.tgz", - "integrity": "sha512-3eC4OTFw+7xD7A2aUhxR/j+jRlTI+vVfS0CGxt1pCLs4c/KmY0tQWgbqjD3157kmiucWxELBvgZHaD2gCBe9fg==", - "license": "MIT", - "dependencies": { - "minimatch": "3.0.5", - "mockery": "^2.1.0", - "q": "^1.5.1", - "semver": "^5.1.0", - "shelljs": "^0.8.5", - "sync-request": "6.1.0", - "uuid": "^3.0.1" - } - }, - "node_modules/azure-pipelines-tasks-codecoverage-tools/node_modules/minimatch": { - "version": "3.0.5", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/azure-pipelines-tasks-codecoverage-tools/node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "license": "MIT", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/azure-pipelines-tasks-java-common": { "version": "2.198.1", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/azure-pipelines-tasks-java-common/-/azure-pipelines-tasks-java-common-2.198.1.tgz", diff --git a/Tasks/ANTV2/_buildConfigs/Node20/package.json b/Tasks/ANTV2/_buildConfigs/Node20/package.json index 9469ac84ae52..b0a43dc2c722 100644 --- a/Tasks/ANTV2/_buildConfigs/Node20/package.json +++ b/Tasks/ANTV2/_buildConfigs/Node20/package.json @@ -10,7 +10,6 @@ "@types/mocha": "^5.2.7", "@types/node": "^20.3.1", "azure-pipelines-task-lib": "^4.15.0", - "azure-pipelines-tasks-codecoverage-tools": "2.201.0", "azure-pipelines-tasks-java-common": "2.198.1", "xml2js": "^0.6.2" }, diff --git a/Tasks/ANTV2/anttask.ts b/Tasks/ANTV2/anttask.ts index 51109b1dd815..edb98992ffd9 100644 --- a/Tasks/ANTV2/anttask.ts +++ b/Tasks/ANTV2/anttask.ts @@ -1,26 +1,14 @@ -import * as fs from 'fs'; import * as os from 'os'; import * as path from 'path'; -import * as Q from "q"; import * as tl from 'azure-pipelines-task-lib/task'; import * as javacommons from 'azure-pipelines-tasks-java-common/java-common'; -import * as ccUtils from 'azure-pipelines-tasks-codecoverage-tools/codecoverageutilities'; -import {CodeCoverageEnablerFactory} from 'azure-pipelines-tasks-codecoverage-tools/codecoveragefactory'; tl.setResourcePath(path.join(__dirname, 'task.json')); const TESTRUN_SYSTEM = "VSTS - ant"; const isWindows = os.type().match(/^Win/); -function pathExistsAsFile(path: string) { - try { - return tl.stats(path).isFile(); - } - catch (error) { - return false; - } -} function publishTestResults(publishJUnitResults, testResultsFiles: string) { if (publishJUnitResults == 'true') { @@ -87,101 +75,6 @@ function processAntOutputLine(line) { async function doWork() { - function execEnableCodeCoverage(): Q.Promise { - return enableCodeCoverage() - .then(function (resp) { - tl.debug("Enabled code coverage successfully"); - return "CodeCoverage_9064e1d0"; - }).catch(function (err) { - tl.warning("Failed to enable code coverage: " + err); - return ""; - }); - }; - - function enableCodeCoverage(): Q.Promise { - if (!isCodeCoverageOpted) { - return Q.resolve(true); - } - - const classFilter: string = tl.getInput('classFilter'); - const classFilesDirectories: string = tl.getInput('classFilesDirectories', true); - const sourceDirectories: string = tl.getInput('srcDirectories'); - // appending with small guid to keep it unique. Avoiding full guid to ensure no long path issues. - const reportDirectoryName = "CCReport43F6D5EF"; - reportDirectory = path.join(buildRootPath, reportDirectoryName); - const reportBuildFileName = "CCReportBuildA4D283EG.xml"; - reportBuildFile = path.join(buildRootPath, reportBuildFileName); - let summaryFileName = ""; - if (ccTool.toLowerCase() == "jacoco") { - summaryFileName = "summary.xml"; - }else if (ccTool.toLowerCase() == "cobertura") { - summaryFileName = "coverage.xml"; - } - summaryFile = path.join(buildRootPath, reportDirectoryName, summaryFileName); - const coberturaCCFile = path.join(buildRootPath, "cobertura.ser"); - let instrumentedClassesDirectory = path.join(buildRootPath, "InstrumentedClasses"); - - // clean any previous reports. - try { - tl.rmRF(coberturaCCFile); - tl.rmRF(reportDirectory); - tl.rmRF(reportBuildFile); - tl.rmRF(instrumentedClassesDirectory); - } catch (err) { - tl.debug("Error removing previous cc files: " + err); - } - - let buildProps: { [key: string]: string } = {}; - buildProps['buildfile'] = antBuildFile; - buildProps['classfilter'] = classFilter - buildProps['classfilesdirectories'] = classFilesDirectories; - buildProps['sourcedirectories'] = sourceDirectories; - buildProps['summaryfile'] = summaryFileName; - buildProps['reportdirectory'] = reportDirectory; - buildProps['ccreporttask'] = "CodeCoverage_9064e1d0" - buildProps['reportbuildfile'] = reportBuildFile; - - let ccEnabler = new CodeCoverageEnablerFactory().getTool("ant", ccTool.toLowerCase()); - return ccEnabler.enableCodeCoverage(buildProps); - } - - async function publishCodeCoverage(codeCoverageOpted: boolean, ccReportTask: string) { - tl.debug("publishCodeCoverage f=" + failIfCodeCoverageEmpty + " opt=" + codeCoverageOpted + " task=" + ccReportTask); - if (failIfCodeCoverageEmpty && codeCoverageOpted && !ccReportTask) { - throw tl.loc('NoCodeCoverage'); - } - else if (codeCoverageOpted && ccReportTask) { - tl.debug("Collecting code coverage reports"); - var antRunner = tl.tool(anttool); - antRunner.arg('-buildfile'); - if (pathExistsAsFile(reportBuildFile)) { - antRunner.arg(reportBuildFile); - antRunner.arg(ccReportTask); - } - else { - antRunner.arg(antBuildFile); - antRunner.arg(ccReportTask); - } - antRunner.exec().then(async function (code) { - if (failIfCodeCoverageEmpty && await ccUtils.isCodeCoverageFileEmpty(summaryFile, ccTool)) { - throw tl.loc('NoCodeCoverage'); - } - if (pathExistsAsFile(summaryFile)) { - tl.debug("Summary file = " + summaryFile); - tl.debug("Report directory = " + reportDirectory); - tl.debug("Publishing code coverage results to TFS"); - let ccPublisher = new tl.CodeCoveragePublisher(); - ccPublisher.publish(ccTool, summaryFile, reportDirectory, ""); - } - else { - tl.warning("No code coverage results found to be published. This could occur if there were no tests executed or there was a build failure. Check the ant output for details."); - } - }).fail(function (err) { - tl.warning("No code coverage results found to be published. This could occur if there were no tests executed or there was a build failure. Check the ant output for details."); - }); - } - } - try { var anttool = tl.which('ant', true); var antv = tl.tool(anttool); @@ -237,21 +130,9 @@ async function doWork() { process.env['JAVA_HOME'] = specifiedJavaHome; } - var ccTool = tl.getInput('codeCoverageTool'); - var isCodeCoverageOpted = (typeof ccTool != "undefined" && ccTool && ccTool.toLowerCase() != 'none'); - var failIfCodeCoverageEmpty: boolean = tl.getBoolInput('failIfCoverageEmpty'); - var buildRootPath = path.dirname(antBuildFile); - var summaryFile: string = null; - var reportDirectory: string = null; - var ccReportTask: string = null; - var reportBuildFile: string = null; var publishJUnitResults = tl.getInput('publishJUnitResults'); var testResultsFiles = tl.getInput('testResultsFiles', true); - var publishJUnitResults = tl.getInput('publishJUnitResults'); - var testResultsFiles = tl.getInput('testResultsFiles', true); - - ccReportTask = await execEnableCodeCoverage(); await antv.exec(); var buffer; @@ -271,7 +152,6 @@ async function doWork() { await antb.exec() .then(async function (code) { publishTestResults(publishJUnitResults, testResultsFiles); - await publishCodeCoverage(isCodeCoverageOpted, ccReportTask); tl.setResult(tl.TaskResult.Succeeded, "Task succeeded"); }) .fail(function (err) { diff --git a/Tasks/ANTV2/make.json b/Tasks/ANTV2/make.json index 94be52b5a32d..8db9a0bf80f7 100644 --- a/Tasks/ANTV2/make.json +++ b/Tasks/ANTV2/make.json @@ -3,7 +3,6 @@ { "items": [ "node_modules/azure-pipelines-tasks-java-common/node_modules/azure-pipelines-task-lib", - "node_modules/azure-pipelines-tasks-codecoverage-tools/node_modules/azure-pipelines-task-lib", "node_modules/mockery" ], "options": "-Rf" diff --git a/Tasks/ANTV2/package-lock.json b/Tasks/ANTV2/package-lock.json index 408d6e422877..639c75fe7de2 100644 --- a/Tasks/ANTV2/package-lock.json +++ b/Tasks/ANTV2/package-lock.json @@ -3,11 +3,6 @@ "requires": true, "lockfileVersion": 1, "dependencies": { - "@types/cheerio": { - "version": "0.22.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/cheerio/-/cheerio-0.22.0.tgz", - "integrity": "sha512-dVL3RISC1jdrXilyqmPIga6LmjHwrDbWQoUyHuf/bGjP+HiNtyFJ3Gga1FCu55UYOqbuUGLPzkGkcsplkpSm8Q==" - }, "@types/concat-stream": { "version": "1.6.1", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/concat-stream/-/concat-stream-1.6.1.tgz", @@ -34,11 +29,6 @@ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/node/-/node-16.11.60.tgz", "integrity": "sha512-kYIYa1D1L+HDv5M5RXQeEu1o0FKA6yedZIoyugm/MBPROkLpX4L7HRxMrPVyo8bnvjpW/wDlqFNGzXNMb7AdRw==" }, - "@types/q": { - "version": "1.5.5", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/q/-/q-1.5.5.tgz", - "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" - }, "@types/qs": { "version": "6.9.7", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/qs/-/qs-6.9.7.tgz", @@ -96,60 +86,6 @@ } } }, - "azure-pipelines-tasks-codecoverage-tools": { - "version": "2.201.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/azure-pipelines-tasks-codecoverage-tools/-/azure-pipelines-tasks-codecoverage-tools-2.201.0.tgz", - "integrity": "sha512-3yl6vbw62gXWxBxMYi5XOF0Rq7JE3KjQtZHDeTDSNLGttsjlm88jEnYU+lsjOqFtnUbnWTX8HB96Vx5c5iL+fA==", - "requires": { - "@types/cheerio": "0.22.0", - "@types/node": "^10.17.0", - "@types/q": "^1.5.4", - "azure-pipelines-task-lib": "^3.1.0", - "cheerio": "1.0.0-rc.6", - "fs-extra": "^0.30.0", - "os": "^0.1.1", - "strip-bom": "^3.0.0", - "xml2js": "^0.4.17" - }, - "dependencies": { - "@types/node": { - "version": "10.17.60", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" - }, - "azure-pipelines-task-lib": { - "version": "3.3.1", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/azure-pipelines-task-lib/-/azure-pipelines-task-lib-3.3.1.tgz", - "integrity": "sha512-56ZAr4MHIoa24VNVuwPL4iUQ5MKaigPoYXkBG8E8fiVmh8yZdatUo25meNoQwg77vDY22F63Q44UzXoMWmy7ag==", - "requires": { - "minimatch": "3.0.5", - "mockery": "^1.7.0", - "q": "^1.5.1", - "semver": "^5.1.0", - "shelljs": "^0.8.5", - "sync-request": "6.1.0", - "uuid": "^3.0.1" - } - }, - "minimatch": { - "version": "3.0.5", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "xml2js": { - "version": "0.4.23", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - } - } - }, "azure-pipelines-tasks-java-common": { "version": "2.198.1", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/azure-pipelines-tasks-java-common/-/azure-pipelines-tasks-java-common-2.198.1.tgz", @@ -207,11 +143,6 @@ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" - }, "brace-expansion": { "version": "1.1.11", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -240,31 +171,6 @@ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/caseless/-/caseless-0.12.0.tgz", "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" }, - "cheerio": { - "version": "1.0.0-rc.6", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/cheerio/-/cheerio-1.0.0-rc.6.tgz", - "integrity": "sha512-hjx1XE1M/D5pAtMgvWwE21QClmAEeGHOIDfycgmndisdNgI6PE1cGRQkMGBcsbUbmEQyWu5PJLUcAOjtQS8DWw==", - "requires": { - "cheerio-select": "^1.3.0", - "dom-serializer": "^1.3.1", - "domhandler": "^4.1.0", - "htmlparser2": "^6.1.0", - "parse5": "^6.0.1", - "parse5-htmlparser2-tree-adapter": "^6.0.1" - } - }, - "cheerio-select": { - "version": "1.6.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/cheerio-select/-/cheerio-select-1.6.0.tgz", - "integrity": "sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==", - "requires": { - "css-select": "^4.3.0", - "css-what": "^6.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.3.1", - "domutils": "^2.8.0" - } - }, "combined-stream": { "version": "1.0.8", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/combined-stream/-/combined-stream-1.0.8.tgz", @@ -294,23 +200,6 @@ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, - "css-select": { - "version": "4.3.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - } - }, - "css-what": { - "version": "6.1.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" - }, "debug": { "version": "4.3.6", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/debug/-/debug-4.3.6.tgz", @@ -324,44 +213,6 @@ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" }, - "dom-serializer": { - "version": "1.4.1", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.3.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" - }, - "domhandler": { - "version": "4.3.1", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "requires": { - "domelementtype": "^2.2.0" - } - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" - }, "follow-redirects": { "version": "1.15.6", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/follow-redirects/-/follow-redirects-1.15.6.tgz", @@ -377,18 +228,6 @@ "mime-types": "^2.1.12" } }, - "fs-extra": { - "version": "0.30.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -427,11 +266,6 @@ "path-is-absolute": "^1.0.0" } }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, "has": { "version": "1.0.3", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/has/-/has-1.0.3.tgz", @@ -445,17 +279,6 @@ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" }, - "htmlparser2": { - "version": "6.1.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, "http-basic": { "version": "8.1.3", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/http-basic/-/http-basic-8.1.3.tgz", @@ -523,22 +346,6 @@ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "klaw": { - "version": "1.3.1", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", - "requires": { - "graceful-fs": "^4.1.9" - } - }, "mime-db": { "version": "1.52.0", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/mime-db/-/mime-db-1.52.0.tgz", @@ -581,14 +388,6 @@ "sanitize-filename": "^1.6.3" } }, - "nth-check": { - "version": "2.1.1", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "requires": { - "boolbase": "^1.0.0" - } - }, "object-inspect": { "version": "1.12.2", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/object-inspect/-/object-inspect-1.12.2.tgz", @@ -602,29 +401,11 @@ "wrappy": "1" } }, - "os": { - "version": "0.1.2", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/os/-/os-0.1.2.tgz", - "integrity": "sha512-ZoXJkvAnljwvc56MbvhtKVWmSkzV712k42Is2mA0+0KTSRakq5XXuXpjZjgAt9ctzl51ojhQWakQQpmOvXWfjQ==" - }, "parse-cache-control": { "version": "1.0.1", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/parse-cache-control/-/parse-cache-control-1.0.1.tgz", "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==" }, - "parse5": { - "version": "6.0.1", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "requires": { - "parse5": "^6.0.1" - } - }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -693,14 +474,6 @@ "supports-preserve-symlinks-flag": "^1.0.0" } }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, "safe-buffer": { "version": "5.1.2", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -752,11 +525,6 @@ "safe-buffer": "~5.1.0" } }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" - }, "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", diff --git a/Tasks/ANTV2/package.json b/Tasks/ANTV2/package.json index 5bcacfe03dca..16c601cfa92a 100644 --- a/Tasks/ANTV2/package.json +++ b/Tasks/ANTV2/package.json @@ -10,7 +10,6 @@ "@types/mocha": "^5.2.7", "@types/node": "^16.11.39", "azure-pipelines-task-lib": "^4.15.0", - "azure-pipelines-tasks-codecoverage-tools": "2.201.0", "azure-pipelines-tasks-java-common": "2.198.1", "xml2js": "^0.6.2" }, diff --git a/Tasks/ANTV2/task.json b/Tasks/ANTV2/task.json index fdc5e1aa4c36..55e26a6469e3 100644 --- a/Tasks/ANTV2/task.json +++ b/Tasks/ANTV2/task.json @@ -30,11 +30,6 @@ "displayName": "JUnit Test Results", "isExpanded": true }, - { - "name": "codeCoverage", - "displayName": "Code Coverage", - "isExpanded": true - }, { "name": "advanced", "displayName": "Advanced", @@ -99,75 +94,6 @@ "helpMarkDown": "Provide a name for the test run.", "visibleRule": "publishJUnitResults = true" }, - { - "name": "codeCoverageTool", - "aliases": [ - "codeCoverageToolOptions" - ], - "type": "pickList", - "label": "Code coverage tool", - "required": false, - "groupName": "codeCoverage", - "defaultValue": "None", - "helpMarkDown": "Select the code coverage tool. For on-premises agent support, refer to the `More Information` link below.", - "options": { - "None": "None", - "Cobertura": "Cobertura", - "JaCoCo": "JaCoCo" - } - }, - { - "name": "classFilesDirectories", - "aliases": [ - "codeCoverageClassFilesDirectories" - ], - "type": "string", - "label": "Class files directories", - "defaultValue": ".", - "required": true, - "groupName": "codeCoverage", - "helpMarkDown": "Comma-separated list of relative paths from the Ant build file to directories containing class files and archive files (JAR, WAR, etc.). Code coverage is reported for class files in these directories. For example: target/classes,target/testClasses.", - "visibleRule": "codeCoverageTool != None" - }, - { - "name": "classFilter", - "aliases": [ - "codeCoverageClassFilter" - ], - "type": "string", - "label": "Class inclusion/exclusion filters", - "defaultValue": "", - "required": false, - "groupName": "codeCoverage", - "helpMarkDown": "Comma-separated list of filters to include or exclude classes from collecting code coverage. For example: +:com.*,+:org.*,-:my.app*.*.", - "visibleRule": "codeCoverageTool != None" - }, - { - "name": "srcDirectories", - "aliases": [ - "codeCoverageSourceDirectories" - ], - "type": "string", - "label": "Source files directories", - "defaultValue": "", - "required": false, - "groupName": "codeCoverage", - "helpMarkDown": "Comma-separated list of relative paths from the Ant build file to source code directories. Code coverage reports will use these to highlight source code. For example: src/java,src/Test.", - "visibleRule": "codeCoverageTool != None" - }, - { - "name": "failIfCoverageEmpty", - "aliases": [ - "codeCoverageFailIfEmpty" - ], - "type": "boolean", - "label": "Fail when code coverage results are missing", - "defaultValue": "false", - "required": false, - "groupName": "codeCoverage", - "helpMarkDown": "Fail the build if code coverage did not produce any results to publish.", - "visibleRule": "codeCoverageTool != None" - }, { "name": "antHomeUserInputPath", "aliases": [ @@ -263,8 +189,6 @@ "LocateJVMBasedOnVersionAndArch": "Locate JAVA_HOME for Java %s %s", "UnsupportedJdkWarning": "JDK 9 and JDK 10 are out of support. Please switch to a later version in your project and pipeline. Attempting to build with JDK 11...", "FailedToLocateSpecifiedJVM": "Failed to find the specified JDK version. Please ensure the specified JDK version is installed on the agent and the environment variable '%s' exists and is set to the location of a corresponding JDK or use the [Java Tool Installer](https://go.microsoft.com/fwlink/?linkid=875287) task to install the desired JDK.", - "DiscontinueAntCodeCoverage": "We are discontinuing the support of automated code coverage report generation for Ant projects. Please refer to https://go.microsoft.com/fwlink/?linkid=875306 for more details.", - "NoCodeCoverage": "No code coverage results were found to publish.", "NoTestResults": "No test result files matching %s were found, so publishing JUnit test results is being skipped." } } \ No newline at end of file diff --git a/Tasks/ANTV2/task.loc.json b/Tasks/ANTV2/task.loc.json index b372c055b051..98ad8915fe76 100644 --- a/Tasks/ANTV2/task.loc.json +++ b/Tasks/ANTV2/task.loc.json @@ -30,11 +30,6 @@ "displayName": "ms-resource:loc.group.displayName.junitTestResults", "isExpanded": true }, - { - "name": "codeCoverage", - "displayName": "ms-resource:loc.group.displayName.codeCoverage", - "isExpanded": true - }, { "name": "advanced", "displayName": "ms-resource:loc.group.displayName.advanced", @@ -99,75 +94,6 @@ "helpMarkDown": "ms-resource:loc.input.help.testRunTitle", "visibleRule": "publishJUnitResults = true" }, - { - "name": "codeCoverageTool", - "aliases": [ - "codeCoverageToolOptions" - ], - "type": "pickList", - "label": "ms-resource:loc.input.label.codeCoverageTool", - "required": false, - "groupName": "codeCoverage", - "defaultValue": "None", - "helpMarkDown": "ms-resource:loc.input.help.codeCoverageTool", - "options": { - "None": "None", - "Cobertura": "Cobertura", - "JaCoCo": "JaCoCo" - } - }, - { - "name": "classFilesDirectories", - "aliases": [ - "codeCoverageClassFilesDirectories" - ], - "type": "string", - "label": "ms-resource:loc.input.label.classFilesDirectories", - "defaultValue": ".", - "required": true, - "groupName": "codeCoverage", - "helpMarkDown": "ms-resource:loc.input.help.classFilesDirectories", - "visibleRule": "codeCoverageTool != None" - }, - { - "name": "classFilter", - "aliases": [ - "codeCoverageClassFilter" - ], - "type": "string", - "label": "ms-resource:loc.input.label.classFilter", - "defaultValue": "", - "required": false, - "groupName": "codeCoverage", - "helpMarkDown": "ms-resource:loc.input.help.classFilter", - "visibleRule": "codeCoverageTool != None" - }, - { - "name": "srcDirectories", - "aliases": [ - "codeCoverageSourceDirectories" - ], - "type": "string", - "label": "ms-resource:loc.input.label.srcDirectories", - "defaultValue": "", - "required": false, - "groupName": "codeCoverage", - "helpMarkDown": "ms-resource:loc.input.help.srcDirectories", - "visibleRule": "codeCoverageTool != None" - }, - { - "name": "failIfCoverageEmpty", - "aliases": [ - "codeCoverageFailIfEmpty" - ], - "type": "boolean", - "label": "ms-resource:loc.input.label.failIfCoverageEmpty", - "defaultValue": "false", - "required": false, - "groupName": "codeCoverage", - "helpMarkDown": "ms-resource:loc.input.help.failIfCoverageEmpty", - "visibleRule": "codeCoverageTool != None" - }, { "name": "antHomeUserInputPath", "aliases": [ @@ -263,8 +189,6 @@ "LocateJVMBasedOnVersionAndArch": "ms-resource:loc.messages.LocateJVMBasedOnVersionAndArch", "UnsupportedJdkWarning": "ms-resource:loc.messages.UnsupportedJdkWarning", "FailedToLocateSpecifiedJVM": "ms-resource:loc.messages.FailedToLocateSpecifiedJVM", - "DiscontinueAntCodeCoverage": "ms-resource:loc.messages.DiscontinueAntCodeCoverage", - "NoCodeCoverage": "ms-resource:loc.messages.NoCodeCoverage", "NoTestResults": "ms-resource:loc.messages.NoTestResults" } } \ No newline at end of file From 5c3a4e9f68daec5d1f8b68d81b6384b9b59826a7 Mon Sep 17 00:00:00 2001 From: Sahil Manoj Bhatt Date: Mon, 11 Nov 2024 14:09:00 +0530 Subject: [PATCH 4/5] Updated CODEOWNERS and make-options.json --- .github/CODEOWNERS | 2 ++ make-options.json | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 1f5ffd393288..d0475f782c8b 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -7,6 +7,8 @@ Tasks/AndroidSigningV3/ @microsoft/akvelon-build-task-team Tasks/ANTV1/ @microsoft/akvelon-build-task-team +Tasks/ANTV2/ @microsoft/akvelon-build-task-team + Tasks/AppCenterDistributeV1/ @imenkov @lucen-ms @DergachevE Tasks/AppCenterDistributeV2/ @imenkov @lucen-ms @DergachevE diff --git a/make-options.json b/make-options.json index 9930fa63ca33..72c44d89b393 100644 --- a/make-options.json +++ b/make-options.json @@ -3,6 +3,7 @@ "AndroidSigningV2", "AndroidSigningV3", "ANTV1", + "ANTV2", "AppCenterDistributeV1", "AppCenterDistributeV2", "AppCenterDistributeV3", @@ -234,6 +235,7 @@ "AndroidSigningV3", "AzureTestPlanV0", "ANTV1", + "ANTV2", "ArchiveFilesV2", "BashV3", "CMakeV1", From d541de579179b556c3ce96f87481471b4eb8fe99 Mon Sep 17 00:00:00 2001 From: Sahil Manoj Bhatt Date: Tue, 12 Nov 2024 14:37:37 +0530 Subject: [PATCH 5/5] task build after adding task under node20 in make-options.json --- .../_buildConfigs/Node20/package-lock.json | 231 -- _generated/ANTV2.versionmap.txt | 2 + _generated/ANTV2_Node20/.npmrc | 1 + _generated/ANTV2_Node20/README.md | 31 + .../resources.resjson/de-DE/resources.resjson | 34 + .../resources.resjson/en-US/resources.resjson | 34 + .../resources.resjson/es-ES/resources.resjson | 34 + .../resources.resjson/fr-FR/resources.resjson | 34 + .../resources.resjson/it-IT/resources.resjson | 34 + .../resources.resjson/ja-JP/resources.resjson | 34 + .../resources.resjson/ko-KR/resources.resjson | 34 + .../resources.resjson/ru-RU/resources.resjson | 34 + .../resources.resjson/zh-CN/resources.resjson | 34 + .../resources.resjson/zh-TW/resources.resjson | 34 + _generated/ANTV2_Node20/Tests/.npmrc | 3 + _generated/ANTV2_Node20/Tests/L0.ts | 154 ++ _generated/ANTV2_Node20/Tests/L0AllInputs.ts | 15 + .../ANTV2_Node20/Tests/L0AntHomeNotSet.ts | 17 + .../Tests/L0FailWithValidInputs.ts | 15 + .../ANTV2_Node20/Tests/L0FailedBuilds.ts | 17 + .../Tests/L0InvalidUserHomePath.ts | 16 + _generated/ANTV2_Node20/Tests/L0JDKSetTo5.ts | 16 + _generated/ANTV2_Node20/Tests/L0JDKSetTo8.ts | 19 + .../Tests/L0MissingAntBuildFile.ts | 14 + .../Tests/L0MissingJavaHomeSelection.ts | 14 + .../Tests/L0MissingTestResultsFiles.ts | 14 + .../Tests/L0NoMatchingTestResults.ts | 16 + .../Tests/L0PublishTestResults.ts | 18 + .../Tests/L0RunWithAntHomeUserInputPath.ts | 16 + _generated/ANTV2_Node20/Tests/answers.ts | 102 + .../ANTV2_Node20/Tests/package-lock.json | 22 + _generated/ANTV2_Node20/Tests/package.json | 22 + _generated/ANTV2_Node20/ThirdPartyNotice.txt | 1935 +++++++++++++++++ _generated/ANTV2_Node20/anttask.ts | 171 ++ _generated/ANTV2_Node20/icon.png | Bin 0 -> 1166 bytes _generated/ANTV2_Node20/icon.svg | 81 + _generated/ANTV2_Node20/make.json | 11 + _generated/ANTV2_Node20/package-lock.json | 810 +++++++ _generated/ANTV2_Node20/package.json | 19 + _generated/ANTV2_Node20/task.json | 202 ++ _generated/ANTV2_Node20/task.loc.json | 202 ++ _generated/ANTV2_Node20/tsconfig.json | 9 + 42 files changed, 4324 insertions(+), 231 deletions(-) create mode 100644 _generated/ANTV2.versionmap.txt create mode 100644 _generated/ANTV2_Node20/.npmrc create mode 100644 _generated/ANTV2_Node20/README.md create mode 100644 _generated/ANTV2_Node20/Strings/resources.resjson/de-DE/resources.resjson create mode 100644 _generated/ANTV2_Node20/Strings/resources.resjson/en-US/resources.resjson create mode 100644 _generated/ANTV2_Node20/Strings/resources.resjson/es-ES/resources.resjson create mode 100644 _generated/ANTV2_Node20/Strings/resources.resjson/fr-FR/resources.resjson create mode 100644 _generated/ANTV2_Node20/Strings/resources.resjson/it-IT/resources.resjson create mode 100644 _generated/ANTV2_Node20/Strings/resources.resjson/ja-JP/resources.resjson create mode 100644 _generated/ANTV2_Node20/Strings/resources.resjson/ko-KR/resources.resjson create mode 100644 _generated/ANTV2_Node20/Strings/resources.resjson/ru-RU/resources.resjson create mode 100644 _generated/ANTV2_Node20/Strings/resources.resjson/zh-CN/resources.resjson create mode 100644 _generated/ANTV2_Node20/Strings/resources.resjson/zh-TW/resources.resjson create mode 100644 _generated/ANTV2_Node20/Tests/.npmrc create mode 100644 _generated/ANTV2_Node20/Tests/L0.ts create mode 100644 _generated/ANTV2_Node20/Tests/L0AllInputs.ts create mode 100644 _generated/ANTV2_Node20/Tests/L0AntHomeNotSet.ts create mode 100644 _generated/ANTV2_Node20/Tests/L0FailWithValidInputs.ts create mode 100644 _generated/ANTV2_Node20/Tests/L0FailedBuilds.ts create mode 100644 _generated/ANTV2_Node20/Tests/L0InvalidUserHomePath.ts create mode 100644 _generated/ANTV2_Node20/Tests/L0JDKSetTo5.ts create mode 100644 _generated/ANTV2_Node20/Tests/L0JDKSetTo8.ts create mode 100644 _generated/ANTV2_Node20/Tests/L0MissingAntBuildFile.ts create mode 100644 _generated/ANTV2_Node20/Tests/L0MissingJavaHomeSelection.ts create mode 100644 _generated/ANTV2_Node20/Tests/L0MissingTestResultsFiles.ts create mode 100644 _generated/ANTV2_Node20/Tests/L0NoMatchingTestResults.ts create mode 100644 _generated/ANTV2_Node20/Tests/L0PublishTestResults.ts create mode 100644 _generated/ANTV2_Node20/Tests/L0RunWithAntHomeUserInputPath.ts create mode 100644 _generated/ANTV2_Node20/Tests/answers.ts create mode 100644 _generated/ANTV2_Node20/Tests/package-lock.json create mode 100644 _generated/ANTV2_Node20/Tests/package.json create mode 100644 _generated/ANTV2_Node20/ThirdPartyNotice.txt create mode 100644 _generated/ANTV2_Node20/anttask.ts create mode 100644 _generated/ANTV2_Node20/icon.png create mode 100644 _generated/ANTV2_Node20/icon.svg create mode 100644 _generated/ANTV2_Node20/make.json create mode 100644 _generated/ANTV2_Node20/package-lock.json create mode 100644 _generated/ANTV2_Node20/package.json create mode 100644 _generated/ANTV2_Node20/task.json create mode 100644 _generated/ANTV2_Node20/task.loc.json create mode 100644 _generated/ANTV2_Node20/tsconfig.json diff --git a/Tasks/ANTV2/_buildConfigs/Node20/package-lock.json b/Tasks/ANTV2/_buildConfigs/Node20/package-lock.json index 5ec9e0c8b1ae..70d714416ebf 100644 --- a/Tasks/ANTV2/_buildConfigs/Node20/package-lock.json +++ b/Tasks/ANTV2/_buildConfigs/Node20/package-lock.json @@ -17,11 +17,6 @@ "typescript": "5.1.6" } }, - "node_modules/@types/cheerio": { - "version": "0.22.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/cheerio/-/cheerio-0.22.0.tgz", - "integrity": "sha512-dVL3RISC1jdrXilyqmPIga6LmjHwrDbWQoUyHuf/bGjP+HiNtyFJ3Gga1FCu55UYOqbuUGLPzkGkcsplkpSm8Q==" - }, "node_modules/@types/concat-stream": { "version": "1.6.1", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/concat-stream/-/concat-stream-1.6.1.tgz", @@ -48,11 +43,6 @@ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/node/-/node-20.7.0.tgz", "integrity": "sha512-zI22/pJW2wUZOVyguFaUL1HABdmSVxpXrzIqkjsHmyUjNhPoWM1CKfvVuXfetHhIok4RY573cqS0mZ1SJEnoTg==" }, - "node_modules/@types/q": { - "version": "1.5.5", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/q/-/q-1.5.5.tgz", - "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" - }, "node_modules/@types/qs": { "version": "6.9.7", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/qs/-/qs-6.9.7.tgz", @@ -185,11 +175,6 @@ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -221,37 +206,6 @@ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/caseless/-/caseless-0.12.0.tgz", "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" }, - "node_modules/cheerio": { - "version": "1.0.0-rc.6", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/cheerio/-/cheerio-1.0.0-rc.6.tgz", - "integrity": "sha512-hjx1XE1M/D5pAtMgvWwE21QClmAEeGHOIDfycgmndisdNgI6PE1cGRQkMGBcsbUbmEQyWu5PJLUcAOjtQS8DWw==", - "dependencies": { - "cheerio-select": "^1.3.0", - "dom-serializer": "^1.3.1", - "domhandler": "^4.1.0", - "htmlparser2": "^6.1.0", - "parse5": "^6.0.1", - "parse5-htmlparser2-tree-adapter": "^6.0.1" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/cheerio-select": { - "version": "1.6.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/cheerio-select/-/cheerio-select-1.6.0.tgz", - "integrity": "sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==", - "dependencies": { - "css-select": "^4.3.0", - "css-what": "^6.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.3.1", - "domutils": "^2.8.0" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/combined-stream/-/combined-stream-1.0.8.tgz", @@ -287,32 +241,6 @@ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, - "node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, "node_modules/debug": { "version": "4.3.6", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/debug/-/debug-4.3.6.tgz", @@ -337,65 +265,6 @@ "node": ">=0.4.0" } }, - "node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/follow-redirects": { "version": "1.15.6", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/follow-redirects/-/follow-redirects-1.15.6.tgz", @@ -428,18 +297,6 @@ "node": ">= 0.12" } }, - "node_modules/fs-extra": { - "version": "0.30.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -491,11 +348,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, "node_modules/has": { "version": "1.0.3", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/has/-/has-1.0.3.tgz", @@ -518,24 +370,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, "node_modules/http-basic": { "version": "8.1.3", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/http-basic/-/http-basic-8.1.3.tgz", @@ -614,22 +448,6 @@ "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, - "node_modules/jsonfile": { - "version": "2.4.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/klaw": { - "version": "1.3.1", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", - "optionalDependencies": { - "graceful-fs": "^4.1.9" - } - }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/mime-db/-/mime-db-1.52.0.tgz", @@ -682,17 +500,6 @@ "sanitize-filename": "^1.6.3" } }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, "node_modules/object-inspect": { "version": "1.12.2", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/object-inspect/-/object-inspect-1.12.2.tgz", @@ -709,29 +516,11 @@ "wrappy": "1" } }, - "node_modules/os": { - "version": "0.1.2", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/os/-/os-0.1.2.tgz", - "integrity": "sha512-ZoXJkvAnljwvc56MbvhtKVWmSkzV712k42Is2mA0+0KTSRakq5XXuXpjZjgAt9ctzl51ojhQWakQQpmOvXWfjQ==" - }, "node_modules/parse-cache-control": { "version": "1.0.1", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/parse-cache-control/-/parse-cache-control-1.0.1.tgz", "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==" }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "dependencies": { - "parse5": "^6.0.1" - } - }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -823,18 +612,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -899,14 +676,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "engines": { - "node": ">=4" - } - }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", diff --git a/_generated/ANTV2.versionmap.txt b/_generated/ANTV2.versionmap.txt new file mode 100644 index 000000000000..33268227f75c --- /dev/null +++ b/_generated/ANTV2.versionmap.txt @@ -0,0 +1,2 @@ +Default|2.248.0 +Node20-225|2.249.0 diff --git a/_generated/ANTV2_Node20/.npmrc b/_generated/ANTV2_Node20/.npmrc new file mode 100644 index 000000000000..5fca0d518be7 --- /dev/null +++ b/_generated/ANTV2_Node20/.npmrc @@ -0,0 +1 @@ +scripts-prepend-node-path=true diff --git a/_generated/ANTV2_Node20/README.md b/_generated/ANTV2_Node20/README.md new file mode 100644 index 000000000000..8063be7bb416 --- /dev/null +++ b/_generated/ANTV2_Node20/README.md @@ -0,0 +1,31 @@ +# Build your code using Ant in Azure Pipelines + +### Parameters for Ant build task are explained below + +- **Ant Build File :** This is a Required field. Provide relative path from the repository root to the Ant build file. To know more [click here](https://ant.apache.org/manual/using.html#buildfile) + +- **Options :** Provide any options to pass to the Ant command line. You can provide your own properties (for example, `-DmyProperty=myPropertyValue`) and also use built-in variables (for example, `-DcollectionId=$(system.collectionId)`). Alternatively, the built-in variables are already set as environment variables during the build and can be passed directly (for example, `-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%)` To know more [click here](https://ant.apache.org/manual/running.html#options) + +- **Target(s) :** Provide The task(s) for Ant to execute for this build. To know more [click here](https://ant.apache.org/manual/targets.html#targets) + +#### JUnit Test Results +Use the next three options to manage your JUnit test results in Azure Pipelines + +- **Publish to Azure Pipelines/TFS :** Select this option to publish JUnit Test results produced by the Ant build to Azure Pipelines/TFS. Each test result file matching `Test Results Files` will be published as a test run in Azure Pipelines. + +- **Test Results Files :** This option will appear if you select the above option. Here, provide Test results files path. Wildcards can be used. For example, `**/TEST-*.xml` for all xml files whose name starts with `TEST-."` + +- **Test Run Title :** This option will appear if you select the `Publish to Azure Pipelines/TFS` option. Here provide a name for the Test Run + +#### Advanced +Use the next options to manage your `ANT_HOME` and `JAVA_HOME` attributes + +- **Set ANT_HOME Path :** If set, overrides any existing `ANT_HOME` environment variable with the given path. + +- **Set JAVA_HOME by :** Select to set `JAVA_HOME` either by providing a path or let Azure Pipelines set the `JAVA_HOME` based on JDK version choosen. By default it is set to `JDK Version` + +- **JDK Version/Path :** Here provide the PATH to `JAVA_HOME` if you want to set it by path or select the appropriate JDK version. + +- **JDK Architecture :** Select the approriate JDK Architecture. By default it is set to `x86` + +**We are discontinuing the support of automated Code Coverage report generation for Ant projects starting Sprint 107 deployment of Azure Pipelines and for Team Foundation Server “15”. Please enable Code Coverage in your Ant build.xml file manually.** diff --git a/_generated/ANTV2_Node20/Strings/resources.resjson/de-DE/resources.resjson b/_generated/ANTV2_Node20/Strings/resources.resjson/de-DE/resources.resjson new file mode 100644 index 000000000000..f26827b74c49 --- /dev/null +++ b/_generated/ANTV2_Node20/Strings/resources.resjson/de-DE/resources.resjson @@ -0,0 +1,34 @@ +{ + "loc.friendlyName": "Ant", + "loc.helpMarkDown": "[Weitere Informationen zu dieser Aufgabe](https://go.microsoft.com/fwlink/?LinkID=613718) oder [Ant-Dokumentation anzeigen](http://ant.apache.org/)", + "loc.description": "Mit Apache Ant erstellen", + "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", + "loc.group.displayName.junitTestResults": "JUnit-Testergebnisse", + "loc.group.displayName.advanced": "Erweitert", + "loc.input.label.antBuildFile": "Ant-Builddatei", + "loc.input.help.antBuildFile": "Der relative Pfad vom Repositorystamm zur Ant-Builddatei.", + "loc.input.label.options": "Optionen", + "loc.input.help.options": "Geben Sie die Optionen an, die an die Ant-Befehlszeile übergeben werden sollen. Sie können Ihre eigenen Eigenschaften angeben (z. B. \"***-DmyProperty=meinEigenschaftenWert***\") und auch integrierte Variablen verwenden (z. B. \"***-DcollectionId=$(system.collectionId)***\"). Alternativ werden die integrierten Variablen bereits als Umgebungsvariablen während des Builds festgelegt und können direkt übergeben werden (z. B. \"***-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%***\").", + "loc.input.label.targets": "Ziel(e)", + "loc.input.help.targets": "Eine optionale, durch Leerzeichen getrennte Liste der zu erstellenden Ziele. Wenn keine Angabe erfolgt, wird das \"Standardziel\" verwendet. Wenn kein \"Standardziel\" definiert ist, wird Ant 1.6.0 verwendet, und alle Tasks auf oberster Ebene werden später erstellt.", + "loc.input.label.publishJUnitResults": "In Azure Pipelines veröffentlichen", + "loc.input.help.publishJUnitResults": "Wählen Sie diese Option aus, um vom Ant-Build generierte JUnit-Testergebnisse in Azure Pipelines zu veröffentlichen. Jede Testergebnisdatei, die mit \"Testergebnisdateien\" übereinstimmt, wird als Testlauf in Azure Pipelines veröffentlicht.", + "loc.input.label.testResultsFiles": "Testergebnisdateien", + "loc.input.help.testResultsFiles": "Pfad der Testergebnisdateien. Platzhalter können verwendet werden ([weitere Informationen](https://go.microsoft.com/fwlink/?linkid=856077)). Beispiel: \"**/TEST-*.xml\" für alle XML-Dateien, deren Name mit \"TEST-\" beginnt.", + "loc.input.label.testRunTitle": "Testlauftitel", + "loc.input.help.testRunTitle": "Geben Sie einen Namen für den Testlauf an.", + "loc.input.label.antHomeUserInputPath": "ANT_HOME-Pfad festlegen", + "loc.input.help.antHomeUserInputPath": "Wenn festgelegt, werden alle vorhandenen ANT_HOME-Umgebungsvariablen mit dem angegebenen Pfad überschrieben.", + "loc.input.label.javaHomeSelection": "JAVA_HOME festlegen durch", + "loc.input.help.javaHomeSelection": "Legt JAVA_HOME durch Auswählen einer JDK-Version fest, die während der Erstellung von Builds oder durch manuelles Eingeben eines JDK-Pfads ermittelt wird.", + "loc.input.label.jdkVersion": "JDK-Version", + "loc.input.help.jdkVersion": "Versucht, den Pfad zur ausgewählten JDK-Version zu ermitteln und JAVA_HOME entsprechend festzulegen.", + "loc.input.label.jdkUserInputPath": "JDK-Pfad", + "loc.input.help.jdkUserInputPath": "Legt JAVA_HOME auf den angegebenen Pfad fest.", + "loc.input.label.jdkArchitecture": "JDK-Architektur", + "loc.input.help.jdkArchitecture": "Geben Sie optional die JDK-Architektur an (x86, x64).", + "loc.messages.LocateJVMBasedOnVersionAndArch": "JAVA_HOME für Java %s %s finden", + "loc.messages.UnsupportedJdkWarning": "JDK 9 und JDK 10 werden nicht unterstützt. Wechseln Sie in Ihrem Projekt und Ihrer Pipeline zu einer neueren Version. Es wird versucht, die Erstellung mit JDK 11 durchzuführen...", + "loc.messages.FailedToLocateSpecifiedJVM": "Die angegebene JDK-Version wurde nicht gefunden. Stellen Sie sicher, dass die angegebene JDK-Version auf dem Agent installiert und die Umgebungsvariable \"%s\" vorhanden und auf den Speicherort eines entsprechenden JDK festgelegt ist. Sie können auch die Aufgabe [Installer für Java-Tools](https://go.microsoft.com/fwlink/?linkid=875287) verwenden, um das gewünschte JDK zu installieren.", + "loc.messages.NoTestResults": "Es wurden keine Testergebnisdateien gefunden, die mit %s übereinstimmen. Das Veröffentlichen von JUnit-Testergebnissen wird daher übersprungen." +} \ No newline at end of file diff --git a/_generated/ANTV2_Node20/Strings/resources.resjson/en-US/resources.resjson b/_generated/ANTV2_Node20/Strings/resources.resjson/en-US/resources.resjson new file mode 100644 index 000000000000..7caa66c58dcd --- /dev/null +++ b/_generated/ANTV2_Node20/Strings/resources.resjson/en-US/resources.resjson @@ -0,0 +1,34 @@ +{ + "loc.friendlyName": "Ant", + "loc.helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?LinkID=613718) or [see the Ant documentation](http://ant.apache.org/)", + "loc.description": "Build with Apache Ant", + "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", + "loc.group.displayName.junitTestResults": "JUnit Test Results", + "loc.group.displayName.advanced": "Advanced", + "loc.input.label.antBuildFile": "Ant build file", + "loc.input.help.antBuildFile": "Relative path from the repository root to the Ant build file.", + "loc.input.label.options": "Options", + "loc.input.help.options": "Provide any options to pass to the Ant command line. You can provide your own properties (for example, ***-DmyProperty=myPropertyValue***) and also use built-in variables (for example, ***-DcollectionId=$(system.collectionId)***). Alternatively, the built-in variables are already set as environment variables during the build and can be passed directly (for example, ***-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%***).", + "loc.input.label.targets": "Target(s)", + "loc.input.help.targets": "An optional, space-separated list of targets to build. If not specified, the `default` target will be used. If no `default` target is defined, Ant 1.6.0 and later will build all top-level tasks.", + "loc.input.label.publishJUnitResults": "Publish to Azure Pipelines", + "loc.input.help.publishJUnitResults": "Select this option to publish JUnit test results produced by the Ant build to Azure Pipelines. Each test results file matching `Test Results Files` will be published as a test run in Azure Pipelines.", + "loc.input.label.testResultsFiles": "Test results files", + "loc.input.help.testResultsFiles": "Test results files path. Wildcards can be used ([more information](https://go.microsoft.com/fwlink/?linkid=856077)). For example, `**/TEST-*.xml` for all XML files whose name starts with TEST-.", + "loc.input.label.testRunTitle": "Test run title", + "loc.input.help.testRunTitle": "Provide a name for the test run.", + "loc.input.label.antHomeUserInputPath": "Set ANT_HOME path", + "loc.input.help.antHomeUserInputPath": "If set, overrides any existing ANT_HOME environment variable with the given path.", + "loc.input.label.javaHomeSelection": "Set JAVA_HOME by", + "loc.input.help.javaHomeSelection": "Sets JAVA_HOME either by selecting a JDK version that will be discovered during builds or by manually entering a JDK path.", + "loc.input.label.jdkVersion": "JDK version", + "loc.input.help.jdkVersion": "Will attempt to discover the path to the selected JDK version and set JAVA_HOME accordingly.", + "loc.input.label.jdkUserInputPath": "JDK path", + "loc.input.help.jdkUserInputPath": "Sets JAVA_HOME to the given path.", + "loc.input.label.jdkArchitecture": "JDK architecture", + "loc.input.help.jdkArchitecture": "Optionally supply the architecture (x86, x64) of the JDK.", + "loc.messages.LocateJVMBasedOnVersionAndArch": "Locate JAVA_HOME for Java %s %s", + "loc.messages.UnsupportedJdkWarning": "JDK 9 and JDK 10 are out of support. Please switch to a later version in your project and pipeline. Attempting to build with JDK 11...", + "loc.messages.FailedToLocateSpecifiedJVM": "Failed to find the specified JDK version. Please ensure the specified JDK version is installed on the agent and the environment variable '%s' exists and is set to the location of a corresponding JDK or use the [Java Tool Installer](https://go.microsoft.com/fwlink/?linkid=875287) task to install the desired JDK.", + "loc.messages.NoTestResults": "No test result files matching %s were found, so publishing JUnit test results is being skipped." +} \ No newline at end of file diff --git a/_generated/ANTV2_Node20/Strings/resources.resjson/es-ES/resources.resjson b/_generated/ANTV2_Node20/Strings/resources.resjson/es-ES/resources.resjson new file mode 100644 index 000000000000..f0a1c045154d --- /dev/null +++ b/_generated/ANTV2_Node20/Strings/resources.resjson/es-ES/resources.resjson @@ -0,0 +1,34 @@ +{ + "loc.friendlyName": "Ant", + "loc.helpMarkDown": "[Obtener más información acerca de esta tarea](https://go.microsoft.com/fwlink/?LinkID=613718) o [consultar la documentación de Ant](http://ant.apache.org/)", + "loc.description": "Compilar con Apache Ant", + "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", + "loc.group.displayName.junitTestResults": "Resultados de pruebas JUnit", + "loc.group.displayName.advanced": "Avanzado", + "loc.input.label.antBuildFile": "Archivo de compilación de Ant", + "loc.input.help.antBuildFile": "Ruta de acceso relativa de la raíz del repositorio al archivo de compilación de Ant.", + "loc.input.label.options": "Opciones", + "loc.input.help.options": "Proporcione las opciones que se van a pasar a la línea de comandos de Ant. Puede proporcionar sus propiedades (por ejemplo, ***-DmyProperty=myPropertyValue***) y también usar variables integradas (por ejemplo, ***-DcollectionId=$(system.collectionId)***). Puede que las variables integradas ya se hayan establecido como variables de entorno durante la compilación y se puedan pasar directamente (por ejemplo, ***-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%***).", + "loc.input.label.targets": "Destinos", + "loc.input.help.targets": "Una lista opcional y separada por espacios de los destinos que se van a compilar. Si no se especifica, se usará el destino \"predeterminado\". Si no se define ningún destino \"predeterminado\", Ant 1.6.0 y las versiones posteriores compilarán todas las tareas de nivel superior.", + "loc.input.label.publishJUnitResults": "Publicar en Azure Pipelines", + "loc.input.help.publishJUnitResults": "Seleccione esta opción para publicar los resultados de pruebas JUnit generados por la compilación de Ant en Azure Pipelines. Cada archivo de resultados de pruebas que coincida con \"Archivos de resultados de pruebas\" se publicará como una serie de pruebas en Azure Pipelines.", + "loc.input.label.testResultsFiles": "Archivos de resultados de pruebas", + "loc.input.help.testResultsFiles": "Ruta de acceso de los archivos de resultados de pruebas. Puede usar caracteres comodín ([más información](https://go.microsoft.com/fwlink/?linkid=856077)). Por ejemplo, \"**\\*TEST-*.xml\" para todos los archivos XML cuyos nombres empiecen por TEST-.", + "loc.input.label.testRunTitle": "Título de la serie de pruebas", + "loc.input.help.testRunTitle": "Asigne un nombre a la serie de pruebas.", + "loc.input.label.antHomeUserInputPath": "Establecer la ruta ANT_HOME", + "loc.input.help.antHomeUserInputPath": "Si se establece, reemplaza cualquier variable de entorno ANT_HOME existente por la ruta de acceso dada.", + "loc.input.label.javaHomeSelection": "Establecer JAVA_HOME por", + "loc.input.help.javaHomeSelection": "Establece JAVA_HOME seleccionando una versión de JDK que se detectará durante las compilaciones o especificando manualmente una ruta de acceso del JDK.", + "loc.input.label.jdkVersion": "Versión de JDK", + "loc.input.help.jdkVersion": "Se tratará de hallar la ruta de acceso a la versión de JDK seleccionada y establecer JAVA_HOME según sea el caso.", + "loc.input.label.jdkUserInputPath": "Ruta de acceso de JDK", + "loc.input.help.jdkUserInputPath": "Establece JAVA_HOME en la ruta de acceso especificada.", + "loc.input.label.jdkArchitecture": "Arquitectura JDK", + "loc.input.help.jdkArchitecture": "Indique opcionalmente la arquitectura (x86, x64) del JDK.", + "loc.messages.LocateJVMBasedOnVersionAndArch": "Buscar JAVA_HOME para Java %s %s", + "loc.messages.UnsupportedJdkWarning": "JDK 9 y JDK 10 no tienen soporte técnico. Cambie a una versión posterior del proyecto y la canalización. Intentando compilar con JDK 11...", + "loc.messages.FailedToLocateSpecifiedJVM": "No se encontró la versión de JDK especificada. Asegúrese de que dicha versión está instalada en el agente y de que la variable de entorno \"%s\" existe y está establecida en la ubicación de un JDK correspondiente. En caso contrario, use la tarea de [Instalador de herramientas de Java](https://go.microsoft.com/fwlink/?linkid=875287) para instalar el JDK deseado.", + "loc.messages.NoTestResults": "No se encontraron archivos de resultados de pruebas que coincidan con %s, por lo que se omite la publicación de los resultados de las pruebas JUnit." +} \ No newline at end of file diff --git a/_generated/ANTV2_Node20/Strings/resources.resjson/fr-FR/resources.resjson b/_generated/ANTV2_Node20/Strings/resources.resjson/fr-FR/resources.resjson new file mode 100644 index 000000000000..bfb2573b6acf --- /dev/null +++ b/_generated/ANTV2_Node20/Strings/resources.resjson/fr-FR/resources.resjson @@ -0,0 +1,34 @@ +{ + "loc.friendlyName": "Ant", + "loc.helpMarkDown": "[En savoir plus sur cette tâche](https://go.microsoft.com/fwlink/?LinkID=613718) ou [consulter la documentation d'Ant](http://ant.apache.org/)", + "loc.description": "Générer avec Apache Ant", + "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", + "loc.group.displayName.junitTestResults": "Résultats du test JUnit", + "loc.group.displayName.advanced": "Avancé", + "loc.input.label.antBuildFile": "Fichier de build Ant", + "loc.input.help.antBuildFile": "Chemin relatif de la racine de dépôt au fichier de build Ant.", + "loc.input.label.options": "Options", + "loc.input.help.options": "Indiquez les options à passer à la ligne de commande Ant. Vous pouvez fournir vos propres propriétés (par exemple ***-DmyProperty=myPropertyValue***), et utiliser les variables intégrées (par exemple ***-DcollectionId=$(system.collectionId)***). Sinon, les variables intégrées sont déjà définies comme variables d'environnement durant la génération et peuvent être passées directement (par exemple ***-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%***).", + "loc.input.label.targets": "Cible(s)", + "loc.input.help.targets": "Liste facultative de cibles à générer, séparées par des espaces. Si rien n'est spécifié, la cible 'default' est utilisée. Si aucune cible 'default' n'est définie, Ant 1.6.0 ou ultérieur génère des tâches qui sont toutes de niveau supérieur.", + "loc.input.label.publishJUnitResults": "Publier sur Azure Pipelines", + "loc.input.help.publishJUnitResults": "Sélectionnez cette option pour publier les résultats des tests JUnit produits par la build Ant sur Azure Pipelines. Chaque fichier de résultats des tests correspondant à 'Fichiers de résultats des tests' est publié en tant que série de tests dans Azure Pipelines.", + "loc.input.label.testResultsFiles": "Fichiers de résultats des tests", + "loc.input.help.testResultsFiles": "Chemin des fichiers de résultats des tests. Les caractères génériques sont autorisés. ([Plus d'informations](https://go.microsoft.com/fwlink/?linkid=856077)). Par exemple, '**/TEST-*.xml' pour tous les fichiers XML dont le nom commence par TEST-.", + "loc.input.label.testRunTitle": "Titre de la série de tests", + "loc.input.help.testRunTitle": "Indiquez le nom de la série de tests.", + "loc.input.label.antHomeUserInputPath": "Définir le chemin de ANT_HOME", + "loc.input.help.antHomeUserInputPath": "Si elle est définie, cette valeur remplace les variables d'environnement ANT_HOME existantes par le chemin spécifié.", + "loc.input.label.javaHomeSelection": "Définir JAVA_HOME par", + "loc.input.help.javaHomeSelection": "Définit JAVA_HOME en sélectionnant une version de JDK qui sera découverte au moment des builds ou en tapant le chemin de JDK.", + "loc.input.label.jdkVersion": "Version du kit JDK", + "loc.input.help.jdkVersion": "Essaiera de découvrir le chemin d'accès à la version du JDK sélectionné et définira JAVA_HOME en conséquence.", + "loc.input.label.jdkUserInputPath": "Chemin du kit JDK", + "loc.input.help.jdkUserInputPath": "Définissez JAVA_HOME sur le chemin d'accès indiqué.", + "loc.input.label.jdkArchitecture": "Architecture du kit JDK", + "loc.input.help.jdkArchitecture": "Indiquez éventuellement l'architecture (x86, x64) du JDK.", + "loc.messages.LocateJVMBasedOnVersionAndArch": "Localiser JAVA_HOME pour Java %s %s", + "loc.messages.UnsupportedJdkWarning": "JDK 9 et JDK 10 ne sont plus pris en charge. Passez à une version plus récente de votre projet et de votre pipeline. Tentative de génération avec JDK 11...", + "loc.messages.FailedToLocateSpecifiedJVM": "Échec de la localisation de la version spécifiée du kit JDK. Vérifiez que la version spécifiée du kit JDK est installée sur l'agent, que la variable d'environnement '%s' existe et que sa valeur correspond à l'emplacement d'un kit JDK correspondant. Sinon, utilisez la tâche [Programme d'installation de l'outil Java] (https://go.microsoft.com/fwlink/?linkid=875287) pour installer le kit JDK souhaité.", + "loc.messages.NoTestResults": "Les fichiers de résultats des tests correspondant à %s sont introuvables. La publication des résultats des tests JUnit est ignorée." +} \ No newline at end of file diff --git a/_generated/ANTV2_Node20/Strings/resources.resjson/it-IT/resources.resjson b/_generated/ANTV2_Node20/Strings/resources.resjson/it-IT/resources.resjson new file mode 100644 index 000000000000..10eadb608127 --- /dev/null +++ b/_generated/ANTV2_Node20/Strings/resources.resjson/it-IT/resources.resjson @@ -0,0 +1,34 @@ +{ + "loc.friendlyName": "Ant", + "loc.helpMarkDown": "[Altre informazioni su questa attività](https://go.microsoft.com/fwlink/?LinkID=613718). In alternativa [vedere la documentazione di Ant](http://ant.apache.org/)", + "loc.description": "Consente di compilare con Apache Ant", + "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", + "loc.group.displayName.junitTestResults": "Risultati del test JUnit", + "loc.group.displayName.advanced": "Avanzate", + "loc.input.label.antBuildFile": "File di compilazione Ant", + "loc.input.help.antBuildFile": "Percorso relativo dalla radice del repository al file di compilazione Ant.", + "loc.input.label.options": "Opzioni", + "loc.input.help.options": "Consente di specificare tutte le opzioni da passare alla riga di comando di Ant. È possibile specificare proprietà personalizzate (ad esempio ***-DmyProperty=myPropertyValue***) e usare variabili predefinite (ad esempio ***-DcollectionId=$(system.collectionId)***). In alternativa, le variabili predefinite vengono già impostate come variabili di ambiente durante la compilazione e possono essere passate direttamente (ad esempio ***-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%***).", + "loc.input.label.targets": "Destinazione/i", + "loc.input.help.targets": "Elenco facoltativo di destinazioni per la compilazione separate da virgole. Se non viene specificato, verrà usata la destinazione `default`. Se non è definita alcuna destinazione `default`, Ant 1.6.0 o versioni successiva compilerà tutte le attività di primo livello.", + "loc.input.label.publishJUnitResults": "Pubblica in Azure Pipelines", + "loc.input.help.publishJUnitResults": "Selezionare questa opzione per pubblicare i risultati del test JUnit prodotti dalla compilazione Ant in Azure Pipelines. Ogni file dei risultati del test corrispondente al valore di `File dei risultati del test` verrà pubblicato come esecuzione dei test in Azure Pipelines.", + "loc.input.label.testResultsFiles": "File dei risultati del test", + "loc.input.help.testResultsFiles": "Percorso dei file dei risultati del test. È possibile usare i caratteri jolly, ad esempio `**/TEST-*.xml` per individuare tutti i file XML il cui nome inizia con TEST-. [Altre informazioni](https://go.microsoft.com/fwlink/?linkid=856077)", + "loc.input.label.testRunTitle": "Titolo dell'esecuzione dei test", + "loc.input.help.testRunTitle": "Consente di specificare un nome per l'esecuzione dei test.", + "loc.input.label.antHomeUserInputPath": "Imposta percorso di ANT_HOME", + "loc.input.help.antHomeUserInputPath": "Se è impostato, esegue l'override di eventuali variabili di ambiente ANT_HOME esistenti con il percorso specificato.", + "loc.input.label.javaHomeSelection": "Imposta JAVA_HOME per", + "loc.input.help.javaHomeSelection": "Consente di impostare JAVA_HOME selezionando una versione di JDK che verrà individuata durante le compilazioni oppure immettendo manualmente un percorso JDK.", + "loc.input.label.jdkVersion": "Versione del JDK", + "loc.input.help.jdkVersion": "Prova a individuare il percorso della versione selezionata di JDK e imposta JAVA_HOME di conseguenza.", + "loc.input.label.jdkUserInputPath": "Percorso del JDK", + "loc.input.help.jdkUserInputPath": "Consente di impostare JAVA_HOME sul percorso specificato.", + "loc.input.label.jdkArchitecture": "Architettura del JDK", + "loc.input.help.jdkArchitecture": "Consente facoltativamente di specificare l'architettura (x86, x64) di JDK.", + "loc.messages.LocateJVMBasedOnVersionAndArch": "Individuare JAVA_HOME per Java %s %s", + "loc.messages.UnsupportedJdkWarning": "JDK 9 e JDK 10 non sono supportati. Passare a una versione più recente nel progetto e nella pipeline. Verrà effettuato un tentativo di compilazione con JDK 11...", + "loc.messages.FailedToLocateSpecifiedJVM": "La versione del JDK specificata non è stata trovata. Assicurarsi che sia installata nell'agente e che la variabile di ambiente '%s' sia presente e impostata sul percorso di un JDK corrispondente oppure usare l'attività [Programma di installazione strumenti Java](https://go.microsoft.com/fwlink/?linkid=875287) per installare il JDK desiderato.", + "loc.messages.NoTestResults": "Non sono stati trovati file dei risultati del test corrispondenti a %s, di conseguenza la pubblicazione dei risultati del test JUnit verrà ignorata." +} \ No newline at end of file diff --git a/_generated/ANTV2_Node20/Strings/resources.resjson/ja-JP/resources.resjson b/_generated/ANTV2_Node20/Strings/resources.resjson/ja-JP/resources.resjson new file mode 100644 index 000000000000..7a08aec9a63d --- /dev/null +++ b/_generated/ANTV2_Node20/Strings/resources.resjson/ja-JP/resources.resjson @@ -0,0 +1,34 @@ +{ + "loc.friendlyName": "Ant", + "loc.helpMarkDown": "[このタスクの詳細を表示](https://go.microsoft.com/fwlink/?LinkID=613718)、または [Ant のドキュメントを参照](http://ant.apache.org/)", + "loc.description": "Apache Ant を使用してビルドします", + "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", + "loc.group.displayName.junitTestResults": "JUnit のテスト結果", + "loc.group.displayName.advanced": "詳細設定", + "loc.input.label.antBuildFile": "Ant ビルド ファイル", + "loc.input.help.antBuildFile": "リポジトリのルートから Ant のビルド ファイルへの相対パス。", + "loc.input.label.options": "オプション", + "loc.input.help.options": "Ant コマンド ラインに渡すオプションを指定します。独自のプロパティ (たとえば、***-DmyProperty=myPropertyValue***) を指定することも、ビルトイン変数 (たとえば、***-DcollectionId=$(system.collectionId)***) を使用することもできます。あるいは、ビルトイン変数はビルド中は既に環境変数として設定されているため、直接渡すことができます (たとえば、***-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%***)。", + "loc.input.label.targets": "ターゲット", + "loc.input.help.targets": "作成するターゲットのオプションのスペース区切り一覧。指定しない場合、`既定` のターゲットが使用されます。`既定` のターゲットが定義されていない場合は、Ant 1.6.0 以降で最上位レベルのすべてのタスクが作成されます。", + "loc.input.label.publishJUnitResults": "Azure Pipelines に公開する", + "loc.input.help.publishJUnitResults": "Ant のビルドによって生成された JUnit のテスト結果を Azure Pipelines に公開するには、このオプションを選びます。'テスト結果ファイル' と一致する各テスト結果ファイルが、Azure Pipelines でテストの実行として公開されます。", + "loc.input.label.testResultsFiles": "テスト結果ファイル", + "loc.input.help.testResultsFiles": "テスト結果ファイルのパス。ワイルドカードを使用できます ([詳細情報](https://go.microsoft.com/fwlink/?linkid=856077))。たとえば、名前が TEST- で始まるすべての XML ファイルの場合は '**/TEST-*.xml' です。", + "loc.input.label.testRunTitle": "テストの実行のタイトル", + "loc.input.help.testRunTitle": "テストの実行の名前を指定します。", + "loc.input.label.antHomeUserInputPath": "ANT_HOME パスの設定", + "loc.input.help.antHomeUserInputPath": "設定されると、指定したパスの既存のあらゆる ANT_HOME 環境変数をオーバーライドします。", + "loc.input.label.javaHomeSelection": "次の条件で JAVA_HOME を設定します", + "loc.input.help.javaHomeSelection": "ビルド中に検出される JDK バージョンを選択するか、JDK パスを手動で入力して JAVA_HOME を設定します。", + "loc.input.label.jdkVersion": "JDK バージョン", + "loc.input.help.jdkVersion": "選択した JDK のバージョンへのパスの検出を試みて、それに従って JAVA_HOME を設定します。", + "loc.input.label.jdkUserInputPath": "JDK パス", + "loc.input.help.jdkUserInputPath": "指定したパスに JAVA_HOME を設定します。", + "loc.input.label.jdkArchitecture": "JDK アーキテクチャ", + "loc.input.help.jdkArchitecture": "(省略可能) JDK のアーキテクチャ (x86、x64) を指定します。", + "loc.messages.LocateJVMBasedOnVersionAndArch": "Java %s %s の JAVA_HOME を検索する", + "loc.messages.UnsupportedJdkWarning": "JDK 9 および JDK 10 はサポートされていません。プロジェクトとパイプラインで新しいバージョンに切り替えてください。JDK 11 でのビルドを試行しています...", + "loc.messages.FailedToLocateSpecifiedJVM": "指定された JDK バージョンが見つかりませんでした。指定された JDK バージョンがエージェントにインストールされており、環境変数 '%s' が存在し、対応する JDK の場所に設定されていることを確認するか、[Java ツール インストーラー](https://go.microsoft.com/fwlink/?linkid=875287) タスクを使用して目的の JDK をインストールしてください。", + "loc.messages.NoTestResults": "%s と一致するテスト結果ファイルが見つからないため、JUnit テスト結果の発行をスキップします。" +} \ No newline at end of file diff --git a/_generated/ANTV2_Node20/Strings/resources.resjson/ko-KR/resources.resjson b/_generated/ANTV2_Node20/Strings/resources.resjson/ko-KR/resources.resjson new file mode 100644 index 000000000000..33dfbe7d398c --- /dev/null +++ b/_generated/ANTV2_Node20/Strings/resources.resjson/ko-KR/resources.resjson @@ -0,0 +1,34 @@ +{ + "loc.friendlyName": "Ant", + "loc.helpMarkDown": "[이 작업에 대한 자세한 정보](https://go.microsoft.com/fwlink/?LinkID=613718) 또는 [Ant 설명서 참조](http://ant.apache.org/)", + "loc.description": "Apache Ant로 빌드", + "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", + "loc.group.displayName.junitTestResults": "JUnit 테스트 결과", + "loc.group.displayName.advanced": "고급", + "loc.input.label.antBuildFile": "Ant 빌드 파일", + "loc.input.help.antBuildFile": "Ant 빌드 파일의 리포지토리 루트로부터의 상대 경로입니다.", + "loc.input.label.options": "옵션", + "loc.input.help.options": "Ant 명령줄에 전달할 옵션을 지정하세요. 고유한 속성을 지정할 수도 있고(예: ***-DmyProperty=myPropertyValue***) 기본 제공 변수를 사용할 수도 있습니다(예: ***-DcollectionId=$(system.collectionId)***). 또는 기본 제공 변수가 빌드 중 이미 환경 변수로 설정되어 직접 전달될 수도 있습니다(예: ***-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%***).", + "loc.input.label.targets": "대상", + "loc.input.help.targets": "빌드할 대상의 공백으로 구분된 목록입니다(선택 사항). 지정되지 않은 경우 `기본` 대상이 사용됩니다. `기본` 대상이 정의되지 않은 경우 Ant 1.6.0 이상에서 모든 최상위 작업을 빌드합니다.", + "loc.input.label.publishJUnitResults": "Azure Pipelines/에 게시", + "loc.input.help.publishJUnitResults": "Ant 빌드에서 생성된 JUnit 테스트 결과를 Azure Pipelines에 게시하려면 이 옵션을 선택합니다. '테스트 결과 파일'과 일치하는 각 테스트 결과 파일이 Azure Pipelines에 테스트 실행으로 게시됩니다.", + "loc.input.label.testResultsFiles": "테스트 결과 파일", + "loc.input.help.testResultsFiles": "테스트 결과 파일 경로입니다. 와일드카드를 사용할 수 있습니다([자세한 정보](https://go.microsoft.com/fwlink/?linkid=856077)). 예를 들어 이름이 TEST-로 시작하는 모든 XML 파일을 표시하려면 '**/TEST-*.xml'을 지정합니다.", + "loc.input.label.testRunTitle": "테스트 실행 제목", + "loc.input.help.testRunTitle": "테스트 실행의 이름을 지정하세요.", + "loc.input.label.antHomeUserInputPath": "ANT_HOME 경로 설정", + "loc.input.help.antHomeUserInputPath": "설정하는 경우 기존 ANT_HOME 환경 변수를 지정된 경로로 재정의합니다.", + "loc.input.label.javaHomeSelection": "JAVA_HOME 설정 방법", + "loc.input.help.javaHomeSelection": "빌드 중에 검색될 JDK 버전을 선택하거나 수동으로 JDK 경로를 입력하여 JAVA_HOME을 설정합니다.", + "loc.input.label.jdkVersion": "JDK 버전", + "loc.input.help.jdkVersion": "선택한 JDK 버전의 경로에 대한 검색을 시도하고 그에 따라 JAVA_HOME을 설정하게 됩니다.", + "loc.input.label.jdkUserInputPath": "JDK 경로", + "loc.input.help.jdkUserInputPath": "JAVA_HOME을 지정된 경로로 설정합니다.", + "loc.input.label.jdkArchitecture": "JDK 아키텍처", + "loc.input.help.jdkArchitecture": "선택적으로 JDK의 아키텍처(x86, x64)를 제공하세요.", + "loc.messages.LocateJVMBasedOnVersionAndArch": "Java %s %s에 대해 JAVA_HOME 찾기", + "loc.messages.UnsupportedJdkWarning": "JDK 9 및 JDK 10은 지원되지 않습니다. 프로젝트 및 파이프라인에서 최신 버전으로 전환하세요. JDK 11을 사용하여 빌드를 시도하는 중...", + "loc.messages.FailedToLocateSpecifiedJVM": "지정한 JDK 버전을 찾지 못했습니다. 지정한 JDK 버전이 에이전트에 설치되어 있으며 환경 변수 '%s'이(가) 있고 해당 JDK의 위치로 설정되었는지 확인하거나, [Java 도구 설치 관리자](https://go.microsoft.com/fwlink/?linkid=875287) 작업을 사용하여 원하는 JDK를 설치하세요.", + "loc.messages.NoTestResults": "%s과(와) 일치하는 테스트 결과 파일을 찾을 수 없으므로 JUnit 테스트 결과 게시를 건너뜁니다." +} \ No newline at end of file diff --git a/_generated/ANTV2_Node20/Strings/resources.resjson/ru-RU/resources.resjson b/_generated/ANTV2_Node20/Strings/resources.resjson/ru-RU/resources.resjson new file mode 100644 index 000000000000..913c95895aac --- /dev/null +++ b/_generated/ANTV2_Node20/Strings/resources.resjson/ru-RU/resources.resjson @@ -0,0 +1,34 @@ +{ + "loc.friendlyName": "Ant", + "loc.helpMarkDown": "[См. дополнительные сведения об этой задаче](https://go.microsoft.com/fwlink/?LinkID=613718) или [документацию по Ant](http://ant.apache.org/)", + "loc.description": "Сборка с помощью Apache Ant", + "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", + "loc.group.displayName.junitTestResults": "Результаты теста JUnit", + "loc.group.displayName.advanced": "Дополнительно", + "loc.input.label.antBuildFile": "Файл сборки Ant", + "loc.input.help.antBuildFile": "Относительный путь от корня репозитория к файлу сборки Ant.", + "loc.input.label.options": "Параметры", + "loc.input.help.options": "Укажите параметры для передачи в командную строку Ant. Вы можете указать собственные свойства (например, ***-DmyProperty=myPropertyValue***), а также использовать встроенные переменные (например, ***-DcollectionId=$(system.collectionId)***). Кроме того, встроенные переменные уже заданы в качестве переменных среды во время сборки и могут быть переданы напрямую (например, ***-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%***).", + "loc.input.label.targets": "Платформы", + "loc.input.help.targets": "Необязательный список целевых объектов сборки с разделителями-пробелами. Если он не задан, будет использоваться целевой объект по умолчанию. Если целевой объект по умолчанию не определен, в Ant 1.6.0 и более поздних версиях будет выполнена сборка всех задач верхнего уровня.", + "loc.input.label.publishJUnitResults": "Опубликовать в Azure Pipelines", + "loc.input.help.publishJUnitResults": "Выберите этот параметр, чтобы опубликовать результаты теста JUnit, созданные сборкой Ant, в Azure Pipelines. Каждый файл результатов теста, соответствующий запросу \"Файлы результатов тестов\", будет опубликован как тестовый запуск в Azure Pipelines.", + "loc.input.label.testResultsFiles": "Файлы результатов теста", + "loc.input.help.testResultsFiles": "Путь к файлам результатов тестов. Можно использовать подстановочные знаки ([дополнительные сведения](https://go.microsoft.com/fwlink/?linkid=856077)). Пример: \"**/TEST-*.xml\" для всех XML-файлов, имена которых начинаются с \"TEST-\".", + "loc.input.label.testRunTitle": "Название тестового запуска", + "loc.input.help.testRunTitle": "Укажите имя для тестового запуска.", + "loc.input.label.antHomeUserInputPath": "Задать путь ANT_HOME", + "loc.input.help.antHomeUserInputPath": "Если этот параметр задан, переопределяет любую существующую переменную среды ANT_HOME заданным путем.", + "loc.input.label.javaHomeSelection": "Установка JAVA_HOME с помощью", + "loc.input.help.javaHomeSelection": "Задается JAVA_HOME указанием версии JDK, которая будет обнаруживаться во время сборок, или указанием пути к JDK вручную.", + "loc.input.label.jdkVersion": "Версия JDK", + "loc.input.help.jdkVersion": "Пытается определить путь к выбранной версии JDK и установить переменную JAVA_HOME соответствующим образом.", + "loc.input.label.jdkUserInputPath": "Путь к JDK", + "loc.input.help.jdkUserInputPath": "Установка для JAVA_HOME определенного пути.", + "loc.input.label.jdkArchitecture": "Архитектура JDK", + "loc.input.help.jdkArchitecture": "Дополнительно укажите архитектуру JDK (x86, x64).", + "loc.messages.LocateJVMBasedOnVersionAndArch": "Найдите JAVA_HOME для Java %s %s", + "loc.messages.UnsupportedJdkWarning": "Поддержка JDK 9 и JDK 10 прекращена. Переключитесь на более позднюю версию в проекте и конвейере. Выполняется попытка сборки с помощью JDK 11...", + "loc.messages.FailedToLocateSpecifiedJVM": "Не удалось найти указанную версию JDK. Убедитесь в том, что указанная версия JDK установлена в агенте и что переменная среды \"%s\" существует и ее значением является расположение соответствующего пакета JDK, или используйте [установщик средств Java] (https://go.microsoft.com/fwlink/?linkid=875287), чтобы установить требуемую версию JDK.", + "loc.messages.NoTestResults": "Не найдены файлы результатов теста, соответствующие \"%s\". Публикация результатов теста JUnit пропускается." +} \ No newline at end of file diff --git a/_generated/ANTV2_Node20/Strings/resources.resjson/zh-CN/resources.resjson b/_generated/ANTV2_Node20/Strings/resources.resjson/zh-CN/resources.resjson new file mode 100644 index 000000000000..76c06ee08442 --- /dev/null +++ b/_generated/ANTV2_Node20/Strings/resources.resjson/zh-CN/resources.resjson @@ -0,0 +1,34 @@ +{ + "loc.friendlyName": "Ant", + "loc.helpMarkDown": "[详细了解此任务](https://go.microsoft.com/fwlink/?LinkID=613718)或[参阅 Ant 文档](http://ant.apache.org/)", + "loc.description": "使用 Apache Ant 生成", + "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", + "loc.group.displayName.junitTestResults": "JUnit 测试结果", + "loc.group.displayName.advanced": "高级", + "loc.input.label.antBuildFile": "Ant 生成文件", + "loc.input.help.antBuildFile": "从存储库根路径到“Ant 生成文件”的相对路径。", + "loc.input.label.options": "选项", + "loc.input.help.options": "提供要传递到 Ant 命令行的任意选项。可以提供自己的属性(例如,***-DmyProperty=myPropertyValue***),也可使用内置变量(例如,**-DcollectionId=$(system.collectionId)***)。或者,已在生成过程中将内置变量设置为环境变量,且可直接传递(例如,***-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%***)。", + "loc.input.label.targets": "对象", + "loc.input.help.targets": "要生成的可选目标列表,以空格分隔。如果未指定,将使用“默认”目标。如果未定义“默认”目标,则 Ant 1.6.0 和更高版本将生成所有顶级任务。", + "loc.input.label.publishJUnitResults": "发布到 Azure Pipelines", + "loc.input.help.publishJUnitResults": "选择此选项可将 Ant 生成产生的 JUnit 测试结果发布到 Azure Pipelines。每个与 `Test Results Files` 匹配的测试结果文件都会在 Azure Pipelines 中发布为测试运行。", + "loc.input.label.testResultsFiles": "测试结果文件", + "loc.input.help.testResultsFiles": "测试结果文件路径。可以使用通配符([详细信息](https://go.microsoft.com/fwlink/?linkid=856077))。例如,\"**/TEST-*.xml\" 表示名称以 TEST- 开头的所有 xml 文件。", + "loc.input.label.testRunTitle": "测试运行标题", + "loc.input.help.testRunTitle": "为测试运行提供一个名称。", + "loc.input.label.antHomeUserInputPath": "设置 ANT_HOME 路径", + "loc.input.help.antHomeUserInputPath": "如已设置,将用给定路径覆盖任何现有 ANT_HOME 环境变量。", + "loc.input.label.javaHomeSelection": "JAVA_HOME 设置方法", + "loc.input.help.javaHomeSelection": "可通过选择将在生成期间发现的 JDK 版本或手动输入 JDK 路径来设置 JAVA_HOME。", + "loc.input.label.jdkVersion": "JDK 版本", + "loc.input.help.jdkVersion": "将尝试发现所选 JDK 版本的路径并相应地设置 JAVA_HOME。", + "loc.input.label.jdkUserInputPath": "JDK 路径", + "loc.input.help.jdkUserInputPath": "将 JAVA_HOME 设置到给定路径。", + "loc.input.label.jdkArchitecture": "JDK 体系结构", + "loc.input.help.jdkArchitecture": "可以选择提供 JDK 的体系结构(x86、x64)。", + "loc.messages.LocateJVMBasedOnVersionAndArch": "为 Java %s %s 查找 JAVA_HOME", + "loc.messages.UnsupportedJdkWarning": "JDK 9 和 JDK 10 不受支持。请切换到项目和管道中的更高版本。正在尝试使用 JDK 11 进行生成...", + "loc.messages.FailedToLocateSpecifiedJVM": "未能找到指定的 JDK 版本。请确保代理上安装了指定的 JDK 版本,环境变量“%s”存在并设置为对应 JDK 的位置或使用[Java 工具安装程序](https://go.microsoft.com/fwlink/?linkid=875287)任务安装所需 JDK。", + "loc.messages.NoTestResults": "未找到匹配 %s 的测试结果文件,因此将跳过发布 JUnit 测试结果。" +} \ No newline at end of file diff --git a/_generated/ANTV2_Node20/Strings/resources.resjson/zh-TW/resources.resjson b/_generated/ANTV2_Node20/Strings/resources.resjson/zh-TW/resources.resjson new file mode 100644 index 000000000000..fdf700887b06 --- /dev/null +++ b/_generated/ANTV2_Node20/Strings/resources.resjson/zh-TW/resources.resjson @@ -0,0 +1,34 @@ +{ + "loc.friendlyName": "Ant", + "loc.helpMarkDown": "[深入了解此工作](https://go.microsoft.com/fwlink/?LinkID=613718)或[參閱 Ant 文件](http://ant.apache.org/)", + "loc.description": "使用 Apache Ant 建置", + "loc.instanceNameFormat": "Ant $(options) $(antBuildFile)", + "loc.group.displayName.junitTestResults": "JUnit 測試結果", + "loc.group.displayName.advanced": "進階", + "loc.input.label.antBuildFile": "Ant 組建檔案", + "loc.input.help.antBuildFile": "從存放庫根路徑到 Ant 組建檔案的相對路徑。", + "loc.input.label.options": "選項", + "loc.input.help.options": "提供傳遞給 Ant 命令列的任何選項。您可以提供您自己的屬性 (例如 ***-DmyProperty=myPropertyValue***),並同時使用內建變數 (例如 ***-DmyProperty=myPropertyValue***)。或者,如果內建變數已在建置期間設為環境變數,則也可以直接傳遞 (例如 ***-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%***)。", + "loc.input.label.targets": "目標", + "loc.input.help.targets": "以空格分隔的選用清單,內含要建置的目標。若未指定,將使用 `default` 目標。如果未定義 `default` 目標,則 Ant 1.6.0 和更新版本將建置所有最上層工作。", + "loc.input.label.publishJUnitResults": "發佈至 Azure Pipelines", + "loc.input.help.publishJUnitResults": "選取此選項會將 Ant 組建所產生的 JUnit 測試結果發佈至 Azure Pipelines。每個與 `Test Results Files` 相符的測試結果檔案都將作為測試回合於 Azure Pipelines 中發佈。", + "loc.input.label.testResultsFiles": "測試結果檔案", + "loc.input.help.testResultsFiles": "測試結果檔案路徑。可使用萬用字元 ([詳細資訊](https://go.microsoft.com/fwlink/?linkid=856077))。例如 `**/TEST-*.xml` 表示名稱開頭為 TEST- 的所有 XML 檔案。", + "loc.input.label.testRunTitle": "測試回合標題", + "loc.input.help.testRunTitle": "提供測試回合的名稱。", + "loc.input.label.antHomeUserInputPath": "設定 ANT_HOME 路徑", + "loc.input.help.antHomeUserInputPath": "如有設定,將會以指定的路徑覆寫任何現有的 ANT_HOME 環境變數。", + "loc.input.label.javaHomeSelection": "設定 JAVA_HOME 由", + "loc.input.help.javaHomeSelection": "選取一個能在組建期間探索到的 JDK 版本,或者手動輸入 JDK 路徑,均能為 JAVA_HOME 進行設定。", + "loc.input.label.jdkVersion": "JDK 版本", + "loc.input.help.jdkVersion": "將嘗試探索所選取 JDK 版本的路徑並據此設定 JAVA_HOME。", + "loc.input.label.jdkUserInputPath": "JDK 路徑", + "loc.input.help.jdkUserInputPath": "將 JAVA_HOME 設定為指定路徑。", + "loc.input.label.jdkArchitecture": "JDK 架構", + "loc.input.help.jdkArchitecture": "選擇性地提供 JDK 的架構 (x86、x64)。", + "loc.messages.LocateJVMBasedOnVersionAndArch": "為 Java %s %s 找出 JAVA_HOME 的位置", + "loc.messages.UnsupportedJdkWarning": "JDK 9 與 JDK 10 已失去支援。請在您的專案和管線中切換至較新版本。正在嘗試以 JDK 11 進行建置...", + "loc.messages.FailedToLocateSpecifiedJVM": "找不到指定的 JDK 版本。請確認指定的 JDK 版本已安裝在代理程式上,且環境變數 '%s' 存在並已設定為對應 JDK 的位置,或者使用 [Java 工具安裝程式](https://go.microsoft.com/fwlink/?linkid=875287) 工作安裝所需的 JDK。", + "loc.messages.NoTestResults": "找不到任何符合 %s 的測試結果,因此跳過發行 JUnit 測試結果。" +} \ No newline at end of file diff --git a/_generated/ANTV2_Node20/Tests/.npmrc b/_generated/ANTV2_Node20/Tests/.npmrc new file mode 100644 index 000000000000..969ccea07661 --- /dev/null +++ b/_generated/ANTV2_Node20/Tests/.npmrc @@ -0,0 +1,3 @@ +registry=https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/ + +always-auth=true \ No newline at end of file diff --git a/_generated/ANTV2_Node20/Tests/L0.ts b/_generated/ANTV2_Node20/Tests/L0.ts new file mode 100644 index 000000000000..12bd4e0bc63b --- /dev/null +++ b/_generated/ANTV2_Node20/Tests/L0.ts @@ -0,0 +1,154 @@ +import assert = require('assert'); +import { MockTestRunner } from 'azure-pipelines-task-lib/mock-test'; +import path = require('path'); +import os = require('os'); + +var isWindows = os.type().match(/^Win/); + +describe('ANT Suite', function () { + this.timeout(parseInt(process.env.TASK_TEST_TIMEOUT) || 20000); + + it('run ANT with all inputs', async () => { + const testPath = path.join(__dirname, 'L0AllInputs.js') + const runner: MockTestRunner = new MockTestRunner(testPath); + await runner.runAsync(); + + assert(runner.ran('/usr/local/bin/ANT -version'), 'it should have run ANT -version'); + assert(runner.ran('/usr/local/bin/ANT -buildfile /build/build.xml'), 'it should have run ANT -buildfile ...'); + assert(runner.invokedToolCount == 2, 'should have only run ANT 2 times'); + assert(runner.stderr.length == 0, 'should not have written to stderr'); + assert(runner.succeeded, 'task should have succeeded'); + }) + + it('fails if missing antBuildFile input', async () => { + const testPath = path.join(__dirname, 'L0MissingAntBuildFile.js') + const runner: MockTestRunner = new MockTestRunner(testPath); + await runner.runAsync(); + + assert(runner.invokedToolCount == 0, 'should not have run ANT'); + assert(runner.failed, 'task should have failed'); + assert(runner.stdOutContained('Input required: antBuildFile'), 'wrong error message'); + }) + + it('fails if missing javaHomeSelection input', async () => { + const testPath = path.join(__dirname, 'L0MissingJavaHomeSelection.js') + const runner: MockTestRunner = new MockTestRunner(testPath); + await runner.runAsync(); + + assert(runner.invokedToolCount == 0, 'should not have run ANT'); + assert(runner.failed, 'task should have failed'); + assert(runner.stdOutContained('Input required: javaHomeSelection'), 'wrong error message"'); + }) + + it('fails if missing testResultsFiles input', async () => { + const testPath = path.join(__dirname, 'L0MissingTestResultsFiles.js') + const runner: MockTestRunner = new MockTestRunner(testPath); + await runner.runAsync(); + + assert(runner.invokedToolCount == 0, 'should not have run ANT'); + assert(runner.failed, 'task should have failed'); + assert(runner.stdOutContained('Input required: testResultsFiles'), 'wrong error message:"'); + }) + + it('run ANT with antHomeUserInputPath', async () => { + const testPath = path.join(__dirname, 'L0RunWithAntHomeUserInputPath.js') + const runner: MockTestRunner = new MockTestRunner(testPath); + await runner.runAsync(); + + assert(runner.ran('/usr/local/bin/ANT -version'), 'it should have run ANT -version'); + assert(runner.ran('/usr/local/bin/ANT -buildfile /build/build.xml'), 'it should have run ANT -buildfile ...'); + assert(runner.invokedToolCount == 2, 'should have only run ANT 2 times'); + assert(runner.stderr.length == 0, 'should not have written to stderr'); + assert(runner.succeeded, 'task should have succeeded'); + assert(runner.stdOutContained('Set ANT_HOME to /usr/local/bin/ANT2'), 'ANT_HOME not set correctly'); + }) + + it('run ANT with antHomeUserInputPath set to invalid path', async () => { + const testPath = path.join(__dirname, 'L0InvalidUserHomePath.js') + const runner: MockTestRunner = new MockTestRunner(testPath); + await runner.runAsync(); + + assert(runner.invokedToolCount == 0, 'should not have run ANT'); + assert(runner.failed, 'task should have failed'); + assert(runner.stdOutContained('Not found /usr/local/bin/ANT_invalid'), 'Invalid path not detected'); + }) + + it('run ANT with ANT_HOME not set', async () => { + const testPath = path.join(__dirname, 'L0AntHomeNotSet.js') + const runner: MockTestRunner = new MockTestRunner(testPath); + await runner.runAsync(); + + // The response file will cause ANT to fail, but we are looking for the warning about ANT_HOME + assert(runner.ran('/usr/local/bin/ANT -version'), 'it should have run ANT -version'); + assert(runner.invokedToolCount == 1, 'should have only run ANT once'); + assert(runner.failed, 'task should have failed'); + assert(runner.stdOutContained('The ANT_HOME environment variable is not set'), 'Missing JAVA_HOME not detected'); + }) + + it('run ANT with jdkVersion set to 1.8', async () => { + const testPath = path.join(__dirname, 'L0JDKSetTo8.js') + const runner: MockTestRunner = new MockTestRunner(testPath); + await runner.runAsync(); + + assert(runner.ran('/usr/local/bin/ANT -version'), 'it should have run ANT -version'); + assert(runner.ran('/usr/local/bin/ANT -buildfile /build/build.xml'), 'it should have run ANT -buildfile ...'); + assert.strictEqual(runner.invokedToolCount, 2, 'should have run ANT 2 times'); + assert(runner.stderr.length == 0, 'should not have written to stderr'); + assert(runner.succeeded, 'task should have succeeded'); + assert(runner.stdOutContained('Set JAVA_HOME to /user/local/bin/ANT8'), 'JAVA_HOME not set correctly'); + }) + + it('run ANT with jdkVersion set to 1.5', async () => { + const testPath = path.join(__dirname, 'L0JDKSetTo5.js') + const runner: MockTestRunner = new MockTestRunner(testPath); + await runner.runAsync(); + + if (isWindows) { + assert.strictEqual(runner.invokedToolCount, 1, 'should have run the reg query toolrunner'); + } else { + assert.strictEqual(runner.invokedToolCount, 0, 'should not have run tools'); + } + assert(runner.failed, 'task should have failed'); + assert(runner.stdOutContained('FailedToLocateSpecifiedJVM'), 'Should write FailedToLocateSpecifiedJVM error'); + }) + + it('run ANT valid inputs but it fails', async () => { + const testPath = path.join(__dirname, 'L0FailWithValidInputs.js') + const runner: MockTestRunner = new MockTestRunner(testPath); + await runner.runAsync(); + + // The response file will cause ANT to fail, but we are looking for the warning about ANT_HOME + assert(runner.ran('/usr/local/bin/ANT -version'), 'it should have run ANT -version'); + assert(runner.ran('/usr/local/bin/ANT -buildfile /build/build.xml'), 'it should have run ANT -buildfile ...'); + assert(runner.invokedToolCount == 2, 'should have only run ANT 2 times'); + assert(runner.failed, 'task should have failed'); + }) + + it('Ant build with Publish Test Results.', async () => { + const testPath = path.join(__dirname, 'L0PublishTestResults.js') + const runner: MockTestRunner = new MockTestRunner(testPath); + await runner.runAsync(); + + assert(runner.succeeded, 'The task should not have failed'); + assert(runner.stdout.search(/##vso\[results.publish type=JUnit;mergeResults=true;publishRunAttachments=true;resultFiles=\/user\/build\/fun\/test-123.xml;\]/) >= 0); + }) + + it('Ant build with Publish Test Results with no matching test result files.', async () => { + const testPath = path.join(__dirname, 'L0NoMatchingTestResults.js') + const runner: MockTestRunner = new MockTestRunner(testPath); + await runner.runAsync(); + + assert(runner.stdout.search(/##vso\[results.publish\]/) < 0, 'publish test results should have not got called.'); + assert(runner.stderr.length == 0, 'should not have written to stderr'); + assert(runner.stdOutContained('NoTestResults'), 'should have warned about lack of test results'); + assert(runner.succeeded, 'task should have succeeded'); + }) + + it('Ant build with Publish Test Results for failed builds.', async () => { + const testPath = path.join(__dirname, 'L0FailedBuilds.js') + const runner: MockTestRunner = new MockTestRunner(testPath); + await runner.runAsync(); + + assert(runner.stdout.search(/##vso\[results.publish type=JUnit;mergeResults=true;publishRunAttachments=true;resultFiles=\/user\/build\/fun\/test-123.xml;\]/) >= 0); + }) +}); diff --git a/_generated/ANTV2_Node20/Tests/L0AllInputs.ts b/_generated/ANTV2_Node20/Tests/L0AllInputs.ts new file mode 100644 index 000000000000..10d215ac3943 --- /dev/null +++ b/_generated/ANTV2_Node20/Tests/L0AllInputs.ts @@ -0,0 +1,15 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + +let taskPath = path.join(__dirname, '..', 'anttask.js'); +let runner: TaskMockRunner = new TaskMockRunner(taskPath); + +runner.setInput('antBuildFile', '/build/build.xml'); // Make that checkPath returns true for this filename in the response file +runner.setInput('javaHomeSelection', 'JDKVersion'); +runner.setInput('jdkVersion', 'default'); +runner.setInput('testResultsFiles', '**/TEST-*.xml'); + +runner.setAnswers(answers.successAnswers); + +runner.run(); diff --git a/_generated/ANTV2_Node20/Tests/L0AntHomeNotSet.ts b/_generated/ANTV2_Node20/Tests/L0AntHomeNotSet.ts new file mode 100644 index 000000000000..f2927496aa4c --- /dev/null +++ b/_generated/ANTV2_Node20/Tests/L0AntHomeNotSet.ts @@ -0,0 +1,17 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + +let taskPath = path.join(__dirname, '..', 'anttask.js'); +let runner: TaskMockRunner = new TaskMockRunner(taskPath); + +runner.setInput('antBuildFile', '/build/build.xml'); // Make that checkPath returns true for this filename in the response file +runner.setInput('javaHomeSelection', 'JDKVersion'); +runner.setInput('jdkVersion', 'default'); +runner.setInput('testResultsFiles', '**/TEST-*.xml'); + +runner.setAnswers(answers.versionFailAnswers); + +delete process.env['ANT_HOME']; + +runner.run(); diff --git a/_generated/ANTV2_Node20/Tests/L0FailWithValidInputs.ts b/_generated/ANTV2_Node20/Tests/L0FailWithValidInputs.ts new file mode 100644 index 000000000000..9fc326d786d6 --- /dev/null +++ b/_generated/ANTV2_Node20/Tests/L0FailWithValidInputs.ts @@ -0,0 +1,15 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + +let taskPath = path.join(__dirname, '..', 'anttask.js'); +let runner: TaskMockRunner = new TaskMockRunner(taskPath); + +runner.setInput('antBuildFile', '/build/build.xml'); +runner.setInput('javaHomeSelection', 'JDKVersion'); +runner.setInput('jdkVersion', 'default'); +runner.setInput('testResultsFiles', '**/TEST-*.xml'); + +runner.setAnswers(answers.failAnswers); + +runner.run(); diff --git a/_generated/ANTV2_Node20/Tests/L0FailedBuilds.ts b/_generated/ANTV2_Node20/Tests/L0FailedBuilds.ts new file mode 100644 index 000000000000..4434c14f92d7 --- /dev/null +++ b/_generated/ANTV2_Node20/Tests/L0FailedBuilds.ts @@ -0,0 +1,17 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + + +let taskPath = path.join(__dirname, '..', 'anttask.js'); +let runner: TaskMockRunner = new TaskMockRunner(taskPath); + +runner.setInput('antBuildFile', '/build/build.xml'); // Make that checkPath returns true for this filename in the response file +runner.setInput('javaHomeSelection', 'JDKVersion'); +runner.setInput('jdkVersion', 'default'); +runner.setInput('testResultsFiles', '**/TEST-*.xml'); +runner.setInput('publishJUnitResults', 'true'); + +runner.setAnswers(answers.failAnswers); + +runner.run(); diff --git a/_generated/ANTV2_Node20/Tests/L0InvalidUserHomePath.ts b/_generated/ANTV2_Node20/Tests/L0InvalidUserHomePath.ts new file mode 100644 index 000000000000..e99d78796752 --- /dev/null +++ b/_generated/ANTV2_Node20/Tests/L0InvalidUserHomePath.ts @@ -0,0 +1,16 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + +let taskPath = path.join(__dirname, '..', 'anttask.js'); +let runner: TaskMockRunner = new TaskMockRunner(taskPath); + +runner.setInput('antBuildFile', '/build/build.xml'); +runner.setInput('javaHomeSelection', 'JDKVersion'); +runner.setInput('jdkVersion', 'default'); +runner.setInput('testResultsFiles', '**/TEST-*.xml'); +runner.setInput('antHomeUserInputPath', '/usr/local/bin/ANT_invalid'); + +runner.setAnswers(answers.versionFailAnswers); + +runner.run(); diff --git a/_generated/ANTV2_Node20/Tests/L0JDKSetTo5.ts b/_generated/ANTV2_Node20/Tests/L0JDKSetTo5.ts new file mode 100644 index 000000000000..bbc0f0954791 --- /dev/null +++ b/_generated/ANTV2_Node20/Tests/L0JDKSetTo5.ts @@ -0,0 +1,16 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + +let taskPath = path.join(__dirname, '..', 'anttask.js'); +let runner: TaskMockRunner = new TaskMockRunner(taskPath); + +runner.setInput('antBuildFile', '/build/build.xml'); +runner.setInput('javaHomeSelection', 'JDKVersion'); +runner.setInput('jdkVersion', '1.5'); +runner.setInput('jdkArchitecture', 'x86'); +runner.setInput('testResultsFiles', '**/TEST-*.xml'); + +runner.setAnswers(answers.successAnswers); + +runner.run(); diff --git a/_generated/ANTV2_Node20/Tests/L0JDKSetTo8.ts b/_generated/ANTV2_Node20/Tests/L0JDKSetTo8.ts new file mode 100644 index 000000000000..ee69c7d04d50 --- /dev/null +++ b/_generated/ANTV2_Node20/Tests/L0JDKSetTo8.ts @@ -0,0 +1,19 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + +let taskPath = path.join(__dirname, '..', 'anttask.js'); +let runner: TaskMockRunner = new TaskMockRunner(taskPath); + +runner.setInput('antBuildFile', '/build/build.xml'); +runner.setInput('javaHomeSelection', 'JDKVersion'); +runner.setInput('jdkVersion', '1.8'); +runner.setInput('jdkArchitecture', 'x86'); +runner.setInput('testResultsFiles', '**/TEST-*.xml'); + +runner.setAnswers(answers.successAnswers); + +process.env['JAVA_HOME_8_X86'] = '/user/local/bin/ANT8'; +process.env['JAVA_HOME_8_X64'] = '/user/local/bin/ANT8'; + +runner.run(); diff --git a/_generated/ANTV2_Node20/Tests/L0MissingAntBuildFile.ts b/_generated/ANTV2_Node20/Tests/L0MissingAntBuildFile.ts new file mode 100644 index 000000000000..6e6ddeeed4d7 --- /dev/null +++ b/_generated/ANTV2_Node20/Tests/L0MissingAntBuildFile.ts @@ -0,0 +1,14 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + +let taskPath = path.join(__dirname, '..', 'anttask.js'); +let runner: TaskMockRunner = new TaskMockRunner(taskPath); + +runner.setInput('javaHomeSelection', 'JDKVersion'); +runner.setInput('jdkVersion', 'default'); +runner.setInput('testResultsFiles', '**/TEST-*.xml'); + +runner.setAnswers(answers.successAnswers); + +runner.run(); diff --git a/_generated/ANTV2_Node20/Tests/L0MissingJavaHomeSelection.ts b/_generated/ANTV2_Node20/Tests/L0MissingJavaHomeSelection.ts new file mode 100644 index 000000000000..1df24ee56f42 --- /dev/null +++ b/_generated/ANTV2_Node20/Tests/L0MissingJavaHomeSelection.ts @@ -0,0 +1,14 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + +let taskPath = path.join(__dirname, '..', 'anttask.js'); +let runner: TaskMockRunner = new TaskMockRunner(taskPath); + +runner.setInput('antBuildFile', '/build/build.xml'); +runner.setInput('jdkVersion', 'default'); +runner.setInput('testResultsFiles', '**/TEST-*.xml'); + +runner.setAnswers(answers.successAnswers); + +runner.run(); diff --git a/_generated/ANTV2_Node20/Tests/L0MissingTestResultsFiles.ts b/_generated/ANTV2_Node20/Tests/L0MissingTestResultsFiles.ts new file mode 100644 index 000000000000..e56109d5d6b2 --- /dev/null +++ b/_generated/ANTV2_Node20/Tests/L0MissingTestResultsFiles.ts @@ -0,0 +1,14 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + +let taskPath = path.join(__dirname, '..', 'anttask.js'); +let runner: TaskMockRunner = new TaskMockRunner(taskPath); + +runner.setInput('antBuildFile', '/build/build.xml'); // Make that checkPath returns true for this filename in the response file +runner.setInput('javaHomeSelection', 'JDKVersion'); +runner.setInput('jdkVersion', 'default'); + +runner.setAnswers(answers.successAnswers); + +runner.run(); diff --git a/_generated/ANTV2_Node20/Tests/L0NoMatchingTestResults.ts b/_generated/ANTV2_Node20/Tests/L0NoMatchingTestResults.ts new file mode 100644 index 000000000000..5bb767c11399 --- /dev/null +++ b/_generated/ANTV2_Node20/Tests/L0NoMatchingTestResults.ts @@ -0,0 +1,16 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + +let taskPath = path.join(__dirname, '..', 'anttask.js'); +let runner: TaskMockRunner = new TaskMockRunner(taskPath); + +runner.setInput('antBuildFile', '/build/build.xml'); // Make that checkPath returns true for this filename in the response file +runner.setInput('javaHomeSelection', 'JDKVersion'); +runner.setInput('jdkVersion', 'default'); +runner.setInput('testResultsFiles', '**/InvalidTestFilter-*.xml'); +runner.setInput('publishJUnitResults', 'true'); + +runner.setAnswers(answers.successAnswers); + +runner.run(); diff --git a/_generated/ANTV2_Node20/Tests/L0PublishTestResults.ts b/_generated/ANTV2_Node20/Tests/L0PublishTestResults.ts new file mode 100644 index 000000000000..c265214a5ce9 --- /dev/null +++ b/_generated/ANTV2_Node20/Tests/L0PublishTestResults.ts @@ -0,0 +1,18 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + +let taskPath = path.join(__dirname, '..', 'anttask.js'); +let runner: TaskMockRunner = new TaskMockRunner(taskPath); + +runner.setInput('antBuildFile', '/build/build.xml'); // Make that checkPath returns true for this filename in the response file +runner.setInput('javaHomeSelection', 'JDKVersion'); +runner.setInput('jdkVersion', 'default'); +runner.setInput('testResultsFiles', '**/TEST-*.xml'); +runner.setInput('publishJUnitResults', 'true'); + +runner.setAnswers(answers.successAnswers); + +process.env['System.DefaultWorkingDirectory'] = '/user/build'; + +runner.run(); diff --git a/_generated/ANTV2_Node20/Tests/L0RunWithAntHomeUserInputPath.ts b/_generated/ANTV2_Node20/Tests/L0RunWithAntHomeUserInputPath.ts new file mode 100644 index 000000000000..53b3d2daa6ed --- /dev/null +++ b/_generated/ANTV2_Node20/Tests/L0RunWithAntHomeUserInputPath.ts @@ -0,0 +1,16 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + +let taskPath = path.join(__dirname, '..', 'anttask.js'); +let runner: TaskMockRunner = new TaskMockRunner(taskPath); + +runner.setInput('antBuildFile', '/build/build.xml'); +runner.setInput('javaHomeSelection', 'JDKVersion'); +runner.setInput('jdkVersion', 'default'); +runner.setInput('testResultsFiles', '**/TEST-*.xml'); +runner.setInput('antHomeUserInputPath', '/usr/local/bin/ANT2'); + +runner.setAnswers(answers.successAnswers); + +runner.run(); diff --git a/_generated/ANTV2_Node20/Tests/answers.ts b/_generated/ANTV2_Node20/Tests/answers.ts new file mode 100644 index 000000000000..1425ef28749f --- /dev/null +++ b/_generated/ANTV2_Node20/Tests/answers.ts @@ -0,0 +1,102 @@ +import { TaskLibAnswers } from 'azure-pipelines-task-lib/mock-answer'; + +export const successAnswers: TaskLibAnswers = { + "which": { + "ant": "/usr/local/bin/ANT", + "node": "/usr/local/bin/node" + }, + "exec": { + "/usr/local/bin/ANT -version": { + "code": 0, + "stdout": "Apache Ant(TM) version 1.9.7 compiled on April 9 2016" + }, + "/usr/local/bin/ANT -buildfile /build/build.xml": { + "code": 0, + "stdout": "" + }, + "reg query HKLM\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.5 /v JavaHome /reg:32": { + "code": 222, + "stdout": "" + }, + "reg query HKLM\\SOFTWARE\\JavaSoft\\Java Development Kit\\ /f 1.5 /k": { + "code": 50, + "stdout": "" + } + }, + "checkPath": { + "/usr/local/bin/ANT": true, + "/build/build.xml": true, + "/usr/local/bin/ANT2": true + }, + "getVariable": { + "ANT_HOME": "/user/local/bin/ANT", + "JAVA_HOME_8_x86": "/user/local/bin/ANT8", + "JAVA_HOME_8_X64": "/user/local/bin/ANT8", + "System.DefaultWorkingDirectory": "/user/build" + }, + "find": { + "/user/build": [ + "/user/build/fun/test-123.xml" + ] + }, + "findMatch": { + "**/TEST-*.xml": [ + "/user/build/fun/test-123.xml" + ] + } +}; + +export const failAnswers: TaskLibAnswers = { + "which": { + "ant": "/usr/local/bin/ANT", + "node": "/usr/local/bin/node" + }, + "exec": { + "/usr/local/bin/ANT -version": { + "code": 0, + "stdout": "Apache Ant(TM) version 1.9.7 compiled on April 9 2016" + }, + "/usr/local/bin/ANT -buildfile /build/build.xml": { + "code": 222, + "stdout": "" + } + }, + "checkPath": { + "/usr/local/bin/ANT": true, + "/build/build.xml": true + }, + "getVariable": { + "ANT_HOME": "/user/local/bin/ANT" + }, + "find": { + "/user/build": [ + "/user/build/fun/test-123.xml" + ] + }, + "findMatch": { + "**/TEST-*.xml": [ + "/user/build/fun/test-123.xml" + ] + } +}; + +export const versionFailAnswers: TaskLibAnswers = { + "which": { + "ant": "/usr/local/bin/ANT", + "node": "/usr/local/bin/node" + }, + "exec": { + "/usr/local/bin/ANT -version": { + "code": 222, + "stdout": "Apache Ant(TM) version 1.9.7 compiled on April 9 2016" + }, + "/usr/local/bin/ANT -buildfile /build/build.xml": { + "code": 0, + "stdout": "" + } + }, + "checkPath" : { + "/usr/local/bin/ANT": true, + "/build/build.xml": true + } +} diff --git a/_generated/ANTV2_Node20/Tests/package-lock.json b/_generated/ANTV2_Node20/Tests/package-lock.json new file mode 100644 index 000000000000..f7b6ad94e7e6 --- /dev/null +++ b/_generated/ANTV2_Node20/Tests/package-lock.json @@ -0,0 +1,22 @@ +{ + "name": "antv1-tests", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "antv1-tests", + "version": "1.0.0", + "license": "MIT", + "devDependencies": { + "@types/mocha": "^5.2.7" + } + }, + "node_modules/@types/mocha": { + "version": "5.2.7", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/mocha/-/mocha-5.2.7.tgz", + "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==", + "dev": true + } + } +} diff --git a/_generated/ANTV2_Node20/Tests/package.json b/_generated/ANTV2_Node20/Tests/package.json new file mode 100644 index 000000000000..37725de724e6 --- /dev/null +++ b/_generated/ANTV2_Node20/Tests/package.json @@ -0,0 +1,22 @@ +{ + "name": "antv1-tests", + "version": "1.0.0", + "description": "Azure Pipelines Ant V1 Task Tests", + "main": "L0.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/Microsoft/azure-pipelines-tasks.git" + }, + "author": "Microsoft Corporation", + "license": "MIT", + "bugs": { + "url": "https://github.com/Microsoft/azure-pipelines-tasks/issues" + }, + "homepage": "https://github.com/Microsoft/azure-pipelines-tasks#readme", + "devDependencies": { + "@types/mocha": "^5.2.7" + } +} diff --git a/_generated/ANTV2_Node20/ThirdPartyNotice.txt b/_generated/ANTV2_Node20/ThirdPartyNotice.txt new file mode 100644 index 000000000000..e02a9dc6967a --- /dev/null +++ b/_generated/ANTV2_Node20/ThirdPartyNotice.txt @@ -0,0 +1,1935 @@ + +THIRD-PARTY SOFTWARE NOTICES AND INFORMATION +Do Not Translate or Localize + +This Azure DevOps extension (ANTV1) is based on or incorporates material from the projects listed below (Third Party IP). The original copyright notice and the license under which Microsoft received such Third Party IP, are set forth below. Such licenses and notices are provided for informational purposes only. Microsoft licenses the Third Party IP to you under the licensing terms for the Azure DevOps extension. Microsoft reserves all other rights not expressly granted under this agreement, whether by implication, estoppel or otherwise. + +1. @types/node (git+https://github.com/DefinitelyTyped/DefinitelyTyped.git) +2. @types/q (git+https://github.com/DefinitelyTyped/DefinitelyTyped.git) +3. balanced-match (git://github.com/juliangruber/balanced-match.git) +4. boolbase (git+https://github.com/fb55/boolbase.git) +5. brace-expansion (git://github.com/juliangruber/brace-expansion.git) +6. cheerio (git://github.com/cheeriojs/cheerio.git) +7. codecoverage-tools (git://github.com/microsoft/azure-pipelines-tasks-coverage-tools.git) +8. concat-map (git://github.com/substack/node-concat-map.git) +9. core-util-is (git://github.com/isaacs/core-util-is.git) +10. css-select (git://github.com/fb55/css-select.git) +11. css-what (git+https://github.com/fb55/css-what.git) +12. dom-serializer (git://github.com/cheeriojs/dom-renderer.git) +13. domelementtype (git://github.com/FB55/domelementtype.git) +14. domelementtype (git://github.com/FB55/domelementtype.git) +15. domhandler (git://github.com/fb55/DomHandler.git) +16. domutils (git://github.com/FB55/domutils.git) +17. entities (git://github.com/fb55/node-entities.git) +18. fs-extra (git+https://github.com/jprichardson/node-fs-extra.git) +19. fs.realpath (git+https://github.com/isaacs/fs.realpath.git) +20. glob (git://github.com/isaacs/node-glob.git) +21. glob (git://github.com/isaacs/node-glob.git) +22. glob (git://github.com/isaacs/node-glob.git) +23. graceful-fs (git+https://github.com/isaacs/node-graceful-fs.git) +24. htmlparser2 (git://github.com/fb55/htmlparser2.git) +25. inflight (git+https://github.com/npm/inflight.git) +26. inherits (git://github.com/isaacs/inherits.git) +27. isarray (git://github.com/juliangruber/isarray.git) +28. jsonfile (git+ssh://git@github.com/jprichardson/node-jsonfile.git) +29. klaw (git+https://github.com/jprichardson/node-klaw.git) +30. lodash.assignin (git+https://github.com/lodash/lodash.git) +31. lodash.bind (git+https://github.com/lodash/lodash.git) +32. lodash.defaults (git+https://github.com/lodash/lodash.git) +33. lodash.filter (git+https://github.com/lodash/lodash.git) +34. lodash.flatten (git+https://github.com/lodash/lodash.git) +35. lodash.foreach (git+https://github.com/lodash/lodash.git) +36. lodash.map (git+https://github.com/lodash/lodash.git) +37. lodash.merge (git+https://github.com/lodash/lodash.git) +38. lodash.pick (git+https://github.com/lodash/lodash.git) +39. lodash.reduce (git+https://github.com/lodash/lodash.git) +40. lodash.reject (git+https://github.com/lodash/lodash.git) +41. lodash.some (git+https://github.com/lodash/lodash.git) +42. minimatch (git://github.com/isaacs/minimatch.git) +43. mockery (git://github.com/mfncooper/mockery.git) +44. node-uuid (git+https://github.com/broofa/node-uuid.git) +45. nth-check (git+https://github.com/fb55/nth-check.git) +46. once (git://github.com/isaacs/once.git) +47. os (git+https://github.com/DiegoRBaquero/node-os.git) +48. path-is-absolute (git+https://github.com/sindresorhus/path-is-absolute.git) +49. process-nextick-args (git+https://github.com/calvinmetcalf/process-nextick-args.git) +50. q (git://github.com/kriskowal/q.git) +51. readable-stream (git://github.com/nodejs/readable-stream.git) +52. rimraf (git://github.com/isaacs/rimraf.git) +53. safe-buffer (git://github.com/feross/safe-buffer.git) +54. sax (git://github.com/isaacs/sax-js.git) +55. semver (git+https://github.com/npm/node-semver.git) +56. shelljs (git://github.com/arturadib/shelljs.git) +57. string_decoder (git://github.com/nodejs/string_decoder.git) +58. strip-bom (git+https://github.com/sindresorhus/strip-bom.git) +59. util-deprecate (git://github.com/TooTallNate/util-deprecate.git) +60. uuid (git+https://github.com/kelektiv/node-uuid.git) +61. vso-node-api (git+https://github.com/Microsoft/vso-node-api.git) +62. vsts-task-lib (git+https://github.com/Microsoft/vsts-task-lib.git) +63. vsts-task-lib (git+https://github.com/Microsoft/vsts-task-lib.git) +64. vsts-task-lib (git+https://github.com/Microsoft/vsts-task-lib.git) +65. wrappy (git+https://github.com/npm/wrappy.git) +66. xml2js (git+https://github.com/Leonidas-from-XIV/node-xml2js.git) +67. xmlbuilder (git://github.com/oozcitak/xmlbuilder-js.git) + + +%% @types/node NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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 +========================================= +END OF @types/node NOTICES, INFORMATION, AND LICENSE + +%% @types/q NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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 +========================================= +END OF @types/q NOTICES, INFORMATION, AND LICENSE + +%% balanced-match NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +(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. +========================================= +END OF balanced-match NOTICES, INFORMATION, AND LICENSE + +%% boolbase NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +NO LICENSE FOUND +========================================= +END OF boolbase NOTICES, INFORMATION, AND LICENSE + +%% brace-expansion NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF brace-expansion NOTICES, INFORMATION, AND LICENSE + +%% cheerio NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +NO LICENSE FOUND +========================================= +END OF cheerio NOTICES, INFORMATION, AND LICENSE + +%% codecoverage-tools NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +NO LICENSE FOUND +========================================= +END OF codecoverage-tools NOTICES, INFORMATION, AND LICENSE + +%% concat-map NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF concat-map NOTICES, INFORMATION, AND LICENSE + +%% core-util-is NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF core-util-is NOTICES, INFORMATION, AND LICENSE + +%% css-select NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) Felix Böhm +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 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, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +========================================= +END OF css-select NOTICES, INFORMATION, AND LICENSE + +%% css-what NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) Felix Böhm +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 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, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +========================================= +END OF css-what NOTICES, INFORMATION, AND LICENSE + +%% dom-serializer NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +License + +(The MIT License) + +Copyright (c) 2014 The cheeriojs 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 dom-serializer NOTICES, INFORMATION, AND LICENSE + +%% domelementtype NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) Felix Böhm +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 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, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +========================================= +END OF domelementtype NOTICES, INFORMATION, AND LICENSE + +%% domelementtype NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) Felix Böhm +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 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, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +========================================= +END OF domelementtype NOTICES, INFORMATION, AND LICENSE + +%% domhandler NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) Felix Böhm +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 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, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +========================================= +END OF domhandler NOTICES, INFORMATION, AND LICENSE + +%% domutils NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) Felix Böhm +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 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, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +========================================= +END OF domutils NOTICES, INFORMATION, AND LICENSE + +%% entities NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) Felix Böhm +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 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, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +========================================= +END OF entities NOTICES, INFORMATION, AND LICENSE + +%% fs-extra NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +(The MIT License) + +Copyright (c) 2011-2016 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. +========================================= +END OF fs-extra NOTICES, INFORMATION, AND LICENSE + +%% fs.realpath NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF fs.realpath NOTICES, INFORMATION, AND LICENSE + +%% glob NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF glob NOTICES, INFORMATION, AND LICENSE + +%% glob NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF glob NOTICES, INFORMATION, AND LICENSE + +%% glob NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF glob NOTICES, INFORMATION, AND LICENSE + +%% graceful-fs NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF graceful-fs NOTICES, INFORMATION, AND LICENSE + +%% htmlparser2 NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright 2010, 2011, Chris Winberry . 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. +========================================= +END OF htmlparser2 NOTICES, INFORMATION, AND LICENSE + +%% inflight NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF inflight NOTICES, INFORMATION, AND LICENSE + +%% inherits NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF inherits NOTICES, INFORMATION, AND LICENSE + +%% isarray NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +NO LICENSE FOUND +========================================= +END OF isarray NOTICES, INFORMATION, AND LICENSE + +%% jsonfile NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +(The MIT License) + +Copyright (c) 2012-2015, 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. +========================================= +END OF jsonfile NOTICES, INFORMATION, AND LICENSE + +%% klaw NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +(The MIT License) + +Copyright (c) 2015-2016 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. +========================================= +END OF klaw NOTICES, INFORMATION, AND LICENSE + +%% lodash.assignin NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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 and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. +========================================= +END OF lodash.assignin NOTICES, INFORMATION, AND LICENSE + +%% lodash.bind NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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 and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. +========================================= +END OF lodash.bind NOTICES, INFORMATION, AND LICENSE + +%% lodash.defaults NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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 and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. +========================================= +END OF lodash.defaults NOTICES, INFORMATION, AND LICENSE + +%% lodash.filter NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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 and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. +========================================= +END OF lodash.filter NOTICES, INFORMATION, AND LICENSE + +%% lodash.flatten NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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 and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. +========================================= +END OF lodash.flatten NOTICES, INFORMATION, AND LICENSE + +%% lodash.foreach NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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 and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. +========================================= +END OF lodash.foreach NOTICES, INFORMATION, AND LICENSE + +%% lodash.map NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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 and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. +========================================= +END OF lodash.map NOTICES, INFORMATION, AND LICENSE + +%% lodash.merge NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright JS Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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 and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. +========================================= +END OF lodash.merge NOTICES, INFORMATION, AND LICENSE + +%% lodash.pick NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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 and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. +========================================= +END OF lodash.pick NOTICES, INFORMATION, AND LICENSE + +%% lodash.reduce NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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 and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. +========================================= +END OF lodash.reduce NOTICES, INFORMATION, AND LICENSE + +%% lodash.reject NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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 and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. +========================================= +END OF lodash.reject NOTICES, INFORMATION, AND LICENSE + +%% lodash.some NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +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 and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. +========================================= +END OF lodash.some NOTICES, INFORMATION, AND LICENSE + +%% minimatch NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF minimatch NOTICES, INFORMATION, AND LICENSE + +%% mockery NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyrights for code authored by Yahoo! Inc. is licensed under the following + terms: + + MIT License + + Copyright (c) 2011 Yahoo! 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. +========================================= +END OF mockery NOTICES, INFORMATION, AND LICENSE + +%% node-uuid NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) + +Copyright (c) 2010-2012 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. +========================================= +END OF node-uuid NOTICES, INFORMATION, AND LICENSE + +%% nth-check NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +NO LICENSE FOUND +========================================= +END OF nth-check NOTICES, INFORMATION, AND LICENSE + +%% once NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF once NOTICES, INFORMATION, AND LICENSE + +%% os NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) + +Copyright (c) 2016 Diego Rodríguez Baquero + +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 os NOTICES, INFORMATION, AND LICENSE + +%% path-is-absolute NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF path-is-absolute NOTICES, INFORMATION, AND LICENSE + +%% process-nextick-args NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +# Copyright (c) 2015 Calvin Metcalf + +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 process-nextick-args NOTICES, INFORMATION, AND LICENSE + +%% q NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright 2009–2017 Kristopher Michael Kowal. 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. +========================================= +END OF q NOTICES, INFORMATION, AND LICENSE + +%% readable-stream NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Node.js is licensed for use as follows: + +""" +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. +""" + +This license applies to parts of Node.js originating from the +https://github.com/joyent/node repository: + +""" +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. +""" +========================================= +END OF readable-stream NOTICES, INFORMATION, AND LICENSE + +%% rimraf NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF rimraf NOTICES, INFORMATION, AND LICENSE + +%% safe-buffer NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF safe-buffer NOTICES, INFORMATION, AND LICENSE + +%% sax NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF sax NOTICES, INFORMATION, AND LICENSE + +%% semver NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF semver NOTICES, INFORMATION, AND LICENSE + +%% shelljs NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2012, Artur Adib +All rights reserved. + +You may use this project under the terms of the New BSD license as follows: + +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 Artur Adib nor the + names of the 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 ARTUR ADIB 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. +========================================= +END OF shelljs NOTICES, INFORMATION, AND LICENSE + +%% string_decoder NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Node.js is licensed for use as follows: + +""" +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. +""" + +This license applies to parts of Node.js originating from the +https://github.com/joyent/node repository: + +""" +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. +""" +========================================= +END OF string_decoder NOTICES, INFORMATION, AND LICENSE + +%% strip-bom NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF strip-bom NOTICES, INFORMATION, AND LICENSE + +%% util-deprecate NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +(The MIT License) + +Copyright (c) 2014 Nathan Rajlich + +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 util-deprecate NOTICES, INFORMATION, AND LICENSE + +%% uuid NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) + +Copyright (c) 2010-2016 Robert Kieffer 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. +========================================= +END OF uuid NOTICES, INFORMATION, AND LICENSE + +%% vso-node-api NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +NO LICENSE FOUND +========================================= +END OF vso-node-api NOTICES, INFORMATION, AND LICENSE + +%% vsts-task-lib NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) + +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. +========================================= +END OF vsts-task-lib NOTICES, INFORMATION, AND LICENSE + +%% vsts-task-lib NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) + +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. +========================================= +END OF vsts-task-lib NOTICES, INFORMATION, AND LICENSE + +%% vsts-task-lib NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) + +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. +========================================= +END OF vsts-task-lib NOTICES, INFORMATION, AND LICENSE + +%% wrappy NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. +========================================= +END OF wrappy NOTICES, INFORMATION, AND LICENSE + +%% xml2js NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright 2010, 2011, 2012, 2013. 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. +========================================= +END OF xml2js NOTICES, INFORMATION, AND LICENSE + +%% xmlbuilder NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) + +Copyright (c) 2013 Ozgur Ozcitak + +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 xmlbuilder NOTICES, INFORMATION, AND LICENSE + diff --git a/_generated/ANTV2_Node20/anttask.ts b/_generated/ANTV2_Node20/anttask.ts new file mode 100644 index 000000000000..edb98992ffd9 --- /dev/null +++ b/_generated/ANTV2_Node20/anttask.ts @@ -0,0 +1,171 @@ +import * as os from 'os'; +import * as path from 'path'; +import * as tl from 'azure-pipelines-task-lib/task'; + +import * as javacommons from 'azure-pipelines-tasks-java-common/java-common'; + +tl.setResourcePath(path.join(__dirname, 'task.json')); + +const TESTRUN_SYSTEM = "VSTS - ant"; +const isWindows = os.type().match(/^Win/); + + +function publishTestResults(publishJUnitResults, testResultsFiles: string) { + if (publishJUnitResults == 'true') { + //check for pattern in testResultsFiles + let matchingTestResultsFiles; + if (testResultsFiles.indexOf('*') >= 0 || testResultsFiles.indexOf('?') >= 0) { + tl.debug('Pattern found in testResultsFiles parameter'); + const buildFolder = tl.getVariable('System.DefaultWorkingDirectory'); + matchingTestResultsFiles = tl.findMatch(buildFolder, testResultsFiles, null, { matchBase: true }); + } + else { + tl.debug('No pattern found in testResultsFiles parameter'); + matchingTestResultsFiles = [testResultsFiles]; + } + + if (!matchingTestResultsFiles || matchingTestResultsFiles.length === 0) { + console.log(tl.loc('NoTestResults', testResultsFiles)); + return 0; + } + + let tp = new tl.TestPublisher("JUnit"); + const testRunTitle = tl.getInput('testRunTitle'); + + tp.publish(matchingTestResultsFiles, 'true', "", "", testRunTitle, 'true', TESTRUN_SYSTEM); + } +} + +function processAntOutputLine(line) { + if (line == null) { + return; + } + + const javacText = "[javac] "; + //[java] [javac] c:\path\to\file:100: error: error_msg + const compileErrorFileRegexWin = /^(\[java\])?\s*\[javac\]\s*([^:]:[^:]+):(\d+):\s*(.+)$/ + //[java] [javac] /path/to/file:100: error: error_msg + const compileErrorFileRegexUnix = /^(\[java\])?\s*\[javac\]\s*([^:]+):(\d+):\s*(.+)$/ + const compileErrorFileRegex = (isWindows) ? compileErrorFileRegexWin : compileErrorFileRegexUnix; + + let severity = null; + if (line.indexOf(javacText) >= 0) { + // parse javac errors and warnings + const matches = compileErrorFileRegex.exec(line); + if (matches) { + let errorMessage = matches[4]; + if (errorMessage) { + if (errorMessage.startsWith('warning:')) { + severity = 'warning'; + } else if (errorMessage.startsWith('error:')) { + severity = 'error'; + } + } + + tl.command('task.issue', { + type: severity, + sourcepath: matches[2], + linenumber: matches[3], + }, matches[0]); + } + } +} + + + +async function doWork() { + + try { + var anttool = tl.which('ant', true); + var antv = tl.tool(anttool); + antv.arg('-version'); + + var antb = tl.tool(anttool); + var antBuildFile = tl.getPathInput('antBuildFile', true, true); + antb.arg('-buildfile'); + antb.arg(antBuildFile); + + // options and targets are optional + antb.line(tl.getInput('options', false)); + antb.arg(tl.getDelimitedInput('targets', ' ', false)); + + // update ANT_HOME if user specified path manually (not required, but if so, check it) + var antHomeUserInputPath = tl.getPathInput('antHomeUserInputPath', false, true); + if (antHomeUserInputPath) { + tl.debug('Using path from user input to set ANT_HOME'); + tl.debug('Set ANT_HOME to ' + antHomeUserInputPath); + process.env['ANT_HOME'] = antHomeUserInputPath; + } + + // Warn if ANT_HOME is not set either locally or on the task via antHomeUserInputPath + var antHome = tl.getVariable('ANT_HOME'); + if (!antHome) { + tl.warning('The ANT_HOME environment variable is not set. Please make sure that it exists and is set to the location of the bin folder. See https://ant.apache.org/manual/install.html.'); + } + + // update JAVA_HOME if user selected specific JDK version or set path manually + var javaHomeSelection = tl.getInput('javaHomeSelection', true); + var specifiedJavaHome = null; + var javaTelemetryData = null; + if (javaHomeSelection == 'JDKVersion') { + tl.debug('Using JDK version to find and set JAVA_HOME'); + var jdkVersion = tl.getInput('jdkVersion'); + var jdkArchitecture = tl.getInput('jdkArchitecture'); + javaTelemetryData = { "jdkVersion": jdkVersion }; + + if (jdkVersion != 'default') { + specifiedJavaHome = javacommons.findJavaHome(jdkVersion, jdkArchitecture); + } + } + else { + tl.debug('Using path from user input to set JAVA_HOME'); + var jdkUserInputPath = tl.getPathInput('jdkUserInputPath', true, true); + specifiedJavaHome = jdkUserInputPath; + javaTelemetryData = { "jdkVersion": "custom" }; + } + javacommons.publishJavaTelemetry('Ant', javaTelemetryData); + + if (specifiedJavaHome) { + tl.debug('Set JAVA_HOME to ' + specifiedJavaHome); + process.env['JAVA_HOME'] = specifiedJavaHome; + } + + + var publishJUnitResults = tl.getInput('publishJUnitResults'); + var testResultsFiles = tl.getInput('testResultsFiles', true); + + await antv.exec(); + var buffer; + antb.on('stdout', (data) => { + if (data) { + buffer += data.toString(); + let idx = buffer.indexOf(os.EOL); + while (idx > -1) { + let line = buffer.substring(0, idx); + processAntOutputLine(line); + buffer = buffer.substring(idx + os.EOL.length); + idx = buffer.indexOf(os.EOL); + } + } + }); + + await antb.exec() + .then(async function (code) { + publishTestResults(publishJUnitResults, testResultsFiles); + tl.setResult(tl.TaskResult.Succeeded, "Task succeeded"); + }) + .fail(function (err) { + console.error(err.message); + publishTestResults(publishJUnitResults, testResultsFiles); + tl.debug('taskRunner fail'); + tl.setResult(tl.TaskResult.Failed, err); + }); + } catch (e) { + tl.debug(e.message); + tl.error(e); + tl.setResult(tl.TaskResult.Failed, e.message); + } +} + +doWork(); + diff --git a/_generated/ANTV2_Node20/icon.png b/_generated/ANTV2_Node20/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b9b2b3db07b9b18bf5c98c9eefac793499d71514 GIT binary patch literal 1166 zcmV;91abR`P)m47?O~QFJv3L>&Naj(-#Ge%3jzaZM&P8H5*9;icz2#7E)6q&F!~2DP5K@ zx82`)dNCL4Zg>9J2EFn7>hPTB`#c}c;qV-|qW@U}uopMfQ-9AiM0qDP_`hf%i&Xj&%~Owv2M3xvH%Jo&^DN7mWBHL zdr%GrGJ_{p=f%2H$0iMMN#CgG2~k-dxPo#9cq-nN{BgXrZMRk58ura%MIRI7eo$Xj zHe>@#RJ{rd%Dv=)kwF*NnO)?^P*wp0qH+NE6~{j*)*192oi|kg02jn+X<2vbYk*sqRz z$vPGNIA>K$JV^7A0KQl%N`G_z1c-OlZ3i01G-ON#fKh442`TbuP=FACLQ}ju`7J=h zEH`h*p#Pw%9ukp7z_kBX=go9sZKp-2jV?DNLGKI>pz=OqThh_QMuif|_zznlEJJf@ zEQJwmxlG+~U;q`pPmsMpcFQkSXhC(pAmzYu6@Cz92@n~ts3Pq_0UUvntk_{i=f=I{ z!t&1KN5+OK8G4p?7+-50OabT`kVE8n38MC=zyKrG10p15c&51AOYIvD#=6}ORCfZ# zH&n$u_gvgd)yKWMITKUd#R4mxzxu#mWC^6^K zgv>Zb@6PoXXt||o`t+Vi@0lXM5#?GReXYVv{W2~<5K4fiXkwp0391e8uGEV0azDRm z{dIl$kwvOJDZ*caj=wqQEC>qFTu{4M9c=}C>+ry`j%1*FZi%`#TJg7_>_6(6_p-lr zqh>)awRbyhz)`?BmikX-R^AZA7xUb6PI%yDl-0AN{s-CnfdO1xi!~L9)&LI~8}4Y1 zCe{anII-zG*cHIabhLKC$i2W5OY$$KWaQ@&GS?ygzx_5VgD0x+zmXkv{(74U@$#~e$CKqmv{NbGm_ zLUw+0QO#0S*=5lM%e>ScnBWNvtK3Vz*PRfSRuTW!SuzJ=#ac7A(js1?{} gguKc0y`m}AKRyqvX!sW7NdN!<07*qoM6N<$g1#CYDF6Tf literal 0 HcmV?d00001 diff --git a/_generated/ANTV2_Node20/icon.svg b/_generated/ANTV2_Node20/icon.svg new file mode 100644 index 000000000000..c2bb6a7998f6 --- /dev/null +++ b/_generated/ANTV2_Node20/icon.svg @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/_generated/ANTV2_Node20/make.json b/_generated/ANTV2_Node20/make.json new file mode 100644 index 000000000000..8db9a0bf80f7 --- /dev/null +++ b/_generated/ANTV2_Node20/make.json @@ -0,0 +1,11 @@ +{ + "rm": [ + { + "items": [ + "node_modules/azure-pipelines-tasks-java-common/node_modules/azure-pipelines-task-lib", + "node_modules/mockery" + ], + "options": "-Rf" + } + ] +} \ No newline at end of file diff --git a/_generated/ANTV2_Node20/package-lock.json b/_generated/ANTV2_Node20/package-lock.json new file mode 100644 index 000000000000..70d714416ebf --- /dev/null +++ b/_generated/ANTV2_Node20/package-lock.json @@ -0,0 +1,810 @@ +{ + "name": "Ant", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "Ant", + "license": "MIT", + "dependencies": { + "@types/mocha": "^5.2.7", + "@types/node": "^20.3.1", + "azure-pipelines-task-lib": "^4.15.0", + "azure-pipelines-tasks-java-common": "2.198.1", + "xml2js": "^0.6.2" + }, + "devDependencies": { + "typescript": "5.1.6" + } + }, + "node_modules/@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/form-data": { + "version": "0.0.33", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/mocha": { + "version": "5.2.7", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/mocha/-/mocha-5.2.7.tgz", + "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==" + }, + "node_modules/@types/node": { + "version": "20.7.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/node/-/node-20.7.0.tgz", + "integrity": "sha512-zI22/pJW2wUZOVyguFaUL1HABdmSVxpXrzIqkjsHmyUjNhPoWM1CKfvVuXfetHhIok4RY573cqS0mZ1SJEnoTg==" + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "node_modules/@types/semver": { + "version": "7.3.9", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/semver/-/semver-7.3.9.tgz", + "integrity": "sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==" + }, + "node_modules/adm-zip": { + "version": "0.5.15", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/adm-zip/-/adm-zip-0.5.15.tgz", + "integrity": "sha512-jYPWSeOA8EFoZnucrKCNihqBjoEGQSU4HKgHYQgKNEQ0pQF9a/DYuo/+fAxY76k4qe75LUlLWpAM1QWcBMTOKw==", + "engines": { + "node": ">=12.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/azure-pipelines-task-lib": { + "version": "4.15.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/azure-pipelines-task-lib/-/azure-pipelines-task-lib-4.15.0.tgz", + "integrity": "sha512-Y72FjLTE2CAM9KrBXzc6vjelTBCpdYb2NkyFB0hwksTrhA3q8nsF680dofuTeXztQ94UTpkK27hpgSHnqYf5ZA==", + "dependencies": { + "adm-zip": "^0.5.10", + "minimatch": "3.0.5", + "nodejs-file-downloader": "^4.11.1", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "uuid": "^3.0.1" + } + }, + "node_modules/azure-pipelines-task-lib/node_modules/minimatch": { + "version": "3.0.5", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/azure-pipelines-tasks-java-common": { + "version": "2.198.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/azure-pipelines-tasks-java-common/-/azure-pipelines-tasks-java-common-2.198.1.tgz", + "integrity": "sha512-LaEdGpC4/5nt3krZOJNIH8r+ZxOEhxocpTH/J//Vx98LeYC6zLGyrmCdTLBrY58nJ9Bo7PD/0ARrasXFPv5VkQ==", + "dependencies": { + "@types/node": "^10.17.0", + "@types/semver": "^7.3.3", + "azure-pipelines-task-lib": "^3.1.0", + "semver": "^7.3.2" + } + }, + "node_modules/azure-pipelines-tasks-java-common/node_modules/@types/node": { + "version": "10.17.60", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + }, + "node_modules/azure-pipelines-tasks-java-common/node_modules/azure-pipelines-task-lib": { + "version": "3.4.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/azure-pipelines-task-lib/-/azure-pipelines-task-lib-3.4.0.tgz", + "integrity": "sha512-3eC4OTFw+7xD7A2aUhxR/j+jRlTI+vVfS0CGxt1pCLs4c/KmY0tQWgbqjD3157kmiucWxELBvgZHaD2gCBe9fg==", + "license": "MIT", + "dependencies": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + } + }, + "node_modules/azure-pipelines-tasks-java-common/node_modules/azure-pipelines-task-lib/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/azure-pipelines-tasks-java-common/node_modules/minimatch": { + "version": "3.0.5", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/azure-pipelines-tasks-java-common/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/debug": { + "version": "4.3.6", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "2.5.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/get-intrinsic": { + "version": "1.1.3", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-port": { + "version": "3.2.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/http-basic": { + "version": "8.1.3", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/http-basic/-/http-basic-8.1.3.tgz", + "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "dependencies": { + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/http-response-object": { + "version": "3.0.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "dependencies": { + "@types/node": "^10.0.3" + } + }, + "node_modules/http-response-object/node_modules/@types/node": { + "version": "10.17.60", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-core-module": { + "version": "2.10.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mockery": { + "version": "2.1.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/mockery/-/mockery-2.1.0.tgz", + "integrity": "sha512-9VkOmxKlWXoDO/h1jDZaS4lH33aWfRiJiNT/tKj+8OGzrcFDLo8d0syGdbsc3Bc4GvRXPb+NMMvojotmuGJTvA==" + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/nodejs-file-downloader": { + "version": "4.13.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/nodejs-file-downloader/-/nodejs-file-downloader-4.13.0.tgz", + "integrity": "sha512-nI2fKnmJWWFZF6SgMPe1iBodKhfpztLKJTtCtNYGhm/9QXmWa/Pk9Sv00qHgzEvNLe1x7hjGDRor7gcm/ChaIQ==", + "dependencies": { + "follow-redirects": "^1.15.6", + "https-proxy-agent": "^5.0.0", + "mime-types": "^2.1.27", + "sanitize-filename": "^1.6.3" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/parse-cache-control": { + "version": "1.0.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==" + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/promise": { + "version": "8.2.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/promise/-/promise-8.2.0.tgz", + "integrity": "sha512-+CMAlLHqwRYwBMXKCP+o8ns7DN+xHDUiI+0nArsiJ9y+kJVPLFxEaSw6Ha9s9H0tftxg2Yzl25wqj9G7m5wLZg==", + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/sanitize-filename": { + "version": "1.6.3", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "dependencies": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sync-request": { + "version": "6.1.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/sync-request/-/sync-request-6.1.0.tgz", + "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "dependencies": { + "http-response-object": "^3.0.1", + "sync-rpc": "^1.2.1", + "then-request": "^6.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/sync-rpc": { + "version": "1.3.6", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "dependencies": { + "get-port": "^3.1.0" + } + }, + "node_modules/then-request": { + "version": "6.0.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/then-request/-/then-request-6.0.2.tgz", + "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "dependencies": { + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/node": "^8.0.0", + "@types/qs": "^6.2.31", + "caseless": "~0.12.0", + "concat-stream": "^1.6.0", + "form-data": "^2.2.0", + "http-basic": "^8.1.1", + "http-response-object": "^3.0.1", + "promise": "^8.0.0", + "qs": "^6.4.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/then-request/node_modules/@types/node": { + "version": "8.10.66", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" + }, + "node_modules/truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "dependencies": { + "utf8-byte-length": "^1.0.1" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "node_modules/typescript": { + "version": "5.1.6", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/typescript/-/typescript-5.1.6.tgz", + "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/utf8-byte-length": { + "version": "1.0.5", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz", + "integrity": "sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/xml2js": { + "version": "0.6.2", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/xml2js/-/xml2js-0.6.2.tgz", + "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://pkgs.dev.azure.com/mseng/PipelineTools/_packaging/PipelineTools_PublicPackages/npm/registry/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "license": "MIT", + "engines": { + "node": ">=4.0" + } + } + } +} diff --git a/_generated/ANTV2_Node20/package.json b/_generated/ANTV2_Node20/package.json new file mode 100644 index 000000000000..b0a43dc2c722 --- /dev/null +++ b/_generated/ANTV2_Node20/package.json @@ -0,0 +1,19 @@ +{ + "name": "Ant", + "author": "Microsoft Corporation", + "description": "Build with Apache Ant", + "license": "MIT", + "bugs": { + "url": "https://github.com/Microsoft/vso-agent-tasks/issues" + }, + "dependencies": { + "@types/mocha": "^5.2.7", + "@types/node": "^20.3.1", + "azure-pipelines-task-lib": "^4.15.0", + "azure-pipelines-tasks-java-common": "2.198.1", + "xml2js": "^0.6.2" + }, + "devDependencies": { + "typescript": "5.1.6" + } +} diff --git a/_generated/ANTV2_Node20/task.json b/_generated/ANTV2_Node20/task.json new file mode 100644 index 000000000000..b38a0fca8ee9 --- /dev/null +++ b/_generated/ANTV2_Node20/task.json @@ -0,0 +1,202 @@ +{ + "id": "3A6A2D63-F2B2-4E93-BCF9-0CBE22F5DC26", + "name": "Ant", + "friendlyName": "Ant", + "description": "Build with Apache Ant", + "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/build/ant", + "helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?LinkID=613718) or [see the Ant documentation](http://ant.apache.org/)", + "category": "Build", + "visibility": [ + "Build", + "Release" + ], + "runsOn": [ + "Agent", + "DeploymentGroup" + ], + "author": "Microsoft Corporation", + "version": { + "Major": 2, + "Minor": 249, + "Patch": 0 + }, + "demands": [ + "ant" + ], + "minimumAgentVersion": "1.89.0", + "groups": [ + { + "name": "junitTestResults", + "displayName": "JUnit Test Results", + "isExpanded": true + }, + { + "name": "advanced", + "displayName": "Advanced", + "isExpanded": false + } + ], + "instanceNameFormat": "Ant $(options) $(antBuildFile)", + "inputs": [ + { + "name": "antBuildFile", + "aliases": [ + "buildFile" + ], + "type": "filePath", + "label": "Ant build file", + "defaultValue": "build.xml", + "required": true, + "helpMarkDown": "Relative path from the repository root to the Ant build file." + }, + { + "name": "options", + "type": "string", + "label": "Options", + "defaultValue": "", + "required": false, + "helpMarkDown": "Provide any options to pass to the Ant command line. You can provide your own properties (for example, ***-DmyProperty=myPropertyValue***) and also use built-in variables (for example, ***-DcollectionId=$(system.collectionId)***). Alternatively, the built-in variables are already set as environment variables during the build and can be passed directly (for example, ***-DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%***)." + }, + { + "name": "targets", + "type": "string", + "label": "Target(s)", + "defaultValue": "", + "required": false, + "helpMarkDown": "An optional, space-separated list of targets to build. If not specified, the `default` target will be used. If no `default` target is defined, Ant 1.6.0 and later will build all top-level tasks." + }, + { + "name": "publishJUnitResults", + "type": "boolean", + "label": "Publish to Azure Pipelines", + "required": true, + "defaultValue": "true", + "groupName": "junitTestResults", + "helpMarkDown": "Select this option to publish JUnit test results produced by the Ant build to Azure Pipelines. Each test results file matching `Test Results Files` will be published as a test run in Azure Pipelines." + }, + { + "name": "testResultsFiles", + "type": "filePath", + "label": "Test results files", + "defaultValue": "**/TEST-*.xml", + "required": true, + "groupName": "junitTestResults", + "helpMarkDown": "Test results files path. Wildcards can be used ([more information](https://go.microsoft.com/fwlink/?linkid=856077)). For example, `**/TEST-*.xml` for all XML files whose name starts with TEST-.", + "visibleRule": "publishJUnitResults = true" + }, + { + "name": "testRunTitle", + "type": "string", + "label": "Test run title", + "defaultValue": "", + "required": false, + "groupName": "junitTestResults", + "helpMarkDown": "Provide a name for the test run.", + "visibleRule": "publishJUnitResults = true" + }, + { + "name": "antHomeUserInputPath", + "aliases": [ + "antHomeDirectory" + ], + "type": "string", + "label": "Set ANT_HOME path", + "required": false, + "groupName": "advanced", + "defaultValue": "", + "helpMarkDown": "If set, overrides any existing ANT_HOME environment variable with the given path." + }, + { + "name": "javaHomeSelection", + "aliases": [ + "javaHomeOption" + ], + "type": "radio", + "label": "Set JAVA_HOME by", + "required": true, + "groupName": "advanced", + "defaultValue": "JDKVersion", + "helpMarkDown": "Sets JAVA_HOME either by selecting a JDK version that will be discovered during builds or by manually entering a JDK path.", + "options": { + "JDKVersion": "JDK Version", + "Path": "Path" + } + }, + { + "name": "jdkVersion", + "aliases": [ + "jdkVersionOption" + ], + "type": "pickList", + "label": "JDK version", + "required": false, + "groupName": "advanced", + "defaultValue": "default", + "helpMarkDown": "Will attempt to discover the path to the selected JDK version and set JAVA_HOME accordingly.", + "visibleRule": "javaHomeSelection = JDKVersion", + "options": { + "default": "default", + "1.11": "JDK 11", + "1.10": "JDK 10 (out of support)", + "1.9": "JDK 9 (out of support)", + "1.8": "JDK 8", + "1.7": "JDK 7", + "1.6": "JDK 6 (out of support)" + } + }, + { + "name": "jdkUserInputPath", + "aliases": [ + "jdkUserInputDirectory" + ], + "type": "string", + "label": "JDK path", + "required": true, + "groupName": "advanced", + "defaultValue": "", + "helpMarkDown": "Sets JAVA_HOME to the given path.", + "visibleRule": "javaHomeSelection = Path" + }, + { + "name": "jdkArchitecture", + "aliases": [ + "jdkArchitectureOption" + ], + "type": "pickList", + "label": "JDK architecture", + "defaultValue": "x64", + "required": false, + "helpMarkDown": "Optionally supply the architecture (x86, x64) of the JDK.", + "visibleRule": "jdkVersion != default", + "groupName": "advanced", + "options": { + "x86": "x86", + "x64": "x64" + } + } + ], + "execution": { + "Node10": { + "target": "anttask.js", + "argumentFormat": "" + }, + "Node16": { + "target": "anttask.js", + "argumentFormat": "" + }, + "Node20_1": { + "target": "anttask.js", + "argumentFormat": "" + } + }, + "messages": { + "LocateJVMBasedOnVersionAndArch": "Locate JAVA_HOME for Java %s %s", + "UnsupportedJdkWarning": "JDK 9 and JDK 10 are out of support. Please switch to a later version in your project and pipeline. Attempting to build with JDK 11...", + "FailedToLocateSpecifiedJVM": "Failed to find the specified JDK version. Please ensure the specified JDK version is installed on the agent and the environment variable '%s' exists and is set to the location of a corresponding JDK or use the [Java Tool Installer](https://go.microsoft.com/fwlink/?linkid=875287) task to install the desired JDK.", + "NoTestResults": "No test result files matching %s were found, so publishing JUnit test results is being skipped." + }, + "_buildConfigMapping": { + "Default": "2.248.0", + "Node20-225": "2.249.0" + } +} \ No newline at end of file diff --git a/_generated/ANTV2_Node20/task.loc.json b/_generated/ANTV2_Node20/task.loc.json new file mode 100644 index 000000000000..6aad1448ae0f --- /dev/null +++ b/_generated/ANTV2_Node20/task.loc.json @@ -0,0 +1,202 @@ +{ + "id": "3A6A2D63-F2B2-4E93-BCF9-0CBE22F5DC26", + "name": "Ant", + "friendlyName": "ms-resource:loc.friendlyName", + "description": "ms-resource:loc.description", + "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/build/ant", + "helpMarkDown": "ms-resource:loc.helpMarkDown", + "category": "Build", + "visibility": [ + "Build", + "Release" + ], + "runsOn": [ + "Agent", + "DeploymentGroup" + ], + "author": "Microsoft Corporation", + "version": { + "Major": 2, + "Minor": 249, + "Patch": 0 + }, + "demands": [ + "ant" + ], + "minimumAgentVersion": "1.89.0", + "groups": [ + { + "name": "junitTestResults", + "displayName": "ms-resource:loc.group.displayName.junitTestResults", + "isExpanded": true + }, + { + "name": "advanced", + "displayName": "ms-resource:loc.group.displayName.advanced", + "isExpanded": false + } + ], + "instanceNameFormat": "ms-resource:loc.instanceNameFormat", + "inputs": [ + { + "name": "antBuildFile", + "aliases": [ + "buildFile" + ], + "type": "filePath", + "label": "ms-resource:loc.input.label.antBuildFile", + "defaultValue": "build.xml", + "required": true, + "helpMarkDown": "ms-resource:loc.input.help.antBuildFile" + }, + { + "name": "options", + "type": "string", + "label": "ms-resource:loc.input.label.options", + "defaultValue": "", + "required": false, + "helpMarkDown": "ms-resource:loc.input.help.options" + }, + { + "name": "targets", + "type": "string", + "label": "ms-resource:loc.input.label.targets", + "defaultValue": "", + "required": false, + "helpMarkDown": "ms-resource:loc.input.help.targets" + }, + { + "name": "publishJUnitResults", + "type": "boolean", + "label": "ms-resource:loc.input.label.publishJUnitResults", + "required": true, + "defaultValue": "true", + "groupName": "junitTestResults", + "helpMarkDown": "ms-resource:loc.input.help.publishJUnitResults" + }, + { + "name": "testResultsFiles", + "type": "filePath", + "label": "ms-resource:loc.input.label.testResultsFiles", + "defaultValue": "**/TEST-*.xml", + "required": true, + "groupName": "junitTestResults", + "helpMarkDown": "ms-resource:loc.input.help.testResultsFiles", + "visibleRule": "publishJUnitResults = true" + }, + { + "name": "testRunTitle", + "type": "string", + "label": "ms-resource:loc.input.label.testRunTitle", + "defaultValue": "", + "required": false, + "groupName": "junitTestResults", + "helpMarkDown": "ms-resource:loc.input.help.testRunTitle", + "visibleRule": "publishJUnitResults = true" + }, + { + "name": "antHomeUserInputPath", + "aliases": [ + "antHomeDirectory" + ], + "type": "string", + "label": "ms-resource:loc.input.label.antHomeUserInputPath", + "required": false, + "groupName": "advanced", + "defaultValue": "", + "helpMarkDown": "ms-resource:loc.input.help.antHomeUserInputPath" + }, + { + "name": "javaHomeSelection", + "aliases": [ + "javaHomeOption" + ], + "type": "radio", + "label": "ms-resource:loc.input.label.javaHomeSelection", + "required": true, + "groupName": "advanced", + "defaultValue": "JDKVersion", + "helpMarkDown": "ms-resource:loc.input.help.javaHomeSelection", + "options": { + "JDKVersion": "JDK Version", + "Path": "Path" + } + }, + { + "name": "jdkVersion", + "aliases": [ + "jdkVersionOption" + ], + "type": "pickList", + "label": "ms-resource:loc.input.label.jdkVersion", + "required": false, + "groupName": "advanced", + "defaultValue": "default", + "helpMarkDown": "ms-resource:loc.input.help.jdkVersion", + "visibleRule": "javaHomeSelection = JDKVersion", + "options": { + "default": "default", + "1.11": "JDK 11", + "1.10": "JDK 10 (out of support)", + "1.9": "JDK 9 (out of support)", + "1.8": "JDK 8", + "1.7": "JDK 7", + "1.6": "JDK 6 (out of support)" + } + }, + { + "name": "jdkUserInputPath", + "aliases": [ + "jdkUserInputDirectory" + ], + "type": "string", + "label": "ms-resource:loc.input.label.jdkUserInputPath", + "required": true, + "groupName": "advanced", + "defaultValue": "", + "helpMarkDown": "ms-resource:loc.input.help.jdkUserInputPath", + "visibleRule": "javaHomeSelection = Path" + }, + { + "name": "jdkArchitecture", + "aliases": [ + "jdkArchitectureOption" + ], + "type": "pickList", + "label": "ms-resource:loc.input.label.jdkArchitecture", + "defaultValue": "x64", + "required": false, + "helpMarkDown": "ms-resource:loc.input.help.jdkArchitecture", + "visibleRule": "jdkVersion != default", + "groupName": "advanced", + "options": { + "x86": "x86", + "x64": "x64" + } + } + ], + "execution": { + "Node10": { + "target": "anttask.js", + "argumentFormat": "" + }, + "Node16": { + "target": "anttask.js", + "argumentFormat": "" + }, + "Node20_1": { + "target": "anttask.js", + "argumentFormat": "" + } + }, + "messages": { + "LocateJVMBasedOnVersionAndArch": "ms-resource:loc.messages.LocateJVMBasedOnVersionAndArch", + "UnsupportedJdkWarning": "ms-resource:loc.messages.UnsupportedJdkWarning", + "FailedToLocateSpecifiedJVM": "ms-resource:loc.messages.FailedToLocateSpecifiedJVM", + "NoTestResults": "ms-resource:loc.messages.NoTestResults" + }, + "_buildConfigMapping": { + "Default": "2.248.0", + "Node20-225": "2.249.0" + } +} \ No newline at end of file diff --git a/_generated/ANTV2_Node20/tsconfig.json b/_generated/ANTV2_Node20/tsconfig.json new file mode 100644 index 000000000000..79a868c8d1e3 --- /dev/null +++ b/_generated/ANTV2_Node20/tsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "commonjs" + }, + "exclude": [ + "node_modules" + ] +} \ No newline at end of file