Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
97c57b2865 | |||
e04485231d | |||
228bc88d60 | |||
811041b036 | |||
a1203366d7 | |||
0deb77cda8 | |||
ed8b7ec65a | |||
6cfc12f83f |
@ -26,16 +26,28 @@ mirror:
|
||||
- docker
|
||||
- notpriv
|
||||
|
||||
audit:
|
||||
auditProductionDependencies:
|
||||
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||
stage: security
|
||||
script:
|
||||
- npmci npm prepare
|
||||
- npmci command npm install --production --ignore-scripts
|
||||
- npmci command npm config set registry https://registry.npmjs.org
|
||||
- npmci command npm audit --audit-level=high --only=prod --production
|
||||
tags:
|
||||
- docker
|
||||
|
||||
auditDevDependencies:
|
||||
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||
stage: security
|
||||
script:
|
||||
- npmci npm prepare
|
||||
- npmci command npm install --ignore-scripts
|
||||
- npmci command npm config set registry https://registry.npmjs.org
|
||||
- npmci command npm audit --audit-level=high
|
||||
- npmci command npm audit --audit-level=high --only=dev
|
||||
tags:
|
||||
- docker
|
||||
allow_failure: true
|
||||
|
||||
# ====================
|
||||
# test stage
|
||||
|
3069
package-lock.json
generated
3069
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@pushrocks/smartdns",
|
||||
"version": "4.0.4",
|
||||
"version": "4.0.8",
|
||||
"private": false,
|
||||
"description": "smart dns methods written in TypeScript",
|
||||
"main": "dist_ts/index.js",
|
||||
@ -26,9 +26,11 @@
|
||||
"homepage": "https://gitlab.com/pushrocks/dnsly#README",
|
||||
"dependencies": {
|
||||
"@pushrocks/smartdelay": "^2.0.10",
|
||||
"@pushrocks/smartenv": "^4.0.16",
|
||||
"@pushrocks/smartpromise": "^3.0.6",
|
||||
"@pushrocks/smartrequest": "^1.1.47",
|
||||
"@tsclass/tsclass": "^3.0.21"
|
||||
"@tsclass/tsclass": "^3.0.21",
|
||||
"dns2": "^1.4.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@gitzone/tsbuild": "^2.1.24",
|
||||
|
@ -1,5 +1,8 @@
|
||||
import * as smartenv from '@pushrocks/smartenv';
|
||||
const smartenvInstance = new smartenv.Smartenv();
|
||||
// node native scope
|
||||
import * as dns from 'dns';
|
||||
import type dnsType from 'dns';
|
||||
const dns: typeof dnsType = smartenvInstance.getSafeNodeModule('dns');
|
||||
|
||||
export { dns };
|
||||
|
||||
@ -8,8 +11,16 @@ import * as smartdelay from '@pushrocks/smartdelay';
|
||||
import * as smartpromise from '@pushrocks/smartpromise';
|
||||
import * as smartrequest from '@pushrocks/smartrequest';
|
||||
|
||||
export { smartdelay, smartpromise, smartrequest };
|
||||
export { smartdelay, smartenv, smartpromise, smartrequest };
|
||||
|
||||
import * as tsclass from '@tsclass/tsclass';
|
||||
|
||||
export { tsclass };
|
||||
|
||||
// third party scope
|
||||
|
||||
const dns2 = smartenvInstance.getSafeNodeModule('dns2');
|
||||
|
||||
export {
|
||||
dns2
|
||||
}
|
||||
|
31
ts/index.ts
31
ts/index.ts
@ -56,7 +56,12 @@ export class Smartdns {
|
||||
if (runCycles < cyclesArg) {
|
||||
runCycles++;
|
||||
try {
|
||||
const myRecordArray = await this.getRecordWithNodeDNS(recordNameArg, recordTypeArg);
|
||||
let myRecordArray: plugins.tsclass.network.IDnsRecord[];
|
||||
if (runCycles % 2 === 0 || !plugins.dns) {
|
||||
myRecordArray = await this.getRecord(recordNameArg, recordTypeArg);
|
||||
} else {
|
||||
myRecordArray = await this.getRecordWithNodeDNS(recordNameArg, recordTypeArg);
|
||||
}
|
||||
const myRecord = myRecordArray[0].value;
|
||||
if (myRecord === expectedValue) {
|
||||
console.log(
|
||||
@ -68,6 +73,7 @@ export class Smartdns {
|
||||
return await doCheck();
|
||||
}
|
||||
} catch (err) {
|
||||
// console.log(err);
|
||||
await plugins.smartdelay.delayFor(intervalArg);
|
||||
return await doCheck();
|
||||
}
|
||||
@ -140,7 +146,6 @@ export class Smartdns {
|
||||
recordNameArg: string,
|
||||
recordTypeArg: plugins.tsclass.network.TDnsRecordType
|
||||
): Promise<plugins.tsclass.network.IDnsRecord[]> {
|
||||
this.setNodeDnsProvider('cloudflare');
|
||||
const done = plugins.smartpromise.defer<plugins.tsclass.network.IDnsRecord[]>();
|
||||
plugins.dns.resolve(recordNameArg, recordTypeArg, (err, recordsArg) => {
|
||||
if (err) {
|
||||
@ -174,28 +179,6 @@ export class Smartdns {
|
||||
return await done.promise;
|
||||
}
|
||||
|
||||
/**
|
||||
* set the DNS provider
|
||||
*/
|
||||
public setNodeDnsProvider(dnsProvider: TDnsProvider) {
|
||||
if (!this.dnsServerIp) {
|
||||
console.log(
|
||||
`Warning: Setting the nodejs dns authority to ${dnsProvider}. Only do this if you know what you are doing.`
|
||||
);
|
||||
}
|
||||
if (dnsProvider === 'google' && this.dnsServerIp !== '8.8.8.8') {
|
||||
this.dnsServerIp = '8.8.8.8';
|
||||
this.dnsServerPort = 53;
|
||||
plugins.dns.setServers(['8.8.8.8', '8.8.4.4']);
|
||||
} else if (dnsProvider === 'cloudflare' && this.dnsServerIp !== '1.1.1.1') {
|
||||
this.dnsServerIp = '1.1.1.1';
|
||||
this.dnsServerPort = 53;
|
||||
plugins.dns.setServers(['1.1.1.1', '1.0.0.1']);
|
||||
} else {
|
||||
throw new Error('unknown dns provider');
|
||||
}
|
||||
}
|
||||
|
||||
public convertDnsTypeNameToTypeNumber(dnsTypeNameArg: string): number {
|
||||
return this.dnsTypeMap[dnsTypeNameArg];
|
||||
}
|
||||
|
Reference in New Issue
Block a user