Add solution toggling to frontend

This commit is contained in:
Ramon Wenger 2019-02-07 16:58:20 +01:00
parent f365225830
commit ea7a306522
15 changed files with 335 additions and 108 deletions

View File

@ -1,5 +1,5 @@
describe('The Room Page', () => { describe('The Room Page', () => {
it.only('displays new room entry with author name', () => { it('displays new room entry with author name', () => {
cy.viewport('macbook-15'); cy.viewport('macbook-15');
cy.login('rahel.cueni', 'test'); cy.login('rahel.cueni', 'test');

View File

@ -1,5 +1,5 @@
describe('Solutions', () => { describe('Solutions', () => {
it.only('does not display the solution at first, then displays them after clicking', () => { it('does not display the solution at first, then displays them after clicking', () => {
cy.viewport('macbook-15'); cy.viewport('macbook-15');
cy.login('nico.zickgraf', 'test'); cy.login('nico.zickgraf', 'test');
@ -8,12 +8,48 @@ describe('Solutions', () => {
.should('contain', 'anzeigen') .should('contain', 'anzeigen')
.should('not.contain', 'Lösungssatz') .should('not.contain', 'Lösungssatz')
.then($solution => { .then($solution => {
cy.wrap($solution).within(() => { cy.wrap($solution).within(() => {
cy.get('[data-cy=show-solution]').click(); cy.get('[data-cy=show-solution]').click();
});
cy.wrap($solution)
.should('contain', 'Lösungssatz')
.should('contain', 'ausblenden');
}); });
cy.wrap($solution) });
.should('contain', 'Lösungssatz')
.should('contain', 'ausblenden'); it.only('toggles the solution as teacher', () => {
// cy.server();
cy.login('nico.zickgraf', 'test');
cy.visit('/module/lohn-und-budget');
// cy.route('POST', '/api/graphql/').as('graphQL');
// does not work with cypress yet, because of the fetch api
// https://github.com/cypress-io/cypress/issues/95
cy.get('[data-cy=toggle-enable-solutions]').within(() => {
cy.get('input[type=checkbox]').uncheck({force: true});
cy.wait(2000);
}); });
cy.logout();
cy.login('rahel.cueni', 'test');
cy.visit('/module/lohn-und-budget');
cy.get('[data-cy=toggle-enable-solutions]')
.should('not.exist');
cy.get('[data-cy=solution]').should('not.exist');
cy.logout();
cy.login('nico.zickgraf', 'test');
cy.visit('/module/lohn-und-budget');
cy.get('[data-cy=toggle-enable-solutions]').within(() => {
cy.get('input[type=checkbox]').check({force: true});
cy.wait(2000);
// cy.wait('@graphQL');
});
cy.logout();
cy.login('rahel.cueni', 'test');
cy.visit('/module/lohn-und-budget');
cy.get('[data-cy=solution]').should('exist');
}); });
}); });

View File

@ -42,6 +42,10 @@ Cypress.Commands.add("login", (username, password) => {
}); });
Cypress.Commands.add("logout", () => {
cy.clearCookies();
});
Cypress.Commands.add('loginByCsrf', (username, password, csrftoken) => { Cypress.Commands.add('loginByCsrf', (username, password, csrftoken) => {
cy.request({ cy.request({
method: 'POST', method: 'POST',

267
client/package-lock.json generated
View File

@ -140,6 +140,7 @@
"version": "0.4.1", "version": "0.4.1",
"resolved": "https://registry.npmjs.org/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", "resolved": "https://registry.npmjs.org/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz",
"integrity": "sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo=", "integrity": "sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo=",
"dev": true,
"requires": { "requires": {
"chalk": "^1.1.3", "chalk": "^1.1.3",
"cli-cursor": "^1.0.2", "cli-cursor": "^1.0.2",
@ -150,12 +151,14 @@
"ansi-styles": { "ansi-styles": {
"version": "2.2.1", "version": "2.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
"dev": true
}, },
"chalk": { "chalk": {
"version": "1.1.3", "version": "1.1.3",
"resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"dev": true,
"requires": { "requires": {
"ansi-styles": "^2.2.1", "ansi-styles": "^2.2.1",
"escape-string-regexp": "^1.0.2", "escape-string-regexp": "^1.0.2",
@ -168,6 +171,7 @@
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
"integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
"dev": true,
"requires": { "requires": {
"restore-cursor": "^1.0.1" "restore-cursor": "^1.0.1"
} }
@ -176,6 +180,7 @@
"version": "1.7.0", "version": "1.7.0",
"resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
"integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
"dev": true,
"requires": { "requires": {
"escape-string-regexp": "^1.0.5", "escape-string-regexp": "^1.0.5",
"object-assign": "^4.1.0" "object-assign": "^4.1.0"
@ -183,13 +188,15 @@
}, },
"onetime": { "onetime": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
"integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=" "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
"dev": true
}, },
"restore-cursor": { "restore-cursor": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
"integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
"dev": true,
"requires": { "requires": {
"exit-hook": "^1.0.0", "exit-hook": "^1.0.0",
"onetime": "^1.0.0" "onetime": "^1.0.0"
@ -198,7 +205,8 @@
"supports-color": { "supports-color": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
"dev": true
} }
} }
}, },
@ -206,6 +214,7 @@
"version": "1.2.3", "version": "1.2.3",
"resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.3.tgz", "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.3.tgz",
"integrity": "sha512-yYrK+/bgL3hwoRHMZG4r5fyLniCy1pXex5fimtewAY6vE/jsVs8Q37UsEO03tFlcmiLnQ3rBNMaZBYTi/+C1cw==", "integrity": "sha512-yYrK+/bgL3hwoRHMZG4r5fyLniCy1pXex5fimtewAY6vE/jsVs8Q37UsEO03tFlcmiLnQ3rBNMaZBYTi/+C1cw==",
"dev": true,
"requires": { "requires": {
"debug": "^3.1.0", "debug": "^3.1.0",
"lodash.once": "^4.1.1" "lodash.once": "^4.1.1"
@ -220,22 +229,26 @@
"@types/blob-util": { "@types/blob-util": {
"version": "1.3.3", "version": "1.3.3",
"resolved": "https://registry.npmjs.org/@types/blob-util/-/blob-util-1.3.3.tgz", "resolved": "https://registry.npmjs.org/@types/blob-util/-/blob-util-1.3.3.tgz",
"integrity": "sha512-4ahcL/QDnpjWA2Qs16ZMQif7HjGP2cw3AGjHabybjw7Vm1EKu+cfQN1D78BaZbS1WJNa1opSMF5HNMztx7lR0w==" "integrity": "sha512-4ahcL/QDnpjWA2Qs16ZMQif7HjGP2cw3AGjHabybjw7Vm1EKu+cfQN1D78BaZbS1WJNa1opSMF5HNMztx7lR0w==",
"dev": true
}, },
"@types/bluebird": { "@types/bluebird": {
"version": "3.5.18", "version": "3.5.18",
"resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.18.tgz", "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.18.tgz",
"integrity": "sha512-OTPWHmsyW18BhrnG5x8F7PzeZ2nFxmHGb42bZn79P9hl+GI5cMzyPgQTwNjbem0lJhoru/8vtjAFCUOu3+gE2w==" "integrity": "sha512-OTPWHmsyW18BhrnG5x8F7PzeZ2nFxmHGb42bZn79P9hl+GI5cMzyPgQTwNjbem0lJhoru/8vtjAFCUOu3+gE2w==",
"dev": true
}, },
"@types/chai": { "@types/chai": {
"version": "4.0.8", "version": "4.0.8",
"resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.0.8.tgz", "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.0.8.tgz",
"integrity": "sha512-m812CONwdZn/dMzkIJEY0yAs4apyTkTORgfB2UsMOxgkUbC205AHnm4T8I0I5gPg9MHrFc1dJ35iS75c0CJkjg==" "integrity": "sha512-m812CONwdZn/dMzkIJEY0yAs4apyTkTORgfB2UsMOxgkUbC205AHnm4T8I0I5gPg9MHrFc1dJ35iS75c0CJkjg==",
"dev": true
}, },
"@types/chai-jquery": { "@types/chai-jquery": {
"version": "1.1.35", "version": "1.1.35",
"resolved": "https://registry.npmjs.org/@types/chai-jquery/-/chai-jquery-1.1.35.tgz", "resolved": "https://registry.npmjs.org/@types/chai-jquery/-/chai-jquery-1.1.35.tgz",
"integrity": "sha512-7aIt9QMRdxuagLLI48dPz96YJdhu64p6FCa6n4qkGN5DQLHnrIjZpD9bXCvV2G0NwgZ1FAmfP214dxc5zNCfgQ==", "integrity": "sha512-7aIt9QMRdxuagLLI48dPz96YJdhu64p6FCa6n4qkGN5DQLHnrIjZpD9bXCvV2G0NwgZ1FAmfP214dxc5zNCfgQ==",
"dev": true,
"requires": { "requires": {
"@types/chai": "*", "@types/chai": "*",
"@types/jquery": "*" "@types/jquery": "*"
@ -247,34 +260,40 @@
"integrity": "sha512-wXAVyLfkG1UMkKOdMijVWFky39+OD/41KftzqfX1Oejd0Gm6dOIKjCihSVECg6X7PHjftxXmfOKA/d1H79ZfvQ==" "integrity": "sha512-wXAVyLfkG1UMkKOdMijVWFky39+OD/41KftzqfX1Oejd0Gm6dOIKjCihSVECg6X7PHjftxXmfOKA/d1H79ZfvQ=="
}, },
"@types/jquery": { "@types/jquery": {
"version": "3.2.16", "version": "3.3.6",
"resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.2.16.tgz", "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.3.6.tgz",
"integrity": "sha512-q2WC02YxQoX2nY1HRKlYGHpGP1saPmD7GN0pwCDlTz35a4eOtJG+aHRlXyjCuXokUukSrR2aXyBhSW3j+jPc0A==" "integrity": "sha512-403D4wN95Mtzt2EoQHARf5oe/jEPhzBOBNrunk+ydQGW8WmkQ/E8rViRAEB1qEt/vssfGfNVD6ujP4FVeegrLg==",
"dev": true
}, },
"@types/lodash": { "@types/lodash": {
"version": "4.14.87", "version": "4.14.87",
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.87.tgz", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.87.tgz",
"integrity": "sha512-AqRC+aEF4N0LuNHtcjKtvF9OTfqZI0iaBoe3dA6m/W+/YZJBZjBmW/QIZ8fBeXC6cnytSY9tBoFBqZ9uSCeVsw==" "integrity": "sha512-AqRC+aEF4N0LuNHtcjKtvF9OTfqZI0iaBoe3dA6m/W+/YZJBZjBmW/QIZ8fBeXC6cnytSY9tBoFBqZ9uSCeVsw==",
"dev": true
}, },
"@types/minimatch": { "@types/minimatch": {
"version": "3.0.3", "version": "3.0.3",
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
"integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==",
"dev": true
}, },
"@types/mocha": { "@types/mocha": {
"version": "2.2.44", "version": "2.2.44",
"resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-2.2.44.tgz", "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-2.2.44.tgz",
"integrity": "sha512-k2tWTQU8G4+iSMvqKi0Q9IIsWAp/n8xzdZS4Q4YVIltApoMA00wFBFdlJnmoaK1/z7B0Cy0yPe6GgXteSmdUNw==" "integrity": "sha512-k2tWTQU8G4+iSMvqKi0Q9IIsWAp/n8xzdZS4Q4YVIltApoMA00wFBFdlJnmoaK1/z7B0Cy0yPe6GgXteSmdUNw==",
"dev": true
}, },
"@types/sinon": { "@types/sinon": {
"version": "4.0.0", "version": "7.0.0",
"resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-4.0.0.tgz", "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-7.0.0.tgz",
"integrity": "sha512-cuK4xM8Lg2wd8cxshcQa8RG4IK/xfyB6TNE6tNVvkrShR4xdrYgsV04q6Dp6v1Lp6biEFdzD8k8zg/ujQeiw+A==" "integrity": "sha512-kcYoPw0uKioFVC/oOqafk2yizSceIQXCYnkYts9vJIwQklFRsMubTObTDrjQamUyBRd47332s85074cd/hCwxg==",
"dev": true
}, },
"@types/sinon-chai": { "@types/sinon-chai": {
"version": "2.7.29", "version": "3.2.2",
"resolved": "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-2.7.29.tgz", "resolved": "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-3.2.2.tgz",
"integrity": "sha512-EkI/ZvJT4hglWo7Ipf9SX+J+R9htNOMjW8xiOhce7+0csqvgoF5IXqY5Ae1GqRgNtWCuaywR5HjVa1snkTqpOw==", "integrity": "sha512-5zSs2AslzyPZdOsbm2NRtuSNAI2aTWzNKOHa/GRecKo7a5efYD7qGcPxMZXQDayVXT2Vnd5waXxBvV31eCZqiA==",
"dev": true,
"requires": { "requires": {
"@types/chai": "*", "@types/chai": "*",
"@types/sinon": "*" "@types/sinon": "*"
@ -1882,7 +1901,8 @@
"buffer-crc32": { "buffer-crc32": {
"version": "0.2.13", "version": "0.2.13",
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
"integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
"dev": true
}, },
"buffer-from": { "buffer-from": {
"version": "1.1.1", "version": "1.1.1",
@ -1954,6 +1974,7 @@
"version": "1.3.0", "version": "1.3.0",
"resolved": "https://registry.npmjs.org/cachedir/-/cachedir-1.3.0.tgz", "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-1.3.0.tgz",
"integrity": "sha512-O1ji32oyON9laVPJL1IZ5bmwd2cB46VfpxkDequezH+15FDzzVddEyrGEeX4WusDSqKxdyFdDQDEG1yo1GoWkg==", "integrity": "sha512-O1ji32oyON9laVPJL1IZ5bmwd2cB46VfpxkDequezH+15FDzzVddEyrGEeX4WusDSqKxdyFdDQDEG1yo1GoWkg==",
"dev": true,
"requires": { "requires": {
"os-homedir": "^1.0.1" "os-homedir": "^1.0.1"
} }
@ -2058,7 +2079,8 @@
"check-more-types": { "check-more-types": {
"version": "2.24.0", "version": "2.24.0",
"resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz",
"integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=" "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=",
"dev": true
}, },
"check-types": { "check-types": {
"version": "7.4.0", "version": "7.4.0",
@ -2093,7 +2115,8 @@
"ci-info": { "ci-info": {
"version": "1.6.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz",
"integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==" "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==",
"dev": true
}, },
"cipher-base": { "cipher-base": {
"version": "1.0.4", "version": "1.0.4",
@ -2194,6 +2217,7 @@
"version": "0.2.1", "version": "0.2.1",
"resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz",
"integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=",
"dev": true,
"requires": { "requires": {
"slice-ansi": "0.0.4", "slice-ansi": "0.0.4",
"string-width": "^1.0.1" "string-width": "^1.0.1"
@ -2203,6 +2227,7 @@
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"dev": true,
"requires": { "requires": {
"number-is-nan": "^1.0.0" "number-is-nan": "^1.0.0"
} }
@ -2210,12 +2235,14 @@
"slice-ansi": { "slice-ansi": {
"version": "0.0.4", "version": "0.0.4",
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
"integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=" "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=",
"dev": true
}, },
"string-width": { "string-width": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
"dev": true,
"requires": { "requires": {
"code-point-at": "^1.0.0", "code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0", "is-fullwidth-code-point": "^1.0.0",
@ -2370,6 +2397,7 @@
"version": "1.4.0", "version": "1.4.0",
"resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.4.0.tgz", "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.4.0.tgz",
"integrity": "sha1-EYe+Tz1M8MBCfUP3Tu8fc1AWFMA=", "integrity": "sha1-EYe+Tz1M8MBCfUP3Tu8fc1AWFMA=",
"dev": true,
"requires": { "requires": {
"babel-runtime": "^6.18.0" "babel-runtime": "^6.18.0"
} }
@ -2909,9 +2937,10 @@
"integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA="
}, },
"cypress": { "cypress": {
"version": "3.1.0", "version": "3.1.5",
"resolved": "https://registry.npmjs.org/cypress/-/cypress-3.1.0.tgz", "resolved": "https://registry.npmjs.org/cypress/-/cypress-3.1.5.tgz",
"integrity": "sha512-UqLbXgHvM8Y6Y+roHrepZMWcyMN5u4KcjpTbJTZi0d5O2Prvtqmnpoky7a4C65q4oRQXeSc6cBZUhxJkhU4pbQ==", "integrity": "sha512-jzYGKJqU1CHoNocPndinf/vbG28SeU+hg+4qhousT/HDBMJxYgjecXOmSgBX/ga9/TakhqSrIrSP2r6gW/OLtg==",
"dev": true,
"requires": { "requires": {
"@cypress/listr-verbose-renderer": "0.4.1", "@cypress/listr-verbose-renderer": "0.4.1",
"@cypress/xvfb": "1.2.3", "@cypress/xvfb": "1.2.3",
@ -2919,12 +2948,12 @@
"@types/bluebird": "3.5.18", "@types/bluebird": "3.5.18",
"@types/chai": "4.0.8", "@types/chai": "4.0.8",
"@types/chai-jquery": "1.1.35", "@types/chai-jquery": "1.1.35",
"@types/jquery": "3.2.16", "@types/jquery": "3.3.6",
"@types/lodash": "4.14.87", "@types/lodash": "4.14.87",
"@types/minimatch": "3.0.3", "@types/minimatch": "3.0.3",
"@types/mocha": "2.2.44", "@types/mocha": "2.2.44",
"@types/sinon": "4.0.0", "@types/sinon": "7.0.0",
"@types/sinon-chai": "2.7.29", "@types/sinon-chai": "3.2.2",
"bluebird": "3.5.0", "bluebird": "3.5.0",
"cachedir": "1.3.0", "cachedir": "1.3.0",
"chalk": "2.4.1", "chalk": "2.4.1",
@ -2942,10 +2971,10 @@
"is-installed-globally": "0.1.0", "is-installed-globally": "0.1.0",
"lazy-ass": "1.6.0", "lazy-ass": "1.6.0",
"listr": "0.12.0", "listr": "0.12.0",
"lodash": "4.17.10", "lodash": "4.17.11",
"log-symbols": "2.2.0", "log-symbols": "2.2.0",
"minimist": "1.2.0", "minimist": "1.2.0",
"progress": "1.1.8", "moment": "2.22.2",
"ramda": "0.24.1", "ramda": "0.24.1",
"request": "2.87.0", "request": "2.87.0",
"request-progress": "0.3.1", "request-progress": "0.3.1",
@ -2958,17 +2987,20 @@
"bluebird": { "bluebird": {
"version": "3.5.0", "version": "3.5.0",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz",
"integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=" "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=",
"dev": true
}, },
"commander": { "commander": {
"version": "2.11.0", "version": "2.11.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
"integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==" "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
"dev": true
}, },
"cross-spawn": { "cross-spawn": {
"version": "6.0.5", "version": "6.0.5",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
"integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
"dev": true,
"requires": { "requires": {
"nice-try": "^1.0.4", "nice-try": "^1.0.4",
"path-key": "^2.0.1", "path-key": "^2.0.1",
@ -2981,6 +3013,7 @@
"version": "0.10.0", "version": "0.10.0",
"resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
"integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==",
"dev": true,
"requires": { "requires": {
"cross-spawn": "^6.0.0", "cross-spawn": "^6.0.0",
"get-stream": "^3.0.0", "get-stream": "^3.0.0",
@ -2994,22 +3027,26 @@
"has-flag": { "has-flag": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
"integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
"dev": true
},
"lodash": {
"version": "4.17.11",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
"integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
"dev": true
}, },
"minimist": { "minimist": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
}, "dev": true
"progress": {
"version": "1.1.8",
"resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
"integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74="
}, },
"supports-color": { "supports-color": {
"version": "5.1.0", "version": "5.1.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz",
"integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==",
"dev": true,
"requires": { "requires": {
"has-flag": "^2.0.0" "has-flag": "^2.0.0"
} }
@ -3018,6 +3055,7 @@
"version": "0.0.31", "version": "0.0.31",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz",
"integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=", "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=",
"dev": true,
"requires": { "requires": {
"os-tmpdir": "~1.0.1" "os-tmpdir": "~1.0.1"
} }
@ -3041,9 +3079,10 @@
} }
}, },
"date-fns": { "date-fns": {
"version": "1.29.0", "version": "1.30.1",
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.29.0.tgz", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz",
"integrity": "sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw==" "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==",
"dev": true
}, },
"date-now": { "date-now": {
"version": "0.1.4", "version": "0.1.4",
@ -3366,7 +3405,8 @@
"elegant-spinner": { "elegant-spinner": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz",
"integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=" "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=",
"dev": true
}, },
"elliptic": { "elliptic": {
"version": "6.4.1", "version": "6.4.1",
@ -3938,6 +3978,7 @@
"version": "4.1.1", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz",
"integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==",
"dev": true,
"requires": { "requires": {
"pify": "^2.2.0" "pify": "^2.2.0"
}, },
@ -3945,14 +3986,16 @@
"pify": { "pify": {
"version": "2.3.0", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
"integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
"dev": true
} }
} }
}, },
"exit-hook": { "exit-hook": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
"integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=" "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=",
"dev": true
}, },
"expand-brackets": { "expand-brackets": {
"version": "2.1.4", "version": "2.1.4",
@ -4210,6 +4253,7 @@
"version": "1.6.6", "version": "1.6.6",
"resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.6.tgz", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.6.tgz",
"integrity": "sha1-EpDt6NINCHK0Kf0/NRyhKOxe+Fw=", "integrity": "sha1-EpDt6NINCHK0Kf0/NRyhKOxe+Fw=",
"dev": true,
"requires": { "requires": {
"concat-stream": "1.6.0", "concat-stream": "1.6.0",
"debug": "2.6.9", "debug": "2.6.9",
@ -4221,6 +4265,7 @@
"version": "1.6.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
"integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
"dev": true,
"requires": { "requires": {
"inherits": "^2.0.3", "inherits": "^2.0.3",
"readable-stream": "^2.2.2", "readable-stream": "^2.2.2",
@ -4231,14 +4276,16 @@
"version": "2.6.9", "version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
"requires": { "requires": {
"ms": "2.0.0" "ms": "2.0.0"
} }
}, },
"mkdirp": { "mkdirp": {
"version": "0.5.0", "version": "0.5.0",
"resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz",
"integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=",
"dev": true,
"requires": { "requires": {
"minimist": "0.0.8" "minimist": "0.0.8"
} }
@ -4247,6 +4294,7 @@
"version": "2.4.1", "version": "2.4.1",
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
"integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
"dev": true,
"requires": { "requires": {
"fd-slicer": "~1.0.1" "fd-slicer": "~1.0.1"
} }
@ -4290,6 +4338,7 @@
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
"integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
"dev": true,
"requires": { "requires": {
"pend": "~1.2.0" "pend": "~1.2.0"
} }
@ -4561,6 +4610,7 @@
"version": "4.0.1", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.1.tgz", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.1.tgz",
"integrity": "sha1-f8DGyJV/mD9X8waiTlud3Y0N2IA=", "integrity": "sha1-f8DGyJV/mD9X8waiTlud3Y0N2IA=",
"dev": true,
"requires": { "requires": {
"graceful-fs": "^4.1.2", "graceful-fs": "^4.1.2",
"jsonfile": "^3.0.0", "jsonfile": "^3.0.0",
@ -5133,6 +5183,7 @@
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/getos/-/getos-3.1.0.tgz", "resolved": "https://registry.npmjs.org/getos/-/getos-3.1.0.tgz",
"integrity": "sha512-i9vrxtDu5DlLVFcrbqUqGWYlZN/zZ4pGMICCAcZoYsX3JA54nYp8r5EThw5K+m2q3wszkx4Th746JstspB0H4Q==", "integrity": "sha512-i9vrxtDu5DlLVFcrbqUqGWYlZN/zZ4pGMICCAcZoYsX3JA54nYp8r5EThw5K+m2q3wszkx4Th746JstspB0H4Q==",
"dev": true,
"requires": { "requires": {
"async": "2.4.0" "async": "2.4.0"
}, },
@ -5141,6 +5192,7 @@
"version": "2.4.0", "version": "2.4.0",
"resolved": "https://registry.npmjs.org/async/-/async-2.4.0.tgz", "resolved": "https://registry.npmjs.org/async/-/async-2.4.0.tgz",
"integrity": "sha1-SZAgDxjqW4N8LMT4wDGmmFw4VhE=", "integrity": "sha1-SZAgDxjqW4N8LMT4wDGmmFw4VhE=",
"dev": true,
"requires": { "requires": {
"lodash": "^4.14.0" "lodash": "^4.14.0"
} }
@ -5223,6 +5275,7 @@
"version": "0.1.1", "version": "0.1.1",
"resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz",
"integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=",
"dev": true,
"requires": { "requires": {
"ini": "^1.3.4" "ini": "^1.3.4"
} }
@ -5798,7 +5851,8 @@
"ini": { "ini": {
"version": "1.3.5", "version": "1.3.5",
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
"integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
"dev": true
}, },
"inquirer": { "inquirer": {
"version": "3.3.0", "version": "3.3.0",
@ -5928,8 +5982,9 @@
}, },
"is-ci": { "is-ci": {
"version": "1.0.10", "version": "1.0.10",
"resolved": "http://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz",
"integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=", "integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=",
"dev": true,
"requires": { "requires": {
"ci-info": "^1.0.0" "ci-info": "^1.0.0"
} }
@ -6027,6 +6082,7 @@
"version": "0.1.0", "version": "0.1.0",
"resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz",
"integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
"dev": true,
"requires": { "requires": {
"global-dirs": "^0.1.0", "global-dirs": "^0.1.0",
"is-path-inside": "^1.0.0" "is-path-inside": "^1.0.0"
@ -6272,6 +6328,7 @@
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz",
"integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=",
"dev": true,
"requires": { "requires": {
"graceful-fs": "^4.1.6" "graceful-fs": "^4.1.6"
} }
@ -6309,7 +6366,8 @@
"lazy-ass": { "lazy-ass": {
"version": "1.6.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz",
"integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=" "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=",
"dev": true
}, },
"lazy-cache": { "lazy-cache": {
"version": "1.0.4", "version": "1.0.4",
@ -6337,6 +6395,7 @@
"version": "0.12.0", "version": "0.12.0",
"resolved": "https://registry.npmjs.org/listr/-/listr-0.12.0.tgz", "resolved": "https://registry.npmjs.org/listr/-/listr-0.12.0.tgz",
"integrity": "sha1-a84sD1YD+klYDqF81qAMwOX6RRo=", "integrity": "sha1-a84sD1YD+klYDqF81qAMwOX6RRo=",
"dev": true,
"requires": { "requires": {
"chalk": "^1.1.3", "chalk": "^1.1.3",
"cli-truncate": "^0.2.1", "cli-truncate": "^0.2.1",
@ -6359,12 +6418,14 @@
"ansi-styles": { "ansi-styles": {
"version": "2.2.1", "version": "2.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
"dev": true
}, },
"chalk": { "chalk": {
"version": "1.1.3", "version": "1.1.3",
"resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"dev": true,
"requires": { "requires": {
"ansi-styles": "^2.2.1", "ansi-styles": "^2.2.1",
"escape-string-regexp": "^1.0.2", "escape-string-regexp": "^1.0.2",
@ -6377,6 +6438,7 @@
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
"integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
"dev": true,
"requires": { "requires": {
"restore-cursor": "^1.0.1" "restore-cursor": "^1.0.1"
} }
@ -6384,12 +6446,14 @@
"cli-spinners": { "cli-spinners": {
"version": "0.1.2", "version": "0.1.2",
"resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz", "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz",
"integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=" "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=",
"dev": true
}, },
"figures": { "figures": {
"version": "1.7.0", "version": "1.7.0",
"resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
"integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
"dev": true,
"requires": { "requires": {
"escape-string-regexp": "^1.0.5", "escape-string-regexp": "^1.0.5",
"object-assign": "^4.1.0" "object-assign": "^4.1.0"
@ -6399,19 +6463,22 @@
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz",
"integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
"dev": true,
"requires": { "requires": {
"chalk": "^1.0.0" "chalk": "^1.0.0"
} }
}, },
"onetime": { "onetime": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
"integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=" "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
"dev": true
}, },
"ora": { "ora": {
"version": "0.2.3", "version": "0.2.3",
"resolved": "http://registry.npmjs.org/ora/-/ora-0.2.3.tgz", "resolved": "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz",
"integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=", "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=",
"dev": true,
"requires": { "requires": {
"chalk": "^1.1.1", "chalk": "^1.1.1",
"cli-cursor": "^1.0.2", "cli-cursor": "^1.0.2",
@ -6423,6 +6490,7 @@
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
"integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
"dev": true,
"requires": { "requires": {
"exit-hook": "^1.0.0", "exit-hook": "^1.0.0",
"onetime": "^1.0.0" "onetime": "^1.0.0"
@ -6431,19 +6499,22 @@
"supports-color": { "supports-color": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
"dev": true
} }
} }
}, },
"listr-silent-renderer": { "listr-silent-renderer": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz",
"integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=" "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=",
"dev": true
}, },
"listr-update-renderer": { "listr-update-renderer": {
"version": "0.2.0", "version": "0.2.0",
"resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz", "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz",
"integrity": "sha1-yoDhd5tOcCZoB+ju0a1qvjmFUPk=", "integrity": "sha1-yoDhd5tOcCZoB+ju0a1qvjmFUPk=",
"dev": true,
"requires": { "requires": {
"chalk": "^1.1.3", "chalk": "^1.1.3",
"cli-truncate": "^0.2.1", "cli-truncate": "^0.2.1",
@ -6458,12 +6529,14 @@
"ansi-styles": { "ansi-styles": {
"version": "2.2.1", "version": "2.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
"dev": true
}, },
"chalk": { "chalk": {
"version": "1.1.3", "version": "1.1.3",
"resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"dev": true,
"requires": { "requires": {
"ansi-styles": "^2.2.1", "ansi-styles": "^2.2.1",
"escape-string-regexp": "^1.0.2", "escape-string-regexp": "^1.0.2",
@ -6476,6 +6549,7 @@
"version": "1.7.0", "version": "1.7.0",
"resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
"integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
"dev": true,
"requires": { "requires": {
"escape-string-regexp": "^1.0.5", "escape-string-regexp": "^1.0.5",
"object-assign": "^4.1.0" "object-assign": "^4.1.0"
@ -6484,12 +6558,14 @@
"indent-string": { "indent-string": {
"version": "3.2.0", "version": "3.2.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
"integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=" "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
"dev": true
}, },
"log-symbols": { "log-symbols": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz",
"integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
"dev": true,
"requires": { "requires": {
"chalk": "^1.0.0" "chalk": "^1.0.0"
} }
@ -6497,7 +6573,8 @@
"supports-color": { "supports-color": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
"dev": true
} }
} }
}, },
@ -6505,6 +6582,7 @@
"version": "0.4.1", "version": "0.4.1",
"resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz",
"integrity": "sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=", "integrity": "sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=",
"dev": true,
"requires": { "requires": {
"chalk": "^1.1.3", "chalk": "^1.1.3",
"cli-cursor": "^1.0.2", "cli-cursor": "^1.0.2",
@ -6515,12 +6593,14 @@
"ansi-styles": { "ansi-styles": {
"version": "2.2.1", "version": "2.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
"dev": true
}, },
"chalk": { "chalk": {
"version": "1.1.3", "version": "1.1.3",
"resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"dev": true,
"requires": { "requires": {
"ansi-styles": "^2.2.1", "ansi-styles": "^2.2.1",
"escape-string-regexp": "^1.0.2", "escape-string-regexp": "^1.0.2",
@ -6533,6 +6613,7 @@
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
"integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
"dev": true,
"requires": { "requires": {
"restore-cursor": "^1.0.1" "restore-cursor": "^1.0.1"
} }
@ -6541,6 +6622,7 @@
"version": "1.7.0", "version": "1.7.0",
"resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
"integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
"dev": true,
"requires": { "requires": {
"escape-string-regexp": "^1.0.5", "escape-string-regexp": "^1.0.5",
"object-assign": "^4.1.0" "object-assign": "^4.1.0"
@ -6548,13 +6630,15 @@
}, },
"onetime": { "onetime": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
"integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=" "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
"dev": true
}, },
"restore-cursor": { "restore-cursor": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
"integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
"dev": true,
"requires": { "requires": {
"exit-hook": "^1.0.0", "exit-hook": "^1.0.0",
"onetime": "^1.0.0" "onetime": "^1.0.0"
@ -6563,7 +6647,8 @@
"supports-color": { "supports-color": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
"dev": true
} }
} }
}, },
@ -6693,7 +6778,8 @@
"lodash.once": { "lodash.once": {
"version": "4.1.1", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
"integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=",
"dev": true
}, },
"lodash.tail": { "lodash.tail": {
"version": "4.1.1", "version": "4.1.1",
@ -6717,6 +6803,7 @@
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz", "resolved": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz",
"integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=", "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=",
"dev": true,
"requires": { "requires": {
"ansi-escapes": "^1.0.0", "ansi-escapes": "^1.0.0",
"cli-cursor": "^1.0.2" "cli-cursor": "^1.0.2"
@ -6725,25 +6812,29 @@
"ansi-escapes": { "ansi-escapes": {
"version": "1.4.0", "version": "1.4.0",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
"integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=" "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=",
"dev": true
}, },
"cli-cursor": { "cli-cursor": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
"integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
"dev": true,
"requires": { "requires": {
"restore-cursor": "^1.0.1" "restore-cursor": "^1.0.1"
} }
}, },
"onetime": { "onetime": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
"integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=" "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
"dev": true
}, },
"restore-cursor": { "restore-cursor": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
"integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
"dev": true,
"requires": { "requires": {
"exit-hook": "^1.0.0", "exit-hook": "^1.0.0",
"onetime": "^1.0.0" "onetime": "^1.0.0"
@ -7099,6 +7190,12 @@
"minimist": "0.0.8" "minimist": "0.0.8"
} }
}, },
"moment": {
"version": "2.22.2",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz",
"integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=",
"dev": true
},
"move-concurrently": { "move-concurrently": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
@ -7187,7 +7284,8 @@
"nice-try": { "nice-try": {
"version": "1.0.5", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
"dev": true
}, },
"no-case": { "no-case": {
"version": "2.3.2", "version": "2.3.2",
@ -7791,7 +7889,8 @@
"pend": { "pend": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
"integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
"dev": true
}, },
"performance-now": { "performance-now": {
"version": "2.1.0", "version": "2.1.0",
@ -9839,7 +9938,8 @@
"ramda": { "ramda": {
"version": "0.24.1", "version": "0.24.1",
"resolved": "https://registry.npmjs.org/ramda/-/ramda-0.24.1.tgz", "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.24.1.tgz",
"integrity": "sha1-w7d1UZfzW43DUCIoJixMkd22uFc=" "integrity": "sha1-w7d1UZfzW43DUCIoJixMkd22uFc=",
"dev": true
}, },
"randomatic": { "randomatic": {
"version": "3.1.0", "version": "3.1.0",
@ -10197,6 +10297,7 @@
"version": "0.3.1", "version": "0.3.1",
"resolved": "https://registry.npmjs.org/request-progress/-/request-progress-0.3.1.tgz", "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-0.3.1.tgz",
"integrity": "sha1-ByHBBdipasayzossia4tXs/Pazo=", "integrity": "sha1-ByHBBdipasayzossia4tXs/Pazo=",
"dev": true,
"requires": { "requires": {
"throttleit": "~0.0.2" "throttleit": "~0.0.2"
} }
@ -10352,6 +10453,7 @@
"version": "5.5.12", "version": "5.5.12",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz",
"integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==",
"dev": true,
"requires": { "requires": {
"symbol-observable": "1.0.1" "symbol-observable": "1.0.1"
}, },
@ -10359,7 +10461,8 @@
"symbol-observable": { "symbol-observable": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz",
"integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=" "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=",
"dev": true
} }
} }
}, },
@ -11030,7 +11133,8 @@
"stream-to-observable": { "stream-to-observable": {
"version": "0.1.0", "version": "0.1.0",
"resolved": "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.1.0.tgz", "resolved": "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.1.0.tgz",
"integrity": "sha1-Rb8dny19wJvtgfHDB8Qw5ouEz/4=" "integrity": "sha1-Rb8dny19wJvtgfHDB8Qw5ouEz/4=",
"dev": true
}, },
"strict-uri-encode": { "strict-uri-encode": {
"version": "1.1.0", "version": "1.1.0",
@ -11168,7 +11272,8 @@
"throttleit": { "throttleit": {
"version": "0.0.2", "version": "0.0.2",
"resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz",
"integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=" "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=",
"dev": true
}, },
"through": { "through": {
"version": "2.3.8", "version": "2.3.8",
@ -11516,7 +11621,8 @@
"universalify": { "universalify": {
"version": "0.1.2", "version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
"dev": true
}, },
"unpipe": { "unpipe": {
"version": "1.0.0", "version": "1.0.0",
@ -12664,6 +12770,7 @@
"version": "2.8.0", "version": "2.8.0",
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.8.0.tgz", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.8.0.tgz",
"integrity": "sha1-eUUK/yKyqcWkHvVOAtuQfM+/nuI=", "integrity": "sha1-eUUK/yKyqcWkHvVOAtuQfM+/nuI=",
"dev": true,
"requires": { "requires": {
"buffer-crc32": "~0.2.3", "buffer-crc32": "~0.2.3",
"fd-slicer": "~1.0.1" "fd-slicer": "~1.0.1"

View File

@ -34,7 +34,6 @@
"chalk": "^2.0.1", "chalk": "^2.0.1",
"copy-webpack-plugin": "^4.0.1", "copy-webpack-plugin": "^4.0.1",
"css-loader": "^0.28.0", "css-loader": "^0.28.0",
"cypress": "^3.1.0",
"debounce": "^1.2.0", "debounce": "^1.2.0",
"eslint": "^4.15.0", "eslint": "^4.15.0",
"eslint-config-standard": "^10.2.1", "eslint-config-standard": "^10.2.1",
@ -94,5 +93,7 @@
"last 2 versions", "last 2 versions",
"not ie <= 8" "not ie <= 8"
], ],
"devDependencies": {} "devDependencies": {
"cypress": "^3.1.5"
}
} }

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="logout-widget"> <div class="logout-widget">
<button class="logout-widget__logout" @click="logout()">Logout</button> <button class="logout-widget__logout" data-cy="logout" @click="logout()">Logout</button>
</div> </div>
</template> </template>

View File

@ -0,0 +1,65 @@
<template>
<checkbox v-if="canToggleSolutions" label="Lösungen für Schüler anzeigen" :checked="enabled"
@input="toggleSolutions"></checkbox>
</template>
<script>
import Checkbox from '@/components/Checkbox';
import UPDATE_SOLUTION_VISIBILITY_MUTATION from '@/graphql/gql/mutations/updateSolutionVisibility.gql';
import MODULE_QUERY from '@/graphql/gql/moduleByIdQuery.gql';
import {meQuery} from '@/graphql/queries';
export default {
props: ['module', 'enabled'],
components: {
Checkbox
},
apollo: {
me: meQuery
},
computed: {
canToggleSolutions() {
return this.me.permissions.includes('users.can_manage_school_class_content')
}
},
data() {
return {
me: {
permissions: []
},
}
},
methods: {
toggleSolutions(enabled) {
const module = this.module;
this.$apollo.mutate({
mutation: UPDATE_SOLUTION_VISIBILITY_MUTATION,
variables: {
input: {
id: this.module,
enabled: enabled
}
},
update(store, {data: {updateSolutionVisibility: {success, solutionsEnabled}}}) {
if (success) {
const variables = {
id: module
};
console.log(variables);
const query = MODULE_QUERY;
const data = store.readQuery({query, variables});
data.module.solutionsEnabled = solutionsEnabled;
store.writeQuery({query, data, variables});
}
}
})
}
},
}
</script>

View File

@ -1,5 +1,11 @@
<template> <template>
<div class="module"> <div class="module">
<toggle-solutions-for-module
:module="module.id"
:enabled="module.solutionsEnabled"
data-cy="toggle-enable-solutions"></toggle-solutions-for-module>
<h2 class="module__meta-title" id="meta-title">{{module.metaTitle}}</h2> <h2 class="module__meta-title" id="meta-title">{{module.metaTitle}}</h2>
<h1 class="module__title">{{module.title}}</h1> <h1 class="module__title">{{module.title}}</h1>
<img <img
@ -10,7 +16,8 @@
<h3 id="objectives">Lernziele</h3> <h3 id="objectives">Lernziele</h3>
<objective-groups :groups="languageCommunicationObjectiveGroups"></objective-groups> <objective-groups :groups="languageCommunicationObjectiveGroups"></objective-groups>
<add-objective-group-button v-if="!isStudent" type="languageCommunication" :module="module.id"></add-objective-group-button> <add-objective-group-button v-if="!isStudent" type="languageCommunication"
:module="module.id"></add-objective-group-button>
<objective-groups :groups="societyObjectiveGroups"></objective-groups> <objective-groups :groups="societyObjectiveGroups"></objective-groups>
<add-objective-group-button v-if="!isStudent" type="society" :module="module.id"></add-objective-group-button> <add-objective-group-button v-if="!isStudent" type="society" :module="module.id"></add-objective-group-button>
@ -30,6 +37,7 @@
import ObjectiveGroupControl from '@/components/objective-groups/ObjectiveGroupControl.vue'; import ObjectiveGroupControl from '@/components/objective-groups/ObjectiveGroupControl.vue';
import AddObjectiveGroupButton from '@/components/AddObjectiveGroupButton'; import AddObjectiveGroupButton from '@/components/AddObjectiveGroupButton';
import Chapter from '@/components/Chapter.vue'; import Chapter from '@/components/Chapter.vue';
import ToggleSolutionsForModule from '@/components/ToggleSolutionsForModule.vue';
import UPDATE_OBJECTIVE_PROGRESS_MUTATION from '@/graphql/gql/mutations/updateObjectiveProgress.gql'; import UPDATE_OBJECTIVE_PROGRESS_MUTATION from '@/graphql/gql/mutations/updateObjectiveProgress.gql';
import OBJECTIVE_QUERY from '@/graphql/gql/objectiveQuery.gql'; import OBJECTIVE_QUERY from '@/graphql/gql/objectiveQuery.gql';
@ -42,7 +50,8 @@
ObjectiveGroups, ObjectiveGroups,
ObjectiveGroupControl, ObjectiveGroupControl,
AddObjectiveGroupButton, AddObjectiveGroupButton,
Chapter Chapter,
ToggleSolutionsForModule
}, },
props: { props: {

View File

@ -45,7 +45,8 @@ const cache = new InMemoryCache({
chapter: (_, args, {getCacheKey}) => getCacheKey({__typename: 'ChapterNode', id: args.id}), chapter: (_, args, {getCacheKey}) => getCacheKey({__typename: 'ChapterNode', id: args.id}),
assignment: (_, args, {getCacheKey}) => getCacheKey({__typename: 'AssignmentNode', id: args.id}), assignment: (_, args, {getCacheKey}) => getCacheKey({__typename: 'AssignmentNode', id: args.id}),
objective: (_, args, {getCacheKey}) => getCacheKey({__typename: 'ObjectiveNode', id: args.id}), objective: (_, args, {getCacheKey}) => getCacheKey({__typename: 'ObjectiveNode', id: args.id}),
objectiveGroup: (_, args, {getCacheKey}) => getCacheKey({__typename: 'ObjectiveGroupNode', id: args.id}) objectiveGroup: (_, args, {getCacheKey}) => getCacheKey({__typename: 'ObjectiveGroupNode', id: args.id}),
module: (_, args, {getCacheKey}) => getCacheKey({__typename: 'ModuleNode', id: args.id})
} }
} }
}); });

View File

@ -5,4 +5,5 @@ fragment ModuleParts on ModuleNode {
teaser teaser
slug slug
heroImage heroImage
solutionsEnabled
} }

View File

@ -1,11 +1,7 @@
#import "./fragments/moduleParts.gql"
query ModuleQuery($id: ID!) { query ModuleQuery($id: ID!) {
module(id: $id) { module(id: $id) {
id ...ModuleParts
slug
title
metaTitle
teaser
intro
chapters { chapters {
edges { edges {
node { node {

View File

@ -1,15 +1,10 @@
#import "./fragments/chapterParts.gql" #import "./fragments/chapterParts.gql"
#import "./fragments/assignmentParts.gql" #import "./fragments/assignmentParts.gql"
#import "./fragments/objectiveGroupParts.gql" #import "./fragments/objectiveGroupParts.gql"
#import "./fragments/moduleParts.gql"
query ModulesQuery($slug: String!) { query ModulesQuery($slug: String!) {
module(slug: $slug) { module(slug: $slug) {
id ...ModuleParts
slug
title
metaTitle
teaser
intro
heroImage
assignments { assignments {
edges { edges {
node { node {

View File

@ -0,0 +1,7 @@
mutation UpdateSolutionVisibility($input: UpdateSolutionVisibilityInput!) {
updateSolutionVisibility(input: $input) {
errors
success
solutionsEnabled
}
}

View File

@ -11,6 +11,7 @@ class UpdateSolutionVisibility(relay.ClientIDMutation):
enabled = graphene.Boolean() enabled = graphene.Boolean()
success = graphene.Boolean() success = graphene.Boolean()
solutions_enabled = graphene.Boolean()
errors = graphene.List(graphene.String) errors = graphene.List(graphene.String)
@classmethod @classmethod
@ -29,11 +30,11 @@ class UpdateSolutionVisibility(relay.ClientIDMutation):
module.solutions_enabled_by.remove(user) module.solutions_enabled_by.remove(user)
module.save() module.save()
return cls(success=True) return cls(success=True, solutions_enabled=enabled)
except PermissionError: except PermissionError:
errors = ["You don't have the permission to do that."] errors = ["You don't have the permission to do that."]
except Exception as e: except Exception as e:
errors = ['Error: {}'.format(e)] errors = ['Error: {}'.format(e)]
return cls(success=False, errors=errors) return cls(success=False, solutions_enabled=None, errors=errors)

View File

@ -74,6 +74,7 @@ class ModuleNode(DjangoObjectType):
pk = graphene.Int() pk = graphene.Int()
chapters = DjangoFilterConnectionField(ChapterNode) chapters = DjangoFilterConnectionField(ChapterNode)
hero_image = graphene.String() hero_image = graphene.String()
solutions_enabled = graphene.Boolean()
class Meta: class Meta:
model = Module model = Module
@ -96,6 +97,9 @@ class ModuleNode(DjangoObjectType):
def resolve_chapters(self, info, **kwargs): def resolve_chapters(self, info, **kwargs):
return Chapter.get_by_parent(self) return Chapter.get_by_parent(self)
def resolve_solutions_enabled(self, info, **kwargs):
return self.solutions_enabled_by.filter(pk=info.context.user.pk).exists()
def resolve_objective_groups(self, info, **kwargs): def resolve_objective_groups(self, info, **kwargs):
user = info.context.user user = info.context.user
school_classes = user.school_classes.values_list('pk') school_classes = user.school_classes.values_list('pk')