is-antibot 2.2.0 → 2.3.0
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/package.json +15 -3
- package/src/providers.json +84 -3
- package/src/schema.json +10 -1
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "is-antibot",
|
|
3
3
|
"description": "Detect antibot protection from 30+ providers — Cloudflare, Akamai, DataDome, PerimeterX, Kasada, Imperva, reCAPTCHA, hCaptcha, Turnstile, and more.",
|
|
4
4
|
"homepage": "https://antibot.microlink.io/",
|
|
5
|
-
"version": "2.
|
|
5
|
+
"version": "2.3.0",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": "./src/index.js",
|
|
8
8
|
"./providers.json": "./src/providers.json",
|
|
@@ -111,12 +111,14 @@
|
|
|
111
111
|
"coverage": "c8 report --reporter=text-lcov > coverage/lcov.info",
|
|
112
112
|
"dev": "concurrently \"gulp\" \"npm run dev:server\"",
|
|
113
113
|
"dev:server": "browser-sync start --server docs --files \"docs/index.html, docs/README.md, docs/static/**/*.(css|js)\"",
|
|
114
|
+
"docs": "node scripts/generate-docs.js",
|
|
115
|
+
"docs:check": "node scripts/generate-docs.js --check",
|
|
114
116
|
"lint": "standard",
|
|
115
117
|
"postrelease": "npm run release:tags && npm run release:github && (ci-publish || npm publish --access=public)",
|
|
116
118
|
"pretest": "npm run lint",
|
|
117
|
-
"release": "pnpm run release:version && pnpm run release:changelog && pnpm run release:commit && pnpm run release:tag",
|
|
119
|
+
"release": "pnpm run release:version && pnpm run release:changelog && pnpm run docs && pnpm run release:commit && pnpm run release:tag",
|
|
118
120
|
"release:changelog": "conventional-changelog -p conventionalcommits -i CHANGELOG.md -s",
|
|
119
|
-
"release:commit": "git add package.json CHANGELOG.md && git commit -m \"chore(release): $(node -p \"require('./package.json').version\")\"",
|
|
121
|
+
"release:commit": "git add package.json CHANGELOG.md docs && git commit -m \"chore(release): $(node -p \"require('./package.json').version\")\"",
|
|
120
122
|
"release:github": "github-generate-release",
|
|
121
123
|
"release:tag": "git tag -a v$(node -p \"require('./package.json').version\") -m \"v$(node -p \"require('./package.json').version\")\"",
|
|
122
124
|
"release:tags": "git push origin HEAD:master --follow-tags",
|
|
@@ -130,6 +132,16 @@
|
|
|
130
132
|
"!test/util.js"
|
|
131
133
|
]
|
|
132
134
|
},
|
|
135
|
+
"c8": {
|
|
136
|
+
"exclude": [
|
|
137
|
+
"bench/**",
|
|
138
|
+
"coverage/**",
|
|
139
|
+
"docs/**",
|
|
140
|
+
"gulpfile.js",
|
|
141
|
+
"scripts/**",
|
|
142
|
+
"test/**"
|
|
143
|
+
]
|
|
144
|
+
},
|
|
133
145
|
"commitlint": {
|
|
134
146
|
"extends": [
|
|
135
147
|
"@commitlint/config-conventional"
|
package/src/providers.json
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
"providers": [
|
|
5
5
|
{
|
|
6
6
|
"name": "cloudflare",
|
|
7
|
+
"label": "Cloudflare",
|
|
8
|
+
"category": "antibot",
|
|
7
9
|
"detections": [
|
|
8
10
|
{
|
|
9
11
|
"type": "headers",
|
|
@@ -26,6 +28,8 @@
|
|
|
26
28
|
},
|
|
27
29
|
{
|
|
28
30
|
"name": "vercel",
|
|
31
|
+
"label": "Vercel",
|
|
32
|
+
"category": "antibot",
|
|
29
33
|
"detections": [
|
|
30
34
|
{
|
|
31
35
|
"type": "headers",
|
|
@@ -40,6 +44,8 @@
|
|
|
40
44
|
},
|
|
41
45
|
{
|
|
42
46
|
"name": "akamai",
|
|
47
|
+
"label": "Akamai",
|
|
48
|
+
"category": "antibot",
|
|
43
49
|
"detections": [
|
|
44
50
|
{
|
|
45
51
|
"type": "headers",
|
|
@@ -74,13 +80,18 @@
|
|
|
74
80
|
},
|
|
75
81
|
{
|
|
76
82
|
"name": "datadome",
|
|
83
|
+
"label": "DataDome",
|
|
84
|
+
"category": "antibot",
|
|
77
85
|
"detections": [
|
|
78
86
|
{
|
|
79
87
|
"type": "headers",
|
|
80
88
|
"rules": [
|
|
81
89
|
{
|
|
82
90
|
"header": "x-dd-b",
|
|
83
|
-
"oneOf": [
|
|
91
|
+
"oneOf": [
|
|
92
|
+
"1",
|
|
93
|
+
"2"
|
|
94
|
+
]
|
|
84
95
|
},
|
|
85
96
|
{
|
|
86
97
|
"header": "x-datadome",
|
|
@@ -105,6 +116,8 @@
|
|
|
105
116
|
},
|
|
106
117
|
{
|
|
107
118
|
"name": "perimeterx",
|
|
119
|
+
"label": "PerimeterX",
|
|
120
|
+
"category": "antibot",
|
|
108
121
|
"detections": [
|
|
109
122
|
{
|
|
110
123
|
"type": "headers",
|
|
@@ -144,6 +157,8 @@
|
|
|
144
157
|
},
|
|
145
158
|
{
|
|
146
159
|
"name": "shapesecurity",
|
|
160
|
+
"label": "Shape Security",
|
|
161
|
+
"category": "antibot",
|
|
147
162
|
"detections": [
|
|
148
163
|
{
|
|
149
164
|
"type": "headers",
|
|
@@ -166,6 +181,8 @@
|
|
|
166
181
|
},
|
|
167
182
|
{
|
|
168
183
|
"name": "kasada",
|
|
184
|
+
"label": "Kasada",
|
|
185
|
+
"category": "antibot",
|
|
169
186
|
"detections": [
|
|
170
187
|
{
|
|
171
188
|
"type": "headers",
|
|
@@ -195,6 +212,8 @@
|
|
|
195
212
|
},
|
|
196
213
|
{
|
|
197
214
|
"name": "imperva",
|
|
215
|
+
"label": "Imperva / Incapsula",
|
|
216
|
+
"category": "antibot",
|
|
198
217
|
"detections": [
|
|
199
218
|
{
|
|
200
219
|
"type": "headers",
|
|
@@ -235,6 +254,8 @@
|
|
|
235
254
|
},
|
|
236
255
|
{
|
|
237
256
|
"name": "reblaze",
|
|
257
|
+
"label": "Reblaze",
|
|
258
|
+
"category": "antibot",
|
|
238
259
|
"detections": [
|
|
239
260
|
{
|
|
240
261
|
"type": "cookies",
|
|
@@ -259,6 +280,8 @@
|
|
|
259
280
|
},
|
|
260
281
|
{
|
|
261
282
|
"name": "cheq",
|
|
283
|
+
"label": "Cheq",
|
|
284
|
+
"category": "antibot",
|
|
262
285
|
"detections": [
|
|
263
286
|
{
|
|
264
287
|
"type": "html",
|
|
@@ -288,6 +311,8 @@
|
|
|
288
311
|
},
|
|
289
312
|
{
|
|
290
313
|
"name": "sucuri",
|
|
314
|
+
"label": "Sucuri",
|
|
315
|
+
"category": "antibot",
|
|
291
316
|
"detections": [
|
|
292
317
|
{
|
|
293
318
|
"type": "html",
|
|
@@ -301,6 +326,8 @@
|
|
|
301
326
|
},
|
|
302
327
|
{
|
|
303
328
|
"name": "threatmetrix",
|
|
329
|
+
"label": "ThreatMetrix",
|
|
330
|
+
"category": "antibot",
|
|
304
331
|
"detections": [
|
|
305
332
|
{
|
|
306
333
|
"type": "html",
|
|
@@ -323,6 +350,8 @@
|
|
|
323
350
|
},
|
|
324
351
|
{
|
|
325
352
|
"name": "meetrics",
|
|
353
|
+
"label": "Meetrics",
|
|
354
|
+
"category": "antibot",
|
|
326
355
|
"detections": [
|
|
327
356
|
{
|
|
328
357
|
"type": "html",
|
|
@@ -345,6 +374,8 @@
|
|
|
345
374
|
},
|
|
346
375
|
{
|
|
347
376
|
"name": "ocule",
|
|
377
|
+
"label": "Ocule",
|
|
378
|
+
"category": "antibot",
|
|
348
379
|
"detections": [
|
|
349
380
|
{
|
|
350
381
|
"type": "html",
|
|
@@ -367,6 +398,8 @@
|
|
|
367
398
|
},
|
|
368
399
|
{
|
|
369
400
|
"name": "recaptcha",
|
|
401
|
+
"label": "reCAPTCHA",
|
|
402
|
+
"category": "captcha",
|
|
370
403
|
"detections": [
|
|
371
404
|
{
|
|
372
405
|
"type": "url",
|
|
@@ -405,7 +438,11 @@
|
|
|
405
438
|
},
|
|
406
439
|
{
|
|
407
440
|
"type": "html",
|
|
408
|
-
"statusCodes": [
|
|
441
|
+
"statusCodes": [
|
|
442
|
+
403,
|
|
443
|
+
429,
|
|
444
|
+
503
|
|
445
|
+
],
|
|
409
446
|
"rules": [
|
|
410
447
|
{
|
|
411
448
|
"contains": "g-recaptcha"
|
|
@@ -416,6 +453,8 @@
|
|
|
416
453
|
},
|
|
417
454
|
{
|
|
418
455
|
"name": "hcaptcha",
|
|
456
|
+
"label": "hCaptcha",
|
|
457
|
+
"category": "captcha",
|
|
419
458
|
"detections": [
|
|
420
459
|
{
|
|
421
460
|
"type": "url",
|
|
@@ -441,6 +480,8 @@
|
|
|
441
480
|
},
|
|
442
481
|
{
|
|
443
482
|
"name": "funcaptcha",
|
|
483
|
+
"label": "FunCaptcha (Arkose Labs)",
|
|
484
|
+
"category": "captcha",
|
|
444
485
|
"detections": [
|
|
445
486
|
{
|
|
446
487
|
"type": "url",
|
|
@@ -469,6 +510,8 @@
|
|
|
469
510
|
},
|
|
470
511
|
{
|
|
471
512
|
"name": "geetest",
|
|
513
|
+
"label": "GeeTest",
|
|
514
|
+
"category": "captcha",
|
|
472
515
|
"detections": [
|
|
473
516
|
{
|
|
474
517
|
"type": "url",
|
|
@@ -491,6 +534,8 @@
|
|
|
491
534
|
},
|
|
492
535
|
{
|
|
493
536
|
"name": "cloudflare-turnstile",
|
|
537
|
+
"label": "Cloudflare Turnstile",
|
|
538
|
+
"category": "captcha",
|
|
494
539
|
"detections": [
|
|
495
540
|
{
|
|
496
541
|
"type": "url",
|
|
@@ -516,6 +561,8 @@
|
|
|
516
561
|
},
|
|
517
562
|
{
|
|
518
563
|
"name": "friendly-captcha",
|
|
564
|
+
"label": "Friendly Captcha",
|
|
565
|
+
"category": "captcha",
|
|
519
566
|
"detections": [
|
|
520
567
|
{
|
|
521
568
|
"type": "url",
|
|
@@ -541,6 +588,8 @@
|
|
|
541
588
|
},
|
|
542
589
|
{
|
|
543
590
|
"name": "captcha-eu",
|
|
591
|
+
"label": "Captcha.eu",
|
|
592
|
+
"category": "captcha",
|
|
544
593
|
"detections": [
|
|
545
594
|
{
|
|
546
595
|
"type": "url",
|
|
@@ -566,6 +615,8 @@
|
|
|
566
615
|
},
|
|
567
616
|
{
|
|
568
617
|
"name": "qcloud-captcha",
|
|
618
|
+
"label": "QCloud Captcha",
|
|
619
|
+
"category": "captcha",
|
|
569
620
|
"detections": [
|
|
570
621
|
{
|
|
571
622
|
"type": "url",
|
|
@@ -591,6 +642,8 @@
|
|
|
591
642
|
},
|
|
592
643
|
{
|
|
593
644
|
"name": "aliexpress-captcha",
|
|
645
|
+
"label": "AliExpress CAPTCHA",
|
|
646
|
+
"category": "captcha",
|
|
594
647
|
"detections": [
|
|
595
648
|
{
|
|
596
649
|
"type": "url",
|
|
@@ -613,6 +666,8 @@
|
|
|
613
666
|
},
|
|
614
667
|
{
|
|
615
668
|
"name": "houzz",
|
|
669
|
+
"label": "Houzz",
|
|
670
|
+
"category": "platform",
|
|
616
671
|
"detections": [
|
|
617
672
|
{
|
|
618
673
|
"type": "status_code",
|
|
@@ -627,6 +682,8 @@
|
|
|
627
682
|
},
|
|
628
683
|
{
|
|
629
684
|
"name": "reddit",
|
|
685
|
+
"label": "Reddit",
|
|
686
|
+
"category": "platform",
|
|
630
687
|
"detections": [
|
|
631
688
|
{
|
|
632
689
|
"type": "status_code",
|
|
@@ -657,6 +714,8 @@
|
|
|
657
714
|
},
|
|
658
715
|
{
|
|
659
716
|
"name": "google",
|
|
717
|
+
"label": "Google",
|
|
718
|
+
"category": "platform",
|
|
660
719
|
"detections": [
|
|
661
720
|
{
|
|
662
721
|
"type": "url",
|
|
@@ -670,6 +729,8 @@
|
|
|
670
729
|
},
|
|
671
730
|
{
|
|
672
731
|
"name": "linkedin",
|
|
732
|
+
"label": "LinkedIn",
|
|
733
|
+
"category": "platform",
|
|
673
734
|
"detections": [
|
|
674
735
|
{
|
|
675
736
|
"type": "status_code",
|
|
@@ -684,6 +745,8 @@
|
|
|
684
745
|
},
|
|
685
746
|
{
|
|
686
747
|
"name": "instagram",
|
|
748
|
+
"label": "Instagram",
|
|
749
|
+
"category": "platform",
|
|
687
750
|
"detections": [
|
|
688
751
|
{
|
|
689
752
|
"type": "html",
|
|
@@ -699,6 +762,8 @@
|
|
|
699
762
|
},
|
|
700
763
|
{
|
|
701
764
|
"name": "youtube",
|
|
765
|
+
"label": "YouTube",
|
|
766
|
+
"category": "platform",
|
|
702
767
|
"detections": [
|
|
703
768
|
{
|
|
704
769
|
"type": "html",
|
|
@@ -713,11 +778,15 @@
|
|
|
713
778
|
},
|
|
714
779
|
{
|
|
715
780
|
"name": "amazon",
|
|
781
|
+
"label": "Amazon",
|
|
782
|
+
"category": "platform",
|
|
716
783
|
"detections": [
|
|
717
784
|
{
|
|
718
785
|
"type": "headers",
|
|
719
786
|
"domainWithoutSuffix": "amazon",
|
|
720
|
-
"statusCodes": [
|
|
787
|
+
"statusCodes": [
|
|
788
|
+
500
|
|
789
|
+
],
|
|
721
790
|
"rules": [
|
|
722
791
|
{
|
|
723
792
|
"header": "x-cache",
|
|
@@ -738,6 +807,8 @@
|
|
|
738
807
|
},
|
|
739
808
|
{
|
|
740
809
|
"name": "anubis",
|
|
810
|
+
"label": "Anubis",
|
|
811
|
+
"category": "antibot",
|
|
741
812
|
"detections": [
|
|
742
813
|
{
|
|
743
814
|
"type": "html",
|
|
@@ -755,6 +826,8 @@
|
|
|
755
826
|
},
|
|
756
827
|
{
|
|
757
828
|
"name": "fullstory-challenge",
|
|
829
|
+
"label": "FullStory Challenge",
|
|
830
|
+
"category": "antibot",
|
|
758
831
|
"detections": [
|
|
759
832
|
{
|
|
760
833
|
"type": "html",
|
|
@@ -776,6 +849,8 @@
|
|
|
776
849
|
},
|
|
777
850
|
{
|
|
778
851
|
"name": "aws-waf",
|
|
852
|
+
"label": "AWS WAF",
|
|
853
|
+
"category": "antibot",
|
|
779
854
|
"detections": [
|
|
780
855
|
{
|
|
781
856
|
"type": "headers",
|
|
@@ -813,6 +888,8 @@
|
|
|
813
888
|
},
|
|
814
889
|
{
|
|
815
890
|
"name": "weibo",
|
|
891
|
+
"label": "Weibo",
|
|
892
|
+
"category": "platform",
|
|
816
893
|
"description": "Sina Visitor System gate served to non-China/bot clients before hydrating the page.",
|
|
817
894
|
"detections": [
|
|
818
895
|
{
|
|
@@ -828,6 +905,8 @@
|
|
|
828
905
|
},
|
|
829
906
|
{
|
|
830
907
|
"name": "dribbble",
|
|
908
|
+
"label": "Dribbble",
|
|
909
|
+
"category": "platform",
|
|
831
910
|
"description": "Dribbble answers 403 Forbidden to crawler/bot user agents.",
|
|
832
911
|
"detections": [
|
|
833
912
|
{
|
|
@@ -843,6 +922,8 @@
|
|
|
843
922
|
},
|
|
844
923
|
{
|
|
845
924
|
"name": "douban",
|
|
925
|
+
"label": "Douban",
|
|
926
|
+
"category": "platform",
|
|
846
927
|
"description": "Douban's image CDN answers 418 to requests without a matching Referer.",
|
|
847
928
|
"detections": [
|
|
848
929
|
{
|
package/src/schema.json
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"$defs": {
|
|
25
25
|
"provider": {
|
|
26
26
|
"type": "object",
|
|
27
|
-
"required": ["name", "detections"],
|
|
27
|
+
"required": ["name", "label", "category", "detections"],
|
|
28
28
|
"additionalProperties": false,
|
|
29
29
|
"properties": {
|
|
30
30
|
"name": {
|
|
@@ -32,6 +32,15 @@
|
|
|
32
32
|
"pattern": "^[a-z][a-z0-9-]*$",
|
|
33
33
|
"description": "Unique provider identifier (kebab-case)."
|
|
34
34
|
},
|
|
35
|
+
"label": {
|
|
36
|
+
"type": "string",
|
|
37
|
+
"minLength": 1,
|
|
38
|
+
"description": "Human-readable provider name as rendered in docs and dashboards (e.g. 'AWS WAF')."
|
|
39
|
+
},
|
|
40
|
+
"category": {
|
|
41
|
+
"enum": ["antibot", "captcha", "platform"],
|
|
42
|
+
"description": "antibot: general-purpose bot mitigation. captcha: challenge widget vendor. platform: protection specific to a single site."
|
|
43
|
+
},
|
|
35
44
|
"description": {
|
|
36
45
|
"type": "string",
|
|
37
46
|
"description": "Human-readable description or official docs link."
|