├── .gitignore ├── .gitpod.Dockerfile ├── .gitpod.yml ├── README.md ├── conf ├── fileupload.conf.js ├── local.conf.js ├── nonAngularfileupload.conf.js ├── parallel.conf.js ├── parallel_local.conf.js └── single.conf.js ├── package-lock.json ├── package.json └── specs ├── 1_8FualX4XQbOUJDrg8yQAjQ.jpeg ├── cat.jpg ├── fileupload.js ├── local.js ├── nonangular.js ├── single.js └── small.jpg /.gitignore: -------------------------------------------------------------------------------- 1 | package-lock.json 2 | node_modules/ -------------------------------------------------------------------------------- /.gitpod.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM gitpod/workspace-full 2 | 3 | USER gitpod 4 | 5 | # Install custom tools, runtime, etc. using apt-get 6 | # For example, the command below would install "bastet" - a command line tetris clone: 7 | # 8 | # RUN sudo apt-get -q update && \ 9 | # sudo apt-get install -yq bastet && \ 10 | # sudo rm -rf /var/lib/apt/lists/* 11 | # 12 | # More information: https://www.gitpod.io/docs/config-docker/ 13 | -------------------------------------------------------------------------------- /.gitpod.yml: -------------------------------------------------------------------------------- 1 | # image: 2 | # file: .gitpod.Dockerfile 3 | 4 | # List the ports you want to expose and what to do when they are served. See https://www.gitpod.io/docs/config-ports/ 5 | ports: 6 | - port: 3000 7 | onOpen: open-preview 8 | 9 | # List the start up tasks. You can start them in parallel in multiple terminals. See https://www.gitpod.io/docs/config-start-tasks/ 10 | tasks: 11 | - init: npm install 12 | command: npm run single 13 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Run Selenium Tests With Protractor On LambdaTest 2 | 3 |

4 | 5 |

6 | 7 |

8 | Blog 9 |   ⋅   10 | Docs 11 |   ⋅   12 | Learning Hub 13 |   ⋅   14 | Newsletter 15 |   ⋅   16 | Certifications 17 |   ⋅   18 | YouTube 19 |

