From 4087595241ab753a5ead75567c2fa5186ff5383f Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sun, 26 May 2019 13:01:56 -0400 Subject: [PATCH] chore: Add gitignore and removed untracked files --- .gitattributes | 53 + .gitignore | 349 +++ .vs/UFTBuildTask/v15/.suo | Bin 118784 -> 0 bytes .../v15/Server/sqlite3/storage.ide | Bin 798720 -> 0 bytes .../v15/Server/sqlite3/storage.ide-shm | Bin 32768 -> 0 bytes .../v15/Server/sqlite3/storage.ide-wal | Bin 86552 -> 0 bytes .vs/config/applicationhost.config | 1038 --------- PSModule/AbstractLauncherTaskCmdlet.cs | 614 ++--- PSModule/Enums.cs | 50 +- PSModule/GetHelloCmdlet.cs | 398 ++-- PSModule/InvokeFSTaskCmdlet.cs | 94 +- PSModule/LauncherParamsBuilder.cs | 558 ++--- PSModule/Models/MobileSettings.cs | 40 +- PSModule/PSModule.csproj | 170 +- PSModule/PSModule.csproj.vspscc | 10 - PSModule/Properties/AssemblyInfo.cs | 72 +- .../DesignTimeResolveAssemblyReferences.cache | Bin 1022 -> 0 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 7423 -> 0 bytes .../Microsoft.Management.Infrastructure.dll | Bin 36864 -> 0 bytes .../Microsoft.PowerShell.ConsoleHost.dll | Bin 4096 -> 0 bytes .../obj/Debug/PSModule.csproj.CopyComplete | 0 .../PSModule.csproj.CoreCompileInputs.cache | 1 - .../PSModule.csproj.FileListAbsolute.txt | 25 - .../PSModule.csprojAssemblyReference.cache | Bin 14523 -> 0 bytes ...odule.csprojResolveAssemblyReference.cache | Bin 14102 -> 0 bytes PSModule/obj/Debug/PSModule.dll | Bin 19456 -> 0 bytes PSModule/obj/Debug/PSModule.pdb | Bin 42496 -> 0 bytes .../Debug/System.Management.Automation.dll | Bin 360448 -> 0 bytes ...le_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs | 0 ...le_5937a670-0e60-4077-877b-f7221da3dda1.cs | 0 ...le_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs | 0 PSModule/obj/Release/CoreCompileInputs.cache | 1 - .../DesignTimeResolveAssemblyReferences.cache | Bin 877 -> 0 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 7449 -> 0 bytes .../obj/Release/PSModule.csproj.CopyComplete | 0 .../PSModule.csproj.CoreCompileInputs.cache | 1 - .../PSModule.csproj.FileListAbsolute.txt | 18 - .../PSModule.csprojAssemblyReference.cache | Bin 14523 -> 0 bytes PSModule/obj/Release/PSModule.dll | Bin 18944 -> 0 bytes PSModule/obj/Release/PSModule.pdb | Bin 38400 -> 0 bytes ...le_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs | 0 ...le_5937a670-0e60-4077-877b-f7221da3dda1.cs | 0 ...le_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs | 0 PSModule/packages.config | 6 +- UFTBuildTask.sln | 52 +- UFTBuildTask.vssscc | 10 - .../publishbuildartifacts.js | 72 +- UFTBuildTask/AlmLabEnvPrepareTask/task.json | 1156 ++++----- UFTBuildTask/AlmLabManagementTask/task.json | 346 +-- UFTBuildTask/Properties/AssemblyInfo.cs | 72 +- UFTBuildTask/RunFromALM/task.json | 246 +- .../resources.resjson/en-US/resources.resjson | 14 +- .../resources.resjson/ru-RU/resources.resjson | 14 +- .../RunFromFileSystemTask/localTask.ps1 | 80 +- .../node_modules/balanced-match/LICENSE.md | 21 - .../node_modules/balanced-match/README.md | 91 - .../node_modules/balanced-match/index.js | 58 - .../node_modules/balanced-match/package.json | 102 - .../node_modules/brace-expansion/README.md | 122 - .../node_modules/brace-expansion/example.js | 8 - .../node_modules/brace-expansion/index.js | 191 -- .../node_modules/brace-expansion/package.json | 104 - .../node_modules/concat-map/LICENSE | 18 - .../node_modules/concat-map/README.markdown | 62 - .../node_modules/concat-map/example/map.js | 6 - .../node_modules/concat-map/index.js | 13 - .../node_modules/concat-map/package.json | 109 - .../node_modules/concat-map/test/map.js | 39 - .../node_modules/glob/LICENSE | 15 - .../node_modules/glob/README.md | 359 --- .../node_modules/glob/common.js | 226 -- .../node_modules/glob/glob.js | 765 ------ .../node_modules/glob/package.json | 98 - .../node_modules/glob/sync.js | 460 ---- .../node_modules/inflight/LICENSE | 15 - .../node_modules/inflight/README.md | 37 - .../node_modules/inflight/inflight.js | 44 - .../node_modules/inflight/package.json | 97 - .../node_modules/inherits/LICENSE | 16 - .../node_modules/inherits/README.md | 42 - .../node_modules/inherits/inherits.js | 1 - .../node_modules/inherits/inherits_browser.js | 23 - .../node_modules/inherits/package.json | 77 - .../node_modules/inherits/test.js | 25 - .../node_modules/minimatch/LICENSE | 15 - .../node_modules/minimatch/README.md | 216 -- .../node_modules/minimatch/minimatch.js | 912 -------- .../node_modules/minimatch/package.json | 86 - .../node_modules/once/LICENSE | 15 - .../node_modules/once/README.md | 51 - .../node_modules/once/once.js | 21 - .../node_modules/once/package.json | 89 - .../node_modules/path-is-absolute/index.js | 20 - .../node_modules/path-is-absolute/license | 21 - .../path-is-absolute/package.json | 97 - .../node_modules/path-is-absolute/readme.md | 51 - .../node_modules/q/CHANGES.md | 786 ------- .../node_modules/q/LICENSE | 18 - .../node_modules/q/README.md | 881 ------- .../node_modules/q/package.json | 146 -- .../RunFromFileSystemTask/node_modules/q/q.js | 2048 ---------------- .../node_modules/q/queue.js | 35 - .../node_modules/shelljs/LICENSE | 26 - .../node_modules/shelljs/README.md | 569 ----- .../node_modules/shelljs/bin/shjs | 51 - .../node_modules/shelljs/global.js | 3 - .../node_modules/shelljs/make.js | 47 - .../node_modules/shelljs/package.json | 86 - .../shelljs/scripts/generate-docs.js | 21 - .../node_modules/shelljs/scripts/run-tests.js | 50 - .../node_modules/shelljs/shell.js | 157 -- .../node_modules/shelljs/src/cat.js | 43 - .../node_modules/shelljs/src/cd.js | 19 - .../node_modules/shelljs/src/chmod.js | 208 -- .../node_modules/shelljs/src/common.js | 203 -- .../node_modules/shelljs/src/cp.js | 201 -- .../node_modules/shelljs/src/dirs.js | 191 -- .../node_modules/shelljs/src/echo.js | 20 - .../node_modules/shelljs/src/error.js | 10 - .../node_modules/shelljs/src/exec.js | 181 -- .../node_modules/shelljs/src/find.js | 51 - .../node_modules/shelljs/src/grep.js | 52 - .../node_modules/shelljs/src/ln.js | 53 - .../node_modules/shelljs/src/ls.js | 126 - .../node_modules/shelljs/src/mkdir.js | 68 - .../node_modules/shelljs/src/mv.js | 80 - .../node_modules/shelljs/src/popd.js | 1 - .../node_modules/shelljs/src/pushd.js | 1 - .../node_modules/shelljs/src/pwd.js | 11 - .../node_modules/shelljs/src/rm.js | 145 -- .../node_modules/shelljs/src/sed.js | 43 - .../node_modules/shelljs/src/tempdir.js | 56 - .../node_modules/shelljs/src/test.js | 85 - .../node_modules/shelljs/src/to.js | 29 - .../node_modules/shelljs/src/toEnd.js | 29 - .../node_modules/shelljs/src/which.js | 83 - .../node_modules/vso-node-api/BuildApi.js | 1516 ------------ .../vso-node-api/ClientApiBases.js | 44 - .../node_modules/vso-node-api/CoreApi.js | 639 ----- .../vso-node-api/FileContainerApi.js | 238 -- .../node_modules/vso-node-api/GalleryApi.js | 989 -------- .../node_modules/vso-node-api/GitApi.js | 1490 ------------ .../node_modules/vso-node-api/HttpClient.js | 141 -- .../node_modules/vso-node-api/README.md | 16 - .../vso-node-api/ReleaseManagementApi.js | 1195 ---------- .../node_modules/vso-node-api/RestClient.js | 161 -- .../vso-node-api/Serialization.js | 236 -- .../node_modules/vso-node-api/TaskAgentApi.js | 195 -- .../vso-node-api/TaskAgentApiBase.js | 1386 ----------- .../node_modules/vso-node-api/TaskApi.js | 603 ----- .../node_modules/vso-node-api/TestApi.js | 2061 ----------------- .../node_modules/vso-node-api/TfvcApi.js | 865 ------- .../node_modules/vso-node-api/VsoClient.js | 219 -- .../node_modules/vso-node-api/WebApi.js | 146 -- .../vso-node-api/WorkItemTrackingApi.js | 1376 ----------- .../vso-node-api/handlers/apiversion.js | 14 - .../vso-node-api/handlers/basiccreds.js | 14 - .../vso-node-api/handlers/bearertoken.js | 13 - .../interfaces/BuildInterfaces.js | 1189 ---------- .../vso-node-api/interfaces/CoreInterfaces.js | 194 -- .../interfaces/FileContainerInterfaces.js | 73 - .../interfaces/GalleryInterfaces.js | 421 ---- .../vso-node-api/interfaces/GitInterfaces.js | 1104 --------- .../interfaces/ReleaseManagementInterfaces.js | 702 ------ .../interfaces/TaskAgentInterfaces.js | 642 ----- .../vso-node-api/interfaces/TestInterfaces.js | 1048 --------- .../vso-node-api/interfaces/TfvcInterfaces.js | 1108 --------- .../interfaces/WorkItemTrackingInterfaces.js | 521 ----- .../interfaces/common/FormInputInterfaces.js | 134 -- .../interfaces/common/OperationsInterfaces.js | 39 - .../interfaces/common/SystemDataInterfaces.js | 74 - .../interfaces/common/TfsInterfaces.js | 24 - .../interfaces/common/VSSInterfaces.js | 67 - .../interfaces/common/VsoBaseInterfaces.js | 3 - .../node_modules/vso-node-api/package.json | 93 - .../node_modules/vsts-task-lib/LICENSE | 22 - .../node_modules/vsts-task-lib/README.md | 51 - .../resources.resjson/de-de/resources.resjson | 18 - .../resources.resjson/en-US/resources.resjson | 18 - .../resources.resjson/es-es/resources.resjson | 18 - .../resources.resjson/fr-fr/resources.resjson | 18 - .../resources.resjson/it-IT/resources.resjson | 18 - .../resources.resjson/ja-jp/resources.resjson | 18 - .../resources.resjson/ko-KR/resources.resjson | 18 - .../resources.resjson/ru-RU/resources.resjson | 18 - .../resources.resjson/zh-CN/resources.resjson | 18 - .../resources.resjson/zh-TW/resources.resjson | 18 - .../node_modules/vsts-task-lib/lib.json | 20 - .../node_modules/vsts-task-lib/package.json | 96 - .../node_modules/vsts-task-lib/task.js | 859 ------- .../node_modules/vsts-task-lib/taskcommand.js | 69 - .../node_modules/vsts-task-lib/toolrunner.js | 223 -- .../node_modules/wrappy/LICENSE | 15 - .../node_modules/wrappy/README.md | 36 - .../node_modules/wrappy/package.json | 89 - .../node_modules/wrappy/wrappy.js | 33 - .../RunFromFileSystemTask/publish.ps1 | 10 +- .../publishbuildartifacts.ts | 10 +- UFTBuildTask/RunFromFileSystemTask/task.json | 108 +- UFTBuildTask/UFTBuildTask.csproj | 254 +- UFTBuildTask/UFTBuildTask.csproj.user | 38 - UFTBuildTask/UFTBuildTask.csproj.vspscc | 10 - ...gnTimeResolveAssemblyReferencesInput.cache | Bin 9065 -> 0 bytes ...le_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs | 0 ...le_5937a670-0e60-4077-877b-f7221da3dda1.cs | 0 ...le_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs | 0 ...FTBuildTask.csproj.CoreCompileInputs.cache | 1 - .../UFTBuildTask.csproj.FileListAbsolute.txt | 1 - ...UFTBuildTask.csprojAssemblyReference.cache | Bin 2303 -> 0 bytes ...dTask.csprojResolveAssemblyReference.cache | Bin 861 -> 0 bytes .../obj/Release/CoreCompileInputs.cache | 1 - ...gnTimeResolveAssemblyReferencesInput.cache | Bin 9736 -> 0 bytes ...le_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs | 0 ...le_5937a670-0e60-4077-877b-f7221da3dda1.cs | 0 ...le_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs | 0 UFTBuildTask/obj/Release/Tsc.out | 0 ...FTBuildTask.csproj.CoreCompileInputs.cache | 1 - .../UFTBuildTask.csproj.FileListAbsolute.txt | 3 - ...UFTBuildTask.csprojAssemblyReference.cache | Bin 2303 -> 0 bytes UFTBuildTask/vss-extension.json | 250 +- bin/Microsoft.Management.Infrastructure.dll | Bin 36864 -> 0 bytes bin/Microsoft.PowerShell.ConsoleHost.dll | Bin 4096 -> 0 bytes bin/PSModule.dll | Bin 18944 -> 0 bytes bin/PSModule.pdb | Bin 38400 -> 0 bytes bin/System.Management.Automation.dll | Bin 360448 -> 0 bytes installation/unpack.ps1 | 76 +- .../.signature.p7s | Bin 9470 -> 0 bytes ...werShell.5.ReferenceAssemblies.1.0.0.nupkg | Bin 359438 -> 0 bytes .../Microsoft.Management.Infrastructure.dll | Bin 36864 -> 0 bytes .../net4/Microsoft.PowerShell.Activities.dll | Bin 45056 -> 0 bytes ...rosoft.PowerShell.Commands.Diagnostics.dll | Bin 16384 -> 0 bytes .../net4/Microsoft.PowerShell.ConsoleHost.dll | Bin 4096 -> 0 bytes .../Microsoft.PowerShell.Core.Activities.dll | Bin 45056 -> 0 bytes ...soft.PowerShell.Diagnostics.Activities.dll | Bin 7168 -> 0 bytes .../lib/net4/Microsoft.PowerShell.Editor.dll | Bin 172032 -> 0 bytes .../net4/Microsoft.PowerShell.GPowerShell.dll | Bin 53248 -> 0 bytes .../Microsoft.PowerShell.GraphicalHost.dll | Bin 90112 -> 0 bytes .../net4/Microsoft.PowerShell.ISECommon.dll | Bin 3584 -> 0 bytes ...osoft.PowerShell.Management.Activities.dll | Bin 57344 -> 0 bytes .../net4/Microsoft.PowerShell.PSReadLine.dll | Bin 28672 -> 0 bytes ...Microsoft.PowerShell.PackageManagement.dll | Bin 24576 -> 0 bytes ...crosoft.PowerShell.Security.Activities.dll | Bin 16384 -> 0 bytes .../net4/Microsoft.PowerShell.Security.dll | Bin 20480 -> 0 bytes ...icrosoft.PowerShell.Utility.Activities.dll | Bin 49152 -> 0 bytes ...rosoft.Powershell.Workflow.ServiceCore.dll | Bin 53248 -> 0 bytes .../lib/net4/System.Management.Automation.dll | Bin 360448 -> 0 bytes readme.md | 1 - 247 files changed, 2781 insertions(+), 37980 deletions(-) create mode 100644 .gitattributes create mode 100644 .gitignore delete mode 100644 .vs/UFTBuildTask/v15/.suo delete mode 100644 .vs/UFTBuildTask/v15/Server/sqlite3/storage.ide delete mode 100644 .vs/UFTBuildTask/v15/Server/sqlite3/storage.ide-shm delete mode 100644 .vs/UFTBuildTask/v15/Server/sqlite3/storage.ide-wal delete mode 100644 .vs/config/applicationhost.config delete mode 100644 PSModule/PSModule.csproj.vspscc delete mode 100644 PSModule/obj/Debug/DesignTimeResolveAssemblyReferences.cache delete mode 100644 PSModule/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache delete mode 100644 PSModule/obj/Debug/Microsoft.Management.Infrastructure.dll delete mode 100644 PSModule/obj/Debug/Microsoft.PowerShell.ConsoleHost.dll delete mode 100644 PSModule/obj/Debug/PSModule.csproj.CopyComplete delete mode 100644 PSModule/obj/Debug/PSModule.csproj.CoreCompileInputs.cache delete mode 100644 PSModule/obj/Debug/PSModule.csproj.FileListAbsolute.txt delete mode 100644 PSModule/obj/Debug/PSModule.csprojAssemblyReference.cache delete mode 100644 PSModule/obj/Debug/PSModule.csprojResolveAssemblyReference.cache delete mode 100644 PSModule/obj/Debug/PSModule.dll delete mode 100644 PSModule/obj/Debug/PSModule.pdb delete mode 100644 PSModule/obj/Debug/System.Management.Automation.dll delete mode 100644 PSModule/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs delete mode 100644 PSModule/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs delete mode 100644 PSModule/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs delete mode 100644 PSModule/obj/Release/CoreCompileInputs.cache delete mode 100644 PSModule/obj/Release/DesignTimeResolveAssemblyReferences.cache delete mode 100644 PSModule/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache delete mode 100644 PSModule/obj/Release/PSModule.csproj.CopyComplete delete mode 100644 PSModule/obj/Release/PSModule.csproj.CoreCompileInputs.cache delete mode 100644 PSModule/obj/Release/PSModule.csproj.FileListAbsolute.txt delete mode 100644 PSModule/obj/Release/PSModule.csprojAssemblyReference.cache delete mode 100644 PSModule/obj/Release/PSModule.dll delete mode 100644 PSModule/obj/Release/PSModule.pdb delete mode 100644 PSModule/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs delete mode 100644 PSModule/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs delete mode 100644 PSModule/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs delete mode 100644 UFTBuildTask.vssscc delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/balanced-match/LICENSE.md delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/balanced-match/README.md delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/balanced-match/index.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/balanced-match/package.json delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/brace-expansion/README.md delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/brace-expansion/example.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/brace-expansion/index.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/brace-expansion/package.json delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/concat-map/LICENSE delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/concat-map/README.markdown delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/concat-map/example/map.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/concat-map/index.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/concat-map/package.json delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/concat-map/test/map.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/glob/LICENSE delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/glob/README.md delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/glob/common.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/glob/glob.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/glob/package.json delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/glob/sync.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/inflight/LICENSE delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/inflight/README.md delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/inflight/inflight.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/inflight/package.json delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/inherits/LICENSE delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/inherits/README.md delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/inherits/inherits.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/inherits/inherits_browser.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/inherits/package.json delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/inherits/test.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/minimatch/LICENSE delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/minimatch/README.md delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/minimatch/minimatch.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/minimatch/package.json delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/once/LICENSE delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/once/README.md delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/once/once.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/once/package.json delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/path-is-absolute/index.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/path-is-absolute/license delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/path-is-absolute/package.json delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/path-is-absolute/readme.md delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/q/CHANGES.md delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/q/LICENSE delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/q/README.md delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/q/package.json delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/q/q.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/q/queue.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/LICENSE delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/README.md delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/bin/shjs delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/global.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/make.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/package.json delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/scripts/generate-docs.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/scripts/run-tests.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/shell.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/src/cat.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/src/cd.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/src/chmod.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/src/common.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/src/cp.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/src/dirs.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/src/echo.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/src/error.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/src/exec.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/src/find.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/src/grep.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/src/ln.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/src/ls.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/src/mkdir.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/src/mv.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/src/popd.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/src/pushd.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/src/pwd.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/src/rm.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/src/sed.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/src/tempdir.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/src/test.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/src/to.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/src/toEnd.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/shelljs/src/which.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/BuildApi.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/ClientApiBases.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/CoreApi.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/FileContainerApi.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/GalleryApi.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/GitApi.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/HttpClient.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/README.md delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/ReleaseManagementApi.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/RestClient.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/Serialization.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/TaskAgentApi.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/TaskAgentApiBase.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/TaskApi.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/TestApi.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/TfvcApi.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/VsoClient.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/WebApi.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/WorkItemTrackingApi.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/handlers/apiversion.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/handlers/basiccreds.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/handlers/bearertoken.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/interfaces/BuildInterfaces.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/interfaces/CoreInterfaces.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/interfaces/FileContainerInterfaces.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/interfaces/GalleryInterfaces.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/interfaces/GitInterfaces.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/interfaces/ReleaseManagementInterfaces.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/interfaces/TaskAgentInterfaces.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/interfaces/TestInterfaces.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/interfaces/TfvcInterfaces.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/interfaces/WorkItemTrackingInterfaces.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/interfaces/common/FormInputInterfaces.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/interfaces/common/OperationsInterfaces.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/interfaces/common/SystemDataInterfaces.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/interfaces/common/TfsInterfaces.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/interfaces/common/VSSInterfaces.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/interfaces/common/VsoBaseInterfaces.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vso-node-api/package.json delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vsts-task-lib/LICENSE delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vsts-task-lib/README.md delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vsts-task-lib/Strings/resources.resjson/de-de/resources.resjson delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vsts-task-lib/Strings/resources.resjson/en-US/resources.resjson delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vsts-task-lib/Strings/resources.resjson/es-es/resources.resjson delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vsts-task-lib/Strings/resources.resjson/fr-fr/resources.resjson delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vsts-task-lib/Strings/resources.resjson/it-IT/resources.resjson delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vsts-task-lib/Strings/resources.resjson/ja-jp/resources.resjson delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vsts-task-lib/Strings/resources.resjson/ko-KR/resources.resjson delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vsts-task-lib/Strings/resources.resjson/ru-RU/resources.resjson delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vsts-task-lib/Strings/resources.resjson/zh-CN/resources.resjson delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vsts-task-lib/Strings/resources.resjson/zh-TW/resources.resjson delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vsts-task-lib/lib.json delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vsts-task-lib/package.json delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vsts-task-lib/task.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vsts-task-lib/taskcommand.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/vsts-task-lib/toolrunner.js delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/wrappy/LICENSE delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/wrappy/README.md delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/wrappy/package.json delete mode 100644 UFTBuildTask/RunFromFileSystemTask/node_modules/wrappy/wrappy.js delete mode 100644 UFTBuildTask/UFTBuildTask.csproj.user delete mode 100644 UFTBuildTask/UFTBuildTask.csproj.vspscc delete mode 100644 UFTBuildTask/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache delete mode 100644 UFTBuildTask/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs delete mode 100644 UFTBuildTask/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs delete mode 100644 UFTBuildTask/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs delete mode 100644 UFTBuildTask/obj/Debug/UFTBuildTask.csproj.CoreCompileInputs.cache delete mode 100644 UFTBuildTask/obj/Debug/UFTBuildTask.csproj.FileListAbsolute.txt delete mode 100644 UFTBuildTask/obj/Debug/UFTBuildTask.csprojAssemblyReference.cache delete mode 100644 UFTBuildTask/obj/Debug/UFTBuildTask.csprojResolveAssemblyReference.cache delete mode 100644 UFTBuildTask/obj/Release/CoreCompileInputs.cache delete mode 100644 UFTBuildTask/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache delete mode 100644 UFTBuildTask/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs delete mode 100644 UFTBuildTask/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs delete mode 100644 UFTBuildTask/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs delete mode 100644 UFTBuildTask/obj/Release/Tsc.out delete mode 100644 UFTBuildTask/obj/Release/UFTBuildTask.csproj.CoreCompileInputs.cache delete mode 100644 UFTBuildTask/obj/Release/UFTBuildTask.csproj.FileListAbsolute.txt delete mode 100644 UFTBuildTask/obj/Release/UFTBuildTask.csprojAssemblyReference.cache delete mode 100644 bin/Microsoft.Management.Infrastructure.dll delete mode 100644 bin/Microsoft.PowerShell.ConsoleHost.dll delete mode 100644 bin/PSModule.dll delete mode 100644 bin/PSModule.pdb delete mode 100644 bin/System.Management.Automation.dll delete mode 100644 packages/Microsoft.PowerShell.5.ReferenceAssemblies.1.0.0/.signature.p7s delete mode 100644 packages/Microsoft.PowerShell.5.ReferenceAssemblies.1.0.0/Microsoft.PowerShell.5.ReferenceAssemblies.1.0.0.nupkg delete mode 100644 packages/Microsoft.PowerShell.5.ReferenceAssemblies.1.0.0/lib/net4/Microsoft.Management.Infrastructure.dll delete mode 100644 packages/Microsoft.PowerShell.5.ReferenceAssemblies.1.0.0/lib/net4/Microsoft.PowerShell.Activities.dll delete mode 100644 packages/Microsoft.PowerShell.5.ReferenceAssemblies.1.0.0/lib/net4/Microsoft.PowerShell.Commands.Diagnostics.dll delete mode 100644 packages/Microsoft.PowerShell.5.ReferenceAssemblies.1.0.0/lib/net4/Microsoft.PowerShell.ConsoleHost.dll delete mode 100644 packages/Microsoft.PowerShell.5.ReferenceAssemblies.1.0.0/lib/net4/Microsoft.PowerShell.Core.Activities.dll delete mode 100644 packages/Microsoft.PowerShell.5.ReferenceAssemblies.1.0.0/lib/net4/Microsoft.PowerShell.Diagnostics.Activities.dll delete mode 100644 packages/Microsoft.PowerShell.5.ReferenceAssemblies.1.0.0/lib/net4/Microsoft.PowerShell.Editor.dll delete mode 100644 packages/Microsoft.PowerShell.5.ReferenceAssemblies.1.0.0/lib/net4/Microsoft.PowerShell.GPowerShell.dll delete mode 100644 packages/Microsoft.PowerShell.5.ReferenceAssemblies.1.0.0/lib/net4/Microsoft.PowerShell.GraphicalHost.dll delete mode 100644 packages/Microsoft.PowerShell.5.ReferenceAssemblies.1.0.0/lib/net4/Microsoft.PowerShell.ISECommon.dll delete mode 100644 packages/Microsoft.PowerShell.5.ReferenceAssemblies.1.0.0/lib/net4/Microsoft.PowerShell.Management.Activities.dll delete mode 100644 packages/Microsoft.PowerShell.5.ReferenceAssemblies.1.0.0/lib/net4/Microsoft.PowerShell.PSReadLine.dll delete mode 100644 packages/Microsoft.PowerShell.5.ReferenceAssemblies.1.0.0/lib/net4/Microsoft.PowerShell.PackageManagement.dll delete mode 100644 packages/Microsoft.PowerShell.5.ReferenceAssemblies.1.0.0/lib/net4/Microsoft.PowerShell.Security.Activities.dll delete mode 100644 packages/Microsoft.PowerShell.5.ReferenceAssemblies.1.0.0/lib/net4/Microsoft.PowerShell.Security.dll delete mode 100644 packages/Microsoft.PowerShell.5.ReferenceAssemblies.1.0.0/lib/net4/Microsoft.PowerShell.Utility.Activities.dll delete mode 100644 packages/Microsoft.PowerShell.5.ReferenceAssemblies.1.0.0/lib/net4/Microsoft.Powershell.Workflow.ServiceCore.dll delete mode 100644 packages/Microsoft.PowerShell.5.ReferenceAssemblies.1.0.0/lib/net4/System.Management.Automation.dll delete mode 100644 readme.md diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..e8d83e6 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,53 @@ +############################################################################### +# Set default behavior to automatically normalize line endings. +############################################################################### +* text=auto + +############################################################################### +# Set the merge driver for project and solution files +# +# Merging from the command prompt will add diff markers to the files if there +# are conflicts (Merging from VS is not affected by the settings below, in VS +# the diff markers are never inserted). Diff markers may cause the following +# file extensions to fail to load in VS. An alternative would be to treat +# these files as binary and thus will always conflict and require user +# intervention with every merge. To do so, just comment the entries below and +# uncomment the group further below +############################################################################### + +*.sln text eol=crlf +*.csproj text eol=crlf +*.vbproj text eol=crlf +*.vcxproj text eol=crlf +*.vcproj text eol=crlf +*.dbproj text eol=crlf +*.fsproj text eol=crlf +*.lsproj text eol=crlf +*.wixproj text eol=crlf +*.modelproj text eol=crlf +*.sqlproj text eol=crlf +*.wmaproj text eol=crlf + +*.xproj text eol=crlf +*.props text eol=crlf +*.filters text eol=crlf +*.vcxitems text eol=crlf + + +#*.sln merge=binary +#*.csproj merge=binary +#*.vbproj merge=binary +#*.vcxproj merge=binary +#*.vcproj merge=binary +#*.dbproj merge=binary +#*.fsproj merge=binary +#*.lsproj merge=binary +#*.wixproj merge=binary +#*.modelproj merge=binary +#*.sqlproj merge=binary +#*.wwaproj merge=binary + +#*.xproj merge=binary +#*.props merge=binary +#*.filters merge=binary +#*.vcxitems merge=binary diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b248083 --- /dev/null +++ b/.gitignore @@ -0,0 +1,349 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ diff --git a/.vs/UFTBuildTask/v15/.suo b/.vs/UFTBuildTask/v15/.suo deleted file mode 100644 index 8033836a931b38ec8be4a068148032f931057309..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 118784 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≠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%0AD@v-RPE-{uD?L=d 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 diff --git a/.vs/UFTBuildTask/v15/Server/sqlite3/storage.ide-shm b/.vs/UFTBuildTask/v15/Server/sqlite3/storage.ide-shm deleted file mode 100644 index 1aeab6813f2b482c6d68312d6ef5ad70970990ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 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 diff --git a/.vs/config/applicationhost.config b/.vs/config/applicationhost.config deleted file mode 100644 index 7c62959..0000000 --- a/.vs/config/applicationhost.config +++ /dev/null @@ -1,1038 +0,0 @@ - - - - - - - - -
-
-
-
-
-
-
-
- - - -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
- -
-
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
- -
-
- -
-
-
- - -
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSModule/AbstractLauncherTaskCmdlet.cs b/PSModule/AbstractLauncherTaskCmdlet.cs index 5ab64e1..9ab11c0 100644 --- a/PSModule/AbstractLauncherTaskCmdlet.cs +++ b/PSModule/AbstractLauncherTaskCmdlet.cs @@ -1,307 +1,307 @@ -using System; -using System.IO; -using System.Management.Automation; -using System.Collections.Generic; -using System.Linq; -using System.Threading; -using System.Diagnostics; -using System.Text.RegularExpressions; -using System.Text; - - -namespace PSModule -{ - public abstract class AbstractLauncherTaskCmdlet : PSCmdlet - { - const string UFTFolder = "UFTWorking"; - const string HpToolsLauncher_SCRIPT_NAME = "HpToolsLauncher.exe"; - const string HpToolsAborter_SCRIPT_NAME = "HpToolsAborter.exe"; - - public AbstractLauncherTaskCmdlet() {} - - public abstract Dictionary GetTaskProperties(); - - protected override void ProcessRecord() - { - Trace.WriteLine("CTRACE: DEBUG EXTENSION"); - string launcherPath = ""; - string aborterPath = ""; - string paramFileName = ""; - string resultsFileName = ""; - - try - { - Dictionary properties = new Dictionary(); - try - { - properties = GetTaskProperties(); - } - catch (Exception e) - { - ThrowTerminatingError(new ErrorRecord(e, "GetTaskProperties", ErrorCategory.ParserError, "")); - } - - string ufttfsdir = Environment.GetEnvironmentVariable("UFT_LAUNCHER"); - - launcherPath = Path.GetFullPath(Path.Combine(ufttfsdir, HpToolsLauncher_SCRIPT_NAME)); - - aborterPath = Path.GetFullPath(Path.Combine(ufttfsdir, HpToolsAborter_SCRIPT_NAME)); - - string propdir = Path.GetFullPath(Path.Combine(ufttfsdir, "props")); - - if (!Directory.Exists(propdir)) - Directory.CreateDirectory(propdir); - - string resdir = Path.GetFullPath(Path.Combine(ufttfsdir, "res")); - - if (!Directory.Exists(resdir)) - Directory.CreateDirectory(resdir); - - string timeSign = DateTime.Now.ToString("ddMMyyyyHHmmssSSS"); - - paramFileName = Path.Combine(propdir, "Props" + timeSign + ".txt"); - - resultsFileName = Path.Combine(resdir, "Results" + timeSign + ".xml"); - - resultsFileName = resultsFileName.Replace("\\", "\\\\"); - - /*if (!File.Exists(resultsFileName)) - { - Trace.WriteLine("CTRACE: result file does not exist (!!!!!!!!!!!!)"); - WriteError(new ErrorRecord(new Exception("result file does not exist !!!!!!!!!!!!!"), "", ErrorCategory.WriteError, "")); - - File.Create(resultsFileName).Dispose(); - }*/ - - properties.Add("resultsFilename", resultsFileName); - - if (!SaveProperties(paramFileName, properties)) - { - WriteError(new ErrorRecord(new Exception("cannot save properties"), "", ErrorCategory.WriteError, "")); - return; - } - - /*foreach (var prop in properties) - { - WriteVerbose(string.Format("{0} : {1}", prop.Key, prop.Value)); - }*/ - - int retCode = Run(launcherPath, paramFileName); - WriteVerbose("Return code: {retCode}"); - - CollateResults(resultsFileName, _launcherConsole.ToString(), resdir); - CollateRetCode(resdir, retCode); - /*if (retCode == 3) { - ThrowTerminatingError(new ErrorRecord(new ThreadInterruptedException(), "ClosedByUser", ErrorCategory.OperationStopped, "")); - } else { - ThrowTerminatingError(new ErrorRecord(new ThreadInterruptedException(), "Task failed", ErrorCategory.OperationStopped, "")); - }*/ - } - catch (IOException ioe) - { - WriteError(new ErrorRecord(ioe, "IOException", ErrorCategory.ResourceExists, "")); - } - catch (ThreadInterruptedException e) - { - WriteError(new ErrorRecord(e, "ThreadInterruptedException", ErrorCategory.OperationStopped, "ThreadInterruptedException targer")); - Run(aborterPath, paramFileName); - } - } - - private bool SaveProperties(string paramsFile, Dictionary properties) - { - bool result = true; - - using (StreamWriter file = new StreamWriter(paramsFile, true)) - { - try - { - foreach (String prop in properties.Keys.ToArray()) - { - file.WriteLine(prop + "=" + properties[prop]); - } - - } - catch (Exception e) - { - result = false; - WriteError(new ErrorRecord(e, "", ErrorCategory.WriteError, "")); - } - } - - return result; - } - - private StringBuilder _launcherConsole = new StringBuilder(); - private int Run(string launcherPath, string paramFile) - { - _launcherConsole.Clear(); - try - { - ProcessStartInfo info = new ProcessStartInfo(); - info.UseShellExecute = false; - info.Arguments = $" -paramfile \"{paramFile}\""; - info.FileName = launcherPath; - info.RedirectStandardOutput = true; - info.RedirectStandardError = true; - - Process launcher = new Process(); - - launcher.StartInfo = info; - - launcher.Start(); - - while ((!launcher.StandardOutput.EndOfStream) || (!launcher.StandardError.EndOfStream)) - { - - if (!launcher.StandardOutput.EndOfStream) { - string line = launcher.StandardOutput.ReadLine(); - _launcherConsole.Append(line); - WriteObject(line); - } - - - if (!launcher.StandardError.EndOfStream) { - string lineErr = launcher.StandardError.ReadLine(); - _launcherConsole.Append(lineErr); - WriteObject(lineErr); - } - } - launcher.WaitForExit(); - - return launcher.ExitCode; - } - - catch (Exception e) - { - WriteError(new ErrorRecord(e, "ThreadInterruptedException", ErrorCategory.InvalidData, "ThreadInterruptedException targer")); - return -1; - } - } - - protected abstract string GetRetCodeFileName(); - - protected virtual void CollateRetCode(string resdir, int retCode) - { - - string fileName = GetRetCodeFileName(); - if (String.IsNullOrEmpty(fileName)) - { - WriteError(new ErrorRecord(new Exception("Method GetRetCodeFileName() did not return a value"), "", ErrorCategory.WriteError, "")); - return; - } - if (!Directory.Exists(resdir)) - { - WriteError(new ErrorRecord(new DirectoryNotFoundException(resdir), "", ErrorCategory.WriteError, "")); - return; - } - string retCodeFilename = Path.Combine(resdir, fileName); - try - { - using (StreamWriter file = new StreamWriter(retCodeFilename, true)) - { - file.WriteLine(retCode.ToString()); - } - } - catch (Exception e) - { - WriteError(new ErrorRecord(e, "", ErrorCategory.WriteError, "")); - } - } - - protected virtual string GetReportFilename() - { - return String.Empty; - } - - protected virtual void CollateResults(string resultFile, string log, string resdir) - { - if (!File.Exists(resultFile)) { - WriteError(new ErrorRecord(new Exception("result file does not exist"), "", ErrorCategory.WriteError, "")); - File.Create(resultFile).Dispose(); - } - - string reportFileName = GetReportFilename(); - - if (String.IsNullOrEmpty(reportFileName)) - { - WriteError(new ErrorRecord(new Exception("collate results, empty reportFileName "), "", ErrorCategory.WriteError, "")); - return; - } - - if ((String.IsNullOrEmpty(resultFile) || !File.Exists(resultFile)) && String.IsNullOrEmpty(log)) - { - WriteError(new ErrorRecord(new FileNotFoundException($"No results file ({resultFile}) nor result log provided"), "", ErrorCategory.WriteError, "")); - - return; - } - - //read result xml file - string s = File.ReadAllText(resultFile); - - if (String.IsNullOrEmpty(s)) - { - WriteError(new ErrorRecord(new FileNotFoundException("collate results, empty results file"), "", ErrorCategory.WriteError, "")); - return; - } - List> links = GetRequiredLinksFromString(s); - if (links == null || links.Count == 0) - { - links = GetRequiredLinksFromString(log); - if (links == null || links.Count == 0) - { - WriteError(new ErrorRecord(new FileNotFoundException("No report links in results file or log found"), "", ErrorCategory.WriteError, "")); - return; - } - } - - try - { - string reportPath = Path.Combine(resdir, reportFileName); - - using (StreamWriter file = new StreamWriter(Path.Combine(resdir, reportFileName), true)) - { - foreach (var link in links) - { - file.WriteLine($"[Report {link.Item2}]({link.Item1}) "); - } - } - } - catch (Exception e) - { - WriteError(new ErrorRecord(e, "error writing the results", ErrorCategory.WriteError, "")); - } - } - - private List> GetRequiredLinksFromString(string s) - { - if (String.IsNullOrEmpty(s)) - { - return null; - } - var results = new List>(); - try - { - //report link example: td://Automation.AUTOMATION.mydph0271.hpswlabs.adapps.hp.com:8080/qcbin/TestLabModule-000000003649890581?EntityType=IRun&EntityID=1195091 - Match match1 = Regex.Match(s, "td://.+?EntityID=([0-9]+)"); - Match match2 = Regex.Match(s, "tds://.+?EntityID=([0-9]+)"); - while (match1.Success) - { - results.Add(new Tuple(match1.Groups[0].Value, match1.Groups[1].Value)); - match1 = match1.NextMatch(); - } - - while (match2.Success) - { - results.Add(new Tuple(match2.Groups[0].Value, match2.Groups[1].Value)); - match2 = match2.NextMatch(); - } - } - catch (Exception e) - { - WriteError(new ErrorRecord(e, "", ErrorCategory.WriteError, "")); - } - return results; - } - } -} +using System; +using System.IO; +using System.Management.Automation; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Diagnostics; +using System.Text.RegularExpressions; +using System.Text; + + +namespace PSModule +{ + public abstract class AbstractLauncherTaskCmdlet : PSCmdlet + { + const string UFTFolder = "UFTWorking"; + const string HpToolsLauncher_SCRIPT_NAME = "HpToolsLauncher.exe"; + const string HpToolsAborter_SCRIPT_NAME = "HpToolsAborter.exe"; + + public AbstractLauncherTaskCmdlet() {} + + public abstract Dictionary GetTaskProperties(); + + protected override void ProcessRecord() + { + Trace.WriteLine("CTRACE: DEBUG EXTENSION"); + string launcherPath = ""; + string aborterPath = ""; + string paramFileName = ""; + string resultsFileName = ""; + + try + { + Dictionary properties = new Dictionary(); + try + { + properties = GetTaskProperties(); + } + catch (Exception e) + { + ThrowTerminatingError(new ErrorRecord(e, "GetTaskProperties", ErrorCategory.ParserError, "")); + } + + string ufttfsdir = Environment.GetEnvironmentVariable("UFT_LAUNCHER"); + + launcherPath = Path.GetFullPath(Path.Combine(ufttfsdir, HpToolsLauncher_SCRIPT_NAME)); + + aborterPath = Path.GetFullPath(Path.Combine(ufttfsdir, HpToolsAborter_SCRIPT_NAME)); + + string propdir = Path.GetFullPath(Path.Combine(ufttfsdir, "props")); + + if (!Directory.Exists(propdir)) + Directory.CreateDirectory(propdir); + + string resdir = Path.GetFullPath(Path.Combine(ufttfsdir, "res")); + + if (!Directory.Exists(resdir)) + Directory.CreateDirectory(resdir); + + string timeSign = DateTime.Now.ToString("ddMMyyyyHHmmssSSS"); + + paramFileName = Path.Combine(propdir, "Props" + timeSign + ".txt"); + + resultsFileName = Path.Combine(resdir, "Results" + timeSign + ".xml"); + + resultsFileName = resultsFileName.Replace("\\", "\\\\"); + + /*if (!File.Exists(resultsFileName)) + { + Trace.WriteLine("CTRACE: result file does not exist (!!!!!!!!!!!!)"); + WriteError(new ErrorRecord(new Exception("result file does not exist !!!!!!!!!!!!!"), "", ErrorCategory.WriteError, "")); + + File.Create(resultsFileName).Dispose(); + }*/ + + properties.Add("resultsFilename", resultsFileName); + + if (!SaveProperties(paramFileName, properties)) + { + WriteError(new ErrorRecord(new Exception("cannot save properties"), "", ErrorCategory.WriteError, "")); + return; + } + + /*foreach (var prop in properties) + { + WriteVerbose(string.Format("{0} : {1}", prop.Key, prop.Value)); + }*/ + + int retCode = Run(launcherPath, paramFileName); + WriteVerbose("Return code: {retCode}"); + + CollateResults(resultsFileName, _launcherConsole.ToString(), resdir); + CollateRetCode(resdir, retCode); + /*if (retCode == 3) { + ThrowTerminatingError(new ErrorRecord(new ThreadInterruptedException(), "ClosedByUser", ErrorCategory.OperationStopped, "")); + } else { + ThrowTerminatingError(new ErrorRecord(new ThreadInterruptedException(), "Task failed", ErrorCategory.OperationStopped, "")); + }*/ + } + catch (IOException ioe) + { + WriteError(new ErrorRecord(ioe, "IOException", ErrorCategory.ResourceExists, "")); + } + catch (ThreadInterruptedException e) + { + WriteError(new ErrorRecord(e, "ThreadInterruptedException", ErrorCategory.OperationStopped, "ThreadInterruptedException targer")); + Run(aborterPath, paramFileName); + } + } + + private bool SaveProperties(string paramsFile, Dictionary properties) + { + bool result = true; + + using (StreamWriter file = new StreamWriter(paramsFile, true)) + { + try + { + foreach (String prop in properties.Keys.ToArray()) + { + file.WriteLine(prop + "=" + properties[prop]); + } + + } + catch (Exception e) + { + result = false; + WriteError(new ErrorRecord(e, "", ErrorCategory.WriteError, "")); + } + } + + return result; + } + + private StringBuilder _launcherConsole = new StringBuilder(); + private int Run(string launcherPath, string paramFile) + { + _launcherConsole.Clear(); + try + { + ProcessStartInfo info = new ProcessStartInfo(); + info.UseShellExecute = false; + info.Arguments = $" -paramfile \"{paramFile}\""; + info.FileName = launcherPath; + info.RedirectStandardOutput = true; + info.RedirectStandardError = true; + + Process launcher = new Process(); + + launcher.StartInfo = info; + + launcher.Start(); + + while ((!launcher.StandardOutput.EndOfStream) || (!launcher.StandardError.EndOfStream)) + { + + if (!launcher.StandardOutput.EndOfStream) { + string line = launcher.StandardOutput.ReadLine(); + _launcherConsole.Append(line); + WriteObject(line); + } + + + if (!launcher.StandardError.EndOfStream) { + string lineErr = launcher.StandardError.ReadLine(); + _launcherConsole.Append(lineErr); + WriteObject(lineErr); + } + } + launcher.WaitForExit(); + + return launcher.ExitCode; + } + + catch (Exception e) + { + WriteError(new ErrorRecord(e, "ThreadInterruptedException", ErrorCategory.InvalidData, "ThreadInterruptedException targer")); + return -1; + } + } + + protected abstract string GetRetCodeFileName(); + + protected virtual void CollateRetCode(string resdir, int retCode) + { + + string fileName = GetRetCodeFileName(); + if (String.IsNullOrEmpty(fileName)) + { + WriteError(new ErrorRecord(new Exception("Method GetRetCodeFileName() did not return a value"), "", ErrorCategory.WriteError, "")); + return; + } + if (!Directory.Exists(resdir)) + { + WriteError(new ErrorRecord(new DirectoryNotFoundException(resdir), "", ErrorCategory.WriteError, "")); + return; + } + string retCodeFilename = Path.Combine(resdir, fileName); + try + { + using (StreamWriter file = new StreamWriter(retCodeFilename, true)) + { + file.WriteLine(retCode.ToString()); + } + } + catch (Exception e) + { + WriteError(new ErrorRecord(e, "", ErrorCategory.WriteError, "")); + } + } + + protected virtual string GetReportFilename() + { + return String.Empty; + } + + protected virtual void CollateResults(string resultFile, string log, string resdir) + { + if (!File.Exists(resultFile)) { + WriteError(new ErrorRecord(new Exception("result file does not exist"), "", ErrorCategory.WriteError, "")); + File.Create(resultFile).Dispose(); + } + + string reportFileName = GetReportFilename(); + + if (String.IsNullOrEmpty(reportFileName)) + { + WriteError(new ErrorRecord(new Exception("collate results, empty reportFileName "), "", ErrorCategory.WriteError, "")); + return; + } + + if ((String.IsNullOrEmpty(resultFile) || !File.Exists(resultFile)) && String.IsNullOrEmpty(log)) + { + WriteError(new ErrorRecord(new FileNotFoundException($"No results file ({resultFile}) nor result log provided"), "", ErrorCategory.WriteError, "")); + + return; + } + + //read result xml file + string s = File.ReadAllText(resultFile); + + if (String.IsNullOrEmpty(s)) + { + WriteError(new ErrorRecord(new FileNotFoundException("collate results, empty results file"), "", ErrorCategory.WriteError, "")); + return; + } + List> links = GetRequiredLinksFromString(s); + if (links == null || links.Count == 0) + { + links = GetRequiredLinksFromString(log); + if (links == null || links.Count == 0) + { + WriteError(new ErrorRecord(new FileNotFoundException("No report links in results file or log found"), "", ErrorCategory.WriteError, "")); + return; + } + } + + try + { + string reportPath = Path.Combine(resdir, reportFileName); + + using (StreamWriter file = new StreamWriter(Path.Combine(resdir, reportFileName), true)) + { + foreach (var link in links) + { + file.WriteLine($"[Report {link.Item2}]({link.Item1}) "); + } + } + } + catch (Exception e) + { + WriteError(new ErrorRecord(e, "error writing the results", ErrorCategory.WriteError, "")); + } + } + + private List> GetRequiredLinksFromString(string s) + { + if (String.IsNullOrEmpty(s)) + { + return null; + } + var results = new List>(); + try + { + //report link example: td://Automation.AUTOMATION.mydph0271.hpswlabs.adapps.hp.com:8080/qcbin/TestLabModule-000000003649890581?EntityType=IRun&EntityID=1195091 + Match match1 = Regex.Match(s, "td://.+?EntityID=([0-9]+)"); + Match match2 = Regex.Match(s, "tds://.+?EntityID=([0-9]+)"); + while (match1.Success) + { + results.Add(new Tuple(match1.Groups[0].Value, match1.Groups[1].Value)); + match1 = match1.NextMatch(); + } + + while (match2.Success) + { + results.Add(new Tuple(match2.Groups[0].Value, match2.Groups[1].Value)); + match2 = match2.NextMatch(); + } + } + catch (Exception e) + { + WriteError(new ErrorRecord(e, "", ErrorCategory.WriteError, "")); + } + return results; + } + } +} diff --git a/PSModule/Enums.cs b/PSModule/Enums.cs index f457265..02148bf 100644 --- a/PSModule/Enums.cs +++ b/PSModule/Enums.cs @@ -1,25 +1,25 @@ - -namespace PSModule -{ - public enum RunType - { - Alm, - AlmLabManagement, - FileSystem, - LoadRunner - } - - public enum AlmRunMode - { - RUN_NONE, - RUN_LOCAL, - RUN_REMOTE, - RUN_PLANNED_HOST - } - - public enum RunTestType - { - TEST_SUITE, - BUILD_VERIFICATION_SUITE - } -} + +namespace PSModule +{ + public enum RunType + { + Alm, + AlmLabManagement, + FileSystem, + LoadRunner + } + + public enum AlmRunMode + { + RUN_NONE, + RUN_LOCAL, + RUN_REMOTE, + RUN_PLANNED_HOST + } + + public enum RunTestType + { + TEST_SUITE, + BUILD_VERIFICATION_SUITE + } +} diff --git a/PSModule/GetHelloCmdlet.cs b/PSModule/GetHelloCmdlet.cs index 133756a..819eeea 100644 --- a/PSModule/GetHelloCmdlet.cs +++ b/PSModule/GetHelloCmdlet.cs @@ -1,199 +1,199 @@ -using System.Management.Automation; -using System; -using System.Linq; -using System.Collections.Generic; -using System.IO; - -namespace PSModule -{ - [Cmdlet(VerbsCommon.Invoke, "FSTask")] - public class GetHelloCmdlet : AbstractLauncherTask - { - //protected override void BeginProcessing() - //{ - // base.BeginProcessing(); - // Console.WriteLine("BeginProcessing"); - //} - [Parameter(Position = 0, Mandatory = true)] - public string TestsPath; - - [Parameter(Position = 1, Mandatory = false)] - public string Timeout; - - public override Dictionary GetTaskProperties() - { - LauncherParamsBuilder builder = new LauncherParamsBuilder(); - - builder.SetRunType(RunType.FileSystem); - builder.SetPerScenarioTimeOut(Timeout); - /* - boolean useMC = BooleanUtils.toBoolean(map.get(RunFromFileSystemTaskConfigurator.USE_MC_SETTINGS)); - if (useMC) - { - String mcServerUrl = map.get(RunFromFileSystemTaskConfigurator.MCSERVERURL); - String mcUserName = map.get(RunFromFileSystemTaskConfigurator.MCUSERNAME); - String mcPassword = map.get(RunFromFileSystemTaskConfigurator.MCPASSWORD); - String proxyAddress = null; - String proxyUserName = null; - String proxyPassword = null; - - boolean useSSL = BooleanUtils.toBoolean(map.get(RunFromFileSystemTaskConfigurator.USE_SSL)); - builder.setMobileUseSSL(useSSL ? 1 : 0); - - if (useSSL) - { - buildLogger.addBuildLogEntry("********** Use SSL ********** "); - } - - boolean useProxy = BooleanUtils.toBoolean(map.get(RunFromFileSystemTaskConfigurator.USE_PROXY)); - - builder.setMobileUseProxy(useProxy ? 1 : 0); - - if (useProxy) - { - - buildLogger.addBuildLogEntry("********** Use Proxy ********** "); - - builder.setMobileProxyType(2); - - proxyAddress = map.get(RunFromFileSystemTaskConfigurator.PROXY_ADDRESS); - - //proxy info - if (proxyAddress != null) - { - - builder.setMobileProxySetting_Address(proxyAddress); - - } - - Boolean specifyAuthentication = BooleanUtils.toBoolean(RunFromFileSystemTaskConfigurator.SPECIFY_AUTHENTICATION); - - builder.setMobileProxySetting_Authentication(specifyAuthentication ? 1 : 0); - - if (specifyAuthentication) - { - proxyUserName = map.get(RunFromFileSystemTaskConfigurator.PROXY_USERNAME); - proxyPassword = map.get(RunFromFileSystemTaskConfigurator.PROXY_PASSWORD); - - if (proxyUserName != null && proxyPassword != null) - { - builder.setMobileProxySetting_UserName(proxyUserName); - builder.setMobileProxySetting_Password(proxyPassword); - } - - } - } - else - { - builder.setMobileProxyType(0); - } - - - if (!mcInfoCheck(mcServerUrl, mcUserName, mcPassword)) - { - //url name password - builder.setServerUrl(mcServerUrl); - builder.setUserName(mcUserName); - builder.setFileSystemPassword(mcPassword); - - String jobUUID = map.get(RunFromFileSystemTaskConfigurator.JOB_UUID); - - //write the specified job info(json type) to properties - JobOperation operation = new JobOperation(mcServerUrl, mcUserName, mcPassword, proxyAddress, proxyUserName, proxyPassword); - - String mobileInfo = null; - JSONObject jobJSON = null; - JSONObject dataJSON = null; - JSONArray extArr = null; - JSONObject applicationJSONObject = null; - - if (jobUUID != null) - { - - try - { - jobJSON = operation.getJobById(jobUUID); - } - catch (HttpConnectionException e) - { - buildLogger.addErrorLogEntry("********** Fail to connect mobile center, please check URL, UserName, Password, and Proxy Configuration ********** "); - } - - if (jobJSON != null) - { - dataJSON = (JSONObject)jobJSON.get("data"); - if (dataJSON != null) - { - - applicationJSONObject = (JSONObject)dataJSON.get("application"); - if (applicationJSONObject != null) - { - applicationJSONObject.remove(ICON); - } - - extArr = (JSONArray)dataJSON.get("extraApps"); - if (extArr != null) - { - Iterator iterator = extArr.iterator(); - - while (iterator.hasNext()) - { - JSONObject extAppJSONObject = (JSONObject)iterator.next(); - extAppJSONObject.remove(ICON); - } - - } - } - - mobileInfo = dataJSON.toJSONString(); - builder.setMobileInfo(mobileInfo); - } - } - - } - - - } - */ - - var tests = TestsPath.Split("\n".ToArray()); - - for (int i = 0; i < tests.Length; i++) - { - string pathToTest = tests[i].Replace("\\", "\\\\"); - builder.SetTest(i + 1, pathToTest); - } - - return builder.GetProperties(); - } - - //protected override void ProcessRecord() - //{ - // // System.Diagnostics.Debugger.Launch(); - // // System.Diagnostics.Debugger.Break(); - // string[] names = { "Mary", "Ferra", "el", "Lussy" }; - - // if (string.IsNullOrEmpty(this.Prefix)) - // { - // WriteObject(names, true); - // } - // else - // { - // var prefixed = names.Select(name => this.Prefix + name); - // WriteObject(prefixed, true); - // } - //} - - //protected override void StopProcessing() - //{ - // base.StopProcessing(); - // WriteObject("StopProcessing"); - //} - - //protected override void EndProcessing() - //{ - // base.EndProcessing(); - // WriteWarning("EndProcessing"); - //} - } -} +using System.Management.Automation; +using System; +using System.Linq; +using System.Collections.Generic; +using System.IO; + +namespace PSModule +{ + [Cmdlet(VerbsCommon.Invoke, "FSTask")] + public class GetHelloCmdlet : AbstractLauncherTask + { + //protected override void BeginProcessing() + //{ + // base.BeginProcessing(); + // Console.WriteLine("BeginProcessing"); + //} + [Parameter(Position = 0, Mandatory = true)] + public string TestsPath; + + [Parameter(Position = 1, Mandatory = false)] + public string Timeout; + + public override Dictionary GetTaskProperties() + { + LauncherParamsBuilder builder = new LauncherParamsBuilder(); + + builder.SetRunType(RunType.FileSystem); + builder.SetPerScenarioTimeOut(Timeout); + /* + boolean useMC = BooleanUtils.toBoolean(map.get(RunFromFileSystemTaskConfigurator.USE_MC_SETTINGS)); + if (useMC) + { + String mcServerUrl = map.get(RunFromFileSystemTaskConfigurator.MCSERVERURL); + String mcUserName = map.get(RunFromFileSystemTaskConfigurator.MCUSERNAME); + String mcPassword = map.get(RunFromFileSystemTaskConfigurator.MCPASSWORD); + String proxyAddress = null; + String proxyUserName = null; + String proxyPassword = null; + + boolean useSSL = BooleanUtils.toBoolean(map.get(RunFromFileSystemTaskConfigurator.USE_SSL)); + builder.setMobileUseSSL(useSSL ? 1 : 0); + + if (useSSL) + { + buildLogger.addBuildLogEntry("********** Use SSL ********** "); + } + + boolean useProxy = BooleanUtils.toBoolean(map.get(RunFromFileSystemTaskConfigurator.USE_PROXY)); + + builder.setMobileUseProxy(useProxy ? 1 : 0); + + if (useProxy) + { + + buildLogger.addBuildLogEntry("********** Use Proxy ********** "); + + builder.setMobileProxyType(2); + + proxyAddress = map.get(RunFromFileSystemTaskConfigurator.PROXY_ADDRESS); + + //proxy info + if (proxyAddress != null) + { + + builder.setMobileProxySetting_Address(proxyAddress); + + } + + Boolean specifyAuthentication = BooleanUtils.toBoolean(RunFromFileSystemTaskConfigurator.SPECIFY_AUTHENTICATION); + + builder.setMobileProxySetting_Authentication(specifyAuthentication ? 1 : 0); + + if (specifyAuthentication) + { + proxyUserName = map.get(RunFromFileSystemTaskConfigurator.PROXY_USERNAME); + proxyPassword = map.get(RunFromFileSystemTaskConfigurator.PROXY_PASSWORD); + + if (proxyUserName != null && proxyPassword != null) + { + builder.setMobileProxySetting_UserName(proxyUserName); + builder.setMobileProxySetting_Password(proxyPassword); + } + + } + } + else + { + builder.setMobileProxyType(0); + } + + + if (!mcInfoCheck(mcServerUrl, mcUserName, mcPassword)) + { + //url name password + builder.setServerUrl(mcServerUrl); + builder.setUserName(mcUserName); + builder.setFileSystemPassword(mcPassword); + + String jobUUID = map.get(RunFromFileSystemTaskConfigurator.JOB_UUID); + + //write the specified job info(json type) to properties + JobOperation operation = new JobOperation(mcServerUrl, mcUserName, mcPassword, proxyAddress, proxyUserName, proxyPassword); + + String mobileInfo = null; + JSONObject jobJSON = null; + JSONObject dataJSON = null; + JSONArray extArr = null; + JSONObject applicationJSONObject = null; + + if (jobUUID != null) + { + + try + { + jobJSON = operation.getJobById(jobUUID); + } + catch (HttpConnectionException e) + { + buildLogger.addErrorLogEntry("********** Fail to connect mobile center, please check URL, UserName, Password, and Proxy Configuration ********** "); + } + + if (jobJSON != null) + { + dataJSON = (JSONObject)jobJSON.get("data"); + if (dataJSON != null) + { + + applicationJSONObject = (JSONObject)dataJSON.get("application"); + if (applicationJSONObject != null) + { + applicationJSONObject.remove(ICON); + } + + extArr = (JSONArray)dataJSON.get("extraApps"); + if (extArr != null) + { + Iterator iterator = extArr.iterator(); + + while (iterator.hasNext()) + { + JSONObject extAppJSONObject = (JSONObject)iterator.next(); + extAppJSONObject.remove(ICON); + } + + } + } + + mobileInfo = dataJSON.toJSONString(); + builder.setMobileInfo(mobileInfo); + } + } + + } + + + } + */ + + var tests = TestsPath.Split("\n".ToArray()); + + for (int i = 0; i < tests.Length; i++) + { + string pathToTest = tests[i].Replace("\\", "\\\\"); + builder.SetTest(i + 1, pathToTest); + } + + return builder.GetProperties(); + } + + //protected override void ProcessRecord() + //{ + // // System.Diagnostics.Debugger.Launch(); + // // System.Diagnostics.Debugger.Break(); + // string[] names = { "Mary", "Ferra", "el", "Lussy" }; + + // if (string.IsNullOrEmpty(this.Prefix)) + // { + // WriteObject(names, true); + // } + // else + // { + // var prefixed = names.Select(name => this.Prefix + name); + // WriteObject(prefixed, true); + // } + //} + + //protected override void StopProcessing() + //{ + // base.StopProcessing(); + // WriteObject("StopProcessing"); + //} + + //protected override void EndProcessing() + //{ + // base.EndProcessing(); + // WriteWarning("EndProcessing"); + //} + } +} diff --git a/PSModule/InvokeFSTaskCmdlet.cs b/PSModule/InvokeFSTaskCmdlet.cs index 582a032..2befa3d 100644 --- a/PSModule/InvokeFSTaskCmdlet.cs +++ b/PSModule/InvokeFSTaskCmdlet.cs @@ -1,47 +1,47 @@ -using System.Management.Automation; -using System.Linq; -using System.Collections.Generic; -using PSModule.Models; - -namespace PSModule -{ - [Cmdlet(VerbsLifecycle.Invoke, "FSTask")] - public class InvokeFSTaskCmdlet : AbstractLauncherTaskCmdlet - { - [Parameter(Position = 0, Mandatory = true)] - public string TestsPath; - - [Parameter(Position = 1)] - public string Timeout; - - public MobileSettings mobile; - - protected override void CollateResults(string resultFile, string log, string resdir) - { - //do nothing here. Collate results should be made by the standard "Copu and Publish Artifacts" TFS task - } - - public override Dictionary GetTaskProperties() - { - LauncherParamsBuilder builder = new LauncherParamsBuilder(); - - builder.SetRunType(RunType.FileSystem); - builder.SetPerScenarioTimeOut(Timeout); - - var tests = TestsPath.Split(";".ToArray()); - - for (int i = 0; i < tests.Length; i++) - { - string pathToTest = tests[i].Replace("\\", "\\\\"); - builder.SetTest(i + 1, pathToTest); - } - - return builder.GetProperties(); - } - - protected override string GetRetCodeFileName() - { - return "FSTaskRetCode.txt"; - } - } -} +using System.Management.Automation; +using System.Linq; +using System.Collections.Generic; +using PSModule.Models; + +namespace PSModule +{ + [Cmdlet(VerbsLifecycle.Invoke, "FSTask")] + public class InvokeFSTaskCmdlet : AbstractLauncherTaskCmdlet + { + [Parameter(Position = 0, Mandatory = true)] + public string TestsPath; + + [Parameter(Position = 1)] + public string Timeout; + + public MobileSettings mobile; + + protected override void CollateResults(string resultFile, string log, string resdir) + { + //do nothing here. Collate results should be made by the standard "Copu and Publish Artifacts" TFS task + } + + public override Dictionary GetTaskProperties() + { + LauncherParamsBuilder builder = new LauncherParamsBuilder(); + + builder.SetRunType(RunType.FileSystem); + builder.SetPerScenarioTimeOut(Timeout); + + var tests = TestsPath.Split(";".ToArray()); + + for (int i = 0; i < tests.Length; i++) + { + string pathToTest = tests[i].Replace("\\", "\\\\"); + builder.SetTest(i + 1, pathToTest); + } + + return builder.GetProperties(); + } + + protected override string GetRetCodeFileName() + { + return "FSTaskRetCode.txt"; + } + } +} diff --git a/PSModule/LauncherParamsBuilder.cs b/PSModule/LauncherParamsBuilder.cs index 4976447..9cb889f 100644 --- a/PSModule/LauncherParamsBuilder.cs +++ b/PSModule/LauncherParamsBuilder.cs @@ -1,279 +1,279 @@ -using System; -using System.Collections.Generic; -using System.Security.Cryptography; -using System.Text; - -namespace PSModule -{ - /* - * runType= - almServerUrl=http://:/qcbin - almUserName= - almPassword= - almDomain= - almProject= - almRunMode= - almTimeout=<-1>/ - almRunHost= - TestSet=/ - Test=// - - */ - - public class LauncherParamsBuilder - { - private string secretkey = "EncriptionPass4Java"; - private readonly List requiredParameters = new List { "almRunHost", "almPassword" }; - private Dictionary properties = new Dictionary(); - - public Dictionary GetProperties() - { - return properties; - } - - public void SetRunType(RunType runType) - { - SetParamValue("runType", runType.ToString()); - } - - public void SetAlmServerUrl(string almServerUrl) - { - SetParamValue("almServerUrl", almServerUrl); - } - - public void SetAlmUserName(string almUserName) - { - SetParamValue("almUserName", almUserName); - } - - public void SetAlmPassword(string almPassword) - { - string encAlmPass; - try - { - encAlmPass = EncryptParameter(almPassword); - SetParamValue("almPassword", encAlmPass); - } - catch - { - - } - } - - public void SetAlmDomain(string almDomain) - { - SetParamValue("almDomain", almDomain); - } - - public void SetAlmProject(string almProject) - { - SetParamValue("almProject", almProject); - } - - public void SetAlmRunMode(AlmRunMode almRunMode) - { - properties.Add("almRunMode", almRunMode != AlmRunMode.RUN_NONE ? almRunMode.ToString() : ""); - } - - public void SetAlmTimeout(string almTimeout) - { - string paramToSet = "-1"; - if (!string.IsNullOrEmpty(almTimeout)) - { - paramToSet = almTimeout; - } - SetParamValue("almTimeout", paramToSet); - } - - public void SetTimeslotDuration(string timeslotDuration) - { - SetParamValue("timeslotDuration", timeslotDuration); - } - - - public void SetTestSet(int index, string testSet) - { - SetParamValue("TestSet" + index, testSet); - } - - public void SetTestSetID(string testID) - { - SetParamValue("TestSetID", testID); - } - - public void SetTestRunType(RunTestType testType) - { - properties.Add("RunTestType", testType.ToString()); - } - - private void SetParamValue(string v, int testID) - { - throw new NotImplementedException(); - } - - public void SetAlmTestSet(string testSets) - { - SetParamValue("almTestSets", testSets); - } - - public void SetAlmRunHost(string host) - { - SetParamValue("almRunHost", host); - } - - public void SetTest(int index, string test) - { - SetParamValue("Test" + index, test); - } - - public void SetDeploymentAction(string deploymentAction) - { - SetParamValue("DeploymentAction", deploymentAction); - } - - public void SetDeployedEnvironmentName(string deploymentEnvironmentName) - { - SetParamValue("DeploymentEnvironmentName", deploymentEnvironmentName); - } - - public void SetDeprovisioningAction(string deprovisioningAction) - { - SetParamValue("DeprovisioningAction", deprovisioningAction); - } - - public void SetFileSystemPassword(string oriPass) - { - string encPass; - try - { - encPass = EncryptParameter(oriPass); - SetParamValue("MobilePassword", encPass); - } - catch - { - - } - } - - public void SetPerScenarioTimeOut(string perScenarioTimeOut) - { - string paramToSet = "-1"; - if (!string.IsNullOrEmpty(perScenarioTimeOut)) - { - paramToSet = perScenarioTimeOut; - } - SetParamValue("PerScenarioTimeOut", paramToSet); - } - - public void setServerUrl(String serverUrl) - { - SetParamValue("MobileHostAddress", serverUrl); - } - - public void setUserName(String username) - { - SetParamValue("MobileUserName", username); - } - - public void setProxyHost(String proxyHost) - { - SetParamValue("proxyHost", proxyHost); - } - - public void setProxyPort(String proxyPort) - { - SetParamValue("proxyPort", proxyPort); - } - - #region mobile - public void SetMobileInfo(String mobileInfo) - { - SetParamValue("mobileinfo", mobileInfo); - } - - public void setMobileUseSSL(int type) - { - SetParamValue("MobileUseSSL", type.ToString()); - } - - public void setMobileUseProxy(int proxy) - { - SetParamValue("MobileUseProxy", proxy.ToString()); - } - - public void setMobileProxyType(int type) - { - SetParamValue("MobileProxyType", type.ToString()); - } - - public void setMobileProxySetting_Address(String proxyAddress) - { - SetParamValue("MobileProxySetting_Address", proxyAddress); - } - - public void SetMobileProxySetting_Authentication(int authentication) - { - SetParamValue("MobileProxySetting_Authentication", authentication.ToString()); - } - - public void SetMobileProxySetting_UserName(string proxyUserName) - { - SetParamValue("MobileProxySetting_UserName", proxyUserName); - } - - public void SetMobileProxySetting_Password(string proxyPassword) - { - string proxyPass; - try - { - proxyPass = EncryptParameter(proxyPassword); - SetParamValue("MobileProxySetting_Password", proxyPass); - } - catch - { - - } - } - #endregion - - private void SetParamValue(string paramName, string paramValue) - { - - if (string.IsNullOrEmpty(paramValue)) - { - if (!requiredParameters.Contains(paramName)) - properties.Remove(paramName); - else - properties.Add(paramName, ""); - } - else - { - properties.Add(paramName, paramValue); - } - } - - private string EncryptParameter(string parameter) - { - RijndaelManaged rijndaelCipher = new RijndaelManaged(); - rijndaelCipher.Mode = CipherMode.CBC; - rijndaelCipher.Padding = PaddingMode.PKCS7; - - rijndaelCipher.KeySize = 0x80; - rijndaelCipher.BlockSize = 0x80; - byte[] pwdBytes = Encoding.UTF8.GetBytes(secretkey); - byte[] keyBytes = new byte[0x10]; - int len = pwdBytes.Length; - if (len > keyBytes.Length) - { - len = keyBytes.Length; - } - Array.Copy(pwdBytes, keyBytes, len); - rijndaelCipher.Key = keyBytes; - rijndaelCipher.IV = keyBytes; - ICryptoTransform transform = rijndaelCipher.CreateEncryptor(); - byte[] plainText = Encoding.UTF8.GetBytes(parameter); - return Convert.ToBase64String(transform.TransformFinalBlock(plainText, 0, plainText.Length)); - } - - } -} +using System; +using System.Collections.Generic; +using System.Security.Cryptography; +using System.Text; + +namespace PSModule +{ + /* + * runType= + almServerUrl=http://:/qcbin + almUserName= + almPassword= + almDomain= + almProject= + almRunMode= + almTimeout=<-1>/ + almRunHost= + TestSet=/ + Test=// + + */ + + public class LauncherParamsBuilder + { + private string secretkey = "EncriptionPass4Java"; + private readonly List requiredParameters = new List { "almRunHost", "almPassword" }; + private Dictionary properties = new Dictionary(); + + public Dictionary GetProperties() + { + return properties; + } + + public void SetRunType(RunType runType) + { + SetParamValue("runType", runType.ToString()); + } + + public void SetAlmServerUrl(string almServerUrl) + { + SetParamValue("almServerUrl", almServerUrl); + } + + public void SetAlmUserName(string almUserName) + { + SetParamValue("almUserName", almUserName); + } + + public void SetAlmPassword(string almPassword) + { + string encAlmPass; + try + { + encAlmPass = EncryptParameter(almPassword); + SetParamValue("almPassword", encAlmPass); + } + catch + { + + } + } + + public void SetAlmDomain(string almDomain) + { + SetParamValue("almDomain", almDomain); + } + + public void SetAlmProject(string almProject) + { + SetParamValue("almProject", almProject); + } + + public void SetAlmRunMode(AlmRunMode almRunMode) + { + properties.Add("almRunMode", almRunMode != AlmRunMode.RUN_NONE ? almRunMode.ToString() : ""); + } + + public void SetAlmTimeout(string almTimeout) + { + string paramToSet = "-1"; + if (!string.IsNullOrEmpty(almTimeout)) + { + paramToSet = almTimeout; + } + SetParamValue("almTimeout", paramToSet); + } + + public void SetTimeslotDuration(string timeslotDuration) + { + SetParamValue("timeslotDuration", timeslotDuration); + } + + + public void SetTestSet(int index, string testSet) + { + SetParamValue("TestSet" + index, testSet); + } + + public void SetTestSetID(string testID) + { + SetParamValue("TestSetID", testID); + } + + public void SetTestRunType(RunTestType testType) + { + properties.Add("RunTestType", testType.ToString()); + } + + private void SetParamValue(string v, int testID) + { + throw new NotImplementedException(); + } + + public void SetAlmTestSet(string testSets) + { + SetParamValue("almTestSets", testSets); + } + + public void SetAlmRunHost(string host) + { + SetParamValue("almRunHost", host); + } + + public void SetTest(int index, string test) + { + SetParamValue("Test" + index, test); + } + + public void SetDeploymentAction(string deploymentAction) + { + SetParamValue("DeploymentAction", deploymentAction); + } + + public void SetDeployedEnvironmentName(string deploymentEnvironmentName) + { + SetParamValue("DeploymentEnvironmentName", deploymentEnvironmentName); + } + + public void SetDeprovisioningAction(string deprovisioningAction) + { + SetParamValue("DeprovisioningAction", deprovisioningAction); + } + + public void SetFileSystemPassword(string oriPass) + { + string encPass; + try + { + encPass = EncryptParameter(oriPass); + SetParamValue("MobilePassword", encPass); + } + catch + { + + } + } + + public void SetPerScenarioTimeOut(string perScenarioTimeOut) + { + string paramToSet = "-1"; + if (!string.IsNullOrEmpty(perScenarioTimeOut)) + { + paramToSet = perScenarioTimeOut; + } + SetParamValue("PerScenarioTimeOut", paramToSet); + } + + public void setServerUrl(String serverUrl) + { + SetParamValue("MobileHostAddress", serverUrl); + } + + public void setUserName(String username) + { + SetParamValue("MobileUserName", username); + } + + public void setProxyHost(String proxyHost) + { + SetParamValue("proxyHost", proxyHost); + } + + public void setProxyPort(String proxyPort) + { + SetParamValue("proxyPort", proxyPort); + } + + #region mobile + public void SetMobileInfo(String mobileInfo) + { + SetParamValue("mobileinfo", mobileInfo); + } + + public void setMobileUseSSL(int type) + { + SetParamValue("MobileUseSSL", type.ToString()); + } + + public void setMobileUseProxy(int proxy) + { + SetParamValue("MobileUseProxy", proxy.ToString()); + } + + public void setMobileProxyType(int type) + { + SetParamValue("MobileProxyType", type.ToString()); + } + + public void setMobileProxySetting_Address(String proxyAddress) + { + SetParamValue("MobileProxySetting_Address", proxyAddress); + } + + public void SetMobileProxySetting_Authentication(int authentication) + { + SetParamValue("MobileProxySetting_Authentication", authentication.ToString()); + } + + public void SetMobileProxySetting_UserName(string proxyUserName) + { + SetParamValue("MobileProxySetting_UserName", proxyUserName); + } + + public void SetMobileProxySetting_Password(string proxyPassword) + { + string proxyPass; + try + { + proxyPass = EncryptParameter(proxyPassword); + SetParamValue("MobileProxySetting_Password", proxyPass); + } + catch + { + + } + } + #endregion + + private void SetParamValue(string paramName, string paramValue) + { + + if (string.IsNullOrEmpty(paramValue)) + { + if (!requiredParameters.Contains(paramName)) + properties.Remove(paramName); + else + properties.Add(paramName, ""); + } + else + { + properties.Add(paramName, paramValue); + } + } + + private string EncryptParameter(string parameter) + { + RijndaelManaged rijndaelCipher = new RijndaelManaged(); + rijndaelCipher.Mode = CipherMode.CBC; + rijndaelCipher.Padding = PaddingMode.PKCS7; + + rijndaelCipher.KeySize = 0x80; + rijndaelCipher.BlockSize = 0x80; + byte[] pwdBytes = Encoding.UTF8.GetBytes(secretkey); + byte[] keyBytes = new byte[0x10]; + int len = pwdBytes.Length; + if (len > keyBytes.Length) + { + len = keyBytes.Length; + } + Array.Copy(pwdBytes, keyBytes, len); + rijndaelCipher.Key = keyBytes; + rijndaelCipher.IV = keyBytes; + ICryptoTransform transform = rijndaelCipher.CreateEncryptor(); + byte[] plainText = Encoding.UTF8.GetBytes(parameter); + return Convert.ToBase64String(transform.TransformFinalBlock(plainText, 0, plainText.Length)); + } + + } +} diff --git a/PSModule/Models/MobileSettings.cs b/PSModule/Models/MobileSettings.cs index f1c5ca0..805ec9b 100644 --- a/PSModule/Models/MobileSettings.cs +++ b/PSModule/Models/MobileSettings.cs @@ -1,20 +1,20 @@ -using System; - -namespace PSModule.Models -{ - public class MobileSettings - { - public bool useMC; - public String mcServerUrl;// = map.get(RunFromFileSystemTaskConfigurator.MCSERVERURL); - public String mcUserName;// = map.get(RunFromFileSystemTaskConfigurator.MCUSERNAME); - public String mcPassword;// = map.get(RunFromFileSystemTaskConfigurator.MCPASSWORD); - public String proxyAddress;// = null; - public String proxyUserName;// = null; - public String proxyPassword;// = null; - - public bool useSSL; - public bool useProxy; - - public bool specifyAuthentication; - } -} +using System; + +namespace PSModule.Models +{ + public class MobileSettings + { + public bool useMC; + public String mcServerUrl;// = map.get(RunFromFileSystemTaskConfigurator.MCSERVERURL); + public String mcUserName;// = map.get(RunFromFileSystemTaskConfigurator.MCUSERNAME); + public String mcPassword;// = map.get(RunFromFileSystemTaskConfigurator.MCPASSWORD); + public String proxyAddress;// = null; + public String proxyUserName;// = null; + public String proxyPassword;// = null; + + public bool useSSL; + public bool useProxy; + + public bool specifyAuthentication; + } +} diff --git a/PSModule/PSModule.csproj b/PSModule/PSModule.csproj index 9d0f147..78d7128 100644 --- a/PSModule/PSModule.csproj +++ b/PSModule/PSModule.csproj @@ -1,86 +1,86 @@ - - - - - Debug - AnyCPU - {0BFB533E-0E07-4969-B1B7-ED18105E162E} - Library - Properties - PSModule - PSModule - v4.5.2 - 512 - SAK - SAK - SAK - SAK - - - true - full - false - ..\..\vsts-agent-win7-x64-2.117.2\bin\plugins\UFTBuildTask\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - ..\bin\ - TRACE - prompt - 4 - - - - False - ..\packages\Microsoft.PowerShell.5.ReferenceAssemblies.1.0.0\lib\net4\Microsoft.PowerShell.ConsoleHost.dll - - - - - - False - ..\packages\Microsoft.PowerShell.5.ReferenceAssemblies.1.0.0\lib\net4\System.Management.Automation.dll - - - - - - - - - - - - - - - - - - - - True - True - Settings.settings - - - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - - + + + + + Debug + AnyCPU + {0BFB533E-0E07-4969-B1B7-ED18105E162E} + Library + Properties + PSModule + PSModule + v4.5.2 + 512 + SAK + SAK + SAK + SAK + + + true + full + false + ..\..\vsts-agent-win7-x64-2.117.2\bin\plugins\UFTBuildTask\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\bin\ + TRACE + prompt + 4 + + + + False + ..\packages\Microsoft.PowerShell.5.ReferenceAssemblies.1.0.0\lib\net4\Microsoft.PowerShell.ConsoleHost.dll + + + + + + False + ..\packages\Microsoft.PowerShell.5.ReferenceAssemblies.1.0.0\lib\net4\System.Management.Automation.dll + + + + + + + + + + + + + + + + + + + + True + True + Settings.settings + + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + \ No newline at end of file diff --git a/PSModule/PSModule.csproj.vspscc b/PSModule/PSModule.csproj.vspscc deleted file mode 100644 index feffdec..0000000 --- a/PSModule/PSModule.csproj.vspscc +++ /dev/null @@ -1,10 +0,0 @@ -"" -{ -"FILE_VERSION" = "9237" -"ENLISTMENT_CHOICE" = "NEVER" -"PROJECT_FILE_RELATIVE_PATH" = "" -"NUMBER_OF_EXCLUDED_FILES" = "0" -"ORIGINAL_PROJECT_FILE_PATH" = "" -"NUMBER_OF_NESTED_PROJECTS" = "0" -"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" -} diff --git a/PSModule/Properties/AssemblyInfo.cs b/PSModule/Properties/AssemblyInfo.cs index c37b40a..8ebdec2 100644 --- a/PSModule/Properties/AssemblyInfo.cs +++ b/PSModule/Properties/AssemblyInfo.cs @@ -1,36 +1,36 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("PSModule")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("PSModule")] -[assembly: AssemblyCopyright("Copyright © 2016")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("0bfb533e-0e07-4969-b1b7-ed18105e162e")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("PSModule")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("PSModule")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("0bfb533e-0e07-4969-b1b7-ed18105e162e")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PSModule/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/PSModule/obj/Debug/DesignTimeResolveAssemblyReferences.cache deleted file mode 100644 index 2b1906ea4f75d071ab939769d07a898a6b775901..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1022 zcmcIi+iuf95Opq2W5=oT0X!Iq2T-GxLmDVZQB^{sRM4uBsJvK68}B%*vi4TH>$c%@ zc;##O5B>pm(zKKi@m5y~r=keqK7z2f;C$y(?t8tQonK0?ESi{aj#XMZjIy@lLE+gHno^9Tgh=0q}{ za$o_y@qT$~-3}OBK+fz;>?i`AP-8%?Mz*Vp-0%$6JJ(Eahl9U4<#M@HZsICC-@gsp n;~!(+_iKR-eLJm)bfa$Pm0w!P-biY0CShCH)%{Al8%d4d0NpV@ diff --git a/PSModule/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/PSModule/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache deleted file mode 100644 index 9b3c58786cb540061bae71835cd9dff2f98bc2d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7423 zcmeHMS#KLR5SDywEa#||rnwKLP1_`pwvvxH36KZZvKphYVMt0+AZs|(?nq|LU8*G4 zM-BgnKJ>l6py*F*XI9e6SJF1n7J1Mb8qqxF8xDumH{4V@l}i1E4}H^fZUlw5!d)e` zY#RF&*C7)%6M9_Qi_-UHuv}is=U#!*Tn5idvv!gG^0~!Om{7s9079df$miC=hT!gx zuveE`5Ik!XXPR@(`DUr)%@x@U8z;!e??L)L&8_iINief(ONVU~# zspF@bez;Rd zU8n06e!7ZVC+ZK6$_bpOHpk2?a|N!Eii4hNdxohRFy(HpF|(C3)pzfYtUFNzi*d75MAJ`4F8=Zk`O1hx6 zR10W5H#jE@x$Y3~s$pQb58WZhHFdnCuZ9|`&;$hms;VgIqtbV%>4NIjMsBf2tWnEK zrAASXq|<2&KPXcpzmM1Uv;iN(6W7-@6ma$r5P;&Y{Q{l!w)E!B2fE;nc*R5rYmBS6 z({b0DQ9NknbG~+^61>shWB-1O&CjzrckWT?$;>PiA3s^of5?tc)YK&Wus&F~e&XuV z>0yW_5k>KCN<#T39#aF}K*In{B8G+mI;bDc^)&I|%qWV<%or8NNgy3aWzL|$uL%+v z5|bp(qL{SKp-frlQIz+qUFP((hD3UYDR5%4>)5MH^_WBEw`c7+dph5vpk2DTw0mG( zKuvt{sq<1J|8xXnTUt8xO3hg)uN3gR5Odyw&ybWTXRWp(y-#O=4})o+-|ho@Bnj|5KA$@-BU>%Ova_9{8Sh1{Ww*~7cmzx$fcbc7=x@$+n5AI1?vXtr4_?YEzB))QL2%< zzx(*n11I)(uDjHvq8}8oGmnOc)A47&qrF($WU3uG=_bPcmi|xk=y~Fh!Zl2zRBaQ4 zz(9>Fv9D93Y78g`;KOL-YRS<21GUMr8{>i*)XuLBOO0=8bpN^8OuAP@P3QNkY=^Q2x(z?DN?5gw?mdwKZfm0p$YTOi zz|3jBu={AXFm0Dg^Y*mU;DOT?VGG|BI4>*p=xs`!=`ANqX%wZl)-;M_md%<$)$55w nM1{G`!<;D_WsnGSCJFN?d*3bS8As4C2 diff --git a/PSModule/obj/Debug/Microsoft.Management.Infrastructure.dll b/PSModule/obj/Debug/Microsoft.Management.Infrastructure.dll deleted file mode 100644 index 786b7593a1998babbfe007a081ceb7d70719f3e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36864 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%0D+w>-K$L=&?fhaiRj7(cM93*BMJ>Z%oF3_ z!^LP4%zl%6r3J-2{js3El=VTTh3wcYgn~S>jEDt|lX*mvd88PX^dgPb;b^;Vz1V96H zRgU>=wyJ?9z(GeqD3BmtZ$T`?<>kU;*UHumWz8)0vUDm3imUm+;8_S5+$!=Q8%0F1 zMes_&%@VjnaHrtCgIn=xIC%&0{~d)T&d+Nrct__P?8kU%RCM{Sn6VNbqf%TJFRQ}L&}kGs9BcH5|5)&K0RRR^v<@|%^f z*WR-2Cq-KWM;-L+dH19qE&1@|ukC)m@s)+m8|SqIUiZ>(#qZ>X)WWlPbsgl|`4ceJ_2o>@~j zvwOzOrkS<&%$fC(rtX;C)Lh>bZK{pM8fxmgA~PDhn(Jz6V>4+7S9wvD3H&X`#jYo1x#WJeIz6tTNv zHL*wy{xRn6y2e=3%ouXuf^>Js8k?K!SVJsQ-)J{9MC+TIq797=^))l?CcD1AtEr)G zMr}iVEMiBSyBnKlG}X`OZk`!!>Ymv!v$4i*Y@XQ|ozY;|)iyPEH#ElV?uHp%b&T?q>XGLDXEt{d&E1pt z4pS-_hfm|Cj$gv<#l2!?q`m){?Y$1|ozAs4t_5SMvoh7Koh@kaG;U6l-8k^C#qaOw zk(U3bPAvGxbS}*1S{^@*_v5mA$a}y1gQWOBa+S4&PwI&ja@GFjfGv3y3$+OkR2T^$T zQ1cNs(gGtbFwz1eEilpoBP}q}0wXOj(gOcVEikD6zvcHd{3}&@q^=_^Fwz1eEilpo fBP}q}0wXOj(gGtbFwz1eEilpoBQ5Z+)dK$)880~x diff --git a/PSModule/obj/Debug/Microsoft.PowerShell.ConsoleHost.dll b/PSModule/obj/Debug/Microsoft.PowerShell.ConsoleHost.dll deleted file mode 100644 index 05511b8f6de1209e380d485ded3e8c3af9523f8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 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 NH2VLF{0n;E{{Ru;NXGyG diff --git a/PSModule/obj/Debug/PSModule.pdb b/PSModule/obj/Debug/PSModule.pdb deleted file mode 100644 index 611967102e58d6f0ae517c98fbb1e60b3ea42b6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42496 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 Y_xDhGSm$929Jat=3mmq<-`xWL9}aPhWB>pF diff --git a/PSModule/obj/Debug/System.Management.Automation.dll b/PSModule/obj/Debug/System.Management.Automation.dll deleted file mode 100644 index 41a5fe9a1c2a3e489bc574f915f5c09c056f0d31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 360448 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≺*cWwS^djR_^ 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

a1m)rnI~HN@N?%yf8Z2U5sZPo?%K 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 diff --git a/PSModule/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/PSModule/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs deleted file mode 100644 index e69de29..0000000 diff --git a/PSModule/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/PSModule/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs deleted file mode 100644 index e69de29..0000000 diff --git a/PSModule/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/PSModule/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs deleted file mode 100644 index e69de29..0000000 diff --git a/PSModule/obj/Release/CoreCompileInputs.cache b/PSModule/obj/Release/CoreCompileInputs.cache deleted file mode 100644 index a01f20e..0000000 --- a/PSModule/obj/Release/CoreCompileInputs.cache +++ /dev/null @@ -1 +0,0 @@ -548e238eaf72217ead8069876d68266dcf74aa41 diff --git a/PSModule/obj/Release/DesignTimeResolveAssemblyReferences.cache b/PSModule/obj/Release/DesignTimeResolveAssemblyReferences.cache deleted file mode 100644 index 23f5f66a39dc0cd602cc484723d9c8293a3d9bba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 877 zcmcJN(QeZ)6o%8Z>6$b{eE=?k#06-TmC|(#qzXZ3)d@BYT8*0s$&F8nRVSWoXIpt3 zZh0EsgLeR*t{Vd??r@|(c6{RVpU=msIgazg4t(PXT`M1td8VY6xgoDAE*P0nz0@R; z3cAr5D9vR#?Cp~npKg>?!c+=|B~(UH(Tz^4x!~CwSk2@T%Hcfj=Y#xd-s`bJO#9Ts zWDmCIn69*eVrr-XjPi3XV7;o}zuvMggn-Og3z|%*{$%J}0J`?;RvIY(4BfE-!COh$ zm}W+*olQNhL>A{%f$HF)iDYo90{RG=NFUUxjN-P)Gx=;o}4 zTRb2Ab^iBvhcB>zAVBke1I4q_!5MBen^wx?d1@^!6fL5$rJ|!pSBD3W)Ax{rf--~X zrPfeb@}SdOxaru&!=+Tql$?xazg8FfWI&#z8-pKUPDWP-O1xT4m=I0mwD_MnUn_da z%LOLuV7co%Y}twLTk&wVcU#AAjd-U?_7KIoL6A`>s5Zxv@tgw-={1kli6sy+IERv1 zP8Lt7GinT|HO70YDh)4S(+9ix4KV!8ab36O?xHp4>z7e?@@*0XK{K$+z!Ho}KkoOQ Q1vPYxhVKTo{|IXT1b2W3rvLx| diff --git a/PSModule/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache b/PSModule/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache deleted file mode 100644 index dc4b2428b8eec88f61e42428831e540d058095af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7449 zcmeHMS#uLd5SDx_mN|k5;XXt{5}@Rbgl)i7@!(iia0P)%5|9e(GNav=Ja~3TnVIzw zm;Xl|Qk7qj%1=zXSJKKhh8$=sJZN3&9naBUPfyS2>rpD5N~Qk9hu-v@7(?MzxT~a= zEn~mnI%J}5LXS&(N&3DFR!YnH+zU{e%ivLQ-Y(EzKDQJK6DoKVKxh;b`CK(@3hsUn zI}N!3!J}qjwl&|n-zpZp`2w3|lLYzT9Z27XTzG`H5*Sdj^HQ-+2b5i7Y9;7|Mqk9i z7nu-p3%o_G!EcJ4L6&dgiP&baQE^*xvY=;0359|fn(|GsPqkLI;Hxxkz1@WYuvI@ zsd1EJ>2%t{56aZoZi5aTL?m36v@8B#P2*t;d`m){#hWF$GRcb{+faawF!D`OP_d-oBgfQ_vpWT;ATZ zPN62f^w4>(k$*aZu?>wh{8_D9dRB27<+`(2s?6YfCg#2~K0|V%oNB!yy-aT>*ygQoU*f7fIyi#^U#k6b*PTr?T$ z3@PaK`V`9(zUIO@i=}C-E!eY#+2TUxGyFd_oh3ih$2v#C-r|ApS?94lVS7SY7orku zLzb2zGL86u<-;7)VeSTNgSOo$Q?M?f${#;WB{E6OQVgw3q7ZOm!lsT|u~C)BkBc zeb4MuT*X97)z?7?4At1$fw6XxNUDRp)d|4N9X%3LGK@NSEVYSDyox5WL_E?b(Gkow zgz*xAiCMma2aTEpu!Ur(-S z{xeLiZFcW>vE`46_*?Gn>#osV7Ts*W^V%(mxF7c74>_}cwK_GGxrL`*|H)F)M0fqx zZ4}QFIpVXFlSLSJurN`^d-^oxXHn9&-g->iGVV5nTI)3Hp(aw=2*1s6chA}|2{g!{_gj= M(J2=HZnAp(FC(L{TL1t6 diff --git a/PSModule/obj/Release/PSModule.csproj.CopyComplete b/PSModule/obj/Release/PSModule.csproj.CopyComplete deleted file mode 100644 index e69de29..0000000 diff --git a/PSModule/obj/Release/PSModule.csproj.CoreCompileInputs.cache b/PSModule/obj/Release/PSModule.csproj.CoreCompileInputs.cache deleted file mode 100644 index 739e293..0000000 --- a/PSModule/obj/Release/PSModule.csproj.CoreCompileInputs.cache +++ /dev/null @@ -1 +0,0 @@ -1fb0c50455c56164c94af8034ca55b44b2b3cfd3 diff --git a/PSModule/obj/Release/PSModule.csproj.FileListAbsolute.txt b/PSModule/obj/Release/PSModule.csproj.FileListAbsolute.txt deleted file mode 100644 index 546d105..0000000 --- a/PSModule/obj/Release/PSModule.csproj.FileListAbsolute.txt +++ /dev/null @@ -1,18 +0,0 @@ -C:\Users\laakso\TFS\ADM-TFS-Extension-master\bin\PSModule.dll -C:\Users\laakso\TFS\ADM-TFS-Extension-master\bin\PSModule.pdb -C:\Users\laakso\TFS\ADM-TFS-Extension-master\PSModule\obj\Release\PSModule.dll -C:\Users\laakso\TFS\ADM-TFS-Extension-master\PSModule\obj\Release\PSModule.pdb -C:\Users\laakso.CORPDOM\TFS\ADM-TFS-Extension-master\bin\PSModule.dll -C:\Users\laakso.CORPDOM\TFS\ADM-TFS-Extension-master\bin\PSModule.pdb -C:\Users\laakso.CORPDOM\TFS\ADM-TFS-Extension-master\PSModule\obj\Release\PSModule.dll -C:\Users\laakso.CORPDOM\TFS\ADM-TFS-Extension-master\PSModule\obj\Release\PSModule.pdb -C:\Users\laakso.CORPDOM\TFS\ADM-TFS-Extension-master\PSModule\obj\Release\PSModule.csproj.CoreCompileInputs.cache -C:\Users\laakso.CORPDOM\TFS\ADM-TFS-Extension-master\PSModule\obj\Release\PSModule.csproj.CopyComplete -C:\Users\laakso.CORPDOM\TFS\ADM-TFS-Extension-master\PSModule\obj\Release\PSModule.csprojAssemblyReference.cache -C:\Users\laakso.CORPDOM\TFS\UFT_TFS_plugin\ADM-TFS-Extension\bin\PSModule.dll -C:\Users\laakso.CORPDOM\TFS\UFT_TFS_plugin\ADM-TFS-Extension\bin\PSModule.pdb -C:\Users\laakso.CORPDOM\TFS\UFT_TFS_plugin\ADM-TFS-Extension\PSModule\obj\Release\PSModule.csprojAssemblyReference.cache -C:\Users\laakso.CORPDOM\TFS\UFT_TFS_plugin\ADM-TFS-Extension\PSModule\obj\Release\PSModule.csproj.CoreCompileInputs.cache -C:\Users\laakso.CORPDOM\TFS\UFT_TFS_plugin\ADM-TFS-Extension\PSModule\obj\Release\PSModule.csproj.CopyComplete -C:\Users\laakso.CORPDOM\TFS\UFT_TFS_plugin\ADM-TFS-Extension\PSModule\obj\Release\PSModule.dll -C:\Users\laakso.CORPDOM\TFS\UFT_TFS_plugin\ADM-TFS-Extension\PSModule\obj\Release\PSModule.pdb diff --git a/PSModule/obj/Release/PSModule.csprojAssemblyReference.cache b/PSModule/obj/Release/PSModule.csprojAssemblyReference.cache deleted file mode 100644 index 35999d6cdb623f72998c5022a72558e9ebbe7dc8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14523 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 diff --git a/PSModule/obj/Release/PSModule.pdb b/PSModule/obj/Release/PSModule.pdb deleted file mode 100644 index 8bc50364db419b5cde00b01307b8f43f721f94c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38400 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 JwEWR6@IQf!4Ltw= diff --git a/PSModule/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/PSModule/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs deleted file mode 100644 index e69de29..0000000 diff --git a/PSModule/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/PSModule/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs deleted file mode 100644 index e69de29..0000000 diff --git a/PSModule/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/PSModule/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs deleted file mode 100644 index e69de29..0000000 diff --git a/PSModule/packages.config b/PSModule/packages.config index b3a9b93..f1ce927 100644 --- a/PSModule/packages.config +++ b/PSModule/packages.config @@ -1,4 +1,4 @@ - - - + + + \ No newline at end of file diff --git a/UFTBuildTask.sln b/UFTBuildTask.sln index c7e44fe..c6f92e0 100644 --- a/UFTBuildTask.sln +++ b/UFTBuildTask.sln @@ -1,26 +1,26 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UFTBuildTask", "UFTBuildTask\UFTBuildTask.csproj", "{62CBA506-27F9-4AFC-9C38-F16B951D707F}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PSModule", "PSModule\PSModule.csproj", "{0BFB533E-0E07-4969-B1B7-ED18105E162E}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {62CBA506-27F9-4AFC-9C38-F16B951D707F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {62CBA506-27F9-4AFC-9C38-F16B951D707F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0BFB533E-0E07-4969-B1B7-ED18105E162E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0BFB533E-0E07-4969-B1B7-ED18105E162E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0BFB533E-0E07-4969-B1B7-ED18105E162E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0BFB533E-0E07-4969-B1B7-ED18105E162E}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UFTBuildTask", "UFTBuildTask\UFTBuildTask.csproj", "{62CBA506-27F9-4AFC-9C38-F16B951D707F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PSModule", "PSModule\PSModule.csproj", "{0BFB533E-0E07-4969-B1B7-ED18105E162E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {62CBA506-27F9-4AFC-9C38-F16B951D707F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {62CBA506-27F9-4AFC-9C38-F16B951D707F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0BFB533E-0E07-4969-B1B7-ED18105E162E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0BFB533E-0E07-4969-B1B7-ED18105E162E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0BFB533E-0E07-4969-B1B7-ED18105E162E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0BFB533E-0E07-4969-B1B7-ED18105E162E}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/UFTBuildTask.vssscc b/UFTBuildTask.vssscc deleted file mode 100644 index 794f014..0000000 --- a/UFTBuildTask.vssscc +++ /dev/null @@ -1,10 +0,0 @@ -"" -{ -"FILE_VERSION" = "9237" -"ENLISTMENT_CHOICE" = "NEVER" -"PROJECT_FILE_RELATIVE_PATH" = "" -"NUMBER_OF_EXCLUDED_FILES" = "0" -"ORIGINAL_PROJECT_FILE_PATH" = "" -"NUMBER_OF_NESTED_PROJECTS" = "0" -"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" -} diff --git a/UFTBuildTask/AlmLabEnvPrepareTask/publishbuildartifacts.js b/UFTBuildTask/AlmLabEnvPrepareTask/publishbuildartifacts.js index 569bb21..a16531c 100644 --- a/UFTBuildTask/AlmLabEnvPrepareTask/publishbuildartifacts.js +++ b/UFTBuildTask/AlmLabEnvPrepareTask/publishbuildartifacts.js @@ -1,37 +1,37 @@ -/// -"use strict"; -var path = require('path'); -var tl = require('vsts-task-lib/task'); -tl.setResourcePath(path.join(__dirname, 'task.json')); -// content is a folder contain artifacts needs to publish. -var pathtoPublish = "C:\\Tests\\GUITest1\\Res2\\Report"; -var artifactName = "result"; -var artifactType = "container"; -// targetPath is used for file shares -var targetPath = ""; -artifactType = artifactType.toLowerCase(); -try { - var data = { - artifacttype: artifactType, - artifactname: artifactName - }; - // upload or copy - if (artifactType === "container") { - data["containerfolder"] = artifactName; - // add localpath to ##vso command's properties for back compat of old Xplat agent - data["localpath"] = pathtoPublish; - tl.command("artifact.upload", data, pathtoPublish); - } - else if (artifactType === "filepath") { - var artifactPath = path.join(targetPath, artifactName); - tl.mkdirP(artifactPath); - tl.cp("-Rf", path.join(pathtoPublish, "*"), artifactPath); - // add artifactlocation to ##vso command's properties for back compat of old Xplat agent - data["artifactlocation"] = targetPath; - tl.command("artifact.associate", data, targetPath); - } -} -catch (err) { - tl.setResult(tl.TaskResult.Failed, tl.loc('PublishBuildArtifactsFailed', err.message)); -} +/// +"use strict"; +var path = require('path'); +var tl = require('vsts-task-lib/task'); +tl.setResourcePath(path.join(__dirname, 'task.json')); +// content is a folder contain artifacts needs to publish. +var pathtoPublish = "C:\\Tests\\GUITest1\\Res2\\Report"; +var artifactName = "result"; +var artifactType = "container"; +// targetPath is used for file shares +var targetPath = ""; +artifactType = artifactType.toLowerCase(); +try { + var data = { + artifacttype: artifactType, + artifactname: artifactName + }; + // upload or copy + if (artifactType === "container") { + data["containerfolder"] = artifactName; + // add localpath to ##vso command's properties for back compat of old Xplat agent + data["localpath"] = pathtoPublish; + tl.command("artifact.upload", data, pathtoPublish); + } + else if (artifactType === "filepath") { + var artifactPath = path.join(targetPath, artifactName); + tl.mkdirP(artifactPath); + tl.cp("-Rf", path.join(pathtoPublish, "*"), artifactPath); + // add artifactlocation to ##vso command's properties for back compat of old Xplat agent + data["artifactlocation"] = targetPath; + tl.command("artifact.associate", data, targetPath); + } +} +catch (err) { + tl.setResult(tl.TaskResult.Failed, tl.loc('PublishBuildArtifactsFailed', err.message)); +} //# sourceMappingURL=publishbuildartifacts.js.map \ No newline at end of file diff --git a/UFTBuildTask/AlmLabEnvPrepareTask/task.json b/UFTBuildTask/AlmLabEnvPrepareTask/task.json index 78db899..95e0243 100644 --- a/UFTBuildTask/AlmLabEnvPrepareTask/task.json +++ b/UFTBuildTask/AlmLabEnvPrepareTask/task.json @@ -1,578 +1,578 @@ -{ - "id": "9A12D98C-8838-40BA-BE69-C0B5D88743F5", - "name": "AlmLabEnvPrepareTask", - "friendlyName": "UFT ALM Lab Management Environment Preparation", - "description": "Use this build step to assign values to AUT Environment Configuration in ALM.", - "category": "Test", - "visibility": [ - "Build", - "Release" - ], - "author": "", - "version": { - "Major": 1, - "Minor": 0, - "Patch": 3 - }, - "demands": [ - "UFT_LAUNCHER" - ], - "groups": [ - { - "name": "advanced", - "displayName": "Advanced", - "isExpanded": false - }, - { - "name": "params", - "displayName": "Add parameters", - "isExpanded": false - } - ], - "minimumAgentVersion": "1.95.0", - "instanceNameFormat": "AlmLabEnvPrepareTask $(message)", - "inputs": [ - { - "name": "varAlmserv", - "type": "string", - "label": "ALM server", - "defaultValue": "", - "required": true - }, - { - "name": "varUserName", - "type": "string", - "label": "User name", - "defaultValue": "", - "required": true - }, - { - "name": "varPass", - "type": "string", - "label": "Password", - "defaultValue": "", - "required": false - }, - { - "name": "varDomain", - "type": "string", - "label": "Domain", - "defaultValue": "", - "required": true - }, - { - "name": "varProject", - "type": "string", - "label": "Project", - "defaultValue": "", - "required": true - }, - { - "name": "varEnvId", - "type": "string", - "label": "AUT Environment ID", - "defaultValue": "", - "required": true, - "helpMarkDown": "Assign ID of an AUT Environment that exists in the ALM project you selected." - }, - { - "name": "javaHomeSelection", - "type": "radio", - "label": "", - "required": true, - "groupName": "advanced", - "defaultValue": "Existing", - "helpMarkDown": "Sets JAVA_HOME either by selecting a JDK version that will be discovered during builds or by manually entering a JDK path.", - "options": { - "NewConf": "Create a new configuration named", - "Existing": "Use an existing configuration with ID:" - } - }, - { - "name": "createNewNamed", - "type": "string", - "label": "Create a new configuration named:", - "groupName": "advanced", - "defaultValue": "", - "required": true, - "visibleRule": "javaHomeSelection = NewConf" - }, - { - "name": "assignMessage", - "type": "string", - "label": "Assign AUT Environment Configuration ID to:", - "groupName": "advanced", - "defaultValue": "", - "required": false, - "visibleRule": "javaHomeSelection = NewConf" - }, - { - "name": "jdkUserInputPath", - "type": "string", - "label": "Use as existing configuration with ID:", - "required": true, - "groupName": "advanced", - "defaultValue": "", - "helpMarkDown": "Sets JAVA_HOME to the given path.", - "visibleRule": "javaHomeSelection = Existing" - }, - { - "name": "varPathToJSON", - "type": "string", - "label": "Path to JSON file", - "defaultValue": "", - "groupName": "advanced", - "required": false, - "helpMarkDown": "A path to the JSON file that will be loaded in order to assign values to all the AUT Environment Parameters of From JSON type." - }, - { - "name": "AddParam1", - "type": "boolean", - "label": "Add 1 Parameter", - "defaultValue": "false", - "required": false, - "groupName": "params" - }, - { - "name": "paramType1", - "type": "radio", - "label": "Parameter type", - "required": true, - "groupName": "params", - "defaultValue": "JSON", - "visibleRule": "AddParam1 = true", - "helpMarkDown": "Manual - the value youll assign for Parameter value field will be used as is. Environment - the value youll assign for Parameter value will be looked for in the environment parameters and the resolved value will be used. If you named your parameter my_parameter put here my_parameter (exactly the same value). From JSON - the value youll assign for Parameter value will be looked for in the JSON file you specified for the Path to JSON file entry", - "options": { - "JSON": "From JSON", - "Environment": "Environment", - "Manual": "Manual" - } - }, - { - "name": "paramName1", - "type": "string", - "label": "Parameter name", - "defaultValue": "Parameters/", - "required": true, - "groupName": "params", - "visibleRule": "AddParam1 = true", - "helpMarkDown": "The name must be set in the same hierarchical structure as it defined in ALM (Parameters tab of the AUT Environment). For example: Parameters/Parameter_name" - }, - { - "name": "paramValue1", - "type": "string", - "label": "Parameter value", - "defaultValue": "", - "required": true, - "groupName": "params", - "visibleRule": "AddParam1 = true", - "helpMarkDown": "If you are using a From JSON type, specify here the path for the element you would like to get. Make sure you are using JsonPath style for defining it." - }, - { - "name": "AddParam2", - "type": "boolean", - "label": "Add 2 Parameter", - "defaultValue": "false", - "required": false, - "groupName": "params" - }, - { - "name": "paramType2", - "type": "radio", - "label": "Parameter type", - "required": true, - "groupName": "params", - "defaultValue": "JSON", - "visibleRule": "AddParam2 = true", - "helpMarkDown": "Manual - the value youll assign for Parameter value field will be used as is. Environment - the value youll assign for Parameter value will be looked for in the environment parameters and the resolved value will be used. If you named your parameter my_parameter put here my_parameter (exactly the same value). From JSON - the value youll assign for Parameter value will be looked for in the JSON file you specified for the Path to JSON file entry", - "options": { - "JSON": "From JSON", - "Environment": "Environment", - "Manual": "Manual" - } - }, - { - "name": "paramName2", - "type": "string", - "label": "Parameter name", - "defaultValue": "Parameters/", - "required": true, - "groupName": "params", - "visibleRule": "AddParam2 = true", - "helpMarkDown": "The name must be set in the same hierarchical structure as it defined in ALM (Parameters tab of the AUT Environment). For example: Parameters/Parameter_name" - }, - { - "name": "paramValue2", - "type": "string", - "label": "Parameter value", - "defaultValue": "", - "required": true, - "groupName": "params", - "visibleRule": "AddParam2 = true", - "helpMarkDown": "If you are using a From JSON type, specify here the path for the element you would like to get. Make sure you are using JsonPath style for defining it." - }, - { - "name": "AddParam3", - "type": "boolean", - "label": "Add 3 Parameter", - "defaultValue": "false", - "required": false, - "groupName": "params" - }, - { - "name": "paramType3", - "type": "radio", - "label": "Parameter type", - "required": true, - "groupName": "params", - "defaultValue": "JSON", - "visibleRule": "AddParam3 = true", - "helpMarkDown": "Manual - the value youll assign for Parameter value field will be used as is. Environment - the value youll assign for Parameter value will be looked for in the environment parameters and the resolved value will be used. If you named your parameter my_parameter put here my_parameter (exactly the same value). From JSON - the value youll assign for Parameter value will be looked for in the JSON file you specified for the Path to JSON file entry", - "options": { - "JSON": "From JSON", - "Environment": "Environment", - "Manual": "Manual" - } - }, - { - "name": "paramName3", - "type": "string", - "label": "Parameter name", - "defaultValue": "Parameters/", - "required": true, - "groupName": "params", - "visibleRule": "AddParam3 = true", - "helpMarkDown": "The name must be set in the same hierarchical structure as it defined in ALM (Parameters tab of the AUT Environment). For example: Parameters/Parameter_name" - }, - { - "name": "paramValue3", - "type": "string", - "label": "Parameter value", - "defaultValue": "", - "required": true, - "groupName": "params", - "visibleRule": "AddParam3 = true", - "helpMarkDown": "If you are using a From JSON type, specify here the path for the element you would like to get. Make sure you are using JsonPath style for defining it." - }, - { - "name": "AddParam4", - "type": "boolean", - "label": "Add 4 Parameter", - "defaultValue": "false", - "required": false, - "groupName": "params" - }, - { - "name": "paramType4", - "type": "radio", - "label": "Parameter type", - "required": true, - "groupName": "params", - "defaultValue": "JSON", - "visibleRule": "AddParam4 = true", - "helpMarkDown": "Manual - the value youll assign for Parameter value field will be used as is. Environment - the value youll assign for Parameter value will be looked for in the environment parameters and the resolved value will be used. If you named your parameter my_parameter put here my_parameter (exactly the same value). From JSON - the value youll assign for Parameter value will be looked for in the JSON file you specified for the Path to JSON file entry", - "options": { - "JSON": "From JSON", - "Environment": "Environment", - "Manual": "Manual" - } - }, - { - "name": "paramName4", - "type": "string", - "label": "Parameter name", - "defaultValue": "Parameters/", - "required": true, - "groupName": "params", - "visibleRule": "AddParam4 = true", - "helpMarkDown": "The name must be set in the same hierarchical structure as it defined in ALM (Parameters tab of the AUT Environment). For example: Parameters/Parameter_name" - }, - { - "name": "paramValue4", - "type": "string", - "label": "Parameter value", - "defaultValue": "", - "required": true, - "groupName": "params", - "visibleRule": "AddParam4 = true", - "helpMarkDown": "If you are using a From JSON type, specify here the path for the element you would like to get. Make sure you are using JsonPath style for defining it." - }, - { - "name": "AddParam5", - "type": "boolean", - "label": "Add 5 Parameter", - "defaultValue": "false", - "required": false, - "groupName": "params" - }, - { - "name": "paramType5", - "type": "radio", - "label": "Parameter type", - "required": true, - "groupName": "params", - "defaultValue": "JSON", - "visibleRule": "AddParam5 = true", - "helpMarkDown": "Manual - the value youll assign for Parameter value field will be used as is. Environment - the value youll assign for Parameter value will be looked for in the environment parameters and the resolved value will be used. If you named your parameter my_parameter put here my_parameter (exactly the same value). From JSON - the value youll assign for Parameter value will be looked for in the JSON file you specified for the Path to JSON file entry", - "options": { - "JSON": "From JSON", - "Environment": "Environment", - "Manual": "Manual" - } - }, - { - "name": "paramName5", - "type": "string", - "label": "Parameter name", - "defaultValue": "Parameters/", - "required": true, - "groupName": "params", - "visibleRule": "AddParam5 = true", - "helpMarkDown": "The name must be set in the same hierarchical structure as it defined in ALM (Parameters tab of the AUT Environment). For example: Parameters/Parameter_name" - }, - { - "name": "paramValue5", - "type": "string", - "label": "Parameter value", - "defaultValue": "", - "required": true, - "groupName": "params", - "visibleRule": "AddParam5 = true", - "helpMarkDown": "If you are using a From JSON type, specify here the path for the element you would like to get. Make sure you are using JsonPath style for defining it." - }, - { - "name": "AddParam6", - "type": "boolean", - "label": "Add 6 Parameter", - "defaultValue": "false", - "required": false, - "groupName": "params" - }, - { - "name": "paramType6", - "type": "radio", - "label": "Parameter type", - "required": true, - "groupName": "params", - "defaultValue": "JSON", - "visibleRule": "AddParam6 = true", - "helpMarkDown": "Manual - the value youll assign for Parameter value field will be used as is. Environment - the value youll assign for Parameter value will be looked for in the environment parameters and the resolved value will be used. If you named your parameter my_parameter put here my_parameter (exactly the same value). From JSON - the value youll assign for Parameter value will be looked for in the JSON file you specified for the Path to JSON file entry", - "options": { - "JSON": "From JSON", - "Environment": "Environment", - "Manual": "Manual" - } - }, - { - "name": "paramName6", - "type": "string", - "label": "Parameter name", - "defaultValue": "Parameters/", - "required": true, - "groupName": "params", - "visibleRule": "AddParam6 = true", - "helpMarkDown": "The name must be set in the same hierarchical structure as it defined in ALM (Parameters tab of the AUT Environment). For example: Parameters/Parameter_name" - }, - { - "name": "paramValue6", - "type": "string", - "label": "Parameter value", - "defaultValue": "", - "required": true, - "groupName": "params", - "visibleRule": "AddParam6 = true", - "helpMarkDown": "If you are using a From JSON type, specify here the path for the element you would like to get. Make sure you are using JsonPath style for defining it." - }, - { - "name": "AddParam7", - "type": "boolean", - "label": "Add 7 Parameter", - "defaultValue": "false", - "required": false, - "groupName": "params" - }, - { - "name": "paramType7", - "type": "radio", - "label": "Parameter type", - "required": true, - "groupName": "params", - "defaultValue": "JSON", - "visibleRule": "AddParam7 = true", - "helpMarkDown": "Manual - the value youll assign for Parameter value field will be used as is. Environment - the value youll assign for Parameter value will be looked for in the environment parameters and the resolved value will be used. If you named your parameter my_parameter put here my_parameter (exactly the same value). From JSON - the value youll assign for Parameter value will be looked for in the JSON file you specified for the Path to JSON file entry", - "options": { - "JSON": "From JSON", - "Environment": "Environment", - "Manual": "Manual" - } - }, - { - "name": "paramName7", - "type": "string", - "label": "Parameter name", - "defaultValue": "Parameters/", - "required": true, - "groupName": "params", - "visibleRule": "AddParam7 = true", - "helpMarkDown": "The name must be set in the same hierarchical structure as it defined in ALM (Parameters tab of the AUT Environment). For example: Parameters/Parameter_name" - }, - { - "name": "paramValue7", - "type": "string", - "label": "Parameter value", - "defaultValue": "", - "required": true, - "groupName": "params", - "visibleRule": "AddParam7 = true", - "helpMarkDown": "If you are using a From JSON type, specify here the path for the element you would like to get. Make sure you are using JsonPath style for defining it." - }, - { - "name": "AddParam8", - "type": "boolean", - "label": "Add 8 Parameter", - "defaultValue": "false", - "required": false, - "groupName": "params" - }, - { - "name": "paramType8", - "type": "radio", - "label": "Parameter type", - "required": true, - "groupName": "params", - "defaultValue": "JSON", - "visibleRule": "AddParam8 = true", - "helpMarkDown": "Manual - the value youll assign for Parameter value field will be used as is. Environment - the value youll assign for Parameter value will be looked for in the environment parameters and the resolved value will be used. If you named your parameter my_parameter put here my_parameter (exactly the same value). From JSON - the value youll assign for Parameter value will be looked for in the JSON file you specified for the Path to JSON file entry", - "options": { - "JSON": "From JSON", - "Environment": "Environment", - "Manual": "Manual" - } - }, - { - "name": "paramName8", - "type": "string", - "label": "Parameter name", - "defaultValue": "Parameters/", - "required": true, - "groupName": "params", - "visibleRule": "AddParam8 = true", - "helpMarkDown": "The name must be set in the same hierarchical structure as it defined in ALM (Parameters tab of the AUT Environment). For example: Parameters/Parameter_name" - }, - { - "name": "paramValue8", - "type": "string", - "label": "Parameter value", - "defaultValue": "", - "required": true, - "groupName": "params", - "visibleRule": "AddParam8 = true", - "helpMarkDown": "If you are using a From JSON type, specify here the path for the element you would like to get. Make sure you are using JsonPath style for defining it." - }, - { - "name": "AddParam9", - "type": "boolean", - "label": "Add 9 Parameter", - "defaultValue": "false", - "required": false, - "groupName": "params" - }, - { - "name": "paramType9", - "type": "radio", - "label": "Parameter type", - "required": true, - "groupName": "params", - "defaultValue": "JSON", - "visibleRule": "AddParam9 = true", - "helpMarkDown": "Manual - the value youll assign for Parameter value field will be used as is. Environment - the value youll assign for Parameter value will be looked for in the environment parameters and the resolved value will be used. If you named your parameter my_parameter put here my_parameter (exactly the same value). From JSON - the value youll assign for Parameter value will be looked for in the JSON file you specified for the Path to JSON file entry", - "options": { - "JSON": "From JSON", - "Environment": "Environment", - "Manual": "Manual" - } - }, - { - "name": "paramName9", - "type": "string", - "label": "Parameter name", - "defaultValue": "Parameters/", - "required": true, - "groupName": "params", - "visibleRule": "AddParam9 = true", - "helpMarkDown": "The name must be set in the same hierarchical structure as it defined in ALM (Parameters tab of the AUT Environment). For example: Parameters/Parameter_name" - }, - { - "name": "paramValue9", - "type": "string", - "label": "Parameter value", - "defaultValue": "", - "required": true, - "groupName": "params", - "visibleRule": "AddParam9 = true", - "helpMarkDown": "If you are using a From JSON type, specify here the path for the element you would like to get. Make sure you are using JsonPath style for defining it." - }, - { - "name": "AddParam10", - "type": "boolean", - "label": "Add 10 Parameter", - "defaultValue": "false", - "required": false, - "groupName": "params" - }, - { - "name": "paramType10", - "type": "radio", - "label": "Parameter type", - "required": true, - "groupName": "params", - "defaultValue": "JSON", - "visibleRule": "AddParam10 = true", - "helpMarkDown": "Manual - the value youll assign for Parameter value field will be used as is. Environment - the value youll assign for Parameter value will be looked for in the environment parameters and the resolved value will be used. If you named your parameter my_parameter put here my_parameter (exactly the same value). From JSON - the value youll assign for Parameter value will be looked for in the JSON file you specified for the Path to JSON file entry", - "options": { - "JSON": "From JSON", - "Environment": "Environment", - "Manual": "Manual" - } - }, - { - "name": "paramName10", - "type": "string", - "label": "Parameter name", - "defaultValue": "Parameters/", - "required": true, - "groupName": "params", - "visibleRule": "AddParam10 = true", - "helpMarkDown": "The name must be set in the same hierarchical structure as it defined in ALM (Parameters tab of the AUT Environment). For example: Parameters/Parameter_name" - }, - { - "name": "paramValue10", - "type": "string", - "label": "Parameter value", - "defaultValue": "", - "required": true, - "groupName": "params", - "visibleRule": "AddParam10 = true", - "helpMarkDown": "If you are using a From JSON type, specify here the path for the element you would like to get. Make sure you are using JsonPath style for defining it." - }, - { - "name": "paramOnlyFirst", - "type": "boolean", - "label": "Get only the first value in case an array will be returned", - "defaultValue": "false", - "required": true, - "groupName": "advanced", - "helpMarkDown": "Check this option if you want extended logging enabled" - } - ], - "execution": { - "PowerShell": { - "target": "$(currentDirectory)\\localTask.ps1", - "argumentFormat": "", - "workingDirectory": "$(currentDirectory)", - "platforms": [ - "windows" - ] - } - } -} +{ + "id": "9A12D98C-8838-40BA-BE69-C0B5D88743F5", + "name": "AlmLabEnvPrepareTask", + "friendlyName": "UFT ALM Lab Management Environment Preparation", + "description": "Use this build step to assign values to AUT Environment Configuration in ALM.", + "category": "Test", + "visibility": [ + "Build", + "Release" + ], + "author": "", + "version": { + "Major": 1, + "Minor": 0, + "Patch": 2 + }, + "demands": [ + "UFT_LAUNCHER" + ], + "groups": [ + { + "name": "advanced", + "displayName": "Advanced", + "isExpanded": false + }, + { + "name": "params", + "displayName": "Add parameters", + "isExpanded": false + } + ], + "minimumAgentVersion": "1.95.0", + "instanceNameFormat": "AlmLabEnvPrepareTask $(message)", + "inputs": [ + { + "name": "varAlmserv", + "type": "string", + "label": "ALM server", + "defaultValue": "", + "required": true + }, + { + "name": "varUserName", + "type": "string", + "label": "User name", + "defaultValue": "", + "required": true + }, + { + "name": "varPass", + "type": "string", + "label": "Password", + "defaultValue": "", + "required": false + }, + { + "name": "varDomain", + "type": "string", + "label": "Domain", + "defaultValue": "", + "required": true + }, + { + "name": "varProject", + "type": "string", + "label": "Project", + "defaultValue": "", + "required": true + }, + { + "name": "varEnvId", + "type": "string", + "label": "AUT Environment ID", + "defaultValue": "", + "required": true, + "helpMarkDown": "Assign ID of an AUT Environment that exists in the ALM project you selected." + }, + { + "name": "javaHomeSelection", + "type": "radio", + "label": "", + "required": true, + "groupName": "advanced", + "defaultValue": "Existing", + "helpMarkDown": "Sets JAVA_HOME either by selecting a JDK version that will be discovered during builds or by manually entering a JDK path.", + "options": { + "NewConf": "Create a new configuration named", + "Existing": "Use an existing configuration with ID:" + } + }, + { + "name": "createNewNamed", + "type": "string", + "label": "Create a new configuration named:", + "groupName": "advanced", + "defaultValue": "", + "required": true, + "visibleRule": "javaHomeSelection = NewConf" + }, + { + "name": "assignMessage", + "type": "string", + "label": "Assign AUT Environment Configuration ID to:", + "groupName": "advanced", + "defaultValue": "", + "required": false, + "visibleRule": "javaHomeSelection = NewConf" + }, + { + "name": "jdkUserInputPath", + "type": "string", + "label": "Use as existing configuration with ID:", + "required": true, + "groupName": "advanced", + "defaultValue": "", + "helpMarkDown": "Sets JAVA_HOME to the given path.", + "visibleRule": "javaHomeSelection = Existing" + }, + { + "name": "varPathToJSON", + "type": "string", + "label": "Path to JSON file", + "defaultValue": "", + "groupName": "advanced", + "required": false, + "helpMarkDown": "A path to the JSON file that will be loaded in order to assign values to all the AUT Environment Parameters of From JSON type." + }, + { + "name": "AddParam1", + "type": "boolean", + "label": "Add 1 Parameter", + "defaultValue": "false", + "required": false, + "groupName": "params" + }, + { + "name": "paramType1", + "type": "radio", + "label": "Parameter type", + "required": true, + "groupName": "params", + "defaultValue": "JSON", + "visibleRule": "AddParam1 = true", + "helpMarkDown": "Manual - the value youll assign for Parameter value field will be used as is. Environment - the value youll assign for Parameter value will be looked for in the environment parameters and the resolved value will be used. If you named your parameter my_parameter put here my_parameter (exactly the same value). From JSON - the value youll assign for Parameter value will be looked for in the JSON file you specified for the Path to JSON file entry", + "options": { + "JSON": "From JSON", + "Environment": "Environment", + "Manual": "Manual" + } + }, + { + "name": "paramName1", + "type": "string", + "label": "Parameter name", + "defaultValue": "Parameters/", + "required": true, + "groupName": "params", + "visibleRule": "AddParam1 = true", + "helpMarkDown": "The name must be set in the same hierarchical structure as it defined in ALM (Parameters tab of the AUT Environment). For example: Parameters/Parameter_name" + }, + { + "name": "paramValue1", + "type": "string", + "label": "Parameter value", + "defaultValue": "", + "required": true, + "groupName": "params", + "visibleRule": "AddParam1 = true", + "helpMarkDown": "If you are using a From JSON type, specify here the path for the element you would like to get. Make sure you are using JsonPath style for defining it." + }, + { + "name": "AddParam2", + "type": "boolean", + "label": "Add 2 Parameter", + "defaultValue": "false", + "required": false, + "groupName": "params" + }, + { + "name": "paramType2", + "type": "radio", + "label": "Parameter type", + "required": true, + "groupName": "params", + "defaultValue": "JSON", + "visibleRule": "AddParam2 = true", + "helpMarkDown": "Manual - the value youll assign for Parameter value field will be used as is. Environment - the value youll assign for Parameter value will be looked for in the environment parameters and the resolved value will be used. If you named your parameter my_parameter put here my_parameter (exactly the same value). From JSON - the value youll assign for Parameter value will be looked for in the JSON file you specified for the Path to JSON file entry", + "options": { + "JSON": "From JSON", + "Environment": "Environment", + "Manual": "Manual" + } + }, + { + "name": "paramName2", + "type": "string", + "label": "Parameter name", + "defaultValue": "Parameters/", + "required": true, + "groupName": "params", + "visibleRule": "AddParam2 = true", + "helpMarkDown": "The name must be set in the same hierarchical structure as it defined in ALM (Parameters tab of the AUT Environment). For example: Parameters/Parameter_name" + }, + { + "name": "paramValue2", + "type": "string", + "label": "Parameter value", + "defaultValue": "", + "required": true, + "groupName": "params", + "visibleRule": "AddParam2 = true", + "helpMarkDown": "If you are using a From JSON type, specify here the path for the element you would like to get. Make sure you are using JsonPath style for defining it." + }, + { + "name": "AddParam3", + "type": "boolean", + "label": "Add 3 Parameter", + "defaultValue": "false", + "required": false, + "groupName": "params" + }, + { + "name": "paramType3", + "type": "radio", + "label": "Parameter type", + "required": true, + "groupName": "params", + "defaultValue": "JSON", + "visibleRule": "AddParam3 = true", + "helpMarkDown": "Manual - the value youll assign for Parameter value field will be used as is. Environment - the value youll assign for Parameter value will be looked for in the environment parameters and the resolved value will be used. If you named your parameter my_parameter put here my_parameter (exactly the same value). From JSON - the value youll assign for Parameter value will be looked for in the JSON file you specified for the Path to JSON file entry", + "options": { + "JSON": "From JSON", + "Environment": "Environment", + "Manual": "Manual" + } + }, + { + "name": "paramName3", + "type": "string", + "label": "Parameter name", + "defaultValue": "Parameters/", + "required": true, + "groupName": "params", + "visibleRule": "AddParam3 = true", + "helpMarkDown": "The name must be set in the same hierarchical structure as it defined in ALM (Parameters tab of the AUT Environment). For example: Parameters/Parameter_name" + }, + { + "name": "paramValue3", + "type": "string", + "label": "Parameter value", + "defaultValue": "", + "required": true, + "groupName": "params", + "visibleRule": "AddParam3 = true", + "helpMarkDown": "If you are using a From JSON type, specify here the path for the element you would like to get. Make sure you are using JsonPath style for defining it." + }, + { + "name": "AddParam4", + "type": "boolean", + "label": "Add 4 Parameter", + "defaultValue": "false", + "required": false, + "groupName": "params" + }, + { + "name": "paramType4", + "type": "radio", + "label": "Parameter type", + "required": true, + "groupName": "params", + "defaultValue": "JSON", + "visibleRule": "AddParam4 = true", + "helpMarkDown": "Manual - the value youll assign for Parameter value field will be used as is. Environment - the value youll assign for Parameter value will be looked for in the environment parameters and the resolved value will be used. If you named your parameter my_parameter put here my_parameter (exactly the same value). From JSON - the value youll assign for Parameter value will be looked for in the JSON file you specified for the Path to JSON file entry", + "options": { + "JSON": "From JSON", + "Environment": "Environment", + "Manual": "Manual" + } + }, + { + "name": "paramName4", + "type": "string", + "label": "Parameter name", + "defaultValue": "Parameters/", + "required": true, + "groupName": "params", + "visibleRule": "AddParam4 = true", + "helpMarkDown": "The name must be set in the same hierarchical structure as it defined in ALM (Parameters tab of the AUT Environment). For example: Parameters/Parameter_name" + }, + { + "name": "paramValue4", + "type": "string", + "label": "Parameter value", + "defaultValue": "", + "required": true, + "groupName": "params", + "visibleRule": "AddParam4 = true", + "helpMarkDown": "If you are using a From JSON type, specify here the path for the element you would like to get. Make sure you are using JsonPath style for defining it." + }, + { + "name": "AddParam5", + "type": "boolean", + "label": "Add 5 Parameter", + "defaultValue": "false", + "required": false, + "groupName": "params" + }, + { + "name": "paramType5", + "type": "radio", + "label": "Parameter type", + "required": true, + "groupName": "params", + "defaultValue": "JSON", + "visibleRule": "AddParam5 = true", + "helpMarkDown": "Manual - the value youll assign for Parameter value field will be used as is. Environment - the value youll assign for Parameter value will be looked for in the environment parameters and the resolved value will be used. If you named your parameter my_parameter put here my_parameter (exactly the same value). From JSON - the value youll assign for Parameter value will be looked for in the JSON file you specified for the Path to JSON file entry", + "options": { + "JSON": "From JSON", + "Environment": "Environment", + "Manual": "Manual" + } + }, + { + "name": "paramName5", + "type": "string", + "label": "Parameter name", + "defaultValue": "Parameters/", + "required": true, + "groupName": "params", + "visibleRule": "AddParam5 = true", + "helpMarkDown": "The name must be set in the same hierarchical structure as it defined in ALM (Parameters tab of the AUT Environment). For example: Parameters/Parameter_name" + }, + { + "name": "paramValue5", + "type": "string", + "label": "Parameter value", + "defaultValue": "", + "required": true, + "groupName": "params", + "visibleRule": "AddParam5 = true", + "helpMarkDown": "If you are using a From JSON type, specify here the path for the element you would like to get. Make sure you are using JsonPath style for defining it." + }, + { + "name": "AddParam6", + "type": "boolean", + "label": "Add 6 Parameter", + "defaultValue": "false", + "required": false, + "groupName": "params" + }, + { + "name": "paramType6", + "type": "radio", + "label": "Parameter type", + "required": true, + "groupName": "params", + "defaultValue": "JSON", + "visibleRule": "AddParam6 = true", + "helpMarkDown": "Manual - the value youll assign for Parameter value field will be used as is. Environment - the value youll assign for Parameter value will be looked for in the environment parameters and the resolved value will be used. If you named your parameter my_parameter put here my_parameter (exactly the same value). From JSON - the value youll assign for Parameter value will be looked for in the JSON file you specified for the Path to JSON file entry", + "options": { + "JSON": "From JSON", + "Environment": "Environment", + "Manual": "Manual" + } + }, + { + "name": "paramName6", + "type": "string", + "label": "Parameter name", + "defaultValue": "Parameters/", + "required": true, + "groupName": "params", + "visibleRule": "AddParam6 = true", + "helpMarkDown": "The name must be set in the same hierarchical structure as it defined in ALM (Parameters tab of the AUT Environment). For example: Parameters/Parameter_name" + }, + { + "name": "paramValue6", + "type": "string", + "label": "Parameter value", + "defaultValue": "", + "required": true, + "groupName": "params", + "visibleRule": "AddParam6 = true", + "helpMarkDown": "If you are using a From JSON type, specify here the path for the element you would like to get. Make sure you are using JsonPath style for defining it." + }, + { + "name": "AddParam7", + "type": "boolean", + "label": "Add 7 Parameter", + "defaultValue": "false", + "required": false, + "groupName": "params" + }, + { + "name": "paramType7", + "type": "radio", + "label": "Parameter type", + "required": true, + "groupName": "params", + "defaultValue": "JSON", + "visibleRule": "AddParam7 = true", + "helpMarkDown": "Manual - the value youll assign for Parameter value field will be used as is. Environment - the value youll assign for Parameter value will be looked for in the environment parameters and the resolved value will be used. If you named your parameter my_parameter put here my_parameter (exactly the same value). From JSON - the value youll assign for Parameter value will be looked for in the JSON file you specified for the Path to JSON file entry", + "options": { + "JSON": "From JSON", + "Environment": "Environment", + "Manual": "Manual" + } + }, + { + "name": "paramName7", + "type": "string", + "label": "Parameter name", + "defaultValue": "Parameters/", + "required": true, + "groupName": "params", + "visibleRule": "AddParam7 = true", + "helpMarkDown": "The name must be set in the same hierarchical structure as it defined in ALM (Parameters tab of the AUT Environment). For example: Parameters/Parameter_name" + }, + { + "name": "paramValue7", + "type": "string", + "label": "Parameter value", + "defaultValue": "", + "required": true, + "groupName": "params", + "visibleRule": "AddParam7 = true", + "helpMarkDown": "If you are using a From JSON type, specify here the path for the element you would like to get. Make sure you are using JsonPath style for defining it." + }, + { + "name": "AddParam8", + "type": "boolean", + "label": "Add 8 Parameter", + "defaultValue": "false", + "required": false, + "groupName": "params" + }, + { + "name": "paramType8", + "type": "radio", + "label": "Parameter type", + "required": true, + "groupName": "params", + "defaultValue": "JSON", + "visibleRule": "AddParam8 = true", + "helpMarkDown": "Manual - the value youll assign for Parameter value field will be used as is. Environment - the value youll assign for Parameter value will be looked for in the environment parameters and the resolved value will be used. If you named your parameter my_parameter put here my_parameter (exactly the same value). From JSON - the value youll assign for Parameter value will be looked for in the JSON file you specified for the Path to JSON file entry", + "options": { + "JSON": "From JSON", + "Environment": "Environment", + "Manual": "Manual" + } + }, + { + "name": "paramName8", + "type": "string", + "label": "Parameter name", + "defaultValue": "Parameters/", + "required": true, + "groupName": "params", + "visibleRule": "AddParam8 = true", + "helpMarkDown": "The name must be set in the same hierarchical structure as it defined in ALM (Parameters tab of the AUT Environment). For example: Parameters/Parameter_name" + }, + { + "name": "paramValue8", + "type": "string", + "label": "Parameter value", + "defaultValue": "", + "required": true, + "groupName": "params", + "visibleRule": "AddParam8 = true", + "helpMarkDown": "If you are using a From JSON type, specify here the path for the element you would like to get. Make sure you are using JsonPath style for defining it." + }, + { + "name": "AddParam9", + "type": "boolean", + "label": "Add 9 Parameter", + "defaultValue": "false", + "required": false, + "groupName": "params" + }, + { + "name": "paramType9", + "type": "radio", + "label": "Parameter type", + "required": true, + "groupName": "params", + "defaultValue": "JSON", + "visibleRule": "AddParam9 = true", + "helpMarkDown": "Manual - the value youll assign for Parameter value field will be used as is. Environment - the value youll assign for Parameter value will be looked for in the environment parameters and the resolved value will be used. If you named your parameter my_parameter put here my_parameter (exactly the same value). From JSON - the value youll assign for Parameter value will be looked for in the JSON file you specified for the Path to JSON file entry", + "options": { + "JSON": "From JSON", + "Environment": "Environment", + "Manual": "Manual" + } + }, + { + "name": "paramName9", + "type": "string", + "label": "Parameter name", + "defaultValue": "Parameters/", + "required": true, + "groupName": "params", + "visibleRule": "AddParam9 = true", + "helpMarkDown": "The name must be set in the same hierarchical structure as it defined in ALM (Parameters tab of the AUT Environment). For example: Parameters/Parameter_name" + }, + { + "name": "paramValue9", + "type": "string", + "label": "Parameter value", + "defaultValue": "", + "required": true, + "groupName": "params", + "visibleRule": "AddParam9 = true", + "helpMarkDown": "If you are using a From JSON type, specify here the path for the element you would like to get. Make sure you are using JsonPath style for defining it." + }, + { + "name": "AddParam10", + "type": "boolean", + "label": "Add 10 Parameter", + "defaultValue": "false", + "required": false, + "groupName": "params" + }, + { + "name": "paramType10", + "type": "radio", + "label": "Parameter type", + "required": true, + "groupName": "params", + "defaultValue": "JSON", + "visibleRule": "AddParam10 = true", + "helpMarkDown": "Manual - the value youll assign for Parameter value field will be used as is. Environment - the value youll assign for Parameter value will be looked for in the environment parameters and the resolved value will be used. If you named your parameter my_parameter put here my_parameter (exactly the same value). From JSON - the value youll assign for Parameter value will be looked for in the JSON file you specified for the Path to JSON file entry", + "options": { + "JSON": "From JSON", + "Environment": "Environment", + "Manual": "Manual" + } + }, + { + "name": "paramName10", + "type": "string", + "label": "Parameter name", + "defaultValue": "Parameters/", + "required": true, + "groupName": "params", + "visibleRule": "AddParam10 = true", + "helpMarkDown": "The name must be set in the same hierarchical structure as it defined in ALM (Parameters tab of the AUT Environment). For example: Parameters/Parameter_name" + }, + { + "name": "paramValue10", + "type": "string", + "label": "Parameter value", + "defaultValue": "", + "required": true, + "groupName": "params", + "visibleRule": "AddParam10 = true", + "helpMarkDown": "If you are using a From JSON type, specify here the path for the element you would like to get. Make sure you are using JsonPath style for defining it." + }, + { + "name": "paramOnlyFirst", + "type": "boolean", + "label": "Get only the first value in case an array will be returned", + "defaultValue": "false", + "required": true, + "groupName": "advanced", + "helpMarkDown": "Check this option if you want extended logging enabled" + } + ], + "execution": { + "PowerShell": { + "target": "$(currentDirectory)\\localTask.ps1", + "argumentFormat": "", + "workingDirectory": "$(currentDirectory)", + "platforms": [ + "windows" + ] + } + } +} diff --git a/UFTBuildTask/AlmLabManagementTask/task.json b/UFTBuildTask/AlmLabManagementTask/task.json index 3d8d62f..c899b4a 100644 --- a/UFTBuildTask/AlmLabManagementTask/task.json +++ b/UFTBuildTask/AlmLabManagementTask/task.json @@ -1,174 +1,174 @@ -{ - "id": "91008DAF-AFF5-4E1A-A6FF-8ACF9D229E3B", - "name": "AlmLabManagementTask", - "friendlyName": "UFT ALM Lab Management", - "description": "Use this build step to run ALM server-side functional test sets and Build Verification Suites.", - "category": "Test", - "visibility": [ - "Build", - "Release" - ], - "author": "", - "version": { - "Major": 1, - "Minor": 0, - "Patch": 3 - }, - "demands": [ - "UFT_LAUNCHER" - ], - "groups": [ - { - "name": "useCDAGroup", - "displayName": "CDA Properties", - "isExpanded": false - } - ], - "inputs": [ - { - "name": "varAlmServ", - "type": "string", - "label": "ALM server", - "defaultValue": "", - "required": true, - "helpMarkDown": "The address of your ALM server, in the format http://(ALM server name):(port)/qcbin" - }, - { - "name": "varUserName", - "type": "string", - "label": "User name", - "defaultValue": "", - "required": true, - "helpMarkDown": "The user name that will access this ALM server during the build step run." - }, - { - "name": "varPass", - "type": "string", - "label": "Password", - "defaultValue": "", - "required": false, - "helpMarkDown": "The password for the user that will access this ALM server during the build step run." - }, - { - "name": "varDomain", - "type": "string", - "label": "Domain", - "defaultValue": "", - "required": true, - "helpMarkDown": "The ALM domain in which the tests to run are stored." - }, - { - "name": "varProject", - "type": "string", - "label": "Project", - "defaultValue": "", - "required": true, - "helpMarkDown": "The ALM project in which the tests to run are stored." - }, - { - "name": "varRunType", - "type": "radio", - "label": "Run type", - "defaultValue": "TEST_SET", - "required": false, - "helpMarkDown": "The run mode (Suite run or Build Veriification Suite) to use when running the test.", - "options": { - "TEST_SET": "Test set", - "BVS": "Build verification suite" - } - }, - { - "name": "varTestSet", - "type": "string", - "label": "Test Set/Build Verification Suite ID", - "defaultValue": "", - "required": true, - "helpMarkDown": "The ID number (found in ALM) for the test set or build verification suite." - }, - { - "name": "varDescription", - "type": "string", - "label": "Description", - "defaultValue": "", - "required": false, - "helpMarkDown": "The description of this test set/build verification suite." - }, - { - "name": "varTimeslotDuration", - "type": "string", - "label": "Timeslot Duration (in minutes, minimum = 30)", - "defaultValue": "", - "required": true, - "helpMarkDown": "The amount of time needed on the host to run this test set/verification suite." - }, - { - "name": "varEnvironmentConfigurationID", - "type": "string", - "label": "Environment Configuration ID", - "defaultValue": "", - "required": false, - "helpMarkDown": "To find the ID of your environment configuration, right-click the entity, copy the URL, and paste it to a text editor. Use the number associated with the EntityID at the end of the URL." - }, - { - "name": "varReportName", - "type": "string", - "label": "Report Name", - "defaultValue": "", - "required": false, - "helpMarkDown": "" - }, - { - "name": "varUseCDA", - "type": "boolean", - "label": "Use CDA for provisioning and deployment", - "groupName": "useCDAGroup", - "defaultValue": "false", - "required": false, - "helpMarkDown": "Use ALM CDA servers for deployment of the tests." - }, - { - "name": "varDeploymentAction", - "type": "pickList", - "label": "Deployment Action", - "defaultValue": "Use Deployed", - "groupName": "useCDAGroup", - "required": false, - "helpMarkDown": "The action to perform on deploying the server for running tests.", - "options": { - "Use Deployed": "Use Deployed", - "Provision and Deploy": "Provision and Deploy", - "Redeploy": "Redeploy" - } - }, - { - "name": "varDeploymentEnvironmentName", - "type": "string", - "label": "Deployed environment name", - "defaultValue": "", - "groupName": "useCDAGroup", - "required": false, - "helpMarkDown": "The name of environment on which you are deploying the server." - }, - { - "name": "varDeprovisioningAction", - "type": "pickList", - "label": "Deprovisioning Action", - "defaultValue": "Leave environment deployed", - "groupName": "useCDAGroup", - "required": false, - "helpMarkDown": "The action to perform after the testing run when you are ready to end the server deployment.", - "options": { - "Leave environment deployed": "Leave environment deployed", - "Deprovision at end": "Deprovision end" - } - } - ], - "instanceNameFormat": "AlmLabManagementTask", - "execution": { - "PowerShell": { - "target": "$(currentDirectory)\\localTask.ps1", - "argumentFormat": "", - "workingDirectory": "$(currentDirectory)" - } - } +{ + "id": "91008DAF-AFF5-4E1A-A6FF-8ACF9D229E3B", + "name": "AlmLabManagementTask", + "friendlyName": "UFT ALM Lab Management", + "description": "Use this build step to run ALM server-side functional test sets and Build Verification Suites.", + "category": "Test", + "visibility": [ + "Build", + "Release" + ], + "author": "", + "version": { + "Major": 1, + "Minor": 0, + "Patch": 2 + }, + "demands": [ + "UFT_LAUNCHER" + ], + "groups": [ + { + "name": "useCDAGroup", + "displayName": "CDA Properties", + "isExpanded": false + } + ], + "inputs": [ + { + "name": "varAlmServ", + "type": "string", + "label": "ALM server", + "defaultValue": "", + "required": true, + "helpMarkDown": "The address of your ALM server, in the format http://(ALM server name):(port)/qcbin" + }, + { + "name": "varUserName", + "type": "string", + "label": "User name", + "defaultValue": "", + "required": true, + "helpMarkDown": "The user name that will access this ALM server during the build step run." + }, + { + "name": "varDomain", + "type": "string", + "label": "Domain", + "defaultValue": "", + "required": true, + "helpMarkDown": "The ALM domain in which the tests to run are stored." + }, + { + "name": "varProject", + "type": "string", + "label": "Project", + "defaultValue": "", + "required": true, + "helpMarkDown": "The ALM project in which the tests to run are stored." + }, + { + "name": "varTestSet", + "type": "string", + "label": "Test Set/Build Verification Suite ID", + "defaultValue": "", + "required": true, + "helpMarkDown": "The ID number (found in ALM) for the test set or build verification suite." + }, + { + "name": "varTimeslotDuration", + "type": "string", + "label": "Timeslot Duration (in minutes, minimum = 30)", + "defaultValue": "", + "required": true, + "helpMarkDown": "The amount of time needed on the host to run this test set/verification suite." + }, + { + "name": "varPass", + "type": "string", + "label": "Password", + "defaultValue": "", + "required": false, + "helpMarkDown": "The password for the user that will access this ALM server during the build step run." + }, + { + "name": "varRunType", + "type": "radio", + "label": "Run type", + "defaultValue": "TEST_SET", + "required": false, + "helpMarkDown": "The run mode (Suite run or Build Veriification Suite) to use when running the test.", + "options": { + "TEST_SET": "Test set", + "BVS": "Build verification suite" + } + }, + { + "name": "varDescription", + "type": "string", + "label": "Description", + "defaultValue": "", + "required": false, + "helpMarkDown": "The description of this test set/build verification suite." + }, + { + "name": "varEnvironmentConfigurationID", + "type": "string", + "label": "Environment Configuration ID", + "defaultValue": "", + "required": false, + "helpMarkDown": "To find the ID of your environment configuration, right-click the entity, copy the URL, and paste it to a text editor. Use the number associated with the EntityID at the end of the URL." + }, + { + "name": "varUseCDA", + "type": "boolean", + "label": "Use CDA for provisioning and deployment", + "groupName": "useCDAGroup", + "defaultValue": "false", + "required": false, + "helpMarkDown": "Use ALM CDA servers for deployment of the tests." + }, + { + "name": "varDeploymentAction", + "type": "pickList", + "label": "Deployment Action", + "defaultValue": "useDeployed", + "groupName": "useCDAGroup", + "required": false, + "helpMarkDown": "The action to perform on deploying the server for running tests.", + "options": { + "Use Deployed": "Use Deployed", + "Provision and Deploy": "Provision and Deploy", + "Redeploy": "Redeploy" + } + }, + { + "name": "varDeploymentEnvironmentName", + "type": "string", + "label": "Deployed environment name", + "defaultValue": "", + "groupName": "useCDAGroup", + "required": false, + "helpMarkDown": "The name of environment on which you are deploying the server." + }, + { + "name": "varDeprovisioningAction", + "type": "pickList", + "label": "Deprovisioning Action", + "defaultValue": "leaveEnvironmentDeployed", + "groupName": "useCDAGroup", + "required": false, + "helpMarkDown": "The action to perform after the testing run when you are ready to end the server deployment.", + "options": { + "Leave environment deployed": "Leave environment deployed", + "Deprovision at end": "Deprovision end" + } + }, + { + "name": "varReportName", + "type": "string", + "label": "Report Name", + "defaultValue": "", + "required": false, + "helpMarkDown": "" + } + ], + "instanceNameFormat": "AlmLabManagementTask", + "execution": { + "PowerShell": { + "target": "$(currentDirectory)\\localTask.ps1", + "argumentFormat": "", + "workingDirectory": "$(currentDirectory)" + } + } } \ No newline at end of file diff --git a/UFTBuildTask/Properties/AssemblyInfo.cs b/UFTBuildTask/Properties/AssemblyInfo.cs index ea7ecf1..ab27bd6 100644 --- a/UFTBuildTask/Properties/AssemblyInfo.cs +++ b/UFTBuildTask/Properties/AssemblyInfo.cs @@ -1,36 +1,36 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("UFTBuildTask")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("UFTBuildTask")] -[assembly: AssemblyCopyright("Copyright © 2016")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("62cba506-27f9-4afc-9c38-f16b951d707f")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("UFTBuildTask")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("UFTBuildTask")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("62cba506-27f9-4afc-9c38-f16b951d707f")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/UFTBuildTask/RunFromALM/task.json b/UFTBuildTask/RunFromALM/task.json index 8e238e8..1bf1135 100644 --- a/UFTBuildTask/RunFromALM/task.json +++ b/UFTBuildTask/RunFromALM/task.json @@ -1,124 +1,124 @@ -{ - "id": "A571AE7C-E100-42E1-8CED-498B46029771", - "name": "RunFromALM", - "friendlyName": "UFT ALM Execution", - "description": "Execute UFT tests from ALM", - "category": "Test", - "visibility": [ - "Build", - "Release" - ], - "author": "", - "version": { - "Major": 1, - "Minor": 0, - "Patch": 3 - }, - "demands": [ - "UFT_LAUNCHER" - ], - "groups": [ - { - "name": "advanced", - "displayName": "Advanced", - "isExpanded": false - } - ], - "inputs": [ - { - "name": "varAlmserv", - "type": "string", - "label": "ALM server", - "defaultValue": "", - "required": true, - "helpMarkDown": "The address of your ALM server, in the format http:s//(ALM server name):(port)/qcbin" - }, - { - "name": "varUserName", - "type": "string", - "label": "User name", - "defaultValue": "", - "required": true, - "helpMarkDown": "The user name that will access this ALM server during the build step run." - }, - { - "name": "varPass", - "type": "string", - "label": "Password", - "defaultValue": "", - "required": false, - "helpMarkDown": "The password for the user that will access this ALM server during the build step run." - }, - { - "name": "varDomain", - "type": "string", - "label": "Domain", - "defaultValue": "", - "required": true, - "helpMarkDown": "The ALM domain in which the tests to run are stored." - }, - { - "name": "varProject", - "type": "string", - "label": "Project", - "defaultValue": "", - "required": true, - "helpMarkDown": "The ALM project in which the tests to run are stored." - }, - { - "name": "varTestsets", - "type": "multiLine", - "label": "Test sets", - "defaultValue": "", - "required": false, - "helpMarkDown": "The test sets to run in the current build step." - }, - { - "name": "varTimeout", - "type": "string", - "label": "Timeout", - "defaultValue": "", - "required": false, - "helpMarkDown": "Timeout value in seconds. If left empty, there is no timeout." - }, - { - "name": "runMode", - "type": "pickList", - "label": "Run mode", - "defaultValue": "runLocally", - "required": false, - "helpMarkDown": "The place to run the test: Remote host, local computer, or remote planned host.", - "groupName": "advanced", - "options": { - "runLocally": "Run locally", - "runOnPlannedHost": "Run on planned host", - "runRemotely": "Run remotely" - } - }, - { - "name": "testingToolHost", - "type": "string", - "label": "Testing Tool host", - "defaultValue": "", - "groupName": "advanced", - "required": false, - "helpMarkDown": "The address of the host running the selected tests." - }, - { - "name": "varReportName", - "type": "string", - "label": "Report Name", - "defaultValue": "", - "required": false, - "helpMarkDown": "" - } - ], - "instanceNameFormat": "RunFromALM: ", - "execution": { - "PowerShell": { - "target": "$(currentDirectory)\\localTask.ps1", - "argumentFormat": "", - "workingDirectory": "$(currentDirectory)" - } - } +{ + "id": "A571AE7C-E100-42E1-8CED-498B46029771", + "name": "RunFromALM", + "friendlyName": "UFT ALM Execution", + "description": "Execute UFT tests from ALM", + "category": "Test", + "visibility": [ + "Build", + "Release" + ], + "author": "", + "version": { + "Major": 1, + "Minor": 0, + "Patch": 2 + }, + "demands": [ + "UFT_LAUNCHER" + ], + "groups": [ + { + "name": "advanced", + "displayName": "Advanced", + "isExpanded": false + } + ], + "inputs": [ + { + "name": "varAlmserv", + "type": "string", + "label": "ALM server", + "defaultValue": "", + "required": true, + "helpMarkDown": "The address of your ALM server, in the format http:s//(ALM server name):(port)/qcbin" + }, + { + "name": "varUserName", + "type": "string", + "label": "User name", + "defaultValue": "", + "required": true, + "helpMarkDown": "The user name that will access this ALM server during the build step run." + }, + { + "name": "varPass", + "type": "string", + "label": "Password", + "defaultValue": "", + "required": false, + "helpMarkDown": "The password for the user that will access this ALM server during the build step run." + }, + { + "name": "varDomain", + "type": "string", + "label": "Domain", + "defaultValue": "", + "required": true, + "helpMarkDown": "The ALM domain in which the tests to run are stored." + }, + { + "name": "varProject", + "type": "string", + "label": "Project", + "defaultValue": "", + "required": true, + "helpMarkDown": "The ALM project in which the tests to run are stored." + }, + { + "name": "varTestsets", + "type": "multiLine", + "label": "Test sets", + "defaultValue": "", + "required": false, + "helpMarkDown": "The test sets to run in the current build step." + }, + { + "name": "varTimeout", + "type": "string", + "label": "Timeout", + "defaultValue": "", + "required": false, + "helpMarkDown": "Timeout value in seconds. If left empty, there is no timeout." + }, + { + "name": "runMode", + "type": "pickList", + "label": "Run mode", + "defaultValue": "runLocally", + "required": false, + "helpMarkDown": "The place to run the test: Remote host, local computer, or remote planned host.", + "groupName": "advanced", + "options": { + "runLocally": "Run locally", + "runOnPlannedHost": "Run on planned host", + "runRemotely": "Run remotely" + } + }, + { + "name": "testingToolHost", + "type": "string", + "label": "Testing Tool host", + "defaultValue": "", + "groupName": "advanced", + "required": false, + "helpMarkDown": "The address of the host running the selected tests." + }, + { + "name": "varReportName", + "type": "string", + "label": "Report Name", + "defaultValue": "", + "required": false, + "helpMarkDown": "" + } + ], + "instanceNameFormat": "RunFromALM: ", + "execution": { + "PowerShell": { + "target": "$(currentDirectory)\\localTask.ps1", + "argumentFormat": "", + "workingDirectory": "$(currentDirectory)" + } + } } \ No newline at end of file diff --git a/UFTBuildTask/RunFromFileSystemTask/Strings/resources.resjson/en-US/resources.resjson b/UFTBuildTask/RunFromFileSystemTask/Strings/resources.resjson/en-US/resources.resjson index e137f5f..dd38a34 100644 --- a/UFTBuildTask/RunFromFileSystemTask/Strings/resources.resjson/en-US/resources.resjson +++ b/UFTBuildTask/RunFromFileSystemTask/Strings/resources.resjson/en-US/resources.resjson @@ -1,7 +1,7 @@ -{ - "loc.friendlyName": "Ant", - "loc.description": "Build with Apache Ant", - "loc.group.displayName.loadRunner": "LoadRunner Settings localized", - "loc.group.displayName.modileOptions":"Mobile Center options localized", - "loc.group.displayName.advanced":"advanced", -} +{ + "loc.friendlyName": "Ant", + "loc.description": "Build with Apache Ant", + "loc.group.displayName.loadRunner": "LoadRunner Settings localized", + "loc.group.displayName.modileOptions":"Mobile Center options localized", + "loc.group.displayName.advanced":"advanced", +} diff --git a/UFTBuildTask/RunFromFileSystemTask/Strings/resources.resjson/ru-RU/resources.resjson b/UFTBuildTask/RunFromFileSystemTask/Strings/resources.resjson/ru-RU/resources.resjson index e137f5f..dd38a34 100644 --- a/UFTBuildTask/RunFromFileSystemTask/Strings/resources.resjson/ru-RU/resources.resjson +++ b/UFTBuildTask/RunFromFileSystemTask/Strings/resources.resjson/ru-RU/resources.resjson @@ -1,7 +1,7 @@ -{ - "loc.friendlyName": "Ant", - "loc.description": "Build with Apache Ant", - "loc.group.displayName.loadRunner": "LoadRunner Settings localized", - "loc.group.displayName.modileOptions":"Mobile Center options localized", - "loc.group.displayName.advanced":"advanced", -} +{ + "loc.friendlyName": "Ant", + "loc.description": "Build with Apache Ant", + "loc.group.displayName.loadRunner": "LoadRunner Settings localized", + "loc.group.displayName.modileOptions":"Mobile Center options localized", + "loc.group.displayName.advanced":"advanced", +} diff --git a/UFTBuildTask/RunFromFileSystemTask/localTask.ps1 b/UFTBuildTask/RunFromFileSystemTask/localTask.ps1 index 22f2b5e..cfa9ebf 100644 --- a/UFTBuildTask/RunFromFileSystemTask/localTask.ps1 +++ b/UFTBuildTask/RunFromFileSystemTask/localTask.ps1 @@ -1,43 +1,43 @@ -# -# localTask.ps1 -# -param( - [string][Parameter(Mandatory=$true)] $testPathInput, - [string] $timeOutIn -) - -$uftworkdir = $env:UFT_LAUNCHER -Import-Module $uftworkdir\bin\PSModule.dll - -$retcodefile = Join-Path $env:UFT_LAUNCHER -ChildPath "res\FSTaskRetCode.txt" -if (Test-Path $retcodefile) -{ - Remove-Item $retcodefile -} - -Invoke-FSTask $testPathInput $timeOutIn -Verbose +# +# localTask.ps1 +# +param( + [string][Parameter(Mandatory=$true)] $testPathInput, + [string] $timeOutIn +) -Write-Verbose "Remove temp files" -$results = Join-Path $env:UFT_LAUNCHER -ChildPath "res\*.xml" -Write-Verbose $results -<# -Get-ChildItem -Path $results | foreach ($_) { Remove-Item $_.fullname } -Write-Verbose "Remove temp files complited" -#> -if (Test-Path $retcodefile) -{ - $content = Get-Content $retcodefile - [int]$retcode = [convert]::ToInt32($content, 10) +$uftworkdir = $env:UFT_LAUNCHER +Import-Module $uftworkdir\bin\PSModule.dll - if ($retcode -eq 3) - { - Write-Error "Task Failed with message: Closed by user" - } - elseif ($retcode -ne 0) - { - Write-Host "Return code: $($retcode)" - Write-Host "Task failed" - Write-Error "Task Failed" - } - <#Remove-Item $retcodefile#> +$retcodefile = Join-Path $env:UFT_LAUNCHER -ChildPath "res\FSTaskRetCode.txt" +if (Test-Path $retcodefile) +{ + Remove-Item $retcodefile +} + +Invoke-FSTask $testPathInput $timeOutIn -Verbose + +Write-Verbose "Remove temp files" +$results = Join-Path $env:UFT_LAUNCHER -ChildPath "res\*.xml" +Write-Verbose $results +<# +Get-ChildItem -Path $results | foreach ($_) { Remove-Item $_.fullname } +Write-Verbose "Remove temp files complited" +#> +if (Test-Path $retcodefile) +{ + $content = Get-Content $retcodefile + [int]$retcode = [convert]::ToInt32($content, 10) + + if ($retcode -eq 3) + { + Write-Error "Task Failed with message: Closed by user" + } + elseif ($retcode -ne 0) + { + Write-Host "Return code: $($retcode)" + Write-Host "Task failed" + Write-Error "Task Failed" + } + <#Remove-Item $retcodefile#> } \ No newline at end of file diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/balanced-match/LICENSE.md b/UFTBuildTask/RunFromFileSystemTask/node_modules/balanced-match/LICENSE.md deleted file mode 100644 index 2cdc8e4..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/balanced-match/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/balanced-match/README.md b/UFTBuildTask/RunFromFileSystemTask/node_modules/balanced-match/README.md deleted file mode 100644 index d6880b2..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/balanced-match/README.md +++ /dev/null @@ -1,91 +0,0 @@ -# balanced-match - -Match balanced string pairs, like `{` and `}` or `` and ``. Supports regular expressions as well! - -[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match) -[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match) - -[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match) - -## Example - -Get the first matching pair of braces: - -```js -var balanced = require('balanced-match'); - -console.log(balanced('{', '}', 'pre{in{nested}}post')); -console.log(balanced('{', '}', 'pre{first}between{second}post')); -console.log(balanced(/\s+\{\s+/, /\s+\}\s+/, 'pre { in{nest} } post')); -``` - -The matches are: - -```bash -$ node example.js -{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' } -{ start: 3, - end: 9, - pre: 'pre', - body: 'first', - post: 'between{second}post' } -{ start: 3, end: 17, pre: 'pre', body: 'in{nest}', post: 'post' } -``` - -## API - -### var m = balanced(a, b, str) - -For the first non-nested matching pair of `a` and `b` in `str`, return an -object with those keys: - -* **start** the index of the first match of `a` -* **end** the index of the matching `b` -* **pre** the preamble, `a` and `b` not included -* **body** the match, `a` and `b` not included -* **post** the postscript, `a` and `b` not included - -If there's no match, `undefined` will be returned. - -If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']`. - -### var r = balanced.range(a, b, str) - -For the first non-nested matching pair of `a` and `b` in `str`, return an -array with indexes: `[ , ]`. - -If there's no match, `undefined` will be returned. - -If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]`. - -## Installation - -With [npm](https://npmjs.org) do: - -```bash -npm install balanced-match -``` - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/balanced-match/index.js b/UFTBuildTask/RunFromFileSystemTask/node_modules/balanced-match/index.js deleted file mode 100644 index 4670f7f..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/balanced-match/index.js +++ /dev/null @@ -1,58 +0,0 @@ -module.exports = balanced; -function balanced(a, b, str) { - if (a instanceof RegExp) a = maybeMatch(a, str); - if (b instanceof RegExp) b = maybeMatch(b, str); - - var r = range(a, b, str); - - return r && { - start: r[0], - end: r[1], - pre: str.slice(0, r[0]), - body: str.slice(r[0] + a.length, r[1]), - post: str.slice(r[1] + b.length) - }; -} - -function maybeMatch(reg, str) { - var m = str.match(reg); - return m ? m[0] : null; -} - -balanced.range = range; -function range(a, b, str) { - var begs, beg, left, right, result; - var ai = str.indexOf(a); - var bi = str.indexOf(b, ai + 1); - var i = ai; - - if (ai >= 0 && bi > 0) { - begs = []; - left = str.length; - - while (i < str.length && i >= 0 && ! result) { - if (i == ai) { - begs.push(i); - ai = str.indexOf(a, i + 1); - } else if (begs.length == 1) { - result = [ begs.pop(), bi ]; - } else { - beg = begs.pop(); - if (beg < left) { - left = beg; - right = bi; - } - - bi = str.indexOf(b, i + 1); - } - - i = ai < bi && ai >= 0 ? ai : bi; - } - - if (begs.length) { - result = [ left, right ]; - } - } - - return result; -} diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/balanced-match/package.json b/UFTBuildTask/RunFromFileSystemTask/node_modules/balanced-match/package.json deleted file mode 100644 index 3c048ff..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/balanced-match/package.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "_args": [ - [ - "balanced-match@^0.4.1", - "C:\\Users\\vstsxplat\\Desktop\\vsts-agent\\_work\\3\\s\\_temp\\vsts-task-lib\\0.5.12\\node_modules\\brace-expansion" - ] - ], - "_from": "balanced-match@>=0.4.1 <0.5.0", - "_id": "balanced-match@0.4.1", - "_inCache": true, - "_installable": true, - "_location": "/balanced-match", - "_nodeVersion": "6.0.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/balanced-match-0.4.1.tgz_1462129663650_0.39764496590942144" - }, - "_npmUser": { - "email": "julian@juliangruber.com", - "name": "juliangruber" - }, - "_npmVersion": "3.8.6", - "_phantomChildren": {}, - "_requested": { - "name": "balanced-match", - "raw": "balanced-match@^0.4.1", - "rawSpec": "^0.4.1", - "scope": null, - "spec": ">=0.4.1 <0.5.0", - "type": "range" - }, - "_requiredBy": [ - "/brace-expansion" - ], - "_resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.1.tgz", - "_shasum": "19053e2e0748eadb379da6c09d455cf5e1039335", - "_shrinkwrap": null, - "_spec": "balanced-match@^0.4.1", - "_where": "C:\\Users\\vstsxplat\\Desktop\\vsts-agent\\_work\\3\\s\\_temp\\vsts-task-lib\\0.5.12\\node_modules\\brace-expansion", - "author": { - "email": "mail@juliangruber.com", - "name": "Julian Gruber", - "url": "http://juliangruber.com" - }, - "bugs": { - "url": "https://github.com/juliangruber/balanced-match/issues" - }, - "dependencies": {}, - "description": "Match balanced character pairs, like \"{\" and \"}\"", - "devDependencies": { - "tape": "~4.5.0" - }, - "directories": {}, - "dist": { - "shasum": "19053e2e0748eadb379da6c09d455cf5e1039335", - "tarball": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.1.tgz" - }, - "gitHead": "7004b289baaaab6a832f4901735e29d37cc2a863", - "homepage": "https://github.com/juliangruber/balanced-match", - "keywords": [ - "match", - "regexp", - "test", - "balanced", - "parse" - ], - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "email": "julian@juliangruber.com", - "name": "juliangruber" - } - ], - "name": "balanced-match", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/balanced-match.git" - }, - "scripts": { - "test": "make test" - }, - "testling": { - "browsers": [ - "ie/8..latest", - "firefox/20..latest", - "firefox/nightly", - "chrome/25..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ], - "files": "test/*.js" - }, - "version": "0.4.1" -} diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/brace-expansion/README.md b/UFTBuildTask/RunFromFileSystemTask/node_modules/brace-expansion/README.md deleted file mode 100644 index 1793929..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/brace-expansion/README.md +++ /dev/null @@ -1,122 +0,0 @@ -# brace-expansion - -[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html), -as known from sh/bash, in JavaScript. - -[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion) -[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion) - -[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion) - -## Example - -```js -var expand = require('brace-expansion'); - -expand('file-{a,b,c}.jpg') -// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] - -expand('-v{,,}') -// => ['-v', '-v', '-v'] - -expand('file{0..2}.jpg') -// => ['file0.jpg', 'file1.jpg', 'file2.jpg'] - -expand('file-{a..c}.jpg') -// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] - -expand('file{2..0}.jpg') -// => ['file2.jpg', 'file1.jpg', 'file0.jpg'] - -expand('file{0..4..2}.jpg') -// => ['file0.jpg', 'file2.jpg', 'file4.jpg'] - -expand('file-{a..e..2}.jpg') -// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg'] - -expand('file{00..10..5}.jpg') -// => ['file00.jpg', 'file05.jpg', 'file10.jpg'] - -expand('{{A..C},{a..c}}') -// => ['A', 'B', 'C', 'a', 'b', 'c'] - -expand('ppp{,config,oe{,conf}}') -// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf'] -``` - -## API - -```js -var expand = require('brace-expansion'); -``` - -### var expanded = expand(str) - -Return an array of all possible and valid expansions of `str`. If none are -found, `[str]` is returned. - -Valid expansions are: - -```js -/^(.*,)+(.+)?$/ -// {a,b,...} -``` - -A comma seperated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`. - -```js -/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ -// {x..y[..incr]} -``` - -A numeric sequence from `x` to `y` inclusive, with optional increment. -If `x` or `y` start with a leading `0`, all the numbers will be padded -to have equal length. Negative numbers and backwards iteration work too. - -```js -/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ -// {x..y[..incr]} -``` - -An alphabetic sequence from `x` to `y` inclusive, with optional increment. -`x` and `y` must be exactly one character, and if given, `incr` must be a -number. - -For compatibility reasons, the string `${` is not eligible for brace expansion. - -## Installation - -With [npm](https://npmjs.org) do: - -```bash -npm install brace-expansion -``` - -## Contributors - -- [Julian Gruber](https://github.com/juliangruber) -- [Isaac Z. Schlueter](https://github.com/isaacs) - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/brace-expansion/example.js b/UFTBuildTask/RunFromFileSystemTask/node_modules/brace-expansion/example.js deleted file mode 100644 index 60ecfc7..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/brace-expansion/example.js +++ /dev/null @@ -1,8 +0,0 @@ -var expand = require('./'); - -console.log(expand('http://any.org/archive{1996..1999}/vol{1..4}/part{a,b,c}.html')); -console.log(expand('http://www.numericals.com/file{1..100..10}.txt')); -console.log(expand('http://www.letters.com/file{a..z..2}.txt')); -console.log(expand('mkdir /usr/local/src/bash/{old,new,dist,bugs}')); -console.log(expand('chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}')); - diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/brace-expansion/index.js b/UFTBuildTask/RunFromFileSystemTask/node_modules/brace-expansion/index.js deleted file mode 100644 index 932718f..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/brace-expansion/index.js +++ /dev/null @@ -1,191 +0,0 @@ -var concatMap = require('concat-map'); -var balanced = require('balanced-match'); - -module.exports = expandTop; - -var escSlash = '\0SLASH'+Math.random()+'\0'; -var escOpen = '\0OPEN'+Math.random()+'\0'; -var escClose = '\0CLOSE'+Math.random()+'\0'; -var escComma = '\0COMMA'+Math.random()+'\0'; -var escPeriod = '\0PERIOD'+Math.random()+'\0'; - -function numeric(str) { - return parseInt(str, 10) == str - ? parseInt(str, 10) - : str.charCodeAt(0); -} - -function escapeBraces(str) { - return str.split('\\\\').join(escSlash) - .split('\\{').join(escOpen) - .split('\\}').join(escClose) - .split('\\,').join(escComma) - .split('\\.').join(escPeriod); -} - -function unescapeBraces(str) { - return str.split(escSlash).join('\\') - .split(escOpen).join('{') - .split(escClose).join('}') - .split(escComma).join(',') - .split(escPeriod).join('.'); -} - - -// Basically just str.split(","), but handling cases -// where we have nested braced sections, which should be -// treated as individual members, like {a,{b,c},d} -function parseCommaParts(str) { - if (!str) - return ['']; - - var parts = []; - var m = balanced('{', '}', str); - - if (!m) - return str.split(','); - - var pre = m.pre; - var body = m.body; - var post = m.post; - var p = pre.split(','); - - p[p.length-1] += '{' + body + '}'; - var postParts = parseCommaParts(post); - if (post.length) { - p[p.length-1] += postParts.shift(); - p.push.apply(p, postParts); - } - - parts.push.apply(parts, p); - - return parts; -} - -function expandTop(str) { - if (!str) - return []; - - return expand(escapeBraces(str), true).map(unescapeBraces); -} - -function identity(e) { - return e; -} - -function embrace(str) { - return '{' + str + '}'; -} -function isPadded(el) { - return /^-?0\d/.test(el); -} - -function lte(i, y) { - return i <= y; -} -function gte(i, y) { - return i >= y; -} - -function expand(str, isTop) { - var expansions = []; - - var m = balanced('{', '}', str); - if (!m || /\$$/.test(m.pre)) return [str]; - - var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); - var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); - var isSequence = isNumericSequence || isAlphaSequence; - var isOptions = /^(.*,)+(.+)?$/.test(m.body); - if (!isSequence && !isOptions) { - // {a},b} - if (m.post.match(/,.*\}/)) { - str = m.pre + '{' + m.body + escClose + m.post; - return expand(str); - } - return [str]; - } - - var n; - if (isSequence) { - n = m.body.split(/\.\./); - } else { - n = parseCommaParts(m.body); - if (n.length === 1) { - // x{{a,b}}y ==> x{a}y x{b}y - n = expand(n[0], false).map(embrace); - if (n.length === 1) { - var post = m.post.length - ? expand(m.post, false) - : ['']; - return post.map(function(p) { - return m.pre + n[0] + p; - }); - } - } - } - - // at this point, n is the parts, and we know it's not a comma set - // with a single entry. - - // no need to expand pre, since it is guaranteed to be free of brace-sets - var pre = m.pre; - var post = m.post.length - ? expand(m.post, false) - : ['']; - - var N; - - if (isSequence) { - var x = numeric(n[0]); - var y = numeric(n[1]); - var width = Math.max(n[0].length, n[1].length) - var incr = n.length == 3 - ? Math.abs(numeric(n[2])) - : 1; - var test = lte; - var reverse = y < x; - if (reverse) { - incr *= -1; - test = gte; - } - var pad = n.some(isPadded); - - N = []; - - for (var i = x; test(i, y); i += incr) { - var c; - if (isAlphaSequence) { - c = String.fromCharCode(i); - if (c === '\\') - c = ''; - } else { - c = String(i); - if (pad) { - var need = width - c.length; - if (need > 0) { - var z = new Array(need + 1).join('0'); - if (i < 0) - c = '-' + z + c.slice(1); - else - c = z + c; - } - } - } - N.push(c); - } - } else { - N = concatMap(n, function(el) { return expand(el, false) }); - } - - for (var j = 0; j < N.length; j++) { - for (var k = 0; k < post.length; k++) { - var expansion = pre + N[j] + post[k]; - if (!isTop || isSequence || expansion) - expansions.push(expansion); - } - } - - return expansions; -} - diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/brace-expansion/package.json b/UFTBuildTask/RunFromFileSystemTask/node_modules/brace-expansion/package.json deleted file mode 100644 index 46b7c9b..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/brace-expansion/package.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "_args": [ - [ - "brace-expansion@^1.0.0", - "C:\\Users\\vstsxplat\\Desktop\\vsts-agent\\_work\\3\\s\\_temp\\vsts-task-lib\\0.5.12\\node_modules\\minimatch" - ] - ], - "_from": "brace-expansion@>=1.0.0 <2.0.0", - "_id": "brace-expansion@1.1.4", - "_inCache": true, - "_installable": true, - "_location": "/brace-expansion", - "_nodeVersion": "6.0.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/brace-expansion-1.1.4.tgz_1462130058897_0.14984136167913675" - }, - "_npmUser": { - "email": "julian@juliangruber.com", - "name": "juliangruber" - }, - "_npmVersion": "3.8.6", - "_phantomChildren": {}, - "_requested": { - "name": "brace-expansion", - "raw": "brace-expansion@^1.0.0", - "rawSpec": "^1.0.0", - "scope": null, - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/minimatch" - ], - "_resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.4.tgz", - "_shasum": "464a204c77f482c085c2a36c456bbfbafb67a127", - "_shrinkwrap": null, - "_spec": "brace-expansion@^1.0.0", - "_where": "C:\\Users\\vstsxplat\\Desktop\\vsts-agent\\_work\\3\\s\\_temp\\vsts-task-lib\\0.5.12\\node_modules\\minimatch", - "author": { - "email": "mail@juliangruber.com", - "name": "Julian Gruber", - "url": "http://juliangruber.com" - }, - "bugs": { - "url": "https://github.com/juliangruber/brace-expansion/issues" - }, - "dependencies": { - "balanced-match": "^0.4.1", - "concat-map": "0.0.1" - }, - "description": "Brace expansion as known from sh/bash", - "devDependencies": { - "tape": "4.5.1" - }, - "directories": {}, - "dist": { - "shasum": "464a204c77f482c085c2a36c456bbfbafb67a127", - "tarball": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.4.tgz" - }, - "gitHead": "1660b75d0bf03b022e7888b576cd5a4080692c1d", - "homepage": "https://github.com/juliangruber/brace-expansion", - "keywords": [], - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "email": "julian@juliangruber.com", - "name": "juliangruber" - }, - { - "email": "isaacs@npmjs.com", - "name": "isaacs" - } - ], - "name": "brace-expansion", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/brace-expansion.git" - }, - "scripts": { - "gentest": "bash test/generate.sh", - "test": "tape test/*.js" - }, - "testling": { - "browsers": [ - "ie/8..latest", - "firefox/20..latest", - "firefox/nightly", - "chrome/25..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ], - "files": "test/*.js" - }, - "version": "1.1.4" -} diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/concat-map/LICENSE b/UFTBuildTask/RunFromFileSystemTask/node_modules/concat-map/LICENSE deleted file mode 100644 index ee27ba4..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/concat-map/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -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. diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/concat-map/README.markdown b/UFTBuildTask/RunFromFileSystemTask/node_modules/concat-map/README.markdown deleted file mode 100644 index 408f70a..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/concat-map/README.markdown +++ /dev/null @@ -1,62 +0,0 @@ -concat-map -========== - -Concatenative mapdashery. - -[![browser support](http://ci.testling.com/substack/node-concat-map.png)](http://ci.testling.com/substack/node-concat-map) - -[![build status](https://secure.travis-ci.org/substack/node-concat-map.png)](http://travis-ci.org/substack/node-concat-map) - -example -======= - -``` js -var concatMap = require('concat-map'); -var xs = [ 1, 2, 3, 4, 5, 6 ]; -var ys = concatMap(xs, function (x) { - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; -}); -console.dir(ys); -``` - -*** - -``` -[ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ] -``` - -methods -======= - -``` js -var concatMap = require('concat-map') -``` - -concatMap(xs, fn) ------------------ - -Return an array of concatenated elements by calling `fn(x, i)` for each element -`x` and each index `i` in the array `xs`. - -When `fn(x, i)` returns an array, its result will be concatenated with the -result array. If `fn(x, i)` returns anything else, that value will be pushed -onto the end of the result array. - -install -======= - -With [npm](http://npmjs.org) do: - -``` -npm install concat-map -``` - -license -======= - -MIT - -notes -===== - -This module was written while sitting high above the ground in a tree. diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/concat-map/example/map.js b/UFTBuildTask/RunFromFileSystemTask/node_modules/concat-map/example/map.js deleted file mode 100644 index 3365621..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/concat-map/example/map.js +++ /dev/null @@ -1,6 +0,0 @@ -var concatMap = require('../'); -var xs = [ 1, 2, 3, 4, 5, 6 ]; -var ys = concatMap(xs, function (x) { - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; -}); -console.dir(ys); diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/concat-map/index.js b/UFTBuildTask/RunFromFileSystemTask/node_modules/concat-map/index.js deleted file mode 100644 index b29a781..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/concat-map/index.js +++ /dev/null @@ -1,13 +0,0 @@ -module.exports = function (xs, fn) { - var res = []; - for (var i = 0; i < xs.length; i++) { - var x = fn(xs[i], i); - if (isArray(x)) res.push.apply(res, x); - else res.push(x); - } - return res; -}; - -var isArray = Array.isArray || function (xs) { - return Object.prototype.toString.call(xs) === '[object Array]'; -}; diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/concat-map/package.json b/UFTBuildTask/RunFromFileSystemTask/node_modules/concat-map/package.json deleted file mode 100644 index 8a08242..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/concat-map/package.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "_args": [ - [ - "concat-map@0.0.1", - "C:\\Users\\vstsxplat\\Desktop\\vsts-agent\\_work\\3\\s\\_temp\\vsts-task-lib\\0.5.12\\node_modules\\brace-expansion" - ] - ], - "_from": "concat-map@0.0.1", - "_id": "concat-map@0.0.1", - "_inCache": true, - "_installable": true, - "_location": "/concat-map", - "_npmUser": { - "email": "mail@substack.net", - "name": "substack" - }, - "_npmVersion": "1.3.21", - "_phantomChildren": {}, - "_requested": { - "name": "concat-map", - "raw": "concat-map@0.0.1", - "rawSpec": "0.0.1", - "scope": null, - "spec": "0.0.1", - "type": "version" - }, - "_requiredBy": [ - "/brace-expansion" - ], - "_resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "_shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "_shrinkwrap": null, - "_spec": "concat-map@0.0.1", - "_where": "C:\\Users\\vstsxplat\\Desktop\\vsts-agent\\_work\\3\\s\\_temp\\vsts-task-lib\\0.5.12\\node_modules\\brace-expansion", - "author": { - "email": "mail@substack.net", - "name": "James Halliday", - "url": "http://substack.net" - }, - "bugs": { - "url": "https://github.com/substack/node-concat-map/issues" - }, - "dependencies": {}, - "description": "concatenative mapdashery", - "devDependencies": { - "tape": "~2.4.0" - }, - "directories": { - "example": "example", - "test": "test" - }, - "dist": { - "shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "tarball": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - }, - "homepage": "https://github.com/substack/node-concat-map", - "keywords": [ - "concat", - "concatMap", - "map", - "functional", - "higher-order" - ], - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "email": "mail@substack.net", - "name": "substack" - } - ], - "name": "concat-map", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/substack/node-concat-map.git" - }, - "scripts": { - "test": "tape test/*.js" - }, - "testling": { - "browsers": { - "chrome": [ - 10, - 22 - ], - "ff": [ - 3.5, - 10, - 15 - ], - "ie": [ - 6, - 7, - 8, - 9 - ], - "opera": [ - 12 - ], - "safari": [ - 5.1 - ] - }, - "files": "test/*.js" - }, - "version": "0.0.1" -} diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/concat-map/test/map.js b/UFTBuildTask/RunFromFileSystemTask/node_modules/concat-map/test/map.js deleted file mode 100644 index fdbd702..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/concat-map/test/map.js +++ /dev/null @@ -1,39 +0,0 @@ -var concatMap = require('../'); -var test = require('tape'); - -test('empty or not', function (t) { - var xs = [ 1, 2, 3, 4, 5, 6 ]; - var ixes = []; - var ys = concatMap(xs, function (x, ix) { - ixes.push(ix); - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; - }); - t.same(ys, [ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]); - t.same(ixes, [ 0, 1, 2, 3, 4, 5 ]); - t.end(); -}); - -test('always something', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function (x) { - return x === 'b' ? [ 'B', 'B', 'B' ] : [ x ]; - }); - t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); - t.end(); -}); - -test('scalars', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function (x) { - return x === 'b' ? [ 'B', 'B', 'B' ] : x; - }); - t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); - t.end(); -}); - -test('undefs', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function () {}); - t.same(ys, [ undefined, undefined, undefined, undefined ]); - t.end(); -}); diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/glob/LICENSE b/UFTBuildTask/RunFromFileSystemTask/node_modules/glob/LICENSE deleted file mode 100644 index 19129e3..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/glob/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -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. diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/glob/README.md b/UFTBuildTask/RunFromFileSystemTask/node_modules/glob/README.md deleted file mode 100644 index 6960483..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/glob/README.md +++ /dev/null @@ -1,359 +0,0 @@ -# Glob - -Match files using the patterns the shell uses, like stars and stuff. - -[![Build Status](https://travis-ci.org/isaacs/node-glob.svg?branch=master)](https://travis-ci.org/isaacs/node-glob/) [![Build Status](https://ci.appveyor.com/api/projects/status/kd7f3yftf7unxlsx?svg=true)](https://ci.appveyor.com/project/isaacs/node-glob) [![Coverage Status](https://coveralls.io/repos/isaacs/node-glob/badge.svg?branch=master&service=github)](https://coveralls.io/github/isaacs/node-glob?branch=master) - -This is a glob implementation in JavaScript. It uses the `minimatch` -library to do its matching. - -![](oh-my-glob.gif) - -## Usage - -```javascript -var glob = require("glob") - -// options is optional -glob("**/*.js", options, function (er, files) { - // files is an array of filenames. - // If the `nonull` option is set, and nothing - // was found, then files is ["**/*.js"] - // er is an error object or null. -}) -``` - -## Glob Primer - -"Globs" are the patterns you type when you do stuff like `ls *.js` on -the command line, or put `build/*` in a `.gitignore` file. - -Before parsing the path part patterns, braced sections are expanded -into a set. Braced sections start with `{` and end with `}`, with any -number of comma-delimited sections within. Braced sections may contain -slash characters, so `a{/b/c,bcd}` would expand into `a/b/c` and `abcd`. - -The following characters have special magic meaning when used in a -path portion: - -* `*` Matches 0 or more characters in a single path portion -* `?` Matches 1 character -* `[...]` Matches a range of characters, similar to a RegExp range. - If the first character of the range is `!` or `^` then it matches - any character not in the range. -* `!(pattern|pattern|pattern)` Matches anything that does not match - any of the patterns provided. -* `?(pattern|pattern|pattern)` Matches zero or one occurrence of the - patterns provided. -* `+(pattern|pattern|pattern)` Matches one or more occurrences of the - patterns provided. -* `*(a|b|c)` Matches zero or more occurrences of the patterns provided -* `@(pattern|pat*|pat?erN)` Matches exactly one of the patterns - provided -* `**` If a "globstar" is alone in a path portion, then it matches - zero or more directories and subdirectories searching for matches. - It does not crawl symlinked directories. - -### Dots - -If a file or directory path portion has a `.` as the first character, -then it will not match any glob pattern unless that pattern's -corresponding path part also has a `.` as its first character. - -For example, the pattern `a/.*/c` would match the file at `a/.b/c`. -However the pattern `a/*/c` would not, because `*` does not start with -a dot character. - -You can make glob treat dots as normal characters by setting -`dot:true` in the options. - -### Basename Matching - -If you set `matchBase:true` in the options, and the pattern has no -slashes in it, then it will seek for any file anywhere in the tree -with a matching basename. For example, `*.js` would match -`test/simple/basic.js`. - -### Empty Sets - -If no matching files are found, then an empty array is returned. This -differs from the shell, where the pattern itself is returned. For -example: - - $ echo a*s*d*f - a*s*d*f - -To get the bash-style behavior, set the `nonull:true` in the options. - -### See Also: - -* `man sh` -* `man bash` (Search for "Pattern Matching") -* `man 3 fnmatch` -* `man 5 gitignore` -* [minimatch documentation](https://github.com/isaacs/minimatch) - -## glob.hasMagic(pattern, [options]) - -Returns `true` if there are any special characters in the pattern, and -`false` otherwise. - -Note that the options affect the results. If `noext:true` is set in -the options object, then `+(a|b)` will not be considered a magic -pattern. If the pattern has a brace expansion, like `a/{b/c,x/y}` -then that is considered magical, unless `nobrace:true` is set in the -options. - -## glob(pattern, [options], cb) - -* `pattern` `{String}` Pattern to be matched -* `options` `{Object}` -* `cb` `{Function}` - * `err` `{Error | null}` - * `matches` `{Array}` filenames found matching the pattern - -Perform an asynchronous glob search. - -## glob.sync(pattern, [options]) - -* `pattern` `{String}` Pattern to be matched -* `options` `{Object}` -* return: `{Array}` filenames found matching the pattern - -Perform a synchronous glob search. - -## Class: glob.Glob - -Create a Glob object by instantiating the `glob.Glob` class. - -```javascript -var Glob = require("glob").Glob -var mg = new Glob(pattern, options, cb) -``` - -It's an EventEmitter, and starts walking the filesystem to find matches -immediately. - -### new glob.Glob(pattern, [options], [cb]) - -* `pattern` `{String}` pattern to search for -* `options` `{Object}` -* `cb` `{Function}` Called when an error occurs, or matches are found - * `err` `{Error | null}` - * `matches` `{Array}` filenames found matching the pattern - -Note that if the `sync` flag is set in the options, then matches will -be immediately available on the `g.found` member. - -### Properties - -* `minimatch` The minimatch object that the glob uses. -* `options` The options object passed in. -* `aborted` Boolean which is set to true when calling `abort()`. There - is no way at this time to continue a glob search after aborting, but - you can re-use the statCache to avoid having to duplicate syscalls. -* `cache` Convenience object. Each field has the following possible - values: - * `false` - Path does not exist - * `true` - Path exists - * `'FILE'` - Path exists, and is not a directory - * `'DIR'` - Path exists, and is a directory - * `[file, entries, ...]` - Path exists, is a directory, and the - array value is the results of `fs.readdir` -* `statCache` Cache of `fs.stat` results, to prevent statting the same - path multiple times. -* `symlinks` A record of which paths are symbolic links, which is - relevant in resolving `**` patterns. -* `realpathCache` An optional object which is passed to `fs.realpath` - to minimize unnecessary syscalls. It is stored on the instantiated - Glob object, and may be re-used. - -### Events - -* `end` When the matching is finished, this is emitted with all the - matches found. If the `nonull` option is set, and no match was found, - then the `matches` list contains the original pattern. The matches - are sorted, unless the `nosort` flag is set. -* `match` Every time a match is found, this is emitted with the specific - thing that matched. It is not deduplicated or resolved to a realpath. -* `error` Emitted when an unexpected error is encountered, or whenever - any fs error occurs if `options.strict` is set. -* `abort` When `abort()` is called, this event is raised. - -### Methods - -* `pause` Temporarily stop the search -* `resume` Resume the search -* `abort` Stop the search forever - -### Options - -All the options that can be passed to Minimatch can also be passed to -Glob to change pattern matching behavior. Also, some have been added, -or have glob-specific ramifications. - -All options are false by default, unless otherwise noted. - -All options are added to the Glob object, as well. - -If you are running many `glob` operations, you can pass a Glob object -as the `options` argument to a subsequent operation to shortcut some -`stat` and `readdir` calls. At the very least, you may pass in shared -`symlinks`, `statCache`, `realpathCache`, and `cache` options, so that -parallel glob operations will be sped up by sharing information about -the filesystem. - -* `cwd` The current working directory in which to search. Defaults - to `process.cwd()`. -* `root` The place where patterns starting with `/` will be mounted - onto. Defaults to `path.resolve(options.cwd, "/")` (`/` on Unix - systems, and `C:\` or some such on Windows.) -* `dot` Include `.dot` files in normal matches and `globstar` matches. - Note that an explicit dot in a portion of the pattern will always - match dot files. -* `nomount` By default, a pattern starting with a forward-slash will be - "mounted" onto the root setting, so that a valid filesystem path is - returned. Set this flag to disable that behavior. -* `mark` Add a `/` character to directory matches. Note that this - requires additional stat calls. -* `nosort` Don't sort the results. -* `stat` Set to true to stat *all* results. This reduces performance - somewhat, and is completely unnecessary, unless `readdir` is presumed - to be an untrustworthy indicator of file existence. -* `silent` When an unusual error is encountered when attempting to - read a directory, a warning will be printed to stderr. Set the - `silent` option to true to suppress these warnings. -* `strict` When an unusual error is encountered when attempting to - read a directory, the process will just continue on in search of - other matches. Set the `strict` option to raise an error in these - cases. -* `cache` See `cache` property above. Pass in a previously generated - cache object to save some fs calls. -* `statCache` A cache of results of filesystem information, to prevent - unnecessary stat calls. While it should not normally be necessary - to set this, you may pass the statCache from one glob() call to the - options object of another, if you know that the filesystem will not - change between calls. (See "Race Conditions" below.) -* `symlinks` A cache of known symbolic links. You may pass in a - previously generated `symlinks` object to save `lstat` calls when - resolving `**` matches. -* `sync` DEPRECATED: use `glob.sync(pattern, opts)` instead. -* `nounique` In some cases, brace-expanded patterns can result in the - same file showing up multiple times in the result set. By default, - this implementation prevents duplicates in the result set. Set this - flag to disable that behavior. -* `nonull` Set to never return an empty set, instead returning a set - containing the pattern itself. This is the default in glob(3). -* `debug` Set to enable debug logging in minimatch and glob. -* `nobrace` Do not expand `{a,b}` and `{1..3}` brace sets. -* `noglobstar` Do not match `**` against multiple filenames. (Ie, - treat it as a normal `*` instead.) -* `noext` Do not match `+(a|b)` "extglob" patterns. -* `nocase` Perform a case-insensitive match. Note: on - case-insensitive filesystems, non-magic patterns will match by - default, since `stat` and `readdir` will not raise errors. -* `matchBase` Perform a basename-only match if the pattern does not - contain any slash characters. That is, `*.js` would be treated as - equivalent to `**/*.js`, matching all js files in all directories. -* `nodir` Do not match directories, only files. (Note: to match - *only* directories, simply put a `/` at the end of the pattern.) -* `ignore` Add a pattern or an array of glob patterns to exclude matches. - Note: `ignore` patterns are *always* in `dot:true` mode, regardless - of any other settings. -* `follow` Follow symlinked directories when expanding `**` patterns. - Note that this can result in a lot of duplicate references in the - presence of cyclic links. -* `realpath` Set to true to call `fs.realpath` on all of the results. - In the case of a symlink that cannot be resolved, the full absolute - path to the matched entry is returned (though it will usually be a - broken symlink) - -## Comparisons to other fnmatch/glob implementations - -While strict compliance with the existing standards is a worthwhile -goal, some discrepancies exist between node-glob and other -implementations, and are intentional. - -The double-star character `**` is supported by default, unless the -`noglobstar` flag is set. This is supported in the manner of bsdglob -and bash 4.3, where `**` only has special significance if it is the only -thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but -`a/**b` will not. - -Note that symlinked directories are not crawled as part of a `**`, -though their contents may match against subsequent portions of the -pattern. This prevents infinite loops and duplicates and the like. - -If an escaped pattern has no matches, and the `nonull` flag is set, -then glob returns the pattern as-provided, rather than -interpreting the character escapes. For example, -`glob.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than -`"*a?"`. This is akin to setting the `nullglob` option in bash, except -that it does not resolve escaped pattern characters. - -If brace expansion is not disabled, then it is performed before any -other interpretation of the glob pattern. Thus, a pattern like -`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded -**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are -checked for validity. Since those two are valid, matching proceeds. - -### Comments and Negation - -Previously, this module let you mark a pattern as a "comment" if it -started with a `#` character, or a "negated" pattern if it started -with a `!` character. - -These options were deprecated in version 5, and removed in version 6. - -To specify things that should not match, use the `ignore` option. - -## Windows - -**Please only use forward-slashes in glob expressions.** - -Though windows uses either `/` or `\` as its path separator, only `/` -characters are used by this glob implementation. You must use -forward-slashes **only** in glob expressions. Back-slashes will always -be interpreted as escape characters, not path separators. - -Results from absolute patterns such as `/foo/*` are mounted onto the -root setting using `path.join`. On windows, this will by default result -in `/foo/*` matching `C:\foo\bar.txt`. - -## Race Conditions - -Glob searching, by its very nature, is susceptible to race conditions, -since it relies on directory walking and such. - -As a result, it is possible that a file that exists when glob looks for -it may have been deleted or modified by the time it returns the result. - -As part of its internal implementation, this program caches all stat -and readdir calls that it makes, in order to cut down on system -overhead. However, this also makes it even more susceptible to races, -especially if the cache or statCache objects are reused between glob -calls. - -Users are thus advised not to use a glob result as a guarantee of -filesystem state in the face of rapid changes. For the vast majority -of operations, this is never a problem. - -## Contributing - -Any change to behavior (including bugfixes) must come with a test. - -Patches that fail tests or reduce performance will be rejected. - -``` -# to run tests -npm test - -# to re-generate test fixtures -npm run test-regen - -# to benchmark against bash/zsh -npm run bench - -# to profile javascript -npm run prof -``` diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/glob/common.js b/UFTBuildTask/RunFromFileSystemTask/node_modules/glob/common.js deleted file mode 100644 index c9127eb..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/glob/common.js +++ /dev/null @@ -1,226 +0,0 @@ -exports.alphasort = alphasort -exports.alphasorti = alphasorti -exports.setopts = setopts -exports.ownProp = ownProp -exports.makeAbs = makeAbs -exports.finish = finish -exports.mark = mark -exports.isIgnored = isIgnored -exports.childrenIgnored = childrenIgnored - -function ownProp (obj, field) { - return Object.prototype.hasOwnProperty.call(obj, field) -} - -var path = require("path") -var minimatch = require("minimatch") -var isAbsolute = require("path-is-absolute") -var Minimatch = minimatch.Minimatch - -function alphasorti (a, b) { - return a.toLowerCase().localeCompare(b.toLowerCase()) -} - -function alphasort (a, b) { - return a.localeCompare(b) -} - -function setupIgnores (self, options) { - self.ignore = options.ignore || [] - - if (!Array.isArray(self.ignore)) - self.ignore = [self.ignore] - - if (self.ignore.length) { - self.ignore = self.ignore.map(ignoreMap) - } -} - -// ignore patterns are always in dot:true mode. -function ignoreMap (pattern) { - var gmatcher = null - if (pattern.slice(-3) === '/**') { - var gpattern = pattern.replace(/(\/\*\*)+$/, '') - gmatcher = new Minimatch(gpattern, { dot: true }) - } - - return { - matcher: new Minimatch(pattern, { dot: true }), - gmatcher: gmatcher - } -} - -function setopts (self, pattern, options) { - if (!options) - options = {} - - // base-matching: just use globstar for that. - if (options.matchBase && -1 === pattern.indexOf("/")) { - if (options.noglobstar) { - throw new Error("base matching requires globstar") - } - pattern = "**/" + pattern - } - - self.silent = !!options.silent - self.pattern = pattern - self.strict = options.strict !== false - self.realpath = !!options.realpath - self.realpathCache = options.realpathCache || Object.create(null) - self.follow = !!options.follow - self.dot = !!options.dot - self.mark = !!options.mark - self.nodir = !!options.nodir - if (self.nodir) - self.mark = true - self.sync = !!options.sync - self.nounique = !!options.nounique - self.nonull = !!options.nonull - self.nosort = !!options.nosort - self.nocase = !!options.nocase - self.stat = !!options.stat - self.noprocess = !!options.noprocess - - self.maxLength = options.maxLength || Infinity - self.cache = options.cache || Object.create(null) - self.statCache = options.statCache || Object.create(null) - self.symlinks = options.symlinks || Object.create(null) - - setupIgnores(self, options) - - self.changedCwd = false - var cwd = process.cwd() - if (!ownProp(options, "cwd")) - self.cwd = cwd - else { - self.cwd = options.cwd - self.changedCwd = path.resolve(options.cwd) !== cwd - } - - self.root = options.root || path.resolve(self.cwd, "/") - self.root = path.resolve(self.root) - if (process.platform === "win32") - self.root = self.root.replace(/\\/g, "/") - - self.nomount = !!options.nomount - - // disable comments and negation in Minimatch. - // Note that they are not supported in Glob itself anyway. - options.nonegate = true - options.nocomment = true - - self.minimatch = new Minimatch(pattern, options) - self.options = self.minimatch.options -} - -function finish (self) { - var nou = self.nounique - var all = nou ? [] : Object.create(null) - - for (var i = 0, l = self.matches.length; i < l; i ++) { - var matches = self.matches[i] - if (!matches || Object.keys(matches).length === 0) { - if (self.nonull) { - // do like the shell, and spit out the literal glob - var literal = self.minimatch.globSet[i] - if (nou) - all.push(literal) - else - all[literal] = true - } - } else { - // had matches - var m = Object.keys(matches) - if (nou) - all.push.apply(all, m) - else - m.forEach(function (m) { - all[m] = true - }) - } - } - - if (!nou) - all = Object.keys(all) - - if (!self.nosort) - all = all.sort(self.nocase ? alphasorti : alphasort) - - // at *some* point we statted all of these - if (self.mark) { - for (var i = 0; i < all.length; i++) { - all[i] = self._mark(all[i]) - } - if (self.nodir) { - all = all.filter(function (e) { - return !(/\/$/.test(e)) - }) - } - } - - if (self.ignore.length) - all = all.filter(function(m) { - return !isIgnored(self, m) - }) - - self.found = all -} - -function mark (self, p) { - var abs = makeAbs(self, p) - var c = self.cache[abs] - var m = p - if (c) { - var isDir = c === 'DIR' || Array.isArray(c) - var slash = p.slice(-1) === '/' - - if (isDir && !slash) - m += '/' - else if (!isDir && slash) - m = m.slice(0, -1) - - if (m !== p) { - var mabs = makeAbs(self, m) - self.statCache[mabs] = self.statCache[abs] - self.cache[mabs] = self.cache[abs] - } - } - - return m -} - -// lotta situps... -function makeAbs (self, f) { - var abs = f - if (f.charAt(0) === '/') { - abs = path.join(self.root, f) - } else if (isAbsolute(f) || f === '') { - abs = f - } else if (self.changedCwd) { - abs = path.resolve(self.cwd, f) - } else { - abs = path.resolve(f) - } - return abs -} - - -// Return true, if pattern ends with globstar '**', for the accompanying parent directory. -// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents -function isIgnored (self, path) { - if (!self.ignore.length) - return false - - return self.ignore.some(function(item) { - return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path)) - }) -} - -function childrenIgnored (self, path) { - if (!self.ignore.length) - return false - - return self.ignore.some(function(item) { - return !!(item.gmatcher && item.gmatcher.match(path)) - }) -} diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/glob/glob.js b/UFTBuildTask/RunFromFileSystemTask/node_modules/glob/glob.js deleted file mode 100644 index a62da27..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/glob/glob.js +++ /dev/null @@ -1,765 +0,0 @@ -// Approach: -// -// 1. Get the minimatch set -// 2. For each pattern in the set, PROCESS(pattern, false) -// 3. Store matches per-set, then uniq them -// -// PROCESS(pattern, inGlobStar) -// Get the first [n] items from pattern that are all strings -// Join these together. This is PREFIX. -// If there is no more remaining, then stat(PREFIX) and -// add to matches if it succeeds. END. -// -// If inGlobStar and PREFIX is symlink and points to dir -// set ENTRIES = [] -// else readdir(PREFIX) as ENTRIES -// If fail, END -// -// with ENTRIES -// If pattern[n] is GLOBSTAR -// // handle the case where the globstar match is empty -// // by pruning it out, and testing the resulting pattern -// PROCESS(pattern[0..n] + pattern[n+1 .. $], false) -// // handle other cases. -// for ENTRY in ENTRIES (not dotfiles) -// // attach globstar + tail onto the entry -// // Mark that this entry is a globstar match -// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true) -// -// else // not globstar -// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot) -// Test ENTRY against pattern[n] -// If fails, continue -// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $]) -// -// Caveat: -// Cache all stats and readdirs results to minimize syscall. Since all -// we ever care about is existence and directory-ness, we can just keep -// `true` for files, and [children,...] for directories, or `false` for -// things that don't exist. - -module.exports = glob - -var fs = require('fs') -var minimatch = require('minimatch') -var Minimatch = minimatch.Minimatch -var inherits = require('inherits') -var EE = require('events').EventEmitter -var path = require('path') -var assert = require('assert') -var isAbsolute = require('path-is-absolute') -var globSync = require('./sync.js') -var common = require('./common.js') -var alphasort = common.alphasort -var alphasorti = common.alphasorti -var setopts = common.setopts -var ownProp = common.ownProp -var inflight = require('inflight') -var util = require('util') -var childrenIgnored = common.childrenIgnored -var isIgnored = common.isIgnored - -var once = require('once') - -function glob (pattern, options, cb) { - if (typeof options === 'function') cb = options, options = {} - if (!options) options = {} - - if (options.sync) { - if (cb) - throw new TypeError('callback provided to sync glob') - return globSync(pattern, options) - } - - return new Glob(pattern, options, cb) -} - -glob.sync = globSync -var GlobSync = glob.GlobSync = globSync.GlobSync - -// old api surface -glob.glob = glob - -function extend (origin, add) { - if (add === null || typeof add !== 'object') { - return origin - } - - var keys = Object.keys(add) - var i = keys.length - while (i--) { - origin[keys[i]] = add[keys[i]] - } - return origin -} - -glob.hasMagic = function (pattern, options_) { - var options = extend({}, options_) - options.noprocess = true - - var g = new Glob(pattern, options) - var set = g.minimatch.set - if (set.length > 1) - return true - - for (var j = 0; j < set[0].length; j++) { - if (typeof set[0][j] !== 'string') - return true - } - - return false -} - -glob.Glob = Glob -inherits(Glob, EE) -function Glob (pattern, options, cb) { - if (typeof options === 'function') { - cb = options - options = null - } - - if (options && options.sync) { - if (cb) - throw new TypeError('callback provided to sync glob') - return new GlobSync(pattern, options) - } - - if (!(this instanceof Glob)) - return new Glob(pattern, options, cb) - - setopts(this, pattern, options) - this._didRealPath = false - - // process each pattern in the minimatch set - var n = this.minimatch.set.length - - // The matches are stored as {: true,...} so that - // duplicates are automagically pruned. - // Later, we do an Object.keys() on these. - // Keep them as a list so we can fill in when nonull is set. - this.matches = new Array(n) - - if (typeof cb === 'function') { - cb = once(cb) - this.on('error', cb) - this.on('end', function (matches) { - cb(null, matches) - }) - } - - var self = this - var n = this.minimatch.set.length - this._processing = 0 - this.matches = new Array(n) - - this._emitQueue = [] - this._processQueue = [] - this.paused = false - - if (this.noprocess) - return this - - if (n === 0) - return done() - - for (var i = 0; i < n; i ++) { - this._process(this.minimatch.set[i], i, false, done) - } - - function done () { - --self._processing - if (self._processing <= 0) - self._finish() - } -} - -Glob.prototype._finish = function () { - assert(this instanceof Glob) - if (this.aborted) - return - - if (this.realpath && !this._didRealpath) - return this._realpath() - - common.finish(this) - this.emit('end', this.found) -} - -Glob.prototype._realpath = function () { - if (this._didRealpath) - return - - this._didRealpath = true - - var n = this.matches.length - if (n === 0) - return this._finish() - - var self = this - for (var i = 0; i < this.matches.length; i++) - this._realpathSet(i, next) - - function next () { - if (--n === 0) - self._finish() - } -} - -Glob.prototype._realpathSet = function (index, cb) { - var matchset = this.matches[index] - if (!matchset) - return cb() - - var found = Object.keys(matchset) - var self = this - var n = found.length - - if (n === 0) - return cb() - - var set = this.matches[index] = Object.create(null) - found.forEach(function (p, i) { - // If there's a problem with the stat, then it means that - // one or more of the links in the realpath couldn't be - // resolved. just return the abs value in that case. - p = self._makeAbs(p) - fs.realpath(p, self.realpathCache, function (er, real) { - if (!er) - set[real] = true - else if (er.syscall === 'stat') - set[p] = true - else - self.emit('error', er) // srsly wtf right here - - if (--n === 0) { - self.matches[index] = set - cb() - } - }) - }) -} - -Glob.prototype._mark = function (p) { - return common.mark(this, p) -} - -Glob.prototype._makeAbs = function (f) { - return common.makeAbs(this, f) -} - -Glob.prototype.abort = function () { - this.aborted = true - this.emit('abort') -} - -Glob.prototype.pause = function () { - if (!this.paused) { - this.paused = true - this.emit('pause') - } -} - -Glob.prototype.resume = function () { - if (this.paused) { - this.emit('resume') - this.paused = false - if (this._emitQueue.length) { - var eq = this._emitQueue.slice(0) - this._emitQueue.length = 0 - for (var i = 0; i < eq.length; i ++) { - var e = eq[i] - this._emitMatch(e[0], e[1]) - } - } - if (this._processQueue.length) { - var pq = this._processQueue.slice(0) - this._processQueue.length = 0 - for (var i = 0; i < pq.length; i ++) { - var p = pq[i] - this._processing-- - this._process(p[0], p[1], p[2], p[3]) - } - } - } -} - -Glob.prototype._process = function (pattern, index, inGlobStar, cb) { - assert(this instanceof Glob) - assert(typeof cb === 'function') - - if (this.aborted) - return - - this._processing++ - if (this.paused) { - this._processQueue.push([pattern, index, inGlobStar, cb]) - return - } - - //console.error('PROCESS %d', this._processing, pattern) - - // Get the first [n] parts of pattern that are all strings. - var n = 0 - while (typeof pattern[n] === 'string') { - n ++ - } - // now n is the index of the first one that is *not* a string. - - // see if there's anything else - var prefix - switch (n) { - // if not, then this is rather simple - case pattern.length: - this._processSimple(pattern.join('/'), index, cb) - return - - case 0: - // pattern *starts* with some non-trivial item. - // going to readdir(cwd), but not include the prefix in matches. - prefix = null - break - - default: - // pattern has some string bits in the front. - // whatever it starts with, whether that's 'absolute' like /foo/bar, - // or 'relative' like '../baz' - prefix = pattern.slice(0, n).join('/') - break - } - - var remain = pattern.slice(n) - - // get the list of entries. - var read - if (prefix === null) - read = '.' - else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { - if (!prefix || !isAbsolute(prefix)) - prefix = '/' + prefix - read = prefix - } else - read = prefix - - var abs = this._makeAbs(read) - - //if ignored, skip _processing - if (childrenIgnored(this, read)) - return cb() - - var isGlobStar = remain[0] === minimatch.GLOBSTAR - if (isGlobStar) - this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb) - else - this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb) -} - -Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) { - var self = this - this._readdir(abs, inGlobStar, function (er, entries) { - return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb) - }) -} - -Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { - - // if the abs isn't a dir, then nothing can match! - if (!entries) - return cb() - - // It will only match dot entries if it starts with a dot, or if - // dot is set. Stuff like @(.foo|.bar) isn't allowed. - var pn = remain[0] - var negate = !!this.minimatch.negate - var rawGlob = pn._glob - var dotOk = this.dot || rawGlob.charAt(0) === '.' - - var matchedEntries = [] - for (var i = 0; i < entries.length; i++) { - var e = entries[i] - if (e.charAt(0) !== '.' || dotOk) { - var m - if (negate && !prefix) { - m = !e.match(pn) - } else { - m = e.match(pn) - } - if (m) - matchedEntries.push(e) - } - } - - //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries) - - var len = matchedEntries.length - // If there are no matched entries, then nothing matches. - if (len === 0) - return cb() - - // if this is the last remaining pattern bit, then no need for - // an additional stat *unless* the user has specified mark or - // stat explicitly. We know they exist, since readdir returned - // them. - - if (remain.length === 1 && !this.mark && !this.stat) { - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - if (prefix) { - if (prefix !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - - if (e.charAt(0) === '/' && !this.nomount) { - e = path.join(this.root, e) - } - this._emitMatch(index, e) - } - // This was the last one, and no stats were needed - return cb() - } - - // now test all matched entries as stand-ins for that part - // of the pattern. - remain.shift() - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - var newPattern - if (prefix) { - if (prefix !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - this._process([e].concat(remain), index, inGlobStar, cb) - } - cb() -} - -Glob.prototype._emitMatch = function (index, e) { - if (this.aborted) - return - - if (this.matches[index][e]) - return - - if (isIgnored(this, e)) - return - - if (this.paused) { - this._emitQueue.push([index, e]) - return - } - - var abs = this._makeAbs(e) - - if (this.nodir) { - var c = this.cache[abs] - if (c === 'DIR' || Array.isArray(c)) - return - } - - if (this.mark) - e = this._mark(e) - - this.matches[index][e] = true - - var st = this.statCache[abs] - if (st) - this.emit('stat', e, st) - - this.emit('match', e) -} - -Glob.prototype._readdirInGlobStar = function (abs, cb) { - if (this.aborted) - return - - // follow all symlinked directories forever - // just proceed as if this is a non-globstar situation - if (this.follow) - return this._readdir(abs, false, cb) - - var lstatkey = 'lstat\0' + abs - var self = this - var lstatcb = inflight(lstatkey, lstatcb_) - - if (lstatcb) - fs.lstat(abs, lstatcb) - - function lstatcb_ (er, lstat) { - if (er) - return cb() - - var isSym = lstat.isSymbolicLink() - self.symlinks[abs] = isSym - - // If it's not a symlink or a dir, then it's definitely a regular file. - // don't bother doing a readdir in that case. - if (!isSym && !lstat.isDirectory()) { - self.cache[abs] = 'FILE' - cb() - } else - self._readdir(abs, false, cb) - } -} - -Glob.prototype._readdir = function (abs, inGlobStar, cb) { - if (this.aborted) - return - - cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb) - if (!cb) - return - - //console.error('RD %j %j', +inGlobStar, abs) - if (inGlobStar && !ownProp(this.symlinks, abs)) - return this._readdirInGlobStar(abs, cb) - - if (ownProp(this.cache, abs)) { - var c = this.cache[abs] - if (!c || c === 'FILE') - return cb() - - if (Array.isArray(c)) - return cb(null, c) - } - - var self = this - fs.readdir(abs, readdirCb(this, abs, cb)) -} - -function readdirCb (self, abs, cb) { - return function (er, entries) { - if (er) - self._readdirError(abs, er, cb) - else - self._readdirEntries(abs, entries, cb) - } -} - -Glob.prototype._readdirEntries = function (abs, entries, cb) { - if (this.aborted) - return - - // if we haven't asked to stat everything, then just - // assume that everything in there exists, so we can avoid - // having to stat it a second time. - if (!this.mark && !this.stat) { - for (var i = 0; i < entries.length; i ++) { - var e = entries[i] - if (abs === '/') - e = abs + e - else - e = abs + '/' + e - this.cache[e] = true - } - } - - this.cache[abs] = entries - return cb(null, entries) -} - -Glob.prototype._readdirError = function (f, er, cb) { - if (this.aborted) - return - - // handle errors, and cache the information - switch (er.code) { - case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 - case 'ENOTDIR': // totally normal. means it *does* exist. - this.cache[this._makeAbs(f)] = 'FILE' - break - - case 'ENOENT': // not terribly unusual - case 'ELOOP': - case 'ENAMETOOLONG': - case 'UNKNOWN': - this.cache[this._makeAbs(f)] = false - break - - default: // some unusual error. Treat as failure. - this.cache[this._makeAbs(f)] = false - if (this.strict) { - this.emit('error', er) - // If the error is handled, then we abort - // if not, we threw out of here - this.abort() - } - if (!this.silent) - console.error('glob error', er) - break - } - - return cb() -} - -Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) { - var self = this - this._readdir(abs, inGlobStar, function (er, entries) { - self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb) - }) -} - - -Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { - //console.error('pgs2', prefix, remain[0], entries) - - // no entries means not a dir, so it can never have matches - // foo.txt/** doesn't match foo.txt - if (!entries) - return cb() - - // test without the globstar, and with every child both below - // and replacing the globstar. - var remainWithoutGlobStar = remain.slice(1) - var gspref = prefix ? [ prefix ] : [] - var noGlobStar = gspref.concat(remainWithoutGlobStar) - - // the noGlobStar pattern exits the inGlobStar state - this._process(noGlobStar, index, false, cb) - - var isSym = this.symlinks[abs] - var len = entries.length - - // If it's a symlink, and we're in a globstar, then stop - if (isSym && inGlobStar) - return cb() - - for (var i = 0; i < len; i++) { - var e = entries[i] - if (e.charAt(0) === '.' && !this.dot) - continue - - // these two cases enter the inGlobStar state - var instead = gspref.concat(entries[i], remainWithoutGlobStar) - this._process(instead, index, true, cb) - - var below = gspref.concat(entries[i], remain) - this._process(below, index, true, cb) - } - - cb() -} - -Glob.prototype._processSimple = function (prefix, index, cb) { - // XXX review this. Shouldn't it be doing the mounting etc - // before doing stat? kinda weird? - var self = this - this._stat(prefix, function (er, exists) { - self._processSimple2(prefix, index, er, exists, cb) - }) -} -Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) { - - //console.error('ps2', prefix, exists) - - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - // If it doesn't exist, then just mark the lack of results - if (!exists) - return cb() - - if (prefix && isAbsolute(prefix) && !this.nomount) { - var trail = /[\/\\]$/.test(prefix) - if (prefix.charAt(0) === '/') { - prefix = path.join(this.root, prefix) - } else { - prefix = path.resolve(this.root, prefix) - if (trail) - prefix += '/' - } - } - - if (process.platform === 'win32') - prefix = prefix.replace(/\\/g, '/') - - // Mark this as a match - this._emitMatch(index, prefix) - cb() -} - -// Returns either 'DIR', 'FILE', or false -Glob.prototype._stat = function (f, cb) { - var abs = this._makeAbs(f) - var needDir = f.slice(-1) === '/' - - if (f.length > this.maxLength) - return cb() - - if (!this.stat && ownProp(this.cache, abs)) { - var c = this.cache[abs] - - if (Array.isArray(c)) - c = 'DIR' - - // It exists, but maybe not how we need it - if (!needDir || c === 'DIR') - return cb(null, c) - - if (needDir && c === 'FILE') - return cb() - - // otherwise we have to stat, because maybe c=true - // if we know it exists, but not what it is. - } - - var exists - var stat = this.statCache[abs] - if (stat !== undefined) { - if (stat === false) - return cb(null, stat) - else { - var type = stat.isDirectory() ? 'DIR' : 'FILE' - if (needDir && type === 'FILE') - return cb() - else - return cb(null, type, stat) - } - } - - var self = this - var statcb = inflight('stat\0' + abs, lstatcb_) - if (statcb) - fs.lstat(abs, statcb) - - function lstatcb_ (er, lstat) { - if (lstat && lstat.isSymbolicLink()) { - // If it's a symlink, then treat it as the target, unless - // the target does not exist, then treat it as a file. - return fs.stat(abs, function (er, stat) { - if (er) - self._stat2(f, abs, null, lstat, cb) - else - self._stat2(f, abs, er, stat, cb) - }) - } else { - self._stat2(f, abs, er, lstat, cb) - } - } -} - -Glob.prototype._stat2 = function (f, abs, er, stat, cb) { - if (er) { - this.statCache[abs] = false - return cb() - } - - var needDir = f.slice(-1) === '/' - this.statCache[abs] = stat - - if (abs.slice(-1) === '/' && !stat.isDirectory()) - return cb(null, false, stat) - - var c = stat.isDirectory() ? 'DIR' : 'FILE' - this.cache[abs] = this.cache[abs] || c - - if (needDir && c !== 'DIR') - return cb() - - return cb(null, c, stat) -} diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/glob/package.json b/UFTBuildTask/RunFromFileSystemTask/node_modules/glob/package.json deleted file mode 100644 index de25e6b..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/glob/package.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "_args": [ - [ - "glob@^6.0.1", - "C:\\Users\\vstsxplat\\Desktop\\vsts-agent\\_work\\3\\s\\_temp\\vsts-task-lib\\0.5.12\\node_modules\\vsts-task-lib" - ] - ], - "_from": "glob@>=6.0.1 <7.0.0", - "_id": "glob@6.0.4", - "_inCache": true, - "_installable": true, - "_location": "/glob", - "_nodeVersion": "4.0.0", - "_npmUser": { - "email": "i@izs.me", - "name": "isaacs" - }, - "_npmVersion": "2.14.15", - "_phantomChildren": {}, - "_requested": { - "name": "glob", - "raw": "glob@^6.0.1", - "rawSpec": "^6.0.1", - "scope": null, - "spec": ">=6.0.1 <7.0.0", - "type": "range" - }, - "_requiredBy": [ - "/vsts-task-lib" - ], - "_resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "_shasum": "0f08860f6a155127b2fadd4f9ce24b1aab6e4d22", - "_shrinkwrap": null, - "_spec": "glob@^6.0.1", - "_where": "C:\\Users\\vstsxplat\\Desktop\\vsts-agent\\_work\\3\\s\\_temp\\vsts-task-lib\\0.5.12\\node_modules\\vsts-task-lib", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/isaacs/node-glob/issues" - }, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "description": "a little globber", - "devDependencies": { - "mkdirp": "0", - "rimraf": "^2.2.8", - "tap": "^5.0.0", - "tick": "0.0.6" - }, - "directories": {}, - "dist": { - "shasum": "0f08860f6a155127b2fadd4f9ce24b1aab6e4d22", - "tarball": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz" - }, - "engines": { - "node": "*" - }, - "files": [ - "glob.js", - "sync.js", - "common.js" - ], - "gitHead": "3bd419c538737e56fda7e21c21ff52ca0c198df6", - "homepage": "https://github.com/isaacs/node-glob#readme", - "license": "ISC", - "main": "glob.js", - "maintainers": [ - { - "email": "i@izs.me", - "name": "isaacs" - } - ], - "name": "glob", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-glob.git" - }, - "scripts": { - "bench": "bash benchmark.sh", - "benchclean": "node benchclean.js", - "prepublish": "npm run benchclean", - "prof": "bash prof.sh && cat profile.txt", - "profclean": "rm -f v8.log profile.txt", - "test": "tap test/*.js --cov", - "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js" - }, - "version": "6.0.4" -} diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/glob/sync.js b/UFTBuildTask/RunFromFileSystemTask/node_modules/glob/sync.js deleted file mode 100644 index 09883d2..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/glob/sync.js +++ /dev/null @@ -1,460 +0,0 @@ -module.exports = globSync -globSync.GlobSync = GlobSync - -var fs = require('fs') -var minimatch = require('minimatch') -var Minimatch = minimatch.Minimatch -var Glob = require('./glob.js').Glob -var util = require('util') -var path = require('path') -var assert = require('assert') -var isAbsolute = require('path-is-absolute') -var common = require('./common.js') -var alphasort = common.alphasort -var alphasorti = common.alphasorti -var setopts = common.setopts -var ownProp = common.ownProp -var childrenIgnored = common.childrenIgnored - -function globSync (pattern, options) { - if (typeof options === 'function' || arguments.length === 3) - throw new TypeError('callback provided to sync glob\n'+ - 'See: https://github.com/isaacs/node-glob/issues/167') - - return new GlobSync(pattern, options).found -} - -function GlobSync (pattern, options) { - if (!pattern) - throw new Error('must provide pattern') - - if (typeof options === 'function' || arguments.length === 3) - throw new TypeError('callback provided to sync glob\n'+ - 'See: https://github.com/isaacs/node-glob/issues/167') - - if (!(this instanceof GlobSync)) - return new GlobSync(pattern, options) - - setopts(this, pattern, options) - - if (this.noprocess) - return this - - var n = this.minimatch.set.length - this.matches = new Array(n) - for (var i = 0; i < n; i ++) { - this._process(this.minimatch.set[i], i, false) - } - this._finish() -} - -GlobSync.prototype._finish = function () { - assert(this instanceof GlobSync) - if (this.realpath) { - var self = this - this.matches.forEach(function (matchset, index) { - var set = self.matches[index] = Object.create(null) - for (var p in matchset) { - try { - p = self._makeAbs(p) - var real = fs.realpathSync(p, self.realpathCache) - set[real] = true - } catch (er) { - if (er.syscall === 'stat') - set[self._makeAbs(p)] = true - else - throw er - } - } - }) - } - common.finish(this) -} - - -GlobSync.prototype._process = function (pattern, index, inGlobStar) { - assert(this instanceof GlobSync) - - // Get the first [n] parts of pattern that are all strings. - var n = 0 - while (typeof pattern[n] === 'string') { - n ++ - } - // now n is the index of the first one that is *not* a string. - - // See if there's anything else - var prefix - switch (n) { - // if not, then this is rather simple - case pattern.length: - this._processSimple(pattern.join('/'), index) - return - - case 0: - // pattern *starts* with some non-trivial item. - // going to readdir(cwd), but not include the prefix in matches. - prefix = null - break - - default: - // pattern has some string bits in the front. - // whatever it starts with, whether that's 'absolute' like /foo/bar, - // or 'relative' like '../baz' - prefix = pattern.slice(0, n).join('/') - break - } - - var remain = pattern.slice(n) - - // get the list of entries. - var read - if (prefix === null) - read = '.' - else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { - if (!prefix || !isAbsolute(prefix)) - prefix = '/' + prefix - read = prefix - } else - read = prefix - - var abs = this._makeAbs(read) - - //if ignored, skip processing - if (childrenIgnored(this, read)) - return - - var isGlobStar = remain[0] === minimatch.GLOBSTAR - if (isGlobStar) - this._processGlobStar(prefix, read, abs, remain, index, inGlobStar) - else - this._processReaddir(prefix, read, abs, remain, index, inGlobStar) -} - - -GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) { - var entries = this._readdir(abs, inGlobStar) - - // if the abs isn't a dir, then nothing can match! - if (!entries) - return - - // It will only match dot entries if it starts with a dot, or if - // dot is set. Stuff like @(.foo|.bar) isn't allowed. - var pn = remain[0] - var negate = !!this.minimatch.negate - var rawGlob = pn._glob - var dotOk = this.dot || rawGlob.charAt(0) === '.' - - var matchedEntries = [] - for (var i = 0; i < entries.length; i++) { - var e = entries[i] - if (e.charAt(0) !== '.' || dotOk) { - var m - if (negate && !prefix) { - m = !e.match(pn) - } else { - m = e.match(pn) - } - if (m) - matchedEntries.push(e) - } - } - - var len = matchedEntries.length - // If there are no matched entries, then nothing matches. - if (len === 0) - return - - // if this is the last remaining pattern bit, then no need for - // an additional stat *unless* the user has specified mark or - // stat explicitly. We know they exist, since readdir returned - // them. - - if (remain.length === 1 && !this.mark && !this.stat) { - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - if (prefix) { - if (prefix.slice(-1) !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - - if (e.charAt(0) === '/' && !this.nomount) { - e = path.join(this.root, e) - } - this.matches[index][e] = true - } - // This was the last one, and no stats were needed - return - } - - // now test all matched entries as stand-ins for that part - // of the pattern. - remain.shift() - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - var newPattern - if (prefix) - newPattern = [prefix, e] - else - newPattern = [e] - this._process(newPattern.concat(remain), index, inGlobStar) - } -} - - -GlobSync.prototype._emitMatch = function (index, e) { - var abs = this._makeAbs(e) - if (this.mark) - e = this._mark(e) - - if (this.matches[index][e]) - return - - if (this.nodir) { - var c = this.cache[this._makeAbs(e)] - if (c === 'DIR' || Array.isArray(c)) - return - } - - this.matches[index][e] = true - if (this.stat) - this._stat(e) -} - - -GlobSync.prototype._readdirInGlobStar = function (abs) { - // follow all symlinked directories forever - // just proceed as if this is a non-globstar situation - if (this.follow) - return this._readdir(abs, false) - - var entries - var lstat - var stat - try { - lstat = fs.lstatSync(abs) - } catch (er) { - // lstat failed, doesn't exist - return null - } - - var isSym = lstat.isSymbolicLink() - this.symlinks[abs] = isSym - - // If it's not a symlink or a dir, then it's definitely a regular file. - // don't bother doing a readdir in that case. - if (!isSym && !lstat.isDirectory()) - this.cache[abs] = 'FILE' - else - entries = this._readdir(abs, false) - - return entries -} - -GlobSync.prototype._readdir = function (abs, inGlobStar) { - var entries - - if (inGlobStar && !ownProp(this.symlinks, abs)) - return this._readdirInGlobStar(abs) - - if (ownProp(this.cache, abs)) { - var c = this.cache[abs] - if (!c || c === 'FILE') - return null - - if (Array.isArray(c)) - return c - } - - try { - return this._readdirEntries(abs, fs.readdirSync(abs)) - } catch (er) { - this._readdirError(abs, er) - return null - } -} - -GlobSync.prototype._readdirEntries = function (abs, entries) { - // if we haven't asked to stat everything, then just - // assume that everything in there exists, so we can avoid - // having to stat it a second time. - if (!this.mark && !this.stat) { - for (var i = 0; i < entries.length; i ++) { - var e = entries[i] - if (abs === '/') - e = abs + e - else - e = abs + '/' + e - this.cache[e] = true - } - } - - this.cache[abs] = entries - - // mark and cache dir-ness - return entries -} - -GlobSync.prototype._readdirError = function (f, er) { - // handle errors, and cache the information - switch (er.code) { - case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 - case 'ENOTDIR': // totally normal. means it *does* exist. - this.cache[this._makeAbs(f)] = 'FILE' - break - - case 'ENOENT': // not terribly unusual - case 'ELOOP': - case 'ENAMETOOLONG': - case 'UNKNOWN': - this.cache[this._makeAbs(f)] = false - break - - default: // some unusual error. Treat as failure. - this.cache[this._makeAbs(f)] = false - if (this.strict) - throw er - if (!this.silent) - console.error('glob error', er) - break - } -} - -GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) { - - var entries = this._readdir(abs, inGlobStar) - - // no entries means not a dir, so it can never have matches - // foo.txt/** doesn't match foo.txt - if (!entries) - return - - // test without the globstar, and with every child both below - // and replacing the globstar. - var remainWithoutGlobStar = remain.slice(1) - var gspref = prefix ? [ prefix ] : [] - var noGlobStar = gspref.concat(remainWithoutGlobStar) - - // the noGlobStar pattern exits the inGlobStar state - this._process(noGlobStar, index, false) - - var len = entries.length - var isSym = this.symlinks[abs] - - // If it's a symlink, and we're in a globstar, then stop - if (isSym && inGlobStar) - return - - for (var i = 0; i < len; i++) { - var e = entries[i] - if (e.charAt(0) === '.' && !this.dot) - continue - - // these two cases enter the inGlobStar state - var instead = gspref.concat(entries[i], remainWithoutGlobStar) - this._process(instead, index, true) - - var below = gspref.concat(entries[i], remain) - this._process(below, index, true) - } -} - -GlobSync.prototype._processSimple = function (prefix, index) { - // XXX review this. Shouldn't it be doing the mounting etc - // before doing stat? kinda weird? - var exists = this._stat(prefix) - - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - // If it doesn't exist, then just mark the lack of results - if (!exists) - return - - if (prefix && isAbsolute(prefix) && !this.nomount) { - var trail = /[\/\\]$/.test(prefix) - if (prefix.charAt(0) === '/') { - prefix = path.join(this.root, prefix) - } else { - prefix = path.resolve(this.root, prefix) - if (trail) - prefix += '/' - } - } - - if (process.platform === 'win32') - prefix = prefix.replace(/\\/g, '/') - - // Mark this as a match - this.matches[index][prefix] = true -} - -// Returns either 'DIR', 'FILE', or false -GlobSync.prototype._stat = function (f) { - var abs = this._makeAbs(f) - var needDir = f.slice(-1) === '/' - - if (f.length > this.maxLength) - return false - - if (!this.stat && ownProp(this.cache, abs)) { - var c = this.cache[abs] - - if (Array.isArray(c)) - c = 'DIR' - - // It exists, but maybe not how we need it - if (!needDir || c === 'DIR') - return c - - if (needDir && c === 'FILE') - return false - - // otherwise we have to stat, because maybe c=true - // if we know it exists, but not what it is. - } - - var exists - var stat = this.statCache[abs] - if (!stat) { - var lstat - try { - lstat = fs.lstatSync(abs) - } catch (er) { - return false - } - - if (lstat.isSymbolicLink()) { - try { - stat = fs.statSync(abs) - } catch (er) { - stat = lstat - } - } else { - stat = lstat - } - } - - this.statCache[abs] = stat - - var c = stat.isDirectory() ? 'DIR' : 'FILE' - this.cache[abs] = this.cache[abs] || c - - if (needDir && c !== 'DIR') - return false - - return c -} - -GlobSync.prototype._mark = function (p) { - return common.mark(this, p) -} - -GlobSync.prototype._makeAbs = function (f) { - return common.makeAbs(this, f) -} diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/inflight/LICENSE b/UFTBuildTask/RunFromFileSystemTask/node_modules/inflight/LICENSE deleted file mode 100644 index 05eeeb8..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/inflight/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -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. diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/inflight/README.md b/UFTBuildTask/RunFromFileSystemTask/node_modules/inflight/README.md deleted file mode 100644 index 6dc8929..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/inflight/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# inflight - -Add callbacks to requests in flight to avoid async duplication - -## USAGE - -```javascript -var inflight = require('inflight') - -// some request that does some stuff -function req(key, callback) { - // key is any random string. like a url or filename or whatever. - // - // will return either a falsey value, indicating that the - // request for this key is already in flight, or a new callback - // which when called will call all callbacks passed to inflightk - // with the same key - callback = inflight(key, callback) - - // If we got a falsey value back, then there's already a req going - if (!callback) return - - // this is where you'd fetch the url or whatever - // callback is also once()-ified, so it can safely be assigned - // to multiple events etc. First call wins. - setTimeout(function() { - callback(null, key) - }, 100) -} - -// only assigns a single setTimeout -// when it dings, all cbs get called -req('foo', cb1) -req('foo', cb2) -req('foo', cb3) -req('foo', cb4) -``` diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/inflight/inflight.js b/UFTBuildTask/RunFromFileSystemTask/node_modules/inflight/inflight.js deleted file mode 100644 index 8bc96cb..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/inflight/inflight.js +++ /dev/null @@ -1,44 +0,0 @@ -var wrappy = require('wrappy') -var reqs = Object.create(null) -var once = require('once') - -module.exports = wrappy(inflight) - -function inflight (key, cb) { - if (reqs[key]) { - reqs[key].push(cb) - return null - } else { - reqs[key] = [cb] - return makeres(key) - } -} - -function makeres (key) { - return once(function RES () { - var cbs = reqs[key] - var len = cbs.length - var args = slice(arguments) - for (var i = 0; i < len; i++) { - cbs[i].apply(null, args) - } - if (cbs.length > len) { - // added more in the interim. - // de-zalgo, just in case, but don't call again. - cbs.splice(0, len) - process.nextTick(function () { - RES.apply(null, args) - }) - } else { - delete reqs[key] - } - }) -} - -function slice (args) { - var length = args.length - var array = [] - - for (var i = 0; i < length; i++) array[i] = args[i] - return array -} diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/inflight/package.json b/UFTBuildTask/RunFromFileSystemTask/node_modules/inflight/package.json deleted file mode 100644 index 35e8db8..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/inflight/package.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "_args": [ - [ - "inflight@^1.0.4", - "C:\\Users\\vstsxplat\\Desktop\\vsts-agent\\_work\\3\\s\\_temp\\vsts-task-lib\\0.5.12\\node_modules\\glob" - ] - ], - "_from": "inflight@>=1.0.4 <2.0.0", - "_id": "inflight@1.0.5", - "_inCache": true, - "_installable": true, - "_location": "/inflight", - "_nodeVersion": "5.10.1", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/inflight-1.0.5.tgz_1463529611443_0.00041943578980863094" - }, - "_npmUser": { - "email": "kat@sykosomatic.org", - "name": "zkat" - }, - "_npmVersion": "3.9.1", - "_phantomChildren": {}, - "_requested": { - "name": "inflight", - "raw": "inflight@^1.0.4", - "rawSpec": "^1.0.4", - "scope": null, - "spec": ">=1.0.4 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/glob" - ], - "_resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.5.tgz", - "_shasum": "db3204cd5a9de2e6cd890b85c6e2f66bcf4f620a", - "_shrinkwrap": null, - "_spec": "inflight@^1.0.4", - "_where": "C:\\Users\\vstsxplat\\Desktop\\vsts-agent\\_work\\3\\s\\_temp\\vsts-task-lib\\0.5.12\\node_modules\\glob", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/isaacs/inflight/issues" - }, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - }, - "description": "Add callbacks to requests in flight to avoid async duplication", - "devDependencies": { - "tap": "^1.2.0" - }, - "directories": {}, - "dist": { - "shasum": "db3204cd5a9de2e6cd890b85c6e2f66bcf4f620a", - "tarball": "https://registry.npmjs.org/inflight/-/inflight-1.0.5.tgz" - }, - "files": [ - "inflight.js" - ], - "gitHead": "559e37b4f6327fca797fe8d7fe8ed6d9cae08821", - "homepage": "https://github.com/isaacs/inflight", - "license": "ISC", - "main": "inflight.js", - "maintainers": [ - { - "email": "me@re-becca.org", - "name": "iarna" - }, - { - "email": "i@izs.me", - "name": "isaacs" - }, - { - "email": "ogd@aoaioxxysz.net", - "name": "othiym23" - }, - { - "email": "kat@sykosomatic.org", - "name": "zkat" - } - ], - "name": "inflight", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/inflight.git" - }, - "scripts": { - "test": "tap test.js" - }, - "version": "1.0.5" -} diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/inherits/LICENSE b/UFTBuildTask/RunFromFileSystemTask/node_modules/inherits/LICENSE deleted file mode 100644 index dea3013..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/inherits/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -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. - diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/inherits/README.md b/UFTBuildTask/RunFromFileSystemTask/node_modules/inherits/README.md deleted file mode 100644 index b1c5665..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/inherits/README.md +++ /dev/null @@ -1,42 +0,0 @@ -Browser-friendly inheritance fully compatible with standard node.js -[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor). - -This package exports standard `inherits` from node.js `util` module in -node environment, but also provides alternative browser-friendly -implementation through [browser -field](https://gist.github.com/shtylman/4339901). Alternative -implementation is a literal copy of standard one located in standalone -module to avoid requiring of `util`. It also has a shim for old -browsers with no `Object.create` support. - -While keeping you sure you are using standard `inherits` -implementation in node.js environment, it allows bundlers such as -[browserify](https://github.com/substack/node-browserify) to not -include full `util` package to your client code if all you need is -just `inherits` function. It worth, because browser shim for `util` -package is large and `inherits` is often the single function you need -from it. - -It's recommended to use this package instead of -`require('util').inherits` for any code that has chances to be used -not only in node.js but in browser too. - -## usage - -```js -var inherits = require('inherits'); -// then use exactly as the standard one -``` - -## note on version ~1.0 - -Version ~1.0 had completely different motivation and is not compatible -neither with 2.0 nor with standard node.js `inherits`. - -If you are using version ~1.0 and planning to switch to ~2.0, be -careful: - -* new version uses `super_` instead of `super` for referencing - superclass -* new version overwrites current prototype while old one preserves any - existing fields on it diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/inherits/inherits.js b/UFTBuildTask/RunFromFileSystemTask/node_modules/inherits/inherits.js deleted file mode 100644 index 29f5e24..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/inherits/inherits.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('util').inherits diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/inherits/inherits_browser.js b/UFTBuildTask/RunFromFileSystemTask/node_modules/inherits/inherits_browser.js deleted file mode 100644 index c1e78a7..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/inherits/inherits_browser.js +++ /dev/null @@ -1,23 +0,0 @@ -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } -} diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/inherits/package.json b/UFTBuildTask/RunFromFileSystemTask/node_modules/inherits/package.json deleted file mode 100644 index cb38c8c..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/inherits/package.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "_args": [ - [ - "inherits@2", - "C:\\Users\\vstsxplat\\Desktop\\vsts-agent\\_work\\3\\s\\_temp\\vsts-task-lib\\0.5.12\\node_modules\\glob" - ] - ], - "_from": "inherits@>=2.0.0 <3.0.0", - "_id": "inherits@2.0.1", - "_inCache": true, - "_installable": true, - "_location": "/inherits", - "_npmUser": { - "email": "i@izs.me", - "name": "isaacs" - }, - "_npmVersion": "1.3.8", - "_phantomChildren": {}, - "_requested": { - "name": "inherits", - "raw": "inherits@2", - "rawSpec": "2", - "scope": null, - "spec": ">=2.0.0 <3.0.0", - "type": "range" - }, - "_requiredBy": [ - "/glob" - ], - "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "_shasum": "b17d08d326b4423e568eff719f91b0b1cbdf69f1", - "_shrinkwrap": null, - "_spec": "inherits@2", - "_where": "C:\\Users\\vstsxplat\\Desktop\\vsts-agent\\_work\\3\\s\\_temp\\vsts-task-lib\\0.5.12\\node_modules\\glob", - "browser": "./inherits_browser.js", - "bugs": { - "url": "https://github.com/isaacs/inherits/issues" - }, - "dependencies": {}, - "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "b17d08d326b4423e568eff719f91b0b1cbdf69f1", - "tarball": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - }, - "homepage": "https://github.com/isaacs/inherits#readme", - "keywords": [ - "inheritance", - "class", - "klass", - "oop", - "object-oriented", - "inherits", - "browser", - "browserify" - ], - "license": "ISC", - "main": "./inherits.js", - "maintainers": [ - { - "email": "i@izs.me", - "name": "isaacs" - } - ], - "name": "inherits", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/inherits.git" - }, - "scripts": { - "test": "node test" - }, - "version": "2.0.1" -} diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/inherits/test.js b/UFTBuildTask/RunFromFileSystemTask/node_modules/inherits/test.js deleted file mode 100644 index fc53012..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/inherits/test.js +++ /dev/null @@ -1,25 +0,0 @@ -var inherits = require('./inherits.js') -var assert = require('assert') - -function test(c) { - assert(c.constructor === Child) - assert(c.constructor.super_ === Parent) - assert(Object.getPrototypeOf(c) === Child.prototype) - assert(Object.getPrototypeOf(Object.getPrototypeOf(c)) === Parent.prototype) - assert(c instanceof Child) - assert(c instanceof Parent) -} - -function Child() { - Parent.call(this) - test(this) -} - -function Parent() {} - -inherits(Child, Parent) - -var c = new Child -test(c) - -console.log('ok') diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/minimatch/LICENSE b/UFTBuildTask/RunFromFileSystemTask/node_modules/minimatch/LICENSE deleted file mode 100644 index 19129e3..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/minimatch/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -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. diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/minimatch/README.md b/UFTBuildTask/RunFromFileSystemTask/node_modules/minimatch/README.md deleted file mode 100644 index d458bc2..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/minimatch/README.md +++ /dev/null @@ -1,216 +0,0 @@ -# minimatch - -A minimal matching utility. - -[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.png)](http://travis-ci.org/isaacs/minimatch) - - -This is the matching library used internally by npm. - -It works by converting glob expressions into JavaScript `RegExp` -objects. - -## Usage - -```javascript -var minimatch = require("minimatch") - -minimatch("bar.foo", "*.foo") // true! -minimatch("bar.foo", "*.bar") // false! -minimatch("bar.foo", "*.+(bar|foo)", { debug: true }) // true, and noisy! -``` - -## Features - -Supports these glob features: - -* Brace Expansion -* Extended glob matching -* "Globstar" `**` matching - -See: - -* `man sh` -* `man bash` -* `man 3 fnmatch` -* `man 5 gitignore` - -## Minimatch Class - -Create a minimatch object by instanting the `minimatch.Minimatch` class. - -```javascript -var Minimatch = require("minimatch").Minimatch -var mm = new Minimatch(pattern, options) -``` - -### Properties - -* `pattern` The original pattern the minimatch object represents. -* `options` The options supplied to the constructor. -* `set` A 2-dimensional array of regexp or string expressions. - Each row in the - array corresponds to a brace-expanded pattern. Each item in the row - corresponds to a single path-part. For example, the pattern - `{a,b/c}/d` would expand to a set of patterns like: - - [ [ a, d ] - , [ b, c, d ] ] - - If a portion of the pattern doesn't have any "magic" in it - (that is, it's something like `"foo"` rather than `fo*o?`), then it - will be left as a string rather than converted to a regular - expression. - -* `regexp` Created by the `makeRe` method. A single regular expression - expressing the entire pattern. This is useful in cases where you wish - to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled. -* `negate` True if the pattern is negated. -* `comment` True if the pattern is a comment. -* `empty` True if the pattern is `""`. - -### Methods - -* `makeRe` Generate the `regexp` member if necessary, and return it. - Will return `false` if the pattern is invalid. -* `match(fname)` Return true if the filename matches the pattern, or - false otherwise. -* `matchOne(fileArray, patternArray, partial)` Take a `/`-split - filename, and match it against a single row in the `regExpSet`. This - method is mainly for internal use, but is exposed so that it can be - used by a glob-walker that needs to avoid excessive filesystem calls. - -All other methods are internal, and will be called as necessary. - -## Functions - -The top-level exported function has a `cache` property, which is an LRU -cache set to store 100 items. So, calling these methods repeatedly -with the same pattern and options will use the same Minimatch object, -saving the cost of parsing it multiple times. - -### minimatch(path, pattern, options) - -Main export. Tests a path against the pattern using the options. - -```javascript -var isJS = minimatch(file, "*.js", { matchBase: true }) -``` - -### minimatch.filter(pattern, options) - -Returns a function that tests its -supplied argument, suitable for use with `Array.filter`. Example: - -```javascript -var javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true})) -``` - -### minimatch.match(list, pattern, options) - -Match against the list of -files, in the style of fnmatch or glob. If nothing is matched, and -options.nonull is set, then return a list containing the pattern itself. - -```javascript -var javascripts = minimatch.match(fileList, "*.js", {matchBase: true})) -``` - -### minimatch.makeRe(pattern, options) - -Make a regular expression object from the pattern. - -## Options - -All options are `false` by default. - -### debug - -Dump a ton of stuff to stderr. - -### nobrace - -Do not expand `{a,b}` and `{1..3}` brace sets. - -### noglobstar - -Disable `**` matching against multiple folder names. - -### dot - -Allow patterns to match filenames starting with a period, even if -the pattern does not explicitly have a period in that spot. - -Note that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot` -is set. - -### noext - -Disable "extglob" style patterns like `+(a|b)`. - -### nocase - -Perform a case-insensitive match. - -### nonull - -When a match is not found by `minimatch.match`, return a list containing -the pattern itself if this option is set. When not set, an empty list -is returned if there are no matches. - -### matchBase - -If set, then patterns without slashes will be matched -against the basename of the path if it contains slashes. For example, -`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`. - -### nocomment - -Suppress the behavior of treating `#` at the start of a pattern as a -comment. - -### nonegate - -Suppress the behavior of treating a leading `!` character as negation. - -### flipNegate - -Returns from negate expressions the same as if they were not negated. -(Ie, true on a hit, false on a miss.) - - -## Comparisons to other fnmatch/glob implementations - -While strict compliance with the existing standards is a worthwhile -goal, some discrepancies exist between minimatch and other -implementations, and are intentional. - -If the pattern starts with a `!` character, then it is negated. Set the -`nonegate` flag to suppress this behavior, and treat leading `!` -characters normally. This is perhaps relevant if you wish to start the -pattern with a negative extglob pattern like `!(a|B)`. Multiple `!` -characters at the start of a pattern will negate the pattern multiple -times. - -If a pattern starts with `#`, then it is treated as a comment, and -will not match anything. Use `\#` to match a literal `#` at the -start of a line, or set the `nocomment` flag to suppress this behavior. - -The double-star character `**` is supported by default, unless the -`noglobstar` flag is set. This is supported in the manner of bsdglob -and bash 4.1, where `**` only has special significance if it is the only -thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but -`a/**b` will not. - -If an escaped pattern has no matches, and the `nonull` flag is set, -then minimatch.match returns the pattern as-provided, rather than -interpreting the character escapes. For example, -`minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than -`"*a?"`. This is akin to setting the `nullglob` option in bash, except -that it does not resolve escaped pattern characters. - -If brace expansion is not disabled, then it is performed before any -other interpretation of the glob pattern. Thus, a pattern like -`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded -**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are -checked for validity. Since those two are valid, matching proceeds. diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/minimatch/minimatch.js b/UFTBuildTask/RunFromFileSystemTask/node_modules/minimatch/minimatch.js deleted file mode 100644 index ec4c05c..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/minimatch/minimatch.js +++ /dev/null @@ -1,912 +0,0 @@ -module.exports = minimatch -minimatch.Minimatch = Minimatch - -var path = { sep: '/' } -try { - path = require('path') -} catch (er) {} - -var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {} -var expand = require('brace-expansion') - -// any single thing other than / -// don't need to escape / when using new RegExp() -var qmark = '[^/]' - -// * => any number of characters -var star = qmark + '*?' - -// ** when dots are allowed. Anything goes, except .. and . -// not (^ or / followed by one or two dots followed by $ or /), -// followed by anything, any number of times. -var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?' - -// not a ^ or / followed by a dot, -// followed by anything, any number of times. -var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?' - -// characters that need to be escaped in RegExp. -var reSpecials = charSet('().*{}+?[]^$\\!') - -// "abc" -> { a:true, b:true, c:true } -function charSet (s) { - return s.split('').reduce(function (set, c) { - set[c] = true - return set - }, {}) -} - -// normalizes slashes. -var slashSplit = /\/+/ - -minimatch.filter = filter -function filter (pattern, options) { - options = options || {} - return function (p, i, list) { - return minimatch(p, pattern, options) - } -} - -function ext (a, b) { - a = a || {} - b = b || {} - var t = {} - Object.keys(b).forEach(function (k) { - t[k] = b[k] - }) - Object.keys(a).forEach(function (k) { - t[k] = a[k] - }) - return t -} - -minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return minimatch - - var orig = minimatch - - var m = function minimatch (p, pattern, options) { - return orig.minimatch(p, pattern, ext(def, options)) - } - - m.Minimatch = function Minimatch (pattern, options) { - return new orig.Minimatch(pattern, ext(def, options)) - } - - return m -} - -Minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return Minimatch - return minimatch.defaults(def).Minimatch -} - -function minimatch (p, pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } - - if (!options) options = {} - - // shortcut: comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - return false - } - - // "" only matches "" - if (pattern.trim() === '') return p === '' - - return new Minimatch(pattern, options).match(p) -} - -function Minimatch (pattern, options) { - if (!(this instanceof Minimatch)) { - return new Minimatch(pattern, options) - } - - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } - - if (!options) options = {} - pattern = pattern.trim() - - // windows support: need to use /, not \ - if (path.sep !== '/') { - pattern = pattern.split(path.sep).join('/') - } - - this.options = options - this.set = [] - this.pattern = pattern - this.regexp = null - this.negate = false - this.comment = false - this.empty = false - - // make the set of regexps etc. - this.make() -} - -Minimatch.prototype.debug = function () {} - -Minimatch.prototype.make = make -function make () { - // don't do it more than once. - if (this._made) return - - var pattern = this.pattern - var options = this.options - - // empty patterns and comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - this.comment = true - return - } - if (!pattern) { - this.empty = true - return - } - - // step 1: figure out negation, etc. - this.parseNegate() - - // step 2: expand braces - var set = this.globSet = this.braceExpand() - - if (options.debug) this.debug = console.error - - this.debug(this.pattern, set) - - // step 3: now we have a set, so turn each one into a series of path-portion - // matching patterns. - // These will be regexps, except in the case of "**", which is - // set to the GLOBSTAR object for globstar behavior, - // and will not contain any / characters - set = this.globParts = set.map(function (s) { - return s.split(slashSplit) - }) - - this.debug(this.pattern, set) - - // glob --> regexps - set = set.map(function (s, si, set) { - return s.map(this.parse, this) - }, this) - - this.debug(this.pattern, set) - - // filter out everything that didn't compile properly. - set = set.filter(function (s) { - return s.indexOf(false) === -1 - }) - - this.debug(this.pattern, set) - - this.set = set -} - -Minimatch.prototype.parseNegate = parseNegate -function parseNegate () { - var pattern = this.pattern - var negate = false - var options = this.options - var negateOffset = 0 - - if (options.nonegate) return - - for (var i = 0, l = pattern.length - ; i < l && pattern.charAt(i) === '!' - ; i++) { - negate = !negate - negateOffset++ - } - - if (negateOffset) this.pattern = pattern.substr(negateOffset) - this.negate = negate -} - -// Brace expansion: -// a{b,c}d -> abd acd -// a{b,}c -> abc ac -// a{0..3}d -> a0d a1d a2d a3d -// a{b,c{d,e}f}g -> abg acdfg acefg -// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg -// -// Invalid sets are not expanded. -// a{2..}b -> a{2..}b -// a{b}c -> a{b}c -minimatch.braceExpand = function (pattern, options) { - return braceExpand(pattern, options) -} - -Minimatch.prototype.braceExpand = braceExpand - -function braceExpand (pattern, options) { - if (!options) { - if (this instanceof Minimatch) { - options = this.options - } else { - options = {} - } - } - - pattern = typeof pattern === 'undefined' - ? this.pattern : pattern - - if (typeof pattern === 'undefined') { - throw new Error('undefined pattern') - } - - if (options.nobrace || - !pattern.match(/\{.*\}/)) { - // shortcut. no need to expand. - return [pattern] - } - - return expand(pattern) -} - -// parse a component of the expanded set. -// At this point, no pattern may contain "/" in it -// so we're going to return a 2d array, where each entry is the full -// pattern, split on '/', and then turned into a regular expression. -// A regexp is made at the end which joins each array with an -// escaped /, and another full one which joins each regexp with |. -// -// Following the lead of Bash 4.1, note that "**" only has special meaning -// when it is the *only* thing in a path portion. Otherwise, any series -// of * is equivalent to a single *. Globstar behavior is enabled by -// default, and can be disabled by setting options.noglobstar. -Minimatch.prototype.parse = parse -var SUBPARSE = {} -function parse (pattern, isSub) { - var options = this.options - - // shortcuts - if (!options.noglobstar && pattern === '**') return GLOBSTAR - if (pattern === '') return '' - - var re = '' - var hasMagic = !!options.nocase - var escaping = false - // ? => one single character - var patternListStack = [] - var negativeLists = [] - var plType - var stateChar - var inClass = false - var reClassStart = -1 - var classStart = -1 - // . and .. never match anything that doesn't start with ., - // even when options.dot is set. - var patternStart = pattern.charAt(0) === '.' ? '' // anything - // not (start or / followed by . or .. followed by / or end) - : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))' - : '(?!\\.)' - var self = this - - function clearStateChar () { - if (stateChar) { - // we had some state-tracking character - // that wasn't consumed by this pass. - switch (stateChar) { - case '*': - re += star - hasMagic = true - break - case '?': - re += qmark - hasMagic = true - break - default: - re += '\\' + stateChar - break - } - self.debug('clearStateChar %j %j', stateChar, re) - stateChar = false - } - } - - for (var i = 0, len = pattern.length, c - ; (i < len) && (c = pattern.charAt(i)) - ; i++) { - this.debug('%s\t%s %s %j', pattern, i, re, c) - - // skip over any that are escaped. - if (escaping && reSpecials[c]) { - re += '\\' + c - escaping = false - continue - } - - switch (c) { - case '/': - // completely not allowed, even escaped. - // Should already be path-split by now. - return false - - case '\\': - clearStateChar() - escaping = true - continue - - // the various stateChar values - // for the "extglob" stuff. - case '?': - case '*': - case '+': - case '@': - case '!': - this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c) - - // all of those are literals inside a class, except that - // the glob [!a] means [^a] in regexp - if (inClass) { - this.debug(' in class') - if (c === '!' && i === classStart + 1) c = '^' - re += c - continue - } - - // if we already have a stateChar, then it means - // that there was something like ** or +? in there. - // Handle the stateChar, then proceed with this one. - self.debug('call clearStateChar %j', stateChar) - clearStateChar() - stateChar = c - // if extglob is disabled, then +(asdf|foo) isn't a thing. - // just clear the statechar *now*, rather than even diving into - // the patternList stuff. - if (options.noext) clearStateChar() - continue - - case '(': - if (inClass) { - re += '(' - continue - } - - if (!stateChar) { - re += '\\(' - continue - } - - plType = stateChar - patternListStack.push({ - type: plType, - start: i - 1, - reStart: re.length - }) - // negation is (?:(?!js)[^/]*) - re += stateChar === '!' ? '(?:(?!(?:' : '(?:' - this.debug('plType %j %j', stateChar, re) - stateChar = false - continue - - case ')': - if (inClass || !patternListStack.length) { - re += '\\)' - continue - } - - clearStateChar() - hasMagic = true - re += ')' - var pl = patternListStack.pop() - plType = pl.type - // negation is (?:(?!js)[^/]*) - // The others are (?:) - switch (plType) { - case '!': - negativeLists.push(pl) - re += ')[^/]*?)' - pl.reEnd = re.length - break - case '?': - case '+': - case '*': - re += plType - break - case '@': break // the default anyway - } - continue - - case '|': - if (inClass || !patternListStack.length || escaping) { - re += '\\|' - escaping = false - continue - } - - clearStateChar() - re += '|' - continue - - // these are mostly the same in regexp and glob - case '[': - // swallow any state-tracking char before the [ - clearStateChar() - - if (inClass) { - re += '\\' + c - continue - } - - inClass = true - classStart = i - reClassStart = re.length - re += c - continue - - case ']': - // a right bracket shall lose its special - // meaning and represent itself in - // a bracket expression if it occurs - // first in the list. -- POSIX.2 2.8.3.2 - if (i === classStart + 1 || !inClass) { - re += '\\' + c - escaping = false - continue - } - - // handle the case where we left a class open. - // "[z-a]" is valid, equivalent to "\[z-a\]" - if (inClass) { - // split where the last [ was, make sure we don't have - // an invalid re. if so, re-walk the contents of the - // would-be class to re-translate any characters that - // were passed through as-is - // TODO: It would probably be faster to determine this - // without a try/catch and a new RegExp, but it's tricky - // to do safely. For now, this is safe and works. - var cs = pattern.substring(classStart + 1, i) - try { - RegExp('[' + cs + ']') - } catch (er) { - // not a valid class! - var sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]' - hasMagic = hasMagic || sp[1] - inClass = false - continue - } - } - - // finish up the class. - hasMagic = true - inClass = false - re += c - continue - - default: - // swallow any state char that wasn't consumed - clearStateChar() - - if (escaping) { - // no need - escaping = false - } else if (reSpecials[c] - && !(c === '^' && inClass)) { - re += '\\' - } - - re += c - - } // switch - } // for - - // handle the case where we left a class open. - // "[abc" is valid, equivalent to "\[abc" - if (inClass) { - // split where the last [ was, and escape it - // this is a huge pita. We now have to re-walk - // the contents of the would-be class to re-translate - // any characters that were passed through as-is - cs = pattern.substr(classStart + 1) - sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] - hasMagic = hasMagic || sp[1] - } - - // handle the case where we had a +( thing at the *end* - // of the pattern. - // each pattern list stack adds 3 chars, and we need to go through - // and escape any | chars that were passed through as-is for the regexp. - // Go through and escape them, taking care not to double-escape any - // | chars that were already escaped. - for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) { - var tail = re.slice(pl.reStart + 3) - // maybe some even number of \, then maybe 1 \, followed by a | - tail = tail.replace(/((?:\\{2})*)(\\?)\|/g, function (_, $1, $2) { - if (!$2) { - // the | isn't already escaped, so escape it. - $2 = '\\' - } - - // need to escape all those slashes *again*, without escaping the - // one that we need for escaping the | character. As it works out, - // escaping an even number of slashes can be done by simply repeating - // it exactly after itself. That's why this trick works. - // - // I am sorry that you have to see this. - return $1 + $1 + $2 + '|' - }) - - this.debug('tail=%j\n %s', tail, tail) - var t = pl.type === '*' ? star - : pl.type === '?' ? qmark - : '\\' + pl.type - - hasMagic = true - re = re.slice(0, pl.reStart) + t + '\\(' + tail - } - - // handle trailing things that only matter at the very end. - clearStateChar() - if (escaping) { - // trailing \\ - re += '\\\\' - } - - // only need to apply the nodot start if the re starts with - // something that could conceivably capture a dot - var addPatternStart = false - switch (re.charAt(0)) { - case '.': - case '[': - case '(': addPatternStart = true - } - - // Hack to work around lack of negative lookbehind in JS - // A pattern like: *.!(x).!(y|z) needs to ensure that a name - // like 'a.xyz.yz' doesn't match. So, the first negative - // lookahead, has to look ALL the way ahead, to the end of - // the pattern. - for (var n = negativeLists.length - 1; n > -1; n--) { - var nl = negativeLists[n] - - var nlBefore = re.slice(0, nl.reStart) - var nlFirst = re.slice(nl.reStart, nl.reEnd - 8) - var nlLast = re.slice(nl.reEnd - 8, nl.reEnd) - var nlAfter = re.slice(nl.reEnd) - - nlLast += nlAfter - - // Handle nested stuff like *(*.js|!(*.json)), where open parens - // mean that we should *not* include the ) in the bit that is considered - // "after" the negated section. - var openParensBefore = nlBefore.split('(').length - 1 - var cleanAfter = nlAfter - for (i = 0; i < openParensBefore; i++) { - cleanAfter = cleanAfter.replace(/\)[+*?]?/, '') - } - nlAfter = cleanAfter - - var dollar = '' - if (nlAfter === '' && isSub !== SUBPARSE) { - dollar = '$' - } - var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast - re = newRe - } - - // if the re is not "" at this point, then we need to make sure - // it doesn't match against an empty path part. - // Otherwise a/* will match a/, which it should not. - if (re !== '' && hasMagic) { - re = '(?=.)' + re - } - - if (addPatternStart) { - re = patternStart + re - } - - // parsing just a piece of a larger pattern. - if (isSub === SUBPARSE) { - return [re, hasMagic] - } - - // skip the regexp for non-magical patterns - // unescape anything in it, though, so that it'll be - // an exact match against a file etc. - if (!hasMagic) { - return globUnescape(pattern) - } - - var flags = options.nocase ? 'i' : '' - var regExp = new RegExp('^' + re + '$', flags) - - regExp._glob = pattern - regExp._src = re - - return regExp -} - -minimatch.makeRe = function (pattern, options) { - return new Minimatch(pattern, options || {}).makeRe() -} - -Minimatch.prototype.makeRe = makeRe -function makeRe () { - if (this.regexp || this.regexp === false) return this.regexp - - // at this point, this.set is a 2d array of partial - // pattern strings, or "**". - // - // It's better to use .match(). This function shouldn't - // be used, really, but it's pretty convenient sometimes, - // when you just want to work with a regex. - var set = this.set - - if (!set.length) { - this.regexp = false - return this.regexp - } - var options = this.options - - var twoStar = options.noglobstar ? star - : options.dot ? twoStarDot - : twoStarNoDot - var flags = options.nocase ? 'i' : '' - - var re = set.map(function (pattern) { - return pattern.map(function (p) { - return (p === GLOBSTAR) ? twoStar - : (typeof p === 'string') ? regExpEscape(p) - : p._src - }).join('\\\/') - }).join('|') - - // must match entire pattern - // ending in a * or ** will make it less strict. - re = '^(?:' + re + ')$' - - // can match anything, as long as it's not this. - if (this.negate) re = '^(?!' + re + ').*$' - - try { - this.regexp = new RegExp(re, flags) - } catch (ex) { - this.regexp = false - } - return this.regexp -} - -minimatch.match = function (list, pattern, options) { - options = options || {} - var mm = new Minimatch(pattern, options) - list = list.filter(function (f) { - return mm.match(f) - }) - if (mm.options.nonull && !list.length) { - list.push(pattern) - } - return list -} - -Minimatch.prototype.match = match -function match (f, partial) { - this.debug('match', f, this.pattern) - // short-circuit in the case of busted things. - // comments, etc. - if (this.comment) return false - if (this.empty) return f === '' - - if (f === '/' && partial) return true - - var options = this.options - - // windows: need to use /, not \ - if (path.sep !== '/') { - f = f.split(path.sep).join('/') - } - - // treat the test path as a set of pathparts. - f = f.split(slashSplit) - this.debug(this.pattern, 'split', f) - - // just ONE of the pattern sets in this.set needs to match - // in order for it to be valid. If negating, then just one - // match means that we have failed. - // Either way, return on the first hit. - - var set = this.set - this.debug(this.pattern, 'set', set) - - // Find the basename of the path by looking for the last non-empty segment - var filename - var i - for (i = f.length - 1; i >= 0; i--) { - filename = f[i] - if (filename) break - } - - for (i = 0; i < set.length; i++) { - var pattern = set[i] - var file = f - if (options.matchBase && pattern.length === 1) { - file = [filename] - } - var hit = this.matchOne(file, pattern, partial) - if (hit) { - if (options.flipNegate) return true - return !this.negate - } - } - - // didn't get any hits. this is success if it's a negative - // pattern, failure otherwise. - if (options.flipNegate) return false - return this.negate -} - -// set partial to true to test if, for example, -// "/a/b" matches the start of "/*/b/*/d" -// Partial means, if you run out of file before you run -// out of pattern, then that's fine, as long as all -// the parts match. -Minimatch.prototype.matchOne = function (file, pattern, partial) { - var options = this.options - - this.debug('matchOne', - { 'this': this, file: file, pattern: pattern }) - - this.debug('matchOne', file.length, pattern.length) - - for (var fi = 0, - pi = 0, - fl = file.length, - pl = pattern.length - ; (fi < fl) && (pi < pl) - ; fi++, pi++) { - this.debug('matchOne loop') - var p = pattern[pi] - var f = file[fi] - - this.debug(pattern, p, f) - - // should be impossible. - // some invalid regexp stuff in the set. - if (p === false) return false - - if (p === GLOBSTAR) { - this.debug('GLOBSTAR', [pattern, p, f]) - - // "**" - // a/**/b/**/c would match the following: - // a/b/x/y/z/c - // a/x/y/z/b/c - // a/b/x/b/x/c - // a/b/c - // To do this, take the rest of the pattern after - // the **, and see if it would match the file remainder. - // If so, return success. - // If not, the ** "swallows" a segment, and try again. - // This is recursively awful. - // - // a/**/b/**/c matching a/b/x/y/z/c - // - a matches a - // - doublestar - // - matchOne(b/x/y/z/c, b/**/c) - // - b matches b - // - doublestar - // - matchOne(x/y/z/c, c) -> no - // - matchOne(y/z/c, c) -> no - // - matchOne(z/c, c) -> no - // - matchOne(c, c) yes, hit - var fr = fi - var pr = pi + 1 - if (pr === pl) { - this.debug('** at the end') - // a ** at the end will just swallow the rest. - // We have found a match. - // however, it will not swallow /.x, unless - // options.dot is set. - // . and .. are *never* matched by **, for explosively - // exponential reasons. - for (; fi < fl; fi++) { - if (file[fi] === '.' || file[fi] === '..' || - (!options.dot && file[fi].charAt(0) === '.')) return false - } - return true - } - - // ok, let's see if we can swallow whatever we can. - while (fr < fl) { - var swallowee = file[fr] - - this.debug('\nglobstar while', file, fr, pattern, pr, swallowee) - - // XXX remove this slice. Just pass the start index. - if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { - this.debug('globstar found match!', fr, fl, swallowee) - // found a match. - return true - } else { - // can't swallow "." or ".." ever. - // can only swallow ".foo" when explicitly asked. - if (swallowee === '.' || swallowee === '..' || - (!options.dot && swallowee.charAt(0) === '.')) { - this.debug('dot detected!', file, fr, pattern, pr) - break - } - - // ** swallows a segment, and continue. - this.debug('globstar swallow a segment, and continue') - fr++ - } - } - - // no match was found. - // However, in partial mode, we can't say this is necessarily over. - // If there's more *pattern* left, then - if (partial) { - // ran out of file - this.debug('\n>>> no match, partial?', file, fr, pattern, pr) - if (fr === fl) return true - } - return false - } - - // something other than ** - // non-magic patterns just have to match exactly - // patterns with magic have been turned into regexps. - var hit - if (typeof p === 'string') { - if (options.nocase) { - hit = f.toLowerCase() === p.toLowerCase() - } else { - hit = f === p - } - this.debug('string match', p, f, hit) - } else { - hit = f.match(p) - this.debug('pattern match', p, f, hit) - } - - if (!hit) return false - } - - // Note: ending in / means that we'll get a final "" - // at the end of the pattern. This can only match a - // corresponding "" at the end of the file. - // If the file ends in /, then it can only match a - // a pattern that ends in /, unless the pattern just - // doesn't have any more for it. But, a/b/ should *not* - // match "a/b/*", even though "" matches against the - // [^/]*? pattern, except in partial mode, where it might - // simply not be reached yet. - // However, a/b/ should still satisfy a/* - - // now either we fell off the end of the pattern, or we're done. - if (fi === fl && pi === pl) { - // ran out of pattern and filename at the same time. - // an exact hit! - return true - } else if (fi === fl) { - // ran out of file, but still had pattern left. - // this is ok if we're doing the match as part of - // a glob fs traversal. - return partial - } else if (pi === pl) { - // ran out of pattern, still have file left. - // this is only acceptable if we're on the very last - // empty segment of a file with a trailing slash. - // a/* should match a/b/ - var emptyFileEnd = (fi === fl - 1) && (file[fi] === '') - return emptyFileEnd - } - - // should be unreachable. - throw new Error('wtf?') -} - -// replace stuff like \* with * -function globUnescape (s) { - return s.replace(/\\(.)/g, '$1') -} - -function regExpEscape (s) { - return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&') -} diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/minimatch/package.json b/UFTBuildTask/RunFromFileSystemTask/node_modules/minimatch/package.json deleted file mode 100644 index e44216c..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/minimatch/package.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "_args": [ - [ - "minimatch@^3.0.0", - "C:\\Users\\vstsxplat\\Desktop\\vsts-agent\\_work\\3\\s\\_temp\\vsts-task-lib\\0.5.12\\node_modules\\vsts-task-lib" - ] - ], - "_from": "minimatch@>=3.0.0 <4.0.0", - "_id": "minimatch@3.0.0", - "_inCache": true, - "_installable": true, - "_location": "/minimatch", - "_nodeVersion": "4.0.0", - "_npmUser": { - "email": "isaacs@npmjs.com", - "name": "isaacs" - }, - "_npmVersion": "3.3.2", - "_phantomChildren": {}, - "_requested": { - "name": "minimatch", - "raw": "minimatch@^3.0.0", - "rawSpec": "^3.0.0", - "scope": null, - "spec": ">=3.0.0 <4.0.0", - "type": "range" - }, - "_requiredBy": [ - "/glob", - "/vsts-task-lib" - ], - "_resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", - "_shasum": "5236157a51e4f004c177fb3c527ff7dd78f0ef83", - "_shrinkwrap": null, - "_spec": "minimatch@^3.0.0", - "_where": "C:\\Users\\vstsxplat\\Desktop\\vsts-agent\\_work\\3\\s\\_temp\\vsts-task-lib\\0.5.12\\node_modules\\vsts-task-lib", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me" - }, - "bugs": { - "url": "https://github.com/isaacs/minimatch/issues" - }, - "dependencies": { - "brace-expansion": "^1.0.0" - }, - "description": "a glob matcher in javascript", - "devDependencies": { - "standard": "^3.7.2", - "tap": "^1.2.0" - }, - "directories": {}, - "dist": { - "shasum": "5236157a51e4f004c177fb3c527ff7dd78f0ef83", - "tarball": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz" - }, - "engines": { - "node": "*" - }, - "files": [ - "minimatch.js" - ], - "gitHead": "270dbea567f0af6918cb18103e98c612aa717a20", - "homepage": "https://github.com/isaacs/minimatch#readme", - "license": "ISC", - "main": "minimatch.js", - "maintainers": [ - { - "email": "i@izs.me", - "name": "isaacs" - } - ], - "name": "minimatch", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/minimatch.git" - }, - "scripts": { - "posttest": "standard minimatch.js test/*.js", - "test": "tap test/*.js" - }, - "version": "3.0.0" -} diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/once/LICENSE b/UFTBuildTask/RunFromFileSystemTask/node_modules/once/LICENSE deleted file mode 100644 index 19129e3..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/once/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -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. diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/once/README.md b/UFTBuildTask/RunFromFileSystemTask/node_modules/once/README.md deleted file mode 100644 index a2981ea..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/once/README.md +++ /dev/null @@ -1,51 +0,0 @@ -# once - -Only call a function once. - -## usage - -```javascript -var once = require('once') - -function load (file, cb) { - cb = once(cb) - loader.load('file') - loader.once('load', cb) - loader.once('error', cb) -} -``` - -Or add to the Function.prototype in a responsible way: - -```javascript -// only has to be done once -require('once').proto() - -function load (file, cb) { - cb = cb.once() - loader.load('file') - loader.once('load', cb) - loader.once('error', cb) -} -``` - -Ironically, the prototype feature makes this module twice as -complicated as necessary. - -To check whether you function has been called, use `fn.called`. Once the -function is called for the first time the return value of the original -function is saved in `fn.value` and subsequent calls will continue to -return this value. - -```javascript -var once = require('once') - -function load (cb) { - cb = once(cb) - var stream = createStream() - stream.once('data', cb) - stream.once('end', function () { - if (!cb.called) cb(new Error('not found')) - }) -} -``` diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/once/once.js b/UFTBuildTask/RunFromFileSystemTask/node_modules/once/once.js deleted file mode 100644 index 2e1e721..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/once/once.js +++ /dev/null @@ -1,21 +0,0 @@ -var wrappy = require('wrappy') -module.exports = wrappy(once) - -once.proto = once(function () { - Object.defineProperty(Function.prototype, 'once', { - value: function () { - return once(this) - }, - configurable: true - }) -}) - -function once (fn) { - var f = function () { - if (f.called) return f.value - f.called = true - return f.value = fn.apply(this, arguments) - } - f.called = false - return f -} diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/once/package.json b/UFTBuildTask/RunFromFileSystemTask/node_modules/once/package.json deleted file mode 100644 index 7ad948b..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/once/package.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "_args": [ - [ - "once@^1.3.0", - "C:\\Users\\vstsxplat\\Desktop\\vsts-agent\\_work\\3\\s\\_temp\\vsts-task-lib\\0.5.12\\node_modules\\glob" - ] - ], - "_from": "once@>=1.3.0 <2.0.0", - "_id": "once@1.3.3", - "_inCache": true, - "_installable": true, - "_location": "/once", - "_nodeVersion": "4.0.0", - "_npmUser": { - "email": "i@izs.me", - "name": "isaacs" - }, - "_npmVersion": "3.3.2", - "_phantomChildren": {}, - "_requested": { - "name": "once", - "raw": "once@^1.3.0", - "rawSpec": "^1.3.0", - "scope": null, - "spec": ">=1.3.0 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/glob", - "/inflight" - ], - "_resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "_shasum": "b2e261557ce4c314ec8304f3fa82663e4297ca20", - "_shrinkwrap": null, - "_spec": "once@^1.3.0", - "_where": "C:\\Users\\vstsxplat\\Desktop\\vsts-agent\\_work\\3\\s\\_temp\\vsts-task-lib\\0.5.12\\node_modules\\glob", - "author": { - "email": "i@izs.me", - "name": "Isaac Z. Schlueter", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/isaacs/once/issues" - }, - "dependencies": { - "wrappy": "1" - }, - "description": "Run a function exactly one time", - "devDependencies": { - "tap": "^1.2.0" - }, - "directories": { - "test": "test" - }, - "dist": { - "shasum": "b2e261557ce4c314ec8304f3fa82663e4297ca20", - "tarball": "https://registry.npmjs.org/once/-/once-1.3.3.tgz" - }, - "files": [ - "once.js" - ], - "gitHead": "2ad558657e17fafd24803217ba854762842e4178", - "homepage": "https://github.com/isaacs/once#readme", - "keywords": [ - "once", - "function", - "one", - "single" - ], - "license": "ISC", - "main": "once.js", - "maintainers": [ - { - "email": "i@izs.me", - "name": "isaacs" - } - ], - "name": "once", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/once.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "1.3.3" -} diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/path-is-absolute/index.js b/UFTBuildTask/RunFromFileSystemTask/node_modules/path-is-absolute/index.js deleted file mode 100644 index 19f103f..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/path-is-absolute/index.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -function posix(path) { - return path.charAt(0) === '/'; -}; - -function win32(path) { - // https://github.com/joyent/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56 - var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/; - var result = splitDeviceRe.exec(path); - var device = result[1] || ''; - var isUnc = !!device && device.charAt(1) !== ':'; - - // UNC paths are always absolute - return !!result[2] || isUnc; -}; - -module.exports = process.platform === 'win32' ? win32 : posix; -module.exports.posix = posix; -module.exports.win32 = win32; diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/path-is-absolute/license b/UFTBuildTask/RunFromFileSystemTask/node_modules/path-is-absolute/license deleted file mode 100644 index 654d0bf..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/path-is-absolute/license +++ /dev/null @@ -1,21 +0,0 @@ -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. diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/path-is-absolute/package.json b/UFTBuildTask/RunFromFileSystemTask/node_modules/path-is-absolute/package.json deleted file mode 100644 index e14e2fa..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/path-is-absolute/package.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "_args": [ - [ - "path-is-absolute@^1.0.0", - "C:\\Users\\vstsxplat\\Desktop\\vsts-agent\\_work\\3\\s\\_temp\\vsts-task-lib\\0.5.12\\node_modules\\glob" - ] - ], - "_from": "path-is-absolute@>=1.0.0 <2.0.0", - "_id": "path-is-absolute@1.0.0", - "_inCache": true, - "_installable": true, - "_location": "/path-is-absolute", - "_nodeVersion": "0.12.0", - "_npmUser": { - "email": "sindresorhus@gmail.com", - "name": "sindresorhus" - }, - "_npmVersion": "2.5.1", - "_phantomChildren": {}, - "_requested": { - "name": "path-is-absolute", - "raw": "path-is-absolute@^1.0.0", - "rawSpec": "^1.0.0", - "scope": null, - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "_requiredBy": [ - "/glob" - ], - "_resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz", - "_shasum": "263dada66ab3f2fb10bf7f9d24dd8f3e570ef912", - "_shrinkwrap": null, - "_spec": "path-is-absolute@^1.0.0", - "_where": "C:\\Users\\vstsxplat\\Desktop\\vsts-agent\\_work\\3\\s\\_temp\\vsts-task-lib\\0.5.12\\node_modules\\glob", - "author": { - "email": "sindresorhus@gmail.com", - "name": "Sindre Sorhus", - "url": "sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/sindresorhus/path-is-absolute/issues" - }, - "dependencies": {}, - "description": "Node.js 0.12 path.isAbsolute() ponyfill", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "263dada66ab3f2fb10bf7f9d24dd8f3e570ef912", - "tarball": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" - }, - "engines": { - "node": ">=0.10.0" - }, - "files": [ - "index.js" - ], - "gitHead": "7a76a0c9f2263192beedbe0a820e4d0baee5b7a1", - "homepage": "https://github.com/sindresorhus/path-is-absolute", - "keywords": [ - "path", - "paths", - "file", - "dir", - "absolute", - "isabsolute", - "is-absolute", - "built-in", - "util", - "utils", - "core", - "ponyfill", - "polyfill", - "shim", - "is", - "detect", - "check" - ], - "license": "MIT", - "maintainers": [ - { - "email": "sindresorhus@gmail.com", - "name": "sindresorhus" - } - ], - "name": "path-is-absolute", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/path-is-absolute.git" - }, - "scripts": { - "test": "node test.js" - }, - "version": "1.0.0" -} diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/path-is-absolute/readme.md b/UFTBuildTask/RunFromFileSystemTask/node_modules/path-is-absolute/readme.md deleted file mode 100644 index cdf94f4..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/path-is-absolute/readme.md +++ /dev/null @@ -1,51 +0,0 @@ -# path-is-absolute [![Build Status](https://travis-ci.org/sindresorhus/path-is-absolute.svg?branch=master)](https://travis-ci.org/sindresorhus/path-is-absolute) - -> Node.js 0.12 [`path.isAbsolute()`](http://nodejs.org/api/path.html#path_path_isabsolute_path) ponyfill - -> Ponyfill: A polyfill that doesn't overwrite the native method - - -## Install - -``` -$ npm install --save path-is-absolute -``` - - -## Usage - -```js -var pathIsAbsolute = require('path-is-absolute'); - -// Linux -pathIsAbsolute('/home/foo'); -//=> true - -// Windows -pathIsAbsolute('C:/Users/'); -//=> true - -// Any OS -pathIsAbsolute.posix('/home/foo'); -//=> true -``` - - -## API - -See the [`path.isAbsolute()` docs](http://nodejs.org/api/path.html#path_path_isabsolute_path). - -### pathIsAbsolute(path) - -### pathIsAbsolute.posix(path) - -The Posix specific version. - -### pathIsAbsolute.win32(path) - -The Windows specific version. - - -## License - -MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/UFTBuildTask/RunFromFileSystemTask/node_modules/q/CHANGES.md b/UFTBuildTask/RunFromFileSystemTask/node_modules/q/CHANGES.md deleted file mode 100644 index cd351fd..0000000 --- a/UFTBuildTask/RunFromFileSystemTask/node_modules/q/CHANGES.md +++ /dev/null @@ -1,786 +0,0 @@ - -## 1.4.1 - - - Address an issue that prevented Q from being used as a `