fakefilter 0.1.650 → 1.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -64
- package/apiserver/api/ext_result.js +51 -0
- package/apiserver/api/ext_tasks.js +151 -0
- package/apiserver/api/is_fakedomain.js +39 -0
- package/apiserver/api/is_fakeemail.js +17 -0
- package/apiserver/api/ping.js +12 -0
- package/apiserver/docs/README.md +41 -0
- package/apiserver/docs/babel.config.js +3 -0
- package/apiserver/docs/blog/2019-05-28-first-blog-post.md +12 -0
- package/apiserver/docs/blog/2019-05-29-long-blog-post.md +44 -0
- package/apiserver/docs/blog/2021-08-01-mdx-blog-post.mdx +20 -0
- package/apiserver/docs/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg +0 -0
- package/apiserver/docs/blog/2021-08-26-welcome/index.md +25 -0
- package/apiserver/docs/blog/authors.yml +17 -0
- package/apiserver/docs/docs/intro.md +16 -0
- package/apiserver/docs/docs/nodejs/_category_.json +4 -0
- package/apiserver/docs/docs/nodejs/index.md +30 -0
- package/apiserver/docs/docs/restful/_category_.json +4 -0
- package/apiserver/docs/docs/restful/index.md +59 -0
- package/apiserver/docs/docusaurus.config.js +118 -0
- package/apiserver/docs/package.json +37 -0
- package/apiserver/docs/sidebars.js +31 -0
- package/apiserver/docs/src/components/HomepageFeatures/index.js +64 -0
- package/apiserver/docs/src/components/HomepageFeatures/styles.module.css +11 -0
- package/apiserver/docs/src/css/custom.css +39 -0
- package/apiserver/docs/src/pages/index.js +45 -0
- package/apiserver/docs/src/pages/index.module.css +23 -0
- package/apiserver/docs/src/pages/markdown-page.md +7 -0
- package/apiserver/docs/src/theme/IconArrow/index.js +10 -0
- package/apiserver/docs/static/.nojekyll +0 -0
- package/apiserver/docs/static/img/docusaurus.png +0 -0
- package/apiserver/docs/static/img/favicon.ico +0 -0
- package/apiserver/docs/static/img/logo.svg +1 -0
- package/apiserver/docs/static/img/tutorial/docsVersionDropdown.png +0 -0
- package/apiserver/docs/static/img/tutorial/localeDropdown.png +0 -0
- package/apiserver/docs/static/img/undraw_docusaurus_mountain.svg +171 -0
- package/apiserver/docs/static/img/undraw_docusaurus_react.svg +170 -0
- package/apiserver/docs/static/img/undraw_docusaurus_tree.svg +40 -0
- package/apiserver/inc/middleware_client.js +37 -0
- package/apiserver/inc/middleware_logging.js +17 -0
- package/apiserver/inc/shared.js +45 -0
- package/apiserver/inc/worker_fakefilter.js +53 -0
- package/apiserver/index.js +62 -0
- package/apiserver/public/10minemail.com.js +27 -0
- package/apiserver/public/10minuteemails.com.js +46 -0
- package/apiserver/public/10minutemail.com.js +29 -0
- package/apiserver/public/crazymailing.com.js +27 -0
- package/apiserver/public/gettempmail.com.js +39 -0
- package/apiserver/public/img/dynamic/README.md +0 -0
- package/apiserver/public/onetempmail.com.js +35 -0
- package/apiserver/public/shared.js +54 -0
- package/apiserver/public/temp-mail.org.js +28 -0
- package/apiserver/public/tempmail.com.tr.js +36 -0
- package/apiserver/public/tempmail.net.js +28 -0
- package/apiserver/public/tempmailid.com.js +40 -0
- package/apiserver/public/tempmailo.org.js +36 -0
- package/apiserver/public/throwawaymail.com.js +27 -0
- package/burner/README.md +1 -0
- package/burner/burner-check.js +57 -0
- package/burner/emails.txt +57106 -0
- package/chart-update.js +179 -0
- package/cleanup.js +58 -0
- package/config.js +126 -0
- package/events.js +59 -0
- package/fetch.js +177 -0
- package/models/events.js +37 -0
- package/models/harvested.js +45 -0
- package/models/harvested_clone.js +44 -0
- package/package.json +41 -23
- package/providers/10-minute-mail.com.js +38 -0
- package/providers/10-minuten-mail.de.js +38 -0
- package/providers/10mails.net.js +40 -0
- package/providers/10minut.com.pl.js +38 -0
- package/providers/10minut.xyz.js +40 -0
- package/providers/10minuteemails.com.js +39 -0
- package/providers/10minutemail.co.za.js +38 -0
- package/providers/10minutemail.com.js +39 -0
- package/providers/10minutemail.info.js +38 -0
- package/providers/10minutemail.net.js +38 -0
- package/providers/10minutemail.org.js +38 -0
- package/providers/10minutesemail.net.js +36 -0
- package/providers/10minutesmail.us.js +38 -0
- package/providers/1secmail.com.js +39 -0
- package/providers/20minutemail.com.js +36 -0
- package/providers/24hour.email.js +37 -0
- package/providers/___emailondeck.com.js +76 -0
- package/providers/abandonmail.com.js +38 -0
- package/providers/airmailbox.website.js +38 -0
- package/providers/akmail.in.js +37 -0
- package/providers/altmails.com.js +37 -0
- package/providers/anonbox.net.js +42 -0
- package/providers/anonmails.de.js +25 -0
- package/providers/another-temp-mail.com.js +40 -0
- package/providers/brodilla.email.js +44 -0
- package/providers/byom.de.js +42 -0
- package/providers/cryptogmail.com.js +40 -0
- package/providers/default.tmail.thehp.in.js +41 -0
- package/providers/developermail.com.js +39 -0
- package/providers/dispemail.com.js +37 -0
- package/providers/disposableemail.co.js +37 -0
- package/providers/disposableemail.us.js +36 -0
- package/providers/disposablemail.com.js +38 -0
- package/providers/disposeamail.com.js +43 -0
- package/providers/dispostable.com.js +38 -0
- package/providers/dodsi.com.js +38 -0
- package/providers/dropmail.me.js +37 -0
- package/providers/easytrashmail.com.js +33 -0
- package/providers/edumail.icu.js +36 -0
- package/providers/email-fake.com.js +35 -0
- package/providers/emailfake.com.js +35 -0
- package/providers/etempmail.net.js +37 -0
- package/providers/eyepaste.com.js +39 -0
- package/providers/fakemail.io.js +35 -0
- package/providers/fakemail.net.js +35 -0
- package/providers/fakemailgenerator.com.js +35 -0
- package/providers/fakermail.com.js +37 -0
- package/providers/fex.plus.js +38 -0
- package/providers/findtempmail.com.js +38 -0
- package/providers/foxiomail.com.js +41 -0
- package/providers/fyii.de.js +42 -0
- package/providers/gecicimail.co.js +14 -0
- package/providers/gecicimail.com.tr.js +15 -0
- package/providers/generator.email.js +37 -0
- package/providers/getnada.com.js +37 -0
- package/providers/gpa.lu.js +37 -0
- package/providers/guerrillamail.com.js +38 -0
- package/providers/harakirimail.com.js +38 -0
- package/providers/haribu.net.js +39 -0
- package/providers/hizli.email.js +40 -0
- package/providers/hottempmail.com.js +51 -0
- package/providers/instant-email.org.js +39 -0
- package/providers/instantemailaddress.com.js +39 -0
- package/providers/jooko.info.js +36 -0
- package/providers/kopeechka.store.js +53 -0
- package/providers/linshi-email.com.js +38 -0
- package/providers/lroid.com.js +35 -0
- package/providers/luxusmail.org.js +39 -0
- package/providers/mail-temp.com.js +37 -0
- package/providers/mail-tester.com.js +37 -0
- package/providers/mail.gen.tr.js +14 -0
- package/providers/mail.gw.js +35 -0
- package/providers/mail.td.js +42 -0
- package/providers/mail.tm.js +35 -0
- package/providers/mail1a.de.js +42 -0
- package/providers/mail7.io.js +41 -0
- package/providers/mailcatch.com.js +38 -0
- package/providers/maildim.com.js +38 -0
- package/providers/maildrop.cc.js +38 -0
- package/providers/mailinator.com.js +27 -0
- package/providers/mailnesia.com.js +41 -0
- package/providers/mailpoof.com.js +71 -0
- package/providers/mailsac.com.js +27 -0
- package/providers/mailswipe.net.js +37 -0
- package/providers/minimail.eu.org.js +27 -0
- package/providers/mintemail.com.js +49 -0
- package/providers/minuteinbox.com.js +35 -0
- package/providers/moakt.com.js +37 -0
- package/providers/mohmal.com.js +39 -0
- package/providers/muellmail.com.js +41 -0
- package/providers/mytemp.email.js +35 -0
- package/providers/mytrashmailer.com.js +38 -0
- package/providers/niepodam.pl.js +53 -0
- package/providers/nolog.email.js +38 -0
- package/providers/onetempmail.com.js +37 -0
- package/providers/open.js +41 -0
- package/providers/oxyemail.com.js +38 -0
- package/providers/phaantm.de.js +42 -0
- package/providers/poo.email.js +27 -0
- package/providers/sandvpn.com.js +49 -0
- package/providers/shitmail.me.js +38 -0
- package/providers/shitmail.org.js +38 -0
- package/providers/spamdecoy.net.js +38 -0
- package/providers/spamgourmet.com.js +29 -0
- package/providers/spoofmail.de.js +47 -0
- package/providers/t-mail.org.js +42 -0
- package/providers/temp-email.info.js +39 -0
- package/providers/temp-inbox.com.js +38 -0
- package/providers/temp-mail.io.js +36 -0
- package/providers/temp-mails.com.js +45 -0
- package/providers/temp.cab.js +39 -0
- package/providers/tempail.com.js +36 -0
- package/providers/tempinbox.xyz.js +38 -0
- package/providers/tempmail.altmails.com.js +37 -0
- package/providers/tempmail.cn.js +38 -0
- package/providers/tempmail.co.js +38 -0
- package/providers/tempmail.dev.js +35 -0
- package/providers/tempmail.ninja.js +35 -0
- package/providers/tempmail.plus.js +47 -0
- package/providers/tempmail.run.js +37 -0
- package/providers/tempmail.tel.js +38 -0
- package/providers/tempmailed.com.js +43 -0
- package/providers/tempmailo.com.js +35 -0
- package/providers/tempo-email.com.js +38 -0
- package/providers/tempo-mail.xyz.js +40 -0
- package/providers/temporary-email.com.js +35 -0
- package/providers/temporary-mail.net.js +42 -0
- package/providers/temporarymail.com.js +39 -0
- package/providers/tempos.email.js +38 -0
- package/providers/tempr.email.js +45 -0
- package/providers/temprmail.com.js +38 -0
- package/providers/tenmail.org.js +40 -0
- package/providers/thnen.com.js +25 -0
- package/providers/throwaway.io.js +39 -0
- package/providers/tmail.gg.js +36 -0
- package/providers/tmail.mmomekong.com.js +38 -0
- package/providers/tmailor.com.js +37 -0
- package/providers/tmailweb.com.js +39 -0
- package/providers/trash-mail.com.js +42 -0
- package/providers/trashmail.com.js +39 -0
- package/providers/trashmail.de.js +36 -0
- package/providers/trashmail.live.js +36 -0
- package/providers/trashmail.org.js +39 -0
- package/providers/trashmail.ws.js +42 -0
- package/providers/trashmails.com.js +38 -0
- package/providers/txen.de.js +48 -0
- package/providers/wegwerfemailadresse.com.js +43 -0
- package/providers/yopmail.com.js +37 -0
- package/providers/yopmail.fr.js +37 -0
- package/providers/yopmail.net.js +37 -0
- package/providers/yourmail.online.js +39 -0
- package/release.sh +26 -0
- package/repo-update.js +121 -0
- package/shared.js +559 -0
- package/test/doRequest.js +47 -0
- package/test/is_domain_banned.js +53 -0
- package/test/is_fakedomain.js +136 -0
- package/test/is_fakeemail.js +136 -0
- package/test/psl.js +58 -0
- package/test/repo_json_v1.js +30 -0
- package/test/repo_json_v2.js +41 -0
- package/test1.js +36 -0
- package/update-repo.sh +44 -0
- package/vars.js +16 -0
- package/CHARTS.md +0 -492
- package/LICENSE.md +0 -29
- package/examples/online.js +0 -16
- package/index.d.ts +0 -23
- package/index.js +0 -193
- package/json/data.json +0 -1
- package/json/data_version2.json +0 -1
- package/markdown/README.md +0 -16316
- package/txt/data.txt +0 -16316
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
var axios = require('axios')
|
|
2
|
+
var debug = require('debug')('doRequest')
|
|
3
|
+
var vars =require('../vars')
|
|
4
|
+
var chalk = require('chalk')
|
|
5
|
+
var querystring = require('querystring')
|
|
6
|
+
|
|
7
|
+
async function doRequest(fullPath,dataObject={},method='POST',additionalHeaders={},testsessionData=false) {
|
|
8
|
+
return new Promise(async function (resolve,reject) {
|
|
9
|
+
|
|
10
|
+
const headers = {
|
|
11
|
+
'content-type': 'application/json',
|
|
12
|
+
...additionalHeaders
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const data = dataObject
|
|
16
|
+
// axios.defaults.headers.post['content-type'] = 'application/x-www-form-urlencoded'
|
|
17
|
+
|
|
18
|
+
const options = {
|
|
19
|
+
method,
|
|
20
|
+
url:fullPath,
|
|
21
|
+
data:method==='POST' ? data : false,
|
|
22
|
+
params:method==='GET' ? dataObject : false,
|
|
23
|
+
headers
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
axios(options).then(res=>{
|
|
27
|
+
debug(`request response:`,res.data)
|
|
28
|
+
if (method==='POST') {
|
|
29
|
+
return resolve(res.data)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if (method==='GET') {
|
|
33
|
+
return resolve(res)
|
|
34
|
+
}
|
|
35
|
+
}).catch(err=>{
|
|
36
|
+
reject(err)
|
|
37
|
+
})
|
|
38
|
+
}catch(err3) {
|
|
39
|
+
// console.log(err3)
|
|
40
|
+
reject(err3)
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
})
|
|
44
|
+
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
module.exports = doRequest
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
const { getConfig } = require('./../config')
|
|
2
|
+
const expect= require('chai').expect
|
|
3
|
+
const { is_domain_banned } = require('./../shared.js')
|
|
4
|
+
let config
|
|
5
|
+
|
|
6
|
+
describe('Function: is_domain_banned',function() {
|
|
7
|
+
this.timeout(0)
|
|
8
|
+
before(async function() {
|
|
9
|
+
if (!config) {
|
|
10
|
+
// config = await getConfig()
|
|
11
|
+
// apiserver = `http://${config.apiserver.ip}:${config.apiserver.port}`
|
|
12
|
+
}
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
it('invalid entries should return null',async function() {
|
|
16
|
+
expect(is_domain_banned()).to.be.null
|
|
17
|
+
expect(is_domain_banned(false)).to.be.null
|
|
18
|
+
expect(is_domain_banned(null)).to.be.null
|
|
19
|
+
expect(is_domain_banned([])).to.be.null
|
|
20
|
+
expect(is_domain_banned({})).to.be.null
|
|
21
|
+
expect(is_domain_banned(true)).to.be.null
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
it('invalid email address should return with its domain part only',async function() {
|
|
25
|
+
expect(is_domain_banned('not]valid@gmail.com')).to.be.false
|
|
26
|
+
expect(is_domain_banned('not]valid@gmail.com',{'gmail.com':{}})).to.be.a('object')
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
it('is fake domain',async function() {
|
|
30
|
+
expect(is_domain_banned('fake1.com',{})).to.be.false
|
|
31
|
+
expect(is_domain_banned('fake1.com',{'fake1.com':{}})).to.be.a('object')
|
|
32
|
+
expect(is_domain_banned('Fake1.com',{'fake1.com':{}})).to.be.a('object')
|
|
33
|
+
expect(is_domain_banned('Fake1.cOM',{'fake1.com':{}})).to.be.a('object')
|
|
34
|
+
})
|
|
35
|
+
it('is not fake domain',async function() {
|
|
36
|
+
expect(is_domain_banned('fake2.com',{})).to.be.false
|
|
37
|
+
expect(is_domain_banned('fake2.com',{'fake1.com':{}})).to.be.false
|
|
38
|
+
expect(is_domain_banned('Fake2.com',{'fake1.com':{}})).to.be.false
|
|
39
|
+
expect(is_domain_banned('Fake2.cOM',{'fake1.com':{}})).to.be.false
|
|
40
|
+
})
|
|
41
|
+
|
|
42
|
+
it('subdomains must be banned too',async function() {
|
|
43
|
+
expect(is_domain_banned('sub.fake1.com',{'fake1.com':{}})).to.be.a('object')
|
|
44
|
+
expect(is_domain_banned('sub2.sub1.fake1.com',{'fake1.com':{}})).to.be.a('object')
|
|
45
|
+
expect(is_domain_banned('sub3.sub2.sub1.fake1.com',{'fake1.com':{}})).to.be.a('object')
|
|
46
|
+
})
|
|
47
|
+
|
|
48
|
+
it('if we have the subdomain in our current_filter, filter wont work',async function() {
|
|
49
|
+
expect(is_domain_banned('sub.fake1.com',{'sub.fake1.com':{}})).to.be.false
|
|
50
|
+
expect(is_domain_banned('sub2.sub1.fake1.com',{'sub.fake1.com':{}})).to.be.false
|
|
51
|
+
expect(is_domain_banned('sub3.sub2.sub1.fake1.com',{'sub.fake1.com':{}})).to.be.false
|
|
52
|
+
})
|
|
53
|
+
})
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
const punycode = require('punycode/')
|
|
2
|
+
const chalk = require('chalk')
|
|
3
|
+
const { getConfig } = require('./../config')
|
|
4
|
+
const expect = require('chai').expect
|
|
5
|
+
const { is_domain_banned, pullDomains } = require('./../shared.js')
|
|
6
|
+
let config
|
|
7
|
+
let testDomains = {}
|
|
8
|
+
|
|
9
|
+
describe('API: is_fakedomain', function () {
|
|
10
|
+
this.timeout(0)
|
|
11
|
+
before(async function () {
|
|
12
|
+
if (!config) {
|
|
13
|
+
config = await getConfig()
|
|
14
|
+
apiserver = `http://${config.apiserver.ip}:${config.apiserver.port}`
|
|
15
|
+
let tmp = await pullDomains(10)
|
|
16
|
+
for(let row of tmp) {
|
|
17
|
+
if (!testDomains.hasOwnProperty(row.domain))
|
|
18
|
+
testDomains[row.domain]=row
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
it('fakefilter.net domain', async function () {
|
|
24
|
+
let res = await ((await fetch(`${apiserver}/api/is/fakedomain/fakefilter.net`)).json())
|
|
25
|
+
expect(res).property('retcode').eq(200)
|
|
26
|
+
expect(res).property('isFakeDomain').eq(false)
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
it('whitelisted domains main domains should never be in fakefilter', async function () {
|
|
31
|
+
for(let wldomain of config.ignore_domains) {
|
|
32
|
+
let res = await ((await fetch(`${apiserver}/api/is/fakedomain/${wldomain}`)).json())
|
|
33
|
+
expect(res).property('retcode').eq(200)
|
|
34
|
+
expect(res).property('isFakeDomain').eq(false)
|
|
35
|
+
}
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
it('whitelisted domains sub domains should never be in fakefilter', async function () {
|
|
39
|
+
for(let wldomain of config.ignore_domains) {
|
|
40
|
+
let res = await ((await fetch(`${apiserver}/api/is/fakedomain/sub.${wldomain}`)).json())
|
|
41
|
+
expect(res).property('retcode').eq(200)
|
|
42
|
+
expect(res).property('isFakeDomain').eq(false)
|
|
43
|
+
}
|
|
44
|
+
})
|
|
45
|
+
|
|
46
|
+
it('tests with existing fakedomains main domains', async function () {
|
|
47
|
+
const progress = require('progressbar').create().step('testing')
|
|
48
|
+
progress.setTotal(Object.keys(testDomains).length)
|
|
49
|
+
for(let row of Object.values(testDomains)) {
|
|
50
|
+
progress.addTick()
|
|
51
|
+
// console.log(chalk.inverse(row.domain))
|
|
52
|
+
// console.log(row)
|
|
53
|
+
expect(row).property('domain')
|
|
54
|
+
expect(row).property('provider')
|
|
55
|
+
expect(row).property('id').to.be.a('number')
|
|
56
|
+
expect(row).property('t').to.be.a('number').gt(1576308737349)
|
|
57
|
+
let res = await ((await fetch(`${apiserver}/api/is/fakedomain/${row.domain}`)).json())
|
|
58
|
+
// console.log(res)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
expect(res).property('retcode').eq(200)
|
|
62
|
+
expect(res).property('isFakeDomain').eq(row.domain)
|
|
63
|
+
|
|
64
|
+
expect(res).property('details').property('providers').contains(row.provider)
|
|
65
|
+
expect(res).property('details').property('hosts').to.be.a('object')
|
|
66
|
+
for(let hostDetail of Object.values(res.details.hosts)) {
|
|
67
|
+
expect(hostDetail).property('firstseen').gt(1574600000)
|
|
68
|
+
expect(hostDetail).property('lastseen').gt(1574600000)
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// console.log(res.details)
|
|
72
|
+
// break
|
|
73
|
+
}
|
|
74
|
+
})
|
|
75
|
+
|
|
76
|
+
it('tests with existing fakedomains sub domains', async function () {
|
|
77
|
+
const progress = require('progressbar').create().step('testing')
|
|
78
|
+
progress.setTotal(Object.keys(testDomains).length)
|
|
79
|
+
for(let row of Object.values(testDomains)) {
|
|
80
|
+
progress.addTick()
|
|
81
|
+
// console.log(chalk.inverse(row.domain))
|
|
82
|
+
// console.log(row)
|
|
83
|
+
expect(row).property('domain')
|
|
84
|
+
expect(row).property('provider')
|
|
85
|
+
expect(row).property('id').to.be.a('number')
|
|
86
|
+
expect(row).property('t').to.be.a('number').gt(1576308737349)
|
|
87
|
+
let res = await ((await fetch(`${apiserver}/api/is/fakedomain/sub.${row.domain}`)).json())
|
|
88
|
+
// console.log(res)
|
|
89
|
+
|
|
90
|
+
expect(res).property('retcode').eq(200)
|
|
91
|
+
expect(res).property('isFakeDomain').eq("sub."+row.domain)
|
|
92
|
+
|
|
93
|
+
expect(res).property('details').property('providers').contains(row.provider)
|
|
94
|
+
expect(res).property('details').property('hosts').to.be.a('object')
|
|
95
|
+
for(let hostDetail of Object.values(res.details.hosts)) {
|
|
96
|
+
expect(hostDetail).property('firstseen').gt(1574600000)
|
|
97
|
+
expect(hostDetail).property('lastseen').gt(1574600000)
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
})
|
|
101
|
+
|
|
102
|
+
it('query idn unicode domains in urlencoded format', async function() {
|
|
103
|
+
const progress = require('progressbar').create().step('testing')
|
|
104
|
+
progress.setTotal(Object.keys(testDomains).length)
|
|
105
|
+
for(let row of Object.values(testDomains)) {
|
|
106
|
+
progress.addTick()
|
|
107
|
+
// pick only the unicode domains from mysql
|
|
108
|
+
if (punycode.toASCII(row.domain)==row.domain) continue
|
|
109
|
+
let res = await ((await fetch(`${apiserver}/api/is/fakedomain/${row.domain}`)).json())
|
|
110
|
+
// console.log(res)
|
|
111
|
+
expect(res).property('retcode').eq(200)
|
|
112
|
+
expect(res).property('isFakeDomain').eq(row.domain)
|
|
113
|
+
expect(res).property('details').property('providers').contains(row.provider)
|
|
114
|
+
expect(res).property('details').property('hosts').to.be.a('object')
|
|
115
|
+
}
|
|
116
|
+
})
|
|
117
|
+
|
|
118
|
+
it('query idn domains in punycode format', async function() {
|
|
119
|
+
const progress = require('progressbar').create().step('testing')
|
|
120
|
+
progress.setTotal(Object.keys(testDomains).length)
|
|
121
|
+
for(let row of Object.values(testDomains)) {
|
|
122
|
+
progress.addTick()
|
|
123
|
+
// pick only the unicode domains from mysql
|
|
124
|
+
if (punycode.toASCII(row.domain)==row.domain) continue
|
|
125
|
+
let pc = punycode.toASCII(row.domain)
|
|
126
|
+
let res = await ((await fetch(`${apiserver}/api/is/fakedomain/${pc}`)).json())
|
|
127
|
+
// console.log(res)
|
|
128
|
+
expect(res).property('retcode').eq(200)
|
|
129
|
+
expect(res).property('isFakeDomain').eq(pc)
|
|
130
|
+
expect(res).property('details').property('providers').contains(row.provider)
|
|
131
|
+
expect(res).property('details').property('hosts').to.be.a('object')
|
|
132
|
+
}
|
|
133
|
+
})
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
})
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
const punycode = require('punycode/')
|
|
2
|
+
const chalk = require('chalk')
|
|
3
|
+
const { getConfig } = require('./../config')
|
|
4
|
+
const expect = require('chai').expect
|
|
5
|
+
const { is_domain_banned, pullDomains } = require('./../shared.js')
|
|
6
|
+
let config
|
|
7
|
+
let testDomains = {}
|
|
8
|
+
|
|
9
|
+
describe('API: is_fakeemail', function () {
|
|
10
|
+
this.timeout(0)
|
|
11
|
+
before(async function () {
|
|
12
|
+
if (!config) {
|
|
13
|
+
config = await getConfig()
|
|
14
|
+
apiserver = `http://${config.apiserver.ip}:${config.apiserver.port}`
|
|
15
|
+
let tmp = await pullDomains(10)
|
|
16
|
+
for(let row of tmp) {
|
|
17
|
+
if (!testDomains.hasOwnProperty(row.domain))
|
|
18
|
+
testDomains[row.domain]=row
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
it('fakefilter.net domain', async function () {
|
|
24
|
+
let res = await ((await fetch(`${apiserver}/api/is/fakeemail/fake@fakefilter.net`)).json())
|
|
25
|
+
expect(res).property('retcode').eq(200)
|
|
26
|
+
expect(res).property('isFakeDomain').eq(false)
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
it('whitelisted domains main domains should never be in fakefilter', async function () {
|
|
31
|
+
for(let wldomain of config.ignore_domains) {
|
|
32
|
+
let res = await ((await fetch(`${apiserver}/api/is/fakeemail/fake@${wldomain}`)).json())
|
|
33
|
+
expect(res).property('retcode').eq(200)
|
|
34
|
+
expect(res).property('isFakeDomain').eq(false)
|
|
35
|
+
}
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
it('whitelisted domains sub domains should never be in fakefilter', async function () {
|
|
39
|
+
for(let wldomain of config.ignore_domains) {
|
|
40
|
+
let res = await ((await fetch(`${apiserver}/api/is/fakeemail/fake@sub.${wldomain}`)).json())
|
|
41
|
+
expect(res).property('retcode').eq(200)
|
|
42
|
+
expect(res).property('isFakeDomain').eq(false)
|
|
43
|
+
}
|
|
44
|
+
})
|
|
45
|
+
|
|
46
|
+
it('tests with existing fakedomains main domains', async function () {
|
|
47
|
+
const progress = require('progressbar').create().step('testing')
|
|
48
|
+
progress.setTotal(Object.keys(testDomains).length)
|
|
49
|
+
for(let row of Object.values(testDomains)) {
|
|
50
|
+
progress.addTick()
|
|
51
|
+
// console.log(chalk.inverse(row.domain))
|
|
52
|
+
// console.log(row)
|
|
53
|
+
expect(row).property('domain')
|
|
54
|
+
expect(row).property('provider')
|
|
55
|
+
expect(row).property('id').to.be.a('number')
|
|
56
|
+
expect(row).property('t').to.be.a('number').gt(1576308737349)
|
|
57
|
+
let res = await ((await fetch(`${apiserver}/api/is/fakeemail/fake@${row.domain}`)).json())
|
|
58
|
+
// console.log(res)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
expect(res).property('retcode').eq(200)
|
|
62
|
+
expect(res).property('isFakeDomain').eq(row.domain)
|
|
63
|
+
|
|
64
|
+
expect(res).property('details').property('providers').contains(row.provider)
|
|
65
|
+
expect(res).property('details').property('hosts').to.be.a('object')
|
|
66
|
+
for(let hostDetail of Object.values(res.details.hosts)) {
|
|
67
|
+
expect(hostDetail).property('firstseen').gt(1574600000)
|
|
68
|
+
expect(hostDetail).property('lastseen').gt(1574600000)
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// console.log(res.details)
|
|
72
|
+
// break
|
|
73
|
+
}
|
|
74
|
+
})
|
|
75
|
+
|
|
76
|
+
it('tests with existing fakedomains sub domains', async function () {
|
|
77
|
+
const progress = require('progressbar').create().step('testing')
|
|
78
|
+
progress.setTotal(Object.keys(testDomains).length)
|
|
79
|
+
for(let row of Object.values(testDomains)) {
|
|
80
|
+
progress.addTick()
|
|
81
|
+
// console.log(chalk.inverse(row.domain))
|
|
82
|
+
// console.log(row)
|
|
83
|
+
expect(row).property('domain')
|
|
84
|
+
expect(row).property('provider')
|
|
85
|
+
expect(row).property('id').to.be.a('number')
|
|
86
|
+
expect(row).property('t').to.be.a('number').gt(1576308737349)
|
|
87
|
+
let res = await ((await fetch(`${apiserver}/api/is/fakeemail/fake@sub.${row.domain}`)).json())
|
|
88
|
+
// console.log(res)
|
|
89
|
+
|
|
90
|
+
expect(res).property('retcode').eq(200)
|
|
91
|
+
expect(res).property('isFakeDomain').eq("sub."+row.domain)
|
|
92
|
+
|
|
93
|
+
expect(res).property('details').property('providers').contains(row.provider)
|
|
94
|
+
expect(res).property('details').property('hosts').to.be.a('object')
|
|
95
|
+
for(let hostDetail of Object.values(res.details.hosts)) {
|
|
96
|
+
expect(hostDetail).property('firstseen').gt(1574600000)
|
|
97
|
+
expect(hostDetail).property('lastseen').gt(1574600000)
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
})
|
|
101
|
+
|
|
102
|
+
it('query idn unicode domains in urlencoded format', async function() {
|
|
103
|
+
const progress = require('progressbar').create().step('testing')
|
|
104
|
+
progress.setTotal(Object.keys(testDomains).length)
|
|
105
|
+
for(let row of Object.values(testDomains)) {
|
|
106
|
+
progress.addTick()
|
|
107
|
+
// pick only the unicode domains from mysql
|
|
108
|
+
if (punycode.toASCII(row.domain)==row.domain) continue
|
|
109
|
+
let res = await ((await fetch(`${apiserver}/api/is/fakeemail/fake@${row.domain}`)).json())
|
|
110
|
+
// console.log(res)
|
|
111
|
+
expect(res).property('retcode').eq(200)
|
|
112
|
+
expect(res).property('isFakeDomain').eq(row.domain)
|
|
113
|
+
expect(res).property('details').property('providers').contains(row.provider)
|
|
114
|
+
expect(res).property('details').property('hosts').to.be.a('object')
|
|
115
|
+
}
|
|
116
|
+
})
|
|
117
|
+
|
|
118
|
+
it('query idn domains in punycode format', async function() {
|
|
119
|
+
const progress = require('progressbar').create().step('testing')
|
|
120
|
+
progress.setTotal(Object.keys(testDomains).length)
|
|
121
|
+
for(let row of Object.values(testDomains)) {
|
|
122
|
+
progress.addTick()
|
|
123
|
+
// pick only the unicode domains from mysql
|
|
124
|
+
if (punycode.toASCII(row.domain)==row.domain) continue
|
|
125
|
+
let pc = punycode.toASCII(row.domain)
|
|
126
|
+
let res = await ((await fetch(`${apiserver}/api/is/fakeemail/fake@${pc}`)).json())
|
|
127
|
+
// console.log(res)
|
|
128
|
+
expect(res).property('retcode').eq(200)
|
|
129
|
+
expect(res).property('isFakeDomain').eq(pc)
|
|
130
|
+
expect(res).property('details').property('providers').contains(row.provider)
|
|
131
|
+
expect(res).property('details').property('hosts').to.be.a('object')
|
|
132
|
+
}
|
|
133
|
+
})
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
})
|
package/test/psl.js
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
const punycode = require('punycode/')
|
|
2
|
+
const psl = require('psl')
|
|
3
|
+
const { getConfig } = require('./../config')
|
|
4
|
+
const expect = require('chai').expect
|
|
5
|
+
const { is_domain_banned } = require('./../shared.js')
|
|
6
|
+
let config
|
|
7
|
+
|
|
8
|
+
describe('PSL Library', function () {
|
|
9
|
+
this.timeout(0)
|
|
10
|
+
before(async function () {
|
|
11
|
+
if (!config) {
|
|
12
|
+
// config = await getConfig()
|
|
13
|
+
// apiserver = `http://${config.apiserver.ip}:${config.apiserver.port}`
|
|
14
|
+
}
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
it('punnycode encoded domains should be parseable', async function () {
|
|
18
|
+
var got = psl.parse(punycode.toASCII('gmaıl.net'))
|
|
19
|
+
expect(got).property('tld').eq('net')
|
|
20
|
+
expect(got).property('listed').to.be.true
|
|
21
|
+
|
|
22
|
+
got = psl.parse(punycode.toASCII('뜃.cf'))
|
|
23
|
+
expect(got).property('tld').eq('cf')
|
|
24
|
+
expect(got).property('listed').to.be.true
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
it('punnycode encoded domains their tld is not listed should be parseable', async function () {
|
|
28
|
+
var got = psl.parse(punycode.toASCII('gmaıl.nt'))
|
|
29
|
+
expect(got).property('tld').eq('nt')
|
|
30
|
+
expect(got).property('listed').to.be.false
|
|
31
|
+
|
|
32
|
+
got = psl.parse(punycode.toASCII('뜃.xx'))
|
|
33
|
+
expect(got).property('tld').eq('xx')
|
|
34
|
+
expect(got).property('listed').to.be.false
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
it('unicode encoded domains should be parseable', async function () {
|
|
38
|
+
var got = psl.parse('gmaıl.net')
|
|
39
|
+
expect(got).property('tld').eq('net')
|
|
40
|
+
expect(got).property('listed').to.be.true
|
|
41
|
+
|
|
42
|
+
got = psl.parse('뜃.cf')
|
|
43
|
+
expect(got).property('tld').eq('cf')
|
|
44
|
+
expect(got).property('listed').to.be.true
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
it('listed unicode tld should be parseable', async function () {
|
|
48
|
+
var got = psl.parse('пушка-тула.рф')
|
|
49
|
+
expect(got).property('tld').eq('рф')
|
|
50
|
+
expect(got).property('listed').to.be.true
|
|
51
|
+
})
|
|
52
|
+
|
|
53
|
+
it('unlisted unicode tld should be parseable', async function () {
|
|
54
|
+
var got = psl.parse('пушка-тула.xф')
|
|
55
|
+
expect(got).property('tld').eq('xф')
|
|
56
|
+
expect(got).property('listed').to.be.false
|
|
57
|
+
})
|
|
58
|
+
})
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
const fs = require('fs')
|
|
2
|
+
const path = require('path')
|
|
3
|
+
const punycode = require('punycode/')
|
|
4
|
+
const psl = require('psl')
|
|
5
|
+
const { getConfig } = require('./../config')
|
|
6
|
+
const expect = require('chai').expect
|
|
7
|
+
const { is_domain_banned } = require('./../shared.js')
|
|
8
|
+
let config
|
|
9
|
+
|
|
10
|
+
describe('/repo/json/data.json format', function () {
|
|
11
|
+
this.timeout(0)
|
|
12
|
+
before(async function () {
|
|
13
|
+
if (!config) {
|
|
14
|
+
config = await getConfig()
|
|
15
|
+
// apiserver = `http://${config.apiserver.ip}:${config.apiserver.port}`
|
|
16
|
+
}
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
it('read generated json version1 format', async function () {
|
|
20
|
+
let json = JSON.parse(fs.readFileSync(path.join(config.main_folder,'repo/json/data.json')))
|
|
21
|
+
expect(json).property('version').eq(1)
|
|
22
|
+
expect(json).property('domains')
|
|
23
|
+
for(let domain of Object.keys(json.domains)) {
|
|
24
|
+
let inner = json.domains[domain]
|
|
25
|
+
expect(inner).property('provider').to.be.a('string')
|
|
26
|
+
expect(inner).property('firstseen').to.be.a('number').gt(0)
|
|
27
|
+
expect(inner).property('lastseen').to.be.a('number').gt(0)
|
|
28
|
+
}
|
|
29
|
+
})
|
|
30
|
+
})
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
const fs = require('fs')
|
|
2
|
+
const path = require('path')
|
|
3
|
+
const punycode = require('punycode/')
|
|
4
|
+
const psl = require('psl')
|
|
5
|
+
const { getConfig } = require('./../config')
|
|
6
|
+
const expect = require('chai').expect
|
|
7
|
+
const { is_domain_banned } = require('./../shared.js')
|
|
8
|
+
let config
|
|
9
|
+
|
|
10
|
+
describe('/repo/json/data_version2.json format', function () {
|
|
11
|
+
this.timeout(0)
|
|
12
|
+
before(async function () {
|
|
13
|
+
if (!config) {
|
|
14
|
+
config = await getConfig()
|
|
15
|
+
// apiserver = `http://${config.apiserver.ip}:${config.apiserver.port}`
|
|
16
|
+
}
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
it('read generated json version2 format', async function () {
|
|
20
|
+
let json = JSON.parse(fs.readFileSync(path.join(config.main_folder,'repo/json/data_version2.json')))
|
|
21
|
+
expect(json).property('version').eq(2)
|
|
22
|
+
expect(json).property('domains')
|
|
23
|
+
for(let domain of Object.keys(json.domains)) {
|
|
24
|
+
let inner = json.domains[domain]
|
|
25
|
+
// console.log(inner)
|
|
26
|
+
|
|
27
|
+
if (inner.hasOwnProperty('unicodeDomain')) {
|
|
28
|
+
expect(inner.unicodeDomain).not.contain('xn--')
|
|
29
|
+
// console.log(domain,inner)
|
|
30
|
+
}
|
|
31
|
+
expect(inner).property('providers').to.be.a('array').length.gt(0)
|
|
32
|
+
expect(inner).property('hosts').to.be.a('object')
|
|
33
|
+
for(let hostKey of Object.keys(inner.hosts)) {
|
|
34
|
+
expect(inner.hosts[hostKey]).property('firstseen').gt(0)
|
|
35
|
+
expect(inner.hosts[hostKey]).property('lastseen').gt(0)
|
|
36
|
+
// console.log(hostKey)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
}
|
|
40
|
+
})
|
|
41
|
+
})
|
package/test1.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
const chalk = require('chalk')
|
|
2
|
+
const { getConfig } = require('./config')
|
|
3
|
+
|
|
4
|
+
const new_domains = [
|
|
5
|
+
'gmail.com','gmail.ch','gmail.net','googlemail.com',
|
|
6
|
+
'hotmail.com','hotmail.be','hotmail.ca','hotmail.ch','hotmail.cl','hotmail.co.il','hotmail.co.jp','hotmail.com.ar','hotmail.com.au','hotmail.com.br','hotmail.com.tr','hotmail.com.tw','hotmail.co.nz','hotmail.co.uk','hotmail.cz','hotmail.de','hotmail.es','hotmail.fi','hotmail.fr','hotmail.gr','hotmail.hu','hotmail.it','hotmail.my','hotmail.nl','hotmail.ru','hotmail.se',
|
|
7
|
+
'yahoo.com','yahoo.ca','yahoo.cl','yahoo.cn','yahoo.co.id','yahoo.co.in','yahoo.co.jp','yahoo.co.kr','yahoo.com.ar','yahoo.com.au','yahoo.com.br','yahoo.com.cn','yahoo.com.hk','yahoo.com.mx','yahoo.com.my','yahoo.com.ph','yahoo.com.sg','yahoo.com.tr','yahoo.com.tw','yahoo.com.vn','yahoo.co.nz','yahoo.co.uk','yahoo.de','yahoo.dk','yahoo.es','yahoo.fr','yahoo.gr','yahoo.ie','yahoo.in','yahoo.it','yahoomail.com','yahoo.nl','yahoo.no','yahoo.pl','yahoo.se',
|
|
8
|
+
'outlook.com','outlook.sa','outlook.es','outlook.fr', 'live.com','live.com.au','live.com.mx','live.com.ph','live.co.uk','live.de','live.fr','live.it','live.nl', 'msn.com', 'icloud.com',
|
|
9
|
+
'123mail.net','5ballov.ru','5ymail.com','a1.net','accountant.com','aeterna.ru','amorki.pl','anonymousspeech.com','aol.at','aol.com','aol.co.uk','aol.de','aol.fr','aol.in','aol.it','aprava.com','arcor.de','asia.com','bestmail.us','betriebsdirektor.de','bk.ru','bossmail.de','breakthru.com','btinternet.com','centrum.cz','cheerful.com','citromail.hu','consultant.com','contractor.net','cysel.zzn.com',
|
|
10
|
+
'dcemail.com','directbox.com','doctor.com','dr.com','email.com','email.cz','email.it','emailn.de','engineer.com','europe.com','everymail.net','eyou.com','fotoplenka.ru','freenet.de','freenetmail.de','fromru.com','front.ru','gmx.at','gmx.ch','gmx.com','gmx.co.uk','gmx.de','gmx.es','gmx.eu','gmx.fr','gmx.ie','gmx.it','gmx.li','gmx.net','gmx.org','gmx.pt','gmx.tm','gmx-topmail.de','gmx.us',
|
|
11
|
+
'hanmail.net','hidemail.de','hotbox.ru','hushmail.com','hushmail.me','iname.com','inbox.com','inbox.lv','inbox.ru','interia.pl','ip6.li','islammail.net','jubii.dk','junkmail.com','keemail.me','krovatka.su','laposte.net','lavabit.com','lawyer.com','libero.it','linuxmail.org','list.ru','live.at','live.ca','live.cl','live.cn','london.com','lykamspam.pl','mail15.com','mailbox.hu','mail.by','mailcan.com',
|
|
12
|
+
'mail.com','mail.co.uk','mail.ee','mail.ua','mailfa.com','mailmight.com','mail.ru','mauimail.com','mcn.net','memori.ru','messagebeamer.de','mighty.co.za','muchomail.com','mujmail.cz','mymail-in.net','myself.com','newmail.ru','nightmail.ru','nm.ru','nodns.org','nospammail.net','o2.pl','online.de','open.by','ownplace.com','photofile.ru','pm.me','pochtamt.ru','pochta.ru','pop3.ru','portugalmail.pt',
|
|
13
|
+
'post.com','post.cz','posteo.mx','posteo.si','prokonto.pl','protonmail.com','qip.ru','qq.com','rambler.ru','rbcmail.ru','rocketmail.com','safe-mail.net','secmail.in','secure-email.org','secure-mail.cc','seznam.cz','shaw.ca','sibmail.com','smtp.ru','startmail.com','stribmail.com','surimail.com','techemail.com','techie.com','tiscali.it','tlen.pl','tom.com','t-online.de','t-online.hu',
|
|
14
|
+
'topmail.com','tuta.io','tut.by','u7.eu','unitybox.de','usa.com','uymail.com','virgilio.it','voila.fr','vollbio.de','wanadoo.fr','warpmail.net','web.de','windowslive.com','wp.pl','x-mail.net','y7mail.com',
|
|
15
|
+
'comcast.net','aliyun.com','cps.edu','sina.com','sina.cn','139.com','orange.fr','me.com','abv.bg','i.ua','naver.com','ukr.net','126.com','163.com','yandex.com','yandex.ru','yandex.ua','ya.ru','yeah.net','ymail.com','yourinbox.co','yuurok.com','ziggo.nl','zoho.com']
|
|
16
|
+
|
|
17
|
+
async function start() {
|
|
18
|
+
try {
|
|
19
|
+
let config = await getConfig()
|
|
20
|
+
let current_domains = config.ignore_domains
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
for(let current of new_domains) {
|
|
24
|
+
if (current_domains.includes(current)) {
|
|
25
|
+
console.log(`match: ${current}`)
|
|
26
|
+
} else {
|
|
27
|
+
console.log(chalk.red(`nomatch: ${current}`))
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
// console.log(config)
|
|
31
|
+
} catch(err) {
|
|
32
|
+
console.log(err)
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
start()
|
package/update-repo.sh
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
optstring=":v"
|
|
3
|
+
verbose=
|
|
4
|
+
while getopts ${optstring} arg; do
|
|
5
|
+
case "${arg}" in
|
|
6
|
+
v) verbose=1 ;;
|
|
7
|
+
esac
|
|
8
|
+
done
|
|
9
|
+
|
|
10
|
+
report_test_ok() {
|
|
11
|
+
local id="$1"
|
|
12
|
+
local details="$2"
|
|
13
|
+
test -z $2 && details="-"
|
|
14
|
+
test -e /opt/coadmin-peer/tools/report_test.js && {
|
|
15
|
+
test -z $verbose || echo "✅ $id"
|
|
16
|
+
node /opt/coadmin-peer/tools/report_test.js --project 'fakefilter' --group 'update-repo.sh' --id "$id" --result "ok" --details "$details"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
report_test_error() {
|
|
21
|
+
local id="$1"
|
|
22
|
+
local details="$2"
|
|
23
|
+
test -z $2 && details="-"
|
|
24
|
+
test -e /opt/coadmin-peer/tools/report_test.js && {
|
|
25
|
+
test -z $verbose || echo "❌ $id"
|
|
26
|
+
node /opt/coadmin-peer/tools/report_test.js --project 'fakefilter' --group 'update-repo.sh' --id "$id" --result "error" --details "$details"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
cd /opt/fakefilter && {
|
|
31
|
+
node chart-update.js
|
|
32
|
+
node repo-update.js
|
|
33
|
+
if cd repo/; then
|
|
34
|
+
# git add assets/img/*.png
|
|
35
|
+
report_test_ok "repo folder exists"
|
|
36
|
+
if ./release.sh 'auto update' && npm publish; then
|
|
37
|
+
report_test_ok "npm published"
|
|
38
|
+
else
|
|
39
|
+
report_test_error "npm published"
|
|
40
|
+
fi
|
|
41
|
+
else
|
|
42
|
+
report_test_error "repo folder exists"
|
|
43
|
+
fi
|
|
44
|
+
}
|
package/vars.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const { CoadminService } = require('coadmin-lib');
|
|
2
|
+
|
|
3
|
+
module.exports = {
|
|
4
|
+
sequelize:false,
|
|
5
|
+
config:false,
|
|
6
|
+
providers:[],
|
|
7
|
+
browsers:[],
|
|
8
|
+
coadmin_service_apiserver:new CoadminService('fakefilter/apiserver'),
|
|
9
|
+
current_filter:{},
|
|
10
|
+
|
|
11
|
+
models:{
|
|
12
|
+
Harvested:false,
|
|
13
|
+
HarvestedClone:false,
|
|
14
|
+
Events:false
|
|
15
|
+
}
|
|
16
|
+
}
|