├── .canvas ├── .github └── workflows │ └── canvas-sync-ruby-update.yml ├── .gitignore ├── .learn ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── css ├── cleanup.css └── paint.css ├── images ├── sketch.jpg ├── tag-1.png ├── tag-2.png ├── tag-3.png ├── tag-4.png ├── tag-5.png ├── tag-6.png ├── tag-7.png └── wall.jpg ├── index.html ├── package-lock.json ├── package.json └── test └── indexTest.js /.canvas: -------------------------------------------------------------------------------- 1 | --- 2 | :lessons: 3 | - :id: 218917 4 | :course_id: 6602 5 | :canvas_url: https://learning.flatironschool.com/courses/6602/assignments/218917 6 | :type: assignment 7 | -------------------------------------------------------------------------------- /.github/workflows/canvas-sync-ruby-update.yml: -------------------------------------------------------------------------------- 1 | name: Sync with Canvas Ruby v2.7 2 | 3 | on: 4 | push: 5 | branches: [master, main] 6 | paths: 7 | - 'README.md' 8 | 9 | jobs: 10 | sync: 11 | name: Sync with Canvas 12 | 13 | runs-on: ubuntu-latest 14 | 15 | steps: 16 | - uses: actions/checkout@v2 17 | 18 | - name: Set up Ruby 19 | uses: ruby/setup-ruby@v1 20 | with: 21 | ruby-version: 2.7 22 | 23 | - name: Install github-to-canvas 24 | run: gem install github-to-canvas 25 | 26 | # Secret stored in learn-co-curriculum Settings/Secrets 27 | - name: Sync from .canvas file 28 | run: github-to-canvas -a -lr 29 | env: 30 | CANVAS_API_KEY: ${{ secrets.CANVAS_API_KEY }} 31 | CANVAS_API_PATH: ${{ secrets.CANVAS_API_PATH }} 32 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by https://www.gitignore.io/api/node 2 | 3 | .DS_Store 4 | 5 | ### Node ### 6 | # Logs 7 | logs 8 | *.log 9 | npm-debug.log* 10 | 11 | # Runtime data 12 | pids 13 | *.pid 14 | *.seed 15 | 16 | # Directory for instrumented libs generated by jscoverage/JSCover 17 | lib-cov 18 | 19 | # Compiled binary addons (http://nodejs.org/api/addons.html) 20 | build/Release 21 | 22 | # Dependency directories 23 | node_modules 24 | jspm_packages 25 | 26 | # Optional npm cache directory 27 | .npm 28 | 29 | # Optional REPL history 30 | .node_repl_history 31 | 32 | # Learn-specific .results.json 33 | .results.json 34 | 35 | # Ignore bundler config. 36 | /.bundle 37 | 38 | # Ignore the default SQLite database. 39 | /db/*.sqlite3 40 | /db/*.sqlite3-journal 41 | 42 | # Ignore all logfiles and tempfiles. 43 | /log/* 44 | !/log/.keep 45 | /tmp 46 | -------------------------------------------------------------------------------- /.learn: -------------------------------------------------------------------------------- 1 | languages: 2 | - html 3 | - css 4 | tags: 5 | - dev tools 6 | - developer tools 7 | - style 8 | - selectors 9 | - authority 10 | - cascade 11 | - overrides 12 | - graffiti 13 | - kids 14 | resources: 3 15 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to Learn.co Curriculum 2 | 3 | We're really exited that you're about to contribute to the [open curriculum](https://learn.co/content-license) on [Learn.co](https://learn.co). If this is your first time contributing, please continue reading to learn how to make the most meaningful and useful impact possible. 4 | 5 | ## Raising an Issue to Encourage a Contribution 6 | 7 | If you notice a problem with the curriculum that you believe needs improvement 8 | but you're unable to make the change yourself, you should raise a Github issue 9 | containing a clear description of the problem. Include relevant snippets of 10 | the content and/or screenshots if applicable. Curriculum owners regularly review 11 | issue lists and your issue will be prioritized and addressed as appropriate. 12 | 13 | ## Submitting a Pull Request to Suggest an Improvement 14 | 15 | If you see an opportunity for improvement and can make the change yourself go 16 | ahead and use a typical git workflow to make it happen: 17 | 18 | * Fork this curriculum repository 19 | * Make the change on your fork, with descriptive commits in the standard format 20 | * Open a Pull Request against this repo 21 | 22 | A curriculum owner will review your change and approve or comment on it in due 23 | course. 24 | 25 | # Why Contribute? 26 | 27 | Curriculum on Learn is publicly and freely available under Learn's 28 | [Educational Content License](https://learn.co/content-license). By 29 | embracing an open-source contribution model, our goal is for the curriculum 30 | on Learn to become, in time, the best educational content the world has 31 | ever seen. 32 | 33 | We need help from the community of Learners to maintain and improve the 34 | educational content. Everything from fixing typos, to correcting 35 | out-dated information, to improving exposition, to adding better examples, 36 | to fixing tests—all contributions to making the curriculum more effective are 37 | welcome. 38 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | #Learn.co Educational Content License 2 | 3 | Copyright (c) 2015 Flatiron School, Inc 4 | 5 | The Flatiron School, Inc. owns this Educational Content. However, the Flatiron School supports the development and availability of educational materials in the public domain. Therefore, the Flatiron School grants Users of the Flatiron Educational Content set forth in this repository certain rights to reuse, build upon and share such Educational Content subject to the terms of the Educational Content License set forth [here](http://learn.co/content-license) (http://learn.co/content-license). You must read carefully the terms and conditions contained in the Educational Content License as such terms govern access to and use of the Educational Content. 6 | 7 | Flatiron School is willing to allow you access to and use of the Educational Content only on the condition that you accept all of the terms and conditions contained in the Educational Content License set forth [here](http://learn.co/content-license) (http://learn.co/content-license). By accessing and/or using the Educational Content, you are agreeing to all of the terms and conditions contained in the Educational Content License. If you do not agree to any or all of the terms of the Educational Content License, you are prohibited from accessing, reviewing or using in any way the Educational Content. 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # BONUS: CSS Graffiti Override Lab 2 | 3 | ## Learning Goals 4 | 5 | - Use the browser developer tools 6 | - Override existing styles 7 | 8 | ## Introduction 9 | 10 | Imagine that you are walking down the street, and you notice that there's a 11 | mural that has been painted over with various graffiti tags. In reality, 12 | cleaning this up could be a challenging feat; however, in CSS, you have the 13 | power to manipulate the DOM with just a line or two of code and to restore the 14 | mural to its original look! In this lab, we've created a virtual wall. Using 15 | only CSS, how can you remove the tags? 16 | 17 | ## Getting Started 18 | 19 | **Fork and clone** this lesson into your local environment. Navigate into its 20 | directory in the terminal, then run `code .` to open the files in Visual Studio 21 | Code. Run `npm test` as you go to see your test progress. 22 | 23 | ## Use the Browser Developer Tools 24 | 25 | Assuming you have opened the index file in Chrome, open the [dev tools][tools]. 26 | You can quickly access Chrome dev tools with the keyboard shortcut 27 | `Cmd+Option+i` on a Mac, or by right/control-clicking anywhere in the window and 28 | selecting `inspect`. 29 | 30 | ![Chrome Dev Tools](https://curriculum-content.s3.amazonaws.com/fewds-css/css-graffiti-override/inspect1.png "Open the Chrome dev tools") 31 | 32 | Inspect the elements of the graffiti wall in the dev tools by hovering over and 33 | clicking on nested elements. Take a close look at what's made available to you 34 | in the dev tools pane. You can see which style sheets specific style 35 | declarations live in, as well as create new styles on the fly. Now, make note of 36 | the CSS styles used to add graffiti tags (as background images) to the wall. 37 | 38 | ![Chrome Dev Tools](https://curriculum-content.s3.amazonaws.com/fewds-css/css-graffiti-override/inspect2.png "Inspect the styles on each element") 39 | 40 | ## Override Existing Styles 41 | 42 | In the file `css/cleanup.css`, write selectors that have more specificity 43 | (authority) than those that are showing the graffiti tags. You can test out 44 | writing classes in dev tools by clicking the `+` in the top right-hand corner of 45 | the pane. You can also click the `sources` tab and select `css/cleanup.css` in 46 | the dev tools pane. This allows you to edit the CSS file directly. It _won't_ 47 | save your edits, but it will give a live update of changes so that it's easier 48 | to manipulate the DOM without refreshing the page. From there, you can copy and 49 | paste your working changes into the file. 50 | 51 | To remove the tags, use the CSS declaration `display:none;`. It will change the 52 | elements' previous display property value from `display: block` to 53 | `display: none`, which will hide that graffiti. 54 | 55 | For example, for "tag-1" the developer tools reveal that the style applying the 56 | graffiti here is: 57 | 58 | ```css 59 | .tag-1 { 60 | background: url(../images/tag-1.png) no-repeat; 61 | z-index: 7; 62 | display: block; 63 | } 64 | ``` 65 | 66 | You'll need to override this by setting its display to `display: none;` instead. 67 | We can do this by writing a selector statement that is more specific such as: 68 | 69 | ```css 70 | #wall .tag-1 { 71 | display: none; 72 | } 73 | ``` 74 | 75 | This selects elements with a class of "tag-1" that happen to also be inside an 76 | element with an id of "wall". This is more specific, and therefore will override 77 | the previous statement and hide the graffiti. For more info on how specificity 78 | in CSS works take a look at: [Smashing Magazines What You Need to Know About CSS 79 | Specificity][smash]. You can also take advantage of a [Specificity 80 | Calculator][spec-calc] to assist with finding and understanding options for 81 | overriding styles. 82 | 83 | **Do not use the CSS `!important` value**! It is considered a bad practice and 84 | should be used sparingly, in very specific edge-cases. For this lab, avoid 85 | adding inline or embedded CSS to the index.html file, or any additional class or 86 | id attributes to the index.html file either. This will make it more challenging 87 | as you will have to write CSS that is more specific based on the existing 88 | markup. 89 | 90 | ## Moving On 91 | 92 | When you're done, run `npm test` from the command line to confirm you've 93 | passed all tests, then push and submit your work using CodeGrade. 94 | 95 | ## Conclusion 96 | 97 | With the dev tools and resources on CSS specificity rules, work your way through 98 | all seven graffiti pictures until the wall is fully clean. In your 99 | experimentation, you will find that there are many ways to manipulate and 100 | override the DOM. This will become a common practice as you build out more 101 | complex websites or work with cloud-hosted third-party resources where you may 102 | not have direct access to the style sheet. 103 | 104 | ## Resources 105 | 106 | - [Smashing Magazine - CSS Specificity](http://www.smashingmagazine.com/2007/07/27/css-specificity-things-you-should-know/) 107 | - [CSS Tricks - CSS Specificity](http://css-tricks.com/specifics-on-css-specificity/) 108 | - [Specificity Calculator](https://specificity.keegan.st/) 109 | 110 | [tools]: http://discover-devtools.codeschool.com/ 111 | [smash]: 112 | http://www.smashingmagazine.com/2007/07/27/css-specificity-things-you-should-know/ 113 | [spec-calc]: https://specificity.keegan.st/ 114 | -------------------------------------------------------------------------------- /css/cleanup.css: -------------------------------------------------------------------------------- 1 | /* write your override styles here */ 2 | -------------------------------------------------------------------------------- /css/paint.css: -------------------------------------------------------------------------------- 1 | body { 2 | background: black url(../images/sketch.jpg) no-repeat center; 3 | background-size: cover; 4 | } 5 | 6 | #wall { 7 | position: relative; 8 | margin: 40px auto; 9 | width: 980px; 10 | height: 622px; 11 | background: url(../images/wall.jpg) no-repeat center; 12 | -moz-box-shadow: 15px 15px 47px lime, -15px -15px 47px aqua; 13 | -webkit-box-shadow: 15px 15px 47px lime, -15px -15px 47px aqua; 14 | box-shadow: 15px 15px 47px lime, -15px -15px 47px aqua; 15 | border: 15px solid white; 16 | border-bottom: 60px solid white; 17 | } 18 | 19 | .tag-1, #tag-2, #tag-3, #tag-4, #tag-5, #tag-6, #tag-7 { 20 | position: absolute; 21 | top: 0; 22 | left: 0; 23 | width: 980px; 24 | height: 622px; 25 | } 26 | 27 | .tag-1 { 28 | background: url(../images/tag-1.png) no-repeat; 29 | z-index: 7; 30 | display: block; 31 | } 32 | 33 | #wall #tag-2 { 34 | background: url(../images/tag-2.png) no-repeat; 35 | z-index: 6; 36 | display: block; 37 | } 38 | 39 | div#wall #tag-3.slick { 40 | background: url(../images/tag-3.png) no-repeat; 41 | z-index: 5; 42 | display: block; 43 | } 44 | 45 | #wall #tag-4 { 46 | background: url(../images/tag-4.png) no-repeat; 47 | z-index: 4; 48 | display: block; 49 | } 50 | 51 | div#wall .parent #tag-5.slick { 52 | background: url(../images/tag-5.png) no-repeat; 53 | z-index: 3; 54 | display: block; 55 | } 56 | 57 | div#wall div.parent div:last-child div#tag-6 { 58 | background: url(../images/tag-6.png) no-repeat; 59 | z-index: 2; 60 | display: block; 61 | } 62 | 63 | body div#wall div.parent div > #tag-7.slick { 64 | background: url(../images/tag-7.png) no-repeat; 65 | z-index: 1; 66 | display: block; 67 | } 68 | -------------------------------------------------------------------------------- /images/sketch.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-co-curriculum/phase-0-css-graffiti-lab/90803ffd74ddd2e7ed77644c557d1450558ed419/images/sketch.jpg -------------------------------------------------------------------------------- /images/tag-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-co-curriculum/phase-0-css-graffiti-lab/90803ffd74ddd2e7ed77644c557d1450558ed419/images/tag-1.png -------------------------------------------------------------------------------- /images/tag-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-co-curriculum/phase-0-css-graffiti-lab/90803ffd74ddd2e7ed77644c557d1450558ed419/images/tag-2.png -------------------------------------------------------------------------------- /images/tag-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-co-curriculum/phase-0-css-graffiti-lab/90803ffd74ddd2e7ed77644c557d1450558ed419/images/tag-3.png -------------------------------------------------------------------------------- /images/tag-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-co-curriculum/phase-0-css-graffiti-lab/90803ffd74ddd2e7ed77644c557d1450558ed419/images/tag-4.png -------------------------------------------------------------------------------- /images/tag-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-co-curriculum/phase-0-css-graffiti-lab/90803ffd74ddd2e7ed77644c557d1450558ed419/images/tag-5.png -------------------------------------------------------------------------------- /images/tag-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-co-curriculum/phase-0-css-graffiti-lab/90803ffd74ddd2e7ed77644c557d1450558ed419/images/tag-6.png -------------------------------------------------------------------------------- /images/tag-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-co-curriculum/phase-0-css-graffiti-lab/90803ffd74ddd2e7ed77644c557d1450558ed419/images/tag-7.png -------------------------------------------------------------------------------- /images/wall.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/learn-co-curriculum/phase-0-css-graffiti-lab/90803ffd74ddd2e7ed77644c557d1450558ed419/images/wall.jpg -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CSS Graffiti Override 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 | 36 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "phase-0-css-fundamentals-lab", 3 | "version": "1.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "phase-0-css-fundamentals-lab", 9 | "version": "1.0.0", 10 | "license": "Included in Repo", 11 | "devDependencies": { 12 | "chai": "^4.3.4", 13 | "chai-dom": "^1.10.0", 14 | "global-jsdom": "^8.3.0", 15 | "jsdom": "^18.1.0", 16 | "mocha": "^9.2.2", 17 | "mocha-multi": "^1.1.5" 18 | } 19 | }, 20 | "node_modules/@tootallnate/once": { 21 | "version": "2.0.0", 22 | "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", 23 | "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", 24 | "dev": true, 25 | "engines": { 26 | "node": ">= 10" 27 | } 28 | }, 29 | "node_modules/@ungap/promise-all-settled": { 30 | "version": "1.1.2", 31 | "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", 32 | "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", 33 | "dev": true 34 | }, 35 | "node_modules/abab": { 36 | "version": "2.0.5", 37 | "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", 38 | "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", 39 | "dev": true 40 | }, 41 | "node_modules/acorn": { 42 | "version": "8.5.0", 43 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", 44 | "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", 45 | "dev": true, 46 | "bin": { 47 | "acorn": "bin/acorn" 48 | }, 49 | "engines": { 50 | "node": ">=0.4.0" 51 | } 52 | }, 53 | "node_modules/acorn-globals": { 54 | "version": "6.0.0", 55 | "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", 56 | "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", 57 | "dev": true, 58 | "dependencies": { 59 | "acorn": "^7.1.1", 60 | "acorn-walk": "^7.1.1" 61 | } 62 | }, 63 | "node_modules/acorn-globals/node_modules/acorn": { 64 | "version": "7.4.1", 65 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", 66 | "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", 67 | "dev": true, 68 | "bin": { 69 | "acorn": "bin/acorn" 70 | }, 71 | "engines": { 72 | "node": ">=0.4.0" 73 | } 74 | }, 75 | "node_modules/acorn-walk": { 76 | "version": "7.2.0", 77 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", 78 | "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", 79 | "dev": true, 80 | "engines": { 81 | "node": ">=0.4.0" 82 | } 83 | }, 84 | "node_modules/agent-base": { 85 | "version": "6.0.2", 86 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", 87 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", 88 | "dev": true, 89 | "dependencies": { 90 | "debug": "4" 91 | }, 92 | "engines": { 93 | "node": ">= 6.0.0" 94 | } 95 | }, 96 | "node_modules/ansi-colors": { 97 | "version": "4.1.1", 98 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", 99 | "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", 100 | "dev": true, 101 | "engines": { 102 | "node": ">=6" 103 | } 104 | }, 105 | "node_modules/ansi-regex": { 106 | "version": "5.0.1", 107 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 108 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 109 | "dev": true, 110 | "engines": { 111 | "node": ">=8" 112 | } 113 | }, 114 | "node_modules/ansi-styles": { 115 | "version": "4.3.0", 116 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 117 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 118 | "dev": true, 119 | "dependencies": { 120 | "color-convert": "^2.0.1" 121 | }, 122 | "engines": { 123 | "node": ">=8" 124 | }, 125 | "funding": { 126 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 127 | } 128 | }, 129 | "node_modules/anymatch": { 130 | "version": "3.1.3", 131 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", 132 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", 133 | "dev": true, 134 | "dependencies": { 135 | "normalize-path": "^3.0.0", 136 | "picomatch": "^2.0.4" 137 | }, 138 | "engines": { 139 | "node": ">= 8" 140 | } 141 | }, 142 | "node_modules/argparse": { 143 | "version": "2.0.1", 144 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 145 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 146 | "dev": true 147 | }, 148 | "node_modules/assertion-error": { 149 | "version": "1.1.0", 150 | "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", 151 | "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", 152 | "dev": true, 153 | "engines": { 154 | "node": "*" 155 | } 156 | }, 157 | "node_modules/asynckit": { 158 | "version": "0.4.0", 159 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 160 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", 161 | "dev": true 162 | }, 163 | "node_modules/balanced-match": { 164 | "version": "1.0.2", 165 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 166 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 167 | "dev": true 168 | }, 169 | "node_modules/binary-extensions": { 170 | "version": "2.2.0", 171 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 172 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 173 | "dev": true, 174 | "engines": { 175 | "node": ">=8" 176 | } 177 | }, 178 | "node_modules/brace-expansion": { 179 | "version": "1.1.11", 180 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 181 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 182 | "dev": true, 183 | "dependencies": { 184 | "balanced-match": "^1.0.0", 185 | "concat-map": "0.0.1" 186 | } 187 | }, 188 | "node_modules/braces": { 189 | "version": "3.0.2", 190 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 191 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 192 | "dev": true, 193 | "dependencies": { 194 | "fill-range": "^7.0.1" 195 | }, 196 | "engines": { 197 | "node": ">=8" 198 | } 199 | }, 200 | "node_modules/browser-process-hrtime": { 201 | "version": "1.0.0", 202 | "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", 203 | "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", 204 | "dev": true 205 | }, 206 | "node_modules/browser-stdout": { 207 | "version": "1.3.1", 208 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", 209 | "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", 210 | "dev": true 211 | }, 212 | "node_modules/camelcase": { 213 | "version": "6.2.1", 214 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", 215 | "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", 216 | "dev": true, 217 | "engines": { 218 | "node": ">=10" 219 | }, 220 | "funding": { 221 | "url": "https://github.com/sponsors/sindresorhus" 222 | } 223 | }, 224 | "node_modules/chai": { 225 | "version": "4.3.4", 226 | "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", 227 | "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", 228 | "dev": true, 229 | "dependencies": { 230 | "assertion-error": "^1.1.0", 231 | "check-error": "^1.0.2", 232 | "deep-eql": "^3.0.1", 233 | "get-func-name": "^2.0.0", 234 | "pathval": "^1.1.1", 235 | "type-detect": "^4.0.5" 236 | }, 237 | "engines": { 238 | "node": ">=4" 239 | } 240 | }, 241 | "node_modules/chai-dom": { 242 | "version": "1.10.0", 243 | "resolved": "https://registry.npmjs.org/chai-dom/-/chai-dom-1.10.0.tgz", 244 | "integrity": "sha512-/FE0NvEGMXx1x1YQlc8ihLrEhH8JawflchuGe6ypIAX/4Zwmkr4cC3mfR9pDytbxsE/2LSm719TeU7VF/TCmtg==", 245 | "dev": true, 246 | "engines": { 247 | "node": ">= 0.12.0" 248 | }, 249 | "peerDependencies": { 250 | "chai": ">= 3", 251 | "mocha": ">= 2" 252 | } 253 | }, 254 | "node_modules/chalk": { 255 | "version": "4.1.2", 256 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 257 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 258 | "dev": true, 259 | "dependencies": { 260 | "ansi-styles": "^4.1.0", 261 | "supports-color": "^7.1.0" 262 | }, 263 | "engines": { 264 | "node": ">=10" 265 | }, 266 | "funding": { 267 | "url": "https://github.com/chalk/chalk?sponsor=1" 268 | } 269 | }, 270 | "node_modules/chalk/node_modules/supports-color": { 271 | "version": "7.2.0", 272 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 273 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 274 | "dev": true, 275 | "dependencies": { 276 | "has-flag": "^4.0.0" 277 | }, 278 | "engines": { 279 | "node": ">=8" 280 | } 281 | }, 282 | "node_modules/check-error": { 283 | "version": "1.0.2", 284 | "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", 285 | "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", 286 | "dev": true, 287 | "engines": { 288 | "node": "*" 289 | } 290 | }, 291 | "node_modules/chokidar": { 292 | "version": "3.5.3", 293 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", 294 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 295 | "dev": true, 296 | "funding": [ 297 | { 298 | "type": "individual", 299 | "url": "https://paulmillr.com/funding/" 300 | } 301 | ], 302 | "dependencies": { 303 | "anymatch": "~3.1.2", 304 | "braces": "~3.0.2", 305 | "glob-parent": "~5.1.2", 306 | "is-binary-path": "~2.1.0", 307 | "is-glob": "~4.0.1", 308 | "normalize-path": "~3.0.0", 309 | "readdirp": "~3.6.0" 310 | }, 311 | "engines": { 312 | "node": ">= 8.10.0" 313 | }, 314 | "optionalDependencies": { 315 | "fsevents": "~2.3.2" 316 | } 317 | }, 318 | "node_modules/cliui": { 319 | "version": "7.0.4", 320 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", 321 | "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", 322 | "dev": true, 323 | "dependencies": { 324 | "string-width": "^4.2.0", 325 | "strip-ansi": "^6.0.0", 326 | "wrap-ansi": "^7.0.0" 327 | } 328 | }, 329 | "node_modules/color-convert": { 330 | "version": "2.0.1", 331 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 332 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 333 | "dev": true, 334 | "dependencies": { 335 | "color-name": "~1.1.4" 336 | }, 337 | "engines": { 338 | "node": ">=7.0.0" 339 | } 340 | }, 341 | "node_modules/color-name": { 342 | "version": "1.1.4", 343 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 344 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 345 | "dev": true 346 | }, 347 | "node_modules/combined-stream": { 348 | "version": "1.0.8", 349 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 350 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 351 | "dev": true, 352 | "dependencies": { 353 | "delayed-stream": "~1.0.0" 354 | }, 355 | "engines": { 356 | "node": ">= 0.8" 357 | } 358 | }, 359 | "node_modules/concat-map": { 360 | "version": "0.0.1", 361 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 362 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 363 | "dev": true 364 | }, 365 | "node_modules/cssom": { 366 | "version": "0.5.0", 367 | "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", 368 | "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", 369 | "dev": true 370 | }, 371 | "node_modules/cssstyle": { 372 | "version": "2.3.0", 373 | "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", 374 | "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", 375 | "dev": true, 376 | "dependencies": { 377 | "cssom": "~0.3.6" 378 | }, 379 | "engines": { 380 | "node": ">=8" 381 | } 382 | }, 383 | "node_modules/cssstyle/node_modules/cssom": { 384 | "version": "0.3.8", 385 | "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", 386 | "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", 387 | "dev": true 388 | }, 389 | "node_modules/data-urls": { 390 | "version": "3.0.1", 391 | "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.1.tgz", 392 | "integrity": "sha512-Ds554NeT5Gennfoo9KN50Vh6tpgtvYEwraYjejXnyTpu1C7oXKxdFk75REooENHE8ndTVOJuv+BEs4/J/xcozw==", 393 | "dev": true, 394 | "dependencies": { 395 | "abab": "^2.0.3", 396 | "whatwg-mimetype": "^3.0.0", 397 | "whatwg-url": "^10.0.0" 398 | }, 399 | "engines": { 400 | "node": ">=12" 401 | } 402 | }, 403 | "node_modules/debug": { 404 | "version": "4.3.3", 405 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", 406 | "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", 407 | "dev": true, 408 | "dependencies": { 409 | "ms": "2.1.2" 410 | }, 411 | "engines": { 412 | "node": ">=6.0" 413 | }, 414 | "peerDependenciesMeta": { 415 | "supports-color": { 416 | "optional": true 417 | } 418 | } 419 | }, 420 | "node_modules/decamelize": { 421 | "version": "4.0.0", 422 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", 423 | "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", 424 | "dev": true, 425 | "engines": { 426 | "node": ">=10" 427 | }, 428 | "funding": { 429 | "url": "https://github.com/sponsors/sindresorhus" 430 | } 431 | }, 432 | "node_modules/decimal.js": { 433 | "version": "10.3.1", 434 | "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", 435 | "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", 436 | "dev": true 437 | }, 438 | "node_modules/deep-eql": { 439 | "version": "3.0.1", 440 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", 441 | "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", 442 | "dev": true, 443 | "dependencies": { 444 | "type-detect": "^4.0.0" 445 | }, 446 | "engines": { 447 | "node": ">=0.12" 448 | } 449 | }, 450 | "node_modules/deep-is": { 451 | "version": "0.1.4", 452 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 453 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", 454 | "dev": true 455 | }, 456 | "node_modules/delayed-stream": { 457 | "version": "1.0.0", 458 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 459 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", 460 | "dev": true, 461 | "engines": { 462 | "node": ">=0.4.0" 463 | } 464 | }, 465 | "node_modules/diff": { 466 | "version": "5.0.0", 467 | "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", 468 | "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", 469 | "dev": true, 470 | "engines": { 471 | "node": ">=0.3.1" 472 | } 473 | }, 474 | "node_modules/domexception": { 475 | "version": "4.0.0", 476 | "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", 477 | "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", 478 | "dev": true, 479 | "dependencies": { 480 | "webidl-conversions": "^7.0.0" 481 | }, 482 | "engines": { 483 | "node": ">=12" 484 | } 485 | }, 486 | "node_modules/emoji-regex": { 487 | "version": "8.0.0", 488 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 489 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 490 | "dev": true 491 | }, 492 | "node_modules/escalade": { 493 | "version": "3.1.1", 494 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 495 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 496 | "dev": true, 497 | "engines": { 498 | "node": ">=6" 499 | } 500 | }, 501 | "node_modules/escape-string-regexp": { 502 | "version": "4.0.0", 503 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 504 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 505 | "dev": true, 506 | "engines": { 507 | "node": ">=10" 508 | }, 509 | "funding": { 510 | "url": "https://github.com/sponsors/sindresorhus" 511 | } 512 | }, 513 | "node_modules/escodegen": { 514 | "version": "2.0.0", 515 | "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", 516 | "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", 517 | "dev": true, 518 | "dependencies": { 519 | "esprima": "^4.0.1", 520 | "estraverse": "^5.2.0", 521 | "esutils": "^2.0.2", 522 | "optionator": "^0.8.1" 523 | }, 524 | "bin": { 525 | "escodegen": "bin/escodegen.js", 526 | "esgenerate": "bin/esgenerate.js" 527 | }, 528 | "engines": { 529 | "node": ">=6.0" 530 | }, 531 | "optionalDependencies": { 532 | "source-map": "~0.6.1" 533 | } 534 | }, 535 | "node_modules/esprima": { 536 | "version": "4.0.1", 537 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 538 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 539 | "dev": true, 540 | "bin": { 541 | "esparse": "bin/esparse.js", 542 | "esvalidate": "bin/esvalidate.js" 543 | }, 544 | "engines": { 545 | "node": ">=4" 546 | } 547 | }, 548 | "node_modules/estraverse": { 549 | "version": "5.3.0", 550 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 551 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 552 | "dev": true, 553 | "engines": { 554 | "node": ">=4.0" 555 | } 556 | }, 557 | "node_modules/esutils": { 558 | "version": "2.0.3", 559 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 560 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 561 | "dev": true, 562 | "engines": { 563 | "node": ">=0.10.0" 564 | } 565 | }, 566 | "node_modules/fast-levenshtein": { 567 | "version": "2.0.6", 568 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 569 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 570 | "dev": true 571 | }, 572 | "node_modules/fill-range": { 573 | "version": "7.0.1", 574 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 575 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 576 | "dev": true, 577 | "dependencies": { 578 | "to-regex-range": "^5.0.1" 579 | }, 580 | "engines": { 581 | "node": ">=8" 582 | } 583 | }, 584 | "node_modules/find-up": { 585 | "version": "5.0.0", 586 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 587 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 588 | "dev": true, 589 | "dependencies": { 590 | "locate-path": "^6.0.0", 591 | "path-exists": "^4.0.0" 592 | }, 593 | "engines": { 594 | "node": ">=10" 595 | }, 596 | "funding": { 597 | "url": "https://github.com/sponsors/sindresorhus" 598 | } 599 | }, 600 | "node_modules/flat": { 601 | "version": "5.0.2", 602 | "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", 603 | "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", 604 | "dev": true, 605 | "bin": { 606 | "flat": "cli.js" 607 | } 608 | }, 609 | "node_modules/form-data": { 610 | "version": "4.0.0", 611 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", 612 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", 613 | "dev": true, 614 | "dependencies": { 615 | "asynckit": "^0.4.0", 616 | "combined-stream": "^1.0.8", 617 | "mime-types": "^2.1.12" 618 | }, 619 | "engines": { 620 | "node": ">= 6" 621 | } 622 | }, 623 | "node_modules/fs.realpath": { 624 | "version": "1.0.0", 625 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 626 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", 627 | "dev": true 628 | }, 629 | "node_modules/fsevents": { 630 | "version": "2.3.2", 631 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 632 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 633 | "dev": true, 634 | "hasInstallScript": true, 635 | "optional": true, 636 | "os": [ 637 | "darwin" 638 | ], 639 | "engines": { 640 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 641 | } 642 | }, 643 | "node_modules/get-caller-file": { 644 | "version": "2.0.5", 645 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 646 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", 647 | "dev": true, 648 | "engines": { 649 | "node": "6.* || 8.* || >= 10.*" 650 | } 651 | }, 652 | "node_modules/get-func-name": { 653 | "version": "2.0.0", 654 | "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", 655 | "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", 656 | "dev": true, 657 | "engines": { 658 | "node": "*" 659 | } 660 | }, 661 | "node_modules/glob": { 662 | "version": "7.2.0", 663 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", 664 | "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", 665 | "dev": true, 666 | "dependencies": { 667 | "fs.realpath": "^1.0.0", 668 | "inflight": "^1.0.4", 669 | "inherits": "2", 670 | "minimatch": "^3.0.4", 671 | "once": "^1.3.0", 672 | "path-is-absolute": "^1.0.0" 673 | }, 674 | "engines": { 675 | "node": "*" 676 | }, 677 | "funding": { 678 | "url": "https://github.com/sponsors/isaacs" 679 | } 680 | }, 681 | "node_modules/glob-parent": { 682 | "version": "5.1.2", 683 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 684 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 685 | "dev": true, 686 | "dependencies": { 687 | "is-glob": "^4.0.1" 688 | }, 689 | "engines": { 690 | "node": ">= 6" 691 | } 692 | }, 693 | "node_modules/glob/node_modules/minimatch": { 694 | "version": "3.1.2", 695 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 696 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 697 | "dev": true, 698 | "dependencies": { 699 | "brace-expansion": "^1.1.7" 700 | }, 701 | "engines": { 702 | "node": "*" 703 | } 704 | }, 705 | "node_modules/global-jsdom": { 706 | "version": "8.3.0", 707 | "resolved": "https://registry.npmjs.org/global-jsdom/-/global-jsdom-8.3.0.tgz", 708 | "integrity": "sha512-Bwe/Op/sKjx7mTlj7AejF3S7SEdDFv2fSVdlU/zsQv54UxeZu2+HlAzpFq2WDYYmmvUn5Rb2Y6nWoQZvwesWEQ==", 709 | "dev": true, 710 | "engines": { 711 | "node": ">=12" 712 | }, 713 | "peerDependencies": { 714 | "jsdom": ">=10.0.0 || <19" 715 | } 716 | }, 717 | "node_modules/growl": { 718 | "version": "1.10.5", 719 | "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", 720 | "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", 721 | "dev": true, 722 | "engines": { 723 | "node": ">=4.x" 724 | } 725 | }, 726 | "node_modules/has-flag": { 727 | "version": "4.0.0", 728 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 729 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 730 | "dev": true, 731 | "engines": { 732 | "node": ">=8" 733 | } 734 | }, 735 | "node_modules/has-symbols": { 736 | "version": "1.0.2", 737 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", 738 | "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", 739 | "dev": true, 740 | "engines": { 741 | "node": ">= 0.4" 742 | }, 743 | "funding": { 744 | "url": "https://github.com/sponsors/ljharb" 745 | } 746 | }, 747 | "node_modules/has-tostringtag": { 748 | "version": "1.0.0", 749 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", 750 | "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", 751 | "dev": true, 752 | "dependencies": { 753 | "has-symbols": "^1.0.2" 754 | }, 755 | "engines": { 756 | "node": ">= 0.4" 757 | }, 758 | "funding": { 759 | "url": "https://github.com/sponsors/ljharb" 760 | } 761 | }, 762 | "node_modules/he": { 763 | "version": "1.2.0", 764 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", 765 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", 766 | "dev": true, 767 | "bin": { 768 | "he": "bin/he" 769 | } 770 | }, 771 | "node_modules/html-encoding-sniffer": { 772 | "version": "3.0.0", 773 | "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", 774 | "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", 775 | "dev": true, 776 | "dependencies": { 777 | "whatwg-encoding": "^2.0.0" 778 | }, 779 | "engines": { 780 | "node": ">=12" 781 | } 782 | }, 783 | "node_modules/http-proxy-agent": { 784 | "version": "5.0.0", 785 | "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", 786 | "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", 787 | "dev": true, 788 | "dependencies": { 789 | "@tootallnate/once": "2", 790 | "agent-base": "6", 791 | "debug": "4" 792 | }, 793 | "engines": { 794 | "node": ">= 6" 795 | } 796 | }, 797 | "node_modules/https-proxy-agent": { 798 | "version": "5.0.0", 799 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", 800 | "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", 801 | "dev": true, 802 | "dependencies": { 803 | "agent-base": "6", 804 | "debug": "4" 805 | }, 806 | "engines": { 807 | "node": ">= 6" 808 | } 809 | }, 810 | "node_modules/iconv-lite": { 811 | "version": "0.6.3", 812 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", 813 | "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", 814 | "dev": true, 815 | "dependencies": { 816 | "safer-buffer": ">= 2.1.2 < 3.0.0" 817 | }, 818 | "engines": { 819 | "node": ">=0.10.0" 820 | } 821 | }, 822 | "node_modules/inflight": { 823 | "version": "1.0.6", 824 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 825 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 826 | "dev": true, 827 | "dependencies": { 828 | "once": "^1.3.0", 829 | "wrappy": "1" 830 | } 831 | }, 832 | "node_modules/inherits": { 833 | "version": "2.0.4", 834 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 835 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 836 | "dev": true 837 | }, 838 | "node_modules/is-binary-path": { 839 | "version": "2.1.0", 840 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 841 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 842 | "dev": true, 843 | "dependencies": { 844 | "binary-extensions": "^2.0.0" 845 | }, 846 | "engines": { 847 | "node": ">=8" 848 | } 849 | }, 850 | "node_modules/is-extglob": { 851 | "version": "2.1.1", 852 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 853 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 854 | "dev": true, 855 | "engines": { 856 | "node": ">=0.10.0" 857 | } 858 | }, 859 | "node_modules/is-fullwidth-code-point": { 860 | "version": "3.0.0", 861 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 862 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 863 | "dev": true, 864 | "engines": { 865 | "node": ">=8" 866 | } 867 | }, 868 | "node_modules/is-glob": { 869 | "version": "4.0.3", 870 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 871 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 872 | "dev": true, 873 | "dependencies": { 874 | "is-extglob": "^2.1.1" 875 | }, 876 | "engines": { 877 | "node": ">=0.10.0" 878 | } 879 | }, 880 | "node_modules/is-number": { 881 | "version": "7.0.0", 882 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 883 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 884 | "dev": true, 885 | "engines": { 886 | "node": ">=0.12.0" 887 | } 888 | }, 889 | "node_modules/is-plain-obj": { 890 | "version": "2.1.0", 891 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", 892 | "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", 893 | "dev": true, 894 | "engines": { 895 | "node": ">=8" 896 | } 897 | }, 898 | "node_modules/is-potential-custom-element-name": { 899 | "version": "1.0.1", 900 | "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", 901 | "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", 902 | "dev": true 903 | }, 904 | "node_modules/is-string": { 905 | "version": "1.0.7", 906 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", 907 | "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", 908 | "dev": true, 909 | "dependencies": { 910 | "has-tostringtag": "^1.0.0" 911 | }, 912 | "engines": { 913 | "node": ">= 0.4" 914 | }, 915 | "funding": { 916 | "url": "https://github.com/sponsors/ljharb" 917 | } 918 | }, 919 | "node_modules/is-unicode-supported": { 920 | "version": "0.1.0", 921 | "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", 922 | "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", 923 | "dev": true, 924 | "engines": { 925 | "node": ">=10" 926 | }, 927 | "funding": { 928 | "url": "https://github.com/sponsors/sindresorhus" 929 | } 930 | }, 931 | "node_modules/isexe": { 932 | "version": "2.0.0", 933 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 934 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 935 | "dev": true 936 | }, 937 | "node_modules/js-yaml": { 938 | "version": "4.1.0", 939 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 940 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 941 | "dev": true, 942 | "dependencies": { 943 | "argparse": "^2.0.1" 944 | }, 945 | "bin": { 946 | "js-yaml": "bin/js-yaml.js" 947 | } 948 | }, 949 | "node_modules/jsdom": { 950 | "version": "18.1.0", 951 | "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-18.1.0.tgz", 952 | "integrity": "sha512-q6QFAfSGLEUqRJ+GCV6vn6ItZCMARWh1d33wiJZPxc+wMNw7HK71JPmQ4C2lIZAsBH8TiJu4uplach/UcrC6bQ==", 953 | "dev": true, 954 | "dependencies": { 955 | "abab": "^2.0.5", 956 | "acorn": "^8.5.0", 957 | "acorn-globals": "^6.0.0", 958 | "cssom": "^0.5.0", 959 | "cssstyle": "^2.3.0", 960 | "data-urls": "^3.0.1", 961 | "decimal.js": "^10.3.1", 962 | "domexception": "^4.0.0", 963 | "escodegen": "^2.0.0", 964 | "form-data": "^4.0.0", 965 | "html-encoding-sniffer": "^3.0.0", 966 | "http-proxy-agent": "^5.0.0", 967 | "https-proxy-agent": "^5.0.0", 968 | "is-potential-custom-element-name": "^1.0.1", 969 | "nwsapi": "^2.2.0", 970 | "parse5": "6.0.1", 971 | "saxes": "^5.0.1", 972 | "symbol-tree": "^3.2.4", 973 | "tough-cookie": "^4.0.0", 974 | "w3c-hr-time": "^1.0.2", 975 | "w3c-xmlserializer": "^3.0.0", 976 | "webidl-conversions": "^7.0.0", 977 | "whatwg-encoding": "^2.0.0", 978 | "whatwg-mimetype": "^3.0.0", 979 | "whatwg-url": "^10.0.0", 980 | "ws": "^8.2.3", 981 | "xml-name-validator": "^4.0.0" 982 | }, 983 | "engines": { 984 | "node": ">=12" 985 | }, 986 | "peerDependencies": { 987 | "canvas": "^2.5.0" 988 | }, 989 | "peerDependenciesMeta": { 990 | "canvas": { 991 | "optional": true 992 | } 993 | } 994 | }, 995 | "node_modules/levn": { 996 | "version": "0.3.0", 997 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 998 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 999 | "dev": true, 1000 | "dependencies": { 1001 | "prelude-ls": "~1.1.2", 1002 | "type-check": "~0.3.2" 1003 | }, 1004 | "engines": { 1005 | "node": ">= 0.8.0" 1006 | } 1007 | }, 1008 | "node_modules/locate-path": { 1009 | "version": "6.0.0", 1010 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 1011 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 1012 | "dev": true, 1013 | "dependencies": { 1014 | "p-locate": "^5.0.0" 1015 | }, 1016 | "engines": { 1017 | "node": ">=10" 1018 | }, 1019 | "funding": { 1020 | "url": "https://github.com/sponsors/sindresorhus" 1021 | } 1022 | }, 1023 | "node_modules/lodash.once": { 1024 | "version": "4.1.1", 1025 | "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", 1026 | "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", 1027 | "dev": true 1028 | }, 1029 | "node_modules/log-symbols": { 1030 | "version": "4.1.0", 1031 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", 1032 | "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", 1033 | "dev": true, 1034 | "dependencies": { 1035 | "chalk": "^4.1.0", 1036 | "is-unicode-supported": "^0.1.0" 1037 | }, 1038 | "engines": { 1039 | "node": ">=10" 1040 | }, 1041 | "funding": { 1042 | "url": "https://github.com/sponsors/sindresorhus" 1043 | } 1044 | }, 1045 | "node_modules/mime-db": { 1046 | "version": "1.51.0", 1047 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", 1048 | "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", 1049 | "dev": true, 1050 | "engines": { 1051 | "node": ">= 0.6" 1052 | } 1053 | }, 1054 | "node_modules/mime-types": { 1055 | "version": "2.1.34", 1056 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", 1057 | "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", 1058 | "dev": true, 1059 | "dependencies": { 1060 | "mime-db": "1.51.0" 1061 | }, 1062 | "engines": { 1063 | "node": ">= 0.6" 1064 | } 1065 | }, 1066 | "node_modules/minimatch": { 1067 | "version": "4.2.1", 1068 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", 1069 | "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", 1070 | "dev": true, 1071 | "dependencies": { 1072 | "brace-expansion": "^1.1.7" 1073 | }, 1074 | "engines": { 1075 | "node": ">=10" 1076 | } 1077 | }, 1078 | "node_modules/minimist": { 1079 | "version": "1.2.8", 1080 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", 1081 | "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", 1082 | "dev": true, 1083 | "funding": { 1084 | "url": "https://github.com/sponsors/ljharb" 1085 | } 1086 | }, 1087 | "node_modules/mkdirp": { 1088 | "version": "0.5.5", 1089 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", 1090 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", 1091 | "dev": true, 1092 | "dependencies": { 1093 | "minimist": "^1.2.5" 1094 | }, 1095 | "bin": { 1096 | "mkdirp": "bin/cmd.js" 1097 | } 1098 | }, 1099 | "node_modules/mocha": { 1100 | "version": "9.2.2", 1101 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", 1102 | "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", 1103 | "dev": true, 1104 | "dependencies": { 1105 | "@ungap/promise-all-settled": "1.1.2", 1106 | "ansi-colors": "4.1.1", 1107 | "browser-stdout": "1.3.1", 1108 | "chokidar": "3.5.3", 1109 | "debug": "4.3.3", 1110 | "diff": "5.0.0", 1111 | "escape-string-regexp": "4.0.0", 1112 | "find-up": "5.0.0", 1113 | "glob": "7.2.0", 1114 | "growl": "1.10.5", 1115 | "he": "1.2.0", 1116 | "js-yaml": "4.1.0", 1117 | "log-symbols": "4.1.0", 1118 | "minimatch": "4.2.1", 1119 | "ms": "2.1.3", 1120 | "nanoid": "3.3.1", 1121 | "serialize-javascript": "6.0.0", 1122 | "strip-json-comments": "3.1.1", 1123 | "supports-color": "8.1.1", 1124 | "which": "2.0.2", 1125 | "workerpool": "6.2.0", 1126 | "yargs": "16.2.0", 1127 | "yargs-parser": "20.2.4", 1128 | "yargs-unparser": "2.0.0" 1129 | }, 1130 | "bin": { 1131 | "_mocha": "bin/_mocha", 1132 | "mocha": "bin/mocha" 1133 | }, 1134 | "engines": { 1135 | "node": ">= 12.0.0" 1136 | }, 1137 | "funding": { 1138 | "type": "opencollective", 1139 | "url": "https://opencollective.com/mochajs" 1140 | } 1141 | }, 1142 | "node_modules/mocha-multi": { 1143 | "version": "1.1.5", 1144 | "resolved": "https://registry.npmjs.org/mocha-multi/-/mocha-multi-1.1.5.tgz", 1145 | "integrity": "sha512-KL8mRPqNt7cYK84PusE0hB23YC8ev//qIYPCpfe8/tCXkJeCiFnuvM+Mw/5wCC0quUevQFNp/H0OzS8x9ws9wQ==", 1146 | "dev": true, 1147 | "dependencies": { 1148 | "debug": "^4.1.1", 1149 | "is-string": "^1.0.4", 1150 | "lodash.once": "^4.1.1", 1151 | "mkdirp": "^0.5.1", 1152 | "object-assign": "^4.1.1" 1153 | }, 1154 | "engines": { 1155 | "node": ">=6.0.0" 1156 | }, 1157 | "peerDependencies": { 1158 | "mocha": ">=2.2.0 <7 || ^9" 1159 | } 1160 | }, 1161 | "node_modules/mocha/node_modules/ms": { 1162 | "version": "2.1.3", 1163 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 1164 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 1165 | "dev": true 1166 | }, 1167 | "node_modules/ms": { 1168 | "version": "2.1.2", 1169 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1170 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 1171 | "dev": true 1172 | }, 1173 | "node_modules/nanoid": { 1174 | "version": "3.3.1", 1175 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", 1176 | "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", 1177 | "dev": true, 1178 | "bin": { 1179 | "nanoid": "bin/nanoid.cjs" 1180 | }, 1181 | "engines": { 1182 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 1183 | } 1184 | }, 1185 | "node_modules/normalize-path": { 1186 | "version": "3.0.0", 1187 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 1188 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 1189 | "dev": true, 1190 | "engines": { 1191 | "node": ">=0.10.0" 1192 | } 1193 | }, 1194 | "node_modules/nwsapi": { 1195 | "version": "2.2.0", 1196 | "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", 1197 | "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", 1198 | "dev": true 1199 | }, 1200 | "node_modules/object-assign": { 1201 | "version": "4.1.1", 1202 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1203 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 1204 | "dev": true, 1205 | "engines": { 1206 | "node": ">=0.10.0" 1207 | } 1208 | }, 1209 | "node_modules/once": { 1210 | "version": "1.4.0", 1211 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1212 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 1213 | "dev": true, 1214 | "dependencies": { 1215 | "wrappy": "1" 1216 | } 1217 | }, 1218 | "node_modules/optionator": { 1219 | "version": "0.8.3", 1220 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", 1221 | "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", 1222 | "dev": true, 1223 | "dependencies": { 1224 | "deep-is": "~0.1.3", 1225 | "fast-levenshtein": "~2.0.6", 1226 | "levn": "~0.3.0", 1227 | "prelude-ls": "~1.1.2", 1228 | "type-check": "~0.3.2", 1229 | "word-wrap": "~1.2.3" 1230 | }, 1231 | "engines": { 1232 | "node": ">= 0.8.0" 1233 | } 1234 | }, 1235 | "node_modules/p-limit": { 1236 | "version": "3.1.0", 1237 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 1238 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 1239 | "dev": true, 1240 | "dependencies": { 1241 | "yocto-queue": "^0.1.0" 1242 | }, 1243 | "engines": { 1244 | "node": ">=10" 1245 | }, 1246 | "funding": { 1247 | "url": "https://github.com/sponsors/sindresorhus" 1248 | } 1249 | }, 1250 | "node_modules/p-locate": { 1251 | "version": "5.0.0", 1252 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 1253 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 1254 | "dev": true, 1255 | "dependencies": { 1256 | "p-limit": "^3.0.2" 1257 | }, 1258 | "engines": { 1259 | "node": ">=10" 1260 | }, 1261 | "funding": { 1262 | "url": "https://github.com/sponsors/sindresorhus" 1263 | } 1264 | }, 1265 | "node_modules/parse5": { 1266 | "version": "6.0.1", 1267 | "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", 1268 | "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", 1269 | "dev": true 1270 | }, 1271 | "node_modules/path-exists": { 1272 | "version": "4.0.0", 1273 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 1274 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 1275 | "dev": true, 1276 | "engines": { 1277 | "node": ">=8" 1278 | } 1279 | }, 1280 | "node_modules/path-is-absolute": { 1281 | "version": "1.0.1", 1282 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1283 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", 1284 | "dev": true, 1285 | "engines": { 1286 | "node": ">=0.10.0" 1287 | } 1288 | }, 1289 | "node_modules/pathval": { 1290 | "version": "1.1.1", 1291 | "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", 1292 | "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", 1293 | "dev": true, 1294 | "engines": { 1295 | "node": "*" 1296 | } 1297 | }, 1298 | "node_modules/picomatch": { 1299 | "version": "2.3.1", 1300 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 1301 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 1302 | "dev": true, 1303 | "engines": { 1304 | "node": ">=8.6" 1305 | }, 1306 | "funding": { 1307 | "url": "https://github.com/sponsors/jonschlinkert" 1308 | } 1309 | }, 1310 | "node_modules/prelude-ls": { 1311 | "version": "1.1.2", 1312 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 1313 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", 1314 | "dev": true, 1315 | "engines": { 1316 | "node": ">= 0.8.0" 1317 | } 1318 | }, 1319 | "node_modules/psl": { 1320 | "version": "1.8.0", 1321 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", 1322 | "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", 1323 | "dev": true 1324 | }, 1325 | "node_modules/punycode": { 1326 | "version": "2.1.1", 1327 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 1328 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 1329 | "dev": true, 1330 | "engines": { 1331 | "node": ">=6" 1332 | } 1333 | }, 1334 | "node_modules/querystringify": { 1335 | "version": "2.2.0", 1336 | "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", 1337 | "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", 1338 | "dev": true 1339 | }, 1340 | "node_modules/randombytes": { 1341 | "version": "2.1.0", 1342 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", 1343 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", 1344 | "dev": true, 1345 | "dependencies": { 1346 | "safe-buffer": "^5.1.0" 1347 | } 1348 | }, 1349 | "node_modules/readdirp": { 1350 | "version": "3.6.0", 1351 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 1352 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 1353 | "dev": true, 1354 | "dependencies": { 1355 | "picomatch": "^2.2.1" 1356 | }, 1357 | "engines": { 1358 | "node": ">=8.10.0" 1359 | } 1360 | }, 1361 | "node_modules/require-directory": { 1362 | "version": "2.1.1", 1363 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 1364 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", 1365 | "dev": true, 1366 | "engines": { 1367 | "node": ">=0.10.0" 1368 | } 1369 | }, 1370 | "node_modules/requires-port": { 1371 | "version": "1.0.0", 1372 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", 1373 | "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", 1374 | "dev": true 1375 | }, 1376 | "node_modules/safe-buffer": { 1377 | "version": "5.2.1", 1378 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 1379 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 1380 | "dev": true, 1381 | "funding": [ 1382 | { 1383 | "type": "github", 1384 | "url": "https://github.com/sponsors/feross" 1385 | }, 1386 | { 1387 | "type": "patreon", 1388 | "url": "https://www.patreon.com/feross" 1389 | }, 1390 | { 1391 | "type": "consulting", 1392 | "url": "https://feross.org/support" 1393 | } 1394 | ] 1395 | }, 1396 | "node_modules/safer-buffer": { 1397 | "version": "2.1.2", 1398 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1399 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 1400 | "dev": true 1401 | }, 1402 | "node_modules/saxes": { 1403 | "version": "5.0.1", 1404 | "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", 1405 | "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", 1406 | "dev": true, 1407 | "dependencies": { 1408 | "xmlchars": "^2.2.0" 1409 | }, 1410 | "engines": { 1411 | "node": ">=10" 1412 | } 1413 | }, 1414 | "node_modules/serialize-javascript": { 1415 | "version": "6.0.0", 1416 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", 1417 | "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", 1418 | "dev": true, 1419 | "dependencies": { 1420 | "randombytes": "^2.1.0" 1421 | } 1422 | }, 1423 | "node_modules/source-map": { 1424 | "version": "0.6.1", 1425 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 1426 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 1427 | "dev": true, 1428 | "optional": true, 1429 | "engines": { 1430 | "node": ">=0.10.0" 1431 | } 1432 | }, 1433 | "node_modules/string-width": { 1434 | "version": "4.2.3", 1435 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 1436 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 1437 | "dev": true, 1438 | "dependencies": { 1439 | "emoji-regex": "^8.0.0", 1440 | "is-fullwidth-code-point": "^3.0.0", 1441 | "strip-ansi": "^6.0.1" 1442 | }, 1443 | "engines": { 1444 | "node": ">=8" 1445 | } 1446 | }, 1447 | "node_modules/strip-ansi": { 1448 | "version": "6.0.1", 1449 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 1450 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 1451 | "dev": true, 1452 | "dependencies": { 1453 | "ansi-regex": "^5.0.1" 1454 | }, 1455 | "engines": { 1456 | "node": ">=8" 1457 | } 1458 | }, 1459 | "node_modules/strip-json-comments": { 1460 | "version": "3.1.1", 1461 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 1462 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 1463 | "dev": true, 1464 | "engines": { 1465 | "node": ">=8" 1466 | }, 1467 | "funding": { 1468 | "url": "https://github.com/sponsors/sindresorhus" 1469 | } 1470 | }, 1471 | "node_modules/supports-color": { 1472 | "version": "8.1.1", 1473 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", 1474 | "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", 1475 | "dev": true, 1476 | "dependencies": { 1477 | "has-flag": "^4.0.0" 1478 | }, 1479 | "engines": { 1480 | "node": ">=10" 1481 | }, 1482 | "funding": { 1483 | "url": "https://github.com/chalk/supports-color?sponsor=1" 1484 | } 1485 | }, 1486 | "node_modules/symbol-tree": { 1487 | "version": "3.2.4", 1488 | "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", 1489 | "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", 1490 | "dev": true 1491 | }, 1492 | "node_modules/to-regex-range": { 1493 | "version": "5.0.1", 1494 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 1495 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 1496 | "dev": true, 1497 | "dependencies": { 1498 | "is-number": "^7.0.0" 1499 | }, 1500 | "engines": { 1501 | "node": ">=8.0" 1502 | } 1503 | }, 1504 | "node_modules/tough-cookie": { 1505 | "version": "4.1.3", 1506 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", 1507 | "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", 1508 | "dev": true, 1509 | "dependencies": { 1510 | "psl": "^1.1.33", 1511 | "punycode": "^2.1.1", 1512 | "universalify": "^0.2.0", 1513 | "url-parse": "^1.5.3" 1514 | }, 1515 | "engines": { 1516 | "node": ">=6" 1517 | } 1518 | }, 1519 | "node_modules/tr46": { 1520 | "version": "3.0.0", 1521 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", 1522 | "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", 1523 | "dev": true, 1524 | "dependencies": { 1525 | "punycode": "^2.1.1" 1526 | }, 1527 | "engines": { 1528 | "node": ">=12" 1529 | } 1530 | }, 1531 | "node_modules/type-check": { 1532 | "version": "0.3.2", 1533 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 1534 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 1535 | "dev": true, 1536 | "dependencies": { 1537 | "prelude-ls": "~1.1.2" 1538 | }, 1539 | "engines": { 1540 | "node": ">= 0.8.0" 1541 | } 1542 | }, 1543 | "node_modules/type-detect": { 1544 | "version": "4.0.8", 1545 | "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", 1546 | "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", 1547 | "dev": true, 1548 | "engines": { 1549 | "node": ">=4" 1550 | } 1551 | }, 1552 | "node_modules/universalify": { 1553 | "version": "0.2.0", 1554 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", 1555 | "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", 1556 | "dev": true, 1557 | "engines": { 1558 | "node": ">= 4.0.0" 1559 | } 1560 | }, 1561 | "node_modules/url-parse": { 1562 | "version": "1.5.10", 1563 | "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", 1564 | "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", 1565 | "dev": true, 1566 | "dependencies": { 1567 | "querystringify": "^2.1.1", 1568 | "requires-port": "^1.0.0" 1569 | } 1570 | }, 1571 | "node_modules/w3c-hr-time": { 1572 | "version": "1.0.2", 1573 | "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", 1574 | "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", 1575 | "dev": true, 1576 | "dependencies": { 1577 | "browser-process-hrtime": "^1.0.0" 1578 | } 1579 | }, 1580 | "node_modules/w3c-xmlserializer": { 1581 | "version": "3.0.0", 1582 | "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", 1583 | "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", 1584 | "dev": true, 1585 | "dependencies": { 1586 | "xml-name-validator": "^4.0.0" 1587 | }, 1588 | "engines": { 1589 | "node": ">=12" 1590 | } 1591 | }, 1592 | "node_modules/webidl-conversions": { 1593 | "version": "7.0.0", 1594 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", 1595 | "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", 1596 | "dev": true, 1597 | "engines": { 1598 | "node": ">=12" 1599 | } 1600 | }, 1601 | "node_modules/whatwg-encoding": { 1602 | "version": "2.0.0", 1603 | "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", 1604 | "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", 1605 | "dev": true, 1606 | "dependencies": { 1607 | "iconv-lite": "0.6.3" 1608 | }, 1609 | "engines": { 1610 | "node": ">=12" 1611 | } 1612 | }, 1613 | "node_modules/whatwg-mimetype": { 1614 | "version": "3.0.0", 1615 | "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", 1616 | "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", 1617 | "dev": true, 1618 | "engines": { 1619 | "node": ">=12" 1620 | } 1621 | }, 1622 | "node_modules/whatwg-url": { 1623 | "version": "10.0.0", 1624 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz", 1625 | "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==", 1626 | "dev": true, 1627 | "dependencies": { 1628 | "tr46": "^3.0.0", 1629 | "webidl-conversions": "^7.0.0" 1630 | }, 1631 | "engines": { 1632 | "node": ">=12" 1633 | } 1634 | }, 1635 | "node_modules/which": { 1636 | "version": "2.0.2", 1637 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 1638 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 1639 | "dev": true, 1640 | "dependencies": { 1641 | "isexe": "^2.0.0" 1642 | }, 1643 | "bin": { 1644 | "node-which": "bin/node-which" 1645 | }, 1646 | "engines": { 1647 | "node": ">= 8" 1648 | } 1649 | }, 1650 | "node_modules/word-wrap": { 1651 | "version": "1.2.4", 1652 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", 1653 | "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", 1654 | "dev": true, 1655 | "engines": { 1656 | "node": ">=0.10.0" 1657 | } 1658 | }, 1659 | "node_modules/workerpool": { 1660 | "version": "6.2.0", 1661 | "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", 1662 | "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", 1663 | "dev": true 1664 | }, 1665 | "node_modules/wrap-ansi": { 1666 | "version": "7.0.0", 1667 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 1668 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 1669 | "dev": true, 1670 | "dependencies": { 1671 | "ansi-styles": "^4.0.0", 1672 | "string-width": "^4.1.0", 1673 | "strip-ansi": "^6.0.0" 1674 | }, 1675 | "engines": { 1676 | "node": ">=10" 1677 | }, 1678 | "funding": { 1679 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 1680 | } 1681 | }, 1682 | "node_modules/wrappy": { 1683 | "version": "1.0.2", 1684 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1685 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", 1686 | "dev": true 1687 | }, 1688 | "node_modules/ws": { 1689 | "version": "8.2.3", 1690 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", 1691 | "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", 1692 | "dev": true, 1693 | "engines": { 1694 | "node": ">=10.0.0" 1695 | }, 1696 | "peerDependencies": { 1697 | "bufferutil": "^4.0.1", 1698 | "utf-8-validate": "^5.0.2" 1699 | }, 1700 | "peerDependenciesMeta": { 1701 | "bufferutil": { 1702 | "optional": true 1703 | }, 1704 | "utf-8-validate": { 1705 | "optional": true 1706 | } 1707 | } 1708 | }, 1709 | "node_modules/xml-name-validator": { 1710 | "version": "4.0.0", 1711 | "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", 1712 | "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", 1713 | "dev": true, 1714 | "engines": { 1715 | "node": ">=12" 1716 | } 1717 | }, 1718 | "node_modules/xmlchars": { 1719 | "version": "2.2.0", 1720 | "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", 1721 | "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", 1722 | "dev": true 1723 | }, 1724 | "node_modules/y18n": { 1725 | "version": "5.0.8", 1726 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", 1727 | "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", 1728 | "dev": true, 1729 | "engines": { 1730 | "node": ">=10" 1731 | } 1732 | }, 1733 | "node_modules/yargs": { 1734 | "version": "16.2.0", 1735 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", 1736 | "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", 1737 | "dev": true, 1738 | "dependencies": { 1739 | "cliui": "^7.0.2", 1740 | "escalade": "^3.1.1", 1741 | "get-caller-file": "^2.0.5", 1742 | "require-directory": "^2.1.1", 1743 | "string-width": "^4.2.0", 1744 | "y18n": "^5.0.5", 1745 | "yargs-parser": "^20.2.2" 1746 | }, 1747 | "engines": { 1748 | "node": ">=10" 1749 | } 1750 | }, 1751 | "node_modules/yargs-parser": { 1752 | "version": "20.2.4", 1753 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", 1754 | "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", 1755 | "dev": true, 1756 | "engines": { 1757 | "node": ">=10" 1758 | } 1759 | }, 1760 | "node_modules/yargs-unparser": { 1761 | "version": "2.0.0", 1762 | "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", 1763 | "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", 1764 | "dev": true, 1765 | "dependencies": { 1766 | "camelcase": "^6.0.0", 1767 | "decamelize": "^4.0.0", 1768 | "flat": "^5.0.2", 1769 | "is-plain-obj": "^2.1.0" 1770 | }, 1771 | "engines": { 1772 | "node": ">=10" 1773 | } 1774 | }, 1775 | "node_modules/yocto-queue": { 1776 | "version": "0.1.0", 1777 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 1778 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 1779 | "dev": true, 1780 | "engines": { 1781 | "node": ">=10" 1782 | }, 1783 | "funding": { 1784 | "url": "https://github.com/sponsors/sindresorhus" 1785 | } 1786 | } 1787 | }, 1788 | "dependencies": { 1789 | "@tootallnate/once": { 1790 | "version": "2.0.0", 1791 | "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", 1792 | "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", 1793 | "dev": true 1794 | }, 1795 | "@ungap/promise-all-settled": { 1796 | "version": "1.1.2", 1797 | "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", 1798 | "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", 1799 | "dev": true 1800 | }, 1801 | "abab": { 1802 | "version": "2.0.5", 1803 | "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", 1804 | "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", 1805 | "dev": true 1806 | }, 1807 | "acorn": { 1808 | "version": "8.5.0", 1809 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", 1810 | "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", 1811 | "dev": true 1812 | }, 1813 | "acorn-globals": { 1814 | "version": "6.0.0", 1815 | "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", 1816 | "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", 1817 | "dev": true, 1818 | "requires": { 1819 | "acorn": "^7.1.1", 1820 | "acorn-walk": "^7.1.1" 1821 | }, 1822 | "dependencies": { 1823 | "acorn": { 1824 | "version": "7.4.1", 1825 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", 1826 | "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", 1827 | "dev": true 1828 | } 1829 | } 1830 | }, 1831 | "acorn-walk": { 1832 | "version": "7.2.0", 1833 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", 1834 | "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", 1835 | "dev": true 1836 | }, 1837 | "agent-base": { 1838 | "version": "6.0.2", 1839 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", 1840 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", 1841 | "dev": true, 1842 | "requires": { 1843 | "debug": "4" 1844 | } 1845 | }, 1846 | "ansi-colors": { 1847 | "version": "4.1.1", 1848 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", 1849 | "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", 1850 | "dev": true 1851 | }, 1852 | "ansi-regex": { 1853 | "version": "5.0.1", 1854 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 1855 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 1856 | "dev": true 1857 | }, 1858 | "ansi-styles": { 1859 | "version": "4.3.0", 1860 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 1861 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 1862 | "dev": true, 1863 | "requires": { 1864 | "color-convert": "^2.0.1" 1865 | } 1866 | }, 1867 | "anymatch": { 1868 | "version": "3.1.3", 1869 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", 1870 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", 1871 | "dev": true, 1872 | "requires": { 1873 | "normalize-path": "^3.0.0", 1874 | "picomatch": "^2.0.4" 1875 | } 1876 | }, 1877 | "argparse": { 1878 | "version": "2.0.1", 1879 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 1880 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 1881 | "dev": true 1882 | }, 1883 | "assertion-error": { 1884 | "version": "1.1.0", 1885 | "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", 1886 | "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", 1887 | "dev": true 1888 | }, 1889 | "asynckit": { 1890 | "version": "0.4.0", 1891 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 1892 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", 1893 | "dev": true 1894 | }, 1895 | "balanced-match": { 1896 | "version": "1.0.2", 1897 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 1898 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 1899 | "dev": true 1900 | }, 1901 | "binary-extensions": { 1902 | "version": "2.2.0", 1903 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 1904 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 1905 | "dev": true 1906 | }, 1907 | "brace-expansion": { 1908 | "version": "1.1.11", 1909 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1910 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1911 | "dev": true, 1912 | "requires": { 1913 | "balanced-match": "^1.0.0", 1914 | "concat-map": "0.0.1" 1915 | } 1916 | }, 1917 | "braces": { 1918 | "version": "3.0.2", 1919 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 1920 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 1921 | "dev": true, 1922 | "requires": { 1923 | "fill-range": "^7.0.1" 1924 | } 1925 | }, 1926 | "browser-process-hrtime": { 1927 | "version": "1.0.0", 1928 | "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", 1929 | "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", 1930 | "dev": true 1931 | }, 1932 | "browser-stdout": { 1933 | "version": "1.3.1", 1934 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", 1935 | "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", 1936 | "dev": true 1937 | }, 1938 | "camelcase": { 1939 | "version": "6.2.1", 1940 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", 1941 | "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", 1942 | "dev": true 1943 | }, 1944 | "chai": { 1945 | "version": "4.3.4", 1946 | "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", 1947 | "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", 1948 | "dev": true, 1949 | "requires": { 1950 | "assertion-error": "^1.1.0", 1951 | "check-error": "^1.0.2", 1952 | "deep-eql": "^3.0.1", 1953 | "get-func-name": "^2.0.0", 1954 | "pathval": "^1.1.1", 1955 | "type-detect": "^4.0.5" 1956 | } 1957 | }, 1958 | "chai-dom": { 1959 | "version": "1.10.0", 1960 | "resolved": "https://registry.npmjs.org/chai-dom/-/chai-dom-1.10.0.tgz", 1961 | "integrity": "sha512-/FE0NvEGMXx1x1YQlc8ihLrEhH8JawflchuGe6ypIAX/4Zwmkr4cC3mfR9pDytbxsE/2LSm719TeU7VF/TCmtg==", 1962 | "dev": true, 1963 | "requires": {} 1964 | }, 1965 | "chalk": { 1966 | "version": "4.1.2", 1967 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 1968 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 1969 | "dev": true, 1970 | "requires": { 1971 | "ansi-styles": "^4.1.0", 1972 | "supports-color": "^7.1.0" 1973 | }, 1974 | "dependencies": { 1975 | "supports-color": { 1976 | "version": "7.2.0", 1977 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 1978 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 1979 | "dev": true, 1980 | "requires": { 1981 | "has-flag": "^4.0.0" 1982 | } 1983 | } 1984 | } 1985 | }, 1986 | "check-error": { 1987 | "version": "1.0.2", 1988 | "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", 1989 | "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", 1990 | "dev": true 1991 | }, 1992 | "chokidar": { 1993 | "version": "3.5.3", 1994 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", 1995 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 1996 | "dev": true, 1997 | "requires": { 1998 | "anymatch": "~3.1.2", 1999 | "braces": "~3.0.2", 2000 | "fsevents": "~2.3.2", 2001 | "glob-parent": "~5.1.2", 2002 | "is-binary-path": "~2.1.0", 2003 | "is-glob": "~4.0.1", 2004 | "normalize-path": "~3.0.0", 2005 | "readdirp": "~3.6.0" 2006 | } 2007 | }, 2008 | "cliui": { 2009 | "version": "7.0.4", 2010 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", 2011 | "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", 2012 | "dev": true, 2013 | "requires": { 2014 | "string-width": "^4.2.0", 2015 | "strip-ansi": "^6.0.0", 2016 | "wrap-ansi": "^7.0.0" 2017 | } 2018 | }, 2019 | "color-convert": { 2020 | "version": "2.0.1", 2021 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 2022 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 2023 | "dev": true, 2024 | "requires": { 2025 | "color-name": "~1.1.4" 2026 | } 2027 | }, 2028 | "color-name": { 2029 | "version": "1.1.4", 2030 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 2031 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 2032 | "dev": true 2033 | }, 2034 | "combined-stream": { 2035 | "version": "1.0.8", 2036 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 2037 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 2038 | "dev": true, 2039 | "requires": { 2040 | "delayed-stream": "~1.0.0" 2041 | } 2042 | }, 2043 | "concat-map": { 2044 | "version": "0.0.1", 2045 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 2046 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 2047 | "dev": true 2048 | }, 2049 | "cssom": { 2050 | "version": "0.5.0", 2051 | "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", 2052 | "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", 2053 | "dev": true 2054 | }, 2055 | "cssstyle": { 2056 | "version": "2.3.0", 2057 | "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", 2058 | "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", 2059 | "dev": true, 2060 | "requires": { 2061 | "cssom": "~0.3.6" 2062 | }, 2063 | "dependencies": { 2064 | "cssom": { 2065 | "version": "0.3.8", 2066 | "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", 2067 | "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", 2068 | "dev": true 2069 | } 2070 | } 2071 | }, 2072 | "data-urls": { 2073 | "version": "3.0.1", 2074 | "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.1.tgz", 2075 | "integrity": "sha512-Ds554NeT5Gennfoo9KN50Vh6tpgtvYEwraYjejXnyTpu1C7oXKxdFk75REooENHE8ndTVOJuv+BEs4/J/xcozw==", 2076 | "dev": true, 2077 | "requires": { 2078 | "abab": "^2.0.3", 2079 | "whatwg-mimetype": "^3.0.0", 2080 | "whatwg-url": "^10.0.0" 2081 | } 2082 | }, 2083 | "debug": { 2084 | "version": "4.3.3", 2085 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", 2086 | "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", 2087 | "dev": true, 2088 | "requires": { 2089 | "ms": "2.1.2" 2090 | } 2091 | }, 2092 | "decamelize": { 2093 | "version": "4.0.0", 2094 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", 2095 | "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", 2096 | "dev": true 2097 | }, 2098 | "decimal.js": { 2099 | "version": "10.3.1", 2100 | "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", 2101 | "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", 2102 | "dev": true 2103 | }, 2104 | "deep-eql": { 2105 | "version": "3.0.1", 2106 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", 2107 | "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", 2108 | "dev": true, 2109 | "requires": { 2110 | "type-detect": "^4.0.0" 2111 | } 2112 | }, 2113 | "deep-is": { 2114 | "version": "0.1.4", 2115 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 2116 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", 2117 | "dev": true 2118 | }, 2119 | "delayed-stream": { 2120 | "version": "1.0.0", 2121 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 2122 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", 2123 | "dev": true 2124 | }, 2125 | "diff": { 2126 | "version": "5.0.0", 2127 | "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", 2128 | "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", 2129 | "dev": true 2130 | }, 2131 | "domexception": { 2132 | "version": "4.0.0", 2133 | "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", 2134 | "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", 2135 | "dev": true, 2136 | "requires": { 2137 | "webidl-conversions": "^7.0.0" 2138 | } 2139 | }, 2140 | "emoji-regex": { 2141 | "version": "8.0.0", 2142 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 2143 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 2144 | "dev": true 2145 | }, 2146 | "escalade": { 2147 | "version": "3.1.1", 2148 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 2149 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 2150 | "dev": true 2151 | }, 2152 | "escape-string-regexp": { 2153 | "version": "4.0.0", 2154 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 2155 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 2156 | "dev": true 2157 | }, 2158 | "escodegen": { 2159 | "version": "2.0.0", 2160 | "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", 2161 | "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", 2162 | "dev": true, 2163 | "requires": { 2164 | "esprima": "^4.0.1", 2165 | "estraverse": "^5.2.0", 2166 | "esutils": "^2.0.2", 2167 | "optionator": "^0.8.1", 2168 | "source-map": "~0.6.1" 2169 | } 2170 | }, 2171 | "esprima": { 2172 | "version": "4.0.1", 2173 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 2174 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 2175 | "dev": true 2176 | }, 2177 | "estraverse": { 2178 | "version": "5.3.0", 2179 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 2180 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 2181 | "dev": true 2182 | }, 2183 | "esutils": { 2184 | "version": "2.0.3", 2185 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 2186 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 2187 | "dev": true 2188 | }, 2189 | "fast-levenshtein": { 2190 | "version": "2.0.6", 2191 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 2192 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 2193 | "dev": true 2194 | }, 2195 | "fill-range": { 2196 | "version": "7.0.1", 2197 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 2198 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 2199 | "dev": true, 2200 | "requires": { 2201 | "to-regex-range": "^5.0.1" 2202 | } 2203 | }, 2204 | "find-up": { 2205 | "version": "5.0.0", 2206 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 2207 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 2208 | "dev": true, 2209 | "requires": { 2210 | "locate-path": "^6.0.0", 2211 | "path-exists": "^4.0.0" 2212 | } 2213 | }, 2214 | "flat": { 2215 | "version": "5.0.2", 2216 | "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", 2217 | "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", 2218 | "dev": true 2219 | }, 2220 | "form-data": { 2221 | "version": "4.0.0", 2222 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", 2223 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", 2224 | "dev": true, 2225 | "requires": { 2226 | "asynckit": "^0.4.0", 2227 | "combined-stream": "^1.0.8", 2228 | "mime-types": "^2.1.12" 2229 | } 2230 | }, 2231 | "fs.realpath": { 2232 | "version": "1.0.0", 2233 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 2234 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", 2235 | "dev": true 2236 | }, 2237 | "fsevents": { 2238 | "version": "2.3.2", 2239 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 2240 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 2241 | "dev": true, 2242 | "optional": true 2243 | }, 2244 | "get-caller-file": { 2245 | "version": "2.0.5", 2246 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 2247 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", 2248 | "dev": true 2249 | }, 2250 | "get-func-name": { 2251 | "version": "2.0.0", 2252 | "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", 2253 | "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", 2254 | "dev": true 2255 | }, 2256 | "glob": { 2257 | "version": "7.2.0", 2258 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", 2259 | "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", 2260 | "dev": true, 2261 | "requires": { 2262 | "fs.realpath": "^1.0.0", 2263 | "inflight": "^1.0.4", 2264 | "inherits": "2", 2265 | "minimatch": "^3.0.4", 2266 | "once": "^1.3.0", 2267 | "path-is-absolute": "^1.0.0" 2268 | }, 2269 | "dependencies": { 2270 | "minimatch": { 2271 | "version": "3.1.2", 2272 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 2273 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 2274 | "dev": true, 2275 | "requires": { 2276 | "brace-expansion": "^1.1.7" 2277 | } 2278 | } 2279 | } 2280 | }, 2281 | "glob-parent": { 2282 | "version": "5.1.2", 2283 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 2284 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 2285 | "dev": true, 2286 | "requires": { 2287 | "is-glob": "^4.0.1" 2288 | } 2289 | }, 2290 | "global-jsdom": { 2291 | "version": "8.3.0", 2292 | "resolved": "https://registry.npmjs.org/global-jsdom/-/global-jsdom-8.3.0.tgz", 2293 | "integrity": "sha512-Bwe/Op/sKjx7mTlj7AejF3S7SEdDFv2fSVdlU/zsQv54UxeZu2+HlAzpFq2WDYYmmvUn5Rb2Y6nWoQZvwesWEQ==", 2294 | "dev": true, 2295 | "requires": {} 2296 | }, 2297 | "growl": { 2298 | "version": "1.10.5", 2299 | "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", 2300 | "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", 2301 | "dev": true 2302 | }, 2303 | "has-flag": { 2304 | "version": "4.0.0", 2305 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 2306 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 2307 | "dev": true 2308 | }, 2309 | "has-symbols": { 2310 | "version": "1.0.2", 2311 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", 2312 | "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", 2313 | "dev": true 2314 | }, 2315 | "has-tostringtag": { 2316 | "version": "1.0.0", 2317 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", 2318 | "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", 2319 | "dev": true, 2320 | "requires": { 2321 | "has-symbols": "^1.0.2" 2322 | } 2323 | }, 2324 | "he": { 2325 | "version": "1.2.0", 2326 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", 2327 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", 2328 | "dev": true 2329 | }, 2330 | "html-encoding-sniffer": { 2331 | "version": "3.0.0", 2332 | "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", 2333 | "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", 2334 | "dev": true, 2335 | "requires": { 2336 | "whatwg-encoding": "^2.0.0" 2337 | } 2338 | }, 2339 | "http-proxy-agent": { 2340 | "version": "5.0.0", 2341 | "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", 2342 | "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", 2343 | "dev": true, 2344 | "requires": { 2345 | "@tootallnate/once": "2", 2346 | "agent-base": "6", 2347 | "debug": "4" 2348 | } 2349 | }, 2350 | "https-proxy-agent": { 2351 | "version": "5.0.0", 2352 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", 2353 | "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", 2354 | "dev": true, 2355 | "requires": { 2356 | "agent-base": "6", 2357 | "debug": "4" 2358 | } 2359 | }, 2360 | "iconv-lite": { 2361 | "version": "0.6.3", 2362 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", 2363 | "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", 2364 | "dev": true, 2365 | "requires": { 2366 | "safer-buffer": ">= 2.1.2 < 3.0.0" 2367 | } 2368 | }, 2369 | "inflight": { 2370 | "version": "1.0.6", 2371 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 2372 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 2373 | "dev": true, 2374 | "requires": { 2375 | "once": "^1.3.0", 2376 | "wrappy": "1" 2377 | } 2378 | }, 2379 | "inherits": { 2380 | "version": "2.0.4", 2381 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 2382 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 2383 | "dev": true 2384 | }, 2385 | "is-binary-path": { 2386 | "version": "2.1.0", 2387 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 2388 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 2389 | "dev": true, 2390 | "requires": { 2391 | "binary-extensions": "^2.0.0" 2392 | } 2393 | }, 2394 | "is-extglob": { 2395 | "version": "2.1.1", 2396 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 2397 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 2398 | "dev": true 2399 | }, 2400 | "is-fullwidth-code-point": { 2401 | "version": "3.0.0", 2402 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 2403 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 2404 | "dev": true 2405 | }, 2406 | "is-glob": { 2407 | "version": "4.0.3", 2408 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 2409 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 2410 | "dev": true, 2411 | "requires": { 2412 | "is-extglob": "^2.1.1" 2413 | } 2414 | }, 2415 | "is-number": { 2416 | "version": "7.0.0", 2417 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 2418 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 2419 | "dev": true 2420 | }, 2421 | "is-plain-obj": { 2422 | "version": "2.1.0", 2423 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", 2424 | "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", 2425 | "dev": true 2426 | }, 2427 | "is-potential-custom-element-name": { 2428 | "version": "1.0.1", 2429 | "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", 2430 | "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", 2431 | "dev": true 2432 | }, 2433 | "is-string": { 2434 | "version": "1.0.7", 2435 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", 2436 | "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", 2437 | "dev": true, 2438 | "requires": { 2439 | "has-tostringtag": "^1.0.0" 2440 | } 2441 | }, 2442 | "is-unicode-supported": { 2443 | "version": "0.1.0", 2444 | "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", 2445 | "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", 2446 | "dev": true 2447 | }, 2448 | "isexe": { 2449 | "version": "2.0.0", 2450 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2451 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 2452 | "dev": true 2453 | }, 2454 | "js-yaml": { 2455 | "version": "4.1.0", 2456 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 2457 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 2458 | "dev": true, 2459 | "requires": { 2460 | "argparse": "^2.0.1" 2461 | } 2462 | }, 2463 | "jsdom": { 2464 | "version": "18.1.0", 2465 | "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-18.1.0.tgz", 2466 | "integrity": "sha512-q6QFAfSGLEUqRJ+GCV6vn6ItZCMARWh1d33wiJZPxc+wMNw7HK71JPmQ4C2lIZAsBH8TiJu4uplach/UcrC6bQ==", 2467 | "dev": true, 2468 | "requires": { 2469 | "abab": "^2.0.5", 2470 | "acorn": "^8.5.0", 2471 | "acorn-globals": "^6.0.0", 2472 | "cssom": "^0.5.0", 2473 | "cssstyle": "^2.3.0", 2474 | "data-urls": "^3.0.1", 2475 | "decimal.js": "^10.3.1", 2476 | "domexception": "^4.0.0", 2477 | "escodegen": "^2.0.0", 2478 | "form-data": "^4.0.0", 2479 | "html-encoding-sniffer": "^3.0.0", 2480 | "http-proxy-agent": "^5.0.0", 2481 | "https-proxy-agent": "^5.0.0", 2482 | "is-potential-custom-element-name": "^1.0.1", 2483 | "nwsapi": "^2.2.0", 2484 | "parse5": "6.0.1", 2485 | "saxes": "^5.0.1", 2486 | "symbol-tree": "^3.2.4", 2487 | "tough-cookie": "^4.0.0", 2488 | "w3c-hr-time": "^1.0.2", 2489 | "w3c-xmlserializer": "^3.0.0", 2490 | "webidl-conversions": "^7.0.0", 2491 | "whatwg-encoding": "^2.0.0", 2492 | "whatwg-mimetype": "^3.0.0", 2493 | "whatwg-url": "^10.0.0", 2494 | "ws": "^8.2.3", 2495 | "xml-name-validator": "^4.0.0" 2496 | } 2497 | }, 2498 | "levn": { 2499 | "version": "0.3.0", 2500 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 2501 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 2502 | "dev": true, 2503 | "requires": { 2504 | "prelude-ls": "~1.1.2", 2505 | "type-check": "~0.3.2" 2506 | } 2507 | }, 2508 | "locate-path": { 2509 | "version": "6.0.0", 2510 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 2511 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 2512 | "dev": true, 2513 | "requires": { 2514 | "p-locate": "^5.0.0" 2515 | } 2516 | }, 2517 | "lodash.once": { 2518 | "version": "4.1.1", 2519 | "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", 2520 | "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", 2521 | "dev": true 2522 | }, 2523 | "log-symbols": { 2524 | "version": "4.1.0", 2525 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", 2526 | "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", 2527 | "dev": true, 2528 | "requires": { 2529 | "chalk": "^4.1.0", 2530 | "is-unicode-supported": "^0.1.0" 2531 | } 2532 | }, 2533 | "mime-db": { 2534 | "version": "1.51.0", 2535 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", 2536 | "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", 2537 | "dev": true 2538 | }, 2539 | "mime-types": { 2540 | "version": "2.1.34", 2541 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", 2542 | "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", 2543 | "dev": true, 2544 | "requires": { 2545 | "mime-db": "1.51.0" 2546 | } 2547 | }, 2548 | "minimatch": { 2549 | "version": "4.2.1", 2550 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", 2551 | "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", 2552 | "dev": true, 2553 | "requires": { 2554 | "brace-expansion": "^1.1.7" 2555 | } 2556 | }, 2557 | "minimist": { 2558 | "version": "1.2.8", 2559 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", 2560 | "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", 2561 | "dev": true 2562 | }, 2563 | "mkdirp": { 2564 | "version": "0.5.5", 2565 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", 2566 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", 2567 | "dev": true, 2568 | "requires": { 2569 | "minimist": "^1.2.5" 2570 | } 2571 | }, 2572 | "mocha": { 2573 | "version": "9.2.2", 2574 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", 2575 | "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", 2576 | "dev": true, 2577 | "requires": { 2578 | "@ungap/promise-all-settled": "1.1.2", 2579 | "ansi-colors": "4.1.1", 2580 | "browser-stdout": "1.3.1", 2581 | "chokidar": "3.5.3", 2582 | "debug": "4.3.3", 2583 | "diff": "5.0.0", 2584 | "escape-string-regexp": "4.0.0", 2585 | "find-up": "5.0.0", 2586 | "glob": "7.2.0", 2587 | "growl": "1.10.5", 2588 | "he": "1.2.0", 2589 | "js-yaml": "4.1.0", 2590 | "log-symbols": "4.1.0", 2591 | "minimatch": "4.2.1", 2592 | "ms": "2.1.3", 2593 | "nanoid": "3.3.1", 2594 | "serialize-javascript": "6.0.0", 2595 | "strip-json-comments": "3.1.1", 2596 | "supports-color": "8.1.1", 2597 | "which": "2.0.2", 2598 | "workerpool": "6.2.0", 2599 | "yargs": "16.2.0", 2600 | "yargs-parser": "20.2.4", 2601 | "yargs-unparser": "2.0.0" 2602 | }, 2603 | "dependencies": { 2604 | "ms": { 2605 | "version": "2.1.3", 2606 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 2607 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 2608 | "dev": true 2609 | } 2610 | } 2611 | }, 2612 | "mocha-multi": { 2613 | "version": "1.1.5", 2614 | "resolved": "https://registry.npmjs.org/mocha-multi/-/mocha-multi-1.1.5.tgz", 2615 | "integrity": "sha512-KL8mRPqNt7cYK84PusE0hB23YC8ev//qIYPCpfe8/tCXkJeCiFnuvM+Mw/5wCC0quUevQFNp/H0OzS8x9ws9wQ==", 2616 | "dev": true, 2617 | "requires": { 2618 | "debug": "^4.1.1", 2619 | "is-string": "^1.0.4", 2620 | "lodash.once": "^4.1.1", 2621 | "mkdirp": "^0.5.1", 2622 | "object-assign": "^4.1.1" 2623 | } 2624 | }, 2625 | "ms": { 2626 | "version": "2.1.2", 2627 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 2628 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 2629 | "dev": true 2630 | }, 2631 | "nanoid": { 2632 | "version": "3.3.1", 2633 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", 2634 | "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", 2635 | "dev": true 2636 | }, 2637 | "normalize-path": { 2638 | "version": "3.0.0", 2639 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 2640 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 2641 | "dev": true 2642 | }, 2643 | "nwsapi": { 2644 | "version": "2.2.0", 2645 | "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", 2646 | "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", 2647 | "dev": true 2648 | }, 2649 | "object-assign": { 2650 | "version": "4.1.1", 2651 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 2652 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 2653 | "dev": true 2654 | }, 2655 | "once": { 2656 | "version": "1.4.0", 2657 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2658 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 2659 | "dev": true, 2660 | "requires": { 2661 | "wrappy": "1" 2662 | } 2663 | }, 2664 | "optionator": { 2665 | "version": "0.8.3", 2666 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", 2667 | "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", 2668 | "dev": true, 2669 | "requires": { 2670 | "deep-is": "~0.1.3", 2671 | "fast-levenshtein": "~2.0.6", 2672 | "levn": "~0.3.0", 2673 | "prelude-ls": "~1.1.2", 2674 | "type-check": "~0.3.2", 2675 | "word-wrap": "~1.2.3" 2676 | } 2677 | }, 2678 | "p-limit": { 2679 | "version": "3.1.0", 2680 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 2681 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 2682 | "dev": true, 2683 | "requires": { 2684 | "yocto-queue": "^0.1.0" 2685 | } 2686 | }, 2687 | "p-locate": { 2688 | "version": "5.0.0", 2689 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 2690 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 2691 | "dev": true, 2692 | "requires": { 2693 | "p-limit": "^3.0.2" 2694 | } 2695 | }, 2696 | "parse5": { 2697 | "version": "6.0.1", 2698 | "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", 2699 | "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", 2700 | "dev": true 2701 | }, 2702 | "path-exists": { 2703 | "version": "4.0.0", 2704 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 2705 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 2706 | "dev": true 2707 | }, 2708 | "path-is-absolute": { 2709 | "version": "1.0.1", 2710 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2711 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", 2712 | "dev": true 2713 | }, 2714 | "pathval": { 2715 | "version": "1.1.1", 2716 | "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", 2717 | "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", 2718 | "dev": true 2719 | }, 2720 | "picomatch": { 2721 | "version": "2.3.1", 2722 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 2723 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 2724 | "dev": true 2725 | }, 2726 | "prelude-ls": { 2727 | "version": "1.1.2", 2728 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 2729 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", 2730 | "dev": true 2731 | }, 2732 | "psl": { 2733 | "version": "1.8.0", 2734 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", 2735 | "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", 2736 | "dev": true 2737 | }, 2738 | "punycode": { 2739 | "version": "2.1.1", 2740 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 2741 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 2742 | "dev": true 2743 | }, 2744 | "querystringify": { 2745 | "version": "2.2.0", 2746 | "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", 2747 | "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", 2748 | "dev": true 2749 | }, 2750 | "randombytes": { 2751 | "version": "2.1.0", 2752 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", 2753 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", 2754 | "dev": true, 2755 | "requires": { 2756 | "safe-buffer": "^5.1.0" 2757 | } 2758 | }, 2759 | "readdirp": { 2760 | "version": "3.6.0", 2761 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 2762 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 2763 | "dev": true, 2764 | "requires": { 2765 | "picomatch": "^2.2.1" 2766 | } 2767 | }, 2768 | "require-directory": { 2769 | "version": "2.1.1", 2770 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 2771 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", 2772 | "dev": true 2773 | }, 2774 | "requires-port": { 2775 | "version": "1.0.0", 2776 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", 2777 | "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", 2778 | "dev": true 2779 | }, 2780 | "safe-buffer": { 2781 | "version": "5.2.1", 2782 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 2783 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 2784 | "dev": true 2785 | }, 2786 | "safer-buffer": { 2787 | "version": "2.1.2", 2788 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 2789 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 2790 | "dev": true 2791 | }, 2792 | "saxes": { 2793 | "version": "5.0.1", 2794 | "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", 2795 | "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", 2796 | "dev": true, 2797 | "requires": { 2798 | "xmlchars": "^2.2.0" 2799 | } 2800 | }, 2801 | "serialize-javascript": { 2802 | "version": "6.0.0", 2803 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", 2804 | "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", 2805 | "dev": true, 2806 | "requires": { 2807 | "randombytes": "^2.1.0" 2808 | } 2809 | }, 2810 | "source-map": { 2811 | "version": "0.6.1", 2812 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 2813 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 2814 | "dev": true, 2815 | "optional": true 2816 | }, 2817 | "string-width": { 2818 | "version": "4.2.3", 2819 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 2820 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 2821 | "dev": true, 2822 | "requires": { 2823 | "emoji-regex": "^8.0.0", 2824 | "is-fullwidth-code-point": "^3.0.0", 2825 | "strip-ansi": "^6.0.1" 2826 | } 2827 | }, 2828 | "strip-ansi": { 2829 | "version": "6.0.1", 2830 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 2831 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 2832 | "dev": true, 2833 | "requires": { 2834 | "ansi-regex": "^5.0.1" 2835 | } 2836 | }, 2837 | "strip-json-comments": { 2838 | "version": "3.1.1", 2839 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 2840 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 2841 | "dev": true 2842 | }, 2843 | "supports-color": { 2844 | "version": "8.1.1", 2845 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", 2846 | "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", 2847 | "dev": true, 2848 | "requires": { 2849 | "has-flag": "^4.0.0" 2850 | } 2851 | }, 2852 | "symbol-tree": { 2853 | "version": "3.2.4", 2854 | "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", 2855 | "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", 2856 | "dev": true 2857 | }, 2858 | "to-regex-range": { 2859 | "version": "5.0.1", 2860 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 2861 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 2862 | "dev": true, 2863 | "requires": { 2864 | "is-number": "^7.0.0" 2865 | } 2866 | }, 2867 | "tough-cookie": { 2868 | "version": "4.1.3", 2869 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", 2870 | "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", 2871 | "dev": true, 2872 | "requires": { 2873 | "psl": "^1.1.33", 2874 | "punycode": "^2.1.1", 2875 | "universalify": "^0.2.0", 2876 | "url-parse": "^1.5.3" 2877 | } 2878 | }, 2879 | "tr46": { 2880 | "version": "3.0.0", 2881 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", 2882 | "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", 2883 | "dev": true, 2884 | "requires": { 2885 | "punycode": "^2.1.1" 2886 | } 2887 | }, 2888 | "type-check": { 2889 | "version": "0.3.2", 2890 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 2891 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 2892 | "dev": true, 2893 | "requires": { 2894 | "prelude-ls": "~1.1.2" 2895 | } 2896 | }, 2897 | "type-detect": { 2898 | "version": "4.0.8", 2899 | "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", 2900 | "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", 2901 | "dev": true 2902 | }, 2903 | "universalify": { 2904 | "version": "0.2.0", 2905 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", 2906 | "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", 2907 | "dev": true 2908 | }, 2909 | "url-parse": { 2910 | "version": "1.5.10", 2911 | "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", 2912 | "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", 2913 | "dev": true, 2914 | "requires": { 2915 | "querystringify": "^2.1.1", 2916 | "requires-port": "^1.0.0" 2917 | } 2918 | }, 2919 | "w3c-hr-time": { 2920 | "version": "1.0.2", 2921 | "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", 2922 | "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", 2923 | "dev": true, 2924 | "requires": { 2925 | "browser-process-hrtime": "^1.0.0" 2926 | } 2927 | }, 2928 | "w3c-xmlserializer": { 2929 | "version": "3.0.0", 2930 | "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", 2931 | "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", 2932 | "dev": true, 2933 | "requires": { 2934 | "xml-name-validator": "^4.0.0" 2935 | } 2936 | }, 2937 | "webidl-conversions": { 2938 | "version": "7.0.0", 2939 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", 2940 | "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", 2941 | "dev": true 2942 | }, 2943 | "whatwg-encoding": { 2944 | "version": "2.0.0", 2945 | "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", 2946 | "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", 2947 | "dev": true, 2948 | "requires": { 2949 | "iconv-lite": "0.6.3" 2950 | } 2951 | }, 2952 | "whatwg-mimetype": { 2953 | "version": "3.0.0", 2954 | "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", 2955 | "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", 2956 | "dev": true 2957 | }, 2958 | "whatwg-url": { 2959 | "version": "10.0.0", 2960 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz", 2961 | "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==", 2962 | "dev": true, 2963 | "requires": { 2964 | "tr46": "^3.0.0", 2965 | "webidl-conversions": "^7.0.0" 2966 | } 2967 | }, 2968 | "which": { 2969 | "version": "2.0.2", 2970 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 2971 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 2972 | "dev": true, 2973 | "requires": { 2974 | "isexe": "^2.0.0" 2975 | } 2976 | }, 2977 | "word-wrap": { 2978 | "version": "1.2.4", 2979 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", 2980 | "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", 2981 | "dev": true 2982 | }, 2983 | "workerpool": { 2984 | "version": "6.2.0", 2985 | "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", 2986 | "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", 2987 | "dev": true 2988 | }, 2989 | "wrap-ansi": { 2990 | "version": "7.0.0", 2991 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 2992 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 2993 | "dev": true, 2994 | "requires": { 2995 | "ansi-styles": "^4.0.0", 2996 | "string-width": "^4.1.0", 2997 | "strip-ansi": "^6.0.0" 2998 | } 2999 | }, 3000 | "wrappy": { 3001 | "version": "1.0.2", 3002 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 3003 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", 3004 | "dev": true 3005 | }, 3006 | "ws": { 3007 | "version": "8.2.3", 3008 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", 3009 | "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", 3010 | "dev": true, 3011 | "requires": {} 3012 | }, 3013 | "xml-name-validator": { 3014 | "version": "4.0.0", 3015 | "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", 3016 | "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", 3017 | "dev": true 3018 | }, 3019 | "xmlchars": { 3020 | "version": "2.2.0", 3021 | "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", 3022 | "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", 3023 | "dev": true 3024 | }, 3025 | "y18n": { 3026 | "version": "5.0.8", 3027 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", 3028 | "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", 3029 | "dev": true 3030 | }, 3031 | "yargs": { 3032 | "version": "16.2.0", 3033 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", 3034 | "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", 3035 | "dev": true, 3036 | "requires": { 3037 | "cliui": "^7.0.2", 3038 | "escalade": "^3.1.1", 3039 | "get-caller-file": "^2.0.5", 3040 | "require-directory": "^2.1.1", 3041 | "string-width": "^4.2.0", 3042 | "y18n": "^5.0.5", 3043 | "yargs-parser": "^20.2.2" 3044 | } 3045 | }, 3046 | "yargs-parser": { 3047 | "version": "20.2.4", 3048 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", 3049 | "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", 3050 | "dev": true 3051 | }, 3052 | "yargs-unparser": { 3053 | "version": "2.0.0", 3054 | "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", 3055 | "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", 3056 | "dev": true, 3057 | "requires": { 3058 | "camelcase": "^6.0.0", 3059 | "decamelize": "^4.0.0", 3060 | "flat": "^5.0.2", 3061 | "is-plain-obj": "^2.1.0" 3062 | } 3063 | }, 3064 | "yocto-queue": { 3065 | "version": "0.1.0", 3066 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 3067 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 3068 | "dev": true 3069 | } 3070 | } 3071 | } 3072 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "phase-0-css-fundamentals-lab", 3 | "version": "1.0.0", 4 | "description": "CSS Graffiti Override Lab", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "mocha -R mocha-multi --timeout 5000 --reporter-options spec=-,json=.results.json" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/learn-co-curriculum/phase-0-css-fundamentals-lab.git" 12 | }, 13 | "author": "flatironschool", 14 | "license": "Included in Repo", 15 | "bugs": { 16 | "url": "https://github.com/learn-co-curriculum/phase-0-css-fundamentals-lab/issues" 17 | }, 18 | "homepage": "https://github.com/learn-co-curriculum/phase-0-css-fundamentals-lab#readme", 19 | "devDependencies": { 20 | "chai": "^4.3.4", 21 | "chai-dom": "^1.10.0", 22 | "global-jsdom": "^8.3.0", 23 | "jsdom": "^18.1.0", 24 | "mocha": "^9.2.2", 25 | "mocha-multi": "^1.1.5" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /test/indexTest.js: -------------------------------------------------------------------------------- 1 | const { expect } = require("chai"); 2 | const fs = require("fs"); 3 | const path = require("path"); 4 | 5 | describe("index.html", () => { 6 | it("exists", () => { 7 | const fileExists = fs.existsSync( 8 | path.resolve(__dirname, "..", "index.html") 9 | ); 10 | const hint = "The index.html file must exist"; 11 | expect(fileExists, hint).to.be.true; 12 | }); 13 | }); 14 | 15 | describe("css/cleanup.css", () => { 16 | it("exists", () => { 17 | const fileExists = fs.existsSync( 18 | path.resolve(__dirname, "..", "css/cleanup.css") 19 | ); 20 | const hint = "The cleanup.css file must exist"; 21 | expect(fileExists, hint).to.be.true; 22 | }); 23 | 24 | it("has overrides added", () => { 25 | const fileData = fs.statSync( 26 | path.resolve(__dirname, "..", "css/cleanup.css") 27 | ); 28 | const hint = 29 | "You should have at least 300 bytes worth of updates to css/cleanup.css"; 30 | expect(fileData.size, hint).to.be.greaterThan(300); 31 | }); 32 | }); 33 | 34 | describe("css/paint.css", () => { 35 | it("exists", () => { 36 | const fileExists = fs.existsSync( 37 | path.resolve(__dirname, "..", "css/paint.css") 38 | ); 39 | const hint = "The paint.css file must exist"; 40 | expect(fileExists, hint).to.be.true; 41 | }); 42 | 43 | it("must be unchanged", () => { 44 | const fileData = fs.statSync( 45 | path.resolve(__dirname, "..", "css/paint.css") 46 | ); 47 | const hint = 48 | "You cannot alter paint.css at all! To reset it use 'git checkout css/paint.css'"; 49 | expect(fileData.size, hint).to.eq(1411); 50 | }); 51 | }); 52 | --------------------------------------------------------------------------------