20 |   21 |   22 |   23 | 24 | *Learn how to use Protractor framework to configure and run your JavaScript automation testing scripts on the [LambdaTest Selenium cloud platform](https://www.lambdatest.com/selenium-automation/?utm_source=github&utm_medium=repo&utm_campaign=protractor-selenium-sample?).* 25 | 26 | [](https://accounts.lambdatest.com/register) 27 | 28 | ## Table of Contents 29 | 30 | * [Pre-requisites](#pre-requisites) 31 | * [Run Your First Test](#run-your-first-test) 32 | * [Executing the Test](#executing-the-test) 33 | * [Testing Locally Hosted or Privately Hosted Projects](#testing-locally-hosted-or-privately-hosted-projects) 34 | 35 | ## Pre-requisites 36 | 37 | Before getting started with Selenium automation testing on LambdaTest, you need to: 38 | 39 | * Download and install **NodeJS**. You should be having **NodeJS v6** or newer. Click [here](https://nodejs.org/en/) to download. 40 | * Make sure you are using the latest version of **JavaScript**. 41 | * Install **npm** from the official website by clicking [here](https://www.npmjs.com/). 42 | * Download [Selenium JavaScript bindings](https://www.selenium.dev/downloads/) from the official website. Latest versions of **Selenium Client** and **WebDriver** are ideal for running your JavaScript automation testing script on LambdaTest’s Selenium Grid. 43 | 44 | ### Installing Selenium Dependencies and tutorial repo 45 | 46 | Clone the LambdaTest’s [protractor-selenium-sample repository](https://github.com/LambdaTest/protractor-selenium-sample) and navigate to the code directory as shown below: 47 | 48 | ```bash 49 | git clone https://github.com/LambdaTest/protractor-selenium-sample 50 | cd protractor-selenium-sample 51 | ``` 52 | Install the required project dependencies using the command below: 53 | 54 | ```bash 55 | npm install 56 | ``` 57 | 58 | ### Setting up Your Authentication 59 | 60 | Make sure you have your LambdaTest credentials with you to run test automation scripts on LambdaTest Selenium Grid. You can obtain these credentials from the [LambdaTest Automation Dashboard](https://automation.lambdatest.com/build/?utm_source=github&utm_medium=repo&utm_campaign=protractor-selenium-sample?) or through [LambdaTest Profile](https://accounts.lambdatest.com/login/?utm_source=github&utm_medium=repo&utm_campaign=protractor-selenium-sample?). 61 | 62 | Set LambdaTest `Username` and `Access Key` in environment variables. 63 | * For **Linux/macOS**: 64 | ```bash 65 | export LT_USERNAME="YOUR_USERNAME" export LT_ACCESS_KEY="YOUR ACCESS KEY" 66 | ``` 67 | * For **Windows**: 68 | ```bash 69 | $env:LT_USERNAME='YOUR_USERNAME' 70 | $env:LT_ACCESS_KEY='YOUR ACCESS KEY' 71 | ``` 72 | 73 | ## Run Your First Test 74 | 75 | ### Sample Test with ProtractorJS 76 | 77 | Let’s check a sample **Protractor** Selenium code running on LambdaTest Selenium Grid. This is a simple Protractor test automation script that tests a sample to-do list app. 78 | ```js 79 | // single.js 80 | 81 | describe('Add todo Lists', function () { 82 | browser.ignoreSynchronization = true; 83 | 84 | it('Add Customer Test', function () { 85 | 86 | 87 | browser.get('https://lambdatest.github.io/sample-todo-app/'); 88 | 89 | browser.driver.findElement(by.name('li1')).then(function (foundElement) { 90 | foundElement.click(); 91 | }); 92 | 93 | browser.driver.findElement(by.name('li2')).then(function (foundElement) { 94 | foundElement.click(); 95 | }); 96 | 97 | browser.driver.findElement(by.id('sampletodotext')).then(function (foundElement) { 98 | foundElement.clear(); 99 | foundElement.sendKeys("Yey, Let's add it to list"); 100 | }); 101 | 102 | browser.driver.findElement(by.id('addbutton')).then(function (foundElement) { 103 | foundElement.click(); 104 | }); 105 | 106 | 107 | var foo = element(by.xpath('//html/body/div/div/div/ul/li[6]/span')); 108 | expect(foo.getText()).toEqual("Yey, Let's add it to list"); 109 | 110 | }); 111 | 112 | }); 113 | ``` 114 | 115 | ### Configuration of Your Test Capabilities 116 | 117 | In this code, we are passing browser, browser version, and operating system information, along with LambdaTest Selenium grid capabilities via capabilities object. The capabilities object in the above code are defined as: 118 | ```js 119 | capabilities = { 120 | build: 'protractor-LambdaTest-Single', 121 | browserName: 'chrome', 122 | version:'latest', 123 | platform: 'Windows 10', 124 | }, 125 | ``` 126 | > You can generate capabilities for your test requirements with the help of our inbuilt **[Capabilities Generator tool](https://www.lambdatest.com/capabilities-generator/)**. 127 | 128 | ## Executing the Test 129 | 130 | The tests can be executed in the terminal using the following command: 131 | 132 | ```bash 133 | npm run single 134 | ``` 135 | Your test results would be displayed on the test console (or command-line interface if you are using terminal/cmd) and on [LambdaTest automation dashboard](https://automation.lambdatest.com/build/?utm_source=github&utm_medium=repo&utm_campaign=protractor-selenium-sample?). LambdaTest Automation Dashboard will help you view all your text logs, screenshots and video recording for your entire automation tests. 136 | 137 | ## Running Your Parallel Tests Using Protractor Framework 138 | 139 | ### Executing Parallel Tests with Protractor 140 | 141 | To run parallel tests using **Protractor**, we would have to execute the below command in the terminal: 142 | 143 | ```bash 144 | npm run parallel 145 | ``` 146 | Your test results would be displayed on the test console (or command-line interface if you are using terminal/cmd) and on [LambdaTest automation dashboard](https://automation.lambdatest.com/build/?utm_source=github&utm_medium=repo&utm_campaign=protractor-selenium-sample?). 147 | 148 | ## Testing Locally Hosted or Privately Hosted Projects 149 | 150 | You can test your locally hosted or privately hosted projects with [LambdaTest Selenium grid cloud](https://www.lambdatest.com/selenium-automation/?utm_source=github&utm_medium=repo&utm_campaign=protractor-selenium-sample?) using LambdaTest Tunnel app. All you would have to do is set up an SSH tunnel using LambdaTest Tunnel app and pass toggle `tunnel = True` via desired capabilities. LambdaTest Tunnel establishes a secure SSH protocol based tunnel that allows you in testing your locally hosted or privately hosted pages, even before they are made live. 151 | 152 | >Refer our [LambdaTest Tunnel documentation](https://www.lambdatest.com/support/docs/testing-locally-hosted-pages/) for more information. 153 | 154 | Here’s how you can establish LambdaTest Tunnel. 155 | 156 | >Download the binary file of: 157 | * [LambdaTest Tunnel for Windows](https://downloads.lambdatest.com/tunnel/v3/windows/64bit/LT_Windows.zip) 158 | * [LambdaTest Tunnel for Mac](https://downloads.lambdatest.com/tunnel/v3/mac/64bit/LT_Mac.zip) 159 | * [LambdaTest Tunnel for Linux](https://downloads.lambdatest.com/tunnel/v3/linux/64bit/LT_Linux.zip) 160 | 161 | Open command prompt and navigate to the binary folder. 162 | 163 | Run the following command: 164 | ```bash 165 | LT -user {user’s login email} -key {user’s access key} 166 | ``` 167 | So if your user name is lambdatest@example.com and key is 123456, the command would be: 168 | ```bash 169 | LT -user lambdatest@example.com -key 123456 170 | ``` 171 | Once you are able to connect **LambdaTest Tunnel** successfully, you would just have to pass on tunnel capabilities in the code shown below : 172 | 173 | **Tunnel Capability** 174 | ```js 175 | const capabilities = { 176 | tunnel: true, 177 | } 178 | ``` 179 | 180 | ## Additional Links 181 | 182 | * [Advanced Configuration for Capabilities](https://www.lambdatest.com/support/docs/selenium-automation-capabilities/) 183 | * [How to test locally hosted apps](https://www.lambdatest.com/support/docs/testing-locally-hosted-pages/) 184 | * [How to integrate LambdaTest with CI/CD](https://www.lambdatest.com/support/docs/integrations-with-ci-cd-tools/) 185 | 186 | ## Tutorials 📙 187 | 188 | Check out our latest tutorials on JavaScript automation testing 👇 189 | 190 | * [Automated Cross Browser Testing With Protractor & Selenium](https://www.lambdatest.com/blog/automated-cross-browser-testing-with-protractor-selenium/?utm_source=github&utm_medium=repo&utm_campaign=protractor-selenium-sample?) 191 | * [Complete Guide To Selenium Locators In Protractor (Examples)](https://www.lambdatest.com/blog/selenium-locators-in-protractor/?utm_source=github&utm_medium=repo&utm_campaign=protractor-selenium-sample?) 192 | * [Protractor Tutorial: Handle Mouse Actions & Keyboard Events](https://www.lambdatest.com/blog/protractor-tutorial-handle-mouse-actions-keyboard-events/?utm_source=github&utm_medium=repo&utm_campaign=protractor-selenium-sample?) 193 | * [Complete Guide To Handle Multiple Windows With Selenium & Protractor](https://www.lambdatest.com/blog/handle-multiple-windows-selenium-protractor/?utm_source=github&utm_medium=repo&utm_campaign=protractor-selenium-sample?) 194 | * [Protractor Tutorial: Handling Timeouts With Selenium](https://www.lambdatest.com/blog/protractor-tutorial-handling-timeouts-with-selenium/?utm_source=github&utm_medium=repo&utm_campaign=protractor-selenium-sample?) 195 | * [Protractor Tutorial: Handling iFrames & Frames in Selenium](https://www.lambdatest.com/blog/protractor-tutorial-handling-iframes-frames-in-selenium/?utm_source=github&utm_medium=repo&utm_campaign=protractor-selenium-sample?) 196 | * [How To Handle Alerts And Popups In Protractor With Selenium?](https://www.lambdatest.com/blog/handle-alerts-popups-in-selenium-protractor/?utm_source=github&utm_medium=repo&utm_campaign=protractor-selenium-sample?) 197 | * [How To Debug Protractor Tests for Selenium Test Automation?](https://www.lambdatest.com/blog/how-to-debug-protractor-tests-for-selenium-test-automation/?utm_source=github&utm_medium=repo&utm_campaign=protractor-selenium-sample?) 198 | 199 | ## Documentation & Resources :books: 200 | 201 | Visit the following links to learn more about LambdaTest's features, setup and tutorials around test automation, mobile app testing, responsive testing, and manual testing. 202 | 203 | * [LambdaTest Documentation](https://www.lambdatest.com/support/docs/?utm_source=github&utm_medium=repo&utm_campaign=protractor-selenium-sample) 204 | * [LambdaTest Blog](https://www.lambdatest.com/blog/?utm_source=github&utm_medium=repo&utm_campaign=protractor-selenium-sample) 205 | * [LambdaTest Learning Hub](https://www.lambdatest.com/learning-hub/?utm_source=github&utm_medium=repo&utm_campaign=protractor-selenium-sample) 206 | 207 | ## LambdaTest Community :busts_in_silhouette: 208 | 209 | The [LambdaTest Community](https://community.lambdatest.com/?utm_source=github&utm_medium=repo&utm_campaign=protractor-selenium-sample?) allows people to interact with tech enthusiasts. Connect, ask questions, and learn from tech-savvy people. Discuss best practises in web development, testing, and DevOps with professionals from across the globe 🌎 210 | 211 | ## What's New At LambdaTest ❓ 212 | 213 | To stay updated with the latest features and product add-ons, visit [Changelog](https://changelog.lambdatest.com/) 214 | 215 | ## About LambdaTest 216 | 217 | [LambdaTest](https://www.lambdatest.com/?utm_source=github&utm_medium=repo&utm_campaign=protractor-selenium-sample) is a leading test execution and orchestration platform that is fast, reliable, scalable, and secure. It allows users to run both manual and automated testing of web and mobile apps across 3000+ different browsers, operating systems, and real device combinations. Using LambdaTest, businesses can ensure quicker developer feedback and hence achieve faster go to market. Over 500 enterprises and 1 Million + users across 130+ countries rely on LambdaTest for their testing needs. 218 | 219 | ### Features 220 | 221 | * Run Selenium, Cypress, Puppeteer, Playwright, and Appium automation tests across 3000+ real desktop and mobile environments. 222 | * Real-time cross browser testing on 3000+ environments. 223 | * Test on Real device cloud 224 | * Blazing fast test automation with HyperExecute 225 | * Accelerate testing, shorten job times and get faster feedback on code changes with Test At Scale. 226 | * Smart Visual Regression Testing on cloud 227 | * 120+ third-party integrations with your favorite tool for CI/CD, Project Management, Codeless Automation, and more. 228 | * Automated Screenshot testing across multiple browsers in a single click. 229 | * Local testing of web and mobile apps. 230 | * Online Accessibility Testing across 3000+ desktop and mobile browsers, browser versions, and operating systems. 231 | * Geolocation testing of web and mobile apps across 53+ countries. 232 | * LT Browser - for responsive testing across 50+ pre-installed mobile, tablets, desktop, and laptop viewports 233 | 234 | [](https://accounts.lambdatest.com/register) 235 | 236 | ## We are here to help you :headphones: 237 | 238 | * Got a query? we are available 24x7 to help. [Contact Us](support@lambdatest.com/?utm_source=github&utm_medium=repo&utm_campaign=protractor-selenium-sample?) 239 | * For more info, visit - [LambdaTest](https://www.lambdatest.com/?utm_source=github&utm_medium=repo&utm_campaign=protractor-selenium-sample) 240 | -------------------------------------------------------------------------------- /conf/fileupload.conf.js: -------------------------------------------------------------------------------- 1 | 2 | username= process.env.LT_USERNAME || "", 3 | accessKey= process.env.LT_ACCESS_KEY || "", 4 | 5 | exports.config = { 6 | 'specs': ['../specs/fileupload.js'], 7 | 8 | seleniumAddress: 'https://'+ username +':'+ accessKey +'@hub.lambdatest.com/wd/hub', 9 | 10 | 'capabilities': { 11 | 'build': 'protractor-LambdaTest-Single', 12 | 'browserName': 'chrome', 13 | 'version':'latest', 14 | 'platform': 'Windows 10' 15 | }, 16 | onPrepare: () => { 17 | 18 | myReporter = { 19 | specStarted: function(result) { 20 | specStr= result.id 21 | spec_id = parseInt(specStr[specStr.length -1]) 22 | browser.getProcessedConfig().then(function (config) { 23 | var fullName = config.specs[spec_id]; 24 | browser.executeScript("lambda-name="+fullName.split(/(\\|\/)/g).pop()) 25 | }); 26 | } 27 | }; 28 | jasmine.getEnv().addReporter(myReporter); 29 | }, 30 | onComplete: (passed) => { 31 | if(passed) 32 | browser.executeScript("lambda-status=passed"); 33 | else 34 | browser.executeScript("lambda-status=failed"); 35 | browser.quit(); 36 | } 37 | 38 | }; 39 | -------------------------------------------------------------------------------- /conf/local.conf.js: -------------------------------------------------------------------------------- 1 | username= process.env.LT_USERNAME || "", 2 | accessKey= process.env.LT_ACCESS_KEY || "", 3 | 4 | exports.config = { 5 | 'specs': [ '../specs/local.js' ], 6 | 7 | seleniumAddress: 'https://'+username+':'+accessKey+'@hub.lambdatest.com/wd/hub', 8 | 9 | 'capabilities': { 10 | 'build': 'protractor-selenium-sample', 11 | 'name': 'single-test', 12 | 'browserName': 'chrome', 13 | 'version':'latest', 14 | 'platform': 'Windows 10' 15 | }, 16 | onPrepare: () => { 17 | 18 | myReporter = { 19 | specStarted: function(result) { 20 | specStr= result.id 21 | spec_id = parseInt(specStr[specStr.length -1]) 22 | browser.getProcessedConfig().then(function (config) { 23 | var fullName = config.specs[spec_id]; 24 | browser.executeScript("lambda-name="+fullName.split(/(\\|\/)/g).pop()) 25 | }); 26 | } 27 | }; 28 | jasmine.getEnv().addReporter(myReporter); 29 | }, 30 | onComplete: (passed) => { 31 | if(passed) 32 | browser.executeScript("lambda-status=passed"); 33 | else 34 | browser.executeScript("lambda-status=failed"); 35 | browser.quit(); 36 | } 37 | }; 38 | -------------------------------------------------------------------------------- /conf/nonAngularfileupload.conf.js: -------------------------------------------------------------------------------- 1 | 2 | username= process.env.LT_USERNAME || "", 3 | accessKey= process.env.LT_ACCESS_KEY || "", 4 | 5 | exports.config = { 6 | 'specs': ['../specs/nonangular.js'], 7 | 8 | seleniumAddress: 'https://'+ username +':'+ accessKey +'@hub.lambdatest.com/wd/hub', 9 | 10 | 'capabilities': { 11 | 'build': 'protractor-LambdaTest-Single', 12 | 'browserName': 'chrome', 13 | 'version':'latest', 14 | 'platform': 'Windows 10' 15 | }, 16 | onPrepare: () => { 17 | 18 | myReporter = { 19 | specStarted: function(result) { 20 | specStr= result.id 21 | spec_id = parseInt(specStr[specStr.length -1]) 22 | browser.getProcessedConfig().then(function (config) { 23 | var fullName = config.specs[spec_id]; 24 | browser.executeScript("lambda-name="+fullName.split(/(\\|\/)/g).pop()) 25 | }); 26 | } 27 | }; 28 | jasmine.getEnv().addReporter(myReporter); 29 | }, 30 | onComplete: (passed) => { 31 | if(passed) 32 | browser.executeScript("lambda-status=passed"); 33 | else 34 | browser.executeScript("lambda-status=failed"); 35 | browser.quit(); 36 | } 37 | 38 | }; 39 | -------------------------------------------------------------------------------- /conf/parallel.conf.js: -------------------------------------------------------------------------------- 1 | username= process.env.LT_USERNAME || "", 2 | accessKey= process.env.LT_ACCESS_KEY || "", 3 | 4 | exports.config = { 5 | 'specs': [ '../specs/single.js' ], 6 | 7 | seleniumAddress: 'https://'+username+':'+accessKey+'@hub.lambdatest.com/wd/hub', 8 | 9 | 'commonCapabilities': { 10 | 'build': 'protractor-selenium-sample', 11 | 'tunnel': false 12 | }, 13 | 14 | 'multiCapabilities': [{ 15 | 'browserName': 'Chrome', 16 | 'version':'latest', 17 | 'platform': 'Windows 10' 18 | },{ 19 | 'browserName': 'Safari', 20 | 'version':'latest', 21 | 'platform': 'macOS Mojave' 22 | },{ 23 | 'browserName': 'MicrosoftEdge', 24 | 'version':'latest', 25 | 'platform': 'Windows 10' 26 | },{ 27 | 'browserName': 'Firefox', 28 | 'version':'latest', 29 | 'platform': 'Windows 10' 30 | },{ 31 | 'browserName': 'Internet explorer', 32 | 'version':'latest', 33 | 'platform': 'Windows 10' 34 | }], 35 | 36 | onPrepare: () => { 37 | 38 | myReporter = { 39 | specStarted: function(result) { 40 | specStr= result.id 41 | spec_id = parseInt(specStr[specStr.length -1]) 42 | browser.getProcessedConfig().then(function (config) { 43 | var fullName = config.specs[spec_id]; 44 | browser.executeScript("lambda-name="+fullName.split(/(\\|\/)/g).pop()) 45 | }); 46 | } 47 | }; 48 | jasmine.getEnv().addReporter(myReporter); 49 | }, 50 | onComplete: (passed) => { 51 | if(passed) 52 | browser.executeScript("lambda-status=passed"); 53 | else 54 | browser.executeScript("lambda-status=failed"); 55 | browser.quit(); 56 | } 57 | 58 | }; 59 | 60 | // Code to support common capabilities 61 | exports.config.multiCapabilities.forEach(function(caps){ 62 | for(var i in exports.config.commonCapabilities) caps[i] = caps[i] || exports.config.commonCapabilities[i]; 63 | }); 64 | -------------------------------------------------------------------------------- /conf/parallel_local.conf.js: -------------------------------------------------------------------------------- 1 | username= process.env.LT_USERNAME || "", 2 | accessKey= process.env.LT_ACCESS_KEY || "", 3 | 4 | exports.config = { 5 | 'specs': [ '../specs/local.js' ], 6 | 7 | seleniumAddress: 'https://'+username+':'+accessKey+'@hub.lambdatest.com/wd/hub', 8 | 9 | 'commonCapabilities': { 10 | 'build': 'protractor-selenium-sample', 11 | 'name': 'parallel-local-test', 12 | 'tunnel': true 13 | }, 14 | 15 | 'multiCapabilities': [{ 16 | 'browserName': 'Chrome', 17 | 'version':'latest', 18 | 'platform': 'Windows 10' 19 | },{ 20 | 'browserName': 'Safari', 21 | 'version':'latest', 22 | 'platform': 'macOS Mojave' 23 | },{ 24 | 'browserName': 'MicrosoftEdge', 25 | 'version':'latest', 26 | 'platform': 'Windows 10' 27 | },{ 28 | 'browserName': 'Firefox', 29 | 'version':'latest', 30 | 'platform': 'Windows 10' 31 | },{ 32 | 'browserName': 'Internet explorer', 33 | 'version':'latest', 34 | 'platform': 'Windows 10' 35 | }], 36 | 37 | 38 | onPrepare: () => { 39 | 40 | myReporter = { 41 | specStarted: function(result) { 42 | specStr= result.id 43 | spec_id = parseInt(specStr[specStr.length -1]) 44 | browser.getProcessedConfig().then(function (config) { 45 | var fullName = config.specs[spec_id]; 46 | browser.executeScript("lambda-name="+fullName.split(/(\\|\/)/g).pop()) 47 | }); 48 | } 49 | }; 50 | jasmine.getEnv().addReporter(myReporter); 51 | }, 52 | onComplete: (passed) => { 53 | if(passed) 54 | browser.executeScript("lambda-status=passed"); 55 | else 56 | browser.executeScript("lambda-status=failed"); 57 | browser.quit(); 58 | } 59 | }; 60 | 61 | // Code to support common capabilities 62 | exports.config.multiCapabilities.forEach(function(caps){ 63 | for(var i in exports.config.commonCapabilities) caps[i] = caps[i] || exports.config.commonCapabilities[i]; 64 | }); 65 | -------------------------------------------------------------------------------- /conf/single.conf.js: -------------------------------------------------------------------------------- 1 | 2 | username= process.env.LT_USERNAME || "", 3 | accessKey= process.env.LT_ACCESS_KEY || "", 4 | 5 | exports.config = { 6 | 'specs': ['../specs/single.js'], 7 | 8 | seleniumAddress: 'https://'+ username +':'+ accessKey +'@hub.lambdatest.com/wd/hub', 9 | 10 | 'capabilities': { 11 | 'build': 'protractor-LambdaTest-Single', 12 | 'browserName': 'chrome', 13 | 'version':'latest', 14 | 'platform': 'Windows 10', 15 | }, 16 | onPrepare: () => { 17 | 18 | myReporter = { 19 | specStarted: function(result) { 20 | specStr= result.id 21 | spec_id = parseInt(specStr[specStr.length -1]) 22 | browser.getProcessedConfig().then(function (config) { 23 | var fullName = config.specs[spec_id]; 24 | browser.executeScript("lambda-name="+fullName.split(/(\\|\/)/g).pop()) 25 | }); 26 | } 27 | }; 28 | jasmine.getEnv().addReporter(myReporter); 29 | }, 30 | onComplete: (passed) => { 31 | if(passed) 32 | browser.executeScript("lambda-status=passed"); 33 | else 34 | browser.executeScript("lambda-status=failed"); 35 | browser.quit(); 36 | } 37 | 38 | }; 39 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "protractor-lambdatest", 3 | "version": "0.1.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "protractor-lambdatest", 9 | "version": "0.1.0", 10 | "license": "MIT", 11 | "dependencies": { 12 | "protractor": "^5.4.2" 13 | }, 14 | "devDependencies": { 15 | "cross-env": "^7.0.3" 16 | } 17 | }, 18 | "node_modules/@types/q": { 19 | "version": "0.0.32", 20 | "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", 21 | "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=" 22 | }, 23 | "node_modules/@types/selenium-webdriver": { 24 | "version": "3.0.14", 25 | "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.14.tgz", 26 | "integrity": "sha512-4GbNCDs98uHCT/OMv40qQC/OpoPbYn9XdXeTiFwHBBFO6eJhYEPUu2zDKirXSbHlvDV8oZ9l8EQ+HrEx/YS9DQ==" 27 | }, 28 | "node_modules/adm-zip": { 29 | "version": "0.4.13", 30 | "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.13.tgz", 31 | "integrity": "sha512-fERNJX8sOXfel6qCBCMPvZLzENBEhZTzKqg6vrOW5pvoEaQuJhRU4ndTAh6lHOxn1I6jnz2NHra56ZODM751uw==", 32 | "engines": { 33 | "node": ">=0.3.0" 34 | } 35 | }, 36 | "node_modules/agent-base": { 37 | "version": "4.2.1", 38 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", 39 | "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", 40 | "dependencies": { 41 | "es6-promisify": "^5.0.0" 42 | }, 43 | "engines": { 44 | "node": ">= 4.0.0" 45 | } 46 | }, 47 | "node_modules/ajv": { 48 | "version": "6.7.0", 49 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.7.0.tgz", 50 | "integrity": "sha512-RZXPviBTtfmtka9n9sy1N5M5b82CbxWIR6HIis4s3WQTXDJamc/0gpCWNGz6EWdWp4DOfjzJfhz/AS9zVPjjWg==", 51 | "dependencies": { 52 | "fast-deep-equal": "^2.0.1", 53 | "fast-json-stable-stringify": "^2.0.0", 54 | "json-schema-traverse": "^0.4.1", 55 | "uri-js": "^4.2.2" 56 | } 57 | }, 58 | "node_modules/ansi-regex": { 59 | "version": "2.1.1", 60 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 61 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 62 | "engines": { 63 | "node": ">=0.10.0" 64 | } 65 | }, 66 | "node_modules/ansi-styles": { 67 | "version": "2.2.1", 68 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 69 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 70 | "engines": { 71 | "node": ">=0.10.0" 72 | } 73 | }, 74 | "node_modules/array-union": { 75 | "version": "1.0.2", 76 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", 77 | "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", 78 | "dependencies": { 79 | "array-uniq": "^1.0.1" 80 | }, 81 | "engines": { 82 | "node": ">=0.10.0" 83 | } 84 | }, 85 | "node_modules/array-uniq": { 86 | "version": "1.0.3", 87 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", 88 | "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", 89 | "engines": { 90 | "node": ">=0.10.0" 91 | } 92 | }, 93 | "node_modules/arrify": { 94 | "version": "1.0.1", 95 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 96 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", 97 | "engines": { 98 | "node": ">=0.10.0" 99 | } 100 | }, 101 | "node_modules/asn1": { 102 | "version": "0.2.4", 103 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", 104 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", 105 | "dependencies": { 106 | "safer-buffer": "~2.1.0" 107 | } 108 | }, 109 | "node_modules/assert-plus": { 110 | "version": "1.0.0", 111 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 112 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 113 | "engines": { 114 | "node": ">=0.8" 115 | } 116 | }, 117 | "node_modules/asynckit": { 118 | "version": "0.4.0", 119 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 120 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" 121 | }, 122 | "node_modules/aws-sign2": { 123 | "version": "0.7.0", 124 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 125 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", 126 | "engines": { 127 | "node": "*" 128 | } 129 | }, 130 | "node_modules/aws4": { 131 | "version": "1.8.0", 132 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", 133 | "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" 134 | }, 135 | "node_modules/balanced-match": { 136 | "version": "1.0.0", 137 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 138 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 139 | }, 140 | "node_modules/bcrypt-pbkdf": { 141 | "version": "1.0.2", 142 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 143 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", 144 | "dependencies": { 145 | "tweetnacl": "^0.14.3" 146 | } 147 | }, 148 | "node_modules/blocking-proxy": { 149 | "version": "1.0.1", 150 | "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", 151 | "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", 152 | "dependencies": { 153 | "minimist": "^1.2.0" 154 | }, 155 | "bin": { 156 | "blocking-proxy": "built/lib/bin.js" 157 | }, 158 | "engines": { 159 | "node": ">=6.9.x" 160 | } 161 | }, 162 | "node_modules/brace-expansion": { 163 | "version": "1.1.11", 164 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 165 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 166 | "dependencies": { 167 | "balanced-match": "^1.0.0", 168 | "concat-map": "0.0.1" 169 | } 170 | }, 171 | "node_modules/browserstack": { 172 | "version": "1.5.2", 173 | "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.5.2.tgz", 174 | "integrity": "sha512-+6AFt9HzhKykcPF79W6yjEUJcdvZOV0lIXdkORXMJftGrDl0OKWqRF4GHqpDNkxiceDT/uB7Fb/aDwktvXX7dg==", 175 | "dependencies": { 176 | "https-proxy-agent": "^2.2.1" 177 | } 178 | }, 179 | "node_modules/caseless": { 180 | "version": "0.12.0", 181 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 182 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" 183 | }, 184 | "node_modules/chalk": { 185 | "version": "1.1.3", 186 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 187 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 188 | "dependencies": { 189 | "ansi-styles": "^2.2.1", 190 | "escape-string-regexp": "^1.0.2", 191 | "has-ansi": "^2.0.0", 192 | "strip-ansi": "^3.0.0", 193 | "supports-color": "^2.0.0" 194 | }, 195 | "engines": { 196 | "node": ">=0.10.0" 197 | } 198 | }, 199 | "node_modules/combined-stream": { 200 | "version": "1.0.7", 201 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", 202 | "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", 203 | "dependencies": { 204 | "delayed-stream": "~1.0.0" 205 | }, 206 | "engines": { 207 | "node": ">= 0.8" 208 | } 209 | }, 210 | "node_modules/concat-map": { 211 | "version": "0.0.1", 212 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 213 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 214 | }, 215 | "node_modules/core-js": { 216 | "version": "2.3.0", 217 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz", 218 | "integrity": "sha1-+rg/uwstjchfpjbEudNMdUIMbWU=", 219 | "deprecated": "core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js." 220 | }, 221 | "node_modules/core-util-is": { 222 | "version": "1.0.2", 223 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 224 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 225 | }, 226 | "node_modules/cross-env": { 227 | "version": "7.0.3", 228 | "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", 229 | "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", 230 | "dev": true, 231 | "dependencies": { 232 | "cross-spawn": "^7.0.1" 233 | }, 234 | "bin": { 235 | "cross-env": "src/bin/cross-env.js", 236 | "cross-env-shell": "src/bin/cross-env-shell.js" 237 | }, 238 | "engines": { 239 | "node": ">=10.14", 240 | "npm": ">=6", 241 | "yarn": ">=1" 242 | } 243 | }, 244 | "node_modules/cross-spawn": { 245 | "version": "7.0.3", 246 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 247 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 248 | "dev": true, 249 | "dependencies": { 250 | "path-key": "^3.1.0", 251 | "shebang-command": "^2.0.0", 252 | "which": "^2.0.1" 253 | }, 254 | "engines": { 255 | "node": ">= 8" 256 | } 257 | }, 258 | "node_modules/dashdash": { 259 | "version": "1.14.1", 260 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 261 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 262 | "dependencies": { 263 | "assert-plus": "^1.0.0" 264 | }, 265 | "engines": { 266 | "node": ">=0.10" 267 | } 268 | }, 269 | "node_modules/debug": { 270 | "version": "3.2.6", 271 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", 272 | "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", 273 | "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", 274 | "dependencies": { 275 | "ms": "^2.1.1" 276 | } 277 | }, 278 | "node_modules/del": { 279 | "version": "2.2.2", 280 | "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", 281 | "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", 282 | "dependencies": { 283 | "globby": "^5.0.0", 284 | "is-path-cwd": "^1.0.0", 285 | "is-path-in-cwd": "^1.0.0", 286 | "object-assign": "^4.0.1", 287 | "pify": "^2.0.0", 288 | "pinkie-promise": "^2.0.0", 289 | "rimraf": "^2.2.8" 290 | }, 291 | "engines": { 292 | "node": ">=0.10.0" 293 | } 294 | }, 295 | "node_modules/delayed-stream": { 296 | "version": "1.0.0", 297 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 298 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", 299 | "engines": { 300 | "node": ">=0.4.0" 301 | } 302 | }, 303 | "node_modules/ecc-jsbn": { 304 | "version": "0.1.2", 305 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 306 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", 307 | "dependencies": { 308 | "jsbn": "~0.1.0", 309 | "safer-buffer": "^2.1.0" 310 | } 311 | }, 312 | "node_modules/es6-promise": { 313 | "version": "4.2.5", 314 | "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", 315 | "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==" 316 | }, 317 | "node_modules/es6-promisify": { 318 | "version": "5.0.0", 319 | "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", 320 | "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", 321 | "dependencies": { 322 | "es6-promise": "^4.0.3" 323 | } 324 | }, 325 | "node_modules/escape-string-regexp": { 326 | "version": "1.0.5", 327 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 328 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 329 | "engines": { 330 | "node": ">=0.8.0" 331 | } 332 | }, 333 | "node_modules/exit": { 334 | "version": "0.1.2", 335 | "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", 336 | "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", 337 | "engines": { 338 | "node": ">= 0.8.0" 339 | } 340 | }, 341 | "node_modules/extend": { 342 | "version": "3.0.2", 343 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 344 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" 345 | }, 346 | "node_modules/extsprintf": { 347 | "version": "1.3.0", 348 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 349 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", 350 | "engines": [ 351 | "node >=0.6.0" 352 | ] 353 | }, 354 | "node_modules/fast-deep-equal": { 355 | "version": "2.0.1", 356 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", 357 | "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" 358 | }, 359 | "node_modules/fast-json-stable-stringify": { 360 | "version": "2.0.0", 361 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", 362 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" 363 | }, 364 | "node_modules/forever-agent": { 365 | "version": "0.6.1", 366 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 367 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", 368 | "engines": { 369 | "node": "*" 370 | } 371 | }, 372 | "node_modules/form-data": { 373 | "version": "2.3.3", 374 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", 375 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", 376 | "dependencies": { 377 | "asynckit": "^0.4.0", 378 | "combined-stream": "^1.0.6", 379 | "mime-types": "^2.1.12" 380 | }, 381 | "engines": { 382 | "node": ">= 0.12" 383 | } 384 | }, 385 | "node_modules/fs.realpath": { 386 | "version": "1.0.0", 387 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 388 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 389 | }, 390 | "node_modules/getpass": { 391 | "version": "0.1.7", 392 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 393 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 394 | "dependencies": { 395 | "assert-plus": "^1.0.0" 396 | } 397 | }, 398 | "node_modules/glob": { 399 | "version": "7.1.3", 400 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", 401 | "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", 402 | "dependencies": { 403 | "fs.realpath": "^1.0.0", 404 | "inflight": "^1.0.4", 405 | "inherits": "2", 406 | "minimatch": "^3.0.4", 407 | "once": "^1.3.0", 408 | "path-is-absolute": "^1.0.0" 409 | }, 410 | "engines": { 411 | "node": "*" 412 | } 413 | }, 414 | "node_modules/globby": { 415 | "version": "5.0.0", 416 | "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", 417 | "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", 418 | "dependencies": { 419 | "array-union": "^1.0.1", 420 | "arrify": "^1.0.0", 421 | "glob": "^7.0.3", 422 | "object-assign": "^4.0.1", 423 | "pify": "^2.0.0", 424 | "pinkie-promise": "^2.0.0" 425 | }, 426 | "engines": { 427 | "node": ">=0.10.0" 428 | } 429 | }, 430 | "node_modules/har-schema": { 431 | "version": "2.0.0", 432 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 433 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", 434 | "engines": { 435 | "node": ">=4" 436 | } 437 | }, 438 | "node_modules/har-validator": { 439 | "version": "5.1.3", 440 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", 441 | "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", 442 | "deprecated": "this library is no longer supported", 443 | "dependencies": { 444 | "ajv": "^6.5.5", 445 | "har-schema": "^2.0.0" 446 | }, 447 | "engines": { 448 | "node": ">=6" 449 | } 450 | }, 451 | "node_modules/has-ansi": { 452 | "version": "2.0.0", 453 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 454 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 455 | "dependencies": { 456 | "ansi-regex": "^2.0.0" 457 | }, 458 | "engines": { 459 | "node": ">=0.10.0" 460 | } 461 | }, 462 | "node_modules/http-signature": { 463 | "version": "1.2.0", 464 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 465 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 466 | "dependencies": { 467 | "assert-plus": "^1.0.0", 468 | "jsprim": "^1.2.2", 469 | "sshpk": "^1.7.0" 470 | }, 471 | "engines": { 472 | "node": ">=0.8", 473 | "npm": ">=1.3.7" 474 | } 475 | }, 476 | "node_modules/https-proxy-agent": { 477 | "version": "2.2.1", 478 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", 479 | "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", 480 | "dependencies": { 481 | "agent-base": "^4.1.0", 482 | "debug": "^3.1.0" 483 | }, 484 | "engines": { 485 | "node": ">= 4.5.0" 486 | } 487 | }, 488 | "node_modules/immediate": { 489 | "version": "3.0.6", 490 | "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", 491 | "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" 492 | }, 493 | "node_modules/inflight": { 494 | "version": "1.0.6", 495 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 496 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 497 | "dependencies": { 498 | "once": "^1.3.0", 499 | "wrappy": "1" 500 | } 501 | }, 502 | "node_modules/inherits": { 503 | "version": "2.0.3", 504 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 505 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 506 | }, 507 | "node_modules/ini": { 508 | "version": "1.3.5", 509 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", 510 | "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", 511 | "deprecated": "Please update to ini >=1.3.6 to avoid a prototype pollution issue", 512 | "engines": { 513 | "node": "*" 514 | } 515 | }, 516 | "node_modules/is-path-cwd": { 517 | "version": "1.0.0", 518 | "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", 519 | "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", 520 | "engines": { 521 | "node": ">=0.10.0" 522 | } 523 | }, 524 | "node_modules/is-path-in-cwd": { 525 | "version": "1.0.1", 526 | "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", 527 | "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", 528 | "dependencies": { 529 | "is-path-inside": "^1.0.0" 530 | }, 531 | "engines": { 532 | "node": ">=0.10.0" 533 | } 534 | }, 535 | "node_modules/is-path-inside": { 536 | "version": "1.0.1", 537 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", 538 | "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", 539 | "dependencies": { 540 | "path-is-inside": "^1.0.1" 541 | }, 542 | "engines": { 543 | "node": ">=0.10.0" 544 | } 545 | }, 546 | "node_modules/is-typedarray": { 547 | "version": "1.0.0", 548 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 549 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" 550 | }, 551 | "node_modules/isarray": { 552 | "version": "1.0.0", 553 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 554 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 555 | }, 556 | "node_modules/isexe": { 557 | "version": "2.0.0", 558 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 559 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 560 | "dev": true 561 | }, 562 | "node_modules/isstream": { 563 | "version": "0.1.2", 564 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 565 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" 566 | }, 567 | "node_modules/jasmine": { 568 | "version": "2.8.0", 569 | "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", 570 | "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", 571 | "dependencies": { 572 | "exit": "^0.1.2", 573 | "glob": "^7.0.6", 574 | "jasmine-core": "~2.8.0" 575 | }, 576 | "bin": { 577 | "jasmine": "bin/jasmine.js" 578 | } 579 | }, 580 | "node_modules/jasmine-core": { 581 | "version": "2.8.0", 582 | "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", 583 | "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=" 584 | }, 585 | "node_modules/jasminewd2": { 586 | "version": "2.2.0", 587 | "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", 588 | "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", 589 | "engines": { 590 | "node": ">= 6.9.x" 591 | } 592 | }, 593 | "node_modules/jsbn": { 594 | "version": "0.1.1", 595 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 596 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" 597 | }, 598 | "node_modules/json-schema": { 599 | "version": "0.2.3", 600 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 601 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" 602 | }, 603 | "node_modules/json-schema-traverse": { 604 | "version": "0.4.1", 605 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 606 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" 607 | }, 608 | "node_modules/json-stringify-safe": { 609 | "version": "5.0.1", 610 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 611 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" 612 | }, 613 | "node_modules/jsprim": { 614 | "version": "1.4.1", 615 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 616 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 617 | "engines": [ 618 | "node >=0.6.0" 619 | ], 620 | "dependencies": { 621 | "assert-plus": "1.0.0", 622 | "extsprintf": "1.3.0", 623 | "json-schema": "0.2.3", 624 | "verror": "1.10.0" 625 | } 626 | }, 627 | "node_modules/jszip": { 628 | "version": "3.1.5", 629 | "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.1.5.tgz", 630 | "integrity": "sha512-5W8NUaFRFRqTOL7ZDDrx5qWHJyBXy6velVudIzQUSoqAAYqzSh2Z7/m0Rf1QbmQJccegD0r+YZxBjzqoBiEeJQ==", 631 | "dependencies": { 632 | "core-js": "~2.3.0", 633 | "es6-promise": "~3.0.2", 634 | "lie": "~3.1.0", 635 | "pako": "~1.0.2", 636 | "readable-stream": "~2.0.6" 637 | } 638 | }, 639 | "node_modules/jszip/node_modules/es6-promise": { 640 | "version": "3.0.2", 641 | "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz", 642 | "integrity": "sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y=" 643 | }, 644 | "node_modules/lie": { 645 | "version": "3.1.1", 646 | "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", 647 | "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", 648 | "dependencies": { 649 | "immediate": "~3.0.5" 650 | } 651 | }, 652 | "node_modules/mime-db": { 653 | "version": "1.37.0", 654 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", 655 | "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==", 656 | "engines": { 657 | "node": ">= 0.6" 658 | } 659 | }, 660 | "node_modules/mime-types": { 661 | "version": "2.1.21", 662 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", 663 | "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", 664 | "dependencies": { 665 | "mime-db": "~1.37.0" 666 | }, 667 | "engines": { 668 | "node": ">= 0.6" 669 | } 670 | }, 671 | "node_modules/minimatch": { 672 | "version": "3.0.4", 673 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 674 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 675 | "dependencies": { 676 | "brace-expansion": "^1.1.7" 677 | }, 678 | "engines": { 679 | "node": "*" 680 | } 681 | }, 682 | "node_modules/minimist": { 683 | "version": "1.2.0", 684 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 685 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" 686 | }, 687 | "node_modules/ms": { 688 | "version": "2.1.1", 689 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 690 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" 691 | }, 692 | "node_modules/oauth-sign": { 693 | "version": "0.9.0", 694 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", 695 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", 696 | "engines": { 697 | "node": "*" 698 | } 699 | }, 700 | "node_modules/object-assign": { 701 | "version": "4.1.1", 702 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 703 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 704 | "engines": { 705 | "node": ">=0.10.0" 706 | } 707 | }, 708 | "node_modules/once": { 709 | "version": "1.4.0", 710 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 711 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 712 | "dependencies": { 713 | "wrappy": "1" 714 | } 715 | }, 716 | "node_modules/optimist": { 717 | "version": "0.6.1", 718 | "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", 719 | "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", 720 | "dependencies": { 721 | "minimist": "~0.0.1", 722 | "wordwrap": "~0.0.2" 723 | } 724 | }, 725 | "node_modules/optimist/node_modules/minimist": { 726 | "version": "0.0.10", 727 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", 728 | "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" 729 | }, 730 | "node_modules/os-tmpdir": { 731 | "version": "1.0.2", 732 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 733 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 734 | "engines": { 735 | "node": ">=0.10.0" 736 | } 737 | }, 738 | "node_modules/pako": { 739 | "version": "1.0.8", 740 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.8.tgz", 741 | "integrity": "sha512-6i0HVbUfcKaTv+EG8ZTr75az7GFXcLYk9UyLEg7Notv/Ma+z/UG3TCoz6GiNeOrn1E/e63I0X/Hpw18jHOTUnA==" 742 | }, 743 | "node_modules/path-is-absolute": { 744 | "version": "1.0.1", 745 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 746 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 747 | "engines": { 748 | "node": ">=0.10.0" 749 | } 750 | }, 751 | "node_modules/path-is-inside": { 752 | "version": "1.0.2", 753 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 754 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" 755 | }, 756 | "node_modules/path-key": { 757 | "version": "3.1.1", 758 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 759 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 760 | "dev": true, 761 | "engines": { 762 | "node": ">=8" 763 | } 764 | }, 765 | "node_modules/performance-now": { 766 | "version": "2.1.0", 767 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 768 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" 769 | }, 770 | "node_modules/pify": { 771 | "version": "2.3.0", 772 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 773 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 774 | "engines": { 775 | "node": ">=0.10.0" 776 | } 777 | }, 778 | "node_modules/pinkie": { 779 | "version": "2.0.4", 780 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 781 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 782 | "engines": { 783 | "node": ">=0.10.0" 784 | } 785 | }, 786 | "node_modules/pinkie-promise": { 787 | "version": "2.0.1", 788 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 789 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 790 | "dependencies": { 791 | "pinkie": "^2.0.0" 792 | }, 793 | "engines": { 794 | "node": ">=0.10.0" 795 | } 796 | }, 797 | "node_modules/process-nextick-args": { 798 | "version": "1.0.7", 799 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", 800 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" 801 | }, 802 | "node_modules/protractor": { 803 | "version": "5.4.2", 804 | "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.4.2.tgz", 805 | "integrity": "sha512-zlIj64Cr6IOWP7RwxVeD8O4UskLYPoyIcg0HboWJL9T79F1F0VWtKkGTr/9GN6BKL+/Q/GmM7C9kFVCfDbP5sA==", 806 | "dependencies": { 807 | "@types/q": "^0.0.32", 808 | "@types/selenium-webdriver": "^3.0.0", 809 | "blocking-proxy": "^1.0.0", 810 | "browserstack": "^1.5.1", 811 | "chalk": "^1.1.3", 812 | "glob": "^7.0.3", 813 | "jasmine": "2.8.0", 814 | "jasminewd2": "^2.1.0", 815 | "optimist": "~0.6.0", 816 | "q": "1.4.1", 817 | "saucelabs": "^1.5.0", 818 | "selenium-webdriver": "3.6.0", 819 | "source-map-support": "~0.4.0", 820 | "webdriver-js-extender": "2.1.0", 821 | "webdriver-manager": "^12.0.6" 822 | }, 823 | "bin": { 824 | "protractor": "bin/protractor", 825 | "webdriver-manager": "bin/webdriver-manager" 826 | }, 827 | "engines": { 828 | "node": ">=6.9.x" 829 | } 830 | }, 831 | "node_modules/protractor/node_modules/webdriver-manager": { 832 | "version": "12.1.1", 833 | "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.1.tgz", 834 | "integrity": "sha512-L9TEQmZs6JbMMRQI1w60mfps265/NCr0toYJl7p/R2OAk6oXAfwI6jqYP7EWae+d7Ad2S2Aj4+rzxoSjqk3ZuA==", 835 | "dependencies": { 836 | "adm-zip": "^0.4.9", 837 | "chalk": "^1.1.1", 838 | "del": "^2.2.0", 839 | "glob": "^7.0.3", 840 | "ini": "^1.3.4", 841 | "minimist": "^1.2.0", 842 | "q": "^1.4.1", 843 | "request": "^2.87.0", 844 | "rimraf": "^2.5.2", 845 | "semver": "^5.3.0", 846 | "xml2js": "^0.4.17" 847 | }, 848 | "bin": { 849 | "webdriver-manager": "bin/webdriver-manager" 850 | }, 851 | "engines": { 852 | "node": ">=6.9.x" 853 | } 854 | }, 855 | "node_modules/psl": { 856 | "version": "1.1.31", 857 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", 858 | "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==" 859 | }, 860 | "node_modules/punycode": { 861 | "version": "2.1.1", 862 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 863 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 864 | "engines": { 865 | "node": ">=6" 866 | } 867 | }, 868 | "node_modules/q": { 869 | "version": "1.4.1", 870 | "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", 871 | "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", 872 | "engines": { 873 | "node": ">=0.6.0", 874 | "teleport": ">=0.2.0" 875 | } 876 | }, 877 | "node_modules/qs": { 878 | "version": "6.5.2", 879 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", 880 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", 881 | "engines": { 882 | "node": ">=0.6" 883 | } 884 | }, 885 | "node_modules/readable-stream": { 886 | "version": "2.0.6", 887 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", 888 | "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", 889 | "dependencies": { 890 | "core-util-is": "~1.0.0", 891 | "inherits": "~2.0.1", 892 | "isarray": "~1.0.0", 893 | "process-nextick-args": "~1.0.6", 894 | "string_decoder": "~0.10.x", 895 | "util-deprecate": "~1.0.1" 896 | } 897 | }, 898 | "node_modules/request": { 899 | "version": "2.88.0", 900 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", 901 | "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", 902 | "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", 903 | "dependencies": { 904 | "aws-sign2": "~0.7.0", 905 | "aws4": "^1.8.0", 906 | "caseless": "~0.12.0", 907 | "combined-stream": "~1.0.6", 908 | "extend": "~3.0.2", 909 | "forever-agent": "~0.6.1", 910 | "form-data": "~2.3.2", 911 | "har-validator": "~5.1.0", 912 | "http-signature": "~1.2.0", 913 | "is-typedarray": "~1.0.0", 914 | "isstream": "~0.1.2", 915 | "json-stringify-safe": "~5.0.1", 916 | "mime-types": "~2.1.19", 917 | "oauth-sign": "~0.9.0", 918 | "performance-now": "^2.1.0", 919 | "qs": "~6.5.2", 920 | "safe-buffer": "^5.1.2", 921 | "tough-cookie": "~2.4.3", 922 | "tunnel-agent": "^0.6.0", 923 | "uuid": "^3.3.2" 924 | }, 925 | "engines": { 926 | "node": ">= 4" 927 | } 928 | }, 929 | "node_modules/rimraf": { 930 | "version": "2.6.3", 931 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", 932 | "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", 933 | "dependencies": { 934 | "glob": "^7.1.3" 935 | }, 936 | "bin": { 937 | "rimraf": "bin.js" 938 | } 939 | }, 940 | "node_modules/safe-buffer": { 941 | "version": "5.1.2", 942 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 943 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 944 | }, 945 | "node_modules/safer-buffer": { 946 | "version": "2.1.2", 947 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 948 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 949 | }, 950 | "node_modules/saucelabs": { 951 | "version": "1.5.0", 952 | "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", 953 | "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", 954 | "dependencies": { 955 | "https-proxy-agent": "^2.2.1" 956 | }, 957 | "engines": { 958 | "node": "*" 959 | } 960 | }, 961 | "node_modules/sax": { 962 | "version": "1.2.4", 963 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", 964 | "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" 965 | }, 966 | "node_modules/selenium-webdriver": { 967 | "version": "3.6.0", 968 | "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", 969 | "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", 970 | "dependencies": { 971 | "jszip": "^3.1.3", 972 | "rimraf": "^2.5.4", 973 | "tmp": "0.0.30", 974 | "xml2js": "^0.4.17" 975 | }, 976 | "engines": { 977 | "node": ">= 6.9.0" 978 | } 979 | }, 980 | "node_modules/semver": { 981 | "version": "5.6.0", 982 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", 983 | "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", 984 | "bin": { 985 | "semver": "bin/semver" 986 | } 987 | }, 988 | "node_modules/shebang-command": { 989 | "version": "2.0.0", 990 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 991 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 992 | "dev": true, 993 | "dependencies": { 994 | "shebang-regex": "^3.0.0" 995 | }, 996 | "engines": { 997 | "node": ">=8" 998 | } 999 | }, 1000 | "node_modules/shebang-regex": { 1001 | "version": "3.0.0", 1002 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 1003 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 1004 | "dev": true, 1005 | "engines": { 1006 | "node": ">=8" 1007 | } 1008 | }, 1009 | "node_modules/source-map": { 1010 | "version": "0.5.7", 1011 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 1012 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 1013 | "engines": { 1014 | "node": ">=0.10.0" 1015 | } 1016 | }, 1017 | "node_modules/source-map-support": { 1018 | "version": "0.4.18", 1019 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", 1020 | "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", 1021 | "dependencies": { 1022 | "source-map": "^0.5.6" 1023 | } 1024 | }, 1025 | "node_modules/sshpk": { 1026 | "version": "1.16.0", 1027 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.0.tgz", 1028 | "integrity": "sha512-Zhev35/y7hRMcID/upReIvRse+I9SVhyVre/KTJSJQWMz3C3+G+HpO7m1wK/yckEtujKZ7dS4hkVxAnmHaIGVQ==", 1029 | "dependencies": { 1030 | "asn1": "~0.2.3", 1031 | "assert-plus": "^1.0.0", 1032 | "bcrypt-pbkdf": "^1.0.0", 1033 | "dashdash": "^1.12.0", 1034 | "ecc-jsbn": "~0.1.1", 1035 | "getpass": "^0.1.1", 1036 | "jsbn": "~0.1.0", 1037 | "safer-buffer": "^2.0.2", 1038 | "tweetnacl": "~0.14.0" 1039 | }, 1040 | "bin": { 1041 | "sshpk-conv": "bin/sshpk-conv", 1042 | "sshpk-sign": "bin/sshpk-sign", 1043 | "sshpk-verify": "bin/sshpk-verify" 1044 | }, 1045 | "engines": { 1046 | "node": ">=0.10.0" 1047 | } 1048 | }, 1049 | "node_modules/string_decoder": { 1050 | "version": "0.10.31", 1051 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", 1052 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" 1053 | }, 1054 | "node_modules/strip-ansi": { 1055 | "version": "3.0.1", 1056 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 1057 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 1058 | "dependencies": { 1059 | "ansi-regex": "^2.0.0" 1060 | }, 1061 | "engines": { 1062 | "node": ">=0.10.0" 1063 | } 1064 | }, 1065 | "node_modules/supports-color": { 1066 | "version": "2.0.0", 1067 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 1068 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 1069 | "engines": { 1070 | "node": ">=0.8.0" 1071 | } 1072 | }, 1073 | "node_modules/tmp": { 1074 | "version": "0.0.30", 1075 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", 1076 | "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", 1077 | "dependencies": { 1078 | "os-tmpdir": "~1.0.1" 1079 | }, 1080 | "engines": { 1081 | "node": ">=0.4.0" 1082 | } 1083 | }, 1084 | "node_modules/tough-cookie": { 1085 | "version": "2.4.3", 1086 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", 1087 | "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", 1088 | "dependencies": { 1089 | "psl": "^1.1.24", 1090 | "punycode": "^1.4.1" 1091 | }, 1092 | "engines": { 1093 | "node": ">=0.8" 1094 | } 1095 | }, 1096 | "node_modules/tough-cookie/node_modules/punycode": { 1097 | "version": "1.4.1", 1098 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 1099 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" 1100 | }, 1101 | "node_modules/tunnel-agent": { 1102 | "version": "0.6.0", 1103 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 1104 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 1105 | "dependencies": { 1106 | "safe-buffer": "^5.0.1" 1107 | }, 1108 | "engines": { 1109 | "node": "*" 1110 | } 1111 | }, 1112 | "node_modules/tweetnacl": { 1113 | "version": "0.14.5", 1114 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 1115 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" 1116 | }, 1117 | "node_modules/uri-js": { 1118 | "version": "4.2.2", 1119 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", 1120 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", 1121 | "dependencies": { 1122 | "punycode": "^2.1.0" 1123 | } 1124 | }, 1125 | "node_modules/util-deprecate": { 1126 | "version": "1.0.2", 1127 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1128 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 1129 | }, 1130 | "node_modules/uuid": { 1131 | "version": "3.3.2", 1132 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", 1133 | "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", 1134 | "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", 1135 | "bin": { 1136 | "uuid": "bin/uuid" 1137 | } 1138 | }, 1139 | "node_modules/verror": { 1140 | "version": "1.10.0", 1141 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 1142 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 1143 | "engines": [ 1144 | "node >=0.6.0" 1145 | ], 1146 | "dependencies": { 1147 | "assert-plus": "^1.0.0", 1148 | "core-util-is": "1.0.2", 1149 | "extsprintf": "^1.2.0" 1150 | } 1151 | }, 1152 | "node_modules/webdriver-js-extender": { 1153 | "version": "2.1.0", 1154 | "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", 1155 | "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", 1156 | "dependencies": { 1157 | "@types/selenium-webdriver": "^3.0.0", 1158 | "selenium-webdriver": "^3.0.1" 1159 | }, 1160 | "engines": { 1161 | "node": ">=6.9.x" 1162 | } 1163 | }, 1164 | "node_modules/which": { 1165 | "version": "2.0.2", 1166 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 1167 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 1168 | "dev": true, 1169 | "dependencies": { 1170 | "isexe": "^2.0.0" 1171 | }, 1172 | "bin": { 1173 | "node-which": "bin/node-which" 1174 | }, 1175 | "engines": { 1176 | "node": ">= 8" 1177 | } 1178 | }, 1179 | "node_modules/wordwrap": { 1180 | "version": "0.0.3", 1181 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", 1182 | "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", 1183 | "engines": { 1184 | "node": ">=0.4.0" 1185 | } 1186 | }, 1187 | "node_modules/wrappy": { 1188 | "version": "1.0.2", 1189 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1190 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 1191 | }, 1192 | "node_modules/xml2js": { 1193 | "version": "0.4.19", 1194 | "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", 1195 | "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", 1196 | "dependencies": { 1197 | "sax": ">=0.6.0", 1198 | "xmlbuilder": "~9.0.1" 1199 | } 1200 | }, 1201 | "node_modules/xmlbuilder": { 1202 | "version": "9.0.7", 1203 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", 1204 | "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", 1205 | "engines": { 1206 | "node": ">=4.0" 1207 | } 1208 | } 1209 | }, 1210 | "dependencies": { 1211 | "@types/q": { 1212 | "version": "0.0.32", 1213 | "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", 1214 | "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=" 1215 | }, 1216 | "@types/selenium-webdriver": { 1217 | "version": "3.0.14", 1218 | "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.14.tgz", 1219 | "integrity": "sha512-4GbNCDs98uHCT/OMv40qQC/OpoPbYn9XdXeTiFwHBBFO6eJhYEPUu2zDKirXSbHlvDV8oZ9l8EQ+HrEx/YS9DQ==" 1220 | }, 1221 | "adm-zip": { 1222 | "version": "0.4.13", 1223 | "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.13.tgz", 1224 | "integrity": "sha512-fERNJX8sOXfel6qCBCMPvZLzENBEhZTzKqg6vrOW5pvoEaQuJhRU4ndTAh6lHOxn1I6jnz2NHra56ZODM751uw==" 1225 | }, 1226 | "agent-base": { 1227 | "version": "4.2.1", 1228 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", 1229 | "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", 1230 | "requires": { 1231 | "es6-promisify": "^5.0.0" 1232 | } 1233 | }, 1234 | "ajv": { 1235 | "version": "6.7.0", 1236 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.7.0.tgz", 1237 | "integrity": "sha512-RZXPviBTtfmtka9n9sy1N5M5b82CbxWIR6HIis4s3WQTXDJamc/0gpCWNGz6EWdWp4DOfjzJfhz/AS9zVPjjWg==", 1238 | "requires": { 1239 | "fast-deep-equal": "^2.0.1", 1240 | "fast-json-stable-stringify": "^2.0.0", 1241 | "json-schema-traverse": "^0.4.1", 1242 | "uri-js": "^4.2.2" 1243 | } 1244 | }, 1245 | "ansi-regex": { 1246 | "version": "2.1.1", 1247 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 1248 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" 1249 | }, 1250 | "ansi-styles": { 1251 | "version": "2.2.1", 1252 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 1253 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" 1254 | }, 1255 | "array-union": { 1256 | "version": "1.0.2", 1257 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", 1258 | "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", 1259 | "requires": { 1260 | "array-uniq": "^1.0.1" 1261 | } 1262 | }, 1263 | "array-uniq": { 1264 | "version": "1.0.3", 1265 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", 1266 | "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" 1267 | }, 1268 | "arrify": { 1269 | "version": "1.0.1", 1270 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 1271 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" 1272 | }, 1273 | "asn1": { 1274 | "version": "0.2.4", 1275 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", 1276 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", 1277 | "requires": { 1278 | "safer-buffer": "~2.1.0" 1279 | } 1280 | }, 1281 | "assert-plus": { 1282 | "version": "1.0.0", 1283 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 1284 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" 1285 | }, 1286 | "asynckit": { 1287 | "version": "0.4.0", 1288 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 1289 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" 1290 | }, 1291 | "aws-sign2": { 1292 | "version": "0.7.0", 1293 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 1294 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" 1295 | }, 1296 | "aws4": { 1297 | "version": "1.8.0", 1298 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", 1299 | "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" 1300 | }, 1301 | "balanced-match": { 1302 | "version": "1.0.0", 1303 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 1304 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 1305 | }, 1306 | "bcrypt-pbkdf": { 1307 | "version": "1.0.2", 1308 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 1309 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", 1310 | "requires": { 1311 | "tweetnacl": "^0.14.3" 1312 | } 1313 | }, 1314 | "blocking-proxy": { 1315 | "version": "1.0.1", 1316 | "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", 1317 | "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", 1318 | "requires": { 1319 | "minimist": "^1.2.0" 1320 | } 1321 | }, 1322 | "brace-expansion": { 1323 | "version": "1.1.11", 1324 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1325 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1326 | "requires": { 1327 | "balanced-match": "^1.0.0", 1328 | "concat-map": "0.0.1" 1329 | } 1330 | }, 1331 | "browserstack": { 1332 | "version": "1.5.2", 1333 | "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.5.2.tgz", 1334 | "integrity": "sha512-+6AFt9HzhKykcPF79W6yjEUJcdvZOV0lIXdkORXMJftGrDl0OKWqRF4GHqpDNkxiceDT/uB7Fb/aDwktvXX7dg==", 1335 | "requires": { 1336 | "https-proxy-agent": "^2.2.1" 1337 | } 1338 | }, 1339 | "caseless": { 1340 | "version": "0.12.0", 1341 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 1342 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" 1343 | }, 1344 | "chalk": { 1345 | "version": "1.1.3", 1346 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 1347 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 1348 | "requires": { 1349 | "ansi-styles": "^2.2.1", 1350 | "escape-string-regexp": "^1.0.2", 1351 | "has-ansi": "^2.0.0", 1352 | "strip-ansi": "^3.0.0", 1353 | "supports-color": "^2.0.0" 1354 | } 1355 | }, 1356 | "combined-stream": { 1357 | "version": "1.0.7", 1358 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", 1359 | "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", 1360 | "requires": { 1361 | "delayed-stream": "~1.0.0" 1362 | } 1363 | }, 1364 | "concat-map": { 1365 | "version": "0.0.1", 1366 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1367 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 1368 | }, 1369 | "core-js": { 1370 | "version": "2.3.0", 1371 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz", 1372 | "integrity": "sha1-+rg/uwstjchfpjbEudNMdUIMbWU=" 1373 | }, 1374 | "core-util-is": { 1375 | "version": "1.0.2", 1376 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 1377 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 1378 | }, 1379 | "cross-env": { 1380 | "version": "7.0.3", 1381 | "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", 1382 | "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", 1383 | "dev": true, 1384 | "requires": { 1385 | "cross-spawn": "^7.0.1" 1386 | } 1387 | }, 1388 | "cross-spawn": { 1389 | "version": "7.0.3", 1390 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 1391 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 1392 | "dev": true, 1393 | "requires": { 1394 | "path-key": "^3.1.0", 1395 | "shebang-command": "^2.0.0", 1396 | "which": "^2.0.1" 1397 | } 1398 | }, 1399 | "dashdash": { 1400 | "version": "1.14.1", 1401 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 1402 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 1403 | "requires": { 1404 | "assert-plus": "^1.0.0" 1405 | } 1406 | }, 1407 | "debug": { 1408 | "version": "3.2.6", 1409 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", 1410 | "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", 1411 | "requires": { 1412 | "ms": "^2.1.1" 1413 | } 1414 | }, 1415 | "del": { 1416 | "version": "2.2.2", 1417 | "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", 1418 | "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", 1419 | "requires": { 1420 | "globby": "^5.0.0", 1421 | "is-path-cwd": "^1.0.0", 1422 | "is-path-in-cwd": "^1.0.0", 1423 | "object-assign": "^4.0.1", 1424 | "pify": "^2.0.0", 1425 | "pinkie-promise": "^2.0.0", 1426 | "rimraf": "^2.2.8" 1427 | } 1428 | }, 1429 | "delayed-stream": { 1430 | "version": "1.0.0", 1431 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 1432 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" 1433 | }, 1434 | "ecc-jsbn": { 1435 | "version": "0.1.2", 1436 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 1437 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", 1438 | "requires": { 1439 | "jsbn": "~0.1.0", 1440 | "safer-buffer": "^2.1.0" 1441 | } 1442 | }, 1443 | "es6-promise": { 1444 | "version": "4.2.5", 1445 | "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", 1446 | "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==" 1447 | }, 1448 | "es6-promisify": { 1449 | "version": "5.0.0", 1450 | "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", 1451 | "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", 1452 | "requires": { 1453 | "es6-promise": "^4.0.3" 1454 | } 1455 | }, 1456 | "escape-string-regexp": { 1457 | "version": "1.0.5", 1458 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1459 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" 1460 | }, 1461 | "exit": { 1462 | "version": "0.1.2", 1463 | "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", 1464 | "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" 1465 | }, 1466 | "extend": { 1467 | "version": "3.0.2", 1468 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 1469 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" 1470 | }, 1471 | "extsprintf": { 1472 | "version": "1.3.0", 1473 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 1474 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" 1475 | }, 1476 | "fast-deep-equal": { 1477 | "version": "2.0.1", 1478 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", 1479 | "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" 1480 | }, 1481 | "fast-json-stable-stringify": { 1482 | "version": "2.0.0", 1483 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", 1484 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" 1485 | }, 1486 | "forever-agent": { 1487 | "version": "0.6.1", 1488 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 1489 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" 1490 | }, 1491 | "form-data": { 1492 | "version": "2.3.3", 1493 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", 1494 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", 1495 | "requires": { 1496 | "asynckit": "^0.4.0", 1497 | "combined-stream": "^1.0.6", 1498 | "mime-types": "^2.1.12" 1499 | } 1500 | }, 1501 | "fs.realpath": { 1502 | "version": "1.0.0", 1503 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1504 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 1505 | }, 1506 | "getpass": { 1507 | "version": "0.1.7", 1508 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 1509 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 1510 | "requires": { 1511 | "assert-plus": "^1.0.0" 1512 | } 1513 | }, 1514 | "glob": { 1515 | "version": "7.1.3", 1516 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", 1517 | "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", 1518 | "requires": { 1519 | "fs.realpath": "^1.0.0", 1520 | "inflight": "^1.0.4", 1521 | "inherits": "2", 1522 | "minimatch": "^3.0.4", 1523 | "once": "^1.3.0", 1524 | "path-is-absolute": "^1.0.0" 1525 | } 1526 | }, 1527 | "globby": { 1528 | "version": "5.0.0", 1529 | "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", 1530 | "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", 1531 | "requires": { 1532 | "array-union": "^1.0.1", 1533 | "arrify": "^1.0.0", 1534 | "glob": "^7.0.3", 1535 | "object-assign": "^4.0.1", 1536 | "pify": "^2.0.0", 1537 | "pinkie-promise": "^2.0.0" 1538 | } 1539 | }, 1540 | "har-schema": { 1541 | "version": "2.0.0", 1542 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 1543 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" 1544 | }, 1545 | "har-validator": { 1546 | "version": "5.1.3", 1547 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", 1548 | "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", 1549 | "requires": { 1550 | "ajv": "^6.5.5", 1551 | "har-schema": "^2.0.0" 1552 | } 1553 | }, 1554 | "has-ansi": { 1555 | "version": "2.0.0", 1556 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 1557 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 1558 | "requires": { 1559 | "ansi-regex": "^2.0.0" 1560 | } 1561 | }, 1562 | "http-signature": { 1563 | "version": "1.2.0", 1564 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 1565 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 1566 | "requires": { 1567 | "assert-plus": "^1.0.0", 1568 | "jsprim": "^1.2.2", 1569 | "sshpk": "^1.7.0" 1570 | } 1571 | }, 1572 | "https-proxy-agent": { 1573 | "version": "2.2.1", 1574 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", 1575 | "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", 1576 | "requires": { 1577 | "agent-base": "^4.1.0", 1578 | "debug": "^3.1.0" 1579 | } 1580 | }, 1581 | "immediate": { 1582 | "version": "3.0.6", 1583 | "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", 1584 | "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" 1585 | }, 1586 | "inflight": { 1587 | "version": "1.0.6", 1588 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1589 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1590 | "requires": { 1591 | "once": "^1.3.0", 1592 | "wrappy": "1" 1593 | } 1594 | }, 1595 | "inherits": { 1596 | "version": "2.0.3", 1597 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 1598 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 1599 | }, 1600 | "ini": { 1601 | "version": "1.3.5", 1602 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", 1603 | "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" 1604 | }, 1605 | "is-path-cwd": { 1606 | "version": "1.0.0", 1607 | "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", 1608 | "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=" 1609 | }, 1610 | "is-path-in-cwd": { 1611 | "version": "1.0.1", 1612 | "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", 1613 | "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", 1614 | "requires": { 1615 | "is-path-inside": "^1.0.0" 1616 | } 1617 | }, 1618 | "is-path-inside": { 1619 | "version": "1.0.1", 1620 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", 1621 | "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", 1622 | "requires": { 1623 | "path-is-inside": "^1.0.1" 1624 | } 1625 | }, 1626 | "is-typedarray": { 1627 | "version": "1.0.0", 1628 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 1629 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" 1630 | }, 1631 | "isarray": { 1632 | "version": "1.0.0", 1633 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1634 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 1635 | }, 1636 | "isexe": { 1637 | "version": "2.0.0", 1638 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1639 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 1640 | "dev": true 1641 | }, 1642 | "isstream": { 1643 | "version": "0.1.2", 1644 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 1645 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" 1646 | }, 1647 | "jasmine": { 1648 | "version": "2.8.0", 1649 | "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", 1650 | "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", 1651 | "requires": { 1652 | "exit": "^0.1.2", 1653 | "glob": "^7.0.6", 1654 | "jasmine-core": "~2.8.0" 1655 | } 1656 | }, 1657 | "jasmine-core": { 1658 | "version": "2.8.0", 1659 | "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", 1660 | "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=" 1661 | }, 1662 | "jasminewd2": { 1663 | "version": "2.2.0", 1664 | "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", 1665 | "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=" 1666 | }, 1667 | "jsbn": { 1668 | "version": "0.1.1", 1669 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 1670 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" 1671 | }, 1672 | "json-schema": { 1673 | "version": "0.2.3", 1674 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 1675 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" 1676 | }, 1677 | "json-schema-traverse": { 1678 | "version": "0.4.1", 1679 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 1680 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" 1681 | }, 1682 | "json-stringify-safe": { 1683 | "version": "5.0.1", 1684 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 1685 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" 1686 | }, 1687 | "jsprim": { 1688 | "version": "1.4.1", 1689 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 1690 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 1691 | "requires": { 1692 | "assert-plus": "1.0.0", 1693 | "extsprintf": "1.3.0", 1694 | "json-schema": "0.2.3", 1695 | "verror": "1.10.0" 1696 | } 1697 | }, 1698 | "jszip": { 1699 | "version": "3.1.5", 1700 | "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.1.5.tgz", 1701 | "integrity": "sha512-5W8NUaFRFRqTOL7ZDDrx5qWHJyBXy6velVudIzQUSoqAAYqzSh2Z7/m0Rf1QbmQJccegD0r+YZxBjzqoBiEeJQ==", 1702 | "requires": { 1703 | "core-js": "~2.3.0", 1704 | "es6-promise": "~3.0.2", 1705 | "lie": "~3.1.0", 1706 | "pako": "~1.0.2", 1707 | "readable-stream": "~2.0.6" 1708 | }, 1709 | "dependencies": { 1710 | "es6-promise": { 1711 | "version": "3.0.2", 1712 | "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz", 1713 | "integrity": "sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y=" 1714 | } 1715 | } 1716 | }, 1717 | "lie": { 1718 | "version": "3.1.1", 1719 | "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", 1720 | "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", 1721 | "requires": { 1722 | "immediate": "~3.0.5" 1723 | } 1724 | }, 1725 | "mime-db": { 1726 | "version": "1.37.0", 1727 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", 1728 | "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" 1729 | }, 1730 | "mime-types": { 1731 | "version": "2.1.21", 1732 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", 1733 | "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", 1734 | "requires": { 1735 | "mime-db": "~1.37.0" 1736 | } 1737 | }, 1738 | "minimatch": { 1739 | "version": "3.0.4", 1740 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 1741 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 1742 | "requires": { 1743 | "brace-expansion": "^1.1.7" 1744 | } 1745 | }, 1746 | "minimist": { 1747 | "version": "1.2.0", 1748 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 1749 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" 1750 | }, 1751 | "ms": { 1752 | "version": "2.1.1", 1753 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 1754 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" 1755 | }, 1756 | "oauth-sign": { 1757 | "version": "0.9.0", 1758 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", 1759 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" 1760 | }, 1761 | "object-assign": { 1762 | "version": "4.1.1", 1763 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1764 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" 1765 | }, 1766 | "once": { 1767 | "version": "1.4.0", 1768 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1769 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1770 | "requires": { 1771 | "wrappy": "1" 1772 | } 1773 | }, 1774 | "optimist": { 1775 | "version": "0.6.1", 1776 | "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", 1777 | "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", 1778 | "requires": { 1779 | "minimist": "~0.0.1", 1780 | "wordwrap": "~0.0.2" 1781 | }, 1782 | "dependencies": { 1783 | "minimist": { 1784 | "version": "0.0.10", 1785 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", 1786 | "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" 1787 | } 1788 | } 1789 | }, 1790 | "os-tmpdir": { 1791 | "version": "1.0.2", 1792 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 1793 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" 1794 | }, 1795 | "pako": { 1796 | "version": "1.0.8", 1797 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.8.tgz", 1798 | "integrity": "sha512-6i0HVbUfcKaTv+EG8ZTr75az7GFXcLYk9UyLEg7Notv/Ma+z/UG3TCoz6GiNeOrn1E/e63I0X/Hpw18jHOTUnA==" 1799 | }, 1800 | "path-is-absolute": { 1801 | "version": "1.0.1", 1802 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1803 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 1804 | }, 1805 | "path-is-inside": { 1806 | "version": "1.0.2", 1807 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 1808 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" 1809 | }, 1810 | "path-key": { 1811 | "version": "3.1.1", 1812 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 1813 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 1814 | "dev": true 1815 | }, 1816 | "performance-now": { 1817 | "version": "2.1.0", 1818 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 1819 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" 1820 | }, 1821 | "pify": { 1822 | "version": "2.3.0", 1823 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 1824 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" 1825 | }, 1826 | "pinkie": { 1827 | "version": "2.0.4", 1828 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 1829 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" 1830 | }, 1831 | "pinkie-promise": { 1832 | "version": "2.0.1", 1833 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 1834 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 1835 | "requires": { 1836 | "pinkie": "^2.0.0" 1837 | } 1838 | }, 1839 | "process-nextick-args": { 1840 | "version": "1.0.7", 1841 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", 1842 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" 1843 | }, 1844 | "protractor": { 1845 | "version": "5.4.2", 1846 | "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.4.2.tgz", 1847 | "integrity": "sha512-zlIj64Cr6IOWP7RwxVeD8O4UskLYPoyIcg0HboWJL9T79F1F0VWtKkGTr/9GN6BKL+/Q/GmM7C9kFVCfDbP5sA==", 1848 | "requires": { 1849 | "@types/q": "^0.0.32", 1850 | "@types/selenium-webdriver": "^3.0.0", 1851 | "blocking-proxy": "^1.0.0", 1852 | "browserstack": "^1.5.1", 1853 | "chalk": "^1.1.3", 1854 | "glob": "^7.0.3", 1855 | "jasmine": "2.8.0", 1856 | "jasminewd2": "^2.1.0", 1857 | "optimist": "~0.6.0", 1858 | "q": "1.4.1", 1859 | "saucelabs": "^1.5.0", 1860 | "selenium-webdriver": "3.6.0", 1861 | "source-map-support": "~0.4.0", 1862 | "webdriver-js-extender": "2.1.0", 1863 | "webdriver-manager": "^12.0.6" 1864 | }, 1865 | "dependencies": { 1866 | "webdriver-manager": { 1867 | "version": "12.1.1", 1868 | "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.1.tgz", 1869 | "integrity": "sha512-L9TEQmZs6JbMMRQI1w60mfps265/NCr0toYJl7p/R2OAk6oXAfwI6jqYP7EWae+d7Ad2S2Aj4+rzxoSjqk3ZuA==", 1870 | "requires": { 1871 | "adm-zip": "^0.4.9", 1872 | "chalk": "^1.1.1", 1873 | "del": "^2.2.0", 1874 | "glob": "^7.0.3", 1875 | "ini": "^1.3.4", 1876 | "minimist": "^1.2.0", 1877 | "q": "^1.4.1", 1878 | "request": "^2.87.0", 1879 | "rimraf": "^2.5.2", 1880 | "semver": "^5.3.0", 1881 | "xml2js": "^0.4.17" 1882 | } 1883 | } 1884 | } 1885 | }, 1886 | "psl": { 1887 | "version": "1.1.31", 1888 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", 1889 | "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==" 1890 | }, 1891 | "punycode": { 1892 | "version": "2.1.1", 1893 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 1894 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" 1895 | }, 1896 | "q": { 1897 | "version": "1.4.1", 1898 | "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", 1899 | "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=" 1900 | }, 1901 | "qs": { 1902 | "version": "6.5.2", 1903 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", 1904 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" 1905 | }, 1906 | "readable-stream": { 1907 | "version": "2.0.6", 1908 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", 1909 | "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", 1910 | "requires": { 1911 | "core-util-is": "~1.0.0", 1912 | "inherits": "~2.0.1", 1913 | "isarray": "~1.0.0", 1914 | "process-nextick-args": "~1.0.6", 1915 | "string_decoder": "~0.10.x", 1916 | "util-deprecate": "~1.0.1" 1917 | } 1918 | }, 1919 | "request": { 1920 | "version": "2.88.0", 1921 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", 1922 | "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", 1923 | "requires": { 1924 | "aws-sign2": "~0.7.0", 1925 | "aws4": "^1.8.0", 1926 | "caseless": "~0.12.0", 1927 | "combined-stream": "~1.0.6", 1928 | "extend": "~3.0.2", 1929 | "forever-agent": "~0.6.1", 1930 | "form-data": "~2.3.2", 1931 | "har-validator": "~5.1.0", 1932 | "http-signature": "~1.2.0", 1933 | "is-typedarray": "~1.0.0", 1934 | "isstream": "~0.1.2", 1935 | "json-stringify-safe": "~5.0.1", 1936 | "mime-types": "~2.1.19", 1937 | "oauth-sign": "~0.9.0", 1938 | "performance-now": "^2.1.0", 1939 | "qs": "~6.5.2", 1940 | "safe-buffer": "^5.1.2", 1941 | "tough-cookie": "~2.4.3", 1942 | "tunnel-agent": "^0.6.0", 1943 | "uuid": "^3.3.2" 1944 | } 1945 | }, 1946 | "rimraf": { 1947 | "version": "2.6.3", 1948 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", 1949 | "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", 1950 | "requires": { 1951 | "glob": "^7.1.3" 1952 | } 1953 | }, 1954 | "safe-buffer": { 1955 | "version": "5.1.2", 1956 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1957 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 1958 | }, 1959 | "safer-buffer": { 1960 | "version": "2.1.2", 1961 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1962 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 1963 | }, 1964 | "saucelabs": { 1965 | "version": "1.5.0", 1966 | "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", 1967 | "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", 1968 | "requires": { 1969 | "https-proxy-agent": "^2.2.1" 1970 | } 1971 | }, 1972 | "sax": { 1973 | "version": "1.2.4", 1974 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", 1975 | "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" 1976 | }, 1977 | "selenium-webdriver": { 1978 | "version": "3.6.0", 1979 | "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", 1980 | "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", 1981 | "requires": { 1982 | "jszip": "^3.1.3", 1983 | "rimraf": "^2.5.4", 1984 | "tmp": "0.0.30", 1985 | "xml2js": "^0.4.17" 1986 | } 1987 | }, 1988 | "semver": { 1989 | "version": "5.6.0", 1990 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", 1991 | "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" 1992 | }, 1993 | "shebang-command": { 1994 | "version": "2.0.0", 1995 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 1996 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 1997 | "dev": true, 1998 | "requires": { 1999 | "shebang-regex": "^3.0.0" 2000 | } 2001 | }, 2002 | "shebang-regex": { 2003 | "version": "3.0.0", 2004 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 2005 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 2006 | "dev": true 2007 | }, 2008 | "source-map": { 2009 | "version": "0.5.7", 2010 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 2011 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" 2012 | }, 2013 | "source-map-support": { 2014 | "version": "0.4.18", 2015 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", 2016 | "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", 2017 | "requires": { 2018 | "source-map": "^0.5.6" 2019 | } 2020 | }, 2021 | "sshpk": { 2022 | "version": "1.16.0", 2023 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.0.tgz", 2024 | "integrity": "sha512-Zhev35/y7hRMcID/upReIvRse+I9SVhyVre/KTJSJQWMz3C3+G+HpO7m1wK/yckEtujKZ7dS4hkVxAnmHaIGVQ==", 2025 | "requires": { 2026 | "asn1": "~0.2.3", 2027 | "assert-plus": "^1.0.0", 2028 | "bcrypt-pbkdf": "^1.0.0", 2029 | "dashdash": "^1.12.0", 2030 | "ecc-jsbn": "~0.1.1", 2031 | "getpass": "^0.1.1", 2032 | "jsbn": "~0.1.0", 2033 | "safer-buffer": "^2.0.2", 2034 | "tweetnacl": "~0.14.0" 2035 | } 2036 | }, 2037 | "string_decoder": { 2038 | "version": "0.10.31", 2039 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", 2040 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" 2041 | }, 2042 | "strip-ansi": { 2043 | "version": "3.0.1", 2044 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 2045 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 2046 | "requires": { 2047 | "ansi-regex": "^2.0.0" 2048 | } 2049 | }, 2050 | "supports-color": { 2051 | "version": "2.0.0", 2052 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 2053 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" 2054 | }, 2055 | "tmp": { 2056 | "version": "0.0.30", 2057 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", 2058 | "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", 2059 | "requires": { 2060 | "os-tmpdir": "~1.0.1" 2061 | } 2062 | }, 2063 | "tough-cookie": { 2064 | "version": "2.4.3", 2065 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", 2066 | "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", 2067 | "requires": { 2068 | "psl": "^1.1.24", 2069 | "punycode": "^1.4.1" 2070 | }, 2071 | "dependencies": { 2072 | "punycode": { 2073 | "version": "1.4.1", 2074 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 2075 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" 2076 | } 2077 | } 2078 | }, 2079 | "tunnel-agent": { 2080 | "version": "0.6.0", 2081 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 2082 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 2083 | "requires": { 2084 | "safe-buffer": "^5.0.1" 2085 | } 2086 | }, 2087 | "tweetnacl": { 2088 | "version": "0.14.5", 2089 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 2090 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" 2091 | }, 2092 | "uri-js": { 2093 | "version": "4.2.2", 2094 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", 2095 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", 2096 | "requires": { 2097 | "punycode": "^2.1.0" 2098 | } 2099 | }, 2100 | "util-deprecate": { 2101 | "version": "1.0.2", 2102 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2103 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 2104 | }, 2105 | "uuid": { 2106 | "version": "3.3.2", 2107 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", 2108 | "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" 2109 | }, 2110 | "verror": { 2111 | "version": "1.10.0", 2112 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 2113 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 2114 | "requires": { 2115 | "assert-plus": "^1.0.0", 2116 | "core-util-is": "1.0.2", 2117 | "extsprintf": "^1.2.0" 2118 | } 2119 | }, 2120 | "webdriver-js-extender": { 2121 | "version": "2.1.0", 2122 | "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", 2123 | "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", 2124 | "requires": { 2125 | "@types/selenium-webdriver": "^3.0.0", 2126 | "selenium-webdriver": "^3.0.1" 2127 | } 2128 | }, 2129 | "which": { 2130 | "version": "2.0.2", 2131 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 2132 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 2133 | "dev": true, 2134 | "requires": { 2135 | "isexe": "^2.0.0" 2136 | } 2137 | }, 2138 | "wordwrap": { 2139 | "version": "0.0.3", 2140 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", 2141 | "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" 2142 | }, 2143 | "wrappy": { 2144 | "version": "1.0.2", 2145 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2146 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 2147 | }, 2148 | "xml2js": { 2149 | "version": "0.4.19", 2150 | "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", 2151 | "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", 2152 | "requires": { 2153 | "sax": ">=0.6.0", 2154 | "xmlbuilder": "~9.0.1" 2155 | } 2156 | }, 2157 | "xmlbuilder": { 2158 | "version": "9.0.7", 2159 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", 2160 | "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" 2161 | } 2162 | } 2163 | } 2164 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "protractor-lambdatest", 3 | "version": "0.1.0", 4 | "readme": "Protractor Integration with [lambdatest](https://www.lambdatest.com)", 5 | "description": "Selenium examples for Protractor and lambdatest Automate", 6 | "scripts": { 7 | "test": "npm run single && npm run local && npm run parallel", 8 | "single": "cross-env CONFIG_FILE=single ./node_modules/.bin/protractor conf/single.conf.js", 9 | "local": "cross-env CONFIG_FILE=local ./node_modules/.bin/protractor conf/local.conf.js", 10 | "parallel": "cross-env CONFIG_FILE=parallel ./node_modules/.bin/protractor conf/parallel.conf.js", 11 | "parallel_local": "./node_modules/.bin/protractor conf/parallel_local.conf.js", 12 | "uploadfile": "./node_modules/.bin/protractor conf/fileupload.conf.js", 13 | "nonanguploadfile": "./node_modules/.bin/protractor conf/nonAngularfileupload.conf.js" 14 | }, 15 | "repository": { 16 | "type": "git", 17 | "url": "https://github.com/lambdatest/protractor-selenium-sample" 18 | }, 19 | "dependencies": { 20 | "protractor": "^5.4.2" 21 | }, 22 | "license": "MIT", 23 | "devDependencies": { 24 | "cross-env": "^7.0.3" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /specs/1_8FualX4XQbOUJDrg8yQAjQ.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaTest/protractor-selenium-sample/8f5117ba9a4e361f5ebd47b4a72829278d94328c/specs/1_8FualX4XQbOUJDrg8yQAjQ.jpeg -------------------------------------------------------------------------------- /specs/cat.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaTest/protractor-selenium-sample/8f5117ba9a4e361f5ebd47b4a72829278d94328c/specs/cat.jpg -------------------------------------------------------------------------------- /specs/fileupload.js: -------------------------------------------------------------------------------- 1 | var path = require('path'), 2 | remote = require('selenium-webdriver/remote'); 3 | 4 | describe("File upload test", function () { 5 | beforeEach(function () { 6 | browser.setFileDetector(new remote.FileDetector()); 7 | browser.get("https://angular-file-upload.appspot.com/"); 8 | }); 9 | 10 | it("should upload an image", function () { 11 | var input = element(by.model("picFile")), 12 | uploadedThumbnail = $("img[ngf-src=picFile]"); 13 | 14 | // no image displayed 15 | expect(uploadedThumbnail.isDisplayed()).toBe(true); 16 | 17 | // assuming you have "test.jpg" right near the spec itself 18 | input.sendKeys(path.resolve(__dirname, "cat.jpg")); 19 | 20 | // there is a little uploaded image displayed 21 | expect(uploadedThumbnail.isDisplayed()).toBe(true); 22 | }); 23 | }); -------------------------------------------------------------------------------- /specs/local.js: -------------------------------------------------------------------------------- 1 | 2 | describe('Add todo Lists', function () { 3 | browser.ignoreSynchronization = true; 4 | 5 | it('Add Customer Test', function () { 6 | 7 | 8 | browser.get('https://lambdatest.github.io/sample-todo-app/'); 9 | 10 | browser.driver.findElement(by.name('li1')).then(function (foundElement) { 11 | foundElement.click(); 12 | }); 13 | 14 | browser.driver.findElement(by.name('li2')).then(function (foundElement) { 15 | foundElement.click(); 16 | }); 17 | 18 | browser.driver.findElement(by.id('sampletodotext')).then(function (foundElement) { 19 | foundElement.clear(); 20 | foundElement.sendKeys("Yey, Let's add it to list"); 21 | }); 22 | 23 | browser.driver.findElement(by.id('addbutton')).then(function (foundElement) { 24 | foundElement.click(); 25 | }); 26 | 27 | 28 | var foo = element(by.xpath('//html/body/div/div/div/ul/li[6]/span')); 29 | expect(foo.getText()).toEqual("Yey, Let's add it to list"); 30 | 31 | }); 32 | 33 | }); 34 | -------------------------------------------------------------------------------- /specs/nonangular.js: -------------------------------------------------------------------------------- 1 | var path = require('path'), 2 | remote = require('selenium-webdriver/remote'); 3 | 4 | 5 | describe('Non Angular Upload', function () { 6 | browser.ignoreSynchronization = true; 7 | 8 | it('Open Upload Site', function () { 9 | browser.get('https://fileconvoy.com/'); 10 | }); 11 | 12 | it('should upload file', function() { 13 | browser.setFileDetector(new remote.FileDetector); 14 | var fileToUpload = 'small.jpg'; 15 | var absolutePath = path.resolve(__dirname, fileToUpload); 16 | element(by.css('input[type="file"]')).sendKeys(absolutePath); 17 | element(by.id('readTermsOfUse')).click(); 18 | element(by.id('upload_button')).click(); 19 | }); 20 | 21 | }); 22 | -------------------------------------------------------------------------------- /specs/single.js: -------------------------------------------------------------------------------- 1 | 2 | describe('Add todo Lists', function () { 3 | browser.ignoreSynchronization = true; 4 | 5 | it('Add Customer Test', function () { 6 | 7 | 8 | browser.get('https://lambdatest.github.io/sample-todo-app/'); 9 | 10 | browser.driver.findElement(by.name('li1')).then(function (foundElement) { 11 | foundElement.click(); 12 | }); 13 | 14 | browser.driver.findElement(by.name('li2')).then(function (foundElement) { 15 | foundElement.click(); 16 | }); 17 | 18 | browser.driver.findElement(by.id('sampletodotext')).then(function (foundElement) { 19 | foundElement.clear(); 20 | foundElement.sendKeys("Yey, Let's add it to list"); 21 | }); 22 | 23 | browser.driver.findElement(by.id('addbutton')).then(function (foundElement) { 24 | foundElement.click(); 25 | }); 26 | 27 | 28 | var foo = element(by.xpath('//html/body/div/div/div/ul/li[6]/span')); 29 | expect(foo.getText()).toEqual("Yey, Let's add it to list"); 30 | 31 | }); 32 | 33 | }); 34 | -------------------------------------------------------------------------------- /specs/small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LambdaTest/protractor-selenium-sample/8f5117ba9a4e361f5ebd47b4a72829278d94328c/specs/small.jpg --------------------------------------------------------------------------------