diff --git a/.eslintrc.js b/.eslintrc.js
index cea73e8f158..c97048ff0e1 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -20,11 +20,12 @@ module.exports = {
}
},
{
- // JS files served only to Firefox browsers.
+ // JS files where we support native modern JS.
files: [
'media/js/firefox/welcome/**/*.js',
'media/js/firefox/whatsnew/**/*.js',
'media/js/firefox/firstrun/**/*.js',
+ 'tests/unit/**/*.js'
],
env: {
'es2017': true
diff --git a/package.json b/package.json
index ab9c2a1db63..07ab123580a 100644
--- a/package.json
+++ b/package.json
@@ -36,14 +36,14 @@
"browser-sync-webpack-plugin": "^2.2.2",
"concurrently": "^6.0.1",
"eslint-plugin-json": "^2.1.1",
- "jasmine-core": "3.4.0",
+ "jasmine-core": "3.9.0",
"karma": "^6.3.2",
"karma-chrome-launcher": "3.1.0",
- "karma-firefox-launcher": "1.2.0",
- "karma-jasmine": "2.0.1",
+ "karma-firefox-launcher": "2.1.1",
+ "karma-jasmine": "4.0.1",
"karma-sourcemap-loader": "^0.3.8",
"karma-webpack": "^5.0.0",
- "sinon": "7.4.1",
+ "sinon": "11.1.2",
"svgo": "^1.2.2",
"tinypng-cli": "^0.0.7"
},
diff --git a/tests/unit/spec/base/core-datalayer-page-id.js b/tests/unit/spec/base/core-datalayer-page-id.js
index d64d66d500c..b775a64d50d 100644
--- a/tests/unit/spec/base/core-datalayer-page-id.js
+++ b/tests/unit/spec/base/core-datalayer-page-id.js
@@ -16,51 +16,50 @@ describe('core-datalayer-page-id.js', function() {
window.Mozilla.Cookies.removeItem = sinon.stub();
});
- describe('getPageId', function(){
- var html = document.documentElement;
+ describe('getPageId', function() {
+ const html = document.documentElement;
afterEach(function() {
html.removeAttribute('data-gtm-page-id');
});
- it('will grab data-gtm-page-id value if present on element', function(){
+ it('will grab data-gtm-page-id value if present on element', function() {
html.setAttribute('data-gtm-page-id', 'test');
-
expect(Mozilla.Analytics.getPageId('/en-US/firefox/new/')).toBe('test');
});
- it('will grab the pathname minus the first directory if no data-gtm-page-id value is present on element', function(){
+ it('will grab the pathname minus the first directory if no data-gtm-page-id value is present on element', function() {
expect(Mozilla.Analytics.getPageId('/en-US/firefox/new/')).toBe('/firefox/new/');
});
- it('will return the full page path when no data-gtm-page-id value is present and no locale is in page path', function(){
+ it('will return the full page path when no data-gtm-page-id value is present and no locale is in page path', function() {
expect(Mozilla.Analytics.getPageId('/firefox/new/')).toBe('/firefox/new/');
});
});
- describe('getTrafficCopReferrer', function(){
- it('should return null if the referrer does not exist', function(){
+ describe('getTrafficCopReferrer', function() {
+ it('should return null if the referrer does not exist', function() {
spyOn(Mozilla.Cookies, 'hasItem').and.returnValue(false);
expect(Mozilla.Analytics.getTrafficCopReferrer()).toBe(undefined);
});
- it('should return the referrer if one exists', function(){
+ it('should return the referrer if one exists', function() {
spyOn(Mozilla.Cookies, 'hasItem').and.returnValue(true);
spyOn(Mozilla.Cookies, 'getItem').and.returnValue('direct');
expect(Mozilla.Analytics.getTrafficCopReferrer()).toBe('direct');
});
});
- describe('buildDataObject', function(){
- it('should contain customReferrer if found in cookie', function(){
+ describe('buildDataObject', function() {
+ it('should contain customReferrer if found in cookie', function() {
spyOn(Mozilla.Analytics, 'getTrafficCopReferrer').and.returnValue('http://www.google.com');
- var obj = Mozilla.Analytics.buildDataObject();
+ const obj = Mozilla.Analytics.buildDataObject();
expect(obj.customReferrer).toBeDefined();
});
- it('should not contain customReferrer if not found in cookie', function(){
+ it('should not contain customReferrer if not found in cookie', function() {
spyOn(Mozilla.Analytics, 'getTrafficCopReferrer').and.returnValue(undefined);
- var obj = Mozilla.Analytics.buildDataObject();
+ const obj = Mozilla.Analytics.buildDataObject();
expect(obj.customReferrer).not.toBeDefined();
});
});
diff --git a/tests/unit/spec/base/core-datalayer.js b/tests/unit/spec/base/core-datalayer.js
index 25ded1732de..754b61f3e39 100644
--- a/tests/unit/spec/base/core-datalayer.js
+++ b/tests/unit/spec/base/core-datalayer.js
@@ -11,7 +11,7 @@ describe('core-datalayer.js', function() {
describe('pageHasDownload', function() {
it('will return "true" when download button is present on page.', function() {
- var downloadMarkup = '';
+ const downloadMarkup = '';
document.body.insertAdjacentHTML('beforeend', downloadMarkup);
expect(Mozilla.Analytics.pageHasDownload()).toBe('true');
@@ -28,22 +28,22 @@ describe('core-datalayer.js', function() {
describe('pageHasVideo', function() {
it('will return "true" when HTML5 video is present on page.', function() {
- var videoMarkup = '';
+ const videoMarkup = '';
document.body.insertAdjacentHTML('beforeend', videoMarkup);
expect(Mozilla.Analytics.pageHasVideo()).toBe('true');
- var content = document.getElementById('video-content');
+ const content = document.getElementById('video-content');
content.parentNode.removeChild(content);
});
it('will return "true" when YouTube iframe video is present on page.', function() {
- var videoMarkup = '';
+ const videoMarkup = '';
document.body.insertAdjacentHTML('beforeend', videoMarkup);
expect(Mozilla.Analytics.pageHasVideo()).toBe('true');
- var content = document.getElementById('video-content');
+ const content = document.getElementById('video-content');
content.parentNode.removeChild(content);
});
@@ -76,7 +76,6 @@ describe('core-datalayer.js', function() {
it('will return the Firefox version from the data-latest-firefox attribute from the html element if present', function() {
document.getElementsByTagName('html')[0].setAttribute('data-latest-firefox', '48.0');
-
expect(Mozilla.Analytics.getLatestFxVersion()).toBe('48.0');
});
@@ -87,8 +86,8 @@ describe('core-datalayer.js', function() {
describe('isWin10S', function() {
- var edgeUA = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14931';
- var chromeUA = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36';
+ const edgeUA = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14931';
+ const chromeUA = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36';
beforeEach(function () {
window.external = sinon.stub();
@@ -97,32 +96,32 @@ describe('core-datalayer.js', function() {
it('should return true if Windows 10 has S mode enabled', function() {
spyOn(window.external, 'getHostEnvironmentValue').and.returnValue('{"os-mode": "2"}');
- var result = Mozilla.Analytics.isWin10S(edgeUA);
+ const result = Mozilla.Analytics.isWin10S(edgeUA);
expect(window.external.getHostEnvironmentValue).toHaveBeenCalledWith('os-mode');
expect(result).toBeTruthy();
});
it('should return false if Windows 10 is unlocked', function() {
spyOn(window.external, 'getHostEnvironmentValue').and.returnValue('{"os-mode": "0"}');
- var result = Mozilla.Analytics.isWin10S(edgeUA);
+ const result = Mozilla.Analytics.isWin10S(edgeUA);
expect(result).toBeFalsy();
});
it('should return false if API is not supported in Edge', function() {
spyOn(window.external, 'getHostEnvironmentValue').and.returnValue(new TypeError('window.external.getHostEnvironmentValue is not a function'));
- var result = Mozilla.Analytics.isWin10S(edgeUA);
+ const result = Mozilla.Analytics.isWin10S(edgeUA);
expect(result).toBeFalsy();
});
it('should return false for other browsers', function() {
- var result = Mozilla.Analytics.isWin10S(chromeUA);
+ const result = Mozilla.Analytics.isWin10S(chromeUA);
expect(result).toBeFalsy();
});
});
describe('getAMOExperiment', function() {
it('should return true when experiment and variation params are well formatted', function() {
- var params = {
+ const params = {
'experiment': '20210708_amo_experiment_name',
'variation': 'variation_1_name'
};
@@ -130,7 +129,7 @@ describe('core-datalayer.js', function() {
});
it('should return falsy when experiment and variation params are not specific to amo', function() {
- var params = {
+ const params = {
'experiment': 'some_other_experiment',
'variation': 'variation_1_name'
};
@@ -138,13 +137,13 @@ describe('core-datalayer.js', function() {
});
it('should return falsy when experiment and variation params contain dangerous characters', function() {
- var params = {
+ const params = {
'experiment': '20210708_amo_">hello
',
'variation': ''
};
expect(Mozilla.Analytics.getAMOExperiment(params)).toBeFalsy();
- var params2 = {
+ const params2 = {
'experiment': '20210708_amo_%22%3E%3Ch1%3Ehello%3C%2Fh1%3E',
'variation': '%3Cscript%3Ealert%28%22test%22%29%3B%3C%2Fscript%3E'
};
@@ -152,13 +151,13 @@ describe('core-datalayer.js', function() {
});
it('should return falsy if parameters values are more than 50 chars', function() {
- var params = {
+ const params = {
'experiment': '20210708_amo_experiment_name',
'variation': 'a_very_very_very_very_very_long_experiment_variation_name_much_much_much_more_than_50_chars'
};
expect(Mozilla.Analytics.getAMOExperiment(params)).toBeFalsy();
- var params2 = {
+ const params2 = {
'experiment': '20210708_amo_a_very_very_very_long_experiment_name_much_much_much_much_more_than_50_chars',
'variation': 'variation_1_name'
};
@@ -172,7 +171,7 @@ describe('core-datalayer.js', function() {
it('will correctly format FxA data returned from UITour', function() {
// Current Firefox Desktop, not logged in
- var input1 = {
+ const input1 = {
'firefox': true,
'legacy': false,
'mobile': false,
@@ -187,13 +186,13 @@ describe('core-datalayer.js', function() {
}
};
- var output1 = {
+ const output1 = {
FxALogin: false,
FxASegment: 'Not logged in',
};
// Current Firefox Desktop, logged in, 1 desktop configured
- var input2 = {
+ const input2 = {
'firefox': true,
'legacy': false,
'mobile': false,
@@ -208,7 +207,7 @@ describe('core-datalayer.js', function() {
}
};
- var output2 = {
+ const output2 = {
FxALogin: true,
FxAMultiDesktopSync: false,
FxAMobileSync: false,
@@ -216,7 +215,7 @@ describe('core-datalayer.js', function() {
};
// Current Firefox Desktop, logged in, 2 desktops configured
- var input3 = {
+ const input3 = {
'firefox': true,
'legacy': false,
'mobile': false,
@@ -231,7 +230,7 @@ describe('core-datalayer.js', function() {
}
};
- var output3 = {
+ const output3 = {
FxALogin: true,
FxAMultiDesktopSync: true,
FxAMobileSync: false,
@@ -239,7 +238,7 @@ describe('core-datalayer.js', function() {
};
// Current Firefox Desktop, logged in, 1 desktops 1 mobile configured
- var input4 = {
+ const input4 = {
'firefox': true,
'legacy': false,
'mobile': false,
@@ -254,7 +253,7 @@ describe('core-datalayer.js', function() {
}
};
- var output4 = {
+ const output4 = {
FxALogin: true,
FxAMultiDesktopSync: false,
FxAMobileSync: true,
@@ -262,7 +261,7 @@ describe('core-datalayer.js', function() {
};
// Current Firefox Desktop, logged in, 2 desktops 1 mobile configured
- var input5 = {
+ const input5 = {
'firefox': true,
'legacy': false,
'mobile': false,
@@ -277,7 +276,7 @@ describe('core-datalayer.js', function() {
}
};
- var output5 = {
+ const output5 = {
FxALogin: true,
FxAMultiDesktopSync: true,
FxAMobileSync: true,
@@ -285,7 +284,7 @@ describe('core-datalayer.js', function() {
};
// Firefox Desktop < 50, logged in to FxA
- var input6 = {
+ const input6 = {
'firefox': true,
'legacy': false,
'mobile': false,
@@ -300,7 +299,7 @@ describe('core-datalayer.js', function() {
}
};
- var output6 = {
+ const output6 = {
FxALogin: true,
FxAMobileSync: 'unknown',
FxAMultiDesktopSync: 'unknown',
@@ -308,7 +307,7 @@ describe('core-datalayer.js', function() {
};
// Firefox Desktop < 50, logged out
- var input7 = {
+ const input7 = {
'firefox': true,
'legacy': false,
'mobile': false,
@@ -323,13 +322,13 @@ describe('core-datalayer.js', function() {
}
};
- var output7 = {
+ const output7 = {
FxALogin: false,
FxASegment: 'Not logged in'
};
// Firefox Desktop < FxALastSupported, logged in
- var input8 = {
+ const input8 = {
'firefox': true,
'legacy': true,
'mobile': false,
@@ -344,7 +343,7 @@ describe('core-datalayer.js', function() {
}
};
- var output8 = {
+ const output8 = {
FxALogin: true,
FxAMobileSync: 'unknown',
FxAMultiDesktopSync: 'unknown',
@@ -352,7 +351,7 @@ describe('core-datalayer.js', function() {
};
// Firefox Desktop < FxALastSupported, logged out
- var input9 = {
+ const input9 = {
'firefox': true,
'legacy': true,
'mobile': false,
@@ -367,13 +366,13 @@ describe('core-datalayer.js', function() {
}
};
- var output9 = {
+ const output9 = {
FxALogin: 'unknown',
FxASegment: 'Legacy Firefox',
};
// Firefox Desktop < 29
- var input10 = {
+ const input10 = {
'firefox': true,
'legacy': true,
'mobile': false,
@@ -388,13 +387,13 @@ describe('core-datalayer.js', function() {
}
};
- var output10 = {
+ const output10 = {
FxALogin: 'unknown',
FxASegment: 'Legacy Firefox'
};
// Firefox Android
- var input11 = {
+ const input11 = {
'firefox': true,
'legacy': false,
'mobile': 'android',
@@ -409,12 +408,12 @@ describe('core-datalayer.js', function() {
}
};
- var output11 = {
+ const output11 = {
FxASegment: 'Firefox Mobile'
};
// Firefox iOS
- var input12 = {
+ const input12 = {
'firefox': true,
'legacy': false,
'mobile': 'ios',
@@ -429,12 +428,12 @@ describe('core-datalayer.js', function() {
}
};
- var output12 = {
+ const output12 = {
FxASegment: 'Firefox Mobile'
};
// Not Firefox
- var input13 = {
+ const input13 = {
'firefox': false,
'legacy': false,
'mobile': false,
@@ -449,12 +448,12 @@ describe('core-datalayer.js', function() {
}
};
- var output13 = {
+ const output13 = {
FxASegment: 'Not Firefox'
};
// browserServices.sync is unexpectedly undefined (issue 10118).
- var input14 = {
+ const input14 = {
'firefox': true,
'legacy': false,
'mobile': false,
@@ -464,7 +463,7 @@ describe('core-datalayer.js', function() {
}
};
- var output14 = {
+ const output14 = {
FxALogin: true,
FxAMultiDesktopSync: 'unknown',
FxAMobileSync: 'unknown',
@@ -492,14 +491,14 @@ describe('core-datalayer.js', function() {
describe('updateDataLayerPush', function() {
beforeEach(function() {
- var link = '';
+ const link = '';
document.body.insertAdjacentHTML('beforeend', link);
window.dataLayer = [];
});
afterEach(function() {
- var content = document.getElementById('link');
+ const content = document.getElementById('link');
content.parentNode.removeChild(content);
delete window.dataLayer;
});
@@ -538,7 +537,7 @@ describe('core-datalayer.js', function() {
});
it('will remove host and locale in newClickHref when clicked link\'s href value matches the page\'s', function() {
- var link = document.getElementById('link');
+ const link = document.getElementById('link');
Mozilla.Analytics.updateDataLayerPush('www.mozilla.org');
// Bug 1278426
@@ -553,7 +552,7 @@ describe('core-datalayer.js', function() {
});
it('will remove host and non-en-US locale', function() {
- var link = document.getElementById('link');
+ const link = document.getElementById('link');
Mozilla.Analytics.updateDataLayerPush('www.mozilla.org');
link.href = 'https://www.mozilla.org:443/de/firefox/new/';
@@ -567,7 +566,7 @@ describe('core-datalayer.js', function() {
});
it('will not remove locale if absent from the URL', function() {
- var link = document.getElementById('link');
+ const link = document.getElementById('link');
Mozilla.Analytics.updateDataLayerPush('www.mozilla.org');
link.href = 'https://www.mozilla.org/firefox/new/';
diff --git a/tests/unit/spec/base/dnt-helper.js b/tests/unit/spec/base/dnt-helper.js
index c449acb42ae..6be58b53062 100644
--- a/tests/unit/spec/base/dnt-helper.js
+++ b/tests/unit/spec/base/dnt-helper.js
@@ -10,75 +10,75 @@ describe('dnt-helper.js', function() {
describe('Mozilla.dntEnabled', function () {
it('should return true for Fx41 on Mac with DNT set to true', function () {
- var dnt = 1;
- var ua = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:41.0) Gecko/20100101 Firefox/41.0';
+ const dnt = 1;
+ const ua = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:41.0) Gecko/20100101 Firefox/41.0';
expect(Mozilla.dntEnabled(dnt, ua)).toBe(true);
});
it('should return false for Fx41 on Win7 with DNT set to false', function () {
- var dnt = 0;
- var ua = 'Mozilla/5.0 (Windows NT 6.1; rv:41.0) Gecko/20100101 Firefox/41.0';
+ const dnt = 0;
+ const ua = 'Mozilla/5.0 (Windows NT 6.1; rv:41.0) Gecko/20100101 Firefox/41.0';
expect(Mozilla.dntEnabled(dnt, ua)).toBe(false);
});
// this test is required because of bug 887703
it('should return false for Fx28 on Mac with DNT set to true', function () {
- var dnt = 1;
- var ua = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:28.0) Gecko/20100101 Firefox/28.0';
+ const dnt = 1;
+ const ua = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:28.0) Gecko/20100101 Firefox/28.0';
expect(Mozilla.dntEnabled(dnt, ua)).toBe(false);
});
it('should return false for Fx 41 with DNT set to false', function () {
- var dnt = 0;
- var ua = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:41.0) Gecko/20100101 Firefox/41.0';
+ const dnt = 0;
+ const ua = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:41.0) Gecko/20100101 Firefox/41.0';
expect(Mozilla.dntEnabled(dnt, ua)).toBe(false);
});
it('should return false for IE on Win8 with DNT set to true', function () {
- var dnt = 1;
- var ua = 'Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.2; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)';
+ const dnt = 1;
+ const ua = 'Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.2; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)';
expect(Mozilla.dntEnabled(dnt, ua)).toBe(false);
});
it('should return true for Edge on Win10 with DNT set to true', function () {
- var dnt = 1;
- var ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240';
+ const dnt = 1;
+ const ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240';
expect(Mozilla.dntEnabled(dnt, ua)).toBe(true);
});
it('should return false for Edge on Win10 with DNT set to false', function () {
- var dnt = 0;
- var ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240';
+ const dnt = 0;
+ const ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240';
expect(Mozilla.dntEnabled(dnt, ua)).toBe(false);
});
it('should return false for IE11 on Win10 with DNT set to false', function () {
- var dnt = 0;
- var ua = 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko';
+ const dnt = 0;
+ const ua = 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko';
expect(Mozilla.dntEnabled(dnt, ua)).toBe(false);
});
it('should return true for IE11 on Win10 with DNT set to true', function () {
- var dnt = 1;
- var ua = 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko';
+ const dnt = 1;
+ const ua = 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko';
expect(Mozilla.dntEnabled(dnt, ua)).toBe(true);
});
it('should return false for IE11 on Win8.1 with DNT set to true', function () {
- var dnt = 1;
- var ua = 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko';
+ const dnt = 1;
+ const ua = 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko';
expect(Mozilla.dntEnabled(dnt, ua)).toBe(false);
});
it('should return false for IE7 on Windows Vista with DNT set to undefined', function () {
- var dnt;
- var ua = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)';
+ const dnt = undefined;
+ const ua = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)';
expect(Mozilla.dntEnabled(dnt, ua)).toBe(false);
});
it('should return false for Chrome on Mac with DNT set to false', function () {
- var dnt = 0;
- var ua = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36';
+ const dnt = 0;
+ const ua = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36';
expect(Mozilla.dntEnabled(dnt, ua)).toBe(false);
});
diff --git a/tests/unit/spec/base/fxa-utm-referral.js b/tests/unit/spec/base/fxa-utm-referral.js
index b60994bccce..932e519cb7f 100644
--- a/tests/unit/spec/base/fxa-utm-referral.js
+++ b/tests/unit/spec/base/fxa-utm-referral.js
@@ -12,9 +12,9 @@ describe('fxa-utm-referral.js', function() {
describe('getHostName', function() {
it('should return a hostname as expected', function() {
- var url1 = 'https://monitor.firefox.com/oauth/init?form_type=button&entrypoint=mozilla.org-firefox-accounts';
- var url2 = 'https://accounts.firefox.com/?utm_campaign=campaign-one&utm_source=source-one&utm_content=content-one';
- var url3 = 'https://getpocket.com/ff_signup?s=ffwelcome2&form_type=button&entrypoint=mozilla.org-firefox-welcome-2&utm_source=source-one&utm_campaign=campaign-one';
+ const url1 = 'https://monitor.firefox.com/oauth/init?form_type=button&entrypoint=mozilla.org-firefox-accounts';
+ const url2 = 'https://accounts.firefox.com/?utm_campaign=campaign-one&utm_source=source-one&utm_content=content-one';
+ const url3 = 'https://getpocket.com/ff_signup?s=ffwelcome2&form_type=button&entrypoint=mozilla.org-firefox-welcome-2&utm_source=source-one&utm_campaign=campaign-one';
expect(Mozilla.UtmUrl.getHostName(url1)).toEqual('https://monitor.firefox.com/');
expect(Mozilla.UtmUrl.getHostName(url2)).toEqual('https://accounts.firefox.com/');
@@ -22,14 +22,14 @@ describe('fxa-utm-referral.js', function() {
});
it('should return null if no match is found', function() {
- var url = 'thedude';
+ const url = 'thedude';
expect(Mozilla.UtmUrl.getHostName(url)).toBeNull();
});
});
describe('hasUtmParams', function() {
it('should return true when utm params are present', function() {
- var data = {
+ const data = {
'utm_source': 'vpn-client',
'utm_content': 'download-first-experiment',
'utm_medium': 'referral',
@@ -41,7 +41,7 @@ describe('fxa-utm-referral.js', function() {
});
it('should return false when utm params are not present', function() {
- var data = {
+ const data = {
'entrypoint_experiment': 'test-id',
'entrypoint_variation': 'test-variation'
};
@@ -50,11 +50,11 @@ describe('fxa-utm-referral.js', function() {
});
it('should return false when data is not a valid object', function() {
- var data1 = undefined;
+ const data1 = undefined;
expect(Mozilla.UtmUrl.hasUtmParams(data1)).toBeFalsy();
- var data2 = null;
+ const data2 = null;
expect(Mozilla.UtmUrl.hasUtmParams(data2)).toBeFalsy();
- var data3 = {};
+ const data3 = {};
expect(Mozilla.UtmUrl.hasUtmParams(data3)).toBeFalsy();
});
});
@@ -62,7 +62,7 @@ describe('fxa-utm-referral.js', function() {
describe('getAttributionData', function () {
it('should return a valid object unchanged', function () {
- var validObj = {
+ const validObj = {
'utm_source': 'desktop-snippet',
'utm_content': 'rel-esr',
'utm_medium': 'referral',
@@ -70,7 +70,7 @@ describe('fxa-utm-referral.js', function() {
'utm_campaign': 'F100_4242_otherstuff_in_here'
};
- var validData = {
+ const validData = {
'utm_source': 'desktop-snippet',
'utm_content': 'rel-esr',
'utm_medium': 'referral',
@@ -82,7 +82,7 @@ describe('fxa-utm-referral.js', function() {
});
it('should return a additional entrypoint params if present', function () {
- var validObj = {
+ const validObj = {
'utm_source': 'desktop-snippet',
'utm_content': 'rel-esr',
'utm_medium': 'referral',
@@ -92,7 +92,7 @@ describe('fxa-utm-referral.js', function() {
'entrypoint_variation': 'test-variation'
};
- var validData = {
+ const validData = {
'utm_source': 'desktop-snippet',
'utm_content': 'rel-esr',
'utm_medium': 'referral',
@@ -106,12 +106,12 @@ describe('fxa-utm-referral.js', function() {
});
it('should return entrypoint params if not utms are present', function () {
- var validObj = {
+ const validObj = {
'entrypoint_experiment': 'test-id',
'entrypoint_variation': 'test-variation'
};
- var validData = {
+ const validData = {
'entrypoint_experiment': 'test-id',
'entrypoint_variation': 'test-variation'
};
@@ -120,7 +120,7 @@ describe('fxa-utm-referral.js', function() {
});
it('should return FxA flow params if present together with experiment entrypoint params', function() {
- var validObj = {
+ const validObj = {
'utm_source': 'vpn-client',
'utm_content': 'download-first-experiment',
'utm_medium': 'referral',
@@ -133,7 +133,7 @@ describe('fxa-utm-referral.js', function() {
'flow_begin_time': 1234567899
};
- var validData = {
+ const validData = {
'utm_source': 'vpn-client',
'utm_content': 'download-first-experiment',
'utm_medium': 'referral',
@@ -150,7 +150,7 @@ describe('fxa-utm-referral.js', function() {
});
it('should not return FxA flow params if experiment entrypoint params are also not present', function() {
- var validObj = {
+ const validObj = {
'utm_source': 'desktop-snippet',
'utm_content': 'rel-esr',
'utm_medium': 'referral',
@@ -161,7 +161,7 @@ describe('fxa-utm-referral.js', function() {
'flow_begin_time': 1234567899
};
- var validData = {
+ const validData = {
'utm_source': 'desktop-snippet',
'utm_content': 'rel-esr',
'utm_medium': 'referral',
@@ -173,11 +173,11 @@ describe('fxa-utm-referral.js', function() {
});
it('should return entrypoint and utm params if supported source attribute is present', function() {
- var validObj1 = {
+ const validObj1 = {
'source': 'whatsnew88'
};
- var validData1 = {
+ const validData1 = {
'entrypoint': 'www.mozilla.org-whatsnew',
'utm_source': 'www.mozilla.org-whatsnew',
'utm_campaign': 'whatsnew88'
@@ -185,11 +185,11 @@ describe('fxa-utm-referral.js', function() {
expect(Mozilla.UtmUrl.getAttributionData(validObj1)).toEqual(validData1);
- var validObj2 = {
+ const validObj2 = {
'source': 'welcome9'
};
- var validData2 = {
+ const validData2 = {
'entrypoint': 'www.mozilla.org-welcome',
'utm_source': 'www.mozilla.org-welcome',
'utm_campaign': 'welcome9'
@@ -199,7 +199,7 @@ describe('fxa-utm-referral.js', function() {
});
it('should return null if source attribute is non-specific', function() {
- var validObj = {
+ const validObj = {
'source': 'the-dude'
};
@@ -207,13 +207,13 @@ describe('fxa-utm-referral.js', function() {
});
it('should return an object without any danagerous params', function () {
- var dangerousSource = {
+ const dangerousSource = {
'utm_source': 'www.mozilla.org',
'utm_campaign': 'rel-esr',
'utm_content': '',
};
- var safeSource = {
+ const safeSource = {
'utm_source': 'www.mozilla.org',
'utm_campaign': 'rel-esr'
};
@@ -222,7 +222,7 @@ describe('fxa-utm-referral.js', function() {
});
it('should not return an object if all params are unsafe', function () {
- var dangerousData = {
+ const dangerousData = {
'utm_source': '%5C',
'utm_content': '%3C',
'utm_medium': '%24',
@@ -234,7 +234,7 @@ describe('fxa-utm-referral.js', function() {
});
it('should not return an object if utm_source is missing', function () {
- var data = {
+ const data = {
'utm_content': 'rel-esr',
'utm_medium': 'referral',
'utm_term': 4242,
@@ -245,7 +245,7 @@ describe('fxa-utm-referral.js', function() {
});
it('should not return an object if utm_campaign is missing', function () {
- var data = {
+ const data = {
'utm_source': 'desktop-snippet',
'utm_content': 'rel-esr',
'utm_medium': 'referral',
@@ -256,14 +256,14 @@ describe('fxa-utm-referral.js', function() {
});
it('should not strip allowed special characters', function () {
- var specialData = {
+ const specialData = {
'utm_source': 'blog.mozilla.org',
'utm_campaign': 'my-experiment',
'utm_medium': '%25',
'utm_term': '%2F'
};
- var specialSource = {
+ const specialSource = {
'utm_source': 'blog.mozilla.org',
'utm_campaign': 'my-experiment',
'utm_medium': '%',
@@ -274,12 +274,12 @@ describe('fxa-utm-referral.js', function() {
});
it('should decode URL components', function () {
- var encodedData = {
+ const encodedData = {
'utm_source': '%25',
'utm_campaign': '%2F'
};
- var encodedSource = {
+ const encodedSource = {
'utm_source': '%',
'utm_campaign': '/'
};
@@ -292,7 +292,7 @@ describe('fxa-utm-referral.js', function() {
describe('appendToDownloadURL', function () {
it('should append a new query string if there isn\'t one', function () {
- var data = {
+ const data = {
'utm_source': 'desktop-snippet',
'utm_content': 'rel-esr',
'utm_medium': 'referral',
@@ -300,23 +300,23 @@ describe('fxa-utm-referral.js', function() {
'utm_campaign': 'F100_4242_otherstuff_in_here'
};
- var url = 'https://accounts.firefox.com/';
+ const url = 'https://accounts.firefox.com/';
expect(Mozilla.UtmUrl.appendToDownloadURL(url, data)).toEqual('https://accounts.firefox.com/?utm_source=desktop-snippet&utm_content=rel-esr&utm_medium=referral&utm_term=4242&utm_campaign=F100_4242_otherstuff_in_here');
});
it('should add UTM params without overwriting other query string params', function () {
- var data = {
+ const data = {
'utm_source': 'test-source'
};
- var url = 'https://accounts.firefox.com/?spice=pumpkin';
+ const url = 'https://accounts.firefox.com/?spice=pumpkin';
expect(Mozilla.UtmUrl.appendToDownloadURL(url, data)).toEqual('https://accounts.firefox.com/?spice=pumpkin&utm_source=test-source');
});
it('should over-write existing UTM params', function () {
- var data = {
+ const data = {
'utm_source': 'source-two',
'utm_content': 'content-two',
'utm_medium': 'medium-two',
@@ -324,13 +324,13 @@ describe('fxa-utm-referral.js', function() {
'utm_campaign': 'campaign-two'
};
- var url = 'https://accounts.firefox.com/?utm_medium=medium-one&utm_term=term-one&utm_campaign=campaign-one&utm_source=source-one&utm_content=content-one';
+ const url = 'https://accounts.firefox.com/?utm_medium=medium-one&utm_term=term-one&utm_campaign=campaign-one&utm_source=source-one&utm_content=content-one';
expect(Mozilla.UtmUrl.appendToDownloadURL(url, data)).toEqual('https://accounts.firefox.com/?utm_source=source-two&utm_content=content-two&utm_medium=medium-two&utm_term=term-two&utm_campaign=campaign-two');
});
it('should not leave out new params if there are existing params to over write', function () {
- var data = {
+ const data = {
'utm_source': 'source-two',
'utm_content': 'content-two',
'utm_medium': 'medium-two',
@@ -338,34 +338,34 @@ describe('fxa-utm-referral.js', function() {
'utm_campaign': 'campaign-two'
};
- var url = 'https://accounts.firefox.com/?utm_campaign=campaign-one&utm_source=source-one&utm_content=content-one';
+ const url = 'https://accounts.firefox.com/?utm_campaign=campaign-one&utm_source=source-one&utm_content=content-one';
expect(Mozilla.UtmUrl.appendToDownloadURL(url, data)).toEqual('https://accounts.firefox.com/?utm_source=source-two&utm_content=content-two&utm_medium=medium-two&utm_term=term-two&utm_campaign=campaign-two');
});
it('should remove UTM params that are no longer present in the new referral data', function() {
- var data = {
+ const data = {
'utm_source': 'source-two',
'utm_campaign': 'campaign-two'
};
- var url = 'https://accounts.firefox.com/?utm_campaign=campaign-one&utm_source=source-one&utm_content=content-one';
+ const url = 'https://accounts.firefox.com/?utm_campaign=campaign-one&utm_source=source-one&utm_content=content-one';
expect(Mozilla.UtmUrl.appendToDownloadURL(url, data)).toEqual('https://accounts.firefox.com/?utm_source=source-two&utm_campaign=campaign-two');
});
it('should not override port, path, or file name', function () {
- var data = {
+ const data = {
'utm_source': 'test-source'
};
- var url = 'https://accounts.firefox.com:8000/grande/nofat.html?spice=pumpkin';
+ const url = 'https://accounts.firefox.com:8000/grande/nofat.html?spice=pumpkin';
expect(Mozilla.UtmUrl.appendToDownloadURL(url, data)).toEqual('https://accounts.firefox.com:8000/grande/nofat.html?spice=pumpkin&utm_source=test-source');
});
it('should add additional entrypoint parameters if present', function() {
- var data = {
+ const data = {
'utm_source': 'desktop-snippet',
'utm_content': 'rel-esr',
'utm_medium': 'referral',
@@ -375,18 +375,18 @@ describe('fxa-utm-referral.js', function() {
'entrypoint_variation': 'test-variation'
};
- var url = 'https://accounts.firefox.com/';
+ const url = 'https://accounts.firefox.com/';
expect(Mozilla.UtmUrl.appendToDownloadURL(url, data)).toEqual('https://accounts.firefox.com/?utm_source=desktop-snippet&utm_content=rel-esr&utm_medium=referral&utm_term=4242&utm_campaign=F100_4242_otherstuff_in_here&entrypoint_experiment=test-id&entrypoint_variation=test-variation');
});
it('should not wipe out existing utms if only enytrpoint params are present', function() {
- var data = {
+ const data = {
'entrypoint_experiment': 'test-id',
'entrypoint_variation': 'test-variation'
};
- var url = 'https://accounts.firefox.com/?utm_medium=medium-one&utm_term=term-one&utm_campaign=campaign-one&utm_source=source-one&utm_content=content-one';
+ const url = 'https://accounts.firefox.com/?utm_medium=medium-one&utm_term=term-one&utm_campaign=campaign-one&utm_source=source-one&utm_content=content-one';
expect(Mozilla.UtmUrl.appendToDownloadURL(url, data)).toEqual('https://accounts.firefox.com/?utm_medium=medium-one&utm_term=term-one&utm_campaign=campaign-one&utm_source=source-one&utm_content=content-one&entrypoint_experiment=test-id&entrypoint_variation=test-variation');
});
@@ -454,13 +454,13 @@ describe('fxa-utm-referral.js', function() {
spyOn(Mozilla, 'dntEnabled').and.returnValue(false);
// link to change
- var links =
- '';
+ const links =
+ ``;
document.body.insertAdjacentHTML('beforeend', links);
});
@@ -471,7 +471,7 @@ describe('fxa-utm-referral.js', function() {
});
it('should update the href of links with class js-fxa-cta-link', function () {
- var data = {
+ const data = {
'utm_source': 'source-two',
'utm_content': 'content-two',
'utm_medium': 'medium-two',
@@ -481,12 +481,12 @@ describe('fxa-utm-referral.js', function() {
Mozilla.UtmUrl.init(data);
- var expected = document.getElementById('test-expected');
- var expectedHref = expected.getAttribute('href');
- var secondExpected = document.getElementById('test-second-expected');
- var secondExpectedHref = secondExpected.getAttribute('href');
- var thirdExpected = document.getElementById('test-third-expected');
- var thirdExpectedHref = thirdExpected.getAttribute('href');
+ const expected = document.getElementById('test-expected');
+ const expectedHref = expected.getAttribute('href');
+ const secondExpected = document.getElementById('test-second-expected');
+ const secondExpectedHref = secondExpected.getAttribute('href');
+ const thirdExpected = document.getElementById('test-third-expected');
+ const thirdExpectedHref = thirdExpected.getAttribute('href');
expect(expectedHref).toEqual('https://accounts.firefox.com/?service=sync&action=email&context=fx_desktop_v3&entrypoint=mozilla.org-accounts_page&utm_source=source-two&utm_campaign=campaign-two&utm_content=content-two&utm_term=term-two&utm_medium=medium-two');
expect(secondExpectedHref).toEqual('https://monitor.firefox.com/oauth/init?form_type=button&entrypoint=mozilla.org-firefox-accounts&utm_source=source-two&utm_campaign=campaign-two&utm_content=content-two&utm_term=term-two&utm_medium=medium-two');
@@ -494,7 +494,7 @@ describe('fxa-utm-referral.js', function() {
});
it('should update the data-mozilla-online attribute of links with class js-fxa-cta-link', function () {
- var data = {
+ const data = {
'utm_source': 'source-two',
'utm_content': 'content-two',
'utm_medium': 'medium-two',
@@ -504,27 +504,27 @@ describe('fxa-utm-referral.js', function() {
Mozilla.UtmUrl.init(data);
- var expected = document.getElementById('test-expected');
- var expectedOnline = expected.getAttribute('data-mozillaonline-link');
+ const expected = document.getElementById('test-expected');
+ const expectedOnline = expected.getAttribute('data-mozillaonline-link');
expect(expectedOnline).toEqual('https://accounts.firefox.com.cn/?service=sync&action=email&context=fx_desktop_v3&entrypoint=mozilla.org-accounts_page&utm_source=source-two&utm_campaign=campaign-two&utm_content=content-two&utm_term=term-two&utm_medium=medium-two');
});
it('should not make changes if there are no UTM params', function () {
- var data = {};
+ const data = {};
Mozilla.UtmUrl.init(data);
- var expected = document.getElementById('test-expected');
- var expectedHref = expected.getAttribute('href');
- var expectedOnline = expected.getAttribute('data-mozillaonline-link');
+ const expected = document.getElementById('test-expected');
+ const expectedHref = expected.getAttribute('href');
+ const expectedOnline = expected.getAttribute('data-mozillaonline-link');
expect(expectedHref).toEqual('https://accounts.firefox.com/?service=sync&action=email&context=fx_desktop_v3&entrypoint=mozilla.org-accounts_page&utm_content=accounts-page-top-cta&utm_source=accounts-page&utm_medium=referral&utm_campaign=fxa-benefits-page');
expect(expectedOnline).toEqual('https://accounts.firefox.com.cn/?service=sync&action=email&context=fx_desktop_v3&entrypoint=mozilla.org-accounts_page&utm_content=accounts-page-top-cta&utm_source=accounts-page&utm_medium=referral&utm_campaign=fxa-benefits-page');
});
it('should not make changes if the link is not in the FxA referral allowedList', function () {
- var data = {
+ const data = {
'utm_source': 'source-two',
'utm_content': 'content-two',
'utm_medium': 'medium-two',
@@ -534,61 +534,61 @@ describe('fxa-utm-referral.js', function() {
Mozilla.UtmUrl.init(data);
- var unexpected = document.getElementById('test-not-accounts');
- var unexpectedHref = unexpected.getAttribute('href');
- var unexpectedOnline = unexpected.getAttribute('data-mozillaonline-link');
+ const unexpected = document.getElementById('test-not-accounts');
+ const unexpectedHref = unexpected.getAttribute('href');
+ const unexpectedOnline = unexpected.getAttribute('data-mozillaonline-link');
expect(unexpectedHref).toEqual('https://www.mozilla.org/?service=sync&action=email&context=fx_desktop_v3&entrypoint=mozilla.org-accounts_page&utm_content=accounts-page-top-cta&utm_source=accounts-page&utm_medium=referral&utm_campaign=fxa-benefits-page');
expect(unexpectedOnline).toEqual('https://accounts.firefox.com.cn/?service=sync&action=email&context=fx_desktop_v3&entrypoint=mozilla.org-accounts_page&utm_content=accounts-page-top-cta&utm_source=accounts-page&utm_medium=referral&utm_campaign=fxa-benefits-page');
});
it('should get referral cookie data if there are no UTM params', function() {
- var data = {};
+ const data = {};
spyOn(Mozilla.Cookies, 'getItem').and.returnValue('navigation');
spyOn(Mozilla.UtmUrl, 'hasFxALinkReferralCookie').and.returnValue(true);
Mozilla.UtmUrl.init(data);
- var expected = document.getElementById('test-expected');
- var expectedHref = expected.getAttribute('href');
- var expectedOnline = expected.getAttribute('data-mozillaonline-link');
+ const expected = document.getElementById('test-expected');
+ const expectedHref = expected.getAttribute('href');
+ const expectedOnline = expected.getAttribute('data-mozillaonline-link');
expect(expectedHref).toEqual('https://accounts.firefox.com/?service=sync&action=email&context=fx_desktop_v3&entrypoint=www.mozilla.org&utm_source=www.mozilla.org&utm_medium=referral&utm_campaign=navigation');
expect(expectedOnline).toEqual('https://accounts.firefox.com.cn/?service=sync&action=email&context=fx_desktop_v3&entrypoint=www.mozilla.org&utm_source=www.mozilla.org&utm_medium=referral&utm_campaign=navigation');
});
it('should set expected values for in-product /whatsnew page referrals', function() {
- var data = {};
+ const data = {};
spyOn(Mozilla.Cookies, 'getItem').and.returnValue('whatsnew92');
spyOn(Mozilla.UtmUrl, 'hasFxALinkReferralCookie').and.returnValue(true);
Mozilla.UtmUrl.init(data);
- var expected = document.getElementById('test-expected');
- var expectedHref = expected.getAttribute('href');
- var expectedOnline = expected.getAttribute('data-mozillaonline-link');
+ const expected = document.getElementById('test-expected');
+ const expectedHref = expected.getAttribute('href');
+ const expectedOnline = expected.getAttribute('data-mozillaonline-link');
expect(expectedHref).toEqual('https://accounts.firefox.com/?service=sync&action=email&context=fx_desktop_v3&entrypoint=www.mozilla.org-whatsnew&utm_source=www.mozilla.org-whatsnew&utm_medium=referral&utm_campaign=whatsnew92');
expect(expectedOnline).toEqual('https://accounts.firefox.com.cn/?service=sync&action=email&context=fx_desktop_v3&entrypoint=www.mozilla.org-whatsnew&utm_source=www.mozilla.org-whatsnew&utm_medium=referral&utm_campaign=whatsnew92');
});
it('should set expected values for in-product /welcome page referrals', function() {
- var data = {};
+ const data = {};
spyOn(Mozilla.Cookies, 'getItem').and.returnValue('welcome12');
spyOn(Mozilla.UtmUrl, 'hasFxALinkReferralCookie').and.returnValue(true);
Mozilla.UtmUrl.init(data);
- var expected = document.getElementById('test-expected');
- var expectedHref = expected.getAttribute('href');
- var expectedOnline = expected.getAttribute('data-mozillaonline-link');
+ const expected = document.getElementById('test-expected');
+ const expectedHref = expected.getAttribute('href');
+ const expectedOnline = expected.getAttribute('data-mozillaonline-link');
expect(expectedHref).toEqual('https://accounts.firefox.com/?service=sync&action=email&context=fx_desktop_v3&entrypoint=www.mozilla.org-welcome&utm_source=www.mozilla.org-welcome&utm_medium=referral&utm_campaign=welcome12');
expect(expectedOnline).toEqual('https://accounts.firefox.com.cn/?service=sync&action=email&context=fx_desktop_v3&entrypoint=www.mozilla.org-welcome&utm_source=www.mozilla.org-welcome&utm_medium=referral&utm_campaign=welcome12');
});
it('should not overwrite other allowed non-UTM params when cookie referral data exists', function() {
- var data = {
+ const data = {
'entrypoint_experiment': 'test-experiment',
'entrypoint_variation': 'test-variation'
};
@@ -597,9 +597,9 @@ describe('fxa-utm-referral.js', function() {
Mozilla.UtmUrl.init(data);
- var expected = document.getElementById('test-expected');
- var expectedHref = expected.getAttribute('href');
- var expectedOnline = expected.getAttribute('data-mozillaonline-link');
+ const expected = document.getElementById('test-expected');
+ const expectedHref = expected.getAttribute('href');
+ const expectedOnline = expected.getAttribute('data-mozillaonline-link');
expect(expectedHref).toEqual('https://accounts.firefox.com/?service=sync&action=email&context=fx_desktop_v3&entrypoint=www.mozilla.org&entrypoint_experiment=test-experiment&entrypoint_variation=test-variation&utm_source=www.mozilla.org&utm_medium=referral&utm_campaign=navigation');
expect(expectedOnline).toEqual('https://accounts.firefox.com.cn/?service=sync&action=email&context=fx_desktop_v3&entrypoint=www.mozilla.org&entrypoint_experiment=test-experiment&entrypoint_variation=test-variation&utm_source=www.mozilla.org&utm_medium=referral&utm_campaign=navigation');
diff --git a/tests/unit/spec/base/mozilla-banner.js b/tests/unit/spec/base/mozilla-banner.js
index 96c1853def7..a86819f1e8a 100644
--- a/tests/unit/spec/base/mozilla-banner.js
+++ b/tests/unit/spec/base/mozilla-banner.js
@@ -23,18 +23,19 @@ describe('mozilla-banner.js', function() {
describe('init', function() {
- var bannerId = 'test-banner';
+ const bannerId = 'test-banner';
beforeEach(function() {
- var content = '' +
- '
Some title
' +
- '
' +
- '
';
+ const content =
+ ``;
document.body.insertAdjacentHTML('beforeend', content);
});
afterEach(function() {
- var content = document.getElementById('outer-wrapper');
+ const content = document.getElementById('outer-wrapper');
content.parentNode.removeChild(content);
Mozilla.Banner.id = null;
@@ -58,18 +59,19 @@ describe('mozilla-banner.js', function() {
});
describe('close', function() {
- var bannerId = 'test-banner';
+ const bannerId = 'test-banner';
beforeEach(function() {
- var content = '' +
- '
Some title
' +
- '
' +
- '
';
+ const content =
+ ``;
document.body.insertAdjacentHTML('beforeend', content);
});
afterEach(function() {
- var content = document.getElementById('outer-wrapper');
+ const content = document.getElementById('outer-wrapper');
content.parentNode.removeChild(content);
Mozilla.Banner.id = null;
@@ -80,9 +82,9 @@ describe('mozilla-banner.js', function() {
spyOn(window.Mozilla.Banner, 'setCookie');
spyOn(window.Mozilla.Banner, 'close').and.callThrough();
Mozilla.Banner.init(bannerId);
- var banner = document.getElementById(bannerId);
+ const banner = document.getElementById(bannerId);
expect(banner.classList.contains('c-banner-is-visible')).toBeTruthy();
- var close = document.querySelector('.c-banner-close');
+ const close = document.querySelector('.c-banner-close');
close.click();
expect(Mozilla.Banner.close).toHaveBeenCalled();
expect(Mozilla.Banner.setCookie).toHaveBeenCalledWith(bannerId);
diff --git a/tests/unit/spec/base/mozilla-client.js b/tests/unit/spec/base/mozilla-client.js
index 5ac15e2796e..804ce0fb473 100644
--- a/tests/unit/spec/base/mozilla-client.js
+++ b/tests/unit/spec/base/mozilla-client.js
@@ -8,7 +8,7 @@ describe('mozilla-client.js', function() {
'use strict';
// User-agent strings for the most of the following tests
- var uas = {
+ const uas = {
// Firefox family
'firefox': {
'windows': 'Mozilla/5.0 (Windows NT x.y; rv:10.0) Gecko/20100101 Firefox/10.0',
@@ -42,7 +42,7 @@ describe('mozilla-client.js', function() {
describe('_isFirefox', function() {
- var test = function(ua) {
+ const test = (ua) => {
return expect(window.Mozilla.Client._isFirefox(ua));
};
@@ -89,7 +89,7 @@ describe('mozilla-client.js', function() {
describe('_isFirefoxDesktop', function () {
- var test = function(ua) {
+ const test = (ua) => {
return expect(window.Mozilla.Client._isFirefoxDesktop(ua));
};
@@ -136,7 +136,7 @@ describe('mozilla-client.js', function() {
describe('_isFirefoxAndroid', function () {
- var test = function(ua) {
+ const test = (ua) => {
return expect(window.Mozilla.Client._isFirefoxAndroid(ua));
};
@@ -183,7 +183,7 @@ describe('mozilla-client.js', function() {
describe('_isFirefoxiOS', function () {
- var test = function(ua) {
+ const test = (ua) => {
return expect(window.Mozilla.Client._isFirefoxiOS(ua));
};
@@ -230,7 +230,7 @@ describe('mozilla-client.js', function() {
describe('_isFirefoxFxOS', function () {
- var test = function(ua, pf) {
+ const test = (ua, pf) => {
return expect(window.Mozilla.Client._isFirefoxFxOS(ua, pf));
};
@@ -277,7 +277,7 @@ describe('mozilla-client.js', function() {
describe('_isLikeFirefox', function() {
- var test = function(ua) {
+ const test = (ua) => {
return expect(window.Mozilla.Client._isLikeFirefox(ua));
};
@@ -324,7 +324,7 @@ describe('mozilla-client.js', function() {
describe('_getFirefoxVersion', function () {
- var test = function(ua) {
+ const test = (ua) => {
return expect(window.Mozilla.Client._getFirefoxVersion(ua));
};
@@ -371,7 +371,7 @@ describe('mozilla-client.js', function() {
describe('_getFirefoxMajorVersion', function () {
- var test = function(ua) {
+ const test = (ua) => {
return expect(window.Mozilla.Client._getFirefoxMajorVersion(ua));
};
@@ -418,9 +418,9 @@ describe('mozilla-client.js', function() {
describe('_isFirefoxUpToDate', function () {
- var h = document.documentElement;
+ const h = document.documentElement;
- var test = function(strict, isESR, userVer) {
+ var test = (strict, isESR, userVer) => {
return expect(window.Mozilla.Client._isFirefoxUpToDate(strict, isESR, userVer));
};
@@ -472,7 +472,7 @@ describe('mozilla-client.js', function() {
describe('getFirefoxDetails', function () {
- var h = document.documentElement;
+ const h = document.documentElement;
beforeEach(function () {
h.setAttribute('data-latest-firefox', '46.0.2');
@@ -488,9 +488,9 @@ describe('mozilla-client.js', function() {
});
it('should fire the callback function with a Firefox details object', function() {
- var callback1 = jasmine.createSpy('callback1');
- var callback2 = jasmine.createSpy('callback2');
- var result = {
+ const callback1 = jasmine.createSpy('callback1');
+ const callback2 = jasmine.createSpy('callback2');
+ const result = {
'accurate': false, // Because the mozUITour API doesn't get called in tests, this won't be true
'version': '46.0.2',
'channel': 'release',
@@ -525,7 +525,7 @@ describe('mozilla-client.js', function() {
});
it('should fire the callback function with a FxA details object', function() {
- var callback1 = jasmine.createSpy('callback1');
+ const callback1 = jasmine.createSpy('callback1');
window.Mozilla.Client.getFxaDetails(callback1);
jasmine.clock().tick(500);
@@ -540,7 +540,7 @@ describe('mozilla-client.js', function() {
});
it('should identify Firefox for desktop as expected', function() {
- var callback1 = jasmine.createSpy('callback1');
+ const callback1 = jasmine.createSpy('callback1');
spyOn(Mozilla.Client, '_isFirefoxDesktop').and.returnValue(true);
window.Mozilla.Client.getFxaDetails(callback1);
@@ -550,7 +550,7 @@ describe('mozilla-client.js', function() {
});
it('should identify Firefox for Android as expected', function() {
- var callback1 = jasmine.createSpy('callback1');
+ const callback1 = jasmine.createSpy('callback1');
spyOn(Mozilla.Client, '_isFirefoxAndroid').and.returnValue(true);
window.Mozilla.Client.getFxaDetails(callback1);
@@ -561,7 +561,7 @@ describe('mozilla-client.js', function() {
});
it('should identify Firefox for iOS as expected', function() {
- var callback1 = jasmine.createSpy('callback1');
+ const callback1 = jasmine.createSpy('callback1');
spyOn(Mozilla.Client, '_isFirefoxiOS').and.returnValue(true);
window.Mozilla.Client.getFxaDetails(callback1);
@@ -572,7 +572,7 @@ describe('mozilla-client.js', function() {
});
it('should identify legacy Firefox browsers as expected', function() {
- var callback1 = jasmine.createSpy('callback1');
+ const callback1 = jasmine.createSpy('callback1');
spyOn(Mozilla.Client, '_isFirefoxDesktop').and.returnValue(true);
spyOn(Mozilla.Client, '_getFirefoxVersion').and.returnValue(Mozilla.Client.FxALastSupported - 1);
@@ -597,7 +597,7 @@ describe('mozilla-client.js', function() {
});
it('should fire the callback function with a FxaConnections details object', function() {
- var callback1 = jasmine.createSpy('callback1');
+ const callback1 = jasmine.createSpy('callback1');
window.Mozilla.Client.getFxaConnections(callback1);
jasmine.clock().tick(2100);
@@ -611,7 +611,7 @@ describe('mozilla-client.js', function() {
});
it('should identify legacy Firefox browsers as expected', function() {
- var callback1 = jasmine.createSpy('callback1');
+ const callback1 = jasmine.createSpy('callback1');
spyOn(Mozilla.Client, '_isFirefoxDesktop').and.returnValue(true);
spyOn(Mozilla.Client, '_getFirefoxVersion').and.returnValue(72);
@@ -623,7 +623,7 @@ describe('mozilla-client.js', function() {
});
it('should identify non Firefox browsers as expected', function() {
- var callback1 = jasmine.createSpy('callback1');
+ const callback1 = jasmine.createSpy('callback1');
spyOn(Mozilla.Client, '_isFirefoxDesktop').and.returnValue(false);
window.Mozilla.Client.getFxaConnections(callback1);
@@ -638,30 +638,30 @@ describe('mozilla-client.js', function() {
describe('isFirefoxOutOfDate', function () {
it('should return true if client version is equal to or less than the major version considered out of date', function () {
- var result = Mozilla.Client.isFirefoxOutOfDate('50.0', 2, '56.0.1');
+ const result = Mozilla.Client.isFirefoxOutOfDate('50.0', 2, '56.0.1');
expect(result).toBeTruthy();
- var result2 = Mozilla.Client.isFirefoxOutOfDate('54.0', 2, '56.0');
+ const result2 = Mozilla.Client.isFirefoxOutOfDate('54.0', 2, '56.0');
expect(result2).toBeTruthy();
- var result3 = Mozilla.Client.isFirefoxOutOfDate('54.0a1', 2, '56.0.1a1');
+ const result3 = Mozilla.Client.isFirefoxOutOfDate('54.0a1', 2, '56.0.1a1');
expect(result3).toBeTruthy();
- var result4 = Mozilla.Client.isFirefoxOutOfDate('55.0.1', 1, '56.0');
+ const result4 = Mozilla.Client.isFirefoxOutOfDate('55.0.1', 1, '56.0');
expect(result4).toBeTruthy();
});
it('should return false if client version is greater than the major version considered out of date', function () {
- var result = Mozilla.Client.isFirefoxOutOfDate('56.0', 2, '56.0.1');
+ const result = Mozilla.Client.isFirefoxOutOfDate('56.0', 2, '56.0.1');
expect(result).toBeFalsy();
- var result2 = Mozilla.Client.isFirefoxOutOfDate('58.0a2', 2, '56.0.1');
+ const result2 = Mozilla.Client.isFirefoxOutOfDate('58.0a2', 2, '56.0.1');
expect(result2).toBeFalsy();
- var result3 = Mozilla.Client.isFirefoxOutOfDate('55.0', 2, '56.0.1');
+ const result3 = Mozilla.Client.isFirefoxOutOfDate('55.0', 2, '56.0.1');
expect(result3).toBeFalsy();
- var result4 = Mozilla.Client.isFirefoxOutOfDate('56.0', 1, '56.0.1');
+ const result4 = Mozilla.Client.isFirefoxOutOfDate('56.0', 1, '56.0.1');
expect(result4).toBeFalsy();
});
@@ -670,44 +670,44 @@ describe('mozilla-client.js', function() {
describe('isFirefoxURLOutOfDate', function () {
it('should return true if URL version is equal to or less than the major version considered out of date', function () {
- var result = Mozilla.Client.isFirefoxURLOutOfDate(2, '/firefox/54.0/', '56.0');
+ const result = Mozilla.Client.isFirefoxURLOutOfDate(2, '/firefox/54.0/', '56.0');
expect(result).toBeTruthy();
- var result2 = Mozilla.Client.isFirefoxURLOutOfDate(2, '/firefox/54.0a1/', '56.0');
+ const result2 = Mozilla.Client.isFirefoxURLOutOfDate(2, '/firefox/54.0a1/', '56.0');
expect(result2).toBeTruthy();
- var result3 = Mozilla.Client.isFirefoxURLOutOfDate(2, '/firefox/54.0a2/', '56.0');
+ const result3 = Mozilla.Client.isFirefoxURLOutOfDate(2, '/firefox/54.0a2/', '56.0');
expect(result3).toBeTruthy();
- var result4 = Mozilla.Client.isFirefoxURLOutOfDate(1, '/firefox/55.0.1/', '56.0');
+ const result4 = Mozilla.Client.isFirefoxURLOutOfDate(1, '/firefox/55.0.1/', '56.0');
expect(result4).toBeTruthy();
- var result5 = Mozilla.Client.isFirefoxURLOutOfDate(2, '/firefox/53.0/', '56.0');
+ const result5 = Mozilla.Client.isFirefoxURLOutOfDate(2, '/firefox/53.0/', '56.0');
expect(result5).toBeTruthy();
});
it('should return false if URL version is greater than the major version considered out of date', function () {
- var result = Mozilla.Client.isFirefoxURLOutOfDate(2, '/firefox/55.0/', '56.0');
+ const result = Mozilla.Client.isFirefoxURLOutOfDate(2, '/firefox/55.0/', '56.0');
expect(result).toBeFalsy();
- var result2 = Mozilla.Client.isFirefoxURLOutOfDate(2, '/firefox/55.0a1/', '56.0');
+ const result2 = Mozilla.Client.isFirefoxURLOutOfDate(2, '/firefox/55.0a1/', '56.0');
expect(result2).toBeFalsy();
- var result3 = Mozilla.Client.isFirefoxURLOutOfDate(2, '/firefox/55.0a2/', '56.0');
+ const result3 = Mozilla.Client.isFirefoxURLOutOfDate(2, '/firefox/55.0a2/', '56.0');
expect(result3).toBeFalsy();
- var result4 = Mozilla.Client.isFirefoxURLOutOfDate(1, '/firefox/56.0/', '56.0.1');
+ const result4 = Mozilla.Client.isFirefoxURLOutOfDate(1, '/firefox/56.0/', '56.0.1');
expect(result4).toBeFalsy();
- var result5 = Mozilla.Client.isFirefoxURLOutOfDate(2, '/firefox/58.0/', '56.0');
+ const result5 = Mozilla.Client.isFirefoxURLOutOfDate(2, '/firefox/58.0/', '56.0');
expect(result5).toBeFalsy();
});
it('should return false if the URL version is invalid', function() {
- var result = Mozilla.Client.isFirefoxURLOutOfDate(2, '/firefox/foo/', '56.0');
+ const result = Mozilla.Client.isFirefoxURLOutOfDate(2, '/firefox/foo/', '56.0');
expect(result).toBeFalsy();
- var result2 = Mozilla.Client.isFirefoxURLOutOfDate(2, '/firefox/10/', '56.0');
+ const result2 = Mozilla.Client.isFirefoxURLOutOfDate(2, '/firefox/10/', '56.0');
expect(result2).toBeFalsy();
});
diff --git a/tests/unit/spec/base/mozilla-convert.js b/tests/unit/spec/base/mozilla-convert.js
index 319ff63379e..a12e2985c42 100644
--- a/tests/unit/spec/base/mozilla-convert.js
+++ b/tests/unit/spec/base/mozilla-convert.js
@@ -9,7 +9,7 @@ describe('mozilla-convert.js', function() {
describe('getCurrentExperiment', function() {
it('should return the current experiment name and variation', function() {
- var data = {
+ const data = {
'data': {
'experiments': {
'10033458': {
@@ -29,13 +29,13 @@ describe('mozilla-convert.js', function() {
}
};
- var result = Mozilla.Convert.getCurrentExperiment(data);
+ const result = Mozilla.Convert.getCurrentExperiment(data);
expect(result.experimentName).toEqual('10033458');
expect(result.experimentVariation).toEqual('100361887');
});
it('should be falsy if no experiment is running', function() {
- var data = {
+ const data = {
'data': {
'experiments': {
'10033458': {
@@ -51,7 +51,7 @@ describe('mozilla-convert.js', function() {
}
};
- var result = Mozilla.Convert.getCurrentExperiment(data);
+ const result = Mozilla.Convert.getCurrentExperiment(data);
expect(result).toBeFalsy();
});
});
diff --git a/tests/unit/spec/base/mozilla-fxa-form.js b/tests/unit/spec/base/mozilla-fxa-form.js
index 75c3be5fe13..b918873a2e4 100644
--- a/tests/unit/spec/base/mozilla-fxa-form.js
+++ b/tests/unit/spec/base/mozilla-fxa-form.js
@@ -11,28 +11,29 @@ describe('mozilla-fxa-form.js', function() {
describe('init', function() {
beforeEach(function() {
- var form = '';
-
- var data = {
+ const form =
+ ``;
+
+ const data = {
'deviceId': '848377ff6e3e4fc982307a316f4ca3d6',
'flowBeginTime': '1573052386673',
'flowId': '75f9a48a0f66c2f5919a0989605d5fa5dd04625ea5a2ee59b2d5d54637c566d1'
};
- var mockResponse = new window.Response(JSON.stringify(data), {
+ const mockResponse = new window.Response(JSON.stringify(data), {
status: 200,
headers: {
'Content-type': 'application/json'
@@ -45,7 +46,7 @@ describe('mozilla-fxa-form.js', function() {
});
afterEach(function() {
- document.querySelectorAll('.fxa-email-form').forEach(function(e) {
+ document.querySelectorAll('.fxa-email-form').forEach((e) => {
e.parentNode.removeChild(e);
});
});
@@ -53,15 +54,15 @@ describe('mozilla-fxa-form.js', function() {
it('should configure the form for Firefox desktop < 71', function() {
spyOn(window.Mozilla.Client, '_isFirefoxDesktop').and.returnValue(true);
spyOn(window.Mozilla.Client, '_getFirefoxVersion').and.returnValue('70.0');
- spyOn(Mozilla.Client, 'getFirefoxDetails').and.callFake(function(callback) {
+ spyOn(Mozilla.Client, 'getFirefoxDetails').and.callFake((callback) => {
callback({
'accurate': true,
'distribution': undefined,
});
});
- return Mozilla.FxaForm.init().then(function() {
- var form = document.getElementById('fxa-email-form');
+ return Mozilla.FxaForm.init().then(() => {
+ const form = document.getElementById('fxa-email-form');
expect(form.getAttribute('action')).toEqual('https://accounts.firefox.com/');
expect(form.querySelector('[name="context"]').value).toEqual('fx_desktop_v3');
expect(form.querySelector('[name="service"]').value).toEqual('sync');
@@ -74,15 +75,15 @@ describe('mozilla-fxa-form.js', function() {
it('should configure the form for Firefox desktop >= 71', function() {
spyOn(window.Mozilla.Client, '_isFirefoxDesktop').and.returnValue(true);
spyOn(window.Mozilla.Client, '_getFirefoxVersion').and.returnValue('71.0');
- spyOn(Mozilla.Client, 'getFirefoxDetails').and.callFake(function(callback) {
+ spyOn(Mozilla.Client, 'getFirefoxDetails').and.callFake((callback) => {
callback({
'accurate': true,
'distribution': undefined,
});
});
- return Mozilla.FxaForm.init().then(function() {
- var form = document.getElementById('fxa-email-form');
+ return Mozilla.FxaForm.init().then(() => {
+ const form = document.getElementById('fxa-email-form');
expect(form.getAttribute('action')).toEqual('https://accounts.firefox.com/');
expect(form.querySelector('[name="context"]').value).toEqual('fx_desktop_v3');
expect(form.querySelector('[name="service"]')).toBeNull();
@@ -95,7 +96,7 @@ describe('mozilla-fxa-form.js', function() {
it('should configure the form for non-Firefox browsers', function() {
spyOn(window.Mozilla.Client, '_isFirefoxDesktop').and.returnValue(false);
- return Mozilla.FxaForm.init().then(function() {
+ return Mozilla.FxaForm.init().then(() => {
var form = document.getElementById('fxa-email-form');
expect(form.getAttribute('action')).toEqual('https://accounts.firefox.com/');
expect(form.querySelector('[name="context"]')).toBeNull();
diff --git a/tests/unit/spec/base/mozilla-fxa-link.js b/tests/unit/spec/base/mozilla-fxa-link.js
index 82942e81d4b..66025d04a58 100644
--- a/tests/unit/spec/base/mozilla-fxa-link.js
+++ b/tests/unit/spec/base/mozilla-fxa-link.js
@@ -11,7 +11,7 @@ describe('mozilla-fxa-link.js', function() {
describe('init', function() {
beforeEach(function() {
- var link = 'Sign In';
+ const link = 'Sign In';
document.body.insertAdjacentHTML('beforeend', link);
});
@@ -25,8 +25,8 @@ describe('mozilla-fxa-link.js', function() {
spyOn(window.Mozilla.Client, '_isFirefoxDesktop').and.returnValue(true);
spyOn(window.Mozilla.Client, '_getFirefoxVersion').and.returnValue('70.0');
Mozilla.FxaLink.init();
- var link = document.querySelector('.js-fxa-cta-link');
- var mozillaOnlineLink = link.getAttribute('data-mozillaonline-link');
+ const link = document.querySelector('.js-fxa-cta-link');
+ const mozillaOnlineLink = link.getAttribute('data-mozillaonline-link');
expect(link.href).toEqual('https://accounts.firefox.com/signin?form_type=button&entrypoint=mozilla.org-firefoxnav&utm_source=mozilla.org-firefoxnav&utm_medium=referral&utm_campaign=nav&utm_content=join-sign-in&context=fx_desktop_v3&service=sync');
expect(mozillaOnlineLink).toEqual('https://accounts.firefox.com.cn/signin?form_type=button&entrypoint=mozilla.org-firefoxnav&utm_source=mozilla.org-firefoxnav&utm_medium=referral&utm_campaign=nav&utm_content=join-sign-in&context=fx_desktop_v3&service=sync');
});
@@ -35,8 +35,8 @@ describe('mozilla-fxa-link.js', function() {
spyOn(window.Mozilla.Client, '_isFirefoxDesktop').and.returnValue(true);
spyOn(window.Mozilla.Client, '_getFirefoxVersion').and.returnValue('71.0');
Mozilla.FxaLink.init();
- var link = document.querySelector('.js-fxa-cta-link');
- var mozillaOnlineLink = link.getAttribute('data-mozillaonline-link');
+ const link = document.querySelector('.js-fxa-cta-link');
+ const mozillaOnlineLink = link.getAttribute('data-mozillaonline-link');
expect(link.href).toEqual('https://accounts.firefox.com/signin?form_type=button&entrypoint=mozilla.org-firefoxnav&utm_source=mozilla.org-firefoxnav&utm_medium=referral&utm_campaign=nav&utm_content=join-sign-in&context=fx_desktop_v3');
expect(mozillaOnlineLink).toEqual('https://accounts.firefox.com.cn/signin?form_type=button&entrypoint=mozilla.org-firefoxnav&utm_source=mozilla.org-firefoxnav&utm_medium=referral&utm_campaign=nav&utm_content=join-sign-in&context=fx_desktop_v3');
});
@@ -44,8 +44,8 @@ describe('mozilla-fxa-link.js', function() {
it('should not add context or service params for other user agents', function() {
spyOn(window.Mozilla.Client, '_isFirefoxDesktop').and.returnValue(false);
Mozilla.FxaLink.init();
- var link = document.querySelector('.js-fxa-cta-link');
- var mozillaOnlineLink = link.getAttribute('data-mozillaonline-link');
+ const link = document.querySelector('.js-fxa-cta-link');
+ const mozillaOnlineLink = link.getAttribute('data-mozillaonline-link');
expect(link.href).toEqual('https://accounts.firefox.com/signin?form_type=button&entrypoint=mozilla.org-firefoxnav&utm_source=mozilla.org-firefoxnav&utm_medium=referral&utm_campaign=nav&utm_content=join-sign-in');
expect(mozillaOnlineLink).toEqual('https://accounts.firefox.com.cn/signin?form_type=button&entrypoint=mozilla.org-firefoxnav&utm_source=mozilla.org-firefoxnav&utm_medium=referral&utm_campaign=nav&utm_content=join-sign-in');
});
@@ -57,8 +57,8 @@ describe('mozilla-fxa-link.js', function() {
window.Mozilla.UITour.ping = sinon.stub().callsArg(0);
spyOn(window.Mozilla.UITour, 'showFirefoxAccounts');
spyOn(window.Mozilla.Client, '_getFirefoxVersion').and.returnValue('80.0');
- return Mozilla.FxaLink.init(function() {
- var link = document.querySelector('.js-fxa-cta-link');
+ return Mozilla.FxaLink.init(() => {
+ const link = document.querySelector('.js-fxa-cta-link');
expect(link.getAttribute('role')).toEqual('button');
link.click();
expect(window.Mozilla.UITour.showFirefoxAccounts).toHaveBeenCalledWith({
@@ -73,7 +73,7 @@ describe('mozilla-fxa-link.js', function() {
});
it('does NOT use the UITour for non-FxA domains in Fx >= 80', function() {
- var link = document.querySelectorAll('.js-fxa-cta-link')[0];
+ const link = document.querySelectorAll('.js-fxa-cta-link')[0];
link.href = 'https://monitor.firefox.com';
spyOn(window.Mozilla.Client, '_isFirefoxDesktop').and.returnValue(true);
window.Mozilla.UITour = sinon.stub();
@@ -81,24 +81,24 @@ describe('mozilla-fxa-link.js', function() {
window.Mozilla.UITour.ping = sinon.stub().callsArg(0);
spyOn(window.Mozilla.UITour, 'showFirefoxAccounts');
spyOn(window.Mozilla.Client, '_getFirefoxVersion').and.returnValue('80.0');
- return Mozilla.FxaLink.init(function() {
+ return Mozilla.FxaLink.init(() => {
expect(link.getAttribute('role')).toEqual(null);
});
});
it('handles flow and entrypoint parameters on the link in Fx >= 80', function() {
- var link = document.querySelectorAll('.js-fxa-cta-link')[0];
+ const link = document.querySelectorAll('.js-fxa-cta-link')[0];
link.href = 'https://accounts.firefox.com/signin?form_type=button&entrypoint=mozilla.org-firefoxnav&' +
- 'utm_source=mozilla.org-firefoxnav&utm_medium=referral&utm_campaign=nav&utm_content=join-sign-in&' +
- 'flow_id=flow&flow_begin_time=100&device_id=dev&entrypoint_experiment=exp&entrypoint_variation=var';
+ 'utm_source=mozilla.org-firefoxnav&utm_medium=referral&utm_campaign=nav&utm_content=join-sign-in&' +
+ 'flow_id=flow&flow_begin_time=100&device_id=dev&entrypoint_experiment=exp&entrypoint_variation=var';
spyOn(window.Mozilla.Client, '_isFirefoxDesktop').and.returnValue(true);
window.Mozilla.UITour = sinon.stub();
window.Mozilla.UITour.showFirefoxAccounts = sinon.stub().returns(true);
window.Mozilla.UITour.ping = sinon.stub().callsArg(0);
spyOn(window.Mozilla.UITour, 'showFirefoxAccounts');
spyOn(window.Mozilla.Client, '_getFirefoxVersion').and.returnValue('80.0');
- return Mozilla.FxaLink.init(function() {
- var link = document.querySelector('.js-fxa-cta-link');
+ return Mozilla.FxaLink.init(() => {
+ const link = document.querySelector('.js-fxa-cta-link');
expect(link.getAttribute('role')).toEqual('button');
link.click();
expect(window.Mozilla.UITour.showFirefoxAccounts).toHaveBeenCalledWith({
diff --git a/tests/unit/spec/base/mozilla-fxa-product-button.js b/tests/unit/spec/base/mozilla-fxa-product-button.js
index ae3cb2d8a01..3b6d5554d47 100644
--- a/tests/unit/spec/base/mozilla-fxa-product-button.js
+++ b/tests/unit/spec/base/mozilla-fxa-product-button.js
@@ -8,18 +8,19 @@ describe('mozilla-fxa-product-button.js', function() {
'use strict';
beforeEach(function() {
- var button = 'Sign Up to Monitor' +
- 'Activate Pocket' +
- 'Learn more' +
- 'Get Mozilla VPN';
+ const button =
+ `Sign Up to Monitor
+ Activate Pocket
+ Learn more
+ Get Mozilla VPN`;
- var data = {
+ const data = {
'deviceId': '848377ff6e3e4fc982307a316f4ca3d6',
'flowBeginTime': '1573052386673',
'flowId': '75f9a48a0f66c2f5919a0989605d5fa5dd04625ea5a2ee59b2d5d54637c566d1'
};
- var mockResponse = new window.Response(JSON.stringify(data), {
+ const mockResponse = new window.Response(JSON.stringify(data), {
status: 200,
headers: {
'Content-type': 'application/json'
@@ -32,78 +33,78 @@ describe('mozilla-fxa-product-button.js', function() {
});
afterEach(function() {
- document.querySelectorAll('.js-fxa-product-button').forEach(function(e) {
+ document.querySelectorAll('.js-fxa-product-button').forEach((e) => {
e.parentNode.removeChild(e);
});
});
it('should make a single metrics flow request', function() {
- spyOn(Mozilla.Client, 'getFirefoxDetails').and.callFake(function(callback) {
+ spyOn(Mozilla.Client, 'getFirefoxDetails').and.callFake((callback) => {
callback({
'accurate': true,
'distribution': undefined,
});
});
- return Mozilla.FxaProductButton.init().then(function() {
+ return Mozilla.FxaProductButton.init().then(() => {
expect(window.fetch).toHaveBeenCalledTimes(1);
expect(window.fetch).toHaveBeenCalledWith('https://accounts.firefox.com/metrics-flow?form_type=button&entrypoint=mozilla.org-whatsnew60&utm_source=mozilla.org-whatsnew60&utm_campaign=whatsnew60&utm_medium=referral');
});
});
it('should attach flow parameters to button hrefs in the metrics response', function() {
- spyOn(Mozilla.Client, 'getFirefoxDetails').and.callFake(function(callback) {
+ spyOn(Mozilla.Client, 'getFirefoxDetails').and.callFake((callback) => {
callback({
'accurate': true,
'distribution': undefined,
});
});
- return Mozilla.FxaProductButton.init().then(function() {
- var buttons = document.querySelectorAll('.js-fxa-product-button');
+ return Mozilla.FxaProductButton.init().then(() => {
+ const buttons = document.querySelectorAll('.js-fxa-product-button');
expect(buttons[0].href).toEqual('https://accounts.firefox.com/signup?form_type=button&entrypoint=mozilla.org-whatsnew60&utm_source=mozilla.org-whatsnew60&utm_medium=referral&utm_campaign=whatsnew60&context=fx_desktop_v3&device_id=848377ff6e3e4fc982307a316f4ca3d6&flow_begin_time=1573052386673&flow_id=75f9a48a0f66c2f5919a0989605d5fa5dd04625ea5a2ee59b2d5d54637c566d1');
expect(buttons[1].href).toEqual('https://getpocket.com/ff_signup?s=ffwelcome2&form_type=button&entrypoint=mozilla.org-firefox-welcome-2&utm_source=mozilla.org-firefox-welcome-2&utm_campaign=welcome-2-pocket&utm_medium=referral&device_id=848377ff6e3e4fc982307a316f4ca3d6&flow_begin_time=1573052386673&flow_id=75f9a48a0f66c2f5919a0989605d5fa5dd04625ea5a2ee59b2d5d54637c566d1');
});
});
it('should not attach flow parameters to button hrefs in the domain is invalid', function() {
- spyOn(Mozilla.Client, 'getFirefoxDetails').and.callFake(function(callback) {
+ spyOn(Mozilla.Client, 'getFirefoxDetails').and.callFake((callback) => {
callback({
'accurate': true,
'distribution': undefined,
});
});
- return Mozilla.FxaProductButton.init().then(function() {
- var buttons = document.querySelectorAll('.js-fxa-product-button');
+ return Mozilla.FxaProductButton.init().then(() => {
+ const buttons = document.querySelectorAll('.js-fxa-product-button');
expect(buttons[2].href).toEqual('https://www.mozilla.org/en-US/firefox/accounts/');
});
});
it('should not attach flow parameters if already present', function() {
- spyOn(Mozilla.Client, 'getFirefoxDetails').and.callFake(function(callback) {
+ spyOn(Mozilla.Client, 'getFirefoxDetails').and.callFake((callback) => {
callback({
'accurate': true,
'distribution': undefined,
});
});
- return Mozilla.FxaProductButton.init().then(function() {
- var buttons = document.querySelectorAll('.js-fxa-product-button');
+ return Mozilla.FxaProductButton.init().then(() => {
+ const buttons = document.querySelectorAll('.js-fxa-product-button');
expect(buttons[3].href).toEqual('https://accounts.firefox.com/subscriptions/products/prod_FiJ42WCzZNRSbS?plan=plan_FvPMH5lVx1vhV0&device_id=123456789&flow_begin_time=123456789&flow_id=123456789');
});
});
it('should switch to mozillaonline distribution when needed', function() {
- spyOn(Mozilla.Client, 'getFirefoxDetails').and.callFake(function(callback) {
+ spyOn(Mozilla.Client, 'getFirefoxDetails').and.callFake((callback) => {
callback({
'accurate': true,
'distribution': 'mozillaonline',
});
});
- return Mozilla.FxaProductButton.init().then(function() {
- var buttons = document.querySelectorAll('.js-fxa-product-button');
+ return Mozilla.FxaProductButton.init().then(() => {
+ const buttons = document.querySelectorAll('.js-fxa-product-button');
expect(window.fetch).toHaveBeenCalledWith('https://accounts.firefox.com.cn/metrics-flow?form_type=button&entrypoint=mozilla.org-whatsnew60&utm_source=mozilla.org-whatsnew60&utm_campaign=whatsnew60&utm_medium=referral');
expect(buttons[0].href).toEqual('https://accounts.firefox.com.cn/signup?form_type=button&entrypoint=mozilla.org-whatsnew60&utm_source=mozilla.org-whatsnew60&utm_medium=referral&utm_campaign=whatsnew60&context=fx_desktop_v3&device_id=848377ff6e3e4fc982307a316f4ca3d6&flow_begin_time=1573052386673&flow_id=75f9a48a0f66c2f5919a0989605d5fa5dd04625ea5a2ee59b2d5d54637c566d1');
expect(buttons[1].href).toEqual('https://getpocket.com/ff_signup?s=ffwelcome2&form_type=button&entrypoint=mozilla.org-firefox-welcome-2&utm_source=mozilla.org-firefox-welcome-2&utm_campaign=welcome-2-pocket&utm_medium=referral');
@@ -111,7 +112,7 @@ describe('mozilla-fxa-product-button.js', function() {
});
it('should return false if no buttons are present in the DOM', function() {
- document.querySelectorAll('.js-fxa-product-button').forEach(function(e) {
+ document.querySelectorAll('.js-fxa-product-button').forEach((e) => {
e.parentNode.removeChild(e);
});
diff --git a/tests/unit/spec/base/mozilla-fxa.js b/tests/unit/spec/base/mozilla-fxa.js
index 4467795968f..d209d779f34 100644
--- a/tests/unit/spec/base/mozilla-fxa.js
+++ b/tests/unit/spec/base/mozilla-fxa.js
@@ -30,10 +30,10 @@ describe('mozilla-fxa.js', function() {
describe('FxaState.getStateClassAndDo', function() {
it('should fire the callback function with a stateClass', function() {
- var callback1 = jasmine.createSpy('callback1');
+ const callback1 = jasmine.createSpy('callback1');
// mock details, isFirefoxiOS, and getFxaDetails
- var details = {
+ const details = {
'firefox': false,
'legacy': false,
'mobile': false,
@@ -42,7 +42,7 @@ describe('mozilla-fxa.js', function() {
'mobileDevices': false
};
- spyOn(Mozilla.Client, 'getFxaDetails').and.callFake(function(callback) {
+ spyOn(Mozilla.Client, 'getFxaDetails').and.callFake((callback) => {
callback(details);
});
@@ -63,7 +63,7 @@ describe('mozilla-fxa.js', function() {
// not Firefox
it('should set the appropriate body class when not firefox', function() {
- var details = {
+ const details = {
'firefox': false,
'legacy': false,
'mobile': false,
@@ -78,7 +78,7 @@ describe('mozilla-fxa.js', function() {
// Firefox Android
it('should set the appropriate body class when Firefox Android', function() {
- var details = {
+ const details = {
'firefox': true,
'legacy': false,
'mobile': 'android',
@@ -93,7 +93,7 @@ describe('mozilla-fxa.js', function() {
// Firefox iOS
it('should set the appropriate body class when Firefox iOS', function() {
- var details = {
+ const details = {
'firefox': true,
'legacy': false,
'mobile': 'ios',
@@ -108,7 +108,7 @@ describe('mozilla-fxa.js', function() {
// Firefox < 29
it('should set the appropriate body class when pre UITour Firefox', function() {
- var details = {
+ const details = {
'firefox': true,
'legacy': true,
'mobile': false,
@@ -123,7 +123,7 @@ describe('mozilla-fxa.js', function() {
// Firefox < FxALastSupported, logged out
it('should set the appropriate body class when Legacy Firefox', function() {
- var details = {
+ const details = {
'firefox': true,
'legacy': true,
'mobile': false,
@@ -138,7 +138,7 @@ describe('mozilla-fxa.js', function() {
// Firefox < FxALastSupported, logged out
it('should set the appropriate body class when Legacy Firefox logged out', function() {
- var details = {
+ const details = {
'firefox': true,
'legacy': true,
'mobile': false,
@@ -153,7 +153,7 @@ describe('mozilla-fxa.js', function() {
// Firefox Desktop < FxALastSupported, logged in
it('should set the appropriate body class when Legacy Firefox logged in', function() {
- var details = {
+ const details = {
'firefox': true,
'legacy': true,
'mobile': false,
@@ -168,7 +168,7 @@ describe('mozilla-fxa.js', function() {
// Firefox Desktop < 50, logged out
it('should set the appropriate body class when Firefox pre device count logged out', function() {
- var details = {
+ const details = {
'firefox': true,
'legacy': false,
'mobile': false,
@@ -183,7 +183,7 @@ describe('mozilla-fxa.js', function() {
// Firefox Desktop < 50, logged in
it('should set the appropriate body class when Firefox pre device count logged in', function() {
- var details = {
+ const details = {
'firefox': true,
'legacy': false,
'mobile': false,
@@ -198,7 +198,7 @@ describe('mozilla-fxa.js', function() {
// Firefox Desktop Current, logged out
it('should set the appropriate body class when Current Firefox Desktop logged out', function() {
- var details = {
+ const details = {
'firefox': true,
'legacy': false,
'mobile': false,
@@ -213,7 +213,7 @@ describe('mozilla-fxa.js', function() {
// Firefox Desktop Current, logged in
it('should set the appropriate body class when Current Firefox Desktop logged in', function() {
- var details = {
+ const details = {
'firefox': true,
'legacy': false,
'mobile': false,
diff --git a/tests/unit/spec/base/mozilla-lazy-load.js b/tests/unit/spec/base/mozilla-lazy-load.js
index b0f33384927..2ef3e68a8ba 100644
--- a/tests/unit/spec/base/mozilla-lazy-load.js
+++ b/tests/unit/spec/base/mozilla-lazy-load.js
@@ -15,7 +15,7 @@ describe('mozilla-lazy-load.js', function() {
describe('Mozilla.LazyLoad.init', function() {
- var selector = '.lazy-image-container img';
+ const selector = '.lazy-image-container img';
afterEach(function(){
Mozilla.LazyLoad.supportsInsersectionObserver = typeof IntersectionObserver !== 'undefined';
@@ -44,7 +44,7 @@ describe('mozilla-lazy-load.js', function() {
});
it('should throw an error if passed an invalid custom selector', function() {
- expect(function() {
+ expect(() => {
Mozilla.LazyLoad.init({foo: 'bar'});
}).toThrowError();
});
@@ -53,7 +53,7 @@ describe('mozilla-lazy-load.js', function() {
describe('Mozilla.LazyLoad.registerObserver', function() {
it('should register an IntersectionObserver correctly', function() {
- var observer = Mozilla.LazyLoad.registerObserver();
+ const observer = Mozilla.LazyLoad.registerObserver();
expect(observer instanceof window.IntersectionObserver).toBeTruthy();
});
});
@@ -61,15 +61,16 @@ describe('mozilla-lazy-load.js', function() {
describe('Mozilla.LazyLoad.observe', function() {
beforeEach(function() {
- var tpl = '
' +
- '
' +
- '
' +
- '
';
+ const tpl =
+ `
+
+
+
`;
document.body.insertAdjacentHTML('beforeend', tpl);
});
afterEach(function() {
- var content = document.querySelector('.lazy-image-container');
+ const content = document.querySelector('.lazy-image-container');
content.parentNode.removeChild(content);
});
@@ -77,14 +78,14 @@ describe('mozilla-lazy-load.js', function() {
spyOn(Mozilla.LazyLoad, 'registerObserver').and.returnValue({
observe: sinon.spy()
});
- var observer = Mozilla.LazyLoad.observe('.lazy-image-container img');
+ const observer = Mozilla.LazyLoad.observe('.lazy-image-container img');
expect(observer.observe.calledTwice).toBeTruthy();
});
});
describe('Mozilla.LazyLoad.observerCallback', function() {
- var changes = [
+ const changes = [
{
intersectionRatio: 0,
target: {
@@ -142,18 +143,18 @@ describe('mozilla-lazy-load.js', function() {
describe('Mozilla.LazyLoad.onImageLoad', function() {
beforeEach(function () {
- var img = '';
+ const img = '';
document.body.insertAdjacentHTML('beforeend', img);
});
afterEach(function(){
- var content = document.querySelector('.test-image');
+ const content = document.querySelector('.test-image');
content.parentNode.removeChild(content);
});
it('should remove the data-src attribute', function() {
- var img = document.querySelector('.test-image');
- var event = {
+ const img = document.querySelector('.test-image');
+ const event = {
target: img
};
Mozilla.LazyLoad.onImageLoad(event);
@@ -165,21 +166,22 @@ describe('mozilla-lazy-load.js', function() {
describe('Mozilla.LazyLoad.loadAllFallback', function() {
beforeEach(function () {
- var tpl = '' +
- '
' +
- '
' +
- '
';
+ const tpl =
+ `
+
+
+
`;
document.body.insertAdjacentHTML('beforeend', tpl);
});
afterEach(function(){
- var content = document.querySelector('.observer-list-test');
+ const content = document.querySelector('.observer-list-test');
content.parentNode.removeChild(content);
});
it('should register an IntersectionObserver correctly', function() {
- var image1 = document.querySelector('.observer-list-test .image1');
- var image2 = document.querySelector('.observer-list-test .image2');
+ const image1 = document.querySelector('.observer-list-test .image1');
+ const image2 = document.querySelector('.observer-list-test .image2');
Mozilla.LazyLoad.loadAllFallback('.observer-list-test img');
diff --git a/tests/unit/spec/base/mozilla-pixel.js b/tests/unit/spec/base/mozilla-pixel.js
index d9282e8b072..0ed6c2e783c 100644
--- a/tests/unit/spec/base/mozilla-pixel.js
+++ b/tests/unit/spec/base/mozilla-pixel.js
@@ -10,7 +10,7 @@ describe('mozilla-pixel.js', function() {
'use strict';
afterEach(function() {
- document.querySelectorAll('.moz-px').forEach(function(e) {
+ document.querySelectorAll('.moz-px').forEach((e) => {
e.parentNode.removeChild(e);
});
});
@@ -25,7 +25,7 @@ describe('mozilla-pixel.js', function() {
});
it('should add multiple pixels to document body', function() {
- var pixels = '/img/foo.png::/img/foo.png?v=1::/img/foo.png?v=2';
+ const pixels = '/img/foo.png::/img/foo.png?v=1::/img/foo.png?v=2';
spyOn(Mozilla, 'dntEnabled').and.returnValue(false);
spyOn(Mozilla.Pixel, 'getPixelData').and.returnValue(pixels);
Mozilla.Pixel.init();
@@ -55,7 +55,7 @@ describe('mozilla-pixel.js', function() {
it('should cache bust doubleclick request', function() {
// this is a bit of a hack to avoid making real requests to ad.doubleclick.net in test runs.
- var pixels = '/img/foo.png?ad.doubleclick.net/src=6417015';
+ const pixels = '/img/foo.png?ad.doubleclick.net/src=6417015';
Math.random = sinon.stub().returns(0.853456456);
spyOn(Mozilla, 'dntEnabled').and.returnValue(false);
spyOn(Mozilla.Pixel, 'getPixelData').and.returnValue(pixels);
diff --git a/tests/unit/spec/base/mozilla-run.js b/tests/unit/spec/base/mozilla-run.js
index e9730758df4..e734f716b49 100644
--- a/tests/unit/spec/base/mozilla-run.js
+++ b/tests/unit/spec/base/mozilla-run.js
@@ -24,7 +24,7 @@ describe('mozilla-run.js', function() {
});
it('should not execute callback for legacy browsers', function() {
- var obj = {
+ const obj = {
callback: function() {} // eslint-disable-line no-empty-function
};
window.site.isModernBrowser = false;
diff --git a/tests/unit/spec/base/mozilla-traffic-cop-funnelcake-geo.js b/tests/unit/spec/base/mozilla-traffic-cop-funnelcake-geo.js
index 29ab68fcece..1af12660e2b 100644
--- a/tests/unit/spec/base/mozilla-traffic-cop-funnelcake-geo.js
+++ b/tests/unit/spec/base/mozilla-traffic-cop-funnelcake-geo.js
@@ -80,15 +80,15 @@ describe('mozilla-traffic-cop-funnelcake-geo.js', function() {
});
describe('geoLookup', function() {
- var xhr;
- var xhrRequests = [];
+ let xhr;
+ let xhrRequests = [];
beforeEach(function() {
spyOn(Mozilla.TCFCGeoExp, 'runExperiment').and.returnValue(true);
spyOn(Mozilla.Cookies, 'setItem').and.returnValue(true);
xhr = sinon.useFakeXMLHttpRequest();
- xhr.onCreate = function(req) {
+ xhr.onCreate = (req) => {
xhrRequests.push(req);
};
});
@@ -108,7 +108,7 @@ describe('mozilla-traffic-cop-funnelcake-geo.js', function() {
});
it('should set a cookie if country does not match', function() {
- var someConfig = {experimentId: 'weapon-x'};
+ const someConfig = {experimentId: 'weapon-x'};
Mozilla.TCFCGeoExp.geoLookup('de', 'someCookie', someConfig);
@@ -118,7 +118,7 @@ describe('mozilla-traffic-cop-funnelcake-geo.js', function() {
});
it('should call runExperiment if country matches', function() {
- var someConfig = {};
+ const someConfig = {};
Mozilla.TCFCGeoExp.geoLookup('de', 'someCookie', someConfig);
diff --git a/tests/unit/spec/base/mozilla-utils.js b/tests/unit/spec/base/mozilla-utils.js
index bc5ba749f3f..cff95445e30 100755
--- a/tests/unit/spec/base/mozilla-utils.js
+++ b/tests/unit/spec/base/mozilla-utils.js
@@ -7,24 +7,25 @@ describe('mozilla-utils.js', function() {
'use strict';
describe('trans', function () {
- var stringDiv;
+ let stringDiv;
beforeEach(function () {
- stringDiv = ' ' +
- '
';
+ stringDiv =
+ `
+
`;
document.body.insertAdjacentHTML('beforeend', stringDiv);
});
afterEach(function() {
- var strings = document.getElementById('strings');
+ const strings = document.getElementById('strings');
strings.parentNode.removeChild(strings);
});
it('should correctly return translation value', function () {
- var translation = Mozilla.Utils.trans('global-next');
+ const translation = Mozilla.Utils.trans('global-next');
expect(translation === 'Next');
});
});
@@ -32,14 +33,14 @@ describe('mozilla-utils.js', function() {
describe('initMobileDownloadLinks', function () {
beforeEach(function() {
- var link = 'Download Firefox';
+ const link = 'Download Firefox';
document.body.insertAdjacentHTML('beforeend', link);
});
afterEach(function(){
window.site.platform = 'other';
- document.querySelectorAll('.download-link').forEach(function(e) {
+ document.querySelectorAll('.download-link').forEach((e) => {
e.parentNode.removeChild(e);
});
});
@@ -47,23 +48,23 @@ describe('mozilla-utils.js', function() {
it('should set a URL with the market scheme on Android', function () {
window.site.platform = 'android';
Mozilla.Utils.initMobileDownloadLinks();
- var link = document.querySelector('.download-link');
+ const link = document.querySelector('.download-link');
expect(link.href).toEqual('market://details?id=org.mozilla.firefox');
});
});
describe('maybeSwitchToChinaRepackImages', function() {
- var defaultSrc = '/img/placeholder.png';
- var partnerASrc = '/img/foo.png';
+ const defaultSrc = '/img/placeholder.png';
+ const partnerASrc = '/img/foo.png';
beforeEach(function () {
- var img = '';
+ const img = ``;
document.body.insertAdjacentHTML('beforeend', img);
});
afterEach(function() {
- document.querySelectorAll('.test-image').forEach(function(e) {
+ document.querySelectorAll('.test-image').forEach((e) => {
e.parentNode.removeChild(e);
});
});
@@ -72,7 +73,7 @@ describe('mozilla-utils.js', function() {
Mozilla.Utils.maybeSwitchToChinaRepackImages({
distribution: 'mozillaonline'
});
- var img = document.querySelector('.test-image');
+ const img = document.querySelector('.test-image');
expect(img.src).toContain(partnerASrc);
});
@@ -80,7 +81,7 @@ describe('mozilla-utils.js', function() {
Mozilla.Utils.maybeSwitchToChinaRepackImages({
distribution: 'regata os'
});
- var img = document.querySelector('.test-image');
+ const img = document.querySelector('.test-image');
expect(img.src).toContain(defaultSrc);
});
});
@@ -88,10 +89,10 @@ describe('mozilla-utils.js', function() {
describe('getDownloadAttributionValues', function() {
it('should return expected values for Windows', function () {
- var site = {
+ const site = {
platform: 'windows'
};
- var result = Mozilla.Utils.getDownloadAttributionValues(site);
+ const result = Mozilla.Utils.getDownloadAttributionValues(site);
expect(result).toEqual({
os: 'Desktop',
name: 'Windows 32-bit',
@@ -100,10 +101,10 @@ describe('mozilla-utils.js', function() {
});
it('should return expected values for macOS', function () {
- var site = {
+ const site = {
platform: 'osx'
};
- var result = Mozilla.Utils.getDownloadAttributionValues(site);
+ const result = Mozilla.Utils.getDownloadAttributionValues(site);
expect(result).toEqual({
os: 'Desktop',
name: 'macOS',
@@ -112,11 +113,11 @@ describe('mozilla-utils.js', function() {
});
it('should return expected values for Linux', function () {
- var site = {
+ const site = {
platform: 'linux',
archSize: 32
};
- var result = Mozilla.Utils.getDownloadAttributionValues(site);
+ const result = Mozilla.Utils.getDownloadAttributionValues(site);
expect(result).toEqual({
os: 'Desktop',
name: 'Linux 32-bit',
@@ -125,11 +126,11 @@ describe('mozilla-utils.js', function() {
});
it('should return expected values for Linux 64-Bit builds', function () {
- var site = {
+ const site = {
platform: 'linux',
archSize: 64
};
- var result = Mozilla.Utils.getDownloadAttributionValues(site);
+ const result = Mozilla.Utils.getDownloadAttributionValues(site);
expect(result).toEqual({
os: 'Desktop',
name: 'Linux 64-bit',
@@ -138,10 +139,10 @@ describe('mozilla-utils.js', function() {
});
it('should return expected values for iOS', function () {
- var site = {
+ const site = {
platform: 'ios'
};
- var result = Mozilla.Utils.getDownloadAttributionValues(site);
+ const result = Mozilla.Utils.getDownloadAttributionValues(site);
expect(result).toEqual({
os: 'iOS',
name: 'iOS',
@@ -150,10 +151,10 @@ describe('mozilla-utils.js', function() {
});
it('should return expected values for Android', function () {
- var site = {
+ const site = {
platform: 'android'
};
- var result = Mozilla.Utils.getDownloadAttributionValues(site);
+ const result = Mozilla.Utils.getDownloadAttributionValues(site);
expect(result).toEqual({
os: 'Android',
name: 'Android',
@@ -162,10 +163,10 @@ describe('mozilla-utils.js', function() {
});
it('should return expected values for unsupported / unknown platforms', function () {
- var site = {
+ const site = {
platform: 'other'
};
- var result = Mozilla.Utils.getDownloadAttributionValues(site);
+ const result = Mozilla.Utils.getDownloadAttributionValues(site);
expect(result).toEqual({
os: 'Unsupported',
name: 'Unsupported',
diff --git a/tests/unit/spec/base/search-params.js b/tests/unit/spec/base/search-params.js
index 8b5e17eb245..ea5f2b41f50 100755
--- a/tests/unit/spec/base/search-params.js
+++ b/tests/unit/spec/base/search-params.js
@@ -12,14 +12,14 @@ describe('search-params.js', function() {
describe('_SearchParams', function () {
it('should return a proper value', function () {
- var params = new _SearchParams('scene=2&source=getfirefox');
+ const params = new _SearchParams('scene=2&source=getfirefox');
expect(params.get('scene')).toEqual(2);
expect(params.get('source')).toEqual('getfirefox');
expect(params.get('utm_campaign')).toBeUndefined();
});
it('should set a proper value', function () {
- var params = new _SearchParams('scene=2&source=getfirefox');
+ const params = new _SearchParams('scene=2&source=getfirefox');
params.set('scene', '3');
params.set('utm_medium', 'referral');
expect(params.get('scene')).toEqual(3);
@@ -27,44 +27,44 @@ describe('search-params.js', function() {
});
it('should detect if the key exists', function () {
- var params = new _SearchParams('scene=2&source=getfirefox');
+ const params = new _SearchParams('scene=2&source=getfirefox');
expect(params.has('scene')).toBeTruthy();
expect(params.has('source')).toBeTruthy();
expect(params.has('utm_source')).toBeFalsy();
});
it('should remove a value', function () {
- var params = new _SearchParams('scene=2&source=getfirefox');
+ const params = new _SearchParams('scene=2&source=getfirefox');
params.remove('utm_medium');
expect(params.has('utm_medium')).toBeFalsy();
expect(params.get('utm_medium')).toBeUndefined();
});
it('should return a param string', function () {
- var params = new _SearchParams('scene=2&source=getfirefox');
+ const params = new _SearchParams('scene=2&source=getfirefox');
expect(params.toString()).toEqual('scene=2&source=getfirefox');
});
it('should return an object of utm_ values', function () {
- var sp = new _SearchParams('utm_dude=lebowski&utm_sport=bowling&source=getfirefox');
- var utms = sp.utmParams();
- var keys = Object.keys(utms);
+ const sp = new _SearchParams('utm_dude=lebowski&utm_sport=bowling&source=getfirefox');
+ const utms = sp.utmParams();
+ const keys = Object.keys(utms);
expect(keys).toEqual(['utm_dude', 'utm_sport']);
expect(utms.utm_dude).toEqual('lebowski');
expect(utms.utm_sport).toEqual('bowling');
});
it('should return an object of utm_ values with defaults for FxA', function () {
- var sp = new _SearchParams('utm_dude=lebowski&utm_sport=bowling&source=getfirefox');
- var utms = sp.utmParamsFxA('/es-ES/firefox/sync/');
+ const sp = new _SearchParams('utm_dude=lebowski&utm_sport=bowling&source=getfirefox');
+ const utms = sp.utmParamsFxA('/es-ES/firefox/sync/');
expect(utms.utm_dude).toEqual('lebowski');
expect(utms.utm_campaign).toEqual('page referral - not part of a campaign');
expect(utms.utm_content).toEqual('/firefox/sync/');
});
it('should return an object of string utm_ values for FxA', function () {
- var sp = new _SearchParams('utm_dude=lebowski&utm_strikes=10&source=getfirefox');
- var utms = sp.utmParamsFxA('/es-ES/firefox/sync/');
+ const sp = new _SearchParams('utm_dude=lebowski&utm_strikes=10&source=getfirefox');
+ const utms = sp.utmParamsFxA('/es-ES/firefox/sync/');
expect(utms.utm_dude).toEqual('lebowski');
expect(utms.utm_strikes).not.toEqual(10);
expect(utms.utm_strikes).toEqual('10');
@@ -72,8 +72,8 @@ describe('search-params.js', function() {
});
it('should not override utm_campaign when set in URL', function () {
- var sp = new _SearchParams('utm_dude=lebowski&utm_campaign=bowling&source=getfirefox');
- var utms = sp.utmParamsFxA();
+ const sp = new _SearchParams('utm_dude=lebowski&utm_campaign=bowling&source=getfirefox');
+ const utms = sp.utmParamsFxA();
expect(utms.utm_campaign).toEqual('bowling');
});
diff --git a/tests/unit/spec/base/send-to-device.js b/tests/unit/spec/base/send-to-device.js
index 0371236ff2a..c3da490904f 100644
--- a/tests/unit/spec/base/send-to-device.js
+++ b/tests/unit/spec/base/send-to-device.js
@@ -11,29 +11,28 @@ describe('send-to-device.js', function() {
'use strict';
- var form;
+ let form;
beforeEach(function () {
- var formMarkup = [
- ''
- ].join();
+ const formMarkup =
+ ``;
document.body.insertAdjacentHTML('beforeend', formMarkup);
@@ -50,7 +49,7 @@ describe('send-to-device.js', function() {
afterEach(function () {
form.unbindEvents();
- var content = document.getElementById('send-to-device');
+ const content = document.getElementById('send-to-device');
content.parentNode.removeChild(content);
});
@@ -83,12 +82,12 @@ describe('send-to-device.js', function() {
describe('onFormSubmit', function() {
- var xhr;
- var xhrRequests = [];
+ let xhr;
+ let xhrRequests = [];
beforeEach(function() {
xhr = sinon.useFakeXMLHttpRequest();
- xhr.onCreate = function(req) {
+ xhr.onCreate = (req) => {
xhrRequests.push(req);
};
});
diff --git a/tests/unit/spec/base/stub-attribution.js b/tests/unit/spec/base/stub-attribution.js
index 98507cf398a..cdeb968bf2b 100644
--- a/tests/unit/spec/base/stub-attribution.js
+++ b/tests/unit/spec/base/stub-attribution.js
@@ -10,7 +10,7 @@ describe('stub-attribution.js', function() {
'use strict';
- var GA_VISIT_ID = '1456954538.1610960957';
+ const GA_VISIT_ID = '1456954538.1610960957';
beforeEach(function() {
// stub out Mozilla.Cookie lib
@@ -26,7 +26,7 @@ describe('stub-attribution.js', function() {
describe('init', function() {
- var data = {};
+ let data = {};
beforeEach(function() {
/* eslint-disable camelcase */
@@ -46,7 +46,7 @@ describe('stub-attribution.js', function() {
it('should update download links if session cookie exists', function() {
/* eslint-disable camelcase */
- var cookieData = {
+ const cookieData = {
attribution_code: 'foo',
attribution_sig: 'bar'
};
@@ -153,7 +153,7 @@ describe('stub-attribution.js', function() {
describe('hasValidData', function() {
it('should return true for valid attribution data', function() {
/* eslint-disable camelcase */
- var data = {
+ const data = {
utm_source: 'desktop-snippet',
utm_medium: 'referral',
utm_campaign: 'F100_4242_otherstuff_in_here',
@@ -169,7 +169,7 @@ describe('stub-attribution.js', function() {
it('should return true for valid RTAMO data', function() {
/* eslint-disable camelcase */
- var data = {
+ const data = {
utm_source: 'addons.mozilla.org',
utm_medium: 'referral',
utm_campaign: 'non-fx-button',
@@ -185,7 +185,7 @@ describe('stub-attribution.js', function() {
it('should return false for RTAMO data that does not have AMO as the referrer', function() {
/* eslint-disable camelcase */
- var data = {
+ const data = {
utm_source: 'addons.mozilla.org',
utm_medium: 'referral',
utm_campaign: 'non-fx-button',
@@ -201,7 +201,7 @@ describe('stub-attribution.js', function() {
it('should return false for RTAMO data if referrer is not set', function() {
/* eslint-disable camelcase */
- var data = {
+ const data = {
utm_source: 'addons.mozilla.org',
utm_medium: 'referral',
utm_campaign: 'non-fx-button',
@@ -219,24 +219,24 @@ describe('stub-attribution.js', function() {
describe('isFirefoxNewScene2', function() {
it('should return true if the page is scene 2 of /firefox/new/', function() {
- var url = 'https://www.mozilla.org/en-US/firefox/download/thanks/';
+ const url = 'https://www.mozilla.org/en-US/firefox/download/thanks/';
expect(Mozilla.StubAttribution.isFirefoxNewScene2(url)).toBeTruthy();
- var url2 = 'https://www.mozilla.org/en-US/firefox/download/thanks/?foo=bar';
+ const url2 = 'https://www.mozilla.org/en-US/firefox/download/thanks/?foo=bar';
expect(Mozilla.StubAttribution.isFirefoxNewScene2(url2)).toBeTruthy();
});
});
describe('getUserAgent', function() {
- var ie8 = 'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB7.4; InfoPath.2; SV1; .NET CLR 3.3.69573; WOW64; en-US)';
- var ie9 = 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; Media Center PC 6.0; InfoPath.3; MS-RTC LM 8; Zune 4.7)';
- var ie10 = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 7.0; InfoPath.3; .NET CLR 3.1.40767; Trident/6.0; en-IN)';
- var ie11 = 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko';
- var ff = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:72.0) Gecko/20100101 Firefox/72.0';
- var chrome = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36';
- var edgeium = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.74 Safari/537.36 Edg/79.0.309.43';
- var edge = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14931';
+ const ie8 = 'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB7.4; InfoPath.2; SV1; .NET CLR 3.3.69573; WOW64; en-US)';
+ const ie9 = 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; Media Center PC 6.0; InfoPath.3; MS-RTC LM 8; Zune 4.7)';
+ const ie10 = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 7.0; InfoPath.3; .NET CLR 3.1.40767; Trident/6.0; en-IN)';
+ const ie11 = 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko';
+ const ff = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:72.0) Gecko/20100101 Firefox/72.0';
+ const chrome = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36';
+ const edgeium = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.74 Safari/537.36 Edg/79.0.309.43';
+ const edge = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14931';
it('should identify Internet Explorer', function() {
expect(Mozilla.StubAttribution.getUserAgent(ie8)).toEqual('ie');
@@ -262,7 +262,7 @@ describe('stub-attribution.js', function() {
describe('waitForGoogleAnalytics', function() {
it('should fire a callback with the GA visit ID', function() {
- var callback = jasmine.createSpy('callback');
+ const callback = jasmine.createSpy('callback');
Mozilla.StubAttribution.waitForGoogleAnalytics(callback);
expect(callback).toHaveBeenCalledWith(true);
@@ -272,10 +272,10 @@ describe('stub-attribution.js', function() {
describe('getAttributionData', function() {
it('should return attribution data if utm params are present', function() {
- var referrer = '';
+ const referrer = '';
/* eslint-disable camelcase */
- var utms = {
+ const utms = {
utm_source: 'desktop-snippet',
utm_medium: 'referral',
utm_campaign: 'F100_4242_otherstuff_in_here',
@@ -284,7 +284,7 @@ describe('stub-attribution.js', function() {
/* eslint-enable camelcase */
/* eslint-disable camelcase */
- var data = {
+ const data = {
utm_source: 'desktop-snippet',
utm_medium: 'referral',
utm_campaign: 'F100_4242_otherstuff_in_here',
@@ -297,15 +297,15 @@ describe('stub-attribution.js', function() {
spyOn(window._SearchParams.prototype, 'utmParams').and.returnValue(utms);
spyOn(Mozilla.StubAttribution, 'getUserAgent').and.returnValue('chrome');
- var result = Mozilla.StubAttribution.getAttributionData(referrer);
+ const result = Mozilla.StubAttribution.getAttributionData(referrer);
expect(result).toEqual(data);
});
it('should return attribution data if referrer is present', function() {
- var referrer = 'https://www.mozilla.org/en-US/';
+ const referrer = 'https://www.mozilla.org/en-US/';
/* eslint-disable camelcase */
- var utms = {
+ const utms = {
utm_source: undefined,
utm_medium: undefined,
utm_campaign: undefined,
@@ -314,7 +314,7 @@ describe('stub-attribution.js', function() {
/* eslint-enable camelcase */
/* eslint-disable camelcase */
- var data = {
+ const data = {
referrer: 'https://www.mozilla.org/en-US/',
ua: 'chrome',
visit_id: GA_VISIT_ID
@@ -323,15 +323,15 @@ describe('stub-attribution.js', function() {
spyOn(window._SearchParams.prototype, 'utmParams').and.returnValue(utms);
spyOn(Mozilla.StubAttribution, 'getUserAgent').and.returnValue('chrome');
- var result = Mozilla.StubAttribution.getAttributionData(referrer);
+ const result = Mozilla.StubAttribution.getAttributionData(referrer);
expect(result).toEqual(data);
});
it('should return only UA and GA data if neither utm params and referrer are present', function() {
- var referrer = '';
+ const referrer = '';
/* eslint-disable camelcase */
- var utms = {
+ const utms = {
utm_source: undefined,
utm_medium: undefined,
utm_campaign: undefined,
@@ -340,7 +340,7 @@ describe('stub-attribution.js', function() {
/* eslint-enable camelcase */
/* eslint-disable camelcase */
- var data = {
+ const data = {
referrer: '',
ua: 'chrome',
visit_id: GA_VISIT_ID
@@ -349,15 +349,15 @@ describe('stub-attribution.js', function() {
spyOn(window._SearchParams.prototype, 'utmParams').and.returnValue(utms);
spyOn(Mozilla.StubAttribution, 'getUserAgent').and.returnValue('chrome');
- var result = Mozilla.StubAttribution.getAttributionData(referrer);
+ const result = Mozilla.StubAttribution.getAttributionData(referrer);
expect(result).toEqual(data);
});
it('should return optional experimental parameters if present', function() {
- var referrer = '';
+ const referrer = '';
/* eslint-disable camelcase */
- var utms = {
+ const utms = {
utm_source: undefined,
utm_medium: undefined,
utm_campaign: undefined,
@@ -366,7 +366,7 @@ describe('stub-attribution.js', function() {
/* eslint-enable camelcase */
/* eslint-disable camelcase */
- var data = {
+ const data = {
referrer: '',
ua: 'chrome',
experiment: 'firefox-new',
@@ -380,19 +380,19 @@ describe('stub-attribution.js', function() {
return key === 'experiment' ? 'firefox-new' : 1;
});
spyOn(Mozilla.StubAttribution, 'getUserAgent').and.returnValue('chrome');
- var result = Mozilla.StubAttribution.getAttributionData(referrer);
+ const result = Mozilla.StubAttribution.getAttributionData(referrer);
expect(result).toEqual(data);
});
});
describe('requestAuthentication', function() {
- var xhr;
- var xhrRequests = [];
+ let xhr;
+ let xhrRequests = [];
beforeEach(function() {
xhr = sinon.useFakeXMLHttpRequest();
- xhr.onCreate = function(req) {
+ xhr.onCreate = (req) => {
xhrRequests.push(req);
};
jasmine.clock().install();
@@ -408,13 +408,13 @@ describe('stub-attribution.js', function() {
it('should handle a request successfully', function() {
/* eslint-disable camelcase */
- var data = {
+ const data = {
attribution_code: 'foo',
attribution_sig: 'bar'
};
/* eslint-enable camelcase */
- var callback = function() {}; // eslint-disable-line no-empty-function
+ const callback = function() {}; // eslint-disable-line no-empty-function
Mozilla.StubAttribution.successCallback = callback;
spyOn(Mozilla.StubAttribution, 'onRequestSuccess').and.callThrough();
@@ -431,7 +431,7 @@ describe('stub-attribution.js', function() {
});
it('should handle a timeout as expected', function() {
- var callback = function() {}; // eslint-disable-line no-empty-function
+ const callback = function() {}; // eslint-disable-line no-empty-function
Mozilla.StubAttribution.timeoutCallback = callback;
spyOn(Mozilla.StubAttribution, 'onRequestTimeout').and.callThrough();
spyOn(Mozilla.StubAttribution, 'timeoutCallback');
@@ -455,7 +455,7 @@ describe('stub-attribution.js', function() {
it('should handle the data as expected', function() {
/* eslint-disable camelcase */
- var data = {
+ const data = {
attribution_code: 'foo',
attribution_sig: 'bar'
};
@@ -471,7 +471,7 @@ describe('stub-attribution.js', function() {
it('should only handle the request once', function() {
/* eslint-disable camelcase */
- var data = {
+ const data = {
attribution_code: 'foo',
attribution_sig: 'bar'
};
@@ -489,28 +489,29 @@ describe('stub-attribution.js', function() {
describe('updateBouncerLinks', function() {
/* eslint-disable camelcase */
- var data = {
+ const data = {
attribution_code: 'test-code',
attribution_sig: 'test-sig'
};
/* eslint-enable camelcase */
- var winUrl = 'https://download.mozilla.org/?product=firefox-stub&os=win&lang=en-US';
- var win64Url = 'https://download.mozilla.org/?product=firefox-50.0b11-SSL&os=win64&lang=en-US';
- var transitionalUrl = 'https://www.mozilla.org/firefox/download/thanks/';
+ const winUrl = 'https://download.mozilla.org/?product=firefox-stub&os=win&lang=en-US';
+ const win64Url = 'https://download.mozilla.org/?product=firefox-50.0b11-SSL&os=win64&lang=en-US';
+ const transitionalUrl = 'https://www.mozilla.org/firefox/download/thanks/';
beforeEach(function() {
- var downloadMarkup = '';
+ const downloadMarkup =
+ ``;
document.body.insertAdjacentHTML('beforeend', downloadMarkup);
});
afterEach(function() {
- var content = document.querySelector('.download-list');
+ const content = document.querySelector('.download-list');
content.parentNode.removeChild(content);
});
@@ -540,9 +541,9 @@ describe('stub-attribution.js', function() {
describe('appendToDownloadURL', function() {
- var params = {};
- var originalUrl = '';
- var expectedUrl = '';
+ let params = {};
+ let originalUrl = '';
+ let expectedUrl = '';
beforeEach(function() {
/* eslint-disable camelcase */
@@ -574,7 +575,7 @@ describe('stub-attribution.js', function() {
describe('getCookie', function() {
it('should return an object as expected', function() {
- spyOn(Mozilla.Cookies, 'getItem').and.callFake(function(id) {
+ spyOn(Mozilla.Cookies, 'getItem').and.callFake((id) => {
return id === Mozilla.StubAttribution.COOKIE_CODE_ID ? 'foo' : 'bar';
});
/* eslint-disable camelcase */
@@ -595,7 +596,7 @@ describe('stub-attribution.js', function() {
it('should set session cookies as expected', function() {
/* eslint-disable camelcase */
- var data = {
+ const data = {
attribution_code: 'foo',
attribution_sig: 'bar'
};
@@ -617,7 +618,7 @@ describe('stub-attribution.js', function() {
it('should return true if both session cookies exists', function() {
spyOn(Mozilla.Cookies, 'hasItem').and.returnValue(true);
- var result = Mozilla.StubAttribution.hasCookie();
+ const result = Mozilla.StubAttribution.hasCookie();
expect(Mozilla.Cookies.hasItem.calls.count()).toEqual(2);
expect(Mozilla.Cookies.hasItem).toHaveBeenCalledWith(Mozilla.StubAttribution.COOKIE_CODE_ID);
expect(Mozilla.Cookies.hasItem).toHaveBeenCalledWith(Mozilla.StubAttribution.COOKIE_SIGNATURE_ID);
@@ -625,10 +626,10 @@ describe('stub-attribution.js', function() {
});
it('should return false if one or more session cookies do not exist', function() {
- spyOn(Mozilla.Cookies, 'hasItem').and.callFake(function(id) {
+ spyOn(Mozilla.Cookies, 'hasItem').and.callFake((id) => {
return id === Mozilla.StubAttribution.COOKIE_CODE_ID ? true : false;
});
- var result = Mozilla.StubAttribution.hasCookie();
+ const result = Mozilla.StubAttribution.hasCookie();
expect(Mozilla.Cookies.hasItem.calls.count()).toEqual(2);
expect(result).toBeFalsy();
});
@@ -636,8 +637,8 @@ describe('stub-attribution.js', function() {
describe('getAttributionRate', function() {
- var html = document.documentElement;
- var attr = 'data-stub-attribution-rate';
+ const html = document.documentElement;
+ const attr = 'data-stub-attribution-rate';
afterEach(function() {
html.removeAttribute(attr);
diff --git a/tests/unit/spec/firefox/all/all-downloads-unified.js b/tests/unit/spec/firefox/all/all-downloads-unified.js
index 64e10f50b5d..97b0084353e 100644
--- a/tests/unit/spec/firefox/all/all-downloads-unified.js
+++ b/tests/unit/spec/firefox/all/all-downloads-unified.js
@@ -11,12 +11,11 @@ describe('all-downloads-unified.js', function() {
'use strict';
describe('getSelectOption', function() {
- var select = [
- ''
- ].join();
+ const select =
+ ``;
beforeEach(function () {
document.body.insertAdjacentHTML('beforeend', select);
@@ -27,30 +26,29 @@ describe('all-downloads-unified.js', function() {
});
it('should return the selection option', function() {
- var el = document.getElementById('select-product');
- var result = Mozilla.FirefoxDownloader.getSelectOption(el);
+ const el = document.getElementById('select-product');
+ const result = Mozilla.FirefoxDownloader.getSelectOption(el);
expect(result.id).toEqual('desktop_nightly');
expect(result.label).toEqual('Firefox Nightly');
});
});
describe('setAllSelectOptions', function() {
- var select = [
- '' +
- ''
- ].join();
+ const select =
+ `
+ `;
beforeEach(function () {
document.body.insertAdjacentHTML('beforeend', select);
@@ -62,12 +60,12 @@ describe('all-downloads-unified.js', function() {
});
it('should set all the options correctly', function() {
- var el = document.querySelectorAll('.c-selection-input');
+ const el = document.querySelectorAll('.c-selection-input');
Mozilla.FirefoxDownloader.setAllSelectOptions('linux', el);
- var result = Mozilla.FirefoxDownloader.getSelectOption(el[0]);
+ const result = Mozilla.FirefoxDownloader.getSelectOption(el[0]);
expect(result.id).toEqual('linux');
expect(result.label).toEqual('Linux 32-bit');
- var result2 = Mozilla.FirefoxDownloader.getSelectOption(el[1]);
+ const result2 = Mozilla.FirefoxDownloader.getSelectOption(el[1]);
expect(result2.id).toEqual('linux');
expect(result2.label).toEqual('Linux 32-bit');
});
@@ -92,17 +90,16 @@ describe('all-downloads-unified.js', function() {
});
describe('getDownloadLink', function() {
- var downloadList = [
- '' +
- '- ' +
- '' +
- '
' +
- '
'
- ].join();
+ const downloadList =
+ `
+ -
+
+
+
`;
beforeEach(function () {
document.body.insertAdjacentHTML('beforeend', downloadList);
@@ -113,23 +110,23 @@ describe('all-downloads-unified.js', function() {
});
it('should return a download link as expected', function() {
- var result = Mozilla.FirefoxDownloader.getDownloadLink('desktop_release', 'win64', 'ach');
+ const result = Mozilla.FirefoxDownloader.getDownloadLink('desktop_release', 'win64', 'ach');
expect(result).toEqual('https://download.mozilla.org/?product=firefox-latest-ssl&os=win64&lang=ach');
});
it('should return an error if a download link is not found', function() {
- var product = 'desktop_release';
- var platform = 'win64';
- var language = 'de';
+ const product = 'desktop_release';
+ const platform = 'win64';
+ const language = 'de';
spyOn(Mozilla.FirefoxDownloader, 'onError');
- var error = new Error('A download link was not found for: ' + product + ', platform: ' + platform + ', language: ' + language);
+ const error = new Error(`A download link was not found for: ${product}, platform: ${platform}, language: ${language}`);
Mozilla.FirefoxDownloader.getDownloadLink(product, platform, language);
expect(Mozilla.FirefoxDownloader.onError).toHaveBeenCalledWith(error);
});
});
describe('setDownloadLink', function() {
- var downloadLink = 'Download Now';
+ const downloadLink = 'Download Now';
beforeEach(function () {
document.body.insertAdjacentHTML('beforeend', downloadLink);
@@ -140,20 +137,20 @@ describe('all-downloads-unified.js', function() {
});
it('should set desktop download links as expected', function() {
- var el = document.getElementById('download-button-primary');
- var url = 'https://download.mozilla.org/?product=firefox-latest-ssl&os=win64&lang=ach';
+ const el = document.getElementById('download-button-primary');
+ const url = 'https://download.mozilla.org/?product=firefox-latest-ssl&os=win64&lang=ach';
- var product = {
+ const product = {
id: 'desktop_beta',
label: 'Firefox Beta'
};
- var platform = {
+ const platform = {
id: 'win64',
label: 'Windows 64-bit'
};
- var language = {
+ const language = {
id: 'ach',
label: 'Acholi'
};
@@ -178,13 +175,13 @@ describe('all-downloads-unified.js', function() {
});
it('should return a well formatted attribution link if data exists', function() {
- var url = 'https://download.mozilla.org/?product=firefox-latest-ssl&os=win&lang=en-US';
+ const url = 'https://download.mozilla.org/?product=firefox-latest-ssl&os=win&lang=en-US';
spyOn(Mozilla.StubAttribution, 'hasCookie').and.returnValue(true);
expect(Mozilla.FirefoxDownloader.setAttributionURL(url)).toEqual('https://download.mozilla.org/?product=firefox-latest-ssl&os=win&lang=en-US&attribution_code=some-attribution-code&attribution_sig=some-attribution-signature');
});
it('should return the original link if data does not exist', function() {
- var url = 'https://download.mozilla.org/?product=firefox-latest-ssl&os=win&lang=en-US';
+ const url = 'https://download.mozilla.org/?product=firefox-latest-ssl&os=win&lang=en-US';
spyOn(Mozilla.StubAttribution, 'hasCookie').and.returnValue(false);
expect(Mozilla.FirefoxDownloader.setAttributionURL(url)).toEqual(url);
});
@@ -192,17 +189,17 @@ describe('all-downloads-unified.js', function() {
describe('isValidURL', function() {
it('should return true for bouncer prod links', function() {
- var url = 'https://download.mozilla.org/?product=firefox-latest-ssl&os=osx&lang=en-US';
+ const url = 'https://download.mozilla.org/?product=firefox-latest-ssl&os=osx&lang=en-US';
expect(Mozilla.FirefoxDownloader.isValidURL(url)).toBeTruthy();
});
it('should return true for bouncer stage links', function() {
- var url = 'https://bouncer-bouncer.stage.mozaws.net/?product=firefox-latest-ssl&os=osx&lang=en-US';
+ const url = 'https://bouncer-bouncer.stage.mozaws.net/?product=firefox-latest-ssl&os=osx&lang=en-US';
expect(Mozilla.FirefoxDownloader.isValidURL(url)).toBeTruthy();
});
it('should return false for everything else', function() {
- var url = 'https://some.other.domain/?product=firefox-latest-ssl&os=osx&lang=en-US';
+ const url = 'https://some.other.domain/?product=firefox-latest-ssl&os=osx&lang=en-US';
expect(Mozilla.FirefoxDownloader.isValidURL(url)).toBeFalsy();
expect(Mozilla.FirefoxDownloader.isValidURL(null)).toBeFalsy();
expect(Mozilla.FirefoxDownloader.isValidURL({})).toBeFalsy();
@@ -210,52 +207,51 @@ describe('all-downloads-unified.js', function() {
});
describe('setDownloadButtonDesktop', function() {
- var product = {
+ const product = {
id: 'desktop_beta',
label: 'Firefox Beta'
};
- var platform = {
+ const platform = {
id: 'win64',
label: 'Windows 64-bit'
};
- var language = {
+ const language = {
id: 'ach',
label: 'Acholi'
};
- var options = [
- '' +
- '
' +
- '' +
- '' +
- '
' +
- '
' +
- '' +
- '' +
- '
' +
- '
' +
- '' +
- '' +
- '
' +
- '
' +
- '' +
- '- ' +
- '' +
- '
' +
- '
'
- ].join();
+ const options =
+ `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
`;
beforeEach(function () {
document.body.insertAdjacentHTML('beforeend', options);
@@ -278,73 +274,72 @@ describe('all-downloads-unified.js', function() {
});
it('should throw an error if a download link is not valid', function() {
- var badURL = 'https://download.mozilla.org.somebadactor.com/download.exe';
+ const badURL = 'https://download.mozilla.org.somebadactor.com/download.exe';
spyOn(Mozilla.FirefoxDownloader, 'getProductSelection').and.returnValue(product);
spyOn(Mozilla.FirefoxDownloader, 'setDownloadInfo');
spyOn(Mozilla.FirefoxDownloader, 'getDownloadLink').and.returnValue(badURL);
spyOn(Mozilla.FirefoxDownloader, 'isValidURL').and.returnValue(false);
spyOn(Mozilla.FirefoxDownloader, 'onError');
Mozilla.FirefoxDownloader.setDownloadButton();
- var error = new Error('An unrecognised download link was found: ' + badURL);
+ const error = new Error(`An unrecognised download link was found: ${badURL}`);
expect(Mozilla.FirefoxDownloader.onError).toHaveBeenCalledWith(error);
});
});
describe('setDownloadButtonAndroid', function() {
- var product = {
+ const product = {
id: 'android_release',
label: 'Firefox Android'
};
- var platform = {
+ const platform = {
id: 'android',
label: 'Android'
};
- var language = {
+ const language = {
id: 'all',
label: 'Multiple languages'
};
- var options = [
- '' +
- '
' +
- '' +
- '' +
- '
' +
- '
' +
- '' +
- '' +
- 'Get help' +
- '' +
- '' +
- '
' +
- '
' +
- '' +
- '' +
- '
' +
- '
' +
- '' +
- '- ' +
- '
Multiple languages
' +
- '' +
- ' ' +
- '
'
- ].join();
+ const options =
+ `
+
+
+
+
+
+
+
+ Get help
+
+
+
+
+
+
+
+
+
+ -
+
Multiple languages
+
+
+
`;
beforeEach(function () {
document.body.insertAdjacentHTML('beforeend', options);
@@ -370,7 +365,7 @@ describe('all-downloads-unified.js', function() {
describe('getProductSelection', function() {
it('should return the selected product', function() {
- var product = {
+ const product = {
id: 'desktop_esr',
label: 'Firefox Extended Support Release'
};
@@ -381,15 +376,15 @@ describe('all-downloads-unified.js', function() {
});
it('should return the correct ESR product', function() {
- var next = 'desktop_esr_next';
- var product = {
+ const next = 'desktop_esr_next';
+ const product = {
id: 'desktop_esr',
label: 'Firefox Extended Support Release'
};
spyOn(Mozilla.FirefoxDownloader, 'getSelectOption').and.returnValue(product);
spyOn(Mozilla.FirefoxDownloader, 'getFormSelection').and.returnValue(next);
- var result = Mozilla.FirefoxDownloader.getProductSelection();
+ const result = Mozilla.FirefoxDownloader.getProductSelection();
expect(result.id).toEqual(next);
expect(result.label).toEqual(product.label);
});
@@ -397,7 +392,7 @@ describe('all-downloads-unified.js', function() {
describe('onVersionChange', function() {
it('should update the form fields and generate a download URL', function() {
- var e = {
+ const e = {
target: {
value: 'desktop_release'
}
@@ -414,7 +409,7 @@ describe('all-downloads-unified.js', function() {
});
it('should update the product selection for ESR', function() {
- var e = {
+ const e = {
target: {
value: 'desktop_esr_next'
}
@@ -455,7 +450,7 @@ describe('all-downloads-unified.js', function() {
describe('onHashChange', function() {
it('should update the product selection if a valid hash identifier exists', function() {
- var id = 'firefox_beta';
+ const id = 'firefox_beta';
spyOn(Mozilla.FirefoxDownloader, 'getHash').and.returnValue(id);
spyOn(Mozilla.FirefoxDownloader, 'setProductSelection');
spyOn(Mozilla.FirefoxDownloader, 'setDownloadButton');
@@ -477,9 +472,9 @@ describe('all-downloads-unified.js', function() {
});
describe('init', function() {
- var platform = 'windows';
- var language = 'de';
- var product = {
+ const platform = 'windows';
+ const language = 'de';
+ const product = {
'id': 'desktop_beta',
'label': 'Firefox Beta'
};
diff --git a/tests/unit/spec/firefox/new/common/thanks.js b/tests/unit/spec/firefox/new/common/thanks.js
index 5980de53f5a..e26a1778dbf 100644
--- a/tests/unit/spec/firefox/new/common/thanks.js
+++ b/tests/unit/spec/firefox/new/common/thanks.js
@@ -24,87 +24,88 @@ describe('thanks.js', function() {
describe('getDownloadURL', function() {
beforeEach(function() {
- var button = '';
+ const button =
+ ``;
document.body.insertAdjacentHTML('beforeend', button);
});
afterEach(function() {
- document.querySelectorAll('.download-list').forEach(function(e) {
+ document.querySelectorAll('.download-list').forEach((e) => {
e.parentNode.removeChild(e);
});
});
it('should return the correct download for Windows', function() {
- var site = {
+ const site = {
platform: 'windows'
};
- var result = Mozilla.DownloadThanks.getDownloadURL(site);
+ const result = Mozilla.DownloadThanks.getDownloadURL(site);
expect(result).toEqual('https://download.mozilla.org/?product=firefox-stub&os=win&lang=en-US');
});
it('should return the correct download for macOS', function() {
- var site = {
+ const site = {
platform: 'osx',
};
- var result = Mozilla.DownloadThanks.getDownloadURL(site);
+ const result = Mozilla.DownloadThanks.getDownloadURL(site);
expect(result).toEqual('https://download.mozilla.org/?product=firefox-latest-ssl&os=osx&lang=en-US');
});
it('should return the correct download for Linux 32bit', function() {
- var site = {
+ const site = {
platform: 'linux',
isARM: false,
archSize: 32
};
- var result = Mozilla.DownloadThanks.getDownloadURL(site);
+ const result = Mozilla.DownloadThanks.getDownloadURL(site);
expect(result).toEqual('https://download.mozilla.org/?product=firefox-latest-ssl&os=linux&lang=en-US');
});
it('should return the correct download for Linux 64bit', function() {
- var site = {
+ const site = {
platform: 'linux',
isARM: false,
archSize: 64
};
- var result = Mozilla.DownloadThanks.getDownloadURL(site);
+ const result = Mozilla.DownloadThanks.getDownloadURL(site);
expect(result).toEqual('https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US');
});
it('should not return a download for Linux ARM', function() {
- var site = {
+ const site = {
platform: 'linux',
isARM: true,
archSize: 64
};
- var result = Mozilla.DownloadThanks.getDownloadURL(site);
+ const result = Mozilla.DownloadThanks.getDownloadURL(site);
expect(result).toBeFalsy();
});
it('should return the correct download for Android', function() {
- var site = {
+ const site = {
platform: 'android',
};
- var result = Mozilla.DownloadThanks.getDownloadURL(site);
+ const result = Mozilla.DownloadThanks.getDownloadURL(site);
expect(result).toEqual('https://play.google.com/store/apps/details?id=org.mozilla.firefox');
});
it('should return the correct download for iOS', function() {
- var site = {
+ const site = {
platform: 'ios',
};
- var result = Mozilla.DownloadThanks.getDownloadURL(site);
+ const result = Mozilla.DownloadThanks.getDownloadURL(site);
expect(result).toEqual('https://itunes.apple.com/us/app/firefox-private-safe-browser/id989804926');
});
});
diff --git a/tests/unit/spec/firefox/new/yandex/show-yandex.js b/tests/unit/spec/firefox/new/yandex/show-yandex.js
index 89d2235049c..90654c49e18 100644
--- a/tests/unit/spec/firefox/new/yandex/show-yandex.js
+++ b/tests/unit/spec/firefox/new/yandex/show-yandex.js
@@ -25,14 +25,14 @@ describe('show-yandex.js', function() {
describe('getLocation', function() {
- var xhr;
- var xhrRequests = [];
+ let xhr;
+ let xhrRequests = [];
beforeEach(function() {
spyOn(Mozilla.Yandex, 'onRequestComplete');
xhr = sinon.useFakeXMLHttpRequest();
- xhr.onCreate = function(req) {
+ xhr.onCreate = (req) => {
xhrRequests.push(req);
};
});
@@ -43,11 +43,11 @@ describe('show-yandex.js', function() {
});
it('should pass country to onRequestComplete if server makes a response', function() {
- var country = 'ru';
+ const country = 'ru';
Mozilla.Yandex.getLocation();
- xhrRequests[0].respond(200, {'Content-Type': 'application/json'}, '{"country_code": "' + country + '"}');
+ xhrRequests[0].respond(200, {'Content-Type': 'application/json'}, `{"country_code": "${country}"}`);
expect(Mozilla.Yandex.onRequestComplete).toHaveBeenCalledWith(country);
});
@@ -85,7 +85,7 @@ describe('show-yandex.js', function() {
describe('onRequestComplete', function() {
- var country = 'ru';
+ const country = 'ru';
beforeEach(function() {
spyOn(Mozilla.Yandex, 'updatePageContent');
@@ -142,8 +142,8 @@ describe('show-yandex.js', function() {
describe('cookieExpiresDate', function() {
it('should return a cookie expiry date 3 days in the future by default', function() {
- var expiry = Mozilla.Yandex.cookieExpiresDate(new Date(2018, 8, 1, 10, 15));
- var date = new Date(expiry);
+ const expiry = Mozilla.Yandex.cookieExpiresDate(new Date(2018, 8, 1, 10, 15));
+ const date = new Date(expiry);
expect(date.getFullYear()).toBe(2018);
expect(date.getMonth()).toBe(8);
expect(date.getDate()).toBe(4);
@@ -153,7 +153,7 @@ describe('show-yandex.js', function() {
describe('setCookie', function() {
it('should set session cookies as expected', function() {
- var country = 'ru';
+ const country = 'ru';
spyOn(Mozilla.Cookies, 'setItem');
Mozilla.Yandex.setCookie(country);
@@ -174,20 +174,20 @@ describe('show-yandex.js', function() {
it('should return true if session cookie exists', function() {
spyOn(Mozilla.Cookies, 'hasItem').and.returnValue(true);
- var result = Mozilla.Yandex.hasCookie();
+ const result = Mozilla.Yandex.hasCookie();
expect(Mozilla.Cookies.hasItem).toHaveBeenCalledWith(Mozilla.Yandex.COOKIE_ID);
expect(result).toBeTruthy();
});
it('should return false if session cookie does not exist', function() {
spyOn(Mozilla.Cookies, 'hasItem').and.returnValue(false);
- var result = Mozilla.Yandex.hasCookie();
+ const result = Mozilla.Yandex.hasCookie();
expect(result).toBeFalsy();
});
});
describe('init', function() {
- var isDesktop;
+ let isDesktop;
beforeEach(function() {
isDesktop = Mozilla.Client.isDesktop;
@@ -198,7 +198,7 @@ describe('show-yandex.js', function() {
});
it('should display Yandex content if override URL is set to Russia', function() {
- var country = 'ru';
+ const country = 'ru';
Mozilla.Client.isDesktop = true;
spyOn(Mozilla.Cookies, 'enabled').and.returnValue(true);
spyOn(Mozilla.Yandex, 'hasGeoOverride').and.returnValue(country);
@@ -212,7 +212,7 @@ describe('show-yandex.js', function() {
});
it('should display Regular content if override URL is set to any other value', function() {
- var country = 'us';
+ const country = 'us';
Mozilla.Client.isDesktop = true;
spyOn(Mozilla.Cookies, 'enabled').and.returnValue(true);
spyOn(Mozilla.Yandex, 'hasGeoOverride').and.returnValue(country);
diff --git a/tests/unit/spec/vpn/geo.js b/tests/unit/spec/vpn/geo.js
index d0d95d45922..80f3dd29ac8 100644
--- a/tests/unit/spec/vpn/geo.js
+++ b/tests/unit/spec/vpn/geo.js
@@ -17,14 +17,14 @@ describe('geo.js', function() {
describe('getLocation', function() {
- var xhr;
- var xhrRequests = [];
+ let xhr;
+ let xhrRequests = [];
beforeEach(function() {
spyOn(Mozilla.VPN, 'onRequestComplete');
xhr = sinon.useFakeXMLHttpRequest();
- xhr.onCreate = function(req) {
+ xhr.onCreate = (req) => {
xhrRequests.push(req);
};
});
@@ -35,11 +35,11 @@ describe('geo.js', function() {
});
it('should pass country to onRequestComplete if server makes a response', function() {
- var country = 'ru';
+ const country = 'ru';
Mozilla.VPN.getLocation();
- xhrRequests[0].respond(200, {'Content-Type': 'application/json'}, '{"country_code": "' + country + '"}');
+ xhrRequests[0].respond(200, {'Content-Type': 'application/json'}, `{"country_code": "${country}"}`);
expect(Mozilla.VPN.onRequestComplete).toHaveBeenCalledWith(country);
});
@@ -70,7 +70,7 @@ describe('geo.js', function() {
describe('onRequestComplete', function() {
- var country = 'de';
+ const country = 'de';
beforeEach(function() {
spyOn(Mozilla.VPN, 'getAvailability').and.returnValue('variable-price');
@@ -88,7 +88,7 @@ describe('geo.js', function() {
describe('getAvailability', function() {
- var availableCountries = '|ca|my|nz|sg|gb|gg|im|io|je|uk|vg|as|mp|pr|um|us|vi|at|be|ch|de|es|fr|it|';
+ const availableCountries = '|ca|my|nz|sg|gb|gg|im|io|je|uk|vg|as|mp|pr|um|us|vi|at|be|ch|de|es|fr|it|';
it('should return `available` if matching country code is found', function() {
expect(Mozilla.VPN.getAvailability('us', availableCountries)).toEqual('available');
@@ -145,17 +145,17 @@ describe('geo.js', function() {
describe('updateSubscriptionURL', function() {
it('should update the subscription plan ID as expected', function() {
- var result = Mozilla.VPN.updateSubscriptionURL('price_1IgnlcJNcmPzuWtRjrNa39W4', 'https://accounts.firefox.com/subscriptions/products/prod_FiJ42WCzZNRSbS?plan=price_1IgwblJNcmPzuWtRynC7dqQa&entrypoint=www.mozilla.org-vpn-product-page');
+ const result = Mozilla.VPN.updateSubscriptionURL('price_1IgnlcJNcmPzuWtRjrNa39W4', 'https://accounts.firefox.com/subscriptions/products/prod_FiJ42WCzZNRSbS?plan=price_1IgwblJNcmPzuWtRynC7dqQa&entrypoint=www.mozilla.org-vpn-product-page');
expect(result).toEqual('https://accounts.firefox.com/subscriptions/products/prod_FiJ42WCzZNRSbS?plan=price_1IgnlcJNcmPzuWtRjrNa39W4&entrypoint=www.mozilla.org-vpn-product-page');
});
it('should not change the URL if there is no plan ID', function() {
- var result = Mozilla.VPN.updateSubscriptionURL(null, 'https://accounts.firefox.com/subscriptions/products/prod_FiJ42WCzZNRSbS?plan=price_1IgwblJNcmPzuWtRynC7dqQa&entrypoint=www.mozilla.org-vpn-product-page');
+ const result = Mozilla.VPN.updateSubscriptionURL(null, 'https://accounts.firefox.com/subscriptions/products/prod_FiJ42WCzZNRSbS?plan=price_1IgwblJNcmPzuWtRynC7dqQa&entrypoint=www.mozilla.org-vpn-product-page');
expect(result).toEqual('https://accounts.firefox.com/subscriptions/products/prod_FiJ42WCzZNRSbS?plan=price_1IgwblJNcmPzuWtRynC7dqQa&entrypoint=www.mozilla.org-vpn-product-page');
});
it('should not change the URL if there is no plan query parameter', function() {
- var result = Mozilla.VPN.updateSubscriptionURL('price_1IgwblJNcmPzuWtRynC7dqQa', 'https://accounts.firefox.com/subscriptions/products?entrypoint=www.mozilla.org-vpn-product-page');
+ const result = Mozilla.VPN.updateSubscriptionURL('price_1IgwblJNcmPzuWtRynC7dqQa', 'https://accounts.firefox.com/subscriptions/products?entrypoint=www.mozilla.org-vpn-product-page');
expect(result).toEqual('https://accounts.firefox.com/subscriptions/products?entrypoint=www.mozilla.org-vpn-product-page');
});
});
@@ -210,7 +210,7 @@ describe('geo.js', function() {
});
it('should override geo-location call if param exists', function() {
- var country = 'de';
+ const country = 'de';
spyOn(Mozilla.VPN, 'hasGeoOverride').and.returnValue(country);
Mozilla.VPN.init();
diff --git a/yarn.lock b/yarn.lock
index 86e6aa1581a..c3de07a9617 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -21,28 +21,7 @@
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176"
integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==
-"@babel/core@>=7.9.0":
- version "7.15.0"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.0.tgz#749e57c68778b73ad8082775561f67f5196aafa8"
- integrity sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw==
- dependencies:
- "@babel/code-frame" "^7.14.5"
- "@babel/generator" "^7.15.0"
- "@babel/helper-compilation-targets" "^7.15.0"
- "@babel/helper-module-transforms" "^7.15.0"
- "@babel/helpers" "^7.14.8"
- "@babel/parser" "^7.15.0"
- "@babel/template" "^7.14.5"
- "@babel/traverse" "^7.15.0"
- "@babel/types" "^7.15.0"
- convert-source-map "^1.7.0"
- debug "^4.1.0"
- gensync "^1.0.0-beta.2"
- json5 "^2.1.2"
- semver "^6.3.0"
- source-map "^0.5.0"
-
-"@babel/core@^7.15.5":
+"@babel/core@>=7.9.0", "@babel/core@^7.15.5":
version "7.15.5"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.5.tgz#f8ed9ace730722544609f90c9bb49162dc3bf5b9"
integrity sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==
@@ -63,15 +42,6 @@
semver "^6.3.0"
source-map "^0.5.0"
-"@babel/generator@^7.15.0":
- version "7.15.0"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz#a7d0c172e0d814974bad5aa77ace543b97917f15"
- integrity sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==
- dependencies:
- "@babel/types" "^7.15.0"
- jsesc "^2.5.1"
- source-map "^0.5.0"
-
"@babel/generator@^7.15.4":
version "7.15.4"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.4.tgz#85acb159a267ca6324f9793986991ee2022a05b0"
@@ -106,16 +76,6 @@
browserslist "^4.16.6"
semver "^6.3.0"
-"@babel/helper-compilation-targets@^7.15.0":
- version "7.15.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz#973df8cbd025515f3ff25db0c05efc704fa79818"
- integrity sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A==
- dependencies:
- "@babel/compat-data" "^7.15.0"
- "@babel/helper-validator-option" "^7.14.5"
- browserslist "^4.16.6"
- semver "^6.3.0"
-
"@babel/helper-create-class-features-plugin@^7.14.5", "@babel/helper-create-class-features-plugin@^7.15.4":
version "7.15.4"
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz#7f977c17bd12a5fba363cb19bea090394bf37d2e"
@@ -157,16 +117,7 @@
dependencies:
"@babel/types" "^7.15.4"
-"@babel/helper-function-name@^7.14.5":
- version "7.14.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4"
- integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==
- dependencies:
- "@babel/helper-get-function-arity" "^7.14.5"
- "@babel/template" "^7.14.5"
- "@babel/types" "^7.14.5"
-
-"@babel/helper-function-name@^7.15.4":
+"@babel/helper-function-name@^7.14.5", "@babel/helper-function-name@^7.15.4":
version "7.15.4"
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz#845744dafc4381a4a5fb6afa6c3d36f98a787ebc"
integrity sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==
@@ -175,13 +126,6 @@
"@babel/template" "^7.15.4"
"@babel/types" "^7.15.4"
-"@babel/helper-get-function-arity@^7.14.5":
- version "7.14.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815"
- integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==
- dependencies:
- "@babel/types" "^7.14.5"
-
"@babel/helper-get-function-arity@^7.15.4":
version "7.15.4"
resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz#098818934a137fce78b536a3e015864be1e2879b"
@@ -189,13 +133,6 @@
dependencies:
"@babel/types" "^7.15.4"
-"@babel/helper-hoist-variables@^7.14.5":
- version "7.14.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d"
- integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==
- dependencies:
- "@babel/types" "^7.14.5"
-
"@babel/helper-hoist-variables@^7.15.4":
version "7.15.4"
resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz#09993a3259c0e918f99d104261dfdfc033f178df"
@@ -203,13 +140,6 @@
dependencies:
"@babel/types" "^7.15.4"
-"@babel/helper-member-expression-to-functions@^7.15.0":
- version "7.15.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz#0ddaf5299c8179f27f37327936553e9bba60990b"
- integrity sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==
- dependencies:
- "@babel/types" "^7.15.0"
-
"@babel/helper-member-expression-to-functions@^7.15.4":
version "7.15.4"
resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz#bfd34dc9bba9824a4658b0317ec2fd571a51e6ef"
@@ -217,54 +147,26 @@
dependencies:
"@babel/types" "^7.15.4"
-"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.15.4":
+"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5", "@babel/helper-module-imports@^7.15.4":
version "7.15.4"
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz#e18007d230632dea19b47853b984476e7b4e103f"
integrity sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==
dependencies:
"@babel/types" "^7.15.4"
-"@babel/helper-module-imports@^7.14.5":
- version "7.14.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3"
- integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==
- dependencies:
- "@babel/types" "^7.14.5"
-
"@babel/helper-module-transforms@^7.14.5", "@babel/helper-module-transforms@^7.15.4":
- version "7.15.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz#962cc629a7f7f9a082dd62d0307fa75fe8788d7c"
- integrity sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==
+ version "7.15.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.7.tgz#7da80c8cbc1f02655d83f8b79d25866afe50d226"
+ integrity sha512-ZNqjjQG/AuFfekFTY+7nY4RgBSklgTu970c7Rj3m/JOhIu5KPBUuTA9AY6zaKcUvk4g6EbDXdBnhi35FAssdSw==
dependencies:
"@babel/helper-module-imports" "^7.15.4"
"@babel/helper-replace-supers" "^7.15.4"
"@babel/helper-simple-access" "^7.15.4"
"@babel/helper-split-export-declaration" "^7.15.4"
- "@babel/helper-validator-identifier" "^7.14.9"
+ "@babel/helper-validator-identifier" "^7.15.7"
"@babel/template" "^7.15.4"
"@babel/traverse" "^7.15.4"
- "@babel/types" "^7.15.4"
-
-"@babel/helper-module-transforms@^7.15.0":
- version "7.15.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz#679275581ea056373eddbe360e1419ef23783b08"
- integrity sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg==
- dependencies:
- "@babel/helper-module-imports" "^7.14.5"
- "@babel/helper-replace-supers" "^7.15.0"
- "@babel/helper-simple-access" "^7.14.8"
- "@babel/helper-split-export-declaration" "^7.14.5"
- "@babel/helper-validator-identifier" "^7.14.9"
- "@babel/template" "^7.14.5"
- "@babel/traverse" "^7.15.0"
- "@babel/types" "^7.15.0"
-
-"@babel/helper-optimise-call-expression@^7.14.5":
- version "7.14.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz#f27395a8619e0665b3f0364cddb41c25d71b499c"
- integrity sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==
- dependencies:
- "@babel/types" "^7.14.5"
+ "@babel/types" "^7.15.6"
"@babel/helper-optimise-call-expression@^7.15.4":
version "7.15.4"
@@ -297,23 +199,6 @@
"@babel/traverse" "^7.15.4"
"@babel/types" "^7.15.4"
-"@babel/helper-replace-supers@^7.15.0":
- version "7.15.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz#ace07708f5bf746bf2e6ba99572cce79b5d4e7f4"
- integrity sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==
- dependencies:
- "@babel/helper-member-expression-to-functions" "^7.15.0"
- "@babel/helper-optimise-call-expression" "^7.14.5"
- "@babel/traverse" "^7.15.0"
- "@babel/types" "^7.15.0"
-
-"@babel/helper-simple-access@^7.14.8":
- version "7.14.8"
- resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz#82e1fec0644a7e775c74d305f212c39f8fe73924"
- integrity sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==
- dependencies:
- "@babel/types" "^7.14.8"
-
"@babel/helper-simple-access@^7.15.4":
version "7.15.4"
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz#ac368905abf1de8e9781434b635d8f8674bcc13b"
@@ -328,13 +213,6 @@
dependencies:
"@babel/types" "^7.15.4"
-"@babel/helper-split-export-declaration@^7.14.5":
- version "7.14.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a"
- integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==
- dependencies:
- "@babel/types" "^7.14.5"
-
"@babel/helper-split-export-declaration@^7.15.4":
version "7.15.4"
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz#aecab92dcdbef6a10aa3b62ab204b085f776e257"
@@ -342,10 +220,10 @@
dependencies:
"@babel/types" "^7.15.4"
-"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9":
- version "7.14.9"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48"
- integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==
+"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9", "@babel/helper-validator-identifier@^7.15.7":
+ version "7.15.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389"
+ integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==
"@babel/helper-validator-option@^7.14.5":
version "7.14.5"
@@ -362,15 +240,6 @@
"@babel/traverse" "^7.15.4"
"@babel/types" "^7.15.4"
-"@babel/helpers@^7.14.8":
- version "7.15.3"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.3.tgz#c96838b752b95dcd525b4e741ed40bb1dc2a1357"
- integrity sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g==
- dependencies:
- "@babel/template" "^7.14.5"
- "@babel/traverse" "^7.15.0"
- "@babel/types" "^7.15.0"
-
"@babel/helpers@^7.15.4":
version "7.15.4"
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.4.tgz#5f40f02050a3027121a3cf48d497c05c555eaf43"
@@ -389,15 +258,10 @@
chalk "^2.0.0"
js-tokens "^4.0.0"
-"@babel/parser@^7.14.5", "@babel/parser@^7.15.0":
- version "7.15.3"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862"
- integrity sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA==
-
"@babel/parser@^7.15.4", "@babel/parser@^7.15.5":
- version "7.15.6"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.6.tgz#043b9aa3c303c0722e5377fef9197f4cf1796549"
- integrity sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==
+ version "7.15.7"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.7.tgz#0c3ed4a2eb07b165dfa85b3cc45c727334c4edae"
+ integrity sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g==
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.15.4":
version "7.15.4"
@@ -979,15 +843,6 @@
dependencies:
regenerator-runtime "^0.13.4"
-"@babel/template@^7.14.5":
- version "7.14.5"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4"
- integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==
- dependencies:
- "@babel/code-frame" "^7.14.5"
- "@babel/parser" "^7.14.5"
- "@babel/types" "^7.14.5"
-
"@babel/template@^7.15.4":
version "7.15.4"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.15.4.tgz#51898d35dcf3faa670c4ee6afcfd517ee139f194"
@@ -1012,29 +867,6 @@
debug "^4.1.0"
globals "^11.1.0"
-"@babel/traverse@^7.15.0":
- version "7.15.0"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz#4cca838fd1b2a03283c1f38e141f639d60b3fc98"
- integrity sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==
- dependencies:
- "@babel/code-frame" "^7.14.5"
- "@babel/generator" "^7.15.0"
- "@babel/helper-function-name" "^7.14.5"
- "@babel/helper-hoist-variables" "^7.14.5"
- "@babel/helper-split-export-declaration" "^7.14.5"
- "@babel/parser" "^7.15.0"
- "@babel/types" "^7.15.0"
- debug "^4.1.0"
- globals "^11.1.0"
-
-"@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.15.0":
- version "7.15.0"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd"
- integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==
- dependencies:
- "@babel/helper-validator-identifier" "^7.14.9"
- to-fast-properties "^2.0.0"
-
"@babel/types@^7.15.4", "@babel/types@^7.15.6", "@babel/types@^7.4.4":
version "7.15.6"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.6.tgz#99abdc48218b2881c058dd0a7ab05b99c9be758f"
@@ -1044,9 +876,9 @@
to-fast-properties "^2.0.0"
"@discoveryjs/json-ext@^0.5.0":
- version "0.5.3"
- resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz#90420f9f9c6d3987f176a19a7d8e764271a2f55d"
- integrity sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g==
+ version "0.5.5"
+ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.5.tgz#9283c9ce5b289a3c4f61c12757469e59377f81f3"
+ integrity sha512-6nFkfkmSeV/rqSaS4oWHgmpnYw194f6hmWF5is6b0J1naJZoiD0NTc9AiUwPHvWsowkjuHErCZT1wa0jg+BLIA==
"@eslint/eslintrc@^0.4.3":
version "0.4.3"
@@ -1104,80 +936,79 @@
fastq "^1.6.0"
"@sentry/browser@^6.12.0":
- version "6.12.0"
- resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.12.0.tgz#970cd68fa117a1e1336fdb373e3b1fa76cd63e2d"
- integrity sha512-wsJi1NLOmfwtPNYxEC50dpDcVY7sdYckzwfqz1/zHrede1mtxpqSw+7iP4bHADOJXuF+ObYYTHND0v38GSXznQ==
+ version "6.13.2"
+ resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.13.2.tgz#8b731ecf8c3cdd92a4b6893a26f975fd5844056d"
+ integrity sha512-bkFXK4vAp2UX/4rQY0pj2Iky55Gnwr79CtveoeeMshoLy5iDgZ8gvnLNAz7om4B9OQk1u7NzLEa4IXAmHTUyag==
dependencies:
- "@sentry/core" "6.12.0"
- "@sentry/types" "6.12.0"
- "@sentry/utils" "6.12.0"
+ "@sentry/core" "6.13.2"
+ "@sentry/types" "6.13.2"
+ "@sentry/utils" "6.13.2"
tslib "^1.9.3"
-"@sentry/core@6.12.0":
- version "6.12.0"
- resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.12.0.tgz#bc7c5f0785b6a392d9ad47bd9b1fae3f5389996c"
- integrity sha512-mU/zdjlzFHzdXDZCPZm8OeCw7c9xsbL49Mq0TrY0KJjLt4CJBkiq5SDTGfRsenBLgTedYhe5Z/J8Z+xVVq+MfQ==
+"@sentry/core@6.13.2":
+ version "6.13.2"
+ resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.13.2.tgz#2ce164f81667aa89cd116f807d772b4718434583"
+ integrity sha512-snXNNFLwlS7yYxKTX4DBXebvJK+6ikBWN6noQ1CHowvM3ReFBlrdrs0Z0SsSFEzXm2S4q7f6HHbm66GSQZ/8FQ==
dependencies:
- "@sentry/hub" "6.12.0"
- "@sentry/minimal" "6.12.0"
- "@sentry/types" "6.12.0"
- "@sentry/utils" "6.12.0"
+ "@sentry/hub" "6.13.2"
+ "@sentry/minimal" "6.13.2"
+ "@sentry/types" "6.13.2"
+ "@sentry/utils" "6.13.2"
tslib "^1.9.3"
-"@sentry/hub@6.12.0":
- version "6.12.0"
- resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.12.0.tgz#29e323ab6a95e178fb14fffb684aa0e09707197f"
- integrity sha512-yR/UQVU+ukr42bSYpeqvb989SowIXlKBanU0cqLFDmv5LPCnaQB8PGeXwJAwWhQgx44PARhmB82S6Xor8gYNxg==
+"@sentry/hub@6.13.2":
+ version "6.13.2"
+ resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.13.2.tgz#ebc66fd55c96c7686a53ffd3521b6a63f883bb79"
+ integrity sha512-sppSuJdNMiMC/vFm/dQowCBh11uTrmvks00fc190YWgxHshodJwXMdpc+pN61VSOmy2QA4MbQ5aMAgHzPzel3A==
dependencies:
- "@sentry/types" "6.12.0"
- "@sentry/utils" "6.12.0"
+ "@sentry/types" "6.13.2"
+ "@sentry/utils" "6.13.2"
tslib "^1.9.3"
-"@sentry/minimal@6.12.0":
- version "6.12.0"
- resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.12.0.tgz#cbe20e95056cedb9709d7d5b2119ef95206a9f8c"
- integrity sha512-r3C54Q1KN+xIqUvcgX9DlcoWE7ezWvFk2pSu1Ojx9De81hVqR9u5T3sdSAP2Xma+um0zr6coOtDJG4WtYlOtsw==
+"@sentry/minimal@6.13.2":
+ version "6.13.2"
+ resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.13.2.tgz#de3ecc62b9463bf56ccdbcf4c75f7ea1aeeebc11"
+ integrity sha512-6iJfEvHzzpGBHDfLxSHcGObh73XU1OSQKWjuhDOe7UQDyI4BQmTfcXAC+Fr8sm8C/tIsmpVi/XJhs8cubFdSMw==
dependencies:
- "@sentry/hub" "6.12.0"
- "@sentry/types" "6.12.0"
+ "@sentry/hub" "6.13.2"
+ "@sentry/types" "6.13.2"
tslib "^1.9.3"
-"@sentry/types@6.12.0":
- version "6.12.0"
- resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.12.0.tgz#b7395688a79403c6df8d8bb8d81deb8222519853"
- integrity sha512-urtgLzE4EDMAYQHYdkgC0Ei9QvLajodK1ntg71bGn0Pm84QUpaqpPDfHRU+i6jLeteyC7kWwa5O5W1m/jrjGXA==
+"@sentry/types@6.13.2":
+ version "6.13.2"
+ resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.13.2.tgz#8388d5b92ea8608936e7aae842801dc90e0184e6"
+ integrity sha512-6WjGj/VjjN8LZDtqJH5ikeB1o39rO1gYS6anBxiS3d0sXNBb3Ux0pNNDFoBxQpOhmdDHXYS57MEptX9EV82gmg==
-"@sentry/utils@6.12.0":
- version "6.12.0"
- resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.12.0.tgz#3de261e8d11bdfdc7add64a3065d43517802e975"
- integrity sha512-oRHQ7TH5TSsJqoP9Gqq25Jvn9LKexXfAh/OoKwjMhYCGKGhqpDNUIZVgl9DWsGw5A5N5xnQyLOxDfyRV5RshdA==
+"@sentry/utils@6.13.2":
+ version "6.13.2"
+ resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.13.2.tgz#fb8010e7b67cc8c084d8067d64ef25289269cda5"
+ integrity sha512-foF4PbxqPMWNbuqdXkdoOmKm3quu3PP7Q7j/0pXkri4DtCuvF/lKY92mbY0V9rHS/phCoj+3/Se5JvM2ymh2/w==
dependencies:
- "@sentry/types" "6.12.0"
+ "@sentry/types" "6.13.2"
tslib "^1.9.3"
-"@sinonjs/commons@^1", "@sinonjs/commons@^1.3.0", "@sinonjs/commons@^1.4.0", "@sinonjs/commons@^1.7.0":
+"@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.8.3":
version "1.8.3"
resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d"
integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==
dependencies:
type-detect "4.0.8"
-"@sinonjs/formatio@^3.2.1":
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.2.2.tgz#771c60dfa75ea7f2d68e3b94c7e888a78781372c"
- integrity sha512-B8SEsgd8gArBLMD6zpRw3juQ2FVSsmdd7qlevyDqzS9WTCtvF55/gAL+h6gue8ZvPYcdiPdvueM/qm//9XzyTQ==
+"@sinonjs/fake-timers@^7.0.4", "@sinonjs/fake-timers@^7.1.2":
+ version "7.1.2"
+ resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz#2524eae70c4910edccf99b2f4e6efc5894aff7b5"
+ integrity sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==
dependencies:
- "@sinonjs/commons" "^1"
- "@sinonjs/samsam" "^3.1.0"
+ "@sinonjs/commons" "^1.7.0"
-"@sinonjs/samsam@^3.1.0", "@sinonjs/samsam@^3.3.2":
- version "3.3.3"
- resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.3.3.tgz#46682efd9967b259b81136b9f120fd54585feb4a"
- integrity sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ==
+"@sinonjs/samsam@^6.0.2":
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-6.0.2.tgz#a0117d823260f282c04bff5f8704bdc2ac6910bb"
+ integrity sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ==
dependencies:
- "@sinonjs/commons" "^1.3.0"
- array-from "^2.1.1"
- lodash "^4.17.15"
+ "@sinonjs/commons" "^1.6.0"
+ lodash.get "^4.4.2"
+ type-detect "^4.0.8"
"@sinonjs/text-encoding@^0.7.1":
version "0.7.1"
@@ -1199,10 +1030,10 @@
remark "^13.0.0"
unist-util-find-all-after "^3.0.2"
-"@trysound/sax@0.1.1":
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.1.1.tgz#3348564048e7a2d7398c935d466c0414ebb6a669"
- integrity sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow==
+"@trysound/sax@0.2.0":
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad"
+ integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==
"@types/component-emitter@^1.2.10":
version "1.2.10"
@@ -1271,9 +1102,9 @@
integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==
"@types/node@*", "@types/node@>=10.0.0":
- version "16.7.1"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-16.7.1.tgz#c6b9198178da504dfca1fd0be9b2e1002f1586f0"
- integrity sha512-ncRdc45SoYJ2H4eWU9ReDfp3vtFqDYhjOsKlFFUDEn8V1Bgr2RjYal8YT5byfadWIRluhPFU6JiDOl0H6Sl87A==
+ version "16.9.6"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.9.6.tgz#040a64d7faf9e5d9e940357125f0963012e66f04"
+ integrity sha512-YHUZhBOMTM3mjFkXVcK+WwAcYmyhe1wL4lfqNtzI0b3qAy7yuSetnM7QJazgE5PFmgVTNGiLOgRFfJMqW7XpSQ==
"@types/normalize-package-data@^2.4.0":
version "2.4.1"
@@ -1322,9 +1153,9 @@
source-map "^0.7.3"
"@types/webpack@^4.4.31":
- version "4.41.30"
- resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.30.tgz#fd3db6d0d41e145a8eeeafcd3c4a7ccde9068ddc"
- integrity sha512-GUHyY+pfuQ6haAfzu4S14F+R5iGRwN6b2FRNJY7U0NilmFAqbsOfK6j1HwuLBAqwRIT+pVdNDJGJ6e8rpp0KHA==
+ version "4.41.31"
+ resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.31.tgz#c35f252a3559ddf9c85c0d8b0b42019025e581aa"
+ integrity sha512-/i0J7sepXFIp1ZT7FjUGi1eXMCg8HCCzLJEQkKsOtbJFontsJLolBcDC+3qxn5pPwiCt1G0ZdRmYRzNBtvpuGQ==
dependencies:
"@types/node" "*"
"@types/tapable" "^1"
@@ -1510,9 +1341,9 @@ acorn@^7.4.0:
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
acorn@^8.4.1:
- version "8.4.1"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c"
- integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==
+ version "8.5.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2"
+ integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==
after@0.8.2:
version "0.8.2"
@@ -1535,9 +1366,9 @@ ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5:
uri-js "^4.2.2"
ajv@^8.0.1:
- version "8.6.2"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.2.tgz#2fb45e0e5fcbc0813326c1c3da535d1881bb0571"
- integrity sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==
+ version "8.6.3"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.3.tgz#11a66527761dc3e9a3845ea775d2d3c0414e8764"
+ integrity sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==
dependencies:
fast-deep-equal "^3.1.1"
json-schema-traverse "^1.0.0"
@@ -1575,9 +1406,9 @@ ansi-regex@^4.1.0:
integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
ansi-regex@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
- integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+ integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
ansi-styles@^2.2.1:
version "2.2.1"
@@ -1612,9 +1443,9 @@ aproba@^1.0.3:
integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
are-we-there-yet@~1.1.2:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
- integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146"
+ integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==
dependencies:
delegates "^1.0.0"
readable-stream "^2.0.6"
@@ -1626,11 +1457,6 @@ argparse@^1.0.7:
dependencies:
sprintf-js "~1.0.2"
-array-from@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195"
- integrity sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=
-
array-union@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
@@ -1718,12 +1544,12 @@ aws4@^1.8.0:
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
-axios@0.21.1:
- version "0.21.1"
- resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8"
- integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==
+axios@0.21.4:
+ version "0.21.4"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575"
+ integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==
dependencies:
- follow-redirects "^1.10.0"
+ follow-redirects "^1.14.0"
babel-loader@^8.2.2:
version "8.2.2"
@@ -1752,12 +1578,12 @@ babel-plugin-polyfill-corejs2@^0.2.2:
semver "^6.1.1"
babel-plugin-polyfill-corejs3@^0.2.2:
- version "0.2.4"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz#68cb81316b0e8d9d721a92e0009ec6ecd4cd2ca9"
- integrity sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==
+ version "0.2.5"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz#2779846a16a1652244ae268b1e906ada107faf92"
+ integrity sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw==
dependencies:
"@babel/helper-define-polyfill-provider" "^0.2.2"
- core-js-compat "^3.14.0"
+ core-js-compat "^3.16.2"
babel-plugin-polyfill-regenerator@^0.2.2:
version "0.2.2"
@@ -1924,27 +1750,16 @@ browser-sync@^2.26.13:
ua-parser-js "^0.7.28"
yargs "^15.4.1"
-browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.0, browserslist@^4.16.6:
- version "4.16.8"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.8.tgz#cb868b0b554f137ba6e33de0ecff2eda403c4fb0"
- integrity sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ==
- dependencies:
- caniuse-lite "^1.0.30001251"
- colorette "^1.3.0"
- electron-to-chromium "^1.3.811"
- escalade "^3.1.1"
- node-releases "^1.1.75"
-
-browserslist@^4.17.0:
- version "4.17.0"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.0.tgz#1fcd81ec75b41d6d4994fb0831b92ac18c01649c"
- integrity sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==
+browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.0, browserslist@^4.16.6, browserslist@^4.17.0:
+ version "4.17.1"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.1.tgz#a98d104f54af441290b7d592626dd541fa642eb9"
+ integrity sha512-aLD0ZMDSnF4lUt4ZDNgqi5BUn9BZ7YdQdI/cYlILrhdSSZJLU9aNZoD5/NBmM4SK34APB2e83MOsRt1EnkuyaQ==
dependencies:
- caniuse-lite "^1.0.30001254"
- colorette "^1.3.0"
- electron-to-chromium "^1.3.830"
+ caniuse-lite "^1.0.30001259"
+ electron-to-chromium "^1.3.846"
escalade "^3.1.1"
- node-releases "^1.1.75"
+ nanocolors "^0.1.5"
+ node-releases "^1.1.76"
bs-recipes@1.3.4:
version "1.3.4"
@@ -2003,15 +1818,12 @@ caniuse-api@^3.0.0:
lodash.memoize "^4.1.2"
lodash.uniq "^4.5.0"
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001251:
- version "1.0.30001251"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001251.tgz#6853a606ec50893115db660f82c094d18f096d85"
- integrity sha512-HOe1r+9VkU4TFmnU70z+r7OLmtR+/chB1rdcJUeQlAinjEeb0cKL20tlAtOagNZhbrtLnCvV19B4FmF1rgzl6A==
-
-caniuse-lite@^1.0.30001254:
- version "1.0.30001258"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001258.tgz#b604eed80cc54a578e4bf5a02ae3ed49f869d252"
- integrity sha512-RBByOG6xWXUp0CR2/WU2amXz3stjKpSl5J1xU49F1n2OxD//uBZO4wCKUiG+QMGf7CHGfDDcqoKriomoGVxTeA==
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001259:
+ version "1.0.30001260"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001260.tgz#e3be3f34ddad735ca4a2736fa9e768ef34316270"
+ integrity sha512-Fhjc/k8725ItmrvW5QomzxLeojewxvqiYCKeFcfFEhut28IVLdpHU19dneOmltZQIE5HNbawj1HYD+1f2bM1Dg==
+ dependencies:
+ nanocolors "^0.1.0"
caseless@~0.12.0:
version "0.12.0"
@@ -2180,10 +1992,10 @@ colord@^2.0.1, colord@^2.6:
resolved "https://registry.yarnpkg.com/colord/-/colord-2.7.0.tgz#706ea36fe0cd651b585eb142fe64b6480185270e"
integrity sha512-pZJBqsHz+pYyw3zpX6ZRXWoCHM1/cvFikY9TV8G3zcejCaKE0lhankoj8iScyrrePA8C7yJ5FStfA9zbcOnw7Q==
-colorette@^1.2.1, colorette@^1.2.2, colorette@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af"
- integrity sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w==
+colorette@^1.2.1, colorette@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40"
+ integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==
colors@^1.4.0:
version "1.4.0"
@@ -2202,7 +2014,7 @@ commander@^2.2.0, commander@^2.20.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
-commander@^7.0.0, commander@^7.1.0:
+commander@^7.0.0, commander@^7.2.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
@@ -2312,19 +2124,24 @@ copy-webpack-plugin@9.0.1:
schema-utils "^3.0.0"
serialize-javascript "^6.0.0"
-core-js-compat@^3.14.0, core-js-compat@^3.16.0:
- version "3.17.3"
- resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.17.3.tgz#b39c8e4dec71ecdc735c653ce5233466e561324e"
- integrity sha512-+in61CKYs4hQERiADCJsdgewpdl/X0GhEX77pjKgbeibXviIt2oxEjTc8O2fqHX8mDdBrDvX8MYD/RYsBv4OiA==
+core-js-compat@^3.16.0, core-js-compat@^3.16.2:
+ version "3.18.0"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.18.0.tgz#fb360652201e8ac8da812718c008cd0482ed9b42"
+ integrity sha512-tRVjOJu4PxdXjRMEgbP7lqWy1TWJu9a01oBkn8d+dNrhgmBwdTkzhHZpVJnEmhISLdoJI1lX08rcBcHi3TZIWg==
dependencies:
browserslist "^4.17.0"
semver "7.0.0"
-core-util-is@1.0.2, core-util-is@~1.0.0:
+core-util-is@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
+core-util-is@~1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
+ integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
+
cors@~2.8.5:
version "2.8.5"
resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29"
@@ -2359,9 +2176,9 @@ css-color-names@^1.0.1:
integrity sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA==
css-declaration-sorter@^6.0.3:
- version "6.1.1"
- resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.1.1.tgz#77b32b644ba374bc562c0fc6f4fdaba4dfb0b749"
- integrity sha512-BZ1aOuif2Sb7tQYY1GeCjG7F++8ggnwUkH5Ictw0mrdpqpEd+zWmcPdstnH2TItlb74FqR0DrVEieon221T/1Q==
+ version "6.1.3"
+ resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.1.3.tgz#e9852e4cf940ba79f509d9425b137d1f94438dc2"
+ integrity sha512-SvjQjNRZgh4ULK1LDJ2AduPKUKxIqmtU7ZAyi47BTV+M90Qvxr9AB6lKlLbDUfXqI9IQeYA8LbAsCZPpJEV3aA==
dependencies:
timsort "^0.3.0"
@@ -2426,7 +2243,7 @@ css-tree@1.0.0-alpha.37:
mdn-data "2.0.4"
source-map "^0.6.1"
-css-tree@^1.1.2:
+css-tree@^1.1.2, css-tree@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d"
integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
@@ -2519,9 +2336,9 @@ dashdash@^1.12.0:
assert-plus "^1.0.0"
date-fns@^2.16.1:
- version "2.23.0"
- resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.23.0.tgz#4e886c941659af0cf7b30fafdd1eaa37e88788a9"
- integrity sha512-5ycpauovVyAk0kXNZz6ZoB9AYMZB4DObse7P3BPWmyEjXNORTI8EJ6X0uaSAq4sCHzM1uajzrkr6HnsLQpxGXA==
+ version "2.24.0"
+ resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.24.0.tgz#7d86dc0d93c87b76b63d213b4413337cfd1c105d"
+ integrity sha512-6ujwvwgPID6zbI0o7UbURi2vlLDR9uP26+tW6Lg+Ji3w7dd0i3DOcjcClLjLPranT60SSEFBwdSyYwn/ZkPIuw==
date-format@^2.1.0:
version "2.1.0"
@@ -2540,14 +2357,7 @@ debug@2.6.9, debug@^2.2.0:
dependencies:
ms "2.0.0"
-debug@4.3.1:
- version "4.3.1"
- resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
- integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
- dependencies:
- ms "2.1.2"
-
-debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@~4.3.1:
+debug@4.3.2, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@~4.3.1:
version "4.3.2"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
@@ -2582,9 +2392,9 @@ decamelize@^1.1.0, decamelize@^1.2.0:
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
deep-is@^0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
- integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
+ integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
define-properties@^1.1.3:
version "1.1.3"
@@ -2636,10 +2446,10 @@ di@^0.0.1:
resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c"
integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=
-diff@^3.5.0:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
- integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==
+diff@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b"
+ integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==
dir-glob@^3.0.1:
version "3.0.1"
@@ -2705,9 +2515,9 @@ domhandler@^2.3.0:
domelementtype "1"
domhandler@^4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.0.tgz#f9768a5f034be60a89a27c2e4d0f74eba0d8b059"
- integrity sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.2.tgz#e825d721d19a86b8c201a35264e226c678ee755f"
+ integrity sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==
dependencies:
domelementtype "^2.2.0"
@@ -2720,9 +2530,9 @@ domutils@^1.5.1, domutils@^1.7.0:
domelementtype "1"
domutils@^2.6.0:
- version "2.7.0"
- resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.7.0.tgz#8ebaf0c41ebafcf55b0b72ec31c56323712c5442"
- integrity sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==
+ version "2.8.0"
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135"
+ integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==
dependencies:
dom-serializer "^1.0.1"
domelementtype "^2.2.0"
@@ -2755,15 +2565,10 @@ ee-first@1.1.1:
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
-electron-to-chromium@^1.3.811:
- version "1.3.816"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.816.tgz#ab6488b126de92670a6459fe3e746050e0c6276f"
- integrity sha512-/AvJPIJldO0NkwkfpUD7u1e4YEGRFBQpFuvl9oGCcVgWOObsZB1loxVGeVUJB9kmvfsBUUChPYdgRzx6+AKNyg==
-
-electron-to-chromium@^1.3.830:
- version "1.3.842"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.842.tgz#641e414012dded277468892c0156cb01984f4f6f"
- integrity sha512-P/nDMPIYdb2PyqCQwhTXNi5JFjX1AsDVR0y6FrHw752izJIAJ+Pn5lugqyBq4tXeRSZBMBb2ZGvRGB1djtELEQ==
+electron-to-chromium@^1.3.846:
+ version "1.3.848"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.848.tgz#94cc196e496f33c0d71cd98561448f10018584cc"
+ integrity sha512-wchRyBcdcmibioggdO7CbMT5QQ4lXlN/g7Mkpf1K2zINidnqij6EVu94UIZ+h5nB2S9XD4bykqFv9LonAWLFyw==
emoji-regex@^7.0.1:
version "7.0.3"
@@ -2814,9 +2619,9 @@ engine.io-parser@~2.2.0:
has-binary2 "~1.0.2"
engine.io-parser@~4.0.0:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-4.0.2.tgz#e41d0b3fb66f7bf4a3671d2038a154024edb501e"
- integrity sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-4.0.3.tgz#83d3a17acfd4226f19e721bb22a1ee8f7662d2f6"
+ integrity sha512-xEAAY0msNnESNPc00e19y5heTPX4y/TJ36gr8t1voOaNmTojP9b3oK3BbJLFufW2XFPQaaijpFewm2g2Um3uqA==
dependencies:
base64-arraybuffer "0.1.4"
@@ -2846,9 +2651,9 @@ engine.io@~4.1.0:
ws "~7.4.2"
enhanced-resolve@^5.8.0:
- version "5.8.2"
- resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz#15ddc779345cbb73e97c611cd00c01c1e7bf4d8b"
- integrity sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==
+ version "5.8.3"
+ resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz#6d552d465cce0423f5b3d718511ea53826a7b2f0"
+ integrity sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==
dependencies:
graceful-fs "^4.2.4"
tapable "^2.2.0"
@@ -2893,21 +2698,22 @@ error-ex@^1.3.1:
is-arrayish "^0.2.1"
es-abstract@^1.17.2, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2:
- version "1.18.5"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.5.tgz#9b10de7d4c206a3581fd5b2124233e04db49ae19"
- integrity sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==
+ version "1.18.6"
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.6.tgz#2c44e3ea7a6255039164d26559777a6d978cb456"
+ integrity sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ==
dependencies:
call-bind "^1.0.2"
es-to-primitive "^1.2.1"
function-bind "^1.1.1"
get-intrinsic "^1.1.1"
+ get-symbol-description "^1.0.0"
has "^1.0.3"
has-symbols "^1.0.2"
internal-slot "^1.0.3"
- is-callable "^1.2.3"
+ is-callable "^1.2.4"
is-negative-zero "^2.0.1"
- is-regex "^1.1.3"
- is-string "^1.0.6"
+ is-regex "^1.1.4"
+ is-string "^1.0.7"
object-inspect "^1.11.0"
object-keys "^1.1.1"
object.assign "^4.1.2"
@@ -3155,9 +2961,9 @@ fastest-levenshtein@^1.0.12:
integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==
fastq@^1.6.0:
- version "1.12.0"
- resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.12.0.tgz#ed7b6ab5d62393fb2cc591c853652a5c318bf794"
- integrity sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg==
+ version "1.13.0"
+ resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"
+ integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
dependencies:
reusify "^1.0.4"
@@ -3243,10 +3049,10 @@ flatted@^3.1.0:
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561"
integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==
-follow-redirects@^1.0.0, follow-redirects@^1.10.0:
- version "1.14.2"
- resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.2.tgz#cecb825047c00f5e66b142f90fed4f515dec789b"
- integrity sha512-yLR6WaE2lbF0x4K2qE2p9PEXKLDjUjnR/xmjS3wHAYxtlsI9MLLBJUZirAHKzUZDGLxje7w/cXR49WOUo4rbsA==
+follow-redirects@^1.0.0, follow-redirects@^1.14.0:
+ version "1.14.4"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.4.tgz#838fdf48a8bbdd79e52ee51fb1c94e3ed98b9379"
+ integrity sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g==
forever-agent@~0.6.1:
version "0.6.1"
@@ -3367,6 +3173,14 @@ get-stream@^6.0.0:
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
+get-symbol-description@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6"
+ integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==
+ dependencies:
+ call-bind "^1.0.2"
+ get-intrinsic "^1.1.1"
+
getpass@^0.1.1:
version "0.1.7"
resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
@@ -3393,7 +3207,19 @@ glob-to-regexp@^0.4.1:
resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
-glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.7, glob@~7.1.1:
+glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.7:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
+ integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+glob@~7.1.1:
version "7.1.7"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
@@ -3792,7 +3618,7 @@ is-buffer@^2.0.0:
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191"
integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==
-is-callable@^1.1.4, is-callable@^1.2.3:
+is-callable@^1.1.4, is-callable@^1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945"
integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==
@@ -3915,7 +3741,7 @@ is-plain-object@^2.0.4:
dependencies:
isobject "^3.0.1"
-is-regex@^1.1.3:
+is-regex@^1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==
@@ -3938,7 +3764,7 @@ is-stream@^2.0.0:
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
-is-string@^1.0.5, is-string@^1.0.6:
+is-string@^1.0.5, is-string@^1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd"
integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==
@@ -3967,7 +3793,7 @@ is-wsl@^1.1.0:
resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=
-is-wsl@^2.1.0:
+is-wsl@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
@@ -4009,20 +3835,15 @@ isstream@~0.1.2:
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
-jasmine-core@3.4.0:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.4.0.tgz#2a74618e966026530c3518f03e9f845d26473ce3"
- integrity sha512-HU/YxV4i6GcmiH4duATwAbJQMlE0MsDIR5XmSVxURxKHn3aGAdbY1/ZJFmVRbKtnLwIxxMJD7gYaPsypcbYimg==
-
-jasmine-core@^3.3:
+jasmine-core@3.9.0, jasmine-core@^3.6.0:
version "3.9.0"
resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.9.0.tgz#09a3c8169fe98ec69440476d04a0e4cb4d59e452"
integrity sha512-Tv3kVbPCGVrjsnHBZ38NsPU3sDOtNa0XmbG2baiyJqdb5/SPpDO6GVwJYtUryl6KB4q1Ssckwg612ES9Z0dreQ==
-jest-worker@^27.0.2:
- version "27.0.6"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.6.tgz#a5fdb1e14ad34eb228cfe162d9f729cdbfa28aed"
- integrity sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA==
+jest-worker@^27.0.2, jest-worker@^27.0.6:
+ version "27.2.0"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.2.0.tgz#11eef39f1c88f41384ca235c2f48fe50bc229bc0"
+ integrity sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==
dependencies:
"@types/node" "*"
merge-stream "^2.0.0"
@@ -4151,19 +3972,20 @@ karma-chrome-launcher@3.1.0:
dependencies:
which "^1.2.1"
-karma-firefox-launcher@1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-1.2.0.tgz#64fe03dd10300f9754d48f9ebfbf31f6c94a200c"
- integrity sha512-j9Zp8M8+VLq1nI/5xZGfzeaEPtGQ/vk3G+Y8vpmFWLvKLNZ2TDjD6cu2dUu7lDbu1HXNgatsAX4jgCZTkR9qhQ==
+karma-firefox-launcher@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-2.1.1.tgz#6457226f8e4f091b664cef79bb5d39bf1e008765"
+ integrity sha512-VzDMgPseXak9DtfyE1O5bB2BwsMy1zzO1kUxVW1rP0yhC4tDNJ0p3JoFdzvrK4QqVzdqUMa9Rx9YzkdFp8hz3Q==
dependencies:
- is-wsl "^2.1.0"
+ is-wsl "^2.2.0"
+ which "^2.0.1"
-karma-jasmine@2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-2.0.1.tgz#26e3e31f2faf272dd80ebb0e1898914cc3a19763"
- integrity sha512-iuC0hmr9b+SNn1DaUD2QEYtUxkS1J+bSJSn7ejdEexs7P8EYvA1CWkEdrDQ+8jVH3AgWlCNwjYsT1chjcNW9lA==
+karma-jasmine@4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-4.0.1.tgz#b99e073b6d99a5196fc4bffc121b89313b0abd82"
+ integrity sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw==
dependencies:
- jasmine-core "^3.3"
+ jasmine-core "^3.6.0"
karma-sourcemap-loader@^0.3.8:
version "0.3.8"
@@ -4263,14 +4085,14 @@ loader-utils@^1.4.0:
json5 "^1.0.1"
localtunnel@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/localtunnel/-/localtunnel-2.0.1.tgz#8f7c593f3005647f7675e6e69af9bf746571a631"
- integrity sha512-LiaI5wZdz0xFkIQpXbNI62ZnNn8IMsVhwxHmhA+h4vj8R9JG/07bQHWwQlyy7b95/5fVOCHJfIHv+a5XnkvaJA==
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/localtunnel/-/localtunnel-2.0.2.tgz#528d50087151c4790f89c2db374fe7b0a48501f0"
+ integrity sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==
dependencies:
- axios "0.21.1"
- debug "4.3.1"
+ axios "0.21.4"
+ debug "4.3.2"
openurl "1.1.1"
- yargs "16.2.0"
+ yargs "17.1.1"
locate-path@^3.0.0:
version "3.0.0"
@@ -4297,6 +4119,11 @@ lodash.debounce@^4.0.8:
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
+lodash.get@^4.4.2:
+ version "4.4.2"
+ resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
+ integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
+
lodash.isfinite@^3.3.2:
version "3.3.2"
resolved "https://registry.yarnpkg.com/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz#fb89b65a9a80281833f0b7478b3a5104f898ebb3"
@@ -4346,18 +4173,6 @@ log4js@^6.3.0:
rfdc "^1.1.4"
streamroller "^2.2.4"
-lolex@^4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/lolex/-/lolex-4.2.0.tgz#ddbd7f6213ca1ea5826901ab1222b65d714b3cd7"
- integrity sha512-gKO5uExCXvSm6zbF562EvM+rd1kQDnB9AZBbiQVzf1ZmdDpxUSvpnAaVOP83N/31mRK8Ml8/VE8DMvsAZQ+7wg==
-
-lolex@^5.0.1:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367"
- integrity sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==
- dependencies:
- "@sinonjs/commons" "^1.7.0"
-
longest-streak@^2.0.0:
version "2.0.4"
resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4"
@@ -4383,9 +4198,9 @@ map-obj@^1.0.0:
integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=
map-obj@^4.0.0:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.2.1.tgz#e4ea399dbc979ae735c83c863dd31bdf364277b7"
- integrity sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a"
+ integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==
mathml-tag-names@^2.1.3:
version "2.1.3"
@@ -4540,9 +4355,9 @@ minimist@^1.2.0, minimist@^1.2.5:
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
minipass@^3.0.0:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd"
- integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.5.tgz#71f6251b0a33a49c01b3cf97ff77eda030dff732"
+ integrity sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==
dependencies:
yallist "^4.0.0"
@@ -4591,7 +4406,12 @@ nan@^2.13.2:
resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee"
integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==
-nanoid@^3.1.23:
+nanocolors@^0.1.0, nanocolors@^0.1.5:
+ version "0.1.12"
+ resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.1.12.tgz#8577482c58cbd7b5bb1681db4cf48f11a87fd5f6"
+ integrity sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==
+
+nanoid@^3.1.25:
version "3.1.25"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz#09ca32747c0e543f0e1814b7d3793477f9c8e152"
integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==
@@ -4611,15 +4431,15 @@ neo-async@^2.6.2:
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
-nise@^1.5.1:
- version "1.5.3"
- resolved "https://registry.yarnpkg.com/nise/-/nise-1.5.3.tgz#9d2cfe37d44f57317766c6e9408a359c5d3ac1f7"
- integrity sha512-Ymbac/94xeIrMf59REBPOv0thr+CJVFMhrlAkW/gjCIE58BGQdCj0x7KRCb3yz+Ga2Rz3E9XXSvUyyxqqhjQAQ==
+nise@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/nise/-/nise-5.1.0.tgz#713ef3ed138252daef20ec035ab62b7a28be645c"
+ integrity sha512-W5WlHu+wvo3PaKLsJJkgPup2LrsXCcm7AWwyNZkUnn5rwPkuPBi3Iwk5SQtN0mv+K65k7nKKjwNQ30wg3wLAQQ==
dependencies:
- "@sinonjs/formatio" "^3.2.1"
+ "@sinonjs/commons" "^1.7.0"
+ "@sinonjs/fake-timers" "^7.0.4"
"@sinonjs/text-encoding" "^0.7.1"
just-extend "^4.0.2"
- lolex "^5.0.1"
path-to-regexp "^1.7.0"
node-gyp@^7.1.0:
@@ -4638,10 +4458,10 @@ node-gyp@^7.1.0:
tar "^6.0.2"
which "^2.0.2"
-node-releases@^1.1.75:
- version "1.1.75"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.75.tgz#6dd8c876b9897a1b8e5a02de26afa79bb54ebbfe"
- integrity sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==
+node-releases@^1.1.76:
+ version "1.1.76"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.76.tgz#df245b062b0cafbd5282ab6792f7dccc2d97f36e"
+ integrity sha512-9/IECtNr8dXNmPWmFXepT0/7o5eolGesHUa3mtr0KlgnCvnZxwh2qensKL42JJY2vQKC3nIBXetFAqR+PW1CmA==
node-sass@6.0.1:
version "6.0.1"
@@ -4736,9 +4556,9 @@ nth-check@^1.0.2:
boolbase "~1.0.0"
nth-check@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125"
- integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2"
+ integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==
dependencies:
boolbase "^1.0.0"
@@ -5326,12 +5146,12 @@ postcss@^7.0.14, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0.
supports-color "^6.1.0"
postcss@^8.2.15, postcss@^8.3.5:
- version "8.3.6"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.6.tgz#2730dd76a97969f37f53b9a6096197be311cc4ea"
- integrity sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==
+ version "8.3.7"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.7.tgz#ec88563588c8da8e58e7226f7633b51ae221eeda"
+ integrity sha512-9SaY7nnyQ63/WittqZYAvkkYPyKxchMKH71UDzeTmWuLSvxTRpeEeABZAzlCi55cuGcoFyoV/amX2BdsafQidQ==
dependencies:
- colorette "^1.2.2"
- nanoid "^3.1.23"
+ nanocolors "^0.1.5"
+ nanoid "^3.1.25"
source-map-js "^0.6.2"
prelude-ls@^1.2.1:
@@ -5751,7 +5571,7 @@ schema-utils@^2.6.5:
ajv "^6.12.4"
ajv-keywords "^3.5.2"
-schema-utils@^3.0.0, schema-utils@^3.1.0:
+schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281"
integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==
@@ -5888,22 +5708,21 @@ side-channel@^1.0.4:
object-inspect "^1.9.0"
signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
- integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.4.tgz#366a4684d175b9cab2081e3681fda3747b6c51d7"
+ integrity sha512-rqYhcAnZ6d/vTPGghdrw7iumdcbXpsk1b8IG/rz+VWV51DM0p7XCtMoJ3qhPLIbp3tvyt3pKRbaaEMZYpHto8Q==
-sinon@7.4.1:
- version "7.4.1"
- resolved "https://registry.yarnpkg.com/sinon/-/sinon-7.4.1.tgz#bcd0c63953893e87fa0cc502f52489c32a83d4d9"
- integrity sha512-7s9buHGHN/jqoy/v4bJgmt0m1XEkCEd/tqdHXumpBp0JSujaT4Ng84JU5wDdK4E85ZMq78NuDe0I3NAqXY8TFg==
+sinon@11.1.2:
+ version "11.1.2"
+ resolved "https://registry.yarnpkg.com/sinon/-/sinon-11.1.2.tgz#9e78850c747241d5c59d1614d8f9cbe8840e8674"
+ integrity sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==
dependencies:
- "@sinonjs/commons" "^1.4.0"
- "@sinonjs/formatio" "^3.2.1"
- "@sinonjs/samsam" "^3.3.2"
- diff "^3.5.0"
- lolex "^4.2.0"
- nise "^1.5.1"
- supports-color "^5.5.0"
+ "@sinonjs/commons" "^1.8.3"
+ "@sinonjs/fake-timers" "^7.1.2"
+ "@sinonjs/samsam" "^6.0.2"
+ diff "^5.0.0"
+ nise "^5.1.0"
+ supports-color "^7.2.0"
slash@^3.0.0:
version "3.0.0"
@@ -6005,10 +5824,10 @@ source-map-js@^0.6.2:
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e"
integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==
-source-map-support@~0.5.19:
- version "0.5.19"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
- integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
+source-map-support@~0.5.20:
+ version "0.5.20"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9"
+ integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==
dependencies:
buffer-from "^1.0.0"
source-map "^0.6.0"
@@ -6329,7 +6148,7 @@ supports-color@^2.0.0:
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
-supports-color@^5.3.0, supports-color@^5.5.0:
+supports-color@^5.3.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
@@ -6343,7 +6162,7 @@ supports-color@^6.1.0:
dependencies:
has-flag "^3.0.0"
-supports-color@^7.1.0:
+supports-color@^7.1.0, supports-color@^7.2.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
@@ -6382,15 +6201,15 @@ svgo@^1.2.2:
util.promisify "~1.0.0"
svgo@^2.3.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.4.0.tgz#0c42653101fd668692c0f69b55b8d7b182ef422b"
- integrity sha512-W25S1UUm9Lm9VnE0TvCzL7aso/NCzDEaXLaElCUO/KaVitw0+IBicSVfM1L1c0YHK5TOFh73yQ2naCpVHEQ/OQ==
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.6.1.tgz#60b613937e0081028cffc2369090e366b08f1f0e"
+ integrity sha512-SDo274ymyG1jJ3HtCr3hkfwS8NqWdF0fMr6xPlrJ5y2QMofsQxIEFWgR1epwb197teKGgnZbzozxvJyIeJpE2Q==
dependencies:
- "@trysound/sax" "0.1.1"
- colorette "^1.2.2"
- commander "^7.1.0"
+ "@trysound/sax" "0.2.0"
+ colorette "^1.4.0"
+ commander "^7.2.0"
css-select "^4.1.3"
- css-tree "^1.1.2"
+ css-tree "^1.1.3"
csso "^4.2.0"
stable "^0.1.8"
@@ -6412,14 +6231,14 @@ table@^6.0.9, table@^6.6.0:
strip-ansi "^6.0.0"
tapable@^2.1.1, tapable@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b"
- integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0"
+ integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==
tar@^6.0.2:
- version "6.1.10"
- resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.10.tgz#8a320a74475fba54398fa136cd9883aa8ad11175"
- integrity sha512-kvvfiVvjGMxeUNB6MyYv5z7vhfFRwbwCXJAeL0/lnbrttBVqcMOnpHUf0X42LrPMR8mMpgapkJMchFH4FSHzNA==
+ version "6.1.11"
+ resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621"
+ integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==
dependencies:
chownr "^2.0.0"
fs-minipass "^2.0.0"
@@ -6429,25 +6248,25 @@ tar@^6.0.2:
yallist "^4.0.0"
terser-webpack-plugin@^5.1.3:
- version "5.1.4"
- resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz#c369cf8a47aa9922bd0d8a94fe3d3da11a7678a1"
- integrity sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA==
+ version "5.2.4"
+ resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.2.4.tgz#ad1be7639b1cbe3ea49fab995cbe7224b31747a1"
+ integrity sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA==
dependencies:
- jest-worker "^27.0.2"
+ jest-worker "^27.0.6"
p-limit "^3.1.0"
- schema-utils "^3.0.0"
+ schema-utils "^3.1.1"
serialize-javascript "^6.0.0"
source-map "^0.6.1"
- terser "^5.7.0"
+ terser "^5.7.2"
-terser@^5.7.0:
- version "5.7.1"
- resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.1.tgz#2dc7a61009b66bb638305cb2a824763b116bf784"
- integrity sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg==
+terser@^5.7.2:
+ version "5.9.0"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-5.9.0.tgz#47d6e629a522963240f2b55fcaa3c99083d2c351"
+ integrity sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==
dependencies:
commander "^2.20.0"
source-map "~0.7.2"
- source-map-support "~0.5.19"
+ source-map-support "~0.5.20"
text-table@^0.2.0:
version "0.2.0"
@@ -6563,7 +6382,7 @@ type-check@^0.4.0, type-check@~0.4.0:
dependencies:
prelude-ls "^1.2.1"
-type-detect@4.0.8:
+type-detect@4.0.8, type-detect@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
@@ -6853,9 +6672,9 @@ webpack-merge@^5.7.3:
wildcard "^2.0.0"
webpack-sources@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.0.tgz#b16973bcf844ebcdb3afde32eda1c04d0b90f89d"
- integrity sha512-fahN08Et7P9trej8xz/Z7eRu8ltyiygEo/hnRi9KqBUs80KeDcnf96ZJo++ewWd84fEf3xSX9bp4ZS9hbw0OBw==
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.1.tgz#251a7d9720d75ada1469ca07dbb62f3641a05b6d"
+ integrity sha512-t6BMVLQ0AkjBOoRTZgqrWm7xbXMBzD+XDq2EZ96+vMfn3qKgsvdXZhbPZ4ElUOpdv4u+iiGe+w3+J75iy/bYGA==
webpack@5.51.1:
version "5.51.1"
@@ -7027,10 +6846,10 @@ yargs-parser@^20.2.2, yargs-parser@^20.2.3:
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
-yargs@16.2.0, yargs@^16.1.1, yargs@^16.2.0:
- version "16.2.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
- integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
+yargs@17.1.1:
+ version "17.1.1"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.1.1.tgz#c2a8091564bdb196f7c0a67c1d12e5b85b8067ba"
+ integrity sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==
dependencies:
cliui "^7.0.2"
escalade "^3.1.1"
@@ -7073,6 +6892,19 @@ yargs@^15.4.1:
y18n "^4.0.0"
yargs-parser "^18.1.2"
+yargs@^16.1.1, yargs@^16.2.0:
+ version "16.2.0"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
+ integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
+ dependencies:
+ cliui "^7.0.2"
+ escalade "^3.1.1"
+ get-caller-file "^2.0.5"
+ require-directory "^2.1.1"
+ string-width "^4.2.0"
+ y18n "^5.0.5"
+ yargs-parser "^20.2.2"
+
yeast@0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"