mirror of
https://github.com/cupcakearmy/docker-ddns-cloudflare.git
synced 2025-09-10 15:00:41 +00:00
Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
fb7416dbec | |||
54eb94135b | |||
47c0adbfb6 | |||
|
d25c33d015 | ||
|
c007fbb848 | ||
|
f6d825b843 | ||
10b4d5473b | |||
157ce6b7b6 | |||
8904ffcbdd |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,3 +2,4 @@
|
|||||||
ip.log
|
ip.log
|
||||||
dist
|
dist
|
||||||
node_modules
|
node_modules
|
||||||
|
.vscode
|
||||||
|
@@ -2,6 +2,7 @@
|
|||||||
TOKEn=myapitoken
|
TOKEn=myapitoken
|
||||||
ZONE=example.org
|
ZONE=example.org
|
||||||
DNS_RECORD=some.example.org
|
DNS_RECORD=some.example.org
|
||||||
|
PROXIED=false
|
||||||
|
|
||||||
# Optional
|
# Optional
|
||||||
#CRON=* * * * *
|
#CRON=* * * * *
|
||||||
|
39
CHANGELOG.md
39
CHANGELOG.md
@@ -5,13 +5,46 @@ All notable changes to this project will be documented in this file.
|
|||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [1.2.1] - 2022-05-14
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Support for `proxied` parameter thanks to @borisbm.
|
||||||
|
|
||||||
|
### Security
|
||||||
|
|
||||||
|
- Updated dependencies.
|
||||||
|
|
||||||
|
## [1.2.0] - 2022-02-07
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Sigterm and Sigkill hooks for graceful shutdown
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Multistage steps to reduce image size
|
||||||
|
|
||||||
|
## [1.1.1] - 2022-02-07
|
||||||
|
|
||||||
|
### Security
|
||||||
|
|
||||||
|
- Updated dependencies.
|
||||||
|
|
||||||
|
## [1.1.0] - 2021-10-22
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Added typescript for type safety.
|
||||||
|
- Switched to pnpm.
|
||||||
|
|
||||||
## [1.0.0] - 2021-05-05
|
## [1.0.0] - 2021-05-05
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- automated build & tagging
|
- Automated build & tagging.
|
||||||
- arm images
|
- Arm images.
|
||||||
|
|
||||||
### Security
|
### Security
|
||||||
|
|
||||||
- updated dependencies
|
- Updated dependencies.
|
||||||
|
19
Dockerfile
19
Dockerfile
@@ -1,10 +1,21 @@
|
|||||||
|
FROM node:16-alpine as builder
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
ADD ./package.json ./pnpm-lock.yaml ./
|
||||||
|
RUN npm exec pnpm install --frozen-lockfile
|
||||||
|
|
||||||
|
ADD . .
|
||||||
|
RUN npm exec pnpm run build
|
||||||
|
|
||||||
FROM node:16-alpine
|
FROM node:16-alpine
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
ADD . .
|
ADD ./package.json ./pnpm-lock.yaml ./
|
||||||
RUN npm install -g pnpm
|
RUN npm exec pnpm install --frozen-lockfile --prod
|
||||||
RUN pnpm install --frozen-lockfile
|
COPY --from=builder /app/dist/ /app/dist/
|
||||||
RUN pnpm run build
|
|
||||||
|
STOPSIGNAL SIGTERM
|
||||||
|
|
||||||
CMD ["node", "."]
|
CMD ["node", "."]
|
||||||
|
@@ -1,7 +1,8 @@
|
|||||||
# Docker DDNS Cloudflare
|
# Docker DDNS Cloudflare
|
||||||
|
|
||||||

|

|
||||||

|

|
||||||
|

