diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 000000000..89af53aa3 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,29 @@ +{ + "extends": [ + "eslint:recommended", + "plugin:node/recommended", + "plugin:json/recommended" + ], + "parserOptions": { + "ecmaVersion": 2020 + }, + "rules": { + "indent": ["error", 2], + "max-len": ["error", { + "code": 100, + "ignoreStrings": true, + "ignoreTemplateLiterals": true, + "ignoreTrailingComments": true + }], + "node/exports-style": ["error", "module.exports"], + "node/file-extension-in-import": ["error", "always"], + "node/prefer-global/buffer": ["error", "always"], + "node/prefer-global/console": ["error", "always"], + "node/prefer-global/process": ["error", "always"], + "node/prefer-global/url-search-params": ["error", "always"], + "node/prefer-global/url": ["error", "always"], + "node/prefer-promises/dns": "error", + "node/prefer-promises/fs": "error", + "no-process-exit": [0] + } +} diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 6ff9fe1cd..14e1a8387 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -1,5 +1,3 @@ -# https://github.com/actions/labeler - name: Checks on: [pull_request_target] @@ -14,7 +12,7 @@ jobs: - name: Installing dependencies uses: borales/actions-yarn@v2.0.0 with: - cmd: install + cmd: install --ignore-engines - name: Running tests uses: borales/actions-yarn@v2.0.0 with: diff --git a/.github/workflows/publish-records.yml b/.github/workflows/publish-records.yml index e4b02e011..dca09caf6 100644 --- a/.github/workflows/publish-records.yml +++ b/.github/workflows/publish-records.yml @@ -7,20 +7,24 @@ on: jobs: publish: runs-on: ubuntu-latest - env: - CI: 1 - ENV: production - DOMAIN_USER: ${{ secrets.DOMAIN_USER }} - DOMAIN_API_KEY: ${{ secrets.DOMAIN_API_KEY }} - DOMAIN_API_HOST: ${{ secrets.DOMAIN_API_HOST }} - DOMAIN_API_PORT: ${{ secrets.DOMAIN_API_PORT }} - DOMAIN_DOMAIN: ${{ secrets.DOMAIN_DOMAIN }} steps: - uses: actions/checkout@v2 - uses: borales/actions-yarn@v2.0.0 with: - cmd: install + cmd: install --ignore-engines + - name: Running tests + uses: borales/actions-yarn@v2.0.0 + with: + cmd: test - name: Publishing records + env: + CI: 1 + ENV: production + DOMAIN_USER: ${{ secrets.DOMAIN_USER }} + DOMAIN_API_KEY: ${{ secrets.DOMAIN_API_KEY }} + DOMAIN_API_HOST: ${{ secrets.DOMAIN_API_HOST }} + DOMAIN_API_PORT: ${{ secrets.DOMAIN_API_PORT }} + DOMAIN_DOMAIN: ${{ secrets.DOMAIN_DOMAIN }} uses: borales/actions-yarn@v2.0.0 with: cmd: publish-records diff --git a/API.md b/API.md index 43bc51d64..a69ee4984 100644 --- a/API.md +++ b/API.md @@ -1,13 +1,29 @@ -# Documentation - -## How to register +# How to register * First you need to create a pull request with your `domains/my-domain.json` file * This PR will be reviewed * The changes will take effect soon after the PR gets merged * And that's it +### Simple cname record +* A github pages json file will look something like this - +```json +{ + "description": "Add some description", + "repo": "https://github.com/github-username", + "owner": { + "username": "github-username", + "email": "any@email" + }, + "record": { + "CNAME": "the-domain-you-own.com" + } +} +``` +* After the pull request is merged, configure your server (apache, nginx, whatever) to work with `subdomain.is-a.dev` + + ### For github pages users -* A github pages json file (with cname record and https redirection) will look something like this - +* A github pages json file will look something like this - ```json { "description": "Add some description", @@ -26,12 +42,13 @@ -## Domains json file +# Domains json file The way you register your own domain name is through a pull request. To register `my-domain.is-a.dev`, you need to create a `domains/my-domain.json` file +### Filename The file name must pass the following criteria - -* Must be alpha numeric with dashes as seperators +* Must be alpha-numeric in lowercase with dashes as seperators * Must be more than 2 characters long @@ -51,6 +68,18 @@ In the owner object, the fields `username` and `email` are required. You can how } ``` +If you don't wish to share your email address here, please share your twitter or any other social media account. +```json +{ + "owner": { + "username": "github-username", + "email": "", + "twitter": "twitter-handle" + }, +} +``` + + ### description Describe your domain name and your usage. This is purely for documentation purpose and is optional. @@ -67,6 +96,7 @@ Currently, only `CNAME`, `A`, `URL` record types are supported. Here's a few different use cases for the given record types - * **CNAME** +CNAME must be a host name (Eg - `something.tld`) ```json { "record": { @@ -76,6 +106,7 @@ Here's a few different use cases for the given record types - ``` * **A record** +A record must be a list of ips ```json { "record": { diff --git a/README.md b/README.md index fce687fbe..c07fc8320 100644 --- a/README.md +++ b/README.md @@ -19,19 +19,14 @@ Note: This service is currently in **beta** so expect some delays in PR merge an ## Donations -This project is a free service for developers and will stay that way. +This project is a free and open source service for developers and will stay that way. -Donations will be greatly appreciated! +Please consider donating to help me keep this running forever! Buy Me A Coffee Liberapay recurring donation button -## Report abuse -If you think someone is abusing a domain you can report it by creating an issue with the label `report-abuse`. - - - ## License This project is under the [GPL-3.0](./LICENSE) license. diff --git a/SECURITY.md b/SECURITY.md index 4ddac2b32..b382809f4 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -3,4 +3,4 @@ ## Reporting a Vulnerability You can report low severity bugs as [issues](https://github.com/is-a-dev/register/issues/new/choose) on this repo. -For higher severity vulnerabilities and bugs, kindly email them to me at [phenax5@gmail.com](mailto:phenax5@gmail.com). +For higher severity vulnerabilities and bugs, kindly email them to me at [akshay-n0@protonmail.com](mailto:akshay-n0@protonmail.com). diff --git a/domains/@.json b/domains/@.json index 36cd14e7b..60b51ee6c 100644 --- a/domains/@.json +++ b/domains/@.json @@ -5,7 +5,5 @@ "username": "phenax", "email": "phenax5@gmail.com" }, - "record": { - "URL": "http://www.is-a.dev" - } + "record": {} } diff --git a/domains/aaraam.json b/domains/aaraam.json new file mode 100644 index 000000000..a09e08e94 --- /dev/null +++ b/domains/aaraam.json @@ -0,0 +1,11 @@ +{ + "description": "This website is a link to my personal developer portfolio.", + "repo": "https://github.com/aaraam/aaraam.github.io", + "owner": { + "username": "aaraam", + "email": "aaraam.goblin@gmail.com" + }, + "record": { + "CNAME": "aaraam.github.io" + } +} \ No newline at end of file diff --git a/domains/aaron.json b/domains/aaron.json index 9778d9150..07bd90141 100644 --- a/domains/aaron.json +++ b/domains/aaron.json @@ -1,12 +1,11 @@ { - "description": "Aaron's personal developer website", - "repo": "https://github.com/aaron-harvey", - "owner": { - "username": "aaronharvey", - "email": "aaron@lolsup.com" - }, - "record": { - "CNAME": "lolsup.com", - "URL": "https://aaron.is-a.dev" - } -} + "description": "Aaron's personal developer website", + "repo": "https://github.com/aaron-harvey", + "owner": { + "username": "aaronharvey", + "email": "aaron@lolsup.com" + }, + "record": { + "CNAME": "lolsup.com" + } +} \ No newline at end of file diff --git a/domains/aashutosh.json b/domains/aashutosh.json index 2399d7be0..fd1694fef 100644 --- a/domains/aashutosh.json +++ b/domains/aashutosh.json @@ -1,11 +1,10 @@ -{ - "description": "Aashutosh Rathi's Space on Web", - "owner": { - "username": "aashutoshrathi", - "email": "me@aashutosh.dev" - }, - "record": { - "CNAME": "aashutosh.dev", - "URL": "https://aashutosh.is-a.dev" - } -} +{ + "description": "Aashutosh Rathi's Space on Web", + "owner": { + "username": "aashutoshrathi", + "email": "me@aashutosh.dev" + }, + "record": { + "CNAME": "aashutosh.dev" + } +} \ No newline at end of file diff --git a/domains/abdulrshaikh.json b/domains/abdulrshaikh.json index 94621368c..e564aa53c 100644 --- a/domains/abdulrshaikh.json +++ b/domains/abdulrshaikh.json @@ -1,12 +1,11 @@ { - "description": "Abdul's personal developer website", - "repo": "https://github.com/ariskycode/ariskycode.github.io", - "owner": { - "username": "ariskycode", - "email": "arirfanshaikh23@gmail.com" - }, - "record": { - "CNAME": "ariskycode.github.io", - "URL": "https://abdulrshaikh.is-a.dev" - } -} + "description": "Abdul's personal developer website", + "repo": "https://github.com/ariskycode/ariskycode.github.io", + "owner": { + "username": "ariskycode", + "email": "arirfanshaikh23@gmail.com" + }, + "record": { + "CNAME": "ariskycode.github.io" + } +} \ No newline at end of file diff --git a/domains/abhay.json b/domains/abhay.json index 1e722675c..3d4575e51 100644 --- a/domains/abhay.json +++ b/domains/abhay.json @@ -6,7 +6,6 @@ "email": "returnofking04@gmail.com" }, "record": { - "CNAME": "codeinator.me", - "URL": "https://abhay.is-a.dev" + "CNAME": "codeinator.me" } } \ No newline at end of file diff --git a/domains/abhinavdalal.json b/domains/abhinavdalal.json index b6cc7b99c..f6937454e 100644 --- a/domains/abhinavdalal.json +++ b/domains/abhinavdalal.json @@ -6,7 +6,6 @@ "email": "abhinavdalal@gmail.com" }, "record": { - "CNAME": "b-om.github.io", - "URL": "https://abhinavdalal.is-a.dev" + "CNAME": "b-om.github.io" } -} +} \ No newline at end of file diff --git a/domains/abhishek.json b/domains/abhishek.json index 22545cd82..0a8fb0ec5 100644 --- a/domains/abhishek.json +++ b/domains/abhishek.json @@ -1,12 +1,11 @@ { - "description": "Abhishek's personal website", - "repo": "https://github.com/nullpointxr", - "owner": { - "username": "nullpointxr", - "email": "abhishek.sankar.in@protonmail.com" - }, - "record": { - "CNAME": "nullpointxr.github.io", - "URL": "https://abhishek.is-a.dev" - } -} + "description": "Abhishek's personal website", + "repo": "https://github.com/nullpointxr", + "owner": { + "username": "nullpointxr", + "email": "abhishek.sankar.in@protonmail.com" + }, + "record": { + "CNAME": "nullpointxr.github.io" + } +} \ No newline at end of file diff --git a/domains/abishek.json b/domains/abishek.json index 3fde17249..292ee6ab6 100644 --- a/domains/abishek.json +++ b/domains/abishek.json @@ -6,7 +6,6 @@ "email": "abigosearch@gmail.com" }, "record": { - "CNAME": "vj-abishek.github.io", - "URL": "https://abishek.is-a.dev" + "CNAME": "vj-abishek.github.io" } -} +} \ No newline at end of file diff --git a/domains/adarsh.json b/domains/adarsh.json index 4abb316bd..2963fd9ce 100644 --- a/domains/adarsh.json +++ b/domains/adarsh.json @@ -6,7 +6,6 @@ "email": "adarshguptamaurya@gmail.com" }, "record": { - "CNAME": "adarsh-portfolio.github.io", - "URL": "https://adarsh.is-a.dev" + "CNAME": "adarsh-portfolio.github.io" } -} +} \ No newline at end of file diff --git a/domains/adarshs.json b/domains/adarshs.json index 47670879b..7d5f00845 100644 --- a/domains/adarshs.json +++ b/domains/adarshs.json @@ -1,12 +1,11 @@ { - "description": "The portfolio of Adarsh S", - "repo": "https://github.com/adarshsuresh07", - "owner": { - "username": "adarshsuresh07", - "email": "adarshsuresh@cet.ac.in" - }, - "record": { - "CNAME":"adarshsuresh07.github.io", - "URL": "https://adarshs.is-a.dev" - } -} + "description": "The portfolio of Adarsh S", + "repo": "https://github.com/adarshsuresh07", + "owner": { + "username": "adarshsuresh07", + "email": "adarshsuresh@cet.ac.in" + }, + "record": { + "CNAME": "adarshsuresh07.github.io" + } +} \ No newline at end of file diff --git a/domains/adrian.json b/domains/adrian.json index d2873ec12..3515ea404 100644 --- a/domains/adrian.json +++ b/domains/adrian.json @@ -1,12 +1,11 @@ { - "description": "The awesome portfolio site for Adrian Grimm", - "repo": "https://github.com/usmcamgrimm/usmcamgrimm.github.io", - "owner": { - "username": "usmcamgrimm", - "email": "usmcamgrimm@gmail.com" - }, - "record": { - "CNAME": "usmcamgrimm.github.io", - "URL": "https://adrian.is-a.dev" - } + "description": "The awesome portfolio site for Adrian Grimm", + "repo": "https://github.com/usmcamgrimm/usmcamgrimm.github.io", + "owner": { + "username": "usmcamgrimm", + "email": "usmcamgrimm@gmail.com" + }, + "record": { + "CNAME": "usmcamgrimm.github.io" } +} \ No newline at end of file diff --git a/domains/ahmadeyamin.json b/domains/ahmadeyamin.json index 1e8007a2c..ee9c885d5 100644 --- a/domains/ahmadeyamin.json +++ b/domains/ahmadeyamin.json @@ -6,7 +6,6 @@ "email": "ahmadeyamin@gmail.com" }, "record": { - "CNAME": "ahmadeyamin.github.io", - "URL": "https://ahmadeyamin.is-a.dev" + "CNAME": "ahmadeyamin.github.io" } -} +} \ No newline at end of file diff --git a/domains/ahsan.json b/domains/ahsan.json index 00b859025..d81bea988 100644 --- a/domains/ahsan.json +++ b/domains/ahsan.json @@ -5,7 +5,6 @@ "email": "ahsan.qureshi8@gmail.com" }, "record": { - "CNAME": "www.thisisahsan.com", - "URL": "https://ahsan.is-a.dev" + "CNAME": "www.thisisahsan.com" } -} +} \ No newline at end of file diff --git a/domains/akas.json b/domains/akas.json index a0ddc0f4e..e0d0b947e 100644 --- a/domains/akas.json +++ b/domains/akas.json @@ -1,12 +1,11 @@ { "description": "Akas Portfolio", - "repo":"https://github.com/akasrai/akasrai.github.io", + "repo": "https://github.com/akasrai/akasrai.github.io", "owner": { "username": "akasrai", "email": "akasky70@gmail.com" }, "record": { - "CNAME":"akasrai.github.io", - "URL": "https://akas.is-a.dev" + "CNAME": "akasrai.github.io" } } \ No newline at end of file diff --git a/domains/akash.json b/domains/akash.json index 0fa33a8b3..304746595 100644 --- a/domains/akash.json +++ b/domains/akash.json @@ -6,7 +6,6 @@ "email": "akashsanthosh@icloud.com" }, "record": { - "CNAME": "akash-santhosh.github.io", - "URL": "https://akash.is-a.dev" + "CNAME": "akash-santhosh.github.io" } -} +} \ No newline at end of file diff --git a/domains/akshay-ashok.json b/domains/akshay-ashok.json index 132781ef9..e1d2c56c0 100644 --- a/domains/akshay-ashok.json +++ b/domains/akshay-ashok.json @@ -6,7 +6,6 @@ "email": "aks28id@gmail.com" }, "record": { - "CNAME": "akshay090.github.io", - "URL": "https://akshay-ashok.is-a.dev" + "CNAME": "akshay090.github.io" } -} +} \ No newline at end of file diff --git a/domains/akshay.json b/domains/akshay.json index b5ddaa0bb..4523d9f33 100644 --- a/domains/akshay.json +++ b/domains/akshay.json @@ -6,7 +6,6 @@ "email": "phenax5@gmail.com" }, "record": { - "CNAME": "phenax.github.io", - "URL": "https://akshay.is-a.dev" + "CNAME": "phenax.github.io" } -} +} \ No newline at end of file diff --git a/domains/alan.json b/domains/alan.json index eb0a1bd31..cc11e2015 100644 --- a/domains/alan.json +++ b/domains/alan.json @@ -1,12 +1,11 @@ { - "description": "Alan's personal developer website", - "repo": "https://github.com/schirrel", - "owner": { - "username": "schirrel", - "email": "alan@schirrel.dev" - }, - "record": { - "CNAME": "schirrel.dev", - "URL": "https://alan.is-a.dev" - } -} + "description": "Alan's personal developer website", + "repo": "https://github.com/schirrel", + "owner": { + "username": "schirrel", + "email": "alan@schirrel.dev" + }, + "record": { + "CNAME": "schirrel.dev" + } +} \ No newline at end of file diff --git a/domains/alestor123.json b/domains/alestor123.json index b9ae0804e..7d4396b78 100644 --- a/domains/alestor123.json +++ b/domains/alestor123.json @@ -1,12 +1,11 @@ { - "description": "A Mortal Web Developer With Immortal Dreams", - "repo": "https://github.com/alestor123/alestor123.github.io", - "owner": { - "username": "alestor123", - "email": "alestoraldous@gmail.com" - }, - "record": { - "CNAME": "alestor123.github.io", - "URL": "https://alestor123.is-a.dev" - } -} + "description": "A Mortal Web Developer With Immortal Dreams", + "repo": "https://github.com/alestor123/alestor123.github.io", + "owner": { + "username": "alestor123", + "email": "alestoraldous@gmail.com" + }, + "record": { + "CNAME": "alestor123.github.io" + } +} \ No newline at end of file diff --git a/domains/alex.json b/domains/alex.json index 1dcc6554b..b6a34c4b3 100644 --- a/domains/alex.json +++ b/domains/alex.json @@ -1,12 +1,11 @@ { - "description": "Alex's personal developer website", - "repo": "https://github.com/alexmorrisnz", - "owner": { - "username": "alexmorrisnz", - "email": "alex@navra.nz" - }, - "record": { - "CNAME": "alexmorris.nz", - "URL": "https://alex.is-a.dev" - } -} + "description": "Alex's personal developer website", + "repo": "https://github.com/alexmorrisnz", + "owner": { + "username": "alexmorrisnz", + "email": "alex@navra.nz" + }, + "record": { + "CNAME": "alexmorris.nz" + } +} \ No newline at end of file diff --git a/domains/alexander.json b/domains/alexander.json index 43758f6d1..3ad4e3874 100644 --- a/domains/alexander.json +++ b/domains/alexander.json @@ -6,7 +6,6 @@ "email": "alexander@alexander.dk" }, "record": { - "CNAME": "alexander.dk", - "URL": "https://alexander.is-a.dev" + "CNAME": "alexander.dk" } -} +} \ No newline at end of file diff --git a/domains/alexjoseph.json b/domains/alexjoseph.json index 01c7cc49e..b9828399a 100644 --- a/domains/alexjoseph.json +++ b/domains/alexjoseph.json @@ -6,7 +6,6 @@ "email": "aj71563@gmail.com" }, "record": { - "CNAME": "alexkjoseph.github.io", - "URL": "https://alexjoseph.is-a.dev" + "CNAME": "alexkjoseph.github.io" } -} +} \ No newline at end of file diff --git a/domains/alexlykesas.json b/domains/alexlykesas.json index 3cf45f5d0..023069a71 100644 --- a/domains/alexlykesas.json +++ b/domains/alexlykesas.json @@ -1,11 +1,11 @@ { - "description": "Alex Lykesas's personal developer website", - "repo": "https://github.com/Alexookah/alexlykesas.com", - "owner": { - "username": "alexookah", - "email": "alexlykesas@gmail.com" - }, - "record": { - "URL": "https://alexlykesas.com" - } -} + "description": "Alex Lykesas's personal developer website", + "repo": "https://github.com/Alexookah/alexlykesas.com", + "owner": { + "username": "alexookah", + "email": "alexlykesas@gmail.com" + }, + "record": { + "URL": "https://alexlykesas.com" + } +} \ No newline at end of file diff --git a/domains/allan.json b/domains/allan.json index 6ca03fa35..0abd35d66 100644 --- a/domains/allan.json +++ b/domains/allan.json @@ -6,7 +6,6 @@ "email": "abarriel@student.42.fr" }, "record": { - "CNAME": "abarriel.github.io", - "URL": "https://allan.is-a.dev" + "CNAME": "abarriel.github.io" } -} +} \ No newline at end of file diff --git a/domains/allsyed.json b/domains/allsyed.json new file mode 100644 index 000000000..2f50c42ff --- /dev/null +++ b/domains/allsyed.json @@ -0,0 +1,11 @@ +{ + "description": "Allsyed's personal website", + "repo": "https://github.com/allsyed", + "owner": { + "username": "allsyed", + "email": "allsyed@pm.me" + }, + "record": { + "CNAME": "allsyed.com" + } +} \ No newline at end of file diff --git a/domains/amal.json b/domains/amal.json index bbf4685c6..b39951781 100644 --- a/domains/amal.json +++ b/domains/amal.json @@ -1,12 +1,11 @@ { - "description": "Amal's personal developer website", - "repo": "https://github.com/amalsebs/amalsebs.github.io", - "owner": { - "username": "amalsebs", - "email": "amalsebastian48@gmail.com" - }, - "record": { - "CNAME": "amalsebs.github.io", - "URL": "https://amal.is-a.dev" - } -} + "description": "Amal's personal developer website", + "repo": "https://github.com/amalsebs/amalsebs.github.io", + "owner": { + "username": "amalsebs", + "email": "amalsebastian48@gmail.com" + }, + "record": { + "CNAME": "amalsebs.github.io" + } +} \ No newline at end of file diff --git a/domains/amalsr.json b/domains/amalsr.json new file mode 100644 index 000000000..2136eff13 --- /dev/null +++ b/domains/amalsr.json @@ -0,0 +1,11 @@ +{ + "description": "A very simple but stupid website", + "repo": "https://github.com/asr1191/asr1191.github.io", + "owner": { + "username": "asr1191", + "email": "amalsraj95@gmail.com" + }, + "record": { + "CNAME": "asr1191.github.io" + } +} \ No newline at end of file diff --git a/domains/andrew.json b/domains/andrew.json index ea141e4ae..f5a6c1f4c 100644 --- a/domains/andrew.json +++ b/domains/andrew.json @@ -6,7 +6,6 @@ "email": "hey@andrewnt.dev" }, "record": { - "CNAME": "andrewnt219.github.io", - "URL": "https://andrew.is-a.dev" + "CNAME": "andrewnt219.github.io" } -} +} \ No newline at end of file diff --git a/domains/andros.json b/domains/andros.json index 8d17a744f..995504f5d 100644 --- a/domains/andros.json +++ b/domains/andros.json @@ -9,4 +9,4 @@ "record": { "URL": "https://programadorwebvalencia.com/" } -} +} \ No newline at end of file diff --git a/domains/andy.json b/domains/andy.json index 3b626ef57..9efd093e3 100644 --- a/domains/andy.json +++ b/domains/andy.json @@ -6,7 +6,6 @@ "email": "andyfaizan@gmail.com" }, "record": { - "CNAME": "andyfaizan.github.io", - "URL": "https://andy.is-a.dev" + "CNAME": "andyfaizan.github.io" } -} +} \ No newline at end of file diff --git a/domains/anlshn.json b/domains/anlshn.json new file mode 100644 index 000000000..a785658cd --- /dev/null +++ b/domains/anlshn.json @@ -0,0 +1,11 @@ +{ + "description": "Anil's personal developer website", + "repo": "https://github.com/anilsahindev", + "owner": { + "username": "anilsahindev", + "email": "anilsahindev@gmail.com" + }, + "record": { + "CNAME": "anlshn.com" + } +} \ No newline at end of file diff --git a/domains/anoop.json b/domains/anoop.json index 53c1c378c..87eaadbff 100644 --- a/domains/anoop.json +++ b/domains/anoop.json @@ -1,12 +1,11 @@ { - "description": "Anoop's blog", - "repo": "https://gitlab.com/anoopmsivadas/anoopmsivadas.gitlab.io", - "owner": { - "username": "anoopmsivadas", - "email": "anoopms@disroot.org" - }, - "record": { - "CNAME": "anoopmsivadas.gitlab.io", - "URL": "https://anoop.is-a.dev" - } -} + "description": "Anoop's blog", + "repo": "https://gitlab.com/anoopmsivadas/anoopmsivadas.gitlab.io", + "owner": { + "username": "anoopmsivadas", + "email": "anoopms@disroot.org" + }, + "record": { + "CNAME": "anoopmsivadas.gitlab.io" + } +} \ No newline at end of file diff --git a/domains/anthony.json b/domains/anthony.json index 76eace375..d222cfebd 100644 --- a/domains/anthony.json +++ b/domains/anthony.json @@ -5,7 +5,6 @@ "email": "admin@thehubble.com.au" }, "record": { - "CNAME": "brisbaneweb.dev", - "URL": "https://anthony.is-a.dev" + "CNAME": "brisbaneweb.dev" } -} +} \ No newline at end of file diff --git a/domains/anupam.json b/domains/anupam.json new file mode 100644 index 000000000..8400310a5 --- /dev/null +++ b/domains/anupam.json @@ -0,0 +1,11 @@ +{ + "description": "Anupam's portfolio website", + "repo": "https://github.com/anupamroy8/portfolio", + "owner": { + "username": "anupamroy8", + "email": "anupamroy8@gmail.com" + }, + "record": { + "CNAME": "anupamroy8.github.io" + } +} \ No newline at end of file diff --git a/domains/anwar.json b/domains/anwar.json new file mode 100644 index 000000000..e4ae5c5d2 --- /dev/null +++ b/domains/anwar.json @@ -0,0 +1,11 @@ +{ + "description": "Anwar's personal website", + "repo": "https://github.com/getanwar", + "owner": { + "username": "getanwar", + "email": "say@anwar.im" + }, + "record": { + "URL": "https://anwar.im" + } +} \ No newline at end of file diff --git a/domains/art.json b/domains/art.json new file mode 100644 index 000000000..7de89544d --- /dev/null +++ b/domains/art.json @@ -0,0 +1,11 @@ +{ + "description": "Art's personal developer website", + "repo": "https://github.com/dotiful", + "owner": { + "username": "dotiful", + "email": "dots.util@gmail.com" + }, + "record": { + "CNAME": "dotiful.github.io" + } +} \ No newline at end of file diff --git a/domains/arya.json b/domains/arya.json index 7510a71e2..dc1362e4c 100644 --- a/domains/arya.json +++ b/domains/arya.json @@ -6,7 +6,6 @@ "email": "aryavinodan2000@gmail.com" }, "record": { - "CNAME": "aryavinodan2000.github.io", - "URL": "https://arya.is-a.dev" + "CNAME": "aryavinodan2000.github.io" } -} +} \ No newline at end of file diff --git a/domains/asad-khan.json b/domains/asad-khan.json index fc9c93aa0..886c58efe 100644 --- a/domains/asad-khan.json +++ b/domains/asad-khan.json @@ -6,7 +6,6 @@ "email": "asadkhan1776@gmail.com" }, "record": { - "CNAME": "asadkhan777.github.io", - "URL": "https://asad-khan.is-a.dev" + "CNAME": "asadkhan777.github.io" } -} +} \ No newline at end of file diff --git a/domains/ashish.json b/domains/ashish.json index a1d6e2498..1cad986f4 100644 --- a/domains/ashish.json +++ b/domains/ashish.json @@ -1,12 +1,11 @@ { - "description": "Ashish's personal developer website", - "repo": "https://github.com/ashiishme", - "owner": { - "username": "ashiishme", - "email": "contact@ashiish.me" - }, - "record": { - "CNAME": "ashiish.me", - "URL": "https://ashish.is-a.dev" - } -} + "description": "Ashish's personal developer website", + "repo": "https://github.com/ashiishme", + "owner": { + "username": "ashiishme", + "email": "contact@ashiish.me" + }, + "record": { + "CNAME": "ashiish.me" + } +} \ No newline at end of file diff --git a/domains/ashleymavericks.json b/domains/ashleymavericks.json new file mode 100644 index 000000000..361400d1b --- /dev/null +++ b/domains/ashleymavericks.json @@ -0,0 +1,11 @@ +{ + "description": "Portfolio Website", + "repo": "https://github.com/ashleymavericks/Portfolio-Site", + "owner": { + "username": "ashlyemavericks", + "email": "singhanurag024@gmail.com" + }, + "record": { + "URL": "https://anuragsingh.dev" + } +} \ No newline at end of file diff --git a/domains/aswin.json b/domains/aswin.json new file mode 100644 index 000000000..03f2fdd95 --- /dev/null +++ b/domains/aswin.json @@ -0,0 +1,11 @@ +{ + "description": "Aswin's personal portfolio", + "repo": "https://github.com/aswinskumar67/iamaswin.github.io", + "owner": { + "username": "aswinskumar67", + "email": "aswin.skumaro2bme@gmail.com" + }, + "record": { + "CNAME": "aswinskumar67.github.io" + } +} \ No newline at end of file diff --git a/domains/atechadventurer.json b/domains/atechadventurer.json index 562f3ed46..4be39f357 100644 --- a/domains/atechadventurer.json +++ b/domains/atechadventurer.json @@ -8,4 +8,4 @@ "record": { "URL": "https://github.com/ATechAdventurer" } -} +} \ No newline at end of file diff --git a/domains/athira-li.json b/domains/athira-li.json new file mode 100644 index 000000000..d3ae5c61a --- /dev/null +++ b/domains/athira-li.json @@ -0,0 +1,11 @@ +{ + "description": "Athira's Web-Dev Home", + "repo": "https://github.com/Athira-L-I/Athira-L-I.github.io", + "owner": { + "username": "Athira-L-I", + "email": "athirali4582@gmail.com" + }, + "record": { + "CNAME": "Athira-L-I.github.io" + } +} \ No newline at end of file diff --git a/domains/atlas.json b/domains/atlas.json index b02d23321..dbf046068 100644 --- a/domains/atlas.json +++ b/domains/atlas.json @@ -6,7 +6,6 @@ "email": "robertdennispersonal@gmail.com" }, "record": { - "CNAME": "robertdennis.netlify.app", - "URL": "https://atlas.is-a.dev" + "CNAME": "robertdennis.netlify.app" } -} +} \ No newline at end of file diff --git a/domains/augustin.json b/domains/augustin.json new file mode 100644 index 000000000..e1c68df9f --- /dev/null +++ b/domains/augustin.json @@ -0,0 +1,11 @@ +{ + "description": "Augustin's personal developer website", + "repo": "https://github.com/AugustinJose1221", + "owner": { + "username": "AugustinJose1221", + "email": "augustinjose1221@gmail.com" + }, + "record": { + "CNAME": "www.augustinjose.com" + } +} \ No newline at end of file diff --git a/domains/augustine.json b/domains/augustine.json index 83610f675..fbc94cf31 100644 --- a/domains/augustine.json +++ b/domains/augustine.json @@ -6,7 +6,6 @@ "email": "augustineaykara@gmail.com" }, "record": { - "CNAME": "augustine.aykara4.com", - "URL": "https://augustine.is-a.dev" + "CNAME": "augustine.aykara4.com" } -} +} \ No newline at end of file diff --git a/domains/austin.json b/domains/austin.json new file mode 100644 index 000000000..ddea1afd1 --- /dev/null +++ b/domains/austin.json @@ -0,0 +1,12 @@ +{ + "description": "Austin's personal developer website", + "repo": "https://github.com/austindyoung", + "owner": { + "username": "austindyoung", + "email": "austin@doesweb.dev", + "twitter": "" + }, + "record": { + "URL": "http://austindyoung.github.io/" + } +} \ No newline at end of file diff --git a/domains/b45i.json b/domains/b45i.json index 6e3ef7d7d..fa938cff1 100644 --- a/domains/b45i.json +++ b/domains/b45i.json @@ -1,12 +1,11 @@ { - "description": "B45i - Home Page", - "repo": "https://github.com/B45i/b45i.github.io", - "owner": { - "username": "B45i", - "email": "amalshajan2011@gmail.com" - }, - "record": { - "CNAME": "b45i.github.io", - "URL": "https://b45i.is-a.dev" - } + "description": "B45i - Home Page", + "repo": "https://github.com/B45i/b45i.github.io", + "owner": { + "username": "B45i", + "email": "amalshajan2011@gmail.com" + }, + "record": { + "CNAME": "b45i.github.io" + } } \ No newline at end of file diff --git a/domains/bae.json b/domains/bae.json index bdde25c56..ee52c5204 100644 --- a/domains/bae.json +++ b/domains/bae.json @@ -1,13 +1,10 @@ { - "description": "Bae's personal website", - - "owner": { - "username": "ba-e", - "email": "bae.nyom@gmail.com" - }, - - "record": { - "CNAME": "bae.codes", - "URL": "https://bae.is-a.dev" - } + "description": "Bae's personal website", + "owner": { + "username": "ba-e", + "email": "bae.nyom@gmail.com" + }, + "record": { + "URL": "https://bae.codes" + } } \ No newline at end of file diff --git a/domains/ben.json b/domains/ben.json index 482fdfea6..39979ee0f 100644 --- a/domains/ben.json +++ b/domains/ben.json @@ -1,12 +1,11 @@ { - "description": "Ben's personal developer website", - "repo": "https://github.com/stupergenius", - "owner": { - "username": "stupergenius", - "email": "ben@bensnider.com" - }, - "record": { - "CNAME": "bensnider.com", - "URL": "https://ben.is-a.dev" - } + "description": "Ben's personal developer website", + "repo": "https://github.com/stupergenius", + "owner": { + "username": "stupergenius", + "email": "ben@bensnider.com" + }, + "record": { + "CNAME": "bensnider.com" + } } \ No newline at end of file diff --git a/domains/bhadra.json b/domains/bhadra.json index 69b9a8fd1..d68c1a587 100644 --- a/domains/bhadra.json +++ b/domains/bhadra.json @@ -6,7 +6,6 @@ "email": "tomjerryparu@gmail.com" }, "record": { - "CNAME": "BhadraJayakumarSandhya.github.io", - "URL": "https://bhadra.is-a.dev" + "CNAME": "BhadraJayakumarSandhya.github.io" } -} +} \ No newline at end of file diff --git a/domains/bhargav-gohil.json b/domains/bhargav-gohil.json new file mode 100644 index 000000000..5824fbf0d --- /dev/null +++ b/domains/bhargav-gohil.json @@ -0,0 +1,11 @@ +{ + "description": "Bhargav Gohil's personal developer website", + "repo": "https://github.com/bhargav252000/bhargav252000.github.io", + "owner": { + "username": "bhargav252000", + "email": "bhargavgohil25@gmail.com" + }, + "record": { + "CNAME": "bhargav252000.github.io" + } +} \ No newline at end of file diff --git a/domains/biplob.json b/domains/biplob.json index 963b9c3e2..f93e35834 100644 --- a/domains/biplob.json +++ b/domains/biplob.json @@ -6,7 +6,6 @@ "email": "revolutionisme+github@gmail.com" }, "record": { - "CNAME": "revolutionisme.github.io", - "URL": "https://biplob.is-a.dev" + "CNAME": "revolutionisme.github.io" } -} +} \ No newline at end of file diff --git a/domains/blaine.json b/domains/blaine.json new file mode 100644 index 000000000..db6b53eeb --- /dev/null +++ b/domains/blaine.json @@ -0,0 +1,11 @@ +{ + "description": "The face of Blaine, on the web", + "repo": "https://github.com/Blakeinstein/Blakeinstein.github.io", + "owner": { + "username": "Blakeinstein", + "email": "rishi1998@gmail.com" + }, + "record": { + "CNAME": "blakeinstein.github.io" + } +} \ No newline at end of file diff --git a/domains/bradley.json b/domains/bradley.json index 29a3966c1..bac5b9023 100644 --- a/domains/bradley.json +++ b/domains/bradley.json @@ -7,4 +7,4 @@ "record": { "CNAME": "bradleyholbrook.com" } -} +} \ No newline at end of file diff --git a/domains/brandon.json b/domains/brandon.json index b533a756a..45e7d3a4f 100644 --- a/domains/brandon.json +++ b/domains/brandon.json @@ -6,7 +6,6 @@ "email": "brandon.hexsel@gmail.com" }, "record": { - "CNAME": "b-hexsoul.github.io", - "URL": "https://brandon.is-a.dev" + "CNAME": "b-hexsoul.github.io" } -} +} \ No newline at end of file diff --git a/domains/bree.json b/domains/bree.json index d5ce25a31..7d34833d9 100644 --- a/domains/bree.json +++ b/domains/bree.json @@ -1,12 +1,11 @@ { - "description": "Bree is a Dev", - "repo": "https://github.com/breekoy/breekoy.github.io", - "owner": { - "username": "breekoy", - "email": "mcwall.breekoy@gmail.com" - }, - "record": { - "CNAME": "breekoy.github.io", - "URL": "https://bree.is-a.dev" - } + "description": "Bree is a Dev", + "repo": "https://github.com/breekoy/breekoy.github.io", + "owner": { + "username": "breekoy", + "email": "mcwall.breekoy@gmail.com" + }, + "record": { + "CNAME": "breekoy.github.io" + } } \ No newline at end of file diff --git a/domains/bruno.json b/domains/bruno.json new file mode 100644 index 000000000..1a0c9060e --- /dev/null +++ b/domains/bruno.json @@ -0,0 +1,10 @@ +{ + "description": "Bruno Henrique Paiva's personal website", + "owner": { + "username": "brunohpaiva", + "email": "bruno@sigane.com.br" + }, + "record": { + "URL": "https://bruno.codes" + } +} diff --git a/domains/charlie.json b/domains/charlie.json index 419de86fa..2b829bcc5 100644 --- a/domains/charlie.json +++ b/domains/charlie.json @@ -6,7 +6,6 @@ "email": "charlie.chrisman@gmail.com" }, "record": { - "CNAME": "cachrisman.github.io", - "URL": "https://charlie.is-a.dev" + "CNAME": "cachrisman.github.io" } -} +} \ No newline at end of file diff --git a/domains/chetanbasuray.json b/domains/chetanbasuray.json index 9dcaaf9b1..7bb38c5ed 100644 --- a/domains/chetanbasuray.json +++ b/domains/chetanbasuray.json @@ -6,7 +6,6 @@ "email": "basuraychetan@gmail.com" }, "record": { - "CNAME": "chetanbasuray.github.io", - "URL": "https://chetan-basuray.is-a.dev" + "CNAME": "chetanbasuray.github.io" } } \ No newline at end of file diff --git a/domains/chris.json b/domains/chris.json index 4d2e47310..ae0d41d63 100644 --- a/domains/chris.json +++ b/domains/chris.json @@ -1,4 +1,3 @@ - { "description": "Chris' Site", "repo": "https://github.com/Sp4nd3x/", @@ -7,7 +6,6 @@ "email": "chrisisadev@gmail.com" }, "record": { - "CNAME": "sp4nd3x.github.io", - "URL": "https://chris.is-a.dev" + "CNAME": "sp4nd3x.github.io" } -} +} \ No newline at end of file diff --git a/domains/cmulay.json b/domains/cmulay.json new file mode 100644 index 000000000..30cbbaefc --- /dev/null +++ b/domains/cmulay.json @@ -0,0 +1,11 @@ +{ + "description": "Chinmay Mulay's Portfolio", + "repo": "https://github.com/cmulay/cmulay.github.io", + "owner": { + "username": "cmulay", + "email": "codewithchin@gmail.com" + }, + "record": { + "CNAME": "cmulay.github.io" + } +} \ No newline at end of file diff --git a/domains/codefoster.json b/domains/codefoster.json index a21e921c2..0c7ad3714 100644 --- a/domains/codefoster.json +++ b/domains/codefoster.json @@ -8,4 +8,4 @@ "record": { "URL": "http://codefoster.com" } -} +} \ No newline at end of file diff --git a/domains/codethoma.json b/domains/codethoma.json index baafb82d1..0c346f68b 100644 --- a/domains/codethoma.json +++ b/domains/codethoma.json @@ -1,12 +1,11 @@ { - "description": "The ThunderDome", - "repo": "https://github.com/codethoma/", - "owner": { - "username": "codethoma", - "email": "mrthundergod@gmail.com" - }, - "record": { - "CNAME": "codethoma.github.io", - "URL": "https://codethoma.is-a.dev" - } -} + "description": "The ThunderDome", + "repo": "https://github.com/codethoma/", + "owner": { + "username": "codethoma", + "email": "mrthundergod@gmail.com" + }, + "record": { + "CNAME": "codethoma.github.io" + } +} \ No newline at end of file diff --git a/domains/dan-habot.json b/domains/dan-habot.json index c58d894fd..901d61320 100644 --- a/domains/dan-habot.json +++ b/domains/dan-habot.json @@ -6,7 +6,6 @@ "email": "dan.habot@gmail.com" }, "record": { - "CNAME": "danhab99.github.io", - "URL": "https://dan-habot.is-a.dev" + "CNAME": "danhab99.github.io" } -} +} \ No newline at end of file diff --git a/domains/danilofuchs.json b/domains/danilofuchs.json index 46f2cf52a..1d945ab39 100644 --- a/domains/danilofuchs.json +++ b/domains/danilofuchs.json @@ -6,7 +6,6 @@ "email": "danilo_fuchs@hotmail.com" }, "record": { - "CNAME": "danilofuchs.github.io", - "URL": "https://danilofuchs.is-a.dev" + "CNAME": "danilofuchs.github.io" } -} +} \ No newline at end of file diff --git a/domains/daria.json b/domains/daria.json new file mode 100644 index 000000000..6c2a834db --- /dev/null +++ b/domains/daria.json @@ -0,0 +1,11 @@ +{ + "description": "Daria is a dev", + "repo": "https://github.com/dariatrainor/dariatrainor.github.io", + "owner": { + "username": "dariatrainor", + "email": "dariasu@gmail.com" + }, + "record": { + "CNAME": "dariatrainor.github.io" + } +} \ No newline at end of file diff --git a/domains/davish.json b/domains/davish.json index de8704486..f12f2c018 100644 --- a/domains/davish.json +++ b/domains/davish.json @@ -6,7 +6,6 @@ "email": "akarshashok12@gmail.com" }, "record": { - "CNAME": "akchy.github.io", - "URL": "https://davish.is-a.dev" + "CNAME": "akchy.github.io" } -} +} \ No newline at end of file diff --git a/domains/demonium.json b/domains/demonium.json new file mode 100644 index 000000000..c2f6e116c --- /dev/null +++ b/domains/demonium.json @@ -0,0 +1,11 @@ +{ + "description": "Demonium's is-a.dev domain", + "repo": "https://github.com/thedemonium/demonium.github.io", + "owner": { + "username": "thedemonium", + "email": "tbapbing@gmail.com" + }, + "record": { + "CNAME": "komposerv.ru" + } +} \ No newline at end of file diff --git a/domains/dennis.json b/domains/dennis.json new file mode 100644 index 000000000..985ba3735 --- /dev/null +++ b/domains/dennis.json @@ -0,0 +1,11 @@ +{ + "description": "Dennis is a Dev", + "repo": "https://github.com/dvandervlag/dvandervlag.github.io", + "owner": { + "username": "dvandervlag", + "email": "dvandervlag@gmail.com" + }, + "record": { + "CNAME": "dvandervlag.github.io" + } +} \ No newline at end of file diff --git a/domains/derek-briggs.json b/domains/derek-briggs.json index 9aaa137f7..0dd38c980 100644 --- a/domains/derek-briggs.json +++ b/domains/derek-briggs.json @@ -1,10 +1,9 @@ { - "owner" : { - "username": "Derek52", - "email": "contact@derekbriggs.xyz" - }, - "record": { - "CNAME": "Derek52.github.io", - "URL": "https://Derek52.is-a.dev" - } -} + "owner": { + "username": "Derek52", + "email": "contact@derekbriggs.xyz" + }, + "record": { + "CNAME": "Derek52.github.io" + } +} \ No newline at end of file diff --git a/domains/dermelnik.json b/domains/dermelnik.json new file mode 100644 index 000000000..d63c6b771 --- /dev/null +++ b/domains/dermelnik.json @@ -0,0 +1,11 @@ +{ + "description": "This website is a link to my personal developer portfolio.", + "repo": "https://github.com/derMelnik/derMelnik.github.io", + "owner": { + "username": "derMelnik", + "email": "dermelnik@pm.me" + }, + "record": { + "CNAME": "derMelnik.github.io" + } +} \ No newline at end of file diff --git a/domains/designer.json b/domains/designer.json new file mode 100644 index 000000000..f84db942a --- /dev/null +++ b/domains/designer.json @@ -0,0 +1,11 @@ +{ + "description": "Designer Slash Developer", + "repo": "https://github.com/designbyadrian", + "owner": { + "username": "designbyadrian", + "email": "adrian@designbyadrian.com" + }, + "record": { + "CNAME": "designbyadrian.com" + } +} \ No newline at end of file diff --git a/domains/devon.json b/domains/devon.json new file mode 100644 index 000000000..ba5e49ecf --- /dev/null +++ b/domains/devon.json @@ -0,0 +1,11 @@ +{ + "description": "Devon Powell is a full-stack software engineer", + "repo": "https://github.com/D-Pow/d-pow.github.io", + "owner": { + "username": "D-Pow", + "email": "dpow9373@gmail.com" + }, + "record": { + "CNAME": "d-pow.github.io" + } +} \ No newline at end of file diff --git a/domains/dino.json b/domains/dino.json index af974a8de..00c086ffb 100644 --- a/domains/dino.json +++ b/domains/dino.json @@ -1,12 +1,11 @@ { - "description": "Vitor Dino is a front-end developer and ui designer", - "repo": "https://github.com/vitordino", - "owner": { - "username": "vitordino", - "email": "me@vitordino.com" - }, - "record": { - "CNAME": "vitordino.com", - "URL": "https://dino.is-a.dev" - } -} + "description": "Vitor Dino is a front-end developer and ui designer", + "repo": "https://github.com/vitordino", + "owner": { + "username": "vitordino", + "email": "me@vitordino.com" + }, + "record": { + "CNAME": "vitordino.com" + } +} \ No newline at end of file diff --git a/domains/ecalzo.json b/domains/ecalzo.json index 1243a68c5..76e0e11f6 100644 --- a/domains/ecalzo.json +++ b/domains/ecalzo.json @@ -1,12 +1,11 @@ { - "description": "Evan's personal developer blog", - "repo": "https://github.com/Ecalzo/ecalzo.github.io", - "owner": { - "username": "ecalzo", - "email": "evancalz@me.com" - }, - "record": { - "CNAME": "ecalzo.github.io", - "URL": "https://ecalzo.is-a.dev" - } -} + "description": "Evan's personal developer blog", + "repo": "https://github.com/Ecalzo/ecalzo.github.io", + "owner": { + "username": "ecalzo", + "email": "evancalz@me.com" + }, + "record": { + "CNAME": "ecalzo.github.io" + } +} \ No newline at end of file diff --git a/domains/edwin.json b/domains/edwin.json index 207976914..b56121dd2 100644 --- a/domains/edwin.json +++ b/domains/edwin.json @@ -1,10 +1,10 @@ { - "description": "My proud is-a.dev website", - "owner": { - "username": "edwinm", - "email": "edwin@bitstorm.org" - }, - "record": { - "CNAME": "bitstorm.org" - } -} + "description": "My proud is-a.dev website", + "owner": { + "username": "edwinm", + "email": "edwin@bitstorm.org" + }, + "record": { + "CNAME": "bitstorm.org" + } +} \ No newline at end of file diff --git a/domains/epgeroy.json b/domains/epgeroy.json index b392aa312..1bdf1bbaf 100644 --- a/domains/epgeroy.json +++ b/domains/epgeroy.json @@ -1,4 +1,3 @@ - { "description": "/home/epgeroy", "repo": "https://github.com/epgeroy/epgeroy.github.io", @@ -7,7 +6,6 @@ "email": "epgeroy@gmail.com" }, "record": { - "CNAME": "epgeroy.github.io", - "URL": "https://epgeroy.is-a.dev" + "CNAME": "epgeroy.github.io" } -} +} \ No newline at end of file diff --git a/domains/epsooraj.json b/domains/epsooraj.json new file mode 100644 index 000000000..dbcbcaa7e --- /dev/null +++ b/domains/epsooraj.json @@ -0,0 +1,10 @@ +{ + "description": "Sooraj Ep's website", + "owner": { + "username": "epsooraj", + "email": "epsooraj4@gmail.com" + }, + "record": { + "CNAME": "epsooraj.com" + } +} \ No newline at end of file diff --git a/domains/eric.json b/domains/eric.json index ab4967530..4e94937aa 100644 --- a/domains/eric.json +++ b/domains/eric.json @@ -6,7 +6,6 @@ "email": "eric@ericb.me" }, "record": { - "CNAME": "yurrriq.github.io", - "URL": "https://eric.is-a.dev" + "CNAME": "yurrriq.github.io" } -} +} \ No newline at end of file diff --git a/domains/ericp3reira.json b/domains/ericp3reira.json index 8fb80ae9a..879d7f0b5 100644 --- a/domains/ericp3reira.json +++ b/domains/ericp3reira.json @@ -7,7 +7,6 @@ "twitter": "ericp3reira" }, "record": { - "CNAME": "ericp3reira.github.io", - "URL": "https://ericp3reira.is-a.dev" + "CNAME": "ericp3reira.github.io" } -} +} \ No newline at end of file diff --git a/domains/ezedinff.json b/domains/ezedinff.json index 8a10dd6df..4603fd658 100644 --- a/domains/ezedinff.json +++ b/domains/ezedinff.json @@ -1,12 +1,11 @@ { - "description": "Ezedin's personal developer website", - "repo": "https://github.com/ezedinff", - "owner": { - "username": "ezedinff", - "email": "ezedin.fedlu@gmail.com" - }, - "record": { - "CNAME": "black-horse-coder-blog.vercel.app", - "URL": "https://ezedin.is-a.dev" - } -} + "description": "Ezedin's personal developer website", + "repo": "https://github.com/ezedinff", + "owner": { + "username": "ezedinff", + "email": "ezedin.fedlu@gmail.com" + }, + "record": { + "CNAME": "black-horse-coder-blog.vercel.app" + } +} \ No newline at end of file diff --git a/domains/farzan.json b/domains/farzan.json index 535308431..86acdb400 100644 --- a/domains/farzan.json +++ b/domains/farzan.json @@ -6,7 +6,6 @@ "email": "farzanfa007@gmail.com" }, "record": { - "CNAME": "Farzanfa.github.io", - "URL": "https://farzan.is-a.dev" + "CNAME": "Farzanfa.github.io" } -} +} \ No newline at end of file diff --git a/domains/fityan.json b/domains/fityan.json index 1df5f4479..efb26e577 100644 --- a/domains/fityan.json +++ b/domains/fityan.json @@ -1,12 +1,11 @@ { - "description": "Fityan Azizi's portofolio website", - "repo": "https://github.com/fityanazizi/fityanazizi.github.io", - "owner": { - "username": "fityanazizi", - "email": "ftyns57@gmail.com" - }, - "record": { - "CNAME": "fityanazizi.rf.gd", - "URL": "https://fityan.is-a.dev" - } - } \ No newline at end of file + "description": "Fityan Azizi's portofolio website", + "repo": "https://github.com/fityanazizi/fityanazizi.github.io", + "owner": { + "username": "fityanazizi", + "email": "ftyns57@gmail.com" + }, + "record": { + "CNAME": "fityanazizi.rf.gd" + } +} \ No newline at end of file diff --git a/domains/fjavierlh.json b/domains/fjavierlh.json index cb527a766..29dbc8d39 100644 --- a/domains/fjavierlh.json +++ b/domains/fjavierlh.json @@ -1,12 +1,11 @@ { - "description": "F Javier López GitHub profile", - "repo": "https://github.com/fjavierlh/fjavierlh.github.io", - "owner": { - "username": "fjavierlh", - "email": "fjavierlh@gmail.com" - }, - "record": { - "CNAME": "fjavierlh.github.io", - "URL": "https://fjavierlh.is-a.dev" - } - } \ No newline at end of file + "description": "F Javier López GitHub profile", + "repo": "https://github.com/fjavierlh/fjavierlh.github.io", + "owner": { + "username": "fjavierlh", + "email": "fjavierlh@gmail.com" + }, + "record": { + "CNAME": "fjavierlh.github.io" + } +} \ No newline at end of file diff --git a/domains/forsas.json b/domains/forsas.json new file mode 100644 index 000000000..c73678c60 --- /dev/null +++ b/domains/forsas.json @@ -0,0 +1,11 @@ +{ + "description": "Forsas website and blog", + "repo": "https://github.com/forsas/forsas.github.io", + "owner": { + "username": "forsas", + "email": "forsaslt@gmail.com" + }, + "record": { + "CNAME": "forsas.github.io" + } +} \ No newline at end of file diff --git a/domains/frankie.json b/domains/frankie.json new file mode 100644 index 000000000..727cdf1b9 --- /dev/null +++ b/domains/frankie.json @@ -0,0 +1,12 @@ +{ + "description": "Now that's a spicy 404 page!", + "repo": "https://github.com/frankie-tech/frankie-tech.github.io", + "owner": { + "username": "frankie-tech", + "email": "", + "twitter": "this_frankie" + }, + "record": { + "CNAME": "frankie-tech.github.io" + } +} \ No newline at end of file diff --git a/domains/ganesh.json b/domains/ganesh.json index 3128e3739..0dab36fbf 100644 --- a/domains/ganesh.json +++ b/domains/ganesh.json @@ -6,7 +6,6 @@ "email": "ganeshsekha6@gmail.com" }, "record": { - "CNAME": "iamganeshsekhar.github.io", - "URL": "https://ganesh.is-a.dev" + "CNAME": "iamganeshsekhar.github.io" } -} +} \ No newline at end of file diff --git a/domains/garlic-os.json b/domains/garlic-os.json index 5cc8585dd..455753c0f 100644 --- a/domains/garlic-os.json +++ b/domains/garlic-os.json @@ -6,7 +6,6 @@ "email": "sisdfk@gmail.com" }, "record": { - "CNAME": "the-garlic-os.github.io", - "URL": "https://garlic-os.is-a.dev" + "CNAME": "the-garlic-os.github.io" } -} +} \ No newline at end of file diff --git a/domains/gaurav.json b/domains/gaurav.json index 4a5f346c0..0a2c319cd 100644 --- a/domains/gaurav.json +++ b/domains/gaurav.json @@ -6,7 +6,6 @@ "email": "gauravtewari111@gmail.com" }, "record": { - "CNAME": "tewarig.github.io", - "URL": "https://gaurav.is-a.dev" + "CNAME": "tewarig.github.io" } -} +} \ No newline at end of file diff --git a/domains/george.json b/domains/george.json index 5246589f1..4d6af1590 100644 --- a/domains/george.json +++ b/domains/george.json @@ -1,11 +1,11 @@ { - "description": "George Aykara's personal developer website", - "repo": "https://github.com/aykarageorge", - "owner": { - "username": "aykarageorge", - "email": "aykarageorge@gmail.com" - }, - "record": { - "CNAME": "george.aykara4.com" - } -} + "description": "George Aykara's personal developer website", + "repo": "https://github.com/aykarageorge", + "owner": { + "username": "aykarageorge", + "email": "aykarageorge@gmail.com" + }, + "record": { + "CNAME": "george.aykara4.com" + } +} \ No newline at end of file diff --git a/domains/georgekaran.json b/domains/georgekaran.json index ae89517f2..1eda248d6 100644 --- a/domains/georgekaran.json +++ b/domains/georgekaran.json @@ -8,4 +8,4 @@ "record": { "URL": "https://georgekaran.com" } -} +} \ No newline at end of file diff --git a/domains/getify.json b/domains/getify.json index 4aff2f839..9ef98441a 100644 --- a/domains/getify.json +++ b/domains/getify.json @@ -4,6 +4,8 @@ "email": "domains@dontsend.me" }, "record": { - "A": ["50.116.28.162"] + "A": [ + "50.116.28.162" + ] } -} +} \ No newline at end of file diff --git a/domains/gilad.json b/domains/gilad.json index 612ba57b1..7ebea86f0 100644 --- a/domains/gilad.json +++ b/domains/gilad.json @@ -5,7 +5,6 @@ "email": "gilad@eventov.com" }, "record": { - "CNAME": "gilad.ninja", - "URL": "https://gilad.is-a.dev" + "CNAME": "gilad.ninja" } -} +} \ No newline at end of file diff --git a/domains/gkr.json b/domains/gkr.json index 71f25038f..3c5a17b23 100644 --- a/domains/gkr.json +++ b/domains/gkr.json @@ -6,4 +6,4 @@ "record": { "CNAME": "gautamkrishnar.github.io" } -} +} \ No newline at end of file diff --git a/domains/gkucmierz.json b/domains/gkucmierz.json index 85339e1b2..29b2618bb 100644 --- a/domains/gkucmierz.json +++ b/domains/gkucmierz.json @@ -7,4 +7,4 @@ "record": { "URL": "https://dev.to/gkucmierz" } -} +} \ No newline at end of file diff --git a/domains/glpzzz.json b/domains/glpzzz.json index 0ac165228..83138d71a 100644 --- a/domains/glpzzz.json +++ b/domains/glpzzz.json @@ -6,7 +6,6 @@ "email": "glpz@daxslab.com" }, "record": { - "CNAME": "glpzzz.github.io", - "URL": "https://glpzzz.is-a.dev" + "CNAME": "glpzzz.github.io" } -} +} \ No newline at end of file diff --git a/domains/god.json b/domains/god.json new file mode 100644 index 000000000..480d70975 --- /dev/null +++ b/domains/god.json @@ -0,0 +1,12 @@ +{ + "description": "Austin's personal developer website", + "repo": "https://github.com/austindyoung", + "owner": { + "username": "austindyoung", + "email": "austin@doesweb.dev", + "twitter": "" + }, + "record": { + "URL": "https://austindyoung.github.io" + } +} \ No newline at end of file diff --git a/domains/gokul.json b/domains/gokul.json index 7032658d2..1f9844071 100644 --- a/domains/gokul.json +++ b/domains/gokul.json @@ -6,7 +6,6 @@ "email": "gokuldskp@gmail.com" }, "record": { - "CNAME": "gkdskp.github.io", - "URL": "https://gokul.is-a.dev" + "CNAME": "gkdskp.github.io" } -} +} \ No newline at end of file diff --git a/domains/govind.json b/domains/govind.json index 32732a21d..9681a8190 100644 --- a/domains/govind.json +++ b/domains/govind.json @@ -1,12 +1,11 @@ { - "description": "Govind's personal developer website", - "repo": "https://github.com/govind-shenoy", - "owner": { - "username": "govind-shenoy", - "email": "govindvshenoy@gmail.com" - }, - "record": { - "CNAME": "govind-shenoy.github.io", - "URL": "https://govind.is-a.dev" - } -} + "description": "Govind's personal developer website", + "repo": "https://github.com/govind-shenoy", + "owner": { + "username": "govind-shenoy", + "email": "govindvshenoy@gmail.com" + }, + "record": { + "CNAME": "govind-shenoy.github.io" + } +} \ No newline at end of file diff --git a/domains/govinda.json b/domains/govinda.json new file mode 100644 index 000000000..135bbd522 --- /dev/null +++ b/domains/govinda.json @@ -0,0 +1,11 @@ +{ + "description": "Govinda Khabas Website", + "repo": "https://github.com/gkhabas76/gkhabas76.github.io", + "owner": { + "username": "gkhabas76", + "email": "gkhabas76@gmail.com" + }, + "record": { + "CNAME": "gkhabas76.github.io" + } +} \ No newline at end of file diff --git a/domains/guptasiddhant.json b/domains/guptasiddhant.json index d954107e6..12c965ae2 100644 --- a/domains/guptasiddhant.json +++ b/domains/guptasiddhant.json @@ -8,4 +8,4 @@ "record": { "URL": "http://guptasiddhant.com" } -} +} \ No newline at end of file diff --git a/domains/h3r3t1c.json b/domains/h3r3t1c.json index b984f4a2c..0b258da8f 100644 --- a/domains/h3r3t1c.json +++ b/domains/h3r3t1c.json @@ -6,7 +6,6 @@ "email": "ldominguezvega@gmail.com" }, "record": { - "CNAME": "lfdominguez.github.io", - "URL": "https://h3r3t1c.is-a.dev" + "CNAME": "lfdominguez.github.io" } -} +} \ No newline at end of file diff --git a/domains/hari.json b/domains/hari.json new file mode 100644 index 000000000..2f0bb59e0 --- /dev/null +++ b/domains/hari.json @@ -0,0 +1,11 @@ +{ + "description": "Hari's portfolio", + "repo": "https://github.com/Haritronic909/Haritronic909.github.io", + "owner": { + "username": "Haritronic909", + "email": "hari2menon1234@gmail.com" + }, + "record": { + "CNAME": "Haritronic909.github.io" + } +} \ No newline at end of file diff --git a/domains/harikrishnan.json b/domains/harikrishnan.json new file mode 100644 index 000000000..3cb30a6cd --- /dev/null +++ b/domains/harikrishnan.json @@ -0,0 +1,10 @@ +{ + "description": "Hari's Portfolio Website", + "owner": { + "username": "Harikrishnan6336", + "email": "harikrishnan6336@gmail.com" + }, + "record": { + "CNAME": "Harikrishnan6336.github.io" + } +} \ No newline at end of file diff --git a/domains/harikrishnanps.json b/domains/harikrishnanps.json new file mode 100644 index 000000000..6c6b71f7e --- /dev/null +++ b/domains/harikrishnanps.json @@ -0,0 +1,11 @@ +{ + "description": "superjedi", + "repo": "https://github.com/super-jedi/super-jedi.github.io", + "owner": { + "username": "super-jedi", + "email": "harikrishnan.ps@hotmail.com" + }, + "record": { + "CNAME": "super-jedi.github.io" + } +} \ No newline at end of file diff --git a/domains/harry.json b/domains/harry.json index dc5607be3..311cfbed1 100644 --- a/domains/harry.json +++ b/domains/harry.json @@ -1,11 +1,11 @@ { - "owner": { + "owner": { "username": "Harry-Ross", "email": "hazross@hotmail.com" - }, + }, "description": "Personal site/blog", "repository": "https://github.com/Harry-Ross/harry-ross.github.io.git", "record": { "CNAME": "harry-ross.github.io" } -} +} \ No newline at end of file diff --git a/domains/harsh-patel.json b/domains/harsh-patel.json index 994882b51..a79db5741 100644 --- a/domains/harsh-patel.json +++ b/domains/harsh-patel.json @@ -1,12 +1,11 @@ { - "description": "Harsh's website", - "repo": "https://github.com/harshpat/harshpat.github.io", - "owner": { - "username": "harshpat", - "email": "patel.harsh28@gmail.com" - }, - "record": { - "CNAME": "harshpat.github.io", - "URL": "https://harsh-patel.is-a.dev" - } + "description": "Harsh's website", + "repo": "https://github.com/harshpat/harshpat.github.io", + "owner": { + "username": "harshpat", + "email": "patel.harsh28@gmail.com" + }, + "record": { + "CNAME": "harshpat.github.io" + } } \ No newline at end of file diff --git a/domains/haseena.json b/domains/haseena.json index 8bf324844..777cc5b9b 100644 --- a/domains/haseena.json +++ b/domains/haseena.json @@ -6,7 +6,6 @@ "email": "haseena2199@gmail.com" }, "record": { - "CNAME": "haseena-hassan.github.io", - "URL": "https://haseena.is-a.dev" + "CNAME": "haseena-hassan.github.io" } -} +} \ No newline at end of file diff --git a/domains/hatkidchan.json b/domains/hatkidchan.json new file mode 100644 index 000000000..691e6b053 --- /dev/null +++ b/domains/hatkidchan.json @@ -0,0 +1,11 @@ +{ + "description": "Subdomain of Hat Kid!", + "repo": "https://github.com/hatkidchan/hatkidchan.github.io", + "owner": { + "username": "hatkidchan", + "email": "hatkidchan@gmail.com" + }, + "record": { + "CNAME": "hatkidchan.github.io" + } +} \ No newline at end of file diff --git a/domains/hemanth.json b/domains/hemanth.json new file mode 100644 index 000000000..1f9044087 --- /dev/null +++ b/domains/hemanth.json @@ -0,0 +1,11 @@ +{ + "description": "Hemanth's developer portfolio", + "repo": "https://github.com/Hemanthwarrier/hemanth.github.io", + "owner": { + "username": "Hemanthwarrier", + "email": "hemanthwarrier@gmail.com" + }, + "record": { + "CNAME": "Hemanthwarrier.github.io" + } +} \ No newline at end of file diff --git a/domains/hisham.json b/domains/hisham.json new file mode 100644 index 000000000..58c53d69b --- /dev/null +++ b/domains/hisham.json @@ -0,0 +1,11 @@ +{ + "description": "Hisham is a dev", + "repo": "https://github.com/hishamalip/hishamalip.github.io", + "owner": { + "username": "hishamalip", + "email": "hishamalip@gmail.com" + }, + "record": { + "CNAME": "hishamalip.github.io" + } +} \ No newline at end of file diff --git a/domains/hjmao.json b/domains/hjmao.json index 33b6cca15..632644f98 100644 --- a/domains/hjmao.json +++ b/domains/hjmao.json @@ -8,4 +8,4 @@ "record": { "CNAME": "huajianmao.github.io" } -} +} \ No newline at end of file diff --git a/domains/homemadestea58.json b/domains/homemadestea58.json new file mode 100644 index 000000000..9a35ad967 --- /dev/null +++ b/domains/homemadestea58.json @@ -0,0 +1,11 @@ +{ + "description": "Add some description", + "repo": "https://github.com/Homemadestea58homemadestea58.github.io/", + "owner": { + "username": "Homemadestea58", + "email": "conor.collins+isadev@dbbstu.catholic.edu.au" + }, + "record": { + "CNAME": "homemadestea58.github.io" + } +} \ No newline at end of file diff --git a/domains/ireknazm.json b/domains/ireknazm.json index 3d5604bb3..dd077a4eb 100644 --- a/domains/ireknazm.json +++ b/domains/ireknazm.json @@ -6,7 +6,6 @@ "email": "ireknazmievirek@gmail.com" }, "record": { - "CNAME": "Nagellan.github.io", - "URL": "https://ireknazm.is-a.dev" + "CNAME": "Nagellan.github.io" } -} +} \ No newline at end of file diff --git a/domains/ivolimasilva.json b/domains/ivolimasilva.json index edf16bcfd..f9c6f41c8 100644 --- a/domains/ivolimasilva.json +++ b/domains/ivolimasilva.json @@ -6,7 +6,6 @@ "email": "ivolimasilva@outlook.com" }, "record": { - "CNAME": "ivolimasilva.xyz", - "URL": "https://ivolimasilva.is-a.dev" + "CNAME": "ivolimasilva.xyz" } -} +} \ No newline at end of file diff --git a/domains/jackiso.json b/domains/jackiso.json index 72ec59ad2..7f989b1b9 100644 --- a/domains/jackiso.json +++ b/domains/jackiso.json @@ -1,11 +1,10 @@ { - "description": "JaCkIsO is a Developer!", - "owner": { - "username": "JaCkIsO", - "email": "jackisodev@gmail.com" - }, - "record": { - "CNAME": "JaCkIsO.github.io", - "URL": "https://jackiso.is-a.dev" - } + "description": "JaCkIsO is a Developer!", + "owner": { + "username": "JaCkIsO", + "email": "jackisodev@gmail.com" + }, + "record": { + "CNAME": "JaCkIsO.github.io" + } } \ No newline at end of file diff --git a/domains/jacob.json b/domains/jacob.json index 230214cee..7178f2f10 100644 --- a/domains/jacob.json +++ b/domains/jacob.json @@ -6,7 +6,6 @@ "email": "jacob13400@gmail.com" }, "record": { - "CNAME": "jacob13400.github.io", - "URL": "https://jacob.is-a.dev" + "CNAME": "jacob13400.github.io" } -} +} \ No newline at end of file diff --git a/domains/jeevan.json b/domains/jeevan.json new file mode 100644 index 000000000..3f69bfe45 --- /dev/null +++ b/domains/jeevan.json @@ -0,0 +1,11 @@ +{ + "description": "Jeevan's Portfolio", + "repo": "https://github.com/jeevan900929/jeevan900929.github.io", + "owner": { + "username": "jeevan900929", + "email": "jeevan.900929@gmail.com" + }, + "record": { + "CNAME": "jeevan900929.github.io" + } +} \ No newline at end of file diff --git a/domains/jerry.json b/domains/jerry.json new file mode 100644 index 000000000..93389dbbf --- /dev/null +++ b/domains/jerry.json @@ -0,0 +1,11 @@ +{ + "description": "Jerry's Portfolio Website", + "repo": "https://github.com/j3rrythomas/j3rrythomas.github.io", + "owner": { + "username": "j3rrythomas", + "email": "jerrythomasjohn9@gmail.com" + }, + "record": { + "CNAME": "j3rrythomas.github.io" + } +} \ No newline at end of file diff --git a/domains/jimscope.json b/domains/jimscope.json index 127d85814..4c90a5d6c 100644 --- a/domains/jimscope.json +++ b/domains/jimscope.json @@ -6,7 +6,6 @@ "email": "jimscope@protonmail.com" }, "record": { - "CNAME": "jimscope.github.io", - "URL": "https://jimscope.is-a.dev" + "CNAME": "jimscope.github.io" } -} +} \ No newline at end of file diff --git a/domains/jite.json b/domains/jite.json new file mode 100644 index 000000000..38c39cd52 --- /dev/null +++ b/domains/jite.json @@ -0,0 +1,10 @@ +{ + "description": "Jite - Dev blog", + "owner": { + "username": "Johannestegner", + "email": "jitedev@gmail.com" + }, + "record": { + "CNAME": "jite.eu" + } +} \ No newline at end of file diff --git a/domains/johan.json b/domains/johan.json new file mode 100644 index 000000000..9e015eb1b --- /dev/null +++ b/domains/johan.json @@ -0,0 +1,11 @@ +{ + "description": "Personal website of Johan von Forstner", + "repo": "https://github.com/johan12345/johan12345.github.io", + "owner": { + "username": "johan12345", + "email": "johan.forstner@gmail.com" + }, + "record": { + "URL": "https://johan.vonforst.net/" + } +} \ No newline at end of file diff --git a/domains/josh.json b/domains/josh.json index 8627871fb..97cc53fde 100644 --- a/domains/josh.json +++ b/domains/josh.json @@ -6,7 +6,6 @@ "email": "josh@miltz.co.za" }, "record": { - "CNAME": "joshisadev.miltz.co.za", - "URL": "https://josh.is-a.dev" + "CNAME": "joshisadev.miltz.co.za" } -} +} \ No newline at end of file diff --git a/domains/justin.json b/domains/justin.json index c2fb26afa..2b32049d2 100644 --- a/domains/justin.json +++ b/domains/justin.json @@ -1,12 +1,11 @@ { - "description": "My personal Page", - "repo": "https://github.com/justinjohnymathew/justinjohnymathew.github.io", - "owner": { - "username": "justinjohnymathew", - "email": "justinjohny.jj@gmail.com" - }, - "record": { - "CNAME": "justinjohnymathew.github.io", - "URL": "https://justin.is-a.dev" - } -} + "description": "My personal Page", + "repo": "https://github.com/justinjohnymathew/justinjohnymathew.github.io", + "owner": { + "username": "justinjohnymathew", + "email": "justinjohny.jj@gmail.com" + }, + "record": { + "CNAME": "justinjohnymathew.github.io" + } +} \ No newline at end of file diff --git a/domains/kaguwo.json b/domains/kaguwo.json index a0e384049..66117d741 100644 --- a/domains/kaguwo.json +++ b/domains/kaguwo.json @@ -1,11 +1,10 @@ { - "description": "Kaguwo's Personal Website", - "owner": { - "username": "kaguwomin", - "email": "business@kaguwo.com" - }, - "record": { - "CNAME": "kaguwo.com", - "URL": "https://kaguwo.is-a.dev" - } -} + "description": "Kaguwo's Personal Website", + "owner": { + "username": "kaguwomin", + "email": "business@kaguwo.com" + }, + "record": { + "CNAME": "kaguwo.com" + } +} \ No newline at end of file diff --git a/domains/keli5.json b/domains/keli5.json index 9d505fab2..7145c1a36 100644 --- a/domains/keli5.json +++ b/domains/keli5.json @@ -9,4 +9,4 @@ "record": { "CNAME": "keli5.github.io" } -} +} \ No newline at end of file diff --git a/domains/kevin.json b/domains/kevin.json index d563af887..0b9828f20 100644 --- a/domains/kevin.json +++ b/domains/kevin.json @@ -1,9 +1,9 @@ { - "owner": { - "username": "KevinBrogan", - "email": "kevin@brogan.ca" - }, - "record": { - "CNAME": "brogan.ca" - } -} + "owner": { + "username": "KevinBrogan", + "email": "kevin@brogan.ca" + }, + "record": { + "CNAME": "brogan.ca" + } +} \ No newline at end of file diff --git a/domains/kiran.json b/domains/kiran.json index e418ae2e0..2ed7edb9e 100644 --- a/domains/kiran.json +++ b/domains/kiran.json @@ -6,7 +6,6 @@ "email": "kiran.hart@live.com" }, "record": { - "CNAME": "kiranhart.github.io", - "URL": "https://kiran.is-a.dev" + "CNAME": "kiranhart.github.io" } -} +} \ No newline at end of file diff --git a/domains/kirann.json b/domains/kirann.json new file mode 100644 index 000000000..24b0ef4eb --- /dev/null +++ b/domains/kirann.json @@ -0,0 +1,11 @@ +{ + "description": "Kiran's personal developer website", + "repo": "https://github.com/sudopower", + "owner": { + "username": "sudopower", + "email": "nkirandroid@gmail.com" + }, + "record": { + "URL": "http://sudopower.com" + } +} \ No newline at end of file diff --git a/domains/kiss.json b/domains/kiss.json index 9f04710c2..e285f862b 100644 --- a/domains/kiss.json +++ b/domains/kiss.json @@ -4,7 +4,6 @@ "email": "filipe@kiss.ink" }, "record": { - "CNAME": "filipe.kiss.ink", - "URL": "https://kiss.is-a.dev" + "CNAME": "filipe.kiss.ink" } -} +} \ No newline at end of file diff --git a/domains/ksvkabra.json b/domains/ksvkabra.json new file mode 100644 index 000000000..75918f1d7 --- /dev/null +++ b/domains/ksvkabra.json @@ -0,0 +1,10 @@ +{ + "description": "Keshav Kabra's website", + "owner": { + "username": "ksvkabra", + "email": "ksvkabra@gmail.com" + }, + "record": { + "CNAME": "ksvkabra.github.io" + } +} \ No newline at end of file diff --git a/domains/lacti.json b/domains/lacti.json index 22b589fa9..cd2a17f81 100644 --- a/domains/lacti.json +++ b/domains/lacti.json @@ -6,7 +6,6 @@ "email": "lactrious@gmail.com" }, "record": { - "CNAME": "lacti.github.io", - "URL": "https://lacti.is-a.dev" + "CNAME": "lacti.github.io" } -} +} \ No newline at end of file diff --git a/domains/laxminag.json b/domains/laxminag.json new file mode 100644 index 000000000..377ef8492 --- /dev/null +++ b/domains/laxminag.json @@ -0,0 +1,11 @@ +{ + "description": "nagln's personal website", + "repo": "https://github.com/laxminagln/laxminagln.github.io", + "owner": { + "username": "laxminagln", + "email": "laxminagln@gmail.com" + }, + "record": { + "CNAME": "www.laxminagln.me" + } +} \ No newline at end of file diff --git a/domains/leon.json b/domains/leon.json index 946310ba2..afbbdb240 100644 --- a/domains/leon.json +++ b/domains/leon.json @@ -1,14 +1,11 @@ { "repo": "https://github.com/LeonskiDev/leonskidev.github.io", "description": "This is my portfolio website, if possible I'll also have bodged.is-a.dev as my blog.", - "owner": { "username": "LeonskiDev", "email": "bodged@pm.me" }, - "record": { - "CNAME": "leonskidev.github.io", - "URL": "https://leonskidev.is-a.dev" + "CNAME": "leonskidev.github.io" } -} +} \ No newline at end of file diff --git a/domains/liancg.json b/domains/liancg.json index d16338e78..a49b13dfe 100644 --- a/domains/liancg.json +++ b/domains/liancg.json @@ -6,7 +6,6 @@ "email": "liancg@gmail.com" }, "record": { - "CNAME": "liancastellon.github.io", - "URL": "https://liancg.is-a.dev" + "CNAME": "liancastellon.github.io" } -} +} \ No newline at end of file diff --git a/domains/lnfnunes.json b/domains/lnfnunes.json new file mode 100644 index 000000000..2fbabd107 --- /dev/null +++ b/domains/lnfnunes.json @@ -0,0 +1,11 @@ +{ + "description": "Little Big Nunes", + "repo": "https://github.com/lnfnunes", + "owner": { + "username": "lnfnunes", + "email": "dr1design@gmail.com" + }, + "record": { + "URL": "https://lnfnunes.com.br" + } +} \ No newline at end of file diff --git a/domains/lok.json b/domains/lok.json new file mode 100644 index 000000000..ebb6f5571 --- /dev/null +++ b/domains/lok.json @@ -0,0 +1,11 @@ +{ + "description": "Lok's portfolio website", + "repo": "https://github.com/lokgubhaju/lokgubhaju.github.io", + "owner": { + "username": "lokgubhaju", + "email": "lok.gubhaju@gmail.com" + }, + "record": { + "CNAME": "lokgubhaju.github.io" + } +} \ No newline at end of file diff --git a/domains/m42e.json b/domains/m42e.json index eae93cb4d..a6aa85999 100644 --- a/domains/m42e.json +++ b/domains/m42e.json @@ -1,12 +1,11 @@ { - "description": "m42e Homepage", - "repo": "https://github.com/m42e", - "owner": { - "username": "m42e", - "email": "matthias@bilger.info" - }, - "record": { - "CNAME": "bilger.info", - "URL": "https://m42e.is-a.dev" - } -} + "description": "m42e Homepage", + "repo": "https://github.com/m42e", + "owner": { + "username": "m42e", + "email": "matthias@bilger.info" + }, + "record": { + "CNAME": "bilger.info" + } +} \ No newline at end of file diff --git a/domains/madhan.json b/domains/madhan.json index a4451276c..d03ae7f7b 100644 --- a/domains/madhan.json +++ b/domains/madhan.json @@ -6,7 +6,6 @@ "email": "madhankumaravelu93@gmail.com" }, "record": { - "CNAME": "madhank93.github.io", - "URL": "https://madhan.is-a.dev" + "CNAME": "madhank93.github.io" } -} +} \ No newline at end of file diff --git a/domains/madhav.json b/domains/madhav.json index e66d5f4cb..2158ba669 100644 --- a/domains/madhav.json +++ b/domains/madhav.json @@ -5,7 +5,6 @@ "email": "madhav.v.1996@gmail.com" }, "record": { - "CNAME": "LaBus3.github.io", - "URL": "https://madhav.is-a.dev" + "CNAME": "LaBus3.github.io" } -} +} \ No newline at end of file diff --git a/domains/mamun.json b/domains/mamun.json index 1480b3208..9b4d15d31 100644 --- a/domains/mamun.json +++ b/domains/mamun.json @@ -6,7 +6,6 @@ "email": "mamunhpath@hotmail.com" }, "record": { - "CNAME": "mamunhpath.github.io", - "URL": "https://mamun.is-a.dev" + "CNAME": "mamunhpath.github.io" } -} +} \ No newline at end of file diff --git a/domains/mark.json b/domains/mark.json index 8c79922a8..c8a41bec0 100644 --- a/domains/mark.json +++ b/domains/mark.json @@ -1,4 +1,3 @@ - { "description": "Makr Davydov is a Developer!", "repo": "https://github.com/markrity", @@ -9,4 +8,4 @@ "record": { "URL": "https://www.linkedin.com/in/davydovmark/" } -} +} \ No newline at end of file diff --git a/domains/martial.json b/domains/martial.json index 255ef51be..e558e6df5 100644 --- a/domains/martial.json +++ b/domains/martial.json @@ -6,7 +6,6 @@ "email": "martial.seron@gmail.com" }, "record": { - "CNAME": "martialseron.github.io", - "URL": "https://martial.is-a.dev" + "CNAME": "martialseron.github.io" } -} +} \ No newline at end of file diff --git a/domains/masood.json b/domains/masood.json index 376e62225..e596ac164 100644 --- a/domains/masood.json +++ b/domains/masood.json @@ -6,7 +6,6 @@ "email": "masoodbinmohammad@hotmail.com" }, "record": { - "CNAME": "masoodbinmohammad.github.io", - "URL": "https://masood.is-a.dev" + "CNAME": "masoodbinmohammad.github.io" } -} +} \ No newline at end of file diff --git a/domains/matheus.json b/domains/matheus.json index d5f7196f5..897ac4e07 100644 --- a/domains/matheus.json +++ b/domains/matheus.json @@ -6,7 +6,6 @@ "email": "matheuscosta.dev@yahoo.com" }, "record": { - "CNAME": "mthcsta.github.io", - "URL": "https://matheus.is-a.dev" + "CNAME": "mthcsta.github.io" } -} +} \ No newline at end of file diff --git a/domains/mayur.json b/domains/mayur.json index 6d137b53c..dff7c4633 100644 --- a/domains/mayur.json +++ b/domains/mayur.json @@ -6,7 +6,6 @@ "email": "mayurdange@live.com" }, "record": { - "CNAME": "mayurdange.github.io", - "URL": "https://mayur.is-a.dev" + "CNAME": "mayurdange.github.io" } -} +} \ No newline at end of file diff --git a/domains/melwyn.json b/domains/melwyn.json index f1f0c9044..a49bd24fe 100644 --- a/domains/melwyn.json +++ b/domains/melwyn.json @@ -1,12 +1,11 @@ { - "description": "Melwyn's personal website", - "repo": "https://github.com/melwyn95/melwyn95.github.io", - "owner": { - "username": "melwyn95", - "email": "melwyn95@gmail.com" - }, - "record": { - "CNAME": "melwyn95.github.io", - "URL": "https://melwyn.is-a.dev" - } -} + "description": "Melwyn's personal website", + "repo": "https://github.com/melwyn95/melwyn95.github.io", + "owner": { + "username": "melwyn95", + "email": "melwyn95@gmail.com" + }, + "record": { + "CNAME": "melwyn95.github.io" + } +} \ No newline at end of file diff --git a/domains/michael.json b/domains/michael.json index 8e827e0ed..41e4c2c85 100644 --- a/domains/michael.json +++ b/domains/michael.json @@ -1,13 +1,11 @@ { - "description": "Michael's portfolio website and blog", - "repo": "https://github.com/michaelmano/michaelmano.github.io", - "owner": { - "username": "michaelmano", - "email": "michael.mano26@gmail.com" - }, - "record": { - "CNAME": "michaelmano.github.io", - "URL": "https://michael.is-a.dev" - } + "description": "Michael's portfolio website and blog", + "repo": "https://github.com/michaelmano/michaelmano.github.io", + "owner": { + "username": "michaelmano", + "email": "michael.mano26@gmail.com" + }, + "record": { + "CNAME": "michaelmano.github.io" } - \ No newline at end of file +} \ No newline at end of file diff --git a/domains/mike.json b/domains/mike.json index 7feea0794..52911ae07 100644 --- a/domains/mike.json +++ b/domains/mike.json @@ -1,12 +1,11 @@ { - "description": "Mike's portfolio website and blog", - "repo": "https://github.com/mdrobbins", - "owner": { - "username": "mdrobbins", - "email": "mikedrobbins@gmail.com" - }, - "record": { - "URL": "https://mikerobbins.me" - } + "description": "Mike's portfolio website and blog", + "repo": "https://github.com/mdrobbins", + "owner": { + "username": "mdrobbins", + "email": "mikedrobbins@gmail.com" + }, + "record": { + "URL": "https://mikerobbins.me" } - \ No newline at end of file +} \ No newline at end of file diff --git a/domains/mk.json b/domains/mk.json new file mode 100644 index 000000000..58be2e129 --- /dev/null +++ b/domains/mk.json @@ -0,0 +1,11 @@ +{ + "description": "mklabs' website", + "repo": "https://github.com/mklabs/mklabs.github.com", + "owner": { + "username": "mklabs", + "email": "daniel.mickael@gmail.com" + }, + "record": { + "CNAME": "mklabs.github.io" + } +} \ No newline at end of file diff --git a/domains/mnsrulz.json b/domains/mnsrulz.json new file mode 100644 index 000000000..4bfc76db0 --- /dev/null +++ b/domains/mnsrulz.json @@ -0,0 +1,11 @@ +{ + "description": "mnsrulz web", + "repo": "https://github.com/mnsrulz/mnsrulz.github.io", + "owner": { + "username": "mnsrulz", + "email": "mnsrulz@gmail.com" + }, + "record": { + "CNAME": "mnsrulz.github.io" + } +} \ No newline at end of file diff --git a/domains/mpy.json b/domains/mpy.json index 474c3889b..7672f7d38 100644 --- a/domains/mpy.json +++ b/domains/mpy.json @@ -6,7 +6,6 @@ "email": "mpyebattara@gmail.com" }, "record": { - "CNAME": "mikeattara.github.io", - "URL": "https://mpy.is-a.dev" + "CNAME": "mikeattara.github.io" } } \ No newline at end of file diff --git a/domains/mrthundergod.json b/domains/mrthundergod.json index a7d5f9b20..37a12ba3a 100644 --- a/domains/mrthundergod.json +++ b/domains/mrthundergod.json @@ -1,12 +1,11 @@ { - "description": "The ThunderDome", - "repo": "https://github.com/mrthundergod/", - "owner": { - "username": "mrthundergod", - "email": "mrthundergod@gmail.com" - }, - "record": { - "CNAME": "mrthundergod.github.io", - "URL": "https://mrthundergod.is-a.dev" - } -} + "description": "The ThunderDome", + "repo": "https://github.com/mrthundergod/", + "owner": { + "username": "mrthundergod", + "email": "mrthundergod@gmail.com" + }, + "record": { + "CNAME": "mrthundergod.github.io" + } +} \ No newline at end of file diff --git a/domains/muchenski.json b/domains/muchenski.json new file mode 100644 index 000000000..e8f860190 --- /dev/null +++ b/domains/muchenski.json @@ -0,0 +1,11 @@ +{ + "description": "Muchenski's personal developer website", + "repo": "https://github.com/HenriqueMuchenski/henriquemuchenski.github.io", + "owner": { + "username": "HenriqueMuchenski", + "email": "hjmuchenski@gmail.com" + }, + "record": { + "CNAME": "henriquemuchenski.github.io" + } +} \ No newline at end of file diff --git a/domains/muzammil.json b/domains/muzammil.json new file mode 100644 index 000000000..fdf7568d8 --- /dev/null +++ b/domains/muzammil.json @@ -0,0 +1,10 @@ +{ + "description": "Muzammil's Portfolio Website", + "owner": { + "username": "taqnar", + "email": "muzammilthottathil.official@gmail.com" + }, + "record": { + "CNAME": "taqnar.github.io" + } +} \ No newline at end of file diff --git a/domains/mverhees.json b/domains/mverhees.json deleted file mode 100644 index 19b6d3678..000000000 --- a/domains/mverhees.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "description": "Mike's website", - "repo": "https://github.com/MikeVerhees/MikeVerhees.github.io", - "owner": { - "username": "MikeVerhees", - "email": "mikeverhees95@gmail.com" - }, - "record": { - "CNAME": "MikeVerhees.github.io", - "URL": "https://mverhees.is-a.dev" - } -} diff --git a/domains/nagarajgond.json b/domains/nagarajgond.json new file mode 100644 index 000000000..c78ee065f --- /dev/null +++ b/domains/nagarajgond.json @@ -0,0 +1,11 @@ +{ + "description": "Nagaraj's Dev website", + "repo": "https://github.com/NagarajGond/NagarajGond.github.io", + "owner": { + "username": "nagarajgond", + "email": "nagarajgond@live.com" + }, + "record": { + "CNAME": "NagarajGond.github.io" + } +} \ No newline at end of file diff --git a/domains/nand.json b/domains/nand.json index f0960965a..f48692d9c 100644 --- a/domains/nand.json +++ b/domains/nand.json @@ -1,11 +1,10 @@ { - "description" : "Nand's web", - "owner" : { - "username" : "nandkk05", - "email" : "nandkk07@gmail.com" + "description": "Nand's web", + "owner": { + "username": "nandkk05", + "email": "nandkk07@gmail.com" }, - "record" : { - "CNAME" : "nandkk05.github.io", - "URL" : "https://nand.is-a.dev" + "record": { + "CNAME": "nandkk05.github.io" } -} +} \ No newline at end of file diff --git a/domains/nils.json b/domains/nils.json index 4984fdb72..7ad7eb40e 100644 --- a/domains/nils.json +++ b/domains/nils.json @@ -7,4 +7,4 @@ "record": { "URL": "https://noim.io" } -} +} \ No newline at end of file diff --git a/domains/nimish.json b/domains/nimish.json index a8b343dec..f265bd087 100644 --- a/domains/nimish.json +++ b/domains/nimish.json @@ -1,12 +1,11 @@ { - "description": "Nimish's Engineering Diary", - "repo": "https://github.com/nimish-gupta/blog", - "owner": { - "username": "nimish-gupta", - "email": "gnimish03@gmail.com" - }, - "record": { - "CNAME": "nimish-gupta.dev", - "URL": "https://nimish.is-a.dev" - } -} + "description": "Nimish's Engineering Diary", + "repo": "https://github.com/nimish-gupta/blog", + "owner": { + "username": "nimish-gupta", + "email": "gnimish03@gmail.com" + }, + "record": { + "CNAME": "nimish-gupta.dev" + } +} \ No newline at end of file diff --git a/domains/nishant.json b/domains/nishant.json index 8c827c715..f2467ef67 100644 --- a/domains/nishant.json +++ b/domains/nishant.json @@ -6,7 +6,6 @@ "email": "nishantchvedi@gmail.com" }, "record": { - "CNAME": "twistedsoft.com", - "URL": "https://nishant.is-a.dev" + "CNAME": "twistedsoft.com" } -} +} \ No newline at end of file diff --git a/domains/olili.json b/domains/olili.json new file mode 100644 index 000000000..000ea6d2c --- /dev/null +++ b/domains/olili.json @@ -0,0 +1,11 @@ +{ + "description": "Olili daniel portfolio", + "repo": "https://github.com/Olili2017/olili2017.github.io", + "owner": { + "username": "Olili2017", + "email": "olilidaniel@gmail.com" + }, + "record": { + "CNAME": "olili2017.github.io" + } +} \ No newline at end of file diff --git a/domains/owain.json b/domains/owain.json index 09020668a..cb5e1f69e 100644 --- a/domains/owain.json +++ b/domains/owain.json @@ -5,7 +5,6 @@ "email": "owain.jones74@gmail.com" }, "record": { - "CNAME": "0wain.xyz", - "URL": "https://owain.is-a.dev" + "CNAME": "0wain.xyz" } -} +} \ No newline at end of file diff --git a/domains/paranoiasystem.json b/domains/paranoiasystem.json index 54c2d68ce..6c8d03fc6 100644 --- a/domains/paranoiasystem.json +++ b/domains/paranoiasystem.json @@ -6,7 +6,6 @@ "email": "marcoferraioli@live.com" }, "record": { - "CNAME": "paranoiasystem.github.io", - "URL": "https://paranoiasystem.is-a.dev" + "CNAME": "paranoiasystem.github.io" } } \ No newline at end of file diff --git a/domains/parshnt.json b/domains/parshnt.json index 8319fd350..2e7de223f 100644 --- a/domains/parshnt.json +++ b/domains/parshnt.json @@ -1,12 +1,11 @@ { - "description": "YAY, new place for my Portfolio", - "repo": "https://github.com/parshnt", - "owner": { - "username": "parshnt", - "email": "hi.parshant@gmail.com" - }, - "record": { - "CNAME": "parshnt.github.io", - "URL": "https://parshnt.is-a.dev" - } -} + "description": "YAY, new place for my Portfolio", + "repo": "https://github.com/parshnt", + "owner": { + "username": "parshnt", + "email": "hi.parshant@gmail.com" + }, + "record": { + "CNAME": "parshnt.github.io" + } +} \ No newline at end of file diff --git a/domains/peris.json b/domains/peris.json index cf24596f8..d3a73fd04 100644 --- a/domains/peris.json +++ b/domains/peris.json @@ -1,12 +1,11 @@ { - "description": "Peris's Portfolio", - "repo": "https://github.com/perisrai/perisrai.github.io", - "owner": { - "username": "perisrai", - "email": "perishrai@gmail.com" - }, - "record": { - "CNAME": "perisrai.github.io", - "URL": "https://peris.is-a.dev" - } - } \ No newline at end of file + "description": "Peris's Portfolio", + "repo": "https://github.com/perisrai/perisrai.github.io", + "owner": { + "username": "perisrai", + "email": "perishrai@gmail.com" + }, + "record": { + "CNAME": "perisrai.github.io" + } +} \ No newline at end of file diff --git a/domains/picklerick.json b/domains/picklerick.json index b9d70f69e..f5ee88699 100644 --- a/domains/picklerick.json +++ b/domains/picklerick.json @@ -6,7 +6,6 @@ "email": "pickle@anonemail.net" }, "record": { - "CNAME": "ticklerick.github.io", - "URL": "https://picklerick.is-a.dev" + "CNAME": "ticklerick.github.io" } } \ No newline at end of file diff --git a/domains/piyush.json b/domains/piyush.json index d7d87b331..6c45dd23d 100644 --- a/domains/piyush.json +++ b/domains/piyush.json @@ -7,4 +7,4 @@ "record": { "URL": "https://piyush.codes" } -} +} \ No newline at end of file diff --git a/domains/proghead00.json b/domains/proghead00.json index e647ed5d9..cd7e735fe 100644 --- a/domains/proghead00.json +++ b/domains/proghead00.json @@ -6,7 +6,6 @@ "email": "susnata00@gmail.com" }, "record": { - "CNAME": "proghead00.github.io", - "URL": "https://proghead00.is-a.dev" + "CNAME": "proghead00.github.io" } -} +} \ No newline at end of file diff --git a/domains/r2d2.json b/domains/r2d2.json new file mode 100644 index 000000000..a0150c9b5 --- /dev/null +++ b/domains/r2d2.json @@ -0,0 +1,12 @@ +{ + "description": "R2D2 website", + "owner": { + "username": "hogakesan", + "email": "aereg@ya.ru" + }, + "record": { + "A": [ + "46.32.81.244" + ] + } +} \ No newline at end of file diff --git a/domains/rabbi-shuki.json b/domains/rabbi-shuki.json index b834efb75..5c0828b98 100644 --- a/domains/rabbi-shuki.json +++ b/domains/rabbi-shuki.json @@ -6,7 +6,6 @@ "email": "rabbishuki+is-a-dev@gmail.com" }, "record": { - "CNAME": "rabbishuki.github.io", - "URL": "https://rabbi-shuki.is-a.dev" + "CNAME": "rabbishuki.github.io" } -} +} \ No newline at end of file diff --git a/domains/rahul.json b/domains/rahul.json index 7b828647b..622752ba6 100644 --- a/domains/rahul.json +++ b/domains/rahul.json @@ -1,12 +1,11 @@ { - "description": "Rahul's personal developer website", - "repo": "https://github.com/rahuldahal", - "owner": { - "username": "rahuldahal", - "email": "rdaahal@gmail.com" - }, - "record": { - "CNAME": "rahuldahal.com.np", - "URL": "https://rahul.is-a.dev" - } -} + "description": "Rahul's personal developer website", + "repo": "https://github.com/rahuldahal", + "owner": { + "username": "rahuldahal", + "email": "rdaahal@gmail.com" + }, + "record": { + "CNAME": "rahuldahal.com.np" + } +} \ No newline at end of file diff --git a/domains/rapixar.json b/domains/rapixar.json new file mode 100644 index 000000000..b1c217333 --- /dev/null +++ b/domains/rapixar.json @@ -0,0 +1,11 @@ +{ + "description": "The awesome portfolio site for Chinenye Raphael", + "repo": "https://github.com/rapixar/rapixar.github.io", + "owner": { + "username": "Rapixar", + "email": "cudraphael@gmail.com" + }, + "record": { + "CNAME": "rapixar.github.io" + } +} \ No newline at end of file diff --git a/domains/rayvid.json b/domains/rayvid.json index 3455bc522..a63861eec 100644 --- a/domains/rayvid.json +++ b/domains/rayvid.json @@ -1,13 +1,11 @@ - { - "description": "Rayvid's website", - "repo": "https://github.com/Rayvid", - "owner": { - "username": "rayvid", - "email": "gin.kisonas@gmail.com" - }, - "record": { - "CNAME": "rayvid.github.io", - "URL": "https://rayvid.is-a.dev" - } -} + "description": "Rayvid's website", + "repo": "https://github.com/Rayvid", + "owner": { + "username": "rayvid", + "email": "gin.kisonas@gmail.com" + }, + "record": { + "CNAME": "rayvid.github.io" + } +} \ No newline at end of file diff --git a/domains/reed.json b/domains/reed.json index 5f70ceda1..396327c12 100644 --- a/domains/reed.json +++ b/domains/reed.json @@ -1,11 +1,10 @@ { - "repo": "https://github.com/reed-jones", - "owner": { - "username": "reed-jones", - "email": "reedjones@reedjones.com" - }, - "record": { - "CNAME": "reedjones.com", - "URL": "https://reed.is-a.dev" - } -} + "repo": "https://github.com/reed-jones", + "owner": { + "username": "reed-jones", + "email": "reedjones@reedjones.com" + }, + "record": { + "CNAME": "reedjones.com" + } +} \ No newline at end of file diff --git a/domains/reuben.json b/domains/reuben.json new file mode 100644 index 000000000..8f2a9169a --- /dev/null +++ b/domains/reuben.json @@ -0,0 +1,11 @@ +{ + "description": "Personal Page", + "repo": "https://github.com/reuben-x/reuben-x.github.io", + "owner": { + "username": "reuben-x", + "email": "reubenthomaspeter@gmail.com" + }, + "record": { + "CNAME": "reuben-x.github.io" + } +} \ No newline at end of file diff --git a/domains/rohith.json b/domains/rohith.json new file mode 100644 index 000000000..42651b73d --- /dev/null +++ b/domains/rohith.json @@ -0,0 +1,11 @@ +{ + "description": "Rohith's personal website", + "repo": "https://github.com/rohithp7777", + "owner": { + "username": "rohithp7777", + "email": "rohithp8899@gmail.com" + }, + "record": { + "CNAME": "rohith-1c974.web.app" + } +} \ No newline at end of file diff --git a/domains/roy.json b/domains/roy.json index 678134f47..7d188f89f 100644 --- a/domains/roy.json +++ b/domains/roy.json @@ -6,7 +6,6 @@ "email": "rcrj95@gmail.com" }, "record": { - "CNAME": "rcrj.github.io", - "URL": "https://roy.is-a.dev" + "CNAME": "rcrj.github.io" } -} +} \ No newline at end of file diff --git a/domains/rusiru.json b/domains/rusiru.json index dab934bbb..ffe2ad850 100644 --- a/domains/rusiru.json +++ b/domains/rusiru.json @@ -1,12 +1,11 @@ { - "description": "Rusiru Anupama is a Dev", - "repo": "https://github.com/sparkstark03/register", - "owner": { - "username": "sparkstark03", - "email": "rusirurasanjana@gmail.com" - }, - "record": { - "CNAME": "sparkstark03.github.io", - "URL": "https://rusiru.is-a.dev" - } - } \ No newline at end of file + "description": "Rusiru Anupama is a Dev", + "repo": "https://github.com/sparkstark03/register", + "owner": { + "username": "sparkstark03", + "email": "rusirurasanjana@gmail.com" + }, + "record": { + "CNAME": "sparkstark03.github.io" + } +} \ No newline at end of file diff --git a/domains/rwithik.json b/domains/rwithik.json index 6615c5d68..8f5dfc14c 100644 --- a/domains/rwithik.json +++ b/domains/rwithik.json @@ -6,7 +6,6 @@ "email": "rwithik@gmail.com" }, "record": { - "CNAME": "rwithik.github.io", - "URL": "https://rwithik.is-a.dev" + "CNAME": "rwithik.github.io" } -} +} \ No newline at end of file diff --git a/domains/sachin.json b/domains/sachin.json new file mode 100644 index 000000000..d4ae2d153 --- /dev/null +++ b/domains/sachin.json @@ -0,0 +1,11 @@ +{ + "description": "Sachin's portfolio", + "repo": "https://github.com/sachin-in1", + "owner": { + "username": "sachin-in1", + "email": "sachin.here01@gmail.com" + }, + "record": { + "CNAME": "sachin-in1.github.io" + } +} \ No newline at end of file diff --git a/domains/sailesh.json b/domains/sailesh.json index 641f1d263..2157ad257 100644 --- a/domains/sailesh.json +++ b/domains/sailesh.json @@ -7,4 +7,4 @@ "record": { "CNAME": "saileshbro.github.io" } -} +} \ No newline at end of file diff --git a/domains/saisandeepvaddi.json b/domains/saisandeepvaddi.json index 584f761ae..f092dea82 100644 --- a/domains/saisandeepvaddi.json +++ b/domains/saisandeepvaddi.json @@ -5,6 +5,8 @@ "email": "saisandeepvaddi@gmail.com" }, "record": { - "A": ["104.198.14.52"] + "A": [ + "104.198.14.52" + ] } -} +} \ No newline at end of file diff --git a/domains/samanyu.json b/domains/samanyu.json new file mode 100644 index 000000000..9c7e1af20 --- /dev/null +++ b/domains/samanyu.json @@ -0,0 +1,11 @@ +{ + "description": "They call me Soman", + "repo": "https://github.com/Samanyu13", + "owner": { + "username": "Samanyu13", + "email": "samanyusaji18@gmail.com" + }, + "record": { + "CNAME": "samanyu13.github.io" + } +} \ No newline at end of file diff --git a/domains/samosa.json b/domains/samosa.json new file mode 100644 index 000000000..20766073d --- /dev/null +++ b/domains/samosa.json @@ -0,0 +1,11 @@ +{ + "description": "Samosa needs to be on the Web", + "repo": "https://github.com/djsamyak/djsamyak.github.io", + "owner": { + "username": "djsamyak", + "email": "djsamyak@gmail.com" + }, + "record": { + "CNAME": "djsamyak.github.io" + } +} \ No newline at end of file diff --git a/domains/sandeepv.json b/domains/sandeepv.json index be12d1570..c5decca0a 100644 --- a/domains/sandeepv.json +++ b/domains/sandeepv.json @@ -1,12 +1,10 @@ { - "description": "Sandeep's personal website", - "owner": { - "username": "SandeepVattapparambil", - "email": "sandeepv68@gmail.com" - }, - "record": { - "CNAME": "sandeepv.in", - "URL": "https://sandeepv.is-a.dev" - } + "description": "Sandeep's personal website", + "owner": { + "username": "SandeepVattapparambil", + "email": "sandeepv68@gmail.com" + }, + "record": { + "CNAME": "sandeepvattapparambil.github.io" } - \ No newline at end of file +} \ No newline at end of file diff --git a/domains/sarath.json b/domains/sarath.json index 757b1183f..10cc6fc2e 100644 --- a/domains/sarath.json +++ b/domains/sarath.json @@ -1,12 +1,11 @@ { - "description": "Sarath's Website", - "repo": "https://github.com/Sharkaboi/sharkaboi.github.io", - "owner": { - "username": "Sharkaboi", - "email": "sarathsedu@gmail.com" - }, - "record": { - "CNAME": "sharkaboi.github.io", - "URL": "https://sarath.is-a.dev" - } - } \ No newline at end of file + "description": "Sarath's Website", + "repo": "https://github.com/Sharkaboi/sharkaboi.github.io", + "owner": { + "username": "Sharkaboi", + "email": "sarathsedu@gmail.com" + }, + "record": { + "CNAME": "sharkaboi.github.io" + } +} \ No newline at end of file diff --git a/domains/savio.json b/domains/savio.json index 0bdea966a..a1e234d3d 100644 --- a/domains/savio.json +++ b/domains/savio.json @@ -1,4 +1,4 @@ - { +{ "description": "Savio Martin is a Dev", "repo": "https://github.com/saviomartin/register", "owner": { @@ -6,7 +6,6 @@ "email": "saviomartin2020@gmail.com" }, "record": { - "CNAME": "saviomartin.github.io", - "URL": "https://savio.is-a.dev" + "CNAME": "saviomartin.github.io" } -} +} \ No newline at end of file diff --git a/domains/saviomartin.json b/domains/saviomartin.json new file mode 100644 index 000000000..52c6c2409 --- /dev/null +++ b/domains/saviomartin.json @@ -0,0 +1,11 @@ +{ + "description": "This website is a link to my personal developer portfolio.", + "repo": "https://github.com/martinthampi/martinthampi.github.io", + "owner": { + "username": "martinthampi", + "email": "martinthampi@gmail.com" + }, + "record": { + "CNAME": "martinthampi.github.io" + } +} diff --git a/domains/scarvite.json b/domains/scarvite.json new file mode 100644 index 000000000..1b7d576b3 --- /dev/null +++ b/domains/scarvite.json @@ -0,0 +1,12 @@ +{ + "description": "My Portfolio", + "repo": "https://github.com/ScarVite/scarvite.de", + "owner": { + "username": "ScarVite", + "email": "admin@ScarVite.de", + "twitter": "ScarVite" + }, + "record": { + "CNAME": "scarvite.de" + } +} diff --git a/domains/shajanjp.json b/domains/shajanjp.json index 8d04c0a3d..c09d7f802 100644 --- a/domains/shajanjp.json +++ b/domains/shajanjp.json @@ -6,7 +6,6 @@ "email": "shajanjp@gmail.com" }, "record": { - "CNAME": "shajanjp.github.io", - "URL": "https://shajanjp.is-a.dev" + "CNAME": "shajanjp.github.io" } -} +} \ No newline at end of file diff --git a/domains/shalom.json b/domains/shalom.json index bf7bd8501..afe627255 100644 --- a/domains/shalom.json +++ b/domains/shalom.json @@ -5,7 +5,6 @@ "email": "shalomss525@gmail.com" }, "record": { - "CNAME": "shalom-is-a-dev.netlify.app", - "URL": "https://shalom.is-a.dev" + "CNAME": "shalom-is-a-dev.netlify.app" } -} +} \ No newline at end of file diff --git a/domains/shambhavi.json b/domains/shambhavi.json new file mode 100644 index 000000000..fb9e26bbe --- /dev/null +++ b/domains/shambhavi.json @@ -0,0 +1,11 @@ +{ + "description": "Shambhavi's Web-Dev Home", + "repo": "https://github.com/ShambhaviCodes/ShambhaviCodes.github.io", + "owner": { + "username": "ShambhaviCodes", + "email": "shambhavimishra26@gmail.com" + }, + "record": { + "CNAME": "shambhavicodes.github.io" + } +} \ No newline at end of file diff --git a/domains/shane.json b/domains/shane.json index 473adfbbf..99d0eb08a 100644 --- a/domains/shane.json +++ b/domains/shane.json @@ -6,7 +6,6 @@ "email": "vandesm14@gmail.com" }, "record": { - "CNAME": "vandesm14.github.io", - "URL": "https://shane.is-a.dev" + "CNAME": "vandesm14.github.io" } -} +} \ No newline at end of file diff --git a/domains/sharath.json b/domains/sharath.json index c213eb826..5fefa0400 100644 --- a/domains/sharath.json +++ b/domains/sharath.json @@ -6,7 +6,6 @@ "email": "sharathct22@gmail.com" }, "record": { - "CNAME": "thesct22.github.io", - "URL": "http://sharath.is-a.dev" + "CNAME": "thesct22.github.io" } -} +} \ No newline at end of file diff --git a/domains/sharifclick.json b/domains/sharifclick.json index b81e16c03..e8c58272c 100644 --- a/domains/sharifclick.json +++ b/domains/sharifclick.json @@ -6,7 +6,6 @@ "email": "me.sharifahmed@gmail.com" }, "record": { - "CNAME": "sharifclick.github.io", - "URL": "https://sharifclick.is-a.dev" + "CNAME": "sharifclick.github.io" } -} +} \ No newline at end of file diff --git a/domains/shenjunru.json b/domains/shenjunru.json index d521ea054..d12e64a12 100644 --- a/domains/shenjunru.json +++ b/domains/shenjunru.json @@ -6,7 +6,6 @@ "email": "shenjunru@gmail.com" }, "record": { - "CNAME": "shenjunru.github.io", - "URL": "https://shenjunru.is-a.dev" + "CNAME": "shenjunru.github.io" } -} +} \ No newline at end of file diff --git a/domains/shibiliya.json b/domains/shibiliya.json index 4c3104986..8d947df8a 100644 --- a/domains/shibiliya.json +++ b/domains/shibiliya.json @@ -1,12 +1,11 @@ { - "description": "Shibiliya's personal developer website", - "repo": "https://github.com/duaboola", - "owner": { - "username": "duaboola", - "email": "ismailshibiliya@gmail.com" - }, - "record": { - "CNAME": "duaboola.github.io", - "URL": "https://shibiliya.is-a.dev" - } -} + "description": "Shibiliya's personal developer website", + "repo": "https://github.com/duaboola", + "owner": { + "username": "duaboola", + "email": "ismailshibiliya@gmail.com" + }, + "record": { + "CNAME": "duaboola.github.io" + } +} \ No newline at end of file diff --git a/domains/shuvam.json b/domains/shuvam.json new file mode 100644 index 000000000..ca393e56f --- /dev/null +++ b/domains/shuvam.json @@ -0,0 +1,10 @@ +{ + "description": "Shuvam Manna and his Internetoverse", + "owner": { + "username": "GeekBoySupreme", + "email": "shuvam.manna@gmail.com" + }, + "record": { + "CNAME": "shuvam.xyz" + } +} \ No newline at end of file diff --git a/domains/shyran.json b/domains/shyran.json new file mode 100644 index 000000000..c5b91f833 --- /dev/null +++ b/domains/shyran.json @@ -0,0 +1,11 @@ +{ + "description": "Sergii Shyran - WebDev, Arch", + "repo": "https://github.com/sshyran/shyran.github.io", + "owner": { + "username": "sshyran", + "email": "s.shyran@gmail.com" + }, + "record": { + "CNAME": "shyran.github.io" + } +} \ No newline at end of file diff --git a/domains/sid.json b/domains/sid.json new file mode 100644 index 000000000..c982a39ec --- /dev/null +++ b/domains/sid.json @@ -0,0 +1,11 @@ +{ + "description": "Siddhartha Patki's development portfolio", + "repo": "https://github.com/SiddPatki", + "owner": { + "username": "SiddPatki", + "email": "siddharthapatki@gmail.com" + }, + "record": { + "CNAME": "siddpatki.github.io" + } +} \ No newline at end of file diff --git a/domains/siful.json b/domains/siful.json index 4e0631e67..2be3c4037 100644 --- a/domains/siful.json +++ b/domains/siful.json @@ -1,12 +1,11 @@ { - "description": "Frontend Developer Siful", - "repo": "https://github.com/sifulbd/sifulbd.github.io", - "owner": { - "username": "sifulbd", - "email": "sifulweb@gmail.com" - }, - "record": { - "CNAME": "sifulbd.github.io", - "URL": "https://siful.is-a.dev" - } - } \ No newline at end of file + "description": "Frontend Developer Siful", + "repo": "https://github.com/sifulbd/sifulbd.github.io", + "owner": { + "username": "sifulbd", + "email": "sifulweb@gmail.com" + }, + "record": { + "CNAME": "sifulbd.github.io" + } +} \ No newline at end of file diff --git a/domains/snaildos.json b/domains/snaildos.json index a02f59fa2..19b5635ab 100644 --- a/domains/snaildos.json +++ b/domains/snaildos.json @@ -6,7 +6,6 @@ "email": "" }, "record": { - "CNAME": "snaildos.tk", - "URL": "https://snaildos.is-a.dev" + "CNAME": "snaildos.tk" } -} +} \ No newline at end of file diff --git a/domains/steven.json b/domains/steven.json index 1e798e941..f67873534 100644 --- a/domains/steven.json +++ b/domains/steven.json @@ -6,7 +6,6 @@ "email": "steve.r.frohlich@gmail.com" }, "record": { - "CNAME": "StevenRonnyFrohlich.github.io", - "URL": "https://steven.is-a.dev" + "CNAME": "StevenRonnyFrohlich.github.io" } -} +} \ No newline at end of file diff --git a/domains/sudev.json b/domains/sudev.json new file mode 100644 index 000000000..8bb9f7a3e --- /dev/null +++ b/domains/sudev.json @@ -0,0 +1,11 @@ +{ + "description": "Microsoft Student Ambassador, student at College of Engineering Trivandrum", + "repo": "https://github.com/gamegods3/gamegods3.github.io", + "owner": { + "username": "gamegods3", + "email": "sudevssuresh@gmail.com" + }, + "record": { + "CNAME": "gamegods3.github.io" + } +} \ No newline at end of file diff --git a/domains/sumedhaa.json b/domains/sumedhaa.json new file mode 100644 index 000000000..76ac4fbcc --- /dev/null +++ b/domains/sumedhaa.json @@ -0,0 +1,11 @@ +{ + "description": "Sumedhaa's Portfolio", + "repo": "https://github.com/misticorion/misticorion.github.io", + "owner": { + "username": "misticorion", + "email": "mistic.orion@gmail.com" + }, + "record": { + "CNAME": "misticorion.github.io" + } +} \ No newline at end of file diff --git a/domains/swanny.json b/domains/swanny.json index b59c071c2..12781bf4e 100644 --- a/domains/swanny.json +++ b/domains/swanny.json @@ -6,7 +6,6 @@ "email": "github@andrewswan.net" }, "record": { - "CNAME": "swannyisadev.andrewswan.net", - "URL": "https://swanny.is-a.dev" + "CNAME": "swannyisadev.andrewswan.net" } -} +} \ No newline at end of file diff --git a/domains/sycured.json b/domains/sycured.json index 3f92e4984..bcf4d1df7 100644 --- a/domains/sycured.json +++ b/domains/sycured.json @@ -1,9 +1,9 @@ { - "owner": { - "username": "sycured", - "email": "sycured@protonmail.com" - }, - "record": { - "URL": "https://sycured.com" - } -} + "owner": { + "username": "sycured", + "email": "sycured@protonmail.com" + }, + "record": { + "URL": "https://sycured.com" + } +} \ No newline at end of file diff --git a/domains/tharindu.json b/domains/tharindu.json index 455011b92..d801c75c4 100644 --- a/domains/tharindu.json +++ b/domains/tharindu.json @@ -1,12 +1,11 @@ { - "description": "Tharindu's personal developer website", - "repo": "https://github.com/tharindusathis/tharindu", - "owner": { - "username": "tharindusathis", - "email": "tharindu.sathis@gmail.com" - }, - "record": { - "CNAME": "tharindu.vercel.app", - "URL": "https://tharindu.is-a.dev" - } -} + "description": "Tharindu's personal developer website", + "repo": "https://github.com/tharindusathis/tharindu", + "owner": { + "username": "tharindusathis", + "email": "tharindu.sathis@gmail.com" + }, + "record": { + "CNAME": "tharindu.vercel.app" + } +} \ No newline at end of file diff --git a/domains/thesct22.json b/domains/thesct22.json new file mode 100644 index 000000000..5d269ac2b --- /dev/null +++ b/domains/thesct22.json @@ -0,0 +1,11 @@ +{ + "description": "Social media website project", + "repo": "https://github.com/thesct22", + "owner": { + "username": "thesct22", + "email": "sharathct22@gmail.com" + }, + "record": { + "CNAME": "34.67.228.107.xip.io" + } +} \ No newline at end of file diff --git a/domains/tim.json b/domains/tim.json index a0eb45dbb..3fae5e3c5 100644 --- a/domains/tim.json +++ b/domains/tim.json @@ -8,4 +8,4 @@ "record": { "CNAME": "toum.me" } -} +} \ No newline at end of file diff --git a/domains/tjr.json b/domains/tjr.json index 4b4a6010c..c68f38b49 100644 --- a/domains/tjr.json +++ b/domains/tjr.json @@ -1,9 +1,9 @@ { - "owner": { - "username": "tjrgg", - "email": "hello@tjrgg.co" - }, - "record": { - "URL": "https://tjrgg.co" - } -} + "owner": { + "username": "tjrgg", + "email": "hello@tjrgg.co" + }, + "record": { + "URL": "https://tjrgg.co" + } +} \ No newline at end of file diff --git a/domains/tjrgg.json b/domains/tjrgg.json index 4b4a6010c..c68f38b49 100644 --- a/domains/tjrgg.json +++ b/domains/tjrgg.json @@ -1,9 +1,9 @@ { - "owner": { - "username": "tjrgg", - "email": "hello@tjrgg.co" - }, - "record": { - "URL": "https://tjrgg.co" - } -} + "owner": { + "username": "tjrgg", + "email": "hello@tjrgg.co" + }, + "record": { + "URL": "https://tjrgg.co" + } +} \ No newline at end of file diff --git a/domains/tokyo.json b/domains/tokyo.json index fb1814029..b4ed0bda2 100644 --- a/domains/tokyo.json +++ b/domains/tokyo.json @@ -6,7 +6,6 @@ "email": "ahmed.tokyo1@gmail.com" }, "record": { - "CNAME": "a-tokyo.github.io", - "URL": "https://tokyo.is-a.dev" + "CNAME": "a-tokyo.github.io" } -} +} \ No newline at end of file diff --git a/domains/tom.json b/domains/tom.json index f97d865bb..c4d41bfbc 100644 --- a/domains/tom.json +++ b/domains/tom.json @@ -7,4 +7,4 @@ "record": { "URL": "https://github.com/tommitchelmore" } -} +} \ No newline at end of file diff --git a/domains/tomas.json b/domains/tomas.json index b14ef1090..d45dce23e 100644 --- a/domains/tomas.json +++ b/domains/tomas.json @@ -1,10 +1,10 @@ { - "description": "Tomas's personal developer website", - "owner": { - "username": "Tomas Ukrinas", - "email": "tomas@ukrinas.eu" - }, - "record": { - "CNAME": "ukrinas.eu" - } -} + "description": "Tomas's personal developer website", + "owner": { + "username": "Tomas Ukrinas", + "email": "tomas@ukrinas.eu" + }, + "record": { + "CNAME": "ukrinas.eu" + } +} \ No newline at end of file diff --git a/domains/tsull360.json b/domains/tsull360.json index 0bda80bfe..5cb43d254 100644 --- a/domains/tsull360.json +++ b/domains/tsull360.json @@ -1,12 +1,11 @@ { - "description": "Tim's personal website", - "repo": "https://github.com/tsull360/tsull360.github.io", - "owner": { - "username": "tsull360", - "email": "tsull360@outlook.com" - }, - "record": { - "CNAME": "tsull360.github.io", - "URL": "https://tsull360.is-a.dev" - } -} + "description": "Tim's personal website", + "repo": "https://github.com/tsull360/tsull360.github.io", + "owner": { + "username": "tsull360", + "email": "tsull360@outlook.com" + }, + "record": { + "CNAME": "tsull360.github.io" + } +} \ No newline at end of file diff --git a/domains/tyler.json b/domains/tyler.json index 804841038..e4845cd36 100644 --- a/domains/tyler.json +++ b/domains/tyler.json @@ -1,12 +1,11 @@ { - "description": "Tyler McCarthy is a Developer!", - "repo": "https://github.com/tmccarthyj", - "owner": { - "username": "tmccarthyj", - "email": "tyler@tjm.dev" - }, - "record": { - "CNAME": "tjm.dev", - "URL": "https://tyler.is-a.dev" - } + "description": "Tyler McCarthy is a Developer!", + "repo": "https://github.com/tmccarthyj", + "owner": { + "username": "tmccarthyj", + "email": "tyler@tjm.dev" + }, + "record": { + "CNAME": "tjm.dev" + } } \ No newline at end of file diff --git a/domains/val.json b/domains/val.json new file mode 100644 index 000000000..97c087a35 --- /dev/null +++ b/domains/val.json @@ -0,0 +1,11 @@ +{ + "description": "Portfolio website", + "repo": "https://github.com/Btwonu/btwonu.github.io", + "owner": { + "username": "Btwonu", + "email": "btwonu@gmail.com" + }, + "record": { + "CNAME": "btwonu.github.io" + } +} \ No newline at end of file diff --git a/domains/vaskian.json b/domains/vaskian.json index f3d371e95..cc082b284 100644 --- a/domains/vaskian.json +++ b/domains/vaskian.json @@ -8,4 +8,4 @@ "record": { "URL": "https://vaskian.me/" } -} +} \ No newline at end of file diff --git a/domains/vikyaiyer.json b/domains/vikyaiyer.json new file mode 100644 index 000000000..235c045ad --- /dev/null +++ b/domains/vikyaiyer.json @@ -0,0 +1,11 @@ +{ + "description": "Vignesh Aiyer is a Developer!", + "repo": "https://github.com/vikyaiyer/jekyll-theme-minimal-resume", + "owner": { + "username": "vikyaiyer", + "email": "vikyaiyer1997@gmail.com" + }, + "record": { + "CNAME": "vikyaiyer.github.io" + } +} \ No newline at end of file diff --git a/domains/vivekkumar.json b/domains/vivekkumar.json index c7048deaa..8883bdcd0 100644 --- a/domains/vivekkumar.json +++ b/domains/vivekkumar.json @@ -1,13 +1,11 @@ { - "description": "Vivek's portfolio website", - "repo": "https://github.com/VivekKumarNeu/VivekKumarNeu.github.io", - "owner": { - "username": "vivekkumarneu", - "email": "vivek-kumar@live.in" - }, - "record": { - "CNAME": "VivekKumarNeu.github.io", - "URL": "https://vivekkumar.is-a.dev" - } + "description": "Vivek's portfolio website", + "repo": "https://github.com/VivekKumarNeu/VivekKumarNeu.github.io", + "owner": { + "username": "vivekkumarneu", + "email": "vivek-kumar@live.in" + }, + "record": { + "CNAME": "VivekKumarNeu.github.io" } - \ No newline at end of file +} \ No newline at end of file diff --git a/domains/wind.json b/domains/wind.json new file mode 100644 index 000000000..59f3baf85 --- /dev/null +++ b/domains/wind.json @@ -0,0 +1,10 @@ +{ + "description": "WindTR's Website", + "owner": { + "username": "WindTR", + "email": "westselim20@gmail.com" + }, + "record": { + "URL": "https://wind.js.org" + } +} diff --git a/domains/www.json b/domains/www.json index 359253458..9a1a0a3b4 100644 --- a/domains/www.json +++ b/domains/www.json @@ -8,4 +8,4 @@ "record": { "CNAME": "is-a-dev.github.io" } -} +} \ No newline at end of file diff --git a/domains/yiro.json b/domains/yiro.json new file mode 100644 index 000000000..373203ecc --- /dev/null +++ b/domains/yiro.json @@ -0,0 +1,11 @@ +{ + "description": "Yinier's personal developer website", + "repo": "https://github.com/yrmartinez/yrmartinez.github.io", + "owner": { + "username": "yrmartinez", + "email": "yiromartinez91@gmail.com" + }, + "record": { + "CNAME": "yrmartinez.github.io" + } +} \ No newline at end of file diff --git a/domains/yorodm.json b/domains/yorodm.json index 2c4e81a6d..8c3852dcd 100644 --- a/domains/yorodm.json +++ b/domains/yorodm.json @@ -6,7 +6,6 @@ "email": "yoandy.rmartinez@gmail.com" }, "record": { - "CNAME": "yorodm.github.io", - "URL": "https://yorodm.is-a.dev" + "CNAME": "yorodm.github.io" } -} +} \ No newline at end of file diff --git a/domains/yujia.json b/domains/yujia.json index 4d56109d9..c8fcc98ab 100644 --- a/domains/yujia.json +++ b/domains/yujia.json @@ -1,12 +1,11 @@ -{ - "description": "Yujia's Magic", - "repo": "https://github.com/YujiaY", - "owner": { - "username": "YujiaY", - "email": "aujackyuan@gmail.com" - }, - "record": { - "CNAME": "YujiaY.github.io", - "URL": "https://yujia.is-a.dev" - } +{ + "description": "Yujia's Magic", + "repo": "https://github.com/YujiaY", + "owner": { + "username": "YujiaY", + "email": "aujackyuan@gmail.com" + }, + "record": { + "CNAME": "YujiaY.github.io" + } } \ No newline at end of file diff --git a/domains/yuksel.json b/domains/yuksel.json index 5e110378e..4ae5e5ae9 100644 --- a/domains/yuksel.json +++ b/domains/yuksel.json @@ -6,7 +6,6 @@ "email": "admin@yukselbeyti.com" }, "record": { - "CNAME": "yuks.github.io", - "URL": "https://yuksel.is-a.dev" + "CNAME": "yuks.github.io" } -} +} \ No newline at end of file diff --git a/domains/yusuf.json b/domains/yusuf.json index d69bddd05..3ac0a3074 100644 --- a/domains/yusuf.json +++ b/domains/yusuf.json @@ -6,7 +6,6 @@ "email": "yahumble1@gmail.com" }, "record": { - "CNAME": "yaofficial.github.io", - "URL": "https://yusuf.is-a.dev" + "CNAME": "yaofficial.github.io" } -} +} \ No newline at end of file diff --git a/package.json b/package.json index 8a92a77a1..210d2b343 100644 --- a/package.json +++ b/package.json @@ -4,14 +4,15 @@ "description": "Register *.is-a.dev domains for free", "scripts": { "test": "ENV=test jest", + "lint": "eslint utils scripts domains --ext .json,.js", "publish-records": "node ./scripts/register-domains.js" }, "repository": { "type": "git", - "url": "https://github.com/is-a.dev/register-domain" + "url": "https://github.com/is-a-dev/register" }, "keywords": [ - "__" + "subdomain" ], "author": "Akshay Nair ", "license": "GPL-3.0", @@ -19,6 +20,12 @@ "dotenv": "^8.2.0", "jest": "^26.4.2", "node-fetch": "^2.6.1", + "qs": "^6.9.4", "ramda": "^0.27.1" + }, + "devDependencies": { + "eslint": "^7.11.0", + "eslint-plugin-json": "^2.1.2", + "eslint-plugin-node": "^11.1.0" } } diff --git a/scripts/migrate.js b/scripts/migrate.js index e5da7ebf5..ed2d87185 100644 --- a/scripts/migrate.js +++ b/scripts/migrate.js @@ -1,13 +1,13 @@ const fs = require('fs'); const path = require('path'); const R = require('ramda'); -const { DOMAINS_PATH } = require('./utils/constants'); +const { DOMAINS_PATH } = require('../utils/constants'); const migrate = ([file, domain]) => [ file, { ...domain, - record: /\.github\.io$/.test(domain.record.CNAME || '') + record: /\.is-a\.dev$/.test(domain.record.URL || '') ? R.dissoc('URL', domain.record) : domain.record, } diff --git a/scripts/register-domains.js b/scripts/register-domains.js index 00626092f..69435063c 100644 --- a/scripts/register-domains.js +++ b/scripts/register-domains.js @@ -1,7 +1,7 @@ const R = require('ramda'); const { VALID_RECORD_TYPES, TTL, ENV } = require('../utils/constants'); const { domainService: dc } = require('../utils/domain-service'); -const { getDomains: gd } = require('../utils/domain'); +const { getDomains: gd } = require('../utils/get-domain'); const getRecords = R.compose(R.toPairs, R.pick(VALID_RECORD_TYPES)); diff --git a/scripts/reply.js b/scripts/reply.js index 9c5fc11b2..78942784a 100644 --- a/scripts/reply.js +++ b/scripts/reply.js @@ -2,7 +2,7 @@ const getInstructions = () => ` The changes have been published!! It should reflect in less than 24 hours. -## Here\'s what you need to do next +## Here's what you need to do next If your domain points to a server you own, add \`domain-name.is-a.dev\` to your server config. For https, you will have to configure ssl certificate to allow the new subdomain. @@ -11,18 +11,18 @@ If your domain points to a server you own, add \`domain-name.is-a.dev\` to your * Open up the **settings** tab * Scroll down to the **Github pages** section * In the **Custom domain** text input, enter the domain you registered (\`domain-name.is-a.dev\`) -* Check the 'Enforce HTTPS' checkbox below the input +* Check the **Enforce HTTPS** checkbox below the input * Give it some time to reflect and you should be good to go ## Need support with your domain? -If you are having trouble setting up your domain, [create an issue](https://github.com/is-a-dev/register/issues/new/choose). I\'ll try my best to get back to you asap! +If you're having trouble setting up your domain, [create an issue](https://github.com/is-a-dev/register/issues/new/choose). I'll try my best to get back to you asap! ## Love/Hate the service? **Love it?** Leave it a **star**! Also consider **[donating](https://github.com/is-a-dev/register#donations)** so that I can keep this service running forever. -**Hate it?** Please leave your feedback by [creating an issue](https://github.com/is-a-dev/register/issues/new/choose). I\'d really like to keep improving this service for developers. +**Hate it?** Please leave your feedback by [creating an issue](https://github.com/is-a-dev/register/issues/new/choose). I'd really like to keep improving this service for developers. `; module.exports = { diff --git a/tests/cpanel.test.js b/tests/cpanel.test.js index f92ce51d3..d2fbd35a3 100644 --- a/tests/cpanel.test.js +++ b/tests/cpanel.test.js @@ -88,6 +88,33 @@ describe('Cpanel client', () => { }); }); + describe('addzonerecord', () => { + it('should make the correct request', async () => { + const fetch = mockFetch((url, request) => { + expect(url).toBe('https://example.com:2000/json-api/cpanel?domain=a.b&line=500&cpanel_jsonapi_user=boy&cpanel_jsonapi_module=ZoneEdit&cpanel_jsonapi_func=remove_zone_record&cpanel_jsonapi_apiversion=2'); + expect(request).toEqual({ + headers: { + Authorization: 'cpanel boy:boybyebye', + }, + rejectUnauthorized: false, + }); + }); + + const cpanel = CpanelClient({ + host: 'example.com', + port: 2000, + username: 'boy', + apiKey: 'boybyebye', + domain: 'a.b', + dependencies: { fetch }, + }); + + await cpanel.zone.remove({ + line: 500, + }); + }); + }); + describe('fetchredirections', () => { it('should make the correct request', async () => { const fetch = mockFetch((url, request) => { @@ -139,5 +166,30 @@ describe('Cpanel client', () => { }); }); }); + + describe('deleteredirection', () => { + it('should make the correct request', async () => { + const fetch = mockFetch((url, request) => { + expect(url).toBe('https://example.com:2000/execute/Mime/delete_redirect?domain=googo&cpanel_jsonapi_user=boy&cpanel_jsonapi_module=Mime&cpanel_jsonapi_func=delete_redirect&cpanel_jsonapi_apiversion=2'); + expect(request).toEqual({ + headers: { + Authorization: 'cpanel boy:boybyebye', + }, + rejectUnauthorized: false, + }); + }); + + const cpanel = CpanelClient({ + host: 'example.com', + port: 2000, + username: 'boy', + apiKey: 'boybyebye', + domain: 'a.b', + dependencies: { fetch }, + }); + + await cpanel.redirection.remove({ domain: 'googo' }); + }); + }); }); diff --git a/tests/domain-service.test.js b/tests/domain-service.test.js index 19154db6e..d51c0916f 100644 --- a/tests/domain-service.test.js +++ b/tests/domain-service.test.js @@ -2,16 +2,16 @@ const R = require('ramda'); const { getDomainService, diffRecords } = require('../utils/domain-service'); const {DOMAIN_DOMAIN} = require('../utils/constants'); -const getCpanel = ({ zone, addZone, editZone, redir, addRedir, editRedir } = {}) => ({ +const getCpanel = ({ zone, addZone, removeZone, redir, addRedir, removeRedir } = {}) => ({ zone: { fetch: (_) => zone(), add: (rec) => addZone(rec), - edit: (rec) => editZone(rec), + remove: (rec) => removeZone(rec), }, redirection: { fetch: (_) => redir(), add: (rec) => addRedir(rec), - edit: (rec) => editRedir(rec), + remove: (rec) => removeRedir(rec), }, }); @@ -29,7 +29,7 @@ describe('diffRecords', () => { const result = diffRecords(oldRecords, newRecords); expect(result).toEqual({ - edit: [], + remove: [], add: [ { name: 'boo', type: 'CNAME', address: 'x.com' }, ], @@ -48,10 +48,12 @@ describe('diffRecords', () => { const result = diffRecords(oldRecords, newRecords); expect(result).toEqual({ - edit: [ + remove: [ + { name: 'xa', type: 'A', address: '111.1.1212.1' }, + ], + add: [ { name: 'xa', type: 'A', address: '69.69.69.69' }, ], - add: [], }); }); @@ -68,36 +70,67 @@ describe('diffRecords', () => { const result = diffRecords(oldRecords, newRecords); expect(result).toEqual({ - edit: [], + remove: [], add: [ { name: 'xa', type: 'A', address: '69.69.4.20' }, ], }); }); + + it('should diff complex changes', () => { + const oldRecords = [ + { name: 'a', type: 'CNAME', address: 'fck.com.' }, + { name: 'b', type: 'A', address: '69.69.69.69' }, + { name: '111', type: 'CNAME', address: 'x' }, + { name: 'd', type: 'A', address: '69.69.4.20' }, + ]; + const newRecords = [ + { name: '111', type: 'CNAME', address: 'x' }, + { name: 'd', type: 'CNAME', address: 'duck.com' }, + { name: 'a', type: 'CNAME', address: 'og.com' }, + { name: 'b', type: 'A', address: '69.69.69.69' }, + { name: 'b', type: 'A', address: '69.69.4.20' }, + { name: 'c', type: 'CNAME', address: 'ccc.cc' }, + ]; + + const result = diffRecords(oldRecords, newRecords); + expect(result).toEqual({ + remove: [ + { name: 'a', type: 'CNAME', address: 'fck.com.' }, + { name: 'd', type: 'A', address: '69.69.4.20' }, + ], + add: [ + { name: 'd', type: 'CNAME', address: 'duck.com' }, + { name: 'a', type: 'CNAME', address: 'og.com' }, + { name: 'b', type: 'A', address: '69.69.4.20' }, + { name: 'c', type: 'CNAME', address: 'ccc.cc' }, + ], + }); + }); }); describe('Domain service', () => { const addZone = jest.fn(async () => ({})); - const editZone = jest.fn(async () => ({})); + const removeZone = jest.fn(async () => ({})); const addRedir = jest.fn(async () => ({})); - const editRedir = jest.fn(async () => ({})); + const removeRedir = jest.fn(async () => ({})); const mockDS = ({ zones, redirections }) => getDomainService({ cpanel: getCpanel({ zone: async () => zones, redir: async () => redirections, addZone, addRedir, - editZone, - editRedir, + removeZone, + removeRedir, }) }); - const getRecordCalls = recfn => recfn.mock.calls.map(R.head).map(R.pick(['name', 'type', 'address', 'redirect', 'domain'])); + const getRecordCalls = recfn => recfn.mock.calls.map(R.head).map(R.pick(['name', 'type', 'address', 'redirect', 'domain', 'line'])); beforeEach(() => { addZone.mockClear(); - editZone.mockClear(); + removeZone.mockClear(); addRedir.mockClear(); - editRedir.mockClear(); + removeRedir.mockClear(); }); describe('getHosts', () => { @@ -120,8 +153,8 @@ describe('Domain service', () => { it('should resolve with a redirections', async () => { const zones = [ - { name: 'xx', type: 'CNAME', address: 'fck.com.' }, - { name: 'xx', type: 'A', address: '111.1.1212.1' }, + { line: '111', name: 'xx', type: 'CNAME', address: 'fck.com.' }, + { line: '112', name: 'xx', type: 'A', address: '111.1.1212.1' }, ]; const redirections = [ { domain: 'foo.booboo.xyz', destination: 'https://google.com' }, @@ -133,10 +166,10 @@ describe('Domain service', () => { const list = await mockDomainService.getHosts(); expect(list).toEqual([ - { name: 'xx', type: 'CNAME', address: 'fck.com' }, - { name: 'xx', type: 'A', address: '111.1.1212.1' }, - { name: 'foo', type: 'URL', address: 'https://google.com' }, - { name: 'foo1', type: 'URL', address: 'https://duck.com' }, + { id: '111', name: 'xx', type: 'CNAME', address: 'fck.com' }, + { id: '112', name: 'xx', type: 'A', address: '111.1.1212.1' }, + { id: `foo.${DOMAIN_DOMAIN}`, name: 'foo', type: 'URL', address: 'https://google.com' }, + { id: `foo1.${DOMAIN_DOMAIN}`, name: 'foo1', type: 'URL', address: 'https://duck.com' }, ]); }); }); @@ -144,8 +177,8 @@ describe('Domain service', () => { describe('updateHosts', () => { it('should append new hosts with existing ones and set it', async () => { const zones = [ - { someid: 1, name: 'a', type: 'CNAME', address: 'boo' }, - { someid: 2, name: 'b', type: 'CNAME', address: 'goo' }, + { line: 1, name: 'a', type: 'CNAME', address: 'boo' }, + { line: 2, name: 'b', type: 'CNAME', address: 'goo' }, ]; const redirections = []; @@ -160,13 +193,13 @@ describe('Domain service', () => { expect(getRecordCalls(addZone)).toEqual([ { name: 'c', type: 'A', address: '12.131321.213' }, ]); - expect(editZone).toBeCalledTimes(0); + expect(removeZone).toBeCalledTimes(0); }); it('should update matching host and set it', async () => { const zones = [ - { someid: 1, name: 'a', type: 'CNAME', address: 'boo' }, - { someid: 2, name: 'b', type: 'CNAME', address: 'goo' }, + { line: 1, name: 'a', type: 'CNAME', address: 'boo' }, + { line: 2, name: 'b', type: 'CNAME', address: 'goo' }, ]; const redirections = []; @@ -176,18 +209,21 @@ describe('Domain service', () => { { name: 'b', type: 'CNAME', address: 'googoogaga' }, ]); - expect(addZone).toBeCalledTimes(0); - expect(editZone).toBeCalledTimes(1); - expect(getRecordCalls(editZone)).toEqual([ + expect(addZone).toBeCalledTimes(1); + expect(getRecordCalls(addZone)).toEqual([ { name: 'b', type: 'CNAME', address: 'googoogaga' }, ]); + expect(removeZone).toBeCalledTimes(1); + expect(getRecordCalls(removeZone)).toEqual([ + { line: 2 }, + ]); }); it('should update matching host and set it', async () => { const zones = [ - { someid: 1, name: 'a', type: 'CNAME', address: 'boo' }, - { someid: 2, name: 'b', type: 'CNAME', address: 'goo' }, - { someid: 2, name: 'b', type: 'CNAME', address: 'xaa' }, + { line: 1, name: 'a', type: 'CNAME', address: 'boo' }, + { line: 2, name: 'b', type: 'CNAME', address: 'goo' }, + { line: 3, name: 'b', type: 'CNAME', address: 'xaa' }, ]; const redirections = []; @@ -198,20 +234,24 @@ describe('Domain service', () => { { name: 'b', type: 'CNAME', address: 'farboo' }, ]); - expect(addZone).toBeCalledTimes(0); - expect(editZone).toBeCalledTimes(2); - expect(getRecordCalls(editZone)).toEqual([ + expect(addZone).toBeCalledTimes(2); + expect(getRecordCalls(addZone)).toEqual([ { name: 'b', type: 'CNAME', address: 'googoogaga' }, { name: 'b', type: 'CNAME', address: 'farboo' }, ]); + expect(removeZone).toBeCalledTimes(2); + expect(getRecordCalls(removeZone)).toEqual([ + { line: 2 }, + { line: 3 }, + ]); }); it('should workout this complex example', async () => { const zones = [ - { someid: 1, name: 'a', type: 'CNAME', address: 'world' }, - { someid: 2, name: 'b', type: 'A', address: '1' }, - { someid: 2, name: 'b', type: 'A', address: '2' }, - { someid: 2, name: 'c', type: 'CNAME', address: 'hello.com' }, + { line: 1, name: 'a', type: 'CNAME', address: 'world' }, + { line: 2, name: 'b', type: 'A', address: '1' }, + { line: 3, name: 'b', type: 'A', address: '2' }, + { line: 4, name: 'c', type: 'CNAME', address: 'hello.com' }, ]; const redirections = [ { domain: `b.${DOMAIN_DOMAIN}`, destination: 'https://foobar.com' }, @@ -233,24 +273,27 @@ describe('Domain service', () => { { name: 'x', type: 'URL', address: 'https://example69.com' }, ]); - expect(addZone).toBeCalledTimes(2); - expect(editZone).toBeCalledTimes(1); - expect(addRedir).toBeCalledTimes(1); - expect(editRedir).toBeCalledTimes(2); + expect(addZone).toBeCalledTimes(3); expect(getRecordCalls(addZone)).toEqual([ - { name: 'b', type: 'A', address: '3' }, - { name: 'd', type: 'CNAME', address: 'helo.com' } - ]); - expect(getRecordCalls(editZone)).toEqual([ { name: 'a', type: 'CNAME', address: 'boo' }, + { name: 'b', type: 'A', address: '3' }, + { name: 'd', type: 'CNAME', address: 'helo.com' }, ]); + expect(removeZone).toBeCalledTimes(1); + expect(getRecordCalls(removeZone)).toEqual([ + { line: 1 }, + ]); + expect(addRedir).toBeCalledTimes(3); expect(getRecordCalls(addRedir)).toEqual([ - { domain: `d.${DOMAIN_DOMAIN}`, type: 'permanent', redirect: 'https://hhh.com' }, - ]); - expect(getRecordCalls(editRedir)).toEqual([ { domain: `b.${DOMAIN_DOMAIN}`, type: 'permanent', redirect: 'https://wowow.com' }, + { domain: `d.${DOMAIN_DOMAIN}`, type: 'permanent', redirect: 'https://hhh.com' }, { domain: `x.${DOMAIN_DOMAIN}`, type: 'permanent', redirect: 'https://example69.com' }, ]); + expect(removeRedir).toBeCalledTimes(2); + expect(getRecordCalls(removeRedir)).toEqual([ + { domain: `b.${DOMAIN_DOMAIN}` }, + { domain: `x.${DOMAIN_DOMAIN}` }, + ]); }); }); }); diff --git a/tests/domain-utils.test.js b/tests/domain-utils.test.js index 8dfbbacb8..077896726 100644 --- a/tests/domain-utils.test.js +++ b/tests/domain-utils.test.js @@ -1,4 +1,4 @@ -const { getDomains, validateDomainData } = require('../utils/domain'); +const { getDomains } = require('../utils/get-domain'); describe('getDomains', () => { it('should resolve with the list of domains', async () => { @@ -7,63 +7,3 @@ describe('getDomains', () => { }); }); -const defaultDomain = { - name: 'aaa', - record: { - A: ['121.121.121.121'] - }, - owner: { - username: 'betsy', - email: 'betsyfuckyoassup@foobar.com', - }, -}; - -const getstroflen = len => Array(len).fill('a').join(''); - -describe('validateDomainData', () => { - const invalidCases = [ - {}, - { name: 'helo' }, - { name: 'wwow', record: { A: ['12312'] } }, - ...['', ' ', undefined, 'hlo wld', 'g32++13', 'ajsdD_123yq', 'khsda%', '122*dsd', getstroflen(101)].map(name => ({ - ...defaultDomain, - name, - })), - { ...defaultDomain, record: { CNAME: 'sd', A: ['121,3213'] } }, - { ...defaultDomain, record: { A: ['121', '12'], FOOBAR: ['sd'] } }, - { ...defaultDomain, owner: {}, }, - { ...defaultDomain, owner: { username: 'hwelo', }, }, - { ...defaultDomain, owner: { email: 'hwelo' }, }, - ]; - - const validCases = [ - defaultDomain, - ...['hello', 'hello-world', '11111111111', '--wow--', 'wow--', '--wow'].map(name => ({ - ...defaultDomain, - name, - })), - { - ...defaultDomain, - description: getstroflen(99), - }, - { ...defaultDomain, record: { CNAME: 'sd', URL: '121,3213' } }, - ]; - - it('should return false for invalid data', () => { - invalidCases.forEach(data => { - const { valid, errors } = validateDomainData(data); - expect(valid).toBe(false); - expect(errors.length).toBeGreaterThan(0); - }); - }); - - it('should return true if the name is valid', () => { - validCases.forEach(data => { - const { valid, errors } = validateDomainData(data); - if (!valid) console.log(errors); - expect(valid).toBe(true); - expect(errors).toEqual([]); - }); - }); -}); - diff --git a/tests/domains.test.js b/tests/domains.test.js index 7f219fec4..6c58d7037 100644 --- a/tests/domains.test.js +++ b/tests/domains.test.js @@ -1,6 +1,7 @@ const R = require('ramda'); const fs = require('fs'); -const { getDomains, validateDomainData } = require('../utils/domain'); +const { getDomains } = require('../utils/get-domain'); +const { validateDomainData } = require('../utils/validations'); const { DOMAINS_PATH } = require('../utils/constants'); describe('Domains', () => { diff --git a/tests/register.test.js b/tests/register.test.js index 0a87f2f4e..68c15e5be 100644 --- a/tests/register.test.js +++ b/tests/register.test.js @@ -3,16 +3,16 @@ const { toHostList, registerDomains } = require('../scripts/register-domains'); const { TTL, DOMAIN_DOMAIN } = require('../utils/constants'); const { getDomainService } = require('../utils/domain-service'); -const getCpanel = ({ zone, addZone, editZone, redir, addRedir, editRedir } = {}) => ({ +const getCpanel = ({ zone, addZone, removeZone, redir, addRedir, removeRedir } = {}) => ({ zone: { fetch: (_) => zone(), add: (rec) => addZone(rec), - edit: (rec) => editZone(rec), + remove: (rec) => removeZone(rec), }, redirection: { fetch: (_) => redir(), add: (rec) => addRedir(rec), - edit: (rec) => editRedir(rec), + remove: (rec) => removeRedir(rec), }, }); @@ -36,24 +36,24 @@ describe('toHostList', () => { describe('registerDomains', () => { const addZone = jest.fn(async () => ({})); - const editZone = jest.fn(async () => ({})); + const removeZone = jest.fn(async () => ({})); const addRedir = jest.fn(async () => ({})); - const editRedir = jest.fn(async () => ({})); + const removeRedir = jest.fn(async () => ({})); const mockDS = ({ zones, redirections }) => getDomainService({ cpanel: getCpanel({ zone: async () => zones, redir: async () => redirections, addZone, addRedir, - editZone, - editRedir, + removeZone, + removeRedir, }) }); beforeEach(() => { addZone.mockClear(); - editZone.mockClear(); + removeZone.mockClear(); addRedir.mockClear(); - editRedir.mockClear(); + removeRedir.mockClear(); }); it('should register the new set of hosts generated from domains list', async () => { @@ -62,9 +62,9 @@ describe('registerDomains', () => { { name: 'b', record: { CNAME: 'xaa' } }, ]; const remoteHosts = [ - { someididk: 1, name: 'a', type: 'CNAME', address: 'hello' }, - { someididk: 2, name: 'b', type: 'CNAME', address: 'goo' }, - { someididk: 2, name: 'b', type: 'CNAME', address: 'xaa' }, + { line: 1, name: 'a', type: 'CNAME', address: 'hello' }, + { line: 2, name: 'b', type: 'CNAME', address: 'goo' }, + { line: 3, name: 'b', type: 'CNAME', address: 'xaa' }, ]; const remoteRedirections = []; @@ -72,9 +72,9 @@ describe('registerDomains', () => { await registerDomains({ getDomains: async () => localHosts, domainService }); expect(addZone).toBeCalledTimes(0); - expect(editZone).toBeCalledTimes(0); + expect(removeZone).toBeCalledTimes(1); expect(addRedir).toBeCalledTimes(0); - expect(editRedir).toBeCalledTimes(0); + expect(removeRedir).toBeCalledTimes(0); }); it('should add the new set hosts', async () => { @@ -84,8 +84,8 @@ describe('registerDomains', () => { { name: 'c', record: { CNAME: 'yello', URL: 'https://google.com' } }, ]; const remoteHosts = [ - { someididk: 1, name: 'a', type: 'CNAME', address: 'boo' }, - { someididk: 2, name: 'b', type: 'CNAME', address: 'xaa' }, + { line: 1, name: 'a', type: 'CNAME', address: 'boo' }, + { line: 2, name: 'b', type: 'CNAME', address: 'xaa' }, ]; const remoteRedirections = [ { domain: `b.${DOMAIN_DOMAIN}`, destination: 'x' }, @@ -96,9 +96,9 @@ describe('registerDomains', () => { await registerDomains({ getDomains: async () => localHosts, domainService }); expect(addZone).toBeCalledTimes(1); - expect(editZone).toBeCalledTimes(0); - expect(addRedir).toBeCalledTimes(1); - expect(editRedir).toBeCalledTimes(1); + expect(removeZone).toBeCalledTimes(0); + expect(addRedir).toBeCalledTimes(2); + expect(removeRedir).toBeCalledTimes(1); }); }); diff --git a/tests/validations.test.js b/tests/validations.test.js new file mode 100644 index 000000000..057ffc3c8 --- /dev/null +++ b/tests/validations.test.js @@ -0,0 +1,66 @@ +const { validateDomainData } = require('../utils/validations'); + +const defaultDomain = { + name: 'aaa', + record: { + A: ['121.121.121.121'] + }, + owner: { + username: 'betsy', + email: 'betsyfuckyoassup@foobar.com', + }, +}; + +const getstroflen = len => Array(len).fill('a').join(''); + +describe('validateDomainData', () => { + const invalidCases = [ + {}, + { name: 'helo' }, + { name: 'wwow', record: { A: ['12312'] } }, + ...['', ' ', undefined, 'hlo wld', 'g32++13', 'ajsdD_123yq', 'khsda%', '122*dsd', getstroflen(101)].map(name => ({ + ...defaultDomain, + name, + })), + { ...defaultDomain, record: { CNAME: 'sd', A: ['121,3213'] } }, + { ...defaultDomain, record: { A: ['121', '12'], FOOBAR: ['sd'] } }, + { ...defaultDomain, record: { A: [] } }, + { ...defaultDomain, record: { A: ['11122'], URL: 'foobar' } }, + { ...defaultDomain, owner: {}, }, + { ...defaultDomain, owner: { username: 'hwelo', }, }, + { ...defaultDomain, owner: { email: 'hwelo' }, }, + { ...defaultDomain, record: { CNAME: 'http://foobar.com' } }, + { ...defaultDomain, record: { CNAME: 'https://foobar.com' } }, + ]; + + const validCases = [ + defaultDomain, + ...['hello', 'hello-world', '11111111111', '--wow--', 'wow--', '--wow'].map(name => ({ + ...defaultDomain, + name, + })), + { + ...defaultDomain, + description: getstroflen(99), + }, + { ...defaultDomain, record: { CNAME: 'aa.sd', URL: '121,3213' } }, + ]; + + it('should return false for invalid data', () => { + invalidCases.forEach(data => { + const { valid, errors } = validateDomainData(data); + expect(valid).toBe(false); + expect(errors.length).toBeGreaterThan(0); + }); + }); + + it('should return true if the name is valid', () => { + validCases.forEach(data => { + const { valid, errors } = validateDomainData(data); + if (!valid) console.log(errors); + expect(valid).toBe(true); + expect(errors).toEqual([]); + }); + }); +}); + diff --git a/utils/constants.js b/utils/constants.js index 086bb0f29..f3ef2b6ac 100644 --- a/utils/constants.js +++ b/utils/constants.js @@ -6,7 +6,13 @@ if (!CI) { require('dotenv').config({ path: path.resolve(`.env.${ENV}`) }); } -const { DOMAIN_USER, DOMAIN_API_KEY, DOMAIN_DOMAIN, DOMAIN_API_HOST, DOMAIN_API_PORT } = process.env; +const { + DOMAIN_USER, + DOMAIN_API_KEY, + DOMAIN_DOMAIN, + DOMAIN_API_HOST, + DOMAIN_API_PORT, +} = process.env; const IS_TEST = ENV === 'test'; diff --git a/utils/domain-service.js b/utils/domain-service.js index 733ca29b6..984d274cb 100644 --- a/utils/domain-service.js +++ b/utils/domain-service.js @@ -1,8 +1,9 @@ const R = require('ramda'); const { cpanel } = require('./lib/cpanel'); -const { DOMAIN_DOMAIN, IS_TEST } = require('./constants'); +const { DOMAIN_DOMAIN } = require('./constants'); +const { then, log, print, lazyTask, batchLazyTasks } = require('./helpers'); -const log = IS_TEST ? () => {} : console.log; +const BATCH_SIZE = 1; const recordToRedirection = ({ name, address }) => ({ domain: `${name}.${DOMAIN_DOMAIN}`, @@ -11,80 +12,48 @@ const recordToRedirection = ({ name, address }) => ({ redirect_wildcard: 1, redirect_www: 1, }); -const recordToZone = ({ name, type, address, ...rec }) => ({ - ...rec, //line +const recordToZone = ({ name, type, address, id }) => ({ + line: id, name, type, address, ...(type === 'CNAME' ? { cname: address } : {}), }); -const cleanName = name => `${name}`.replace(new RegExp(`\.${DOMAIN_DOMAIN}\.?$`), '').toLowerCase(); +const cleanName = name => `${name}`.replace(new RegExp(`\\.${DOMAIN_DOMAIN}\\.?$`), '').toLowerCase(); -const zoneToRecord = ({ name, type, cname, address, record, ...host }) => ({ - ...host, +const zoneToRecord = ({ name, type, cname, address, record, line: id }) => ({ + id, name: cleanName(name), type: `${type}`, address: `${cname || address || record}`.replace(/\.$/g, '').toLowerCase(), }); const redirectionToRecord = ({ domain, destination }) => ({ + id: domain, name: cleanName(domain), type: 'URL', address: `${destination}`.replace(/\/$/g, ''), }); -const getHostKey = host => `${host.name}##${host.type}`; - -const toHostMap = hosts => hosts.reduce((acc, host) => { - const key = getHostKey(host); - return { ...acc, [key]: [ ...(acc[key] || []), host ] }; -}, {}); +const getHostKey = host => `${host.name}##${host.type}##${host.address}`; const diffRecords = (oldRecords, newRecords) => { - const remoteHostMap = toHostMap(oldRecords); - const localHostMap = toHostMap(newRecords); + const isMatchingRecord = (a, b) => getHostKey(a) === getHostKey(b); - return R.toPairs(localHostMap).reduce((acc, [key, local]) => { - const remote = remoteHostMap[key]; + const remove = R.differenceWith(isMatchingRecord, oldRecords, newRecords); + const add = R.differenceWith(isMatchingRecord, newRecords, oldRecords) + .filter(r => !['www', '@'].includes(r.name)); - if (remote) { - let adds = []; - let edits = []; - - const diff = R.differenceWith((a, b) => a.address === b.address, local, remote); - - if (diff.length === local.length - remote.length) { - adds = diff; - } else { - edits = diff; - } - - return { ...acc, add: acc.add.concat(adds), edit: acc.edit.concat(edits) }; - } - - return { ...acc, add: acc.add.concat(local) }; - }, { add: [], edit: [] }); + return { add, remove }; }; -const lazyTask = fn => data => () => fn(data); - -const batchLazyTasks = count => tasks => tasks.reduce((batches, task) => { - if (batches.length === 0) return [[task]]; - - const full = R.init(batches); - const last = R.last(batches); - - if (last.length >= count) return [...batches, [task]]; - return [...full, [...last, task]]; -}, []); - const executeBatch = (batches) => batches.reduce((promise, batch, index) => { return promise.then(async () => { log('>>> Running batch number:', index + 1, `(size: ${batch.length})`); const values = await Promise.all(batch.map(fn => fn().catch(e => console.error(e)))); - const results = values.map(R.pathOr({}, ['cpanelresult', 'data', 0])); + const results = values.map(data => R.pathOr({ result: data }, ['cpanelresult', 'data', 0], data)); const failed = results.filter(x => (x.result || {}).status != 1); log(`${values.length - failed.length}/${values.length}`); @@ -95,43 +64,54 @@ const executeBatch = (batches) => batches.reduce((promise, batch, index) => { }, Promise.resolve()); const getDomainService = ({ cpanel }) => { - let hostList = []; + const fetchZoneRecords = R.compose(then(R.map(zoneToRecord)), cpanel.zone.fetch); + const fetchRedirections = R.compose(then(R.map(redirectionToRecord)), cpanel.redirection.fetch); - const fetchZoneRecords = () => cpanel.zone.fetch().then(R.map(zoneToRecord)); - const fetchRedirections = () => cpanel.redirection.fetch().then(R.map(redirectionToRecord)); + const addZoneRecord = lazyTask(R.compose( + cpanel.zone.add, + recordToZone, + print(({ name }) => `Adding zone for ${name}...`), + )); + const removeZoneRecord = lazyTask(R.compose( + cpanel.zone.remove, + R.pick(['line']), + recordToZone, + print(({ name }) => `Deleting zone for ${name}...`), + )); + const addRedirection = lazyTask(R.compose( + cpanel.redirection.add, + recordToRedirection, + print(({ name }) => `Adding redirection for ${name}`), + )); + const removeRedirection = lazyTask(R.compose( + cpanel.redirection.remove, + R.pick(['domain']), + recordToRedirection, + print(({ name }) => `Deleting redirection for ${name}`), + )); - const addZoneRecord = lazyTask(R.compose(cpanel.zone.add, recordToZone)); - const editZoneRecord = lazyTask(R.compose(cpanel.zone.edit, recordToZone)); - const addRedirection = lazyTask(R.compose(cpanel.redirection.add, recordToRedirection)); - const editRedirection = lazyTask(R.compose(cpanel.redirection.edit, recordToRedirection)); - - const getHosts = async () => { - if (hostList.length) return hostList; - - const list = await Promise.all([fetchZoneRecords(), fetchRedirections()]).then(R.flatten); - - hostList = list; - return list; - }; - - const BATCH_SIZE = 1; + const getHosts = () => + Promise.all([fetchZoneRecords(), fetchRedirections()]).then(R.flatten); const addRecords = R.compose(batchLazyTasks(BATCH_SIZE), R.filter(Boolean), R.map(R.cond([ - [ R.propEq('name', 'www'), () => null ], + [ R.propEq('name', 'www'), R.always(null) ], // Ignore www [ R.propEq('type', 'URL'), addRedirection ], [ R.T, addZoneRecord ], ]))); - const editRecords = R.compose(batchLazyTasks(BATCH_SIZE), R.map(R.cond([ - [ R.propEq('type', 'URL'), editRedirection ], - [ R.T, editZoneRecord ], + const removeRecords = R.compose(batchLazyTasks(BATCH_SIZE), R.map(R.cond([ + [ R.propEq('type', 'URL'), removeRedirection ], + [ R.T, removeZoneRecord ], ]))); const updateHosts = async hosts => { const remoteHostList = await getHosts(); - const { add, edit } = diffRecords(remoteHostList, hosts); + const { add, remove } = diffRecords(remoteHostList, hosts); - await executeBatch(addRecords(add).concat(editRecords(edit))); - return { additions: add.length, edits: edit.length }; + await executeBatch([ + ...removeRecords(remove), + ...addRecords(add), + ]); + return { added: add.length, removed: remove.length }; }; return { getHosts, updateHosts }; diff --git a/utils/domain.js b/utils/domain.js deleted file mode 100644 index f7819f02a..000000000 --- a/utils/domain.js +++ /dev/null @@ -1,71 +0,0 @@ -const fs = require('fs'); -const path = require('path'); -const R = require('ramda'); -const { VALID_RECORD_TYPES, DOMAINS_PATH } = require('./constants'); - -const log = m => x => console.log(m, x) || x; - -const toDomain = str => path.join(DOMAINS_PATH, str); - -const toDomainData = R.compose(require, toDomain); - -const getDomains = () => - fs.promises.readdir(DOMAINS_PATH, {}) - .then(R.map(name => ({ - ...toDomainData(name), - name: name.replace(/\.json$/, ''), - }))); - -const between = (min, max) => num => num >= min && num <= max; - -const validate = pattern => data => R.compose( - invalidPairs => invalidPairs.length ? { errors: invalidPairs, valid: false } : { errors: [], valid: true }, - R.filter(([key, { fn }]) => fn ? !fn(data[key]) : false), - R.toPairs, -)(pattern); - -const validateNameRecord = type => R.allPass([ - R.compose(R.equals(1), R.length, R.reject(R.equals('URL')), R.keys), - R.propSatisfies(R.is(String), type), -]); - -const validateDomainData = validate({ - name: { - reason: 'The name of the file is invalid', - fn: R.anyPass([ - R.equals('@'), - R.allPass([ - R.compose(between(2, 100), R.length), - str => str && str.match(/^[a-z0-9\-]+$/ig), - ]) - ]), - }, - description: { reason: '', fn: R.T, }, - repo: { reason: '', fn: R.T, }, - owner: { - reason: '`owner` needs username and email properties', - fn: R.allPass([ - R.is(Object), - R.complement(R.isEmpty), - R.where({ - username: R.is(String), - email: R.is(String), - }), - ]), - }, - record: { - reason: 'Invalid record', - fn: R.allPass([ - R.is(Object), - R.compose(R.isEmpty, R.flip(R.difference)(VALID_RECORD_TYPES), R.keys), - R.cond([ - [R.prop('CNAME'), validateNameRecord('CNAME')], - [R.prop('A'), R.propSatisfies(R.is(Array), 'A')], - [R.prop('URL'), R.propSatisfies(R.is(String), 'URL')], - [R.T, R.T], - ]), - ]), - }, -}); - -module.exports = { getDomains, validateDomainData }; diff --git a/utils/get-domain.js b/utils/get-domain.js new file mode 100644 index 000000000..e932aafff --- /dev/null +++ b/utils/get-domain.js @@ -0,0 +1,17 @@ +const fs = require('fs'); +const path = require('path'); +const R = require('ramda'); +const { DOMAINS_PATH } = require('./constants'); + +const toDomain = str => path.join(DOMAINS_PATH, str); + +const toDomainData = R.compose(JSON.parse, R.toString, fs.readFileSync, toDomain); + +const getDomains = () => + fs.promises.readdir(DOMAINS_PATH, {}) + .then(R.map(name => ({ + ...toDomainData(name), + name: name.replace(/\.json$/, ''), + }))); + +module.exports = { getDomains }; diff --git a/utils/helpers.js b/utils/helpers.js new file mode 100644 index 000000000..171dce8cc --- /dev/null +++ b/utils/helpers.js @@ -0,0 +1,52 @@ +const R = require('ramda'); +const { IS_TEST } = require('./constants'); + +const log = IS_TEST ? () => {} : console.log; +const print = fn => x => log(fn(x)) || x; + +const between = (min, max) => num => num >= min && num <= max; +const testRegex = regex => str => !!(str && str.match(regex)); + +const validate = pattern => data => R.compose( + invalidPairs => invalidPairs.length + ? { errors: invalidPairs, valid: false } + : { errors: [], valid: true }, + R.filter(([key, { fn }]) => fn ? !fn(data[key]) : false), + R.toPairs, +)(pattern); + +const or = R.anyPass; +const and = R.allPass; + +const then = fn => p => p.then(fn); + +const lazyTask = fn => data => () => fn(data); + +const batchLazyTasks = count => tasks => tasks.reduce((batches, task) => { + if (batches.length === 0) return [[task]]; + + const full = R.init(batches); + const last = R.last(batches); + + if (last.length >= count) return [...batches, [task]]; + return [...full, [...last, task]]; +}, []); + +const withLengthGte = n => R.compose(R.gte(R.__, n), R.length); +const withLengthEq = n => R.compose(R.equals(n), R.length); + +module.exports = { + or, + and, + validate, + between, + testRegex, + log, + print, + then, + lazyTask, + batchLazyTasks, + withLengthEq, + withLengthGte, +}; + diff --git a/utils/lib/cpanel.js b/utils/lib/cpanel.js index c29c10145..397a677a7 100644 --- a/utils/lib/cpanel.js +++ b/utils/lib/cpanel.js @@ -45,10 +45,9 @@ const CpanelClient = (options) => { // { name, type(A|CNAME), cname, address, ttl } // -> {} add: api2('ZoneEdit', 'add_zone_record', { domain: options.domain }), - - // { name, type(A|CNAME), cname, address, ttl } + // { line } // -> {} - edit: api2('ZoneEdit', 'edit_zone_record', { domain: options.domain }), + remove: api2('ZoneEdit', 'remove_zone_record', { domain: options.domain }), }, redirection: { // {} @@ -61,7 +60,9 @@ const CpanelClient = (options) => { // { domain, redirect, type(permanent|tmp), redirect_wildcard(0|1), redirect(0|1|2) } // -> {} add: uapi('Mime', 'add_redirect'), - edit: uapi('Mime', 'add_redirect'), // NOTE: adding new updates exisiting + // { domain } + // -> {} + remove: uapi('Mime', 'delete_redirect'), }, }; }; diff --git a/utils/validations.js b/utils/validations.js new file mode 100644 index 000000000..4d0444816 --- /dev/null +++ b/utils/validations.js @@ -0,0 +1,56 @@ +const R = require('ramda'); +const { VALID_RECORD_TYPES } = require('./constants'); +const { or, and, validate, between, testRegex, withLengthEq, withLengthGte } = require('./helpers'); + +const validateCnameRecord = key => and([ + R.propSatisfies(R.is(String), key), + R.compose(withLengthEq(1), R.reject(R.equals('URL')), R.keys), + R.propSatisfies(withLengthGte(3), key), + R.propSatisfies(R.complement(testRegex(/^https?:\/\//ig)), key), +]); + +const validateARecord = key => and([ + R.compose(withLengthEq(1), R.keys), + R.propSatisfies(withLengthGte(1), key), +]); + +const validateDomainData = validate({ + name: { + reason: 'The name of the file is invalid. It must be lowercased, alphanumeric and more than 2 characters long', + fn: or([ + R.equals('@'), + and([ + R.compose(between(2, 100), R.length), + testRegex(/^[a-z0-9-]+$/g), + ]) + ]), + }, + description: { reason: '', fn: R.T, }, + repo: { reason: '', fn: R.T, }, + owner: { + reason: '`owner` needs valid username and email properties', + fn: and([ + R.is(Object), + R.complement(R.isEmpty), + R.where({ + username: and([ R.is(String), withLengthGte(1) ]), + email: R.is(String), + }), + ]), + }, + record: { + reason: 'Invalid record. CNAME records have to be a host name and A records has to be a list of ips', + fn: and([ + R.is(Object), + R.compose(R.isEmpty, R.difference(R.__, VALID_RECORD_TYPES), R.keys), + R.cond([ + [R.has('CNAME'), validateCnameRecord('CNAME')], + [R.has('A'), validateARecord('A')], + [R.has('URL'), R.propSatisfies(R.is(String), 'URL')], + [R.T, R.T], + ]), + ]), + }, +}); + +module.exports = { validateDomainData }; diff --git a/yarn.lock b/yarn.lock index fb8f6f11e..52437eede 100644 --- a/yarn.lock +++ b/yarn.lock @@ -271,6 +271,22 @@ exec-sh "^0.3.2" minimist "^1.2.0" +"@eslint/eslintrc@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.1.3.tgz#7d1a2b2358552cc04834c0979bd4275362e37085" + integrity sha512-4YVwPkANLeNtRjMekzux1ci8hIaH5eGKktGqR0d3LWsKNn5B2X/1Z6Trxy7jQXl9EBGE6Yj02O+t09FMeRllaA== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + lodash "^4.17.19" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -581,6 +597,11 @@ acorn-globals@^6.0.0: acorn "^7.1.1" acorn-walk "^7.1.1" +acorn-jsx@^5.2.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" + integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== + acorn-walk@^7.1.1: version "7.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" @@ -591,6 +612,21 @@ acorn@^7.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c" integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w== +acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + ajv@^6.12.3: version "6.12.5" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.5.tgz#19b0e8bae8f476e5ba666300387775fb1a00a4da" @@ -601,6 +637,11 @@ ajv@^6.12.3: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + ansi-escapes@^4.2.1: version "4.3.1" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" @@ -608,12 +649,17 @@ ansi-escapes@^4.2.1: dependencies: type-fest "^0.11.0" +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + ansi-regex@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== -ansi-styles@^3.2.1: +ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== @@ -688,6 +734,11 @@ assign-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -1016,7 +1067,7 @@ cross-spawn@^6.0.0: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.0: +cross-spawn@^7.0.0, cross-spawn@^7.0.2: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -1065,7 +1116,7 @@ debug@^2.2.0, debug@^2.3.3: dependencies: ms "2.0.0" -debug@^4.1.0, debug@^4.1.1: +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: version "4.2.0" resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== @@ -1087,7 +1138,7 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= -deep-is@~0.1.3: +deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= @@ -1134,6 +1185,13 @@ diff-sequences@^26.3.0: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.3.0.tgz#62a59b1b29ab7fd27cef2a33ae52abe73042d0a2" integrity sha512-5j5vdRcw3CNctePNYN0Wy2e/JbWT6cAYnXv5OuqPhDpyCGc0uLu2TK0zOCJWNB9kOIfYMSpIulRaDgIi4HJ6Ig== +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + domexception@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" @@ -1159,6 +1217,11 @@ emittery@^0.7.1: resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.1.tgz#c02375a927a40948c0345cc903072597f5270451" integrity sha512-d34LN4L6h18Bzz9xpoku2nPwKxCPlPMr3EEKTkoEBi+1/+b0lcRkRJ1UVyyZaKNeqGR3swcGl6s390DNO4YVgQ== +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -1171,6 +1234,13 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -1200,16 +1270,140 @@ escodegen@^1.14.1: optionalDependencies: source-map "~0.6.1" +eslint-plugin-es@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893" + integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== + dependencies: + eslint-utils "^2.0.0" + regexpp "^3.0.0" + +eslint-plugin-json@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-json/-/eslint-plugin-json-2.1.2.tgz#5bc1c221984583c0c5ff21c488386e8263a6bbb7" + integrity sha512-isM/fsUxS4wN1+nLsWoV5T4gLgBQnsql3nMTr8u+cEls1bL8rRQO5CP5GtxJxaOfbcKqnz401styw+H/P+e78Q== + dependencies: + lodash "^4.17.19" + vscode-json-languageservice "^3.7.0" + +eslint-plugin-node@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" + integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== + dependencies: + eslint-plugin-es "^3.0.0" + eslint-utils "^2.0.0" + ignore "^5.1.1" + minimatch "^3.0.4" + resolve "^1.10.1" + semver "^6.1.0" + +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^2.0.0, eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" + integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== + +eslint@^7.11.0: + version "7.11.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.11.0.tgz#aaf2d23a0b5f1d652a08edacea0c19f7fadc0b3b" + integrity sha512-G9+qtYVCHaDi1ZuWzBsOWo2wSwd70TXnU6UHA3cTYHp7gCTXZcpggWFoUVAMRarg68qtPoNfFbzPh+VdOgmwmw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@eslint/eslintrc" "^0.1.3" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.0" + esquery "^1.2.0" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash "^4.17.19" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^5.2.3" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.0.tgz#dc30437cf67947cf576121ebd780f15eeac72348" + integrity sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.3.0" + esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -estraverse@^4.2.0: +esquery@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -1332,7 +1526,7 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -1344,6 +1538,13 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -1369,6 +1570,20 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== + for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -1405,6 +1620,11 @@ fsevents@^2.1.2: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + gensync@^1.0.0-beta.1: version "1.0.0-beta.1" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" @@ -1446,6 +1666,13 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" +glob-parent@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" @@ -1463,6 +1690,13 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + graceful-fs@^4.2.4: version "4.2.4" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" @@ -1565,6 +1799,24 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.1.1: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + import-local@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" @@ -1676,6 +1928,16 @@ is-extendable@^1.0.1: dependencies: is-plain-object "^2.0.4" +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" @@ -1686,6 +1948,13 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== +is-glob@^4.0.0, is-glob@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -2245,6 +2514,11 @@ json-schema@0.2.3: resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -2257,6 +2531,11 @@ json5@^2.1.2: dependencies: minimist "^1.2.5" +jsonc-parser@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.3.1.tgz#59549150b133f2efacca48fe9ce1ec0659af2342" + integrity sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg== + jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" @@ -2301,6 +2580,14 @@ leven@^3.1.0: resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -2326,7 +2613,7 @@ lodash.sortby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= -lodash@^4.17.19: +lodash@^4.17.14, lodash@^4.17.19: version "4.17.20" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== @@ -2426,6 +2713,13 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" +mkdirp@^0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -2585,6 +2879,18 @@ optionator@^0.8.1: type-check "~0.3.2" word-wrap "~1.2.3" +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + p-each-series@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48" @@ -2614,6 +2920,13 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + parse-json@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646" @@ -2688,6 +3001,11 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -2703,6 +3021,11 @@ pretty-format@^26.4.2: ansi-styles "^4.0.0" react-is "^16.12.0" +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + prompts@^2.0.1: version "2.3.2" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068" @@ -2729,6 +3052,11 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +qs@^6.9.4: + version "6.9.4" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" + integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== + qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" @@ -2771,6 +3099,11 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" +regexpp@^3.0.0, regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -2845,6 +3178,11 @@ resolve-cwd@^3.0.0: dependencies: resolve-from "^5.0.0" +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + resolve-from@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" @@ -2855,7 +3193,7 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.10.0, resolve@^1.17.0, resolve@^1.3.2: +resolve@^1.10.0, resolve@^1.10.1, resolve@^1.17.0, resolve@^1.3.2: version "1.17.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== @@ -2867,6 +3205,13 @@ ret@~0.1.10: resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + rimraf@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -2928,12 +3273,12 @@ saxes@^5.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.0.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.1.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.2: +semver@^7.2.1, semver@^7.3.2: version "7.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== @@ -2997,6 +3342,15 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -3147,6 +3501,15 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" +string-width@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + string-width@^4.1.0, string-width@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" @@ -3156,6 +3519,13 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" +strip-ansi@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + strip-ansi@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" @@ -3178,6 +3548,11 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -3205,6 +3580,16 @@ symbol-tree@^3.2.4: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== +table@^5.2.3: + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + terminal-link@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" @@ -3222,6 +3607,11 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + throat@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" @@ -3305,6 +3695,13 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" @@ -3384,6 +3781,11 @@ uuid@^8.3.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.0.tgz#ab738085ca22dc9a8c92725e459b1d507df5d6ea" integrity sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ== +v8-compile-cache@^2.0.3: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745" + integrity sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ== + v8-to-istanbul@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-5.0.1.tgz#0608f5b49a481458625edb058488607f25498ba5" @@ -3410,6 +3812,37 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" +vscode-json-languageservice@^3.7.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/vscode-json-languageservice/-/vscode-json-languageservice-3.9.1.tgz#f72b581f8cd2bd9b47445ccf8b0ddcde6aba7483" + integrity sha512-oJkknkdCVitQ5XPSRa0weHjUxt8eSCptaL+MBQQlRsa6Nb8XnEY0S5wYnLUFHzEvKzwt01/LKk8LdOixWEXkNA== + dependencies: + jsonc-parser "^2.3.1" + vscode-languageserver-textdocument "^1.0.1" + vscode-languageserver-types "3.16.0-next.2" + vscode-nls "^5.0.0" + vscode-uri "^2.1.2" + +vscode-languageserver-textdocument@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.1.tgz#178168e87efad6171b372add1dea34f53e5d330f" + integrity sha512-UIcJDjX7IFkck7cSkNNyzIz5FyvpQfY7sdzVy+wkKN/BLaD4DQ0ppXQrKePomCxTS7RrolK1I0pey0bG9eh8dA== + +vscode-languageserver-types@3.16.0-next.2: + version "3.16.0-next.2" + resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0-next.2.tgz#940bd15c992295a65eae8ab6b8568a1e8daa3083" + integrity sha512-QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q== + +vscode-nls@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-5.0.0.tgz#99f0da0bd9ea7cda44e565a74c54b1f2bc257840" + integrity sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA== + +vscode-uri@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.1.2.tgz#c8d40de93eb57af31f3c715dd650e2ca2c096f1c" + integrity sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A== + w3c-hr-time@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" @@ -3481,7 +3914,7 @@ which@^2.0.1, which@^2.0.2: dependencies: isexe "^2.0.0" -word-wrap@~1.2.3: +word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== @@ -3510,6 +3943,13 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" + ws@^7.2.3: version "7.3.1" resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8"