diff --git a/back/methods/starred-module/getStarredModules.js b/back/methods/starred-module/getStarredModules.js
new file mode 100644
index 000000000..88c0fa8a9
--- /dev/null
+++ b/back/methods/starred-module/getStarredModules.js
@@ -0,0 +1,28 @@
+module.exports = function(Self) {
+ Self.remoteMethodCtx('getStarredModules', {
+ description: 'returns the starred modules for the current user',
+ accessType: 'READ',
+ returns: {
+ type: 'object',
+ root: true
+ },
+ http: {
+ path: `/getStarredModules`,
+ verb: 'get'
+ }
+ });
+
+ Self.getStarredModules = async ctx => {
+ const userId = ctx.req.accessToken.userId;
+ const filter = {
+ where: {
+ workerFk: userId
+ },
+ fields: ['moduleFk']
+ };
+
+ const starredModules = await Self.app.models.StarredModule.find(filter);
+
+ return starredModules;
+ };
+};
diff --git a/back/methods/starred-module/specs/getStarredModules.spec.js b/back/methods/starred-module/specs/getStarredModules.spec.js
new file mode 100644
index 000000000..c39ed57e9
--- /dev/null
+++ b/back/methods/starred-module/specs/getStarredModules.spec.js
@@ -0,0 +1,31 @@
+const app = require('vn-loopback/server/server');
+const LoopBackContext = require('loopback-context');
+
+describe('getStarredModules()', () => {
+ const activeCtx = {
+ accessToken: {userId: 9},
+ http: {
+ req: {
+ headers: {origin: 'http://localhost'}
+ }
+ }
+ };
+ const ctx = {req: activeCtx};
+
+ beforeEach(() => {
+ spyOn(LoopBackContext, 'getCurrentContext').and.returnValue({
+ active: activeCtx
+ });
+ });
+
+ it(`should return the starred modules for a given user`, async() => {
+ const newStarred = await app.models.StarredModule.create({workerFk: 9, moduleFk: 'Clients'});
+ const starredModules = await app.models.StarredModule.getStarredModules(ctx);
+
+ expect(starredModules.length).toEqual(1);
+ expect(starredModules[0].moduleFk).toEqual('Clients');
+
+ // restores
+ await app.models.StarredModule.destroyById(newStarred.id);
+ });
+});
diff --git a/back/methods/starred-module/specs/toggleStarredModule.spec.js b/back/methods/starred-module/specs/toggleStarredModule.spec.js
new file mode 100644
index 000000000..a765a29a0
--- /dev/null
+++ b/back/methods/starred-module/specs/toggleStarredModule.spec.js
@@ -0,0 +1,36 @@
+const app = require('vn-loopback/server/server');
+const LoopBackContext = require('loopback-context');
+
+describe('toggleStarredModule()', () => {
+ const activeCtx = {
+ accessToken: {userId: 9},
+ http: {
+ req: {
+ headers: {origin: 'http://localhost'}
+ }
+ }
+ };
+ const ctx = {
+ req: activeCtx
+ };
+
+ beforeEach(() => {
+ spyOn(LoopBackContext, 'getCurrentContext').and.returnValue({
+ active: activeCtx
+ });
+ });
+
+ it('should create a new starred module and then remove it by calling the method again with same args', async() => {
+ const starredModule = await app.models.StarredModule.toggleStarredModule(ctx, 'Orders');
+ let starredModules = await app.models.StarredModule.getStarredModules(ctx);
+
+ expect(starredModules.length).toEqual(1);
+ expect(starredModule.moduleFk).toEqual('Orders');
+ expect(starredModule.workerFk).toEqual(activeCtx.accessToken.userId);
+
+ await app.models.StarredModule.toggleStarredModule(ctx, 'Orders');
+ starredModules = await app.models.StarredModule.getStarredModules(ctx);
+
+ expect(starredModules.length).toEqual(0);
+ });
+});
diff --git a/back/methods/starred-module/toggleStarredModule.js b/back/methods/starred-module/toggleStarredModule.js
new file mode 100644
index 000000000..38d82eba4
--- /dev/null
+++ b/back/methods/starred-module/toggleStarredModule.js
@@ -0,0 +1,41 @@
+module.exports = function(Self) {
+ Self.remoteMethodCtx('toggleStarredModule', {
+ description: 'creates or deletes a starred module for the current user',
+ accessType: 'WRITE',
+ returns: {
+ type: 'object',
+ root: true
+ },
+ accepts: {
+ arg: 'moduleName',
+ type: 'string',
+ required: true,
+ description: 'The module name'
+ },
+ http: {
+ path: `/toggleStarredModule`,
+ verb: 'post'
+ }
+ });
+
+ Self.toggleStarredModule = async(ctx, moduleName) => {
+ const userId = ctx.req.accessToken.userId;
+ const filter = {
+ where: {
+ workerFk: userId,
+ moduleFk: moduleName
+ }
+ };
+
+ const [starredModule] = await Self.app.models.StarredModule.find(filter);
+
+ if (starredModule)
+ await starredModule.destroy();
+ else {
+ return Self.app.models.StarredModule.create({
+ workerFk: userId,
+ moduleFk: moduleName
+ });
+ }
+ };
+};
diff --git a/back/model-config.json b/back/model-config.json
index 7759c32fa..418cd4d1f 100644
--- a/back/model-config.json
+++ b/back/model-config.json
@@ -59,6 +59,9 @@
"Language": {
"dataSource": "vn"
},
+ "Module": {
+ "dataSource": "vn"
+ },
"Province": {
"dataSource": "vn"
},
@@ -71,6 +74,9 @@
"SageWithholding": {
"dataSource": "vn"
},
+ "StarredModule": {
+ "dataSource": "vn"
+ },
"TempContainer": {
"dataSource": "tempStorage"
},
diff --git a/back/models/module.json b/back/models/module.json
new file mode 100644
index 000000000..c66649b2e
--- /dev/null
+++ b/back/models/module.json
@@ -0,0 +1,23 @@
+{
+ "name": "Module",
+ "base": "VnModel",
+ "options": {
+ "mysql": {
+ "table": "salix.module"
+ }
+ },
+ "properties": {
+ "code": {
+ "type": "string",
+ "id": true
+ }
+ },
+ "acls": [
+ {
+ "accessType": "READ",
+ "principalType": "ROLE",
+ "principalId": "$everyone",
+ "permission": "ALLOW"
+ }
+ ]
+}
diff --git a/back/models/starred-module.js b/back/models/starred-module.js
new file mode 100644
index 000000000..f153003ca
--- /dev/null
+++ b/back/models/starred-module.js
@@ -0,0 +1,4 @@
+module.exports = Self => {
+ require('../methods/starred-module/getStarredModules')(Self);
+ require('../methods/starred-module/toggleStarredModule')(Self);
+};
diff --git a/back/models/starred-module.json b/back/models/starred-module.json
new file mode 100644
index 000000000..e383fa17a
--- /dev/null
+++ b/back/models/starred-module.json
@@ -0,0 +1,35 @@
+{
+ "name": "StarredModule",
+ "base": "VnModel",
+ "options": {
+ "mysql": {
+ "table": "vn.starredModule"
+ }
+ },
+ "properties": {
+ "id": {
+ "type": "number",
+ "id": true
+ },
+ "workerFk": {
+ "type": "number",
+ "required": true
+ },
+ "moduleFk": {
+ "type": "string",
+ "required": true
+ }
+ },
+ "relations": {
+ "worker": {
+ "type": "belongsTo",
+ "model": "Worker",
+ "foreignKey": "workerFk"
+ },
+ "module": {
+ "type": "belongsTo",
+ "model": "Module",
+ "foreignKey": "moduleFk"
+ }
+ }
+}
\ No newline at end of file
diff --git a/db/changes/10290-invoiceIn/00-ACL.sql b/db/changes/10290-invoiceIn/00-ACL.sql
new file mode 100644
index 000000000..661eb0d48
--- /dev/null
+++ b/db/changes/10290-invoiceIn/00-ACL.sql
@@ -0,0 +1,3 @@
+INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`)
+ VALUES
+ ('StarredModule', '*', '*', 'ALLOW', 'ROLE', 'employee');
diff --git a/db/changes/10290-invoiceIn/00-module.sql b/db/changes/10290-invoiceIn/00-module.sql
new file mode 100644
index 000000000..780a0e7fe
--- /dev/null
+++ b/db/changes/10290-invoiceIn/00-module.sql
@@ -0,0 +1,20 @@
+CREATE TABLE `salix`.`module` (
+ `code` VARCHAR(45) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`code`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+
+INSERT INTO `salix`.`module`(`code`)
+ VALUES
+ ('Items'),
+ ('Orders'),
+ ('Clients'),
+ ('Entries'),
+ ('Travels'),
+ ('Invoices out'),
+ ('Suppliers'),
+ ('Claims'),
+ ('Routes'),
+ ('Tickets'),
+ ('Workers'),
+ ('Users'),
+ ('Zones');
\ No newline at end of file
diff --git a/db/changes/10290-invoiceIn/01-starredModule.sql b/db/changes/10290-invoiceIn/01-starredModule.sql
new file mode 100644
index 000000000..e36777030
--- /dev/null
+++ b/db/changes/10290-invoiceIn/01-starredModule.sql
@@ -0,0 +1,10 @@
+CREATE TABLE `vn`.`starredModule` (
+ `id` INT(11) unsigned NOT NULL AUTO_INCREMENT,
+ `workerFk` INT(10) NOT NULL,
+ `moduleFk` VARCHAR(45) COLLATE utf8_unicode_ci NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `starred_workerFk` (`workerFk`),
+ KEY `starred_moduleFk` (`moduleFk`),
+ CONSTRAINT `starred_workerFk` FOREIGN KEY (`workerFk`) REFERENCES `vn`.`worker` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `starred_moduleFk` FOREIGN KEY (`moduleFk`) REFERENCES `salix`.`module` (`code`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
\ No newline at end of file
diff --git a/e2e/helpers/selectors.js b/e2e/helpers/selectors.js
index ca521f445..4e512ee56 100644
--- a/e2e/helpers/selectors.js
+++ b/e2e/helpers/selectors.js
@@ -23,6 +23,11 @@ export default {
acceptButton: '.vn-confirm.shown button[response=accept]',
searchButton: 'vn-searchbar vn-icon[icon="search"]'
},
+ moduleIndex: {
+ anyStarredModule: 'vn-home > div:nth-child(1) > div.modules > a',
+ firstModulePinIcon: 'vn-home a:nth-child(1) vn-icon[icon="push_pin"]',
+ firstModuleRemovePinIcon: 'vn-home a:nth-child(1) vn-icon[icon="remove_circle"]'
+ },
clientsIndex: {
createClientButton: `vn-float-button`
},
diff --git a/e2e/paths/01-login/01_login.spec.js b/e2e/paths/01-salix/01_login.spec.js
similarity index 100%
rename from e2e/paths/01-login/01_login.spec.js
rename to e2e/paths/01-salix/01_login.spec.js
diff --git a/e2e/paths/01-salix/02_starred-modules.spec.js b/e2e/paths/01-salix/02_starred-modules.spec.js
new file mode 100644
index 000000000..a64b68582
--- /dev/null
+++ b/e2e/paths/01-salix/02_starred-modules.spec.js
@@ -0,0 +1,43 @@
+import selectors from '../../helpers/selectors';
+import getBrowser from '../../helpers/puppeteer';
+
+describe('Starred modules path', async() => {
+ let browser;
+ let page;
+
+ beforeAll(async() => {
+ browser = await getBrowser();
+ page = browser.page;
+ await page.login('employee');
+ });
+
+ afterAll(async() => {
+ await browser.close();
+ });
+
+ it('should make sure there are no modules pinned yet', async() => {
+ const count = await page.countElement(selectors.moduleIndex.anyStarredModule);
+
+ expect(count).toEqual(0);
+ });
+
+ it('should set a module as favore', async() => {
+ await page.waitToClick(selectors.moduleIndex.firstModulePinIcon);
+ const message = await page.waitForSnackbar();
+ const count = await page.countElement(selectors.moduleIndex.anyStarredModule);
+
+ expect(message.text).toContain('Data saved!');
+
+ expect(count).toEqual(1);
+ });
+
+ it('should remove the module from favores', async() => {
+ await page.waitToClick(selectors.moduleIndex.firstModuleRemovePinIcon);
+ const message = await page.waitForSnackbar();
+ const count = await page.countElement(selectors.moduleIndex.anyStarredModule);
+
+ expect(message.text).toContain('Data saved!');
+
+ expect(count).toEqual(0);
+ });
+});
diff --git a/front/salix/components/home/home.html b/front/salix/components/home/home.html
index ada51d76f..2904d7d70 100644
--- a/front/salix/components/home/home.html
+++ b/front/salix/components/home/home.html
@@ -1,20 +1,67 @@
+
+ Favorites
+
+
+ You can set modules as favorites by clicking their icon
+
+
+
+
diff --git a/front/salix/components/home/home.js b/front/salix/components/home/home.js
index 3da49a265..90eed2b30 100644
--- a/front/salix/components/home/home.js
+++ b/front/salix/components/home/home.js
@@ -9,6 +9,55 @@ export default class Controller extends Component {
this.$sce = $sce;
}
+ get modules() {
+ return this._modules;
+ }
+
+ set modules(value) {
+ this._modules = value;
+ this.getStarredModules();
+ }
+
+ countModules() {
+ this.starredCount = 0;
+ this.regularCount = 0;
+ this.modules.forEach(module => {
+ if (module.starred) this.starredCount ++;
+ else this.regularCount ++;
+ });
+ }
+
+ getStarredModules() {
+ this.$http.get('starredModules/getStarredModules')
+ .then(res => {
+ if (!res.data.length) return;
+
+ for (let starredModule of res.data) {
+ const module = this.modules.find(mod => mod.name === starredModule.moduleFk);
+ module.starred = true;
+ }
+ this.countModules();
+ });
+ }
+
+ toggleStarredModule(module, event) {
+ if (event.defaultPrevented) return;
+ event.preventDefault();
+ event.stopPropagation();
+
+ const params = {moduleName: module.name};
+ const query = `starredModules/toggleStarredModule`;
+ this.$http.post(query, params).then(res => {
+ if (res.data)
+ module.starred = true;
+ else
+ module.starred = false;
+
+ this.vnApp.showSuccess(this.$t('Data saved!'));
+ this.countModules();
+ });
+ }
+
getModuleName(mod) {
let getName = mod => {
let name = this.$t(mod.name);
diff --git a/front/salix/components/home/home.spec.js b/front/salix/components/home/home.spec.js
new file mode 100644
index 000000000..09cb7e39b
--- /dev/null
+++ b/front/salix/components/home/home.spec.js
@@ -0,0 +1,75 @@
+import './home';
+
+describe('Salix Component vnHome', () => {
+ let controller;
+ let $httpBackend;
+ let $scope;
+ let $element;
+
+ beforeEach(ngModule('salix'));
+
+ beforeEach(inject(($componentController, $rootScope, _$httpBackend_, _vnApp_, $window) => {
+ $httpBackend = _$httpBackend_;
+ $scope = $rootScope.$new();
+ $element = angular.element('');
+ $window.routes = [{module: 'client', name: 'Clients'}];
+ controller = $componentController('vnHome', {$element, $scope, $window});
+ }));
+
+ describe('getStarredModules()', () => {
+ it('should not set any of the modules as starred if there are no starred modules for the user', () => {
+ const expectedResponse = [];
+ controller._modules = [{module: 'client', name: 'Clients'}];
+
+ $httpBackend.whenRoute('GET', 'starredModules/getStarredModules').respond(expectedResponse);
+ $httpBackend.expectGET('starredModules/getStarredModules').respond(expectedResponse);
+ controller.getStarredModules();
+ $httpBackend.flush();
+
+ expect(controller._modules.length).toEqual(1);
+ expect(controller._modules[0].starred).toBeUndefined();
+ });
+
+ it('should set the example module as starred since its the starred module for the user', () => {
+ const expectedResponse = [{id: 1, moduleFk: 'Clients', workerFk: 9}];
+ controller._modules = [{module: 'client', name: 'Clients'}];
+
+ $httpBackend.whenRoute('GET', 'starredModules/getStarredModules').respond(expectedResponse);
+ $httpBackend.expectGET('starredModules/getStarredModules').respond(expectedResponse);
+ controller.getStarredModules();
+ $httpBackend.flush();
+
+ expect(controller._modules.length).toEqual(1);
+ expect(controller._modules[0].starred).toBe(true);
+ });
+ });
+
+ describe('toggleStarredModule()', () => {
+ it(`should set the received module as starred if it wasn't starred`, () => {
+ const expectedResponse = [{id: 1, moduleFk: 'Clients', workerFk: 9}];
+ const event = new Event('target');
+ controller._modules = [{module: 'client', name: 'Clients'}];
+
+ $httpBackend.whenRoute('GET', 'starredModules/getStarredModules').respond(expectedResponse);
+ $httpBackend.expectPOST('starredModules/toggleStarredModule').respond(expectedResponse);
+ controller.toggleStarredModule(controller._modules[0], event);
+ $httpBackend.flush();
+
+ expect(controller._modules.length).toEqual(1);
+ expect(controller._modules[0].starred).toBe(true);
+ });
+
+ it(`should set the received module as regular if it was starred`, () => {
+ const event = new Event('target');
+ controller._modules = [{module: 'client', name: 'Clients', starred: true}];
+
+ $httpBackend.whenRoute('GET', 'starredModules/getStarredModules').respond([]);
+ $httpBackend.expectPOST('starredModules/toggleStarredModule').respond(undefined);
+ controller.toggleStarredModule(controller._modules[0], event);
+ $httpBackend.flush();
+
+ expect(controller._modules.length).toEqual(1);
+ expect(controller._modules[0].starred).toBe(false);
+ });
+ });
+});
diff --git a/front/salix/components/home/locale/es.yml b/front/salix/components/home/locale/es.yml
new file mode 100644
index 000000000..aab63f17e
--- /dev/null
+++ b/front/salix/components/home/locale/es.yml
@@ -0,0 +1,4 @@
+Favorites: Favoritos
+You can set modules as favorites by clicking their icon: Puedes establecer módulos como favoritos haciendo clic en el icono
+Add to favorites: Añadir a favoritos.
+Remove from favorites: Quitar de favoritos.
\ No newline at end of file
diff --git a/front/salix/components/home/style.scss b/front/salix/components/home/style.scss
index 7524d2be3..c8ef6457f 100644
--- a/front/salix/components/home/style.scss
+++ b/front/salix/components/home/style.scss
@@ -10,28 +10,76 @@ vn-home {
text-align: center;
margin-bottom: 15px;
}
+
+ & .starred-info{
+ display: block;
+ text-align: center;
+ box-sizing: border-box;
+ color: $color-font-secondary;
+ font-size: 1.375rem;
+ & > .empty {
+ text-align: center;
+ box-sizing: border-box;
+ color: $color-font-secondary;
+ font-size: 1em;
+ }
+ & > vn-icon {
+ font-size: 1.2rem;
+ }
+ }
+
+ & > .top-border {
+ margin: 0 auto;
+ flex-direction: row;
+ float: center;
+ max-width: 690px;
+ border-bottom: 2px solid $color-font-secondary;
+ line-height: 2px;
+
+ > span {
+ height: 10px;
+ margin-left: 30px;
+ background-color: $color-bg;
+ padding:0 11px;
+ }
+ }
+
& > .modules {
+ padding: 10px 0 10px 0;
display: flex;
- flex: 1;
- flex-direction: row;
- justify-content: center;
flex-wrap: wrap;
+ flex: 1;
max-width: 704px;
margin: 0 auto;
& > a {
@extend %clickable-light;
- overflow:hidden;
- border-radius: 6px;
- background-color: $color-button;
- color: $color-font-dark;
display: flex;
flex-direction: column;
+ overflow:hidden;
+ justify-content: center;
+ border-radius: 6px;
height: 128px;
width: 128px;
margin: 8px;
padding: 16px;
- justify-content: center;
+ background-color: $color-button;
+ color: $color-font-dark;
+
+ & .pin {
+ opacity: 0;
+ flex-direction: row;
+ justify-content: left;
+ height: 20px;
+ width: 20px;
+ vn-icon {
+ margin: auto;
+ font-size: 1.5rem;
+ }
+ }
+ &:hover .pin {
+ opacity: 1;
+ }
& > div {
height: 70px;
@@ -56,10 +104,6 @@ vn-home {
color: inherit;
margin: 0;
line-height: 24px;
-
- /* & > .bind-letter {
- color: #FD0;
- } */
}
}
}
diff --git a/package-lock.json b/package-lock.json
index 40780aaf6..926d0be5f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -3482,13 +3482,6 @@
"to-regex-range": "^5.0.1"
}
},
- "fsevents": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
- "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
- "dev": true,
- "optional": true
- },
"graceful-fs": {
"version": "4.2.4",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
@@ -4284,13 +4277,6 @@
"to-regex-range": "^5.0.1"
}
},
- "fsevents": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
- "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
- "dev": true,
- "optional": true
- },
"graceful-fs": {
"version": "4.2.4",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
@@ -4649,13 +4635,6 @@
"to-regex-range": "^5.0.1"
}
},
- "fsevents": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
- "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
- "dev": true,
- "optional": true
- },
"graceful-fs": {
"version": "4.2.4",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
@@ -5268,7 +5247,6 @@
"version": "2.9.1",
"resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz",
"integrity": "sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==",
- "dev": true,
"optional": true,
"requires": {
"@types/node": "*"
@@ -7261,8 +7239,7 @@
"buffer-crc32": {
"version": "0.2.13",
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
- "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
- "dev": true
+ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI="
},
"buffer-equal": {
"version": "1.0.0",
@@ -7554,6 +7531,18 @@
"path-is-absolute": "^1.0.0",
"readdirp": "^2.2.1",
"upath": "^1.1.1"
+ },
+ "dependencies": {
+ "fsevents": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
+ "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "nan": "^2.12.1"
+ }
+ }
}
},
"chownr": {
@@ -8562,10 +8551,9 @@
"dev": true
},
"devtools-protocol": {
- "version": "0.0.818844",
- "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.818844.tgz",
- "integrity": "sha512-AD1hi7iVJ8OD0aMLQU5VK0XH9LDlA1+BcPIgrAxPfaibx2DbWucuyOhc4oyQCbnvDDO68nN6/LcKfqTP343Jjg==",
- "dev": true
+ "version": "0.0.847576",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.847576.tgz",
+ "integrity": "sha512-0M8kobnSQE0Jmly7Mhbeq0W/PpZfnuK+WjN2ZRVPbGqYwCHCioAVp84H0TcLimgECcN5H976y5QiXMGBC9JKmg=="
},
"diff": {
"version": "1.4.0",
@@ -9881,7 +9869,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
"integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
- "dev": true,
"requires": {
"@types/yauzl": "^2.9.1",
"debug": "^4.1.1",
@@ -9893,7 +9880,6 @@
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
- "dev": true,
"requires": {
"ms": "2.1.2"
}
@@ -9902,7 +9888,6 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
"integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
- "dev": true,
"requires": {
"pump": "^3.0.0"
}
@@ -9910,8 +9895,7 @@
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
}
},
@@ -9999,7 +9983,6 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
"integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
- "dev": true,
"requires": {
"pend": "~1.2.0"
}
@@ -10376,552 +10359,11 @@
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
"fsevents": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz",
- "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
- "optional": true,
- "requires": {
- "nan": "^2.12.1",
- "node-pre-gyp": "^0.12.0"
- },
- "dependencies": {
- "abbrev": {
- "version": "1.1.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "ansi-regex": {
- "version": "2.1.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "aproba": {
- "version": "1.2.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "are-we-there-yet": {
- "version": "1.1.5",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "delegates": "^1.0.0",
- "readable-stream": "^2.0.6"
- }
- },
- "balanced-match": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "brace-expansion": {
- "version": "1.1.11",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "chownr": {
- "version": "1.1.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "code-point-at": {
- "version": "1.1.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "concat-map": {
- "version": "0.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "console-control-strings": {
- "version": "1.1.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "core-util-is": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "debug": {
- "version": "4.1.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "deep-extend": {
- "version": "0.6.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "delegates": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "detect-libc": {
- "version": "1.0.3",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "fs-minipass": {
- "version": "1.2.5",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "minipass": "^2.2.1"
- }
- },
- "fs.realpath": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "gauge": {
- "version": "2.7.4",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "aproba": "^1.0.3",
- "console-control-strings": "^1.0.0",
- "has-unicode": "^2.0.0",
- "object-assign": "^4.1.0",
- "signal-exit": "^3.0.0",
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wide-align": "^1.1.0"
- }
- },
- "glob": {
- "version": "7.1.3",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "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"
- }
- },
- "has-unicode": {
- "version": "2.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "iconv-lite": {
- "version": "0.4.24",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- },
- "ignore-walk": {
- "version": "3.0.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "minimatch": "^3.0.4"
- }
- },
- "inflight": {
- "version": "1.0.6",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "inherits": {
- "version": "2.0.3",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "ini": {
- "version": "1.3.5",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "number-is-nan": "^1.0.0"
- }
- },
- "isarray": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "minimatch": {
- "version": "3.0.4",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "minimist": {
- "version": "0.0.8",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "minipass": {
- "version": "2.3.5",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "safe-buffer": "^5.1.2",
- "yallist": "^3.0.0"
- }
- },
- "minizlib": {
- "version": "1.2.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "minipass": "^2.2.1"
- }
- },
- "mkdirp": {
- "version": "0.5.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "minimist": "0.0.8"
- }
- },
- "ms": {
- "version": "2.1.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "needle": {
- "version": "2.3.0",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "debug": "^4.1.0",
- "iconv-lite": "^0.4.4",
- "sax": "^1.2.4"
- }
- },
- "node-pre-gyp": {
- "version": "0.12.0",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "detect-libc": "^1.0.2",
- "mkdirp": "^0.5.1",
- "needle": "^2.2.1",
- "nopt": "^4.0.1",
- "npm-packlist": "^1.1.6",
- "npmlog": "^4.0.2",
- "rc": "^1.2.7",
- "rimraf": "^2.6.1",
- "semver": "^5.3.0",
- "tar": "^4"
- }
- },
- "nopt": {
- "version": "4.0.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "abbrev": "1",
- "osenv": "^0.1.4"
- }
- },
- "npm-bundled": {
- "version": "1.0.6",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "npm-packlist": {
- "version": "1.4.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "ignore-walk": "^3.0.1",
- "npm-bundled": "^1.0.1"
- }
- },
- "npmlog": {
- "version": "4.1.2",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "are-we-there-yet": "~1.1.2",
- "console-control-strings": "~1.1.0",
- "gauge": "~2.7.3",
- "set-blocking": "~2.0.0"
- }
- },
- "number-is-nan": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "object-assign": {
- "version": "4.1.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "once": {
- "version": "1.4.0",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "wrappy": "1"
- }
- },
- "os-homedir": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "os-tmpdir": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "osenv": {
- "version": "0.1.5",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "os-homedir": "^1.0.0",
- "os-tmpdir": "^1.0.0"
- }
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "process-nextick-args": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "rc": {
- "version": "1.2.8",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "deep-extend": "^0.6.0",
- "ini": "~1.3.0",
- "minimist": "^1.2.0",
- "strip-json-comments": "~2.0.1"
- },
- "dependencies": {
- "minimist": {
- "version": "1.2.0",
- "bundled": true,
- "dev": true,
- "optional": true
- }
- }
- },
- "readable-stream": {
- "version": "2.3.6",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "rimraf": {
- "version": "2.6.3",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "glob": "^7.1.3"
- }
- },
- "safe-buffer": {
- "version": "5.1.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "safer-buffer": {
- "version": "2.1.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "sax": {
- "version": "1.2.4",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "semver": {
- "version": "5.7.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "set-blocking": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "signal-exit": {
- "version": "3.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "string-width": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- }
- },
- "string_decoder": {
- "version": "1.1.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- },
- "strip-ansi": {
- "version": "3.0.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "ansi-regex": "^2.0.0"
- }
- },
- "strip-json-comments": {
- "version": "2.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "tar": {
- "version": "4.4.8",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "chownr": "^1.1.1",
- "fs-minipass": "^1.2.5",
- "minipass": "^2.3.4",
- "minizlib": "^1.1.1",
- "mkdirp": "^0.5.0",
- "safe-buffer": "^5.1.2",
- "yallist": "^3.0.2"
- }
- },
- "util-deprecate": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "wide-align": {
- "version": "1.1.3",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "string-width": "^1.0.2 || 2"
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "yallist": {
- "version": "3.0.3",
- "bundled": true,
- "dev": true,
- "optional": true
- }
- }
+ "optional": true
},
"fstream": {
"version": "1.0.12",
@@ -11113,7 +10555,6 @@
"version": "7.1.6",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
- "dev": true,
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -14635,13 +14076,6 @@
"to-regex-range": "^5.0.1"
}
},
- "fsevents": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
- "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
- "dev": true,
- "optional": true
- },
"graceful-fs": {
"version": "4.2.4",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
@@ -15754,13 +15188,6 @@
"to-regex-range": "^5.0.1"
}
},
- "fsevents": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
- "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
- "dev": true,
- "optional": true
- },
"graceful-fs": {
"version": "4.2.4",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
@@ -16831,13 +16258,6 @@
"to-regex-range": "^5.0.1"
}
},
- "fsevents": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
- "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
- "dev": true,
- "optional": true
- },
"graceful-fs": {
"version": "4.2.4",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
@@ -17263,13 +16683,6 @@
"path-exists": "^4.0.0"
}
},
- "fsevents": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
- "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
- "dev": true,
- "optional": true
- },
"get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
@@ -18367,6 +17780,7 @@
"version": "3.13.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
"integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
+ "dev": true,
"requires": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
@@ -20773,6 +20187,16 @@
"ms": "^2.1.1"
}
},
+ "fsevents": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
+ "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "nan": "^2.12.1"
+ }
+ },
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -21160,7 +20584,6 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
"integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
- "dev": true,
"requires": {
"p-try": "^2.0.0"
}
@@ -21447,8 +20870,7 @@
"pend": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
- "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
- "dev": true
+ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
},
"performance-now": {
"version": "2.1.0",
@@ -21791,8 +21213,7 @@
"progress": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
- "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
- "dev": true
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
},
"promise-inflight": {
"version": "1.0.1",
@@ -21822,8 +21243,7 @@
"proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
- "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
- "dev": true
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
},
"prr": {
"version": "1.0.1",
@@ -21906,19 +21326,18 @@
}
},
"puppeteer": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-5.5.0.tgz",
- "integrity": "sha512-OM8ZvTXAhfgFA7wBIIGlPQzvyEETzDjeRa4mZRCRHxYL+GNH5WAuYUQdja3rpWZvkX/JKqmuVgbsxDNsDFjMEg==",
- "dev": true,
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-7.1.0.tgz",
+ "integrity": "sha512-lqOLzqCKdh7yUAHvK6LxgOpQrL8Bv1/jvS8MLDXxcNms2rlM3E8p/Wlwc7efbRZ0twxTzUeqjN5EqrTwxOwc9g==",
"requires": {
"debug": "^4.1.0",
- "devtools-protocol": "0.0.818844",
+ "devtools-protocol": "0.0.847576",
"extract-zip": "^2.0.0",
- "https-proxy-agent": "^4.0.0",
+ "https-proxy-agent": "^5.0.0",
"node-fetch": "^2.6.1",
"pkg-dir": "^4.2.0",
"progress": "^2.0.1",
- "proxy-from-env": "^1.0.0",
+ "proxy-from-env": "^1.1.0",
"rimraf": "^3.0.2",
"tar-fs": "^2.0.0",
"unbzip2-stream": "^1.3.3",
@@ -21926,16 +21345,17 @@
},
"dependencies": {
"agent-base": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz",
- "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==",
- "dev": true
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+ "requires": {
+ "debug": "4"
+ }
},
"debug": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
- "dev": true,
"requires": {
"ms": "2.1.2"
}
@@ -21944,19 +21364,17 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
"integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
"requires": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
}
},
"https-proxy-agent": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz",
- "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==",
- "dev": true,
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
+ "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
"requires": {
- "agent-base": "5",
+ "agent-base": "6",
"debug": "4"
}
},
@@ -21964,7 +21382,6 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
"integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
"requires": {
"p-locate": "^4.1.0"
}
@@ -21972,14 +21389,12 @@
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"p-locate": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
"integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
"requires": {
"p-limit": "^2.2.0"
}
@@ -21987,14 +21402,12 @@
"path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
},
"pkg-dir": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
"integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
- "dev": true,
"requires": {
"find-up": "^4.0.0"
}
@@ -22003,16 +21416,14 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
"requires": {
"glob": "^7.1.3"
}
},
"ws": {
- "version": "7.4.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz",
- "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==",
- "dev": true
+ "version": "7.4.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz",
+ "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA=="
}
}
},
@@ -22529,7 +21940,22 @@
"resolved": "https://registry.npmjs.org/require-yaml/-/require-yaml-0.0.1.tgz",
"integrity": "sha1-LhsY2RPDuqcqWk03O28Tjd0sMr0=",
"requires": {
- "js-yaml": "^3.13.1"
+ "js-yaml": "^4.0.0"
+ },
+ "dependencies": {
+ "argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ },
+ "js-yaml": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz",
+ "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==",
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ }
}
},
"requires-port": {
@@ -25174,7 +24600,6 @@
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
"integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
- "dev": true,
"requires": {
"buffer": "^5.2.1",
"through": "^2.3.8"
@@ -25183,14 +24608,12 @@
"base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "dev": true
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
},
"buffer": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "dev": true,
"requires": {
"base64-js": "^1.3.1",
"ieee754": "^1.1.13"
@@ -25926,6 +25349,16 @@
"readdirp": "^2.2.1",
"upath": "^1.1.1"
}
+ },
+ "fsevents": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
+ "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "nan": "^2.12.1"
+ }
}
}
},
@@ -26291,6 +25724,16 @@
"rimraf": "^2.6.3"
}
},
+ "fsevents": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
+ "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "nan": "^2.12.1"
+ }
+ },
"get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
@@ -26978,7 +26421,6 @@
"version": "2.10.0",
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
"integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
- "dev": true,
"requires": {
"buffer-crc32": "~0.2.3",
"fd-slicer": "~1.1.0"
diff --git a/package.json b/package.json
index 1fe209cf2..cf5f7ac01 100644
--- a/package.json
+++ b/package.json
@@ -32,6 +32,7 @@
"node-ssh": "^11.0.0",
"object-diff": "0.0.4",
"object.pick": "^1.3.0",
+ "puppeteer": "^7.1.0",
"read-chunk": "^3.2.0",
"request": "^2.88.0",
"request-promise-native": "^1.0.8",
@@ -88,7 +89,6 @@
"node-sass": "^4.14.1",
"nodemon": "^1.19.4",
"plugin-error": "^1.0.1",
- "puppeteer": "^5.5.0",
"raw-loader": "^1.0.0",
"sass-loader": "^7.3.1",
"style-loader": "^0.23.1",