diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 00000000..394522f4
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+node_modules/**
\ No newline at end of file
diff --git a/.eslintrc.json b/.eslintrc.json
new file mode 100644
index 00000000..8c4cc1b5
--- /dev/null
+++ b/.eslintrc.json
@@ -0,0 +1,16 @@
+{
+ "env": {
+ "browser": true,
+ "es2021": true
+ },
+ "extends": ["plugin:react/recommended", "airbnb"],
+ "parserOptions": {
+ "ecmaFeatures": {
+ "jsx": true
+ },
+ "ecmaVersion": 12,
+ "sourceType": "module"
+ },
+ "plugins": ["react"],
+ "rules": {}
+}
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 471d15d0..a6f167a4 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -1,9 +1,9 @@
---
name: Bug report
about: Create a report to help us improve
-title: ""
+title: ''
labels: bug
-assignees: ""
+assignees: ''
---
**Describe the bug**
@@ -39,7 +39,6 @@ If applicable, add screenshots to help explain your problem.
**Additional context**
Add any other context about the problem here.
-
Join the **Discord Server** for further discussions.
diff --git a/.github/ISSUE_TEMPLATE/feature-enhancement-request.md b/.github/ISSUE_TEMPLATE/feature-enhancement-request.md
index 3353bee0..45ae7887 100644
--- a/.github/ISSUE_TEMPLATE/feature-enhancement-request.md
+++ b/.github/ISSUE_TEMPLATE/feature-enhancement-request.md
@@ -1,9 +1,9 @@
---
name: Feature/Enhancement request
about: Suggest an idea for this project
-title: ""
+title: ''
labels: enhancement, hacktoberfest
-assignees: ""
+assignees: ''
---
**Is your feature request related to a problem? Please describe.**
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 09b94a96..96fac79e 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -40,4 +40,3 @@ as any relevant images for UI changes._
## Added to documentation?
- [ ] readme
-
diff --git a/.prettierrc b/.prettierrc
index 33d2cfa3..bde4900e 100644
--- a/.prettierrc
+++ b/.prettierrc
@@ -1,4 +1,14 @@
{
+ "printWidth": 80,
+ "tabWidth": 2,
+ "useTabs": false,
+ "semi": true,
+ "singleQuote": true,
+ "quoteProps": "as-needed",
+ "jsxSingleQuote": false,
+ "trailingComma": "all",
+ "bracketSpacing": true,
+ "jsxBracketSameLine": true,
"arrowParens": "avoid",
- "semi": false
+ "endOfLine": "auto"
}
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
index 6730d3ce..c2ac3899 100644
--- a/CODE_OF_CONDUCT.md
+++ b/CODE_OF_CONDUCT.md
@@ -14,22 +14,22 @@ appearance, race, religion, or sexual identity and orientation.
Examples of behavior that contributes to creating a positive environment
include:
-* Using welcoming and inclusive language
-* Being respectful of differing viewpoints and experiences
-* Gracefully accepting constructive criticism
-* Focusing on what is best for the community
-* Showing empathy towards other community members
+- Using welcoming and inclusive language
+- Being respectful of differing viewpoints and experiences
+- Gracefully accepting constructive criticism
+- Focusing on what is best for the community
+- Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
-* The use of sexualized language or imagery and unwelcome sexual attention or
- advances
-* Trolling, insulting/derogatory comments, and personal or political attacks
-* Public or private harassment
-* Publishing others' private information, such as a physical or electronic
- address, without explicit permission
-* Other conduct which could reasonably be considered inappropriate in a
- professional setting
+- The use of sexualized language or imagery and unwelcome sexual attention or
+ advances
+- Trolling, insulting/derogatory comments, and personal or political attacks
+- Public or private harassment
+- Publishing others' private information, such as a physical or electronic
+ address, without explicit permission
+- Other conduct which could reasonably be considered inappropriate in a
+ professional setting
## Our Responsibilities
diff --git a/CODE_STYLE_GUIDE.md b/CODE_STYLE_GUIDE.md
index 4dfd76ab..0df15381 100644
--- a/CODE_STYLE_GUIDE.md
+++ b/CODE_STYLE_GUIDE.md
@@ -9,22 +9,23 @@
## Reusable components
-* Do not make a new file for smaller components.
-* Smaller, reusable components needed in the main components should be added **above** the main component, **not** inside it.
-* Use ES6 arrow functions for defining components.
+- Do not make a new file for smaller components.
+- Smaller, reusable components needed in the main components should be added **above** the main component, **not** inside it.
+- Use ES6 arrow functions for defining components.
## Spacing
1. **JS:**
- * Use a space after `if`, `for`, `while`, `switch`.
- * Do not use a space after the opening `(` and before the closing `)`.
- * Use a space before and after destructuring objects.
- ```js
- //good
- const { apple, mangoes } = fruits;
-
- //bad
- const {apple, mangoes} = fruits;
+ - Use a space after `if`, `for`, `while`, `switch`.
+ - Do not use a space after the opening `(` and before the closing `)`.
+ - Use a space before and after destructuring objects.
+ ```js
+ //good
+ const { apple, mangoes } = fruits;
+
+ //bad
+ const { apple, mangoes } = fruits;
+ ```
//Same for destructuring props:
@@ -36,56 +37,61 @@
```
2. **JSX:**
- * Use a space before the forward slash (`/`) of a self-closing tag
- ```js
- //good
-
- //bad
-
- ```
- * Do **not** use spaces for JSX curly braces
- ```js
- //good
-
+ - Use a space before the forward slash (`/`) of a self-closing tag
- //bad
-
- ```
+ ```js
+ //good
+
+
+ //bad
+
+ ```
+
+ - Do **not** use spaces for JSX curly braces
+
+ ```js
+ //good
+
+
+ //bad
+
+ ```
## **Props:**
-* Use camelCase for prop names, or PascalCase if the prop value is a React component.
-* Use new lines when props do not fit on the same line.
- ```js
- //good
-
-
- //bad
-
- ```
+- Use camelCase for prop names, or PascalCase if the prop value is a React component.
+- Use new lines when props do not fit on the same line.
+
+ ```js
+ //good
+
+
+ //bad
+
+ ```
## **Best practices:**
-* **Always** add semicolons after a line.
-* Use ES6 arrow functions.
-* Keep the indentation in your code correct.
-* Use 4 spaces for tabs.
-* Don't Repeat Yourself. If you think you're repeating too much code, make a smaller component, or a function.
-* **Always** add alt prop to `img` tags.
-* Add `rel="noopener"` for `a` tags which has `target="_blank"`.
-* Don't do `outline: none` on user input elements. If you do not want outline, give them faint, visible background on focus. This is for accessibility.
+- **Always** add semicolons after a line.
+- Use ES6 arrow functions.
+- Keep the indentation in your code correct.
+- Use 4 spaces for tabs.
+- Don't Repeat Yourself. If you think you're repeating too much code, make a smaller component, or a function.
+- **Always** add alt prop to `img` tags.
+- Add `rel="noopener"` for `a` tags which has `target="_blank"`.
+- Don't do `outline: none` on user input elements. If you do not want outline, give them faint, visible background on focus. This is for accessibility.
### Other things to note
-* We are using [octicons](https://primer.style/octicons/) for icons. Use this if you need to add icons. Do **not** add a new library for icons.
-* Try to not commit changes in `package.json`, `package-lock.json`.
-* Discuss with contributors on discord if you're planning to add/remove a package.
+- We are using [octicons](https://primer.style/octicons/) for icons. Use this if you need to add icons. Do **not** add a new library for icons.
+- Try to not commit changes in `package.json`, `package-lock.json`.
+- Discuss with contributors on discord if you're planning to add/remove a package.
## Further reading:
-This guide is based on [airbnb's react guide](https://github.com/airbnb/javascript/tree/master/react). You can read all the best practices there.
\ No newline at end of file
+This guide is based on [airbnb's react guide](https://github.com/airbnb/javascript/tree/master/react). You can read all the best practices there.
diff --git a/README.md b/README.md
index bc02c10f..5a2e2064 100644
--- a/README.md
+++ b/README.md
@@ -54,8 +54,8 @@
This tool provides an easy way to create a GitHub profile readme with the latest add-ons such as `visitors count`, `github stats`, etc.
+## 🚀 Demo
-## 🚀 Demo
@@ -126,11 +126,11 @@ Please contribute using [GitHub Flow](https://guides.github.com/introduction/flo
Please read [`CONTRIBUTING`](CONTRIBUTING.md) for details on our [`CODE OF CONDUCT`](CODE_OF_CONDUCT.md), and the process for submitting pull requests to us.
## 💻 Built with
+
- [Gatsby](https://www.gatsbyjs.com/)
- [Tailwind CSS](https://tailwindcss.com/): for styling
- [GSAP](https://greensock.com/gsap/): for small SVG Animations
-
## 🙇 Special Thanks
- [Anurag Hazra](https://github.com/anuraghazra) for amazing [github-readme-stats](https://github.com/anuraghazra/github-readme-stats)
@@ -146,7 +146,6 @@ Please read [`CONTRIBUTING`](CONTRIBUTING.md) for details on our [`CODE OF CONDU
- [Aadit Kamat](https://github.com/aaditkamat) find the tool useful and showed support with his donation. A big thanks to him.
- [Jean-Michel Fayard](https://github.com/jmfayard) used the generator to create his GitHub Profile README and he loved it. Thanks to him for showing support to the tool with the donation.
-
## 🙏 Support
@@ -163,7 +162,6 @@ Please read [`CONTRIBUTING`](CONTRIBUTING.md) for details on our [`CODE OF CONDU
-
Developed with ❤️ in India 🇮🇳
diff --git a/__mocks__/file-mock.js b/__mocks__/file-mock.js
index e3b91b24..86059f36 100644
--- a/__mocks__/file-mock.js
+++ b/__mocks__/file-mock.js
@@ -1 +1 @@
-module.exports = "test-file-stub"
\ No newline at end of file
+module.exports = 'test-file-stub';
diff --git a/__mocks__/gatsby.js b/__mocks__/gatsby.js
index f9083d78..07bc11f4 100644
--- a/__mocks__/gatsby.js
+++ b/__mocks__/gatsby.js
@@ -1,27 +1,17 @@
-const React = require("react")
-const gatsby = jest.requireActual("gatsby")
+const React = require('react');
+const gatsby = jest.requireActual('gatsby');
module.exports = {
...gatsby,
graphql: jest.fn(),
Link: jest.fn().mockImplementation(
// these props are invalid for an `a` tag
- ({
- activeClassName,
- activeStyle,
- getProps,
- innerRef,
- partiallyActive,
- ref,
- replace,
- to,
- ...rest
- }) =>
- React.createElement("a", {
+ ({ activeClassName, activeStyle, getProps, innerRef, partiallyActive, ref, replace, to, ...rest }) =>
+ React.createElement('a', {
...rest,
href: to,
})
),
StaticQuery: jest.fn(),
useStaticQuery: jest.fn(),
-}
+};
diff --git a/gatsby-browser.js b/gatsby-browser.js
index ccdd443d..813aebe1 100644
--- a/gatsby-browser.js
+++ b/gatsby-browser.js
@@ -1,2 +1,2 @@
-import "./src/styles/tailwind.css"
-require("prismjs/themes/prism-okaidia.css")
+import './src/styles/tailwind.css';
+require('prismjs/themes/prism-okaidia.css');
diff --git a/gatsby-config.js b/gatsby-config.js
index a509d5c4..9e996ba7 100644
--- a/gatsby-config.js
+++ b/gatsby-config.js
@@ -44,7 +44,7 @@ module.exports = {
{
resolve: `gatsby-plugin-google-analytics`,
options: {
- trackingId: "UA-168596085-3",
+ trackingId: 'UA-168596085-3',
// this option places the tracking script into the head of the DOM
head: true,
// other options
@@ -53,7 +53,7 @@ module.exports = {
{
resolve: `gatsby-plugin-postcss`,
options: {
- postCssPlugins: [require("tailwindcss")],
+ postCssPlugins: [require('tailwindcss')],
},
},
{
@@ -69,4 +69,4 @@ module.exports = {
// this (optional) plugin enables Progressive Web App + Offline functionality
// To learn more, visit: https://gatsby.dev/offline
// `gatsby-plugin-offline`,
-}
+};
diff --git a/gatsby-node.js b/gatsby-node.js
index e8a46360..cc50f4e4 100644
--- a/gatsby-node.js
+++ b/gatsby-node.js
@@ -1,14 +1,11 @@
exports.createPages = async ({ actions, graphql, reporter }) => {
- const { createPage } = actions
+ const { createPage } = actions;
- const blogPostTemplate = require.resolve(`./src/templates/blogTemplate.js`)
+ const blogPostTemplate = require.resolve(`./src/templates/blogTemplate.js`);
const result = await graphql(`
{
- allMarkdownRemark(
- sort: { order: DESC, fields: [frontmatter___date] }
- limit: 1000
- ) {
+ allMarkdownRemark(sort: { order: DESC, fields: [frontmatter___date] }, limit: 1000) {
edges {
node {
frontmatter {
@@ -18,12 +15,12 @@ exports.createPages = async ({ actions, graphql, reporter }) => {
}
}
}
- `)
+ `);
// Handle errors
if (result.errors) {
- reporter.panicOnBuild(`Error while running GraphQL query.`)
- return
+ reporter.panicOnBuild(`Error while running GraphQL query.`);
+ return;
}
result.data.allMarkdownRemark.edges.forEach(({ node }) => {
@@ -34,6 +31,6 @@ exports.createPages = async ({ actions, graphql, reporter }) => {
// additional data can be passed via context
slug: node.frontmatter.slug,
},
- })
- })
-}
+ });
+ });
+};
diff --git a/jest-preprocess.js b/jest-preprocess.js
index ee17080e..c5af6931 100644
--- a/jest-preprocess.js
+++ b/jest-preprocess.js
@@ -1,5 +1,5 @@
const babelOptions = {
- presets: ["babel-preset-gatsby"],
-}
+ presets: ['babel-preset-gatsby'],
+};
-module.exports = require("babel-jest").createTransformer(babelOptions)
+module.exports = require('babel-jest').createTransformer(babelOptions);
diff --git a/jest.config.js b/jest.config.js
index 1172c403..7e8e7b12 100644
--- a/jest.config.js
+++ b/jest.config.js
@@ -1,20 +1,20 @@
module.exports = {
transform: {
- "^.+\\.jsx?$": `/jest-preprocess.js`,
+ '^.+\\.jsx?$': `/jest-preprocess.js`,
},
moduleNameMapper: {
- ".+\\.(css|styl|less|sass|scss)$": `identity-obj-proxy`,
- ".+\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": `/__mocks__/file-mock.js`,
+ '.+\\.(css|styl|less|sass|scss)$': `identity-obj-proxy`,
+ '.+\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': `/__mocks__/file-mock.js`,
},
testPathIgnorePatterns: [`node_modules`, `\\.cache`, `.*/public`],
transformIgnorePatterns: [`node_modules/(?!(gatsby)/)`],
globals: {
__PATH_PREFIX__: ``,
- __BASE_PATH__: ``,
+ __BASE_PATH__: ``,
},
setupFiles: [`/loadershim.js`],
- setupFilesAfterEnv: ["/setupTests.js"],
- snapshotSerializers: ["enzyme-to-json/serializer"],
+ setupFilesAfterEnv: ['/setupTests.js'],
+ snapshotSerializers: ['enzyme-to-json/serializer'],
coverageThreshold: {
global: {
branches: 0,
@@ -23,4 +23,4 @@ module.exports = {
statements: 68,
},
},
-}
+};
diff --git a/loadershim.js b/loadershim.js
index 37084c74..530bd30b 100644
--- a/loadershim.js
+++ b/loadershim.js
@@ -1,3 +1,3 @@
global.___loader = {
enqueue: jest.fn(),
-}
+};
diff --git a/package-lock.json b/package-lock.json
index 610afc8c..1eb2e73d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -3454,11 +3454,11 @@
}
},
"@babel/runtime-corejs3": {
- "version": "7.10.3",
- "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.10.3.tgz",
- "integrity": "sha512-HA7RPj5xvJxQl429r5Cxr2trJwOfPjKiqhCXcdQPSqO2G0RHPZpXu4fkYmBaTKCp2c/jRaMK9GB/lN+7zvvFPw==",
+ "version": "7.16.0",
+ "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.0.tgz",
+ "integrity": "sha512-Oi2qwQ21X7/d9gn3WiwkDTJmq3TQtYNz89lRnoFy8VeZpWlsyXvzSwiRrRZ8cXluvSwqKxqHJ6dBd9Rv+p0ZGQ==",
"requires": {
- "core-js-pure": "^3.0.0",
+ "core-js-pure": "^3.19.0",
"regenerator-runtime": "^0.13.4"
}
},
@@ -3637,6 +3637,7 @@
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz",
"integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==",
+ "dev": true,
"requires": {
"ajv": "^6.12.4",
"debug": "^4.1.1",
@@ -3653,6 +3654,7 @@
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -3664,14 +3666,16 @@
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
+ "dev": true,
"requires": {
"ms": "2.1.2"
}
},
"globals": {
- "version": "13.11.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz",
- "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==",
+ "version": "13.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz",
+ "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==",
+ "dev": true,
"requires": {
"type-fest": "^0.20.2"
}
@@ -3679,12 +3683,14 @@
"ignore": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
- "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg=="
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "dev": true
},
"type-fest": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true
}
}
},
@@ -3736,6 +3742,7 @@
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz",
"integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==",
+ "dev": true,
"requires": {
"@humanwhocodes/object-schema": "^1.2.0",
"debug": "^4.1.1",
@@ -3746,6 +3753,7 @@
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
+ "dev": true,
"requires": {
"ms": "2.1.2"
}
@@ -3755,7 +3763,8 @@
"@humanwhocodes/object-schema": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz",
- "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w=="
+ "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==",
+ "dev": true
},
"@istanbuljs/load-nyc-config": {
"version": "1.1.0",
@@ -6573,13 +6582,110 @@
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
},
"array-includes": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz",
- "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==",
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz",
+ "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==",
"requires": {
+ "call-bind": "^1.0.2",
"define-properties": "^1.1.3",
- "es-abstract": "^1.17.0",
- "is-string": "^1.0.5"
+ "es-abstract": "^1.19.1",
+ "get-intrinsic": "^1.1.1",
+ "is-string": "^1.0.7"
+ },
+ "dependencies": {
+ "es-abstract": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz",
+ "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.1.1",
+ "get-symbol-description": "^1.0.0",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.2",
+ "internal-slot": "^1.0.3",
+ "is-callable": "^1.2.4",
+ "is-negative-zero": "^2.0.1",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.1",
+ "is-string": "^1.0.7",
+ "is-weakref": "^1.0.1",
+ "object-inspect": "^1.11.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.2",
+ "string.prototype.trimend": "^1.0.4",
+ "string.prototype.trimstart": "^1.0.4",
+ "unbox-primitive": "^1.0.1"
+ }
+ },
+ "has-symbols": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
+ "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
+ },
+ "is-callable": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
+ "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w=="
+ },
+ "is-negative-zero": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
+ "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w=="
+ },
+ "is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "object-inspect": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
+ "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg=="
+ },
+ "object.assign": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
+ "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
+ "requires": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "has-symbols": "^1.0.1",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "string.prototype.trimend": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
+ "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ }
+ },
+ "string.prototype.trimstart": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
+ "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ }
+ }
}
},
"array-iterate": {
@@ -6631,13 +6737,108 @@
}
},
"array.prototype.flatmap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz",
- "integrity": "sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg==",
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz",
+ "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==",
"requires": {
+ "call-bind": "^1.0.0",
"define-properties": "^1.1.3",
- "es-abstract": "^1.17.0-next.1",
- "function-bind": "^1.1.1"
+ "es-abstract": "^1.19.0"
+ },
+ "dependencies": {
+ "es-abstract": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz",
+ "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.1.1",
+ "get-symbol-description": "^1.0.0",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.2",
+ "internal-slot": "^1.0.3",
+ "is-callable": "^1.2.4",
+ "is-negative-zero": "^2.0.1",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.1",
+ "is-string": "^1.0.7",
+ "is-weakref": "^1.0.1",
+ "object-inspect": "^1.11.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.2",
+ "string.prototype.trimend": "^1.0.4",
+ "string.prototype.trimstart": "^1.0.4",
+ "unbox-primitive": "^1.0.1"
+ }
+ },
+ "has-symbols": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
+ "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
+ },
+ "is-callable": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
+ "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w=="
+ },
+ "is-negative-zero": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
+ "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w=="
+ },
+ "is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "object-inspect": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
+ "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg=="
+ },
+ "object.assign": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
+ "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
+ "requires": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "has-symbols": "^1.0.1",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "string.prototype.trimend": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
+ "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ }
+ },
+ "string.prototype.trimstart": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
+ "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ }
+ }
}
},
"arraybuffer.slice": {
@@ -6793,9 +6994,9 @@
"integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA=="
},
"axe-core": {
- "version": "3.5.5",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.5.5.tgz",
- "integrity": "sha512-5P0QZ6J5xGikH780pghEdbEKijCTrruK9KxtPZCFWUpef0f6GipO+xEZ5GKCb020mmqgbiNO6TcA55CriL784Q=="
+ "version": "4.3.5",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.3.5.tgz",
+ "integrity": "sha512-WKTW1+xAzhMS5dJsxWkliixlO/PqC4VhmO9T4juNYcaTg9jzWiJsou6m5pxWYGfigWbwzJWeFY6z47a+4neRXA=="
},
"axios": {
"version": "0.19.2",
@@ -8159,12 +8360,12 @@
}
},
"call-bind": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz",
- "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
"requires": {
"function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.0"
+ "get-intrinsic": "^1.0.2"
}
},
"call-me-maybe": {
@@ -9080,11 +9281,6 @@
"resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
"integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U="
},
- "contains-path": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz",
- "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo="
- },
"content-disposition": {
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
@@ -9218,9 +9414,9 @@
}
},
"core-js-pure": {
- "version": "3.6.5",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz",
- "integrity": "sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA=="
+ "version": "3.19.0",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.19.0.tgz",
+ "integrity": "sha512-UEQk8AxyCYvNAs6baNoPqDADv7BX0AmBLGxVsrAifPPx/C8EAzV4Q+2ZUJqVzfI2TQQEZITnwUkWcHpgc/IubQ=="
},
"core-util-is": {
"version": "1.0.2",
@@ -9658,9 +9854,9 @@
"integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk="
},
"damerau-levenshtein": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz",
- "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug=="
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz",
+ "integrity": "sha512-VvdQIPGdWP0SqFXghj79Wf/5LArmreyMsGLa6FG6iC4t3j7j5s71TrwWmT/4akbDQIqjfACkLZmjXhA7g2oUZw=="
},
"dashdash": {
"version": "1.14.1",
@@ -10661,6 +10857,7 @@
"version": "2.3.6",
"resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
"integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
+ "dev": true,
"requires": {
"ansi-colors": "^4.1.1"
},
@@ -10668,7 +10865,8 @@
"ansi-colors": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
- "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA=="
+ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+ "dev": true
}
}
},
@@ -10857,6 +11055,7 @@
"version": "7.32.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz",
"integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==",
+ "dev": true,
"requires": {
"@babel/code-frame": "7.12.11",
"@eslint/eslintrc": "^0.4.3",
@@ -10904,6 +11103,7 @@
"version": "7.12.11",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz",
"integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==",
+ "dev": true,
"requires": {
"@babel/highlight": "^7.10.4"
}
@@ -10911,14 +11111,16 @@
"@babel/helper-validator-identifier": {
"version": "7.15.7",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
- "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w=="
+ "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
+ "dev": true
},
"@babel/highlight": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz",
- "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==",
+ "version": "7.16.0",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz",
+ "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==",
+ "dev": true,
"requires": {
- "@babel/helper-validator-identifier": "^7.14.5",
+ "@babel/helper-validator-identifier": "^7.15.7",
"chalk": "^2.0.0",
"js-tokens": "^4.0.0"
},
@@ -10927,6 +11129,7 @@
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
@@ -10936,24 +11139,28 @@
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
}
}
},
"ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true
},
"astral-regex": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
- "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ=="
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "dev": true
},
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -10963,6 +11170,7 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
"requires": {
"color-convert": "^2.0.1"
}
@@ -10971,6 +11179,7 @@
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
"requires": {
"has-flag": "^4.0.0"
}
@@ -10981,6 +11190,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
"requires": {
"color-name": "~1.1.4"
}
@@ -10988,12 +11198,14 @@
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
},
"cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
"requires": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
@@ -11004,6 +11216,7 @@
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
+ "dev": true,
"requires": {
"ms": "2.1.2"
}
@@ -11011,12 +11224,14 @@
"escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true
},
"eslint-scope": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
"integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dev": true,
"requires": {
"esrecurse": "^4.3.0",
"estraverse": "^4.1.1"
@@ -11025,20 +11240,23 @@
"eslint-visitor-keys": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
- "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw=="
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "dev": true
},
"esquery": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
"integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
+ "dev": true,
"requires": {
"estraverse": "^5.1.0"
},
"dependencies": {
"estraverse": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
- "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ=="
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true
}
}
},
@@ -11046,14 +11264,16 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
"integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
"requires": {
"estraverse": "^5.2.0"
},
"dependencies": {
"estraverse": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
- "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ=="
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true
}
}
},
@@ -11061,6 +11281,7 @@
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
"integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "dev": true,
"requires": {
"flat-cache": "^3.0.4"
}
@@ -11069,6 +11290,7 @@
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
"integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "dev": true,
"requires": {
"flatted": "^3.1.0",
"rimraf": "^3.0.2"
@@ -11077,20 +11299,23 @@
"flatted": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz",
- "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA=="
+ "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==",
+ "dev": true
},
"glob-parent": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
"requires": {
"is-glob": "^4.0.1"
}
},
"globals": {
- "version": "13.11.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz",
- "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==",
+ "version": "13.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz",
+ "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==",
+ "dev": true,
"requires": {
"type-fest": "^0.20.2"
}
@@ -11098,27 +11323,32 @@
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
},
"ignore": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
- "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg=="
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "dev": true
},
"is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
},
"json-schema-traverse": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true
},
"levn": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
"integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
"requires": {
"prelude-ls": "^1.2.1",
"type-check": "~0.4.0"
@@ -11128,6 +11358,7 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
"requires": {
"yallist": "^4.0.0"
}
@@ -11136,6 +11367,7 @@
"version": "0.9.1",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
"integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "dev": true,
"requires": {
"deep-is": "^0.1.3",
"fast-levenshtein": "^2.0.6",
@@ -11148,17 +11380,20 @@
"path-key": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true
},
"prelude-ls": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "dev": true
},
"semver": {
"version": "7.3.5",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
"integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "dev": true,
"requires": {
"lru-cache": "^6.0.0"
}
@@ -11167,6 +11402,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
"requires": {
"shebang-regex": "^3.0.0"
}
@@ -11174,12 +11410,14 @@
"shebang-regex": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true
},
"slice-ansi": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
"integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
"requires": {
"ansi-styles": "^4.0.0",
"astral-regex": "^2.0.0",
@@ -11190,6 +11428,7 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
"requires": {
"color-convert": "^2.0.1"
}
@@ -11197,40 +11436,44 @@
}
},
"string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
"requires": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
+ "strip-ansi": "^6.0.1"
}
},
"strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
"requires": {
- "ansi-regex": "^5.0.0"
+ "ansi-regex": "^5.0.1"
}
},
"table": {
- "version": "6.7.1",
- "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz",
- "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==",
+ "version": "6.7.2",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.7.2.tgz",
+ "integrity": "sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g==",
+ "dev": true,
"requires": {
"ajv": "^8.0.1",
"lodash.clonedeep": "^4.5.0",
"lodash.truncate": "^4.4.2",
"slice-ansi": "^4.0.0",
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0"
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1"
},
"dependencies": {
"ajv": {
"version": "8.6.3",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz",
"integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==",
+ "dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
"json-schema-traverse": "^1.0.0",
@@ -11244,6 +11487,7 @@
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
"integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dev": true,
"requires": {
"prelude-ls": "^1.2.1"
}
@@ -11251,17 +11495,20 @@
"type-fest": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true
},
"v8-compile-cache": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
- "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA=="
+ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
+ "dev": true
},
"which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
"requires": {
"isexe": "^2.0.0"
}
@@ -11269,10 +11516,73 @@
"yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-config-airbnb": {
+ "version": "18.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-18.2.1.tgz",
+ "integrity": "sha512-glZNDEZ36VdlZWoxn/bUR1r/sdFKPd1mHPbqUtkctgNG4yT2DLLtJ3D+yCV+jzZCc2V1nBVkmdknOJBZ5Hc0fg==",
+ "dev": true,
+ "requires": {
+ "eslint-config-airbnb-base": "^14.2.1",
+ "object.assign": "^4.1.2",
+ "object.entries": "^1.1.2"
+ },
+ "dependencies": {
+ "object.assign": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
+ "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "has-symbols": "^1.0.1",
+ "object-keys": "^1.1.1"
+ }
+ }
+ }
+ },
+ "eslint-config-airbnb-base": {
+ "version": "14.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz",
+ "integrity": "sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==",
+ "dev": true,
+ "requires": {
+ "confusing-browser-globals": "^1.0.10",
+ "object.assign": "^4.1.2",
+ "object.entries": "^1.1.2"
+ },
+ "dependencies": {
+ "confusing-browser-globals": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz",
+ "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==",
+ "dev": true
+ },
+ "object.assign": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
+ "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "has-symbols": "^1.0.1",
+ "object-keys": "^1.1.1"
+ }
}
}
},
+ "eslint-config-prettier": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz",
+ "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==",
+ "dev": true
+ },
"eslint-config-react-app": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-5.2.1.tgz",
@@ -11282,26 +11592,30 @@
}
},
"eslint-import-resolver-node": {
- "version": "0.3.4",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz",
- "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==",
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz",
+ "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==",
"requires": {
- "debug": "^2.6.9",
- "resolve": "^1.13.1"
+ "debug": "^3.2.7",
+ "resolve": "^1.20.0"
},
"dependencies": {
"debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"requires": {
- "ms": "2.0.0"
+ "ms": "^2.1.1"
}
},
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "resolve": {
+ "version": "1.20.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
+ "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
+ "requires": {
+ "is-core-module": "^2.2.0",
+ "path-parse": "^1.0.6"
+ }
}
}
},
@@ -11328,20 +11642,21 @@
}
},
"eslint-module-utils": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz",
- "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==",
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz",
+ "integrity": "sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==",
"requires": {
- "debug": "^2.6.9",
+ "debug": "^3.2.7",
+ "find-up": "^2.1.0",
"pkg-dir": "^2.0.0"
},
"dependencies": {
"debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"requires": {
- "ms": "2.0.0"
+ "ms": "^2.1.1"
}
},
"find-up": {
@@ -11361,11 +11676,6 @@
"path-exists": "^3.0.0"
}
},
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- },
"p-limit": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
@@ -11415,26 +11725,36 @@
}
},
"eslint-plugin-import": {
- "version": "2.22.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz",
- "integrity": "sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg==",
+ "version": "2.25.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.2.tgz",
+ "integrity": "sha512-qCwQr9TYfoBHOFcVGKY9C9unq05uOxxdklmBXLVvcwo68y5Hta6/GzCZEMx2zQiu0woKNEER0LE7ZgaOfBU14g==",
"requires": {
- "array-includes": "^3.1.1",
- "array.prototype.flat": "^1.2.3",
- "contains-path": "^0.1.0",
+ "array-includes": "^3.1.4",
+ "array.prototype.flat": "^1.2.5",
"debug": "^2.6.9",
- "doctrine": "1.5.0",
- "eslint-import-resolver-node": "^0.3.3",
- "eslint-module-utils": "^2.6.0",
+ "doctrine": "^2.1.0",
+ "eslint-import-resolver-node": "^0.3.6",
+ "eslint-module-utils": "^2.7.0",
"has": "^1.0.3",
+ "is-core-module": "^2.7.0",
+ "is-glob": "^4.0.3",
"minimatch": "^3.0.4",
- "object.values": "^1.1.1",
- "read-pkg-up": "^2.0.0",
- "resolve": "^1.17.0",
- "tsconfig-paths": "^3.9.0"
+ "object.values": "^1.1.5",
+ "resolve": "^1.20.0",
+ "tsconfig-paths": "^3.11.0"
},
"dependencies": {
- "debug": {
+ "array.prototype.flat": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz",
+ "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.0"
+ }
+ },
+ "debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
@@ -11443,62 +11763,201 @@
}
},
"doctrine": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
- "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
"requires": {
- "esutils": "^2.0.2",
- "isarray": "^1.0.0"
+ "esutils": "^2.0.2"
+ }
+ },
+ "es-abstract": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz",
+ "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.1.1",
+ "get-symbol-description": "^1.0.0",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.2",
+ "internal-slot": "^1.0.3",
+ "is-callable": "^1.2.4",
+ "is-negative-zero": "^2.0.1",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.1",
+ "is-string": "^1.0.7",
+ "is-weakref": "^1.0.1",
+ "object-inspect": "^1.11.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.2",
+ "string.prototype.trimend": "^1.0.4",
+ "string.prototype.trimstart": "^1.0.4",
+ "unbox-primitive": "^1.0.1"
+ }
+ },
+ "has-symbols": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
+ "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
+ },
+ "is-callable": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
+ "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w=="
+ },
+ "is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-negative-zero": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
+ "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w=="
+ },
+ "is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "requires": {
+ "has-tostringtag": "^1.0.0"
}
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "object-inspect": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
+ "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg=="
+ },
+ "object.assign": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
+ "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
+ "requires": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "has-symbols": "^1.0.1",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "object.values": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
+ "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.1"
+ }
+ },
+ "resolve": {
+ "version": "1.20.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
+ "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
+ "requires": {
+ "is-core-module": "^2.2.0",
+ "path-parse": "^1.0.6"
+ }
+ },
+ "string.prototype.trimend": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
+ "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ }
+ },
+ "string.prototype.trimstart": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
+ "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ }
}
}
},
"eslint-plugin-jsx-a11y": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.3.1.tgz",
- "integrity": "sha512-i1S+P+c3HOlBJzMFORRbC58tHa65Kbo8b52/TwCwSKLohwvpfT5rm2GjGWzOHTEuq4xxf2aRlHHTtmExDQOP+g==",
+ "version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz",
+ "integrity": "sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg==",
"requires": {
- "@babel/runtime": "^7.10.2",
+ "@babel/runtime": "^7.11.2",
"aria-query": "^4.2.2",
"array-includes": "^3.1.1",
"ast-types-flow": "^0.0.7",
- "axe-core": "^3.5.4",
- "axobject-query": "^2.1.2",
+ "axe-core": "^4.0.2",
+ "axobject-query": "^2.2.0",
"damerau-levenshtein": "^1.0.6",
"emoji-regex": "^9.0.0",
"has": "^1.0.3",
- "jsx-ast-utils": "^2.4.1",
+ "jsx-ast-utils": "^3.1.0",
"language-tags": "^1.0.5"
},
"dependencies": {
+ "@babel/runtime": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.0.tgz",
+ "integrity": "sha512-Nht8L0O8YCktmsDV6FqFue7vQLRx3Hb0B37lS5y0jDRqRxlBG4wIJHnf9/bgSE2UyipKFA01YtS+npRdTWBUyw==",
+ "requires": {
+ "regenerator-runtime": "^0.13.4"
+ }
+ },
"emoji-regex": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.0.0.tgz",
- "integrity": "sha512-6p1NII1Vm62wni/VR/cUMauVQoxmLVb9csqQlvLz+hO2gk8U2UYDfXHQSUYIBKmZwAKz867IDqG7B+u0mj+M6w=="
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
}
}
},
+ "eslint-plugin-prettier": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz",
+ "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==",
+ "dev": true,
+ "requires": {
+ "prettier-linter-helpers": "^1.0.0"
+ }
+ },
"eslint-plugin-react": {
- "version": "7.21.5",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.21.5.tgz",
- "integrity": "sha512-8MaEggC2et0wSF6bUeywF7qQ46ER81irOdWS4QWxnnlAEsnzeBevk1sWh7fhpCghPpXb+8Ks7hvaft6L/xsR6g==",
+ "version": "7.26.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.26.1.tgz",
+ "integrity": "sha512-Lug0+NOFXeOE+ORZ5pbsh6mSKjBKXDXItUD2sQoT+5Yl0eoT82DqnXeTMfUare4QVCn9QwXbfzO/dBLjLXwVjQ==",
"requires": {
- "array-includes": "^3.1.1",
- "array.prototype.flatmap": "^1.2.3",
+ "array-includes": "^3.1.3",
+ "array.prototype.flatmap": "^1.2.4",
"doctrine": "^2.1.0",
- "has": "^1.0.3",
+ "estraverse": "^5.2.0",
"jsx-ast-utils": "^2.4.1 || ^3.0.0",
- "object.entries": "^1.1.2",
- "object.fromentries": "^2.0.2",
- "object.values": "^1.1.1",
+ "minimatch": "^3.0.4",
+ "object.entries": "^1.1.4",
+ "object.fromentries": "^2.0.4",
+ "object.hasown": "^1.0.0",
+ "object.values": "^1.1.4",
"prop-types": "^15.7.2",
- "resolve": "^1.18.1",
- "string.prototype.matchall": "^4.0.2"
+ "resolve": "^2.0.0-next.3",
+ "semver": "^6.3.0",
+ "string.prototype.matchall": "^4.0.5"
},
"dependencies": {
"doctrine": {
@@ -11509,21 +11968,155 @@
"esutils": "^2.0.2"
}
},
+ "es-abstract": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz",
+ "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.1.1",
+ "get-symbol-description": "^1.0.0",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.2",
+ "internal-slot": "^1.0.3",
+ "is-callable": "^1.2.4",
+ "is-negative-zero": "^2.0.1",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.1",
+ "is-string": "^1.0.7",
+ "is-weakref": "^1.0.1",
+ "object-inspect": "^1.11.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.2",
+ "string.prototype.trimend": "^1.0.4",
+ "string.prototype.trimstart": "^1.0.4",
+ "unbox-primitive": "^1.0.1"
+ }
+ },
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
+ },
+ "has-symbols": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
+ "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
+ },
+ "is-callable": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
+ "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w=="
+ },
+ "is-negative-zero": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
+ "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w=="
+ },
+ "is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "object-inspect": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
+ "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg=="
+ },
+ "object.assign": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
+ "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
+ "requires": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "has-symbols": "^1.0.1",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "object.entries": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz",
+ "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.1"
+ }
+ },
+ "object.fromentries": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz",
+ "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.1"
+ }
+ },
+ "object.values": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
+ "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.1"
+ }
+ },
"resolve": {
- "version": "1.18.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz",
- "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==",
+ "version": "2.0.0-next.3",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz",
+ "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==",
"requires": {
- "is-core-module": "^2.0.0",
+ "is-core-module": "^2.2.0",
"path-parse": "^1.0.6"
}
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ },
+ "string.prototype.trimend": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
+ "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ }
+ },
+ "string.prototype.trimstart": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
+ "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ }
}
}
},
"eslint-plugin-react-hooks": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz",
- "integrity": "sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA=="
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz",
+ "integrity": "sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==",
+ "dev": true
},
"eslint-scope": {
"version": "5.1.0",
@@ -11551,6 +12144,7 @@
"version": "7.3.1",
"resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz",
"integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==",
+ "dev": true,
"requires": {
"acorn": "^7.4.0",
"acorn-jsx": "^5.3.1",
@@ -11560,12 +12154,14 @@
"acorn": {
"version": "7.4.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
- "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+ "dev": true
},
"acorn-jsx": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true
}
}
},
@@ -12221,6 +12817,12 @@
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
+ "fast-diff": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
+ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
+ "dev": true
+ },
"fast-glob": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz",
@@ -13623,6 +14225,11 @@
}
}
},
+ "eslint-plugin-react-hooks": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz",
+ "integrity": "sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA=="
+ },
"eslint-utils": {
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
@@ -15211,9 +15818,9 @@
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
},
"get-intrinsic": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz",
- "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
+ "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
"requires": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
@@ -15262,6 +15869,15 @@
"pump": "^3.0.0"
}
},
+ "get-symbol-description": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
+ "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ }
+ },
"get-value": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
@@ -15777,6 +16393,11 @@
}
}
},
+ "has-bigints": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
+ "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA=="
+ },
"has-binary2": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz",
@@ -15820,6 +16441,21 @@
"has-symbol-support-x": "^1.4.1"
}
},
+ "has-tostringtag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
+ "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+ "requires": {
+ "has-symbols": "^1.0.2"
+ },
+ "dependencies": {
+ "has-symbols": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
+ "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
+ }
+ }
+ },
"has-unicode": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
@@ -16285,6 +16921,12 @@
}
}
},
+ "husky": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz",
+ "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==",
+ "dev": true
+ },
"iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
@@ -17024,13 +17666,13 @@
}
},
"internal-slot": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz",
- "integrity": "sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
+ "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
"requires": {
- "es-abstract": "^1.17.0-next.1",
+ "get-intrinsic": "^1.1.0",
"has": "^1.0.3",
- "side-channel": "^1.0.2"
+ "side-channel": "^1.0.4"
}
},
"into-stream": {
@@ -17117,6 +17759,14 @@
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
},
+ "is-bigint": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "requires": {
+ "has-bigints": "^1.0.1"
+ }
+ },
"is-binary-path": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
@@ -17170,9 +17820,9 @@
}
},
"is-core-module": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.0.0.tgz",
- "integrity": "sha512-jq1AH6C8MuteOoBPwkxHafmByhL9j5q4OaPGdbuD+ZtQJVzH+i6E3BJDQcBA09k57i2Hh2yQbEG8yObZ0jdlWw==",
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz",
+ "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==",
"requires": {
"has": "^1.0.3"
}
@@ -17458,6 +18108,11 @@
"resolved": "https://registry.npmjs.org/is-root/-/is-root-1.0.0.tgz",
"integrity": "sha1-B7bCM7w5TNnQK6FclmvWZg1jQtU="
},
+ "is-shared-array-buffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz",
+ "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA=="
+ },
"is-ssh": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.1.tgz",
@@ -17528,6 +18183,14 @@
"is-invalid-path": "^0.1.0"
}
},
+ "is-weakref": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz",
+ "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==",
+ "requires": {
+ "call-bind": "^1.0.0"
+ }
+ },
"is-whitespace-character": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz",
@@ -20521,12 +21184,25 @@
}
},
"jsx-ast-utils": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz",
- "integrity": "sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz",
+ "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==",
"requires": {
- "array-includes": "^3.1.1",
- "object.assign": "^4.1.0"
+ "array-includes": "^3.1.3",
+ "object.assign": "^4.1.2"
+ },
+ "dependencies": {
+ "object.assign": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
+ "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
+ "requires": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "has-symbols": "^1.0.1",
+ "object-keys": "^1.1.1"
+ }
+ }
}
},
"keyv": {
@@ -20553,9 +21229,9 @@
"integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="
},
"language-subtag-registry": {
- "version": "0.3.20",
- "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.20.tgz",
- "integrity": "sha512-KPMwROklF4tEx283Xw0pNKtfTj1gZ4UByp4EsIFWLgBavJltF4TiYPc39k06zSTsLzxTVXXDSpbwaQXaFB4Qeg=="
+ "version": "0.3.21",
+ "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz",
+ "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg=="
},
"language-tags": {
"version": "1.0.5",
@@ -20609,51 +21285,412 @@
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
"integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA="
},
- "load-bmfont": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.0.tgz",
- "integrity": "sha512-kT63aTAlNhZARowaNYcY29Fn/QYkc52M3l6V1ifRcPewg2lvUZDAj7R6dXjOL9D0sict76op3T5+odumDSF81g==",
+ "lint-staged": {
+ "version": "11.2.6",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.2.6.tgz",
+ "integrity": "sha512-Vti55pUnpvPE0J9936lKl0ngVeTdSZpEdTNhASbkaWX7J5R9OEifo1INBGQuGW4zmy6OG+TcWPJ3m5yuy5Q8Tg==",
+ "dev": true,
"requires": {
- "buffer-equal": "0.0.1",
- "mime": "^1.3.4",
- "parse-bmfont-ascii": "^1.0.3",
- "parse-bmfont-binary": "^1.0.5",
- "parse-bmfont-xml": "^1.1.4",
- "phin": "^2.9.1",
- "xhr": "^2.0.1",
- "xtend": "^4.0.0"
+ "cli-truncate": "2.1.0",
+ "colorette": "^1.4.0",
+ "commander": "^8.2.0",
+ "cosmiconfig": "^7.0.1",
+ "debug": "^4.3.2",
+ "enquirer": "^2.3.6",
+ "execa": "^5.1.1",
+ "listr2": "^3.12.2",
+ "micromatch": "^4.0.4",
+ "normalize-path": "^3.0.0",
+ "please-upgrade-node": "^3.2.0",
+ "string-argv": "0.3.1",
+ "stringify-object": "3.3.0",
+ "supports-color": "8.1.1"
},
"dependencies": {
- "mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "colorette": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
+ "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==",
+ "dev": true
+ },
+ "commander": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
+ "dev": true
+ },
+ "cosmiconfig": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz",
+ "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==",
+ "dev": true,
+ "requires": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.2.1",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.10.0"
+ }
+ },
+ "cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "debug": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
+ "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "human-signals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
+ "dev": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
+ "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true
+ },
+ "npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.0.0"
+ }
+ },
+ "onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true
+ },
+ "picomatch": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
+ "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
+ "dev": true
+ },
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
}
}
},
- "load-json-file": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
- "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+ "listr2": {
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.13.1.tgz",
+ "integrity": "sha512-pk4YBDA2cxtpM8iLHbz6oEsfZieJKHf6Pt19NlKaHZZVpqHyVs/Wqr7RfBBCeAFCJchGO7WQHVkUPZTvJMHk8w==",
+ "dev": true,
"requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^2.2.0",
- "pify": "^2.0.0",
- "strip-bom": "^3.0.0"
+ "cli-truncate": "^2.1.0",
+ "colorette": "^2.0.16",
+ "log-update": "^4.0.0",
+ "p-map": "^4.0.0",
+ "rxjs": "^6.6.7",
+ "through": "^2.3.8",
+ "wrap-ansi": "^7.0.0"
},
"dependencies": {
- "parse-json": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
- "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "dev": true,
"requires": {
- "error-ex": "^1.2.0"
+ "type-fest": "^0.21.3"
}
},
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "dev": true
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "colorette": {
+ "version": "2.0.16",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz",
+ "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "log-update": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz",
+ "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "^4.3.0",
+ "cli-cursor": "^3.1.0",
+ "slice-ansi": "^4.0.0",
+ "wrap-ansi": "^6.2.0"
+ },
+ "dependencies": {
+ "wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ }
+ }
+ },
+ "p-map": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
+ "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
+ "dev": true,
+ "requires": {
+ "aggregate-error": "^3.0.0"
+ }
+ },
+ "rxjs": {
+ "version": "6.6.7",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
+ "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.9.0"
+ }
+ },
+ "slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ }
+ },
+ "string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ },
+ "type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ }
+ }
+ },
+ "load-bmfont": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.0.tgz",
+ "integrity": "sha512-kT63aTAlNhZARowaNYcY29Fn/QYkc52M3l6V1ifRcPewg2lvUZDAj7R6dXjOL9D0sict76op3T5+odumDSF81g==",
+ "requires": {
+ "buffer-equal": "0.0.1",
+ "mime": "^1.3.4",
+ "parse-bmfont-ascii": "^1.0.3",
+ "parse-bmfont-binary": "^1.0.5",
+ "parse-bmfont-xml": "^1.1.4",
+ "phin": "^2.9.1",
+ "xhr": "^2.0.1",
+ "xtend": "^4.0.0"
+ },
+ "dependencies": {
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
}
}
},
@@ -20818,7 +21855,8 @@
"lodash.merge": {
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "dev": true
},
"lodash.sample": {
"version": "4.2.1",
@@ -20861,7 +21899,8 @@
"lodash.truncate": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
- "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM="
+ "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=",
+ "dev": true
},
"lodash.uniq": {
"version": "4.5.0",
@@ -22199,6 +23238,110 @@
"es-abstract": "^1.17.0-next.1"
}
},
+ "object.hasown": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz",
+ "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==",
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.1"
+ },
+ "dependencies": {
+ "es-abstract": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz",
+ "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.1.1",
+ "get-symbol-description": "^1.0.0",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.2",
+ "internal-slot": "^1.0.3",
+ "is-callable": "^1.2.4",
+ "is-negative-zero": "^2.0.1",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.1",
+ "is-string": "^1.0.7",
+ "is-weakref": "^1.0.1",
+ "object-inspect": "^1.11.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.2",
+ "string.prototype.trimend": "^1.0.4",
+ "string.prototype.trimstart": "^1.0.4",
+ "unbox-primitive": "^1.0.1"
+ }
+ },
+ "has-symbols": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
+ "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
+ },
+ "is-callable": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
+ "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w=="
+ },
+ "is-negative-zero": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
+ "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w=="
+ },
+ "is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "object-inspect": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
+ "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg=="
+ },
+ "object.assign": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
+ "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
+ "requires": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "has-symbols": "^1.0.1",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "string.prototype.trimend": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
+ "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ }
+ },
+ "string.prototype.trimstart": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
+ "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ }
+ }
+ }
+ },
"object.pick": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
@@ -22792,6 +23935,15 @@
"find-up": "^3.0.0"
}
},
+ "please-upgrade-node": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz",
+ "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==",
+ "dev": true,
+ "requires": {
+ "semver-compare": "^1.0.0"
+ }
+ },
"pngjs": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
@@ -23630,6 +24782,15 @@
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz",
"integrity": "sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg=="
},
+ "prettier-linter-helpers": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
+ "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
+ "dev": true,
+ "requires": {
+ "fast-diff": "^1.1.2"
+ }
+ },
"pretty-bytes": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz",
@@ -24470,80 +25631,6 @@
"with-open-file": "^0.1.6"
}
},
- "read-pkg": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
- "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
- "requires": {
- "load-json-file": "^2.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^2.0.0"
- },
- "dependencies": {
- "path-type": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
- "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
- "requires": {
- "pify": "^2.0.0"
- }
- },
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
- }
- }
- },
- "read-pkg-up": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
- "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
- "requires": {
- "find-up": "^2.0.0",
- "read-pkg": "^2.0.0"
- },
- "dependencies": {
- "find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "requires": {
- "locate-path": "^2.0.0"
- }
- },
- "locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
- "requires": {
- "p-locate": "^2.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "p-limit": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
- "requires": {
- "p-try": "^1.0.0"
- }
- },
- "p-locate": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
- "requires": {
- "p-limit": "^1.1.0"
- }
- },
- "p-try": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
- }
- }
- },
"readable-stream": {
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
@@ -25343,7 +26430,8 @@
"require-from-string": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "dev": true
},
"require-main-filename": {
"version": "2.0.0",
@@ -25703,6 +26791,12 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
},
+ "semver-compare": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
+ "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=",
+ "dev": true
+ },
"semver-regex": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz",
@@ -25942,56 +27036,19 @@
"optional": true
},
"side-channel": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.3.tgz",
- "integrity": "sha512-A6+ByhlLkksFoUepsGxfj5x1gTSrs+OydsRptUxeNCabQpCFUvcwIczgOigI8vhY/OJCnPnyE9rGiwgvr9cS1g==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
"requires": {
- "es-abstract": "^1.18.0-next.0",
- "object-inspect": "^1.8.0"
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
},
"dependencies": {
- "es-abstract": {
- "version": "1.18.0-next.1",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz",
- "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==",
- "requires": {
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.2.2",
- "is-negative-zero": "^2.0.0",
- "is-regex": "^1.1.1",
- "object-inspect": "^1.8.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.1",
- "string.prototype.trimend": "^1.0.1",
- "string.prototype.trimstart": "^1.0.1"
- }
- },
- "is-callable": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz",
- "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA=="
- },
- "is-regex": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
- "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
- "requires": {
- "has-symbols": "^1.0.1"
- }
- },
- "object.assign": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
- "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
- "requires": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3",
- "has-symbols": "^1.0.1",
- "object-keys": "^1.1.1"
- }
+ "object-inspect": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
+ "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg=="
}
}
},
@@ -26754,6 +27811,12 @@
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
"integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM="
},
+ "string-argv": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz",
+ "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==",
+ "dev": true
+ },
"string-length": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/string-length/-/string-length-3.1.0.tgz",
@@ -26810,16 +27873,122 @@
}
},
"string.prototype.matchall": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz",
- "integrity": "sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg==",
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz",
+ "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==",
"requires": {
+ "call-bind": "^1.0.2",
"define-properties": "^1.1.3",
- "es-abstract": "^1.17.0",
- "has-symbols": "^1.0.1",
- "internal-slot": "^1.0.2",
- "regexp.prototype.flags": "^1.3.0",
- "side-channel": "^1.0.2"
+ "es-abstract": "^1.19.1",
+ "get-intrinsic": "^1.1.1",
+ "has-symbols": "^1.0.2",
+ "internal-slot": "^1.0.3",
+ "regexp.prototype.flags": "^1.3.1",
+ "side-channel": "^1.0.4"
+ },
+ "dependencies": {
+ "es-abstract": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz",
+ "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.1.1",
+ "get-symbol-description": "^1.0.0",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.2",
+ "internal-slot": "^1.0.3",
+ "is-callable": "^1.2.4",
+ "is-negative-zero": "^2.0.1",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.1",
+ "is-string": "^1.0.7",
+ "is-weakref": "^1.0.1",
+ "object-inspect": "^1.11.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.2",
+ "string.prototype.trimend": "^1.0.4",
+ "string.prototype.trimstart": "^1.0.4",
+ "unbox-primitive": "^1.0.1"
+ }
+ },
+ "has-symbols": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
+ "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
+ },
+ "is-callable": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
+ "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w=="
+ },
+ "is-negative-zero": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
+ "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w=="
+ },
+ "is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "object-inspect": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
+ "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg=="
+ },
+ "object.assign": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
+ "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
+ "requires": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "has-symbols": "^1.0.1",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "regexp.prototype.flags": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz",
+ "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ }
+ },
+ "string.prototype.trimend": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
+ "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ }
+ },
+ "string.prototype.trimstart": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
+ "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ }
+ }
}
},
"string.prototype.trim": {
@@ -27739,9 +28908,9 @@
"integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw=="
},
"tsconfig-paths": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz",
- "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==",
+ "version": "3.11.0",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz",
+ "integrity": "sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==",
"requires": {
"@types/json5": "^0.0.29",
"json5": "^1.0.1",
@@ -27836,6 +29005,24 @@
"is-typedarray": "^1.0.0"
}
},
+ "unbox-primitive": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
+ "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has-bigints": "^1.0.1",
+ "has-symbols": "^1.0.2",
+ "which-boxed-primitive": "^1.0.2"
+ },
+ "dependencies": {
+ "has-symbols": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
+ "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
+ }
+ }
+ },
"unbzip2-stream": {
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
@@ -28950,6 +30137,29 @@
"isexe": "^2.0.0"
}
},
+ "which-boxed-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+ "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "requires": {
+ "is-bigint": "^1.0.1",
+ "is-boolean-object": "^1.1.0",
+ "is-number-object": "^1.0.4",
+ "is-string": "^1.0.5",
+ "is-symbol": "^1.0.3"
+ },
+ "dependencies": {
+ "is-boolean-object": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
+ "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ }
+ }
+ },
"which-module": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
diff --git a/package.json b/package.json
index 106c4c87..f0145be5 100644
--- a/package.json
+++ b/package.json
@@ -4,12 +4,27 @@
"description": "A simple react app to generate beautiful github profile readme in md(markdown)",
"version": "1.2.0",
"author": "Rahul Jain ",
+ "husky": {
+ "hooks": {
+ "pre-commit": "lint-staged"
+ }
+ },
+ "lint-staged": {
+ "*.{js,jsx}": [
+ "prettier --write",
+ "eslint --fix",
+ "git add"
+ ],
+ "*.{html,css,less,ejs}": [
+ "prettier --write",
+ "git add"
+ ]
+ },
"dependencies": {
"@primer/octicons-react": "^10.0.0",
"enzyme": "^3.11.0",
"enzyme-adapter-react-16": "^1.15.5",
"enzyme-to-json": "^3.6.1",
- "eslint": "^7.17.0",
"gatsby": "^2.23.12",
"gatsby-image": "^2.4.9",
"gatsby-plugin-google-analytics": "^2.3.11",
@@ -31,13 +46,23 @@
"devDependencies": {
"babel-jest": "26.3.0",
"babel-preset-gatsby": "0.5.11",
+ "eslint": "^7.32.0",
+ "eslint-config-airbnb": "^18.2.1",
+ "eslint-config-prettier": "^8.3.0",
+ "eslint-plugin-import": "^2.25.2",
+ "eslint-plugin-jsx-a11y": "^6.4.1",
+ "eslint-plugin-prettier": "^4.0.0",
+ "eslint-plugin-react": "^7.26.1",
+ "eslint-plugin-react-hooks": "^4.2.0",
"gatsby-plugin-postcss": "^2.3.11",
"gatsby-plugin-purgecss": "^5.0.0",
"gatsby-plugin-twitter": "^2.3.10",
"gatsby-remark-embedder": "^3.0.0",
"gh-pages": "^3.1.0",
+ "husky": "^7.0.4",
"identity-obj-proxy": "3.0.0",
"jest": "26.4.2",
+ "lint-staged": "^11.2.6",
"prettier": "2.0.5",
"tailwindcss": "^1.7.6"
},
diff --git a/setupTests.js b/setupTests.js
index 4cda5b38..82edfc9e 100644
--- a/setupTests.js
+++ b/setupTests.js
@@ -1,4 +1,4 @@
-import { configure } from "enzyme"
-import Adapter from "enzyme-adapter-react-16"
+import { configure } from 'enzyme';
+import Adapter from 'enzyme-adapter-react-16';
-configure({ adapter: new Adapter() })
+configure({ adapter: new Adapter() });
diff --git a/src/components/__tests__/addons.test.js b/src/components/__tests__/addons.test.js
index 0402628b..063bd306 100644
--- a/src/components/__tests__/addons.test.js
+++ b/src/components/__tests__/addons.test.js
@@ -1,76 +1,76 @@
-import React from "react"
-import toJson from "enzyme-to-json"
-import { shallow, mount } from "enzyme"
+import React from 'react';
+import toJson from 'enzyme-to-json';
+import { shallow, mount } from 'enzyme';
-import Addons from "../addons"
+import Addons from '../addons';
jest.useFakeTimers();
-describe("Addons", () => {
+describe('Addons', () => {
const dataInput = {
- title: "",
- subtitle: "A passionate frontend developer from India",
- currentWork: "",
- currentLearn: "",
- collaborateOn: "",
- helpWith: "",
- ama: "",
- contact: "",
- funFact: "",
+ title: '',
+ subtitle: 'A passionate frontend developer from India',
+ currentWork: '',
+ currentLearn: '',
+ collaborateOn: '',
+ helpWith: '',
+ ama: '',
+ contact: '',
+ funFact: '',
twitterBadge: false,
visitorsBadge: false,
- badgeStyle: "flat",
- badgeColor: "0e75b6",
- badgeLabel: "Profile views",
+ badgeStyle: 'flat',
+ badgeColor: '0e75b6',
+ badgeLabel: 'Profile views',
githubProfileTrophy: false,
githubStats: false,
githubStatsOptions: {
- theme: "",
- titleColor: "",
- textColor: "",
- bgColor: "",
+ theme: '',
+ titleColor: '',
+ textColor: '',
+ bgColor: '',
hideBorder: false,
cacheSeconds: null,
- locale: "en",
+ locale: 'en',
},
topLanguages: false,
topLanguagesOptions: {
- theme: "",
- titleColor: "",
- textColor: "",
- bgColor: "",
+ theme: '',
+ titleColor: '',
+ textColor: '',
+ bgColor: '',
hideBorder: false,
cacheSeconds: null,
- locale: "en",
+ locale: 'en',
},
devDynamicBlogs: false,
mediumDynamicBlogs: false,
rssDynamicBlogs: false,
};
const socialInput = {
- github: "",
- dev: "",
- linkedin: "",
- codepen: "",
- stackoverflow: "",
- kaggle: "",
- codesandbox: "",
- fb: "",
- instagram: "",
- twitter: "",
- dribbble: "",
- behance: "",
- medium: "",
- youtube: "",
- codechef: "",
- hackerrank: "",
- codeforces: "",
- leetcode: "",
- topcoder: "",
- hackerearth: "",
- geeks_for_geeks: "",
- discord: "",
- rssurl: "",
+ github: '',
+ dev: '',
+ linkedin: '',
+ codepen: '',
+ stackoverflow: '',
+ kaggle: '',
+ codesandbox: '',
+ fb: '',
+ instagram: '',
+ twitter: '',
+ dribbble: '',
+ behance: '',
+ medium: '',
+ youtube: '',
+ codechef: '',
+ hackerrank: '',
+ codeforces: '',
+ leetcode: '',
+ topcoder: '',
+ hackerearth: '',
+ geeks_for_geeks: '',
+ discord: '',
+ rssurl: '',
};
let mockHandleCheckChange;
@@ -84,683 +84,723 @@ describe("Addons", () => {
jest.clearAllMocks();
});
- it("renders correctly", () => {
- const addOnComponent = shallow();
+ it('renders correctly', () => {
+ const addOnComponent = shallow(
+
+ );
expect(toJson(addOnComponent)).toMatchSnapshot();
});
- it("should render Customize Badges", () => {
+ it('should render Customize Badges', () => {
const newDataInput = {
...dataInput,
- mediumDynamicBlogs: "some-medium-blogs-value"
+ mediumDynamicBlogs: 'some-medium-blogs-value',
};
const newSocialInput = {
- medium: "@abcd",
+ medium: '@abcd',
};
- const addOnComponent = mount();
+ const addOnComponent = mount(
+
+ );
+
+ addOnComponent.find('#visitors-count-open-btn').simulate('click', {});
- addOnComponent.find("#visitors-count-open-btn").simulate("click",{});
-
expect(addOnComponent).toMatchSnapshot();
});
- it("should handle data change when badge style is changed", () => {
- const mockEvent = { target: { value: "style-new" } }
+ it('should handle data change when badge style is changed', () => {
+ const mockEvent = { target: { value: 'style-new' } };
const newDataInput = {
...dataInput,
- mediumDynamicBlogs: "some-medium-blogs-value",
+ mediumDynamicBlogs: 'some-medium-blogs-value',
githubStatsOptions: {
- theme: "theme-1",
- titleColor: "title-abcd",
- textColor: "some-color",
- bgColor: "abcd",
+ theme: 'theme-1',
+ titleColor: 'title-abcd',
+ textColor: 'some-color',
+ bgColor: 'abcd',
hideBorder: false,
cacheSeconds: null,
- locale: "en",
+ locale: 'en',
},
};
const newSocialInput = {
- medium: "@abcd",
+ medium: '@abcd',
};
- const addOnComponent = mount();
+ const addOnComponent = mount(
+
+ );
+
+ addOnComponent.find('#visitors-count-open-btn').simulate('click', {});
+ addOnComponent.find('#badge-style').simulate('change', mockEvent);
- addOnComponent.find("#visitors-count-open-btn").simulate("click",{});
- addOnComponent.find("#badge-style").simulate("change",mockEvent);
-
jest.runAllTimers();
-
+
expect(mockHandleDataChange).toHaveBeenCalledTimes(1);
- expect(mockHandleDataChange).toHaveBeenCalledWith('badgeStyle',{target: {value: "style-new" }});
+ expect(mockHandleDataChange).toHaveBeenCalledWith('badgeStyle', { target: { value: 'style-new' } });
});
-
- it("should handle data change when badge color is changed", () => {
- const mockEvent = { target: { value: "new-color-abcd" } }
+
+ it('should handle data change when badge color is changed', () => {
+ const mockEvent = { target: { value: 'new-color-abcd' } };
const newDataInput = {
...dataInput,
- mediumDynamicBlogs: "some-medium-blogs-value"
+ mediumDynamicBlogs: 'some-medium-blogs-value',
};
const newSocialInput = {
- medium: "@abcd",
+ medium: '@abcd',
};
- const addOnComponent = mount();
+ const addOnComponent = mount(
+
+ );
+
+ addOnComponent.find('#visitors-count-open-btn').simulate('click', {});
+ addOnComponent.find('#badge-color').simulate('change', mockEvent);
- addOnComponent.find("#visitors-count-open-btn").simulate("click",{});
- addOnComponent.find("#badge-color").simulate("change",mockEvent);
-
jest.runAllTimers();
-
+
expect(mockHandleDataChange).toHaveBeenCalledTimes(1);
- expect(mockHandleDataChange).toHaveBeenCalledWith('badgeColor',{target: {value: "new-color-abcd" }});
+ expect(mockHandleDataChange).toHaveBeenCalledWith('badgeColor', { target: { value: 'new-color-abcd' } });
});
-
- it("should handle data change when badge-label-text is changed", () => {
- const mockEvent = { target: { value: "label-abcd-random" } }
+
+ it('should handle data change when badge-label-text is changed', () => {
+ const mockEvent = { target: { value: 'label-abcd-random' } };
const newDataInput = {
...dataInput,
- mediumDynamicBlogs: "some-medium-blogs-value"
+ mediumDynamicBlogs: 'some-medium-blogs-value',
};
const newSocialInput = {
- medium: "@abcd",
+ medium: '@abcd',
};
- const addOnComponent = mount();
+ const addOnComponent = mount(
+
+ );
+
+ addOnComponent.find('#visitors-count-open-btn').simulate('click', {});
+ addOnComponent.find('#badge-label-text').simulate('change', mockEvent);
- addOnComponent.find("#visitors-count-open-btn").simulate("click",{});
- addOnComponent.find("#badge-label-text").simulate("change",mockEvent);
-
jest.runAllTimers();
-
+
expect(mockHandleDataChange).toHaveBeenCalledTimes(1);
- expect(mockHandleDataChange).toHaveBeenCalledWith('badgeLabel',{target: {value: "label-abcd-random" }});
+ expect(mockHandleDataChange).toHaveBeenCalledWith('badgeLabel', { target: { value: 'label-abcd-random' } });
});
- it("should render Customize Github stats card", () => {
+ it('should render Customize Github stats card', () => {
const newDataInput = {
...dataInput,
- mediumDynamicBlogs: "some-medium-blogs-value"
+ mediumDynamicBlogs: 'some-medium-blogs-value',
};
const newSocialInput = {
- medium: "@abcd",
+ medium: '@abcd',
};
- const addOnComponent = mount();
+ const addOnComponent = mount(
+
+ );
+
+ addOnComponent.find('#github-stats-open-btn').simulate('click', {});
- addOnComponent.find("#github-stats-open-btn").simulate("click",{});
-
expect(addOnComponent).toMatchSnapshot();
});
- it("should handle data change when stats theme is changed", () => {
- const mockEvent = { target: { value: "new-theme-for-stats" } }
+ it('should handle data change when stats theme is changed', () => {
+ const mockEvent = { target: { value: 'new-theme-for-stats' } };
const newDataInput = {
...dataInput,
- mediumDynamicBlogs: "some-medium-blogs-value",
+ mediumDynamicBlogs: 'some-medium-blogs-value',
githubStatsOptions: {
- titleColor: "title-abcd",
- textColor: "some-color",
- bgColor: "abcd",
+ titleColor: 'title-abcd',
+ textColor: 'some-color',
+ bgColor: 'abcd',
hideBorder: false,
cacheSeconds: null,
- theme: "new-theme-for-stats",
- locale: "en",
- }
+ theme: 'new-theme-for-stats',
+ locale: 'en',
+ },
};
const newSocialInput = {
- medium: "@abcd",
+ medium: '@abcd',
};
- const addOnComponent = mount();
+ const addOnComponent = mount(
+
+ );
+
+ addOnComponent.find('#github-stats-open-btn').simulate('click', {});
+ addOnComponent.find('#stats-theme').simulate('change', mockEvent);
- addOnComponent.find("#github-stats-open-btn").simulate("click",{});
- addOnComponent.find("#stats-theme").simulate("change",mockEvent);
-
jest.runAllTimers();
-
+
expect(mockHandleDataChange).toHaveBeenCalledTimes(1);
expect(mockHandleDataChange).toHaveBeenCalledWith('githubStatsOptions', {
target: {
value: {
- theme: "theme-1",
- titleColor: "title-abcd",
- textColor: "some-color",
- bgColor: "abcd",
+ theme: 'theme-1',
+ titleColor: 'title-abcd',
+ textColor: 'some-color',
+ bgColor: 'abcd',
hideBorder: false,
cacheSeconds: null,
- theme: "new-theme-for-stats",
- locale: "en",
- }
- }
+ theme: 'new-theme-for-stats',
+ locale: 'en',
+ },
+ },
});
});
- it("should handle data change when stats title color is changed", () => {
- const mockEvent = { target: { value: "red-color" } }
+ it('should handle data change when stats title color is changed', () => {
+ const mockEvent = { target: { value: 'red-color' } };
const newDataInput = {
...dataInput,
- mediumDynamicBlogs: "some-medium-blogs-value",
+ mediumDynamicBlogs: 'some-medium-blogs-value',
githubStatsOptions: {
- theme: "theme-1",
- textColor: "some-color",
- bgColor: "abcd",
+ theme: 'theme-1',
+ textColor: 'some-color',
+ bgColor: 'abcd',
hideBorder: false,
cacheSeconds: null,
- theme: "new-theme-for-stats",
- locale: "en",
- }
+ theme: 'new-theme-for-stats',
+ locale: 'en',
+ },
};
const newSocialInput = {
- medium: "@abcd",
+ medium: '@abcd',
};
- const addOnComponent = mount();
+ const addOnComponent = mount(
+
+ );
+
+ addOnComponent.find('#github-stats-open-btn').simulate('click', {});
+ addOnComponent.find('#stats-title-color').simulate('change', mockEvent);
- addOnComponent.find("#github-stats-open-btn").simulate("click",{});
- addOnComponent.find("#stats-title-color").simulate("change",mockEvent);
-
jest.runAllTimers();
-
+
expect(mockHandleDataChange).toHaveBeenCalledTimes(1);
expect(mockHandleDataChange).toHaveBeenCalledWith('githubStatsOptions', {
target: {
value: {
- theme: "theme-1",
- titleColor: "red-color",
- textColor: "some-color",
- bgColor: "abcd",
+ theme: 'theme-1',
+ titleColor: 'red-color',
+ textColor: 'some-color',
+ bgColor: 'abcd',
hideBorder: false,
cacheSeconds: null,
- theme: "new-theme-for-stats",
- locale: "en",
- }
- }
+ theme: 'new-theme-for-stats',
+ locale: 'en',
+ },
+ },
});
});
-
- it("should handle data change when stats bg color is changed", () => {
- const mockEvent = { target: { value: "random-color" } }
+
+ it('should handle data change when stats bg color is changed', () => {
+ const mockEvent = { target: { value: 'random-color' } };
const newDataInput = {
...dataInput,
- mediumDynamicBlogs: "some-medium-blogs-value",
+ mediumDynamicBlogs: 'some-medium-blogs-value',
githubStatsOptions: {
- theme: "theme-1",
- titleColor: "some-color",
- textColor: "abcd",
+ theme: 'theme-1',
+ titleColor: 'some-color',
+ textColor: 'abcd',
hideBorder: false,
cacheSeconds: null,
- theme: "new-theme-for-stats",
- locale: "en",
- }
+ theme: 'new-theme-for-stats',
+ locale: 'en',
+ },
};
const newSocialInput = {
- medium: "@abcd",
+ medium: '@abcd',
};
- const addOnComponent = mount();
+ const addOnComponent = mount(
+
+ );
+
+ addOnComponent.find('#github-stats-open-btn').simulate('click', {});
+ addOnComponent.find('#stats-bg-color').simulate('change', mockEvent);
- addOnComponent.find("#github-stats-open-btn").simulate("click",{});
- addOnComponent.find("#stats-bg-color").simulate("change",mockEvent);
-
jest.runAllTimers();
-
+
expect(mockHandleDataChange).toHaveBeenCalledTimes(1);
expect(mockHandleDataChange).toHaveBeenCalledWith('githubStatsOptions', {
target: {
value: {
- theme: "theme-1",
- titleColor: "some-color",
- textColor: "abcd",
- bgColor: "random-color",
+ theme: 'theme-1',
+ titleColor: 'some-color',
+ textColor: 'abcd',
+ bgColor: 'random-color',
hideBorder: false,
cacheSeconds: null,
- theme: "new-theme-for-stats",
- locale: "en",
- }
- }
+ theme: 'new-theme-for-stats',
+ locale: 'en',
+ },
+ },
});
});
- it("should handle data change when stats cache seconds is changed", () => {
- const mockEvent = { target: { value: 1900 } }
+ it('should handle data change when stats cache seconds is changed', () => {
+ const mockEvent = { target: { value: 1900 } };
const newDataInput = {
...dataInput,
- mediumDynamicBlogs: "some-medium-blogs-value",
+ mediumDynamicBlogs: 'some-medium-blogs-value',
githubStatsOptions: {
- theme: "theme-1",
- titleColor: "some-color",
- textColor: "abcd",
- bgColor: "random-color",
+ theme: 'theme-1',
+ titleColor: 'some-color',
+ textColor: 'abcd',
+ bgColor: 'random-color',
hideBorder: false,
cacheSeconds: null,
- theme: "new-theme-for-stats",
- locale: "en",
- }
+ theme: 'new-theme-for-stats',
+ locale: 'en',
+ },
};
const newSocialInput = {
- medium: "@abcd",
+ medium: '@abcd',
};
- const addOnComponent = mount();
+ const addOnComponent = mount(
+
+ );
+
+ addOnComponent.find('#github-stats-open-btn').simulate('click', {});
+ addOnComponent.find('#stats-cache-seconds').simulate('change', mockEvent);
- addOnComponent.find("#github-stats-open-btn").simulate("click",{});
- addOnComponent.find("#stats-cache-seconds").simulate("change",mockEvent);
-
jest.runAllTimers();
-
+
expect(mockHandleDataChange).toHaveBeenCalledTimes(1);
expect(mockHandleDataChange).toHaveBeenCalledWith('githubStatsOptions', {
target: {
value: {
- theme: "theme-1",
- titleColor: "some-color",
- textColor: "abcd",
- bgColor: "random-color",
+ theme: 'theme-1',
+ titleColor: 'some-color',
+ textColor: 'abcd',
+ bgColor: 'random-color',
hideBorder: false,
cacheSeconds: 1900,
- theme: "new-theme-for-stats",
- locale: "en",
- }
- }
+ theme: 'new-theme-for-stats',
+ locale: 'en',
+ },
+ },
});
});
- it("should handle data change when stats text color is changed", () => {
- const mockEvent = { target: { value: "black-color" } }
+ it('should handle data change when stats text color is changed', () => {
+ const mockEvent = { target: { value: 'black-color' } };
const newDataInput = {
...dataInput,
- mediumDynamicBlogs: "some-medium-blogs-value",
+ mediumDynamicBlogs: 'some-medium-blogs-value',
githubStatsOptions: {
- theme: "theme-1",
- titleColor: "some-color",
- bgColor: "abcd",
+ theme: 'theme-1',
+ titleColor: 'some-color',
+ bgColor: 'abcd',
hideBorder: false,
cacheSeconds: null,
- theme: "new-theme-for-stats",
- locale: "en",
- }
+ theme: 'new-theme-for-stats',
+ locale: 'en',
+ },
};
const newSocialInput = {
- medium: "@abcd",
+ medium: '@abcd',
};
- const addOnComponent = mount();
+ const addOnComponent = mount(
+
+ );
+
+ addOnComponent.find('#github-stats-open-btn').simulate('click', {});
+ addOnComponent.find('#stats-text-color').simulate('change', mockEvent);
- addOnComponent.find("#github-stats-open-btn").simulate("click",{});
- addOnComponent.find("#stats-text-color").simulate("change",mockEvent);
-
jest.runAllTimers();
-
+
expect(mockHandleDataChange).toHaveBeenCalledTimes(1);
expect(mockHandleDataChange).toHaveBeenCalledWith('githubStatsOptions', {
target: {
value: {
- theme: "theme-1",
- titleColor: "some-color",
- textColor: "black-color",
- bgColor: "abcd",
+ theme: 'theme-1',
+ titleColor: 'some-color',
+ textColor: 'black-color',
+ bgColor: 'abcd',
hideBorder: false,
cacheSeconds: null,
- theme: "new-theme-for-stats",
- locale: "en",
- }
- }
+ theme: 'new-theme-for-stats',
+ locale: 'en',
+ },
+ },
});
});
- it("should handle data change when stats local is changed", () => {
- const mockEvent = { target: { value: 'uk' } }
+ it('should handle data change when stats local is changed', () => {
+ const mockEvent = { target: { value: 'uk' } };
const newDataInput = {
...dataInput,
- mediumDynamicBlogs: "some-medium-blogs-value",
+ mediumDynamicBlogs: 'some-medium-blogs-value',
githubStatsOptions: {
- theme: "theme-1",
- titleColor: "some-color",
- textColor: "abcd",
- bgColor: "random-color",
+ theme: 'theme-1',
+ titleColor: 'some-color',
+ textColor: 'abcd',
+ bgColor: 'random-color',
hideBorder: false,
cacheSeconds: null,
- theme: "new-theme-for-stats",
- locale: "en",
- }
+ theme: 'new-theme-for-stats',
+ locale: 'en',
+ },
};
const newSocialInput = {
- medium: "@abcd",
+ medium: '@abcd',
};
- const addOnComponent = mount();
+ const addOnComponent = mount(
+
+ );
+
+ addOnComponent.find('#github-stats-open-btn').simulate('click', {});
+ addOnComponent.find('#stats-locale').simulate('change', mockEvent);
- addOnComponent.find("#github-stats-open-btn").simulate("click", {});
- addOnComponent.find("#stats-locale").simulate("change", mockEvent);
-
jest.runAllTimers();
-
+
expect(mockHandleDataChange).toHaveBeenCalledTimes(1);
expect(mockHandleDataChange).toHaveBeenCalledWith('githubStatsOptions', {
target: {
value: {
- theme: "theme-1",
- titleColor: "some-color",
- textColor: "abcd",
- bgColor: "random-color",
+ theme: 'theme-1',
+ titleColor: 'some-color',
+ textColor: 'abcd',
+ bgColor: 'random-color',
hideBorder: false,
cacheSeconds: null,
- theme: "new-theme-for-stats",
- locale: "uk",
- }
- }
+ theme: 'new-theme-for-stats',
+ locale: 'uk',
+ },
+ },
});
});
- it("should handle data change when stats local is changed", () => {
- const mockEvent = { target: { checked: true } }
+ it('should handle data change when stats local is changed', () => {
+ const mockEvent = { target: { checked: true } };
const newDataInput = {
...dataInput,
- mediumDynamicBlogs: "some-medium-blogs-value",
+ mediumDynamicBlogs: 'some-medium-blogs-value',
githubStatsOptions: {
- theme: "theme-1",
- titleColor: "some-color",
- textColor: "abcd",
- bgColor: "random-color",
+ theme: 'theme-1',
+ titleColor: 'some-color',
+ textColor: 'abcd',
+ bgColor: 'random-color',
hideBorder: false,
cacheSeconds: null,
- theme: "new-theme-for-stats",
- locale: "en",
- }
+ theme: 'new-theme-for-stats',
+ locale: 'en',
+ },
};
const newSocialInput = {
- medium: "@abcd",
+ medium: '@abcd',
};
- const addOnComponent = mount();
+ const addOnComponent = mount(
+
+ );
+
+ addOnComponent.find('#github-stats-open-btn').simulate('click', {});
+ addOnComponent.find('#stats-hide-border').simulate('change', mockEvent);
- addOnComponent.find("#github-stats-open-btn").simulate("click",{});
- addOnComponent.find("#stats-hide-border").simulate("change",mockEvent);
-
jest.runAllTimers();
-
+
expect(mockHandleDataChange).toHaveBeenCalledTimes(1);
expect(mockHandleDataChange).toHaveBeenCalledWith('githubStatsOptions', {
target: {
value: {
- theme: "theme-1",
- titleColor: "some-color",
- textColor: "abcd",
- bgColor: "random-color",
+ theme: 'theme-1',
+ titleColor: 'some-color',
+ textColor: 'abcd',
+ bgColor: 'random-color',
hideBorder: true,
cacheSeconds: null,
- theme: "new-theme-for-stats",
- locale: "en",
- }
- }
+ theme: 'new-theme-for-stats',
+ locale: 'en',
+ },
+ },
});
- })
+ });
- it("should render Customize Top Skills Card", () => {
+ it('should render Customize Top Skills Card', () => {
const newDataInput = {
...dataInput,
- mediumDynamicBlogs: "some-medium-blogs-value"
+ mediumDynamicBlogs: 'some-medium-blogs-value',
};
const newSocialInput = {
- medium: "@abcd",
+ medium: '@abcd',
};
- const addOnComponent = mount();
+ const addOnComponent = mount(
+
+ );
+
+ addOnComponent.find('#top-languages-open-btn').simulate('click', {});
- addOnComponent.find("#top-languages-open-btn").simulate("click",{});
-
expect(addOnComponent).toMatchSnapshot();
});
- it("should handle data change when top skills theme is changed", () => {
- const mockEvent = { target: { value: "theme-xyz" } }
+ it('should handle data change when top skills theme is changed', () => {
+ const mockEvent = { target: { value: 'theme-xyz' } };
const newDataInput = {
...dataInput,
- mediumDynamicBlogs: "some-medium-blogs-value",
- topLanguagesOptions : {
- theme: "theme-2",
- titleColor: "title-abcd-new",
- textColor: "random-some-color",
- bgColor: "1234",
+ mediumDynamicBlogs: 'some-medium-blogs-value',
+ topLanguagesOptions: {
+ theme: 'theme-2',
+ titleColor: 'title-abcd-new',
+ textColor: 'random-some-color',
+ bgColor: '1234',
hideBorder: false,
cacheSeconds: null,
- theme: "theme-xyz",
- locale: "us",
- }
+ theme: 'theme-xyz',
+ locale: 'us',
+ },
};
const newSocialInput = {
- medium: "@abcd",
+ medium: '@abcd',
};
- const addOnComponent = mount();
+ const addOnComponent = mount(
+
+ );
+
+ addOnComponent.find('#top-languages-open-btn').simulate('click', {});
+ addOnComponent.find('#top-lang-theme').simulate('change', mockEvent);
- addOnComponent.find("#top-languages-open-btn").simulate("click",{});
- addOnComponent.find("#top-lang-theme").simulate("change",mockEvent);
-
jest.runAllTimers();
-
+
expect(mockHandleDataChange).toHaveBeenCalledTimes(1);
expect(mockHandleDataChange).toHaveBeenCalledWith('topLanguagesOptions', {
target: {
value: {
- theme: "theme-2",
- titleColor: "title-abcd-new",
- textColor: "random-some-color",
- bgColor: "1234",
+ theme: 'theme-2',
+ titleColor: 'title-abcd-new',
+ textColor: 'random-some-color',
+ bgColor: '1234',
hideBorder: false,
cacheSeconds: null,
- theme: "theme-xyz",
- locale: "us",
- }
- }
+ theme: 'theme-xyz',
+ locale: 'us',
+ },
+ },
});
});
- it("should handle check change when add on item inputs are changed", () => {
- const mockEvent = { target: { value: "This is a mock event" } }
-
- const addOnComponent = mount();
-
- addOnComponent.find("#visitors-count").simulate("change", mockEvent);
- addOnComponent.find("#github-profile-trophy").simulate("change", mockEvent);
- addOnComponent.find("#github-stats").simulate("change", mockEvent);
- addOnComponent.find("#top-languages").simulate("change", mockEvent);
- addOnComponent.find("#twitter-badge").simulate("change", mockEvent);
- addOnComponent.find("#dev-dynamic-blogs").simulate("change", mockEvent);
- addOnComponent.find("#rss-dynamic-blogs").simulate("change", mockEvent);
- addOnComponent.find("#medium-dynamic-blogs").simulate("change", mockEvent);
-
+ it('should handle check change when add on item inputs are changed', () => {
+ const mockEvent = { target: { value: 'This is a mock event' } };
+
+ const addOnComponent = mount(
+
+ );
+
+ addOnComponent.find('#visitors-count').simulate('change', mockEvent);
+ addOnComponent.find('#github-profile-trophy').simulate('change', mockEvent);
+ addOnComponent.find('#github-stats').simulate('change', mockEvent);
+ addOnComponent.find('#top-languages').simulate('change', mockEvent);
+ addOnComponent.find('#twitter-badge').simulate('change', mockEvent);
+ addOnComponent.find('#dev-dynamic-blogs').simulate('change', mockEvent);
+ addOnComponent.find('#rss-dynamic-blogs').simulate('change', mockEvent);
+ addOnComponent.find('#medium-dynamic-blogs').simulate('change', mockEvent);
+
expect(mockHandleCheckChange).toHaveBeenCalledTimes(8);
- expect(mockHandleCheckChange).toHaveBeenNthCalledWith(1,"visitorsBadge");
- expect(mockHandleCheckChange).toHaveBeenNthCalledWith(2,"githubProfileTrophy");
- expect(mockHandleCheckChange).toHaveBeenNthCalledWith(3,"githubStats");
- expect(mockHandleCheckChange).toHaveBeenNthCalledWith(4,"topLanguages");
- expect(mockHandleCheckChange).toHaveBeenNthCalledWith(5,"twitterBadge");
- expect(mockHandleCheckChange).toHaveBeenNthCalledWith(6,"devDynamicBlogs");
- expect(mockHandleCheckChange).toHaveBeenNthCalledWith(7,"rssDynamicBlogs");
- expect(mockHandleCheckChange).toHaveBeenNthCalledWith(8,"mediumDynamicBlogs");
+ expect(mockHandleCheckChange).toHaveBeenNthCalledWith(1, 'visitorsBadge');
+ expect(mockHandleCheckChange).toHaveBeenNthCalledWith(2, 'githubProfileTrophy');
+ expect(mockHandleCheckChange).toHaveBeenNthCalledWith(3, 'githubStats');
+ expect(mockHandleCheckChange).toHaveBeenNthCalledWith(4, 'topLanguages');
+ expect(mockHandleCheckChange).toHaveBeenNthCalledWith(5, 'twitterBadge');
+ expect(mockHandleCheckChange).toHaveBeenNthCalledWith(6, 'devDynamicBlogs');
+ expect(mockHandleCheckChange).toHaveBeenNthCalledWith(7, 'rssDynamicBlogs');
+ expect(mockHandleCheckChange).toHaveBeenNthCalledWith(8, 'mediumDynamicBlogs');
});
-
- it("should display workflow details if devDynamicBlogs and dev social data are available", () => {
+
+ it('should display workflow details if devDynamicBlogs and dev social data are available', () => {
const newDataInput = {
...dataInput,
- devDynamicBlogs: "some-value"
+ devDynamicBlogs: 'some-value',
};
const newSocialInput = {
- dev: "some-value-123",
+ dev: 'some-value-123',
};
- const addOnComponent = shallow();
+ const addOnComponent = shallow(
+
+ );
- const workflowElement = addOnComponent.find(".workflow");
+ const workflowElement = addOnComponent.find('.workflow');
expect(workflowElement).toMatchSnapshot();
});
- it("should display workflow details if rssDynamicBlogs and rss url data are available", () => {
+ it('should display workflow details if rssDynamicBlogs and rss url data are available', () => {
const newDataInput = {
...dataInput,
- rssDynamicBlogs: "some-rss-value"
+ rssDynamicBlogs: 'some-rss-value',
};
const newSocialInput = {
- rssurl: "url-random",
+ rssurl: 'url-random',
};
- const addOnComponent = shallow();
+ const addOnComponent = shallow(
+
+ );
- const workflowElement = addOnComponent.find(".workflow");
+ const workflowElement = addOnComponent.find('.workflow');
expect(workflowElement).toMatchSnapshot();
});
- it("should display workflow details if mediumDynamicBlogs, medium social data are available", () => {
+ it('should display workflow details if mediumDynamicBlogs, medium social data are available', () => {
const newDataInput = {
...dataInput,
- mediumDynamicBlogs: "some-medium-blogs-value"
+ mediumDynamicBlogs: 'some-medium-blogs-value',
};
const newSocialInput = {
- medium: "@abcd",
+ medium: '@abcd',
};
- const addOnComponent = shallow();
+ const addOnComponent = shallow(
+
+ );
- const workflowElement = addOnComponent.find(".workflow");
+ const workflowElement = addOnComponent.find('.workflow');
expect(workflowElement).toMatchSnapshot();
});
-
- it("should call document create element when blog post workflow is clicked", () => {
- let someElement = document.createElement("abcd");
+
+ it('should call document create element when blog post workflow is clicked', () => {
+ let someElement = document.createElement('abcd');
document.createElement = jest.fn().mockReturnValueOnce(someElement);
-
+
const newDataInput = {
...dataInput,
- mediumDynamicBlogs: "some-medium-blogs-value"
+ mediumDynamicBlogs: 'some-medium-blogs-value',
};
const newSocialInput = {
- medium: "@abcd",
+ medium: '@abcd',
};
- const addOnComponent = shallow();
+ const addOnComponent = shallow(
+
+ );
- addOnComponent.find("#blog-post-worklow-span").simulate("click", {});
+ addOnComponent.find('#blog-post-worklow-span').simulate('click', {});
expect(document.createElement).toHaveBeenCalledTimes(1);
});
-});
\ No newline at end of file
+});
diff --git a/src/components/__tests__/donate.test.js b/src/components/__tests__/donate.test.js
index f8fc7292..d0aef31c 100644
--- a/src/components/__tests__/donate.test.js
+++ b/src/components/__tests__/donate.test.js
@@ -1,12 +1,12 @@
-import React from "react"
-import toJson from "enzyme-to-json"
-import { shallow } from "enzyme"
+import React from 'react';
+import toJson from 'enzyme-to-json';
+import { shallow } from 'enzyme';
-import Donate from "../donate"
+import Donate from '../donate';
-describe("Donate", () => {
- it("renders correctly", () => {
- const component = shallow()
- expect(toJson(component)).toMatchSnapshot()
- })
-})
+describe('Donate', () => {
+ it('renders correctly', () => {
+ const component = shallow();
+ expect(toJson(component)).toMatchSnapshot();
+ });
+});
diff --git a/src/components/__tests__/footer.test.js b/src/components/__tests__/footer.test.js
index 55093f99..bf12cc7e 100644
--- a/src/components/__tests__/footer.test.js
+++ b/src/components/__tests__/footer.test.js
@@ -1,13 +1,13 @@
-import React from "react"
-import { shallow } from "enzyme"
-import toJson from "enzyme-to-json"
+import React from 'react';
+import { shallow } from 'enzyme';
+import toJson from 'enzyme-to-json';
-import Footer from "../footer"
+import Footer from '../footer';
-describe("Footer component", () => {
- const component = shallow()
+describe('Footer component', () => {
+ const component = shallow();
- it("renders correctly", () => {
- expect(toJson(component)).toMatchSnapshot()
- })
-})
+ it('renders correctly', () => {
+ expect(toJson(component)).toMatchSnapshot();
+ });
+});
diff --git a/src/components/__tests__/header.test.js b/src/components/__tests__/header.test.js
index adea0fc2..d0ccaf16 100644
--- a/src/components/__tests__/header.test.js
+++ b/src/components/__tests__/header.test.js
@@ -1,13 +1,13 @@
-import React from "react"
-import { shallow } from "enzyme"
-import toJson from "enzyme-to-json"
+import React from 'react';
+import { shallow } from 'enzyme';
+import toJson from 'enzyme-to-json';
-import Header from "../header"
+import Header from '../header';
-describe("Header", () => {
- const component = shallow()
+describe('Header', () => {
+ const component = shallow();
- it("renders correctly", () => {
- expect(toJson(component)).toMatchSnapshot()
- })
-})
+ it('renders correctly', () => {
+ expect(toJson(component)).toMatchSnapshot();
+ });
+});
diff --git a/src/components/__tests__/loader.test.js b/src/components/__tests__/loader.test.js
index fe63cd25..a244338b 100644
--- a/src/components/__tests__/loader.test.js
+++ b/src/components/__tests__/loader.test.js
@@ -1,13 +1,13 @@
-import React from "react"
-import { shallow } from "enzyme"
-import toJson from "enzyme-to-json"
+import React from 'react';
+import { shallow } from 'enzyme';
+import toJson from 'enzyme-to-json';
-import Loader from "../loader"
+import Loader from '../loader';
-describe("Loader", () => {
- const component = shallow()
+describe('Loader', () => {
+ const component = shallow();
- it("renders correctly", () => {
- expect(toJson(component)).toMatchSnapshot()
- })
-})
+ it('renders correctly', () => {
+ expect(toJson(component)).toMatchSnapshot();
+ });
+});
diff --git a/src/components/__tests__/markdown.test.js b/src/components/__tests__/markdown.test.js
index b7e12919..ae97a20d 100644
--- a/src/components/__tests__/markdown.test.js
+++ b/src/components/__tests__/markdown.test.js
@@ -1,10 +1,10 @@
-import React from "react"
-import { shallow } from "enzyme"
-import toJson from "enzyme-to-json"
+import React from 'react';
+import { shallow } from 'enzyme';
+import toJson from 'enzyme-to-json';
-import Markdown from "../markdown"
+import Markdown from '../markdown';
-describe("Markdown", () => {
+describe('Markdown', () => {
const props = {
data: {
ama: '',
@@ -77,139 +77,138 @@ describe("Markdown", () => {
},
};
-
- it("renders without subtitle", () => {
+ it('renders without subtitle', () => {
const component = shallow(
-
- )
- expect(toJson(component)).toMatchSnapshot()
- })
+
+ );
+ expect(toJson(component)).toMatchSnapshot();
+ });
- it("renders without prefix.title and data.title", () => {
+ it('renders without prefix.title and data.title', () => {
const component = shallow(
-
- )
- expect(toJson(component)).toMatchSnapshot()
- })
+
+ );
+ expect(toJson(component)).toMatchSnapshot();
+ });
- it("renders topLanguages is true", () => {
+ it('renders topLanguages is true', () => {
const component = shallow(
-
- )
- expect(toJson(component)).toMatchSnapshot()
- })
+
+ );
+ expect(toJson(component)).toMatchSnapshot();
+ });
- it("renders topLanguages is true and githubStats is true", () => {
+ it('renders topLanguages is true and githubStats is true', () => {
const component = shallow(
-
- )
- expect(toJson(component)).toMatchSnapshot()
- })
+
+ );
+ expect(toJson(component)).toMatchSnapshot();
+ });
- it("renders devDynamicBlogs is true", () => {
+ it('renders devDynamicBlogs is true', () => {
const component = shallow(
-
- )
- expect(toJson(component)).toMatchSnapshot()
- })
+
+ );
+ expect(toJson(component)).toMatchSnapshot();
+ });
- it("renders without link.currentWork", () => {
+ it('renders without link.currentWork', () => {
const component = shallow(
-
- )
- expect(toJson(component)).toMatchSnapshot()
- })
+
+ );
+ expect(toJson(component)).toMatchSnapshot();
+ });
- it("renders visitorsBadge is true", () => {
+ it('renders visitorsBadge is true', () => {
const component = shallow(
-
- )
- expect(toJson(component)).toMatchSnapshot()
- })
+
+ );
+ expect(toJson(component)).toMatchSnapshot();
+ });
- it("renders twitterBadge is true", () => {
+ it('renders twitterBadge is true', () => {
const component = shallow(
-
- )
- expect(toJson(component)).toMatchSnapshot()
- })
+
+ );
+ expect(toJson(component)).toMatchSnapshot();
+ });
- it("renders githubProfileTrophy is true", () => {
+ it('renders githubProfileTrophy is true', () => {
const component = shallow(
-
- )
- expect(toJson(component)).toMatchSnapshot()
- })
+
+ );
+ expect(toJson(component)).toMatchSnapshot();
+ });
- it("renders githubProfileTrophy is true", () => {
+ it('renders githubProfileTrophy is true', () => {
const component = shallow(
-
- )
- expect(toJson(component)).toMatchSnapshot()
- })
-})
+
+ );
+ expect(toJson(component)).toMatchSnapshot();
+ });
+});
diff --git a/src/components/__tests__/markdownPreview.test.js b/src/components/__tests__/markdownPreview.test.js
index 3b737797..9478f093 100644
--- a/src/components/__tests__/markdownPreview.test.js
+++ b/src/components/__tests__/markdownPreview.test.js
@@ -1,415 +1,404 @@
-import React from "react";
+import React from 'react';
import { shallow, configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
-import MarkdownPreview, { GithubProfileTrophyPreview, GitHubStatsPreview, SkillsPreview, SocialPreview, SubTitlePreview, TitlePreview, TopLanguagesPreview, TwitterBadgePreview, VisitorsBadgePreview, WorkPreview, SectionTitle, DisplayWork, DisplaySocial } from "../markdownPreview"
+import MarkdownPreview, {
+ GithubProfileTrophyPreview,
+ GitHubStatsPreview,
+ SkillsPreview,
+ SocialPreview,
+ SubTitlePreview,
+ TitlePreview,
+ TopLanguagesPreview,
+ TwitterBadgePreview,
+ VisitorsBadgePreview,
+ WorkPreview,
+ SectionTitle,
+ DisplayWork,
+ DisplaySocial,
+} from '../markdownPreview';
configure({ adapter: new Adapter() });
const DEFAULT_PREFIX = {
- title: "Hi 👋, I'm",
- currentWork: "🔭 I’m currently working on",
- currentLearn: "🌱 I’m currently learning",
- collaborateOn: "👯 I’m looking to collaborate on",
- helpWith: "🤝 I’m looking for help with",
- ama: "💬 Ask me about",
- contact: "📫 How to reach me",
- resume: "📄 Know about my experiences",
- funFact: "⚡ Fun fact",
- portfolio: "👨💻 All of my projects are available at",
- blog: "📝 I regularly write articles on",
-}
+ title: "Hi 👋, I'm",
+ currentWork: '🔭 I’m currently working on',
+ currentLearn: '🌱 I’m currently learning',
+ collaborateOn: '👯 I’m looking to collaborate on',
+ helpWith: '🤝 I’m looking for help with',
+ ama: '💬 Ask me about',
+ contact: '📫 How to reach me',
+ resume: '📄 Know about my experiences',
+ funFact: '⚡ Fun fact',
+ portfolio: '👨💻 All of my projects are available at',
+ blog: '📝 I regularly write articles on',
+};
const DEFAULT_DATA = {
- title: "dummy",
- subtitle: "A passionate frontend developer from India",
- currentWork: "readme-generator",
- currentLearn: "",
- collaborateOn: "",
- helpWith: "",
- ama: "",
- contact: "",
- funFact: "",
- twitterBadge: false,
- visitorsBadge: false,
- badgeStyle: "flat",
- badgeColor: "0e75b6",
- badgeLabel: "Profile views",
- githubProfileTrophy: false,
- githubStats: false,
- githubStatsOptions: {
- theme: "",
- titleColor: "",
- textColor: "",
- bgColor: "",
- hideBorder: false,
- cacheSeconds: null,
- locale: "en",
- },
- topLanguages: false,
- topLanguagesOptions: {
- theme: "",
- titleColor: "",
- textColor: "",
- bgColor: "",
- hideBorder: false,
- cacheSeconds: null,
- locale: "en",
- },
- devDynamicBlogs: false,
- mediumDynamicBlogs: false,
- rssDynamicBlogs: false,
-}
+ title: 'dummy',
+ subtitle: 'A passionate frontend developer from India',
+ currentWork: 'readme-generator',
+ currentLearn: '',
+ collaborateOn: '',
+ helpWith: '',
+ ama: '',
+ contact: '',
+ funFact: '',
+ twitterBadge: false,
+ visitorsBadge: false,
+ badgeStyle: 'flat',
+ badgeColor: '0e75b6',
+ badgeLabel: 'Profile views',
+ githubProfileTrophy: false,
+ githubStats: false,
+ githubStatsOptions: {
+ theme: '',
+ titleColor: '',
+ textColor: '',
+ bgColor: '',
+ hideBorder: false,
+ cacheSeconds: null,
+ locale: 'en',
+ },
+ topLanguages: false,
+ topLanguagesOptions: {
+ theme: '',
+ titleColor: '',
+ textColor: '',
+ bgColor: '',
+ hideBorder: false,
+ cacheSeconds: null,
+ locale: 'en',
+ },
+ devDynamicBlogs: false,
+ mediumDynamicBlogs: false,
+ rssDynamicBlogs: false,
+};
const DEFAULT_LINK = {
- currentWork: "https://dummy.com",
- collaborateOn: "",
- helpWith: "",
- portfolio: "",
- blog: "",
- resume: "",
-}
+ currentWork: 'https://dummy.com',
+ collaborateOn: '',
+ helpWith: '',
+ portfolio: '',
+ blog: '',
+ resume: '',
+};
const DEFAULT_SOCIAL = {
- github: "",
- dev: "",
- linkedin: "",
- codepen: "dummy",
- stackoverflow: "",
- kaggle: "",
- codesandbox: "",
- fb: "",
- instagram: "",
- twitter: "",
- dribbble: "",
- behance: "",
- medium: "",
- youtube: "",
- codechef: "",
- hackerrank: "",
- codeforces: "",
- leetcode: "",
- topcoder: "",
- hackerearth: "",
- geeks_for_geeks: "",
- discord: "",
- rssurl: "",
-}
+ github: '',
+ dev: '',
+ linkedin: '',
+ codepen: 'dummy',
+ stackoverflow: '',
+ kaggle: '',
+ codesandbox: '',
+ fb: '',
+ instagram: '',
+ twitter: '',
+ dribbble: '',
+ behance: '',
+ medium: '',
+ youtube: '',
+ codechef: '',
+ hackerrank: '',
+ codeforces: '',
+ leetcode: '',
+ topcoder: '',
+ hackerearth: '',
+ geeks_for_geeks: '',
+ discord: '',
+ rssurl: '',
+};
const DUMMY_SKILLS = {
- skills: {
- unity: true,
- android: false,
- angularjs: false,
- apachecordova: false,
- }
-}
-
-describe("Markdown Preview", () => {
- it("renders correctly", () => {
- let prefix = DEFAULT_PREFIX;
- let data = DEFAULT_DATA;
- let link = DEFAULT_LINK;
- let social = DEFAULT_SOCIAL;
- let skills = {}
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
-})
-describe("Title Preview", () => {
- it("renders correctly", () => {
- let prefix = DEFAULT_PREFIX;
- let data = DEFAULT_DATA;
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
- it("renders correctly with no prefix", () => {
- let prefix = DEFAULT_PREFIX;
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
- it("renders correctly with no title", () => {
- let data = DEFAULT_DATA;
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
- it("renders correctly with no title and prefix", () => {
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
-})
-describe("SubTitle Preview", () => {
- it("renders correctly", () => {
- let data = DEFAULT_DATA;
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
- it("renders correctly with no subtitle", () => {
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
-})
-describe("SectionTitle Preview", () => {
- it("renders correctly", () => {
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
- it("renders correctly with no label", () => {
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
- it("renders correctly with visible false", () => {
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
-})
-describe("DisplayWork Preview", () => {
- it("renders correctly", () => {
- let prefix = DEFAULT_PREFIX;
- let data = DEFAULT_DATA;
- let link = DEFAULT_LINK;
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
- it("renders correctly with no prefix, link and project", () => {
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
- it("renders correctly with no prefix", () => {
- let data = DEFAULT_DATA;
- let link = DEFAULT_LINK;
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
- it("renders correctly with no project", () => {
- let prefix = DEFAULT_PREFIX;
- let link = DEFAULT_LINK;
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
- it("renders correctly with no link", () => {
- let prefix = DEFAULT_PREFIX;
- let data = DEFAULT_DATA;
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
- it("renders correctly with no prefix and link", () => {
- let data = DEFAULT_DATA;
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
- it("renders correctly with no project and link", () => {
- let prefix = DEFAULT_PREFIX;
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
- it("renders correctly with no project and prefix", () => {
- let link = DEFAULT_LINK;
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
-})
-describe("DisplaySocial Preview", () => {
- it("renders correctly", () => {
- let social = DEFAULT_SOCIAL;
- const tree = shallow(
- )
-
- expect(tree).toMatchSnapshot()
- })
- it("renders correctly with no username", () => {
- const tree = shallow(
- )
-
- expect(tree).toMatchSnapshot()
- })
-})
-describe("VisitorsBadge Preview", () => {
- it("renders correctly", () => {
- let data = DEFAULT_DATA;
- let social = DEFAULT_SOCIAL;
- const tree = shallow(
- )
-
- expect(tree).toMatchSnapshot()
- })
- it("renders correctly with show true", () => {
- let data = DEFAULT_DATA;
- let social = DEFAULT_SOCIAL;
- const tree = shallow(
- )
-
- expect(tree).toMatchSnapshot()
- })
-})
-describe("GithubProfileTrophy Preview", () => {
- it("renders correctly", () => {
- let data = DEFAULT_DATA;
- let social = DEFAULT_SOCIAL;
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
- it("renders correctly with show true", () => {
- let data = DEFAULT_DATA;
- let social = DEFAULT_SOCIAL;
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
-})
-describe("TwitterBadgePreview Preview", () => {
- it("renders correctly", () => {
- let data = DEFAULT_DATA;
- let social = DEFAULT_SOCIAL;
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
- it("renders correctly with show true", () => {
- let data = DEFAULT_DATA;
- let social = DEFAULT_SOCIAL;
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
-})
-describe("Work Preview", () => {
- it("renders correctly", () => {
- let data = DEFAULT_DATA;
- let prefix = DEFAULT_PREFIX;
- let link = DEFAULT_LINK;
- let props = { data: data, prefix: prefix, link: link }
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
-})
-describe("Social Preview", () => {
- it("renders correctly", () => {
- let social = DEFAULT_SOCIAL;
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
-})
-describe("Skills Preview", () => {
- it("renders correctly", () => {
- let skills = DUMMY_SKILLS.skills
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
- it("renders correctly with no skills", () => {
- let skills = {}
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
-})
-describe("TopLanguages Preview", () => {
- it("renders correctly", () => {
- let data = DEFAULT_DATA;
- let social = DEFAULT_SOCIAL;
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
- it("renders correctly with show true", () => {
- let data = DEFAULT_DATA;
- let social = DEFAULT_SOCIAL;
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
-})
-describe("GitHubStats Preview", () => {
- it("renders correctly", () => {
- let data = DEFAULT_DATA;
- let social = DEFAULT_SOCIAL;
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
- it("renders correctly", () => {
- let data = DEFAULT_DATA;
- let social = DEFAULT_SOCIAL;
- const tree = shallow()
-
- expect(tree).toMatchSnapshot()
- })
-})
+ skills: {
+ unity: true,
+ android: false,
+ angularjs: false,
+ apachecordova: false,
+ },
+};
+
+describe('Markdown Preview', () => {
+ it('renders correctly', () => {
+ let prefix = DEFAULT_PREFIX;
+ let data = DEFAULT_DATA;
+ let link = DEFAULT_LINK;
+ let social = DEFAULT_SOCIAL;
+ let skills = {};
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+});
+describe('Title Preview', () => {
+ it('renders correctly', () => {
+ let prefix = DEFAULT_PREFIX;
+ let data = DEFAULT_DATA;
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+ it('renders correctly with no prefix', () => {
+ let prefix = DEFAULT_PREFIX;
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+ it('renders correctly with no title', () => {
+ let data = DEFAULT_DATA;
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+ it('renders correctly with no title and prefix', () => {
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+});
+describe('SubTitle Preview', () => {
+ it('renders correctly', () => {
+ let data = DEFAULT_DATA;
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+ it('renders correctly with no subtitle', () => {
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+});
+describe('SectionTitle Preview', () => {
+ it('renders correctly', () => {
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+ it('renders correctly with no label', () => {
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+ it('renders correctly with visible false', () => {
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+});
+describe('DisplayWork Preview', () => {
+ it('renders correctly', () => {
+ let prefix = DEFAULT_PREFIX;
+ let data = DEFAULT_DATA;
+ let link = DEFAULT_LINK;
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+ it('renders correctly with no prefix, link and project', () => {
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+ it('renders correctly with no prefix', () => {
+ let data = DEFAULT_DATA;
+ let link = DEFAULT_LINK;
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+ it('renders correctly with no project', () => {
+ let prefix = DEFAULT_PREFIX;
+ let link = DEFAULT_LINK;
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+ it('renders correctly with no link', () => {
+ let prefix = DEFAULT_PREFIX;
+ let data = DEFAULT_DATA;
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+ it('renders correctly with no prefix and link', () => {
+ let data = DEFAULT_DATA;
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+ it('renders correctly with no project and link', () => {
+ let prefix = DEFAULT_PREFIX;
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+ it('renders correctly with no project and prefix', () => {
+ let link = DEFAULT_LINK;
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+});
+describe('DisplaySocial Preview', () => {
+ it('renders correctly', () => {
+ let social = DEFAULT_SOCIAL;
+ const tree = shallow(
+
+ );
+
+ expect(tree).toMatchSnapshot();
+ });
+ it('renders correctly with no username', () => {
+ const tree = shallow(
+
+ );
+
+ expect(tree).toMatchSnapshot();
+ });
+});
+describe('VisitorsBadge Preview', () => {
+ it('renders correctly', () => {
+ let data = DEFAULT_DATA;
+ let social = DEFAULT_SOCIAL;
+ const tree = shallow(
+
+ );
+
+ expect(tree).toMatchSnapshot();
+ });
+ it('renders correctly with show true', () => {
+ let data = DEFAULT_DATA;
+ let social = DEFAULT_SOCIAL;
+ const tree = shallow(
+
+ );
+
+ expect(tree).toMatchSnapshot();
+ });
+});
+describe('GithubProfileTrophy Preview', () => {
+ it('renders correctly', () => {
+ let data = DEFAULT_DATA;
+ let social = DEFAULT_SOCIAL;
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+ it('renders correctly with show true', () => {
+ let data = DEFAULT_DATA;
+ let social = DEFAULT_SOCIAL;
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+});
+describe('TwitterBadgePreview Preview', () => {
+ it('renders correctly', () => {
+ let data = DEFAULT_DATA;
+ let social = DEFAULT_SOCIAL;
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+ it('renders correctly with show true', () => {
+ let data = DEFAULT_DATA;
+ let social = DEFAULT_SOCIAL;
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+});
+describe('Work Preview', () => {
+ it('renders correctly', () => {
+ let data = DEFAULT_DATA;
+ let prefix = DEFAULT_PREFIX;
+ let link = DEFAULT_LINK;
+ let props = { data: data, prefix: prefix, link: link };
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+});
+describe('Social Preview', () => {
+ it('renders correctly', () => {
+ let social = DEFAULT_SOCIAL;
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+});
+describe('Skills Preview', () => {
+ it('renders correctly', () => {
+ let skills = DUMMY_SKILLS.skills;
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+ it('renders correctly with no skills', () => {
+ let skills = {};
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+});
+describe('TopLanguages Preview', () => {
+ it('renders correctly', () => {
+ let data = DEFAULT_DATA;
+ let social = DEFAULT_SOCIAL;
+ const tree = shallow(
+
+ );
+
+ expect(tree).toMatchSnapshot();
+ });
+ it('renders correctly with show true', () => {
+ let data = DEFAULT_DATA;
+ let social = DEFAULT_SOCIAL;
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+});
+describe('GitHubStats Preview', () => {
+ it('renders correctly', () => {
+ let data = DEFAULT_DATA;
+ let social = DEFAULT_SOCIAL;
+ const tree = shallow(
+
+ );
+
+ expect(tree).toMatchSnapshot();
+ });
+ it('renders correctly', () => {
+ let data = DEFAULT_DATA;
+ let social = DEFAULT_SOCIAL;
+ const tree = shallow();
+
+ expect(tree).toMatchSnapshot();
+ });
+});
diff --git a/src/components/__tests__/skills.test.js b/src/components/__tests__/skills.test.js
index 44659f2f..06ef8d5d 100644
--- a/src/components/__tests__/skills.test.js
+++ b/src/components/__tests__/skills.test.js
@@ -1,42 +1,40 @@
-import React from "react"
-import { shallow } from "enzyme"
-import toJson from "enzyme-to-json"
+import React from 'react';
+import { shallow } from 'enzyme';
+import toJson from 'enzyme-to-json';
-import Skills from "../skills"
+import Skills from '../skills';
-jest.mock("../../constants/skills", () => ({
+jest.mock('../../constants/skills', () => ({
__esModule: true,
categorizedSkills: {
language: {
- title: "Programming Languages",
- skills: ["javascript"],
+ title: 'Programming Languages',
+ skills: ['javascript'],
},
frontend_dev: {
- title: "Frontend Development",
- skills: ["react", "svelte"],
+ title: 'Frontend Development',
+ skills: ['react', 'svelte'],
},
},
icons: {
- javascript: "javascript.svg",
- react: "react.svg",
- svelte: "svelte.svg",
+ javascript: 'javascript.svg',
+ react: 'react.svg',
+ svelte: 'svelte.svg',
},
-}))
+}));
-describe("Skills", () => {
- it("renders correctly", () => {
- const component = shallow()
- expect(toJson(component)).toMatchSnapshot()
- })
+describe('Skills', () => {
+ it('renders correctly', () => {
+ const component = shallow();
+ expect(toJson(component)).toMatchSnapshot();
+ });
- it("calls handleSkillsChange prop when a skill is clicked", () => {
- const mockFn = jest.fn()
- const component = shallow(
-
- )
+ it('calls handleSkillsChange prop when a skill is clicked', () => {
+ const mockFn = jest.fn();
+ const component = shallow();
- component.find("#javascript").simulate("change")
+ component.find('#javascript').simulate('change');
- expect(mockFn).toHaveBeenCalledTimes(1)
- })
-})
+ expect(mockFn).toHaveBeenCalledTimes(1);
+ });
+});
diff --git a/src/components/__tests__/social.test.js b/src/components/__tests__/social.test.js
index 2f82a787..7b8685bc 100644
--- a/src/components/__tests__/social.test.js
+++ b/src/components/__tests__/social.test.js
@@ -1,44 +1,44 @@
-import React from "react"
-import { shallow } from "enzyme"
-import toJson from "enzyme-to-json"
+import React from 'react';
+import { shallow } from 'enzyme';
+import toJson from 'enzyme-to-json';
-import Social from "../social"
+import Social from '../social';
-describe("Social", () => {
- const mockEvent = { target: { value: "This is a mock event" } }
+describe('Social', () => {
+ const mockEvent = { target: { value: 'This is a mock event' } };
const props = {
social: {
- github: "github ",
- twitter: "twitter",
- dev: "dev",
- codepen: "codepen",
- codesandbox: "codesandbodx",
- stackoverflow: "stackoverflow",
- linkedin: "linkedin",
- kaggle: "kaggle",
- fb: "fb",
- instagram: "instagram",
- dribble: "dribble",
- behance: "behance",
- medium: "medium",
- youtube: "youtube",
- codechef: "codechef",
- hackerrack: "hackerranck",
- codeforces: "codeforces",
- leetcode: "leetcode",
- topcoder: "topcoder",
- hackerearth: "@hackerearth",
- geeks_for_geeks: "geeks_for_geeks",
- discord: "discord",
- rssurl: "rssurl",
+ github: 'github ',
+ twitter: 'twitter',
+ dev: 'dev',
+ codepen: 'codepen',
+ codesandbox: 'codesandbodx',
+ stackoverflow: 'stackoverflow',
+ linkedin: 'linkedin',
+ kaggle: 'kaggle',
+ fb: 'fb',
+ instagram: 'instagram',
+ dribble: 'dribble',
+ behance: 'behance',
+ medium: 'medium',
+ youtube: 'youtube',
+ codechef: 'codechef',
+ hackerrack: 'hackerranck',
+ codeforces: 'codeforces',
+ leetcode: 'leetcode',
+ topcoder: 'topcoder',
+ hackerearth: '@hackerearth',
+ geeks_for_geeks: 'geeks_for_geeks',
+ discord: 'discord',
+ rssurl: 'rssurl',
},
handleSocialChange: jest.fn().mockReturnValue({}),
- }
- it("renders correctly", () => {
- const component = shallow()
- for (let i = 0; i < component.find("input").length; i++) {
- component.find("input").at(i).simulate("change", mockEvent)
+ };
+ it('renders correctly', () => {
+ const component = shallow();
+ for (let i = 0; i < component.find('input').length; i++) {
+ component.find('input').at(i).simulate('change', mockEvent);
}
- expect(toJson(component)).toMatchSnapshot()
- })
-})
+ expect(toJson(component)).toMatchSnapshot();
+ });
+});
diff --git a/src/components/__tests__/subtitle.test.js b/src/components/__tests__/subtitle.test.js
index 6858b4b1..1e0858d2 100644
--- a/src/components/__tests__/subtitle.test.js
+++ b/src/components/__tests__/subtitle.test.js
@@ -1,26 +1,26 @@
-import React from "react"
-import { shallow } from "enzyme"
-import toJson from "enzyme-to-json"
+import React from 'react';
+import { shallow } from 'enzyme';
+import toJson from 'enzyme-to-json';
-import Subtitle from "../subtitle"
+import Subtitle from '../subtitle';
-describe("Subtitle", () => {
- const mockEvent = { target: { value: "This is a mock event" } }
+describe('Subtitle', () => {
+ const mockEvent = { target: { value: 'This is a mock event' } };
const props = {
data: {
- subtitle: "A frontend developer",
+ subtitle: 'A frontend developer',
},
handleDataChange: jest.fn().mockReturnValue({}),
- }
+ };
- const component = shallow()
+ const component = shallow();
- it("renders correctly", () => {
- expect(toJson(component)).toMatchSnapshot()
- })
+ it('renders correctly', () => {
+ expect(toJson(component)).toMatchSnapshot();
+ });
- it("calls onChange", () => {
- component.find("input").at(0).simulate("change", mockEvent)
- expect(props.handleDataChange).toBeCalledWith("subtitle", mockEvent)
- })
-})
+ it('calls onChange', () => {
+ component.find('input').at(0).simulate('change', mockEvent);
+ expect(props.handleDataChange).toBeCalledWith('subtitle', mockEvent);
+ });
+});
diff --git a/src/components/__tests__/title.test.js b/src/components/__tests__/title.test.js
index 9c1b9dd7..de2d61ce 100644
--- a/src/components/__tests__/title.test.js
+++ b/src/components/__tests__/title.test.js
@@ -1,27 +1,27 @@
-import React from "react"
-import { shallow } from "enzyme"
-import toJson from "enzyme-to-json"
+import React from 'react';
+import { shallow } from 'enzyme';
+import toJson from 'enzyme-to-json';
-import Title from "../title"
+import Title from '../title';
-describe("Title", () => {
- const mockEvent = { target: { value: "This is a mock event" } }
+describe('Title', () => {
+ const mockEvent = { target: { value: 'This is a mock event' } };
const props = {
prefix: {
- title: "test_title",
- currentWork: "test_currentwork",
+ title: 'test_title',
+ currentWork: 'test_currentwork',
},
- data: { title: "test_data" },
- link: { currentWork: "test_currentwork" },
+ data: { title: 'test_data' },
+ link: { currentWork: 'test_currentwork' },
handlePrefixChange: jest.fn().mockReturnValue({}),
handleLinkChange: jest.fn().mockReturnValue({}),
handleDataChange: jest.fn().mockReturnValue({}),
- }
+ };
- it("renders title component correctly", () => {
- const component = shallow()
- component.find("input").at(0).simulate("change", mockEvent)
- component.find("input").at(1).simulate("change", mockEvent)
- expect(toJson(component)).toMatchSnapshot()
- })
-})
+ it('renders title component correctly', () => {
+ const component = shallow();
+ component.find('input').at(0).simulate('change', mockEvent);
+ component.find('input').at(1).simulate('change', mockEvent);
+ expect(toJson(component)).toMatchSnapshot();
+ });
+});
diff --git a/src/components/__tests__/work.test.js b/src/components/__tests__/work.test.js
index 3e4235d9..e89b8c99 100644
--- a/src/components/__tests__/work.test.js
+++ b/src/components/__tests__/work.test.js
@@ -1,28 +1,28 @@
-import React from "react"
-import { shallow } from "enzyme"
-import toJson from "enzyme-to-json"
+import React from 'react';
+import { shallow } from 'enzyme';
+import toJson from 'enzyme-to-json';
-import Work from "../work"
+import Work from '../work';
-describe("Work", () => {
- const mockEvent = { target: { value: "This is a mock event" } }
+describe('Work', () => {
+ const mockEvent = { target: { value: 'This is a mock event' } };
const props = {
prefix: {
- title: "test_title",
- currentWork: "test_currentwork",
+ title: 'test_title',
+ currentWork: 'test_currentwork',
},
- data: { title: "test_data" },
- link: { currentWork: "test_currentwork" },
+ data: { title: 'test_data' },
+ link: { currentWork: 'test_currentwork' },
handlePrefixChange: jest.fn().mockReturnValue({}),
handleLinkChange: jest.fn().mockReturnValue({}),
handleDataChange: jest.fn().mockReturnValue({}),
- }
+ };
- it("renders work component correctly", () => {
- const component = shallow()
- for (let i = 0; i < component.find("input").length; i++) {
- component.find("input").at(i).simulate("change", mockEvent)
+ it('renders work component correctly', () => {
+ const component = shallow();
+ for (let i = 0; i < component.find('input').length; i++) {
+ component.find('input').at(i).simulate('change', mockEvent);
}
- expect(toJson(component)).toMatchSnapshot()
- })
-})
+ expect(toJson(component)).toMatchSnapshot();
+ });
+});
diff --git a/src/components/addons.js b/src/components/addons.js
index 72e5d8b1..7346f025 100644
--- a/src/components/addons.js
+++ b/src/components/addons.js
@@ -1,23 +1,13 @@
-import React, { useState, useEffect } from "react"
-import { withPrefix } from "gatsby"
-import { latestBlogs } from "../utils/workflows"
-import links from "../constants/page-links"
-import {
- isMediumUsernameValid,
- isGitHubUsernameValid,
-} from "../utils/validation"
-import { ToolsIcon, XCircleIcon } from "@primer/octicons-react"
+import React, { useState, useEffect } from 'react';
+import { withPrefix } from 'gatsby';
+import { latestBlogs } from '../utils/workflows';
+import links from '../constants/page-links';
+import { isMediumUsernameValid, isGitHubUsernameValid } from '../utils/validation';
+import { ToolsIcon, XCircleIcon } from '@primer/octicons-react';
-const AddonsItem = ({
- inputId,
- inputChecked,
- onInputChange,
- Options,
- onIconClick,
- ...props
-}) => {
- const [open, setOpen] = useState(false)
- const Icon = open ? XCircleIcon : ToolsIcon
+const AddonsItem = ({ inputId, inputChecked, onInputChange, Options, onIconClick, ...props }) => {
+ const [open, setOpen] = useState(false);
+ const Icon = open ? XCircleIcon : ToolsIcon;
return (
<>
@@ -38,7 +28,7 @@ const AddonsItem = ({
id={`${inputId}-open-btn`}
onClick={() => setOpen(!open)}
className="flex ml-3 focus:bg-gray-400"
- style={{ outline: "none" }}
+ style={{ outline: 'none' }}
>
@@ -46,21 +36,16 @@ const AddonsItem = ({
{Options && open && Options}
>
- )
-}
+ );
+};
const CustomizeOptions = ({ title, CustomizationOptions }) => (
-
+
-
- {CustomizationOptions}
-
+
{CustomizationOptions}
-)
+);
const CustomizeBadge = ({ githubName, badgeOptions, onBadgeUpdate }) => {
return (
@@ -69,7 +54,7 @@ const CustomizeBadge = ({ githubName, badgeOptions, onBadgeUpdate }) => {
Style:
- Developed in India{" "}
+ Developed in India{' '}
- {" "}
+ {' '}
🇮🇳
- )
-}
-export default Footer
+ );
+};
+export default Footer;
diff --git a/src/components/header.js b/src/components/header.js
index 0c50be60..f913796d 100644
--- a/src/components/header.js
+++ b/src/components/header.js
@@ -1,67 +1,61 @@
-import React, { useEffect, useState } from "react"
-import { StarIcon, RepoForkedIcon } from "@primer/octicons-react"
-import logo from "../images/mdg.png"
-import links from "../constants/page-links"
-import gsap from "gsap"
-import axios from "axios"
-import { Link } from "gatsby"
-import { act } from "react-dom/test-utils"
+import React, { useEffect, useState } from 'react';
+import { StarIcon, RepoForkedIcon } from '@primer/octicons-react';
+import logo from '../images/mdg.png';
+import links from '../constants/page-links';
+import gsap from 'gsap';
+import axios from 'axios';
+import { Link } from 'gatsby';
+import { act } from 'react-dom/test-utils';
-const Header = props => {
+const Header = (props) => {
const shouldRequestStats = () => {
- const isFirstRequest = stats.starsCount === 0
- const isVisible = window.document.visibilityState === "visible"
- const hasFocus = window.document.hasFocus()
- return isFirstRequest || (isVisible && hasFocus)
- }
+ const isFirstRequest = stats.starsCount === 0;
+ const isVisible = window.document.visibilityState === 'visible';
+ const hasFocus = window.document.hasFocus();
+ return isFirstRequest || (isVisible && hasFocus);
+ };
const fetchData = async () => {
if (shouldRequestStats()) {
- var response = await axios.get(
- "https://api.github.com/repos/rahuldkjain/github-profile-readme-generator"
- )
+ var response = await axios.get('https://api.github.com/repos/rahuldkjain/github-profile-readme-generator');
- const { stargazers_count, forks_count } = response.data
+ const { stargazers_count, forks_count } = response.data;
act(() =>
setstats({
starsCount: stargazers_count,
forksCount: forks_count,
})
- )
+ );
}
- }
+ };
const [stats, setstats] = useState({
starsCount: 0,
forksCount: 0,
- })
+ });
useEffect(() => {
- fetchData()
- setInterval(fetchData, 60000)
+ fetchData();
+ setInterval(fetchData, 60000);
- gsap.set(".star, .fork", {
- transformOrigin: "center",
- })
- gsap.to(".star, .fork", {
- rotateZ: "360",
+ gsap.set('.star, .fork', {
+ transformOrigin: 'center',
+ });
+ gsap.to('.star, .fork', {
+ rotateZ: '360',
duration: 2,
- ease: "elastic.inOut",
+ ease: 'elastic.inOut',
repeat: -1,
yoyo: true,
- })
- }, [])
+ });
+ }, []);
return (
- )
-}
+ );
+};
-export default Header
+export default Header;
diff --git a/src/components/layout.js b/src/components/layout.js
index ce064c05..53435748 100644
--- a/src/components/layout.js
+++ b/src/components/layout.js
@@ -1,6 +1,6 @@
-import React from "react"
-import Header from "./header"
-import Footer from "./footer"
+import React from 'react';
+import Header from './header';
+import Footer from './footer';
const Layout = ({ children }) => {
return (
@@ -13,6 +13,6 @@ const Layout = ({ children }) => {
- )
-}
-export default Layout
+ );
+};
+export default Layout;
diff --git a/src/components/loader.js b/src/components/loader.js
index f4c4db45..73abc820 100644
--- a/src/components/loader.js
+++ b/src/components/loader.js
@@ -1,49 +1,49 @@
-import React, { useRef, useEffect } from "react"
-import gsap from "gsap"
+import React, { useRef, useEffect } from 'react';
+import gsap from 'gsap';
const Loader = () => {
- let arrow = useRef([])
+ let arrow = useRef([]);
useEffect(() => {
- var tl = new gsap.timeline({ repeat: -1 })
+ var tl = new gsap.timeline({ repeat: -1 });
tl.fromTo(
arrow.current,
{
y: 0,
- color: "#3b3b4f",
+ color: '#3b3b4f',
},
{
y: -50,
- color: "#d0d0d5",
+ color: '#d0d0d5',
stagger: 0.1,
duration: 0.5,
- ease: "Linear.easeNone",
+ ease: 'Linear.easeNone',
}
- )
- tl.add("cp")
+ );
+ tl.add('cp');
tl.fromTo(
arrow.current,
{
y: -50,
- color: "#d0d0d5",
+ color: '#d0d0d5',
},
{
y: 0,
- color: "#3b3b4f",
+ color: '#3b3b4f',
stagger: 0.1,
duration: 0.5,
- ease: "Linear.easeNone",
+ ease: 'Linear.easeNone',
},
- "cp-=0.3"
- )
- })
+ 'cp-=0.3'
+ );
+ });
return (
- (arrow.current[0] = el)}>↓
- (arrow.current[1] = el)}>↓
- (arrow.current[2] = el)}>↓
- (arrow.current[3] = el)}>↓
- (arrow.current[4] = el)}>↓
+ (arrow.current[0] = el)}>↓
+ (arrow.current[1] = el)}>↓
+ (arrow.current[2] = el)}>↓
+ (arrow.current[3] = el)}>↓
+ (arrow.current[4] = el)}>↓
- )
-}
+ );
+};
-export default Loader
+export default Loader;
diff --git a/src/components/markdown.js b/src/components/markdown.js
index 2d47e86a..5e769e3a 100644
--- a/src/components/markdown.js
+++ b/src/components/markdown.js
@@ -1,23 +1,23 @@
-import React from "react"
-import { isMediumUsernameValid } from "../utils/validation"
-import { icons, skills, skillWebsites } from "../constants/skills"
+import React from 'react';
+import { isMediumUsernameValid } from '../utils/validation';
+import { icons, skills, skillWebsites } from '../constants/skills';
import {
githubStatsLinkGenerator,
topLanguagesLinkGenerator,
streakStatsLinkGenerator,
-} from "../utils/link-generators"
-const Title = props => {
+} from '../utils/link-generators';
+const Title = (props) => {
if (props.prefix && props.title) {
return (
<>
- {`${props.prefix + " " + props.title}
`}
+ {`${props.prefix + ' ' + props.title}
`}
>
- )
+ );
}
- return ""
-}
-const SubTitle = props => {
+ return '';
+};
+const SubTitle = (props) => {
if (props.subtitle) {
return (
<>
@@ -25,22 +25,22 @@ const SubTitle = props => {
>
- )
+ );
}
- return ""
-}
-const SectionTitle = props => {
+ return '';
+};
+const SectionTitle = (props) => {
if (props.label) {
return (
<>
{`${props.label}
`}
>
- )
+ );
}
- return ""
-}
-const DisplayWork = props => {
+ return '';
+};
+const DisplayWork = (props) => {
if (props.prefix && props.project) {
if (props.link) {
return (
@@ -49,7 +49,7 @@ const DisplayWork = props => {
>
- )
+ );
} else {
return (
<>
@@ -57,7 +57,7 @@ const DisplayWork = props => {
>
- )
+ );
}
}
if (props.prefix && props.link) {
@@ -67,28 +67,28 @@ const DisplayWork = props => {
>
- )
+ );
}
- return ""
-}
-const DisplaySocial = props => {
+ return '';
+};
+const DisplaySocial = (props) => {
if (props.username) {
return (
<>
{`
`}
>
- )
+ );
}
- return ""
-}
-const VisitorsBadge = props => {
+ return '';
+};
+const VisitorsBadge = (props) => {
let link =
- "https://komarev.com/ghpvc/?username=" +
+ 'https://komarev.com/ghpvc/?username=' +
props.github +
`&label=${props.badgeOptions.badgeLabel}` +
`&color=${props.badgeOptions.badgeColor}` +
- `&style=${props.badgeOptions.badgeStyle}`
+ `&style=${props.badgeOptions.badgeStyle}`;
if (props.show) {
return (
<>
@@ -96,15 +96,12 @@ const VisitorsBadge = props => {
>
- )
+ );
}
- return ""
-}
-const TwitterBadge = props => {
- let link =
- "https://img.shields.io/twitter/follow/" +
- props.twitter +
- "?logo=twitter&style=for-the-badge"
+ return '';
+};
+const TwitterBadge = (props) => {
+ let link = 'https://img.shields.io/twitter/follow/' + props.twitter + '?logo=twitter&style=for-the-badge';
if (props.show) {
return (
<>
@@ -112,13 +109,12 @@ const TwitterBadge = props => {
>
- )
+ );
}
- return ""
-}
-const GithubProfileTrophy = props => {
- let link =
- "https://github-profile-trophy.vercel.app/?username=" + props.github
+ return '';
+};
+const GithubProfileTrophy = (props) => {
+ let link = 'https://github-profile-trophy.vercel.app/?username=' + props.github;
if (props.show) {
return (
<>
@@ -126,10 +122,10 @@ const GithubProfileTrophy = props => {
>
- )
+ );
}
- return ""
-}
+ return '';
+};
const GitHubStats = ({ show, github, options }) => {
if (show) {
return (
@@ -141,11 +137,11 @@ const GitHubStats = ({ show, github, options }) => {
>
- )
+ );
}
- return ""
-}
-const isSocial = social => {
+ return '';
+};
+const isSocial = (social) => {
return (
social.dev ||
social.twitter ||
@@ -169,11 +165,11 @@ const isSocial = social => {
social.geeks_for_geeks ||
social.discord ||
social.rssurl
- )
-}
-const DisplaySkills = props => {
- const listChosenSkills = []
- skills.forEach(skill => {
+ );
+};
+const DisplaySkills = (props) => {
+ const listChosenSkills = [];
+ skills.forEach((skill) => {
if (props.skills[skill]) {
listChosenSkills.push(
`
@@ -181,21 +177,21 @@ const DisplaySkills = props => {
`
- )
+ );
}
- })
+ });
return listChosenSkills.length > 0 ? (
<>
- {`${listChosenSkills.join(" ")}
`}
+ {`${listChosenSkills.join(' ')}
`}
>
) : (
- ""
- )
-}
-const DisplayDynamicBlogs = props => {
+ ''
+ );
+};
+const DisplayDynamicBlogs = (props) => {
if (props.show) {
return (
<>
@@ -206,11 +202,11 @@ const DisplayDynamicBlogs = props => {
{``}
>
- )
+ );
}
- return ""
-}
-const DisplayTopLanguages = props => {
+ return '';
+};
+const DisplayTopLanguages = (props) => {
if (props.show) {
if (!props.showStats) {
return (
@@ -222,7 +218,7 @@ const DisplayTopLanguages = props => {
>
- )
+ );
}
return (
<>
@@ -233,11 +229,11 @@ const DisplayTopLanguages = props => {
>
- )
+ );
}
- return ""
-}
-const DisplayStreakStats = props => {
+ return '';
+};
+const DisplayStreakStats = (props) => {
if (props.show) {
return (
<>
@@ -248,17 +244,17 @@ const DisplayStreakStats = props => {
>
- )
+ );
}
- return ""
-}
-const DisplaySupport = props => {
- let viewSupport = false
- Object.keys(props.support).forEach(key => {
+ return '';
+};
+const DisplaySupport = (props) => {
+ let viewSupport = false;
+ Object.keys(props.support).forEach((key) => {
if (props.support[key]) {
- viewSupport = true
+ viewSupport = true;
}
- })
+ });
return viewSupport ? (
@@ -274,12 +270,12 @@ const DisplaySupport = props => {
) : (
- ""
- )
-}
-const Markdown = props => {
+ ''
+ );
+};
+const Markdown = (props) => {
const icon_base_url =
- "https://raw.githubusercontent.com/rahuldkjain/github-profile-readme-generator/master/src/images/icons/Social/"
+ 'https://raw.githubusercontent.com/rahuldkjain/github-profile-readme-generator/master/src/images/icons/Social/';
return (
@@ -301,28 +297,14 @@ const Markdown = props => {
/>
>
<>
-
-
+
+
>
<>
-
+
>
<>
-
+
>
<>
{
/>
>
<>
-
+
>
<>
-
+
>
<>
@@ -351,28 +326,20 @@ const Markdown = props => {
>
<>
-
+
>
<>
>
<>
-
+
>
<>
>
@@ -382,97 +349,77 @@ const Markdown = props => {
{``}
>
) : (
- ""
+ ''
)}
<>
-
+
>
<>
-
+
>
<>
>
<>
>
<>
>
<>
>
<>
-
+
>
<>
-
+
>
<>
>
<>
>
<>
>
<>
-
+
>
<>
>
@@ -486,58 +433,50 @@ const Markdown = props => {
<>
>
<>
>
<>
>
<>
>
<>
>
<>
>
<>
-
+
>
<>
-
+
>
{isSocial(props.social) ? (
<>
@@ -546,7 +485,7 @@ const Markdown = props => {
>
) : (
- ""
+ ''
)}
<>
@@ -577,6 +516,6 @@ const Markdown = props => {
/>
>
- )
-}
-export default Markdown
+ );
+};
+export default Markdown;
diff --git a/src/components/markdownPreview.js b/src/components/markdownPreview.js
index 3a926a65..9bca18ab 100644
--- a/src/components/markdownPreview.js
+++ b/src/components/markdownPreview.js
@@ -1,100 +1,76 @@
-import React from "react"
-import { icons, skills, skillWebsites } from "../constants/skills"
+import React from 'react';
+import { icons, skills, skillWebsites } from '../constants/skills';
import {
githubStatsLinkGenerator,
topLanguagesLinkGenerator,
streakStatsLinkGenerator,
-} from "../utils/link-generators"
+} from '../utils/link-generators';
-export const TitlePreview = props => {
+export const TitlePreview = (props) => {
if (props.prefix && props.title) {
- return (
-
- {props.prefix + " " + props.title}
-
- )
+ return {props.prefix + ' ' + props.title}
;
}
- return null
-}
+ return null;
+};
-export const SubTitlePreview = props => {
+export const SubTitlePreview = (props) => {
if (props.subtitle) {
- return {props.subtitle}
+ return {props.subtitle}
;
}
- return null
-}
+ return null;
+};
-export const SectionTitle = props => {
- if (!props.visible) return null
+export const SectionTitle = (props) => {
+ if (!props.visible) return null;
else if (props.label) {
- return {props.label}
+ return {props.label}
;
}
- return null
-}
+ return null;
+};
-export const DisplayWork = props => {
+export const DisplayWork = (props) => {
if (props.prefix && props.project) {
if (props.link) {
return (
- )
+ );
} else {
return (
- {props.prefix + " "}
+ {props.prefix + ' '}
{props.project}
- )
+ );
}
}
if (props.prefix && props.link) {
return (
- )
+ );
}
- return null
-}
+ return null;
+};
-export const WorkPreview = props => {
- const prefix = props.work.prefix
- const data = props.work.data
- const link = props.work.link
+export const WorkPreview = (props) => {
+ const prefix = props.work.prefix;
+ const data = props.work.data;
+ const link = props.work.link;
return (
<>
-
+
-
-
+
+
@@ -102,122 +78,98 @@ export const WorkPreview = props => {
>
- )
-}
+ );
+};
-export const DisplaySocial = props => {
+export const DisplaySocial = (props) => {
if (props.username) {
return (
-
+
- )
+ );
}
- return null
-}
+ return null;
+};
-export const SocialPreview = props => {
- let viewSocial = false
+export const SocialPreview = (props) => {
+ let viewSocial = false;
const icon_base_url =
- "https://raw.githubusercontent.com/rahuldkjain/github-profile-readme-generator/master/src/images/icons/Social/"
- Object.keys(props.social).forEach(key => {
- if (props.social[key] && key !== "github") viewSocial = true
- })
+ 'https://raw.githubusercontent.com/rahuldkjain/github-profile-readme-generator/master/src/images/icons/Social/';
+ Object.keys(props.social).forEach((key) => {
+ if (props.social[key] && key !== 'github') viewSocial = true;
+ });
return (
<>
-
+
>
<>
-
+
>
<>
>
<>
>
<>
>
<>
>
<>
-
+
>
<>
-
+
>
<>
>
<>
>
<>
>
<>
-
+
>
<>
>
@@ -231,118 +183,102 @@ export const SocialPreview = props => {
<>
>
<>
>
<>
>
<>
>
<>
>
<>
>
<>
-
+
>
<>
-
+
>
- )
-}
+ );
+};
-export const VisitorsBadgePreview = props => {
+export const VisitorsBadgePreview = (props) => {
let link =
- "https://komarev.com/ghpvc/?username=" +
+ 'https://komarev.com/ghpvc/?username=' +
props.github +
`&label=${props.badgeOptions.badgeLabel}` +
`&color=${props.badgeOptions.badgeColor}` +
- `&style=${props.badgeOptions.badgeStyle}`
+ `&style=${props.badgeOptions.badgeStyle}`;
if (props.show) {
return (
- {" "}
-

{" "}
+ {' '}
+

{' '}
- )
+ );
}
- return null
-}
+ return null;
+};
-export const TwitterBadgePreview = props => {
- let link =
- "https://img.shields.io/twitter/follow/" +
- props.twitter +
- "?logo=twitter&style=for-the-badge"
+export const TwitterBadgePreview = (props) => {
+ let link = 'https://img.shields.io/twitter/follow/' + props.twitter + '?logo=twitter&style=for-the-badge';
if (props.show) {
return (
- )
+ );
}
- return null
-}
+ return null;
+};
-export const GithubProfileTrophyPreview = props => {
- let link =
- "https://github-profile-trophy.vercel.app/?username=" + props.github
+export const GithubProfileTrophyPreview = (props) => {
+ let link = 'https://github-profile-trophy.vercel.app/?username=' + props.github;
if (props.show) {
return (
- {" "}
+ {' '}
- {" "}
+ {' '}
- )
+ );
}
- return null
-}
+ return null;
+};
export const GitHubStatsPreview = ({ github, options, show }) => {
if (show) {
@@ -350,24 +286,21 @@ export const GitHubStatsPreview = ({ github, options, show }) => {
- )
+ );
}
- return null
-}
+ return null;
+};
export const TopLanguagesPreview = ({ github, options, show }) => {
if (show) {
return (
-

+
- )
+ );
}
- return
-}
+ return
;
+};
export const StreakStatsPreview = ({ github, options, show }) => {
if (show) {
@@ -375,57 +308,44 @@ export const StreakStatsPreview = ({ github, options, show }) => {
- )
+ );
}
- return null
-}
+ return null;
+};
-export const SkillsPreview = props => {
- var listSkills = []
- skills.forEach(skill => {
+export const SkillsPreview = (props) => {
+ var listSkills = [];
+ skills.forEach((skill) => {
if (props.skills[skill]) {
listSkills.push(
-
-
+
+
- )
+ );
}
- })
+ });
return listSkills.length > 0 ? (
{listSkills}
) : (
- ""
- )
-}
+ ''
+ );
+};
-export const SupportPreview = props => {
- let viewSupport = false
- Object.keys(props.support).forEach(key => {
+export const SupportPreview = (props) => {
+ let viewSupport = false;
+ Object.keys(props.support).forEach((key) => {
if (props.support[key]) {
- viewSupport = true
+ viewSupport = true;
}
- })
+ });
return props.support.buyMeACoffee || props.support.buyMeAKofi ? (
{props.support.buyMeACoffee && (
-
+
{
)}
{props.support.buyMeAKofi && (
-
+
{
)}
) : (
- ""
- )
-}
+ ''
+ );
+};
-const MarkdownPreview = props => {
+const MarkdownPreview = (props) => {
return (
@@ -466,14 +382,8 @@ const MarkdownPreview = props => {
badgeStyle: props.data.badgeStyle,
}}
/>
-
-
+
+
@@ -496,7 +406,7 @@ const MarkdownPreview = props => {
/>
- )
-}
+ );
+};
-export default MarkdownPreview
+export default MarkdownPreview;
diff --git a/src/components/seo.js b/src/components/seo.js
index aee4d450..ea1290f9 100644
--- a/src/components/seo.js
+++ b/src/components/seo.js
@@ -5,10 +5,10 @@
* See: https://www.gatsbyjs.org/docs/use-static-query/
*/
-import React from "react"
-import PropTypes from "prop-types"
-import { Helmet } from "react-helmet"
-import { useStaticQuery, graphql } from "gatsby"
+import React from 'react';
+import PropTypes from 'prop-types';
+import { Helmet } from 'react-helmet';
+import { useStaticQuery, graphql } from 'gatsby';
function SEO({ description, lang, meta, title }) {
const { site } = useStaticQuery(
@@ -23,9 +23,9 @@ function SEO({ description, lang, meta, title }) {
}
}
`
- )
+ );
- const metaDescription = description || site.siteMetadata.description
+ const metaDescription = description || site.siteMetadata.description;
return (
- )
+ );
}
SEO.defaultProps = {
lang: `en`,
meta: [],
description: ``,
-}
+};
SEO.propTypes = {
description: PropTypes.string,
lang: PropTypes.string,
meta: PropTypes.arrayOf(PropTypes.object),
title: PropTypes.string.isRequired,
-}
+};
-export default SEO
+export default SEO;
diff --git a/src/components/skills.js b/src/components/skills.js
index 28c3ae22..95bc2499 100644
--- a/src/components/skills.js
+++ b/src/components/skills.js
@@ -1,106 +1,99 @@
-import React, {useState} from "react"
-import { icons, categorizedSkills } from "../constants/skills"
-import { SearchIcon, XIcon } from "@primer/octicons-react";
+import React, { useState } from 'react';
+import { icons, categorizedSkills } from '../constants/skills';
+import { SearchIcon, XIcon } from '@primer/octicons-react';
-
-const Skills = props => {
- const [search, setSearch] = useState('')
+const Skills = (props) => {
+ const [search, setSearch] = useState('');
const [debounce, setDebounce] = useState(undefined);
- const inputRef = React.createRef()
- const createSkill = skill => {
+ const inputRef = React.createRef();
+ const createSkill = (skill) => {
return (
- )
- }
+
+ );
+ };
const onSearchChange = (value) => {
const callback = () => {
- setSearch(value)
- }
- clearTimeout(debounce)
- setDebounce(setTimeout(callback, 50))
- }
+ setSearch(value);
+ };
+ clearTimeout(debounce);
+ setDebounce(setTimeout(callback, 50));
+ };
return (
-
+
{Object.keys(categorizedSkills)
- .filter(key => {
- let filtered = categorizedSkills[key].skills.filter(skill => {
- return skill.includes(search.toLowerCase())
+ .filter((key) => {
+ let filtered = categorizedSkills[key].skills.filter((skill) => {
+ return skill.includes(search.toLowerCase());
+ });
+ return filtered.length !== 0;
})
- return filtered.length !== 0
- })
- .map(key => (
-
-
- {categorizedSkills[key].title}
+ .map((key) => (
+
+
{categorizedSkills[key].title}
+
+ {categorizedSkills[key].skills
+ .filter((skill) => {
+ return skill.includes(search.toLowerCase());
+ })
+ .map((skill) => createSkill(skill))}
-
- {categorizedSkills[key].skills
- .filter(skill => {
- return skill.includes(search.toLowerCase())
- })
- .map(skill => createSkill(skill))}
-
- ))}
+ ))}
- {(Object.keys(categorizedSkills)
- .filter(key => {
- let filtered = categorizedSkills[key].skills.filter(skill => {
- return skill.includes(search.toLowerCase())
- })
- return filtered.length !== 0
- })
- .length === 0)?"No Results Found":""}
+ {Object.keys(categorizedSkills).filter((key) => {
+ let filtered = categorizedSkills[key].skills.filter((skill) => {
+ return skill.includes(search.toLowerCase());
+ });
+ return filtered.length !== 0;
+ }).length === 0
+ ? 'No Results Found'
+ : ''}
- )
-}
+ );
+};
-export default Skills
\ No newline at end of file
+export default Skills;
diff --git a/src/components/social.js b/src/components/social.js
index fcdd2bcf..8f71f2f3 100644
--- a/src/components/social.js
+++ b/src/components/social.js
@@ -1,11 +1,9 @@
-import React from "react"
+import React from 'react';
-const Social = props => {
+const Social = (props) => {
return (
-
- Social
-
+
Social
![]()
{
placeholder="github username"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-1 sm:px-2 focus:border-blue-700"
value={props.social.github}
- onChange={event => props.handleSocialChange("github", event)}
+ onChange={(event) => props.handleSocialChange('github', event)}
/>
@@ -32,7 +30,7 @@ const Social = props => {
placeholder="twitter username"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.social.twitter}
- onChange={event => props.handleSocialChange("twitter", event)}
+ onChange={(event) => props.handleSocialChange('twitter', event)}
/>
@@ -46,7 +44,7 @@ const Social = props => {
placeholder="dev.to username"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.social.dev}
- onChange={event => props.handleSocialChange("dev", event)}
+ onChange={(event) => props.handleSocialChange('dev', event)}
/>
@@ -60,7 +58,7 @@ const Social = props => {
placeholder="codepen username"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.social.codepen}
- onChange={event => props.handleSocialChange("codepen", event)}
+ onChange={(event) => props.handleSocialChange('codepen', event)}
/>
@@ -74,7 +72,7 @@ const Social = props => {
placeholder="codesandbox username"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.social.codesandbox}
- onChange={event => props.handleSocialChange("codesandbox", event)}
+ onChange={(event) => props.handleSocialChange('codesandbox', event)}
/>
@@ -88,7 +86,7 @@ const Social = props => {
placeholder="stackoverflow user ID"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.social.stackoverflow}
- onChange={event => props.handleSocialChange("stackoverflow", event)}
+ onChange={(event) => props.handleSocialChange('stackoverflow', event)}
/>
@@ -102,7 +100,7 @@ const Social = props => {
placeholder="linkedin username"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.social.linkedin}
- onChange={event => props.handleSocialChange("linkedin", event)}
+ onChange={(event) => props.handleSocialChange('linkedin', event)}
/>
@@ -116,7 +114,7 @@ const Social = props => {
placeholder="kaggle username"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.social.kaggle}
- onChange={event => props.handleSocialChange("kaggle", event)}
+ onChange={(event) => props.handleSocialChange('kaggle', event)}
/>
@@ -130,7 +128,7 @@ const Social = props => {
placeholder="facebook username"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.social.fb}
- onChange={event => props.handleSocialChange("fb", event)}
+ onChange={(event) => props.handleSocialChange('fb', event)}
/>
@@ -144,7 +142,7 @@ const Social = props => {
placeholder="instagram username"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.social.instagram}
- onChange={event => props.handleSocialChange("instagram", event)}
+ onChange={(event) => props.handleSocialChange('instagram', event)}
/>
@@ -158,7 +156,7 @@ const Social = props => {
placeholder="dribbble username"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.social.dribbble}
- onChange={event => props.handleSocialChange("dribbble", event)}
+ onChange={(event) => props.handleSocialChange('dribbble', event)}
/>
@@ -172,7 +170,7 @@ const Social = props => {
placeholder="behance username"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.social.behance}
- onChange={event => props.handleSocialChange("behance", event)}
+ onChange={(event) => props.handleSocialChange('behance', event)}
/>
@@ -186,7 +184,7 @@ const Social = props => {
placeholder="medium username (with @)"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.social.medium}
- onChange={event => props.handleSocialChange("medium", event)}
+ onChange={(event) => props.handleSocialChange('medium', event)}
/>
@@ -200,7 +198,7 @@ const Social = props => {
placeholder="youtube channel name"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.social.youtube}
- onChange={event => props.handleSocialChange("youtube", event)}
+ onChange={(event) => props.handleSocialChange('youtube', event)}
/>
@@ -214,7 +212,7 @@ const Social = props => {
placeholder="codechef username"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.social.codechef}
- onChange={event => props.handleSocialChange("codechef", event)}
+ onChange={(event) => props.handleSocialChange('codechef', event)}
/>
@@ -228,7 +226,7 @@ const Social = props => {
placeholder="hackerrank username"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.social.hackerrank}
- onChange={event => props.handleSocialChange("hackerrank", event)}
+ onChange={(event) => props.handleSocialChange('hackerrank', event)}
/>
@@ -242,7 +240,7 @@ const Social = props => {
placeholder="codeforces username"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.social.codeforces}
- onChange={event => props.handleSocialChange("codeforces", event)}
+ onChange={(event) => props.handleSocialChange('codeforces', event)}
/>
@@ -256,7 +254,7 @@ const Social = props => {
placeholder="leetcode username"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.social.leetcode}
- onChange={event => props.handleSocialChange("leetcode", event)}
+ onChange={(event) => props.handleSocialChange('leetcode', event)}
/>
@@ -270,7 +268,7 @@ const Social = props => {
placeholder="topcoder username"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.social.topcoder}
- onChange={event => props.handleSocialChange("topcoder", event)}
+ onChange={(event) => props.handleSocialChange('topcoder', event)}
/>
@@ -284,7 +282,7 @@ const Social = props => {
placeholder="hackerearth user (with @)"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.social.hackerearth}
- onChange={event => props.handleSocialChange("hackerearth", event)}
+ onChange={(event) => props.handleSocialChange('hackerearth', event)}
/>
@@ -298,9 +296,7 @@ const Social = props => {
placeholder="GFG (/profile)"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.social.geeks_for_geeks}
- onChange={event =>
- props.handleSocialChange("geeks_for_geeks", event)
- }
+ onChange={(event) => props.handleSocialChange('geeks_for_geeks', event)}
/>
@@ -314,7 +310,7 @@ const Social = props => {
placeholder="discord invite (only code)"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.social.discord}
- onChange={event => props.handleSocialChange("discord", event)}
+ onChange={(event) => props.handleSocialChange('discord', event)}
/>
@@ -328,12 +324,12 @@ const Social = props => {
placeholder="RSS feed URL"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.social.rssurl}
- onChange={event => props.handleSocialChange("rssurl", event)}
+ onChange={(event) => props.handleSocialChange('rssurl', event)}
/>
- )
-}
+ );
+};
-export default Social
+export default Social;
diff --git a/src/components/subtitle.js b/src/components/subtitle.js
index 9006c70e..15d8214d 100644
--- a/src/components/subtitle.js
+++ b/src/components/subtitle.js
@@ -1,19 +1,17 @@
-import React from "react"
+import React from 'react';
-const Subtitle = props => {
+const Subtitle = (props) => {
return (
-
- Subtitle
-
+
Subtitle
props.handleDataChange("subtitle", event)}
+ onChange={(event) => props.handleDataChange('subtitle', event)}
/>
- )
-}
+ );
+};
-export default Subtitle
+export default Subtitle;
diff --git a/src/components/support.js b/src/components/support.js
index 3aa91294..996d5157 100644
--- a/src/components/support.js
+++ b/src/components/support.js
@@ -1,11 +1,9 @@
-import React from "react"
+import React from 'react';
-const Support = props => {
+const Support = (props) => {
return (
-
- Support
-
+
Support
![]()
{
id="buy-me-a-coffee"
placeholder="buymeacoffee username"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-1 focus:border-blue-700"
- value={props.support.buyMeACoffee || ""}
- onChange={event => props.handleSupportChange("buyMeACoffee", event)}
+ value={props.support.buyMeACoffee || ''}
+ onChange={(event) => props.handleSupportChange('buyMeACoffee', event)}
/>
@@ -31,13 +29,13 @@ const Support = props => {
id="buy-me-a-kofi"
placeholder="Ko-fi username"
className="outline-none placeholder-gray-700 w-32 sm:w-1/2 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-1 sm:px-2 ml-2 sm:ml-0 focus:border-blue-700"
- value={props.support.buyMeAKofi || ""}
- onChange={event => props.handleSupportChange("buyMeAKofi", event)}
+ value={props.support.buyMeAKofi || ''}
+ onChange={(event) => props.handleSupportChange('buyMeAKofi', event)}
/>
- )
-}
+ );
+};
-export default Support
+export default Support;
diff --git a/src/components/title.js b/src/components/title.js
index 1609a786..ab2852f5 100644
--- a/src/components/title.js
+++ b/src/components/title.js
@@ -1,28 +1,26 @@
-import React from "react"
+import React from 'react';
-const Title = props => {
+const Title = (props) => {
return (
- )
-}
+ );
+};
-export default Title
+export default Title;
diff --git a/src/components/work.js b/src/components/work.js
index 8fe44412..839dfaea 100644
--- a/src/components/work.js
+++ b/src/components/work.js
@@ -1,32 +1,30 @@
-import React from "react"
+import React from 'react';
-const Work = props => {
+const Work = (props) => {
return (
-
- Work
-
+
Work
props.handlePrefixChange("currentWork", event)}
+ onChange={(event) => props.handlePrefixChange('currentWork', event)}
/>
props.handleDataChange("currentWork", event)}
+ onChange={(event) => props.handleDataChange('currentWork', event)}
/>
props.handleLinkChange("currentWork", event)}
+ onChange={(event) => props.handleLinkChange('currentWork', event)}
/>
@@ -34,21 +32,21 @@ const Work = props => {
id="collaborateOn-prefix"
className="outline-none mr-8 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.prefix.collaborateOn}
- onChange={event => props.handlePrefixChange("collaborateOn", event)}
+ onChange={(event) => props.handlePrefixChange('collaborateOn', event)}
/>
props.handleDataChange("collaborateOn", event)}
+ onChange={(event) => props.handleDataChange('collaborateOn', event)}
/>
props.handleLinkChange("collaborateOn", event)}
+ onChange={(event) => props.handleLinkChange('collaborateOn', event)}
/>
@@ -56,21 +54,21 @@ const Work = props => {
id="helpWith-prefix"
className="outline-none placeholder-gray-700 mr-8 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.prefix.helpWith}
- onChange={event => props.handlePrefixChange("helpWith", event)}
+ onChange={(event) => props.handlePrefixChange('helpWith', event)}
/>
props.handleDataChange("helpWith", event)}
+ onChange={(event) => props.handleDataChange('helpWith', event)}
/>
props.handleLinkChange("helpWith", event)}
+ onChange={(event) => props.handleLinkChange('helpWith', event)}
/>
@@ -79,14 +77,14 @@ const Work = props => {
id="currentLearn-prefix"
className="outline-none mr-8 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.prefix.currentLearn}
- onChange={event => props.handlePrefixChange("currentLearn", event)}
+ onChange={(event) => props.handlePrefixChange('currentLearn', event)}
/>
props.handleDataChange("currentLearn", event)}
+ onChange={(event) => props.handleDataChange('currentLearn', event)}
/>
@@ -94,14 +92,14 @@ const Work = props => {
id="ama-prefix"
className="outline-none mr-8 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.prefix.ama}
- onChange={event => props.handlePrefixChange("ama", event)}
+ onChange={(event) => props.handlePrefixChange('ama', event)}
/>
props.handleDataChange("ama", event)}
+ onChange={(event) => props.handleDataChange('ama', event)}
/>
@@ -110,14 +108,14 @@ const Work = props => {
id="contact-prefix"
className="outline-none mr-8 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.prefix.contact}
- onChange={event => props.handlePrefixChange("contact", event)}
+ onChange={(event) => props.handlePrefixChange('contact', event)}
/>
props.handleDataChange("contact", event)}
+ onChange={(event) => props.handleDataChange('contact', event)}
/>
@@ -126,14 +124,14 @@ const Work = props => {
id="portfolio-prefix"
className="outline-none mr-8 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.prefix.portfolio}
- onChange={event => props.handlePrefixChange("portfolio", event)}
+ onChange={(event) => props.handlePrefixChange('portfolio', event)}
/>
props.handleLinkChange("portfolio", event)}
+ onChange={(event) => props.handleLinkChange('portfolio', event)}
/>
@@ -141,14 +139,14 @@ const Work = props => {
id="blog-prefix"
className="outline-none mr-8 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.prefix.blog}
- onChange={event => props.handlePrefixChange("blog", event)}
+ onChange={(event) => props.handlePrefixChange('blog', event)}
/>
props.handleLinkChange("blog", event)}
+ onChange={(event) => props.handleLinkChange('blog', event)}
/>
@@ -156,34 +154,34 @@ const Work = props => {
id="resume-prefix"
className="outline-none mr-8 w-full sm:w-1/3 border-t-0 border-l-0 border-r-0 border solid border-gray-900 py-1 px-2 focus:border-blue-700"
value={props.prefix.resume}
- onChange={event => props.handlePrefixChange("resume", event)}
+ onChange={(event) => props.handlePrefixChange('resume', event)}
/>
props.handleLinkChange("resume", event)}
+ onChange={(event) => props.handleLinkChange('resume', event)}
/>
-
+
props.handlePrefixChange("funFact", event)}
+ onChange={(event) => props.handlePrefixChange('funFact', event)}
/>
props.handleDataChange("funFact", event)}
+ onChange={(event) => props.handleDataChange('funFact', event)}
/>
- )
-}
+ );
+};
-export default Work
+export default Work;
diff --git a/src/constants/defaults.js b/src/constants/defaults.js
index 00b26705..abdf578a 100644
--- a/src/constants/defaults.js
+++ b/src/constants/defaults.js
@@ -1,97 +1,97 @@
export const DEFAULT_PREFIX = {
title: "Hi 👋, I'm",
- currentWork: "🔭 I’m currently working on",
- currentLearn: "🌱 I’m currently learning",
- collaborateOn: "👯 I’m looking to collaborate on",
- helpWith: "🤝 I’m looking for help with",
- ama: "💬 Ask me about",
- contact: "📫 How to reach me",
- resume: "📄 Know about my experiences",
- funFact: "⚡ Fun fact",
- portfolio: "👨💻 All of my projects are available at",
- blog: "📝 I regularly write articles on",
-}
+ currentWork: '🔭 I’m currently working on',
+ currentLearn: '🌱 I’m currently learning',
+ collaborateOn: '👯 I’m looking to collaborate on',
+ helpWith: '🤝 I’m looking for help with',
+ ama: '💬 Ask me about',
+ contact: '📫 How to reach me',
+ resume: '📄 Know about my experiences',
+ funFact: '⚡ Fun fact',
+ portfolio: '👨💻 All of my projects are available at',
+ blog: '📝 I regularly write articles on',
+};
export const DEFAULT_DATA = {
- title: "",
- subtitle: "A passionate frontend developer from India",
- currentWork: "",
- currentLearn: "",
- collaborateOn: "",
- helpWith: "",
- ama: "",
- contact: "",
- funFact: "",
+ title: '',
+ subtitle: 'A passionate frontend developer from India',
+ currentWork: '',
+ currentLearn: '',
+ collaborateOn: '',
+ helpWith: '',
+ ama: '',
+ contact: '',
+ funFact: '',
twitterBadge: false,
visitorsBadge: false,
- badgeStyle: "flat",
- badgeColor: "0e75b6",
- badgeLabel: "Profile views",
+ badgeStyle: 'flat',
+ badgeColor: '0e75b6',
+ badgeLabel: 'Profile views',
githubProfileTrophy: false,
githubStats: false,
githubStatsOptions: {
- theme: "",
- titleColor: "",
- textColor: "",
- bgColor: "",
+ theme: '',
+ titleColor: '',
+ textColor: '',
+ bgColor: '',
hideBorder: false,
cacheSeconds: null,
- locale: "en",
+ locale: 'en',
},
topLanguages: false,
topLanguagesOptions: {
- theme: "",
- titleColor: "",
- textColor: "",
- bgColor: "",
+ theme: '',
+ titleColor: '',
+ textColor: '',
+ bgColor: '',
hideBorder: false,
cacheSeconds: null,
- locale: "en",
+ locale: 'en',
},
streakStats: false,
streakStatsOptions: {
- theme: "",
+ theme: '',
},
devDynamicBlogs: false,
mediumDynamicBlogs: false,
rssDynamicBlogs: false,
-}
+};
export const DEFAULT_LINK = {
- currentWork: "",
- collaborateOn: "",
- helpWith: "",
- portfolio: "",
- blog: "",
- resume: "",
-}
+ currentWork: '',
+ collaborateOn: '',
+ helpWith: '',
+ portfolio: '',
+ blog: '',
+ resume: '',
+};
export const DEFAULT_SOCIAL = {
- github: "",
- dev: "",
- linkedin: "",
- codepen: "",
- stackoverflow: "",
- kaggle: "",
- codesandbox: "",
- fb: "",
- instagram: "",
- twitter: "",
- dribbble: "",
- behance: "",
- medium: "",
- youtube: "",
- codechef: "",
- hackerrank: "",
- codeforces: "",
- leetcode: "",
- topcoder: "",
- hackerearth: "",
- geeks_for_geeks: "",
- discord: "",
- rssurl: "",
-}
+ github: '',
+ dev: '',
+ linkedin: '',
+ codepen: '',
+ stackoverflow: '',
+ kaggle: '',
+ codesandbox: '',
+ fb: '',
+ instagram: '',
+ twitter: '',
+ dribbble: '',
+ behance: '',
+ medium: '',
+ youtube: '',
+ codechef: '',
+ hackerrank: '',
+ codeforces: '',
+ leetcode: '',
+ topcoder: '',
+ hackerearth: '',
+ geeks_for_geeks: '',
+ discord: '',
+ rssurl: '',
+};
export const DEFAULT_SUPPORT = {
- buyMeACoffee: ""
-}
+ buyMeACoffee: '',
+};
diff --git a/src/constants/page-links.js b/src/constants/page-links.js
index 14205083..408df19b 100644
--- a/src/constants/page-links.js
+++ b/src/constants/page-links.js
@@ -1,7 +1,7 @@
const links = {
- home: "/",
- about: "/about",
- addons: "/addons",
- support: "/support",
-}
-export default links
+ home: '/',
+ about: '/about',
+ addons: '/addons',
+ support: '/support',
+};
+export default links;
diff --git a/src/constants/skills.js b/src/constants/skills.js
index 1cf44ff3..f25ed7ea 100644
--- a/src/constants/skills.js
+++ b/src/constants/skills.js
@@ -1,637 +1,519 @@
const categorizedSkills = {
language: {
- title: "Programming Languages",
+ title: 'Programming Languages',
skills: [
- "c",
- "cplusplus",
- "csharp",
- "go",
- "java",
- "javascript",
- "typescript",
- "php",
- "perl",
- "ruby",
- "scala",
- "python",
- "swift",
- "objectivec",
- "clojure",
- "rust",
- "haskell",
- "coffeescript",
- "elixir",
- "erlang",
- "nim",
+ 'c',
+ 'cplusplus',
+ 'csharp',
+ 'go',
+ 'java',
+ 'javascript',
+ 'typescript',
+ 'php',
+ 'perl',
+ 'ruby',
+ 'scala',
+ 'python',
+ 'swift',
+ 'objectivec',
+ 'clojure',
+ 'rust',
+ 'haskell',
+ 'coffeescript',
+ 'elixir',
+ 'erlang',
+ 'nim',
],
},
frontend_dev: {
- title: "Frontend Development",
+ title: 'Frontend Development',
skills: [
- "vuejs",
- "react",
- "svelte",
- "angularjs",
- "angular",
- "backbonejs",
- "bootstrap",
- "vuetify",
- "css3",
- "html5",
- "pug",
- "gulp",
- "sass",
- "redux",
- "webpack",
- "babel",
- "tailwind",
- "materialize",
- "bulma",
- "gtk",
- "qt",
- "wx_widgets",
- "ember",
+ 'vuejs',
+ 'react',
+ 'svelte',
+ 'angularjs',
+ 'angular',
+ 'backbonejs',
+ 'bootstrap',
+ 'vuetify',
+ 'css3',
+ 'html5',
+ 'pug',
+ 'gulp',
+ 'sass',
+ 'redux',
+ 'webpack',
+ 'babel',
+ 'tailwind',
+ 'materialize',
+ 'bulma',
+ 'gtk',
+ 'qt',
+ 'wx_widgets',
+ 'ember',
],
},
backend_dev: {
- title: "Backend Development",
+ title: 'Backend Development',
skills: [
- "nodejs",
- "spring",
- "express",
- "graphql",
- "kafka",
- "solr",
- "rabbitMQ",
- "hadoop",
- "nginx",
- "openresty",
- "nestjs",
+ 'nodejs',
+ 'spring',
+ 'express',
+ 'graphql',
+ 'kafka',
+ 'solr',
+ 'rabbitMQ',
+ 'hadoop',
+ 'nginx',
+ 'openresty',
+ 'nestjs',
],
},
mobile_dev: {
- title: "Mobile App Development",
+ title: 'Mobile App Development',
skills: [
- "android",
- "flutter",
- "dart",
- "kotlin",
- "nativescript",
- "xamarin",
- "reactnative",
- "ionic",
- "apachecordova",
+ 'android',
+ 'flutter',
+ 'dart',
+ 'kotlin',
+ 'nativescript',
+ 'xamarin',
+ 'reactnative',
+ 'ionic',
+ 'apachecordova',
],
},
ai: {
- title: "AI/ML",
- skills: [
- "tensorflow",
- "pytorch",
- "pandas",
- "seaborn",
- "opencv",
- "scikit_learn",
- ],
+ title: 'AI/ML',
+ skills: ['tensorflow', 'pytorch', 'pandas', 'seaborn', 'opencv', 'scikit_learn'],
},
database: {
- title: "Database",
+ title: 'Database',
skills: [
- "mongodb",
- "mysql",
- "postgresql",
- "redis",
- "oracle",
- "cassandra",
- "couchdb",
- "hive",
- "realm",
- "mariadb",
- "cockroachdb",
- "elasticsearch",
- "sqlite",
- "mssql",
+ 'mongodb',
+ 'mysql',
+ 'postgresql',
+ 'redis',
+ 'oracle',
+ 'cassandra',
+ 'couchdb',
+ 'hive',
+ 'realm',
+ 'mariadb',
+ 'cockroachdb',
+ 'elasticsearch',
+ 'sqlite',
+ 'mssql',
],
},
data_visualization: {
- title: "Data Visualization",
- skills: ["d3js", "chartjs", "canvasjs", "kibana", "grafana"],
+ title: 'Data Visualization',
+ skills: ['d3js', 'chartjs', 'canvasjs', 'kibana', 'grafana'],
},
devops: {
- title: "Devops",
- skills: [
- "aws",
- "docker",
- "jenkins",
- "gcp",
- "kubernetes",
- "bash",
- "azure",
- "vagrant",
- "circleci",
- "travisci",
- ],
+ title: 'Devops',
+ skills: ['aws', 'docker', 'jenkins', 'gcp', 'kubernetes', 'bash', 'azure', 'vagrant', 'circleci', 'travisci'],
},
baas: {
- title: "Backend as a Service(BaaS)",
- skills: ["firebase", "appwrite", "amplify", "heroku"],
+ title: 'Backend as a Service(BaaS)',
+ skills: ['firebase', 'appwrite', 'amplify', 'heroku'],
},
framework: {
- title: "Framework",
- skills: [
- "django",
- "dotnet",
- "electron",
- "symfony",
- "laravel",
- "codeigniter",
- "rails",
- "flask",
- "quasar",
- ],
+ title: 'Framework',
+ skills: ['django', 'dotnet', 'electron', 'symfony', 'laravel', 'codeigniter', 'rails', 'flask', 'quasar'],
},
testing: {
- title: "Testing",
- skills: [
- "cypress",
- "selenium",
- "jest",
- "mocha",
- "puppeteer",
- "karma",
- "jasmine",
- ],
+ title: 'Testing',
+ skills: ['cypress', 'selenium', 'jest', 'mocha', 'puppeteer', 'karma', 'jasmine'],
},
software: {
- title: "Software",
- skills: [
- "illustrator",
- "photoshop",
- "xd",
- "figma",
- "blender",
- "sketch",
- "invision",
- "framer",
- "matlab",
- "postman",
- ],
+ title: 'Software',
+ skills: ['illustrator', 'photoshop', 'xd', 'figma', 'blender', 'sketch', 'invision', 'framer', 'matlab', 'postman'],
},
static_site_generator: {
- title: "Static Site Generators",
+ title: 'Static Site Generators',
skills: [
- "gatsby",
- "gridsome",
- "hugo",
- "jekyll",
- "nextjs",
- "nuxtjs",
- "11ty",
- "scully",
- "sculpin",
- "sapper",
- "vuepress",
- "hexo",
- "middleman",
+ 'gatsby',
+ 'gridsome',
+ 'hugo',
+ 'jekyll',
+ 'nextjs',
+ 'nuxtjs',
+ '11ty',
+ 'scully',
+ 'sculpin',
+ 'sapper',
+ 'vuepress',
+ 'hexo',
+ 'middleman',
],
},
game_engines: {
- title: "Game Engines",
- skills: ["unity", "unreal"],
+ title: 'Game Engines',
+ skills: ['unity', 'unreal'],
},
automation: {
- title: "Automation",
- skills: ["zapier", "ifttt"],
+ title: 'Automation',
+ skills: ['zapier', 'ifttt'],
},
other: {
- title: "Other",
- skills: ["linux", "git", "arduino"],
+ title: 'Other',
+ skills: ['linux', 'git', 'arduino'],
},
-}
+};
const icons = {
- vuejs:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/vuejs/vuejs-original-wordmark.svg",
- react:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/react/react-original-wordmark.svg",
+ vuejs: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/vuejs/vuejs-original-wordmark.svg',
+ react: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/react/react-original-wordmark.svg',
angularjs:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/angularjs/angularjs-original-wordmark.svg",
- angular: "https://angular.io/assets/images/logos/angular/angular.svg",
+ 'https://raw.githubusercontent.com/devicons/devicon/master/icons/angularjs/angularjs-original-wordmark.svg',
+ angular: 'https://angular.io/assets/images/logos/angular/angular.svg',
aws:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/amazonwebservices/amazonwebservices-original-wordmark.svg",
- android:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/android/android-original-wordmark.svg",
- arduino: "https://cdn.worldvectorlogo.com/logos/arduino-1.svg",
+ 'https://raw.githubusercontent.com/devicons/devicon/master/icons/amazonwebservices/amazonwebservices-original-wordmark.svg',
+ android: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/android/android-original-wordmark.svg',
+ arduino: 'https://cdn.worldvectorlogo.com/logos/arduino-1.svg',
backbonejs:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/backbonejs/backbonejs-original-wordmark.svg",
- bootstrap:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/bootstrap/bootstrap-plain-wordmark.svg",
- c:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/c/c-original.svg",
- canvasjs:
- "https://raw.githubusercontent.com/Hardik0307/Hardik0307/master/assets/canvasjs-charts.svg",
+ 'https://raw.githubusercontent.com/devicons/devicon/master/icons/backbonejs/backbonejs-original-wordmark.svg',
+ bootstrap: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/bootstrap/bootstrap-plain-wordmark.svg',
+ c: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/c/c-original.svg',
+ canvasjs: 'https://raw.githubusercontent.com/Hardik0307/Hardik0307/master/assets/canvasjs-charts.svg',
coffeescript:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/coffeescript/coffeescript-original-wordmark.svg",
- codeigniter: "https://cdn.worldvectorlogo.com/logos/codeigniter.svg",
- cplusplus:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/cplusplus/cplusplus-original.svg",
- css3:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/css3/css3-original-wordmark.svg",
- csharp:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/csharp/csharp-original.svg",
- d3js:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/d3js/d3js-original.svg",
- django:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/django/django-original.svg",
- docker:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/docker/docker-original-wordmark.svg",
- dotnet:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/dot-net/dot-net-original-wordmark.svg",
- electron:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/electron/electron-original.svg",
- express:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/express/express-original-wordmark.svg",
- go:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/go/go-original.svg",
- graphql: "https://www.vectorlogo.zone/logos/graphql/graphql-icon.svg",
- gulp:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/gulp/gulp-plain.svg",
- html5:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/html5/html5-original-wordmark.svg",
- hugo: "https://api.iconify.design/logos-hugo.svg",
- java:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/java/java-original.svg",
- javascript:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/javascript/javascript-original.svg",
- ionic: "https://upload.wikimedia.org/wikipedia/commons/d/d1/Ionic_Logo.svg",
- laravel:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/laravel/laravel-plain-wordmark.svg",
- meteor:
- "https://devicons.github.io/devicon/devicon.git/icons/meteor/meteor-original-wordmark.svg",
- mongodb:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/mongodb/mongodb-original-wordmark.svg",
- mysql:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/mysql/mysql-original-wordmark.svg",
- nestjs:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/nestjs/nestjs-plain.svg",
- nginx:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/nginx/nginx-original.svg",
- nodejs:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/nodejs/nodejs-original-wordmark.svg",
- openresty: "https://openresty.org/images/logo.png",
- oracle:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/oracle/oracle-original.svg",
- photoshop:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/photoshop/photoshop-line.svg",
- xd: "https://cdn.worldvectorlogo.com/logos/adobe-xd.svg",
- php:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/php/php-original.svg",
- perl: "https://api.iconify.design/logos-perl.svg",
+ 'https://raw.githubusercontent.com/devicons/devicon/master/icons/coffeescript/coffeescript-original-wordmark.svg',
+ codeigniter: 'https://cdn.worldvectorlogo.com/logos/codeigniter.svg',
+ cplusplus: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/cplusplus/cplusplus-original.svg',
+ css3: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/css3/css3-original-wordmark.svg',
+ csharp: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/csharp/csharp-original.svg',
+ d3js: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/d3js/d3js-original.svg',
+ django: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/django/django-original.svg',
+ docker: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/docker/docker-original-wordmark.svg',
+ dotnet: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/dot-net/dot-net-original-wordmark.svg',
+ electron: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/electron/electron-original.svg',
+ express: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/express/express-original-wordmark.svg',
+ go: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/go/go-original.svg',
+ graphql: 'https://www.vectorlogo.zone/logos/graphql/graphql-icon.svg',
+ gulp: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/gulp/gulp-plain.svg',
+ html5: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/html5/html5-original-wordmark.svg',
+ hugo: 'https://api.iconify.design/logos-hugo.svg',
+ java: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/java/java-original.svg',
+ javascript: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/javascript/javascript-original.svg',
+ ionic: 'https://upload.wikimedia.org/wikipedia/commons/d/d1/Ionic_Logo.svg',
+ laravel: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/laravel/laravel-plain-wordmark.svg',
+ meteor: 'https://devicons.github.io/devicon/devicon.git/icons/meteor/meteor-original-wordmark.svg',
+ mongodb: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/mongodb/mongodb-original-wordmark.svg',
+ mysql: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/mysql/mysql-original-wordmark.svg',
+ nestjs: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/nestjs/nestjs-plain.svg',
+ nginx: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/nginx/nginx-original.svg',
+ nodejs: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/nodejs/nodejs-original-wordmark.svg',
+ openresty: 'https://openresty.org/images/logo.png',
+ oracle: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/oracle/oracle-original.svg',
+ photoshop: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/photoshop/photoshop-line.svg',
+ xd: 'https://cdn.worldvectorlogo.com/logos/adobe-xd.svg',
+ php: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/php/php-original.svg',
+ perl: 'https://api.iconify.design/logos-perl.svg',
postgresql:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/postgresql/postgresql-original-wordmark.svg",
- python:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/python/python-original.svg",
- rails:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/rails/rails-original-wordmark.svg",
- redis:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/redis/redis-original-wordmark.svg",
- ruby:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/ruby/ruby-original.svg",
- rust:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/rust/rust-plain.svg",
- sass:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/sass/sass-original.svg",
- scala:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/scala/scala-original.svg",
- solidworks: "https://cdn.worldvectorlogo.com/logos/solidworks.svg",
- symfony: "https://symfony.com/logos/symfony_black_03.svg",
- spring: "https://www.vectorlogo.zone/logos/springio/springio-icon.svg",
- swift:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/swift/swift-original.svg",
- typescript:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/typescript/typescript-original.svg",
- linux:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/linux/linux-original.svg",
- redux:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/redux/redux-original.svg",
+ 'https://raw.githubusercontent.com/devicons/devicon/master/icons/postgresql/postgresql-original-wordmark.svg',
+ python: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/python/python-original.svg',
+ rails: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/rails/rails-original-wordmark.svg',
+ redis: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/redis/redis-original-wordmark.svg',
+ ruby: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/ruby/ruby-original.svg',
+ rust: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/rust/rust-plain.svg',
+ sass: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/sass/sass-original.svg',
+ scala: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/scala/scala-original.svg',
+ solidworks: 'https://cdn.worldvectorlogo.com/logos/solidworks.svg',
+ symfony: 'https://symfony.com/logos/symfony_black_03.svg',
+ spring: 'https://www.vectorlogo.zone/logos/springio/springio-icon.svg',
+ swift: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/swift/swift-original.svg',
+ typescript: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/typescript/typescript-original.svg',
+ linux: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/linux/linux-original.svg',
+ redux: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/redux/redux-original.svg',
webpack:
- "https://raw.githubusercontent.com/devicons/devicon/d00d0969292a6569d45b06d3f350f463a0107b0d/icons/webpack/webpack-original-wordmark.svg",
- flutter: "https://www.vectorlogo.zone/logos/flutterio/flutterio-icon.svg",
- dart: "https://www.vectorlogo.zone/logos/dartlang/dartlang-icon.svg",
- kotlin: "https://www.vectorlogo.zone/logos/kotlinlang/kotlinlang-icon.svg",
- tensorflow:
- "https://www.vectorlogo.zone/logos/tensorflow/tensorflow-icon.svg",
- chartjs: "https://www.chartjs.org/media/logo-title.svg",
- jenkins: "https://www.vectorlogo.zone/logos/jenkins/jenkins-icon.svg",
- gcp: "https://www.vectorlogo.zone/logos/google_cloud/google_cloud-icon.svg",
- kubernetes:
- "https://www.vectorlogo.zone/logos/kubernetes/kubernetes-icon.svg",
- azure:
- "https://www.vectorlogo.zone/logos/microsoft_azure/microsoft_azure-icon.svg",
- git: "https://www.vectorlogo.zone/logos/git-scm/git-scm-icon.svg",
- kafka: "https://www.vectorlogo.zone/logos/apache_kafka/apache_kafka-icon.svg",
- solr: "https://www.vectorlogo.zone/logos/apache_solr/apache_solr-icon.svg",
- cassandra:
- "https://www.vectorlogo.zone/logos/apache_cassandra/apache_cassandra-icon.svg",
- rabbitMQ: "https://www.vectorlogo.zone/logos/rabbitmq/rabbitmq-icon.svg",
- hadoop:
- "https://www.vectorlogo.zone/logos/apache_hadoop/apache_hadoop-icon.svg",
- bash: "https://www.vectorlogo.zone/logos/gnu_bash/gnu_bash-icon.svg",
- pytorch: "https://www.vectorlogo.zone/logos/pytorch/pytorch-icon.svg",
+ 'https://raw.githubusercontent.com/devicons/devicon/d00d0969292a6569d45b06d3f350f463a0107b0d/icons/webpack/webpack-original-wordmark.svg',
+ flutter: 'https://www.vectorlogo.zone/logos/flutterio/flutterio-icon.svg',
+ dart: 'https://www.vectorlogo.zone/logos/dartlang/dartlang-icon.svg',
+ kotlin: 'https://www.vectorlogo.zone/logos/kotlinlang/kotlinlang-icon.svg',
+ tensorflow: 'https://www.vectorlogo.zone/logos/tensorflow/tensorflow-icon.svg',
+ chartjs: 'https://www.chartjs.org/media/logo-title.svg',
+ jenkins: 'https://www.vectorlogo.zone/logos/jenkins/jenkins-icon.svg',
+ gcp: 'https://www.vectorlogo.zone/logos/google_cloud/google_cloud-icon.svg',
+ kubernetes: 'https://www.vectorlogo.zone/logos/kubernetes/kubernetes-icon.svg',
+ azure: 'https://www.vectorlogo.zone/logos/microsoft_azure/microsoft_azure-icon.svg',
+ git: 'https://www.vectorlogo.zone/logos/git-scm/git-scm-icon.svg',
+ kafka: 'https://www.vectorlogo.zone/logos/apache_kafka/apache_kafka-icon.svg',
+ solr: 'https://www.vectorlogo.zone/logos/apache_solr/apache_solr-icon.svg',
+ cassandra: 'https://www.vectorlogo.zone/logos/apache_cassandra/apache_cassandra-icon.svg',
+ rabbitMQ: 'https://www.vectorlogo.zone/logos/rabbitmq/rabbitmq-icon.svg',
+ hadoop: 'https://www.vectorlogo.zone/logos/apache_hadoop/apache_hadoop-icon.svg',
+ bash: 'https://www.vectorlogo.zone/logos/gnu_bash/gnu_bash-icon.svg',
+ pytorch: 'https://www.vectorlogo.zone/logos/pytorch/pytorch-icon.svg',
pandas:
- "https://raw.githubusercontent.com/devicons/devicon/2ae2a900d2f041da66e950e4d48052658d850630/icons/pandas/pandas-original.svg",
- seaborn: "https://seaborn.pydata.org/_images/logo-mark-lightbg.svg",
- opencv: "https://www.vectorlogo.zone/logos/opencv/opencv-icon.svg",
- illustrator:
- "https://www.vectorlogo.zone/logos/adobe_illustrator/adobe_illustrator-icon.svg",
- figma: "https://www.vectorlogo.zone/logos/figma/figma-icon.svg",
- blender:
- "https://download.blender.org/branding/community/blender_community_badge_white.svg",
- babel: "https://www.vectorlogo.zone/logos/babeljs/babeljs-icon.svg",
- sketch: "https://www.vectorlogo.zone/logos/sketchapp/sketchapp-icon.svg",
- flask: "https://www.vectorlogo.zone/logos/pocoo_flask/pocoo_flask-icon.svg",
+ 'https://raw.githubusercontent.com/devicons/devicon/2ae2a900d2f041da66e950e4d48052658d850630/icons/pandas/pandas-original.svg',
+ seaborn: 'https://seaborn.pydata.org/_images/logo-mark-lightbg.svg',
+ opencv: 'https://www.vectorlogo.zone/logos/opencv/opencv-icon.svg',
+ illustrator: 'https://www.vectorlogo.zone/logos/adobe_illustrator/adobe_illustrator-icon.svg',
+ figma: 'https://www.vectorlogo.zone/logos/figma/figma-icon.svg',
+ blender: 'https://download.blender.org/branding/community/blender_community_badge_white.svg',
+ babel: 'https://www.vectorlogo.zone/logos/babeljs/babeljs-icon.svg',
+ sketch: 'https://www.vectorlogo.zone/logos/sketchapp/sketchapp-icon.svg',
+ flask: 'https://www.vectorlogo.zone/logos/pocoo_flask/pocoo_flask-icon.svg',
nativescript:
- "https://raw.githubusercontent.com/detain/svg-logos/780f25886640cef088af994181646db2f6b1a3f8/svg/nativescript.svg",
+ 'https://raw.githubusercontent.com/detain/svg-logos/780f25886640cef088af994181646db2f6b1a3f8/svg/nativescript.svg',
xamarin:
- "https://raw.githubusercontent.com/detain/svg-logos/780f25886640cef088af994181646db2f6b1a3f8/svg/xamarin.svg",
- vagrant: "https://www.vectorlogo.zone/logos/vagrantup/vagrantup-icon.svg",
- tailwind:
- "https://www.vectorlogo.zone/logos/tailwindcss/tailwindcss-icon.svg",
+ 'https://raw.githubusercontent.com/detain/svg-logos/780f25886640cef088af994181646db2f6b1a3f8/svg/xamarin.svg',
+ vagrant: 'https://www.vectorlogo.zone/logos/vagrantup/vagrantup-icon.svg',
+ tailwind: 'https://www.vectorlogo.zone/logos/tailwindcss/tailwindcss-icon.svg',
materialize:
- "https://raw.githubusercontent.com/prplx/svg-logos/5585531d45d294869c4eaab4d7cf2e9c167710a9/svg/materialize.svg",
- invision:
- "https://www.vectorlogo.zone/logos/invisionapp/invisionapp-icon.svg",
- framer: "https://www.vectorlogo.zone/logos/framer/framer-icon.svg",
- bulma:
- "https://raw.githubusercontent.com/gilbarbara/logos/804dc257b59e144eaca5bc6ffd16949752c6f789/logos/bulma.svg",
+ 'https://raw.githubusercontent.com/prplx/svg-logos/5585531d45d294869c4eaab4d7cf2e9c167710a9/svg/materialize.svg',
+ invision: 'https://www.vectorlogo.zone/logos/invisionapp/invisionapp-icon.svg',
+ framer: 'https://www.vectorlogo.zone/logos/framer/framer-icon.svg',
+ bulma: 'https://raw.githubusercontent.com/gilbarbara/logos/804dc257b59e144eaca5bc6ffd16949752c6f789/logos/bulma.svg',
couchdb:
- "https://raw.githubusercontent.com/devicons/devicon/0d6c64dbbf311879f7d563bfc3ccf559f9ed111c/icons/couchdb/couchdb-original.svg",
- firebase: "https://www.vectorlogo.zone/logos/firebase/firebase-icon.svg",
- amplify: "https://docs.amplify.aws/assets/logo-dark.svg",
- hive: "https://www.vectorlogo.zone/logos/apache_hive/apache_hive-icon.svg",
+ 'https://raw.githubusercontent.com/devicons/devicon/0d6c64dbbf311879f7d563bfc3ccf559f9ed111c/icons/couchdb/couchdb-original.svg',
+ firebase: 'https://www.vectorlogo.zone/logos/firebase/firebase-icon.svg',
+ amplify: 'https://docs.amplify.aws/assets/logo-dark.svg',
+ hive: 'https://www.vectorlogo.zone/logos/apache_hive/apache_hive-icon.svg',
realm:
- "https://raw.githubusercontent.com/bestofjs/bestofjs-webui/8665e8c267a0215f3159df28b33c365198101df5/public/logos/realm.svg",
- gatsby: "https://www.vectorlogo.zone/logos/gatsbyjs/gatsbyjs-icon.svg",
- gridsome: "https://www.vectorlogo.zone/logos/gridsome/gridsome-icon.svg",
- nuxtjs: "https://www.vectorlogo.zone/logos/nuxtjs/nuxtjs-icon.svg",
- jekyll: "https://www.vectorlogo.zone/logos/jekyllrb/jekyllrb-icon.svg",
- nextjs: "https://cdn.worldvectorlogo.com/logos/nextjs-2.svg",
- reactnative: "https://reactnative.dev/img/header_logo.svg",
- mariadb: "https://www.vectorlogo.zone/logos/mariadb/mariadb-icon.svg",
- cockroachdb: "https://cdn.worldvectorlogo.com/logos/cockroachdb.svg",
- objectivec:
- "https://www.vectorlogo.zone/logos/apple_objectivec/apple_objectivec-icon.svg",
- clojure:
- "https://upload.wikimedia.org/wikipedia/commons/5/5d/Clojure_logo.svg",
- haskell:
- "https://upload.wikimedia.org/wikipedia/commons/1/1c/Haskell-Logo.svg",
- svelte: "https://upload.wikimedia.org/wikipedia/commons/1/1b/Svelte_Logo.svg",
- vuetify: "https://bestofjs.org/logos/vuetify.svg",
- pug: "https://cdn.worldvectorlogo.com/logos/pug.svg",
- mocha: "https://www.vectorlogo.zone/logos/mochajs/mochajs-icon.svg",
- jest: "https://www.vectorlogo.zone/logos/jestjsio/jestjsio-icon.svg",
+ 'https://raw.githubusercontent.com/bestofjs/bestofjs-webui/8665e8c267a0215f3159df28b33c365198101df5/public/logos/realm.svg',
+ gatsby: 'https://www.vectorlogo.zone/logos/gatsbyjs/gatsbyjs-icon.svg',
+ gridsome: 'https://www.vectorlogo.zone/logos/gridsome/gridsome-icon.svg',
+ nuxtjs: 'https://www.vectorlogo.zone/logos/nuxtjs/nuxtjs-icon.svg',
+ jekyll: 'https://www.vectorlogo.zone/logos/jekyllrb/jekyllrb-icon.svg',
+ nextjs: 'https://cdn.worldvectorlogo.com/logos/nextjs-2.svg',
+ reactnative: 'https://reactnative.dev/img/header_logo.svg',
+ mariadb: 'https://www.vectorlogo.zone/logos/mariadb/mariadb-icon.svg',
+ cockroachdb: 'https://cdn.worldvectorlogo.com/logos/cockroachdb.svg',
+ objectivec: 'https://www.vectorlogo.zone/logos/apple_objectivec/apple_objectivec-icon.svg',
+ clojure: 'https://upload.wikimedia.org/wikipedia/commons/5/5d/Clojure_logo.svg',
+ haskell: 'https://upload.wikimedia.org/wikipedia/commons/1/1c/Haskell-Logo.svg',
+ svelte: 'https://upload.wikimedia.org/wikipedia/commons/1/1b/Svelte_Logo.svg',
+ vuetify: 'https://bestofjs.org/logos/vuetify.svg',
+ pug: 'https://cdn.worldvectorlogo.com/logos/pug.svg',
+ mocha: 'https://www.vectorlogo.zone/logos/mochajs/mochajs-icon.svg',
+ jest: 'https://www.vectorlogo.zone/logos/jestjsio/jestjsio-icon.svg',
cypress:
- "https://raw.githubusercontent.com/simple-icons/simple-icons/6e46ec1fc23b60c8fd0d2f2ff46db82e16dbd75f/icons/cypress.svg",
+ 'https://raw.githubusercontent.com/simple-icons/simple-icons/6e46ec1fc23b60c8fd0d2f2ff46db82e16dbd75f/icons/cypress.svg',
selenium:
- "https://raw.githubusercontent.com/detain/svg-logos/780f25886640cef088af994181646db2f6b1a3f8/svg/selenium-logo.svg",
- puppeteer: "https://www.vectorlogo.zone/logos/pptrdev/pptrdev-official.svg",
- karma:
- "https://raw.githubusercontent.com/detain/svg-logos/780f25886640cef088af994181646db2f6b1a3f8/svg/karma.svg",
- jasmine: "https://www.vectorlogo.zone/logos/jasmine/jasmine-icon.svg",
- gtk: "https://upload.wikimedia.org/wikipedia/commons/7/71/GTK_logo.svg",
- qt: "https://upload.wikimedia.org/wikipedia/commons/0/0b/Qt_logo_2016.svg",
- wx_widgets:
- "https://upload.wikimedia.org/wikipedia/commons/b/bb/WxWidgets.svg",
- ember:
- "https://raw.githubusercontent.com/devicons/devicon/master/icons/ember/ember-original-wordmark.svg",
- scikit_learn:
- "https://upload.wikimedia.org/wikipedia/commons/0/05/Scikit_learn_logo_small.svg",
- quasar: "https://cdn.quasar.dev/logo/svg/quasar-logo.svg",
- kibana:
- "https://www.vectorlogo.zone/logos/elasticco_kibana/elasticco_kibana-icon.svg",
- grafana: "https://www.vectorlogo.zone/logos/grafana/grafana-icon.svg",
- elasticsearch: "https://www.vectorlogo.zone/logos/elastic/elastic-icon.svg",
- circleci: "https://www.vectorlogo.zone/logos/circleci/circleci-icon.svg",
- scully:
- "https://raw.githubusercontent.com/scullyio/scully/main/assets/logos/SVG/scullyio-icon.svg",
- "11ty":
- "https://gist.githubusercontent.com/vivek32ta/c7f7bf583c1fb1c58d89301ea40f37fd/raw/f4c85cce5790758286b8f155ef9a177710b995df/11ty.svg",
+ 'https://raw.githubusercontent.com/detain/svg-logos/780f25886640cef088af994181646db2f6b1a3f8/svg/selenium-logo.svg',
+ puppeteer: 'https://www.vectorlogo.zone/logos/pptrdev/pptrdev-official.svg',
+ karma: 'https://raw.githubusercontent.com/detain/svg-logos/780f25886640cef088af994181646db2f6b1a3f8/svg/karma.svg',
+ jasmine: 'https://www.vectorlogo.zone/logos/jasmine/jasmine-icon.svg',
+ gtk: 'https://upload.wikimedia.org/wikipedia/commons/7/71/GTK_logo.svg',
+ qt: 'https://upload.wikimedia.org/wikipedia/commons/0/0b/Qt_logo_2016.svg',
+ wx_widgets: 'https://upload.wikimedia.org/wikipedia/commons/b/bb/WxWidgets.svg',
+ ember: 'https://raw.githubusercontent.com/devicons/devicon/master/icons/ember/ember-original-wordmark.svg',
+ scikit_learn: 'https://upload.wikimedia.org/wikipedia/commons/0/05/Scikit_learn_logo_small.svg',
+ quasar: 'https://cdn.quasar.dev/logo/svg/quasar-logo.svg',
+ kibana: 'https://www.vectorlogo.zone/logos/elasticco_kibana/elasticco_kibana-icon.svg',
+ grafana: 'https://www.vectorlogo.zone/logos/grafana/grafana-icon.svg',
+ elasticsearch: 'https://www.vectorlogo.zone/logos/elastic/elastic-icon.svg',
+ circleci: 'https://www.vectorlogo.zone/logos/circleci/circleci-icon.svg',
+ scully: 'https://raw.githubusercontent.com/scullyio/scully/main/assets/logos/SVG/scullyio-icon.svg',
+ '11ty':
+ 'https://gist.githubusercontent.com/vivek32ta/c7f7bf583c1fb1c58d89301ea40f37fd/raw/f4c85cce5790758286b8f155ef9a177710b995df/11ty.svg',
sculpin:
- "https://gist.githubusercontent.com/vivek32ta/c7f7bf583c1fb1c58d89301ea40f37fd/raw/1782aef8672484698c0dd407f900c4a329ed5bc4/sculpin.svg",
- sapper:
- "https://raw.githubusercontent.com/bestofjs/bestofjs-webui/master/public/logos/sapper.svg",
+ 'https://gist.githubusercontent.com/vivek32ta/c7f7bf583c1fb1c58d89301ea40f37fd/raw/1782aef8672484698c0dd407f900c4a329ed5bc4/sculpin.svg',
+ sapper: 'https://raw.githubusercontent.com/bestofjs/bestofjs-webui/master/public/logos/sapper.svg',
vuepress:
- "https://raw.githubusercontent.com/AliasIO/wappalyzer/master/src/drivers/webextension/images/icons/VuePress.svg",
- unity: "https://www.vectorlogo.zone/logos/unity3d/unity3d-icon.svg",
+ 'https://raw.githubusercontent.com/AliasIO/wappalyzer/master/src/drivers/webextension/images/icons/VuePress.svg',
+ unity: 'https://www.vectorlogo.zone/logos/unity3d/unity3d-icon.svg',
unreal:
- "https://raw.githubusercontent.com/kenangundogan/fontisto/036b7eca71aab1bef8e6a0518f7329f13ed62f6b/icons/svg/brand/unreal-engine.svg",
- elixir: "https://www.vectorlogo.zone/logos/elixir-lang/elixir-lang-icon.svg",
- heroku: "https://www.vectorlogo.zone/logos/heroku/heroku-icon.svg",
- appwrite: "https://www.vectorlogo.zone/logos/appwriteio/appwriteio-icon.svg",
- hexo: "https://www.vectorlogo.zone/logos/hexoio/hexoio-icon.svg",
- travisci: "https://www.vectorlogo.zone/logos/travis-ci/travis-ci-icon.svg",
- apachecordova:
- "https://www.vectorlogo.zone/logos/apache_cordova/apache_cordova-icon.svg",
- zapier: "https://www.vectorlogo.zone/logos/zapier/zapier-icon.svg",
- ifttt: "https://www.vectorlogo.zone/logos/ifttt/ifttt-ar21.svg",
- postman: "https://www.vectorlogo.zone/logos/getpostman/getpostman-icon.svg",
- erlang: "https://www.vectorlogo.zone/logos/erlang/erlang-official.svg",
- nim: "https://www.vectorlogo.zone/logos/nim-lang/nim-lang-icon.svg",
- sqlite: "https://www.vectorlogo.zone/logos/sqlite/sqlite-icon.svg",
- mssql: "https://www.svgrepo.com/show/303229/microsoft-sql-server-logo.svg",
+ 'https://raw.githubusercontent.com/kenangundogan/fontisto/036b7eca71aab1bef8e6a0518f7329f13ed62f6b/icons/svg/brand/unreal-engine.svg',
+ elixir: 'https://www.vectorlogo.zone/logos/elixir-lang/elixir-lang-icon.svg',
+ heroku: 'https://www.vectorlogo.zone/logos/heroku/heroku-icon.svg',
+ appwrite: 'https://www.vectorlogo.zone/logos/appwriteio/appwriteio-icon.svg',
+ hexo: 'https://www.vectorlogo.zone/logos/hexoio/hexoio-icon.svg',
+ travisci: 'https://www.vectorlogo.zone/logos/travis-ci/travis-ci-icon.svg',
+ apachecordova: 'https://www.vectorlogo.zone/logos/apache_cordova/apache_cordova-icon.svg',
+ zapier: 'https://www.vectorlogo.zone/logos/zapier/zapier-icon.svg',
+ ifttt: 'https://www.vectorlogo.zone/logos/ifttt/ifttt-ar21.svg',
+ postman: 'https://www.vectorlogo.zone/logos/getpostman/getpostman-icon.svg',
+ erlang: 'https://www.vectorlogo.zone/logos/erlang/erlang-official.svg',
+ nim: 'https://www.vectorlogo.zone/logos/nim-lang/nim-lang-icon.svg',
+ sqlite: 'https://www.vectorlogo.zone/logos/sqlite/sqlite-icon.svg',
+ mssql: 'https://www.svgrepo.com/show/303229/microsoft-sql-server-logo.svg',
middleman:
- "https://raw.githubusercontent.com/leungwensen/svg-icon/b84b3f3a3da329b7c1d02346865f8e98beb05413/dist/svg/logos/middleman.svg",
- matlab: "https://upload.wikimedia.org/wikipedia/commons/2/21/Matlab_Logo.png",
-}
+ 'https://raw.githubusercontent.com/leungwensen/svg-icon/b84b3f3a3da329b7c1d02346865f8e98beb05413/dist/svg/logos/middleman.svg',
+ matlab: 'https://upload.wikimedia.org/wikipedia/commons/2/21/Matlab_Logo.png',
+};
const skillWebsites = {
- arduino: "https://www.arduino.cc/",
- solidworks: "https://www.solidworks.com/",
- vuejs: "https://vuejs.org/",
- react: "https://reactjs.org/",
- angularjs: "https://angular.io",
- angular: "https://angular.io",
- aws: "https://aws.amazon.com",
- android: "https://developer.android.com",
- backbonejs: "https://backbonejs.org",
- bootstrap: "https://getbootstrap.com",
- c: "https://www.cprogramming.com/",
- canvasjs: "https://canvasjs.com",
- coffeescript: "https://offeescript.org",
- codeigniter: "https://codeigniter.com",
- cplusplus: "https://www.w3schools.com/cpp/",
- css3: "https://www.w3schools.com/css/",
- csharp: "https://www.w3schools.com/cs/",
- d3js: "https://d3js.org/",
- django: "https://www.djangoproject.com/",
- docker: "https://www.docker.com/",
- dotnet: "https://dotnet.microsoft.com/",
- electron: "https://www.electronjs.org",
- express: "https://expressjs.com",
- go: "https://golang.org",
- graphql: "https://graphql.org",
- gulp: "https://gulpjs.com",
- html5: "https://www.w3.org/html/",
- hugo: "https://gohugo.io/",
- java: "https://www.java.com",
- javascript: "https://developer.mozilla.org/en-US/docs/Web/JavaScript",
- ionic: "https://ionicframework.com",
- laravel: "https://laravel.com/",
- matlab: "https://www.mathworks.com/",
- meteor: "https://www.meteor.com/",
- mongodb: "https://www.mongodb.com/",
- mysql: "https://www.mysql.com/",
- nestjs: "https://nestjs.com/",
- nginx: "https://www.nginx.com",
- nodejs: "https://nodejs.org",
- openresty: "https://openresty.org/",
- oracle: "https://www.oracle.com/",
- photoshop: "https://www.photoshop.com/en",
- xd: "https://www.adobe.com/products/xd.html",
- php: "https://www.php.net",
- perl: "https://www.perl.org/",
- postgresql: "https://www.postgresql.org",
- python: "https://www.python.org",
- rails: "https://rubyonrails.org",
- redis: "https://redis.io",
- ruby: "https://www.ruby-lang.org/en/",
- rust: "https://www.rust-lang.org",
- sass: "https://sass-lang.com",
- scala: "https://www.scala-lang.org",
- symfony: "https://symfony.com",
- spring: "https://spring.io/",
- swift: "https://developer.apple.com/swift/",
- typescript: "https://www.typescriptlang.org/",
- linux: "https://www.linux.org/",
- redux: "https://redux.js.org",
- webpack: "https://webpack.js.org",
- flutter: "https://flutter.dev",
- dart: "https://dart.dev",
- kotlin: "https://kotlinlang.org",
- tensorflow: "https://www.tensorflow.org",
- chartjs: "https://www.chartjs.org",
- jenkins: "https://www.jenkins.io",
- gcp: "https://cloud.google.com",
- kubernetes: "https://kubernetes.io",
- azure: "https://azure.microsoft.com/en-in/",
- git: "https://git-scm.com/",
- kafka: "https://kafka.apache.org/",
- solr: "https://lucene.apache.org/solr/",
- cassandra: "https://cassandra.apache.org/",
- rabbitMQ: "https://www.rabbitmq.com",
- hadoop: "https://hadoop.apache.org/",
- bash: "https://www.gnu.org/software/bash/",
- pytorch: "https://pytorch.org/",
- pandas: "https://pandas.pydata.org/",
- seaborn: "https://seaborn.pydata.org/",
- opencv: "https://opencv.org/",
- illustrator: "https://www.adobe.com/in/products/illustrator.html",
- figma: "https://www.figma.com/",
- blender: "https://www.blender.org/",
- babel: "https://babeljs.io/",
- sketch: "https://www.sketch.com/",
- flask: "https://flask.palletsprojects.com/",
- nativescript: "https://nativescript.org/",
- xamarin: "https://dotnet.microsoft.com/apps/xamarin",
- vagrant: "https://www.vagrantup.com/",
- tailwind: "https://tailwindcss.com/",
- materialize: "https://materializecss.com/",
- invision: "https://www.invisionapp.com/",
- framer: "https://www.framer.com/",
- bulma: "https://bulma.io/",
- couchdb: "https://couchdb.apache.org/",
- firebase: "https://firebase.google.com/",
- amplify: "https://aws.amazon.com/amplify/",
- hive: "https://hive.apache.org/",
- realm: "https://realm.io/",
- gatsby: "https://www.gatsbyjs.com/",
- gridsome: "https://gridsome.org/",
- nuxtjs: "https://nuxtjs.org/",
- jekyll: "https://jekyllrb.com/",
- nextjs: "https://nextjs.org/",
- reactnative: "https://reactnative.dev/",
- mariadb: "https://mariadb.org/",
- cockroachdb: "https://www.cockroachlabs.com/product/cockroachdb/",
+ arduino: 'https://www.arduino.cc/',
+ solidworks: 'https://www.solidworks.com/',
+ vuejs: 'https://vuejs.org/',
+ react: 'https://reactjs.org/',
+ angularjs: 'https://angular.io',
+ angular: 'https://angular.io',
+ aws: 'https://aws.amazon.com',
+ android: 'https://developer.android.com',
+ backbonejs: 'https://backbonejs.org',
+ bootstrap: 'https://getbootstrap.com',
+ c: 'https://www.cprogramming.com/',
+ canvasjs: 'https://canvasjs.com',
+ coffeescript: 'https://offeescript.org',
+ codeigniter: 'https://codeigniter.com',
+ cplusplus: 'https://www.w3schools.com/cpp/',
+ css3: 'https://www.w3schools.com/css/',
+ csharp: 'https://www.w3schools.com/cs/',
+ d3js: 'https://d3js.org/',
+ django: 'https://www.djangoproject.com/',
+ docker: 'https://www.docker.com/',
+ dotnet: 'https://dotnet.microsoft.com/',
+ electron: 'https://www.electronjs.org',
+ express: 'https://expressjs.com',
+ go: 'https://golang.org',
+ graphql: 'https://graphql.org',
+ gulp: 'https://gulpjs.com',
+ html5: 'https://www.w3.org/html/',
+ hugo: 'https://gohugo.io/',
+ java: 'https://www.java.com',
+ javascript: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript',
+ ionic: 'https://ionicframework.com',
+ laravel: 'https://laravel.com/',
+ matlab: 'https://www.mathworks.com/',
+ meteor: 'https://www.meteor.com/',
+ mongodb: 'https://www.mongodb.com/',
+ mysql: 'https://www.mysql.com/',
+ nestjs: 'https://nestjs.com/',
+ nginx: 'https://www.nginx.com',
+ nodejs: 'https://nodejs.org',
+ openresty: 'https://openresty.org/',
+ oracle: 'https://www.oracle.com/',
+ photoshop: 'https://www.photoshop.com/en',
+ xd: 'https://www.adobe.com/products/xd.html',
+ php: 'https://www.php.net',
+ perl: 'https://www.perl.org/',
+ postgresql: 'https://www.postgresql.org',
+ python: 'https://www.python.org',
+ rails: 'https://rubyonrails.org',
+ redis: 'https://redis.io',
+ ruby: 'https://www.ruby-lang.org/en/',
+ rust: 'https://www.rust-lang.org',
+ sass: 'https://sass-lang.com',
+ scala: 'https://www.scala-lang.org',
+ symfony: 'https://symfony.com',
+ spring: 'https://spring.io/',
+ swift: 'https://developer.apple.com/swift/',
+ typescript: 'https://www.typescriptlang.org/',
+ linux: 'https://www.linux.org/',
+ redux: 'https://redux.js.org',
+ webpack: 'https://webpack.js.org',
+ flutter: 'https://flutter.dev',
+ dart: 'https://dart.dev',
+ kotlin: 'https://kotlinlang.org',
+ tensorflow: 'https://www.tensorflow.org',
+ chartjs: 'https://www.chartjs.org',
+ jenkins: 'https://www.jenkins.io',
+ gcp: 'https://cloud.google.com',
+ kubernetes: 'https://kubernetes.io',
+ azure: 'https://azure.microsoft.com/en-in/',
+ git: 'https://git-scm.com/',
+ kafka: 'https://kafka.apache.org/',
+ solr: 'https://lucene.apache.org/solr/',
+ cassandra: 'https://cassandra.apache.org/',
+ rabbitMQ: 'https://www.rabbitmq.com',
+ hadoop: 'https://hadoop.apache.org/',
+ bash: 'https://www.gnu.org/software/bash/',
+ pytorch: 'https://pytorch.org/',
+ pandas: 'https://pandas.pydata.org/',
+ seaborn: 'https://seaborn.pydata.org/',
+ opencv: 'https://opencv.org/',
+ illustrator: 'https://www.adobe.com/in/products/illustrator.html',
+ figma: 'https://www.figma.com/',
+ blender: 'https://www.blender.org/',
+ babel: 'https://babeljs.io/',
+ sketch: 'https://www.sketch.com/',
+ flask: 'https://flask.palletsprojects.com/',
+ nativescript: 'https://nativescript.org/',
+ xamarin: 'https://dotnet.microsoft.com/apps/xamarin',
+ vagrant: 'https://www.vagrantup.com/',
+ tailwind: 'https://tailwindcss.com/',
+ materialize: 'https://materializecss.com/',
+ invision: 'https://www.invisionapp.com/',
+ framer: 'https://www.framer.com/',
+ bulma: 'https://bulma.io/',
+ couchdb: 'https://couchdb.apache.org/',
+ firebase: 'https://firebase.google.com/',
+ amplify: 'https://aws.amazon.com/amplify/',
+ hive: 'https://hive.apache.org/',
+ realm: 'https://realm.io/',
+ gatsby: 'https://www.gatsbyjs.com/',
+ gridsome: 'https://gridsome.org/',
+ nuxtjs: 'https://nuxtjs.org/',
+ jekyll: 'https://jekyllrb.com/',
+ nextjs: 'https://nextjs.org/',
+ reactnative: 'https://reactnative.dev/',
+ mariadb: 'https://mariadb.org/',
+ cockroachdb: 'https://www.cockroachlabs.com/product/cockroachdb/',
objectivec:
- "https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html",
- clojure: "https://clojure.org/",
- haskell: "https://www.haskell.org/",
- svelte: "https://svelte.dev",
- vuetify: "https://vuetifyjs.com/en/",
- pug: "https://pugjs.org",
- mocha: "https://mochajs.org",
- jest: "https://jestjs.io",
- cypress: "https://www.cypress.io",
- selenium: "https://www.selenium.dev",
- puppeteer: "https://github.com/puppeteer/puppeteer",
- karma: "https://karma-runner.github.io/latest/index.html",
- jasmine: "https://jasmine.github.io/",
- gtk: "https://www.gtk.org/",
- qt: "https://www.qt.io/",
- wx_widgets: "https://www.wxwidgets.org/",
- ember: "https://emberjs.com/",
- scikit_learn: "https://scikit-learn.org/",
- quasar: "https://quasar.dev/",
- kibana: "https://www.elastic.co/kibana",
- grafana: "https://grafana.com",
- elasticsearch: "https://www.elastic.co",
- circleci: "https://circleci.com",
- scully: "https://scully.io/",
- sculpin: "https://sculpin.io/",
- "11ty": "https://www.11ty.dev/",
- sapper: "https://sapper.svelte.dev/",
- vuepress: "https://vuepress.vuejs.org/",
- unity: "https://unity.com/",
- unreal: "https://unrealengine.com/",
- hexo: "hexo.io/",
- heroku: "https://heroku.com",
- appwrite: "https://appwrite.io",
- zapier: "https://zapier.com",
- ifttt: "https://ifttt.com/",
- elixir: "https://elixir-lang.org",
- travisci: "https://travis-ci.org",
- apachecordova: "https://cordova.apache.org/",
- sqlite: "https://www.sqlite.org/",
- mssql: "https://www.microsoft.com/en-us/sql-server",
- postman: "https://postman.com",
- erlang: "https://www.erlang.org/",
- nim: "https://nim-lang.org/",
- middleman: "https://middlemanapp.com/",
-}
+ 'https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html',
+ clojure: 'https://clojure.org/',
+ haskell: 'https://www.haskell.org/',
+ svelte: 'https://svelte.dev',
+ vuetify: 'https://vuetifyjs.com/en/',
+ pug: 'https://pugjs.org',
+ mocha: 'https://mochajs.org',
+ jest: 'https://jestjs.io',
+ cypress: 'https://www.cypress.io',
+ selenium: 'https://www.selenium.dev',
+ puppeteer: 'https://github.com/puppeteer/puppeteer',
+ karma: 'https://karma-runner.github.io/latest/index.html',
+ jasmine: 'https://jasmine.github.io/',
+ gtk: 'https://www.gtk.org/',
+ qt: 'https://www.qt.io/',
+ wx_widgets: 'https://www.wxwidgets.org/',
+ ember: 'https://emberjs.com/',
+ scikit_learn: 'https://scikit-learn.org/',
+ quasar: 'https://quasar.dev/',
+ kibana: 'https://www.elastic.co/kibana',
+ grafana: 'https://grafana.com',
+ elasticsearch: 'https://www.elastic.co',
+ circleci: 'https://circleci.com',
+ scully: 'https://scully.io/',
+ sculpin: 'https://sculpin.io/',
+ '11ty': 'https://www.11ty.dev/',
+ sapper: 'https://sapper.svelte.dev/',
+ vuepress: 'https://vuepress.vuejs.org/',
+ unity: 'https://unity.com/',
+ unreal: 'https://unrealengine.com/',
+ hexo: 'hexo.io/',
+ heroku: 'https://heroku.com',
+ appwrite: 'https://appwrite.io',
+ zapier: 'https://zapier.com',
+ ifttt: 'https://ifttt.com/',
+ elixir: 'https://elixir-lang.org',
+ travisci: 'https://travis-ci.org',
+ apachecordova: 'https://cordova.apache.org/',
+ sqlite: 'https://www.sqlite.org/',
+ mssql: 'https://www.microsoft.com/en-us/sql-server',
+ postman: 'https://postman.com',
+ erlang: 'https://www.erlang.org/',
+ nim: 'https://nim-lang.org/',
+ middleman: 'https://middlemanapp.com/',
+};
-const initialSkillState = {}
+const initialSkillState = {};
-const skillsArray = Object.keys(categorizedSkills).map(
- key => categorizedSkills[key].skills
-)
-const skills = [].concat.apply([], skillsArray).sort()
+const skillsArray = Object.keys(categorizedSkills).map((key) => categorizedSkills[key].skills);
+const skills = [].concat.apply([], skillsArray).sort();
-skills.forEach(skill => {
- initialSkillState[skill] = false
-})
+skills.forEach((skill) => {
+ initialSkillState[skill] = false;
+});
-const categories = Object.keys(categorizedSkills)
+const categories = Object.keys(categorizedSkills);
-export {
- initialSkillState,
- icons,
- skills,
- skillWebsites,
- categorizedSkills,
- categories,
-}
+export { initialSkillState, icons, skills, skillWebsites, categorizedSkills, categories };
diff --git a/src/html.js b/src/html.js
index 9096055d..7fc591a2 100644
--- a/src/html.js
+++ b/src/html.js
@@ -1,5 +1,5 @@
-import React from "react"
-import PropTypes from "prop-types"
+import React from 'react';
+import PropTypes from 'prop-types';
export default function HTML(props) {
return (
@@ -7,10 +7,7 @@ export default function HTML(props) {
-
+
{props.headComponents}