diff --git a/powershell/Docs/Commands.md b/powershell/Docs/Commands.md index dee6bf7ee..ed2f5ca70 100644 --- a/powershell/Docs/Commands.md +++ b/powershell/Docs/Commands.md @@ -1,806 +1,842 @@ -# Commands (v0.11.0) -## Table of Contents -* [Find](#find) - * [Find-VstsMatch](#find-vstsmatch) - * [New-VstsFindOptions](#new-vstsfindoptions) - * [New-VstsMatchOptions](#new-vstsmatchoptions) - * [Select-VstsMatch](#select-vstsmatch) -* [Input](#input) - * [Get-VstsEndpoint](#get-vstsendpoint) - * [Get-VstsInput](#get-vstsinput) - * [Get-VstsSecureFileName](#get-vstssecurefilename) - * [Get-VstsSecureFileTicket](#get-vstssecurefileticket) - * [Get-VstsTaskVariable](#get-vststaskvariable) - * [Get-VstsTaskVariableInfo](#get-vststaskvariableinfo) - * [Set-VstsTaskVariable](#set-vststaskvariable) -* [Legacy Find](#legacyfind) - * [Find-VstsFiles](#find-vstsfiles) -* [Localization](#localization) - * [Get-VstsLocString](#get-vstslocstring) - * [Import-VstsLocStrings](#import-vstslocstrings) -* [Logging Command](#loggingcommand) - * [Write-VstsAddAttachment](#write-vstsaddattachment) - * [Write-VstsAddBuildTag](#write-vstsaddbuildtag) - * [Write-VstsAssociateArtifact](#write-vstsassociateartifact) - * [Write-VstsLogDetail](#write-vstslogdetail) - * [Write-VstsPrependPath](#write-vstsprependpath) - * [Write-VstsSetEndpoint](#write-vstssetendpoint) - * [Write-VstsSetProgress](#write-vstssetprogress) - * [Write-VstsSetResult](#write-vstssetresult) - * [Write-VstsSetSecret](#write-vstssetsecret) - * [Write-VstsSetVariable](#write-vstssetvariable) - * [Write-VstsTaskDebug](#write-vststaskdebug) - * [Write-VstsTaskError](#write-vststaskerror) - * [Write-VstsTaskVerbose](#write-vststaskverbose) - * [Write-VstsTaskWarning](#write-vststaskwarning) - * [Write-VstsUpdateBuildNumber](#write-vstsupdatebuildnumber) - * [Write-VstsUpdateReleaseName](#write-vstsupdatereleasename) - * [Write-VstsUploadArtifact](#write-vstsuploadartifact) - * [Write-VstsUploadBuildLog](#write-vstsuploadbuildlog) - * [Write-VstsUploadFile](#write-vstsuploadfile) - * [Write-VstsUploadSummary](#write-vstsuploadsummary) -* [Server OM](#serverom) - * [Get-VstsAssemblyReference](#get-vstsassemblyreference) - * [Get-VstsClientCertificate](#get-vstsclientcertificate) - * [Get-VstsTfsClientCredentials](#get-vststfsclientcredentials) - * [Get-VstsTfsService](#get-vststfsservice) - * [Get-VstsVssCredentials](#get-vstsvsscredentials) - * [Get-VstsVssHttpClient](#get-vstsvsshttpclient) - * [Get-VstsWebProxy](#get-vstswebproxy) -* [Tool](#tool) - * [Assert-VstsAgent](#assert-vstsagent) - * [Assert-VstsPath](#assert-vstspath) - * [Invoke-VstsTool](#invoke-vststool) -* [Trace](#trace) - * [Trace-VstsEnteringInvocation](#trace-vstsenteringinvocation) - * [Trace-VstsLeavingInvocation](#trace-vstsleavinginvocation) - * [Trace-VstsPath](#trace-vstspath) - -## Find -### Find-VstsMatch -[table of contents](#toc) | [full](FullHelp/Find-VstsMatch.md) -``` -NAME - Find-VstsMatch - -SYNOPSIS - Finds files using match patterns. - -SYNTAX - Find-VstsMatch [[-DefaultRoot] ] [[-Pattern] ] [[-FindOptions] ] - [[-MatchOptions] ] [] - -DESCRIPTION - Determines the find root from a list of patterns. Performs the find and then applies the glob patterns. - Supports interleaved exclude patterns. Unrooted patterns are rooted using defaultRoot, unless - matchOptions.matchBase is specified and the pattern is a basename only. For matchBase cases, the - defaultRoot is used as the find root. -``` -### New-VstsFindOptions -[table of contents](#toc) | [full](FullHelp/New-VstsFindOptions.md) -``` -NAME - New-VstsFindOptions - -SYNOPSIS - Creates FindOptions for use with Find-VstsMatch. - -SYNTAX - New-VstsFindOptions [-FollowSpecifiedSymbolicLink] [-FollowSymbolicLinks] [] - -DESCRIPTION - Creates FindOptions for use with Find-VstsMatch. Contains switches to control whether to follow symlinks. -``` -### New-VstsMatchOptions -[table of contents](#toc) | [full](FullHelp/New-VstsMatchOptions.md) -``` -NAME - New-VstsMatchOptions - -SYNOPSIS - Creates MatchOptions for use with Find-VstsMatch and Select-VstsMatch. - -SYNTAX - New-VstsMatchOptions [-Dot] [-FlipNegate] [-MatchBase] [-NoBrace] [-NoCase] [-NoComment] [-NoExt] - [-NoGlobStar] [-NoNegate] [-NoNull] [] - -DESCRIPTION - Creates MatchOptions for use with Find-VstsMatch and Select-VstsMatch. Contains switches to control which - pattern matching options are applied. -``` -### Select-VstsMatch -[table of contents](#toc) | [full](FullHelp/Select-VstsMatch.md) -``` -NAME - Select-VstsMatch - -SYNOPSIS - Applies match patterns against a list of files. - -SYNTAX - Select-VstsMatch [[-ItemPath] ] [[-Pattern] ] [[-PatternRoot] ] [[-Options] - ] [] - -DESCRIPTION - Applies match patterns to a list of paths. Supports interleaved exclude patterns. -``` -## Input -### Get-VstsEndpoint -[table of contents](#toc) | [full](FullHelp/Get-VstsEndpoint.md) -``` -NAME - Get-VstsEndpoint - -SYNOPSIS - Gets an endpoint. - -SYNTAX - Get-VstsEndpoint [-Name] [-Require] [] - -DESCRIPTION - Gets an endpoint object for the specified endpoint name. The endpoint is returned as an object with three - properties: Auth, Data, and Url. - - The Data property requires a 1.97 agent or higher. -``` -### Get-VstsInput -[table of contents](#toc) | [full](FullHelp/Get-VstsInput.md) -``` -NAME - Get-VstsInput - -SYNOPSIS - Gets an input. - -SYNTAX - Get-VstsInput -Name [-Require] [-AsBool] [-AsInt] [] - - Get-VstsInput -Name [-Default ] [-AsBool] [-AsInt] [] - -DESCRIPTION - Gets the value for the specified input name. -``` -### Get-VstsSecureFileName -[table of contents](#toc) | [full](FullHelp/Get-VstsSecureFileName.md) -``` -NAME - Get-VstsSecureFileName - -SYNOPSIS - Gets a secure file name. - -SYNTAX - Get-VstsSecureFileName [-Id] [-Require] [] - -DESCRIPTION - Gets the name for a secure file. -``` -### Get-VstsSecureFileTicket -[table of contents](#toc) | [full](FullHelp/Get-VstsSecureFileTicket.md) -``` -NAME - Get-VstsSecureFileTicket - -SYNOPSIS - Gets a secure file ticket. - -SYNTAX - Get-VstsSecureFileTicket [-Id] [-Require] [] - -DESCRIPTION - Gets the secure file ticket that can be used to download the secure file contents. -``` -### Get-VstsTaskVariable -[table of contents](#toc) | [full](FullHelp/Get-VstsTaskVariable.md) -``` -NAME - Get-VstsTaskVariable - -SYNOPSIS - Gets a task variable. - -SYNTAX - Get-VstsTaskVariable -Name [-Require] [-AsBool] [-AsInt] [] - - Get-VstsTaskVariable -Name [-Default ] [-AsBool] [-AsInt] [] - -DESCRIPTION - Gets the value for the specified task variable. -``` -### Get-VstsTaskVariableInfo -[table of contents](#toc) | [full](FullHelp/Get-VstsTaskVariableInfo.md) -``` -NAME - Get-VstsTaskVariableInfo - -SYNOPSIS - Gets all job variables available to the task. Requires 2.104.1 agent or higher. - -SYNTAX - Get-VstsTaskVariableInfo [] - -DESCRIPTION - Gets a snapshot of the current state of all job variables available to the task. - Requires a 2.104.1 agent or higher for full functionality. - - Returns an array of objects with the following properties: - [string]Name - [string]Value - [bool]Secret - - Limitations on an agent prior to 2.104.1: - 1) The return value does not include all public variables. Only public variables - that have been added using setVariable are returned. - 2) The name returned for each secret variable is the formatted environment variable - name, not the actual variable name (unless it was set explicitly at runtime using - setVariable). -``` -### Set-VstsTaskVariable -[table of contents](#toc) | [full](FullHelp/Set-VstsTaskVariable.md) -``` -NAME - Set-VstsTaskVariable - -SYNOPSIS - Sets a task variable. - -SYNTAX - Set-VstsTaskVariable [-Name] [[-Value] ] [-Secret] [] - -DESCRIPTION - Sets a task variable in the current task context as well as in the current job context. This allows the - task variable to retrieved by subsequent tasks within the same job. -``` -## Legacy Find -### Find-VstsFiles -[table of contents](#toc) | [full](FullHelp/Find-VstsFiles.md) -``` -NAME - Find-VstsFiles - -SYNOPSIS - Finds files or directories. - -SYNTAX - Find-VstsFiles [[-LiteralDirectory] ] [-LegacyPattern] [-IncludeFiles] - [-IncludeDirectories] [-Force] [] - -DESCRIPTION - Finds files or directories using advanced pattern matching. -``` -## Localization -### Get-VstsLocString -[table of contents](#toc) | [full](FullHelp/Get-VstsLocString.md) -``` -NAME - Get-VstsLocString - -SYNOPSIS - Gets a localized resource string. - -SYNTAX - Get-VstsLocString [-Key] [[-ArgumentList] ] [] - -DESCRIPTION - Gets a localized resource string and optionally formats the string with arguments. - - If the format fails (due to a bad format string or incorrect expected arguments in the format string), - then the format string is returned followed by each of the arguments (delimited by a space). - - If the lookup key is not found, then the lookup key is returned followed by each of the arguments - (delimited by a space). -``` -### Import-VstsLocStrings -[table of contents](#toc) | [full](FullHelp/Import-VstsLocStrings.md) -``` -NAME - Import-VstsLocStrings - -SYNOPSIS - Imports resource strings for use with Get-VstsLocString. - -SYNTAX - Import-VstsLocStrings [-LiteralPath] [] - -DESCRIPTION - Imports resource strings for use with Get-VstsLocString. The imported strings are stored in an internal - resource string dictionary. Optionally, if a separate resource file for the current culture exists, then - the localized strings from that file then imported (overlaid) into the same internal resource string - dictionary. - - Resource strings from the SDK are prefixed with "PSLIB_". This prefix should be avoided for custom - resource strings. -``` -## Logging Command -### Write-VstsAddAttachment -[table of contents](#toc) | [full](FullHelp/Write-VstsAddAttachment.md) -``` -NAME - Write-VstsAddAttachment - -SYNOPSIS - See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md - -SYNTAX - Write-VstsAddAttachment [-Type] [-Name] [-Path] [-AsOutput] - [] -``` -### Write-VstsAddBuildTag -[table of contents](#toc) | [full](FullHelp/Write-VstsAddBuildTag.md) -``` -NAME - Write-VstsAddBuildTag - -SYNOPSIS - See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md - -SYNTAX - Write-VstsAddBuildTag [-Value] [-AsOutput] [] -``` -### Write-VstsAssociateArtifact -[table of contents](#toc) | [full](FullHelp/Write-VstsAssociateArtifact.md) -``` -NAME - Write-VstsAssociateArtifact - -SYNOPSIS - See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md - -SYNTAX - Write-VstsAssociateArtifact [-Name] [-Path] [-Type] [[-Properties] - ] [-AsOutput] [] -``` -### Write-VstsLogDetail -[table of contents](#toc) | [full](FullHelp/Write-VstsLogDetail.md) -``` -NAME - Write-VstsLogDetail - -SYNOPSIS - See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md - -SYNTAX - Write-VstsLogDetail [-Id] [[-ParentId] ] [[-Type] ] [[-Name] ] [[-Order] - ] [[-StartTime] ] [[-FinishTime] ] [[-Progress] ] [[-State] ] - [[-Result] ] [[-Message] ] [-AsOutput] [] -``` -### Write-VstsPrependPath -[table of contents](#toc) | [full](FullHelp/Write-VstsPrependPath.md) -``` -NAME - Write-VstsPrependPath - -SYNOPSIS - See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md - -SYNTAX - Write-VstsPrependPath [-Path] [-AsOutput] [] -``` -### Write-VstsSetEndpoint -[table of contents](#toc) | [full](FullHelp/Write-VstsSetEndpoint.md) -``` -NAME - Write-VstsSetEndpoint - -SYNOPSIS - See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md - -SYNTAX - Write-VstsSetEndpoint [-Id] [-Field] [-Key] [-Value] [-AsOutput] - [] -``` -### Write-VstsSetProgress -[table of contents](#toc) | [full](FullHelp/Write-VstsSetProgress.md) -``` -NAME - Write-VstsSetProgress - -SYNOPSIS - See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md - -SYNTAX - Write-VstsSetProgress [-Percent] [[-CurrentOperation] ] [-AsOutput] [] -``` -### Write-VstsSetResult -[table of contents](#toc) | [full](FullHelp/Write-VstsSetResult.md) -``` -NAME - Write-VstsSetResult - -SYNOPSIS - See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md - -SYNTAX - Write-VstsSetResult -Result [-Message ] [-AsOutput] [] - - Write-VstsSetResult -Result [-Message ] [-DoNotThrow] [] -``` -### Write-VstsSetSecret -[table of contents](#toc) | [full](FullHelp/Write-VstsSetSecret.md) -``` -NAME - Write-VstsSetSecret - -SYNOPSIS - See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md - -SYNTAX - Write-VstsSetSecret [-Value] [-AsOutput] [] -``` -### Write-VstsSetVariable -[table of contents](#toc) | [full](FullHelp/Write-VstsSetVariable.md) -``` -NAME - Write-VstsSetVariable - -SYNOPSIS - See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md - -SYNTAX - Write-VstsSetVariable [-Name] [[-Value] ] [-Secret] [-AsOutput] [] -``` -### Write-VstsTaskDebug -[table of contents](#toc) | [full](FullHelp/Write-VstsTaskDebug.md) -``` -NAME - Write-VstsTaskDebug - -SYNOPSIS - See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md - -SYNTAX - Write-VstsTaskDebug [[-Message] ] [-AsOutput] [] -``` -### Write-VstsTaskError -[table of contents](#toc) | [full](FullHelp/Write-VstsTaskError.md) -``` -NAME - Write-VstsTaskError - -SYNOPSIS - See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md - -SYNTAX - Write-VstsTaskError [[-Message] ] [[-ErrCode] ] [[-SourcePath] ] [[-LineNumber] - ] [[-ColumnNumber] ] [-AsOutput] [] -``` -### Write-VstsTaskVerbose -[table of contents](#toc) | [full](FullHelp/Write-VstsTaskVerbose.md) -``` -NAME - Write-VstsTaskVerbose - -SYNOPSIS - See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md - -SYNTAX - Write-VstsTaskVerbose [[-Message] ] [-AsOutput] [] -``` -### Write-VstsTaskWarning -[table of contents](#toc) | [full](FullHelp/Write-VstsTaskWarning.md) -``` -NAME - Write-VstsTaskWarning - -SYNOPSIS - See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md - -SYNTAX - Write-VstsTaskWarning [[-Message] ] [[-ErrCode] ] [[-SourcePath] ] [[-LineNumber] - ] [[-ColumnNumber] ] [-AsOutput] [] -``` -### Write-VstsUpdateBuildNumber -[table of contents](#toc) | [full](FullHelp/Write-VstsUpdateBuildNumber.md) -``` -NAME - Write-VstsUpdateBuildNumber - -SYNOPSIS - See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md - -SYNTAX - Write-VstsUpdateBuildNumber [-Value] [-AsOutput] [] -``` -### Write-VstsUpdateReleaseName -[table of contents](#toc) | [full](FullHelp/Write-VstsUpdateReleaseName.md) -``` -NAME - Write-VstsUpdateReleaseName - -SYNOPSIS - See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md - -SYNTAX - Write-VstsUpdateReleaseName [-Name] [-AsOutput] [] -``` -### Write-VstsUploadArtifact -[table of contents](#toc) | [full](FullHelp/Write-VstsUploadArtifact.md) -``` -NAME - Write-VstsUploadArtifact - -SYNOPSIS - See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md - -SYNTAX - Write-VstsUploadArtifact [-ContainerFolder] [-Name] [-Path] [-AsOutput] - [] -``` -### Write-VstsUploadBuildLog -[table of contents](#toc) | [full](FullHelp/Write-VstsUploadBuildLog.md) -``` -NAME - Write-VstsUploadBuildLog - -SYNOPSIS - See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md - -SYNTAX - Write-VstsUploadBuildLog [-Path] [-AsOutput] [] -``` -### Write-VstsUploadFile -[table of contents](#toc) | [full](FullHelp/Write-VstsUploadFile.md) -``` -NAME - Write-VstsUploadFile - -SYNOPSIS - See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md - -SYNTAX - Write-VstsUploadFile [-Path] [-AsOutput] [] -``` -### Write-VstsUploadSummary -[table of contents](#toc) | [full](FullHelp/Write-VstsUploadSummary.md) -``` -NAME - Write-VstsUploadSummary - -SYNOPSIS - See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md - -SYNTAX - Write-VstsUploadSummary [-Path] [-AsOutput] [] -``` -## Server OM -### Get-VstsAssemblyReference -[table of contents](#toc) | [full](FullHelp/Get-VstsAssemblyReference.md) -``` -NAME - Get-VstsAssemblyReference - -SYNOPSIS - Gets assembly reference information. - -SYNTAX - Get-VstsAssemblyReference [-LiteralPath] [] - -DESCRIPTION - Not supported for use during task execution. This function is only intended to help developers resolve - the minimal set of DLLs that need to be bundled when consuming the VSTS REST SDK or TFS Extended Client - SDK. The interface and output may change between patch releases of the VSTS Task SDK. - - Only a subset of the referenced assemblies may actually be required, depending on the functionality used - by your task. It is best to bundle only the DLLs required for your scenario. - - Walks an assembly's references to determine all of it's dependencies. Also walks the references of the - dependencies, and so on until all nested dependencies have been traversed. Dependencies are searched for - in the directory of the specified assembly. NET Framework assemblies are omitted. - - See https://github.com/Microsoft/azure-pipelines-task-lib/tree/master/powershell/Docs/UsingOM.md for reliable usage - when working with the TFS extended client SDK from a task. -``` -### Get-VstsClientCertificate -[table of contents](#toc) | [full](FullHelp/Get-VstsClientCertificate.md) -``` -NAME - Get-VstsClientCertificate - -SYNOPSIS - Gets a client certificate for current connected TFS instance - -SYNTAX - Get-VstsClientCertificate [] - -DESCRIPTION - Gets an instance of a X509Certificate2 that is the client certificate Build/Release agent used. -``` -### Get-VstsTfsClientCredentials -[table of contents](#toc) | [full](FullHelp/Get-VstsTfsClientCredentials.md) -``` -NAME - Get-VstsTfsClientCredentials - -SYNOPSIS - Gets a credentials object that can be used with the TFS extended client SDK. - -SYNTAX - Get-VstsTfsClientCredentials [[-OMDirectory] ] [] - -DESCRIPTION - The agent job token is used to construct the credentials object. The identity associated with the token - depends on the scope selected in the build/release definition (either the project collection - build/release service identity, or the project build/release service identity). - - Refer to Get-VstsTfsService for a more simple to get a TFS service object. - - *** DO NOT USE Agent.ServerOMDirectory *** See - https://github.com/Microsoft/azure-pipelines-task-lib/tree/master/powershell/Docs/UsingOM.md for reliable usage when - working with the TFS extended client SDK from a task. -``` -### Get-VstsTfsService -[table of contents](#toc) | [full](FullHelp/Get-VstsTfsService.md) -``` -NAME - Get-VstsTfsService - -SYNOPSIS - Gets a TFS extended client service. - -SYNTAX - Get-VstsTfsService [-TypeName] [[-OMDirectory] ] [[-Uri] ] - [[-TfsClientCredentials] ] [] - -DESCRIPTION - Gets an instance of an ITfsTeamProjectCollectionObject. - - *** DO NOT USE Agent.ServerOMDirectory *** See - https://github.com/Microsoft/azure-pipelines-task-lib/tree/master/powershell/Docs/UsingOM.md for reliable usage when - working with the TFS extended client SDK from a task. -``` -### Get-VstsVssCredentials -[table of contents](#toc) | [full](FullHelp/Get-VstsVssCredentials.md) -``` -NAME - Get-VstsVssCredentials - -SYNOPSIS - Gets a credentials object that can be used with the VSTS REST SDK. - -SYNTAX - Get-VstsVssCredentials [[-OMDirectory] ] [] - -DESCRIPTION - The agent job token is used to construct the credentials object. The identity associated with the token - depends on the scope selected in the build/release definition (either the project collection - build/release service identity, or the project service build/release identity). - - Refer to Get-VstsVssHttpClient for a more simple to get a VSS HTTP client. - - *** DO NOT USE Agent.ServerOMDirectory *** See - https://github.com/Microsoft/azure-pipelines-task-lib/tree/master/powershell/Docs/UsingOM.md for reliable usage when - working with the VSTS REST SDK from a task. -``` -### Get-VstsVssHttpClient -[table of contents](#toc) | [full](FullHelp/Get-VstsVssHttpClient.md) -``` -NAME - Get-VstsVssHttpClient - -SYNOPSIS - Gets a VSS HTTP client. - -SYNTAX - Get-VstsVssHttpClient [-TypeName] [[-OMDirectory] ] [[-Uri] ] [[-VssCredentials] - ] [[-WebProxy] ] [[-ClientCert] ] [-IgnoreSslError] [] - -DESCRIPTION - Gets an instance of an VSS HTTP client. - - *** DO NOT USE Agent.ServerOMDirectory *** See - https://github.com/Microsoft/azure-pipelines-task-lib/tree/master/powershell/Docs/UsingOM.md for reliable usage when - working with the VSTS REST SDK from a task. -``` -### Get-VstsWebProxy -[table of contents](#toc) | [full](FullHelp/Get-VstsWebProxy.md) -``` -NAME - Get-VstsWebProxy - -SYNOPSIS - Gets a VstsTaskSdk.VstsWebProxy - -SYNTAX - Get-VstsWebProxy [] - -DESCRIPTION - Gets an instance of a VstsTaskSdk.VstsWebProxy that has same proxy configuration as Build/Release agent. - - VstsTaskSdk.VstsWebProxy implement System.Net.IWebProxy interface. -``` -## Tool -### Assert-VstsAgent -[table of contents](#toc) | [full](FullHelp/Assert-VstsAgent.md) -``` -NAME - Assert-VstsAgent - -SYNOPSIS - Asserts the agent version is at least the specified minimum. - -SYNTAX - Assert-VstsAgent [-Minimum] [] -``` -### Assert-VstsPath -[table of contents](#toc) | [full](FullHelp/Assert-VstsPath.md) -``` -NAME - Assert-VstsPath - -SYNOPSIS - Asserts that a path exists. Throws if the path does not exist. - -SYNTAX - Assert-VstsPath [-LiteralPath] [[-PathType] {Any | Container | Leaf}] [-PassThru] - [] -``` -### Invoke-VstsTool -[table of contents](#toc) | [full](FullHelp/Invoke-VstsTool.md) -``` -NAME - Invoke-VstsTool - -SYNOPSIS - Executes an external program. - -SYNTAX - Invoke-VstsTool [-FileName] [[-Arguments] ] [[-WorkingDirectory] ] [[-Encoding] - ] [-RequireExitCodeZero] [] - -DESCRIPTION - Executes an external program and waits for the process to exit. - - After calling this command, the exit code of the process can be retrieved from the variable $LASTEXITCODE. -``` -## Trace -### Trace-VstsEnteringInvocation -[table of contents](#toc) | [full](FullHelp/Trace-VstsEnteringInvocation.md) -``` -NAME - Trace-VstsEnteringInvocation - -SYNOPSIS - Writes verbose information about the invocation being entered. - -SYNTAX - Trace-VstsEnteringInvocation [-InvocationInfo] [[-Parameter] ] - [] - -DESCRIPTION - Used to trace verbose information when entering a function/script. Writes an entering message followed by - a short description of the invocation. Additionally each bound parameter and unbound argument is also - traced. -``` -### Trace-VstsLeavingInvocation -[table of contents](#toc) | [full](FullHelp/Trace-VstsLeavingInvocation.md) -``` -NAME - Trace-VstsLeavingInvocation - -SYNOPSIS - Writes verbose information about the invocation being left. - -SYNTAX - Trace-VstsLeavingInvocation [-InvocationInfo] [] - -DESCRIPTION - Used to trace verbose information when leaving a function/script. Writes a leaving message followed by a - short description of the invocation. -``` -### Trace-VstsPath -[table of contents](#toc) | [full](FullHelp/Trace-VstsPath.md) -``` -NAME - Trace-VstsPath - -SYNOPSIS - Writes verbose information about paths. - -SYNTAX - Trace-VstsPath [[-Path] ] [-PassThru] [] - -DESCRIPTION - Writes verbose information about the paths. The paths are sorted and a the common root is written only - once, followed by each relative path. -``` - +# Commands (v0.16.0) +## Table of Contents +* [Find](#find) + * [Find-VstsMatch](#find-vstsmatch) + * [New-VstsFindOptions](#new-vstsfindoptions) + * [New-VstsMatchOptions](#new-vstsmatchoptions) + * [Select-VstsMatch](#select-vstsmatch) +* [Input](#input) + * [Get-VstsEndpoint](#get-vstsendpoint) + * [Get-VstsInput](#get-vstsinput) + * [Get-VstsSecureFileName](#get-vstssecurefilename) + * [Get-VstsSecureFileTicket](#get-vstssecurefileticket) + * [Get-VstsTaskVariable](#get-vststaskvariable) + * [Get-VstsTaskVariableInfo](#get-vststaskvariableinfo) + * [Set-VstsTaskVariable](#set-vststaskvariable) +* [Legacy Find](#legacyfind) + * [Find-VstsFiles](#find-vstsfiles) +* [Localization](#localization) + * [Get-VstsLocString](#get-vstslocstring) + * [Import-VstsLocStrings](#import-vstslocstrings) +* [Logging Command](#loggingcommand) + * [Write-VstsAddAttachment](#write-vstsaddattachment) + * [Write-VstsAddBuildTag](#write-vstsaddbuildtag) + * [Write-VstsAssociateArtifact](#write-vstsassociateartifact) + * [Write-VstsLogDetail](#write-vstslogdetail) + * [Write-VstsLoggingCommand](#write-vstsloggingcommand) + * [Write-VstsPrependPath](#write-vstsprependpath) + * [Write-VstsSetEndpoint](#write-vstssetendpoint) + * [Write-VstsSetProgress](#write-vstssetprogress) + * [Write-VstsSetResult](#write-vstssetresult) + * [Write-VstsSetSecret](#write-vstssetsecret) + * [Write-VstsSetVariable](#write-vstssetvariable) + * [Write-VstsTaskDebug](#write-vststaskdebug) + * [Write-VstsTaskError](#write-vststaskerror) + * [Write-VstsTaskVerbose](#write-vststaskverbose) + * [Write-VstsTaskWarning](#write-vststaskwarning) + * [Write-VstsUpdateBuildNumber](#write-vstsupdatebuildnumber) + * [Write-VstsUpdateReleaseName](#write-vstsupdatereleasename) + * [Write-VstsUploadArtifact](#write-vstsuploadartifact) + * [Write-VstsUploadBuildLog](#write-vstsuploadbuildlog) + * [Write-VstsUploadFile](#write-vstsuploadfile) + * [Write-VstsUploadSummary](#write-vstsuploadsummary) +* [Server OM](#serverom) + * [Get-VstsAssemblyReference](#get-vstsassemblyreference) + * [Get-VstsClientCertificate](#get-vstsclientcertificate) + * [Get-VstsTfsClientCredentials](#get-vststfsclientcredentials) + * [Get-VstsTfsService](#get-vststfsservice) + * [Get-VstsVssCredentials](#get-vstsvsscredentials) + * [Get-VstsVssHttpClient](#get-vstsvsshttpclient) + * [Get-VstsWebProxy](#get-vstswebproxy) +* [Tool](#tool) + * [Assert-VstsAgent](#assert-vstsagent) + * [Assert-VstsPath](#assert-vstspath) + * [Invoke-VstsProcess](#invoke-vstsprocess) + * [Invoke-VstsTool](#invoke-vststool) +* [Trace](#trace) + * [Trace-VstsEnteringInvocation](#trace-vstsenteringinvocation) + * [Trace-VstsLeavingInvocation](#trace-vstsleavinginvocation) + * [Trace-VstsPath](#trace-vstspath) + +## Find +### Find-VstsMatch +[table of contents](#toc) | [full](FullHelp/Find-VstsMatch.md) +``` +NAME + Find-VstsMatch + +SYNOPSIS + Finds files using match patterns. + +SYNTAX + Find-VstsMatch [[-DefaultRoot] ] [[-Pattern] ] [[-FindOptions] ] + [[-MatchOptions] ] [] + +DESCRIPTION + Determines the find root from a list of patterns. Performs the find and then applies the glob patterns. + Supports interleaved exclude patterns. Unrooted patterns are rooted using defaultRoot, unless + matchOptions.matchBase is specified and the pattern is a basename only. For matchBase cases, the + defaultRoot is used as the find root. +``` +### New-VstsFindOptions +[table of contents](#toc) | [full](FullHelp/New-VstsFindOptions.md) +``` +NAME + New-VstsFindOptions + +SYNOPSIS + Creates FindOptions for use with Find-VstsMatch. + +SYNTAX + New-VstsFindOptions [-FollowSpecifiedSymbolicLink] [-FollowSymbolicLinks] [] + +DESCRIPTION + Creates FindOptions for use with Find-VstsMatch. Contains switches to control whether to follow symlinks. +``` +### New-VstsMatchOptions +[table of contents](#toc) | [full](FullHelp/New-VstsMatchOptions.md) +``` +NAME + New-VstsMatchOptions + +SYNOPSIS + Creates MatchOptions for use with Find-VstsMatch and Select-VstsMatch. + +SYNTAX + New-VstsMatchOptions [-Dot] [-FlipNegate] [-MatchBase] [-NoBrace] [-NoCase] [-NoComment] [-NoExt] + [-NoGlobStar] [-NoNegate] [-NoNull] [] + +DESCRIPTION + Creates MatchOptions for use with Find-VstsMatch and Select-VstsMatch. Contains switches to control which + pattern matching options are applied. +``` +### Select-VstsMatch +[table of contents](#toc) | [full](FullHelp/Select-VstsMatch.md) +``` +NAME + Select-VstsMatch + +SYNOPSIS + Applies match patterns against a list of files. + +SYNTAX + Select-VstsMatch [[-ItemPath] ] [[-Pattern] ] [[-PatternRoot] ] [[-Options] + ] [] + +DESCRIPTION + Applies match patterns to a list of paths. Supports interleaved exclude patterns. +``` +## Input +### Get-VstsEndpoint +[table of contents](#toc) | [full](FullHelp/Get-VstsEndpoint.md) +``` +NAME + Get-VstsEndpoint + +SYNOPSIS + Gets an endpoint. + +SYNTAX + Get-VstsEndpoint [-Name] [-Require] [] + +DESCRIPTION + Gets an endpoint object for the specified endpoint name. The endpoint is returned as an object with three + properties: Auth, Data, and Url. + + The Data property requires a 1.97 agent or higher. +``` +### Get-VstsInput +[table of contents](#toc) | [full](FullHelp/Get-VstsInput.md) +``` +NAME + Get-VstsInput + +SYNOPSIS + Gets an input. + +SYNTAX + Get-VstsInput -Name [-Require] [-AsBool] [-AsInt] [] + + Get-VstsInput -Name [-Default ] [-AsBool] [-AsInt] [] + +DESCRIPTION + Gets the value for the specified input name. +``` +### Get-VstsSecureFileName +[table of contents](#toc) | [full](FullHelp/Get-VstsSecureFileName.md) +``` +NAME + Get-VstsSecureFileName + +SYNOPSIS + Gets a secure file name. + +SYNTAX + Get-VstsSecureFileName [-Id] [-Require] [] + +DESCRIPTION + Gets the name for a secure file. +``` +### Get-VstsSecureFileTicket +[table of contents](#toc) | [full](FullHelp/Get-VstsSecureFileTicket.md) +``` +NAME + Get-VstsSecureFileTicket + +SYNOPSIS + Gets a secure file ticket. + +SYNTAX + Get-VstsSecureFileTicket [-Id] [-Require] [] + +DESCRIPTION + Gets the secure file ticket that can be used to download the secure file contents. +``` +### Get-VstsTaskVariable +[table of contents](#toc) | [full](FullHelp/Get-VstsTaskVariable.md) +``` +NAME + Get-VstsTaskVariable + +SYNOPSIS + Gets a task variable. + +SYNTAX + Get-VstsTaskVariable -Name [-Require] [-AsBool] [-AsInt] [] + + Get-VstsTaskVariable -Name [-Default ] [-AsBool] [-AsInt] [] + +DESCRIPTION + Gets the value for the specified task variable. +``` +### Get-VstsTaskVariableInfo +[table of contents](#toc) | [full](FullHelp/Get-VstsTaskVariableInfo.md) +``` +NAME + Get-VstsTaskVariableInfo + +SYNOPSIS + Gets all job variables available to the task. Requires 2.104.1 agent or higher. + +SYNTAX + Get-VstsTaskVariableInfo [] + +DESCRIPTION + Gets a snapshot of the current state of all job variables available to the task. + Requires a 2.104.1 agent or higher for full functionality. + + Returns an array of objects with the following properties: + [string]Name + [string]Value + [bool]Secret + + Limitations on an agent prior to 2.104.1: + 1) The return value does not include all public variables. Only public variables + that have been added using setVariable are returned. + 2) The name returned for each secret variable is the formatted environment variable + name, not the actual variable name (unless it was set explicitly at runtime using + setVariable). +``` +### Set-VstsTaskVariable +[table of contents](#toc) | [full](FullHelp/Set-VstsTaskVariable.md) +``` +NAME + Set-VstsTaskVariable + +SYNOPSIS + Sets a task variable. + +SYNTAX + Set-VstsTaskVariable [-Name] [[-Value] ] [-Secret] [] + +DESCRIPTION + Sets a task variable in the current task context as well as in the current job context. This allows the + task variable to retrieved by subsequent tasks within the same job. +``` +## Legacy Find +### Find-VstsFiles +[table of contents](#toc) | [full](FullHelp/Find-VstsFiles.md) +``` +NAME + Find-VstsFiles + +SYNOPSIS + Finds files or directories. + +SYNTAX + Find-VstsFiles [[-LiteralDirectory] ] [-LegacyPattern] [-IncludeFiles] + [-IncludeDirectories] [-Force] [] + +DESCRIPTION + Finds files or directories using advanced pattern matching. +``` +## Localization +### Get-VstsLocString +[table of contents](#toc) | [full](FullHelp/Get-VstsLocString.md) +``` +NAME + Get-VstsLocString + +SYNOPSIS + Gets a localized resource string. + +SYNTAX + Get-VstsLocString [-Key] [[-ArgumentList] ] [] + +DESCRIPTION + Gets a localized resource string and optionally formats the string with arguments. + + If the format fails (due to a bad format string or incorrect expected arguments in the format string), + then the format string is returned followed by each of the arguments (delimited by a space). + + If the lookup key is not found, then the lookup key is returned followed by each of the arguments + (delimited by a space). +``` +### Import-VstsLocStrings +[table of contents](#toc) | [full](FullHelp/Import-VstsLocStrings.md) +``` +NAME + Import-VstsLocStrings + +SYNOPSIS + Imports resource strings for use with GetVstsLocString. + +SYNTAX + Import-VstsLocStrings [-LiteralPath] [] + +DESCRIPTION + Imports resource strings for use with GetVstsLocString. The imported strings are stored in an internal + resource string dictionary. Optionally, if a separate resource file for the current culture exists, then + the localized strings from that file then imported (overlaid) into the same internal resource string + dictionary. + + Resource strings from the SDK are prefixed with "PSLIB_". This prefix should be avoided for custom + resource strings. +``` +## Logging Command +### Write-VstsAddAttachment +[table of contents](#toc) | [full](FullHelp/Write-VstsAddAttachment.md) +``` +NAME + Write-VstsAddAttachment + +SYNOPSIS + See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md + +SYNTAX + Write-VstsAddAttachment [-Type] [-Name] [-Path] [-AsOutput] + [] +``` +### Write-VstsAddBuildTag +[table of contents](#toc) | [full](FullHelp/Write-VstsAddBuildTag.md) +``` +NAME + Write-VstsAddBuildTag + +SYNOPSIS + See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md + +SYNTAX + Write-VstsAddBuildTag [-Value] [-AsOutput] [] +``` +### Write-VstsAssociateArtifact +[table of contents](#toc) | [full](FullHelp/Write-VstsAssociateArtifact.md) +``` +NAME + Write-VstsAssociateArtifact + +SYNOPSIS + See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md + +SYNTAX + Write-VstsAssociateArtifact [-Name] [-Path] [-Type] [[-Properties] + ] [-AsOutput] [] +``` +### Write-VstsLogDetail +[table of contents](#toc) | [full](FullHelp/Write-VstsLogDetail.md) +``` +NAME + Write-VstsLogDetail + +SYNOPSIS + See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md + +SYNTAX + Write-VstsLogDetail [-Id] [[-ParentId] ] [[-Type] ] [[-Name] ] [[-Order] + ] [[-StartTime] ] [[-FinishTime] ] [[-Progress] ] [[-State] ] + [[-Result] ] [[-Message] ] [-AsOutput] [] +``` +### Write-VstsLoggingCommand +[table of contents](#toc) | [full](FullHelp/Write-VstsLoggingCommand.md) +``` +NAME + Write-VstsLoggingCommand + +SYNOPSIS + See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md + +SYNTAX + Write-VstsLoggingCommand -Area -Event [-Data ] [-Properties ] + [-AsOutput] [] + + Write-VstsLoggingCommand -Command [-AsOutput] [] +``` +### Write-VstsPrependPath +[table of contents](#toc) | [full](FullHelp/Write-VstsPrependPath.md) +``` +NAME + Write-VstsPrependPath + +SYNOPSIS + See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md + +SYNTAX + Write-VstsPrependPath [-Path] [-AsOutput] [] +``` +### Write-VstsSetEndpoint +[table of contents](#toc) | [full](FullHelp/Write-VstsSetEndpoint.md) +``` +NAME + Write-VstsSetEndpoint + +SYNOPSIS + See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md + +SYNTAX + Write-VstsSetEndpoint [-Id] [-Field] [-Key] [-Value] [-AsOutput] + [] +``` +### Write-VstsSetProgress +[table of contents](#toc) | [full](FullHelp/Write-VstsSetProgress.md) +``` +NAME + Write-VstsSetProgress + +SYNOPSIS + See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md + +SYNTAX + Write-VstsSetProgress [-Percent] [[-CurrentOperation] ] [-AsOutput] [] +``` +### Write-VstsSetResult +[table of contents](#toc) | [full](FullHelp/Write-VstsSetResult.md) +``` +NAME + Write-VstsSetResult + +SYNOPSIS + See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md + +SYNTAX + Write-VstsSetResult -Result [-Message ] [-AsOutput] [] + + Write-VstsSetResult -Result [-Message ] [-DoNotThrow] [] +``` +### Write-VstsSetSecret +[table of contents](#toc) | [full](FullHelp/Write-VstsSetSecret.md) +``` +NAME + Write-VstsSetSecret + +SYNOPSIS + See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md + +SYNTAX + Write-VstsSetSecret [-Value] [-AsOutput] [] +``` +### Write-VstsSetVariable +[table of contents](#toc) | [full](FullHelp/Write-VstsSetVariable.md) +``` +NAME + Write-VstsSetVariable + +SYNOPSIS + See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md + +SYNTAX + Write-VstsSetVariable [-Name] [[-Value] ] [-Secret] [-AsOutput] [] +``` +### Write-VstsTaskDebug +[table of contents](#toc) | [full](FullHelp/Write-VstsTaskDebug.md) +``` +NAME + Write-VstsTaskDebug + +SYNOPSIS + See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md + +SYNTAX + Write-VstsTaskDebug [[-Message] ] [-AsOutput] [] +``` +### Write-VstsTaskError +[table of contents](#toc) | [full](FullHelp/Write-VstsTaskError.md) +``` +NAME + Write-VstsTaskError + +SYNOPSIS + See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md + +SYNTAX + Write-VstsTaskError [[-Message] ] [[-ErrCode] ] [[-SourcePath] ] [[-LineNumber] + ] [[-ColumnNumber] ] [-AsOutput] [] +``` +### Write-VstsTaskVerbose +[table of contents](#toc) | [full](FullHelp/Write-VstsTaskVerbose.md) +``` +NAME + Write-VstsTaskVerbose + +SYNOPSIS + See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md + +SYNTAX + Write-VstsTaskVerbose [[-Message] ] [-AsOutput] [] +``` +### Write-VstsTaskWarning +[table of contents](#toc) | [full](FullHelp/Write-VstsTaskWarning.md) +``` +NAME + Write-VstsTaskWarning + +SYNOPSIS + See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md + +SYNTAX + Write-VstsTaskWarning [[-Message] ] [[-ErrCode] ] [[-SourcePath] ] [[-LineNumber] + ] [[-ColumnNumber] ] [-AsOutput] [] +``` +### Write-VstsUpdateBuildNumber +[table of contents](#toc) | [full](FullHelp/Write-VstsUpdateBuildNumber.md) +``` +NAME + Write-VstsUpdateBuildNumber + +SYNOPSIS + See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md + +SYNTAX + Write-VstsUpdateBuildNumber [-Value] [-AsOutput] [] +``` +### Write-VstsUpdateReleaseName +[table of contents](#toc) | [full](FullHelp/Write-VstsUpdateReleaseName.md) +``` +NAME + Write-VstsUpdateReleaseName + +SYNOPSIS + See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md + +SYNTAX + Write-VstsUpdateReleaseName [-Name] [-AsOutput] [] +``` +### Write-VstsUploadArtifact +[table of contents](#toc) | [full](FullHelp/Write-VstsUploadArtifact.md) +``` +NAME + Write-VstsUploadArtifact + +SYNOPSIS + See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md + +SYNTAX + Write-VstsUploadArtifact [-ContainerFolder] [-Name] [-Path] [-AsOutput] + [] +``` +### Write-VstsUploadBuildLog +[table of contents](#toc) | [full](FullHelp/Write-VstsUploadBuildLog.md) +``` +NAME + Write-VstsUploadBuildLog + +SYNOPSIS + See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md + +SYNTAX + Write-VstsUploadBuildLog [-Path] [-AsOutput] [] +``` +### Write-VstsUploadFile +[table of contents](#toc) | [full](FullHelp/Write-VstsUploadFile.md) +``` +NAME + Write-VstsUploadFile + +SYNOPSIS + See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md + +SYNTAX + Write-VstsUploadFile [-Path] [-AsOutput] [] +``` +### Write-VstsUploadSummary +[table of contents](#toc) | [full](FullHelp/Write-VstsUploadSummary.md) +``` +NAME + Write-VstsUploadSummary + +SYNOPSIS + See https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md + +SYNTAX + Write-VstsUploadSummary [-Path] [-AsOutput] [] +``` +## Server OM +### Get-VstsAssemblyReference +[table of contents](#toc) | [full](FullHelp/Get-VstsAssemblyReference.md) +``` +NAME + Get-VstsAssemblyReference + +SYNOPSIS + Gets assembly reference information. + +SYNTAX + Get-VstsAssemblyReference [-LiteralPath] [] + +DESCRIPTION + Not supported for use during task execution. This function is only intended to help developers resolve + the minimal set of DLLs that need to be bundled when consuming the VSTS REST SDK or TFS Extended Client + SDK. The interface and output may change between patch releases of the VSTS Task SDK. + + Only a subset of the referenced assemblies may actually be required, depending on the functionality used + by your task. It is best to bundle only the DLLs required for your scenario. + + Walks an assembly's references to determine all of it's dependencies. Also walks the references of the + dependencies, and so on until all nested dependencies have been traversed. Dependencies are searched for + in the directory of the specified assembly. NET Framework assemblies are omitted. + + See https://github.com/Microsoft/azure-pipelines-task-lib/tree/master/powershell/Docs/UsingOM.md for + reliable usage when working with the TFS extended client SDK from a task. +``` +### Get-VstsClientCertificate +[table of contents](#toc) | [full](FullHelp/Get-VstsClientCertificate.md) +``` +NAME + Get-VstsClientCertificate + +SYNOPSIS + Gets a client certificate for current connected TFS instance + +SYNTAX + Get-VstsClientCertificate [] + +DESCRIPTION + Gets an instance of a X509Certificate2 that is the client certificate Build/Release agent used. +``` +### Get-VstsTfsClientCredentials +[table of contents](#toc) | [full](FullHelp/Get-VstsTfsClientCredentials.md) +``` +NAME + Get-VstsTfsClientCredentials + +SYNOPSIS + Gets a credentials object that can be used with the TFS extended client SDK. + +SYNTAX + Get-VstsTfsClientCredentials [[-OMDirectory] ] [] + +DESCRIPTION + The agent job token is used to construct the credentials object. The identity associated with the token + depends on the scope selected in the build/release definition (either the project collection + build/release service identity, or the project build/release service identity). + + Refer to Get-VstsTfsService for a more simple to get a TFS service object. + + *** DO NOT USE Agent.ServerOMDirectory *** See + https://github.com/Microsoft/azure-pipelines-task-lib/tree/master/powershell/Docs/UsingOM.md for reliable + usage when working with the TFS extended client SDK from a task. +``` +### Get-VstsTfsService +[table of contents](#toc) | [full](FullHelp/Get-VstsTfsService.md) +``` +NAME + Get-VstsTfsService + +SYNOPSIS + Gets a TFS extended client service. + +SYNTAX + Get-VstsTfsService [-TypeName] [[-OMDirectory] ] [[-Uri] ] + [[-TfsClientCredentials] ] [] + +DESCRIPTION + Gets an instance of an ITfsTeamProjectCollectionObject. + + *** DO NOT USE Agent.ServerOMDirectory *** See + https://github.com/Microsoft/azure-pipelines-task-lib/tree/master/powershell/Docs/UsingOM.md for reliable + usage when working with the TFS extended client SDK from a task. +``` +### Get-VstsVssCredentials +[table of contents](#toc) | [full](FullHelp/Get-VstsVssCredentials.md) +``` +NAME + Get-VstsVssCredentials + +SYNOPSIS + Gets a credentials object that can be used with the VSTS REST SDK. + +SYNTAX + Get-VstsVssCredentials [[-OMDirectory] ] [] + +DESCRIPTION + The agent job token is used to construct the credentials object. The identity associated with the token + depends on the scope selected in the build/release definition (either the project collection + build/release service identity, or the project service build/release identity). + + Refer to Get-VstsVssHttpClient for a more simple to get a VSS HTTP client. + + *** DO NOT USE Agent.ServerOMDirectory *** See + https://github.com/Microsoft/azure-pipelines-task-lib/tree/master/powershell/Docs/UsingOM.md for reliable + usage when working with the VSTS REST SDK from a task. +``` +### Get-VstsVssHttpClient +[table of contents](#toc) | [full](FullHelp/Get-VstsVssHttpClient.md) +``` +NAME + Get-VstsVssHttpClient + +SYNOPSIS + Gets a VSS HTTP client. + +SYNTAX + Get-VstsVssHttpClient [-TypeName] [[-OMDirectory] ] [[-Uri] ] [[-VssCredentials] + ] [[-WebProxy] ] [[-ClientCert] ] [-IgnoreSslError] [] + +DESCRIPTION + Gets an instance of an VSS HTTP client. + + *** DO NOT USE Agent.ServerOMDirectory *** See + https://github.com/Microsoft/azure-pipelines-task-lib/tree/master/powershell/Docs/UsingOM.md for reliable + usage when working with the VSTS REST SDK from a task. +``` +### Get-VstsWebProxy +[table of contents](#toc) | [full](FullHelp/Get-VstsWebProxy.md) +``` +NAME + Get-VstsWebProxy + +SYNOPSIS + Gets a VstsTaskSdk.VstsWebProxy + +SYNTAX + Get-VstsWebProxy [] + +DESCRIPTION + Gets an instance of a VstsTaskSdk.VstsWebProxy that has same proxy configuration as Build/Release agent. + + VstsTaskSdk.VstsWebProxy implement System.Net.IWebProxy interface. +``` +## Tool +### Assert-VstsAgent +[table of contents](#toc) | [full](FullHelp/Assert-VstsAgent.md) +``` +NAME + Assert-VstsAgent + +SYNOPSIS + Asserts the agent version is at least the specified minimum. + +SYNTAX + Assert-VstsAgent [-Minimum] [] +``` +### Assert-VstsPath +[table of contents](#toc) | [full](FullHelp/Assert-VstsPath.md) +``` +NAME + Assert-VstsPath + +SYNOPSIS + Asserts that a path exists. Throws if the path does not exist. + +SYNTAX + Assert-VstsPath [-LiteralPath] [[-PathType] {Any | Container | Leaf}] [-PassThru] + [] +``` +### Invoke-VstsProcess +[table of contents](#toc) | [full](FullHelp/Invoke-VstsProcess.md) +``` +NAME + Invoke-VstsProcess + +SYNOPSIS + Executes an external program as a child process. + +SYNTAX + Invoke-VstsProcess [-FileName] [[-Arguments] ] [[-WorkingDirectory] ] + [[-StdOutPath] ] [[-StdErrPath] ] [-RequireExitCodeZero] [] + +DESCRIPTION + Executes an external program and waits for the process to exit. + + After calling this command, the exit code of the process can be retrieved from the variable $LASTEXITCODE + or from the pipe. +``` +### Invoke-VstsTool +[table of contents](#toc) | [full](FullHelp/Invoke-VstsTool.md) +``` +NAME + Invoke-VstsTool + +SYNOPSIS + Executes an external program. + +SYNTAX + Invoke-VstsTool [-FileName] [[-Arguments] ] [[-WorkingDirectory] ] [[-Encoding] + ] [-RequireExitCodeZero] [[-IgnoreHostException] ] [] + +DESCRIPTION + Executes an external program and waits for the process to exit. + + After calling this command, the exit code of the process can be retrieved from the variable $LASTEXITCODE. +``` +## Trace +### Trace-VstsEnteringInvocation +[table of contents](#toc) | [full](FullHelp/Trace-VstsEnteringInvocation.md) +``` +NAME + Trace-VstsEnteringInvocation + +SYNOPSIS + Writes verbose information about the invocation being entered. + +SYNTAX + Trace-VstsEnteringInvocation [-InvocationInfo] [[-Parameter] ] + [] + +DESCRIPTION + Used to trace verbose information when entering a function/script. Writes an entering message followed by + a short description of the invocation. Additionally each bound parameter and unbound argument is also + traced. +``` +### Trace-VstsLeavingInvocation +[table of contents](#toc) | [full](FullHelp/Trace-VstsLeavingInvocation.md) +``` +NAME + Trace-VstsLeavingInvocation + +SYNOPSIS + Writes verbose information about the invocation being left. + +SYNTAX + Trace-VstsLeavingInvocation [-InvocationInfo] [] + +DESCRIPTION + Used to trace verbose information when leaving a function/script. Writes a leaving message followed by a + short description of the invocation. +``` +### Trace-VstsPath +[table of contents](#toc) | [full](FullHelp/Trace-VstsPath.md) +``` +NAME + Trace-VstsPath + +SYNOPSIS + Writes verbose information about paths. + +SYNTAX + Trace-VstsPath [[-Path] ] [-PassThru] [] + +DESCRIPTION + Writes verbose information about the paths. The paths are sorted and a the common root is written only + once, followed by each relative path. +``` + diff --git a/powershell/Docs/FullHelp/Invoke-VstsProcess.md b/powershell/Docs/FullHelp/Invoke-VstsProcess.md new file mode 100644 index 000000000..903b730fd --- /dev/null +++ b/powershell/Docs/FullHelp/Invoke-VstsProcess.md @@ -0,0 +1,86 @@ +# Invoke-VstsProcess +[table of contents](../Commands.md#toc) | [brief](../Commands.md#invoke-vstsprocess) +``` +NAME + Invoke-VstsProcess + +SYNOPSIS + Executes an external program as a child process. + +SYNTAX + Invoke-VstsProcess [-FileName] [[-Arguments] ] [[-WorkingDirectory] ] + [[-StdOutPath] ] [[-StdErrPath] ] [-RequireExitCodeZero] [] + +DESCRIPTION + Executes an external program and waits for the process to exit. + + After calling this command, the exit code of the process can be retrieved from the variable $LASTEXITCODE + or from the pipe. + +PARAMETERS + -FileName + File name (path) of the program to execute. + + Required? true + Position? 1 + Default value + Accept pipeline input? false + Accept wildcard characters? false + + -Arguments + Arguments to pass to the program. + + Required? false + Position? 2 + Default value + Accept pipeline input? false + Accept wildcard characters? false + + -WorkingDirectory + + Required? false + Position? 3 + Default value + Accept pipeline input? false + Accept wildcard characters? false + + -StdOutPath + Path to a file to write the stdout of the process to. + + Required? false + Position? 4 + Default value + Accept pipeline input? false + Accept wildcard characters? false + + -StdErrPath + Path to a file to write the stderr of the process to. + + Required? false + Position? 5 + Default value + Accept pipeline input? false + Accept wildcard characters? false + + -RequireExitCodeZero [] + Indicates whether to write an error to the error pipeline if the exit code is not zero. + + Required? false + Position? named + Default value False + Accept pipeline input? false + Accept wildcard characters? false + + + This cmdlet supports the common parameters: Verbose, Debug, + ErrorAction, ErrorVariable, WarningAction, WarningVariable, + OutBuffer, PipelineVariable, and OutVariable. For more information, see + about_CommonParameters (https://go.microsoft.com/fwlink/?LinkID=113216). + +OUTPUTS + Exit code of the invoked process. Also available through the $LASTEXITCODE. + +NOTES + + To change output encoding, redirect stdout to file and then read the file with the desired encoding. +``` diff --git a/powershell/Docs/ReleaseNotes.md b/powershell/Docs/ReleaseNotes.md index fc18857f1..64f2dbc23 100644 --- a/powershell/Docs/ReleaseNotes.md +++ b/powershell/Docs/ReleaseNotes.md @@ -1,5 +1,9 @@ # Release Notes +## 0.17.0 + +* Added `Invoke-VstsProcess` cmdlet () + ## 0.16.0 * Replaced deprecated "sync-request" libraryr and Added new async methods for DownloadArchive diff --git a/powershell/Tests/L0/Invoke-Process.ReturnsCorrectExitCode.ps1 b/powershell/Tests/L0/Invoke-Process.ReturnsCorrectExitCode.ps1 new file mode 100644 index 000000000..3b68fc381 --- /dev/null +++ b/powershell/Tests/L0/Invoke-Process.ReturnsCorrectExitCode.ps1 @@ -0,0 +1,16 @@ +[CmdletBinding()] +param() + +# Arrange. +. $PSScriptRoot\..\lib\Initialize-Test.ps1 +$Global:LASTEXITCODE = 1 + +Invoke-VstsTaskScript -ScriptBlock { + + # Act. + $actualEC = Invoke-VstsProcess -FileName 'cmd.exe' -Arguments '/c echo test' + + # Assert. + Assert-AreEqual -Expected 0 -Actual $actualEC + Assert-AreEqual 0 $LASTEXITCODE +} diff --git a/powershell/Tests/L0/Invoke-Process.SupportsOutputEncoding.ps1 b/powershell/Tests/L0/Invoke-Process.SupportsOutputEncoding.ps1 new file mode 100644 index 000000000..755f8b729 --- /dev/null +++ b/powershell/Tests/L0/Invoke-Process.SupportsOutputEncoding.ps1 @@ -0,0 +1,56 @@ +[CmdletBinding()] +param() + +# Actually, Invoke-VstsProcess does not support encoding by itself, it just allows to get the output of the process in a file, and then you can use Get-Content to read the file with the encoding you want. + +# Arrange. +. $PSScriptRoot\..\lib\Initialize-Test.ps1 +Invoke-VstsTaskScript -ScriptBlock { + $tempDirectory = [System.IO.Path]::Combine([System.IO.Path]::GetTempPath(), [System.IO.Path]::GetRandomFileName()) + New-Item -Path $tempDirectory -ItemType Directory | ForEach-Object { $_.FullName } + try { + set-Content -LiteralPath $tempDirectory\Program.cs -Value @" +namespace TestEncoding { + public static class Program { + public static void Main() { + System.Text.Encoding encoding = System.Text.Encoding.Unicode; + byte[] bytes = encoding.GetBytes("Hello world"); + using (System.IO.Stream stdout = System.Console.OpenStandardOutput()) { + stdout.Write(bytes, 0, bytes.Length); + stdout.Flush(); + } + } + } +} +"@ + Add-Type -LiteralPath $tempDirectory\Program.cs -OutputType ConsoleApplication -OutputAssembly $tempDirectory\TestEncoding.exe + $originalEncoding = [System.Console]::OutputEncoding + $variableSets = @( + @{ Encoding = $null ; Expected = "H_e_l_l_o_ _w_o_r_l_d_" } + @{ Encoding = 'unicode' ; Expected = "Hello world" } + ) + foreach ($variableSet in $variableSets) { + $stdOutPath = [System.IO.Path]::Combine($tempDirectory, [System.IO.Path]::GetRandomFileName()) + + # Act. + Invoke-VstsProcess ` + -FileName $tempDirectory\TestEncoding.exe ` + -StdOutPath $stdOutPath ` + + if ($variableSet.Encoding) { + $actual = Get-Content -LiteralPath $stdOutPath -Encoding $variableSet.Encoding + } + else { + $actual = Get-Content -LiteralPath $stdOutPath -Raw + } + + # Assert. + $actual = $actual.Replace("`0", "_") # Replace null characters with spaces in order for the string comparison to be accurate. + Assert-AreEqual $variableSet.Expected $actual + Assert-AreEqual $originalEncoding ([System.Console]::OutputEncoding) + } + } + finally { + Remove-Item $tempDirectory -Recurse + } +} \ No newline at end of file diff --git a/powershell/Tests/L0/Invoke-Process.SupportsWorkingDirectory.ps1 b/powershell/Tests/L0/Invoke-Process.SupportsWorkingDirectory.ps1 new file mode 100644 index 000000000..911c38589 --- /dev/null +++ b/powershell/Tests/L0/Invoke-Process.SupportsWorkingDirectory.ps1 @@ -0,0 +1,39 @@ +[CmdletBinding()] +param() + +# Arrange. +. $PSScriptRoot\..\lib\Initialize-Test.ps1 +Invoke-VstsTaskScript -ScriptBlock { + $originalLocation = $PWD + $tempDirectory = [System.IO.Path]::Combine([System.IO.Path]::GetTempPath(), [System.IO.Path]::GetRandomFileName()) + New-Item -Path $tempDirectory -ItemType Directory | ForEach-Object { $_.FullName } + try { + Set-Location $env:TMP + $variableSets = @( + @{ Expected = [System.IO.Path]::GetTempPath().TrimEnd('\') ; Splat = @{ } } + @{ Expected = [System.IO.Path]::GetTempPath().TrimEnd('\') ; Splat = @{ WorkingDirectory = [System.IO.Path]::GetTempPath() } } + @{ Expected = $tempDirectory ; Splat = @{ WorkingDirectory = $tempDirectory } } + ) + foreach ($variableSet in $variableSets) { + $splat = $variableSet.Splat + + $stdOutPath = [System.IO.Path]::Combine($tempDirectory, [System.IO.Path]::GetRandomFileName()) + + # Act. + Invoke-VstsProcess ` + -FileName 'cmd.exe' ` + -Arguments '/c "CD"' ` + -StdOutPath $stdOutPath ` + @splat + + $actual = Get-Content -LiteralPath $stdOutPath -Encoding UTF8 + + # Assert. + Assert-AreEqual $variableSet.Expected $actual + Assert-AreEqual ([System.IO.Path]::GetTempPath().TrimEnd('\')) (Get-Location).Path + } + } finally { + Set-Location $originalLocation + Remove-Item $tempDirectory -Recurse + } +} \ No newline at end of file diff --git a/powershell/VstsTaskSdk/ToolFunctions.ps1 b/powershell/VstsTaskSdk/ToolFunctions.ps1 index 1f236aed0..bb6f8d6fc 100644 --- a/powershell/VstsTaskSdk/ToolFunctions.ps1 +++ b/powershell/VstsTaskSdk/ToolFunctions.ps1 @@ -39,7 +39,8 @@ function Assert-Path { if ($PathType -eq [Microsoft.PowerShell.Commands.TestPathType]::Any) { Write-Verbose "Asserting path exists: '$LiteralPath'" - } else { + } + else { Write-Verbose "Asserting $("$PathType".ToLowerInvariant()) path exists: '$LiteralPath'" } @@ -75,7 +76,7 @@ This parameter not required for most scenarios. Indicates how to interpret the e .PARAMETER RequireExitCodeZero Indicates whether to write an error to the error pipeline if the exit code is not zero. #> -function Invoke-Tool { # TODO: RENAME TO INVOKE-PROCESS? +function Invoke-Tool { [CmdletBinding()] param( [ValidatePattern('^[^\r\n]*$')] @@ -107,7 +108,8 @@ function Invoke-Tool { # TODO: RENAME TO INVOKE-PROCESS? Write-Host "##[command]""$FileName"" $Arguments" try { Invoke-Expression "& '$FileName' --% $Arguments" - } catch [System.Management.Automation.Host.HostException] { + } + catch [System.Management.Automation.Host.HostException] { if ($IgnoreHostException -eq $False) { throw } @@ -118,7 +120,8 @@ function Invoke-Tool { # TODO: RENAME TO INVOKE-PROCESS? if ($RequireExitCodeZero -and $LASTEXITCODE -ne 0) { Write-Error (Get-LocString -Key PSLIB_Process0ExitedWithCode1 -ArgumentList ([System.IO.Path]::GetFileName($FileName)), $LASTEXITCODE) } - } finally { + } + finally { if ($originalEncoding) { [System.Console]::OutputEncoding = $originalEncoding } @@ -130,3 +133,95 @@ function Invoke-Tool { # TODO: RENAME TO INVOKE-PROCESS? Trace-LeavingInvocation $MyInvocation } } + +<# +.SYNOPSIS +Executes an external program as a child process. + +.DESCRIPTION +Executes an external program and waits for the process to exit. + +After calling this command, the exit code of the process can be retrieved from the variable $LASTEXITCODE or from the pipe. + +.PARAMETER FileName +File name (path) of the program to execute. + +.PARAMETER Arguments +Arguments to pass to the program. + +.PARAMETER StdOutPath +Path to a file to write the stdout of the process to. + +.PARAMETER StdErrPath +Path to a file to write the stderr of the process to. + +.PARAMETER RequireExitCodeZero +Indicates whether to write an error to the error pipeline if the exit code is not zero. + +.OUTPUTS +Exit code of the invoked process. Also available through the $LASTEXITCODE. + +.NOTES +To change output encoding, redirect stdout to file and then read the file with the desired encoding. +#> +function Invoke-Process { + [CmdletBinding()] + param( + [ValidatePattern('^[^\r\n]*$')] + [Parameter(Mandatory = $true)] + [string]$FileName, + [ValidatePattern('^[^\r\n]*$')] + [Parameter()] + [string]$Arguments, + [string]$WorkingDirectory, + [string]$StdOutPath, + [string]$StdErrPath, + [switch]$RequireExitCodeZero + ) + + Trace-EnteringInvocation $MyInvocation + try { + $FileName = $FileName.Replace('"', '').Replace("'", "''") + Write-Host "##[command]""$FileName"" $Arguments" + + $processOptions = @{ + FilePath = $FileName + NoNewWindow = $true + PassThru = $true + } + if ($Arguments) { + $processOptions.Add("ArgumentList", $Arguments) + } + if ($WorkingDirectory) { + $processOptions.Add("WorkingDirectory", $WorkingDirectory) + } + if ($StdOutPath) { + $processOptions.Add("RedirectStandardOutput", $StdOutPath) + } + if ($StdErrPath) { + $processOptions.Add("RedirectStandardError", $StdErrPath) + } + + # TODO: For some reason, -Wait is not working on agent. + # Agent starts executing the System usage metrics and hangs the step forever. + $proc = Start-Process @processOptions + + # https://stackoverflow.com/a/23797762 + $null = $($proc.Handle) + $proc.WaitForExit() + + $procExitCode = $proc.ExitCode + Write-Verbose "Exit code: $procExitCode" + + if ($RequireExitCodeZero -and $procExitCode -ne 0) { + Write-Error (Get-LocString -Key PSLIB_Process0ExitedWithCode1 -ArgumentList ([System.IO.Path]::GetFileName($FileName)), $procExitCode) + } + + $global:LASTEXITCODE = $procExitCode + + return $procExitCode + } + finally { + Trace-LeavingInvocation $MyInvocation + } +} diff --git a/powershell/VstsTaskSdk/VstsTaskSdk.psm1 b/powershell/VstsTaskSdk/VstsTaskSdk.psm1 index bba3e2bff..62323bf2b 100644 --- a/powershell/VstsTaskSdk/VstsTaskSdk.psm1 +++ b/powershell/VstsTaskSdk/VstsTaskSdk.psm1 @@ -83,6 +83,7 @@ Export-ModuleMember -Function @( 'Assert-Agent' 'Assert-Path' 'Invoke-Tool' + 'Invoke-Process' # Trace functions. 'Trace-EnteringInvocation' 'Trace-LeavingInvocation' diff --git a/powershell/package-lock.json b/powershell/package-lock.json index 568c09e95..33e1e6e03 100644 --- a/powershell/package-lock.json +++ b/powershell/package-lock.json @@ -3,555 +3,6 @@ "version": "0.16.0", "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "vsts-task-sdk", - "version": "0.13.0", - "license": "MIT", - "dependencies": { - "nodejs-file-downloader": "^4.11.1" - }, - "devDependencies": { - "adm-zip": "^0.5.9", - "deasync": "^0.1.28", - "mocha": "5.2.0", - "q": "1.4.1", - "shelljs": "^0.8.5", - "typescript": "1.8.7" - } - }, - "node_modules/adm-zip": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.9.tgz", - "integrity": "sha512-s+3fXLkeeLjZ2kLjCBwQufpI5fuN+kIGBxu6530nVQZGVol0d7Y/M88/xw9HGGUcJjKf8LutN3VPRUBq6N7Ajg==", - "dev": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agent-base/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/agent-base/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "node_modules/commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/deasync": { - "version": "0.1.28", - "resolved": "https://registry.npmjs.org/deasync/-/deasync-0.1.28.tgz", - "integrity": "sha512-QqLF6inIDwiATrfROIyQtwOQxjZuek13WRYZ7donU5wJPLoP67MnYxA6QtqdvdBy2mMqv5m3UefBVdJjvevOYg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "bindings": "^1.5.0", - "node-addon-api": "^1.7.1" - }, - "engines": { - "node": ">=0.11.0" - } - }, - "node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true, - "engines": { - "node": ">=4.x" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "node_modules/mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", - "dev": true, - "dependencies": { - "minimist": "0.0.8" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", - "dev": true, - "dependencies": { - "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.5", - "he": "1.1.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "supports-color": "5.4.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/node-addon-api": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", - "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", - "dev": true - }, - "node_modules/nodejs-file-downloader": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/nodejs-file-downloader/-/nodejs-file-downloader-4.11.1.tgz", - "integrity": "sha512-gSdNElTbRq+iFWcmT7URh9WlBIgVF/JM4UAiVr06/ou+ouEBUawsi/U2xFMK146XAuAoSAFfCh+ZrxxlZ0aV/w==", - "dependencies": { - "follow-redirects": "^1.15.1", - "https-proxy-agent": "^5.0.0", - "mime-types": "^2.1.27", - "sanitize-filename": "^1.6.3" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/q": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", - "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", - "dev": true, - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/sanitize-filename": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", - "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", - "dependencies": { - "truncate-utf8-bytes": "^1.0.0" - } - }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dev": true, - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/truncate-utf8-bytes": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", - "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", - "dependencies": { - "utf8-byte-length": "^1.0.1" - } - }, - "node_modules/typescript": { - "version": "1.8.7", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-1.8.7.tgz", - "integrity": "sha1-NeODjeMckc/h2MIODleF04aTikk=", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/utf8-byte-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", - "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==" - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - } - }, "dependencies": { "adm-zip": { "version": "0.5.9", @@ -563,6 +14,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, "requires": { "debug": "4" }, @@ -571,6 +23,7 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, "requires": { "ms": "2.1.2" } @@ -578,7 +31,8 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true } } }, @@ -665,7 +119,8 @@ "follow-redirects": { "version": "1.15.2", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "dev": true }, "fs.realpath": { "version": "1.0.0", @@ -724,6 +179,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, "requires": { "agent-base": "6", "debug": "4" @@ -733,6 +189,7 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, "requires": { "ms": "2.1.2" } @@ -740,7 +197,8 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true } } }, @@ -778,12 +236,14 @@ "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true }, "mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, "requires": { "mime-db": "1.52.0" } @@ -847,6 +307,7 @@ "version": "4.11.1", "resolved": "https://registry.npmjs.org/nodejs-file-downloader/-/nodejs-file-downloader-4.11.1.tgz", "integrity": "sha512-gSdNElTbRq+iFWcmT7URh9WlBIgVF/JM4UAiVr06/ou+ouEBUawsi/U2xFMK146XAuAoSAFfCh+ZrxxlZ0aV/w==", + "dev": true, "requires": { "follow-redirects": "^1.15.1", "https-proxy-agent": "^5.0.0", @@ -875,45 +336,6 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "dev": true, - "requires": { - "asap": "~2.0.3" - } - }, - "qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, "rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", @@ -938,6 +360,7 @@ "version": "1.6.3", "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "dev": true, "requires": { "truncate-utf8-bytes": "^1.0.0" } @@ -972,6 +395,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "dev": true, "requires": { "utf8-byte-length": "^1.0.1" } @@ -985,7 +409,8 @@ "utf8-byte-length": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", - "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==" + "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==", + "dev": true }, "wrappy": { "version": "1.0.2",