From 274bab9d9257ed8965c7b2e17c1f0f10fd625879 Mon Sep 17 00:00:00 2001 From: Finbar Ryan Date: Tue, 26 Jul 2022 15:43:11 +0100 Subject: [PATCH] Users/finvamp1/functions appv2 (#16632) * Created new V2 Release * fixed the Guid and the Task version number * Updates after Build * Changing version of Run From Package for Linux Elastic Premium. --- Tasks/AzureFunctionAppV2/README.md | 100 + .../resources.resjson/de-DE/resources.resjson | 189 ++ .../resources.resjson/en-US/resources.resjson | 178 ++ .../resources.resjson/es-ES/resources.resjson | 189 ++ .../resources.resjson/fr-FR/resources.resjson | 189 ++ .../resources.resjson/it-IT/resources.resjson | 189 ++ .../resources.resjson/ja-JP/resources.resjson | 189 ++ .../resources.resjson/ko-KR/resources.resjson | 189 ++ .../resources.resjson/ru-RU/resources.resjson | 189 ++ .../resources.resjson/zh-CN/resources.resjson | 189 ++ .../resources.resjson/zh-TW/resources.resjson | 189 ++ .../AzureFunctionAppV2/ThirdPartyNotices.txt | 2248 +++++++++++++++++ .../azurermwebappdeployment.ts | 39 + .../AzureRmWebAppDeploymentProvider.ts | 59 + .../BuiltInLinuxWebAppDeploymentProvider.ts | 111 + .../ConsumptionWebAppDeploymentProvider.ts | 164 ++ .../deploymentProvider/DeploymentFactory.ts | 64 + .../IWebAppDeploymentProvider.ts | 5 + .../WindowsWebAppRunFromZipProvider.ts | 60 + .../WindowsWebAppZipDeployProvider.ts | 59 + Tasks/AzureFunctionAppV2/icon.png | Bin 0 -> 1373 bytes Tasks/AzureFunctionAppV2/icon.svg | 12 + Tasks/AzureFunctionAppV2/make.json | 11 + Tasks/AzureFunctionAppV2/package-lock.json | 1373 ++++++++++ Tasks/AzureFunctionAppV2/package.json | 33 + Tasks/AzureFunctionAppV2/task.json | 357 +++ Tasks/AzureFunctionAppV2/task.loc.json | 357 +++ Tasks/AzureFunctionAppV2/taskparameters.ts | 117 + Tasks/AzureFunctionAppV2/tsconfig.json | 6 + 29 files changed, 7054 insertions(+) create mode 100644 Tasks/AzureFunctionAppV2/README.md create mode 100644 Tasks/AzureFunctionAppV2/Strings/resources.resjson/de-DE/resources.resjson create mode 100644 Tasks/AzureFunctionAppV2/Strings/resources.resjson/en-US/resources.resjson create mode 100644 Tasks/AzureFunctionAppV2/Strings/resources.resjson/es-ES/resources.resjson create mode 100644 Tasks/AzureFunctionAppV2/Strings/resources.resjson/fr-FR/resources.resjson create mode 100644 Tasks/AzureFunctionAppV2/Strings/resources.resjson/it-IT/resources.resjson create mode 100644 Tasks/AzureFunctionAppV2/Strings/resources.resjson/ja-JP/resources.resjson create mode 100644 Tasks/AzureFunctionAppV2/Strings/resources.resjson/ko-KR/resources.resjson create mode 100644 Tasks/AzureFunctionAppV2/Strings/resources.resjson/ru-RU/resources.resjson create mode 100644 Tasks/AzureFunctionAppV2/Strings/resources.resjson/zh-CN/resources.resjson create mode 100644 Tasks/AzureFunctionAppV2/Strings/resources.resjson/zh-TW/resources.resjson create mode 100644 Tasks/AzureFunctionAppV2/ThirdPartyNotices.txt create mode 100644 Tasks/AzureFunctionAppV2/azurermwebappdeployment.ts create mode 100644 Tasks/AzureFunctionAppV2/deploymentProvider/AzureRmWebAppDeploymentProvider.ts create mode 100644 Tasks/AzureFunctionAppV2/deploymentProvider/BuiltInLinuxWebAppDeploymentProvider.ts create mode 100644 Tasks/AzureFunctionAppV2/deploymentProvider/ConsumptionWebAppDeploymentProvider.ts create mode 100644 Tasks/AzureFunctionAppV2/deploymentProvider/DeploymentFactory.ts create mode 100644 Tasks/AzureFunctionAppV2/deploymentProvider/IWebAppDeploymentProvider.ts create mode 100644 Tasks/AzureFunctionAppV2/deploymentProvider/WindowsWebAppRunFromZipProvider.ts create mode 100644 Tasks/AzureFunctionAppV2/deploymentProvider/WindowsWebAppZipDeployProvider.ts create mode 100644 Tasks/AzureFunctionAppV2/icon.png create mode 100644 Tasks/AzureFunctionAppV2/icon.svg create mode 100644 Tasks/AzureFunctionAppV2/make.json create mode 100644 Tasks/AzureFunctionAppV2/package-lock.json create mode 100644 Tasks/AzureFunctionAppV2/package.json create mode 100644 Tasks/AzureFunctionAppV2/task.json create mode 100644 Tasks/AzureFunctionAppV2/task.loc.json create mode 100644 Tasks/AzureFunctionAppV2/taskparameters.ts create mode 100644 Tasks/AzureFunctionAppV2/tsconfig.json diff --git a/Tasks/AzureFunctionAppV2/README.md b/Tasks/AzureFunctionAppV2/README.md new file mode 100644 index 000000000000..759c190c9303 --- /dev/null +++ b/Tasks/AzureFunctionAppV2/README.md @@ -0,0 +1,100 @@ +# Azure Function Deployment: ARM + +## Overview + +The Azure Function Deployment task is used to update Azure Functions to deploy [Functions](https://docs.microsoft.com/en-us/azure/azure-functions/) to Azure. The task works on cross platform Azure Pipelines agents running Windows, Linux or Mac and uses the underlying deployment technologies of RunFromPackage, Zip Deploy and [Kudu REST APIs](https://github.com/projectkudu/kudu/wiki/REST-API). + +The task works for the Azure Functions [Supported Languages](https://docs.microsoft.com/en-us/azure/azure-functions/supported-languages). + +## Contact Information + +Please report a problem at [Developer Community Forum](https://developercommunity.visualstudio.com/spaces/21/index.html) if you are facing problems in making this task work. You can also share feedback about the task like, what more functionality should be added to the task, what other tasks you would like to have, at the same place. + +## Pre-requisites for the task + +The following pre-requisites need to be setup in the target machine(s) for the task to work properly. + +##### Azure Function + +The task is used to deploy an Auzre Functions project to an existing Azure Function. The Azure Function app should exist prior to running the task. The Azure Function App can be created from the [Azure portal](https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-function-app-portal) . Alternatively, the [Azure PowerShell task](https://github.com/Microsoft/vsts-tasks/tree/master/Tasks/AzurePowerShell) can be used to run [AzureRM PowerShell scripts](https://msdn.microsoft.com/en-us/library/mt619237.aspx) to provision and configure the Azure Function app. + +The task can be used to deploy [Azure Functions](https://azure.microsoft.com/en-in/services/functions/) (Windows/Linux). + +##### Azure Subscription + +To deploy to Azure, an Azure subscription has to be linked to Team Foundation Server or to Azure Pipelines using the Services tab in the Account Administration section. Add the Azure subscription to use in the Build or Release Management definition by opening the Account Administration screen (gear icon on the top-right of the screen) and then click on the Services Tab. + +Create the [ARM](https://azure.microsoft.com/en-in/documentation/articles/resource-group-overview/) service endpoint, use **'Azure Resource Manager'** endpoint type, for more details follow the steps listed in the link [here](https://go.microsoft.com/fwlink/?LinkID=623000&clcid=0x409). + +The task does not work with the Azure Classic service endpoint and it will not list these connections in the parameters in the task. + +## Deployment + +Several deployment methods are available in this task. To change the deployment option, expand Additional Deployment Options and enable Select deployment method to choose from additional package-based deployment options. + +Based on the type of Azure App Service and Azure Pipelines agent, the task chooses a suitable deployment technology. The different deployment technologies used by the task are: + +* *Kudu REST APIs* + +* *Zip Deploy* + +* *RunFromPackage* + +By default the task tries to select the appropriate deployment technology given the input package, app service type and agent OS. + +* When post deployment script is provided, use Zip Deploy +* When the App Service type is Web App on Linux App, use Zip Deploy +* If War file is provided, use War Deploy +* If Jar file is provided, use Run From Zip +* For all others, use Run From Package (via Zip Deploy) + +On non-Windows agent (for any App service type), the task relies on [Kudu REST APIs](https://github.com/projectkudu/kudu/wiki/REST-API) to deploy the Web App. + + +### [Kudu REST APIs](https://github.com/projectkudu/kudu/wiki/REST-API) +Works on a Windows as well as Linux automation agent when the target is an Azure Function app on Windows or an Azure Function App on Linux (built-in source). The task uses Kudu to copy over files to the Azure Functions App. + +### Zip Deploy +Creates a .zip deployment package of the chosen Package or folder and deploys the file contents to the wwwroot folder of the App Service name function app in Azure. This option overwrites all existing contents in the wwwroot folder. For more information, see [Zip deployment for Azure Functions](https://docs.microsoft.com/azure/azure-functions/deployment-zip-push). + +### RunFromPackage +Creates the same deployment package as Zip Deploy. However, instead of deploying files to the wwwroot folder, the entire package is mounted by the Functions runtime. With this option, files in the wwwroot folder become read-only. For more information, see [Run your Azure Functions from a package file](https://docs.microsoft.com/azure/azure-functions/run-functions-from-deployment-package). + +### Parameters of the task +The task is used to deploy a Web project to an existing Azure Function. The mandatory fields are highlighted with a *. + +* **Azure Subscription\*:** Select the AzureRM Subscription. If none exists, then click on the **Manage** link, to navigate to the Services tab in the Administrators panel. In the tab click on **New Service Endpoint** and select **Azure Resource Manager** from the dropdown. + +* **App type\*:** Select the Azure Function type. The different app types supported are Function App on Windows or Function App on Linux. + +* **Azure Function App Name\*:** Select the name of an existing Azure Function App. Enter the name of the Function App if it was provisioned dynamically using the [Azure PowerShell task](https://github.com/Microsoft/vsts-tasks/tree/master/Tasks/AzurePowerShell) and [AzureRM PowerShell scripts](https://msdn.microsoft.com/en-us/library/mt619237.aspx). + +* **Deploy to Slot:** Select the option to deploy to an existing slot other than the Production slot. Do not select this option if the Web project is being deployed to the Production slot. The Function App itself is the Production slot. + +* **Resource Group:** Select the Azure Resource Group that contains the Azure Function App specified above. Enter the name of the Azure Resource Group if has been dynamically provisioned using [Azure Resource Group Deployment task](https://github.com/Microsoft/vsts-tasks/tree/master/Tasks/DeployAzureResourceGroup) or [Azure PowerShell task](https://github.com/Microsoft/vsts-tasks/tree/master/Tasks/AzurePowerShell). This is a required parameter if the option to Deploy to Slot has been selected. + +* **Slot:** Select the Slot to deploy the Function project to. Enter the name of the Slot if has been dynamically provisioned using [Azure Resource Group Deployment task](https://github.com/Microsoft/vsts-tasks/tree/master/Tasks/DeployAzureResourceGroup) or [Azure PowerShell task](https://github.com/Microsoft/vsts-tasks/tree/master/Tasks/AzurePowerShell). This is a required parameter if the option to Deploy to Slot has been selected. + +* **Package or Folder\*:** Location of the Function App zip package or folder on the automation agent or on a UNC path accessible to the automation agent like, \\\\BudgetIT\\Web\\Deploy\\Fabrikam.zip. Predefined system variables and wild cards like, $(System.DefaultWorkingDirectory)\\\***.zip can be also used here. + +* **Select deployment method:** Select the option to choose from auto, zipDeploy and runFromPackage. Default value is Auto-detect where the task tries to select the appropriate deployment technology given the input package, app service type and agent OS. + +* **Runtime Stack:** +Function App on Linux offers you an option to configure App deployment with a built-in platform image (Function App on Linux). You will see this parameter only when you selected 'Function App on Linux' in the App type selection option in the task. + +For App Type **Function on Linux** you need to provide the following details: +* *Runtime stack:* Select the framework and version your web app will run on. + +* *Application and Configuration Settings* + +**App settings**: [App settings](https://docs.microsoft.com/en-us/azure/app-service/web-sites-configure#app-settings) contains name/value pairs that your web app will load on start up. Edit web app application settings by following the syntax '-key value'. Value containing spaces should be enclosed in double quotes. +>Example : -Port 5000 -RequestTimeout 5000 +>-WEBSITE_TIME_ZONE "Eastern Standard Time" + + + +### FAQ +* To ignore SSL error set a Variable of name VSTS_ARM_REST_IGNORE_SSL_ERRORS with value : true in the release definition. +* The task works with the [Azure Resource Manager APIs](https://msdn.microsoft.com/en-us/library/azure/dn790568.aspx) only. +* For avoiding deployment failure with error code ERROR_FILE_IN_USE we recommend defaulting to using the Run From Package option [Run your functions from a package file in Azure](https://docs.microsoft.com/en-us/azure/azure-functions/run-functions-from-deployment-package). For zero downtime deployment use slot swap. + diff --git a/Tasks/AzureFunctionAppV2/Strings/resources.resjson/de-DE/resources.resjson b/Tasks/AzureFunctionAppV2/Strings/resources.resjson/de-DE/resources.resjson new file mode 100644 index 000000000000..edfc6153313d --- /dev/null +++ b/Tasks/AzureFunctionAppV2/Strings/resources.resjson/de-DE/resources.resjson @@ -0,0 +1,189 @@ +{ + "loc.friendlyName": "Azure Functions", + "loc.helpMarkDown": "[Weitere Informationen zu dieser Aufgabe](https://aka.ms/azurefunctiondeployreadme)", + "loc.description": "Funktions-App mit .NET, Python, JavaScript, PowerShell, Java-basierten Webanwendungen aktualisieren", + "loc.instanceNameFormat": "Azure-Funktions-App bereitstellen: $(appName)", + "loc.group.displayName.AdditionalDeploymentOptions": "Zusätzliche Bereitstellungsoptionen", + "loc.group.displayName.ApplicationAndConfigurationSettings": "Anwendungs- und Konfigurationseinstellungen", + "loc.input.label.azureSubscription": "Azure-Abonnement", + "loc.input.help.azureSubscription": "Wählen Sie das Azure Resource Manager-Abonnement für die Bereitstellung aus.", + "loc.input.label.appType": "App-Typ", + "loc.input.label.appName": "App-Name", + "loc.input.help.appName": "Geben Sie den Namen eines vorhandenen Azure App Service ein, oder wählen Sie ihn aus. Es werden nur App-Dienste für den ausgewählten App-Typ angezeigt.", + "loc.input.label.deployToSlotOrASE": "In Slot oder App Service-Umgebung bereitstellen", + "loc.input.help.deployToSlotOrASE": "Wählen Sie die Option für die Bereitstellung in einem vorhandenen Bereitstellungsslot oder in der Azure App Service-Umgebung.
Für beide Ziele benötigt die Aufgabe den Ressourcengruppennamen.
Falls als Bereitstellungsziel ein Slot verwendet wird, erfolgt die Bereitstellung standardmäßig im Produktionsslot. Auch jeder andere vorhandene Slotname kann angegeben werden.
Falls als Bereitstellungsziel eine Azure App Service-Umgebung verwendet wird, behalten Sie den Slotnamen \"production\" bei, und geben Sie nur den Namen der Ressourcengruppe an.", + "loc.input.label.resourceGroupName": "Ressourcengruppe", + "loc.input.help.resourceGroupName": "Der Ressourcengruppenname ist erforderlich, wenn als Bereitstellungsziel ein Bereitstellungsslot oder eine App Service-Umgebung verwendet wird.
Geben Sie die Azure-Ressourcengruppe mit der oben angegebenen Azure App Service-Instanz ein, oder wählen Sie sie aus.", + "loc.input.label.slotName": "Slot", + "loc.input.help.slotName": "Geben Sie einen anderen vorhandenen Slot als den Produktionsslot ein, oder wählen Sie ihn aus.", + "loc.input.label.package": "Paket oder Ordner", + "loc.input.help.package": "Dateipfad zum Paket oder zu einem Ordner mit den durch MSBuild generierten App Service-Inhalten oder zu einer komprimierten ZIP-oder WAR-Datei.
Variablen ([Build](https://docs.microsoft.com/vsts/pipelines/build/variables) | [Release](https://docs.microsoft.com/vsts/pipelines/release/variables#default-variables)), Platzhalter werden unterstützt.
Beispiel: \"$(System.DefaultWorkingDirectory)/\\*\\*/\\*.zip\" oder \"$(System.DefaultWorkingDirectory)/\\*\\*/\\*.war\".", + "loc.input.label.runtimeStack": "Runtimestapel", + "loc.input.help.runtimeStack": "In [diesem Dokument](https://docs.microsoft.com/azure/azure-functions/functions-versions#languages) finden Sie die unterstützten Runtimeversionen. Verwenden Sie anstelle alter Werte wie \"DOCKER|microsoft/azure-functions-*\" die neuen Werte aus der Dropdownliste.", + "loc.input.label.startUpCommand": "Startbefehl ", + "loc.input.help.startUpCommand": "Geben Sie den Startbefehl ein. Beispiel:
dotnet exec Dateiname.dll
dotnet Dateiname.dll", + "loc.input.label.customWebConfig": "Parameter der Datei \"web.config\" für Python-, Node.js-, Go- und Java-Apps generieren", + "loc.input.help.customWebConfig": "Ein Standarddatei \"web.config\" wird generiert und in Azure App Service bereitgestellt, wenn diese Datei nicht in der Anwendung vorhanden ist. Die Werte in \"web.config\" können bearbeitet werden und variieren je nach Anwendungsframework. Zum Beispiel enthält \"web.config\" für node.js-Anwendungen Werte für eine Startdatei und ein iis_node-Modul. Dieses Bearbeitungsfeature gilt nur für die generierte Datei \"web.config\". [Weitere Informationen](https://go.microsoft.com/fwlink/?linkid=843469).", + "loc.input.label.appSettings": "App-Einstellungen", + "loc.input.help.appSettings": "Bearbeiten Sie Web-App-Anwendungseinstellungen entsprechend der Syntax \"-Schlüssel Wert\". Ein Wert mit Leerzeichen muss in doppelte Anführungszeichen eingeschlossen werden.
Beispiel: -Port 5000 -RequestTimeout 5000
-WEBSITE_TIME_ZONE \"Eastern Standard Time\"", + "loc.input.label.configurationStrings": "Konfigurationseinstellungen", + "loc.input.help.configurationStrings": "Bearbeiten Sie Web-App-Konfigurationseinstellungen entsprechend der Syntax \"-Schlüssel Wert\". Ein Wert mit Leerzeichen muss in doppelte Anführungszeichen eingeschlossen werden.
Beispiel: -phpVersion 5.6 -linuxFxVersion: node|6.11", + "loc.input.label.deploymentMethod": "Bereitstellungsmethode", + "loc.input.help.deploymentMethod": "Wählen Sie die Bereitstellungsmethode für die App aus.", + "loc.messages.Invalidwebapppackageorfolderpathprovided": "Ungültiges App Service-Paket oder ungültiger App Service-Ordnerpfad angegeben: %s", + "loc.messages.SetParamFilenotfound0": "Datei zum Festlegen der Parameter nicht gefunden: %s", + "loc.messages.XDTTransformationsappliedsuccessfully": "Die XML-Transformationen wurden erfolgreich angewendet.", + "loc.messages.GotconnectiondetailsforazureRMWebApp0": "Die Dienstverbindungsdetails für Azure App Service wurden abgerufen: \"%s\"", + "loc.messages.ErrorNoSuchDeployingMethodExists": "Fehler: Keine solche Bereitstellungsmethode vorhanden.", + "loc.messages.UnabletoretrieveconnectiondetailsforazureRMWebApp": "Die Dienstverbindungsdetails für Azure App Service können nicht abgerufen werden: %s. Statuscode: %s (%s)", + "loc.messages.UnabletoretrieveResourceID": "Die Dienstverbindungsdetails für die Azure-Ressource \"%s\" konnten nicht abgerufen werden. Statuscode: %s", + "loc.messages.Successfullyupdateddeploymenthistory": "Der Bereitstellungsverlauf unter \"%s\" wurde erfolgreich aktualisiert.", + "loc.messages.Failedtoupdatedeploymenthistory": "Fehler beim Aktualisieren des Bereitstellungsverlaufs. Fehler: %s", + "loc.messages.WARNINGCannotupdatedeploymentstatusSCMendpointisnotenabledforthiswebsite": "WARNUNG: Der Bereitstellungsstatus kann nicht aktualisiert werden: Der SCM-Endpunkt ist für diese Website nicht aktiviert.", + "loc.messages.Unabletoretrievewebconfigdetails": "Die App Service-Konfigurationsdetails können nicht abgerufen werden. Statuscode: \"%s\"", + "loc.messages.Unabletoretrievewebappsettings": "Die App Service-Anwendungseinstellungen können nicht abgerufen werden. [Statuscode: %s, Fehlermeldung: %s]", + "loc.messages.Unabletoupdatewebappsettings": "Die App Service-Anwendungseinstellungen können nicht aktualisiert werden. Statuscode: \"%s\"", + "loc.messages.CannotupdatedeploymentstatusuniquedeploymentIdCannotBeRetrieved": "Der Bereitstellungsstatus kann nicht aktualisiert werden: Die eindeutige Bereitstellungs-ID kann nicht abgerufen werden.", + "loc.messages.PackageDeploymentSuccess": "Web-Paket für den App Service erfolgreich bereitgestellt.", + "loc.messages.PackageDeploymentFailed": "Fehler beim Bereitstellen des Web-Pakets für den App Service.", + "loc.messages.Runningcommand": "Befehl wird ausgeführt: %s", + "loc.messages.Deployingwebapplicationatvirtualpathandphysicalpath": "Webpaket \"%s\" wird im virtuellen Pfad (physischen Pfad) bereitgestellt: %s (%s)", + "loc.messages.Successfullydeployedpackageusingkuduserviceat": "Das Paket \"%s\" wurde unter Verwendung des Kudu-Diensts erfolgreich unter \"%s\" bereitgestellt.", + "loc.messages.Failedtodeploywebapppackageusingkuduservice": "Fehler beim Bereitstellen des App Service-Pakets mithilfe des Kudu-Diensts: %s", + "loc.messages.Unabletodeploywebappresponsecode": "Der App Service kann nicht bereitgestellt werden. Fehlercode: %s", + "loc.messages.MSDeploygeneratedpackageareonlysupportedforWindowsplatform": "Mit MSDeploy generierte Pakete werden nur für Windows-Plattformen unterstützt.", + "loc.messages.UnsupportedinstalledversionfoundforMSDeployversionshouldbeatleast3orabove": "Nicht unterstützte installierte Version %s für MSDeploy gefunden. Version 3 oder höher muss installiert sein.", + "loc.messages.UnabletofindthelocationofMSDeployfromregistryonmachineError": "Der Speicherort von MS Deploy wurde nicht in der Registrierung auf dem Computer gefunden (Fehler: %s).", + "loc.messages.Nopackagefoundwithspecifiedpattern": "Es wurde kein Paket mit dem angegebenen Muster gefunden: %s
überprüfen, ob das in der Aufgabe erwähnte Paket als Artefakt im Build oder in einer vorherigen Stage veröffentlicht und im aktuellen Auftrag heruntergeladen wurde.", + "loc.messages.MorethanonepackagematchedwithspecifiedpatternPleaserestrainthesearchpattern": "Mindestens zwei Pakete stimmten mit dem angegebenen Suchmuster überein: %s. Schränken Sie das Suchmuster ein.", + "loc.messages.Trytodeploywebappagainwithappofflineoptionselected": "Versuchen Sie, den App Service mit ausgewählter Option \"Anwendung offline schalten\" erneut bereitzustellen.", + "loc.messages.Trytodeploywebappagainwithrenamefileoptionselected": "Versuchen Sie, den App Service mit ausgewählter Option \"Gesperrte Dateien umbenennen\" erneut bereitzustellen.", + "loc.messages.NOJSONfilematchedwithspecificpattern": "Keine JSON-Datei stimmte mit dem angegebenen Muster überein: %s", + "loc.messages.Configfiledoesntexists": "Die Konfigurationsdatei \"%s\" ist nicht vorhanden.", + "loc.messages.Failedtowritetoconfigfilewitherror": "Fehler beim Schreiben in die Konfigurationsdatei \"%s\". Fehler: %s ", + "loc.messages.AppOfflineModeenabled": "Der App-Offlinemodus wurde aktiviert.", + "loc.messages.Failedtoenableappofflinemode": "Fehler beim Aktivieren des App-Offlinemodus. Statuscode: %s (%s)", + "loc.messages.AppOflineModedisabled": "Der App-Offlinemodus wurde deaktiviert.", + "loc.messages.FailedtodisableAppOfflineMode": "Fehler beim Deaktivieren des App-Offlinemodus. Statuscode: %s (%s)", + "loc.messages.CannotPerformXdtTransformationOnNonWindowsPlatform": "XML-Transformationen können auf einer Nicht-Windows-Plattform nicht ausgeführt werden.", + "loc.messages.XdtTransformationErrorWhileTransforming": "XML-Transformationsfehler beim Transformieren von \"%s\" unter Verwendung von \"%s\".", + "loc.messages.PublishusingwebdeployoptionsaresupportedonlywhenusingWindowsagent": "Eine Veröffentlichung unter Verwendung von webdeploy-Optionen wird nur unterstützt, wenn der Windows-Agent verwendet wird. ", + "loc.messages.Publishusingzipdeploynotsupportedformsbuildpackage": "Die Veröffentlichung über die ZIP Deploy-Option wird für den msBuild-Pakettyp nicht unterstützt.", + "loc.messages.Publishusingzipdeploynotsupportedforvirtualapplication": "Die Veröffentlichung über die ZIP Deploy-Option wird für virtuelle Anwendungen nicht unterstützt.", + "loc.messages.Publishusingzipdeploydoesnotsupportwarfile": "Bei der Veröffentlichung über die Optionen \"ZIP\" oder \"RunFromPackage\" wird die WAR-Dateibereitstellung nicht unterstützt.", + "loc.messages.Publishusingrunfromzipwithpostdeploymentscript": "Bei der Veröffentlichung über \"RunFromPackage\" werden Skripts nach der Bereitstellung möglicherweise nicht unterstützt, wenn diese Änderungen an wwwroot vornehmen, weil der Ordner schreibgeschützt ist.", + "loc.messages.ResourceDoesntExist": "Die Ressource \"%s\" ist nicht vorhanden. Die Ressource muss vor der Bereitstellung vorhanden sein.", + "loc.messages.EncodeNotSupported": "Erkannte Codierung der Datei \"%s\": %s. Eine Variablenersetzung wird für die Dateicodierung \"%s\" nicht unterstützt. Unterstützte Codierungen sind UTF-8 und UTF-16 LE.", + "loc.messages.UnknownFileEncodeError": "Die Codierung der Datei \"%s\" wurde nicht erkannt (typeCode: %s). Unterstützte Codierungen sind UTF-8 und UTF-16 LE.", + "loc.messages.ShortFileBufferError": "Der Dateipuffer ist zu klein, um den Codierungstyp zu erkennen: %s", + "loc.messages.FailedToUpdateAzureRMWebAppConfigDetails": "Fehler beim Aktualisieren der App Service-Konfigurationsdetails. Fehler: %s", + "loc.messages.SuccessfullyUpdatedAzureRMWebAppConfigDetails": "Die App Service-Konfigurationsdetails wurden erfolgreich aktualisiert.", + "loc.messages.RequestedURLforkuduphysicalpath": "Angeforderte URL für physischen Kudu-Pfad: %s", + "loc.messages.Physicalpathalreadyexists": "Der physische Pfad \"%s\" ist bereits vorhanden.", + "loc.messages.KuduPhysicalpathCreatedSuccessfully": "Der physische Kudu-Pfad wurde erfolgreich erstellt: %s", + "loc.messages.FailedtocreateKuduPhysicalPath": "Fehler beim Erstellen des physischen Kudu-Pfads. Fehler: %s", + "loc.messages.FailedtocheckphysicalPath": "Fehler beim Überprüfen des physischen Kudu-Pfads. Fehlercode: %s", + "loc.messages.VirtualApplicationDoesNotExist": "Die virtuelle Anwendung ist nicht vorhanden: %s", + "loc.messages.JSONParseError": "Die JSON-Datei konnte nicht analysiert werden: %s. Fehler: %s", + "loc.messages.JSONvariablesubstitutionappliedsuccessfully": "Die JSON-Variablenersetzung wurde erfolgreich angewendet.", + "loc.messages.XMLvariablesubstitutionappliedsuccessfully": "XML-Variablenersetzung erfolgreich angewendet.", + "loc.messages.failedtoUploadFileToKudu": "Datei \"%s\" kann nicht in Kudu (%s) hochgeladen werden. Statuscode: %s", + "loc.messages.failedtoUploadFileToKuduError": "Hochladen der Datei: %s auf Kudu (%s) nicht möglich. Fehler: %s", + "loc.messages.ExecuteScriptOnKudu": "Das angegebene Skript wird im Kudu-Dienst ausgeführt.", + "loc.messages.FailedToRunScriptOnKuduError": "Das Skript kann nicht im Kudu-Dienst ausgeführt werden. Fehler: %s", + "loc.messages.FailedToRunScriptOnKudu": "Ausführen des Skripts in Kudu nicht möglich: %s. Statuscode: %s", + "loc.messages.ScriptExecutionOnKuduSuccess": "Skript in Kudu erfolgreich ausgeführt.", + "loc.messages.ScriptExecutionOnKuduFailed": "Das ausgeführte Skript hat \"%s\" als Rückgabecode zurückgegeben. Fehler: %s", + "loc.messages.FailedtoDeleteFileFromKudu": "Die Datei \"%s\" kann nicht aus Kudu (%s) gelöscht werden. Statuscode: %s", + "loc.messages.FailedtoDeleteFileFromKuduError": "Löschen der Datei: %s von Kudu (%s) nicht möglich. Fehler: %s", + "loc.messages.ScriptFileNotFound": "Skriptdatei \"%s\" nicht gefunden.", + "loc.messages.InvalidScriptFile": "Ungültige Skriptdatei \"%s\" angegeben. Gültige Erweiterungen sind \".bat\" und \".cmd\" für Windows und \".sh\" für Linux.", + "loc.messages.RetryForTimeoutIssue": "Fehler beim Ausführen des Skripts mit Zeitüberschreitung. Es wird noch mal versucht.", + "loc.messages.stdoutFromScript": "Standardausgabe von Skript:", + "loc.messages.stderrFromScript": "Standardfehler von Skript:", + "loc.messages.WebConfigAlreadyExists": "web.config-Datei ist bereits vorhanden. Sie wird nicht erstellt.", + "loc.messages.SuccessfullyGeneratedWebConfig": "web.config-Datei erfolgreich erstellt.", + "loc.messages.FailedToGenerateWebConfig": "Fehler beim Erstellen von \"web.config\". %s", + "loc.messages.FailedToGetKuduFileContent": "Dateiinhalt konnte nicht abgerufen werden: %s. Statuscode: %s (%s)", + "loc.messages.FailedToGetKuduFileContentError": "Dateiinhalt konnte nicht abgerufen werden: %s. Fehler: %s", + "loc.messages.ScriptStatusTimeout": "Skriptstatus konnte aufgrund einer Zeitüberschreitung nicht abgerufen werden.", + "loc.messages.PollingForFileTimeOut": "Der Skriptstatus konnte aufgrund einer Zeitüberschreitung nicht abgerufen werden. Sie können das Zeitlimit erhöhen, indem Sie die erforderliche Minutenzahl für die Variable \"appservicedeploy.retrytimeout\" festlegen.", + "loc.messages.InvalidPollOption": "Ungültige Abrufoption angegeben: %s.", + "loc.messages.MissingAppTypeWebConfigParameters": "Das Attribut \"-appType\" fehlt in den Parametern \"Web.config\". Gültige Werte für \"-appType\" sind: \"python_Bottle\", \"python_Django\", \"python_Flask\", \"node\" und \"Go\".
Beispiel: \"-appType python_Bottle\" (ohne Anführungszeichen) im Fall von Python Bottle-Framework.", + "loc.messages.AutoDetectDjangoSettingsFailed": "Der Pfad für die Datei \"settings.py\" von DJANGO_SETTINGS_MODULE 'settings.py' wurde nicht gefunden. Überprüfen Sie, ob die Datei \"settings.py\" existiert, oder geben Sie den korrekten Pfad in der Parametereingabe \"Web.config\" im folgenden Format an: \"-DJANGO_SETTINGS_MODULE .settings\".", + "loc.messages.FailedToApplyTransformation": "Die Transformation für das angegebene Paket kann nicht angewendet werden. Führen Sie die folgenden Schritte aus.", + "loc.messages.FailedToApplyTransformationReason1": "1. Prüfen Sie, ob die Transformation für das beim Build generierte MSBuild-Paket bereits angewendet wurde. Ist dies der Fall, entfernen Sie das Tag aus allen Konfigurationen in der CSPROJ-Datei, und führen Sie den Build erneut aus. ", + "loc.messages.FailedToApplyTransformationReason2": "2. Stellen Sie sicher, dass sich die Konfigurationsdatei und die Transformationsdateien im selben Ordner im Paket befinden.", + "loc.messages.AutoParameterizationMessage": "ConnectionString-Attribute in Web.config ist standardmäßig parametrisiert. Beachten Sie, dass die Transformation keine Auswirkungen auf connectionString-Attribute hat, da der Wert bei der Bereitstellung durch Dateien vom Typ \"Parameters.xml\" oder \"SetParameters.xml\" überschrieben wird. Sie können die automatische Parametrisierung deaktivieren, indem Sie beim Erstellung des MSBuild-Pakets die Einstellung \"/p:AutoParameterizationWebConfigConnectionStrings=False\" festlegen.", + "loc.messages.UnsupportedAppType": "App-Typ \"%s\" wird beim Erstellen von \"Web.config\" nicht unterstützt. Gültige Werte für \"-appType\" sind: \"python_Bottle\", \"python_Django\", \"python_Flask\" und \"node\".", + "loc.messages.UnableToFetchAuthorityURL": "Abrufen der Autoritäts-URL nicht möglich.", + "loc.messages.UnableToFetchActiveDirectory": "Abrufen der Active Directory-Ressourcen-ID nicht möglich.", + "loc.messages.SuccessfullyUpdatedRuntimeStackAndStartupCommand": "Runtimestapel und Startbefehl erfolgreich aktualisiert.", + "loc.messages.FailedToUpdateRuntimeStackAndStartupCommand": "Fehler beim Aktualisieren des Runtimestapels und des Startbefehls. Fehler: %s.", + "loc.messages.SuccessfullyUpdatedWebAppSettings": "App-Einstellungen erfolgreich aktualisiert.", + "loc.messages.FailedToUpdateAppSettingsInConfigDetails": "Fehler beim Aktualisieren der App-Einstellungen. Fehler: %s.", + "loc.messages.UnableToGetAzureRMWebAppMetadata": "Fehler beim Abrufen von AzureRM-WebApp-Metadaten. ErrorCode: %s", + "loc.messages.UnableToUpdateAzureRMWebAppMetadata": "AzureRM-WebApp-Metadaten können nicht aktualisiert werden. Fehlercode: %s", + "loc.messages.Unabletoretrieveazureregistrycredentials": "Die Anmeldeinformationen für Azure Container Registry konnten nicht abgerufen werden. [Statuscode: %s]", + "loc.messages.UnableToReadResponseBody": "Antworttext konnte nicht gelesen werden. Fehler: %s", + "loc.messages.UnableToUpdateWebAppConfigDetails": "WebApp-Konfigurationsdetails konnten nicht aktualisiert werden. StatusCode: \"%s\"", + "loc.messages.AddingReleaseAnnotation": "Releaseanmerkung für Application Insights-Ressource \"%s\" wird hinzugefügt.", + "loc.messages.SuccessfullyAddedReleaseAnnotation": "Releaseanmerkung erfolgreich zu Application Insight hinzugefügt: %s", + "loc.messages.FailedAddingReleaseAnnotation": "Fehler beim Hinzufügen einer Releaseanmerkung. %s", + "loc.messages.RenameLockedFilesEnabled": "Umbenennung gesperrter Dateien für App Service aktiviert.", + "loc.messages.FailedToEnableRenameLockedFiles": "Fehler beim Aktivieren der Umbenennung gesperrter Dateien. Fehler: %s", + "loc.messages.WebJobsInProgressIssue": "Einige WebJobs-Instanzen werden gerade ausgeführt und verhindern, dass die Bereitstellung Dateien entfernt. Sie können die Option \"Zusätzliche Dateien am Ziel entfernen\" deaktivieren oder fortlaufende Aufträge vor der Bereitstellung beenden.", + "loc.messages.FailedToFetchKuduAppSettings": "Fehler beim Abrufen von Kudu-App-Einstellungen. Fehler: %s", + "loc.messages.FailedToCreatePath": "Fehler beim Erstellen des Pfads \"%s\" aus Kudu. Fehler: %s", + "loc.messages.FailedToDeleteFile": "Fehler beim Löschen der Datei \"%s/%s\" aus Kudu. Fehler: %s", + "loc.messages.FailedToDeleteFolder": "Fehler beim Löschen des Ordners \"%s\" aus Kudu. Fehler: %s", + "loc.messages.FailedToUploadFile": "Fehler beim Hochladen der Datei \"%s/%s\" aus Kudu. Fehler: %s", + "loc.messages.FailedToGetFileContent": "Fehler beim Abrufen des Dateiinhalts \"%s/%s\" aus Kudu. Fehler: %s", + "loc.messages.FailedToListPath": "Fehler beim Auflisten von Pfad \"%s\" aus Kudu. Fehler: %s", + "loc.messages.RetryToDeploy": "Es wird erneut versucht, das Paket bereitzustellen.", + "loc.messages.FailedToGetAppServiceDetails": "Fehler beim Abrufen der App Service-Details \"%s\". Fehler: %s", + "loc.messages.FailedToGetAppServicePublishingProfile": "Fehler beim Abrufen des Veröffentlichungsprofils für App Service \"%s\". Fehler: %s", + "loc.messages.FailedToUpdateAppServiceMetadata": "Fehler beim Aktualisieren der Metadaten für App Service \"%s\". Fehler: %s", + "loc.messages.FailedToGetAppServiceMetadata": "Fehler beim Abrufen der Metadaten für App Service \"%s\". Fehler: %s", + "loc.messages.FailedToPatchAppServiceConfiguration": "Fehler beim Patchen der Konfiguration für App Service \"%s\". Fehler: %s", + "loc.messages.FailedToUpdateAppServiceConfiguration": "Fehler beim Aktualisieren der App-Dienstkonfiguration \"%s\". Fehler: %s", + "loc.messages.FailedToGetAppServiceConfiguration": "Fehler beim Abrufen der Konfiguration für App Service \"%s\". Fehler: %s", + "loc.messages.FailedToGetAppServicePublishingCredentials": "Fehler beim Abrufen der Anmeldeinformationen für die Veröffentlichung für App Service \"%s\". Fehler: %s", + "loc.messages.FailedToGetAppServiceApplicationSettings": "Fehler beim Abrufen der Anwendungseinstellungen für App Service \"%s\". Fehler: %s", + "loc.messages.FailedToUpdateAppServiceApplicationSettings": "Fehler beim Aktualisieren der Anwendungseinstellungen für App Service \"%s\". Fehler: %s", + "loc.messages.UpdatingAppServiceConfigurationSettings": "Es wird versucht, die App Service-Konfigurationseinstellungen zu aktualisieren. Daten: %s", + "loc.messages.UpdatedAppServiceConfigurationSettings": "Die App Service-Konfigurationseinstellungen wurden aktualisiert.", + "loc.messages.UpdatedAppServiceApplicationSettings": "Die App Service-Anwendungseinstellungen und die Kudu-Anwendungseinstellungen wurden aktualisiert.", + "loc.messages.UpdatedOnlyAppServiceApplicationSettings": "Die App Service-Anwendungseinstellungen wurden aktualisiert.", + "loc.messages.MultipleResourceGroupFoundForAppService": "Mehrere Ressourcengruppen für App Service \"%s\" gefunden.", + "loc.messages.PackageDeploymentUsingZipDeployFailed": "Fehler bei der Paketbereitstellung über ZIP Deploy. Weitere Informationen finden Sie in den Protokollen.", + "loc.messages.PackageDeploymentInitiated": "Die Paketbereitstellung über ZIP Deploy wurde eingeleitet.", + "loc.messages.WarPackageDeploymentInitiated": "Die Paketbereitstellung über WAR Deploy wurde eingeleitet.", + "loc.messages.FailedToGetDeploymentLogs": "Fehler beim Abrufen von Bereitstellungsprotokollen. Fehler: %s", + "loc.messages.GoExeNameNotPresent": "Der Name der Go-EXE-Datei ist nicht vorhanden.", + "loc.messages.WarDeploymentRetry": "Die Bereitstellung der WAR-Datei wird wiederholt, weil sie zuvor nicht erfolgreich erweitert wurde.", + "loc.messages.Updatemachinetoenablesecuretlsprotocol": "Stellen Sie sicher, dass der Computer das TLS 1.2-Protokoll oder eine höhere Version verwendet. Weitere Informationen zum Aktivieren von TLS auf Ihrem Computer finden Sie unter https://aka.ms/enableTlsv2.", + "loc.messages.CouldNotFetchAccessTokenforAzureStatusCode": "Ein Zugriffstoken für Azure konnte nicht abgerufen werden. Statuscode: %s, Statusmeldung: %s", + "loc.messages.CouldNotFetchAccessTokenforMSIDueToMSINotConfiguredProperlyStatusCode": "Ein Zugriffstoken für den verwalteten Dienstprinzipal konnte nicht abgerufen werden. Konfigurieren Sie die verwaltete Dienstidentität (MSI) für den virtuellen Computer (https://aka.ms/azure-msi-docs). Statuscode: %s, Statusmeldung: %s", + "loc.messages.CouldNotFetchAccessTokenforMSIStatusCode": "Ein Zugriffstoken für den verwalteten Dienstprinzipal konnte nicht abgerufen werden. Statuscode: %s, Statusmeldung: %s", + "loc.messages.XmlParsingFailed": "Die publishProfileXML-Datei konnte nicht analysiert werden. Fehler: %s", + "loc.messages.PropertyDoesntExistPublishProfile": "Die [%s]-Eigenschaft ist im Veröffentlichungsprofil nicht vorhanden.", + "loc.messages.InvalidConnectionType": "Ungültiger Dienstverbindungstyp", + "loc.messages.InvalidImageSourceType": "Ungültiger Imagequelltyp", + "loc.messages.InvalidPublishProfile": "Die Veröffentlichungsprofildatei ist ungültig.", + "loc.messages.ASE_SSLIssueRecommendation": "Um ein Zertifikat in App Service zu verwenden, muss das Zertifikat von einer vertrauenswürdigen Zertifizierungsstelle signiert sein. Werden von Ihrer Web-App Zertifikatüberprüfungsfehler zurückgegeben, verwenden Sie wahrscheinlich ein selbstsigniertes Zertifikat. Um den Fehler zu beheben, müssen Sie in der Build- oder Releasepipeline eine Variable mit dem Namen VSTS_ARM_REST_IGNORE_SSL_ERRORS auf den Wert TRUE festlegen.", + "loc.messages.ZipDeployLogsURL": "ZIP Deploy-Protokolle können unter %s angezeigt werden.", + "loc.messages.DeployLogsURL": "Bereitstellungsprotokolle können unter %s angezeigt werden.", + "loc.messages.AppServiceApplicationURL": "URL der App Service-Anwendung: %s", + "loc.messages.ASE_WebDeploySSLIssueRecommendation": "Um ein Zertifikat in App Service zu verwenden, muss das Zertifikat von einer vertrauenswürdigen Zertifizierungsstelle signiert sein. Werden von Ihrer Web-App Zertifikatüberprüfungsfehler zurückgegeben, verwenden Sie wahrscheinlich ein selbstsigniertes Zertifikat. Um den Fehler zu beheben, müssen Sie \"-allowUntrusted\" in zusätzlichen Argumenten der Web Deploy-Option übergeben.", + "loc.messages.FailedToGetResourceID": "Fehler beim Abrufen der Ressourcen-ID für Ressourcentyp \"%s\" und Ressourcenname \"%s\". Fehler: %s", + "loc.messages.JarPathNotPresent": "Der Java-JAR-Pfad ist nicht vorhanden.", + "loc.messages.FailedToUpdateApplicationInsightsResource": "Fehler beim Aktualisieren der Application Insights-Ressource \"%s\". Fehler: %s", + "loc.messages.InvalidDockerImageName": "Ungültiger Docker Hub-Imagename angegeben.", + "loc.messages.MsBuildPackageNotSupported": "Die Bereitstellung eines mit MSBuild generierten Pakets wird nicht unterstützt. Ändern Sie das Paketformat, oder verwenden Sie die Aufgabe für die Azure App Service-Bereitstellung.", + "loc.messages.FailedToGetStorageAccountDetails": "Das der Funktions-App zugeordnete Speicherkonto wurde nicht gefunden.", + "loc.messages.FailedToSyncTriggers": "Fehler beim Synchronisieren von Triggern für die Funktions-App \"%s\". Fehler: %s", + "loc.messages.SyncingFunctionTriggers": "Die Trigger für die Funktions-App werden synchronisiert.", + "loc.messages.SyncFunctionTriggersSuccess": "Die Triggersynchronisierung für die Funktions-App wurde erfolgreich abgeschlossen.", + "loc.messages.UpdatedRunFromPackageSettings": "Die WEBSITE_RUN_FROM_PACKAGE-Anwendungseinstellung wurde auf \"%s\" aktualisiert." +} \ No newline at end of file diff --git a/Tasks/AzureFunctionAppV2/Strings/resources.resjson/en-US/resources.resjson b/Tasks/AzureFunctionAppV2/Strings/resources.resjson/en-US/resources.resjson new file mode 100644 index 000000000000..32d714ae5db5 --- /dev/null +++ b/Tasks/AzureFunctionAppV2/Strings/resources.resjson/en-US/resources.resjson @@ -0,0 +1,178 @@ +{ + "loc.friendlyName": "Azure Functions", + "loc.helpMarkDown": "[Learn more about this task](https://aka.ms/azurefunctiondeployreadme)", + "loc.description": "Update a function app with .NET, Python, JavaScript, PowerShell, Java based web applications", + "loc.instanceNameFormat": "Azure Function App Deploy: $(appName)", + "loc.releaseNotes": "What's new in version 2.*
Removed WAR Deploy Support, setting Web.Config options, and the option for the Startup command for Linux Azure Function Apps.", + "loc.group.displayName.AdditionalDeploymentOptions": "Additional Deployment Options", + "loc.group.displayName.ApplicationAndConfigurationSettings": "Application and Configuration Settings", + "loc.input.label.azureSubscription": "Azure subscription", + "loc.input.help.azureSubscription": "Select the Azure Resource Manager subscription for the deployment.", + "loc.input.label.appType": "App type", + "loc.input.label.appName": "Azure Functions App name", + "loc.input.help.appName": "Enter or Select the name of an existing Azure Functions App. The Function Apps listed will be based on the selected app type.", + "loc.input.label.deployToSlotOrASE": "Deploy to Slot or App Service Environment", + "loc.input.help.deployToSlotOrASE": "Select the option to deploy to an existing deployment slot or Azure App Service Environment.
For both the targets, the task needs Resource group name.
In case the deployment target is a slot, by default the deployment is done to the production slot. Any other existing slot name can also be provided.
In case the deployment target is an Azure App Service environment, leave the slot name as ‘production’ and just specify the Resource group name.", + "loc.input.label.resourceGroupName": "Resource group", + "loc.input.help.resourceGroupName": "The Resource group name is required when the deployment target is either a deployment slot or an App Service Environment.
Enter or Select the Azure Resource group that contains the Azure App Service specified above.", + "loc.input.label.slotName": "Slot", + "loc.input.help.slotName": "Enter or Select an existing Slot other than the Production slot.", + "loc.input.label.package": "Package or folder", + "loc.input.help.package": "File path to the package or a folder containing app service contents generated by MSBuild or a compressed zip or war file.
Variables ( [Build](https://docs.microsoft.com/vsts/pipelines/build/variables) | [Release](https://docs.microsoft.com/vsts/pipelines/release/variables#default-variables)), wildcards are supported.
For example, $(System.DefaultWorkingDirectory)/\\*\\*/\\*.zip or $(System.DefaultWorkingDirectory)/\\*\\*/\\*.war.", + "loc.input.label.runtimeStack": "Runtime stack", + "loc.input.help.runtimeStack": "Refer [this doc](https://docs.microsoft.com/azure/azure-functions/functions-versions#languages) for supported runtime versions. Old values like `DOCKER|microsoft/azure-functions-*` are deprecated, please use the new values from dropdown.", + "loc.input.label.appSettings": "App settings", + "loc.input.help.appSettings": "Edit web app application settings following the syntax -key value . Value containing spaces should be enclosed in double quotes.
Example : -Port 5000 -RequestTimeout 5000
-WEBSITE_TIME_ZONE \"Eastern Standard Time\"", + "loc.input.label.deploymentMethod": "Deployment method", + "loc.input.help.deploymentMethod": "Choose the deployment method for the app.", + "loc.messages.Invalidwebapppackageorfolderpathprovided": "Invalid App Service package or folder path provided: %s", + "loc.messages.SetParamFilenotfound0": "Set parameters file not found: %s", + "loc.messages.XDTTransformationsappliedsuccessfully": "XML Transformations applied successfully", + "loc.messages.GotconnectiondetailsforazureRMWebApp0": "Got service connection details for Azure App Service:'%s'", + "loc.messages.ErrorNoSuchDeployingMethodExists": "Error : No such deploying method exists", + "loc.messages.UnabletoretrieveconnectiondetailsforazureRMWebApp": "Unable to retrieve service connection details for Azure App Service : %s. Status Code: %s (%s)", + "loc.messages.UnabletoretrieveResourceID": "Unable to retrieve service connection details for Azure Resource:'%s'. Status Code: %s", + "loc.messages.Successfullyupdateddeploymenthistory": "Successfully updated deployment History at %s", + "loc.messages.Failedtoupdatedeploymenthistory": "Failed to update deployment history. Error: %s", + "loc.messages.WARNINGCannotupdatedeploymentstatusSCMendpointisnotenabledforthiswebsite": "WARNING : Cannot update deployment status : SCM endpoint is not enabled for this website", + "loc.messages.Unabletoretrievewebconfigdetails": "Unable to retrieve App Service configuration details. Status Code: '%s'", + "loc.messages.Unabletoretrievewebappsettings": "Unable to retrieve App Service application settings. [Status Code: '%s', Error Message: '%s']", + "loc.messages.Unabletoupdatewebappsettings": "Unable to update App service application settings. Status Code: '%s'", + "loc.messages.CannotupdatedeploymentstatusuniquedeploymentIdCannotBeRetrieved": "Cannot update deployment status : Unique Deployment ID cannot be retrieved", + "loc.messages.PackageDeploymentSuccess": "Successfully deployed web package to App Service.", + "loc.messages.PackageDeploymentFailed": "Failed to deploy web package to App Service.", + "loc.messages.Runningcommand": "Running command: %s", + "loc.messages.Deployingwebapplicationatvirtualpathandphysicalpath": "Deploying web package : %s at virtual path (physical path) : %s (%s)", + "loc.messages.Successfullydeployedpackageusingkuduserviceat": "Successfully deployed package %s using kudu service at %s", + "loc.messages.Failedtodeploywebapppackageusingkuduservice": "Failed to deploy App Service package using kudu service : %s", + "loc.messages.Unabletodeploywebappresponsecode": "Unable to deploy App Service due to error code : %s", + "loc.messages.MSDeploygeneratedpackageareonlysupportedforWindowsplatform": "MSDeploy generated packages are only supported for Windows platform.", + "loc.messages.UnsupportedinstalledversionfoundforMSDeployversionshouldbeatleast3orabove": "Unsupported installed version: %s found for MSDeploy. version should be at least 3 or above", + "loc.messages.UnabletofindthelocationofMSDeployfromregistryonmachineError": "Unable to find the location of MS Deploy from registry on machine (Error : %s)", + "loc.messages.Nopackagefoundwithspecifiedpattern": "No package found with specified pattern: %s
Check if the package mentioned in the task is published as an artifact in the build or a previous stage and downloaded in the current job.", + "loc.messages.MorethanonepackagematchedwithspecifiedpatternPleaserestrainthesearchpattern": "More than one package matched with specified pattern: %s. Please restrain the search pattern.", + "loc.messages.Trytodeploywebappagainwithappofflineoptionselected": "Try to deploy app service again with Take application offline option selected.", + "loc.messages.Trytodeploywebappagainwithrenamefileoptionselected": "Try to deploy app service again with Rename locked files option selected.", + "loc.messages.NOJSONfilematchedwithspecificpattern": "NO JSON file matched with specific pattern: %s.", + "loc.messages.Configfiledoesntexists": "Configuration file %s doesn't exist.", + "loc.messages.Failedtowritetoconfigfilewitherror": "Failed to write to config file %s with error : %s", + "loc.messages.AppOfflineModeenabled": "App offline mode enabled.", + "loc.messages.Failedtoenableappofflinemode": "Failed to enable app offline mode. Status Code: %s (%s)", + "loc.messages.AppOflineModedisabled": "App offline mode disabled.", + "loc.messages.FailedtodisableAppOfflineMode": "Failed to disable App offline mode. Status Code: %s (%s)", + "loc.messages.CannotPerformXdtTransformationOnNonWindowsPlatform": "Cannot perform XML transformations on a non-Windows platform.", + "loc.messages.XdtTransformationErrorWhileTransforming": "XML transformation error while transforming %s using %s.", + "loc.messages.PublishusingwebdeployoptionsaresupportedonlywhenusingWindowsagent": "Publish using webdeploy options are supported only when using Windows agent", + "loc.messages.Publishusingzipdeploynotsupportedformsbuildpackage": "Publish using zip deploy option is not supported for msBuild package type.", + "loc.messages.Publishusingzipdeploynotsupportedforvirtualapplication": "Publish using zip deploy option is not supported for virtual application.", + "loc.messages.Publishusingzipdeploydoesnotsupportwarfile": "Publish using zip deploy or RunFromPackage options do not support war file deployment.", + "loc.messages.Publishusingrunfromzipwithpostdeploymentscript": "Publish using RunFromPackage might not support post deployment script if it makes changes to wwwroot, since the folder is ReadOnly.", + "loc.messages.ResourceDoesntExist": "Resource '%s' doesn't exist. Resource should exist before deployment.", + "loc.messages.EncodeNotSupported": "Detected file encoding of the file %s as %s. Variable substitution is not supported with file encoding %s. Supported encodings are UTF-8 and UTF-16 LE.", + "loc.messages.UnknownFileEncodeError": "Unable to detect encoding of the file %s (typeCode: %s). Supported encodings are UTF-8 and UTF-16 LE.", + "loc.messages.ShortFileBufferError": "File buffer is too short to detect encoding type : %s", + "loc.messages.FailedToUpdateAzureRMWebAppConfigDetails": "Failed to update App Service configuration details. Error: %s", + "loc.messages.SuccessfullyUpdatedAzureRMWebAppConfigDetails": "Successfully updated App Service configuration details", + "loc.messages.RequestedURLforkuduphysicalpath": "Requested URL for kudu physical path : %s", + "loc.messages.Physicalpathalreadyexists": "Physical path '%s' already exists", + "loc.messages.KuduPhysicalpathCreatedSuccessfully": "Kudu physical path created successfully : %s", + "loc.messages.FailedtocreateKuduPhysicalPath": "Failed to create kudu physical path. Error : %s", + "loc.messages.FailedtocheckphysicalPath": "Failed to check kudu physical path. Error Code: %s", + "loc.messages.VirtualApplicationDoesNotExist": "Virtual application doesn't exists : %s", + "loc.messages.JSONParseError": "Unable to parse JSON file: %s. Error: %s", + "loc.messages.JSONvariablesubstitutionappliedsuccessfully": "JSON variable substitution applied successfully.", + "loc.messages.XMLvariablesubstitutionappliedsuccessfully": "XML variable substitution applied successfully.", + "loc.messages.failedtoUploadFileToKudu": "Unable to upload file: %s to Kudu (%s). Status Code: %s", + "loc.messages.failedtoUploadFileToKuduError": "Unable to upload file: %s to Kudu (%s). Error: %s", + "loc.messages.ExecuteScriptOnKudu": "Executing given script on Kudu service.", + "loc.messages.FailedToRunScriptOnKuduError": "Unable to run the script on Kudu Service. Error: %s", + "loc.messages.FailedToRunScriptOnKudu": "Unable to run the script on Kudu: %s. Status Code: %s", + "loc.messages.ScriptExecutionOnKuduSuccess": "Successfully executed script on Kudu.", + "loc.messages.ScriptExecutionOnKuduFailed": "Executed script returned '%s' as return code. Error: %s", + "loc.messages.FailedtoDeleteFileFromKudu": "Unable to delete file: %s from Kudu (%s). Status Code: %s", + "loc.messages.FailedtoDeleteFileFromKuduError": "Unable to delete file: %s from Kudu (%s). Error: %s", + "loc.messages.ScriptFileNotFound": "Script file '%s' not found.", + "loc.messages.InvalidScriptFile": "Invalid script file '%s' provided. Valid extensions are .bat and .cmd for windows and .sh for linux", + "loc.messages.RetryForTimeoutIssue": "Script execution failed with timeout issue. Retrying once again.", + "loc.messages.stdoutFromScript": "Standard output from script: ", + "loc.messages.stderrFromScript": "Standard error from script: ", + "loc.messages.FailedToGetKuduFileContent": "Unable to get file content: %s . Status code: %s (%s)", + "loc.messages.FailedToGetKuduFileContentError": "Unable to get file content: %s. Error: %s", + "loc.messages.ScriptStatusTimeout": "Unable to fetch script status due to timeout.", + "loc.messages.PollingForFileTimeOut": "Unable to fetch script status due to timeout. You can increase the timeout limit by setting 'appservicedeploy.retrytimeout' variable to number of minutes required.", + "loc.messages.InvalidPollOption": "Invalid polling option provided: %s.", + "loc.messages.AutoDetectDjangoSettingsFailed": "Unable to detect DJANGO_SETTINGS_MODULE 'settings.py' file path. Ensure that the 'settings.py' file exists or provide the correct path in Web.config parameter input in the following format '-DJANGO_SETTINGS_MODULE .settings'", + "loc.messages.FailedToApplyTransformation": "Unable to apply transformation for the given package. Verify the following.", + "loc.messages.FailedToApplyTransformationReason1": "1. Whether the Transformation is already applied for the MSBuild generated package during build. If yes, remove the tag for each config in the csproj file and rebuild. ", + "loc.messages.FailedToApplyTransformationReason2": "2. Ensure that the config file and transformation files are present in the same folder inside the package.", + "loc.messages.AutoParameterizationMessage": "ConnectionString attributes in Web.config is parameterized by default. Note that the transformation has no effect on connectionString attributes as the value is overridden during deployment by 'Parameters.xml or 'SetParameters.xml' files. You can disable the auto-parameterization by setting /p:AutoParameterizationWebConfigConnectionStrings=False during MSBuild package generation.", + "loc.messages.UnsupportedAppType": "App type '%s' not supported in Web.config generation. Valid values for '-appType' are: 'python_Bottle', 'python_Django', 'python_Flask' and 'node'", + "loc.messages.UnableToFetchAuthorityURL": "Unable to fetch authority URL.", + "loc.messages.UnableToFetchActiveDirectory": "Unable to fetch Active Directory resource ID.", + "loc.messages.SuccessfullyUpdatedRuntimeStackAndStartupCommand": "Successfully updated the Runtime Stack and Startup Command.", + "loc.messages.FailedToUpdateRuntimeStackAndStartupCommand": "Failed to update the Runtime Stack and Startup Command. Error: %s.", + "loc.messages.SuccessfullyUpdatedWebAppSettings": "Successfully updated the App settings.", + "loc.messages.FailedToUpdateAppSettingsInConfigDetails": "Failed to update the App settings. Error: %s.", + "loc.messages.UnableToGetAzureRMWebAppMetadata": "Failed to fetch AzureRM WebApp metadata. ErrorCode: %s", + "loc.messages.UnableToUpdateAzureRMWebAppMetadata": "Unable to update AzureRM WebApp metadata. Error Code: %s", + "loc.messages.Unabletoretrieveazureregistrycredentials": "Unable to retrieve Azure Container Registry credentials.[Status Code: '%s']", + "loc.messages.UnableToReadResponseBody": "Unable to read response body. Error: %s", + "loc.messages.UnableToUpdateWebAppConfigDetails": "Unable to update WebApp config details. StatusCode: '%s'", + "loc.messages.AddingReleaseAnnotation": "Adding release annotation for the Application Insights resource '%s'", + "loc.messages.SuccessfullyAddedReleaseAnnotation": "Successfully added release annotation to the Application Insight : %s", + "loc.messages.FailedAddingReleaseAnnotation": "Failed to add release annotation. %s", + "loc.messages.RenameLockedFilesEnabled": "Rename locked files enabled for App Service.", + "loc.messages.FailedToEnableRenameLockedFiles": "Failed to enable rename locked files. Error: %s", + "loc.messages.WebJobsInProgressIssue": "Few WebJobs in running state prevents the deployment from removing the files. You can disable 'Remove additional files at destination' option or Stop continuous Jobs before deployment.", + "loc.messages.FailedToFetchKuduAppSettings": "Failed to fetch Kudu App Settings. Error: %s", + "loc.messages.FailedToCreatePath": "Failed to create path '%s' from Kudu. Error: %s", + "loc.messages.FailedToDeleteFile": "Failed to delete file '%s/%s' from Kudu. Error: %s", + "loc.messages.FailedToDeleteFolder": "Failed to delete folder '%s' from Kudu. Error: %s", + "loc.messages.FailedToUploadFile": "Failed to upload file '%s/%s' from Kudu. Error: %s", + "loc.messages.FailedToGetFileContent": "Failed to get file content '%s/%s' from Kudu. Error: %s", + "loc.messages.FailedToListPath": "Failed to list path '%s' from Kudu. Error: %s", + "loc.messages.RetryToDeploy": "Retrying to deploy the package.", + "loc.messages.FailedToGetAppServiceDetails": "Failed to fetch App Service '%s' details. Error: %s", + "loc.messages.FailedToGetAppServicePublishingProfile": "Failed to fetch App Service '%s' publishing profile. Error: %s", + "loc.messages.FailedToUpdateAppServiceMetadata": "Failed to update App service '%s' Meta data. Error: %s", + "loc.messages.FailedToGetAppServiceMetadata": "Failed to get App service '%s' Meta data. Error: %s", + "loc.messages.FailedToPatchAppServiceConfiguration": "Failed to patch App Service '%s' configuration. Error: %s", + "loc.messages.FailedToUpdateAppServiceConfiguration": "Failed to update App service '%s' configuration. Error: %s", + "loc.messages.FailedToGetAppServiceConfiguration": "Failed to get App service '%s' configuration. Error: %s", + "loc.messages.FailedToGetAppServicePublishingCredentials": "Failed to fetch App Service '%s' publishing credentials. Error: %s", + "loc.messages.FailedToGetAppServiceApplicationSettings": "Failed to get App service '%s' application settings. Error: %s", + "loc.messages.FailedToUpdateAppServiceApplicationSettings": "Failed to update App service '%s' application settings. Error: %s", + "loc.messages.UpdatingAppServiceConfigurationSettings": "Trying to update App Service Configuration settings. Data: %s", + "loc.messages.UpdatedAppServiceConfigurationSettings": "Updated App Service Configuration settings.", + "loc.messages.UpdatedAppServiceApplicationSettings": "Updated App Service Application settings and Kudu Application settings.", + "loc.messages.UpdatedOnlyAppServiceApplicationSettings": "Updated App Service Application settings.", + "loc.messages.MultipleResourceGroupFoundForAppService": "Multiple resource group found for App Service '%s'.", + "loc.messages.PackageDeploymentUsingZipDeployFailed": "Package deployment using ZIP Deploy failed. Refer logs for more details.", + "loc.messages.PackageDeploymentInitiated": "Package deployment using ZIP Deploy initiated.", + "loc.messages.FailedToGetDeploymentLogs": "Failed to get deployment logs. Error: %s", + "loc.messages.GoExeNameNotPresent": "Go exe name is not present", + "loc.messages.Updatemachinetoenablesecuretlsprotocol": "Make sure the machine is using TLS 1.2 protocol or higher. Check https://aka.ms/enableTlsv2 for more information on how to enable TLS in your machine.", + "loc.messages.CouldNotFetchAccessTokenforAzureStatusCode": "Could not fetch access token for Azure. Status code: %s, status message: %s", + "loc.messages.CouldNotFetchAccessTokenforMSIDueToMSINotConfiguredProperlyStatusCode": "Could not fetch access token for Managed Service Principal. Please configure Managed Service Identity (MSI) for virtual machine 'https://aka.ms/azure-msi-docs'. Status code: %s, status message: %s", + "loc.messages.CouldNotFetchAccessTokenforMSIStatusCode": "Could not fetch access token for Managed Service Principal. Status code: %s, status message: %s", + "loc.messages.XmlParsingFailed": "Unable to parse publishProfileXML file, Error: %s", + "loc.messages.PropertyDoesntExistPublishProfile": "[%s] Property does not exist in publish profile", + "loc.messages.InvalidConnectionType": "Invalid service connection type", + "loc.messages.InvalidImageSourceType": "Invalid Image source Type", + "loc.messages.InvalidPublishProfile": "Publish profile file is invalid.", + "loc.messages.ASE_SSLIssueRecommendation": "To use a certificate in App Service, the certificate must be signed by a trusted certificate authority. If your web app gives you certificate validation errors, you're probably using a self-signed certificate and to resolve them you need to set a variable named VSTS_ARM_REST_IGNORE_SSL_ERRORS to the value true in the build or release pipeline", + "loc.messages.ZipDeployLogsURL": "Zip Deploy logs can be viewed at %s", + "loc.messages.DeployLogsURL": "Deploy logs can be viewed at %s", + "loc.messages.AppServiceApplicationURL": "App Service Application URL: %s", + "loc.messages.ASE_WebDeploySSLIssueRecommendation": "To use a certificate in App Service, the certificate must be signed by a trusted certificate authority. If your web app gives you certificate validation errors, you're probably using a self-signed certificate and to resolve them you need to pass -allowUntrusted in additional arguments of web deploy option.", + "loc.messages.FailedToGetResourceID": "Failed to get resource ID for resource type '%s' and resource name '%s'. Error: %s", + "loc.messages.JarPathNotPresent": "Java jar path is not present", + "loc.messages.FailedToUpdateApplicationInsightsResource": "Failed to update Application Insights '%s' Resource. Error: %s", + "loc.messages.InvalidDockerImageName": "Invalid Docker hub image name provided.", + "loc.messages.MsBuildPackageNotSupported": "Deployment of msBuild generated package is not supported. Change package format or use Azure App Service Deploy task.", + "loc.messages.FailedToGetStorageAccountDetails": "Unable to find the storage account associated with the function app.", + "loc.messages.FailedToSyncTriggers": "Failed to sync triggers for function app '%s'. Error: %s", + "loc.messages.SyncingFunctionTriggers": "Syncing triggers for function app", + "loc.messages.SyncFunctionTriggersSuccess": "Sync triggers for function app completed successfully", + "loc.messages.UpdatedRunFromPackageSettings": "Updated WEBSITE_RUN_FROM_PACKAGE Application setting to %s" +} \ No newline at end of file diff --git a/Tasks/AzureFunctionAppV2/Strings/resources.resjson/es-ES/resources.resjson b/Tasks/AzureFunctionAppV2/Strings/resources.resjson/es-ES/resources.resjson new file mode 100644 index 000000000000..d1fdec8240bd --- /dev/null +++ b/Tasks/AzureFunctionAppV2/Strings/resources.resjson/es-ES/resources.resjson @@ -0,0 +1,189 @@ +{ + "loc.friendlyName": "Azure Functions", + "loc.helpMarkDown": "[Obtener más información acerca de esta tarea](https://aka.ms/azurefunctiondeployreadme)", + "loc.description": "Actualiza una aplicación de funciones con aplicaciones web basadas en .NET, Python, JavaScript, PowerShell y Java.", + "loc.instanceNameFormat": "Implementación de Azure Function App: $(appName)", + "loc.group.displayName.AdditionalDeploymentOptions": "Opciones de implementación adicionales", + "loc.group.displayName.ApplicationAndConfigurationSettings": "Configuración y opciones de la aplicación", + "loc.input.label.azureSubscription": "Suscripción a Azure", + "loc.input.help.azureSubscription": "Seleccione la suscripción de Azure Resource Manager para la implementación.", + "loc.input.label.appType": "Tipo de aplicación", + "loc.input.label.appName": "Nombre de aplicación", + "loc.input.help.appName": "Escriba o seleccione el nombre de una instancia existente de Azure App Service. Solo se enumerarán las instancias de App Service basadas en el tipo de aplicación seleccionado.", + "loc.input.label.deployToSlotOrASE": "Implementar en la ranura o en App Service Environment", + "loc.input.help.deployToSlotOrASE": "Seleccione la opción para implementar en una ranura de implementación o entorno de Azure App Service Environment existente.
Para ambos destinos, la tarea necesita el nombre del grupo de recursos.
En caso de que el destino de implementación sea una ranura, la implementación se realiza de forma predeterminada en la ranura de producción. También se puede proporcionar cualquier otro nombre de ranura existente.
En caso de que el destino de implementación sea un entorno de Azure App Service Environment, deje el nombre de la ranura como \"Producción\" y especifique el nombre del grupo de recursos.", + "loc.input.label.resourceGroupName": "Grupo de recursos", + "loc.input.help.resourceGroupName": "El nombre del grupo de recursos es necesario cuando el destino de implementación es una ranura de implementación o una instancia de App Service Environment.
Escriba o seleccione el grupo de recursos de Azure que contiene el servicio de Azure App Service especificado anteriormente.", + "loc.input.label.slotName": "Ranura", + "loc.input.help.slotName": "Escriba o seleccione un espacio que no sea el de producción.", + "loc.input.label.package": "Paquete o carpeta", + "loc.input.help.package": "Ruta de acceso al paquete o carpeta que contiene el contenido de App Service generado por MSBuild o un archivo zip o war comprimido.
Variables ( [Build](https://docs.microsoft.com/vsts/pipelines/build/variables) | [Release](https://docs.microsoft.com/vsts/pipelines/release/variables#default-variables)), se admiten caracteres comodín.
Por ejemplo, $(System.DefaultWorkingDirectory)/\\*\\*/\\*.zip o $(System.DefaultWorkingDirectory)/\\*\\*/\\*.war.", + "loc.input.label.runtimeStack": "Pila del entorno en tiempo de ejecución", + "loc.input.help.runtimeStack": "Consulte [este documento](https://docs.microsoft.com/azure/azure-functions/functions-versions#languages) para ver las versiones compatibles del entorno de ejecución. Los valores anteriores, como \"DOCKER|microsoft/azure-functions-*\", están en desuso; use los nuevos valores de la lista desplegable.", + "loc.input.label.startUpCommand": "Comando de inicio ", + "loc.input.help.startUpCommand": "Escriba el comando de inicio. Por ejemplo,
dotnet exec filename.dll
dotnet filename.dll", + "loc.input.label.customWebConfig": "Generar parámetros de web.config para aplicaciones de Python, Node.js, Go y Java", + "loc.input.help.customWebConfig": "Se generará un archivo web.config estándar y se implementará en Azure App Service si la aplicación no tiene uno. Los valores de web.config se pueden editar y pueden variar en función del marco de trabajo de la aplicación. Por ejemplo, para la aplicación node.js, web.config tendrá los valores de archivo de inicio y del módulo iis_node. La característica de edición es solo para el web.config generado. [Más información](https://go.microsoft.com/fwlink/?linkid=843469).", + "loc.input.label.appSettings": "Configuración de la aplicación", + "loc.input.help.appSettings": "Edite la configuración de la aplicación web siguiendo la sintaxis -clave valor. Si un valor contiene espacios, debe ponerlo entre comillas dobles.
Ejemplo: -Port 5000 -RequestTimeout 5000
-WEBSITE_TIME_ZONE \"Eastern Standard Time\"", + "loc.input.label.configurationStrings": "Opciones de configuración", + "loc.input.help.configurationStrings": "Edite opciones de configuración de aplicación web la sintaxis-valor de clave. Valor que contenga espacios debe incluirse entre comillas dobles.
Ejemplo: - phpVersion 5.6 - linuxFxVersion: nodo|6.11", + "loc.input.label.deploymentMethod": "Método de implementación", + "loc.input.help.deploymentMethod": "Elija el método de implementación para la aplicación.", + "loc.messages.Invalidwebapppackageorfolderpathprovided": "Paquete App Service o ruta de acceso de carpeta proporcionados no válidos: %s", + "loc.messages.SetParamFilenotfound0": "No se ha encontrado el archivo de parámetros establecido: %s", + "loc.messages.XDTTransformationsappliedsuccessfully": "Las transformaciones XML se aplicaron correctamente", + "loc.messages.GotconnectiondetailsforazureRMWebApp0": "Se obtuvieron detalles de conexión de servicio para Azure App Service: \"%s\"", + "loc.messages.ErrorNoSuchDeployingMethodExists": "Error : No existe tal método de implementación", + "loc.messages.UnabletoretrieveconnectiondetailsforazureRMWebApp": "No se pueden recuperar los detalles de la conexión de servicio para Azure App Service: %s. Código de estado: %s (%s)", + "loc.messages.UnabletoretrieveResourceID": "No se pueden recuperar los detalles de la conexión de servicio para el recurso de Azure \"%s\". Código de estado: %s", + "loc.messages.Successfullyupdateddeploymenthistory": "El historial de implementación se actualizó correctamente en %s", + "loc.messages.Failedtoupdatedeploymenthistory": "No se pudo actualizar el historial de implementación. Error: %s", + "loc.messages.WARNINGCannotupdatedeploymentstatusSCMendpointisnotenabledforthiswebsite": "ADVERTENCIA : no se puede actualizar el estado de implementación, el punto de conexión de SCM no está habilitado para este sitio web", + "loc.messages.Unabletoretrievewebconfigdetails": "No se pueden recuperar los detalles de configuración de la instancia de App Service. Código de estado: \"%s\"", + "loc.messages.Unabletoretrievewebappsettings": "No se puede recuperar la configuración de aplicación de App Service. [Código de estado: \"%s\", Mensaje de error: \"%s\"]", + "loc.messages.Unabletoupdatewebappsettings": "No se puede actualizar la configuración de aplicación de la instancia de App Service. Código de estado: '%s'", + "loc.messages.CannotupdatedeploymentstatusuniquedeploymentIdCannotBeRetrieved": "No se puede actualizar el estado de implementación : no se puede recuperar el id. de implementación único", + "loc.messages.PackageDeploymentSuccess": "El paquete web se implementó correctamente en App Service.", + "loc.messages.PackageDeploymentFailed": "No se pudo implementar el paquete web en App Service.", + "loc.messages.Runningcommand": "Ejecutando el comando: %s", + "loc.messages.Deployingwebapplicationatvirtualpathandphysicalpath": "Implementando el paquete web : %s en una ruta de acceso virtual (ruta de acceso física): %s (%s)", + "loc.messages.Successfullydeployedpackageusingkuduserviceat": "El paquete %s se implementó correctamente mediante el servicio Kudu en %s", + "loc.messages.Failedtodeploywebapppackageusingkuduservice": "No se pudo implementar el paquete App Service mediante el servicio Kudu : %s", + "loc.messages.Unabletodeploywebappresponsecode": "No se puede implementar App Service debido al código de error: %s", + "loc.messages.MSDeploygeneratedpackageareonlysupportedforWindowsplatform": "Los paquetes generados por MSDeploy solo se admiten para la plataforma Windows.", + "loc.messages.UnsupportedinstalledversionfoundforMSDeployversionshouldbeatleast3orabove": "Versión instalada no admitida: se encontró %s para MSDeploy, pero la versión mínima admitida es 3 o posterior.", + "loc.messages.UnabletofindthelocationofMSDeployfromregistryonmachineError": "No se puede encontrar la ubicación de MS Deploy del Registro en la máquina (Error : %s)", + "loc.messages.Nopackagefoundwithspecifiedpattern": "No se encontró ningún paquete con el patrón especificado: %s
Compruebe si el paquete mencionado en la tarea se publica como artefacto en la compilación o en una fase anterior y se descarga en el trabajo actual.", + "loc.messages.MorethanonepackagematchedwithspecifiedpatternPleaserestrainthesearchpattern": "Más de un paquete coincidió con el patrón especificado: %s. Restrinja el patrón de búsqueda.", + "loc.messages.Trytodeploywebappagainwithappofflineoptionselected": "Intente volver a implementar el servicio de la aplicación con la opción Poner la aplicación sin conexión seleccionada.", + "loc.messages.Trytodeploywebappagainwithrenamefileoptionselected": "Intente volver a implementar el servicio de la aplicación con la opción Cambiar de nombre archivos bloqueados seleccionada.", + "loc.messages.NOJSONfilematchedwithspecificpattern": "Ningún archivo JSON coincidía con un patrón específico: %s.", + "loc.messages.Configfiledoesntexists": "El archivo de configuración %s no existe.", + "loc.messages.Failedtowritetoconfigfilewitherror": "No se pudo escribir en el archivo de configuración %s con el error: %s", + "loc.messages.AppOfflineModeenabled": "Modo de aplicación sin conexión habilitado.", + "loc.messages.Failedtoenableappofflinemode": "No se pudo habilitar el modo de aplicación sin conexión. Código de estado: %s (%s)", + "loc.messages.AppOflineModedisabled": "Modo de aplicación sin conexión deshabilitado.", + "loc.messages.FailedtodisableAppOfflineMode": "No se pudo deshabilitar el modo de aplicación sin conexión. Código de estado: %s (%s)", + "loc.messages.CannotPerformXdtTransformationOnNonWindowsPlatform": "No se pueden realizar las transformaciones XML en una plataforma que no es Windows.", + "loc.messages.XdtTransformationErrorWhileTransforming": "Error de transformación XML al transformar %s mediante %s.", + "loc.messages.PublishusingwebdeployoptionsaresupportedonlywhenusingWindowsagent": "Las opciones de publicación mediante webdeploy solo se admiten cuando se usa el agente de Windows", + "loc.messages.Publishusingzipdeploynotsupportedformsbuildpackage": "La publicación mediante la opción de implementación desde un archivo zip no se admite para el tipo de paquete de MSBuild.", + "loc.messages.Publishusingzipdeploynotsupportedforvirtualapplication": "La publicación mediante la opción de implementación desde un archivo zip no se admite para una aplicación virtual.", + "loc.messages.Publishusingzipdeploydoesnotsupportwarfile": "La publicación mediante las opciones de RunFromPackage o de implementación desde un archivo zip no admiten la implementación de archivos war.", + "loc.messages.Publishusingrunfromzipwithpostdeploymentscript": "La publicación mediante RunFromPackage podría no admitir el script posterior a la implementación si realiza cambios en wwwroot, puesto que la carpeta es de solo lectura.", + "loc.messages.ResourceDoesntExist": "El recurso \"%s\" no existe. Este debe existir antes de la implementación.", + "loc.messages.EncodeNotSupported": "Se detectó una codificación de archivos del archivo %s como %s. No se admite la sustitución de variables con la codificación de archivos %s. Las codificaciones admitidas son UTF-8 y UTF-16 LE.", + "loc.messages.UnknownFileEncodeError": "No se puede detectar la codificación del archivo %s (typeCode: %s). Las codificaciones admitidas son UTF-8 y UTF-16 LE.", + "loc.messages.ShortFileBufferError": "El búfer de archivos es demasiado breve para detectar el tipo de codificación : %s", + "loc.messages.FailedToUpdateAzureRMWebAppConfigDetails": "No se pudieron actualizar los detalles de configuración de App Service. Error: %s", + "loc.messages.SuccessfullyUpdatedAzureRMWebAppConfigDetails": "Los detalles de configuración de App Service se actualizaron correctamente", + "loc.messages.RequestedURLforkuduphysicalpath": "Dirección URL solicitada para la ruta de acceso física a Kudu: %s", + "loc.messages.Physicalpathalreadyexists": "La ruta de acceso física \"%s\" ya existe", + "loc.messages.KuduPhysicalpathCreatedSuccessfully": "La ruta de acceso física a Kudu se creó correctamente: %s", + "loc.messages.FailedtocreateKuduPhysicalPath": "No se pudo crear la ruta de acceso física de Kudu. Error: %s", + "loc.messages.FailedtocheckphysicalPath": "No se pudo comprobar la ruta de acceso física de Kudu. Código de error: %s", + "loc.messages.VirtualApplicationDoesNotExist": "La aplicación virtual no existe: %s", + "loc.messages.JSONParseError": "No se puede analizar el archivo JSON: %s. Error: %s", + "loc.messages.JSONvariablesubstitutionappliedsuccessfully": "La sustitución de variable JSON se aplicó correctamente.", + "loc.messages.XMLvariablesubstitutionappliedsuccessfully": "Sustitución de variables XML aplicada correctamente.", + "loc.messages.failedtoUploadFileToKudu": "No se puede cargar el archivo %s en Kudu (%s). Código de estado: %s", + "loc.messages.failedtoUploadFileToKuduError": "No se puede cargar el archivo %s en Kudu (%s). Error: %s", + "loc.messages.ExecuteScriptOnKudu": "Ejecutando el script dado en el servicio Kudu.", + "loc.messages.FailedToRunScriptOnKuduError": "No se puede ejecutar el script en el servicio Kudu. Error: %s", + "loc.messages.FailedToRunScriptOnKudu": "No se puede ejecutar el script en Kudu: %s. Código de estado: %s", + "loc.messages.ScriptExecutionOnKuduSuccess": "El script se ejecutó correctamente en Kudu.", + "loc.messages.ScriptExecutionOnKuduFailed": "El script ejecutado devolvió \"%s\" como código de retorno. Error: %s", + "loc.messages.FailedtoDeleteFileFromKudu": "No se puede eliminar el archivo %s de Kudu (%s). Código de estado: %s", + "loc.messages.FailedtoDeleteFileFromKuduError": "No se puede eliminar el archivo %s de Kudu (%s). Error: %s", + "loc.messages.ScriptFileNotFound": "No se encuentra el archivo de script \"%s\".", + "loc.messages.InvalidScriptFile": "Se proporcionó un archivo de script \"%s\" no válido. Las extensiones válidas son .bat y .cmd para Windows y .sh para Linux.", + "loc.messages.RetryForTimeoutIssue": "No se pudo ejecutar el script porque se agotó el tiempo de espera. Se reintentará una vez más.", + "loc.messages.stdoutFromScript": "Salida estándar del script: ", + "loc.messages.stderrFromScript": "Error estándar del script: ", + "loc.messages.WebConfigAlreadyExists": "El archivo web.config ya existe. No se va a generar.", + "loc.messages.SuccessfullyGeneratedWebConfig": "El archivo web.config se generó correctamente", + "loc.messages.FailedToGenerateWebConfig": "No se pudo generar el archivo web.config. %s", + "loc.messages.FailedToGetKuduFileContent": "No se puede obtener el contenido del archivo: %s. Código de estado: %s (%s)", + "loc.messages.FailedToGetKuduFileContentError": "No se puede obtener el contenido del archivo: %s. Error: %s", + "loc.messages.ScriptStatusTimeout": "No se pudo recuperar el estado del script porque se agotó el tiempo de espera.", + "loc.messages.PollingForFileTimeOut": "No se puede recuperar el estado del script porque se agotó el tiempo de espera. Puede aumentar el tiempo de espera estableciendo la variable \"appservicedeploy.retrytimeout\" en el número de minutos que sea necesario.", + "loc.messages.InvalidPollOption": "Se ha proporcionado una opción de sondeo no válida: %s.", + "loc.messages.MissingAppTypeWebConfigParameters": "El atributo \"-appType\" falta en los parámetros de Web.config. Los valores válidos para \"-appType\" son: \"python_Bottle\", \"python_Django\", \"python_Flask\", \"node\" y \"Go\".
Por ejemplo, \"-appType python_Bottle\" (sin comillas) en el caso de la plataforma Python Bottle.", + "loc.messages.AutoDetectDjangoSettingsFailed": "No se puede detectar la ruta de acceso del archivo \"settings.py\" de DJANGO_SETTINGS_MODULE. Asegúrese de que el archivo \"settings.py\" existe o indique la ruta de acceso correcta en la entrada del parámetro de Web.config siguiendo este formato: \"-DJANGO_SETTINGS_MODULE .settings\"", + "loc.messages.FailedToApplyTransformation": "No se puede aplicar la transformación para el paquete dado. Compruebe lo siguiente.", + "loc.messages.FailedToApplyTransformationReason1": "1. Si la transformación ya se ha aplicado para el paquete generado por MSBuild durante la compilación. Si es así, quite la etiqueta para cada configuración del archivo csproj y compile de nuevo. ", + "loc.messages.FailedToApplyTransformationReason2": "2. Asegúrese de que el archivo de configuración y los archivos de transformación están presentes en la misma carpeta dentro del paquete.", + "loc.messages.AutoParameterizationMessage": "Los atributos de ConnectionString en Web.config están parametrizados de manera predeterminada. Tenga en cuenta que la transformación no tiene efecto en los atributos connectionString porque el valor se invalida durante la implementación por los archivos \"Parameters.xml\" o \"SetParameters.xml\". Puede deshabilitar la parametrización automática estableciendo /p:AutoParameterizationWebConfigConnectionStrings=False durante la generación del paquete MSBuild.", + "loc.messages.UnsupportedAppType": "El tipo de aplicación \"'%s\" no se admite en la generación de Web.config. Los valores válidos para \"-appType\" son: \"python_Bottle\", \"python_Django\", \"python_Flask\" y \"'node\"", + "loc.messages.UnableToFetchAuthorityURL": "No se puede recuperar la dirección URL de la autoridad.", + "loc.messages.UnableToFetchActiveDirectory": "No se puede recuperar el id. de recurso de Active Directory.", + "loc.messages.SuccessfullyUpdatedRuntimeStackAndStartupCommand": "La pila en tiempo de ejecución y el comando de inicio se actualizaron correctamente.", + "loc.messages.FailedToUpdateRuntimeStackAndStartupCommand": "No se pudieron actualizar la pila en tiempo de ejecución y el comando de inicio. Error: %s.", + "loc.messages.SuccessfullyUpdatedWebAppSettings": "La configuración de la aplicación se actualizó correctamente.", + "loc.messages.FailedToUpdateAppSettingsInConfigDetails": "No se pudo actualizar la configuración de la aplicación. Error: %s.", + "loc.messages.UnableToGetAzureRMWebAppMetadata": "No se pudieron capturar los metadatos de WebApp de AzureRM. Código de error: %s", + "loc.messages.UnableToUpdateAzureRMWebAppMetadata": "No se pueden actualizar los metadatos de WebApp de AzureRM. Código de error: %s", + "loc.messages.Unabletoretrieveazureregistrycredentials": "No se pueden recuperar las credenciales de Azure Container Registry. [Código de estado: \"%s\"]", + "loc.messages.UnableToReadResponseBody": "No se puede leer el cuerpo de la respuesta. Error: %s", + "loc.messages.UnableToUpdateWebAppConfigDetails": "No se pueden actualizar los detalles de la configuración de WebApp. Código de estado: \"%s\"", + "loc.messages.AddingReleaseAnnotation": "Agregar anotación de versión para el recurso de Application Insights \"%s\".", + "loc.messages.SuccessfullyAddedReleaseAnnotation": "La anotación de versión se agregó correctamente a la instancia de Application Insights: %s", + "loc.messages.FailedAddingReleaseAnnotation": "No se pudo agregar la anotación de versión. %s", + "loc.messages.RenameLockedFilesEnabled": "La opción Cambiar nombre de archivos bloqueados está habilitada para la instancia de App Service.", + "loc.messages.FailedToEnableRenameLockedFiles": "No se pudo habilitar el cambio de nombre de los archivos bloqueados. Error: %s", + "loc.messages.WebJobsInProgressIssue": "Algunos WebJobs en estado de ejecución impiden que la implementación elimine los archivos. Puede deshabilitar la opción \"Quitar archivos adicionales en el destino\" o detener los trabajos continuos antes de la implementación.", + "loc.messages.FailedToFetchKuduAppSettings": "No se pudo capturar la configuración de la aplicación de Kudu. Error: %s", + "loc.messages.FailedToCreatePath": "No se pudo crear la ruta de acceso \"%s\" de Kudu. Error: %s", + "loc.messages.FailedToDeleteFile": "No se pudo eliminar el archivo \"%s/%s\" de Kudu. Error: %s", + "loc.messages.FailedToDeleteFolder": "No se pudo eliminar la carpeta \"%s\" de Kudu. Error: %s", + "loc.messages.FailedToUploadFile": "No se pudo cargar el archivo \"%s/%s\" de Kudu. Error: %s", + "loc.messages.FailedToGetFileContent": "No se pudo obtener el contenido del archivo \"%s/%s\" de Kudu. Error: %s", + "loc.messages.FailedToListPath": "No se pudo enumerar la ruta de acceso \"%s\" de Kudu. Error: %s", + "loc.messages.RetryToDeploy": "Reintentando la implementación del paquete.", + "loc.messages.FailedToGetAppServiceDetails": "No se pudieron capturar los detalles de la instancia de App Service \"%s\". Error: %s", + "loc.messages.FailedToGetAppServicePublishingProfile": "No se pudo capturar el perfil de publicación de la instancia de App Service \"%s\". Error: %s", + "loc.messages.FailedToUpdateAppServiceMetadata": "No se pudieron actualizar los metadatos de la instancia de App Service \"%s\". Error: %s", + "loc.messages.FailedToGetAppServiceMetadata": "No se pudieron obtener los metadatos de la instancia de App Service \"%s\". Error: %s", + "loc.messages.FailedToPatchAppServiceConfiguration": "No se pudo aplicar una revisión a la configuración de la instancia de App Service \"%s\". Error: %s", + "loc.messages.FailedToUpdateAppServiceConfiguration": "No se pudo actualizar la configuración de la instancia de App Service \"%s\". Error: %s", + "loc.messages.FailedToGetAppServiceConfiguration": "No se pudo obtener la configuración de la instancia de App Service \"%s\". Error: %s", + "loc.messages.FailedToGetAppServicePublishingCredentials": "No se pudieron capturar las credenciales de publicación de la instancia de App Service \"%s\". Error: %s", + "loc.messages.FailedToGetAppServiceApplicationSettings": "No se pudo obtener la configuración de aplicación de la instancia de App Service \"%s\". Error: %s", + "loc.messages.FailedToUpdateAppServiceApplicationSettings": "No se pudo actualizar la configuración de aplicación de la instancia de App Service \"%s\". Error: %s", + "loc.messages.UpdatingAppServiceConfigurationSettings": "Intentando actualizar los valores de configuración de la instancia de App Service. Datos: %s", + "loc.messages.UpdatedAppServiceConfigurationSettings": "Se han actualizado los valores de configuración de App Service.", + "loc.messages.UpdatedAppServiceApplicationSettings": "Se han actualizado la configuración de aplicación de App Service y la configuración de aplicación de Kudu.", + "loc.messages.UpdatedOnlyAppServiceApplicationSettings": "Se ha actualizado la configuración de aplicación de App Service.", + "loc.messages.MultipleResourceGroupFoundForAppService": "Se encontraron varios grupos de recursos para la instancia de App Service \"%s\".", + "loc.messages.PackageDeploymentUsingZipDeployFailed": "Error al implementar el paquete mediante la implementación de ZIP. Consulte los registros para obtener más detalles.", + "loc.messages.PackageDeploymentInitiated": "Se ha iniciado la implementación del paquete mediante la implementación desde un archivo ZIP.", + "loc.messages.WarPackageDeploymentInitiated": "Se ha iniciado la implementación del paquete mediante la implementación desde un archivo WAR.", + "loc.messages.FailedToGetDeploymentLogs": "No se pudieron obtener los registros de implementación. Error: %s", + "loc.messages.GoExeNameNotPresent": "Falta el nombre del archivo ejecutable de Go", + "loc.messages.WarDeploymentRetry": "Reintentando la implementación del archivo war, ya que no se expandió correctamente.", + "loc.messages.Updatemachinetoenablesecuretlsprotocol": "Asegúrese de que el equipo usa el protocolo TLS 1.2 o posterior. Consulte https://aka.ms/enableTlsv2 para obtener más información sobre cómo habilitar TLS en la máquina.", + "loc.messages.CouldNotFetchAccessTokenforAzureStatusCode": "No se pudo capturar el token de acceso para Azure. Código de estado: %s. Mensaje de estado: %s", + "loc.messages.CouldNotFetchAccessTokenforMSIDueToMSINotConfiguredProperlyStatusCode": "No se pudo capturar el token de acceso para la entidad de servicio administrada. Configure Managed Service Identity (MSI) para la máquina virtual \"https://aka.ms/azure-msi-docs\". Código de estado: %s. Mensaje de estado: %s", + "loc.messages.CouldNotFetchAccessTokenforMSIStatusCode": "No se pudo capturar el token de acceso para la entidad de servicio administrada. Código de estado: %s. Mensaje de estado: %s", + "loc.messages.XmlParsingFailed": "No se puede analizar el archivo publishProfileXML: %s. Error: %s", + "loc.messages.PropertyDoesntExistPublishProfile": "[%s] La propiedad no existe en el perfil de publicación", + "loc.messages.InvalidConnectionType": "Tipo de conexión de servicio no válido", + "loc.messages.InvalidImageSourceType": "Tipo de origen de imagen no válido", + "loc.messages.InvalidPublishProfile": "El archivo del perfil de publicación no es válido.", + "loc.messages.ASE_SSLIssueRecommendation": "Para usar un certificado en App Service, debe haberlo firmado una entidad de certificación de confianza. Si la aplicación web genera errores de validación del certificado, es posible que esté usando un certificado autofirmado. Para resolverlo, debe establecer una variable denominada VSTS_ARM_REST_IGNORE_SSL_ERRORS como true en la canalización de compilación o de versión", + "loc.messages.ZipDeployLogsURL": "Los registros de implementación desde un archivo zip pueden verse en %s", + "loc.messages.DeployLogsURL": "Los registros de implementación pueden verse en %s", + "loc.messages.AppServiceApplicationURL": "Dirección URL de la aplicación de App Service: %s", + "loc.messages.ASE_WebDeploySSLIssueRecommendation": "Para usar un certificado en App Service, debe haberlo firmado una entidad de certificación de confianza. Si la aplicación web genera errores de validación del certificado, es posible que esté usando un certificado autofirmado. Para resolverlo, debe pasar -allowUntrusted en argumentos adicionales de la opción de implementación web.", + "loc.messages.FailedToGetResourceID": "No se pudo obtener el identificador del tipo de recurso \"%s\" y el nombre de recurso \"%s\". Error: %s", + "loc.messages.JarPathNotPresent": "La ruta de acceso de jar de Java no está presente.", + "loc.messages.FailedToUpdateApplicationInsightsResource": "No se pudo actualizar el recurso de Application Insights \"%s\". Error: %s", + "loc.messages.InvalidDockerImageName": "Se ha proporcionado un nombre de imagen de Docker Hub no válido.", + "loc.messages.MsBuildPackageNotSupported": "No se admite la implementación del paquete generado por msBuild. Cambie el formato del paquete o use la tarea Implementación de Azure App Service.", + "loc.messages.FailedToGetStorageAccountDetails": "No se encuentra la cuenta de almacenamiento asociada a la aplicación de funciones.", + "loc.messages.FailedToSyncTriggers": "No se pudieron sincronizar los desencadenadores de la aplicación de funciones \"%s\". Error: %s", + "loc.messages.SyncingFunctionTriggers": "Sincronizando los desencadenadores para la aplicación de funciones", + "loc.messages.SyncFunctionTriggersSuccess": "La sincronización de los desencadenadores de la aplicación de funciones se ha completado correctamente.", + "loc.messages.UpdatedRunFromPackageSettings": "Se ha actualizado la configuración de aplicación de WEBSITE_RUN_FROM_PACKAGE a %s" +} \ No newline at end of file diff --git a/Tasks/AzureFunctionAppV2/Strings/resources.resjson/fr-FR/resources.resjson b/Tasks/AzureFunctionAppV2/Strings/resources.resjson/fr-FR/resources.resjson new file mode 100644 index 000000000000..ef7b322c598d --- /dev/null +++ b/Tasks/AzureFunctionAppV2/Strings/resources.resjson/fr-FR/resources.resjson @@ -0,0 +1,189 @@ +{ + "loc.friendlyName": "Azure Functions", + "loc.helpMarkDown": "[En savoir plus sur cette tâche](https://aka.ms/azurefunctiondeployreadme)", + "loc.description": "Mettre à jour une application de fonction avec des applications web .NET, Python, JavaScript, PowerShell, Java", + "loc.instanceNameFormat": "Déploiement d'application de fonction Azure : $(appName)", + "loc.group.displayName.AdditionalDeploymentOptions": "Options de déploiement supplémentaires", + "loc.group.displayName.ApplicationAndConfigurationSettings": "Paramètres d'application et de configuration", + "loc.input.label.azureSubscription": "Abonnement Azure", + "loc.input.help.azureSubscription": "Sélectionnez l'abonnement Azure Resource Manager pour le déploiement.", + "loc.input.label.appType": "Type d'application", + "loc.input.label.appName": "Nom de l'application", + "loc.input.help.appName": "Entrez ou sélectionnez le nom d'un Azure App Service existant. Seuls les App Services basés sur le type d'application sélectionné sont listés.", + "loc.input.label.deployToSlotOrASE": "Déployer sur l'emplacement ou l'environnement App Service", + "loc.input.help.deployToSlotOrASE": "Sélectionnez l'option permettant d'effectuer un déploiement sur un emplacement de déploiement existant ou sur Azure App Service Environment.
Pour les deux cibles, la tâche a besoin du nom du groupe de ressources.
Si la cible de déploiement est un emplacement, le déploiement est effectué par défaut sur l'emplacement de production. Vous pouvez également indiquer un autre nom d'emplacement existant.
Si la cible de déploiement est un environnement Azure App Service, gardez le nom d'emplacement 'production', et spécifiez simplement le nom du groupe de ressources.", + "loc.input.label.resourceGroupName": "Groupe de ressources", + "loc.input.help.resourceGroupName": "Le nom du groupe de ressources est obligatoire quand la cible de déploiement est un emplacement de déploiement ou un environnement App Service.
Entrez ou sélectionnez le groupe de ressources Azure qui contient le service Azure App Service spécifié ci-dessus.", + "loc.input.label.slotName": "Emplacement", + "loc.input.help.slotName": "Entrez ou sélectionnez un emplacement existant autre que l'emplacement de production.", + "loc.input.label.package": "Package ou dossier", + "loc.input.help.package": "Chemin de fichier du package ou d'un dossier de contenu App Service généré par MSBuild, ou d'un fichier zip ou war compressé.
Les variables ([Build](https://docs.microsoft.com/vsts/pipelines/build/variables) | [Mise en production](https://docs.microsoft.com/vsts/pipelines/release/variables#default-variables)) et les caractères génériques sont pris en charge.
Exemple : $(System.DefaultWorkingDirectory)/\\*\\*/\\*.zip ou $(System.DefaultWorkingDirectory)/\\*\\*/\\*.war.", + "loc.input.label.runtimeStack": "Pile de runtime", + "loc.input.help.runtimeStack": "Consultez [cette documentation](https://docs.microsoft.com/azure/azure-functions/functions-versions#languages) pour accéder aux versions de runtime prises en charge. Les anciennes valeurs telles que 'DOCKER|microsoft/azure-functions-*' sont dépréciées. Utilisez les nouvelles valeurs de la liste déroulante.", + "loc.input.label.startUpCommand": "Commande de démarrage ", + "loc.input.help.startUpCommand": "Entrez la commande de démarrage. Exemple :
dotnet exec filename.dll
dotnet filename.dll", + "loc.input.label.customWebConfig": "Générer les paramètres web.config pour les applications Python, Node.js, Go et Java", + "loc.input.help.customWebConfig": "Un fichier web.config standard va être généré et déployé sur Azure App Service, si l'application n'en a pas. Vous pouvez modifier les valeurs du fichier web.config. Celles-ci varient en fonction du framework d'application. Par exemple, pour l'application node.js, web.config a un fichier de démarrage et des valeurs de module iis_node. Cette fonctionnalité d'édition est réservée au fichier web.config généré. [En savoir plus](https://go.microsoft.com/fwlink/?linkid=843469).", + "loc.input.label.appSettings": "Paramètres de l'application", + "loc.input.help.appSettings": "Modifiez les paramètres d'application Web App qui suivent la valeur -key de la syntaxe. La valeur contenant des espaces doit être comprise entre des guillemets.
Exemple :-Port 5000 - RequestTimeout 5000
-WEBSITE_TIME_ZONE \"Eastern Standard Time\"", + "loc.input.label.configurationStrings": "Paramètres de configuration", + "loc.input.help.configurationStrings": "Modifiez les paramètres de configuration Web App qui suivent la valeur -key de la syntaxe. La valeur contenant des espaces doit être comprise entre des guillemets.
Exemple : - phpVersion 5.6 -linuxFXVersion : node|6.11", + "loc.input.label.deploymentMethod": "Méthode de déploiement", + "loc.input.help.deploymentMethod": "Choisissez la méthode de déploiement de l'application.", + "loc.messages.Invalidwebapppackageorfolderpathprovided": "Chemin de dossier ou package App Service fourni non valide : %s", + "loc.messages.SetParamFilenotfound0": "Fichier de définition de paramètres introuvable : %s", + "loc.messages.XDTTransformationsappliedsuccessfully": "Transformations XML correctement appliquées", + "loc.messages.GotconnectiondetailsforazureRMWebApp0": "Obtention effectuée des détails de la connexion de service d'Azure App Service : '%s'", + "loc.messages.ErrorNoSuchDeployingMethodExists": "Erreur : Aucune méthode de déploiement de ce type n'existe", + "loc.messages.UnabletoretrieveconnectiondetailsforazureRMWebApp": "Impossible de récupérer les détails de la connexion de service d'Azure App Service : %s. Code d'état : %s (%s)", + "loc.messages.UnabletoretrieveResourceID": "Impossible de récupérer les détails de connexion de service de la ressource Azure : '%s'. Code d'état : %s", + "loc.messages.Successfullyupdateddeploymenthistory": "Historique de déploiement mis à jour sur %s", + "loc.messages.Failedtoupdatedeploymenthistory": "Échec de la mise à jour de l'historique de déploiement. Erreur : %s", + "loc.messages.WARNINGCannotupdatedeploymentstatusSCMendpointisnotenabledforthiswebsite": "AVERTISSEMENT : Impossible de mettre à jour l'état de déploiement : le point de terminaison SCM n'est pas activé pour ce site web", + "loc.messages.Unabletoretrievewebconfigdetails": "Impossible de récupérer les détails de la configuration d'App Service. Code d'état : '%s'", + "loc.messages.Unabletoretrievewebappsettings": "Impossible de récupérer les paramètres d'application App Service. [Code d'état : '%s', message d'erreur : '%s']", + "loc.messages.Unabletoupdatewebappsettings": "Impossible de mettre à jour les paramètres d'application d'App Service. Code d'état : '%s'", + "loc.messages.CannotupdatedeploymentstatusuniquedeploymentIdCannotBeRetrieved": "Impossible de mettre à jour l'état du déploiement : l'ID de déploiement unique ne peut pas être récupéré", + "loc.messages.PackageDeploymentSuccess": "Déploiement réussi du package web sur App Service.", + "loc.messages.PackageDeploymentFailed": "Échec de déploiement du package web sur App Service.", + "loc.messages.Runningcommand": "Exécution de la commande : %s", + "loc.messages.Deployingwebapplicationatvirtualpathandphysicalpath": "Déploiement du package web : %s sur le chemin virtuel (chemin physique) : %s (%s)", + "loc.messages.Successfullydeployedpackageusingkuduserviceat": "Package %s déployé à l'aide du service kudu sur %s", + "loc.messages.Failedtodeploywebapppackageusingkuduservice": "Impossible de déployer le package App Service à l'aide du service kudu : %s", + "loc.messages.Unabletodeploywebappresponsecode": "Impossible de déployer App Service en raison du code d'erreur %s", + "loc.messages.MSDeploygeneratedpackageareonlysupportedforWindowsplatform": "Les packages générés par MSDeploy sont uniquement pris en charge par la plateforme Windows.", + "loc.messages.UnsupportedinstalledversionfoundforMSDeployversionshouldbeatleast3orabove": "Version installée non prise en charge : %s trouvé pour MSDeploy. Il doit s'agir au minimum de la version 3 ou d'une version ultérieure", + "loc.messages.UnabletofindthelocationofMSDeployfromregistryonmachineError": "Emplacement introuvable de MSDeploy dans le Registre de l'ordinateur (Erreur : %s)", + "loc.messages.Nopackagefoundwithspecifiedpattern": "Package introuvable avec le modèle spécifié : %s
Vérifiez si le package mentionné dans la tâche est publié en tant qu'artefact dans la build ou à une étape précédente, et s'il est téléchargé dans le travail actuel.", + "loc.messages.MorethanonepackagematchedwithspecifiedpatternPleaserestrainthesearchpattern": "Plusieurs packages correspondent au modèle spécifié : %s. Affinez le modèle de recherche.", + "loc.messages.Trytodeploywebappagainwithappofflineoptionselected": "Essayez de redéployer App Service avec l'option Mettre l'application hors connexion sélectionnée.", + "loc.messages.Trytodeploywebappagainwithrenamefileoptionselected": "Essayez de redéployer App Service avec l'option Renommer les fichiers verrouillés sélectionnée.", + "loc.messages.NOJSONfilematchedwithspecificpattern": "Aucun fichier JSON ne correspond au modèle spécifique : %s.", + "loc.messages.Configfiledoesntexists": "Le fichier de configuration %s n'existe pas.", + "loc.messages.Failedtowritetoconfigfilewitherror": "Échec d'écriture dans le fichier config %s avec l'erreur : %s", + "loc.messages.AppOfflineModeenabled": "Mode hors connexion de l'application activé.", + "loc.messages.Failedtoenableappofflinemode": "Échec de l'activation du mode hors connexion de l'application. Code d'état : %s (%s)", + "loc.messages.AppOflineModedisabled": "Mode hors connexion de l'application désactivé.", + "loc.messages.FailedtodisableAppOfflineMode": "Impossible de désactiver le mode hors connexion de l'application. Code d'état : %s (%s)", + "loc.messages.CannotPerformXdtTransformationOnNonWindowsPlatform": "Impossible d'effectuer les transformations XML sur une plateforme non-Windows.", + "loc.messages.XdtTransformationErrorWhileTransforming": "Erreur de transformation XML lors de la transformation de %s à l'aide de %s.", + "loc.messages.PublishusingwebdeployoptionsaresupportedonlywhenusingWindowsagent": "Les options de publication à l'aide de webdeploy ne sont prises en charge qu'en cas d'utilisation de l'agent Windows", + "loc.messages.Publishusingzipdeploynotsupportedformsbuildpackage": "La publication à l'aide de l'option zip deploy n'est pas prise en charge pour le type de package msBuild.", + "loc.messages.Publishusingzipdeploynotsupportedforvirtualapplication": "La publication à l'aide de l'option zip deploy n'est pas prise en charge pour une application virtuelle.", + "loc.messages.Publishusingzipdeploydoesnotsupportwarfile": "La publication à l'aide des options zip deploy ou RunFromPackage ne prend pas en charge le déploiement de fichiers war.", + "loc.messages.Publishusingrunfromzipwithpostdeploymentscript": "La publication à l'aide de RunFromPackage risque de ne pas prendre en charge le script de postdéploiement, s'il apporte des changements à wwwroot, car le dossier est ReadOnly.", + "loc.messages.ResourceDoesntExist": "La ressource '%s' n'existe pas. La ressource doit exister avant le déploiement.", + "loc.messages.EncodeNotSupported": "Encodage du fichier %s en %s détecté. La substitution de variable n'est pas prise en charge avec l'encodage de fichier %s. Les encodages pris en charge sont UTF-8 et UTF-16 LE.", + "loc.messages.UnknownFileEncodeError": "Impossible de détecter l'encodage du fichier %s (typeCode : %s). Les encodages pris en charge sont UTF-8 et UTF-16 LE.", + "loc.messages.ShortFileBufferError": "La mémoire tampon de fichier est insuffisante pour détecter le type d'encodage : %s", + "loc.messages.FailedToUpdateAzureRMWebAppConfigDetails": "Impossible de mettre à jour les informations sur la configuration App Service. Erreur : %s", + "loc.messages.SuccessfullyUpdatedAzureRMWebAppConfigDetails": "Informations sur la configuration App Service correctement mises à jour", + "loc.messages.RequestedURLforkuduphysicalpath": "URL demandée pour le chemin d'accès physique Kudu : %s", + "loc.messages.Physicalpathalreadyexists": "Le chemin d'accès physique '%s' existe déjà", + "loc.messages.KuduPhysicalpathCreatedSuccessfully": "Chemin d'accès physique Kudu correctement créé : %s", + "loc.messages.FailedtocreateKuduPhysicalPath": "Échec de la création du chemin physique de kudu. Erreur : %s", + "loc.messages.FailedtocheckphysicalPath": "Échec de la vérification du chemin physique de kudu. Code d'erreur : %s", + "loc.messages.VirtualApplicationDoesNotExist": "L'application virtuelle %s n'existe pas", + "loc.messages.JSONParseError": "Impossible d'analyser le fichier JSON : %s. Erreur : %s", + "loc.messages.JSONvariablesubstitutionappliedsuccessfully": "Substitution de variable JSON correctement appliquée.", + "loc.messages.XMLvariablesubstitutionappliedsuccessfully": "La substitution de la variable XML a été appliquée.", + "loc.messages.failedtoUploadFileToKudu": "Impossible de charger le fichier %s sur Kudu (%s). Code d'état : %s", + "loc.messages.failedtoUploadFileToKuduError": "Impossible de charger le fichier %s sur Kudu (%s). Erreur : %s", + "loc.messages.ExecuteScriptOnKudu": "Exécution du script donné sur le service Kudu.", + "loc.messages.FailedToRunScriptOnKuduError": "Impossible d'exécuter le script sur le service Kudu. Erreur : %s", + "loc.messages.FailedToRunScriptOnKudu": "Impossible d'exécuter le script sur Kudu : %s. Code d'état : %s", + "loc.messages.ScriptExecutionOnKuduSuccess": "Exécution réussie du script sur Kudu.", + "loc.messages.ScriptExecutionOnKuduFailed": "Le script exécuté a généré le code de retour '%s'. Erreur : %s", + "loc.messages.FailedtoDeleteFileFromKudu": "Impossible de supprimer le fichier %s de Kudu (%s). Code d'état : %s", + "loc.messages.FailedtoDeleteFileFromKuduError": "Impossible de supprimer le fichier %s de Kudu (%s). Erreur : %s", + "loc.messages.ScriptFileNotFound": "Le fichier de script '%s' est introuvable.", + "loc.messages.InvalidScriptFile": "Le fichier de script fourni '%s' est non valide. Les extensions valides sont .bat et .cmd pour Windows, et.sh pour Linux", + "loc.messages.RetryForTimeoutIssue": "Échec de l'exécution du script en raison d'un problème de délai d'expiration. Nouvelle tentative.", + "loc.messages.stdoutFromScript": "Sortie standard du script : ", + "loc.messages.stderrFromScript": "Erreur standard du script : ", + "loc.messages.WebConfigAlreadyExists": "Le fichier web.config existe déjà. Aucune génération en cours.", + "loc.messages.SuccessfullyGeneratedWebConfig": "Génération réussie du fichier web.config", + "loc.messages.FailedToGenerateWebConfig": "Échec de génération de web.config. %s", + "loc.messages.FailedToGetKuduFileContent": "Impossible d'obtenir le contenu du fichier : %s. Code d'état : %s (%s)", + "loc.messages.FailedToGetKuduFileContentError": "Impossible d'obtenir le contenu du fichier : %s. Erreur : %s", + "loc.messages.ScriptStatusTimeout": "Impossible de récupérer (fetch) l'état du script en raison du délai d'expiration.", + "loc.messages.PollingForFileTimeOut": "Impossible de récupérer (fetch) l'état du script en raison du délai d'expiration. Vous pouvez augmenter la limite du délai d'expiration en affectant le nombre de minutes nécessaires à la variable 'appservicedeploy.retrytimeout'.", + "loc.messages.InvalidPollOption": "Option d'interrogation non valide fournie : %s.", + "loc.messages.MissingAppTypeWebConfigParameters": "Il manque l'attribut '-appType' dans les paramètres de Web.config. Les valeurs valides pour '-appType' sont : 'python_Bottle', 'python_Django', 'python_Flask', 'node' et 'Go'.
Exemple : '-appType python_Bottle' (sans guillemets) dans le cas d'un framework Python Bottle.", + "loc.messages.AutoDetectDjangoSettingsFailed": "Impossible de détecter le chemin du fichier 'settings.py' pour DJANGO_SETTINGS_MODULE. Vérifiez que le fichier 'settings.py' existe, ou indiquez le chemin approprié dans l'entrée de paramètre de Web.config au format suivant : '-DJANGO_SETTINGS_MODULE .settings'", + "loc.messages.FailedToApplyTransformation": "Impossible d'appliquer la transformation pour le package donné. Vérifiez ce qui suit.", + "loc.messages.FailedToApplyTransformationReason1": "1. La transformation est-elle déjà appliquée pour le package MSBuild généré durant la build ? Si la réponse est oui, supprimez la balise pour chaque configuration dans le fichier csproj, puis effectuez une regénération. ", + "loc.messages.FailedToApplyTransformationReason2": "2. Vérifiez que le fichier config et les fichiers de transformation sont présents dans le même dossier à l'intérieur du package.", + "loc.messages.AutoParameterizationMessage": "Les attributs de ConnectionString dans Web.config sont paramétrables par défaut. Notez que la transformation n'a aucun effet sur les attributs de connectionString, car la valeur est remplacée durant le déploiement par les fichiers 'Parameters.xml' ou 'SetParameters.xml'. Vous pouvez désactiver le paramétrage automatique en définissant /p:AutoParameterizationWebConfigConnectionStrings=False durant la génération du package MSBuild.", + "loc.messages.UnsupportedAppType": "Le type d'application '%s' n'est pas pris en charge dans la génération de Web.config. Les valeurs valides pour '-appType' sont : 'python_Bottle', 'python_Django', 'python_Flask' et 'node'", + "loc.messages.UnableToFetchAuthorityURL": "Impossible de récupérer (fetch) l'URL d'autorité.", + "loc.messages.UnableToFetchActiveDirectory": "Impossible de récupérer (fetch) l'ID de ressource Active Directory.", + "loc.messages.SuccessfullyUpdatedRuntimeStackAndStartupCommand": "Mise à jour réussie de la pile d'exécution et de la commande de démarrage.", + "loc.messages.FailedToUpdateRuntimeStackAndStartupCommand": "Échec de la mise à jour de la pile d'exécution et de la commande de démarrage. Erreur : %s.", + "loc.messages.SuccessfullyUpdatedWebAppSettings": "Mise à jour réussie des paramètres de l'application.", + "loc.messages.FailedToUpdateAppSettingsInConfigDetails": "Échec de la mise à jour des paramètres de l'application. Erreur : %s.", + "loc.messages.UnableToGetAzureRMWebAppMetadata": "Échec de la récupération (fetch) des métadonnées de la WebApp AzureRM. ErrorCode : %s", + "loc.messages.UnableToUpdateAzureRMWebAppMetadata": "Impossible de mettre à jour les métadonnées de la WebApp AzureRM. Code d'erreur : %s", + "loc.messages.Unabletoretrieveazureregistrycredentials": "Impossible de récupérer les informations d'identification d'Azure Container Registry.[Code d'état : '%s']", + "loc.messages.UnableToReadResponseBody": "Impossible de lire le corps de la réponse. Erreur : %s", + "loc.messages.UnableToUpdateWebAppConfigDetails": "Impossible de mettre à jour les détails de configuration de la WebApp. StatusCode : '%s'", + "loc.messages.AddingReleaseAnnotation": "Ajout d'une annotation de mise en production pour la ressource Application Insights '%s'", + "loc.messages.SuccessfullyAddedReleaseAnnotation": "Ajout réussi de l'annotation de mise en production à Application Insight : %s", + "loc.messages.FailedAddingReleaseAnnotation": "Échec de l'ajout de l'annotation de mise en production. %s", + "loc.messages.RenameLockedFilesEnabled": "Le renommage des fichiers verrouillés est activé pour App Service.", + "loc.messages.FailedToEnableRenameLockedFiles": "Échec de l'activation du renommage des fichiers verrouillés. Erreur : %s", + "loc.messages.WebJobsInProgressIssue": "Un petit nombre de WebJobs à l'état en cours d'exécution empêchent le processus de déploiement de supprimer les fichiers. Désactivez l'option Supprimer les fichiers supplémentaires à l'emplacement de destination, ou arrêtez les travaux continus avant le déploiement.", + "loc.messages.FailedToFetchKuduAppSettings": "Échec de la récupération (fetch) des paramètres d'application Kudu. Erreur : %s", + "loc.messages.FailedToCreatePath": "Échec de la création du chemin '%s' à partir de Kudu. Erreur : %s", + "loc.messages.FailedToDeleteFile": "Échec de la suppression du fichier '%s/%s' à partir de Kudu. Erreur : %s", + "loc.messages.FailedToDeleteFolder": "Échec de la suppression du dossier '%s' dans Kudu. Erreur : %s", + "loc.messages.FailedToUploadFile": "Échec du chargement du fichier '%s/%s' à partir de Kudu. Erreur : %s", + "loc.messages.FailedToGetFileContent": "Échec de l'obtention du contenu du fichier '%s/%s' à partir de Kudu. Erreur : %s", + "loc.messages.FailedToListPath": "Échec du listage du chemin '%s' à partir de Kudu. Erreur : %s", + "loc.messages.RetryToDeploy": "Nouvelle tentative de déploiement du package.", + "loc.messages.FailedToGetAppServiceDetails": "Échec de la récupération (fetch) des détails de l'App Service '%s'. Erreur : %s", + "loc.messages.FailedToGetAppServicePublishingProfile": "Échec de la récupération (fetch) du profil de publication de l'App Service '%s'. Erreur : %s", + "loc.messages.FailedToUpdateAppServiceMetadata": "Échec de la mise à jour des métadonnées de l'App Service '%s'. Erreur : %s", + "loc.messages.FailedToGetAppServiceMetadata": "Échec de l'obtention des métadonnées de l'App Service '%s'. Erreur : %s", + "loc.messages.FailedToPatchAppServiceConfiguration": "Échec de l'application du correctif à la configuration de l'App Service '%s'. Erreur : %s", + "loc.messages.FailedToUpdateAppServiceConfiguration": "Échec de la mise à jour de la configuration de l'App Service '%s'. Erreur : %s", + "loc.messages.FailedToGetAppServiceConfiguration": "Échec de l'obtention de la configuration de l'App Service '%s'. Erreur : %s", + "loc.messages.FailedToGetAppServicePublishingCredentials": "Échec de la récupération (fetch) des informations d'identification de publication de l'App Service '%s'. Erreur : %s", + "loc.messages.FailedToGetAppServiceApplicationSettings": "Échec de l'obtention des paramètres d'application de l'App Service '%s'. Erreur : %s", + "loc.messages.FailedToUpdateAppServiceApplicationSettings": "Échec de la mise à jour des paramètres d'application de l'App Service '%s'. Erreur : %s", + "loc.messages.UpdatingAppServiceConfigurationSettings": "Tentative de mise à jour des paramètres de configuration d'App Service. Données : %s", + "loc.messages.UpdatedAppServiceConfigurationSettings": "Mise à jour effectuée des paramètres de configuration d'App Service.", + "loc.messages.UpdatedAppServiceApplicationSettings": "Mise à jour effectuée des paramètres d'application d'App Service et des paramètres d'application de Kudu.", + "loc.messages.UpdatedOnlyAppServiceApplicationSettings": "Mise à jour effectuée des paramètres d'application d'App Service.", + "loc.messages.MultipleResourceGroupFoundForAppService": "Plusieurs groupes de ressources trouvés pour l'App Service '%s'.", + "loc.messages.PackageDeploymentUsingZipDeployFailed": "Échec du déploiement de package à l'aide de ZIP Deploy. Pour plus d'informations, consultez les journaux.", + "loc.messages.PackageDeploymentInitiated": "Déploiement de package avec ZIP Deploy lancé.", + "loc.messages.WarPackageDeploymentInitiated": "Lancement effectué du déploiement de package à l'aide de WAR Deploy.", + "loc.messages.FailedToGetDeploymentLogs": "Échec de l'obtention des journaux de déploiement. Erreur : %s", + "loc.messages.GoExeNameNotPresent": "Nom de l’exe Go absent", + "loc.messages.WarDeploymentRetry": "Nouvelle tentative de déploiement du fichier war, car il ne s'est pas décompressé correctement.", + "loc.messages.Updatemachinetoenablesecuretlsprotocol": "Assurez-vous que l'ordinateur utilise le protocole TLS 1.2 ou ultérieur. Consultez https://aka.ms/enableTlsv2 pour plus d'informations sur l'activation de TLS sur votre ordinateur.", + "loc.messages.CouldNotFetchAccessTokenforAzureStatusCode": "Impossible de récupérer (fetch) le jeton d'accès pour Azure. Code d'état : %s, message d'état : %s", + "loc.messages.CouldNotFetchAccessTokenforMSIDueToMSINotConfiguredProperlyStatusCode": "Impossible de récupérer (fetch) le jeton d'accès pour le principal du service managé. Configurez MSI (Managed Service Identity) pour la machine virtuelle 'https://aka.ms/azure-msi-docs'. Code d'état : %s, message d'état : %s", + "loc.messages.CouldNotFetchAccessTokenforMSIStatusCode": "Impossible de récupérer (fetch) le jeton d'accès pour le principal du service managé. Code d'état : %s, message d'état : %s", + "loc.messages.XmlParsingFailed": "Impossible d'analyser le fichier publishProfileXML. Erreur : %s", + "loc.messages.PropertyDoesntExistPublishProfile": "[%s] La propriété n'existe pas dans le profil de publication", + "loc.messages.InvalidConnectionType": "Type de connexion de service non valide", + "loc.messages.InvalidImageSourceType": "Type de source d'image non valide", + "loc.messages.InvalidPublishProfile": "Le fichier de profil de publication est non valide.", + "loc.messages.ASE_SSLIssueRecommendation": "Pour utiliser un certificat dans App Service, celui-ci doit être signé par une autorité de certification de confiance. Si votre application web génère des erreurs de validation de certificat, cela signifie probablement que vous utilisez un certificat auto-signé. Pour résoudre ces erreurs, vous devez affecter la valeur true à une variable nommée VSTS_ARM_REST_IGNORE_SSL_ERRORS dans le pipeline de build ou le pipeline de mise en production", + "loc.messages.ZipDeployLogsURL": "Les journaux Zip Deploy peuvent être consultés sur %s", + "loc.messages.DeployLogsURL": "Les journaux de déploiement peuvent être consultés sur %s", + "loc.messages.AppServiceApplicationURL": "URL d'application App Service : %s", + "loc.messages.ASE_WebDeploySSLIssueRecommendation": "Pour utiliser un certificat dans App Service, celui-ci doit être signé par une autorité de certification de confiance. Si votre application web génère des erreurs de validation de certificat, cela signifie probablement que vous utilisez un certificat auto-signé. Pour résoudre ces erreurs, vous devez passer -allowUntrusted dans des arguments supplémentaires de l'option Web Deploy.", + "loc.messages.FailedToGetResourceID": "Échec de l'obtention de l'ID de ressource pour le type de ressource '%s' et le nom de ressource '%s'. Erreur : %s", + "loc.messages.JarPathNotPresent": "Le chemin du fichier jar Java n'est pas présent", + "loc.messages.FailedToUpdateApplicationInsightsResource": "Échec de la mise à jour de la ressource Application Insights '%s'. Erreur : %s", + "loc.messages.InvalidDockerImageName": "Le nom fourni pour l'image Docker Hub est non valide.", + "loc.messages.MsBuildPackageNotSupported": "Le déploiement du package généré par msBuild n'est pas pris en charge. Changez le format du package, ou utilisez la tâche de déploiement Azure App Service.", + "loc.messages.FailedToGetStorageAccountDetails": "Le compte de stockage associé à l'application de fonction est introuvable.", + "loc.messages.FailedToSyncTriggers": "Échec de la synchronisation des déclencheurs pour l'application de fonction '%s'. Erreur : %s", + "loc.messages.SyncingFunctionTriggers": "Synchronisation des déclencheurs pour l'application de fonction", + "loc.messages.SyncFunctionTriggersSuccess": "Synchronisation réussie des déclencheurs de l'application de fonction", + "loc.messages.UpdatedRunFromPackageSettings": "Mise à jour effectuée du paramètre d'application WEBSITE_RUN_FROM_PACKAGE vers %s" +} \ No newline at end of file diff --git a/Tasks/AzureFunctionAppV2/Strings/resources.resjson/it-IT/resources.resjson b/Tasks/AzureFunctionAppV2/Strings/resources.resjson/it-IT/resources.resjson new file mode 100644 index 000000000000..a63712494a4b --- /dev/null +++ b/Tasks/AzureFunctionAppV2/Strings/resources.resjson/it-IT/resources.resjson @@ -0,0 +1,189 @@ +{ + "loc.friendlyName": "Funzioni di Azure", + "loc.helpMarkDown": "[Altre informazioni su questa attività](https://aka.ms/azurefunctiondeployreadme)", + "loc.description": "Aggiorna un'app per le funzioni con applicazioni Web basate su .NET, Python, JavaScript, PowerShell, Java", + "loc.instanceNameFormat": "Distribuzione app per le funzioni di Azure: $(appName)", + "loc.group.displayName.AdditionalDeploymentOptions": "Opzioni di distribuzione aggiuntive", + "loc.group.displayName.ApplicationAndConfigurationSettings": "Impostazioni applicazione e configurazione", + "loc.input.label.azureSubscription": "Sottoscrizione di Azure", + "loc.input.help.azureSubscription": "Consente di selezionare la sottoscrizione di Azure Resource Manager per la distribuzione.", + "loc.input.label.appType": "Tipo di app", + "loc.input.label.appName": "Nome dell'app", + "loc.input.help.appName": "Consente di immettere o selezionare il nome di un servizio app di Azure. Verranno elencati solo i servizi app basati sul tipo di app selezionato.", + "loc.input.label.deployToSlotOrASE": "Distribuisci nello slot o nell'ambiente del servizio app", + "loc.input.help.deployToSlotOrASE": "Consente di selezionare l'opzione per la distribuzione in uno slot di distribuzione esistente o in un ambiente del servizio app di Azure.
Per entrambe le destinazioni l'attività richiede il nome del gruppo di risorse.
Se la destinazione di distribuzione è uno slot, per impostazione predefinita la distribuzione viene eseguita nello slot di produzione. È anche possibile specificare qualsiasi altro nome di slot esistente.
Se la destinazione di distribuzione è un ambiente del servizio app di Azure, lasciare il nome dello slot impostato su 'produzione' e specificare solo il nome del gruppo di risorse.", + "loc.input.label.resourceGroupName": "Gruppo di risorse", + "loc.input.help.resourceGroupName": "Il nome del gruppo di risorse è obbligatorio quando la destinazione di distribuzione è uno slot di distribuzione o un ambiente del servizio app.
Immettere o selezionare il gruppo di risorse di Azure che contiene il servizio app di Azure specificato sopra.", + "loc.input.label.slotName": "Slot", + "loc.input.help.slotName": "Immettere o selezionare uno slot esistente diverso da quello di produzione.", + "loc.input.label.package": "Pacchetto o cartella", + "loc.input.help.package": "Percorso file del pacchetto o di una cartella che include il contenuto del servizio app generato da MSBuild oppure un file WAR o ZIP compresso.
Variabili ( [Compilazione](https://docs.microsoft.com/vsts/pipelines/build/variables) | [Versione](https://docs.microsoft.com/vsts/pipelines/release/variables#default-variables)). I caratteri jolly sono supportati.
Ad esempio, $(System.DefaultWorkingDirectory)/\\*\\*/\\*.zip o $(System.DefaultWorkingDirectory)/\\*\\*/\\*.war.", + "loc.input.label.runtimeStack": "Stack di runtime", + "loc.input.help.runtimeStack": "Fare riferimento a [questo documento](https://docs.microsoft.com/azure/azure-functions/functions-versions#languages) per le versioni runtime supportate. I valori precedenti, come 'DOCKER|microsoft/azure-functions-*', sono deprecati. Usare i nuovi valori dall'elenco a discesa.", + "loc.input.label.startUpCommand": "Comando di avvio ", + "loc.input.help.startUpCommand": "Immettere il comando di avvio, ad esempio
dotnet exec filename.dll
dotnet filename.dll", + "loc.input.label.customWebConfig": "Genera i parametri di web.config per app Python, Node.js, Go e Java", + "loc.input.help.customWebConfig": "Verrà generato un file Web.config standard che verrà distribuito nel servizio app di Azure, se non è disponibile per l'applicazione. I valori presenti nel file Web.config sono modificabili e possono variare a seconda del framework dell'applicazione. Ad esempio, per l'applicazione node.js il file Web.config includerà i valori per il file di avvio e il modulo iis_node. Questa funzionalità di modifica è utilizzabile solo per il file Web.config generato. [Altre informazioni](https://go.microsoft.com/fwlink/?linkid=843469).", + "loc.input.label.appSettings": "Impostazioni app", + "loc.input.help.appSettings": "Consente di modificare le impostazioni applicazione dell'app Web successive al valore -key della sintassi. Il valore che contiene spazi deve essere racchiuso tra virgolette.
Esempio: -Port 5000 -RequestTimeout 5000
-WEBSITE_TIME_ZONE \"Ora solare fuso orientale\"", + "loc.input.label.configurationStrings": "Impostazioni di configurazione", + "loc.input.help.configurationStrings": "Consente di modificare le impostazioni di configurazione dell'app Web successive al valore -key della sintassi. Il valore che contiene spazi deve essere racchiuso tra virgolette.
Esempio: -phpVersion 5.6 -linuxFxVersion: node|6.11", + "loc.input.label.deploymentMethod": "Metodo di distribuzione", + "loc.input.help.deploymentMethod": "Consente di scegliere il metodo di distribuzione per l'app.", + "loc.messages.Invalidwebapppackageorfolderpathprovided": "Il percorso specificato per il pacchetto o la cartella del servizio app non è valido: %s", + "loc.messages.SetParamFilenotfound0": "Il file dei parametri del set non è stato trovato: %s", + "loc.messages.XDTTransformationsappliedsuccessfully": "Le trasformazioni XML sono state applicate", + "loc.messages.GotconnectiondetailsforazureRMWebApp0": "I dettagli della connessione al servizio per il servizio app di Azure sono stati recuperati: '%s'", + "loc.messages.ErrorNoSuchDeployingMethodExists": "Errore: non esiste alcun metodo di distribuzione di questo tipo", + "loc.messages.UnabletoretrieveconnectiondetailsforazureRMWebApp": "Non è possibile recuperare i dettagli della connessione al servizio per il servizio app di Azure: %s. Codice di stato: %s (%s)", + "loc.messages.UnabletoretrieveResourceID": "Non è possibile recuperare i dettagli della connessione al servizio per la risorsa di Azure '%s'. Codice di stato: %s", + "loc.messages.Successfullyupdateddeploymenthistory": "L'aggiornamento della cronologia di distribuzione all'indirizzo %s è stato completato", + "loc.messages.Failedtoupdatedeploymenthistory": "Non è stato possibile aggiornare la cronologia di distribuzione. Errore: %s", + "loc.messages.WARNINGCannotupdatedeploymentstatusSCMendpointisnotenabledforthiswebsite": "AVVISO: non è possibile aggiornare lo stato di distribuzione. L'endpoint di Gestione controllo del codice sorgente non è abilitato per questo sito Web", + "loc.messages.Unabletoretrievewebconfigdetails": "Non è possibile recuperare i dettagli di configurazione del servizio app. Codice di stato: '%s'", + "loc.messages.Unabletoretrievewebappsettings": "Non è possibile recuperare le impostazioni dell'applicazione del servizio app. [Codice di stato: '%s'. Messaggio di errore: '%s']", + "loc.messages.Unabletoupdatewebappsettings": "Non è possibile aggiornare le impostazioni dell'applicazione del servizio app. Codice di stato: '%s'", + "loc.messages.CannotupdatedeploymentstatusuniquedeploymentIdCannotBeRetrieved": "Non è possibile aggiornare lo stato di distribuzione. L'ID distribuzione univoco non è stato recuperato", + "loc.messages.PackageDeploymentSuccess": "Il pacchetto Web è stato distribuito nel servizio app.", + "loc.messages.PackageDeploymentFailed": "Non è stato possibile distribuire il pacchetto Web nel servizio app.", + "loc.messages.Runningcommand": "Esecuzione del comando: %s", + "loc.messages.Deployingwebapplicationatvirtualpathandphysicalpath": "Distribuzione del pacchetto Web %s nel percorso virtuale (percorso fisico) %s (%s)", + "loc.messages.Successfullydeployedpackageusingkuduserviceat": "La distribuzione del pacchetto %s con il servizio Kudu all'indirizzo %s è riuscita", + "loc.messages.Failedtodeploywebapppackageusingkuduservice": "Non è stato possibile distribuire il pacchetto del servizio app con il servizio Kudu: %s", + "loc.messages.Unabletodeploywebappresponsecode": "Non è possibile distribuire il servizio app a causa del codice errore: %s", + "loc.messages.MSDeploygeneratedpackageareonlysupportedforWindowsplatform": "I pacchetti generati da MSDeploy sono supportati solo per la piattaforma Windows.", + "loc.messages.UnsupportedinstalledversionfoundforMSDeployversionshouldbeatleast3orabove": "La versione installata non è supportata. La versione trovata per MSDeploy è %s, ma deve essere almeno 3 o successiva", + "loc.messages.UnabletofindthelocationofMSDeployfromregistryonmachineError": "Il percorso di MSDeploy non è stato trovato dal Registro di sistema nel computer (errore: %s)", + "loc.messages.Nopackagefoundwithspecifiedpattern": "Non è stato trovato alcun pacchetto con il criterio specificato: %s
Verificare se il pacchetto menzionato nell'attività viene pubblicato come artefatto nella compilazione o in una fase precedente e quindi scaricato nel processo corrente.", + "loc.messages.MorethanonepackagematchedwithspecifiedpatternPleaserestrainthesearchpattern": "Più pacchetti corrispondono al criterio specificato %s. Restringere i criteri di ricerca.", + "loc.messages.Trytodeploywebappagainwithappofflineoptionselected": "Provare a distribuire di nuovo il servizio app dopo aver selezionato l'opzione Porta l'applicazione offline.", + "loc.messages.Trytodeploywebappagainwithrenamefileoptionselected": "Provare a distribuire di nuovo il servizio app dopo aver selezionato l'opzione Rinomina i file bloccati.", + "loc.messages.NOJSONfilematchedwithspecificpattern": "Non sono stati trovati file JSON corrispondenti al criterio specificato: %s.", + "loc.messages.Configfiledoesntexists": "Il file di configurazione %s non esiste.", + "loc.messages.Failedtowritetoconfigfilewitherror": "Non è stato possibile scrivere nel file config %s. Errore: %s", + "loc.messages.AppOfflineModeenabled": "La modalità offline dell'app è abilitata.", + "loc.messages.Failedtoenableappofflinemode": "Non è stato possibile abilitare la modalità offline dell'app. Codice di stato: %s (%s)", + "loc.messages.AppOflineModedisabled": "La modalità offline dell'app è disabilitata.", + "loc.messages.FailedtodisableAppOfflineMode": "Non è stato possibile disabilitare la modalità offline dell'app. Codice di stato: %s (%s)", + "loc.messages.CannotPerformXdtTransformationOnNonWindowsPlatform": "Non è possibile eseguire trasformazioni XML su una piattaforma non Windows.", + "loc.messages.XdtTransformationErrorWhileTransforming": "Si è verificato un errore di trasformazione XML durante la trasformazione di %s con %s.", + "loc.messages.PublishusingwebdeployoptionsaresupportedonlywhenusingWindowsagent": "Le opzioni di pubblicazione con Distribuzione Web sono supportate solo quando si usa l'agente Windows", + "loc.messages.Publishusingzipdeploynotsupportedformsbuildpackage": "La pubblicazione con l'opzione zipdeploy non è supportata per il tipo di pacchetto msBuild.", + "loc.messages.Publishusingzipdeploynotsupportedforvirtualapplication": "La pubblicazione con l'opzione zipdeploy non è supportata per l'applicazione virtuale.", + "loc.messages.Publishusingzipdeploydoesnotsupportwarfile": "Se si pubblica usando le opzioni zipdeploy o RunFromPackage, la distribuzione di file war non è supportata.", + "loc.messages.Publishusingrunfromzipwithpostdeploymentscript": "Se si pubblica usando RunFromPackage, è possibile che lo script post-distribuzione non sia supportato se apporta modifiche a wwwroot perché la cartella è di sola lettura.", + "loc.messages.ResourceDoesntExist": "La risorsa '%s' non esiste. La risorsa deve esistere prima della distribuzione.", + "loc.messages.EncodeNotSupported": "La codifica rilevata del file %s è %s. La sostituzione delle variabili non è supportata con la codifica file %s. Le codifiche supportate sono UTF-8 e UTF-16 LE.", + "loc.messages.UnknownFileEncodeError": "Non è possibile rilevare la codifica del file %s (typeCode: %s). Le codifiche supportate sono UTF-8 e UTF-16 LE.", + "loc.messages.ShortFileBufferError": "Il buffer di file è troppo piccolo per il rilevamento del tipo di codifica: %s", + "loc.messages.FailedToUpdateAzureRMWebAppConfigDetails": "Non è stato possibile aggiornare i dettagli della configurazione del servizio app. Errore: %s", + "loc.messages.SuccessfullyUpdatedAzureRMWebAppConfigDetails": "I dettagli della configurazione del servizio app sono stati aggiornati", + "loc.messages.RequestedURLforkuduphysicalpath": "È stato richiesto l'URL per il percorso fisico di Kudu: %s", + "loc.messages.Physicalpathalreadyexists": "Il percorso fisico '%s' esiste già", + "loc.messages.KuduPhysicalpathCreatedSuccessfully": "Il percorso fisico di Kudu è stato creato: %s", + "loc.messages.FailedtocreateKuduPhysicalPath": "Non è stato possibile creare il percorso fisico di Kudu. Errore: %s", + "loc.messages.FailedtocheckphysicalPath": "Non è stato possibile verificare il percorso fisico di Kudu. Codice errore: %s", + "loc.messages.VirtualApplicationDoesNotExist": "L'applicazione virtuale non esiste: %s", + "loc.messages.JSONParseError": "Non è possibile analizzare il file JSON: %s. Errore: %s", + "loc.messages.JSONvariablesubstitutionappliedsuccessfully": "La sostituzione di variabili JSON è stata applicata.", + "loc.messages.XMLvariablesubstitutionappliedsuccessfully": "La sostituzione di variabili XML è stata applicata.", + "loc.messages.failedtoUploadFileToKudu": "Non è possibile caricare il file %s in Kudu (%s). Codice di stato: %s", + "loc.messages.failedtoUploadFileToKuduError": "Non è stato possibile caricare il file %s in Kudu (%s). Errore: %s", + "loc.messages.ExecuteScriptOnKudu": "Esecuzione dello script specificato nel servizio Kudu.", + "loc.messages.FailedToRunScriptOnKuduError": "Non è possibile eseguire lo script nel servizio Kudu. Errore: %s", + "loc.messages.FailedToRunScriptOnKudu": "Non è possibile eseguire lo script in Kudu: %s. Codice di stato: %s", + "loc.messages.ScriptExecutionOnKuduSuccess": "Lo script è stato eseguito in Kudu.", + "loc.messages.ScriptExecutionOnKuduFailed": "Il codice restituito dallo script eseguito è '%s'. Errore: %s", + "loc.messages.FailedtoDeleteFileFromKudu": "Non è possibile eliminare il file %s da Kudu (%s). Codice di stato: %s", + "loc.messages.FailedtoDeleteFileFromKuduError": "Non è possibile eliminare il file %s da Kudu (%s). Errore: %s", + "loc.messages.ScriptFileNotFound": "Il file di script '%s' non è stato trovato.", + "loc.messages.InvalidScriptFile": "Il file di script specificato '%s' non è valido. Le estensioni valide sono bat e cmd per Windows e sh per Linux", + "loc.messages.RetryForTimeoutIssue": "L'esecuzione dello script non è riuscita a causa del timeout. Verrà effettuato un nuovo tentativo.", + "loc.messages.stdoutFromScript": "Output standard dello script: ", + "loc.messages.stderrFromScript": "Errore standard dello script: ", + "loc.messages.WebConfigAlreadyExists": "Il file Web.config esiste già e non verrà generato.", + "loc.messages.SuccessfullyGeneratedWebConfig": "Il file Web.config è stato generato", + "loc.messages.FailedToGenerateWebConfig": "Non è stato possibile generare il file Web.config. %s", + "loc.messages.FailedToGetKuduFileContent": "Non è possibile recuperare il contenuto del file: %s. Codice di stato: %s (%s)", + "loc.messages.FailedToGetKuduFileContentError": "Non è possibile recuperare il contenuto del file: %s. Errore: %s", + "loc.messages.ScriptStatusTimeout": "Non è possibile recuperare lo stato dello script a causa del timeout.", + "loc.messages.PollingForFileTimeOut": "Non è possibile recuperare lo stato dello script a causa del timeout. È possibile aumentare il limite di timeout impostando la variabile 'appservicedeploy.retrytimeout' sul numero di minuti necessari.", + "loc.messages.InvalidPollOption": "L'opzione di polling specificata %s non è valida.", + "loc.messages.MissingAppTypeWebConfigParameters": "Nei parametri di Web.config manca l'attributo '-appType'. I valori validi per '-appType' sono: 'python_Bottle', 'python_Django', 'python_Flask', 'node' e 'Go'.
Esempio: '-appType python_Bottle' (senza virgolette) nel caso del framework Python Bottle.", + "loc.messages.AutoDetectDjangoSettingsFailed": "Il percorso del file 'settings.py' di DJANGO_SETTINGS_MODULE non è stato rilevato. Assicurarsi che il file 'settings.py' sia esistente oppure specificare il percorso corretto nel campo di input del parametro di Web.config nel formato seguente: '-DJANGO_SETTINGS_MODULE .settings'", + "loc.messages.FailedToApplyTransformation": "Non è possibile applicare la trasformazione per il pacchetto specificato. Eseguire le verifiche seguenti.", + "loc.messages.FailedToApplyTransformationReason1": "1. Verificare se la trasformazione è già stata applicata per il pacchetto generato da MSBuild durante la compilazione. In caso affermativo, rimuovere il tag per ogni file config nel file csproj e ricompilare. ", + "loc.messages.FailedToApplyTransformationReason2": "2. Assicurarsi che il file config e i file di trasformazione siano presenti nella stessa cartella all'interno del pacchetto.", + "loc.messages.AutoParameterizationMessage": "Per impostazione predefinita, agli attributi di ConnectionString in Web.config sono associati parametri. Si noti che la trasformazione non ha effetto sugli attributi di ConnectionString perché durante la distribuzione il valore viene sostituito dai file 'Parameters.xml' o 'SetParameters.xml'. Per disabilitare l'aggiunta automatica di parametri, impostare /p:AutoParameterizationWebConfigConnectionStrings=False durante la generazione del pacchetto MSBuild.", + "loc.messages.UnsupportedAppType": "Il tipo di app '%s' non è supportato nella generazione di Web.config. I valori validi per '-appType' sono: 'python_Bottle', 'python_Django', 'python_Flask' e 'node'", + "loc.messages.UnableToFetchAuthorityURL": "Non è possibile recuperare l'URL dell'autorità.", + "loc.messages.UnableToFetchActiveDirectory": "Non è possibile recuperare l'ID risorsa di Active Directory.", + "loc.messages.SuccessfullyUpdatedRuntimeStackAndStartupCommand": "Lo stack di runtime e il comando di avvio sono stati aggiornati.", + "loc.messages.FailedToUpdateRuntimeStackAndStartupCommand": "Non è stato possibile aggiornare lo stack di runtime e il comando di avvio. Errore: %s.", + "loc.messages.SuccessfullyUpdatedWebAppSettings": "Le impostazioni dell'app sono state aggiornate.", + "loc.messages.FailedToUpdateAppSettingsInConfigDetails": "Non è stato possibile aggiornare le impostazioni dell'app. Errore: %s.", + "loc.messages.UnableToGetAzureRMWebAppMetadata": "Non è stato possibile recuperare i metadati dell'app Web AzureRM. Codice errore: %s", + "loc.messages.UnableToUpdateAzureRMWebAppMetadata": "Non è possibile aggiornare i metadati dell'app Web di AzureRM. Codice errore: %s", + "loc.messages.Unabletoretrieveazureregistrycredentials": "Non è possibile recuperare le credenziali di Registro Azure Container. [Codice di stato: '%s']", + "loc.messages.UnableToReadResponseBody": "Non è possibile leggere il corpo della risposta. Errore: %s", + "loc.messages.UnableToUpdateWebAppConfigDetails": "Non è possibile aggiornare i dettagli di configurazione dell'app Web. Codice di stato: '%s'", + "loc.messages.AddingReleaseAnnotation": "Aggiunta dell'annotazione versione per la risorsa '%s' di Application Insights", + "loc.messages.SuccessfullyAddedReleaseAnnotation": "L'annotazione versione è stata aggiunta alla risorsa di Application Insights: %s", + "loc.messages.FailedAddingReleaseAnnotation": "Non è stato possibile aggiungere l'annotazione versione. %s", + "loc.messages.RenameLockedFilesEnabled": "La ridenominazione dei file bloccati è abilitata per il servizio app.", + "loc.messages.FailedToEnableRenameLockedFiles": "Non è stato possibile abilitare la ridenominazione de file bloccati. Errore: %s", + "loc.messages.WebJobsInProgressIssue": "Qualche processo Web nello stato in esecuzione impedisce alla distribuzione di rimuovere i file. È possibile disabilitare l'opzione 'Rimuovi file aggiuntivi nella destinazione' oppure arrestare i processi continui prima della distribuzione.", + "loc.messages.FailedToFetchKuduAppSettings": "Non è stato possibile recuperare le impostazioni dell'app Kudu. Errore: %s", + "loc.messages.FailedToCreatePath": "Non è stato possibile creare il percorso '%s' da Kudu. Errore: %s", + "loc.messages.FailedToDeleteFile": "Non è stato possibile eliminare il file '%s/%s' da Kudu. Errore: %s", + "loc.messages.FailedToDeleteFolder": "Non è stato possibile eliminare la cartella '%s' da Kudu. Errore: %s", + "loc.messages.FailedToUploadFile": "Non è stato possibile caricare il file '%s/%s' da Kudu. Errore: %s", + "loc.messages.FailedToGetFileContent": "Non è stato possibile ottenere il contenuto '%s/%s' del file da Kudu. Errore: %s", + "loc.messages.FailedToListPath": "Non è stato possibile elencare il percorso '%s' da Kudu. Errore: %s", + "loc.messages.RetryToDeploy": "Verrà effettuato un nuovo tentativo di distribuzione del pacchetto.", + "loc.messages.FailedToGetAppServiceDetails": "Non è stato possibile recuperare i dettagli del servizio app '%s'. Errore: %s", + "loc.messages.FailedToGetAppServicePublishingProfile": "Non è stato possibile recuperare il profilo di pubblicazione del servizio app '%s'. Errore: %s", + "loc.messages.FailedToUpdateAppServiceMetadata": "Non è stato possibile aggiornare i metadati del servizio app '%s'. Errore: %s", + "loc.messages.FailedToGetAppServiceMetadata": "Non è stato possibile ottenere i metadati del servizio app '%s'. Errore: %s", + "loc.messages.FailedToPatchAppServiceConfiguration": "Non è stato possibile correggere la configurazione del servizio app '%s'. Errore: %s", + "loc.messages.FailedToUpdateAppServiceConfiguration": "Non è stato possibile aggiornare la configurazione del servizio app '%s'. Errore: %s", + "loc.messages.FailedToGetAppServiceConfiguration": "Non è stato possibile ottenere la configurazione del servizio app '%s'. Errore: %s", + "loc.messages.FailedToGetAppServicePublishingCredentials": "Non è stato possibile recuperare le credenziali di pubblicazione del servizio app '%s'. Errore: %s", + "loc.messages.FailedToGetAppServiceApplicationSettings": "Non è stato possibile ottenere le impostazioni applicazione del servizio app '%s'. Errore: %s", + "loc.messages.FailedToUpdateAppServiceApplicationSettings": "Non è stato possibile aggiornare le impostazioni applicazione del servizio app '%s'. Errore: %s", + "loc.messages.UpdatingAppServiceConfigurationSettings": "Tentativo di aggiornamento delle impostazioni di configurazione del servizio app. Dati: %s", + "loc.messages.UpdatedAppServiceConfigurationSettings": "Le impostazioni di configurazione del servizio app sono state aggiornate.", + "loc.messages.UpdatedAppServiceApplicationSettings": "Le impostazioni applicazione del servizio app e le impostazioni applicazione di Kudu sono state aggiornate.", + "loc.messages.UpdatedOnlyAppServiceApplicationSettings": "Le impostazioni applicazione del servizio app sono state aggiornate.", + "loc.messages.MultipleResourceGroupFoundForAppService": "Sono stati trovati più gruppi di risorse per il servizio app '%s'.", + "loc.messages.PackageDeploymentUsingZipDeployFailed": "La distribuzione del pacchetto con zipdeploy non è riuscita. Per maggiori dettagli, vedere i log.", + "loc.messages.PackageDeploymentInitiated": "La distribuzione del pacchetto con zipdeploy è stata avviata.", + "loc.messages.WarPackageDeploymentInitiated": "La distribuzione del pacchetto con WAR Deploy è stata avviata.", + "loc.messages.FailedToGetDeploymentLogs": "Non è stato possibile ottenere i log di distribuzione. Errore: %s", + "loc.messages.GoExeNameNotPresent": "Il nome dell'eseguibile Go non è presente", + "loc.messages.WarDeploymentRetry": "Verrà effettuato un nuovo tentativo di distribuzione del file WAR perché in precedenza non si è espanso correttamente.", + "loc.messages.Updatemachinetoenablesecuretlsprotocol": "Assicurarsi che il computer usi il protocollo TLS 1.2 o superiore. Per altre informazioni su come abilitare TLS nel computer, vedere https://aka.ms/enableTlsv2.", + "loc.messages.CouldNotFetchAccessTokenforAzureStatusCode": "Non è stato possibile recuperare il token di accesso per Azure. Codice di stato: %s. Messaggio di stato: %s", + "loc.messages.CouldNotFetchAccessTokenforMSIDueToMSINotConfiguredProperlyStatusCode": "Non è stato possibile recuperare il token di accesso per l'entità servizio gestita. Configurare l'identità del servizio gestita per la macchina virtuale 'https://aka.ms/azure-msi-docs'. Codice di stato: %s. Messaggio di stato: %s", + "loc.messages.CouldNotFetchAccessTokenforMSIStatusCode": "Non è stato possibile recuperare il token di accesso per l'entità servizio gestita. Codice di stato: %s. Messaggio di stato: %s", + "loc.messages.XmlParsingFailed": "Non è possibile analizzare il file XML del profilo di pubblicazione. Errore: %s", + "loc.messages.PropertyDoesntExistPublishProfile": "[%s] La proprietà non esiste nel profilo di pubblicazione", + "loc.messages.InvalidConnectionType": "Il tipo di connessione al servizio non è valido", + "loc.messages.InvalidImageSourceType": "Il tipo di origine immagini non è valido", + "loc.messages.InvalidPublishProfile": "Il file del profilo di pubblicazione non è valido.", + "loc.messages.ASE_SSLIssueRecommendation": "Per usare un certificato nel servizio app, il certificato deve essere firmato da un'autorità di certificazione attendibile. Se l'app Web restituisce errori di convalida del certificato, è possibile che si stia usando un certificato autofirmato. Per risolvere gli errori, è necessario impostare su true una variabile denominata VSTS_ARM_ARM_REST_IGNORE_SSL_ERRORS nella pipeline di compilazione o versione", + "loc.messages.ZipDeployLogsURL": "I log di zipdeploy possono essere visualizzati in %s", + "loc.messages.DeployLogsURL": "I log di distribuzione possono essere visualizzati in %s", + "loc.messages.AppServiceApplicationURL": "URL dell'applicazione del servizio app: %s", + "loc.messages.ASE_WebDeploySSLIssueRecommendation": "Per usare un certificato nel servizio app, il certificato deve essere firmato da un'autorità di certificazione attendibile. Se l'app Web restituisce errori di convalida del certificato, è possibile che si stia usando un certificato autofirmato. Per risolvere gli errori, è necessario passare -allowUntrusted negli argomenti aggiuntivi dell'opzione di distribuzione Web.", + "loc.messages.FailedToGetResourceID": "Non è stato possibile ottenere l'ID risorsa per il tipo di risorsa '%s' e il nome di risorsa '%s'. Errore: %s", + "loc.messages.JarPathNotPresent": "Il percorso del file jar Java non è presente", + "loc.messages.FailedToUpdateApplicationInsightsResource": "Non è stato possibile aggiornare la risorsa '%s' di Application Insights. Errore: %s", + "loc.messages.InvalidDockerImageName": "Il nome dell'immagine di Docker Hub specificato non è valido.", + "loc.messages.MsBuildPackageNotSupported": "La distribuzione del pacchetto generato da msBuild non è supportata. Modificare il formato del pacchetto oppure usare l'attività Distribuzione Servizio app di Azure.", + "loc.messages.FailedToGetStorageAccountDetails": "Non è possibile trovare l'account di archiviazione associato all'app per le funzioni.", + "loc.messages.FailedToSyncTriggers": "Non è stato possibile sincronizzare i trigger per l'app per le funzioni '%s'. Errore: %s", + "loc.messages.SyncingFunctionTriggers": "Sincronizzazione dei trigger per l'app per le funzioni", + "loc.messages.SyncFunctionTriggersSuccess": "La sincronizzazione dei trigger per l'app per le funzioni è stata completata", + "loc.messages.UpdatedRunFromPackageSettings": "L'impostazione applicazione WEBSITE_RUN_FROM_PACKAGE è stata aggiornata in %s" +} \ No newline at end of file diff --git a/Tasks/AzureFunctionAppV2/Strings/resources.resjson/ja-JP/resources.resjson b/Tasks/AzureFunctionAppV2/Strings/resources.resjson/ja-JP/resources.resjson new file mode 100644 index 000000000000..b94173cfb9c9 --- /dev/null +++ b/Tasks/AzureFunctionAppV2/Strings/resources.resjson/ja-JP/resources.resjson @@ -0,0 +1,189 @@ +{ + "loc.friendlyName": "Azure Functions", + "loc.helpMarkDown": "[このタスクの詳細を表示](https://aka.ms/azurefunctiondeployreadme)", + "loc.description": ".NET、Python、JavaScript、PowerShell、Java ベースの Web アプリケーションを使用する関数アプリを更新します", + "loc.instanceNameFormat": "Azure 関数アプリのデプロイ: $(appName)", + "loc.group.displayName.AdditionalDeploymentOptions": "追加の配置オプション", + "loc.group.displayName.ApplicationAndConfigurationSettings": "アプリケーションと構成の設定", + "loc.input.label.azureSubscription": "Azure サブスクリプション", + "loc.input.help.azureSubscription": "配置用の Azure Resource Manager サブスクリプションを選択します。", + "loc.input.label.appType": "アプリの種類", + "loc.input.label.appName": "アプリ名", + "loc.input.help.appName": "既存の Azure App Service の名前を入力するか、選択します。選択するアプリの種類に基づく App Service のみが一覧表示されます。", + "loc.input.label.deployToSlotOrASE": "スロットまたは App Service Environment に配置する", + "loc.input.help.deployToSlotOrASE": "既存の配置スロットまたは Azure App Service Environment に配置するためのオプションを選択します。
どちらのターゲットでも、タスクにはリソース グループ名が必要です。
配置ターゲットがスロットの場合、配置は既定で運用スロットに実施されます。他の既存のスロット名を指定することもできます。
配置ターゲットが Azure App Service Environment の場合、スロット名を 'production' のままにして、リソース グループ名だけを指定します。", + "loc.input.label.resourceGroupName": "リソース グループ", + "loc.input.help.resourceGroupName": "配置ターゲットが配置スロットまたは App Service Environment の場合、リソース グループ名が必要です。
上記で指定された Azure App Service を含む Azure リソース グループを入力するか選択します。", + "loc.input.label.slotName": "スロット", + "loc.input.help.slotName": "運用スロット以外の既存のスロットを入力または選択してください。", + "loc.input.label.package": "パッケージまたはフォルダー", + "loc.input.help.package": "MSBuild で生成されたアプリ サービスのコンテンツが入ったパッケージまたはフォルダー、あるいは圧縮された zip または war ファイルへのファイル パス。
変数 ([ビルド](https://docs.microsoft.com/vsts/pipelines/build/variables) |[リリース](https://docs.microsoft.com/vsts/pipelines/release/variables#default-variables))、ワイルドカードを使用できます。
たとえば、$(System.DefaultWorkingDirectory)/\\*\\*/\\*.zip または $(System.DefaultWorkingDirectory)/\\*\\*/\\*.war。", + "loc.input.label.runtimeStack": "ランタイム スタック", + "loc.input.help.runtimeStack": "サポートされているランタイム バージョンについては、[こちらのドキュメント] (https://docs.microsoft.com/azure/azure-functions/functions-versions#languages) をご覧ください。`DOCKER|microsoft/azure-functions-*` などの前の値は非推奨であるため、ドロップダウンから新しい値をお使いください。", + "loc.input.label.startUpCommand": "スタートアップ コマンド ", + "loc.input.help.startUpCommand": "スタートアップ コマンドを入力してください。例:
dotnet exec filename.dll
dotnet filename.dll", + "loc.input.label.customWebConfig": "Python、Node.js、Go、Java アプリ向けの web.config パラメーターを生成する", + "loc.input.help.customWebConfig": "アプリケーションに web.config がない場合は、標準の web.config が生成され、Azure App Service に配置されます。web.config 内の値は編集可能で、アプリケーション フレームワークに基づいて変えることができます。たとえば、node.js アプリケーションの場合、スタートアップ ファイルと iis_node モジュールの値を web.config 内に設定します。この編集機能は、生成される web.config のためにのみ使用できます。[詳細情報](https://go.microsoft.com/fwlink/?linkid=843469)。", + "loc.input.label.appSettings": "アプリ設定", + "loc.input.help.appSettings": "構文 -key value の後に続く Web App アプリケーションの設定を編集します。スペースが含まれる値は二重引用符で囲む必要があります。
: -Port 5000 -RequestTimeout 5000
-WEBSITE_TIME_ZONE \"Eastern Standard Time\"", + "loc.input.label.configurationStrings": "構成設定", + "loc.input.help.configurationStrings": "構文 -key value の後に続く Web App 構成の設定を編集します。スペースが含まれる値は、二重引用符で囲む必要があります。
例: -phpVersion 5.6 -linuxFxVersion: node|6.11", + "loc.input.label.deploymentMethod": "デプロイ方法", + "loc.input.help.deploymentMethod": "アプリの配置方法を選択します。", + "loc.messages.Invalidwebapppackageorfolderpathprovided": "無効な App Service パッケージまたはフォルダー パスが指定されました: %s", + "loc.messages.SetParamFilenotfound0": "Set パラメーター ファイルが見つかりません: %s", + "loc.messages.XDTTransformationsappliedsuccessfully": "XML 変換が正常に適用されました", + "loc.messages.GotconnectiondetailsforazureRMWebApp0": "Azure App Service のサービス接続の詳細を取得しました: '%s'", + "loc.messages.ErrorNoSuchDeployingMethodExists": "エラー: そのような配置方法はありません", + "loc.messages.UnabletoretrieveconnectiondetailsforazureRMWebApp": "Azure App Service のサービス接続の詳細を取得できません: %s。状態コード: %s (%s)", + "loc.messages.UnabletoretrieveResourceID": "Azure Resource のサービス接続の詳細を取得できません: '%s'。状態コード: %s", + "loc.messages.Successfullyupdateddeploymenthistory": "配置履歴が %s で正常に更新されました", + "loc.messages.Failedtoupdatedeploymenthistory": "配置履歴を更新できませんでした。エラー: %s", + "loc.messages.WARNINGCannotupdatedeploymentstatusSCMendpointisnotenabledforthiswebsite": "警告: 配置状態を更新できません: この Web サイトでは SCM エンドポイントが有効になっていません", + "loc.messages.Unabletoretrievewebconfigdetails": "App Service の構成の詳細を取得できません。状態コード: '%s'", + "loc.messages.Unabletoretrievewebappsettings": "App Service のアプリケーションの設定を取得できません。[状態コード: '%s'、エラー メッセージ: '%s']", + "loc.messages.Unabletoupdatewebappsettings": "App Service のアプリケーションの設定を更新できません。状態コード: '%s'", + "loc.messages.CannotupdatedeploymentstatusuniquedeploymentIdCannotBeRetrieved": "配置の状態を更新できません: 一意の配置 ID を取得できません", + "loc.messages.PackageDeploymentSuccess": "Web パッケージを App Service に正常に配置できました。", + "loc.messages.PackageDeploymentFailed": "Web パッケージを App Service に配置できませんでした。", + "loc.messages.Runningcommand": "コマンドを実行しています: %s", + "loc.messages.Deployingwebapplicationatvirtualpathandphysicalpath": "Web パッケージ: %s を仮想パス (物理パス) へ配置しています: %s (%s)", + "loc.messages.Successfullydeployedpackageusingkuduserviceat": "kudu サービスにより、パッケージ %s が %s に配置されました", + "loc.messages.Failedtodeploywebapppackageusingkuduservice": "Kudu サービスを使用して App Service パッケージをデプロイできませんでした: %s", + "loc.messages.Unabletodeploywebappresponsecode": "エラー コードにより、App Service を配置できません: %s", + "loc.messages.MSDeploygeneratedpackageareonlysupportedforWindowsplatform": "MSDeploy が生成したパッケージは Windows プラットフォームでのみサポートされます。", + "loc.messages.UnsupportedinstalledversionfoundforMSDeployversionshouldbeatleast3orabove": "MSDeploy のサポートされていないバージョン: %s がインストールされています。バージョンは 3 以降である必要があります", + "loc.messages.UnabletofindthelocationofMSDeployfromregistryonmachineError": "コンピューター上のレジストリから、MS Deploy の場所を特定できません (エラー: %s)", + "loc.messages.Nopackagefoundwithspecifiedpattern": "指定されたパターン %s のパッケージが見つかりませんでした
タスクに指定されているパッケージがビルドまたは前のステージで成果物として公開されており、現在のジョブにダウンロードされているかどうかをご確認ください。", + "loc.messages.MorethanonepackagematchedwithspecifiedpatternPleaserestrainthesearchpattern": "指定したパターンと一致するパッケージが複数あります: %s。検索パターンを絞り込んでください。", + "loc.messages.Trytodeploywebappagainwithappofflineoptionselected": "[アプリケーションをオフラインにする] オプションを選択して、もう一度 App Service を配置してください。", + "loc.messages.Trytodeploywebappagainwithrenamefileoptionselected": "[ロックされたファイルの名前を変更する] オプションを選択して、もう一度 App Service を配置してください。", + "loc.messages.NOJSONfilematchedwithspecificpattern": "指定のパターンと一致する JSON ファイルはありません: %s。", + "loc.messages.Configfiledoesntexists": "構成ファイル %s がありません。", + "loc.messages.Failedtowritetoconfigfilewitherror": "構成ファイル %s への書き込みに失敗しました。エラー: %s", + "loc.messages.AppOfflineModeenabled": "アプリのオフライン モードが有効です。", + "loc.messages.Failedtoenableappofflinemode": "アプリのオフライン モードを有効にできませんでした。状態コード: %s (%s)", + "loc.messages.AppOflineModedisabled": "アプリのオフライン モードが無効です。", + "loc.messages.FailedtodisableAppOfflineMode": "アプリのオフライン モードを無効にできませんでした。状態コード: %s (%s)", + "loc.messages.CannotPerformXdtTransformationOnNonWindowsPlatform": "非 Windows プラットフォームでは XML 変換を実行できません。", + "loc.messages.XdtTransformationErrorWhileTransforming": "%s の %s による変換中に XML 変換エラーが発生しました。", + "loc.messages.PublishusingwebdeployoptionsaresupportedonlywhenusingWindowsagent": "Web 配置オプションによる公開は、Windows エージェントを使用している場合のみサポートされます", + "loc.messages.Publishusingzipdeploynotsupportedformsbuildpackage": "zip 配置オプションによる公開は、msBuild パッケージの種類ではサポートされていません。", + "loc.messages.Publishusingzipdeploynotsupportedforvirtualapplication": "zip 配置オプションによる公開は、仮想アプリケーションではサポートされていません。", + "loc.messages.Publishusingzipdeploydoesnotsupportwarfile": "zip 配置または RunFromPackage オプションによる公開は、war ファイルの配置をサポートしていません。", + "loc.messages.Publishusingrunfromzipwithpostdeploymentscript": "フォルダーが ReadOnly のため、RunFromPackage による公開は、wwwroot に変更を加える場合は配置後スクリプトをサポートしない可能性があります。", + "loc.messages.ResourceDoesntExist": "リソース '%s' がありません。リソースは配置前に存在している必要があります。", + "loc.messages.EncodeNotSupported": "ファイル %s のファイル エンコードが %s として検出されました。ファイル エンコード %s では変数置換はサポートされていません。サポートされているエンコードは UTF-8 と UTF-16 LE です。", + "loc.messages.UnknownFileEncodeError": "ファイル %s (typeCode: %s) のエンコードを検出できません。サポートされているエンコードは UTF-8 および UTF-16 LE です。", + "loc.messages.ShortFileBufferError": "ファイル バッファーが短すぎてエンコードの種類を検出できません: %s", + "loc.messages.FailedToUpdateAzureRMWebAppConfigDetails": "App Service 構成の詳細を更新できませんでした。エラー: %s", + "loc.messages.SuccessfullyUpdatedAzureRMWebAppConfigDetails": "App Service 構成の詳細が正常に更新されました", + "loc.messages.RequestedURLforkuduphysicalpath": "Kudu 物理パスに関して URL が要求されました: %s", + "loc.messages.Physicalpathalreadyexists": "物理パス '%s' は既に存在しています", + "loc.messages.KuduPhysicalpathCreatedSuccessfully": "Kudu 物理パスが正常に作成されました: %s", + "loc.messages.FailedtocreateKuduPhysicalPath": "Kudu 物理パスを作成することができませんでした。エラー: %s", + "loc.messages.FailedtocheckphysicalPath": "Kudu 物理パスを確認できませんでした。エラー コード: %s", + "loc.messages.VirtualApplicationDoesNotExist": "仮想アプリケーションがありません: %s", + "loc.messages.JSONParseError": "JSON ファイルを解析できません: %s。エラー: %s", + "loc.messages.JSONvariablesubstitutionappliedsuccessfully": "JSON 変数置換が正常に適用されました。", + "loc.messages.XMLvariablesubstitutionappliedsuccessfully": "XML 変数の置換が正常に適用されました。", + "loc.messages.failedtoUploadFileToKudu": "ファイル %s を Kudu (%s) にアップロードできません。状態コード: %s", + "loc.messages.failedtoUploadFileToKuduError": "ファイル %s を Kudu (%s) にアップロードできません。エラー: %s", + "loc.messages.ExecuteScriptOnKudu": "指定されたスクリプトを Kudu サービス上で実行しています。", + "loc.messages.FailedToRunScriptOnKuduError": "スクリプトを Kudu サービス上で実行できません。エラー: %s", + "loc.messages.FailedToRunScriptOnKudu": "スクリプトを Kudu (%s) 上で実行できません。状態コード: %s", + "loc.messages.ScriptExecutionOnKuduSuccess": "スクリプトを Kudu 上で正常に実行できました。", + "loc.messages.ScriptExecutionOnKuduFailed": "実行したスクリプトからリターン コードとして '%s' が返されました。エラー: %s", + "loc.messages.FailedtoDeleteFileFromKudu": "ファイル %s を Kudu (%s) から削除できません。状態コード: %s", + "loc.messages.FailedtoDeleteFileFromKuduError": "ファイル %s を Kudu (%s) から削除できません。エラー: %s", + "loc.messages.ScriptFileNotFound": "スクリプト ファイル '%s' が見つかりません。", + "loc.messages.InvalidScriptFile": "無効なスクリプト ファイル '%s' が指定されました。有効な拡張子は、Windows の場合は .bat と .cmd、Linux の場合は .sh です", + "loc.messages.RetryForTimeoutIssue": "タイムアウトの問題でスクリプトを実行できませんでした。もう一度お試しください。", + "loc.messages.stdoutFromScript": "スクリプトからの標準出力: ", + "loc.messages.stderrFromScript": "スクリプトからの標準エラー出力: ", + "loc.messages.WebConfigAlreadyExists": "web.config ファイルは既に存在します。生成しません。", + "loc.messages.SuccessfullyGeneratedWebConfig": "web.config ファイルを正常に生成できました", + "loc.messages.FailedToGenerateWebConfig": "web.config を生成できませんでした。%s", + "loc.messages.FailedToGetKuduFileContent": "ファイルの内容を取得できません: %s。状態コード: %s (%s)", + "loc.messages.FailedToGetKuduFileContentError": "ファイルの内容を取得できません: %s。エラー: %s", + "loc.messages.ScriptStatusTimeout": "タイムアウトのため、スクリプトの状態をフェッチできません。", + "loc.messages.PollingForFileTimeOut": "タイムアウトのため、スクリプトの状態をフェッチできません。タイムアウト制限を延長するには、'appservicedeploy.retrytimeout' 変数を必要な時間 (分) に設定します。", + "loc.messages.InvalidPollOption": "指定されたポーリング オプションが無効です: %s。", + "loc.messages.MissingAppTypeWebConfigParameters": "属性 '-appType' が Web.config パラメーターにありません。'-appType' に対して有効な値は、'python_Bottle'、'python_Django'、'python_Flask'、'node'、'Go' です。
たとえば、Python Bottle フレームワークの場合は、'-appType python_Bottle' (sans-quotes) を指定します。", + "loc.messages.AutoDetectDjangoSettingsFailed": "DJANGO_SETTINGS_MODULE の 'settings.py' ファイル パスを検出できません。'settings.py' ファイルが存在することを確認するか、次の形式で Web.config パラメーター入力に正しいパスを指定してください: '-DJANGO_SETTINGS_MODULE .settings'", + "loc.messages.FailedToApplyTransformation": "指定されたパッケージに変換を適用することはできません。次の点をご確認ください。", + "loc.messages.FailedToApplyTransformationReason1": "1. ビルド中、MSBuild によって生成されたパッケージに対して変換が既に適用されたかどうか。適用された場合は、csproj ファイル内の各構成の タグを削除してから、リビルドします。", + "loc.messages.FailedToApplyTransformationReason2": "2. 構成ファイルと変換ファイルがパッケージ内の同じフォルダーに存在すること。", + "loc.messages.AutoParameterizationMessage": "Web.config の ConnectionString 属性は既定でパラメーター化されています。'Parameters.xml' ファイルまたは 'SetParameters.xml' ファイルによって値が配置中に上書きされるため、変換が connectionString 属性に影響を与えることはありません。自動パラメーター化は、MSBuild パッケージの生成中に /p:AutoParameterizationWebConfigConnectionStrings=False のように設定することによって無効にできます。", + "loc.messages.UnsupportedAppType": "アプリの種類 '%s' が Web.config 生成でサポートされていません。'-appType' に対して有効な値は、'python_Bottle'、'python_Django'、'python_Flask'、'node' です。", + "loc.messages.UnableToFetchAuthorityURL": "機関の URL をフェッチできません。", + "loc.messages.UnableToFetchActiveDirectory": "Active Directory リソース ID をフェッチできません。", + "loc.messages.SuccessfullyUpdatedRuntimeStackAndStartupCommand": "ランタイム スタックとスタートアップ コマンドが正常に更新されました。", + "loc.messages.FailedToUpdateRuntimeStackAndStartupCommand": "ランタイム スタックとスタートアップ コマンドの更新に失敗しました。エラー: %s。", + "loc.messages.SuccessfullyUpdatedWebAppSettings": "アプリの設定が正常に更新されました。", + "loc.messages.FailedToUpdateAppSettingsInConfigDetails": "アプリ設定の更新に失敗しました。エラー: %s。", + "loc.messages.UnableToGetAzureRMWebAppMetadata": "AzureRM WebApp メタデータをフェッチできませんでした。ErrorCode: %s", + "loc.messages.UnableToUpdateAzureRMWebAppMetadata": "AzureRM WebApp メタデータを更新できません。エラー コード: %s", + "loc.messages.Unabletoretrieveazureregistrycredentials": "Azure コンテナー レジストリの資格情報を取得できません。[状態コード: '%s']", + "loc.messages.UnableToReadResponseBody": "応答本文を読み取ることができません。エラー: %s", + "loc.messages.UnableToUpdateWebAppConfigDetails": "WebApp 構成の詳細を更新できません。StatusCode: '%s'", + "loc.messages.AddingReleaseAnnotation": "Application Insights リソース ’%s’ のリリース コメントを追加しています", + "loc.messages.SuccessfullyAddedReleaseAnnotation": "Application Insight にリリース コメントが正常に追加されました: %s", + "loc.messages.FailedAddingReleaseAnnotation": "リリース コメントを追加できませんでした。%s", + "loc.messages.RenameLockedFilesEnabled": "App Service で [ロックされたファイルの名前を変更する] が有効です。", + "loc.messages.FailedToEnableRenameLockedFiles": "[ロックされたファイルの名前を変更する] を有効にできませんでした。エラー: %s", + "loc.messages.WebJobsInProgressIssue": "実行状態の Web ジョブが少数あるため、配置でファイルを削除できません。[Remove additional files at destination] (同期先で追加のファイルを削除する) オプションを無効にするか、配置の前に継続ジョブを停止することができます。", + "loc.messages.FailedToFetchKuduAppSettings": "Kudu アプリ設定をフェッチできませんでした。エラー: %s", + "loc.messages.FailedToCreatePath": "Kudu からパス '%s' を作成することができませんでした。エラー: %s", + "loc.messages.FailedToDeleteFile": "Kudu からファイル '%s/%s' を削除することができませんでした。エラー: %s", + "loc.messages.FailedToDeleteFolder": "Kudu からフォルダー '%s' を削除できませんでした。エラー: %s", + "loc.messages.FailedToUploadFile": "Kudu からファイル '%s/%s' をアップロードできませんでした。エラー: %s", + "loc.messages.FailedToGetFileContent": "Kudu からファイル コンテンツ '%s/%s' を取得できませんでした。エラー: %s", + "loc.messages.FailedToListPath": "Kudu からパス '%s' の一覧を取得できませんでした。エラー: %s", + "loc.messages.RetryToDeploy": "パッケージの配置を再試行しています。", + "loc.messages.FailedToGetAppServiceDetails": "App Service '%s' の詳細をフェッチできませんでした。エラー: %s", + "loc.messages.FailedToGetAppServicePublishingProfile": "App Service '%s' の公開プロファイルをフェッチできませんでした。エラー: %s", + "loc.messages.FailedToUpdateAppServiceMetadata": "App Service '%s' のメタデータの更新に失敗しました。エラー: %s", + "loc.messages.FailedToGetAppServiceMetadata": "App Service '%s' のメタデータの取得に失敗しました。エラー: %s", + "loc.messages.FailedToPatchAppServiceConfiguration": "App Service '%s' の構成を修正できませんでした。エラー: %s", + "loc.messages.FailedToUpdateAppServiceConfiguration": "App Service '%s' 構成を更新できませんでした。エラー: %s", + "loc.messages.FailedToGetAppServiceConfiguration": "App Service '%s' 構成を取得できませんでした。エラー: %s", + "loc.messages.FailedToGetAppServicePublishingCredentials": "App Service '%s' の公開資格情報をフェッチできませんでした。エラー: %s", + "loc.messages.FailedToGetAppServiceApplicationSettings": "App Service '%s' アプリケーション設定を取得できませんでした。エラー: %s", + "loc.messages.FailedToUpdateAppServiceApplicationSettings": "App Service '%s' アプリケーション設定を更新できませんでした。エラー: %s", + "loc.messages.UpdatingAppServiceConfigurationSettings": "App Service 構成の設定を更新しようとしています。データ: %s", + "loc.messages.UpdatedAppServiceConfigurationSettings": "App Service 構成の設定が更新されました。", + "loc.messages.UpdatedAppServiceApplicationSettings": "App Service アプリケーション設定と Kudu アプリケーション設定が更新されました。", + "loc.messages.UpdatedOnlyAppServiceApplicationSettings": "App Service アプリケーション設定が更新されました。", + "loc.messages.MultipleResourceGroupFoundForAppService": "App Service '%s' に複数のリソース グループが見つかりました。", + "loc.messages.PackageDeploymentUsingZipDeployFailed": "ZIP 配置を使用したパッケージ配置に失敗しました。詳細についてはログを参照してください。", + "loc.messages.PackageDeploymentInitiated": "ZIP 配置を使用したパッケージ配置を開始しました。", + "loc.messages.WarPackageDeploymentInitiated": "WAR 配置を使用したパッケージ配置が開始しました。", + "loc.messages.FailedToGetDeploymentLogs": "配置ログを取得できませんでした。エラー: %s", + "loc.messages.GoExeNameNotPresent": "Go exe 名が存在しません", + "loc.messages.WarDeploymentRetry": "war ファイルは前回正常に展開されなかったため、展開を再試行しています。", + "loc.messages.Updatemachinetoenablesecuretlsprotocol": "マシンで TLS 1.2 プロトコル以上を使用していることを確認します。お使いのマシンで TLS を有効にする方法について詳しくは、https://aka.ms/enableTlsv2 をご確認ください。", + "loc.messages.CouldNotFetchAccessTokenforAzureStatusCode": "Azure 用のアクセス トークンをフェッチできませんでした。状態コード: %s、状態メッセージ: %s", + "loc.messages.CouldNotFetchAccessTokenforMSIDueToMSINotConfiguredProperlyStatusCode": "マネージド サービス プリンシパルのアクセス トークンをフェッチできませんでした。仮想マシンのマネージド サービス ID (MSI) を構成してください 'https://aka.ms/azure-msi-docs'。状態コード: %s、ステータス メッセージ: %s", + "loc.messages.CouldNotFetchAccessTokenforMSIStatusCode": "マネージド サービス プリンシパルのアクセス トークンをフェッチできませんでした。状態コード: %s、ステータス メッセージ: %s", + "loc.messages.XmlParsingFailed": "publishProfileXML ファイルを解析できません。エラー: %s", + "loc.messages.PropertyDoesntExistPublishProfile": "[%s] プロパティが公開プロファイル内に存在しません", + "loc.messages.InvalidConnectionType": "無効なサービス接続の種類", + "loc.messages.InvalidImageSourceType": "無効な画像ソースの種類", + "loc.messages.InvalidPublishProfile": "公開プロファイルのファイルが無効です。", + "loc.messages.ASE_SSLIssueRecommendation": "App Service で証明書を使用するには、証明書が信頼された証明機関によって署名されている必要があります。Web アプリで証明書の検証エラーが出る場合は、自己署名証明書を使用している可能性があり、それを解決するには、VSTS_ARM_REST_IGNORE_SSL_ERRORS という名前の変数の値をビルド定義またはリリース パイプラインで true に設定する必要があります。", + "loc.messages.ZipDeployLogsURL": "Zip 配置のログは、%s で確認できます", + "loc.messages.DeployLogsURL": "配置ログは %s で確認できます", + "loc.messages.AppServiceApplicationURL": "App Service Application URL: %s", + "loc.messages.ASE_WebDeploySSLIssueRecommendation": "App Service で証明書を使用するには、証明書が信頼された証明機関によって署名されている必要があります。Web アプリで証明書の検証エラーが出る場合は、自己署名証明書を使用している可能性があります。これを解決するには、Web 配置オプションの追加引数に -allowUntrusted を渡す必要があります。", + "loc.messages.FailedToGetResourceID": "リソースの種類 '%s'、リソース名 '%s' のリソース ID を取得できませんでした。エラー: %s", + "loc.messages.JarPathNotPresent": "Java jar パスが存在しません", + "loc.messages.FailedToUpdateApplicationInsightsResource": "Application Insights '%s' リソースを更新できませんでした。エラー: %s", + "loc.messages.InvalidDockerImageName": "無効な Docker Hub イメージ名が指定されました。", + "loc.messages.MsBuildPackageNotSupported": "MsBuild が生成したパッケージの配置はサポートされていません。パッケージ形式を変更するか、Azure App Service デプロイ タスクを使用してください。", + "loc.messages.FailedToGetStorageAccountDetails": "関数アプリに関連付けられているストレージ アカウントが見つかりません。", + "loc.messages.FailedToSyncTriggers": "関数アプリ '%s' のトリガーを同期できませんでした。エラー: %s", + "loc.messages.SyncingFunctionTriggers": "関数アプリのトリガーを同期しています", + "loc.messages.SyncFunctionTriggersSuccess": "関数アプリの同期トリガーが正常に完了しました", + "loc.messages.UpdatedRunFromPackageSettings": "WEBSITE_RUN_FROM_PACKAGE アプリケーション設定が %s に更新されました" +} \ No newline at end of file diff --git a/Tasks/AzureFunctionAppV2/Strings/resources.resjson/ko-KR/resources.resjson b/Tasks/AzureFunctionAppV2/Strings/resources.resjson/ko-KR/resources.resjson new file mode 100644 index 000000000000..168b42defcbb --- /dev/null +++ b/Tasks/AzureFunctionAppV2/Strings/resources.resjson/ko-KR/resources.resjson @@ -0,0 +1,189 @@ +{ + "loc.friendlyName": "Azure Functions", + "loc.helpMarkDown": "[이 작업에 대한 자세한 정보](https://aka.ms/azurefunctiondeployreadme)", + "loc.description": ".NET, Python, JavaScript, PowerShell, Java 기반 웹 애플리케이션으로 함수 앱 업데이트", + "loc.instanceNameFormat": "Azure 함수 앱 배포: $(appName)", + "loc.group.displayName.AdditionalDeploymentOptions": "추가 배포 옵션", + "loc.group.displayName.ApplicationAndConfigurationSettings": "응용 프로그램 및 구성 설정", + "loc.input.label.azureSubscription": "Azure 구독", + "loc.input.help.azureSubscription": "배포에 대한 Azure Resource Manager 구독을 선택합니다.", + "loc.input.label.appType": "앱 유형", + "loc.input.label.appName": "앱 이름", + "loc.input.help.appName": "기존 Azure App Service의 이름을 입력하거나 선택합니다. 선택한 앱 유형을 기반으로 하는 앱 서비스만 나열됩니다.", + "loc.input.label.deployToSlotOrASE": "슬롯 또는 App Service Environment에 배포", + "loc.input.help.deployToSlotOrASE": "기존 배포 슬롯 또는 Azure App Service Environment에 배포하는 옵션을 선택합니다.
두 대상 모두, 작업에 리소스 그룹 이름이 필요합니다.
배포 대상이 슬롯인 경우 기본적으로 프로덕션 슬롯에 배포가 수행됩니다. 다른 기존 슬롯 이름을 제공할 수도 있습니다.
배포 대상이 Azure App Service Environment인 경우 슬롯 이름을 '프로덕션'으로 두고 리소스 그룹 이름만 지정하세요.", + "loc.input.label.resourceGroupName": "리소스 그룹", + "loc.input.help.resourceGroupName": "배포 대상이 배포 슬롯 또는 App Service Environment인 경우 리소스 그룹 이름이 필요합니다.
위에서 지정한 Azure App Service를 포함하는 Azure 리소스 그룹을 입력하거나 선택합니다.", + "loc.input.label.slotName": "슬롯", + "loc.input.help.slotName": "프로덕션 슬롯이 아닌 기존 슬롯을 입력하거나 선택합니다.", + "loc.input.label.package": "패키지 또는 폴더", + "loc.input.help.package": "패키지, MSBuild에서 생성된 App Service 콘텐츠를 포함하는 폴더 또는 압축된 zip 또는 war 파일의 파일 경로입니다.
변수([Build](https://docs.microsoft.com/vsts/pipelines/build/variables) | [Release](https://docs.microsoft.com/vsts/pipelines/release/variables#default-variables)), 와일드카드가 지원됩니다.
예: $(System.DefaultWorkingDirectory)/\\*\\*/\\*.zip 또는 $(System.DefaultWorkingDirectory)/\\*\\*/\\*.war.", + "loc.input.label.runtimeStack": "런타임 스택", + "loc.input.help.runtimeStack": "지원되는 런타임 버전은 [관련 문서](https://docs.microsoft.com/azure/azure-functions/functions-versions#languages)를 참조하세요. 'DOCKER|microsoft/azure-functions-*' 같은 이전 값은 사용되지 않습니다. 드롭다운에서 새 값을 사용하세요.", + "loc.input.label.startUpCommand": "시작 명령 ", + "loc.input.help.startUpCommand": "시작 명령을 입력합니다. 예:
dotnet exec filename.dll
dotnet filename.dll", + "loc.input.label.customWebConfig": "Python, Node.js, Go 및 Java 앱에 대한 web.config 매개 변수 생성", + "loc.input.help.customWebConfig": "애플리케이션에 없는 경우 표준 Web.config가 생성되어 Azure App Service에 배포됩니다. web.config의 값은 편집 가능하며, 애플리케이션 프레임워크에 따라 달라집니다. 예를 들어 node.js 애플리케이션의 경우 web.config에 시작 파일 및 iis_node 모듈 값이 포함됩니다. 이 편집 기능은 생성된 web.config에만 사용됩니다. [자세한 정보](https://go.microsoft.com/fwlink/?linkid=843469).", + "loc.input.label.appSettings": "앱 설정", + "loc.input.help.appSettings": "구문 -key 값 다음에 오는 웹앱 응용 프로그램 설정을 편집합니다. 공백이 포함되는 값은 큰따옴표로 묶어야 합니다.
: -Port 5000 -RequestTimeout 5000
-WEBSITE_TIME_ZONE \"Eastern Standard Time\"", + "loc.input.label.configurationStrings": "구성 설정", + "loc.input.help.configurationStrings": "구문 -key 값 다음에 오는 웹앱 구성 설정을 편집합니다. 공백이 포함되는 값은 큰따옴표로 묶어야 합니다.
예 : -phpVersion 5.6 -linuxFxVersion: node|6.11", + "loc.input.label.deploymentMethod": "배포 방법", + "loc.input.help.deploymentMethod": "앱의 배포 방법을 선택합니다.", + "loc.messages.Invalidwebapppackageorfolderpathprovided": "잘못된 App Service 패키지 또는 폴더 경로를 제공했습니다. %s", + "loc.messages.SetParamFilenotfound0": "매개 변수 설정 파일을 찾을 수 없습니다. %s", + "loc.messages.XDTTransformationsappliedsuccessfully": "XML 변환을 적용했습니다.", + "loc.messages.GotconnectiondetailsforazureRMWebApp0": "Azure App Service '%s'에 대한 서비스 연결 정보를 가져왔습니다.", + "loc.messages.ErrorNoSuchDeployingMethodExists": "오류: 해당 배포 방법이 없습니다.", + "loc.messages.UnabletoretrieveconnectiondetailsforazureRMWebApp": "Azure App Service %s에 대한 서비스 연결 정보를 검색할 수 없습니다. 상태 코드: %s(%s)", + "loc.messages.UnabletoretrieveResourceID": "Azure 리소스 '%s'에 대한 서비스 연결 정보를 검색할 수 없습니다. 상태 코드: %s", + "loc.messages.Successfullyupdateddeploymenthistory": "%s에서 배포 기록을 업데이트했습니다.", + "loc.messages.Failedtoupdatedeploymenthistory": "배포 기록을 업데이트하지 못했습니다. 오류: %s", + "loc.messages.WARNINGCannotupdatedeploymentstatusSCMendpointisnotenabledforthiswebsite": "경고: 배포 상태를 업데이트할 수 없습니다. 이 웹 사이트에는 SCM 엔드포인트를 사용할 수 없습니다.", + "loc.messages.Unabletoretrievewebconfigdetails": "App Service 구성 정보를 검색할 수 없습니다. 상태 코드: '%s'", + "loc.messages.Unabletoretrievewebappsettings": "App Service 응용 프로그램 설정을 검색할 수 없습니다[상태 코드: '%s', 오류 메시지: '%s'].", + "loc.messages.Unabletoupdatewebappsettings": "App Service 응용 프로그램 설정을 업데이트할 수 없습니다. 상태 코드: '%s'", + "loc.messages.CannotupdatedeploymentstatusuniquedeploymentIdCannotBeRetrieved": "배포 상태를 업데이트할 수 없습니다. 고유한 배포 ID를 검색할 수 없습니다.", + "loc.messages.PackageDeploymentSuccess": "웹 패키지를 App Service에 배포했습니다.", + "loc.messages.PackageDeploymentFailed": "웹 패키지를 App Service에 배포하지 못했습니다.", + "loc.messages.Runningcommand": "%s 명령을 실행하고 있습니다.", + "loc.messages.Deployingwebapplicationatvirtualpathandphysicalpath": "웹 패키지 %s을(를) 가상 경로(실제 경로) %s(%s)에 배포하는 중입니다.", + "loc.messages.Successfullydeployedpackageusingkuduserviceat": "Kudu 서비스를 사용하여 %s 패키지를 %s에 배포했습니다.", + "loc.messages.Failedtodeploywebapppackageusingkuduservice": "Kudu 서비스를 사용하여 App Service 패키지를 배포하지 못했습니다. %s", + "loc.messages.Unabletodeploywebappresponsecode": "오류 코드로 인해 App Service를 배포할 수 없습니다. %s", + "loc.messages.MSDeploygeneratedpackageareonlysupportedforWindowsplatform": "MSDeploy 생성 패키지는 Windows 플랫폼에만 지원됩니다.", + "loc.messages.UnsupportedinstalledversionfoundforMSDeployversionshouldbeatleast3orabove": "MSDeploy에 대해 지원되지 않는 설치된 버전 %s을(를) 찾았습니다. 버전은 3 이상이어야 합니다.", + "loc.messages.UnabletofindthelocationofMSDeployfromregistryonmachineError": "컴퓨터의 레지스트리에서 MS 배포의 위치를 찾을 수 없습니다(오류: %s).", + "loc.messages.Nopackagefoundwithspecifiedpattern": "지정된 패턴의 패키지를 찾을 수 없습니다. %s
작업에 언급된 패키지가 빌드 또는 이전 스테이지에서 아티팩트로 게시되고 현재 작업에 다운로드되는지 확인합니다.", + "loc.messages.MorethanonepackagematchedwithspecifiedpatternPleaserestrainthesearchpattern": "지정한 패턴 %s과(와) 일치하는 패키지가 두 개 이상 있습니다. 검색 패턴을 제한하세요.", + "loc.messages.Trytodeploywebappagainwithappofflineoptionselected": "[응용 프로그램을 오프라인으로 만들기] 옵션을 선택하고 App Service를 다시 배포해 보세요.", + "loc.messages.Trytodeploywebappagainwithrenamefileoptionselected": "[잠겨 있는 파일 이름 바꾸기] 옵션을 선택하고 App Service를 다시 배포해 보세요.", + "loc.messages.NOJSONfilematchedwithspecificpattern": "특정 패턴과 일치하는 JSON 파일이 없음: %s", + "loc.messages.Configfiledoesntexists": "구성 파일 %s이(가) 없습니다.", + "loc.messages.Failedtowritetoconfigfilewitherror": "구성 파일 %s에 쓰지 못했습니다(오류: %s).", + "loc.messages.AppOfflineModeenabled": "앱 오프라인 모드를 사용하도록 설정했습니다.", + "loc.messages.Failedtoenableappofflinemode": "앱 오프라인 모드를 사용하도록 설정하지 못했습니다. 상태 코드: %s(%s)", + "loc.messages.AppOflineModedisabled": "앱 오프라인 모드를 사용하지 않도록 설정했습니다.", + "loc.messages.FailedtodisableAppOfflineMode": "앱 오프라인 모드를 사용하지 않도록 설정하지 못했습니다. 상태 코드: %s(%s)", + "loc.messages.CannotPerformXdtTransformationOnNonWindowsPlatform": "Windows가 아닌 플랫폼에서는 XML 변환을 수행할 수 없습니다.", + "loc.messages.XdtTransformationErrorWhileTransforming": "%s을(를) 변환(%s 사용)하는 동안 XML 변환 오류가 발생했습니다.", + "loc.messages.PublishusingwebdeployoptionsaresupportedonlywhenusingWindowsagent": "웹 배포 옵션을 사용한 게시는 Windows 에이전트를 사용할 경우에만 지원됩니다.", + "loc.messages.Publishusingzipdeploynotsupportedformsbuildpackage": "zip 배포 옵션을 사용한 게시는 msBuild 패키지 형식에 대해 지원되지 않습니다.", + "loc.messages.Publishusingzipdeploynotsupportedforvirtualapplication": "zip 배포 옵션을 사용한 게시는 가상 애플리케이션에 대해 지원되지 않습니다.", + "loc.messages.Publishusingzipdeploydoesnotsupportwarfile": "zip 배포 또는 RunFromPackage 옵션을 사용한 게시에서는 war 파일 배포를 지원하지 않습니다.", + "loc.messages.Publishusingrunfromzipwithpostdeploymentscript": "폴더가 읽기 전용이므로 wwwroot를 변경하는 경우 RunFromPackage를 사용한 게시에서 배포 후 스크립트를 지원하지 않을 수 있습니다.", + "loc.messages.ResourceDoesntExist": "'%s' 리소스가 없습니다. 배포 전에 리소스가 있어야 합니다.", + "loc.messages.EncodeNotSupported": "%s 파일에 대한 파일 인코딩이 %s(으)로 검색되었습니다. 파일 인코딩 %s을(를) 사용할 경우 변수 대체가 지원되지 않습니다. 지원되는 인코딩은 UTF-8 및 UTF-16 LE입니다.", + "loc.messages.UnknownFileEncodeError": "%s 파일(typeCode: %s)에 대한 인코딩을 검색할 수 없습니다. 지원되는 인코딩은 UTF-8 및 UTF-16 LE입니다.", + "loc.messages.ShortFileBufferError": "파일 버퍼가 너무 짧아서 인코딩 형식을 검색할 수 없습니다. %s", + "loc.messages.FailedToUpdateAzureRMWebAppConfigDetails": "App Service 구성 정보를 업데이트하지 못했습니다. 오류: %s", + "loc.messages.SuccessfullyUpdatedAzureRMWebAppConfigDetails": "App Service 구성 정보를 업데이트했습니다.", + "loc.messages.RequestedURLforkuduphysicalpath": "Kudu 실제 경로의 요청된 URL: %s", + "loc.messages.Physicalpathalreadyexists": "실제 경로 '%s'이(가) 이미 있습니다.", + "loc.messages.KuduPhysicalpathCreatedSuccessfully": "Kudu 실제 경로를 만들었습니다. %s", + "loc.messages.FailedtocreateKuduPhysicalPath": "Kudu 실제 경로를 만들지 못했습니다. 오류: %s", + "loc.messages.FailedtocheckphysicalPath": "Kudu 실제 경로를 확인하지 못했습니다. 오류 코드: %s", + "loc.messages.VirtualApplicationDoesNotExist": "가상 응용 프로그램이 없습니다. %s", + "loc.messages.JSONParseError": "JSON 파일 %s을(를) 구문 분석할 수 없습니다. 오류: %s", + "loc.messages.JSONvariablesubstitutionappliedsuccessfully": "JSON 변수 대체를 적용했습니다.", + "loc.messages.XMLvariablesubstitutionappliedsuccessfully": "XML 변수 대체를 적용했습니다.", + "loc.messages.failedtoUploadFileToKudu": "%s 파일을 Kudu(%s)에 업로드할 수 없습니다. 상태 코드: %s", + "loc.messages.failedtoUploadFileToKuduError": "%s 파일을 Kudu(%s)에 업로드할 수 없습니다. 오류: %s", + "loc.messages.ExecuteScriptOnKudu": "Kudu 서비스에서 지정된 스크립트를 실행하는 중입니다.", + "loc.messages.FailedToRunScriptOnKuduError": "Kudu 서비스에서 스크립트를 실행할 수 없습니다. 오류: %s", + "loc.messages.FailedToRunScriptOnKudu": "Kudu에서 스크립트를 실행할 수 없음: %s. 상태 코드: %s", + "loc.messages.ScriptExecutionOnKuduSuccess": "Kudu에서 스크립트를 실행했습니다.", + "loc.messages.ScriptExecutionOnKuduFailed": "실행된 스크립트에서 반환 코드로 '%s'을(를) 반환했습니다. 오류: %s", + "loc.messages.FailedtoDeleteFileFromKudu": "%s 파일을 Kudu(%s)에서 삭제할 수 없습니다. 상태 코드: %s", + "loc.messages.FailedtoDeleteFileFromKuduError": "%s 파일을 Kudu(%s)에서 삭제할 수 없습니다. 오류: %s", + "loc.messages.ScriptFileNotFound": "스크립트 파일 '%s'을(를) 찾을 수 없습니다.", + "loc.messages.InvalidScriptFile": "잘못된 스크립트 파일 '%s'이(가) 제공되었습니다. 유효한 확장명은 Windows의 경우 .bat 및 .cmd이고, Linux의 경우 .sh입니다.", + "loc.messages.RetryForTimeoutIssue": "시간 초과 문제로 스크립트 실행에 실패했습니다. 다시 시도하는 중입니다.", + "loc.messages.stdoutFromScript": "스크립트의 표준 출력: ", + "loc.messages.stderrFromScript": "스크립트의 표준 오류: ", + "loc.messages.WebConfigAlreadyExists": "web.config 파일이 이미 있습니다. 생성하지 않습니다.", + "loc.messages.SuccessfullyGeneratedWebConfig": "web.config 파일을 생성했습니다.", + "loc.messages.FailedToGenerateWebConfig": "web.config를 생성하지 못했습니다. %s", + "loc.messages.FailedToGetKuduFileContent": "파일 콘텐츠 %s을(를) 가져오지 못했습니다. 상태 코드: %s(%s)", + "loc.messages.FailedToGetKuduFileContentError": "파일 콘텐츠 %s을(를) 가져오지 못했습니다. 오류: %s", + "loc.messages.ScriptStatusTimeout": "시간 초과로 인해 스크립트 상태를 페치할 수 없습니다.", + "loc.messages.PollingForFileTimeOut": "시간 초과로 인해 스크립트 상태를 페치할 수 없습니다. 'appservicedeploy.retrytimeout' 변수를 필요한 시간(분)으로 설정하여 시간 제한을 늘릴 수 있습니다.", + "loc.messages.InvalidPollOption": "잘못된 폴링 옵션이 제공됨: %s.", + "loc.messages.MissingAppTypeWebConfigParameters": "Web.config 매개 변수에 '-appType' 특성이 없습니다. '-appType'에 대해 유효한 값은 'python_Bottle', 'python_Django', 'python_Flask' 'node' 및 'Go'입니다.
예를 들어 Python Bottle 프레임워크의 경우 '-appType python_Bottle' (sans-quotes)입니다.", + "loc.messages.AutoDetectDjangoSettingsFailed": "DJANGO_SETTINGS_MODULE 'settings.py' 파일 경로를 검색할 수 없습니다. 'settings.py' 파일이 존재하는지 확인하거나 Web.config 매개 변수 입력에 '-DJANGO_SETTINGS_MODULE .settings' 형식으로 올바른 경로를 제공하세요.", + "loc.messages.FailedToApplyTransformation": "지정된 패키지에 변환을 적용할 수 없습니다. 다음을 확인하세요.", + "loc.messages.FailedToApplyTransformationReason1": "1. 빌드 중 생성된 MSBuild 패키지에 대해 변환이 이미 적용되었는지 여부를 확인합니다. 그런 경우 csproj 파일에서 각 구성에 대해 태그를 제거하고 다시 빌드합니다. ", + "loc.messages.FailedToApplyTransformationReason2": "2. 구성 파일 및 변환 파일이 패키지 내의 동일한 폴더에 있는지 확인합니다.", + "loc.messages.AutoParameterizationMessage": "Web.config의 ConnectionString 특성은 기본적으로 매개 변수가 있습니다. 'Parameters.xml' 또는 'SetParameters.xml' 파일로 배포 중 값이 재정의되므로 변환은 connectionString 특성에 아무런 영향을 미치지 않습니다. MSBuild 패키지 생성 중 p:AutoParameterizationWebConfigConnectionStrings=False를 설정하여 자동 매개 변수화를 사용하지 않도록 설정할 수 있습니다.", + "loc.messages.UnsupportedAppType": "Web.config 생성에서 '%s' 앱 형식이 지원되지 않습니다. '-appType'에 대해 유효한 값은 'python_Bottle', 'python_Django', 'python_Flask' 및 'node'입니다.", + "loc.messages.UnableToFetchAuthorityURL": "기관 URL을 페치할 수 없습니다.", + "loc.messages.UnableToFetchActiveDirectory": "Active Directory 리소스 ID를 페치할 수 없습니다.", + "loc.messages.SuccessfullyUpdatedRuntimeStackAndStartupCommand": "런타임 스택 및 시작 명령을 업데이트했습니다.", + "loc.messages.FailedToUpdateRuntimeStackAndStartupCommand": "런타임 스택 및 시작 명령을 업데이트하지 못했습니다. 오류: %s.", + "loc.messages.SuccessfullyUpdatedWebAppSettings": "앱 설정을 업데이트했습니다.", + "loc.messages.FailedToUpdateAppSettingsInConfigDetails": "앱 설정을 업데이트하지 못했습니다. 오류: %s.", + "loc.messages.UnableToGetAzureRMWebAppMetadata": "AzureRM WebApp 메타데이터를 페치하지 못했습니다. 오류 코드: %s", + "loc.messages.UnableToUpdateAzureRMWebAppMetadata": "AzureRM WebApp 메타데이터를 업데이트할 수 없습니다. 오류 코드: %s", + "loc.messages.Unabletoretrieveazureregistrycredentials": "Azure Container Registry 자격 증명을 검색할 수 없습니다.[상태 코드: '%s']", + "loc.messages.UnableToReadResponseBody": "응답 본문을 읽을 수 없습니다. 오류: %s", + "loc.messages.UnableToUpdateWebAppConfigDetails": "WebApp 구성 정보를 업데이트할 수 없습니다. 상태 코드: '%s'", + "loc.messages.AddingReleaseAnnotation": "Application Insights 리소스 '%s'에 대한 릴리스 주석을 추가하는 중", + "loc.messages.SuccessfullyAddedReleaseAnnotation": "Application Insight에 릴리스 주석 추가함: %s", + "loc.messages.FailedAddingReleaseAnnotation": "릴리스 주석을 추가하지 못했습니다. %s", + "loc.messages.RenameLockedFilesEnabled": "App Service에 대해 잠긴 파일 이름 바꾸기를 사용할 수 있습니다.", + "loc.messages.FailedToEnableRenameLockedFiles": "잠긴 파일 이름 바꾸기를 사용하도록 설정하지 못했습니다. 오류: %s", + "loc.messages.WebJobsInProgressIssue": "실행 상태의 WebJobs가 거의 없으므로 배포에서 파일을 제거할 수 없습니다. 배포 전에 연속 작업을 중지하거나 '대상에서 추가 파일 제거' 옵션을 사용하지 않을 수 있습니다.", + "loc.messages.FailedToFetchKuduAppSettings": "Kudu 앱 설정을 페치하지 못했습니다. 오류: %s", + "loc.messages.FailedToCreatePath": "Kudu에서 '%s' 경로를 만들지 못했습니다. 오류: %s", + "loc.messages.FailedToDeleteFile": "Kudu에서 '%s/%s' 파일을 삭제하지 못했습니다. 오류: %s", + "loc.messages.FailedToDeleteFolder": "Kudu에서 '%s' 폴더를 삭제하지 못했습니다. 오류: %s", + "loc.messages.FailedToUploadFile": "Kudu에서 '%s/%s' 파일을 업로드하지 못했습니다. 오류: %s", + "loc.messages.FailedToGetFileContent": "Kudu에서 파일 콘텐츠 '%s/%s'을(를) 가져오지 못했습니다. 오류: %s", + "loc.messages.FailedToListPath": "Kudu에서 '%s' 경로를 나열하지 못했습니다. 오류: %s", + "loc.messages.RetryToDeploy": "패키지 배포를 다시 시도하는 중입니다.", + "loc.messages.FailedToGetAppServiceDetails": "App Service '%s' 정보를 페치하지 못했습니다. 오류: %s", + "loc.messages.FailedToGetAppServicePublishingProfile": "App Service '%s' 게시 프로필을 페치하지 못했습니다. 오류: %s", + "loc.messages.FailedToUpdateAppServiceMetadata": "App Service '%s' 메타데이터를 업데이트하지 못했습니다. 오류: %s", + "loc.messages.FailedToGetAppServiceMetadata": "App Service '%s' 메타데이터를 가져오지 못했습니다. 오류: %s", + "loc.messages.FailedToPatchAppServiceConfiguration": "App Service '%s' 구성을 패치하지 못했습니다. 오류: %s", + "loc.messages.FailedToUpdateAppServiceConfiguration": "App Service '%s' 구성을 업데이트하지 못했습니다. 오류: %s", + "loc.messages.FailedToGetAppServiceConfiguration": "App Service '%s' 구성을 가져오지 못했습니다. 오류: %s", + "loc.messages.FailedToGetAppServicePublishingCredentials": "App Service '%s' 게시 자격 증명을 페치하지 못했습니다. 오류: %s", + "loc.messages.FailedToGetAppServiceApplicationSettings": "App Service '%s' 애플리케이션 설정을 가져오지 못했습니다. 오류: %s", + "loc.messages.FailedToUpdateAppServiceApplicationSettings": "App Service '%s' 애플리케이션 설정을 업데이트하지 못했습니다. 오류: %s", + "loc.messages.UpdatingAppServiceConfigurationSettings": "App Service 구성 설정을 업데이트하는 중입니다. 데이터: %s", + "loc.messages.UpdatedAppServiceConfigurationSettings": "App Service 구성 설정을 업데이트했습니다.", + "loc.messages.UpdatedAppServiceApplicationSettings": "App Service 응용 프로그램 설정 및 Kudu 응용 프로그램 설정을 업데이트했습니다.", + "loc.messages.UpdatedOnlyAppServiceApplicationSettings": "App Service 애플리케이션 설정을 업데이트했습니다.", + "loc.messages.MultipleResourceGroupFoundForAppService": "App Service '%s'에 대한 리소스 그룹이 여러 개 있습니다.", + "loc.messages.PackageDeploymentUsingZipDeployFailed": "ZIP 배포를 사용한 패키지 배포에 실패했습니다. 자세한 내용은 로그를 참조하세요.", + "loc.messages.PackageDeploymentInitiated": "ZIP 배포를 사용한 패키지 배포가 시작되었습니다.", + "loc.messages.WarPackageDeploymentInitiated": "WAR 배포를 사용한 패키지 배포가 시작되었습니다.", + "loc.messages.FailedToGetDeploymentLogs": "배포 로그를 가져오지 못했습니다. 오류: %s", + "loc.messages.GoExeNameNotPresent": "Go exe 이름이 없습니다.", + "loc.messages.WarDeploymentRetry": "이전에 war 파일이 확장되지 않았으므로 war 파일 배포를 다시 시도합니다.", + "loc.messages.Updatemachinetoenablesecuretlsprotocol": "머신에서 TLS 1.2 프로토콜 이상을 사용 중인지 확인하세요. 머신에서 TLS를 사용하도록 설정하는 방법에 대해 자세히 알아보려면 https://aka.ms/enableTlsv2를 참조하세요.", + "loc.messages.CouldNotFetchAccessTokenforAzureStatusCode": "Azure에 대한 액세스 토큰을 페치할 수 없습니다. 상태 코드: %s, 상태 메시지: %s", + "loc.messages.CouldNotFetchAccessTokenforMSIDueToMSINotConfiguredProperlyStatusCode": "관리 서비스 주체에 대한 액세스 토큰을 페치할 수 없습니다. 가상 머신에 대한 MSI(관리 서비스 ID)를 구성하세요('https://aka.ms/azure-msi-docs'). 상태 코드: %s, 상태 메시지: %s", + "loc.messages.CouldNotFetchAccessTokenforMSIStatusCode": "관리 서비스 주체에 대한 액세스 토큰을 페치할 수 없습니다. 상태 코드: %s, 상태 메시지: %s", + "loc.messages.XmlParsingFailed": "publishProfileXML 파일을 구문 분석할 수 없습니다. 오류: %s", + "loc.messages.PropertyDoesntExistPublishProfile": "[%s] 속성이 게시 프로필에 없습니다.", + "loc.messages.InvalidConnectionType": "잘못된 서비스 연결 형식", + "loc.messages.InvalidImageSourceType": "잘못된 이미지 소스 유형", + "loc.messages.InvalidPublishProfile": "게시 프로필 파일이 잘못되었습니다.", + "loc.messages.ASE_SSLIssueRecommendation": "App Service에서 인증서를 사용하려면 신뢰할 수 있는 인증 기관에서 인증서에 서명해야 합니다. 웹앱에서 인증서 유효성 검사 오류가 발생하는 경우, 자체 서명된 인증서를 사용하는 중일 수 있으며 오류를 해결하려면 이름이 VSTS_ARM_REST_IGNORE_SSL_ERRORS인 변수를 빌드 또는 릴리스 파이프라인에서 true 값으로 설정해야 합니다.", + "loc.messages.ZipDeployLogsURL": "zip 배포 로그는 %s에서 볼 수 있습니다.", + "loc.messages.DeployLogsURL": "배포 로그는 %s에서 볼 수 있습니다.", + "loc.messages.AppServiceApplicationURL": "App Service 애플리케이션 URL: %s", + "loc.messages.ASE_WebDeploySSLIssueRecommendation": "App Service에서 인증서를 사용하려면 신뢰할 수 있는 인증 기관에서 인증서에 서명해야 합니다. 웹앱에서 인증서 유효성 검사 오류가 발생하는 경우 자체 서명된 인증서를 사용하는 것 같으며, 오류를 해결하려면 웹 배포 옵션의 추가 인수에 -allowUntrusted를 전달해야 합니다.", + "loc.messages.FailedToGetResourceID": "리소스 종류 '%s' 및 리소스 이름 '%s'의 리소스 ID를 가져오지 못했습니다. 오류: %s", + "loc.messages.JarPathNotPresent": "Java jar 경로가 없습니다.", + "loc.messages.FailedToUpdateApplicationInsightsResource": "Application Insights '%s' 리소스를 업데이트하지 못했습니다. 오류: %s", + "loc.messages.InvalidDockerImageName": "지정한 Docker Hub 이미지 이름이 잘못되었습니다.", + "loc.messages.MsBuildPackageNotSupported": "msBuild에서 생성된 패키지를 배포할 수 없습니다. 패키지 형식을 변경하거나 Azure App Service 배포 작업을 사용하세요.", + "loc.messages.FailedToGetStorageAccountDetails": "함수 앱에 연결된 스토리지 계정을 찾을 수 없습니다.", + "loc.messages.FailedToSyncTriggers": "함수 앱 '%s'의 트리거를 동기화하지 못했습니다. 오류: %s", + "loc.messages.SyncingFunctionTriggers": "함수 앱의 트리거를 동기화하는 중", + "loc.messages.SyncFunctionTriggersSuccess": "함수 앱의 트리거 동기화를 완료했습니다.", + "loc.messages.UpdatedRunFromPackageSettings": "WEBSITE_RUN_FROM_PACKAGE 애플리케이션 설정을 %s(으)로 업데이트했습니다." +} \ No newline at end of file diff --git a/Tasks/AzureFunctionAppV2/Strings/resources.resjson/ru-RU/resources.resjson b/Tasks/AzureFunctionAppV2/Strings/resources.resjson/ru-RU/resources.resjson new file mode 100644 index 000000000000..921968ec4068 --- /dev/null +++ b/Tasks/AzureFunctionAppV2/Strings/resources.resjson/ru-RU/resources.resjson @@ -0,0 +1,189 @@ +{ + "loc.friendlyName": "Функции Azure", + "loc.helpMarkDown": "[См. дополнительные сведения об этой задаче](https://aka.ms/azurefunctiondeployreadme)", + "loc.description": "Обновление приложения-функции с помощью .NET, Python, JavaScript, PowerShell, веб-приложений на основе Java", + "loc.instanceNameFormat": "Развертывание приложения-функции Azure: $(appName)", + "loc.group.displayName.AdditionalDeploymentOptions": "Дополнительные параметры развертывания", + "loc.group.displayName.ApplicationAndConfigurationSettings": "Параметры приложения и конфигурации", + "loc.input.label.azureSubscription": "Подписка Azure", + "loc.input.help.azureSubscription": "Выберите подписку Azure Resource Manager для развертывания.", + "loc.input.label.appType": "Тип приложения", + "loc.input.label.appName": "Имя приложения", + "loc.input.help.appName": "Введите или выберите имя существующей службы приложений Azure. Будут перечислены только службы приложений для выбранного типа приложения.", + "loc.input.label.deployToSlotOrASE": "Развернуть в слоте или среде службы приложений", + "loc.input.help.deployToSlotOrASE": "Выберите вариант развертывания в существующем слоте развертывания или в среде службы приложений Azure.
В обоих случаях задаче требуется имя группы ресурсов.
Если целью развертывания является слот, по умолчанию оно выполняется в рабочем слоте. Можно также указать имя любого другого существующего слота.
Если целью развертывания является среда службы приложений Azure, оставьте имя слота \"рабочий\" и укажите имя группы ресурсов.", + "loc.input.label.resourceGroupName": "Группа ресурсов", + "loc.input.help.resourceGroupName": "Имя группы ресурсов является обязательным, если цель развертывания — слот развертывания или среда службы приложений.
Введите или выберите группу ресурсов Azure, которая содержит указанную выше службу приложений Azure.", + "loc.input.label.slotName": "Слот", + "loc.input.help.slotName": "Введите или выберите существующий слот вместо рабочего слота.", + "loc.input.label.package": "Пакет или папка", + "loc.input.help.package": "Путь к файлу пакета или папке с содержимым службы приложений, созданным MSBuild, или к сжатому ZIP- или WAR-файлу.
Поддерживаются переменные ([сборки](https://docs.microsoft.com/vsts/pipelines/build/variables) | [выпуска](https://docs.microsoft.com/vsts/pipelines/release/variables#default-variables)), а также подстановочные знаки.
Примеры: $(System.DefaultWorkingDirectory)/\\*\\*/\\*.zip или $(System.DefaultWorkingDirectory)/\\*\\*/\\*.war.", + "loc.input.label.runtimeStack": "Стек времени выполнения", + "loc.input.help.runtimeStack": "Поддерживаемые версии среды выполнения приведены в [следующем документе](https://docs.microsoft.com/azure/azure-functions/functions-versions#languages). Старые значения, например \"DOCKER|microsoft/azure-functions-*\", являются нерекомендуемыми, используйте новые значения из раскрывающегося списка.", + "loc.input.label.startUpCommand": "Команда запуска ", + "loc.input.help.startUpCommand": "Введите команду запуска, например
dotnet exec имя_файла.dll
dotnet имя_файла.dll", + "loc.input.label.customWebConfig": "Создание параметров файла web.config для приложений Python, Node.js, Go и Java", + "loc.input.help.customWebConfig": "Если в приложении отсутствует стандартный файл web.config, он будет сгенерирован и развернут в Службе приложений Azure. Значения в файле web.config можно изменить. Они могут меняться в зависимости от исполняющей среды. Например, в файле web.config приложения node.js имеются загрузочный файл и модульные значения iis_node. Возможность редактирования доступна только для сгенерированного файла web.config. [Подробнее](https://go.microsoft.com/fwlink/?linkid=843469).", + "loc.input.label.appSettings": "Параметры приложения", + "loc.input.help.appSettings": "Измените параметры веб-приложения после значения -key в синтаксисе. Значение с пробелами должно быть заключено в двойные кавычки.
Пример: -Port 5000 -RequestTimeout 5000
-WEBSITE_TIME_ZONE \"Eastern Standard Time\"", + "loc.input.label.configurationStrings": "Параметры конфигурации", + "loc.input.help.configurationStrings": "Измените параметры настройки веб-приложения после значения -key в синтаксисе. Значение с пробелами должно быть заключено в двойные кавычки.
Пример: -phpVersion 5.6 -linuxFxVersion: node|6.11", + "loc.input.label.deploymentMethod": "Метод развертывания", + "loc.input.help.deploymentMethod": "Выберите метод развертывания для приложения.", + "loc.messages.Invalidwebapppackageorfolderpathprovided": "Указан недопустимый путь к пакету службы приложений или папке: %s", + "loc.messages.SetParamFilenotfound0": "Заданный файл параметров не найден: %s", + "loc.messages.XDTTransformationsappliedsuccessfully": "XML-преобразования успешно применены.", + "loc.messages.GotconnectiondetailsforazureRMWebApp0": "Получены сведения о подключении к службе приложений Azure: \"%s\"", + "loc.messages.ErrorNoSuchDeployingMethodExists": "Ошибка: такого метода развертывания не существует.", + "loc.messages.UnabletoretrieveconnectiondetailsforazureRMWebApp": "Не удалось получить данные о подключении к Службе приложений Azure: %s. Код состояния: %s (%s)", + "loc.messages.UnabletoretrieveResourceID": "Не удалось получить сведения о подключении к службе для ресурса Azure: \"%s\". Код состояния: %s", + "loc.messages.Successfullyupdateddeploymenthistory": "Журнал развертывания (%s) успешно обновлен.", + "loc.messages.Failedtoupdatedeploymenthistory": "Не удалось обновить журнал развертывания. Ошибка: %s", + "loc.messages.WARNINGCannotupdatedeploymentstatusSCMendpointisnotenabledforthiswebsite": "ПРЕДУПРЕЖДЕНИЕ: невозможно обновить состояние развертывания, конечная точка SCM не включена для этого веб-сайта.", + "loc.messages.Unabletoretrievewebconfigdetails": "Не удалось получить сведения о конфигурации службы приложений. Код состояния: \"%s\"", + "loc.messages.Unabletoretrievewebappsettings": "Не удалось извлечь параметры приложения службы приложений. [Код состояния: \"%s\", сообщение об ошибке: \"%s\"]", + "loc.messages.Unabletoupdatewebappsettings": "Не удалось обновить параметры приложения службы приложений. Код состояния: \"%s\"", + "loc.messages.CannotupdatedeploymentstatusuniquedeploymentIdCannotBeRetrieved": "Не удается обновить состояние развертывания: не удается получить уникальный идентификатор развертывания.", + "loc.messages.PackageDeploymentSuccess": "Веб-пакет успешно развернут в службе приложений.", + "loc.messages.PackageDeploymentFailed": "Не удалось развернуть веб-пакет в службе приложений.", + "loc.messages.Runningcommand": "Запуск команды: %s", + "loc.messages.Deployingwebapplicationatvirtualpathandphysicalpath": "Развертывание веб-пакета %s по виртуальному пути (физическому пути): %s (%s)", + "loc.messages.Successfullydeployedpackageusingkuduserviceat": "Пакет %s успешно развернут при помощи службы Kudu в %s", + "loc.messages.Failedtodeploywebapppackageusingkuduservice": "Не удалось развернуть пакет службы приложений при помощи службы Kudu: %s", + "loc.messages.Unabletodeploywebappresponsecode": "Не удалось развернуть службу приложений из-за ошибки: %s", + "loc.messages.MSDeploygeneratedpackageareonlysupportedforWindowsplatform": "Пакеты, созданные при помощи MSDeploy, поддерживаются только для платформы Windows.", + "loc.messages.UnsupportedinstalledversionfoundforMSDeployversionshouldbeatleast3orabove": "Установленная версия MSDeploy (%s) не поддерживается. Должна быть установлена версия 3 или более поздняя.", + "loc.messages.UnabletofindthelocationofMSDeployfromregistryonmachineError": "Не удалось определить расположение MS Deploy при помощи реестра на компьютере (ошибка: %s).", + "loc.messages.Nopackagefoundwithspecifiedpattern": "Не удалось найти пакет с указанным шаблоном: %s
Проверьте, публикуется ли пакет, упомянутый в задаче, как артефакт в сборке или на предыдущем этапе и скачан ли он в текущем задании.", + "loc.messages.MorethanonepackagematchedwithspecifiedpatternPleaserestrainthesearchpattern": "Указанному шаблону соответствует несколько пакетов: %s. Ограничьте шаблон поиска.", + "loc.messages.Trytodeploywebappagainwithappofflineoptionselected": "Попробуйте снова развернуть службу приложений, используя параметр \"Отключить приложение от сети\".", + "loc.messages.Trytodeploywebappagainwithrenamefileoptionselected": "Попробуйте снова развернуть службу приложений, используя параметр \"Переименовывать заблокированные файлы\".", + "loc.messages.NOJSONfilematchedwithspecificpattern": "Не найден файл JSON, соответствующий заданному шаблону: %s.", + "loc.messages.Configfiledoesntexists": "Файл конфигурации %s не существует.", + "loc.messages.Failedtowritetoconfigfilewitherror": "Сбой записи в файл конфигурации %s. Ошибка: %s.", + "loc.messages.AppOfflineModeenabled": "Автономный режим для приложения включен.", + "loc.messages.Failedtoenableappofflinemode": "Не удалось включить автономный режим для приложения. Код состояния: %s (%s).", + "loc.messages.AppOflineModedisabled": "Автономный режим для приложения отключен.", + "loc.messages.FailedtodisableAppOfflineMode": "Не удалось отключить автономный режим для приложения. Код состояния: %s (%s)", + "loc.messages.CannotPerformXdtTransformationOnNonWindowsPlatform": "Невозможно выполнить XML-преобразования на платформе, отличной от Windows.", + "loc.messages.XdtTransformationErrorWhileTransforming": "Ошибка XML-преобразования при преобразовании %s с помощью %s.", + "loc.messages.PublishusingwebdeployoptionsaresupportedonlywhenusingWindowsagent": "Публикация при помощи веб-развертывания поддерживается только при использовании агента для Windows.", + "loc.messages.Publishusingzipdeploynotsupportedformsbuildpackage": "Публикация путем развертывания из ZIP-файла не поддерживается для типа пакета msBuild.", + "loc.messages.Publishusingzipdeploynotsupportedforvirtualapplication": "Публикация путем развертывания из ZIP-файла не поддерживается для виртуального приложения.", + "loc.messages.Publishusingzipdeploydoesnotsupportwarfile": "При публикации с помощью развертывания из ZIP-файла или RunFromPackage не поддерживается развертывание WAR-файла.", + "loc.messages.Publishusingrunfromzipwithpostdeploymentscript": "При публикации с помощью RunFromPackage скрипт, выполняемый после развертывания, может не поддерживаться, если он вносит изменения в wwwroot, так как эта папка доступна только для чтения.", + "loc.messages.ResourceDoesntExist": "Ресурс \"%s\" не существует. Он должен существовать перед началом развертывания.", + "loc.messages.EncodeNotSupported": "Обнаруженная кодировка файла %s — %s. Подстановка переменных не поддерживается для кодировки %s. Поддерживаемые кодировки: UTF-8 и UTF-16 LE.", + "loc.messages.UnknownFileEncodeError": "Не удается определить кодировку файла %s (typeCode: %s). Поддерживаемые кодировки: UTF-8 и UTF-16 LE.", + "loc.messages.ShortFileBufferError": "Слишком короткий файловый буфер для обнаружения типа кодировки: %s.", + "loc.messages.FailedToUpdateAzureRMWebAppConfigDetails": "Не удалось изменить конфигурацию службы приложений. Ошибка: %s", + "loc.messages.SuccessfullyUpdatedAzureRMWebAppConfigDetails": "Конфигурация службы приложений успешно изменена.", + "loc.messages.RequestedURLforkuduphysicalpath": "Запрошенный URL-адрес для физического пути Kudu: %s", + "loc.messages.Physicalpathalreadyexists": "Физический путь \"%s\" уже существует.", + "loc.messages.KuduPhysicalpathCreatedSuccessfully": "Физический путь Kudu успешно создан: %s", + "loc.messages.FailedtocreateKuduPhysicalPath": "Не удалось создать физический путь Kudu. Ошибка: %s", + "loc.messages.FailedtocheckphysicalPath": "Не удалось проверить физический путь Kudu. Код ошибки: %s", + "loc.messages.VirtualApplicationDoesNotExist": "Виртуальное приложение не существует: %s", + "loc.messages.JSONParseError": "Не удалось проанализировать JSON-файл: %s. Ошибка: %s", + "loc.messages.JSONvariablesubstitutionappliedsuccessfully": "Подстановка переменных JSON успешно применена.", + "loc.messages.XMLvariablesubstitutionappliedsuccessfully": "Подстановка переменных XML применена.", + "loc.messages.failedtoUploadFileToKudu": "Не удалось отправить файл %s в Kudu (%s). Код состояния: %s", + "loc.messages.failedtoUploadFileToKuduError": "Не удалось передать файл %s в Kudu (%s). Ошибка: %s", + "loc.messages.ExecuteScriptOnKudu": "Выполнение указанного скрипта в службе Kudu.", + "loc.messages.FailedToRunScriptOnKuduError": "Не удалось выполнить скрипт в службе Kudu. Ошибка: %s", + "loc.messages.FailedToRunScriptOnKudu": "Не удалось выполнить скрипт в службе Kudu: %s. Код состояния: %s", + "loc.messages.ScriptExecutionOnKuduSuccess": "Сценарий успешно выполнен в Kudu.", + "loc.messages.ScriptExecutionOnKuduFailed": "Выполненный сценарий вернул код \"%s\". Ошибка: %s", + "loc.messages.FailedtoDeleteFileFromKudu": "Не удалось удалить файл %s из Kudu (%s). Код состояния: %s", + "loc.messages.FailedtoDeleteFileFromKuduError": "Не удалось удалить файл %s из Kudu (%s). Ошибка: %s", + "loc.messages.ScriptFileNotFound": "Файл сценария \"%s\" не найден.", + "loc.messages.InvalidScriptFile": "Указан недопустимый файл скрипта \"%s\". Допустимые расширения: .bat и .cmd в Windows, .sh в Linux", + "loc.messages.RetryForTimeoutIssue": "Сбои выполнения сценария из-за превышения времени ожидания. Выполняется повторная попытка.", + "loc.messages.stdoutFromScript": "Стандартные выходные данные сценария: ", + "loc.messages.stderrFromScript": "Стандартная ошибка сценария: ", + "loc.messages.WebConfigAlreadyExists": "Файл web.config уже существует. Он не будет сгенерирован.", + "loc.messages.SuccessfullyGeneratedWebConfig": "Файл web.config успешно сгенерирован.", + "loc.messages.FailedToGenerateWebConfig": "Не удалось сгенерировать файл web.config. %s", + "loc.messages.FailedToGetKuduFileContent": "Не удалось получить содержимое файла: %s. Код состояния: %s (%s)", + "loc.messages.FailedToGetKuduFileContentError": "Не удалось получить содержимое файла: %s. Ошибка: %s", + "loc.messages.ScriptStatusTimeout": "Не удалось получить состояние сценария, так как превышено время ожидания.", + "loc.messages.PollingForFileTimeOut": "Не удалось получить состояние сценария, так как превышено время ожидания. Чтобы увеличить время ожидания, задайте для переменной \"appservicedeploy.retrytimeout\" требуемое количество минут.", + "loc.messages.InvalidPollOption": "Указан недопустимый параметр опроса: %s.", + "loc.messages.MissingAppTypeWebConfigParameters": "Атрибут \"-appType\" отсутствует в параметрах Web.config. Допустимые значения для \"-appType\": \"python_Bottle\", \"python_Django\", \"python_Flask\", \"node\" и \"Go\".
Например, \"-appType python_Bottle\" (без кавычек), если используется платформа Python Bottle.", + "loc.messages.AutoDetectDjangoSettingsFailed": "Не удалось обнаружить путь к файлу \"settings.py\" DJANGO_SETTINGS_MODULE. Убедитесь, что файл \"settings.py\" существует, или укажите правильный путь во входных данных параметра Web.config в следующем формате: \"-DJANGO_SETTINGS_MODULE <имя_папки>.settings\".", + "loc.messages.FailedToApplyTransformation": "Не удается применить преобразование для указанного пакета. Проверьте следующее.", + "loc.messages.FailedToApplyTransformationReason1": "1. Применено ли преобразование к созданному пакету MSBuild во время сборки. Если это так, удалите тег для каждой конфигурации в CSPROJ-файле и повторите сборку. ", + "loc.messages.FailedToApplyTransformationReason2": "2. Убедитесь, что файлы конфигурации и преобразования находятся в одной и той же папке в пакете.", + "loc.messages.AutoParameterizationMessage": "Атрибуты ConnectionString в Web.config параметризованы по умолчанию. Обратите внимание, что преобразование не влияет на атрибуты connectionString, так как значение переопределяется во время развертывания файлом \"Parameters.xml\" или \"SetParameters.xml\". Вы можете отключить автоматическую параметризацию, задав /p:AutoParameterizationWebConfigConnectionStrings=False во время создания пакета MSBuild.", + "loc.messages.UnsupportedAppType": "Тип приложения \"%s\" не поддерживается при создании Web.config. Допустимые значения для \"-appType\": \"python_Bottle\", \"python_Django\", \"python_Flask\" и \"node\".", + "loc.messages.UnableToFetchAuthorityURL": "Не удается получить URL-адрес центра.", + "loc.messages.UnableToFetchActiveDirectory": "Не удается получить идентификатор ресурса Active Directory.", + "loc.messages.SuccessfullyUpdatedRuntimeStackAndStartupCommand": "Стек времени выполнения и команда запуска успешно обновлены.", + "loc.messages.FailedToUpdateRuntimeStackAndStartupCommand": "Не удалось обновить стек времени выполнения и команду запуска. Ошибка: %s.", + "loc.messages.SuccessfullyUpdatedWebAppSettings": "Параметры приложения успешно обновлены.", + "loc.messages.FailedToUpdateAppSettingsInConfigDetails": "Не удалось обновить параметры приложения. Ошибка: %s.", + "loc.messages.UnableToGetAzureRMWebAppMetadata": "Не удалось получить метаданные AzureRM WebApp. Код ошибки: %s", + "loc.messages.UnableToUpdateAzureRMWebAppMetadata": "Не удалось обновить метаданные AzureRM WebApp. Код ошибки: %s", + "loc.messages.Unabletoretrieveazureregistrycredentials": "Не удалось получить учетные данные реестра контейнеров Azure. [Код состояния: \"%s\"]", + "loc.messages.UnableToReadResponseBody": "Не удалось прочитать текст ответа. Ошибка: %s", + "loc.messages.UnableToUpdateWebAppConfigDetails": "Не удалось обновить сведения о конфигурации WebApp. StatusCode: \"%s\"", + "loc.messages.AddingReleaseAnnotation": "Добавление примечаний к выпуску для ресурса Application Insights \"%s\"", + "loc.messages.SuccessfullyAddedReleaseAnnotation": "Примечания к выпуску успешно добавлены в Application Insights: %s", + "loc.messages.FailedAddingReleaseAnnotation": "Не удалось добавить примечания к выпуску. %s", + "loc.messages.RenameLockedFilesEnabled": "Переименование заблокированных файлов для службы приложений включено.", + "loc.messages.FailedToEnableRenameLockedFiles": "Не удалось включить переименование заблокированных файлов. Ошибка: %s", + "loc.messages.WebJobsInProgressIssue": "Невозможно удалить файлы в развертывании, так как запущено несколько веб-заданий. Отключите параметр \"Удалить дополнительные файлы в месте назначения\" или остановите непрерывные задания перед развертыванием.", + "loc.messages.FailedToFetchKuduAppSettings": "Не удалось получить параметры приложения Kudu. Ошибка: %s", + "loc.messages.FailedToCreatePath": "Не удалось создать путь \"%s\" из Kudu. Ошибка: %s", + "loc.messages.FailedToDeleteFile": "Не удалось удалить файл \"%s/%s\" из Kudu. Ошибка: %s", + "loc.messages.FailedToDeleteFolder": "Не удалось удалить папку \"%s\" из Kudu. Ошибка: %s.", + "loc.messages.FailedToUploadFile": "Не удалось отправить файл \"%s/%s\" из Kudu. Ошибка: %s", + "loc.messages.FailedToGetFileContent": "Не удалось получить содержимое файла \"%s/%s\" из Kudu. Ошибка: %s", + "loc.messages.FailedToListPath": "Не удалось получить список элементов для пути \"%s\" из Kudu. Ошибка: %s", + "loc.messages.RetryToDeploy": "Повторная попытка развертывания пакета.", + "loc.messages.FailedToGetAppServiceDetails": "Не удалось получить сведения о службе приложений \"%s\". Ошибка: %s", + "loc.messages.FailedToGetAppServicePublishingProfile": "Не удалось получить профиль публикации для службы приложений \"%s\". Ошибка: %s", + "loc.messages.FailedToUpdateAppServiceMetadata": "Не удалось обновить метаданные службы приложений \"%s\". Ошибка: %s", + "loc.messages.FailedToGetAppServiceMetadata": "Не удалось получить метаданные службы приложений \"%s\". Ошибка: %s", + "loc.messages.FailedToPatchAppServiceConfiguration": "Не удалось изменить конфигурацию службы приложений \"%s\". Ошибка: %s", + "loc.messages.FailedToUpdateAppServiceConfiguration": "Не удалось обновить конфигурацию службы приложений \"%s\". Ошибка: %s", + "loc.messages.FailedToGetAppServiceConfiguration": "Не удалось получить конфигурацию службы приложений \"%s\". Ошибка: %s", + "loc.messages.FailedToGetAppServicePublishingCredentials": "Не удалось получить учетные данные публикации для службы приложений \"%s\". Ошибка: %s", + "loc.messages.FailedToGetAppServiceApplicationSettings": "Не удалось получить параметры приложения для службы приложений \"%s\". Ошибка: %s", + "loc.messages.FailedToUpdateAppServiceApplicationSettings": "Не удалось обновить параметры приложения для службы приложений \"%s\". Ошибка: %s", + "loc.messages.UpdatingAppServiceConfigurationSettings": "Выполняется попытка изменить параметры конфигурации Службы приложений. Данные: %s", + "loc.messages.UpdatedAppServiceConfigurationSettings": "Параметры конфигурации службы приложений обновлены.", + "loc.messages.UpdatedAppServiceApplicationSettings": "Параметры приложений службы приложений и параметры приложений Kudu обновлены.", + "loc.messages.UpdatedOnlyAppServiceApplicationSettings": "Параметры приложения Службы приложений обновлены.", + "loc.messages.MultipleResourceGroupFoundForAppService": "Для службы приложений \"%s\" найдено несколько групп ресурсов.", + "loc.messages.PackageDeploymentUsingZipDeployFailed": "Не удалось выполнить развертывание пакета с помощью развертывания ZIP-файла. Дополнительные сведения см. в журналах.", + "loc.messages.PackageDeploymentInitiated": "Запущено развертывание пакета с помощью ZIP Deploy.", + "loc.messages.WarPackageDeploymentInitiated": "Запущено развертывание пакета с помощью WAR Deploy.", + "loc.messages.FailedToGetDeploymentLogs": "Не удалось получить журналы развертывания. Ошибка: %s", + "loc.messages.GoExeNameNotPresent": "Отсутствует имя EXE-файла Go", + "loc.messages.WarDeploymentRetry": "Повторяется попытка развертывания WAR-файла, так как он не был развернут раньше.", + "loc.messages.Updatemachinetoenablesecuretlsprotocol": "Компьютер должен использовать протокол TLS 1.2 или более поздней версии. Дополнительные сведения о том, как включить TLS на вашем компьютере: https://aka.ms/enableTlsv2.", + "loc.messages.CouldNotFetchAccessTokenforAzureStatusCode": "Не удалось получить маркер доступа для Azure. Код состояния: %s, сообщение о состоянии: %s", + "loc.messages.CouldNotFetchAccessTokenforMSIDueToMSINotConfiguredProperlyStatusCode": "Не удалось получить маркер доступа для управляемого субъекта-службы. Настройте управляемое удостоверение службы (MSI) для виртуальной машины \"https://aka.ms/azure-msi-docs\". Код состояния: %s; сообщения о состоянии: %s.", + "loc.messages.CouldNotFetchAccessTokenforMSIStatusCode": "Не удалось получить маркер доступа для управляемого субъекта-службы. Код состояния: %s, сообщение о состоянии: %s.", + "loc.messages.XmlParsingFailed": "Не удалось проанализировать файл publishProfileXML. Ошибка: %s", + "loc.messages.PropertyDoesntExistPublishProfile": "Свойство [%s] отсутствует в профиле публикации", + "loc.messages.InvalidConnectionType": "Недопустимый тип подключения к службе", + "loc.messages.InvalidImageSourceType": "Недопустимый тип источника образа", + "loc.messages.InvalidPublishProfile": "Недопустимый файл профиля публикации.", + "loc.messages.ASE_SSLIssueRecommendation": "Чтобы использовать сертификат в службе приложений, сертификат должен быть подписан доверенным центром сертификации. Если в веб-приложении появляются ошибки проверки сертификата, возможно, вы используете самозаверяющий сертификат и для устранения этих ошибок необходимо установить значение true для переменной VSTS_ARM_REST_IGNORE_SSL_ERRORS в конвейере сборки или выпуска", + "loc.messages.ZipDeployLogsURL": "Журналы развертывания из ZIP-файла можно просмотреть в %s", + "loc.messages.DeployLogsURL": "Журналы развертывания можно просмотреть в %s", + "loc.messages.AppServiceApplicationURL": "URL-адрес приложения службы приложений: %s", + "loc.messages.ASE_WebDeploySSLIssueRecommendation": "Чтобы использовать сертификат в службе приложений, сертификат должен быть подписан доверенным центром сертификации. Если в веб-приложении появляются ошибки проверки сертификата, возможно, вы используете самозаверяющий сертификат и для устранения этих ошибок необходимо передать -allowUntrusted в дополнительных аргументах параметра веб-развертывания.", + "loc.messages.FailedToGetResourceID": "Не удалось получить идентификатор ресурса для ресурса с типом \"%s\" и именем \"%s\". Ошибка: %s", + "loc.messages.JarPathNotPresent": "Отсутствует путь к jar-файлу Java.", + "loc.messages.FailedToUpdateApplicationInsightsResource": "Не удалось обновить ресурс Application Insights \"%s\". Ошибка: %s", + "loc.messages.InvalidDockerImageName": "Указано недопустимое имя образа Docker Hub.", + "loc.messages.MsBuildPackageNotSupported": "Развертывание созданного пакета msBuild не поддерживается. Измените формат пакета или используйте задачу развертывания Службы приложений Azure.", + "loc.messages.FailedToGetStorageAccountDetails": "Не удалось найти учетную запись хранения, связанную с этим приложением-функцией.", + "loc.messages.FailedToSyncTriggers": "Не удалось синхронизировать триггеры для приложения-функции \"%s\". Ошибка: %s", + "loc.messages.SyncingFunctionTriggers": "Идет синхронизация триггеров для приложения-функции", + "loc.messages.SyncFunctionTriggersSuccess": "Синхронизация триггеров для приложения-функции успешно завершена.", + "loc.messages.UpdatedRunFromPackageSettings": "Параметр приложения WEBSITE_RUN_FROM_PACKAGE изменен на %s" +} \ No newline at end of file diff --git a/Tasks/AzureFunctionAppV2/Strings/resources.resjson/zh-CN/resources.resjson b/Tasks/AzureFunctionAppV2/Strings/resources.resjson/zh-CN/resources.resjson new file mode 100644 index 000000000000..3d2017358d64 --- /dev/null +++ b/Tasks/AzureFunctionAppV2/Strings/resources.resjson/zh-CN/resources.resjson @@ -0,0 +1,189 @@ +{ + "loc.friendlyName": "Azure Functions", + "loc.helpMarkDown": "[详细了解此任务](https://aka.ms/azurefunctiondeployreadme)", + "loc.description": "使用基于 .NET、Python、JavaScript、PowerShell、Java 的 Web 应用程序更新函数应用", + "loc.instanceNameFormat": "Azure 函数应用部署: $(appName)", + "loc.group.displayName.AdditionalDeploymentOptions": "其他部署选项", + "loc.group.displayName.ApplicationAndConfigurationSettings": "应用程序和配置设置", + "loc.input.label.azureSubscription": "Azure 订阅", + "loc.input.help.azureSubscription": "为部署选择 Azure 资源管理器订阅。", + "loc.input.label.appType": "应用类型", + "loc.input.label.appName": "应用名称", + "loc.input.help.appName": "输入或选择现有 Azure 应用服务的名称。只会列出基于所选应用类型的应用服务。", + "loc.input.label.deployToSlotOrASE": "部署到槽或应用服务环境", + "loc.input.help.deployToSlotOrASE": "选择要部署到现有部署槽或 Azure 应用服务环境的选项。
对于这两个目标,任务需要资源组名称。
如果部署目标是槽,默认部署到生产槽。此外还可以提供任何其他现有的槽名称。
如果部署目标是 Azure 应用服务环境,则将槽名称保留为“生产”并指定资源组名称即可。", + "loc.input.label.resourceGroupName": "资源组", + "loc.input.help.resourceGroupName": "当部署目标是部署槽或应用服务环境时,需要资源组名称。
输入或选择包含上面指定的 Azure 应用服务的 Azure 资源组。", + "loc.input.label.slotName": "槽", + "loc.input.help.slotName": "输入或选择生产槽以外的现有槽。", + "loc.input.label.package": "包或文件夹", + "loc.input.help.package": "包的文件路径或一个包含由 MSBuild 生成的应用服务内容或压缩的 zip 或 war 文件的文件夹。
变量([生成](https://docs.microsoft.com/vsts/pipelines/build/variables) | [发布](https://docs.microsoft.com/vsts/pipelines/release/variables#default-variables)),支持通配符。
例如,$(System.DefaultWorkingDirectory)/\\*\\*/\\*.zip 或 $(System.DefaultWorkingDirectory)/\\*\\*/\\*.war。", + "loc.input.label.runtimeStack": "运行时堆栈", + "loc.input.help.runtimeStack": "请查看[此文档](https://docs.microsoft.com/azure/azure-functions/functions-versions#languages),以了解受支持的运行时版本。已启用 `DOCKER|microsoft/azure-functions-*` 等旧值,请使用下拉列表中的新值。", + "loc.input.label.startUpCommand": "启动命令", + "loc.input.help.startUpCommand": "输入启动命令。例如
dotnet exec filename.dll
dotnet filename.dll", + "loc.input.label.customWebConfig": "生成适用于 Python、Node.js、Go 和 Java 应用的 web.config 参数", + "loc.input.help.customWebConfig": "如果应用程序中没有标准的 Web.config,系统将生成一个并将其部署到 Azure 应用服务。Web.config 中的值可进行编辑,并且可能因应用程序框架而异。例如,对于 node.js 应用程序,web.config 将包含启动文件和 iis_node module 模块值。此编辑功能仅适用于生成的 web.config。[了解详细信息](https://go.microsoft.com/fwlink/?linkid=843469)。", + "loc.input.label.appSettings": "应用设置", + "loc.input.help.appSettings": "按照语法 -key 值编辑 Web 应用应用程序设置。包含空格的值应括在双引号中。
示例: -Port 5000 -RequestTimeout
-WEBSITE_TIME_ZONE \"Eastern Standard Time\"", + "loc.input.label.configurationStrings": "配置设置", + "loc.input.help.configurationStrings": "按照语法 -key 值编辑 Web 应用配置设置。包含空格的值应括在双引号中。
示例: -phpVersion 5.6 -linuxFxVersion: node|6.11", + "loc.input.label.deploymentMethod": "部署方法", + "loc.input.help.deploymentMethod": "选择应用的部署方法。", + "loc.messages.Invalidwebapppackageorfolderpathprovided": "提供了无效的应用服务包或文件夹路径: %s", + "loc.messages.SetParamFilenotfound0": "设置的参数文件未找到: %s", + "loc.messages.XDTTransformationsappliedsuccessfully": "XML 转换已成功应用", + "loc.messages.GotconnectiondetailsforazureRMWebApp0": "已获取 Azure 应用服务“%s”的服务连接详细信息", + "loc.messages.ErrorNoSuchDeployingMethodExists": "错误: 不存在此种部署方法", + "loc.messages.UnabletoretrieveconnectiondetailsforazureRMWebApp": "无法检索 Azure 应用服务 %s 的服务连接详细信息。状态代码: %s (%s)", + "loc.messages.UnabletoretrieveResourceID": "无法检索 Azure 资源“%s”的服务连接详细信息。状态代码: %s", + "loc.messages.Successfullyupdateddeploymenthistory": "已成功在 %s 更新了部署历史记录", + "loc.messages.Failedtoupdatedeploymenthistory": "未能更新部署历史记录。错误: %s", + "loc.messages.WARNINGCannotupdatedeploymentstatusSCMendpointisnotenabledforthiswebsite": "警告: 无法更新部署状态: SCM 终结点没有为此网站启用", + "loc.messages.Unabletoretrievewebconfigdetails": "无法检索应用配置详细信息。状态代码:“%s”", + "loc.messages.Unabletoretrievewebappsettings": "无法检索应用服务应用程序设置。[状态代码: %s, 错误消息: %s]", + "loc.messages.Unabletoupdatewebappsettings": "无法更新应用服务应用程序设置。状态代码:“%s”", + "loc.messages.CannotupdatedeploymentstatusuniquedeploymentIdCannotBeRetrieved": "无法更新部署状态: 无法检索唯一部署 ID", + "loc.messages.PackageDeploymentSuccess": "已成功将 Web 包部署到应用服务。", + "loc.messages.PackageDeploymentFailed": "未能将 Web 包部署到应用服务。", + "loc.messages.Runningcommand": "正在运行命令: %s", + "loc.messages.Deployingwebapplicationatvirtualpathandphysicalpath": "正在部署 Web 包 %s,部署位置: 虚拟路径 %s (物理路径 %s)", + "loc.messages.Successfullydeployedpackageusingkuduserviceat": "已成功部署了包 %s (通过在 %s 使用 kudu 服务)", + "loc.messages.Failedtodeploywebapppackageusingkuduservice": "未能使用 kudu 服务 %s 部署应用服务包", + "loc.messages.Unabletodeploywebappresponsecode": "错误代码 %s 导致无法部署应用服务", + "loc.messages.MSDeploygeneratedpackageareonlysupportedforWindowsplatform": "MSDeploy 生成的包仅受 Windows 平台支持。", + "loc.messages.UnsupportedinstalledversionfoundforMSDeployversionshouldbeatleast3orabove": "为 MSDeploy 找到了不受支持的已安装版本 %s。版本应至少为 3 或以上", + "loc.messages.UnabletofindthelocationofMSDeployfromregistryonmachineError": "无法从计算机的注册表上找到 MS 部署的位置(错误: %s)", + "loc.messages.Nopackagefoundwithspecifiedpattern": "未找到具有指定模式的包: %s
请检查任务中提及的包是否在版本或上一阶段中作为项目发布,以及是否已在当前作业中下载。", + "loc.messages.MorethanonepackagematchedwithspecifiedpatternPleaserestrainthesearchpattern": "指定的模式 %s 有多个匹配的包。请限制搜索模式。", + "loc.messages.Trytodeploywebappagainwithappofflineoptionselected": "再次尝试使用所选“使应用程序脱机”选项部署应用服务。", + "loc.messages.Trytodeploywebappagainwithrenamefileoptionselected": "再次尝试使用所选“重命名锁定文件”选项部署应用服务。", + "loc.messages.NOJSONfilematchedwithspecificpattern": "没有与特定模式 %s 匹配的 JSON 文件。", + "loc.messages.Configfiledoesntexists": "配置文件 %s 不存在。", + "loc.messages.Failedtowritetoconfigfilewitherror": "未能写入配置文件 %s,错误为 %s", + "loc.messages.AppOfflineModeenabled": "已启用应用脱机模式。", + "loc.messages.Failedtoenableappofflinemode": "未能启用应用脱机模式。状态代码: %s (%s)", + "loc.messages.AppOflineModedisabled": "已禁用应用脱机模式。", + "loc.messages.FailedtodisableAppOfflineMode": "未能禁用应用脱机模式。状态代码: %s (%s)", + "loc.messages.CannotPerformXdtTransformationOnNonWindowsPlatform": "无法在非 Windows 平台上执行 XML 转换。", + "loc.messages.XdtTransformationErrorWhileTransforming": "转换 %s (通过使用 %s)时出现 XML 转换错误。", + "loc.messages.PublishusingwebdeployoptionsaresupportedonlywhenusingWindowsagent": "仅当使用 Windows 代理时才支持使用 webdeploy 选项进行发布", + "loc.messages.Publishusingzipdeploynotsupportedformsbuildpackage": "msBuild 包类型不支持使用 zip 部署选项进行发布。", + "loc.messages.Publishusingzipdeploynotsupportedforvirtualapplication": "虚拟应用程序不支持使用 zip 部署选项进行发布。", + "loc.messages.Publishusingzipdeploydoesnotsupportwarfile": "使用 zip 部署或 RunFromPackage 选项执行的发布不支持 war 文件部署。", + "loc.messages.Publishusingrunfromzipwithpostdeploymentscript": "如果对 wwwroot 进行更改,则使用 RunFromPackage 发布可能不支持后期部署脚本,因为该文件夹为只读。", + "loc.messages.ResourceDoesntExist": "资源“%s”不存在。资源应在部署前就已存在。", + "loc.messages.EncodeNotSupported": "检测到文件 %s 的文件编码为 %s。不支持使用文件编码 %s 进行变量替换。受支持的编码为 UTF-8 和 UTF-16 LE。", + "loc.messages.UnknownFileEncodeError": "无法检测文件 %s (类型代码: %s)的编码。受支持的编码为 UTF-8 和 UTF-16 LE。", + "loc.messages.ShortFileBufferError": "文件缓冲区太短,无法检测编码类型: %s", + "loc.messages.FailedToUpdateAzureRMWebAppConfigDetails": "未能更新应用服务配置详细信息。错误: %s", + "loc.messages.SuccessfullyUpdatedAzureRMWebAppConfigDetails": "已成功更新应用服务配置详细信息。", + "loc.messages.RequestedURLforkuduphysicalpath": "kudu 物理路径的请求 URL: %s", + "loc.messages.Physicalpathalreadyexists": "物理路径 \"%s\" 已存在", + "loc.messages.KuduPhysicalpathCreatedSuccessfully": "Kudu 物理路径已成功创建: %s", + "loc.messages.FailedtocreateKuduPhysicalPath": "未能创建 kudu 物理路径。错误: %s", + "loc.messages.FailedtocheckphysicalPath": "未能检查 kudu 物理路径。错误代码: %s", + "loc.messages.VirtualApplicationDoesNotExist": "不存在虚拟应用程序: %s", + "loc.messages.JSONParseError": "无法分析 JSON 文件: %s。错误: %s", + "loc.messages.JSONvariablesubstitutionappliedsuccessfully": "JSON 变量替换已成功应用。", + "loc.messages.XMLvariablesubstitutionappliedsuccessfully": "已成功应用 XML 变量替换。", + "loc.messages.failedtoUploadFileToKudu": "无法将文件 %s 上传到 Kudu (%s)。状态代码: %s", + "loc.messages.failedtoUploadFileToKuduError": "无法将文件 %s 上传到 Kudu (%s)。错误: %s", + "loc.messages.ExecuteScriptOnKudu": "正在 Kudu 服务上执行给定脚本。", + "loc.messages.FailedToRunScriptOnKuduError": "无法在 Kudu 服务上运行该脚本。错误: %s", + "loc.messages.FailedToRunScriptOnKudu": "无法在 Kudu 上运行该脚本: %s。状态代码: %s", + "loc.messages.ScriptExecutionOnKuduSuccess": "已成功在 Kudu 上执行脚本。", + "loc.messages.ScriptExecutionOnKuduFailed": "已执行的脚本返回了“%s”作为返回代码。错误: %s", + "loc.messages.FailedtoDeleteFileFromKudu": "无法从 Kudu (%s) 删除文件: %s。状态代码: %s", + "loc.messages.FailedtoDeleteFileFromKuduError": "无法删除文件 %s (位于 Kudu (%s)上)。错误: %s", + "loc.messages.ScriptFileNotFound": "找不到脚本文件“%s”。", + "loc.messages.InvalidScriptFile": "提供的脚本文件“%s”无效。有效的扩展名为 .bat 和 .cmd (对于 Windows)和 .sh (对于 Linux)", + "loc.messages.RetryForTimeoutIssue": "由于出现超时问题,脚本执行失败。请重试。", + "loc.messages.stdoutFromScript": "脚本中的标准输出:", + "loc.messages.stderrFromScript": "脚本中的标准错误:", + "loc.messages.WebConfigAlreadyExists": "web.config 文件已存在。不再生成。", + "loc.messages.SuccessfullyGeneratedWebConfig": "已成功生成 web.config 文件", + "loc.messages.FailedToGenerateWebConfig": "未能生成 web.config。%s", + "loc.messages.FailedToGetKuduFileContent": "无法获取文件内容: %s。状态代码: %s (%s)", + "loc.messages.FailedToGetKuduFileContentError": "无法获取文件内容: %s。错误: %s", + "loc.messages.ScriptStatusTimeout": "因为超时,无法提取脚本状态。", + "loc.messages.PollingForFileTimeOut": "因为超时,无法提取脚本状态。通过将 \"appservicedeploy.retrytimeout\" 变量设置为所需分钟数可以增加超时限制。", + "loc.messages.InvalidPollOption": "提供的轮询选项无效: %s。", + "loc.messages.MissingAppTypeWebConfigParameters": "Web.config 参数中缺少属性 \"-appType\"。\"-appType\" 的有效值为: \"python_Bottle\"、\"python_Django\"、\"python_Flask\"、\"node\" 和 \"Go\"。
例如,如果是 Python Bottle 框架,则应为 \"-appType python_Bottle\" (不带引号)。", + "loc.messages.AutoDetectDjangoSettingsFailed": "无法检测 DJANGO_SETTINGS_MODULE \"settings.py\" 文件路径。请确保 \"settings.py\" 文件存在或采用格式 \"-DJANGO_SETTINGS_MODULE .settings\" 在 Web.config 参数输出中提供正确的路径", + "loc.messages.FailedToApplyTransformation": "无法对给定的包应用转换。请验证以下各项。", + "loc.messages.FailedToApplyTransformationReason1": "1. 在生成期间是否已对 MSBuild 生成的包应用转换。如果已应用,请删除 csproj 文件中每个配置的 标记,然后重新生成。", + "loc.messages.FailedToApplyTransformationReason2": "2. 确保配置文件和转换文件位于包内的同一个文件夹中。", + "loc.messages.AutoParameterizationMessage": "默认情况下,Web.config 中的 connectionString 属性已参数化。请注意,转换对 connectionString 属性无影响,因为在通过 \"Parameters.xml\" 或 \"SetParameters.xml\" 文件进行部署期间,该值将被重写。可通过在 MSBuild 包生成期间设置 /p:AutoParameterizationWebConfigConnectionStrings=False 来禁用自动参数化。", + "loc.messages.UnsupportedAppType": "Web.config 生成中不支持应用类型 \"%s\"。\"-appType\" 的有效值为: \"python_Bottle\"、\"python_Django\"、\"python_Flask\" 和 \"node\"", + "loc.messages.UnableToFetchAuthorityURL": "无法提取授权 URL。", + "loc.messages.UnableToFetchActiveDirectory": "无法提取 Active Directory 资源 ID。", + "loc.messages.SuccessfullyUpdatedRuntimeStackAndStartupCommand": "已成功更新运行时堆栈和启动命令。", + "loc.messages.FailedToUpdateRuntimeStackAndStartupCommand": "未能更新运行时堆栈和启动命令。错误: %s。", + "loc.messages.SuccessfullyUpdatedWebAppSettings": "已成功更新应用设置。", + "loc.messages.FailedToUpdateAppSettingsInConfigDetails": "未能更新应用设置。错误: %s。", + "loc.messages.UnableToGetAzureRMWebAppMetadata": "未能提取 AzureRM WebApp 元数据。错误代码: %s", + "loc.messages.UnableToUpdateAzureRMWebAppMetadata": "无法更新 AzureRM WebApp 元数据。错误代码: %s", + "loc.messages.Unabletoretrieveazureregistrycredentials": "无法检索 Azure 容器注册表凭据。[状态代码: “%s”]", + "loc.messages.UnableToReadResponseBody": "无法读取响应正文。错误: %s", + "loc.messages.UnableToUpdateWebAppConfigDetails": "无法更新 WebApp 配置详细信息。状态代码:“%s”", + "loc.messages.AddingReleaseAnnotation": "正在添加 Application Insights 资源“%s”的发布注释", + "loc.messages.SuccessfullyAddedReleaseAnnotation": "已成功向 Application Insights 添加发布注释: %s", + "loc.messages.FailedAddingReleaseAnnotation": "未能添加发布注释。%s", + "loc.messages.RenameLockedFilesEnabled": "已对应用服务启用“重命名已锁定文件”。", + "loc.messages.FailedToEnableRenameLockedFiles": "未能启用“重命名已锁定文件”。错误: %s", + "loc.messages.WebJobsInProgressIssue": "几个处于运行状态的 Web 作业阻止部署删除这些文件。可禁用“删除目标处的其他文件”选项或在部署前停止连续作业。", + "loc.messages.FailedToFetchKuduAppSettings": "未能提取 Kudu 应用设置。错误: %s", + "loc.messages.FailedToCreatePath": "未能从 Kudu 创建路径“%s”。错误: %s", + "loc.messages.FailedToDeleteFile": "未能从 Kudu 删除文件“%s/%s”。错误: %s", + "loc.messages.FailedToDeleteFolder": "未能从 Kudu 删除文件夹“%s”。错误: %s", + "loc.messages.FailedToUploadFile": "未能从 Kudu 上传文件“%s/%s”。错误: %s", + "loc.messages.FailedToGetFileContent": "未能从 Kudu 获取文件内容“%s/%s”。错误: %s", + "loc.messages.FailedToListPath": "未能从 Kudu 列出路径“%s”。错误: %s", + "loc.messages.RetryToDeploy": "正在重新尝试部署包。", + "loc.messages.FailedToGetAppServiceDetails": "未能提取应用服务“%s”详细信息。错误: %s", + "loc.messages.FailedToGetAppServicePublishingProfile": "未能提取应用服务“%s”发布配置文件。错误: %s", + "loc.messages.FailedToUpdateAppServiceMetadata": "未能更新应用服务“%s”元数据。错误: %s", + "loc.messages.FailedToGetAppServiceMetadata": "未能获取应用服务“%s”元数据。错误: %s", + "loc.messages.FailedToPatchAppServiceConfiguration": "未能修补应用服务“%s”配置。错误: %s", + "loc.messages.FailedToUpdateAppServiceConfiguration": "未能更新应用服务“%s”配置。错误: %s", + "loc.messages.FailedToGetAppServiceConfiguration": "未能获取应用服务“%s”配置。错误: %s", + "loc.messages.FailedToGetAppServicePublishingCredentials": "未能提取应用服务“%s”发布凭据。错误: %s", + "loc.messages.FailedToGetAppServiceApplicationSettings": "未能获取应用服务“%s”应用程序设置。错误: %s", + "loc.messages.FailedToUpdateAppServiceApplicationSettings": "未能更新应用服务“%s”应用程序设置。错误: %s", + "loc.messages.UpdatingAppServiceConfigurationSettings": "正在尝试更新应用服务配置设置。数据: %s", + "loc.messages.UpdatedAppServiceConfigurationSettings": "已更新应用服务配置设置。", + "loc.messages.UpdatedAppServiceApplicationSettings": "已更新应用服务应用程序设置和 Kudu 应用程序设置。", + "loc.messages.UpdatedOnlyAppServiceApplicationSettings": "已更新应用服务应用程序设置。", + "loc.messages.MultipleResourceGroupFoundForAppService": "找到了应用服务“%s”的多个资源组。", + "loc.messages.PackageDeploymentUsingZipDeployFailed": "使用 ZIP 部署的包部署失败。有关更多详细信息,请参阅日志。", + "loc.messages.PackageDeploymentInitiated": "已启动使用 ZIP 部署的包部署。", + "loc.messages.WarPackageDeploymentInitiated": "已启动使用 WAR 部署的包部署。", + "loc.messages.FailedToGetDeploymentLogs": "未能获取部署日志。错误: %s", + "loc.messages.GoExeNameNotPresent": "Go exe 名称不存在", + "loc.messages.WarDeploymentRetry": "正在重试 war 文件部署,因为它之前未成功扩展。", + "loc.messages.Updatemachinetoenablesecuretlsprotocol": "请确保计算机使用的是 TLS 1.2 协议或更高版本。请访问 https://aka.ms/enableTlsv2 获取有关如何在计算机中启用 TLS 的详细信息。", + "loc.messages.CouldNotFetchAccessTokenforAzureStatusCode": "无法提取 Azure 的访问令牌。状态代码: %s,状态消息: %s", + "loc.messages.CouldNotFetchAccessTokenforMSIDueToMSINotConfiguredProperlyStatusCode": "无法提取托管服务主体的访问令牌。请为虚拟机配置托管服务标识(MSI)(https://aka.ms/azure-msi-docs)。状态代码: %s,状态消息: %s", + "loc.messages.CouldNotFetchAccessTokenforMSIStatusCode": "无法提取托管服务主体的访问令牌。状态代码: %s,状态消息: %s", + "loc.messages.XmlParsingFailed": "无法分析 publishProfileXML 文件,错误: %s", + "loc.messages.PropertyDoesntExistPublishProfile": "[%s]发布配置文件中不存在属性", + "loc.messages.InvalidConnectionType": "无效的服务连接类型", + "loc.messages.InvalidImageSourceType": "无效的映像源类型", + "loc.messages.InvalidPublishProfile": "发布配置文件无效。", + "loc.messages.ASE_SSLIssueRecommendation": "要在应用服务中使用某个证书,该证书必须由受信任的证书颁发机构签名。如果 Web 应用显示证书验证错误,则使用的可能是自签名证书,要解决验证问题,需要在生成或发布管道中,将名为 VSTS_ARM_REST_IGNORE_SSL_ERRORS 的变量设置为 true 值", + "loc.messages.ZipDeployLogsURL": "可以在 %s 查看 Zip 部署日志", + "loc.messages.DeployLogsURL": "可在 %s 查看部署日志", + "loc.messages.AppServiceApplicationURL": "应用服务应用程序 URL: %s", + "loc.messages.ASE_WebDeploySSLIssueRecommendation": "要在应用服务中使用某个证书,该证书必须由受信任的证书颁发机构签名。如果 Web 应用显示证书验证错误,则使用的可能是自签名证书,要解决验证问题,需要在 Web 部署选项的其他参数中传递 -allowUntrusted。", + "loc.messages.FailedToGetResourceID": "未能获取资源类型“%s”和资源名称“%s”的资源 ID。错误: %s", + "loc.messages.JarPathNotPresent": "Java jar 路径不存在", + "loc.messages.FailedToUpdateApplicationInsightsResource": "未能更新 Application Insights“%s”资源。错误: %s", + "loc.messages.InvalidDockerImageName": "提供的 Docker Hub 映像名称无效。", + "loc.messages.MsBuildPackageNotSupported": "不支持部署 msBuild 生成的包。请更改包格式或使用 Azure 应用服务部署任务。", + "loc.messages.FailedToGetStorageAccountDetails": "找不到与函数应用关联的存储帐户。", + "loc.messages.FailedToSyncTriggers": "未能同步函数应用“%s”的触发器。错误: %s", + "loc.messages.SyncingFunctionTriggers": "正在同步函数应用的触发器", + "loc.messages.SyncFunctionTriggersSuccess": "已成功完成函数应用的触发器同步", + "loc.messages.UpdatedRunFromPackageSettings": "已将 WEBSITE_RUN_FROM_PACKAGE 应用程序设置更新为 %s" +} \ No newline at end of file diff --git a/Tasks/AzureFunctionAppV2/Strings/resources.resjson/zh-TW/resources.resjson b/Tasks/AzureFunctionAppV2/Strings/resources.resjson/zh-TW/resources.resjson new file mode 100644 index 000000000000..5a20b73df507 --- /dev/null +++ b/Tasks/AzureFunctionAppV2/Strings/resources.resjson/zh-TW/resources.resjson @@ -0,0 +1,189 @@ +{ + "loc.friendlyName": "Azure Functions", + "loc.helpMarkDown": "[深入了解此工作](https://aka.ms/azurefunctiondeployreadme)", + "loc.description": "使用 .NET、Python、JavaScript、PowerShell、Java 式 Web 應用程式更新函數應用程式", + "loc.instanceNameFormat": "Azure 函數應用程式部署: $(appName)", + "loc.group.displayName.AdditionalDeploymentOptions": "其他部署選項", + "loc.group.displayName.ApplicationAndConfigurationSettings": "應用程式和組態設定", + "loc.input.label.azureSubscription": "Azure 訂閱", + "loc.input.help.azureSubscription": "選取部署的 Azure Resource Manager 訂用帳戶。", + "loc.input.label.appType": "應用程式類型", + "loc.input.label.appName": "應用程式名稱", + "loc.input.help.appName": "輸入或選取現有 Azure App Service 的名稱。僅依選取的應用程式類型列出應用程式服務。", + "loc.input.label.deployToSlotOrASE": "將部署到位置或 App Service 環境", + "loc.input.help.deployToSlotOrASE": "請選取選項以部署至現有的部署位置或 Azure App Service 環境。
對於這兩個目標而言,工作都需要資源群組名稱。
假如部署目標是位置,預設會對生產位置進行部署。此外,也能提供任何其他現有的位置名稱。
假如部署目標是 Azure App Service 環境,請將位置名稱保留為 ‘production’,並請僅指定資源群組名稱。", + "loc.input.label.resourceGroupName": "資源群組", + "loc.input.help.resourceGroupName": "當部署目標為部署位置或 App Service 環境時,資源群組名稱為必要項。
請輸入或選取包含上方所指定 Azure App Service 的 Azure 資源群組。", + "loc.input.label.slotName": "位置", + "loc.input.help.slotName": "請輸入或選取現有的位置,而不是生產位置。", + "loc.input.label.package": "套件或資料夾", + "loc.input.help.package": "包含應用程式服務內容的套件或資料夾路徑,產生該內容的來源為 MSBuild,或壓縮的 zip 或 war 檔案。
變數 ( [組建](https://docs.microsoft.com/vsts/pipelines/build/variables) | [發行](https://docs.microsoft.com/vsts/pipelines/release/variables#default-variables)),支援使用萬用字元。
例如 $(System.DefaultWorkingDirectory)/\\*\\*/\\*.zip or $(System.DefaultWorkingDirectory)/\\*\\*/\\*.war。", + "loc.input.label.runtimeStack": "執行階段堆疊", + "loc.input.help.runtimeStack": "如需支援的執行階段版本,請參閱 [本文件](https://docs.microsoft.com/azure/azure-functions/functions-versions#languages)。`DOCKER|microsoft/azure-functions-*` 等舊值已淘汰,請使用下拉式清單中的新值。", + "loc.input.label.startUpCommand": "啟動命令 ", + "loc.input.help.startUpCommand": "輸入啟動命令。例如
dotnet exec filename.dll
dotnet filename.dll", + "loc.input.label.customWebConfig": "產生 Python、Node.js、Go 和 Java 應用程式的 web.config 參數", + "loc.input.help.customWebConfig": "若應用程式沒有標準 Web.config,會予以產生並部署至 Azure App Service。Web.config 中的值可編輯,並會因應用程式架構而有所不同。例如若是 node.js 應用程式,web.config 會具有啟動檔案和 iis_node 模組值。此編輯功能僅適用於所產生的 web.config。[深入了解](https://go.microsoft.com/fwlink/?linkid=843469)。", + "loc.input.label.appSettings": "應用程式設定", + "loc.input.help.appSettings": "請使用語法「-索引鍵 值」編輯 Web 應用程式設定。若值包含空格,應將其括以雙引號。
範例: -Port 5000 -RequestTimeout 5000
-WEBSITE_TIME_ZONE \"Eastern Standard Time\"", + "loc.input.label.configurationStrings": "組態設定", + "loc.input.help.configurationStrings": "請使用語法「-索引鍵 值」編輯 Web 應用程式設定。若值包含空格,應將其括以雙引號。
範例 -phpVersion 5.6 -linuxFxVersion: node|6.11", + "loc.input.label.deploymentMethod": "部署方法", + "loc.input.help.deploymentMethod": "選擇應用程式的部署方法。", + "loc.messages.Invalidwebapppackageorfolderpathprovided": "提供的 App Service 套件或資料夾路徑無效: %s", + "loc.messages.SetParamFilenotfound0": "找不到設定參數檔案: %s", + "loc.messages.XDTTransformationsappliedsuccessfully": "已成功套用 XML 轉換", + "loc.messages.GotconnectiondetailsforazureRMWebApp0": "取得 Azure App Service 的服務連線詳細資料: '%s'", + "loc.messages.ErrorNoSuchDeployingMethodExists": "錯誤: 此類部署方法不存在", + "loc.messages.UnabletoretrieveconnectiondetailsforazureRMWebApp": "無法擷取 Azure App Service 的服務連線詳細資料 : %s。狀態碼: %s (%s)", + "loc.messages.UnabletoretrieveResourceID": "無法擷取 Azure 資源的服務連線詳細資料:'%s'。狀態碼: %s", + "loc.messages.Successfullyupdateddeploymenthistory": "已成功於 %s 更新部署歷程記錄", + "loc.messages.Failedtoupdatedeploymenthistory": "無法更新部署歷程記錄。錯誤: %s", + "loc.messages.WARNINGCannotupdatedeploymentstatusSCMendpointisnotenabledforthiswebsite": "警告: 無法更新部署狀態: 此網站未啟用 SCM 端點", + "loc.messages.Unabletoretrievewebconfigdetails": "無法擷取 App Service 組態詳細資料。狀態碼: '%s'", + "loc.messages.Unabletoretrievewebappsettings": "無法擷取 App Service 應用程式設定。[狀態碼: '%s',錯誤訊息: '%s']", + "loc.messages.Unabletoupdatewebappsettings": "無法更新 App Service 應用程式設定。狀態碼: '%s'", + "loc.messages.CannotupdatedeploymentstatusuniquedeploymentIdCannotBeRetrieved": "無法更新部署狀態: 無法擷取唯一部署識別碼", + "loc.messages.PackageDeploymentSuccess": "已成功將 Web 套件部署到 App Service。", + "loc.messages.PackageDeploymentFailed": "無法將 Web 套件部署到 App Service。", + "loc.messages.Runningcommand": "正在執行命令: %s", + "loc.messages.Deployingwebapplicationatvirtualpathandphysicalpath": "正於虛擬路徑 (實體路徑) 部署網頁套件 %s: %s (%s)", + "loc.messages.Successfullydeployedpackageusingkuduserviceat": "已成功使用 Kudu 服務部署套件 %s 於 %s ", + "loc.messages.Failedtodeploywebapppackageusingkuduservice": "無法部署使用 Kudu 服務的 App Service 套件: %s", + "loc.messages.Unabletodeploywebappresponsecode": "因以下錯誤碼而無法部署 App Service: %s", + "loc.messages.MSDeploygeneratedpackageareonlysupportedforWindowsplatform": "僅 Windows 平台支援 MSDeploy 產生的套件。", + "loc.messages.UnsupportedinstalledversionfoundforMSDeployversionshouldbeatleast3orabove": "發現對 MSDeploy 安裝了不受支援的版本: %s。版本至少應為 3 (含) 以上", + "loc.messages.UnabletofindthelocationofMSDeployfromregistryonmachineError": "電腦上的登錄找不到 MS 部署的位置 (錯誤: %s)", + "loc.messages.Nopackagefoundwithspecifiedpattern": "找不到具有指定模式的套件: %s
請確認工作中所提及的套件已在組建或上一個階段中發行為成品,並已在目前的作業中下載。", + "loc.messages.MorethanonepackagematchedwithspecifiedpatternPleaserestrainthesearchpattern": "有多個套件與指定模式相符: %s。請縮小搜尋模式範圍。", + "loc.messages.Trytodeploywebappagainwithappofflineoptionselected": "請先選取 [讓應用程式成為離線狀態] 選項,然後嘗試再次部署 App Service。", + "loc.messages.Trytodeploywebappagainwithrenamefileoptionselected": "請先選取 [重新命名鎖定的檔案] 選項,然後嘗試再次部署 App Service。", + "loc.messages.NOJSONfilematchedwithspecificpattern": "沒有符合特定模式 %s 的 JSON 檔案。", + "loc.messages.Configfiledoesntexists": "組態檔 %s 不存在。", + "loc.messages.Failedtowritetoconfigfilewitherror": "無法寫入組態檔 %s,錯誤為: %s", + "loc.messages.AppOfflineModeenabled": "已啟用 [應用程式離線] 模式。", + "loc.messages.Failedtoenableappofflinemode": "無法啟用 [應用程式離線] 模式。狀態碼: %s (%s)", + "loc.messages.AppOflineModedisabled": "已停用 [應用程式離線] 模式。", + "loc.messages.FailedtodisableAppOfflineMode": "無法停用 [應用程式離線] 模式。狀態碼: %s (%s)", + "loc.messages.CannotPerformXdtTransformationOnNonWindowsPlatform": "無法在非 Windows 平台執行 XML 轉換。", + "loc.messages.XdtTransformationErrorWhileTransforming": "轉換 %s (使用 %s) 時發生 XML 轉換錯誤。", + "loc.messages.PublishusingwebdeployoptionsaresupportedonlywhenusingWindowsagent": "僅限使用 Windows 代理程式時才可使用 webdeploy 選項發佈", + "loc.messages.Publishusingzipdeploynotsupportedformsbuildpackage": "msBuild 套件類型不支援使用 zip deploy 發佈的選項。", + "loc.messages.Publishusingzipdeploynotsupportedforvirtualapplication": "虛擬應用程式不支援使用 zip deploy 發佈的選項。", + "loc.messages.Publishusingzipdeploydoesnotsupportwarfile": "使用 zip deploy 或 RunFromPackage 選項發佈不支援 war 檔案部署。", + "loc.messages.Publishusingrunfromzipwithpostdeploymentscript": "如果使用 RunFromPackage 發佈會對 wwwroot 進行變更,就可能會因為資料夾是 ReadOnly,而不支援部署後指令碼。", + "loc.messages.ResourceDoesntExist": "資源 '%s' 不存在。應具備資源才可部署。", + "loc.messages.EncodeNotSupported": "偵測到檔案 %s 的檔案編碼為 %s。檔案編碼 %s 不支援變數替代。支援的編碼為 UTF-8 及 UTF-16 LE。", + "loc.messages.UnknownFileEncodeError": "無法偵測檔案 %s 的編碼 (typeCode: %s)。支援的編碼為 UTF-8 及 UTF-16 LE。", + "loc.messages.ShortFileBufferError": "檔案緩衝區太短而無法偵測編碼類型: %s", + "loc.messages.FailedToUpdateAzureRMWebAppConfigDetails": "無法更新 App Service 組態詳細資料。錯誤: %s", + "loc.messages.SuccessfullyUpdatedAzureRMWebAppConfigDetails": "已成功更新 App Service 組態詳細資料", + "loc.messages.RequestedURLforkuduphysicalpath": "Kudu 實體路徑的要求 URL: %s", + "loc.messages.Physicalpathalreadyexists": "實體路徑 '%s' 已存在", + "loc.messages.KuduPhysicalpathCreatedSuccessfully": "已成功建立 Kudu 實體路徑: %s", + "loc.messages.FailedtocreateKuduPhysicalPath": "無法建立 Kudu 實體路徑。錯誤 : %s", + "loc.messages.FailedtocheckphysicalPath": "無法檢查 Kudu 實體路徑。錯誤碼: %s", + "loc.messages.VirtualApplicationDoesNotExist": "虛擬應用程式不存在: %s", + "loc.messages.JSONParseError": "無法剖析 JSON 檔案: %s。錯誤: %s", + "loc.messages.JSONvariablesubstitutionappliedsuccessfully": "已成功套用 JSON 變數替代。", + "loc.messages.XMLvariablesubstitutionappliedsuccessfully": "已成功套用替代的 XML 變數。", + "loc.messages.failedtoUploadFileToKudu": "無法將檔案 %s 上傳到 Kudu (%s)。狀態碼: %s", + "loc.messages.failedtoUploadFileToKuduError": "無法將檔案 %s 上傳到 Kudu (%s)。錯誤: %s", + "loc.messages.ExecuteScriptOnKudu": "正在於 Kudu 服務上執行指定的指令碼。", + "loc.messages.FailedToRunScriptOnKuduError": "無法在 Kudu 服務上執行指令碼。錯誤: %s", + "loc.messages.FailedToRunScriptOnKudu": "無法在 Kudu 上執行指令碼: %s。狀態碼: %s", + "loc.messages.ScriptExecutionOnKuduSuccess": "已成功在 Kudu 上執行指令碼。", + "loc.messages.ScriptExecutionOnKuduFailed": "執行的指令碼傳回了下列傳回碼: '%s'。錯誤: %s", + "loc.messages.FailedtoDeleteFileFromKudu": "無法從 Kudu (%s) 刪除檔案 %s。狀態碼: %s", + "loc.messages.FailedtoDeleteFileFromKuduError": "無法從下列 Kudu 刪除檔案 %s: %s。錯誤: %s", + "loc.messages.ScriptFileNotFound": "找不到指令碼檔案 '%s'。", + "loc.messages.InvalidScriptFile": "提供的指令檔 '%s' 無效。有效的副檔名為 .bat 與 .cmd (Windows),以及 .sh (Linux)", + "loc.messages.RetryForTimeoutIssue": "因為逾時,導致指令碼執行失敗。請重試。", + "loc.messages.stdoutFromScript": "指令碼的標準輸出:", + "loc.messages.stderrFromScript": "指令碼的標準錯誤:", + "loc.messages.WebConfigAlreadyExists": "已有 web.config 檔案。未產生任何檔案。", + "loc.messages.SuccessfullyGeneratedWebConfig": "已成功產生 web.config 檔案", + "loc.messages.FailedToGenerateWebConfig": "無法產生 web.config。%s", + "loc.messages.FailedToGetKuduFileContent": "無法取得檔案內容: %s。狀態碼: %s (%s)", + "loc.messages.FailedToGetKuduFileContentError": "無法取得檔案內容: %s。錯誤: %s", + "loc.messages.ScriptStatusTimeout": "因為逾時,所以無法擷取指令碼狀態。", + "loc.messages.PollingForFileTimeOut": "因為逾時,所以無法擷取指令碼狀態。您可以將 'appservicedeploy.retrytimeout' 變數設定為所需的分鐘數來提高逾時限制。", + "loc.messages.InvalidPollOption": "提供的輪詢選項無效: %s。", + "loc.messages.MissingAppTypeWebConfigParameters": "Web.config 參數中缺少屬性 '-appType'。'-appType' 的有效值為: 'python_Bottle'、'python_Django'、'python_Flask'、'node' 和 'Go'。
假如是 Python Bottle 架構,即為 '-appType python_Bottle' (不含括號)。", + "loc.messages.AutoDetectDjangoSettingsFailed": "偵測不到 DJANGO_SETTINGS_MODULE 'settings.py' 檔案路徑。請確定 'settings.py' 檔案存在,或依下列格式在 Web.config 參數輸入中提供正確的路徑: '-DJANGO_SETTINGS_MODULE <資料夾名稱>.settings'", + "loc.messages.FailedToApplyTransformation": "無法對指定的套件套用轉換。請確認下列事項。", + "loc.messages.FailedToApplyTransformationReason1": "1. 是否已對建置期間由 MSBuild 產生的套件套用轉換。若已套用,請移除 csproj 檔案中每項設定的 標記,然後重建。", + "loc.messages.FailedToApplyTransformationReason2": "2. 確認組態檔與轉換檔皆位於套件內的同一個資料夾中。", + "loc.messages.AutoParameterizationMessage": "根據預設,Web.config 中的 ConnectionString 屬性已經過參數化。請注意,轉換對 connectionString 屬性無效,因為 'Parameters.xml' 或 'SetParameters.xml' 檔案已於部署期間覆寫該值。您可在產生 MSBuild 套件期間設定 /p:AutoParameterizationWebConfigConnectionStrings=False,停用自動參數化。", + "loc.messages.UnsupportedAppType": "產生 Web.config 時不支援應用程式類型 '%s'。'-appType' 的有效值為: 'python_Bottle'、'python_Django'、'python_Flask' 與 'node'", + "loc.messages.UnableToFetchAuthorityURL": "無法擷取授權單位 URL。", + "loc.messages.UnableToFetchActiveDirectory": "無法擷取 Active Directory 資源識別碼。", + "loc.messages.SuccessfullyUpdatedRuntimeStackAndStartupCommand": "已成功更新執行階段堆疊與啟動命令。", + "loc.messages.FailedToUpdateRuntimeStackAndStartupCommand": "無法更新執行階段堆疊與啟動命令。錯誤: %s。", + "loc.messages.SuccessfullyUpdatedWebAppSettings": "已成功更新應用程式設定。", + "loc.messages.FailedToUpdateAppSettingsInConfigDetails": "無法更新應用程式設定。錯誤: %s。", + "loc.messages.UnableToGetAzureRMWebAppMetadata": "無法擷取 AzureRM WebApp 中繼資料。錯誤碼: %s", + "loc.messages.UnableToUpdateAzureRMWebAppMetadata": "無法更新 AzureRM WebApp 中繼資料。錯誤碼: %s", + "loc.messages.Unabletoretrieveazureregistrycredentials": "無法擷取 Azure Container Registry 認證。[狀態碼: '%s']", + "loc.messages.UnableToReadResponseBody": "無法讀取回應主體。錯誤: %s", + "loc.messages.UnableToUpdateWebAppConfigDetails": "無法更新 WebApp 組態詳細資料。StatusCode: '%s'", + "loc.messages.AddingReleaseAnnotation": "正在新增 Application Insights 資源 '%s' 的版本註釋", + "loc.messages.SuccessfullyAddedReleaseAnnotation": "已成功將版本註釋新增至 Application Insights: %s", + "loc.messages.FailedAddingReleaseAnnotation": "無法新增版本註釋。%s", + "loc.messages.RenameLockedFilesEnabled": "將為 App Service 啟用的已鎖定檔案重新命名。", + "loc.messages.FailedToEnableRenameLockedFiles": "無法允許已鎖定重新命名的檔案。錯誤: %s", + "loc.messages.WebJobsInProgressIssue": "有幾個處於執行狀態的 WebJob 導致部署無法移除檔案。您可以在部署前停用 [移除目的地的其他檔案] 選項或停止連續的作業。", + "loc.messages.FailedToFetchKuduAppSettings": "無法擷取 Kudu 應用程式設定。錯誤: %s", + "loc.messages.FailedToCreatePath": "無法從 Kudu 建立路徑 '%s'。錯誤: %s", + "loc.messages.FailedToDeleteFile": "無法從 Kudu 刪除檔案 '%s/%s'。錯誤: %s", + "loc.messages.FailedToDeleteFolder": "無法從 Kudu 刪除資料夾 '%s'。錯誤: %s", + "loc.messages.FailedToUploadFile": "無法從 Kudu 上傳檔案 '%s/%s'。錯誤: %s", + "loc.messages.FailedToGetFileContent": "無法從 Kudu 取得檔案內容 '%s/%s'。錯誤: %s", + "loc.messages.FailedToListPath": "無法從 Kudu 列出路徑 '%s'。錯誤: %s", + "loc.messages.RetryToDeploy": "正在重試部署套件。", + "loc.messages.FailedToGetAppServiceDetails": "無法擷取 App Service '%s' 詳細資料。錯誤: %s", + "loc.messages.FailedToGetAppServicePublishingProfile": "無法擷取 App Service '%s' 發佈設定檔。錯誤: %s", + "loc.messages.FailedToUpdateAppServiceMetadata": "無法更新 App Service '%s' 中繼資料。錯誤: %s", + "loc.messages.FailedToGetAppServiceMetadata": "無法取得 App Service '%s' 中繼資料。錯誤: %s", + "loc.messages.FailedToPatchAppServiceConfiguration": "無法修補 App Service '%s' 組態。錯誤: %s", + "loc.messages.FailedToUpdateAppServiceConfiguration": "無法更新 App Service '%s' 組態。錯誤: %s", + "loc.messages.FailedToGetAppServiceConfiguration": "無法取得 App Service '%s' 組態。錯誤: %s", + "loc.messages.FailedToGetAppServicePublishingCredentials": "無法擷取 App Service '%s' 發佈認證。錯誤: %s", + "loc.messages.FailedToGetAppServiceApplicationSettings": "無法取得 App Service '%s' 應用程式設定。錯誤: %s", + "loc.messages.FailedToUpdateAppServiceApplicationSettings": "無法更新 App Service '%s' 應用程式設定。錯誤: %s", + "loc.messages.UpdatingAppServiceConfigurationSettings": "正在嘗試更新 App Service 組態設定。資料: %s", + "loc.messages.UpdatedAppServiceConfigurationSettings": "已更新 App Service 組態設定。", + "loc.messages.UpdatedAppServiceApplicationSettings": "已更新 App Service 應用程式設定與 Kudu 應用程式設定。", + "loc.messages.UpdatedOnlyAppServiceApplicationSettings": "已更新應用程式服務應用程式設定。", + "loc.messages.MultipleResourceGroupFoundForAppService": "找到 App Service '%s' 的多個資源群組。", + "loc.messages.PackageDeploymentUsingZipDeployFailed": "使用 ZIP Deploy 的套件部署失敗。如需詳細資料,請查看記錄。", + "loc.messages.PackageDeploymentInitiated": "已起始使用 ZIP Deploy 部署套件。", + "loc.messages.WarPackageDeploymentInitiated": "已開始使用 WAR Deploy 部署套件。", + "loc.messages.FailedToGetDeploymentLogs": "無法取得部署記錄。錯誤: %s", + "loc.messages.GoExeNameNotPresent": "沒有 Go 可執行檔的名稱", + "loc.messages.WarDeploymentRetry": "因為 war 檔案稍早未成功展開,所以正在重試其部署。", + "loc.messages.Updatemachinetoenablesecuretlsprotocol": "請確定電腦目前使用 TLS 1.2 通訊協定或更高的版本。請查看 https://aka.ms/enableTlsv2,以取得如何於您的電腦上啟用 TLS 的詳細資訊。", + "loc.messages.CouldNotFetchAccessTokenforAzureStatusCode": "無法擷取 Azure 的存取權杖。狀態碼: %s,狀態訊息: %s", + "loc.messages.CouldNotFetchAccessTokenforMSIDueToMSINotConfiguredProperlyStatusCode": "無法擷取受控服務主體的存取權杖。請設定虛擬機器的受控服務識別 (MSI) (https://aka.ms/azure-msi-docs)。狀態碼: %s,狀態訊息: %s", + "loc.messages.CouldNotFetchAccessTokenforMSIStatusCode": "無法擷取受控服務主體的存取權杖。狀態碼: %s,狀態訊息: %s", + "loc.messages.XmlParsingFailed": "無法剖析 publishProfileXML 檔案,錯誤: %s", + "loc.messages.PropertyDoesntExistPublishProfile": "[%s] 屬性不存在於發佈設定檔中", + "loc.messages.InvalidConnectionType": "服務連線類型無效", + "loc.messages.InvalidImageSourceType": "映像來源類型無效", + "loc.messages.InvalidPublishProfile": "發佈設定檔的檔案無效。", + "loc.messages.ASE_SSLIssueRecommendation": "若要在 App Service 中使用憑證,該憑證必須經過信任的憑證授權單位所簽署。若您的 Web 應用程式顯示憑證驗證錯誤,可能是您使用了自我簽署憑證。若要解決這些錯誤,您必須在建置或發行管線中將名為 VSTS_ARM_REST_IGNORE_SSL_ERRORS 的變數設為 true 值", + "loc.messages.ZipDeployLogsURL": "可於 %s 檢視 Zip 部署記錄", + "loc.messages.DeployLogsURL": "在 %s 可檢視部署記錄檔", + "loc.messages.AppServiceApplicationURL": "App Service 應用程式 URL: %s", + "loc.messages.ASE_WebDeploySSLIssueRecommendation": "若要在 App Service 中使用憑證,該憑證必須經過信任的憑證授權單位所簽署。若您的 Web 應用程式顯示憑證驗證錯誤,可能是您使用了自我簽署憑證。若要解決這些錯誤,您必須在 Web 部署選項的其他引數中傳遞 -allowUntrusted。", + "loc.messages.FailedToGetResourceID": "無法取得資源類型 '%s' 和資源名稱 '%s' 的資源識別碼。錯誤: %s", + "loc.messages.JarPathNotPresent": "沒有 Java 的 jar 路徑", + "loc.messages.FailedToUpdateApplicationInsightsResource": "無法更新 Application Insights '%s' 資源。錯誤: %s", + "loc.messages.InvalidDockerImageName": "提供的 Docker 中樞映像名稱無效。", + "loc.messages.MsBuildPackageNotSupported": "不支援部署 msBuild 產生的套件。請變更套件格式或使用 Azure App Service 部署工作。", + "loc.messages.FailedToGetStorageAccountDetails": "找不到與此函數應用程式建立關聯的儲存體帳戶。", + "loc.messages.FailedToSyncTriggers": "無法同步函數應用程式 '%s' 的觸發程序。錯誤: %s", + "loc.messages.SyncingFunctionTriggers": "正在同步函數應用程式的觸發程序", + "loc.messages.SyncFunctionTriggersSuccess": "已成功完成函數應用程式觸發程序的同步", + "loc.messages.UpdatedRunFromPackageSettings": "已將 WEBSITE_RUN_FROM_PACKAGE 應用程式設定更新為 %s" +} \ No newline at end of file diff --git a/Tasks/AzureFunctionAppV2/ThirdPartyNotices.txt b/Tasks/AzureFunctionAppV2/ThirdPartyNotices.txt new file mode 100644 index 000000000000..23bf6b698d0c --- /dev/null +++ b/Tasks/AzureFunctionAppV2/ThirdPartyNotices.txt @@ -0,0 +1,2248 @@ + +THIRD-PARTY SOFTWARE NOTICES AND INFORMATION +Do Not Translate or Localize + +Azure App Service Deploy incorporates third party material from the projects listed below. The original copyright notice and the license under which Microsoft received such third party material are set forth below. Microsoft reserves all other rights not expressly granted, whether by implication, estoppel or otherwise. + +1. abbrev (https://github.com/isaacs/abbrev-js) +2. Archiver (https://github.com/archiverjs/node-archiver) +3. archiver-utils (https://github.com/archiverjs/archiver-utils) +4. async (https://github.com/caolan/async) +5. balanced-match (https://github.com/juliangruber/balanced-match) +6. binary (https://github.com/substack/node-binary) +7. bl (Buffer List) (https://github.com/rvagg/bl) +8. brace-expansion (https://github.com/juliangruber/brace-expansion) +9. buffer-crc32 (https://github.com/brianloveswords/buffer-crc32) +10. buffers (DefinitelyTyped) (https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/buffers) +11. buffer-equal-constant-time (https://github.com/salesforce/buffer-equal-constant-time) +12. buffer-shims (https://github.com/calvinmetcalf/buffer-shims) +13. chainsaw (https://github.com/substack/node-chainsaw) +14. compress-commons (https://github.com/archiverjs/node-compress-commons) +15. concat-map (https://github.com/substack/node-concat-map) +16. core-util-is (https://github.com/isaacs/core-util-is) +17. Crc32-stream (https://github.com/archiverjs/node-crc32-stream) +18. Ctt (https://ctt.codeplex.com) +19. decompress-zip (https://github.com/bower/decompress-zip) +20. end-of-stream (https://github.com/mafintosh/end-of-stream) +21. fs.realpath (https://github.com/isaacs/fs.realpath) +22. Glob (https://github.com/isaacs/node-glob) +23. graceful-fs (https://github.com/isaacs/node-graceful-fs) +24. hoek (https://github.com/hapijs/hoek) +25. inflight (https://github.com/npm/inflight) +26. inherits (https://github.com/isaacs/inherits) +27. isarray (https://github.com/juliangruber/isarray/) +28. isemail (https://github.com/hapijs/isemail) +29. joi (https://github.com/hapijs/joi) +30. jsonwebtoken (https://github.com/auth0/node-jsonwebtoken) +31. lazystream (https://github.com/jpommerening/node-lazystream) +32. lodash (https://lodash.com/) + Includes:File(s) copyright John Resig (http://ejohn.org/blog/javascript-micro-templating/) + Includes:File(s) copyright Laura Doktorova (https://github.com/olado/doT) +33. lodash.once (https://github.com/lodash/lodash) +34. Ltx (https://github.com/node-xmpp/ltx) +35. minimatch (https://github.com/isaacs/minimatch) +36. mkpath (https://github.com/jrajav/mkpath) +37. Mockery (https://github.com/mfncooper/mockery) +38. Moment (https://github.com/moment/moment) +39. ms (https://github.com/zeit/ms) +40. Node.js (https://nodejs.org/) +41. node-ecdsa-sig-formatter (https://github.com/Brightspace/node-ecdsa-sig-formatter) +42. node-jwa (https://github.com/brianloveswords/node-jwa) +43. node-jws (https://github.com/brianloveswords/node-jws) +44. node-tar (https://github.com/npm/node-tar/) +45. node-uuid (https://github.com/broofa/node-uuid/) +46. nopt (https://github.com/npm/nopt) +47. normalize-path (https://github.com/jonschlinkert/normalize-path) +48. OpenSSL (http://www.openssl.org) +49. once (https://github.com/isaacs/once) +50. path-is-absolute (https://github.com/sindresorhus/path-is-absolute) +51. process-nextick-args (https://github.com/calvinmetcalf/process-nextick-args) +52. Q (https://github.com/kriskowal/q) +53. readable-stream (https://github.com/isaacs/readable-stream) +54. safe-buffer (https://github.com/feross/safe-buffer) +55. sax js (https://github.com/isaacs/sax-js) +56. semver (https://github.com/npm/node-semver/) +57. ShellJS (https://github.com/shelljs/shelljs) +58. string_decoder (https://github.com/rvagg/string_decoder) +59. tar-stream (https://github.com/mafintosh/tar-stream) +60. topo (https://github.com/hapijs/topo) +61. touch (https://github.com/isaacs/node-touch) +62. traverse (https://github.com/substack/js-traverse) +63. tunnel (https://github.com/koichik/node-tunnel) +64. underscore.js (http://underscorejs.org/; https://github.com/jashkenas/underscore) +65. util-deprecate (https://github.com/TooTallNate/util-deprecate) +66. VSTS-task-lib (https://github.com/Microsoft/vsts-task-lib) +67. winreg (https://github.com/fresc81/node-winreg) +68. wrappy (https://github.com/npm/wrappy) +69. Xml2JS (https://github.com/Leonidas-from-XIV/node-xml2js) +70. Xmlbuilder (https://github.com/oozcitak/xmlbuilder-js) +71. xtend (https://github.com/Raynos/xtend) +72. zip-stream (https://github.com/archiverjs/node-zip-stream) +73. uuid (https://github.com/kelektiv/node-uuid) +74. @types/node (https://www.github.com/DefinitelyTyped/DefinitelyTyped.git) +75. @types/q (https://www.github.com/DefinitelyTyped/DefinitelyTyped.git) +76. @types/mocha (https://github.com/DefinitelyTyped/DefinitelyTyped.git) + + +%% abbrev 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 abbrev NOTICES, INFORMATION, AND LICENSE + +%% Archiver NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2012-2014 Chris Talkington, 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 Archiver NOTICES, INFORMATION, AND LICENSE + +%% archiver-utils NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2015 Chris Talkington. + +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 archiver-utils NOTICES, INFORMATION, AND LICENSE + +%% async NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= + +Copyright (c) 2010-2016 Caolan McMahon + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the Software), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +========================================= +END OF async NOTICES, INFORMATION, AND LICENSE + +%% balanced-match NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +(MIT) + +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 balanced-match NOTICES, INFORMATION, AND LICENSE + +%% binary NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2012 James Halliday + +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 binary NOTICES, INFORMATION, AND LICENSE + +%% bl (Buffer List) NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) +Copyright (c) 2014 bl contributors + +bl contributors listed at https://github.com/rvagg/bl#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 bl (Buffer List) NOTICES, INFORMATION, AND LICENSE + +%% brace-expansion NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +(MIT) + +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 + +%% buffer-crc32 NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License + +Copyright (c) 2013 Brian J. Brennan + +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 buffer-crc32 NOTICES, INFORMATION, AND LICENSE + +%% buffer-equal-constant-time NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2013, GoInstant Inc., a salesforce.com company +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +* Neither the name of salesforce.com, nor GoInstant, nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +========================================= +END OF buffer-equal-constant-time NOTICES, INFORMATION, AND LICENSE + +%% buffers (DefinitelyTyped) NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +This project is licensed under the MIT license. + +Copyrights are respective of each contributor listed at the beginning of each definition file. + +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 buffers (DefinitelyTyped) NOTICES, INFORMATION, AND LICENSE + +%% buffer-shims NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +# Copyright (c) 2016 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 buffer-shims NOTICES, INFORMATION, AND LICENSE + +%% chainsaw NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright 2010 James Halliday (mail@substack.net) + +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 chainsaw NOTICES, INFORMATION, AND LICENSE + +%% compress-commons NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2014 Chris Talkington, 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 compress-commons NOTICES, INFORMATION, AND LICENSE + +%% concat-map NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) James Halliday/substack + +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 + +%% Crc32-stream NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2014 Chris Talkington, 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 Crc32-stream NOTICES, INFORMATION, AND LICENSE + +%% Ctt NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Microsoft Public License (Ms-PL) + +This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software. + +1. Definitions + +The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law. + +A "contribution" is the original software, or any additions or changes to the software. + +A "contributor" is any person that distributes its contribution under this license. + +"Licensed patents" are a contributor's patent claims that read directly on its contribution. + +2. Grant of Rights + +(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create. + +(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software. + +3. Conditions and Limitations + +(A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks. + +(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically. + +(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. + +(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. + +(E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement. +========================================= +END OF Ctt NOTICES, INFORMATION, AND LICENSE + +%% decompress-zip NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) Bower Team + +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 decompress-zip NOTICES, INFORMATION, AND LICENSE + +%% end-of-stream NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) + +Copyright (c) 2014 Mathias Buus + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the Software), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +========================================= +END OF end-of-stream 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, as follows: + + 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 + +%% graceful-fs 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 graceful-fs NOTICES, INFORMATION, AND LICENSE + +%% hoek NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= + +Copyright (c) 2011-2014, Walmart and other contributors. +Copyright (c) 2011, Yahoo Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * The names of any contributors may not be used to endorse or promote + products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + * * * + +The complete list of contributors can be found at: https://github.com/hapijs/hapi/graphs/contributors +Portions of this project were initially based on the Yahoo! Inc. Postmile project, +published at https://github.com/yahoo/postmile. +========================================= +Includes code from Deep-eql + +Copyright (c) 2013 Jake Luer jake@alogicalparadox.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 hoek 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 +========================================= +(MIT) + +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 isarray NOTICES, INFORMATION, AND LICENSE + +%% isemail NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2008-2011, Dominic Sayers +Copyright (c) 2013-2014, GlobeSherpa +Copyright (c) 2014-2015, Eli Skeggs + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +- Neither the name of Dominic Sayers nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +========================================= +END OF isemail NOTICES, INFORMATION, AND LICENSE + +%% joi NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2012-2014, Walmart and other contributors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * The names of any contributors may not be used to endorse or promote + products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + * * * + +The complete list of contributors can be found at: https://github.com/hapijs/joi/graphs/contributors +========================================= +END OF joi NOTICES, INFORMATION, AND LICENSE + +%% jsonwebtoken NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) + +Copyright (c) 2015 Auth0, Inc. (http://auth0.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 jsonwebtoken NOTICES, INFORMATION, AND LICENSE + +%% lazystream NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2013 J. Pommerening, 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 lazystream NOTICES, INFORMATION, AND LICENSE + +%% lodash 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. + +========================================= +// Based on John Resig's `tmpl` implementation (http://ejohn.org/blog/javascript-micro-templating/) + +Copyright 2008 John Resig + +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. + +========================================= +// Based on Laura Doktorova's doT.js (https://github.com/olado/doT). + +Copyright (c) 2011 Laura Doktorova + +Software includes portions from jQote2 Copyright (c) 2010 aefxx, +http://aefxx.com/ licensed 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 lodash NOTICES, INFORMATION, AND LICENSE + +%% lodash.once 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.once NOTICES, INFORMATION, AND LICENSE + +%% Ltx NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2010 Stephan Maka + +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 Ltx 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 + +%% mkpath NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (C) 2012 Jonathan Rajavuori + +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 mkpath 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 + +%% Moment NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) JS Foundation 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. +========================================= +Files with code from Closure + +Copyright (c) 2006 The Closure Library Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +========================================= +END OF Moment NOTICES, INFORMATION, AND LICENSE + +%% ms NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +(The MIT License) + +Copyright (c) 2014 Guillermo Rauch +Copyright (c) 2016 Zeit, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the Software), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +========================================= +END OF ms NOTICES, INFORMATION, AND LICENSE + +%% Node.js 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. +""" + +The Node.js license applies to all parts of Node.js that are not externally +maintained libraries. +========================================= +END OF Node.js NOTICES, INFORMATION, AND LICENSE + +%% node-ecdsa-sig-formatter NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= + Copyright 2015 D2L Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +========================================= +END OF node-ecdsa-sig-formatter NOTICES, INFORMATION, AND LICENSE + +%% node-jwa NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2013 Brian J. Brennan + +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-jwa NOTICES, INFORMATION, AND LICENSE + +%% node-jws NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2013 Brian J. Brennan + +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-jws NOTICES, INFORMATION, AND LICENSE + +%% node-tar 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 node-tar 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 + +%% nopt 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 nopt NOTICES, INFORMATION, AND LICENSE + +%% normalize-path NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) + +Copyright (c) 2014-2015, Jon Schlinkert. + +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 normalize-path NOTICES, INFORMATION, AND LICENSE + +%% OpenSSL NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= + LICENSE ISSUES + ============== + + The OpenSSL toolkit stays under a dual license, i.e. both the conditions of + the OpenSSL License and the original SSLeay license apply to the toolkit. + See below for the actual license texts. Actually both licenses are BSD-style + Open Source licenses. In case of any license issues related to OpenSSL + please contact openssl-core@openssl.org. + + OpenSSL License + --------------- + +/* ==================================================================== + * Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/) + * + * 4. The names OpenSSL Toolkit and OpenSSL Project must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called OpenSSL + * nor may OpenSSL appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/) + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED 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 OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + + Original SSLeay License + ----------------------- + +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com) + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * This product includes software written by Tim Hudson (tjh@cryptsoft.com) + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] +========================================= +END OF OpenSSL 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 + +%% path-is-absolute NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +path-is-absolute + +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. + +node.js: + +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 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�2014 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. + +The file q.js is prefaced by the following additional third-party subcomponent information: + +/*! + * + * Copyright 2009-2012 Kris Kowal under the terms of the MIT + * license found at http://github.com/kriskowal/q/raw/master/LICENSE + * + * With parts by Tyler Close + * Copyright 2007-2009 Tyler Close under the terms of the MIT X license found + * at http://www.opensource.org/licenses/mit-license.html + * Forked at ref_send.js version: 2009-05-11 + * + * With parts by Mark Miller + * Copyright (C) 2011 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +========================================= +END OF Q NOTICES, INFORMATION, AND LICENSE + +%% readable-stream NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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 + +%% 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 js 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 js 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 +========================================= + +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 string_decoder NOTICES, INFORMATION, AND LICENSE + +%% tar-stream NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) + +Copyright (c) 2014 Mathias Buus + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the Software), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +========================================= +END OF tar-stream NOTICES, INFORMATION, AND LICENSE + +%% topo NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2012-2014, Walmart and other contributors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * The names of any contributors may not be used to endorse or promote + products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + * * * + +The complete list of contributors can be found at: https://github.com/hapijs/topo/graphs/contributors +========================================= +END OF topo NOTICES, INFORMATION, AND LICENSE + +%% touch 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 touch NOTICES, INFORMATION, AND LICENSE + +%% traverse NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright 2010 James Halliday (mail@substack.net) + +This project is free software released under the MIT/X11 license: +http://www.opensource.org/licenses/mit-license.php + +Copyright 2010 James Halliday (mail@substack.net) + +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 traverse NOTICES, INFORMATION, AND LICENSE + +%% tunnel NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) + +Copyright (c) 2012 Koichi Kobayashi + +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 tunnel NOTICES, INFORMATION, AND LICENSE + +%% underscore.js NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2009-2017 Jeremy Ashkenas, DocumentCloud and Investigative +Reporters & Editors + +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 underscore.js 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 + +%% 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 + +%% winreg NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +This project is released under BSD 2-Clause License. + +Copyright (c) 2016, Paul Bottin All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +========================================= +END OF winreg 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 + +%% xtend NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2012-2014 Raynos. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the Software), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +========================================= +END OF xtend NOTICES, INFORMATION, AND LICENSE + +%% zip-stream NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2014 Chris Talkington, 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 zip-stream NOTICES, INFORMATION, AND LICENSE + +%% uuid NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +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. + +Includes Chris Veness' SHA1 + +Copyright (c) 2014 Chris Veness + +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 + +%% @types/mocha 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 @types/mocha NOTICES, INFORMATION, AND LICENSE + +%% @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 diff --git a/Tasks/AzureFunctionAppV2/azurermwebappdeployment.ts b/Tasks/AzureFunctionAppV2/azurermwebappdeployment.ts new file mode 100644 index 000000000000..76b43ea5c402 --- /dev/null +++ b/Tasks/AzureFunctionAppV2/azurermwebappdeployment.ts @@ -0,0 +1,39 @@ +import tl = require('azure-pipelines-task-lib/task'); +import path = require('path'); +import { TaskParameters, TaskParametersUtility } from './taskparameters'; +import { DeploymentFactory } from './deploymentProvider/DeploymentFactory'; +import * as Endpoint from 'azure-pipelines-tasks-azurermdeploycommon-v3/azure-arm-rest/azure-arm-endpoint'; + +async function main() { + let isDeploymentSuccess: boolean = true; + + try { + tl.setResourcePath(path.join( __dirname, 'task.json')); + tl.setResourcePath(path.join( __dirname, 'node_modules/azure-pipelines-tasks-azurermdeploycommon-v3/module.json')); + var taskParams: TaskParameters = await TaskParametersUtility.getParameters(); + var deploymentFactory: DeploymentFactory = new DeploymentFactory(taskParams); + var deploymentProvider = await deploymentFactory.GetDeploymentProvider(); + + tl.debug("Predeployment Step Started"); + await deploymentProvider.PreDeploymentStep(); + + tl.debug("Deployment Step Started"); + await deploymentProvider.DeployWebAppStep(); + } + catch(error) { + tl.debug("Deployment Failed with Error: " + error); + isDeploymentSuccess = false; + tl.setResult(tl.TaskResult.Failed, error); + } + finally { + if(deploymentProvider != null) { + await deploymentProvider.UpdateDeploymentStatus(isDeploymentSuccess); + } + + Endpoint.dispose(); + tl.debug(isDeploymentSuccess ? "Deployment Succeeded" : "Deployment failed"); + + } +} + +main(); diff --git a/Tasks/AzureFunctionAppV2/deploymentProvider/AzureRmWebAppDeploymentProvider.ts b/Tasks/AzureFunctionAppV2/deploymentProvider/AzureRmWebAppDeploymentProvider.ts new file mode 100644 index 000000000000..207db8161f2c --- /dev/null +++ b/Tasks/AzureFunctionAppV2/deploymentProvider/AzureRmWebAppDeploymentProvider.ts @@ -0,0 +1,59 @@ +import { IWebAppDeploymentProvider } from './IWebAppDeploymentProvider'; +import { TaskParameters } from '../taskparameters'; +import { KuduServiceUtility } from 'azure-pipelines-tasks-azurermdeploycommon-v3/operations/KuduServiceUtility'; +import { AzureAppService } from 'azure-pipelines-tasks-azurermdeploycommon-v3/azure-arm-rest/azure-arm-app-service'; +import { Kudu } from 'azure-pipelines-tasks-azurermdeploycommon-v3/azure-arm-rest/azure-arm-app-service-kudu'; +import { AzureAppServiceUtility } from 'azure-pipelines-tasks-azurermdeploycommon-v3/operations/AzureAppServiceUtility'; +import tl = require('azure-pipelines-task-lib/task'); +import * as ParameterParser from 'azure-pipelines-tasks-azurermdeploycommon-v3/operations/ParameterParserUtility' +import { addReleaseAnnotation } from 'azure-pipelines-tasks-azurermdeploycommon-v3/operations/ReleaseAnnotationUtility'; +import { PackageUtility } from 'azure-pipelines-tasks-azurermdeploycommon-v3/webdeployment-common/packageUtility'; +import { AzureDeployPackageArtifactAlias } from 'azure-pipelines-tasks-azurermdeploycommon-v3/Constants'; + +export class AzureRmWebAppDeploymentProvider implements IWebAppDeploymentProvider { + protected taskParams:TaskParameters; + protected appService: AzureAppService; + protected kuduService: Kudu; + protected appServiceUtility: AzureAppServiceUtility; + protected kuduServiceUtility: KuduServiceUtility; + protected virtualApplicationPath: string = ""; + protected activeDeploymentID; + + constructor(taskParams: TaskParameters) { + this.taskParams = taskParams; + let packageArtifactAlias = PackageUtility.getArtifactAlias(this.taskParams.Package.getPath()); + tl.setVariable(AzureDeployPackageArtifactAlias, packageArtifactAlias); + } + + public async PreDeploymentStep() { + this.appService = new AzureAppService(this.taskParams.azureEndpoint, this.taskParams.ResourceGroupName, this.taskParams.WebAppName, + this.taskParams.SlotName, this.taskParams.WebAppKind); + this.appServiceUtility = new AzureAppServiceUtility(this.appService); + + this.kuduService = await this.appServiceUtility.getKuduService(); + this.kuduServiceUtility = new KuduServiceUtility(this.kuduService); + } + + public async DeployWebAppStep() {} + + public async UpdateDeploymentStatus(isDeploymentSuccess: boolean) { + await addReleaseAnnotation(this.taskParams.azureEndpoint, this.appService, isDeploymentSuccess); + if(this.kuduServiceUtility) { + this.activeDeploymentID = await this.kuduServiceUtility.updateDeploymentStatus(isDeploymentSuccess, null, {'type': 'Deployment', slotName: this.appService.getSlot()}); + tl.debug('Active DeploymentId :'+ this.activeDeploymentID); + } + + let appServiceApplicationUrl: string = await this.appServiceUtility.getApplicationURL(); + console.log(tl.loc('AppServiceApplicationURL', appServiceApplicationUrl)); + tl.setVariable('AppServiceApplicationUrl', appServiceApplicationUrl); + } + + protected async PostDeploymentStep() { + if(this.taskParams.AppSettings) { + var customApplicationSettings = ParameterParser.parse(this.taskParams.AppSettings); + await this.appServiceUtility.updateAndMonitorAppSettings(customApplicationSettings); + } + + await this.appServiceUtility.updateScmTypeAndConfigurationDetails(); + } +} \ No newline at end of file diff --git a/Tasks/AzureFunctionAppV2/deploymentProvider/BuiltInLinuxWebAppDeploymentProvider.ts b/Tasks/AzureFunctionAppV2/deploymentProvider/BuiltInLinuxWebAppDeploymentProvider.ts new file mode 100644 index 000000000000..5d6a013e0a81 --- /dev/null +++ b/Tasks/AzureFunctionAppV2/deploymentProvider/BuiltInLinuxWebAppDeploymentProvider.ts @@ -0,0 +1,111 @@ +import { AzureRmWebAppDeploymentProvider } from './AzureRmWebAppDeploymentProvider'; +import tl = require('azure-pipelines-task-lib/task'); +import { PackageType } from 'azure-pipelines-tasks-azurermdeploycommon-v3/webdeployment-common/packageUtility'; +import path = require('path'); +import * as ParameterParser from 'azure-pipelines-tasks-azurermdeploycommon-v3/operations/ParameterParserUtility' + +var webCommonUtility = require('azure-pipelines-tasks-azurermdeploycommon-v3/webdeployment-common/utility.js'); +var zipUtility = require('azure-pipelines-tasks-azurermdeploycommon-v3/webdeployment-common/ziputility.js'); + +const linuxFunctionStorageSetting: string = '-WEBSITES_ENABLE_APP_SERVICE_STORAGE true'; +const linuxFunctionRuntimeSettingName: string = '-FUNCTIONS_WORKER_RUNTIME '; +const premiumPlanRunsFromPackage: string = ' -WEBSITE_RUN_FROM_PACKAGE 1'; + +const linuxFunctionRuntimeSettingValue = new Map([ + [ 'DOCKER|microsoft/azure-functions-dotnet-core2.0:2.0', 'dotnet ' ], + [ 'DOCKER|microsoft/azure-functions-node8:2.0', 'node ' ], + [ 'DOCKER|microsoft/azure-functions-python3.6:2.0', 'python '], + [ 'DOTNET|2.2', 'dotnet ' ], + [ 'DOTNET|3.1', 'dotnet ' ], + [ 'DOTNET|6.0', 'dotnet ' ], + [ 'JAVA|8', 'java ' ], + [ 'JAVA|11', 'java ' ], + [ 'NODE|8', 'node ' ], + [ 'NODE|10', 'node ' ], + [ 'NODE|12', 'node ' ], + [ 'NODE|14', 'node ' ], + [ 'NODE|16', 'node ' ], + [ 'PYTHON|3.6', 'python '], + [ 'PYTHON|3.7', 'python '], + [ 'PYTHON|3.8', 'python '], + [ 'PYTHON|3.9', 'python '] +]); + +export class BuiltInLinuxWebAppDeploymentProvider extends AzureRmWebAppDeploymentProvider { + private zipDeploymentID: string; + + public async DeployWebAppStep() { + let packageType = this.taskParams.Package.getPackageType(); + let deploymentMethodtelemetry = '{"deploymentMethod":"Zip Deploy for Linux"}'; + console.log("##vso[telemetry.publish area=TaskDeploymentMethod;feature=AzureFunctionAppDeployment]" + deploymentMethodtelemetry); + + tl.debug('Performing Linux built-in package deployment'); + var isNewValueUpdated: boolean = false; + + var linuxFunctionRuntimeSetting = ""; + if(this.taskParams.RuntimeStack && linuxFunctionRuntimeSettingValue.get(this.taskParams.RuntimeStack)) { + linuxFunctionRuntimeSetting = linuxFunctionRuntimeSettingName + linuxFunctionRuntimeSettingValue.get(this.taskParams.RuntimeStack); + } + var linuxFunctionAppSetting = linuxFunctionRuntimeSetting + linuxFunctionStorageSetting; + if(this.taskParams.isPremium) { + linuxFunctionAppSetting = linuxFunctionAppSetting + premiumPlanRunsFromPackage; + } + + var customApplicationSetting = ParameterParser.parse(linuxFunctionAppSetting); + isNewValueUpdated = await this.appServiceUtility.updateAndMonitorAppSettings(customApplicationSetting); + + if(!isNewValueUpdated) { + await this.kuduServiceUtility.warmpUp(); + } + + switch(packageType){ + case PackageType.folder: + let tempPackagePath = webCommonUtility.generateTemporaryFolderOrZipPath(tl.getVariable('AGENT.TEMPDIRECTORY'), false); + let archivedWebPackage = await zipUtility.archiveFolder(this.taskParams.Package.getPath(), "", tempPackagePath); + tl.debug("Compressed folder into zip " + archivedWebPackage); + this.zipDeploymentID = await this.kuduServiceUtility.deployUsingZipDeploy(archivedWebPackage); + break; + case PackageType.zip: + this.zipDeploymentID = await this.kuduServiceUtility.deployUsingZipDeploy(this.taskParams.Package.getPath()); + break; + + case PackageType.jar: + tl.debug("Initiated deployment via kudu service for webapp jar package : "+ this.taskParams.Package.getPath()); + var folderPath = await webCommonUtility.generateTemporaryFolderForDeployment(false, this.taskParams.Package.getPath(), PackageType.jar); + var jarName = webCommonUtility.getFileNameFromPath(this.taskParams.Package.getPath(), ".jar"); + var destRootPath = "/home/site/wwwroot/"; + var script = 'java -jar "' + destRootPath + jarName + '.jar' + '" --server.port=80'; + var initScriptFileName = "startupscript_" + jarName + ".sh"; + var initScriptFile = path.join(folderPath, initScriptFileName); + var destInitScriptPath = destRootPath + initScriptFileName; + if(!this.taskParams.AppSettings) { + this.taskParams.AppSettings = "-INIT_SCRIPT " + destInitScriptPath; + } + if(this.taskParams.AppSettings.indexOf("-INIT_SCRIPT") < 0) { + this.taskParams.AppSettings += " -INIT_SCRIPT " + destInitScriptPath; + } + this.taskParams.AppSettings = this.taskParams.AppSettings.trim(); + tl.writeFile(initScriptFile, script, { encoding: 'utf8' }); + var output = await webCommonUtility.archiveFolderForDeployment(false, folderPath); + var webPackage = output.webDeployPkg; + tl.debug("Initiated deployment via kudu service for webapp jar package : "+ webPackage); + this.zipDeploymentID = await this.kuduServiceUtility.deployUsingZipDeploy(webPackage); + break; + + default: + throw new Error(tl.loc('Invalidwebapppackageorfolderpathprovided', this.taskParams.Package.getPath())); + } + + + await this.PostDeploymentStep(); + } + + public async UpdateDeploymentStatus(isDeploymentSuccess: boolean) { + if(this.kuduServiceUtility) { + await super.UpdateDeploymentStatus(isDeploymentSuccess); + if(this.zipDeploymentID && this.activeDeploymentID && isDeploymentSuccess) { + await this.kuduServiceUtility.postZipDeployOperation(this.zipDeploymentID, this.activeDeploymentID); + } + } + } +} \ No newline at end of file diff --git a/Tasks/AzureFunctionAppV2/deploymentProvider/ConsumptionWebAppDeploymentProvider.ts b/Tasks/AzureFunctionAppV2/deploymentProvider/ConsumptionWebAppDeploymentProvider.ts new file mode 100644 index 000000000000..2cd026aae5e5 --- /dev/null +++ b/Tasks/AzureFunctionAppV2/deploymentProvider/ConsumptionWebAppDeploymentProvider.ts @@ -0,0 +1,164 @@ +import { AzureRmWebAppDeploymentProvider } from './AzureRmWebAppDeploymentProvider'; +import tl = require('azure-pipelines-task-lib/task'); +import { AzureAppService } from 'azure-pipelines-tasks-azurermdeploycommon-v3/azure-arm-rest/azure-arm-app-service'; +import { AzureAppServiceUtility } from 'azure-pipelines-tasks-azurermdeploycommon-v3/operations/AzureAppServiceUtility'; +import { PackageType } from 'azure-pipelines-tasks-azurermdeploycommon-v3/webdeployment-common/packageUtility'; +import { sleepFor } from 'azure-pipelines-tasks-azurermdeploycommon-v3/azure-arm-rest/webClient'; +import Q = require('q'); +var webCommonUtility = require('azure-pipelines-tasks-azurermdeploycommon-v3/webdeployment-common/utility.js'); +var zipUtility = require('azure-pipelines-tasks-azurermdeploycommon-v3/webdeployment-common/ziputility.js'); +var azureStorage = require('azure-storage'); +import * as ParameterParser from 'azure-pipelines-tasks-azurermdeploycommon-v3/operations/ParameterParserUtility'; + +export class ConsumptionWebAppDeploymentProvider extends AzureRmWebAppDeploymentProvider { + + public async PreDeploymentStep() { + this.appService = new AzureAppService(this.taskParams.azureEndpoint, this.taskParams.ResourceGroupName, this.taskParams.WebAppName, + this.taskParams.SlotName, this.taskParams.WebAppKind, true); + this.appServiceUtility = new AzureAppServiceUtility(this.appService); + } + + public async DeployWebAppStep() { + let deploymentMethodtelemetry = '{"deploymentMethod":"RunFromPackage to URL for Linux"}'; + console.log("##vso[telemetry.publish area=TaskDeploymentMethod;feature=AzureFunctionAppDeployment]" + deploymentMethodtelemetry); + let storageDetails = await this.findStorageAccount(); + let sasUrl = await this.uploadPackage(storageDetails, this.taskParams.Package); + let userDefinedAppSettings = this._getUserDefinedAppSettings(); + await this.publishRunFromPackage(sasUrl, userDefinedAppSettings); + + await this.PostDeploymentStep(); + } + + private async findStorageAccount() { + let appSettings = await this.appService.getApplicationSettings(); + var storageData = {}; + if(appSettings && appSettings.properties && appSettings.properties.AzureWebJobsStorage) { + let webStorageSetting = appSettings.properties.AzureWebJobsStorage; + let dictionary = getKeyValuePairs(webStorageSetting); + tl.debug(`Storage Account is: ${dictionary["AccountName"]}`); + storageData["AccountName"] = dictionary["AccountName"]; + storageData["AccountKey"] = dictionary["AccountKey"]; + } + if(!storageData["AccountName"] || !storageData["AccountKey"]) { + throw new Error(tl.loc('FailedToGetStorageAccountDetails')); + } + return storageData; + } + + private async uploadPackage(storageDetails, deployPackage) : Promise { + let defer = Q.defer(); + let storageAccount = storageDetails["AccountName"]; + let storageKey = storageDetails["AccountKey"]; + const blobService = azureStorage.createBlobService(storageAccount, storageKey); + + const containerName: string = 'azure-pipelines-deploy'; + const blobName: string = `package_${Date.now()}.zip`; + let fileName; + + switch(deployPackage.getPackageType()){ + case PackageType.folder: + let tempPackagePath = webCommonUtility.generateTemporaryFolderOrZipPath(tl.getVariable('AGENT.TEMPDIRECTORY'), false); + let archivedWebPackage; + try { + archivedWebPackage = await zipUtility.archiveFolder(deployPackage.getPath(), "", tempPackagePath); + } + catch(error) { + defer.reject(error); + } + tl.debug("Compressed folder into zip " + archivedWebPackage); + fileName = archivedWebPackage; + break; + case PackageType.zip: + fileName = deployPackage.getPath(); + break; + default: + throw new Error(tl.loc('Invalidwebapppackageorfolderpathprovided', deployPackage.getPath())); + } + + blobService.createContainerIfNotExists(containerName, error => { + if (error){ + defer.reject(error); + } + + //upoading package + blobService.createBlockBlobFromLocalFile(containerName, blobName, fileName, (error, result) => { + if (error) { + defer.reject(error); + } + + //generating SAS URL + let startDate = new Date(); + let expiryDate = new Date(startDate); + expiryDate.setFullYear(startDate.getUTCFullYear() + 1); + startDate.setMinutes(startDate.getMinutes()-5); + + let sharedAccessPolicy = { + AccessPolicy: { + Permissions: azureStorage.BlobUtilities.SharedAccessPermissions.READ, + Start: startDate, + Expiry: expiryDate + } + }; + + let token = blobService.generateSharedAccessSignature(containerName, blobName, sharedAccessPolicy); + let sasUrl = blobService.getUrl(containerName, blobName, token); + let index = sasUrl.indexOf("?"); + let sasToken: string = sasUrl.substring(index + 1); + tl.setVariable('SAS_TOKEN', sasToken, true); + tl.debug(`SAS URL is: ${sasUrl}`); + defer.resolve(sasUrl); + }); + }); + + return defer.promise; + } + + private async publishRunFromPackage(sasUrl, additionalAppSettings) { + additionalAppSettings = !!additionalAppSettings ? additionalAppSettings : {}; + additionalAppSettings['WEBSITE_RUN_FROM_PACKAGE'] = sasUrl; + + console.log(tl.loc('UpdatingAppServiceApplicationSettings', JSON.stringify(additionalAppSettings))); + await this.appService.patchApplicationSettings(additionalAppSettings); + console.log(tl.loc('UpdatedOnlyAppServiceApplicationSettings')); + console.log(tl.loc('UpdatedRunFromPackageSettings',sasUrl)); + await sleepFor(5); + console.log(tl.loc('SyncingFunctionTriggers')); + await this.appService.syncFunctionTriggers(); + console.log(tl.loc('SyncFunctionTriggersSuccess')); + } + + protected async PostDeploymentStep() { + if(this.taskParams.ConfigurationSettings) { + var customApplicationSettings = ParameterParser.parse(this.taskParams.ConfigurationSettings); + await this.appServiceUtility.updateConfigurationSettings(customApplicationSettings); + } + + await this.appServiceUtility.updateScmTypeAndConfigurationDetails(); + } + + private _getUserDefinedAppSettings() { + let userDefinedAppSettings = {}; + if(this.taskParams.AppSettings) { + var customApplicationSettings = ParameterParser.parse(this.taskParams.AppSettings); + for(var property in customApplicationSettings) { + if(!!customApplicationSettings[property] && customApplicationSettings[property].value !== undefined) { + userDefinedAppSettings[property] = customApplicationSettings[property].value; + } + } + } + + return userDefinedAppSettings; + } +} + +function getKeyValuePairs(webStorageSetting : string) { + let keyValuePair = {}; + var splitted = webStorageSetting.split(";"); + for(var keyValue of splitted) { + let indexOfSeparator = keyValue.indexOf("="); + let key: string = keyValue.substring(0,indexOfSeparator); + let value: string = keyValue.substring(indexOfSeparator + 1); + keyValuePair[key] = value; + } + return keyValuePair; +} \ No newline at end of file diff --git a/Tasks/AzureFunctionAppV2/deploymentProvider/DeploymentFactory.ts b/Tasks/AzureFunctionAppV2/deploymentProvider/DeploymentFactory.ts new file mode 100644 index 000000000000..b177de01fb24 --- /dev/null +++ b/Tasks/AzureFunctionAppV2/deploymentProvider/DeploymentFactory.ts @@ -0,0 +1,64 @@ +import { TaskParameters, DeploymentType } from '../taskparameters'; +import { BuiltInLinuxWebAppDeploymentProvider } from './BuiltInLinuxWebAppDeploymentProvider'; +import { IWebAppDeploymentProvider } from './IWebAppDeploymentProvider'; +import { WindowsWebAppZipDeployProvider } from './WindowsWebAppZipDeployProvider'; +import { WindowsWebAppRunFromZipProvider } from './WindowsWebAppRunFromZipProvider'; +import { ConsumptionWebAppDeploymentProvider } from './ConsumptionWebAppDeploymentProvider'; +import tl = require('azure-pipelines-task-lib/task'); +import { PackageType } from 'azure-pipelines-tasks-azurermdeploycommon-v3/webdeployment-common/packageUtility'; + +export class DeploymentFactory { + + private _taskParams: TaskParameters; + + constructor(taskParams: TaskParameters) { + this._taskParams = taskParams; + } + + public async GetDeploymentProvider(): Promise { + if(this._taskParams.isLinuxApp) { + tl.debug("Deployment started for linux app service"); + if(this._taskParams.isConsumption) { + return new ConsumptionWebAppDeploymentProvider(this._taskParams); + } else { + return new BuiltInLinuxWebAppDeploymentProvider(this._taskParams); + } + } else { + tl.debug("Deployment started for windows app service"); + return await this._getWindowsDeploymentProvider() + } + } + + private async _getWindowsDeploymentProvider(): Promise { + tl.debug("Package type of deployment is: "+ this._taskParams.Package.getPackageType()); + switch(this._taskParams.Package.getPackageType()){ + case PackageType.jar: + return new WindowsWebAppZipDeployProvider(this._taskParams); + default: + return await this._getWindowsDeploymentProviderForZipAndFolderPackageType(); + } + } + + private async _getWindowsDeploymentProviderForZipAndFolderPackageType(): Promise { + if(this._taskParams.DeploymentType != DeploymentType.auto) { + return await this._getUserSelectedDeploymentProviderForWindow(); + } else { + var _isMSBuildPackage = await this._taskParams.Package.isMSBuildPackage(); + if(_isMSBuildPackage) { + throw new Error(tl.loc('MsBuildPackageNotSupported', this._taskParams.Package.getPath())); + } else { + return new WindowsWebAppRunFromZipProvider(this._taskParams); + } + } + } + + private _getUserSelectedDeploymentProviderForWindow(): IWebAppDeploymentProvider { + switch(this._taskParams.DeploymentType){ + case DeploymentType.zipDeploy: + return new WindowsWebAppZipDeployProvider(this._taskParams); + case DeploymentType.runFromPackage: + return new WindowsWebAppRunFromZipProvider(this._taskParams); + } + } + +} diff --git a/Tasks/AzureFunctionAppV2/deploymentProvider/IWebAppDeploymentProvider.ts b/Tasks/AzureFunctionAppV2/deploymentProvider/IWebAppDeploymentProvider.ts new file mode 100644 index 000000000000..3ed6e50c86f4 --- /dev/null +++ b/Tasks/AzureFunctionAppV2/deploymentProvider/IWebAppDeploymentProvider.ts @@ -0,0 +1,5 @@ +export interface IWebAppDeploymentProvider{ + PreDeploymentStep(); + DeployWebAppStep(); + UpdateDeploymentStatus(isDeploymentSuccess: boolean); +} \ No newline at end of file diff --git a/Tasks/AzureFunctionAppV2/deploymentProvider/WindowsWebAppRunFromZipProvider.ts b/Tasks/AzureFunctionAppV2/deploymentProvider/WindowsWebAppRunFromZipProvider.ts new file mode 100644 index 000000000000..fd9b2a1c4c8d --- /dev/null +++ b/Tasks/AzureFunctionAppV2/deploymentProvider/WindowsWebAppRunFromZipProvider.ts @@ -0,0 +1,60 @@ +import { AzureRmWebAppDeploymentProvider } from './AzureRmWebAppDeploymentProvider'; +import tl = require('azure-pipelines-task-lib/task'); +import * as ParameterParser from 'azure-pipelines-tasks-azurermdeploycommon-v3/operations/ParameterParserUtility' +import { DeploymentType } from '../taskparameters'; +import { PackageType } from 'azure-pipelines-tasks-azurermdeploycommon-v3/webdeployment-common/packageUtility'; +import { addReleaseAnnotation } from 'azure-pipelines-tasks-azurermdeploycommon-v3/operations/ReleaseAnnotationUtility'; +import { FileTransformsUtility } from 'azure-pipelines-tasks-azurermdeploycommon-v3/operations/FileTransformsUtility.js'; +const oldRunFromZipAppSetting: string = '-WEBSITE_RUN_FROM_ZIP'; +const runFromZipAppSetting: string = '-WEBSITE_RUN_FROM_PACKAGE 1'; +var deployUtility = require('azure-pipelines-tasks-azurermdeploycommon-v3/webdeployment-common/utility.js'); +var zipUtility = require('azure-pipelines-tasks-azurermdeploycommon-v3/webdeployment-common/ziputility.js'); + +export class WindowsWebAppRunFromZipProvider extends AzureRmWebAppDeploymentProvider { + + public async DeployWebAppStep() { + let deploymentMethodtelemetry = '{"deploymentMethod":"Run from Package for Windows"}'; + console.log("##vso[telemetry.publish area=TaskDeploymentMethod;feature=AzureFunctionAppDeployment]" + deploymentMethodtelemetry); + + var webPackage = await FileTransformsUtility.applyTransformations(this.taskParams.Package.getPath(), this.taskParams.WebConfigParameters, this.taskParams.Package.getPackageType()); + + if(this.taskParams.DeploymentType === DeploymentType.runFromPackage) { + var _isMSBuildPackage = await this.taskParams.Package.isMSBuildPackage(); + if(_isMSBuildPackage) { + throw Error(tl.loc("Publishusingzipdeploynotsupportedformsbuildpackage")); + } + else if(this.taskParams.Package.getPackageType() === PackageType.war) { + throw Error(tl.loc("Publishusingzipdeploydoesnotsupportwarfile")); + } + } + + if(tl.stats(webPackage).isDirectory()) { + let tempPackagePath = deployUtility.generateTemporaryFolderOrZipPath(tl.getVariable('AGENT.TEMPDIRECTORY'), false); + webPackage = await zipUtility.archiveFolder(webPackage, "", tempPackagePath); + tl.debug("Compressed folder into zip " + webPackage); + } + + tl.debug("Initiated deployment via kudu service for webapp package : "); + + var addCustomApplicationSetting = ParameterParser.parse(runFromZipAppSetting); + var deleteCustomApplicationSetting = ParameterParser.parse(oldRunFromZipAppSetting); + var isNewValueUpdated: boolean = await this.appServiceUtility.updateAndMonitorAppSettings(addCustomApplicationSetting, deleteCustomApplicationSetting); + + if(!isNewValueUpdated) { + await this.kuduServiceUtility.warmpUp(); + } + + await this.kuduServiceUtility.deployUsingRunFromZip(webPackage, + { slotName: this.appService.getSlot() }); + + await this.PostDeploymentStep(); + } + + public async UpdateDeploymentStatus(isDeploymentSuccess: boolean) { + await addReleaseAnnotation(this.taskParams.azureEndpoint, this.appService, isDeploymentSuccess); + + let appServiceApplicationUrl: string = await this.appServiceUtility.getApplicationURL(); + console.log(tl.loc('AppServiceApplicationURL', appServiceApplicationUrl)); + tl.setVariable('AppServiceApplicationUrl', appServiceApplicationUrl); + } +} \ No newline at end of file diff --git a/Tasks/AzureFunctionAppV2/deploymentProvider/WindowsWebAppZipDeployProvider.ts b/Tasks/AzureFunctionAppV2/deploymentProvider/WindowsWebAppZipDeployProvider.ts new file mode 100644 index 000000000000..1eedff4058e6 --- /dev/null +++ b/Tasks/AzureFunctionAppV2/deploymentProvider/WindowsWebAppZipDeployProvider.ts @@ -0,0 +1,59 @@ +import { AzureRmWebAppDeploymentProvider } from './AzureRmWebAppDeploymentProvider'; +import tl = require('azure-pipelines-task-lib/task'); +import * as ParameterParser from 'azure-pipelines-tasks-azurermdeploycommon-v3/operations/ParameterParserUtility' +import { DeploymentType } from '../taskparameters'; +import { PackageType } from 'azure-pipelines-tasks-azurermdeploycommon-v3/webdeployment-common/packageUtility'; +import { FileTransformsUtility } from 'azure-pipelines-tasks-azurermdeploycommon-v3/operations/FileTransformsUtility.js'; +const removeRunFromZipAppSetting: string = '-WEBSITE_RUN_FROM_ZIP -WEBSITE_RUN_FROM_PACKAGE'; +var deployUtility = require('azure-pipelines-tasks-azurermdeploycommon-v3/webdeployment-common/utility.js'); +var zipUtility = require('azure-pipelines-tasks-azurermdeploycommon-v3/webdeployment-common/ziputility.js'); + +export class WindowsWebAppZipDeployProvider extends AzureRmWebAppDeploymentProvider { + + private zipDeploymentID: string; + + public async DeployWebAppStep() { + let deploymentMethodtelemetry = '{"deploymentMethod":"Zip Deploy for Windows"}'; + console.log("##vso[telemetry.publish area=TaskDeploymentMethod;feature=AzureFunctionAppDeployment]" + deploymentMethodtelemetry); + + var webPackage = await FileTransformsUtility.applyTransformations(this.taskParams.Package.getPath(), this.taskParams.WebConfigParameters, this.taskParams.Package.getPackageType()); + + if(this.taskParams.DeploymentType === DeploymentType.zipDeploy) { + var _isMSBuildPackage = await this.taskParams.Package.isMSBuildPackage(); + if(_isMSBuildPackage) { + throw Error(tl.loc("Publishusingzipdeploynotsupportedformsbuildpackage")); + } + else if(this.taskParams.Package.getPackageType() === PackageType.war) { + throw Error(tl.loc("Publishusingzipdeploydoesnotsupportwarfile")); + } + } + + if(tl.stats(webPackage).isDirectory()) { + let tempPackagePath = deployUtility.generateTemporaryFolderOrZipPath(tl.getVariable('AGENT.TEMPDIRECTORY'), false); + webPackage = await zipUtility.archiveFolder(webPackage, "", tempPackagePath); + tl.debug("Compressed folder into zip " + webPackage); + } + + tl.debug("Initiated deployment via kudu service for webapp package : "); + + var deleteApplicationSetting = ParameterParser.parse(removeRunFromZipAppSetting) + var isNewValueUpdated: boolean = await this.appServiceUtility.updateAndMonitorAppSettings(null, deleteApplicationSetting); + + if(!isNewValueUpdated) { + await this.kuduServiceUtility.warmpUp(); + } + + this.zipDeploymentID = await this.kuduServiceUtility.deployUsingZipDeploy(webPackage); + + await this.PostDeploymentStep(); + } + + public async UpdateDeploymentStatus(isDeploymentSuccess: boolean) { + if(this.kuduServiceUtility) { + await super.UpdateDeploymentStatus(isDeploymentSuccess); + if(this.zipDeploymentID && this.activeDeploymentID && isDeploymentSuccess) { + await this.kuduServiceUtility.postZipDeployOperation(this.zipDeploymentID, this.activeDeploymentID); + } + } + } +} \ No newline at end of file diff --git a/Tasks/AzureFunctionAppV2/icon.png b/Tasks/AzureFunctionAppV2/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..76a581b1090d318bb7481195ae1e7b301664cdcf GIT binary patch literal 1373 zcmV-j1)}Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf1oBBlK~z{r#g<)6 zn`IQo|Fn!j!EG?emTYF(U>I2>lrbtWHpR`2883FBPA`mZQDf8_HF}{&FZ@XKO2?cq zolb8IFytloj&4guB;{3prygKrL)_Va%c$ebJ4SPg7@-jtVNbq-8k1g_r)B->2cLZeO( zjRs5y6rZ!ySFe1uML*-iSwrLL+)W2$&8`Iksiw{q{|E5&)8HCY_AniiW94JT?*+D;F!e!f&$OZa zsdBhHeiZOb?<}JfM#vzV_Rqo2uurn88-tAtgRcU^?=c1IOt(k8=HO9`LdGth#MDTQ z%oE^XN-tn!>X`~JN^4uO)@nibGZn~4;k%jz2gFM$nkhQb_;_ikaiM2^>~gahmdPg* zP*M<(TF}NtmLp{}S4)SO#w4O8r(0mX7 z41O9&=K*PyQ@Ly$N;cL;DyLu)ry|e6p05|*CpqaUy!~D&SEIPaA;B`io9|((iPPUl zGA@j8^jh@f6H=|fIyw-%GTE9^XtSJzn~%`q{rcrao%rT4bwY&0+ z@DICvMs8xld1|pPT>SB2+YIbvn?~W#xlVKpOyJ80?KqO3W9UNWz`MUyOvF1y{}?z2Cs zEE;e6eN=0f67_^{uRGO7I&o)hP$X_%R;ruZE^&=76Comwi}B0-%NrL$Y9O40dD%Gs zaIw*|3yjwCTZ_*vj{+OYOkD&fIOQ%pQjE%N99B_?|7UqO=fW6geii#Z0Yr_!65I`p z0H5W3rknuci@>k@_?=J% + + + + + + + + + + + diff --git a/Tasks/AzureFunctionAppV2/make.json b/Tasks/AzureFunctionAppV2/make.json new file mode 100644 index 000000000000..65aef0088694 --- /dev/null +++ b/Tasks/AzureFunctionAppV2/make.json @@ -0,0 +1,11 @@ +{ + "externals": { + "archivePackages": [ + { + "archiveName": "ctt.zip", + "url": "https://vstsagenttools.blob.core.windows.net/tools/ctt/1.6/ctt.zip", + "dest": "./" + } + ] + } +} \ No newline at end of file diff --git a/Tasks/AzureFunctionAppV2/package-lock.json b/Tasks/AzureFunctionAppV2/package-lock.json new file mode 100644 index 000000000000..1ec88b4e5438 --- /dev/null +++ b/Tasks/AzureFunctionAppV2/package-lock.json @@ -0,0 +1,1373 @@ +{ + "name": "vsts-tasks-azurefunctionapp", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@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://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha1-yayFsqX9GENbjIXZ7LUObWyJP/g=", + "requires": { + "@types/node": "*" + } + }, + "@types/mocha": { + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz", + "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==" + }, + "@types/node": { + "version": "10.17.50", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.50.tgz", + "integrity": "sha512-vwX+/ija9xKc/z9VqMCdbf4WYcMTGsI0I/L/6shIF3qXURxZOhPQlPRHtjTpiNhAwn0paMJzlOQqw6mAGEQnTA==" + }, + "@types/q": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.0.7.tgz", + "integrity": "sha512-0WS7XU7sXzQ7J1nbnMKKYdjrrFoO3YtZYgUzeV8JFXffPnHfvSJQleR70I8BOAsOm14i4dyaAZ3YzqIl1YhkXQ==" + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "archiver": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-2.1.1.tgz", + "integrity": "sha1-/2YrSnggFJSj7lRNOjP+dJZQnrw=", + "requires": { + "archiver-utils": "^1.3.0", + "async": "^2.0.0", + "buffer-crc32": "^0.2.1", + "glob": "^7.0.0", + "lodash": "^4.8.0", + "readable-stream": "^2.0.0", + "tar-stream": "^1.5.0", + "zip-stream": "^1.2.0" + } + }, + "archiver-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz", + "integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=", + "requires": { + "glob": "^7.0.0", + "graceful-fs": "^4.1.0", + "lazystream": "^1.0.0", + "lodash": "^4.8.0", + "normalize-path": "^2.0.0", + "readable-stream": "^2.0.0" + } + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" + }, + "async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "requires": { + "lodash": "^4.17.14" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==" + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "azure-pipelines-task-lib": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-3.1.10.tgz", + "integrity": "sha512-S5iH1mD9G7boOV0kjVsFkqlz/6FOZjQAajshj3ajzQK9Wr3XRq9JK9+grJP4ityG6of28X2XWpieFdJLhnWLoA==", + "requires": { + "minimatch": "3.0.4", + "mockery": "^1.7.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.4", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + }, + "dependencies": { + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + } + } + }, + "azure-pipelines-tasks-azurermdeploycommon-v3": { + "version": "3.198.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-tasks-azurermdeploycommon-v3/-/azure-pipelines-tasks-azurermdeploycommon-v3-3.198.0.tgz", + "integrity": "sha512-9FmKVz3OaTRP6rXJdzz5C02TjAwLVH+KluR2xp6p6IeC3v/hsQZfIlMrgXhAqztpSGsNkI389GVmDBNutKt2bA==", + "requires": { + "@types/mocha": "^5.2.7", + "@types/node": "^10.17.0", + "@types/q": "1.0.7", + "archiver": "2.1.1", + "azure-pipelines-task-lib": "^3.1.0", + "decompress-zip": "0.3.0", + "jsonwebtoken": "7.3.0", + "ltx": "2.6.2", + "node-stream-zip": "1.7.0", + "q": "1.5.1", + "typed-rest-client": "^1.8.4", + "winreg": "1.2.2", + "xml2js": "0.4.13" + }, + "dependencies": { + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + } + } + }, + "azure-storage": { + "version": "2.10.7", + "resolved": "https://registry.npmjs.org/azure-storage/-/azure-storage-2.10.7.tgz", + "integrity": "sha512-4oeFGtn3Ziw/fGs/zkoIpKKtygnCVIcZwzJ7UQzKTxhkGQqVCByOFbYqMGYR3L+wOsunX9lNfD0jc51SQuKSSA==", + "requires": { + "browserify-mime": "^1.2.9", + "extend": "^3.0.2", + "json-edm-parser": "~0.1.2", + "json-schema": "~0.4.0", + "md5.js": "^1.3.4", + "readable-stream": "^2.0.0", + "request": "^2.86.0", + "underscore": "^1.12.1", + "uuid": "^3.0.0", + "validator": "^13.7.0", + "xml2js": "~0.2.8", + "xmlbuilder": "^9.0.7" + }, + "dependencies": { + "sax": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz", + "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=" + }, + "xml2js": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.2.8.tgz", + "integrity": "sha1-m4FpCTFjH/CdGVdUn69U9PmAs8I=", + "requires": { + "sax": "0.5.x" + } + }, + "xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" + } + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "binary": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", + "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", + "requires": { + "buffers": "~0.1.1", + "chainsaw": "~0.1.0" + } + }, + "bl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "browserify-mime": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/browserify-mime/-/browserify-mime-1.2.9.tgz", + "integrity": "sha512-uz+ItyJXBLb6wgon1ELEiVowJBEsy03PUWGRQU7cxxx9S+DW2hujPp+DaMYEOClRPzsn7NB99NtJ6pGnt8y+CQ==" + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "buffers": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", + "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/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://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "chainsaw": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", + "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", + "requires": { + "traverse": ">=0.3.0 <0.4" + } + }, + "combined-stream": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "compress-commons": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz", + "integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=", + "requires": { + "buffer-crc32": "^0.2.1", + "crc32-stream": "^2.0.0", + "normalize-path": "^2.0.0", + "readable-stream": "^2.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/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.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "crc": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", + "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", + "requires": { + "buffer": "^5.1.0" + } + }, + "crc32-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz", + "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=", + "requires": { + "crc": "^3.4.4", + "readable-stream": "^2.0.0" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "decompress-zip": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/decompress-zip/-/decompress-zip-0.3.0.tgz", + "integrity": "sha1-rjvLfjTGWHmt/nfhnDD4ZgK0vbA=", + "requires": { + "binary": "^0.3.0", + "graceful-fs": "^4.1.3", + "mkpath": "^0.1.0", + "nopt": "^3.0.1", + "q": "^1.1.2", + "readable-stream": "^1.1.8", + "touch": "0.0.3" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "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.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + } + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + }, + "http-basic": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/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" + }, + "dependencies": { + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + } + } + }, + "http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "requires": { + "@types/node": "^10.0.3" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "requires": { + "has": "^1.0.3" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isemail": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-1.2.0.tgz", + "integrity": "sha1-vgPfjMPineTSxd9lASY/H6RZXpo=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "joi": { + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-6.10.1.tgz", + "integrity": "sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY=", + "requires": { + "hoek": "2.x.x", + "isemail": "1.x.x", + "moment": "2.x.x", + "topo": "1.x.x" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "json-edm-parser": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/json-edm-parser/-/json-edm-parser-0.1.2.tgz", + "integrity": "sha1-HmCw/vG8CvZ7wNFG393lSGzWFbQ=", + "requires": { + "jsonparse": "~1.2.0" + } + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsonparse": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.2.0.tgz", + "integrity": "sha1-XAxWhRBxYOcv50ib3eoLRMK8Z70=" + }, + "jsonwebtoken": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-7.3.0.tgz", + "integrity": "sha1-hRGNanDj/M3xQ4n056HD+cip+7o=", + "requires": { + "joi": "^6.10.1", + "jws": "^3.1.4", + "lodash.once": "^4.0.0", + "ms": "^0.7.1", + "xtend": "^4.0.1" + } + }, + "jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "requires": { + "readable-stream": "^2.0.5" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" + }, + "ltx": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/ltx/-/ltx-2.6.2.tgz", + "integrity": "sha1-cD5EN9XjlNJsAxT9j9Xevtjgmdk=", + "requires": { + "inherits": "^2.0.1" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mime-db": { + "version": "1.38.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", + "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==" + }, + "mime-types": { + "version": "2.1.22", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", + "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", + "requires": { + "mime-db": "~1.38.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "mkpath": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/mkpath/-/mkpath-0.1.0.tgz", + "integrity": "sha1-dVSm+Nhxg0zJe1RisSLEwSTW3pE=" + }, + "mockery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/mockery/-/mockery-1.7.0.tgz", + "integrity": "sha1-9O3g2HUMHJcnwnLqLGBiniyaHE8=" + }, + "moment": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==" + }, + "ms": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.3.tgz", + "integrity": "sha1-cIFVpeROM/X9D8U+gdDUCpG+H/8=" + }, + "node-stream-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.7.0.tgz", + "integrity": "sha512-kYVtF3lK++53Bg6hZNplYVMrR7Lt0IYdLWehgoHUJLJcSwg/xd2Rm2Z7kJ5W8ZA7pdeg/DiUQDatbYwL3C7qSw==" + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "requires": { + "abbrev": "1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "promise": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", + "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", + "requires": { + "asap": "~2.0.6" + } + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=" + }, + "qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "requires": { + "resolve": "^1.1.6" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + } + } + }, + "resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sax": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", + "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/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://registry.npmjs.org/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" + } + }, + "sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "sync-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/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://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "requires": { + "get-port": "^3.1.0" + } + }, + "tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "requires": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + } + }, + "then-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/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://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/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" + } + }, + "qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "requires": { + "side-channel": "^1.0.4" + } + } + } + }, + "to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" + }, + "topo": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz", + "integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=", + "requires": { + "hoek": "2.x.x" + } + }, + "touch": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/touch/-/touch-0.0.3.tgz", + "integrity": "sha1-Ua7z1ElXHU8oel2Hyci0kYGg2x0=", + "requires": { + "nopt": "~1.0.10" + }, + "dependencies": { + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "requires": { + "abbrev": "1" + } + } + } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "traverse": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", + "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=" + }, + "tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "typed-rest-client": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.6.tgz", + "integrity": "sha512-xcQpTEAJw2DP7GqVNECh4dD+riS+C1qndXLfBCJ3xk0kqprtGN491P5KlmrDbKdtuW8NEcP/5ChxiJI3S9WYTA==", + "requires": { + "qs": "^6.9.1", + "tunnel": "0.0.6", + "underscore": "^1.12.1" + }, + "dependencies": { + "qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "underscore": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz", + "integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==" + } + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "typescript": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz", + "integrity": "sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==", + "dev": true + }, + "underscore": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.3.tgz", + "integrity": "sha512-QvjkYpiD+dJJraRA8+dGAU4i7aBbb2s0S3jA45TFOvg2VgqvdCDd/3N6CqA8gluk1W91GLoXg5enMUx560QzuA==" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + }, + "validator": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", + "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "winreg": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/winreg/-/winreg-1.2.2.tgz", + "integrity": "sha1-hQmvo7ccW70RCm18YkfsZ3NsWY8=" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "xml2js": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.13.tgz", + "integrity": "sha1-+EQ+B0Oeb/ktmVKPSbvTScyfMGs=", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": ">=2.4.6" + } + }, + "xmlbuilder": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz", + "integrity": "sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=" + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + }, + "zip-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz", + "integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=", + "requires": { + "archiver-utils": "^1.3.0", + "compress-commons": "^1.2.0", + "lodash": "^4.8.0", + "readable-stream": "^2.0.0" + } + } + } +} diff --git a/Tasks/AzureFunctionAppV2/package.json b/Tasks/AzureFunctionAppV2/package.json new file mode 100644 index 000000000000..9974deba3d01 --- /dev/null +++ b/Tasks/AzureFunctionAppV2/package.json @@ -0,0 +1,33 @@ +{ + "name": "vsts-tasks-azurefunctionapp", + "version": "1.0.0", + "description": "Azure Pipelines Azure Function Deployment", + "main": "azurermWebappdeployment.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/Microsoft/vsts-tasks.git" + }, + "author": "Microsoft Corporation", + "license": "MIT", + "bugs": { + "url": "https://github.com/Microsoft/vsts-tasks/issues" + }, + "homepage": "https://github.com/Microsoft/vsts-tasks#readme", + "dependencies": { + "@types/mocha": "^5.2.7", + "@types/node": "^10.17.0", + "@types/q": "1.0.7", + "azure-pipelines-tasks-azurermdeploycommon-v3": "^3.198.0", + "azure-storage": "2.10.7", + "moment": "^2.29.3", + "q": "1.4.1", + "uuid": "3.1.0", + "xml2js": "0.4.13" + }, + "devDependencies": { + "typescript": "4.0.2" + } +} diff --git a/Tasks/AzureFunctionAppV2/task.json b/Tasks/AzureFunctionAppV2/task.json new file mode 100644 index 000000000000..1bb7d7f73b57 --- /dev/null +++ b/Tasks/AzureFunctionAppV2/task.json @@ -0,0 +1,357 @@ +{ + "id": "501DD25D-1785-43E4-B4E5-A5C78CCC0573", + "name": "AzureFunctionApp", + "friendlyName": "Azure Functions", + "description": "Update a function app with .NET, Python, JavaScript, PowerShell, Java based web applications", + "helpUrl": "https://aka.ms/azurefunctiontroubleshooting", + "helpMarkDown": "[Learn more about this task](https://aka.ms/azurefunctiondeployreadme)", + "category": "Deploy", + "visibility": [ + "Build", + "Release" + ], + "runsOn": [ + "Agent", + "DeploymentGroup" + ], + "author": "Microsoft Corporation", + "version": { + "Major": 2, + "Minor": 208, + "Patch": 0 + }, + "releaseNotes": "What's new in version 2.*
Removed WAR Deploy Support, setting Web.Config options, and the option for the Startup command for Linux Azure Function Apps.", + "minimumAgentVersion": "2.104.1", + "groups": [ + { + "name": "AdditionalDeploymentOptions", + "displayName": "Additional Deployment Options", + "isExpanded": false, + "visibleRule": "appType != functionAppLinux && appType != \"\" && package NotEndsWith .war && Package NotEndsWith .jar" + }, + { + "name": "ApplicationAndConfigurationSettings", + "displayName": "Application and Configuration Settings", + "isExpanded": false + } + ], + "inputs": [ + { + "name": "azureSubscription", + "type": "connectedService:AzureRM", + "label": "Azure subscription", + "defaultValue": "", + "required": true, + "helpMarkDown": "Select the Azure Resource Manager subscription for the deployment." + }, + { + "name": "appType", + "type": "pickList", + "label": "App type", + "defaultValue": "", + "required": true, + "options": { + "functionApp": "Function App on Windows", + "functionAppLinux": "Function App on Linux" + } + }, + { + "name": "appName", + "type": "pickList", + "label": "Azure Functions App name", + "defaultValue": "", + "required": true, + "properties": { + "EditableOptions": "True" + }, + "helpMarkDown": "Enter or Select the name of an existing Azure Functions App. The Function Apps listed will be based on the selected app type." + }, + { + "name": "deployToSlotOrASE", + "type": "boolean", + "label": "Deploy to Slot or App Service Environment", + "defaultValue": "false", + "required": false, + "helpMarkDown": "Select the option to deploy to an existing deployment slot or Azure App Service Environment.
For both the targets, the task needs Resource group name.
In case the deployment target is a slot, by default the deployment is done to the production slot. Any other existing slot name can also be provided.
In case the deployment target is an Azure App Service environment, leave the slot name as ‘production’ and just specify the Resource group name.", + "visibleRule": "appType != \"\"" + }, + { + "name": "resourceGroupName", + "type": "pickList", + "label": "Resource group", + "defaultValue": "", + "required": true, + "properties": { + "EditableOptions": "True" + }, + "helpMarkDown": "The Resource group name is required when the deployment target is either a deployment slot or an App Service Environment.
Enter or Select the Azure Resource group that contains the Azure App Service specified above.", + "visibleRule": "deployToSlotOrASE = true" + }, + { + "name": "slotName", + "type": "pickList", + "label": "Slot", + "defaultValue": "production", + "required": true, + "properties": { + "EditableOptions": "True" + }, + "helpMarkDown": "Enter or Select an existing Slot other than the Production slot.", + "visibleRule": "deployToSlotOrASE = true" + }, + { + "name": "package", + "type": "filePath", + "label": "Package or folder", + "defaultValue": "$(System.DefaultWorkingDirectory)/**/*.zip", + "required": true, + "helpMarkDown": "File path to the package or a folder containing app service contents generated by MSBuild or a compressed zip or war file.
Variables ( [Build](https://docs.microsoft.com/vsts/pipelines/build/variables) | [Release](https://docs.microsoft.com/vsts/pipelines/release/variables#default-variables)), wildcards are supported.
For example, $(System.DefaultWorkingDirectory)/\\*\\*/\\*.zip or $(System.DefaultWorkingDirectory)/\\*\\*/\\*.war." + }, + { + "name": "runtimeStack", + "type": "pickList", + "label": "Runtime stack", + "defaultValue": "", + "required": false, + "properties": { + "EditableOptions": "True" + }, + "options": { + "DOTNET|2.2": "DOTNET|2.2 (functionapp v2)", + "DOTNET|3.1": "DOTNET|3.1 (functionapp v3)", + "DOTNET|6.0": "DOTNET|6.0 (functionapp v4)", + "JAVA|8": "JAVA|8 (functionapp v2/v3/v4)", + "JAVA|11": "JAVA|11 (functionapp v3/v4)", + "NODE|8": "NODE|8 (functionapp v2)", + "NODE|10": "NODE|10 (functionapp v2/v3)", + "NODE|12": "NODE|12 (functionapp v3)", + "NODE|14": "NODE|14 (functionapp v3/v4)", + "NODE|16": "NODE|16 (functionapp v4)", + "PYTHON|3.6": "PYTHON|3.6 (functionapp v2/v3)", + "PYTHON|3.7": "PYTHON|3.7 (functionapp v2/v3/v4)", + "PYTHON|3.8": "PYTHON|3.8 (functionapp v3/v4)", + "PYTHON|3.9": "PYTHON|3.9 (functionapp v3/v4)" + }, + "visibleRule": "appType = functionAppLinux", + "helpMarkDown": "Refer [this doc](https://docs.microsoft.com/azure/azure-functions/functions-versions#languages) for supported runtime versions. Old values like `DOCKER|microsoft/azure-functions-*` are deprecated, please use the new values from dropdown." + }, + { + "name": "appSettings", + "type": "multiLine", + "label": "App settings", + "defaultValue": "", + "required": false, + "groupName": "ApplicationAndConfigurationSettings", + "helpMarkDown": "Edit web app application settings following the syntax -key value . Value containing spaces should be enclosed in double quotes.
Example : -Port 5000 -RequestTimeout 5000
-WEBSITE_TIME_ZONE \"Eastern Standard Time\"", + "properties": { + "editorExtension": "ms.vss-services-azure.parameters-grid" + } + }, + { + "name": "deploymentMethod", + "type": "pickList", + "label": "Deployment method", + "defaultValue": "auto", + "required": true, + "groupName": "AdditionalDeploymentOptions", + "options": { + "auto": "Auto-detect", + "zipDeploy": "Zip Deploy", + "runFromPackage": "Zip Deploy with Run From Package" + }, + "helpMarkDown": "Choose the deployment method for the app." + } + ], + "outputVariables": [ + { + "name": "AppServiceApplicationUrl", + "description": "Application URL of the selected Azure Function App." + } + ], + "dataSourceBindings": [ + { + "target": "appName", + "endpointId": "$(azureSubscription)", + "dataSourceName": "AzureFunctionAppNamesByAppType", + "parameters": { + "WebAppKind": "$(appType)" + } + }, + { + "target": "resourceGroupName", + "endpointId": "$(azureSubscription)", + "dataSourceName": "AzureRMWebAppResourceGroup", + "parameters": { + "WebAppName": "$(appName)" + } + }, + { + "target": "slotName", + "endpointId": "$(azureSubscription)", + "dataSourceName": "AzureRMWebAppSlotsId", + "parameters": { + "WebAppName": "$(appName)", + "ResourceGroupName": "$(resourceGroupName)" + }, + "resultTemplate": "{\"Value\":\"{{{ #extractResource slots}}}\",\"DisplayValue\":\"{{{ #extractResource slots}}}\"}" + } + ], + "instanceNameFormat": "Azure Function App Deploy: $(appName)", + "execution": { + "Node10": { + "target": "azurermwebappdeployment.js" + } + }, + "messages": { + "Invalidwebapppackageorfolderpathprovided": "Invalid App Service package or folder path provided: %s", + "SetParamFilenotfound0": "Set parameters file not found: %s", + "XDTTransformationsappliedsuccessfully": "XML Transformations applied successfully", + "GotconnectiondetailsforazureRMWebApp0": "Got service connection details for Azure App Service:'%s'", + "ErrorNoSuchDeployingMethodExists": "Error : No such deploying method exists", + "UnabletoretrieveconnectiondetailsforazureRMWebApp": "Unable to retrieve service connection details for Azure App Service : %s. Status Code: %s (%s)", + "UnabletoretrieveResourceID": "Unable to retrieve service connection details for Azure Resource:'%s'. Status Code: %s", + "Successfullyupdateddeploymenthistory": "Successfully updated deployment History at %s", + "Failedtoupdatedeploymenthistory": "Failed to update deployment history. Error: %s", + "WARNINGCannotupdatedeploymentstatusSCMendpointisnotenabledforthiswebsite": "WARNING : Cannot update deployment status : SCM endpoint is not enabled for this website", + "Unabletoretrievewebconfigdetails": "Unable to retrieve App Service configuration details. Status Code: '%s'", + "Unabletoretrievewebappsettings": "Unable to retrieve App Service application settings. [Status Code: '%s', Error Message: '%s']", + "Unabletoupdatewebappsettings": "Unable to update App service application settings. Status Code: '%s'", + "CannotupdatedeploymentstatusuniquedeploymentIdCannotBeRetrieved": "Cannot update deployment status : Unique Deployment ID cannot be retrieved", + "PackageDeploymentSuccess": "Successfully deployed web package to App Service.", + "PackageDeploymentFailed": "Failed to deploy web package to App Service.", + "Runningcommand": "Running command: %s", + "Deployingwebapplicationatvirtualpathandphysicalpath": "Deploying web package : %s at virtual path (physical path) : %s (%s)", + "Successfullydeployedpackageusingkuduserviceat": "Successfully deployed package %s using kudu service at %s", + "Failedtodeploywebapppackageusingkuduservice": "Failed to deploy App Service package using kudu service : %s", + "Unabletodeploywebappresponsecode": "Unable to deploy App Service due to error code : %s", + "MSDeploygeneratedpackageareonlysupportedforWindowsplatform": "MSDeploy generated packages are only supported for Windows platform.", + "UnsupportedinstalledversionfoundforMSDeployversionshouldbeatleast3orabove": "Unsupported installed version: %s found for MSDeploy. version should be at least 3 or above", + "UnabletofindthelocationofMSDeployfromregistryonmachineError": "Unable to find the location of MS Deploy from registry on machine (Error : %s)", + "Nopackagefoundwithspecifiedpattern": "No package found with specified pattern: %s
Check if the package mentioned in the task is published as an artifact in the build or a previous stage and downloaded in the current job.", + "MorethanonepackagematchedwithspecifiedpatternPleaserestrainthesearchpattern": "More than one package matched with specified pattern: %s. Please restrain the search pattern.", + "Trytodeploywebappagainwithappofflineoptionselected": "Try to deploy app service again with Take application offline option selected.", + "Trytodeploywebappagainwithrenamefileoptionselected": "Try to deploy app service again with Rename locked files option selected.", + "NOJSONfilematchedwithspecificpattern": "NO JSON file matched with specific pattern: %s.", + "Configfiledoesntexists": "Configuration file %s doesn't exist.", + "Failedtowritetoconfigfilewitherror": "Failed to write to config file %s with error : %s", + "AppOfflineModeenabled": "App offline mode enabled.", + "Failedtoenableappofflinemode": "Failed to enable app offline mode. Status Code: %s (%s)", + "AppOflineModedisabled": "App offline mode disabled.", + "FailedtodisableAppOfflineMode": "Failed to disable App offline mode. Status Code: %s (%s)", + "CannotPerformXdtTransformationOnNonWindowsPlatform": "Cannot perform XML transformations on a non-Windows platform.", + "XdtTransformationErrorWhileTransforming": "XML transformation error while transforming %s using %s.", + "PublishusingwebdeployoptionsaresupportedonlywhenusingWindowsagent": "Publish using webdeploy options are supported only when using Windows agent", + "Publishusingzipdeploynotsupportedformsbuildpackage": "Publish using zip deploy option is not supported for msBuild package type.", + "Publishusingzipdeploynotsupportedforvirtualapplication": "Publish using zip deploy option is not supported for virtual application.", + "Publishusingzipdeploydoesnotsupportwarfile": "Publish using zip deploy or RunFromPackage options do not support war file deployment.", + "Publishusingrunfromzipwithpostdeploymentscript": "Publish using RunFromPackage might not support post deployment script if it makes changes to wwwroot, since the folder is ReadOnly.", + "ResourceDoesntExist": "Resource '%s' doesn't exist. Resource should exist before deployment.", + "EncodeNotSupported": "Detected file encoding of the file %s as %s. Variable substitution is not supported with file encoding %s. Supported encodings are UTF-8 and UTF-16 LE.", + "UnknownFileEncodeError": "Unable to detect encoding of the file %s (typeCode: %s). Supported encodings are UTF-8 and UTF-16 LE.", + "ShortFileBufferError": "File buffer is too short to detect encoding type : %s", + "FailedToUpdateAzureRMWebAppConfigDetails": "Failed to update App Service configuration details. Error: %s", + "SuccessfullyUpdatedAzureRMWebAppConfigDetails": "Successfully updated App Service configuration details", + "RequestedURLforkuduphysicalpath": "Requested URL for kudu physical path : %s", + "Physicalpathalreadyexists": "Physical path '%s' already exists", + "KuduPhysicalpathCreatedSuccessfully": "Kudu physical path created successfully : %s", + "FailedtocreateKuduPhysicalPath": "Failed to create kudu physical path. Error : %s", + "FailedtocheckphysicalPath": "Failed to check kudu physical path. Error Code: %s", + "VirtualApplicationDoesNotExist": "Virtual application doesn't exists : %s", + "JSONParseError": "Unable to parse JSON file: %s. Error: %s", + "JSONvariablesubstitutionappliedsuccessfully": "JSON variable substitution applied successfully.", + "XMLvariablesubstitutionappliedsuccessfully": "XML variable substitution applied successfully.", + "failedtoUploadFileToKudu": "Unable to upload file: %s to Kudu (%s). Status Code: %s", + "failedtoUploadFileToKuduError": "Unable to upload file: %s to Kudu (%s). Error: %s", + "ExecuteScriptOnKudu": "Executing given script on Kudu service.", + "FailedToRunScriptOnKuduError": "Unable to run the script on Kudu Service. Error: %s", + "FailedToRunScriptOnKudu": "Unable to run the script on Kudu: %s. Status Code: %s", + "ScriptExecutionOnKuduSuccess": "Successfully executed script on Kudu.", + "ScriptExecutionOnKuduFailed": "Executed script returned '%s' as return code. Error: %s", + "FailedtoDeleteFileFromKudu": "Unable to delete file: %s from Kudu (%s). Status Code: %s", + "FailedtoDeleteFileFromKuduError": "Unable to delete file: %s from Kudu (%s). Error: %s", + "ScriptFileNotFound": "Script file '%s' not found.", + "InvalidScriptFile": "Invalid script file '%s' provided. Valid extensions are .bat and .cmd for windows and .sh for linux", + "RetryForTimeoutIssue": "Script execution failed with timeout issue. Retrying once again.", + "stdoutFromScript": "Standard output from script: ", + "stderrFromScript": "Standard error from script: ", + "FailedToGetKuduFileContent": "Unable to get file content: %s . Status code: %s (%s)", + "FailedToGetKuduFileContentError": "Unable to get file content: %s. Error: %s", + "ScriptStatusTimeout": "Unable to fetch script status due to timeout.", + "PollingForFileTimeOut": "Unable to fetch script status due to timeout. You can increase the timeout limit by setting 'appservicedeploy.retrytimeout' variable to number of minutes required.", + "InvalidPollOption": "Invalid polling option provided: %s.", + "AutoDetectDjangoSettingsFailed": "Unable to detect DJANGO_SETTINGS_MODULE 'settings.py' file path. Ensure that the 'settings.py' file exists or provide the correct path in Web.config parameter input in the following format '-DJANGO_SETTINGS_MODULE .settings'", + "FailedToApplyTransformation": "Unable to apply transformation for the given package. Verify the following.", + "FailedToApplyTransformationReason1": "1. Whether the Transformation is already applied for the MSBuild generated package during build. If yes, remove the tag for each config in the csproj file and rebuild. ", + "FailedToApplyTransformationReason2": "2. Ensure that the config file and transformation files are present in the same folder inside the package.", + "AutoParameterizationMessage": "ConnectionString attributes in Web.config is parameterized by default. Note that the transformation has no effect on connectionString attributes as the value is overridden during deployment by 'Parameters.xml or 'SetParameters.xml' files. You can disable the auto-parameterization by setting /p:AutoParameterizationWebConfigConnectionStrings=False during MSBuild package generation.", + "UnsupportedAppType": "App type '%s' not supported in Web.config generation. Valid values for '-appType' are: 'python_Bottle', 'python_Django', 'python_Flask' and 'node'", + "UnableToFetchAuthorityURL": "Unable to fetch authority URL.", + "UnableToFetchActiveDirectory": "Unable to fetch Active Directory resource ID.", + "SuccessfullyUpdatedRuntimeStackAndStartupCommand": "Successfully updated the Runtime Stack and Startup Command.", + "FailedToUpdateRuntimeStackAndStartupCommand": "Failed to update the Runtime Stack and Startup Command. Error: %s.", + "SuccessfullyUpdatedWebAppSettings": "Successfully updated the App settings.", + "FailedToUpdateAppSettingsInConfigDetails": "Failed to update the App settings. Error: %s.", + "UnableToGetAzureRMWebAppMetadata": "Failed to fetch AzureRM WebApp metadata. ErrorCode: %s", + "UnableToUpdateAzureRMWebAppMetadata": "Unable to update AzureRM WebApp metadata. Error Code: %s", + "Unabletoretrieveazureregistrycredentials": "Unable to retrieve Azure Container Registry credentials.[Status Code: '%s']", + "UnableToReadResponseBody": "Unable to read response body. Error: %s", + "UnableToUpdateWebAppConfigDetails": "Unable to update WebApp config details. StatusCode: '%s'", + "AddingReleaseAnnotation": "Adding release annotation for the Application Insights resource '%s'", + "SuccessfullyAddedReleaseAnnotation": "Successfully added release annotation to the Application Insight : %s", + "FailedAddingReleaseAnnotation": "Failed to add release annotation. %s", + "RenameLockedFilesEnabled": "Rename locked files enabled for App Service.", + "FailedToEnableRenameLockedFiles": "Failed to enable rename locked files. Error: %s", + "WebJobsInProgressIssue": "Few WebJobs in running state prevents the deployment from removing the files. You can disable 'Remove additional files at destination' option or Stop continuous Jobs before deployment.", + "FailedToFetchKuduAppSettings": "Failed to fetch Kudu App Settings. Error: %s", + "FailedToCreatePath": "Failed to create path '%s' from Kudu. Error: %s", + "FailedToDeleteFile": "Failed to delete file '%s/%s' from Kudu. Error: %s", + "FailedToDeleteFolder": "Failed to delete folder '%s' from Kudu. Error: %s", + "FailedToUploadFile": "Failed to upload file '%s/%s' from Kudu. Error: %s", + "FailedToGetFileContent": "Failed to get file content '%s/%s' from Kudu. Error: %s", + "FailedToListPath": "Failed to list path '%s' from Kudu. Error: %s", + "RetryToDeploy": "Retrying to deploy the package.", + "FailedToGetAppServiceDetails": "Failed to fetch App Service '%s' details. Error: %s", + "FailedToGetAppServicePublishingProfile": "Failed to fetch App Service '%s' publishing profile. Error: %s", + "FailedToUpdateAppServiceMetadata": "Failed to update App service '%s' Meta data. Error: %s", + "FailedToGetAppServiceMetadata": "Failed to get App service '%s' Meta data. Error: %s", + "FailedToPatchAppServiceConfiguration": "Failed to patch App Service '%s' configuration. Error: %s", + "FailedToUpdateAppServiceConfiguration": "Failed to update App service '%s' configuration. Error: %s", + "FailedToGetAppServiceConfiguration": "Failed to get App service '%s' configuration. Error: %s", + "FailedToGetAppServicePublishingCredentials": "Failed to fetch App Service '%s' publishing credentials. Error: %s", + "FailedToGetAppServiceApplicationSettings": "Failed to get App service '%s' application settings. Error: %s", + "FailedToUpdateAppServiceApplicationSettings": "Failed to update App service '%s' application settings. Error: %s", + "UpdatingAppServiceConfigurationSettings": "Trying to update App Service Configuration settings. Data: %s", + "UpdatedAppServiceConfigurationSettings": "Updated App Service Configuration settings.", + "UpdatedAppServiceApplicationSettings": "Updated App Service Application settings and Kudu Application settings.", + "UpdatedOnlyAppServiceApplicationSettings": "Updated App Service Application settings.", + "MultipleResourceGroupFoundForAppService": "Multiple resource group found for App Service '%s'.", + "PackageDeploymentUsingZipDeployFailed": "Package deployment using ZIP Deploy failed. Refer logs for more details.", + "PackageDeploymentInitiated": "Package deployment using ZIP Deploy initiated.", + "FailedToGetDeploymentLogs": "Failed to get deployment logs. Error: %s", + "GoExeNameNotPresent": "Go exe name is not present", + "Updatemachinetoenablesecuretlsprotocol": "Make sure the machine is using TLS 1.2 protocol or higher. Check https://aka.ms/enableTlsv2 for more information on how to enable TLS in your machine.", + "CouldNotFetchAccessTokenforAzureStatusCode": "Could not fetch access token for Azure. Status code: %s, status message: %s", + "CouldNotFetchAccessTokenforMSIDueToMSINotConfiguredProperlyStatusCode": "Could not fetch access token for Managed Service Principal. Please configure Managed Service Identity (MSI) for virtual machine 'https://aka.ms/azure-msi-docs'. Status code: %s, status message: %s", + "CouldNotFetchAccessTokenforMSIStatusCode": "Could not fetch access token for Managed Service Principal. Status code: %s, status message: %s", + "XmlParsingFailed": "Unable to parse publishProfileXML file, Error: %s", + "PropertyDoesntExistPublishProfile": "[%s] Property does not exist in publish profile", + "InvalidConnectionType": "Invalid service connection type", + "InvalidImageSourceType": "Invalid Image source Type", + "InvalidPublishProfile": "Publish profile file is invalid.", + "ASE_SSLIssueRecommendation": "To use a certificate in App Service, the certificate must be signed by a trusted certificate authority. If your web app gives you certificate validation errors, you're probably using a self-signed certificate and to resolve them you need to set a variable named VSTS_ARM_REST_IGNORE_SSL_ERRORS to the value true in the build or release pipeline", + "ZipDeployLogsURL": "Zip Deploy logs can be viewed at %s", + "DeployLogsURL": "Deploy logs can be viewed at %s", + "AppServiceApplicationURL": "App Service Application URL: %s", + "ASE_WebDeploySSLIssueRecommendation": "To use a certificate in App Service, the certificate must be signed by a trusted certificate authority. If your web app gives you certificate validation errors, you're probably using a self-signed certificate and to resolve them you need to pass -allowUntrusted in additional arguments of web deploy option.", + "FailedToGetResourceID": "Failed to get resource ID for resource type '%s' and resource name '%s'. Error: %s", + "JarPathNotPresent": "Java jar path is not present", + "FailedToUpdateApplicationInsightsResource": "Failed to update Application Insights '%s' Resource. Error: %s", + "InvalidDockerImageName": "Invalid Docker hub image name provided.", + "MsBuildPackageNotSupported": "Deployment of msBuild generated package is not supported. Change package format or use Azure App Service Deploy task.", + "FailedToGetStorageAccountDetails": "Unable to find the storage account associated with the function app.", + "FailedToSyncTriggers": "Failed to sync triggers for function app '%s'. Error: %s", + "SyncingFunctionTriggers": "Syncing triggers for function app", + "SyncFunctionTriggersSuccess": "Sync triggers for function app completed successfully", + "UpdatedRunFromPackageSettings": "Updated WEBSITE_RUN_FROM_PACKAGE Application setting to %s" + } +} diff --git a/Tasks/AzureFunctionAppV2/task.loc.json b/Tasks/AzureFunctionAppV2/task.loc.json new file mode 100644 index 000000000000..42de990976f7 --- /dev/null +++ b/Tasks/AzureFunctionAppV2/task.loc.json @@ -0,0 +1,357 @@ +{ + "id": "501DD25D-1785-43E4-B4E5-A5C78CCC0573", + "name": "AzureFunctionApp", + "friendlyName": "ms-resource:loc.friendlyName", + "description": "ms-resource:loc.description", + "helpUrl": "https://aka.ms/azurefunctiontroubleshooting", + "helpMarkDown": "ms-resource:loc.helpMarkDown", + "category": "Deploy", + "visibility": [ + "Build", + "Release" + ], + "runsOn": [ + "Agent", + "DeploymentGroup" + ], + "author": "Microsoft Corporation", + "version": { + "Major": 2, + "Minor": 208, + "Patch": 0 + }, + "releaseNotes": "ms-resource:loc.releaseNotes", + "minimumAgentVersion": "2.104.1", + "groups": [ + { + "name": "AdditionalDeploymentOptions", + "displayName": "ms-resource:loc.group.displayName.AdditionalDeploymentOptions", + "isExpanded": false, + "visibleRule": "appType != functionAppLinux && appType != \"\" && package NotEndsWith .war && Package NotEndsWith .jar" + }, + { + "name": "ApplicationAndConfigurationSettings", + "displayName": "ms-resource:loc.group.displayName.ApplicationAndConfigurationSettings", + "isExpanded": false + } + ], + "inputs": [ + { + "name": "azureSubscription", + "type": "connectedService:AzureRM", + "label": "ms-resource:loc.input.label.azureSubscription", + "defaultValue": "", + "required": true, + "helpMarkDown": "ms-resource:loc.input.help.azureSubscription" + }, + { + "name": "appType", + "type": "pickList", + "label": "ms-resource:loc.input.label.appType", + "defaultValue": "", + "required": true, + "options": { + "functionApp": "Function App on Windows", + "functionAppLinux": "Function App on Linux" + } + }, + { + "name": "appName", + "type": "pickList", + "label": "ms-resource:loc.input.label.appName", + "defaultValue": "", + "required": true, + "properties": { + "EditableOptions": "True" + }, + "helpMarkDown": "ms-resource:loc.input.help.appName" + }, + { + "name": "deployToSlotOrASE", + "type": "boolean", + "label": "ms-resource:loc.input.label.deployToSlotOrASE", + "defaultValue": "false", + "required": false, + "helpMarkDown": "ms-resource:loc.input.help.deployToSlotOrASE", + "visibleRule": "appType != \"\"" + }, + { + "name": "resourceGroupName", + "type": "pickList", + "label": "ms-resource:loc.input.label.resourceGroupName", + "defaultValue": "", + "required": true, + "properties": { + "EditableOptions": "True" + }, + "helpMarkDown": "ms-resource:loc.input.help.resourceGroupName", + "visibleRule": "deployToSlotOrASE = true" + }, + { + "name": "slotName", + "type": "pickList", + "label": "ms-resource:loc.input.label.slotName", + "defaultValue": "production", + "required": true, + "properties": { + "EditableOptions": "True" + }, + "helpMarkDown": "ms-resource:loc.input.help.slotName", + "visibleRule": "deployToSlotOrASE = true" + }, + { + "name": "package", + "type": "filePath", + "label": "ms-resource:loc.input.label.package", + "defaultValue": "$(System.DefaultWorkingDirectory)/**/*.zip", + "required": true, + "helpMarkDown": "ms-resource:loc.input.help.package" + }, + { + "name": "runtimeStack", + "type": "pickList", + "label": "ms-resource:loc.input.label.runtimeStack", + "defaultValue": "", + "required": false, + "properties": { + "EditableOptions": "True" + }, + "options": { + "DOTNET|2.2": "DOTNET|2.2 (functionapp v2)", + "DOTNET|3.1": "DOTNET|3.1 (functionapp v3)", + "DOTNET|6.0": "DOTNET|6.0 (functionapp v4)", + "JAVA|8": "JAVA|8 (functionapp v2/v3/v4)", + "JAVA|11": "JAVA|11 (functionapp v3/v4)", + "NODE|8": "NODE|8 (functionapp v2)", + "NODE|10": "NODE|10 (functionapp v2/v3)", + "NODE|12": "NODE|12 (functionapp v3)", + "NODE|14": "NODE|14 (functionapp v3/v4)", + "NODE|16": "NODE|16 (functionapp v4)", + "PYTHON|3.6": "PYTHON|3.6 (functionapp v2/v3)", + "PYTHON|3.7": "PYTHON|3.7 (functionapp v2/v3/v4)", + "PYTHON|3.8": "PYTHON|3.8 (functionapp v3/v4)", + "PYTHON|3.9": "PYTHON|3.9 (functionapp v3/v4)" + }, + "visibleRule": "appType = functionAppLinux", + "helpMarkDown": "ms-resource:loc.input.help.runtimeStack" + }, + { + "name": "appSettings", + "type": "multiLine", + "label": "ms-resource:loc.input.label.appSettings", + "defaultValue": "", + "required": false, + "groupName": "ApplicationAndConfigurationSettings", + "helpMarkDown": "ms-resource:loc.input.help.appSettings", + "properties": { + "editorExtension": "ms.vss-services-azure.parameters-grid" + } + }, + { + "name": "deploymentMethod", + "type": "pickList", + "label": "ms-resource:loc.input.label.deploymentMethod", + "defaultValue": "auto", + "required": true, + "groupName": "AdditionalDeploymentOptions", + "options": { + "auto": "Auto-detect", + "zipDeploy": "Zip Deploy", + "runFromPackage": "Zip Deploy with Run From Package" + }, + "helpMarkDown": "ms-resource:loc.input.help.deploymentMethod" + } + ], + "outputVariables": [ + { + "name": "AppServiceApplicationUrl", + "description": "Application URL of the selected Azure Function App." + } + ], + "dataSourceBindings": [ + { + "target": "appName", + "endpointId": "$(azureSubscription)", + "dataSourceName": "AzureFunctionAppNamesByAppType", + "parameters": { + "WebAppKind": "$(appType)" + } + }, + { + "target": "resourceGroupName", + "endpointId": "$(azureSubscription)", + "dataSourceName": "AzureRMWebAppResourceGroup", + "parameters": { + "WebAppName": "$(appName)" + } + }, + { + "target": "slotName", + "endpointId": "$(azureSubscription)", + "dataSourceName": "AzureRMWebAppSlotsId", + "parameters": { + "WebAppName": "$(appName)", + "ResourceGroupName": "$(resourceGroupName)" + }, + "resultTemplate": "{\"Value\":\"{{{ #extractResource slots}}}\",\"DisplayValue\":\"{{{ #extractResource slots}}}\"}" + } + ], + "instanceNameFormat": "ms-resource:loc.instanceNameFormat", + "execution": { + "Node10": { + "target": "azurermwebappdeployment.js" + } + }, + "messages": { + "Invalidwebapppackageorfolderpathprovided": "ms-resource:loc.messages.Invalidwebapppackageorfolderpathprovided", + "SetParamFilenotfound0": "ms-resource:loc.messages.SetParamFilenotfound0", + "XDTTransformationsappliedsuccessfully": "ms-resource:loc.messages.XDTTransformationsappliedsuccessfully", + "GotconnectiondetailsforazureRMWebApp0": "ms-resource:loc.messages.GotconnectiondetailsforazureRMWebApp0", + "ErrorNoSuchDeployingMethodExists": "ms-resource:loc.messages.ErrorNoSuchDeployingMethodExists", + "UnabletoretrieveconnectiondetailsforazureRMWebApp": "ms-resource:loc.messages.UnabletoretrieveconnectiondetailsforazureRMWebApp", + "UnabletoretrieveResourceID": "ms-resource:loc.messages.UnabletoretrieveResourceID", + "Successfullyupdateddeploymenthistory": "ms-resource:loc.messages.Successfullyupdateddeploymenthistory", + "Failedtoupdatedeploymenthistory": "ms-resource:loc.messages.Failedtoupdatedeploymenthistory", + "WARNINGCannotupdatedeploymentstatusSCMendpointisnotenabledforthiswebsite": "ms-resource:loc.messages.WARNINGCannotupdatedeploymentstatusSCMendpointisnotenabledforthiswebsite", + "Unabletoretrievewebconfigdetails": "ms-resource:loc.messages.Unabletoretrievewebconfigdetails", + "Unabletoretrievewebappsettings": "ms-resource:loc.messages.Unabletoretrievewebappsettings", + "Unabletoupdatewebappsettings": "ms-resource:loc.messages.Unabletoupdatewebappsettings", + "CannotupdatedeploymentstatusuniquedeploymentIdCannotBeRetrieved": "ms-resource:loc.messages.CannotupdatedeploymentstatusuniquedeploymentIdCannotBeRetrieved", + "PackageDeploymentSuccess": "ms-resource:loc.messages.PackageDeploymentSuccess", + "PackageDeploymentFailed": "ms-resource:loc.messages.PackageDeploymentFailed", + "Runningcommand": "ms-resource:loc.messages.Runningcommand", + "Deployingwebapplicationatvirtualpathandphysicalpath": "ms-resource:loc.messages.Deployingwebapplicationatvirtualpathandphysicalpath", + "Successfullydeployedpackageusingkuduserviceat": "ms-resource:loc.messages.Successfullydeployedpackageusingkuduserviceat", + "Failedtodeploywebapppackageusingkuduservice": "ms-resource:loc.messages.Failedtodeploywebapppackageusingkuduservice", + "Unabletodeploywebappresponsecode": "ms-resource:loc.messages.Unabletodeploywebappresponsecode", + "MSDeploygeneratedpackageareonlysupportedforWindowsplatform": "ms-resource:loc.messages.MSDeploygeneratedpackageareonlysupportedforWindowsplatform", + "UnsupportedinstalledversionfoundforMSDeployversionshouldbeatleast3orabove": "ms-resource:loc.messages.UnsupportedinstalledversionfoundforMSDeployversionshouldbeatleast3orabove", + "UnabletofindthelocationofMSDeployfromregistryonmachineError": "ms-resource:loc.messages.UnabletofindthelocationofMSDeployfromregistryonmachineError", + "Nopackagefoundwithspecifiedpattern": "ms-resource:loc.messages.Nopackagefoundwithspecifiedpattern", + "MorethanonepackagematchedwithspecifiedpatternPleaserestrainthesearchpattern": "ms-resource:loc.messages.MorethanonepackagematchedwithspecifiedpatternPleaserestrainthesearchpattern", + "Trytodeploywebappagainwithappofflineoptionselected": "ms-resource:loc.messages.Trytodeploywebappagainwithappofflineoptionselected", + "Trytodeploywebappagainwithrenamefileoptionselected": "ms-resource:loc.messages.Trytodeploywebappagainwithrenamefileoptionselected", + "NOJSONfilematchedwithspecificpattern": "ms-resource:loc.messages.NOJSONfilematchedwithspecificpattern", + "Configfiledoesntexists": "ms-resource:loc.messages.Configfiledoesntexists", + "Failedtowritetoconfigfilewitherror": "ms-resource:loc.messages.Failedtowritetoconfigfilewitherror", + "AppOfflineModeenabled": "ms-resource:loc.messages.AppOfflineModeenabled", + "Failedtoenableappofflinemode": "ms-resource:loc.messages.Failedtoenableappofflinemode", + "AppOflineModedisabled": "ms-resource:loc.messages.AppOflineModedisabled", + "FailedtodisableAppOfflineMode": "ms-resource:loc.messages.FailedtodisableAppOfflineMode", + "CannotPerformXdtTransformationOnNonWindowsPlatform": "ms-resource:loc.messages.CannotPerformXdtTransformationOnNonWindowsPlatform", + "XdtTransformationErrorWhileTransforming": "ms-resource:loc.messages.XdtTransformationErrorWhileTransforming", + "PublishusingwebdeployoptionsaresupportedonlywhenusingWindowsagent": "ms-resource:loc.messages.PublishusingwebdeployoptionsaresupportedonlywhenusingWindowsagent", + "Publishusingzipdeploynotsupportedformsbuildpackage": "ms-resource:loc.messages.Publishusingzipdeploynotsupportedformsbuildpackage", + "Publishusingzipdeploynotsupportedforvirtualapplication": "ms-resource:loc.messages.Publishusingzipdeploynotsupportedforvirtualapplication", + "Publishusingzipdeploydoesnotsupportwarfile": "ms-resource:loc.messages.Publishusingzipdeploydoesnotsupportwarfile", + "Publishusingrunfromzipwithpostdeploymentscript": "ms-resource:loc.messages.Publishusingrunfromzipwithpostdeploymentscript", + "ResourceDoesntExist": "ms-resource:loc.messages.ResourceDoesntExist", + "EncodeNotSupported": "ms-resource:loc.messages.EncodeNotSupported", + "UnknownFileEncodeError": "ms-resource:loc.messages.UnknownFileEncodeError", + "ShortFileBufferError": "ms-resource:loc.messages.ShortFileBufferError", + "FailedToUpdateAzureRMWebAppConfigDetails": "ms-resource:loc.messages.FailedToUpdateAzureRMWebAppConfigDetails", + "SuccessfullyUpdatedAzureRMWebAppConfigDetails": "ms-resource:loc.messages.SuccessfullyUpdatedAzureRMWebAppConfigDetails", + "RequestedURLforkuduphysicalpath": "ms-resource:loc.messages.RequestedURLforkuduphysicalpath", + "Physicalpathalreadyexists": "ms-resource:loc.messages.Physicalpathalreadyexists", + "KuduPhysicalpathCreatedSuccessfully": "ms-resource:loc.messages.KuduPhysicalpathCreatedSuccessfully", + "FailedtocreateKuduPhysicalPath": "ms-resource:loc.messages.FailedtocreateKuduPhysicalPath", + "FailedtocheckphysicalPath": "ms-resource:loc.messages.FailedtocheckphysicalPath", + "VirtualApplicationDoesNotExist": "ms-resource:loc.messages.VirtualApplicationDoesNotExist", + "JSONParseError": "ms-resource:loc.messages.JSONParseError", + "JSONvariablesubstitutionappliedsuccessfully": "ms-resource:loc.messages.JSONvariablesubstitutionappliedsuccessfully", + "XMLvariablesubstitutionappliedsuccessfully": "ms-resource:loc.messages.XMLvariablesubstitutionappliedsuccessfully", + "failedtoUploadFileToKudu": "ms-resource:loc.messages.failedtoUploadFileToKudu", + "failedtoUploadFileToKuduError": "ms-resource:loc.messages.failedtoUploadFileToKuduError", + "ExecuteScriptOnKudu": "ms-resource:loc.messages.ExecuteScriptOnKudu", + "FailedToRunScriptOnKuduError": "ms-resource:loc.messages.FailedToRunScriptOnKuduError", + "FailedToRunScriptOnKudu": "ms-resource:loc.messages.FailedToRunScriptOnKudu", + "ScriptExecutionOnKuduSuccess": "ms-resource:loc.messages.ScriptExecutionOnKuduSuccess", + "ScriptExecutionOnKuduFailed": "ms-resource:loc.messages.ScriptExecutionOnKuduFailed", + "FailedtoDeleteFileFromKudu": "ms-resource:loc.messages.FailedtoDeleteFileFromKudu", + "FailedtoDeleteFileFromKuduError": "ms-resource:loc.messages.FailedtoDeleteFileFromKuduError", + "ScriptFileNotFound": "ms-resource:loc.messages.ScriptFileNotFound", + "InvalidScriptFile": "ms-resource:loc.messages.InvalidScriptFile", + "RetryForTimeoutIssue": "ms-resource:loc.messages.RetryForTimeoutIssue", + "stdoutFromScript": "ms-resource:loc.messages.stdoutFromScript", + "stderrFromScript": "ms-resource:loc.messages.stderrFromScript", + "FailedToGetKuduFileContent": "ms-resource:loc.messages.FailedToGetKuduFileContent", + "FailedToGetKuduFileContentError": "ms-resource:loc.messages.FailedToGetKuduFileContentError", + "ScriptStatusTimeout": "ms-resource:loc.messages.ScriptStatusTimeout", + "PollingForFileTimeOut": "ms-resource:loc.messages.PollingForFileTimeOut", + "InvalidPollOption": "ms-resource:loc.messages.InvalidPollOption", + "AutoDetectDjangoSettingsFailed": "ms-resource:loc.messages.AutoDetectDjangoSettingsFailed", + "FailedToApplyTransformation": "ms-resource:loc.messages.FailedToApplyTransformation", + "FailedToApplyTransformationReason1": "ms-resource:loc.messages.FailedToApplyTransformationReason1", + "FailedToApplyTransformationReason2": "ms-resource:loc.messages.FailedToApplyTransformationReason2", + "AutoParameterizationMessage": "ms-resource:loc.messages.AutoParameterizationMessage", + "UnsupportedAppType": "ms-resource:loc.messages.UnsupportedAppType", + "UnableToFetchAuthorityURL": "ms-resource:loc.messages.UnableToFetchAuthorityURL", + "UnableToFetchActiveDirectory": "ms-resource:loc.messages.UnableToFetchActiveDirectory", + "SuccessfullyUpdatedRuntimeStackAndStartupCommand": "ms-resource:loc.messages.SuccessfullyUpdatedRuntimeStackAndStartupCommand", + "FailedToUpdateRuntimeStackAndStartupCommand": "ms-resource:loc.messages.FailedToUpdateRuntimeStackAndStartupCommand", + "SuccessfullyUpdatedWebAppSettings": "ms-resource:loc.messages.SuccessfullyUpdatedWebAppSettings", + "FailedToUpdateAppSettingsInConfigDetails": "ms-resource:loc.messages.FailedToUpdateAppSettingsInConfigDetails", + "UnableToGetAzureRMWebAppMetadata": "ms-resource:loc.messages.UnableToGetAzureRMWebAppMetadata", + "UnableToUpdateAzureRMWebAppMetadata": "ms-resource:loc.messages.UnableToUpdateAzureRMWebAppMetadata", + "Unabletoretrieveazureregistrycredentials": "ms-resource:loc.messages.Unabletoretrieveazureregistrycredentials", + "UnableToReadResponseBody": "ms-resource:loc.messages.UnableToReadResponseBody", + "UnableToUpdateWebAppConfigDetails": "ms-resource:loc.messages.UnableToUpdateWebAppConfigDetails", + "AddingReleaseAnnotation": "ms-resource:loc.messages.AddingReleaseAnnotation", + "SuccessfullyAddedReleaseAnnotation": "ms-resource:loc.messages.SuccessfullyAddedReleaseAnnotation", + "FailedAddingReleaseAnnotation": "ms-resource:loc.messages.FailedAddingReleaseAnnotation", + "RenameLockedFilesEnabled": "ms-resource:loc.messages.RenameLockedFilesEnabled", + "FailedToEnableRenameLockedFiles": "ms-resource:loc.messages.FailedToEnableRenameLockedFiles", + "WebJobsInProgressIssue": "ms-resource:loc.messages.WebJobsInProgressIssue", + "FailedToFetchKuduAppSettings": "ms-resource:loc.messages.FailedToFetchKuduAppSettings", + "FailedToCreatePath": "ms-resource:loc.messages.FailedToCreatePath", + "FailedToDeleteFile": "ms-resource:loc.messages.FailedToDeleteFile", + "FailedToDeleteFolder": "ms-resource:loc.messages.FailedToDeleteFolder", + "FailedToUploadFile": "ms-resource:loc.messages.FailedToUploadFile", + "FailedToGetFileContent": "ms-resource:loc.messages.FailedToGetFileContent", + "FailedToListPath": "ms-resource:loc.messages.FailedToListPath", + "RetryToDeploy": "ms-resource:loc.messages.RetryToDeploy", + "FailedToGetAppServiceDetails": "ms-resource:loc.messages.FailedToGetAppServiceDetails", + "FailedToGetAppServicePublishingProfile": "ms-resource:loc.messages.FailedToGetAppServicePublishingProfile", + "FailedToUpdateAppServiceMetadata": "ms-resource:loc.messages.FailedToUpdateAppServiceMetadata", + "FailedToGetAppServiceMetadata": "ms-resource:loc.messages.FailedToGetAppServiceMetadata", + "FailedToPatchAppServiceConfiguration": "ms-resource:loc.messages.FailedToPatchAppServiceConfiguration", + "FailedToUpdateAppServiceConfiguration": "ms-resource:loc.messages.FailedToUpdateAppServiceConfiguration", + "FailedToGetAppServiceConfiguration": "ms-resource:loc.messages.FailedToGetAppServiceConfiguration", + "FailedToGetAppServicePublishingCredentials": "ms-resource:loc.messages.FailedToGetAppServicePublishingCredentials", + "FailedToGetAppServiceApplicationSettings": "ms-resource:loc.messages.FailedToGetAppServiceApplicationSettings", + "FailedToUpdateAppServiceApplicationSettings": "ms-resource:loc.messages.FailedToUpdateAppServiceApplicationSettings", + "UpdatingAppServiceConfigurationSettings": "ms-resource:loc.messages.UpdatingAppServiceConfigurationSettings", + "UpdatedAppServiceConfigurationSettings": "ms-resource:loc.messages.UpdatedAppServiceConfigurationSettings", + "UpdatedAppServiceApplicationSettings": "ms-resource:loc.messages.UpdatedAppServiceApplicationSettings", + "UpdatedOnlyAppServiceApplicationSettings": "ms-resource:loc.messages.UpdatedOnlyAppServiceApplicationSettings", + "MultipleResourceGroupFoundForAppService": "ms-resource:loc.messages.MultipleResourceGroupFoundForAppService", + "PackageDeploymentUsingZipDeployFailed": "ms-resource:loc.messages.PackageDeploymentUsingZipDeployFailed", + "PackageDeploymentInitiated": "ms-resource:loc.messages.PackageDeploymentInitiated", + "FailedToGetDeploymentLogs": "ms-resource:loc.messages.FailedToGetDeploymentLogs", + "GoExeNameNotPresent": "ms-resource:loc.messages.GoExeNameNotPresent", + "Updatemachinetoenablesecuretlsprotocol": "ms-resource:loc.messages.Updatemachinetoenablesecuretlsprotocol", + "CouldNotFetchAccessTokenforAzureStatusCode": "ms-resource:loc.messages.CouldNotFetchAccessTokenforAzureStatusCode", + "CouldNotFetchAccessTokenforMSIDueToMSINotConfiguredProperlyStatusCode": "ms-resource:loc.messages.CouldNotFetchAccessTokenforMSIDueToMSINotConfiguredProperlyStatusCode", + "CouldNotFetchAccessTokenforMSIStatusCode": "ms-resource:loc.messages.CouldNotFetchAccessTokenforMSIStatusCode", + "XmlParsingFailed": "ms-resource:loc.messages.XmlParsingFailed", + "PropertyDoesntExistPublishProfile": "ms-resource:loc.messages.PropertyDoesntExistPublishProfile", + "InvalidConnectionType": "ms-resource:loc.messages.InvalidConnectionType", + "InvalidImageSourceType": "ms-resource:loc.messages.InvalidImageSourceType", + "InvalidPublishProfile": "ms-resource:loc.messages.InvalidPublishProfile", + "ASE_SSLIssueRecommendation": "ms-resource:loc.messages.ASE_SSLIssueRecommendation", + "ZipDeployLogsURL": "ms-resource:loc.messages.ZipDeployLogsURL", + "DeployLogsURL": "ms-resource:loc.messages.DeployLogsURL", + "AppServiceApplicationURL": "ms-resource:loc.messages.AppServiceApplicationURL", + "ASE_WebDeploySSLIssueRecommendation": "ms-resource:loc.messages.ASE_WebDeploySSLIssueRecommendation", + "FailedToGetResourceID": "ms-resource:loc.messages.FailedToGetResourceID", + "JarPathNotPresent": "ms-resource:loc.messages.JarPathNotPresent", + "FailedToUpdateApplicationInsightsResource": "ms-resource:loc.messages.FailedToUpdateApplicationInsightsResource", + "InvalidDockerImageName": "ms-resource:loc.messages.InvalidDockerImageName", + "MsBuildPackageNotSupported": "ms-resource:loc.messages.MsBuildPackageNotSupported", + "FailedToGetStorageAccountDetails": "ms-resource:loc.messages.FailedToGetStorageAccountDetails", + "FailedToSyncTriggers": "ms-resource:loc.messages.FailedToSyncTriggers", + "SyncingFunctionTriggers": "ms-resource:loc.messages.SyncingFunctionTriggers", + "SyncFunctionTriggersSuccess": "ms-resource:loc.messages.SyncFunctionTriggersSuccess", + "UpdatedRunFromPackageSettings": "ms-resource:loc.messages.UpdatedRunFromPackageSettings" + } +} \ No newline at end of file diff --git a/Tasks/AzureFunctionAppV2/taskparameters.ts b/Tasks/AzureFunctionAppV2/taskparameters.ts new file mode 100644 index 000000000000..47a8111bee17 --- /dev/null +++ b/Tasks/AzureFunctionAppV2/taskparameters.ts @@ -0,0 +1,117 @@ +import { AzureEndpoint } from 'azure-pipelines-tasks-azurermdeploycommon-v3/azure-arm-rest/azureModels'; +import tl = require('azure-pipelines-task-lib/task'); +import { Package, PackageType } from 'azure-pipelines-tasks-azurermdeploycommon-v3/webdeployment-common/packageUtility'; +var webCommonUtility = require('azure-pipelines-tasks-azurermdeploycommon-v3/webdeployment-common/utility.js'); +import { AzureRMEndpoint } from 'azure-pipelines-tasks-azurermdeploycommon-v3/azure-arm-rest/azure-arm-endpoint'; +import { AzureResourceFilterUtility } from 'azure-pipelines-tasks-azurermdeploycommon-v3/operations/AzureResourceFilterUtility'; +import { AzureAppService } from 'azure-pipelines-tasks-azurermdeploycommon-v3/azure-arm-rest/azure-arm-app-service'; +const skuDynamicValue: string = 'dynamic'; +const skuElasticPremiumValue: string = 'elasticpremium'; + +const webAppKindMap = new Map([ + [ 'functionapp', 'functionApp' ], + [ 'functionapp,linux,container', 'functionAppLinux' ], + [ 'functionapp,linux', 'functionAppLinux' ] +]); + +export class TaskParametersUtility { + + public static async getParameters(): Promise { + var taskParameters: TaskParameters = { + connectedServiceName: tl.getInput('azureSubscription', true), + WebAppKind: tl.getInput('appType', false), + DeployToSlotOrASEFlag: tl.getBoolInput('deployToSlotOrASE', false), + AppSettings: tl.getInput('appSettings', false), + ConfigurationSettings: tl.getInput('configurationStrings', false), + WebAppName: tl.getInput('appName', true) + } + + //Clear input if deploytoslot is disabled + taskParameters.ResourceGroupName = (!!taskParameters.DeployToSlotOrASEFlag) ? tl.getInput('resourceGroupName', false) : null; + taskParameters.SlotName = (!!taskParameters.DeployToSlotOrASEFlag) ? tl.getInput('slotName', false) : "production"; + tl.debug(`SlotName : ${taskParameters.SlotName}`); + + taskParameters.azureEndpoint = await new AzureRMEndpoint(taskParameters.connectedServiceName).getEndpoint(); + console.log(tl.loc('GotconnectiondetailsforazureRMWebApp0', taskParameters.WebAppName)); + + if(taskParameters.AppSettings && taskParameters.AppSettings !== null) + { + taskParameters.AppSettings = taskParameters.AppSettings.replace('\n',' '); + } + + var appDetails = await this.getWebAppKind(taskParameters); + taskParameters.ResourceGroupName = appDetails["resourceGroupName"]; + taskParameters.WebAppKind = appDetails["webAppKind"]; + taskParameters.isConsumption = appDetails["sku"].toLowerCase() == skuDynamicValue; + taskParameters.isPremium = appDetails["sku"].toLowerCase() == skuElasticPremiumValue; + + taskParameters.isLinuxApp = taskParameters.WebAppKind && taskParameters.WebAppKind.indexOf("Linux") !=-1; + + var endpointTelemetry = '{"endpointId":"' + taskParameters.connectedServiceName + '"}'; + console.log("##vso[telemetry.publish area=TaskEndpointId;feature=AzureFunctionAppDeployment]" + endpointTelemetry); + + taskParameters.Package = new Package(tl.getPathInput('package', true)); + + if(taskParameters.isLinuxApp) { + taskParameters.RuntimeStack = tl.getInput('runtimeStack', false); + } + + taskParameters.DeploymentType = DeploymentType[(tl.getInput('deploymentMethod', false))]; + + return taskParameters; + } + + private static async getWebAppKind(taskParameters: TaskParameters): Promise { + var resourceGroupName = taskParameters.ResourceGroupName; + var kind = taskParameters.WebAppKind; + var sku; + if (!resourceGroupName) { + var appDetails = await AzureResourceFilterUtility.getAppDetails(taskParameters.azureEndpoint, taskParameters.WebAppName); + resourceGroupName = appDetails["resourceGroupName"]; + if(!kind) { + kind = webAppKindMap.get(appDetails["kind"]) ? webAppKindMap.get(appDetails["kind"]) : appDetails["kind"]; + } + tl.debug(`Resource Group: ${resourceGroupName}`); + } + + var appService = new AzureAppService(taskParameters.azureEndpoint, resourceGroupName, taskParameters.WebAppName); + var configSettings = await appService.get(true); + if(!kind) { + kind = webAppKindMap.get(configSettings.kind) ? webAppKindMap.get(configSettings.kind) : configSettings.kind; + } + + sku = configSettings.properties.sku; + tl.debug(`Sku: ${sku}`); + return { + resourceGroupName: resourceGroupName, + webAppKind: kind, + sku: sku + }; + } +} + +export enum DeploymentType { + auto, + zipDeploy, + runFromPackage +} + +export interface TaskParameters { + connectedServiceName: string; + WebAppName: string; + WebAppKind?: string; + DeployToSlotOrASEFlag?: boolean; + ResourceGroupName?: string; + SlotName?: string; + Package?: Package; + WebConfigParameters?: string; + DeploymentType?: DeploymentType; + AppSettings?: string; + RuntimeStack?: string; + ConfigurationSettings?: string; + /** Additional parameters */ + azureEndpoint?: AzureEndpoint; + isLinuxApp?: boolean; + isConsumption?: boolean; + isPremium?: boolean; +} \ No newline at end of file diff --git a/Tasks/AzureFunctionAppV2/tsconfig.json b/Tasks/AzureFunctionAppV2/tsconfig.json new file mode 100644 index 000000000000..0438b79f69ac --- /dev/null +++ b/Tasks/AzureFunctionAppV2/tsconfig.json @@ -0,0 +1,6 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "commonjs" + } +} \ No newline at end of file