|
||||||
|
|
||||||
## Features 🌈
|
## Features 🌈
|
||||||
|
|
||||||
@@ -25,6 +26,7 @@ KEY=Global_API_Key
|
|||||||
|
|
||||||
ZONE=example.org
|
ZONE=example.org
|
||||||
DNS_RECORD=some.example.org
|
DNS_RECORD=some.example.org
|
||||||
|
PROXIED=false
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Run the container
|
3. Run the container
|
||||||
@@ -53,6 +55,7 @@ docker-compose up -d
|
|||||||
| `TOKEN` | API Token that can be used instead of `EMAIL` & `KEY`. | |
|
| `TOKEN` | API Token that can be used instead of `EMAIL` & `KEY`. | |
|
||||||
| `ZONE` | Cloudflare zone where your domain is. | |
|
| `ZONE` | Cloudflare zone where your domain is. | |
|
||||||
| `DNS_RECORD` | The actual DNS record that should be updated. | |
|
| `DNS_RECORD` | The actual DNS record that should be updated. | |
|
||||||
|
| `PROXIED` | Whether the record is proxied by CloudFlare or not. | |
|
||||||
| `CRON` | Frequency of updates. | \*/5 \* \* \* \* |
|
| `CRON` | Frequency of updates. | \*/5 \* \* \* \* |
|
||||||
| `RESOLVER` | The endpoint used to determine your public ip. | https://api.ipify.org/ |
|
| `RESOLVER` | The endpoint used to determine your public ip. | https://api.ipify.org/ |
|
||||||
|
|
||||||
|
12
package.json
12
package.json
@@ -6,16 +6,16 @@
|
|||||||
"build": "tsc"
|
"build": "tsc"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "^0.23.0",
|
"axios": "^0.27.2",
|
||||||
"cloudflare": "^2.7.0",
|
"cloudflare": "^2.9.1",
|
||||||
"cron": "^1.8.2",
|
"cron": "^1.8.2",
|
||||||
"dotenv": "^10.0.0",
|
"dotenv": "^16.0.1",
|
||||||
"winston": "^3.3.3"
|
"winston": "^3.7.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/cloudflare": "^2.7.6",
|
"@types/cloudflare": "^2.7.8",
|
||||||
"@types/cron": "^1.7.3",
|
"@types/cron": "^1.7.3",
|
||||||
"ts-node-dev": "^1.1.8",
|
"ts-node-dev": "^1.1.8",
|
||||||
"typescript": "^4.4.4"
|
"typescript": "^4.6.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
309
pnpm-lock.yaml
generated
309
pnpm-lock.yaml
generated
@@ -1,53 +1,69 @@
|
|||||||
lockfileVersion: 5.3
|
lockfileVersion: 5.3
|
||||||
|
|
||||||
specifiers:
|
specifiers:
|
||||||
'@types/cloudflare': ^2.7.6
|
'@types/cloudflare': ^2.7.8
|
||||||
'@types/cron': ^1.7.3
|
'@types/cron': ^1.7.3
|
||||||
axios: ^0.23.0
|
axios: ^0.27.2
|
||||||
cloudflare: ^2.7.0
|
cloudflare: ^2.9.1
|
||||||
cron: ^1.8.2
|
cron: ^1.8.2
|
||||||
dotenv: ^10.0.0
|
dotenv: ^16.0.1
|
||||||
ts-node-dev: ^1.1.8
|
ts-node-dev: ^1.1.8
|
||||||
typescript: ^4.4.4
|
typescript: ^4.6.4
|
||||||
winston: ^3.3.3
|
winston: ^3.7.2
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
axios: 0.23.0
|
axios: 0.27.2
|
||||||
cloudflare: 2.9.1
|
cloudflare: 2.9.1
|
||||||
cron: 1.8.2
|
cron: 1.8.2
|
||||||
dotenv: 10.0.0
|
dotenv: 16.0.1
|
||||||
winston: 3.3.3
|
winston: 3.7.2
|
||||||
|
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@types/cloudflare': 2.7.6
|
'@types/cloudflare': 2.7.8
|
||||||
'@types/cron': 1.7.3
|
'@types/cron': 1.7.3
|
||||||
ts-node-dev: 1.1.8_typescript@4.4.4
|
ts-node-dev: 1.1.8_typescript@4.6.4
|
||||||
typescript: 4.4.4
|
typescript: 4.6.4
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
|
|
||||||
/@dabh/diagnostics/2.0.2:
|
/@colors/colors/1.5.0:
|
||||||
resolution: {integrity: sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==}
|
resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
|
||||||
|
engines: {node: '>=0.1.90'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@dabh/diagnostics/2.0.3:
|
||||||
|
resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
colorspace: 1.1.4
|
colorspace: 1.1.4
|
||||||
enabled: 2.0.0
|
enabled: 2.0.0
|
||||||
kuler: 2.0.0
|
kuler: 2.0.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@types/cloudflare/2.7.6:
|
/@types/cloudflare/2.7.8:
|
||||||
resolution: {integrity: sha512-Q2Zo+i3OoGIuNKy5Wti+CAg0dVliBTtVBt5PQacB9tY7VXRg/vA+CatdnylPmNFW5PSW/w5ztUr+hznnVz0OXQ==}
|
resolution: {integrity: sha512-Ww0+DV8Um7Rtr8DI4ZTwHWylJ73HyOSBdiqXz6JWt1jcXotL/3vWEHmrtx8qBWQOS5Epusp7J86ocYhaSur6ag==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@types/cron/1.7.3:
|
/@types/cron/1.7.3:
|
||||||
resolution: {integrity: sha512-iPmUXyIJG1Js+ldPYhOQcYU3kCAQ2FWrSkm1FJPoii2eYSn6wEW6onPukNTT0bfiflexNSRPl6KWmAIqS+36YA==}
|
resolution: {integrity: sha512-iPmUXyIJG1Js+ldPYhOQcYU3kCAQ2FWrSkm1FJPoii2eYSn6wEW6onPukNTT0bfiflexNSRPl6KWmAIqS+36YA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 16.11.3
|
'@types/node': 17.0.33
|
||||||
moment: 2.29.1
|
moment: 2.29.3
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@types/node/16.11.3:
|
/@types/keyv/3.1.4:
|
||||||
resolution: {integrity: sha512-aIYL9Eemcecs1y77XzFGiSc+FdfN58k4J23UEe6+hynf4Wd9g4DzQPwIKL080vSMuubFqy2hWwOzCtJdc6vFKw==}
|
resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
|
||||||
dev: true
|
dependencies:
|
||||||
|
'@types/node': 17.0.33
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@types/node/17.0.33:
|
||||||
|
resolution: {integrity: sha512-miWq2m2FiQZmaHfdZNcbpp9PuXg34W5JZ5CrJ/BaS70VuhoJENBEQybeiYSaPBRNq6KQGnjfEnc/F3PN++D+XQ==}
|
||||||
|
|
||||||
|
/@types/responselike/1.0.0:
|
||||||
|
resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==}
|
||||||
|
dependencies:
|
||||||
|
'@types/node': 17.0.33
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@types/strip-bom/3.0.0:
|
/@types/strip-bom/3.0.0:
|
||||||
resolution: {integrity: sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I=}
|
resolution: {integrity: sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I=}
|
||||||
@@ -61,7 +77,7 @@ packages:
|
|||||||
resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
|
resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
|
||||||
engines: {node: '>= 6.0.0'}
|
engines: {node: '>= 6.0.0'}
|
||||||
dependencies:
|
dependencies:
|
||||||
debug: 4.3.2
|
debug: 4.3.4
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
dev: false
|
dev: false
|
||||||
@@ -71,25 +87,30 @@ packages:
|
|||||||
engines: {node: '>= 8'}
|
engines: {node: '>= 8'}
|
||||||
dependencies:
|
dependencies:
|
||||||
normalize-path: 3.0.0
|
normalize-path: 3.0.0
|
||||||
picomatch: 2.3.0
|
picomatch: 2.3.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/arg/4.1.3:
|
/arg/4.1.3:
|
||||||
resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
|
resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/async/3.2.1:
|
/async/3.2.3:
|
||||||
resolution: {integrity: sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg==}
|
resolution: {integrity: sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/asynckit/0.4.0:
|
||||||
|
resolution: {integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/autocreate/1.2.0:
|
/autocreate/1.2.0:
|
||||||
resolution: {integrity: sha1-UiFnmSxBcsFUeeX4jzSGpFKkDLo=}
|
resolution: {integrity: sha1-UiFnmSxBcsFUeeX4jzSGpFKkDLo=}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/axios/0.23.0:
|
/axios/0.27.2:
|
||||||
resolution: {integrity: sha512-NmvAE4i0YAv5cKq8zlDoPd1VLKAqX5oLuZKs8xkJa4qi6RGn0uhCYFjWtHHC9EM/MwOwYWOs53W+V0aqEXq1sg==}
|
resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
follow-redirects: 1.14.4
|
follow-redirects: 1.15.0
|
||||||
|
form-data: 4.0.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- debug
|
- debug
|
||||||
dev: false
|
dev: false
|
||||||
@@ -126,8 +147,8 @@ packages:
|
|||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/chokidar/3.5.2:
|
/chokidar/3.5.3:
|
||||||
resolution: {integrity: sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==}
|
resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
|
||||||
engines: {node: '>= 8.10.0'}
|
engines: {node: '>= 8.10.0'}
|
||||||
dependencies:
|
dependencies:
|
||||||
anymatch: 3.1.2
|
anymatch: 3.1.2
|
||||||
@@ -147,7 +168,7 @@ packages:
|
|||||||
autocreate: 1.2.0
|
autocreate: 1.2.0
|
||||||
es-class: 2.1.1
|
es-class: 2.1.1
|
||||||
got: 6.7.1
|
got: 6.7.1
|
||||||
https-proxy-agent: 5.0.0
|
https-proxy-agent: 5.0.1
|
||||||
object-assign: 4.1.1
|
object-assign: 4.1.1
|
||||||
should-proxy: 1.0.4
|
should-proxy: 1.0.4
|
||||||
url-pattern: 1.0.3
|
url-pattern: 1.0.3
|
||||||
@@ -169,8 +190,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
|
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/color-string/1.6.0:
|
/color-string/1.9.1:
|
||||||
resolution: {integrity: sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==}
|
resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
|
||||||
dependencies:
|
dependencies:
|
||||||
color-name: 1.1.4
|
color-name: 1.1.4
|
||||||
simple-swizzle: 0.2.2
|
simple-swizzle: 0.2.2
|
||||||
@@ -180,12 +201,7 @@ packages:
|
|||||||
resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==}
|
resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
color-convert: 1.9.3
|
color-convert: 1.9.3
|
||||||
color-string: 1.6.0
|
color-string: 1.9.1
|
||||||
dev: false
|
|
||||||
|
|
||||||
/colors/1.4.0:
|
|
||||||
resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==}
|
|
||||||
engines: {node: '>=0.1.90'}
|
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/colorspace/1.1.4:
|
/colorspace/1.1.4:
|
||||||
@@ -195,14 +211,17 @@ packages:
|
|||||||
text-hex: 1.0.0
|
text-hex: 1.0.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/combined-stream/1.0.8:
|
||||||
|
resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
|
||||||
|
engines: {node: '>= 0.8'}
|
||||||
|
dependencies:
|
||||||
|
delayed-stream: 1.0.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
/concat-map/0.0.1:
|
/concat-map/0.0.1:
|
||||||
resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
|
resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/core-util-is/1.0.3:
|
|
||||||
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/create-error-class/3.0.2:
|
/create-error-class/3.0.2:
|
||||||
resolution: {integrity: sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=}
|
resolution: {integrity: sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@@ -217,11 +236,11 @@ packages:
|
|||||||
/cron/1.8.2:
|
/cron/1.8.2:
|
||||||
resolution: {integrity: sha512-Gk2c4y6xKEO8FSAUTklqtfSr7oTq0CiPQeLBG5Fl0qoXpZyMcj1SG59YL+hqq04bu6/IuEA7lMkYDAplQNKkyg==}
|
resolution: {integrity: sha512-Gk2c4y6xKEO8FSAUTklqtfSr7oTq0CiPQeLBG5Fl0qoXpZyMcj1SG59YL+hqq04bu6/IuEA7lMkYDAplQNKkyg==}
|
||||||
dependencies:
|
dependencies:
|
||||||
moment-timezone: 0.5.33
|
moment-timezone: 0.5.34
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/debug/4.3.2:
|
/debug/4.3.4:
|
||||||
resolution: {integrity: sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==}
|
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
|
||||||
engines: {node: '>=6.0'}
|
engines: {node: '>=6.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
supports-color: '*'
|
supports-color: '*'
|
||||||
@@ -232,14 +251,19 @@ packages:
|
|||||||
ms: 2.1.2
|
ms: 2.1.2
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/delayed-stream/1.0.0:
|
||||||
|
resolution: {integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=}
|
||||||
|
engines: {node: '>=0.4.0'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/diff/4.0.2:
|
/diff/4.0.2:
|
||||||
resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
|
resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
|
||||||
engines: {node: '>=0.3.1'}
|
engines: {node: '>=0.3.1'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/dotenv/10.0.0:
|
/dotenv/16.0.1:
|
||||||
resolution: {integrity: sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==}
|
resolution: {integrity: sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=12'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/duplexer3/0.1.4:
|
/duplexer3/0.1.4:
|
||||||
@@ -260,8 +284,8 @@ packages:
|
|||||||
resolution: {integrity: sha1-bsIkO1oeNYHAt+7O4BMMnA1vsrc=}
|
resolution: {integrity: sha1-bsIkO1oeNYHAt+7O4BMMnA1vsrc=}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/fecha/4.2.1:
|
/fecha/4.2.3:
|
||||||
resolution: {integrity: sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==}
|
resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/fill-range/7.0.1:
|
/fill-range/7.0.1:
|
||||||
@@ -275,8 +299,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==}
|
resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/follow-redirects/1.14.4:
|
/follow-redirects/1.15.0:
|
||||||
resolution: {integrity: sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g==}
|
resolution: {integrity: sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ==}
|
||||||
engines: {node: '>=4.0'}
|
engines: {node: '>=4.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
debug: '*'
|
debug: '*'
|
||||||
@@ -285,6 +309,15 @@ packages:
|
|||||||
optional: true
|
optional: true
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/form-data/4.0.0:
|
||||||
|
resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
|
||||||
|
engines: {node: '>= 6'}
|
||||||
|
dependencies:
|
||||||
|
asynckit: 0.4.0
|
||||||
|
combined-stream: 1.0.8
|
||||||
|
mime-types: 2.1.35
|
||||||
|
dev: false
|
||||||
|
|
||||||
/fs.realpath/1.0.0:
|
/fs.realpath/1.0.0:
|
||||||
resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=}
|
resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=}
|
||||||
dev: true
|
dev: true
|
||||||
@@ -313,13 +346,13 @@ packages:
|
|||||||
is-glob: 4.0.3
|
is-glob: 4.0.3
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/glob/7.2.0:
|
/glob/7.2.2:
|
||||||
resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==}
|
resolution: {integrity: sha512-NzDgHDiJwKYByLrL5lONmQFpK/2G78SMMfo+E9CuGlX4IkvfKDsiQSNPwAYxEy+e6p7ZQ3uslSLlwlJcqezBmQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
fs.realpath: 1.0.0
|
fs.realpath: 1.0.0
|
||||||
inflight: 1.0.6
|
inflight: 1.0.6
|
||||||
inherits: 2.0.4
|
inherits: 2.0.4
|
||||||
minimatch: 3.0.4
|
minimatch: 3.1.2
|
||||||
once: 1.4.0
|
once: 1.4.0
|
||||||
path-is-absolute: 1.0.1
|
path-is-absolute: 1.0.1
|
||||||
dev: true
|
dev: true
|
||||||
@@ -328,6 +361,8 @@ packages:
|
|||||||
resolution: {integrity: sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=}
|
resolution: {integrity: sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
dependencies:
|
dependencies:
|
||||||
|
'@types/keyv': 3.1.4
|
||||||
|
'@types/responselike': 1.0.0
|
||||||
create-error-class: 3.0.2
|
create-error-class: 3.0.2
|
||||||
duplexer3: 0.1.4
|
duplexer3: 0.1.4
|
||||||
get-stream: 3.0.0
|
get-stream: 3.0.0
|
||||||
@@ -348,12 +383,12 @@ packages:
|
|||||||
function-bind: 1.1.1
|
function-bind: 1.1.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/https-proxy-agent/5.0.0:
|
/https-proxy-agent/5.0.1:
|
||||||
resolution: {integrity: sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==}
|
resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
|
||||||
engines: {node: '>= 6'}
|
engines: {node: '>= 6'}
|
||||||
dependencies:
|
dependencies:
|
||||||
agent-base: 6.0.2
|
agent-base: 6.0.2
|
||||||
debug: 4.3.2
|
debug: 4.3.4
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
dev: false
|
dev: false
|
||||||
@@ -379,8 +414,8 @@ packages:
|
|||||||
binary-extensions: 2.2.0
|
binary-extensions: 2.2.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/is-core-module/2.8.0:
|
/is-core-module/2.9.0:
|
||||||
resolution: {integrity: sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==}
|
resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==}
|
||||||
dependencies:
|
dependencies:
|
||||||
has: 1.0.3
|
has: 1.0.3
|
||||||
dev: true
|
dev: true
|
||||||
@@ -422,21 +457,17 @@ packages:
|
|||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/isarray/1.0.0:
|
|
||||||
resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/kuler/2.0.0:
|
/kuler/2.0.0:
|
||||||
resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==}
|
resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/logform/2.3.0:
|
/logform/2.4.0:
|
||||||
resolution: {integrity: sha512-graeoWUH2knKbGthMtuG1EfaSPMZFZBIrhuJHhkS5ZseFBrc7DupCzihOQAzsK/qIKPQaPJ/lFQFctILUY5ARQ==}
|
resolution: {integrity: sha512-CPSJw4ftjf517EhXZGGvTHHkYobo7ZCc0kvwUoOYcjfR2UVrI66RHj8MCrfAdEitdmFqbu2BYdYs8FHHZSb6iw==}
|
||||||
dependencies:
|
dependencies:
|
||||||
colors: 1.4.0
|
'@colors/colors': 1.5.0
|
||||||
fecha: 4.2.1
|
fecha: 4.2.3
|
||||||
ms: 2.1.2
|
ms: 2.1.3
|
||||||
safe-stable-stringify: 1.1.1
|
safe-stable-stringify: 2.3.1
|
||||||
triple-beam: 1.3.0
|
triple-beam: 1.3.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
@@ -449,14 +480,26 @@ packages:
|
|||||||
resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
|
resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/minimatch/3.0.4:
|
/mime-db/1.52.0:
|
||||||
resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==}
|
resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
|
||||||
|
engines: {node: '>= 0.6'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/mime-types/2.1.35:
|
||||||
|
resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
|
||||||
|
engines: {node: '>= 0.6'}
|
||||||
|
dependencies:
|
||||||
|
mime-db: 1.52.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/minimatch/3.1.2:
|
||||||
|
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
|
||||||
dependencies:
|
dependencies:
|
||||||
brace-expansion: 1.1.11
|
brace-expansion: 1.1.11
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/minimist/1.2.5:
|
/minimist/1.2.6:
|
||||||
resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==}
|
resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/mkdirp/1.0.4:
|
/mkdirp/1.0.4:
|
||||||
@@ -465,19 +508,23 @@ packages:
|
|||||||
hasBin: true
|
hasBin: true
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/moment-timezone/0.5.33:
|
/moment-timezone/0.5.34:
|
||||||
resolution: {integrity: sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w==}
|
resolution: {integrity: sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==}
|
||||||
dependencies:
|
dependencies:
|
||||||
moment: 2.29.1
|
moment: 2.29.3
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/moment/2.29.1:
|
/moment/2.29.3:
|
||||||
resolution: {integrity: sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==}
|
resolution: {integrity: sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==}
|
||||||
|
|
||||||
/ms/2.1.2:
|
/ms/2.1.2:
|
||||||
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
|
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/ms/2.1.3:
|
||||||
|
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/normalize-path/3.0.0:
|
/normalize-path/3.0.0:
|
||||||
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
|
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@@ -509,8 +556,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
|
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/picomatch/2.3.0:
|
/picomatch/2.3.1:
|
||||||
resolution: {integrity: sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==}
|
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
|
||||||
engines: {node: '>=8.6'}
|
engines: {node: '>=8.6'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
@@ -519,22 +566,6 @@ packages:
|
|||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/process-nextick-args/2.0.1:
|
|
||||||
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/readable-stream/2.3.7:
|
|
||||||
resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==}
|
|
||||||
dependencies:
|
|
||||||
core-util-is: 1.0.3
|
|
||||||
inherits: 2.0.4
|
|
||||||
isarray: 1.0.0
|
|
||||||
process-nextick-args: 2.0.1
|
|
||||||
safe-buffer: 5.1.2
|
|
||||||
string_decoder: 1.1.1
|
|
||||||
util-deprecate: 1.0.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/readable-stream/3.6.0:
|
/readable-stream/3.6.0:
|
||||||
resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==}
|
resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==}
|
||||||
engines: {node: '>= 6'}
|
engines: {node: '>= 6'}
|
||||||
@@ -548,33 +579,32 @@ packages:
|
|||||||
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
|
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
|
||||||
engines: {node: '>=8.10.0'}
|
engines: {node: '>=8.10.0'}
|
||||||
dependencies:
|
dependencies:
|
||||||
picomatch: 2.3.0
|
picomatch: 2.3.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/resolve/1.20.0:
|
/resolve/1.22.0:
|
||||||
resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==}
|
resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==}
|
||||||
|
hasBin: true
|
||||||
dependencies:
|
dependencies:
|
||||||
is-core-module: 2.8.0
|
is-core-module: 2.9.0
|
||||||
path-parse: 1.0.7
|
path-parse: 1.0.7
|
||||||
|
supports-preserve-symlinks-flag: 1.0.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/rimraf/2.7.1:
|
/rimraf/2.7.1:
|
||||||
resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
|
resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
dependencies:
|
dependencies:
|
||||||
glob: 7.2.0
|
glob: 7.2.2
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/safe-buffer/5.1.2:
|
|
||||||
resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/safe-buffer/5.2.1:
|
/safe-buffer/5.2.1:
|
||||||
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
|
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/safe-stable-stringify/1.1.1:
|
/safe-stable-stringify/2.3.1:
|
||||||
resolution: {integrity: sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw==}
|
resolution: {integrity: sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/should-proxy/1.0.4:
|
/should-proxy/1.0.4:
|
||||||
@@ -587,8 +617,8 @@ packages:
|
|||||||
is-arrayish: 0.3.2
|
is-arrayish: 0.3.2
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/source-map-support/0.5.20:
|
/source-map-support/0.5.21:
|
||||||
resolution: {integrity: sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==}
|
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
|
||||||
dependencies:
|
dependencies:
|
||||||
buffer-from: 1.1.2
|
buffer-from: 1.1.2
|
||||||
source-map: 0.6.1
|
source-map: 0.6.1
|
||||||
@@ -603,12 +633,6 @@ packages:
|
|||||||
resolution: {integrity: sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=}
|
resolution: {integrity: sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/string_decoder/1.1.1:
|
|
||||||
resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
|
|
||||||
dependencies:
|
|
||||||
safe-buffer: 5.1.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/string_decoder/1.3.0:
|
/string_decoder/1.3.0:
|
||||||
resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
|
resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -625,6 +649,11 @@ packages:
|
|||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/supports-preserve-symlinks-flag/1.0.0:
|
||||||
|
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
|
||||||
|
engines: {node: '>= 0.4'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/text-hex/1.0.0:
|
/text-hex/1.0.0:
|
||||||
resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==}
|
resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==}
|
||||||
dev: false
|
dev: false
|
||||||
@@ -650,7 +679,7 @@ packages:
|
|||||||
resolution: {integrity: sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==}
|
resolution: {integrity: sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/ts-node-dev/1.1.8_typescript@4.4.4:
|
/ts-node-dev/1.1.8_typescript@4.6.4:
|
||||||
resolution: {integrity: sha512-Q/m3vEwzYwLZKmV6/0VlFxcZzVV/xcgOt+Tx/VjaaRHyiBcFlV0541yrT09QjzzCxlDZ34OzKjrFAynlmtflEg==}
|
resolution: {integrity: sha512-Q/m3vEwzYwLZKmV6/0VlFxcZzVV/xcgOt+Tx/VjaaRHyiBcFlV0541yrT09QjzzCxlDZ34OzKjrFAynlmtflEg==}
|
||||||
engines: {node: '>=0.8.0'}
|
engines: {node: '>=0.8.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@@ -661,20 +690,20 @@ packages:
|
|||||||
node-notifier:
|
node-notifier:
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
chokidar: 3.5.2
|
chokidar: 3.5.3
|
||||||
dynamic-dedupe: 0.3.0
|
dynamic-dedupe: 0.3.0
|
||||||
minimist: 1.2.5
|
minimist: 1.2.6
|
||||||
mkdirp: 1.0.4
|
mkdirp: 1.0.4
|
||||||
resolve: 1.20.0
|
resolve: 1.22.0
|
||||||
rimraf: 2.7.1
|
rimraf: 2.7.1
|
||||||
source-map-support: 0.5.20
|
source-map-support: 0.5.21
|
||||||
tree-kill: 1.2.2
|
tree-kill: 1.2.2
|
||||||
ts-node: 9.1.1_typescript@4.4.4
|
ts-node: 9.1.1_typescript@4.6.4
|
||||||
tsconfig: 7.0.0
|
tsconfig: 7.0.0
|
||||||
typescript: 4.4.4
|
typescript: 4.6.4
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/ts-node/9.1.1_typescript@4.4.4:
|
/ts-node/9.1.1_typescript@4.6.4:
|
||||||
resolution: {integrity: sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==}
|
resolution: {integrity: sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==}
|
||||||
engines: {node: '>=10.0.0'}
|
engines: {node: '>=10.0.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@@ -685,8 +714,8 @@ packages:
|
|||||||
create-require: 1.1.1
|
create-require: 1.1.1
|
||||||
diff: 4.0.2
|
diff: 4.0.2
|
||||||
make-error: 1.3.6
|
make-error: 1.3.6
|
||||||
source-map-support: 0.5.20
|
source-map-support: 0.5.21
|
||||||
typescript: 4.4.4
|
typescript: 4.6.4
|
||||||
yn: 3.1.1
|
yn: 3.1.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
@@ -699,8 +728,8 @@ packages:
|
|||||||
strip-json-comments: 2.0.1
|
strip-json-comments: 2.0.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/typescript/4.4.4:
|
/typescript/4.6.4:
|
||||||
resolution: {integrity: sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==}
|
resolution: {integrity: sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==}
|
||||||
engines: {node: '>=4.2.0'}
|
engines: {node: '>=4.2.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
dev: true
|
dev: true
|
||||||
@@ -726,27 +755,29 @@ packages:
|
|||||||
resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=}
|
resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/winston-transport/4.4.0:
|
/winston-transport/4.5.0:
|
||||||
resolution: {integrity: sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==}
|
resolution: {integrity: sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==}
|
||||||
engines: {node: '>= 6.4.0'}
|
engines: {node: '>= 6.4.0'}
|
||||||
dependencies:
|
dependencies:
|
||||||
readable-stream: 2.3.7
|
logform: 2.4.0
|
||||||
|
readable-stream: 3.6.0
|
||||||
triple-beam: 1.3.0
|
triple-beam: 1.3.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/winston/3.3.3:
|
/winston/3.7.2:
|
||||||
resolution: {integrity: sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==}
|
resolution: {integrity: sha512-QziIqtojHBoyzUOdQvQiar1DH0Xp9nF1A1y7NVy2DGEsz82SBDtOalS0ulTRGVT14xPX3WRWkCsdcJKqNflKng==}
|
||||||
engines: {node: '>= 6.4.0'}
|
engines: {node: '>= 12.0.0'}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@dabh/diagnostics': 2.0.2
|
'@dabh/diagnostics': 2.0.3
|
||||||
async: 3.2.1
|
async: 3.2.3
|
||||||
is-stream: 2.0.1
|
is-stream: 2.0.1
|
||||||
logform: 2.3.0
|
logform: 2.4.0
|
||||||
one-time: 1.0.0
|
one-time: 1.0.0
|
||||||
readable-stream: 3.6.0
|
readable-stream: 3.6.0
|
||||||
|
safe-stable-stringify: 2.3.1
|
||||||
stack-trace: 0.0.10
|
stack-trace: 0.0.10
|
||||||
triple-beam: 1.3.0
|
triple-beam: 1.3.0
|
||||||
winston-transport: 4.4.0
|
winston-transport: 4.5.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/wrappy/1.0.2:
|
/wrappy/1.0.2:
|
||||||
|
28
src/index.ts
28
src/index.ts
@@ -3,6 +3,7 @@ import Axios from 'axios'
|
|||||||
import { CronJob } from 'cron'
|
import { CronJob } from 'cron'
|
||||||
import { config } from 'dotenv'
|
import { config } from 'dotenv'
|
||||||
import winston from 'winston'
|
import winston from 'winston'
|
||||||
|
import process from 'process'
|
||||||
|
|
||||||
const logger = winston.createLogger({
|
const logger = winston.createLogger({
|
||||||
level: 'info',
|
level: 'info',
|
||||||
@@ -37,7 +38,10 @@ type DNSRecord = {
|
|||||||
zone: string
|
zone: string
|
||||||
record: string
|
record: string
|
||||||
ip: string
|
ip: string
|
||||||
|
proxied: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type DNSBrowseResult = { result: { id: string; type: string; name: string; proxied: boolean; ttl: number }[] }
|
||||||
async function update(cf: Cloudflare, options: DNSRecord) {
|
async function update(cf: Cloudflare, options: DNSRecord) {
|
||||||
// Find zone
|
// Find zone
|
||||||
if (!Cache.has('zone')) {
|
if (!Cache.has('zone')) {
|
||||||
@@ -55,9 +59,8 @@ async function update(cf: Cloudflare, options: DNSRecord) {
|
|||||||
logger.debug(`Zone ID: ${zoneId}`)
|
logger.debug(`Zone ID: ${zoneId}`)
|
||||||
|
|
||||||
// Set record
|
// Set record
|
||||||
const records: { result: { id: string; type: string; name: string; ttl: number }[] } = (await cf.dnsRecords.browse(
|
|
||||||
zoneId
|
const records: DNSBrowseResult = (await cf.dnsRecords.browse(zoneId)) as any
|
||||||
)) as any
|
|
||||||
const relevant = records.result.filter((r) => r.name === options.record && r.type === 'A')
|
const relevant = records.result.filter((r) => r.name === options.record && r.type === 'A')
|
||||||
if (relevant.length === 0) {
|
if (relevant.length === 0) {
|
||||||
// Create DNS Record
|
// Create DNS Record
|
||||||
@@ -66,6 +69,7 @@ async function update(cf: Cloudflare, options: DNSRecord) {
|
|||||||
type: 'A',
|
type: 'A',
|
||||||
name: options.record,
|
name: options.record,
|
||||||
content: options.ip,
|
content: options.ip,
|
||||||
|
proxied: options.proxied,
|
||||||
ttl: 1,
|
ttl: 1,
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
@@ -83,6 +87,7 @@ async function update(cf: Cloudflare, options: DNSRecord) {
|
|||||||
type: 'A',
|
type: 'A',
|
||||||
name: options.record,
|
name: options.record,
|
||||||
content: options.ip,
|
content: options.ip,
|
||||||
|
proxied: options.proxied,
|
||||||
ttl: record.ttl,
|
ttl: record.ttl,
|
||||||
})
|
})
|
||||||
logger.info(`Updated DNS record ${record.name}`)
|
logger.info(`Updated DNS record ${record.name}`)
|
||||||
@@ -91,7 +96,7 @@ async function update(cf: Cloudflare, options: DNSRecord) {
|
|||||||
|
|
||||||
async function main() {
|
async function main() {
|
||||||
config()
|
config()
|
||||||
const { EMAIL, KEY, TOKEN, ZONE, DNS_RECORD, CRON, RESOLVER } = process.env
|
const { EMAIL, KEY, TOKEN, ZONE, DNS_RECORD, PROXIED, CRON, RESOLVER } = process.env
|
||||||
if (!ZONE || !DNS_RECORD) {
|
if (!ZONE || !DNS_RECORD) {
|
||||||
logger.error('Missing environment variables')
|
logger.error('Missing environment variables')
|
||||||
process.exit(1)
|
process.exit(1)
|
||||||
@@ -104,11 +109,22 @@ async function main() {
|
|||||||
const ip = await getCurrentIp(RESOLVER)
|
const ip = await getCurrentIp(RESOLVER)
|
||||||
const changed = checkIfUpdateIsRequired(ip)
|
const changed = checkIfUpdateIsRequired(ip)
|
||||||
logger.info(`Running. Update required: ${!!changed}`)
|
logger.info(`Running. Update required: ${!!changed}`)
|
||||||
if (changed) await update(cf, { ip, record: DNS_RECORD!, zone: ZONE! }).catch((e) => logger.error(e.message))
|
if (changed)
|
||||||
|
await update(cf, { ip, record: DNS_RECORD!, zone: ZONE!, proxied: Boolean(PROXIED) }).catch((e) =>
|
||||||
|
logger.error(e.message)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
new CronJob(CRON || '*/5 * * * *', fn, null, true, undefined, null, true)
|
const cron = new CronJob(CRON || '*/5 * * * *', fn, null, true, undefined, null, true)
|
||||||
logger.info('Started service.')
|
logger.info('Started service.')
|
||||||
|
|
||||||
|
function terminate() {
|
||||||
|
logger.info('Stopping service.')
|
||||||
|
cron.stop()
|
||||||
|
process.exit(0)
|
||||||
|
}
|
||||||
|
process.on('SIGINT', terminate)
|
||||||
|
process.on('SIGTERM', terminate)
|
||||||
}
|
}
|
||||||
|
|
||||||
main()
|
main()
|
||||||
|
Reference in New Issue
Block a user