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!
-## 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"