diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2b18286f..2bba6b95 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -33,18 +33,12 @@ jobs: - name: Install dependencies run: yarn install --immutable - env: - CI: true - name: Lint run: yarn lint - env: - CI: true - name: Test run: yarn test --ci --coverage --maxWorkers=2 - env: - CI: true - name: Report coverage uses: codecov/codecov-action@v1 @@ -54,5 +48,10 @@ jobs: - name: Build docs run: yarn docz:build - env: - CI: true + + - name: Cypress run + uses: cypress-io/github-action@v2 + with: + # Dependencies already installed before + install: false + start: yarn dlx serve -l 3000 .docz/dist diff --git a/cypress.json b/cypress.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/cypress.json @@ -0,0 +1 @@ +{} diff --git a/cypress/integration/modal.spec.ts b/cypress/integration/modal.spec.ts new file mode 100644 index 00000000..5f7ab5b3 --- /dev/null +++ b/cypress/integration/modal.spec.ts @@ -0,0 +1,68 @@ +/// + +describe('simple modal', () => { + beforeEach(() => { + cy.visit('http://localhost:3000/examples'); + // Page is heavy to load so we wait for it to be loaded + cy.wait(500); + }); + + it('should open modal when clicking open button', () => { + cy.get('button').eq(2).click(); + cy.get('[data-testid=modal]').should('exist'); + }); + + // TODO overlay not working, see how to fix + // it('should close modal when clicking overlay', () => { + // cy.get('button').eq(2).click(); + // cy.get('[data-testid=overlay]').click(); + // cy.get('[data-testid=modal]').should('not.exist'); + // }); + + it('should close modal when clicking the close icon', () => { + cy.get('button').eq(2).click(); + cy.get('[data-testid=close-button]').click(); + cy.get('[data-testid=modal]').should('not.exist'); + }); + + it('should close modal when pressing esc key', () => { + cy.get('button').eq(2).click(); + cy.get('body').type('{esc}'); + cy.get('[data-testid=modal]').should('not.exist'); + }); + + it('should close only last modal when pressing esc key when multiple modals are opened', () => { + cy.get('button').eq(8).click(); + cy.get('[data-testid=modal] button').eq(0).click(); + cy.get('[data-testid=modal]').should('have.length', 2); + cy.get('body').type('{esc}'); + cy.get('[data-testid=modal]').should('have.length', 1); + cy.get('body').type('{esc}'); + cy.get('[data-testid=modal]').should('not.exist'); + }); + + it('should block the scroll when modal is opened', () => { + cy.get('button').eq(2).click(); + cy.get('html').should('have.css', 'position', 'fixed'); + }); + + it('should unblock the scroll when modal is closed', () => { + cy.get('button').eq(2).click(); + cy.get('html').should('have.css', 'position', 'fixed'); + cy.get('body').type('{esc}'); + cy.get('html').should('not.have.css', 'position', 'fixed'); + }); + + it('should unblock scroll only after last modal is closed when multiple modals are opened', () => { + cy.get('button').eq(8).click(); + cy.get('[data-testid=modal] button').eq(0).click(); + cy.get('[data-testid=modal]').should('have.length', 2); + cy.get('html').should('have.css', 'position', 'fixed'); + cy.get('body').type('{esc}'); + cy.get('[data-testid=modal]').should('have.length', 1); + cy.get('html').should('have.css', 'position', 'fixed'); + cy.get('body').type('{esc}'); + cy.get('[data-testid=modal]').should('not.exist'); + cy.get('html').should('not.have.css', 'position', 'fixed'); + }); +}); diff --git a/cypress/plugins/index.js b/cypress/plugins/index.js new file mode 100644 index 00000000..aa9918d2 --- /dev/null +++ b/cypress/plugins/index.js @@ -0,0 +1,21 @@ +/// +// *********************************************************** +// This example plugins/index.js can be used to load plugins +// +// You can change the location of this file or turn off loading +// the plugins file with the 'pluginsFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/plugins-guide +// *********************************************************** + +// This function is called when a project is opened or re-opened (e.g. due to +// the project's config changing) + +/** + * @type {Cypress.PluginConfig} + */ +module.exports = (on, config) => { + // `on` is used to hook into various events Cypress emits + // `config` is the resolved Cypress config +} diff --git a/cypress/support/commands.js b/cypress/support/commands.js new file mode 100644 index 00000000..ca4d256f --- /dev/null +++ b/cypress/support/commands.js @@ -0,0 +1,25 @@ +// *********************************************** +// This example commands.js shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** +// +// +// -- This is a parent command -- +// Cypress.Commands.add("login", (email, password) => { ... }) +// +// +// -- This is a child command -- +// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... }) +// +// +// -- This is a dual command -- +// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... }) +// +// +// -- This will overwrite an existing command -- +// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... }) diff --git a/cypress/support/index.js b/cypress/support/index.js new file mode 100644 index 00000000..d68db96d --- /dev/null +++ b/cypress/support/index.js @@ -0,0 +1,20 @@ +// *********************************************************** +// This example support/index.js is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// Import commands.js using ES2015 syntax: +import './commands' + +// Alternatively you can use CommonJS syntax: +// require('./commands') diff --git a/cypress/tsconfig.json b/cypress/tsconfig.json new file mode 100644 index 00000000..f87a578b --- /dev/null +++ b/cypress/tsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["es5", "dom"], + "types": ["cypress"] + }, + "include": ["**/*.ts"] +} diff --git a/package.json b/package.json index 0a9d6d16..55c0148d 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,9 @@ "setupFilesAfterEnv": [ "./__tests__/setupTests.ts" ], + "modulePathIgnorePatterns": [ + "cypress" + ], "coveragePathIgnorePatterns": [ "src/lib" ] @@ -80,6 +83,7 @@ "@types/react": "16.9.56", "@types/react-dom": "16.9.9", "@types/react-transition-group": "4.4.0", + "cypress": "5.5.0", "docz": "2.3.1", "gatsby": "2.23.11", "gatsby-theme-docz": "2.3.1", diff --git a/yarn.lock b/yarn.lock index a51b58ee..db0a5b96 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2545,6 +2545,56 @@ __metadata: languageName: node linkType: hard +"@cypress/listr-verbose-renderer@npm:^0.4.1": + version: 0.4.1 + resolution: "@cypress/listr-verbose-renderer@npm:0.4.1" + dependencies: + chalk: ^1.1.3 + cli-cursor: ^1.0.2 + date-fns: ^1.27.2 + figures: ^1.7.0 + checksum: 69c708e7b7200c4ce7dc5ab24b1da953a51cf9745e364ea4665794d2f939a527a377f8546b68e2388ef4c880d587b25fb1035ddfa0bb97d9529b9a6d1d371d76 + languageName: node + linkType: hard + +"@cypress/request@npm:^2.88.5": + version: 2.88.5 + resolution: "@cypress/request@npm:2.88.5" + dependencies: + aws-sign2: ~0.7.0 + aws4: ^1.8.0 + caseless: ~0.12.0 + combined-stream: ~1.0.6 + extend: ~3.0.2 + forever-agent: ~0.6.1 + form-data: ~2.3.2 + har-validator: ~5.1.3 + http-signature: ~1.2.0 + is-typedarray: ~1.0.0 + isstream: ~0.1.2 + json-stringify-safe: ~5.0.1 + mime-types: ~2.1.19 + oauth-sign: ~0.9.0 + performance-now: ^2.1.0 + qs: ~6.5.2 + safe-buffer: ^5.1.2 + tough-cookie: ~2.5.0 + tunnel-agent: ^0.6.0 + uuid: ^3.3.2 + checksum: 50fa58261a0a864a471b7112a660a6cc7a6bb977901e5ffa9b4350d8dd51382f25c4064da0c30c24f332ea7c46b5c6d070654b17f0eeb261b1c7689a7a6c5f8c + languageName: node + linkType: hard + +"@cypress/xvfb@npm:^1.2.4": + version: 1.2.4 + resolution: "@cypress/xvfb@npm:1.2.4" + dependencies: + debug: ^3.1.0 + lodash.once: ^4.1.1 + checksum: 51872f6366b4d6ba9e396f9844b416ce3ced574bdb3d9e469b822d85686697830dc6a0d5d04b8c4a2d829572a09ce98366ae9b8735d4d45692c388b719efc411 + languageName: node + linkType: hard + "@emotion/babel-plugin-jsx-pragmatic@npm:^0.1.5": version: 0.1.5 resolution: "@emotion/babel-plugin-jsx-pragmatic@npm:0.1.5" @@ -3558,6 +3608,20 @@ __metadata: languageName: node linkType: hard +"@samverschueren/stream-to-observable@npm:^0.3.0": + version: 0.3.1 + resolution: "@samverschueren/stream-to-observable@npm:0.3.1" + dependencies: + any-observable: ^0.3.0 + peerDependenciesMeta: + rxjs: + optional: true + zen-observable: + optional: true + checksum: 6a097438c84c526dbd4be6e1655fe0080833ed21d7f27a19250d7af85d2fe34d36d4aa5b042a06bbd6dfade53427b5c4e2ada400c861afa534ee7068223fe7e9 + languageName: node + linkType: hard + "@sindresorhus/is@npm:^0.14.0": version: 0.14.0 resolution: "@sindresorhus/is@npm:0.14.0" @@ -4124,6 +4188,20 @@ __metadata: languageName: node linkType: hard +"@types/sinonjs__fake-timers@npm:^6.0.1": + version: 6.0.2 + resolution: "@types/sinonjs__fake-timers@npm:6.0.2" + checksum: 1dd1b391904c2a2972318b753026f615784c14a827c12ba21f67707ca6565f3cea195790a1c64178f2208e330eec4ab9c78823c99019384b9a01b02cc6987071 + languageName: node + linkType: hard + +"@types/sizzle@npm:^2.3.2": + version: 2.3.2 + resolution: "@types/sizzle@npm:2.3.2" + checksum: 447a1c3f39f0e47ffdbccd1df58d63e8b67dc001f44f26f43ac8243db7834a3d956cebc8abe9272ecbdccfc8f4ec0ae74b811ccdad5b6cddaf8f0968513d618a + languageName: node + linkType: hard + "@types/stack-utils@npm:^1.0.1": version: 1.0.1 resolution: "@types/stack-utils@npm:1.0.1" @@ -4790,6 +4868,13 @@ __metadata: languageName: node linkType: hard +"any-observable@npm:^0.3.0": + version: 0.3.0 + resolution: "any-observable@npm:0.3.0" + checksum: 8051aaf7b9403b6722b10bd2464c939e3d20f2381306a6fecbbeace1626ccf1071da441eb73ca4ac40f8c0144daec2ad716bc284e720befea02292e5e60e39be + languageName: node + linkType: hard + "anymatch@npm:^2.0.0": version: 2.0.0 resolution: "anymatch@npm:2.0.0" @@ -4884,6 +4969,13 @@ __metadata: languageName: node linkType: hard +"arch@npm:^2.1.2": + version: 2.2.0 + resolution: "arch@npm:2.2.0" + checksum: 4a8d92a9a7ee185fd0f2cbe40f8c3eb6147afa86bf07b03e2cf8c8f024d2f14c42a8cf7ed06a8ce1bbe17d123a19e83d46ebddd77acb49c8ce68194cf99ab711 + languageName: node + linkType: hard + "are-we-there-yet@npm:~1.1.2": version: 1.1.5 resolution: "are-we-there-yet@npm:1.1.5" @@ -5221,6 +5313,13 @@ __metadata: languageName: node linkType: hard +"async@npm:^3.2.0": + version: 3.2.0 + resolution: "async@npm:3.2.0" + checksum: 5c7913c08496877a9896dc6670d3a6c64f02d350e74b9e9191194959c473414a0732539ebdfec0fd2f34c20f439714773a30c20e0e68eb27bd8ee5ec9d8ff5ba + languageName: node + linkType: hard + "asynckit@npm:^0.4.0": version: 0.4.0 resolution: "asynckit@npm:0.4.0" @@ -5822,6 +5921,13 @@ __metadata: languageName: node linkType: hard +"blob-util@npm:2.0.2": + version: 2.0.2 + resolution: "blob-util@npm:2.0.2" + checksum: 83152f0d07e68a58187c40e5a8ea3a22f958fa40b377df235601992173205fc238bffd3b3d54ed548a705d45b8599bcc6565ac20073d6c82292ab7d30988e1aa + languageName: node + linkType: hard + "blob@npm:0.0.5": version: 0.0.5 resolution: "blob@npm:0.0.5" @@ -6148,6 +6254,13 @@ __metadata: languageName: node linkType: hard +"buffer-crc32@npm:~0.2.3": + version: 0.2.13 + resolution: "buffer-crc32@npm:0.2.13" + checksum: 0340e848d6fd87e49ef6f1067f31b2a8d2e71b433e9bb62ff3d9bc2499146f0be586b5b80b0d099c7110a226161b21cb6cd80162dd5a51d9ebdb03da58b99637 + languageName: node + linkType: hard + "buffer-fill@npm:^1.0.0": version: 1.0.0 resolution: "buffer-fill@npm:1.0.0" @@ -6315,6 +6428,13 @@ __metadata: languageName: node linkType: hard +"cachedir@npm:^2.3.0": + version: 2.3.0 + resolution: "cachedir@npm:2.3.0" + checksum: 17153ca421c3ba004ab74dda259898ee06b7a8067383f6132350cd42beddae70a2420a9f0a235ec2a6f91f925fe3e52ba9e2bd92adfbf556af7c2e35f88cb786 + languageName: node + linkType: hard + "call-me-maybe@npm:^1.0.1": version: 1.0.1 resolution: "call-me-maybe@npm:1.0.1" @@ -6476,7 +6596,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:1.1.3, chalk@npm:^1.1.3": +"chalk@npm:1.1.3, chalk@npm:^1.0.0, chalk@npm:^1.1.3": version: 1.1.3 resolution: "chalk@npm:1.1.3" dependencies: @@ -6605,6 +6725,13 @@ __metadata: languageName: node linkType: hard +"check-more-types@npm:^2.24.0": + version: 2.24.0 + resolution: "check-more-types@npm:2.24.0" + checksum: e7b9d1f10a499ca9e2698d3b43ed76171d4209f471307425f1429df18b6f1215981f53dee49b18915211dea274571ca788939786c600416f74305285f1b36f87 + languageName: node + linkType: hard + "check-types@npm:^8.0.3": version: 8.0.3 resolution: "check-types@npm:8.0.3" @@ -6805,6 +6932,15 @@ __metadata: languageName: node linkType: hard +"cli-cursor@npm:^1.0.2": + version: 1.0.2 + resolution: "cli-cursor@npm:1.0.2" + dependencies: + restore-cursor: ^1.0.1 + checksum: 72cd1457558c76665a26b37e539f01f59266274a90ff101719231ce3ebed9d10eb5426942bc2b4b477203e6b3829f88970532347ad168928a99314de90c0d8de + languageName: node + linkType: hard + "cli-cursor@npm:^2.0.0, cli-cursor@npm:^2.1.0": version: 2.1.0 resolution: "cli-cursor@npm:2.1.0" @@ -6865,6 +7001,30 @@ __metadata: languageName: node linkType: hard +"cli-table3@npm:~0.6.0": + version: 0.6.0 + resolution: "cli-table3@npm:0.6.0" + dependencies: + colors: ^1.1.2 + object-assign: ^4.1.0 + string-width: ^4.2.0 + dependenciesMeta: + colors: + optional: true + checksum: 4b61f9db4fb26039ab9299089d5a8a6a269f0d79eefd1e8b9479746f26ec186365bc6bf2bceb4812446cc213426b0f86cd86b7fc130a43d270d0f76e77f251f3 + languageName: node + linkType: hard + +"cli-truncate@npm:^0.2.1": + version: 0.2.1 + resolution: "cli-truncate@npm:0.2.1" + dependencies: + slice-ansi: 0.0.4 + string-width: ^1.0.1 + checksum: f860298aa38107f0c7307d5f7c106dcf1b32c6d0d57c5126ac88b78e48e2a904927e1b44b523c5e38fb9f1c01c9c5b49f1d425ba0b8bd1910f9d0ee7e8a74665 + languageName: node + linkType: hard + "cli-truncate@npm:^2.1.0": version: 2.1.0 resolution: "cli-truncate@npm:2.1.0" @@ -7090,7 +7250,7 @@ __metadata: languageName: node linkType: hard -"commander@npm:^4.0.1": +"commander@npm:^4.0.1, commander@npm:^4.1.1": version: 4.1.1 resolution: "commander@npm:4.1.1" checksum: 448585071bf8fb4c0bf9dd52abaee43dea086f801334caec2c8e8c9f456f8abc224c1614ccbbdbf7da5ac2524d230f13cf1fc86c233cf8a041ebecea7df106e9 @@ -7209,7 +7369,7 @@ __metadata: languageName: node linkType: hard -"concat-stream@npm:^1.5.0": +"concat-stream@npm:^1.5.0, concat-stream@npm:^1.6.2": version: 1.6.2 resolution: "concat-stream@npm:1.6.2" dependencies: @@ -7987,6 +8147,54 @@ __metadata: languageName: node linkType: hard +"cypress@npm:5.5.0": + version: 5.5.0 + resolution: "cypress@npm:5.5.0" + dependencies: + "@cypress/listr-verbose-renderer": ^0.4.1 + "@cypress/request": ^2.88.5 + "@cypress/xvfb": ^1.2.4 + "@types/sinonjs__fake-timers": ^6.0.1 + "@types/sizzle": ^2.3.2 + arch: ^2.1.2 + blob-util: 2.0.2 + bluebird: ^3.7.2 + cachedir: ^2.3.0 + chalk: ^4.1.0 + check-more-types: ^2.24.0 + cli-table3: ~0.6.0 + commander: ^4.1.1 + common-tags: ^1.8.0 + debug: ^4.1.1 + eventemitter2: ^6.4.2 + execa: ^4.0.2 + executable: ^4.1.1 + extract-zip: ^1.7.0 + fs-extra: ^9.0.1 + getos: ^3.2.1 + is-ci: ^2.0.0 + is-installed-globally: ^0.3.2 + lazy-ass: ^1.6.0 + listr: ^0.14.3 + lodash: ^4.17.19 + log-symbols: ^4.0.0 + minimist: ^1.2.5 + moment: ^2.27.0 + ospath: ^1.2.2 + pretty-bytes: ^5.4.1 + ramda: ~0.26.1 + request-progress: ^3.0.0 + supports-color: ^7.2.0 + tmp: ~0.2.1 + untildify: ^4.0.0 + url: ^0.11.0 + yauzl: ^2.10.0 + bin: + cypress: bin/cypress + checksum: d83bde909b95d084868d2a306357b6e6296354aa78263326b3e0eed73fcc226392acb734db91e95bf5e8838724ff443a46fa60b8070df374ee9e61b294f03e00 + languageName: node + linkType: hard + "d@npm:1, d@npm:^1.0.1": version: 1.0.1 resolution: "d@npm:1.0.1" @@ -8031,6 +8239,13 @@ __metadata: languageName: node linkType: hard +"date-fns@npm:^1.27.2": + version: 1.30.1 + resolution: "date-fns@npm:1.30.1" + checksum: 351fc19b04d79de77823a90213b87039392528fdd44a42e3e87f28333e76a48f99e4fbb37c9823b6284f7eb0ef88368fafe61749d6eff173241170977751fa47 + languageName: node + linkType: hard + "date-fns@npm:^2.14.0": version: 2.14.0 resolution: "date-fns@npm:2.14.0" @@ -8818,6 +9033,13 @@ __metadata: languageName: node linkType: hard +"elegant-spinner@npm:^1.0.1": + version: 1.0.1 + resolution: "elegant-spinner@npm:1.0.1" + checksum: 69837a8a8878cadabe8dd26faff9e40e5bf9d5e0af4bad66a0dbc94077c3f03fb0e459b59a2d625bf3c4309913f03d8c87f1abb70ef7a10a2cd4d83fe419c7a0 + languageName: node + linkType: hard + "elliptic@npm:^6.0.0": version: 6.5.2 resolution: "elliptic@npm:6.5.2" @@ -9555,6 +9777,13 @@ __metadata: languageName: node linkType: hard +"eventemitter2@npm:^6.4.2": + version: 6.4.3 + resolution: "eventemitter2@npm:6.4.3" + checksum: a67e68e6ff9f051232d58dd85634524c2e3ea7ffbbc19066c3c87bebfe5e2bc9dc791195c8bbc82cd7df344619080949c2e39929573977b6873c35a4af6eb316 + languageName: node + linkType: hard + "eventemitter3@npm:^3.1.0": version: 3.1.2 resolution: "eventemitter3@npm:3.1.2" @@ -9694,6 +9923,22 @@ __metadata: languageName: node linkType: hard +"executable@npm:^4.1.1": + version: 4.1.1 + resolution: "executable@npm:4.1.1" + dependencies: + pify: ^2.2.0 + checksum: 74463a897951f899028dbc7304f20ffe5a3e618703ed035618003242de77d355b55fb643bb4798671d9cf54451366349345cf19f173f9f0e33b0bb1148de9c82 + languageName: node + linkType: hard + +"exit-hook@npm:^1.0.0": + version: 1.1.1 + resolution: "exit-hook@npm:1.1.1" + checksum: 4f89f35c225f6e28e86e85770185a02d650162e93e671a1040315a86f42fdf851f837152b2c38ded703eaae8e9934cb0f8db217a2896ff01d8125879cad1101a + languageName: node + linkType: hard + "exit@npm:^0.1.2": version: 0.1.2 resolution: "exit@npm:0.1.2" @@ -9871,6 +10116,20 @@ __metadata: languageName: node linkType: hard +"extract-zip@npm:^1.7.0": + version: 1.7.0 + resolution: "extract-zip@npm:1.7.0" + dependencies: + concat-stream: ^1.6.2 + debug: ^2.6.9 + mkdirp: ^0.5.4 + yauzl: ^2.10.0 + bin: + extract-zip: cli.js + checksum: e90196dc3d874cb5f0684a5465c6a062363632ff1fbea91ad3983c05c79950b32f95c4b74653ae9efc11acff80c0a1cfe4852985804a57aa24ff6a1ca26fa0cb + languageName: node + linkType: hard + "extsprintf@npm:1.3.0": version: 1.3.0 resolution: "extsprintf@npm:1.3.0" @@ -10059,6 +10318,15 @@ __metadata: languageName: node linkType: hard +"fd-slicer@npm:~1.1.0": + version: 1.1.0 + resolution: "fd-slicer@npm:1.1.0" + dependencies: + pend: ~1.2.0 + checksum: ec759b16aea613f79540b450ffc278dcb927dccf55c89a364b68547441bec776d637f0a53aee9c9c70683406e4fc4b3aff29b1732bb388f9fa6ba200e8a79caa + languageName: node + linkType: hard + "fd@npm:~0.0.2": version: 0.0.3 resolution: "fd@npm:0.0.3" @@ -10073,6 +10341,16 @@ __metadata: languageName: node linkType: hard +"figures@npm:^1.7.0": + version: 1.7.0 + resolution: "figures@npm:1.7.0" + dependencies: + escape-string-regexp: ^1.0.5 + object-assign: ^4.1.0 + checksum: 17f76820de5201632650d0ea10b5485111677df96423a2401158e85eeb277344551fea908d4ca7407f4fa99ac2e7a70839ece89ce6185e7fa6787245aeb7fd87 + languageName: node + linkType: hard + "figures@npm:^2.0.0": version: 2.0.0 resolution: "figures@npm:2.0.0" @@ -10424,7 +10702,7 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:9.0.1, fs-extra@npm:^9.0.0": +"fs-extra@npm:9.0.1, fs-extra@npm:^9.0.0, fs-extra@npm:^9.0.1": version: 9.0.1 resolution: "fs-extra@npm:9.0.1" dependencies: @@ -11230,6 +11508,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"getos@npm:^3.2.1": + version: 3.2.1 + resolution: "getos@npm:3.2.1" + dependencies: + async: ^3.2.0 + checksum: 7015d56dea1c74d80a83290531a523d11483ce083395a3bd6c77c40545c02bbb9db20473345176229bfbd803bc4e04084fa63b5896b58cad50dbdb736bf36696 + languageName: node + linkType: hard + "getpass@npm:^0.1.1": version: 0.1.7 resolution: "getpass@npm:0.1.7" @@ -11307,6 +11594,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"global-dirs@npm:^2.0.1": + version: 2.0.1 + resolution: "global-dirs@npm:2.0.1" + dependencies: + ini: ^1.3.5 + checksum: 8dfdc04e846b748b6e1278e0db1827e968ae585468f5d1847fc5223a69a3d7920107dae0c569431f60bc490104b0b66f072a14728aec6dd6987134d362cb63cb + languageName: node + linkType: hard + "global-modules@npm:1.0.0, global-modules@npm:^1.0.0": version: 1.0.0 resolution: "global-modules@npm:1.0.0" @@ -12506,7 +12802,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"ini@npm:^1.3.4, ini@npm:~1.3.0": +"ini@npm:^1.3.4, ini@npm:^1.3.5, ini@npm:~1.3.0": version: 1.3.5 resolution: "ini@npm:1.3.5" checksum: 304a78d1e0ec49c6dc316b6a21bee5340ba85159c6581235b26a4cf27e2bac5f66f2c8f0e074ceaf3c48085f89fb974691cbf812df2128d2d74c5ef726d1b19a @@ -13062,6 +13358,16 @@ fsevents@^1.2.7: languageName: node linkType: hard +"is-installed-globally@npm:^0.3.2": + version: 0.3.2 + resolution: "is-installed-globally@npm:0.3.2" + dependencies: + global-dirs: ^2.0.1 + is-path-inside: ^3.0.1 + checksum: 10fc4fb09fe86c0ed5fa21e821607c6e1ca258386787b1aaad3afbe59470d0c3b50b076cbc996173b9b4c0de7d6a8b741aabf9229ab09d6c37ff663e51631529 + languageName: node + linkType: hard + "is-interactive@npm:^1.0.0": version: 1.0.0 resolution: "is-interactive@npm:1.0.0" @@ -13145,6 +13451,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"is-observable@npm:^1.1.0": + version: 1.1.0 + resolution: "is-observable@npm:1.1.0" + dependencies: + symbol-observable: ^1.1.0 + checksum: 6c408927886b91671661a3fd37a102ffc48f4b9f618a7d0272a8c2c3bf5b266a17b7805caf16110ba1d43add4f4e1585b65ae6e532167b3d1e22e62f3ac355c9 + languageName: node + linkType: hard + "is-path-cwd@npm:^2.0.0, is-path-cwd@npm:^2.2.0": version: 2.2.0 resolution: "is-path-cwd@npm:2.2.0" @@ -13209,6 +13524,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"is-promise@npm:^2.1.0": + version: 2.2.2 + resolution: "is-promise@npm:2.2.2" + checksum: 6fe84293b8750d3604a909979a7517a38b1618817f1fbbfdaf4d6138642117c85fbee12927b4d51349a5bcd9bdf8d1bf181f09145ede2d7eb41f4b394ab2ce7d + languageName: node + linkType: hard + "is-reference@npm:^1.1.2": version: 1.2.0 resolution: "is-reference@npm:1.2.0" @@ -14340,6 +14662,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"lazy-ass@npm:^1.6.0": + version: 1.6.0 + resolution: "lazy-ass@npm:1.6.0" + checksum: a4fa422498d35238905274eb350cbbd3768e06f61d221e3057f6cf1549362aad1275137785d52d05dbd479e030fb2812a40f2b88dd7e97800bd0140121d0c004 + languageName: node + linkType: hard + "leven@npm:^3.1.0": version: 3.1.0 resolution: "leven@npm:3.1.0" @@ -14383,6 +14712,60 @@ fsevents@^1.2.7: languageName: node linkType: hard +"listr-silent-renderer@npm:^1.1.1": + version: 1.1.1 + resolution: "listr-silent-renderer@npm:1.1.1" + checksum: ea91806bd07da1c99189ab2665b613c82ad91350e3f2f28dd1d7b274d335752acda1d861cadf05dbc40ae9d329187e7470ab927cd676c62abc74040d311c4fc3 + languageName: node + linkType: hard + +"listr-update-renderer@npm:^0.5.0": + version: 0.5.0 + resolution: "listr-update-renderer@npm:0.5.0" + dependencies: + chalk: ^1.1.3 + cli-truncate: ^0.2.1 + elegant-spinner: ^1.0.1 + figures: ^1.7.0 + indent-string: ^3.0.0 + log-symbols: ^1.0.2 + log-update: ^2.3.0 + strip-ansi: ^3.0.1 + peerDependencies: + listr: ^0.14.2 + checksum: 0219b8752f556a16432b7123c30deeefbd9a2d0bb3421ad71da2719834fbdad2daaf55067607da5cc54fd761aba549bf67292200f39cc8523ffd9052d36636ba + languageName: node + linkType: hard + +"listr-verbose-renderer@npm:^0.5.0": + version: 0.5.0 + resolution: "listr-verbose-renderer@npm:0.5.0" + dependencies: + chalk: ^2.4.1 + cli-cursor: ^2.1.0 + date-fns: ^1.27.2 + figures: ^2.0.0 + checksum: 83aec28ed114420c4ca4c4109e2432ffc071f9ea4a7d87b7bdb2856b97fa4d9f1f4b003a4871ce35d3863bdf7f9b1af7151da23c8f842cddfa66f8afd5b11c7b + languageName: node + linkType: hard + +"listr@npm:0.14.3, listr@npm:^0.14.3": + version: 0.14.3 + resolution: "listr@npm:0.14.3" + dependencies: + "@samverschueren/stream-to-observable": ^0.3.0 + is-observable: ^1.1.0 + is-promise: ^2.1.0 + is-stream: ^1.1.0 + listr-silent-renderer: ^1.1.1 + listr-update-renderer: ^0.5.0 + listr-verbose-renderer: ^0.5.0 + p-map: ^2.0.0 + rxjs: ^6.3.3 + checksum: 97a194b6ad32aa59e9fdb0f21e1937cfe11f19218a175af1e468360dd587d300b19aa29f51baceb497cbfa555c7583da2871f5df4acf4d42233970df7d6418ea + languageName: node + linkType: hard + "load-cfg@npm:^2.1.0": version: 2.1.0 resolution: "load-cfg@npm:2.1.0" @@ -14638,6 +15021,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"lodash.once@npm:^4.1.1": + version: 4.1.1 + resolution: "lodash.once@npm:4.1.1" + checksum: 236e00ca5f20304fab5b38aa3aedb034959153dae6edf33d7f9b00406ced8f24ed232a74f1200505d9049165ceea2ce1256199e1683b0a25e9de89091d4b13c2 + languageName: node + linkType: hard + "lodash.pick@npm:^4.2.1": version: 4.4.0 resolution: "lodash.pick@npm:4.4.0" @@ -14708,6 +15098,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"log-symbols@npm:^1.0.2": + version: 1.0.2 + resolution: "log-symbols@npm:1.0.2" + dependencies: + chalk: ^1.0.0 + checksum: 69ba19d52b32bdcc659752321bc89e21d697088b7dce8ed1fed9582e3e37eef6a859502eeb721d8b7d08f0b5cb3d92b16a4321e01393ba8bace23f2a834be077 + languageName: node + linkType: hard + "log-symbols@npm:^2.2.0": version: 2.2.0 resolution: "log-symbols@npm:2.2.0" @@ -15552,7 +15951,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"mkdirp@npm:0.x, mkdirp@npm:^0.5.0, mkdirp@npm:^0.5.1, mkdirp@npm:^0.5.3, mkdirp@npm:~0.5.1": +"mkdirp@npm:0.x, mkdirp@npm:^0.5.0, mkdirp@npm:^0.5.1, mkdirp@npm:^0.5.3, mkdirp@npm:^0.5.4, mkdirp@npm:~0.5.1": version: 0.5.5 resolution: "mkdirp@npm:0.5.5" dependencies: @@ -16342,6 +16741,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"onetime@npm:^1.0.0": + version: 1.1.0 + resolution: "onetime@npm:1.1.0" + checksum: ddf13ecba8d11048dfd3a8b99c30a509ec0f629cc46b5bbfcfc78442f39385aa7512e92ac8d1fd980c2649bde515ffede5c14223767f7f6f96b1aab33d11f6b3 + languageName: node + linkType: hard + "onetime@npm:^2.0.0": version: 2.0.1 resolution: "onetime@npm:2.0.1" @@ -16536,6 +16942,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"ospath@npm:^1.2.2": + version: 1.2.2 + resolution: "ospath@npm:1.2.2" + checksum: 510a8051a7a70bfe60b323bd4429e10b10f709e87a13cf8e0503e38aab8ba1161beefe27a8c2061f856ca0a35836697b95b9426852b5c6f8c27cc932b90dc399 + languageName: node + linkType: hard + "p-cancelable@npm:^0.4.0": version: 0.4.1 resolution: "p-cancelable@npm:0.4.1" @@ -17078,6 +17491,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"pend@npm:~1.2.0": + version: 1.2.0 + resolution: "pend@npm:1.2.0" + checksum: 35da01b2aa52458fbda2dceaeb5305c0d6c7262beca67d9f4c97bd70e4a8f4457f5fa01ffea3b3f786fb310b9b3b98515c52de3d7ae0b50dfb50b2a2d38d042b + languageName: node + linkType: hard + "performance-now@npm:^2.1.0": version: 2.1.0 resolution: "performance-now@npm:2.1.0" @@ -17099,7 +17519,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"pify@npm:^2.0.0": +"pify@npm:^2.0.0, pify@npm:^2.2.0": version: 2.3.0 resolution: "pify@npm:2.3.0" checksum: d5758aa570bbd5969c62b5f745065006827ef4859b32af302e3df2bb5978e6c1e50c2360d7ffefa102e451084f4530115c84570c185ba5153ee9871c977fe278 @@ -17822,6 +18242,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"pretty-bytes@npm:^5.4.1": + version: 5.4.1 + resolution: "pretty-bytes@npm:5.4.1" + checksum: da79e856b6fbdf2b3325837e5727a0b03be5c5a4854c17a60235aab6714c97060903913639c47559376e21a9dbf5ad7d958da1d512fdf568ee5c18d02cf2bd54 + languageName: node + linkType: hard + "pretty-error@npm:^2.1.1": version: 2.1.1 resolution: "pretty-error@npm:2.1.1" @@ -18166,6 +18593,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"ramda@npm:~0.26.1": + version: 0.26.1 + resolution: "ramda@npm:0.26.1" + checksum: 22e3fbfabdf45d7f7e8e0ff198be6c1f94d1cc16dd68f4c1786436b4583f8f1ef610a3bf0e8e8984c11346791da6ebadbe5b63dd29f2939bdfed7362d277c07b + languageName: node + linkType: hard + "randombytes@npm:^2.0.0, randombytes@npm:^2.0.1, randombytes@npm:^2.0.5, randombytes@npm:^2.1.0": version: 2.1.0 resolution: "randombytes@npm:2.1.0" @@ -18515,6 +18949,7 @@ fsevents@^1.2.7: "@types/react-dom": 16.9.9 "@types/react-transition-group": 4.4.0 classnames: ^2.2.6 + cypress: 5.5.0 docz: 2.3.1 gatsby: 2.23.11 gatsby-theme-docz: 2.3.1 @@ -19307,6 +19742,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"request-progress@npm:^3.0.0": + version: 3.0.0 + resolution: "request-progress@npm:3.0.0" + dependencies: + throttleit: ^1.0.0 + checksum: ea729c9e5e8bdf0f981ab9a8466c68c349ee1decf43109f09a4ac25c3b504aa35a78c17f2d89b6b013229cbb63499978dbac76795858c0b559ce3581c540f731 + languageName: node + linkType: hard + "request-promise-core@npm:1.1.4": version: 1.1.4 resolution: "request-promise-core@npm:1.1.4" @@ -19509,6 +19953,16 @@ resolve@^1.10.0: languageName: node linkType: hard +"restore-cursor@npm:^1.0.1": + version: 1.0.1 + resolution: "restore-cursor@npm:1.0.1" + dependencies: + exit-hook: ^1.0.0 + onetime: ^1.0.0 + checksum: 07ab5114eb6fe69e931f0df88ae28a3dd0018360622d3bb72bbf3b4cdbac5b6bc45e4bb502190c688484240bba3f02231d1f0a6ae68cab453c4aca168e3fccae + languageName: node + linkType: hard + "restore-cursor@npm:^2.0.0": version: 2.0.0 resolution: "restore-cursor@npm:2.0.0" @@ -19739,6 +20193,15 @@ resolve@^1.10.0: languageName: node linkType: hard +"rxjs@npm:^6.3.3": + version: 6.6.3 + resolution: "rxjs@npm:6.6.3" + dependencies: + tslib: ^1.9.0 + checksum: 61a3da6db947f69b7d805df3a619d8f60678b7372c4d571dd63e45ef3532be984a88307ea0aa2cd8d2578b62c3c022186e8da9dca47c9c1b8c9ecba6f5581deb + languageName: node + linkType: hard + "rxjs@npm:^6.5.3": version: 6.5.5 resolution: "rxjs@npm:6.5.5" @@ -20282,6 +20745,13 @@ resolve@^1.10.0: languageName: node linkType: hard +"slice-ansi@npm:0.0.4": + version: 0.0.4 + resolution: "slice-ansi@npm:0.0.4" + checksum: 8fa79b3017a15042d91ab50f6c1ba5fa5ed6ff034f9bb1afe4597f5c7fff510deeae98b1f81e9139580909a497936866e40287f35973c7117e62829407fa2e81 + languageName: node + linkType: hard + "slice-ansi@npm:^2.1.0": version: 2.1.0 resolution: "slice-ansi@npm:2.1.0" @@ -21233,6 +21703,15 @@ resolve@^1.10.0: languageName: node linkType: hard +"supports-color@npm:^7.2.0": + version: 7.2.0 + resolution: "supports-color@npm:7.2.0" + dependencies: + has-flag: ^4.0.0 + checksum: 8e57067c39216f3c2ffce7cc14ca934d54746192571203aa9c9922d97d2d55cc1bdaa9e41a11f91e620670b5a74ebdec6b548a885d8cc2dea7cab59e21416029 + languageName: node + linkType: hard + "supports-hyperlinks@npm:^2.0.0": version: 2.1.0 resolution: "supports-hyperlinks@npm:2.1.0" @@ -21283,7 +21762,7 @@ resolve@^1.10.0: languageName: node linkType: hard -"symbol-observable@npm:^1.0.4, symbol-observable@npm:^1.2.0": +"symbol-observable@npm:^1.0.4, symbol-observable@npm:^1.1.0, symbol-observable@npm:^1.2.0": version: 1.2.0 resolution: "symbol-observable@npm:1.2.0" checksum: 268834a1d4cba19d40f367e5c2755f612969c8418e43a3be17408e392802a667f8bb542893440d58a080a8ea8da05ea98e27e472b9f4ff6fbda78a21a1a41c53 @@ -21475,6 +21954,13 @@ resolve@^1.10.0: languageName: node linkType: hard +"throttleit@npm:^1.0.0": + version: 1.0.0 + resolution: "throttleit@npm:1.0.0" + checksum: 52f0a29c8b444d49fed2454cc4d6b5bf342db63727e3f8d9b86d1c294779aa8c6655b3264d78dfa7624c2ae073bfe8a472680fbba7c35e7f1cb4a74664814ce1 + languageName: node + linkType: hard + "through2@npm:^2.0.0, through2@npm:^2.0.1": version: 2.0.5 resolution: "through2@npm:2.0.5" @@ -21558,7 +22044,7 @@ resolve@^1.10.0: languageName: node linkType: hard -"tmp@npm:^0.2.1": +"tmp@npm:^0.2.1, tmp@npm:~0.2.1": version: 0.2.1 resolution: "tmp@npm:0.2.1" dependencies: @@ -22537,6 +23023,13 @@ typescript@^3.7.3: languageName: node linkType: hard +"untildify@npm:^4.0.0": + version: 4.0.0 + resolution: "untildify@npm:4.0.0" + checksum: 531c5d5994a2eeb63533784c4707bf39b8edf9e10421e5136f7cdbea7df2eca11a5132836f9ad08a113d8144624435b5b2e904affbfcf82fe733710ea8d01e6d + languageName: node + linkType: hard + "upath@npm:^1.1.1": version: 1.2.0 resolution: "upath@npm:1.2.0" @@ -23751,6 +24244,16 @@ typescript@^3.7.3: languageName: node linkType: hard +"yauzl@npm:^2.10.0": + version: 2.10.0 + resolution: "yauzl@npm:2.10.0" + dependencies: + buffer-crc32: ~0.2.3 + fd-slicer: ~1.1.0 + checksum: 6d0c4e72706ec2df6ea842d09c792e7b34badc5db3d8a893e0c70d0e464c9bf82bac4b1690f3515b5e1d96b72fceb6cc4dd96465426077ba6dddc54e7dd4d517 + languageName: node + linkType: hard + "yeast@npm:0.1.2": version: 0.1.2 resolution: "yeast@npm:0.1.2"