├── .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
--------------------------------------------------------------------------------