@arcis/node 1.6.1 → 1.6.3

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.
Files changed (75) hide show
  1. package/README.md +5 -3
  2. package/dist/_third_party/rate-limit/abstract.d.ts +36 -0
  3. package/dist/_third_party/rate-limit/abstract.d.ts.map +1 -0
  4. package/dist/_third_party/rate-limit/bursty.d.ts +21 -0
  5. package/dist/_third_party/rate-limit/bursty.d.ts.map +1 -0
  6. package/dist/_third_party/rate-limit/index.d.ts +12 -0
  7. package/dist/_third_party/rate-limit/index.d.ts.map +1 -0
  8. package/dist/_third_party/rate-limit/memory-storage.d.ts +28 -0
  9. package/dist/_third_party/rate-limit/memory-storage.d.ts.map +1 -0
  10. package/dist/_third_party/rate-limit/memory.d.ts +23 -0
  11. package/dist/_third_party/rate-limit/memory.d.ts.map +1 -0
  12. package/dist/_third_party/rate-limit/record.d.ts +11 -0
  13. package/dist/_third_party/rate-limit/record.d.ts.map +1 -0
  14. package/dist/_third_party/rate-limit/types.d.ts +39 -0
  15. package/dist/_third_party/rate-limit/types.d.ts.map +1 -0
  16. package/dist/astro/index.js +405 -0
  17. package/dist/astro/index.js.map +1 -1
  18. package/dist/astro/index.mjs +405 -0
  19. package/dist/astro/index.mjs.map +1 -1
  20. package/dist/bun/index.js +405 -0
  21. package/dist/bun/index.js.map +1 -1
  22. package/dist/bun/index.mjs +405 -0
  23. package/dist/bun/index.mjs.map +1 -1
  24. package/dist/fastify/index.js +405 -0
  25. package/dist/fastify/index.js.map +1 -1
  26. package/dist/fastify/index.mjs +405 -0
  27. package/dist/fastify/index.mjs.map +1 -1
  28. package/dist/hono/index.js +405 -0
  29. package/dist/hono/index.js.map +1 -1
  30. package/dist/hono/index.mjs +405 -0
  31. package/dist/hono/index.mjs.map +1 -1
  32. package/dist/index.d.ts +2 -0
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +754 -5
  35. package/dist/index.js.map +1 -1
  36. package/dist/index.mjs +754 -6
  37. package/dist/index.mjs.map +1 -1
  38. package/dist/koa/index.js +405 -0
  39. package/dist/koa/index.js.map +1 -1
  40. package/dist/koa/index.mjs +405 -0
  41. package/dist/koa/index.mjs.map +1 -1
  42. package/dist/middleware/brute-force.d.ts +69 -0
  43. package/dist/middleware/brute-force.d.ts.map +1 -0
  44. package/dist/middleware/index.js +702 -1
  45. package/dist/middleware/index.js.map +1 -1
  46. package/dist/middleware/index.mjs +702 -1
  47. package/dist/middleware/index.mjs.map +1 -1
  48. package/dist/middleware/nestjs.d.ts +50 -1
  49. package/dist/middleware/nestjs.d.ts.map +1 -1
  50. package/dist/middleware/protect.d.ts +9 -0
  51. package/dist/middleware/protect.d.ts.map +1 -1
  52. package/dist/nestjs/index.js +57 -2
  53. package/dist/nestjs/index.js.map +1 -1
  54. package/dist/nestjs/index.mjs +57 -3
  55. package/dist/nestjs/index.mjs.map +1 -1
  56. package/dist/nextjs/index.js +405 -0
  57. package/dist/nextjs/index.js.map +1 -1
  58. package/dist/nextjs/index.mjs +405 -0
  59. package/dist/nextjs/index.mjs.map +1 -1
  60. package/dist/nuxt/index.js +405 -0
  61. package/dist/nuxt/index.js.map +1 -1
  62. package/dist/nuxt/index.mjs +405 -0
  63. package/dist/nuxt/index.mjs.map +1 -1
  64. package/dist/sanitizers/index.js +2 -1
  65. package/dist/sanitizers/index.js.map +1 -1
  66. package/dist/sanitizers/index.mjs +2 -1
  67. package/dist/sanitizers/index.mjs.map +1 -1
  68. package/dist/sanitizers/ldap.d.ts.map +1 -1
  69. package/dist/sanitizers/prompt-injection.d.ts +3 -3
  70. package/dist/sanitizers/prompt-injection.d.ts.map +1 -1
  71. package/dist/sveltekit/index.js +405 -0
  72. package/dist/sveltekit/index.js.map +1 -1
  73. package/dist/sveltekit/index.mjs +405 -0
  74. package/dist/sveltekit/index.mjs.map +1 -1
  75. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/constants.ts","../../src/data/bot-patterns.json","../../src/middleware/bot-detection.ts","../../src/middleware/nuxt.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * @module @arcis/node/core/constants\n * Named constants for Arcis - no magic numbers\n */\n\n// =============================================================================\n// INPUT LIMITS\n// =============================================================================\nexport const INPUT = {\n /** Default maximum input size (1MB) */\n DEFAULT_MAX_SIZE: 1_000_000,\n /** Maximum recursion depth for nested objects */\n MAX_RECURSION_DEPTH: 10,\n} as const;\n\n// =============================================================================\n// RATE LIMITING\n// =============================================================================\nexport const RATE_LIMIT = {\n /** Default window size (1 minute) */\n DEFAULT_WINDOW_MS: 60_000,\n /** Default max requests per window */\n DEFAULT_MAX_REQUESTS: 100,\n /** Default HTTP status code for rate limited responses */\n DEFAULT_STATUS_CODE: 429,\n /** Default error message */\n DEFAULT_MESSAGE: 'Too many requests, please try again later.',\n /** Minimum window size (1 second) */\n MIN_WINDOW_MS: 1_000,\n /** Maximum window size (24 hours) */\n MAX_WINDOW_MS: 86_400_000,\n} as const;\n\n// =============================================================================\n// SECURITY HEADERS\n// =============================================================================\nexport const HEADERS = {\n /** Default Content Security Policy */\n DEFAULT_CSP: [\n \"default-src 'self'\",\n \"script-src 'self'\",\n \"style-src 'self' 'unsafe-inline'\",\n \"img-src 'self' data: https:\",\n \"font-src 'self'\",\n \"object-src 'none'\",\n \"frame-ancestors 'none'\",\n ].join('; '),\n /** Default HSTS max age (1 year in seconds) */\n HSTS_MAX_AGE: 31_536_000,\n /** Default X-Frame-Options value */\n FRAME_OPTIONS: 'DENY' as const,\n /** Default X-Content-Type-Options value */\n CONTENT_TYPE_OPTIONS: 'nosniff',\n /** Default Referrer-Policy value */\n REFERRER_POLICY: 'strict-origin-when-cross-origin',\n /** Default Permissions-Policy value */\n PERMISSIONS_POLICY: 'geolocation=(), microphone=(), camera=()',\n /** Default Cache-Control value for security */\n CACHE_CONTROL: 'no-store, no-cache, must-revalidate, proxy-revalidate',\n} as const;\n\n// =============================================================================\n// XSS PATTERNS (ReDoS-safe)\n// =============================================================================\n\n/**\n * Detection patterns — used to flag whether a string contains XSS payloads.\n * Must stay in sync with XSS_REMOVE_PATTERNS below.\n */\nexport const XSS_PATTERNS = [\n /** Script tags (ReDoS-safe version) */\n /<script[^>]*>[\\s\\S]*?<\\/script>/gi,\n /** javascript: protocol (allow optional spaces before colon) */\n /javascript\\s*:/gi,\n /** vbscript: protocol */\n /vbscript\\s*:/gi,\n /** Event handlers (onclick, onerror, etc.) — any separator before attribute */\n /(?:[\\s/])on\\w+\\s*=/gi,\n /** iframe tags */\n /<iframe/gi,\n /** object tags */\n /<object/gi,\n /** embed tags */\n /<embed/gi,\n /** data: URIs (only dangerous ones, avoid false positives) */\n /(?:^|[\\s\"'=])data:/gi,\n /** URL-encoded script tags */\n /%3Cscript/gi,\n /** SVG with onload */\n /<svg[^>]*onload/gi,\n /** form tags — phishing/credential harvesting via action= redirection */\n /<form[\\s>]/gi,\n /** meta tags — http-equiv refresh redirects or CSP bypass */\n /<meta[\\s>]/gi,\n /** base href hijacking — redirects all relative URLs to attacker domain */\n /<base[\\s>]/gi,\n /** link tag injection — stylesheet or preload CSRF attacks */\n /<link[\\s>]/gi,\n /** style tag — CSS expression() / behavior: / IE-era attacks. Mirrors\n * Python's xss-style-tag from packages/core/patterns.json. */\n /<style[\\s>]/gi,\n] as const;\n\n/**\n * Removal patterns — used by sanitizeXss() to strip dangerous content.\n * More targeted than XSS_PATTERNS: each pattern captures the full dangerous\n * substring (tag, attribute + value, protocol) so it can be replaced safely.\n * Must stay in sync with XSS_PATTERNS above.\n */\nexport const XSS_REMOVE_PATTERNS = [\n /** Full script blocks (content + tags) */\n /<script[^>]*>[\\s\\S]*?<\\/script>/gi,\n /** Standalone/unclosed script tags */\n /<script[^>]*>/gi,\n /** style — CSS expression() and behavior: attacks (IE-era but still relevant) */\n /<style[^>]*>[\\s\\S]*?<\\/style>/gi,\n /<style[^>]*/gi,\n /** iframe — full block and partial/unclosed */\n /<iframe[^>]*>[\\s\\S]*?<\\/iframe>/gi,\n /<iframe[^>]*/gi,\n /** object — full block and partial/unclosed */\n /<object[^>]*>[\\s\\S]*?<\\/object>/gi,\n /<object[^>]*/gi,\n /** embed tags */\n /<embed[^>]*/gi,\n /** SVG with inline event handlers */\n /<svg[^>]*onload[^>]*>/gi,\n /** URL-encoded script tags */\n /%3Cscript/gi,\n /** Event handlers with quoted values: onclick=\"...\", onerror='...' */\n /(?:[\\s/])on\\w+\\s*=\\s*[\"'][^\"']*[\"']/gi,\n /** Event handlers with unquoted values: onload=value */\n /(?:[\\s/])on\\w+\\s*=\\s*[^\\s>]*/gi,\n /** javascript: and vbscript: protocols (allow optional spaces before colon) */\n /javascript\\s*:/gi,\n /vbscript\\s*:/gi,\n /** data: URIs with HTML or SVG content (SVG can run JS via inline event handlers) */\n /data\\s*:\\s*(?:text\\/html|image\\/svg)[^>\\s]*/gi,\n /** form tag injection — phishing via action= redirection */\n /<form[\\s>][^>]*/gi,\n /** meta tag injection — http-equiv refresh or CSP bypass */\n /<meta[\\s>][^>]*/gi,\n /** base href hijacking */\n /<base[\\s>][^>]*/gi,\n /** link tag injection — stylesheet or preload attacks */\n /<link[\\s>][^>]*/gi,\n] as const;\n\n// =============================================================================\n// SQL INJECTION PATTERNS\n// =============================================================================\nexport const SQL_PATTERNS = [\n /** SQL keywords */\n /(\\b(SELECT|INSERT|UPDATE|DELETE|DROP|UNION|ALTER|CREATE|TRUNCATE|EXEC|EXECUTE)\\b)/gi,\n /** SQL comments: ANSI (--), C-style (slash-star ... star-slash), MySQL (#) */\n /(--|\\/\\*|\\*\\/|#)/g,\n /** SQL statement separators */\n /(;|\\|\\||&&)/g,\n /** Boolean injection: OR 1=1 */\n /\\bOR\\s+\\d+\\s*=\\s*\\d+/gi,\n /** Boolean injection: OR 'a'='a' or OR \"a\"=\"a\" (including mixed quotes) */\n /\\bOR\\s+(['\"])[^'\"]*\\1\\s*=\\s*(['\"])[^'\"]*\\2/gi,\n /\\bOR\\s+('[^']*'|\"[^\"]*\")\\s*=\\s*('[^']*'|\"[^\"]*\")/gi,\n /** Boolean injection: AND 1=1 */\n /\\bAND\\s+\\d+\\s*=\\s*\\d+/gi,\n /** Boolean injection: AND 'a'='a' or AND \"a\"=\"a\" (including mixed quotes) */\n /\\bAND\\s+(['\"])[^'\"]*\\1\\s*=\\s*(['\"])[^'\"]*\\2/gi,\n /\\bAND\\s+('[^']*'|\"[^\"]*\")\\s*=\\s*('[^']*'|\"[^\"]*\")/gi,\n /** Time-based blind: SLEEP() */\n /\\bSLEEP\\s*\\(\\s*\\d+\\s*\\)/gi,\n /** Time-based blind: BENCHMARK() */\n /\\bBENCHMARK\\s*\\(/gi,\n /** Time-based blind: PostgreSQL pg_sleep() */\n /\\bpg_sleep\\s*\\(/gi,\n /** Time-based blind: MSSQL WAITFOR DELAY */\n /\\bWAITFOR\\s+DELAY\\b/gi,\n /**\n * Oracle DBMS_* stdlib packages used for time-based blind SQLi\n * (DBMS_LOCK.SLEEP, DBMS_PIPE.RECEIVE_MESSAGE) and other Oracle\n * abuse paths. No legitimate user input contains these. Mirrors\n * `sqli-oracle-dbms-packages` in packages/core/patterns.json —\n * improvements.md §1.1.e Q3. Must stay in sync until Node\n * migrates to patterns.json-at-runtime (planned v1.7).\n */\n /\\bDBMS_(?:LOCK|PIPE|UTILITY|XSLPROCESSOR|JAVA|OUTPUT|SCHEDULER)\\b/gi,\n] as const;\n\n// =============================================================================\n// PATH TRAVERSAL PATTERNS\n// =============================================================================\nexport const PATH_PATTERNS = [\n /** Unix path traversal */\n /\\.\\.\\//g,\n /** Windows path traversal */\n /\\.\\.\\\\/g,\n /** URL-encoded traversal (%2e%2e) */\n /%2e%2e/gi,\n /** Double URL-encoded traversal (%252e) */\n /%252e/gi,\n /** Mixed encoding: ..%2F */\n /\\.\\.%2F/gi,\n /** Mixed encoding: %2e./ and .%2e/ */\n /%2e\\.[\\\\/]/gi,\n /\\.%2e[\\\\/]/gi,\n /** Fully URL-encoded: %2e%2e%2f */\n /%2e%2e%2f/gi,\n /** Double URL-encoded forward slash: %252f */\n /%252f/gi,\n /** Dotdotslash bypass: ....// or ....\\\\ */\n /\\.{2,}[/\\\\]{2,}/g,\n /** Null byte injection in paths */\n /\\0/g,\n] as const;\n\n// =============================================================================\n// COMMAND INJECTION PATTERNS\n// =============================================================================\nexport const COMMAND_PATTERNS = [\n /**\n * Shell metacharacters that enable command chaining/substitution.\n * Bare ( and ) are excluded — they appear in common legitimate values\n * (function calls in code fields, math expressions, etc.).\n * Command substitution is caught by the $( combined pattern below.\n * NOTE: ';', '&', '|' may appear in legitimate URL query strings\n * and Markdown; consider disabling command checking (command: false)\n * for fields that intentionally allow those characters.\n */\n /[;&|`]/g,\n /** Command substitution: $( ... ) — matched as a pair to reduce false positives */\n /\\$\\(/g,\n /**\n * POSIX shell IFS-substitution: ${IFS} or ${IFS%??}.\n * Attackers use this to inject spaces past metacharacter filters\n * in payloads like `;cat${IFS}/etc/passwd`. Mirrors\n * `cmdi-ifs-bypass` in packages/core/patterns.json — improvements.md\n * §1.1.e Q5. Must stay in sync until Node migrates to\n * patterns.json-at-runtime (planned v1.7).\n */\n /\\$\\{IFS(?:%[^}]*)?\\}/g,\n /** URL-encoded control characters (%00-%0F): null, tab, vtab, formfeed, LF, CR */\n /%0[0-9a-f]/gi,\n] as const;\n\n// =============================================================================\n// DANGEROUS KEYS\n// =============================================================================\n\n/**\n * Prototype pollution keys to block.\n * Stored lowercase — always compare with key.toLowerCase().\n *\n * Includes:\n * - __proto__: direct prototype assignment\n * - constructor: access to constructor.prototype chain\n * - prototype: direct prototype property\n * - __defineGetter__/__defineSetter__: legacy property definition (can override getters/setters)\n * - __lookupGetter__/__lookupSetter__: legacy property introspection\n */\nexport const DANGEROUS_PROTO_KEYS = new Set([\n '__proto__',\n 'constructor',\n 'prototype',\n '__definegetter__',\n '__definesetter__',\n '__lookupgetter__',\n '__lookupsetter__',\n]);\n\n/** MongoDB operators to block */\nexport const NOSQL_DANGEROUS_KEYS = new Set([\n // Comparison\n '$gt', '$gte', '$lt', '$lte', '$ne', '$eq', '$in', '$nin',\n // Logical\n '$and', '$or', '$not', '$nor',\n // Element / evaluation\n '$exists', '$type', '$regex', '$where', '$expr', '$mod', '$text', '$jsonSchema',\n // Array\n '$elemMatch', '$all', '$size',\n // JavaScript execution (critical)\n '$function', '$accumulator',\n // Aggregation pipeline operators (injectable via $lookup etc.)\n '$lookup', '$match', '$project', '$group', '$sort', '$limit', '$skip',\n '$unwind', '$addFields', '$replaceRoot',\n]);\n\n// =============================================================================\n// REDACTION\n// =============================================================================\nexport const REDACTION = {\n /** Replacement text for redacted values */\n REPLACEMENT: '[REDACTED]',\n /** Truncation indicator */\n TRUNCATED: '[TRUNCATED]',\n /** Max depth indicator */\n MAX_DEPTH: '[MAX_DEPTH]',\n /** Default max message length */\n DEFAULT_MAX_LENGTH: 10_000,\n /** Default sensitive keys to redact */\n SENSITIVE_KEYS: new Set([\n 'password', 'passwd', 'pwd', 'secret', 'token', 'apikey',\n 'api_key', 'apiKey', 'auth', 'authorization', 'credit_card',\n 'creditcard', 'cc', 'ssn', 'social_security', 'private_key',\n 'privateKey', 'access_token', 'accessToken', 'refresh_token',\n 'refreshToken', 'bearer', 'jwt', 'session', 'cookie',\n 'credentials', 'x-api-key', 'x-auth-token',\n ]),\n} as const;\n\n// =============================================================================\n// VALIDATION PATTERNS\n// =============================================================================\nexport const VALIDATION = {\n /**\n * Email regex pattern.\n * Rejects consecutive dots in local part (e.g. test..foo@example.com),\n * leading/trailing dots, and other common invalid forms.\n */\n EMAIL: /^[^\\s@.][^\\s@]*(?:\\.[^\\s@.][^\\s@]*)*@[^\\s@]+\\.[^\\s@]+$/,\n /**\n * URL regex pattern.\n * Only allows http:// and https:// (case-insensitive scheme per\n * RFC 3986); explicitly rejects javascript:, data:, vbscript:, and\n * other dangerous URI schemes.\n */\n URL: /^https?:\\/\\/[^\\s/$.?#][^\\s]*$/i,\n /** UUID regex pattern (v4) */\n UUID: /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,\n} as const;\n\n// =============================================================================\n// ERROR MESSAGES\n// =============================================================================\nexport const ERRORS = {\n /** Generic error message (production) */\n INTERNAL_SERVER_ERROR: 'Internal Server Error',\n /** Input too large error */\n INPUT_TOO_LARGE: (maxSize: number) => `Input exceeds maximum size of ${maxSize} bytes`,\n /** Validation error messages */\n VALIDATION: {\n REQUIRED: (field: string) => `${field} is required`,\n INVALID_TYPE: (field: string, type: string) => `${field} must be a ${type}`,\n MIN_LENGTH: (field: string, min: number) => `${field} must be at least ${min} characters`,\n MAX_LENGTH: (field: string, max: number) => `${field} must be at most ${max} characters`,\n MIN_VALUE: (field: string, min: number) => `${field} must be at least ${min}`,\n MAX_VALUE: (field: string, max: number) => `${field} must be at most ${max}`,\n INVALID_FORMAT: (field: string) => `${field} format is invalid`,\n INVALID_EMAIL: (field: string) => `${field} must be a valid email`,\n INVALID_URL: (field: string) => `${field} must be a valid URL`,\n INVALID_UUID: (field: string) => `${field} must be a valid UUID`,\n INVALID_ENUM: (field: string, values: unknown[]) => `${field} must be one of: ${values.join(', ')}`,\n MIN_ITEMS: (field: string, min: number) => `${field} must have at least ${min} items`,\n MAX_ITEMS: (field: string, max: number) => `${field} must have at most ${max} items`,\n },\n} as const;\n\n// =============================================================================\n// BLOCKED TEXT (for sanitizer replacements)\n// =============================================================================\nexport const BLOCKED = '[BLOCKED]' as const;\n","[\n {\n \"id\": \"ai-search-bot\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"ai-search-bot\",\n \"patterns\": [\n \"AISearchBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ai2-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"ai2-crawler\",\n \"patterns\": [\n \"AI2Bot\\\\s\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ai2-crawler-dolma\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"ai2-crawler-dolma\",\n \"patterns\": [\n \"Ai2Bot-Dolma\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"aihit-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"aihit-crawler\",\n \"patterns\": [\n \"aiHitBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"anthropic-ai-token\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"Anthropic\",\n \"patterns\": [\n \"anthropic-ai\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"anthropic-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"ClaudeBot\",\n \"patterns\": [\n \"[cC]laude(?:[bB]ot|-[Ww]eb)\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"anthropic-crawler-search\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"ClaudeSearchBot\",\n \"patterns\": [\n \"Claude-SearchBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"anthropic-crawler-user\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"ClaudeUser\",\n \"patterns\": [\n \"Claude-User\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"botify-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"botify-crawler\",\n \"patterns\": [\n \"botify\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"bytedance-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"Bytespider\",\n \"patterns\": [\n \"Bytespider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ccbot-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"CCBot\",\n \"patterns\": [\n \"CCBot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cohere-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"cohere-crawler\",\n \"patterns\": [\n \"cohere-ai\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"diffbot-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"diffbot-crawler\",\n \"patterns\": [\n \"Diffbot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"friendlycrawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"friendlycrawler\",\n \"patterns\": [\n \"FriendlyCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"glutenfreepleasure-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"glutenfreepleasure-crawler\",\n \"patterns\": [\n \"Gluten Free Crawler\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"imagesift-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"imagesift-crawler\",\n \"patterns\": [\n \"ImagesiftBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"infegy-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"infegy-crawler\",\n \"patterns\": [\n \"collection@infegy\\\\.com\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"integralads-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"integralads-crawler\",\n \"patterns\": [\n \"IAS crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"leadcrunch-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"leadcrunch-crawler\",\n \"patterns\": [\n \"CrunchBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"mediatoolkit-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"mediatoolkit-crawler\",\n \"patterns\": [\n \"Mediatoolkitbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"meta-externalagent\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"Meta AI\",\n \"patterns\": [\n \"meta-externalagent\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ntent-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"ntent-crawler\",\n \"patterns\": [\n \"NTENTbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"omgili-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"omgili-crawler\",\n \"patterns\": [\n \"omgili\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"openai-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"GPTBot\",\n \"patterns\": [\n \"GPTBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"openai-crawler-user\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"ChatGPTUser\",\n \"patterns\": [\n \"ChatGPT-User\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"perplexity-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"PerplexityBot\",\n \"patterns\": [\n \"PerplexityBot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"perplexity-user\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"perplexity-user\",\n \"patterns\": [\n \"Perplexity-User\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"primal-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"primal-crawler\",\n \"patterns\": [\n \"Primalbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"sbintuitions-bot\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"sbintuitions-bot\",\n \"patterns\": [\n \"SBIntuitionsBot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"searchatlas-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"searchatlas-crawler\",\n \"patterns\": [\n \"SearchAtlas\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"sentione-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"sentione-crawler\",\n \"patterns\": [\n \"SentiBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"storygize-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"storygize-crawler\",\n \"patterns\": [\n \"StorygizeBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"timpi-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"timpi-crawler\",\n \"patterns\": [\n \"Timpibot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"velen-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"velen-crawler\",\n \"patterns\": [\n \"VelenPublicWebCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"webzio-crawler-ai\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"webzio-crawler-ai\",\n \"patterns\": [\n \"webzio-extended\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"you-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"you-crawler\",\n \"patterns\": [\n \"YouBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cypress\",\n \"category\": \"AUTOMATED\",\n \"name\": \"Cypress\",\n \"patterns\": [\n \"[Cc]ypress\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"fake-msie6\",\n \"category\": \"AUTOMATED\",\n \"name\": \"Fake IE6\",\n \"patterns\": [\n \"MSIE 6\\\\.0\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"headless-chrome\",\n \"category\": \"AUTOMATED\",\n \"name\": \"Headless Chrome\",\n \"patterns\": [\n \"HeadlessChrome\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"javascript-phantom\",\n \"category\": \"AUTOMATED\",\n \"name\": \"PhantomJS\",\n \"patterns\": [\n \"PhantomJS\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"playwright\",\n \"category\": \"AUTOMATED\",\n \"name\": \"Playwright\",\n \"patterns\": [\n \"[Pp]laywright\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"puppeteer\",\n \"category\": \"AUTOMATED\",\n \"name\": \"Puppeteer\",\n \"patterns\": [\n \"[Pp]uppeteer\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"selenium\",\n \"category\": \"AUTOMATED\",\n \"name\": \"Selenium\",\n \"patterns\": [\n \"[Ss]elenium\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"webdriver\",\n \"category\": \"AUTOMATED\",\n \"name\": \"WebDriver\",\n \"patterns\": [\n \"[Ww]ebdriver\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"amazon-route53-health-check\",\n \"category\": \"MONITORING\",\n \"name\": \"amazon-route53-health-check\",\n \"patterns\": [\n \"Amazon Route 53 Health Check Service\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"azure-app-insights\",\n \"category\": \"MONITORING\",\n \"name\": \"azure-app-insights\",\n \"patterns\": [\n \"AppInsights\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"betterstack-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"betterstack-monitor\",\n \"patterns\": [\n \"Better Stack\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"betteruptime-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"betteruptime-monitor\",\n \"patterns\": [\n \"Better Uptime Bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"brandverity-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"brandverity-crawler\",\n \"patterns\": [\n \"BrandVerity\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"censys-inspect\",\n \"category\": \"MONITORING\",\n \"name\": \"censys-inspect\",\n \"patterns\": [\n \"CensysInspect\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"changedetection-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"changedetection-crawler\",\n \"patterns\": [\n \"changedetection\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"checkly-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"checkly-monitor\",\n \"patterns\": [\n \"Checkly\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cloudflare-healthchecks\",\n \"category\": \"MONITORING\",\n \"name\": \"cloudflare-healthchecks\",\n \"patterns\": [\n \"Cloudflare-Healthchecks\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cloudflare-security-center\",\n \"category\": \"MONITORING\",\n \"name\": \"cloudflare-security-center\",\n \"patterns\": [\n \"https:\\\\/\\\\/developers\\\\.cloudflare\\\\.com\\\\/security-center\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cloudflare-ssl-detector\",\n \"category\": \"MONITORING\",\n \"name\": \"cloudflare-ssl-detector\",\n \"patterns\": [\n \"Cloudflare-SSLDetector\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cloudflare-traffic-manager\",\n \"category\": \"MONITORING\",\n \"name\": \"cloudflare-traffic-manager\",\n \"patterns\": [\n \"Cloudflare-Traffic-Manager\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"datadog-monitor-synthetics\",\n \"category\": \"MONITORING\",\n \"name\": \"Datadog\",\n \"patterns\": [\n \"Datadog\\\\/{0,1}Synthetics\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"deadlinkchecker\",\n \"category\": \"MONITORING\",\n \"name\": \"deadlinkchecker\",\n \"patterns\": [\n \"deadlinkchecker\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"disqus-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"disqus-crawler\",\n \"patterns\": [\n \"Disqus\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"dubbot-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"dubbot-crawler\",\n \"patterns\": [\n \"Dubbotbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"dynatrace-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"dynatrace-monitor\",\n \"patterns\": [\n \"RuxitSynthetic\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"freewebmonitoring-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"freewebmonitoring-monitor\",\n \"patterns\": [\n \"FreeWebMonitoring SiteChecker\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"freshworks-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"freshworks-monitor\",\n \"patterns\": [\n \"FreshpingBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-certificates-bridge\",\n \"category\": \"MONITORING\",\n \"name\": \"google-certificates-bridge\",\n \"patterns\": [\n \"Google-Certificates-Bridge\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-site-verification\",\n \"category\": \"MONITORING\",\n \"name\": \"google-site-verification\",\n \"patterns\": [\n \"Google-Site-Verification\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-structured-data-testing-tool\",\n \"category\": \"MONITORING\",\n \"name\": \"google-structured-data-testing-tool\",\n \"patterns\": [\n \"Google-Structured-Data-Testing-Tool\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"hubspot-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"HubSpotBot\",\n \"patterns\": [\n \"HubSpot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"hydrozen-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"hydrozen-monitor\",\n \"patterns\": [\n \"Hydrozen\\\\.io\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"kuma-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"kuma-monitor\",\n \"patterns\": [\n \"Uptime-Kuma\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"monitorbacklinks-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"monitorbacklinks-crawler\",\n \"patterns\": [\n \"MBCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"newrelic-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"newrelic-monitor\",\n \"patterns\": [\n \"NewRelicbot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"nixstats-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"nixstats-crawler\",\n \"patterns\": [\n \"NIXStatsbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"outbrain-link-checker\",\n \"category\": \"MONITORING\",\n \"name\": \"outbrain-link-checker\",\n \"patterns\": [\n \"outbrain\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"pingdom-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"Pingdom\",\n \"patterns\": [\n \"[pP]ingdom\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"safedns-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"safedns-crawler\",\n \"patterns\": [\n \"SafeDNSBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"sentry-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"sentry-crawler\",\n \"patterns\": [\n \"(^| )sentry\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"sentry-uptime-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"sentry-uptime-monitor\",\n \"patterns\": [\n \"SentryUptimeBot\\\\/1\\\\.0\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"statuscake-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"statuscake-monitor\",\n \"patterns\": [\n \"StatusCake\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"surly-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"surly-crawler\",\n \"patterns\": [\n \"SurdotlyBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"testomato-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"testomato-crawler\",\n \"patterns\": [\n \"minicrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"uptime-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"uptime-monitor\",\n \"patterns\": [\n \"www\\\\.uptime\\\\.com\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"uptimebot-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"uptimebot-monitor\",\n \"patterns\": [\n \"Uptimebot\\\\.org\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"uptimerobot-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"UptimeRobot\",\n \"patterns\": [\n \"UptimeRobot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"w3c-validator-css\",\n \"category\": \"MONITORING\",\n \"name\": \"w3c-validator-css\",\n \"patterns\": [\n \"W3C_CSS_Validator\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"w3c-validator-feed\",\n \"category\": \"MONITORING\",\n \"name\": \"w3c-validator-feed\",\n \"patterns\": [\n \"FeedValidator\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"w3c-validator-html\",\n \"category\": \"MONITORING\",\n \"name\": \"w3c-validator-html\",\n \"patterns\": [\n \"W3C_Validator\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"w3c-validator-html-nu\",\n \"category\": \"MONITORING\",\n \"name\": \"w3c-validator-html-nu\",\n \"patterns\": [\n \"Validator\\\\.nu\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"w3c-validator-i18n\",\n \"category\": \"MONITORING\",\n \"name\": \"w3c-validator-i18n\",\n \"patterns\": [\n \"W3C_I18n-Checker\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"w3c-validator-links\",\n \"category\": \"MONITORING\",\n \"name\": \"w3c-validator-links\",\n \"patterns\": [\n \"W3C-checklink\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"w3c-validator-mobile\",\n \"category\": \"MONITORING\",\n \"name\": \"w3c-validator-mobile\",\n \"patterns\": [\n \"W3C-mobileOK\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"w3c-validator-unified\",\n \"category\": \"MONITORING\",\n \"name\": \"w3c-validator-unified\",\n \"patterns\": [\n \"W3C_Unicorn\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"webpagetest-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"webpagetest-crawler\",\n \"patterns\": [\n \"(^| )PTST\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"xenu-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"xenu-crawler\",\n \"patterns\": [\n \"Xenu Link Sleuth\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"zabbix-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"zabbix-monitor\",\n \"patterns\": [\n \"Zabbix\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"academicbot-rtu\",\n \"category\": \"SCRAPER\",\n \"name\": \"academicbot-rtu\",\n \"patterns\": [\n \"AcademicBotRTU\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"adagio-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"adagio-crawler\",\n \"patterns\": [\n \"Adagiobot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ahrefs-site-audit\",\n \"category\": \"SCRAPER\",\n \"name\": \"ahrefs-site-audit\",\n \"patterns\": [\n \"AhrefsSiteAudit\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"blackboard-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"blackboard-crawler\",\n \"patterns\": [\n \"Blackboard\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cispa-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"cispa-crawler\",\n \"patterns\": [\n \"CISPA Webcrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cloudflare-prefetch\",\n \"category\": \"SCRAPER\",\n \"name\": \"cloudflare-prefetch\",\n \"patterns\": [\n \"CloudFlare-Prefetch\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"coda-server-fetcher\",\n \"category\": \"SCRAPER\",\n \"name\": \"coda-server-fetcher\",\n \"patterns\": [\n \"Coda-Server-Fetcher\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"conductor-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"conductor-crawler\",\n \"patterns\": [\n \"Caliperbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cookiehub-scan\",\n \"category\": \"SCRAPER\",\n \"name\": \"cookiehub-scan\",\n \"patterns\": [\n \"CookieHubScan\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"curl\",\n \"category\": \"SCRAPER\",\n \"name\": \"curl\",\n \"patterns\": [\n \"^curl\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"dareboost-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"dareboost-crawler\",\n \"patterns\": [\n \"DareBoost\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"dcrawl\",\n \"category\": \"SCRAPER\",\n \"name\": \"dcrawl\",\n \"patterns\": [\n \"dcrawl\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"domainsproject-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"domainsproject-crawler\",\n \"patterns\": [\n \"Domains Project\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"epfl-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"epfl-crawler\",\n \"patterns\": [\n \"A Patent Crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"gigablast-crawler-oss\",\n \"category\": \"SCRAPER\",\n \"name\": \"gigablast-crawler-oss\",\n \"patterns\": [\n \"Gigablast\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"go-http\",\n \"category\": \"SCRAPER\",\n \"name\": \"Go-http-client\",\n \"patterns\": [\n \"Go-http-client\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"got\",\n \"category\": \"SCRAPER\",\n \"name\": \"got\",\n \"patterns\": [\n \"sindresorhus\\\\/got\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"gowiki-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"gowiki-crawler\",\n \"patterns\": [\n \"Gowikibot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"http-get\",\n \"category\": \"SCRAPER\",\n \"name\": \"http-get\",\n \"patterns\": [\n \"http_get\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"httpie\",\n \"category\": \"SCRAPER\",\n \"name\": \"HTTPie\",\n \"patterns\": [\n \"^HTTPie\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"img2dataset\",\n \"category\": \"SCRAPER\",\n \"name\": \"img2dataset\",\n \"patterns\": [\n \"img2dataset\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"insomnia\",\n \"category\": \"SCRAPER\",\n \"name\": \"Insomnia\",\n \"patterns\": [\n \"^[iI]nsomnia\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ipip-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"ipip-crawler\",\n \"patterns\": [\n \"HTTP Banner Detection\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"java-apache-httpclient\",\n \"category\": \"SCRAPER\",\n \"name\": \"Apache HttpClient\",\n \"patterns\": [\n \"^Apache-HttpClient\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"java-asynchttpclient\",\n \"category\": \"SCRAPER\",\n \"name\": \"java-asynchttpclient\",\n \"patterns\": [\n \"AHC\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"java-crawler4j\",\n \"category\": \"SCRAPER\",\n \"name\": \"java-crawler4j\",\n \"patterns\": [\n \"crawler4j\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"java-httpunit\",\n \"category\": \"SCRAPER\",\n \"name\": \"java-httpunit\",\n \"patterns\": [\n \"httpunit\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"java-jersey\",\n \"category\": \"SCRAPER\",\n \"name\": \"java-jersey\",\n \"patterns\": [\n \"HttpUrlConnection\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"java-jetty\",\n \"category\": \"SCRAPER\",\n \"name\": \"java-jetty\",\n \"patterns\": [\n \"Jetty\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"java-okhttp\",\n \"category\": \"SCRAPER\",\n \"name\": \"OkHttp\",\n \"patterns\": [\n \"okhttp\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"java-snacktory\",\n \"category\": \"SCRAPER\",\n \"name\": \"java-snacktory\",\n \"patterns\": [\n \"Snacktory\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"java-stdlib\",\n \"category\": \"SCRAPER\",\n \"name\": \"Java HttpClient\",\n \"patterns\": [\n \"^Java\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"javascript-axios\",\n \"category\": \"SCRAPER\",\n \"name\": \"axios\",\n \"patterns\": [\n \"axios\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"javascript-node-fetch\",\n \"category\": \"SCRAPER\",\n \"name\": \"node-fetch\",\n \"patterns\": [\n \"node-fetch\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"l9explore\",\n \"category\": \"SCRAPER\",\n \"name\": \"l9explore\",\n \"patterns\": [\n \"l9explore\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"law-unimi-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"law-unimi-crawler\",\n \"patterns\": [\n \"BUbiNG\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"leipzig-findlinks\",\n \"category\": \"SCRAPER\",\n \"name\": \"leipzig-findlinks\",\n \"patterns\": [\n \"findlink\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"leipzig-lcc\",\n \"category\": \"SCRAPER\",\n \"name\": \"leipzig-lcc\",\n \"patterns\": [\n \"^LCC \"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"macocu-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"macocu-crawler\",\n \"patterns\": [\n \"MaCoCu\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"moat-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"moat-crawler\",\n \"patterns\": [\n \"moatbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"monsido-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"monsido-crawler\",\n \"patterns\": [\n \"Monsidobot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"moz-site-audit\",\n \"category\": \"SCRAPER\",\n \"name\": \"RogerBot\",\n \"patterns\": [\n \"rogerbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"nagios-check-http\",\n \"category\": \"SCRAPER\",\n \"name\": \"nagios-check-http\",\n \"patterns\": [\n \"check_http\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"nict-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"nict-crawler\",\n \"patterns\": [\n \"ICC-Crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"nmap\",\n \"category\": \"SCRAPER\",\n \"name\": \"nmap\",\n \"patterns\": [\n \"Nmap Scripting Engine\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"nutch\",\n \"category\": \"SCRAPER\",\n \"name\": \"nutch\",\n \"patterns\": [\n \"Nutch\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"oncrawl\",\n \"category\": \"SCRAPER\",\n \"name\": \"oncrawl\",\n \"patterns\": [\n \"OnCrawl\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"perl-libwww\",\n \"category\": \"SCRAPER\",\n \"name\": \"libwww-perl\",\n \"patterns\": [\n \"libwww-perl\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"perl-pcore\",\n \"category\": \"SCRAPER\",\n \"name\": \"perl-pcore\",\n \"patterns\": [\n \"Pcore-HTTP\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"php-curlclass\",\n \"category\": \"SCRAPER\",\n \"name\": \"php-curlclass\",\n \"patterns\": [\n \"^PHP-Curl-Class\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"php-phpcrawl\",\n \"category\": \"SCRAPER\",\n \"name\": \"php-phpcrawl\",\n \"patterns\": [\n \"phpcrawl\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"php-simple-scraper\",\n \"category\": \"SCRAPER\",\n \"name\": \"php-simple-scraper\",\n \"patterns\": [\n \"SimpleScraper\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"php-simplepie\",\n \"category\": \"SCRAPER\",\n \"name\": \"php-simplepie\",\n \"patterns\": [\n \"SimplePie\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"php-ua\",\n \"category\": \"SCRAPER\",\n \"name\": \"PHP\",\n \"patterns\": [\n \"^PHP\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"postman\",\n \"category\": \"SCRAPER\",\n \"name\": \"Postman\",\n \"patterns\": [\n \"PostmanRuntime\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"postman-loose\",\n \"category\": \"SCRAPER\",\n \"name\": \"Postman\",\n \"patterns\": [\n \"^Postman[ /]\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"python-aiohttp\",\n \"category\": \"SCRAPER\",\n \"name\": \"python-aiohttp\",\n \"patterns\": [\n \"aiohttp\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"python-bitbot\",\n \"category\": \"SCRAPER\",\n \"name\": \"python-bitbot\",\n \"patterns\": [\n \"BitBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"python-httpx\",\n \"category\": \"SCRAPER\",\n \"name\": \"python-httpx\",\n \"patterns\": [\n \"httpx\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"python-opengraph\",\n \"category\": \"SCRAPER\",\n \"name\": \"python-opengraph\",\n \"patterns\": [\n \"python-opengraph\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"python-requests\",\n \"category\": \"SCRAPER\",\n \"name\": \"python-requests\",\n \"patterns\": [\n \"python-requests\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"python-scrapy\",\n \"category\": \"SCRAPER\",\n \"name\": \"Scrapy\",\n \"patterns\": [\n \"Scrapy\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"python-urllib\",\n \"category\": \"SCRAPER\",\n \"name\": \"python-urllib\",\n \"patterns\": [\n \"Python-urllib\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"quantcast-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"quantcast-crawler\",\n \"patterns\": [\n \"Quantcastbot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ruby\",\n \"category\": \"SCRAPER\",\n \"name\": \"Ruby\",\n \"patterns\": [\n \"^Ruby\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ruby-metainspector\",\n \"category\": \"SCRAPER\",\n \"name\": \"ruby-metainspector\",\n \"patterns\": [\n \"MetaInspector\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"screamingfrog-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"screamingfrog-crawler\",\n \"patterns\": [\n \"Screaming Frog SEO Spider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"semanticscholar-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"SemanticScholarBot\",\n \"patterns\": [\n \"SemanticScholarBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"sistrix-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"sistrix-crawler\",\n \"patterns\": [\n \"(sistrix|SISTRIX) [cC]rawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"sitebulb\",\n \"category\": \"SCRAPER\",\n \"name\": \"sitebulb\",\n \"patterns\": [\n \"sitebulb\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"stripe-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"stripe-crawler\",\n \"patterns\": [\n \"Stripebot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"summaly-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"summaly-crawler\",\n \"patterns\": [\n \"SummalyBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"turnitin-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"turnitin-crawler\",\n \"patterns\": [\n \"Turnitin\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"utexas-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"utexas-crawler\",\n \"patterns\": [\n \"UT-Dorkbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"wget\",\n \"category\": \"SCRAPER\",\n \"name\": \"wget\",\n \"patterns\": [\n \"[wW]get\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"yamanalab-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"yamanalab-crawler\",\n \"patterns\": [\n \"Sonic\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"yext-bot\",\n \"category\": \"SCRAPER\",\n \"name\": \"yext-bot\",\n \"patterns\": [\n \"YextBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"zgrab\",\n \"category\": \"SCRAPER\",\n \"name\": \"zgrab\",\n \"patterns\": [\n \"zgrab\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"addsearch-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"addsearch-crawler\",\n \"patterns\": [\n \"AddSearchBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ahrefs-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"AhrefsBot\",\n \"patterns\": [\n \"AhrefsBot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"alexandria-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"alexandria-crawler\",\n \"patterns\": [\n \"AlexandriaOrgBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"algolia-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"algolia-crawler\",\n \"patterns\": [\n \"Algolia Crawler\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"amazon-adbot\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"amazon-adbot\",\n \"patterns\": [\n \"AmazonAdBot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"amazon-alexa-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"amazon-alexa-crawler\",\n \"patterns\": [\n \"exabot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"amazon-cloudfront\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"amazon-cloudfront\",\n \"patterns\": [\n \"Amazon CloudFront\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"amazon-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"AmazonBot\",\n \"patterns\": [\n \"Amazonbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"apple-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"Applebot\",\n \"patterns\": [\n \"Applebot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"apple-feedfetcher\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"apple-feedfetcher\",\n \"patterns\": [\n \"i[Tt][Mm][Ss]\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"archiveorg-archiver\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"ArchiveOrgBot\",\n \"patterns\": [\n \"archive\\\\.org_bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ask-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"ask-crawler\",\n \"patterns\": [\n \"Teoma\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"avira-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"avira-crawler\",\n \"patterns\": [\n \"SafeSearch microdata crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"awario-crawler-rss\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"awario-crawler-rss\",\n \"patterns\": [\n \"AwarioRssBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"baidu-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"Baiduspider\",\n \"patterns\": [\n \"Baiduspider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"bazqux-feedfetcher\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"bazqux-feedfetcher\",\n \"patterns\": [\n \"BazQux\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"bing-ads\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"bing-ads\",\n \"patterns\": [\n \"Adidxbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"bing-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"Bingbot\",\n \"patterns\": [\n \"bingbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"bing-office-store\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"bing-office-store\",\n \"patterns\": [\n \"officestorebot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"blogtraffic-feedfetcher\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"blogtraffic-feedfetcher\",\n \"patterns\": [\n \"BlogTraffic\\\\/\\\\d\\\\.\\\\d+ Feed-Fetcher\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cloudflare-archiver\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"cloudflare-archiver\",\n \"patterns\": [\n \"CloudFlare-AlwaysOnline\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"commoncrawl-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"CommonCrawlBot\",\n \"patterns\": [\n \"CCBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"duckduckgo-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"DuckDuckBot\",\n \"patterns\": [\n \"DuckDuckBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"entireweb-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"entireweb-crawler\",\n \"patterns\": [\n \"speedy\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ezid-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"ezid-crawler\",\n \"patterns\": [\n \"EZID\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"feedbin-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"feedbin-crawler\",\n \"patterns\": [\n \"Feedbin\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"feedly-feedfetcher\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"feedly-feedfetcher\",\n \"patterns\": [\n \"Feedly\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"feedspot-feedfetcher\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"feedspot-feedfetcher\",\n \"patterns\": [\n \"Feedspot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"freshrss-feedfetcher\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"freshrss-feedfetcher\",\n \"patterns\": [\n \"FreshRSS\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"g2reader-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"g2reader-crawler\",\n \"patterns\": [\n \"g2reader-bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"geedo-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"geedo-crawler\",\n \"patterns\": [\n \"GeedoBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"geedo-crawler-products\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"geedo-crawler-products\",\n \"patterns\": [\n \"GeedoProductSearch\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-ads-conversions\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-ads-conversions\",\n \"patterns\": [\n \"Google-Ads-Conversions\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-adsbot\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"AdsBotGoogle\",\n \"patterns\": [\n \"AdsBot-Google([^-]|$)\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-adsbot-mobile\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"GoogleAdsBot\",\n \"patterns\": [\n \"AdsBot-Google-Mobile\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-adsense\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"MediapartnersGoogle\",\n \"patterns\": [\n \"Mediapartners-Google\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-adsense-googlebot\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-adsense-googlebot\",\n \"patterns\": [\n \"Mediapartners \\\\(Googlebot\\\\)\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-adwords\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-adwords\",\n \"patterns\": [\n \"Google-Adwords-Instant\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-appengine\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-appengine\",\n \"patterns\": [\n \"AppEngine-Google\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"Googlebot\",\n \"patterns\": [\n \"Googlebot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-crawler-cloudvertex\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-crawler-cloudvertex\",\n \"patterns\": [\n \"Google-CloudVertexBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-crawler-image\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"Googlebot-Image\",\n \"patterns\": [\n \"Googlebot-Image\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-crawler-mobile\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-crawler-mobile\",\n \"patterns\": [\n \"Googlebot-Mobile\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-crawler-news\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"Googlebot-News\",\n \"patterns\": [\n \"Googlebot-News\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-crawler-other\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-crawler-other\",\n \"patterns\": [\n \"GoogleOther\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-crawler-safety\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-crawler-safety\",\n \"patterns\": [\n \"Google-Safety\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-crawler-store\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"StorebotGoogle\",\n \"patterns\": [\n \"Storebot-Google\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-crawler-video\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"Googlebot-Video\",\n \"patterns\": [\n \"Googlebot-Video\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-feedfetcher\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-feedfetcher\",\n \"patterns\": [\n \"Feedfetcher-Google\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-inspection-tool\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-inspection-tool\",\n \"patterns\": [\n \"Google-InspectionTool\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-lighthouse\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-lighthouse\",\n \"patterns\": [\n \"Chrome-Lighthouse\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-physical-web\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-physical-web\",\n \"patterns\": [\n \"Google-PhysicalWeb\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-push-notifications\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"APIsGoogle\",\n \"patterns\": [\n \"APIs-Google\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-read-aloud\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-read-aloud\",\n \"patterns\": [\n \"Google-Read-Aloud\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-xrawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-xrawler\",\n \"patterns\": [\n \"google-xrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"iask-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"iask-crawler\",\n \"patterns\": [\n \"iaskspider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"inoreader-aggregator\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"inoreader-aggregator\",\n \"patterns\": [\n \"inoreader\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"internetarchive-crawler-oss\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"internetarchive-crawler-oss\",\n \"patterns\": [\n \"heritrix\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"linguee-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"linguee-crawler\",\n \"patterns\": [\n \"Linguee Bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"majestic-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"majestic-crawler\",\n \"patterns\": [\n \"MJ12bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"marginalia-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"marginalia-crawler\",\n \"patterns\": [\n \"search\\\\.marginalia\\\\.nu\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"meta-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"meta-crawler\",\n \"patterns\": [\n \"[Mm]eta-[Ee]xternal[Aa]gent\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"meta-externalads\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"meta-externalads\",\n \"patterns\": [\n \"meta-externalads\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"microsoft-research-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"microsoft-research-crawler\",\n \"patterns\": [\n \"msrbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"miniflux-feedfetcher\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"miniflux-feedfetcher\",\n \"patterns\": [\n \"Miniflux\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"mojeek-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"mojeek-crawler\",\n \"patterns\": [\n \"MojeekBot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"msn-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"MsnBot\",\n \"patterns\": [\n \"msnbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"naver-crawler-rss\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"naver-crawler-rss\",\n \"patterns\": [\n \"NAVER Blog Rssbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"netestate-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"netestate-crawler\",\n \"patterns\": [\n \"netEstate NE Crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"newsblur-aggregator\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"newsblur-aggregator\",\n \"patterns\": [\n \"NewsBlur\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"nicecrawler-archive\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"nicecrawler-archive\",\n \"patterns\": [\n \"Nicecrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"openai-crawler-search\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"OAISearchBot\",\n \"patterns\": [\n \"OAI-SearchBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"petalsearch-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"petalsearch-crawler\",\n \"patterns\": [\n \"PetalBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"pipl-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"pipl-crawler\",\n \"patterns\": [\n \"PiplBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"pocket-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"pocket-crawler\",\n \"patterns\": [\n \"PocketParser\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"qwant-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"qwant-crawler\",\n \"patterns\": [\n \"Qwantify\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"refind-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"refind-crawler\",\n \"patterns\": [\n \"Refindbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"rssbot-feedfetcher\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"rssbot-feedfetcher\",\n \"patterns\": [\n \"rssbot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"rssing-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"rssing-crawler\",\n \"patterns\": [\n \"RSSingBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"rssmicro-feedfetcher\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"rssmicro-feedfetcher\",\n \"patterns\": [\n \"Atom Feed Robot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"seekport-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"seekport-crawler\",\n \"patterns\": [\n \"Seekport\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"serendeputy-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"serendeputy-crawler\",\n \"patterns\": [\n \"SerendeputyBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"startme-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"startme-crawler\",\n \"patterns\": [\n \"startmebot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"stract-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"stract-crawler\",\n \"patterns\": [\n \"StractBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"superfeedr-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"superfeedr-crawler\",\n \"patterns\": [\n \"Superfeedr\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"theoldreader-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"theoldreader-crawler\",\n \"patterns\": [\n \"theoldreader\\\\.com\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ttrss-feedfetcher\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"ttrss-feedfetcher\",\n \"patterns\": [\n \"Tiny Tiny RSS\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"webarchive-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"webarchive-crawler\",\n \"patterns\": [\n \"web-archive-net\\\\.com\\\\.bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"webzio-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"webzio-crawler\",\n \"patterns\": [\n \"webzio\\\\s\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"wellknown-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"wellknown-crawler\",\n \"patterns\": [\n \"WellKnownBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"wordpress-crawler-rss\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"wordpress-crawler-rss\",\n \"patterns\": [\n \"feedbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"yacy-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"yacy-crawler\",\n \"patterns\": [\n \"yacybot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"yahoo-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"SlurpBot\",\n \"patterns\": [\n \"Slurp\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"yahoo-crawler-japan\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"yahoo-crawler-japan\",\n \"patterns\": [\n \"Y!J\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"yandex-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"YandexBot\",\n \"patterns\": [\n \"yandex\\\\.com\\\\/bots\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"yandex-crawler-javascript\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"yandex-crawler-javascript\",\n \"patterns\": [\n \"YandexRenderResourcesBot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"yandex-loose\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"YandexBot\",\n \"patterns\": [\n \"YandexBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"adyen-webhook\",\n \"category\": \"SOCIAL\",\n \"name\": \"adyen-webhook\",\n \"patterns\": [\n \"Adyen HttpClient\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"bing-preview\",\n \"category\": \"SOCIAL\",\n \"name\": \"BingPreviewBot\",\n \"patterns\": [\n \"BingPreview\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"bitly-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"bitly-crawler\",\n \"patterns\": [\n \"bitlybot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"digg-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"digg-crawler\",\n \"patterns\": [\n \"Digg Deeper\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"discord-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"Discordbot\",\n \"patterns\": [\n \"Discordbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"duckduckgo-crawler-favicons\",\n \"category\": \"SOCIAL\",\n \"name\": \"duckduckgo-crawler-favicons\",\n \"patterns\": [\n \"DuckDuckGo-Favicons-Bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"embedly-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"EmbedlyBot\",\n \"patterns\": [\n \"Embedly\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"everyonesocial-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"everyonesocial-crawler\",\n \"patterns\": [\n \"EveryoneSocialBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"facebook-catalog\",\n \"category\": \"SOCIAL\",\n \"name\": \"facebook-catalog\",\n \"patterns\": [\n \"facebookcatalog\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"facebook-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"FacebookBot\",\n \"patterns\": [\n \"Face(book){0,1}[Bb]ot\"\n ],\n \"forbidden\": [\n \"facebookexternalhit\",\n \"Twitterbot\"\n ]\n },\n {\n \"id\": \"facebook-share-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"Facebook\",\n \"patterns\": [\n \"facebookexternalhit\"\n ],\n \"forbidden\": [\n \"Twitterbot\",\n \"Facebot\"\n ]\n },\n {\n \"id\": \"flipboard-proxy\",\n \"category\": \"SOCIAL\",\n \"name\": \"flipboard-proxy\",\n \"patterns\": [\n \"FlipboardProxy\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-favicon\",\n \"category\": \"SOCIAL\",\n \"name\": \"google-favicon\",\n \"patterns\": [\n \"Google Favicon\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-preview\",\n \"category\": \"SOCIAL\",\n \"name\": \"google-preview\",\n \"patterns\": [\n \"Google Web Preview\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-web-snippet\",\n \"category\": \"SOCIAL\",\n \"name\": \"google-web-snippet\",\n \"patterns\": [\n \"developers\\\\.google\\\\.com\\\\/\\\\+\\\\/web\\\\/snippet\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"groupme-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"groupme-crawler\",\n \"patterns\": [\n \"GroupMeBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"iframely-preview\",\n \"category\": \"SOCIAL\",\n \"name\": \"iframely-preview\",\n \"patterns\": [\n \"Iframely\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"imessage-preview\",\n \"category\": \"SOCIAL\",\n \"name\": \"imessage-preview\",\n \"patterns\": [\n \"facebookexternalhit\",\n \"Twitterbot\",\n \"Facebot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"irc-archivebot\",\n \"category\": \"SOCIAL\",\n \"name\": \"ArchiveBot\",\n \"patterns\": [\n \"ArchiveBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"keybase-bot\",\n \"category\": \"SOCIAL\",\n \"name\": \"keybase-bot\",\n \"patterns\": [\n \"KeybaseBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"lemmy-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"lemmy-crawler\",\n \"patterns\": [\n \"Lemmy\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"linkarchiver\",\n \"category\": \"SOCIAL\",\n \"name\": \"linkarchiver\",\n \"patterns\": [\n \"LinkArchiver\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"linkedin-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"LinkedInBot\",\n \"patterns\": [\n \"LinkedInBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"mastodon-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"MastodonBot\",\n \"patterns\": [\n \"Mastodon\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"meta-crawler-user\",\n \"category\": \"SOCIAL\",\n \"name\": \"meta-crawler-user\",\n \"patterns\": [\n \"meta-externalfetcher\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"microsoft-preview\",\n \"category\": \"SOCIAL\",\n \"name\": \"microsoft-preview\",\n \"patterns\": [\n \"MicrosoftPreview\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"neticle-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"neticle-crawler\",\n \"patterns\": [\n \"Neticle Crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"pagepeeker-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"pagepeeker-crawler\",\n \"patterns\": [\n \"PagePeeker\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"pinterest-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"pinterest-crawler\",\n \"patterns\": [\n \"Pinterest(bot)?\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"pintrest-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"PinterestBot\",\n \"patterns\": [\n \"pinterest\\\\.com\\\\/bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"reddit-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"RedditBot\",\n \"patterns\": [\n \"redditbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"skype-preview\",\n \"category\": \"SOCIAL\",\n \"name\": \"skype-preview\",\n \"patterns\": [\n \"SkypeUriPreview\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"slack-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"Slackbot\",\n \"patterns\": [\n \"Slackbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"slack-image-proxy\",\n \"category\": \"SOCIAL\",\n \"name\": \"slack-image-proxy\",\n \"patterns\": [\n \"Slack-ImgProxy\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"snap-preview\",\n \"category\": \"SOCIAL\",\n \"name\": \"snap-preview\",\n \"patterns\": [\n \"Snap URL Preview Service\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"steam-preview\",\n \"category\": \"SOCIAL\",\n \"name\": \"ValveSteamBot\",\n \"patterns\": [\n \"Valve\\\\/Steam\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"stripe-webhook\",\n \"category\": \"SOCIAL\",\n \"name\": \"stripe-webhook\",\n \"patterns\": [\n \"Stripe\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"synapse-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"synapse-crawler\",\n \"patterns\": [\n \"Synapse\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"telegram-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"TelegramBot\",\n \"patterns\": [\n \"TelegramBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"tiktok-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"tiktok-crawler\",\n \"patterns\": [\n \"TikTokSpider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"trendsmap-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"trendsmap-crawler\",\n \"patterns\": [\n \"TrendsmapResolver\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"tweetedtimes-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"tweetedtimes-crawler\",\n \"patterns\": [\n \"tweetedtimes\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"twitter-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"Twitterbot\",\n \"patterns\": [\n \"Twitterbot\"\n ],\n \"forbidden\": [\n \"facebookexternalhit\",\n \"Facebot\"\n ]\n },\n {\n \"id\": \"vercel-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"vercel-crawler\",\n \"patterns\": [\n \"Vercelbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"vercel-monitor-preview\",\n \"category\": \"SOCIAL\",\n \"name\": \"vercel-monitor-preview\",\n \"patterns\": [\n \"vercel-screenshot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"viber-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"ViberBot\",\n \"patterns\": [\n \"Viber\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"whatsapp-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"WhatsApp\",\n \"patterns\": [\n \"WhatsApp\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"yahoo-preview\",\n \"category\": \"SOCIAL\",\n \"name\": \"yahoo-preview\",\n \"patterns\": [\n \"Yahoo Link Preview\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"a6corp-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"a6corp-crawler\",\n \"patterns\": [\n \"A6-Indexer\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"aboundex-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"aboundex-crawler\",\n \"patterns\": [\n \"Aboundex\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"acapbot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"acapbot\",\n \"patterns\": [\n \"acapbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"acoon-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"acoon-crawler\",\n \"patterns\": [\n \"acoonbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"adbeat-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"adbeat-crawler\",\n \"patterns\": [\n \"adbeat_bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"addthis-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"addthis-crawler\",\n \"patterns\": [\n \"AddThis\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"admantx-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"admantx-crawler\",\n \"patterns\": [\n \"ADmantX\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"adscanner-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"adscanner-crawler\",\n \"patterns\": [\n \"adscanner\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"adstxtcrawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"adstxtcrawler\",\n \"patterns\": [\n \"AdsTxtCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"advbot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"advbot-crawler\",\n \"patterns\": [\n \"AdvBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"alphaseobot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"alphaseobot-crawler\",\n \"patterns\": [\n \"AlphaBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"anderspink-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"anderspink-crawler\",\n \"patterns\": [\n \"AndersPinkBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"antibot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"antibot\",\n \"patterns\": [\n \"antibot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"apercite-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"apercite-crawler\",\n \"patterns\": [\n \"Apercite\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ara-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ara-crawler\",\n \"patterns\": [\n \"arabot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"araturka-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"araturka-crawler\",\n \"patterns\": [\n \"Bot\\\\.AraTurka\\\\.com\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"arocom-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"arocom-crawler\",\n \"patterns\": [\n \"drupact\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"aspiegel-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"aspiegel-crawler\",\n \"patterns\": [\n \"AspiegelBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"audisto-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"audisto-crawler\",\n \"patterns\": [\n \"Audisto Crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"awario-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"awario-crawler\",\n \"patterns\": [\n \"AwarioBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"awario-crawler-smart\",\n \"category\": \"UNKNOWN\",\n \"name\": \"awario-crawler-smart\",\n \"patterns\": [\n \"AwarioSmartBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"awesomecrawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"awesomecrawler\",\n \"patterns\": [\n \"awesomecrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"b2bbot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"b2bbot\",\n \"patterns\": [\n \"B2B Bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"backlinktest-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"backlinktest-crawler\",\n \"patterns\": [\n \"backlinkcrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"baidu-cloud-watch\",\n \"category\": \"UNKNOWN\",\n \"name\": \"baidu-cloud-watch\",\n \"patterns\": [\n \"Baidu-YunGuanCe\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"betabot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"betabot\",\n \"patterns\": [\n \"betaBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"bidswitch-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"bidswitch-crawler\",\n \"patterns\": [\n \"bidswitchbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"bigdatacorp-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"bigdatacorp-crawler\",\n \"patterns\": [\n \"BDCbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"biglotron\",\n \"category\": \"UNKNOWN\",\n \"name\": \"biglotron\",\n \"patterns\": [\n \"BIGLOTRON\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"binlar\",\n \"category\": \"UNKNOWN\",\n \"name\": \"binlar\",\n \"patterns\": [\n \"binlar\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"bitsight-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"bitsight-crawler\",\n \"patterns\": [\n \"BitSightBot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"blogmura-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"blogmura-crawler\",\n \"patterns\": [\n \"blogmuraBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"blp-bbot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"blp-bbot\",\n \"patterns\": [\n \"BLP_bbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"bnf-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"bnf-crawler\",\n \"patterns\": [\n \"bnf\\\\.fr_bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"bombora-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"bombora-crawler\",\n \"patterns\": [\n \"BomboraBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"boxcar-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"boxcar-crawler\",\n \"patterns\": [\n \"BoxcarBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"brainobot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"brainobot\",\n \"patterns\": [\n \"brainobot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"brandonmedia-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"brandonmedia-crawler\",\n \"patterns\": [\n \"BrandONbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"brandwatch-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"brandwatch-crawler\",\n \"patterns\": [\n \"magpie-crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"brightedge-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"brightedge-crawler\",\n \"patterns\": [\n \"BrightEdge Crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"bublup-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"bublup-crawler\",\n \"patterns\": [\n \"BublupBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"builtwith-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"builtwith-crawler\",\n \"patterns\": [\n \"^BW\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"buzzstream-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"buzzstream-crawler\",\n \"patterns\": [\n \"buzzbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"capsulink-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"capsulink-crawler\",\n \"patterns\": [\n \"CapsuleChecker\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"careerx-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"careerx-crawler\",\n \"patterns\": [\n \"careerbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"centurybot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"centurybot\",\n \"patterns\": [\n \"centurybot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"checkmarknetwork-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"checkmarknetwork-crawler\",\n \"patterns\": [\n \"CheckMarkNetwork\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"chlooe-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"chlooe-crawler\",\n \"patterns\": [\n \"bot-pge\\\\.chlooe\\\\.com\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cincrawdata-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"cincrawdata-crawler\",\n \"patterns\": [\n \"Cincraw\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"citeseerx-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"citeseerx-crawler\",\n \"patterns\": [\n \"citeseerxbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"clickagy-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"clickagy-crawler\",\n \"patterns\": [\n \"Clickagy\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cliqz-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"cliqz-crawler\",\n \"patterns\": [\n \"Cliqzbot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cloudsystemnetworks-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"cloudsystemnetworks-crawler\",\n \"patterns\": [\n \"Nimbostratus-Bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"coccoc-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"coccoc-crawler\",\n \"patterns\": [\n \"coccoc\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cocolyze-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"cocolyze-crawler\",\n \"patterns\": [\n \"Cocolyzebot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"codewise-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"codewise-crawler\",\n \"patterns\": [\n \"VoluumDSP-content-bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cognitiveseo-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"cognitiveseo-crawler\",\n \"patterns\": [\n \"James BOT\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"companybook-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"companybook-crawler\",\n \"patterns\": [\n \"Companybook-Crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"content-crawler-spider\",\n \"category\": \"UNKNOWN\",\n \"name\": \"content-crawler-spider\",\n \"patterns\": [\n \"content crawler spider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"contextad-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"contextad-crawler\",\n \"patterns\": [\n \"ContextAd Bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"contxbot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"contxbot\",\n \"patterns\": [\n \"contxbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"convera-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"convera-crawler\",\n \"patterns\": [\n \"convera\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cookiebot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"cookiebot-crawler\",\n \"patterns\": [\n \"Cookiebot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"creativecommons-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"creativecommons-crawler\",\n \"patterns\": [\n \"CC Metadata Scaper\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"criteo-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"criteo-crawler\",\n \"patterns\": [\n \"CriteoBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"crystalsemantics-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"crystalsemantics-crawler\",\n \"patterns\": [\n \"CrystalSemanticsBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"curebot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"curebot-crawler\",\n \"patterns\": [\n \"[Cc]urebot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cutbot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"cutbot-crawler\",\n \"patterns\": [\n \"Cutbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cxense-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"cxense-crawler\",\n \"patterns\": [\n \"cXensebot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cyberpatrol-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"cyberpatrol-crawler\",\n \"patterns\": [\n \"CyberPatrol\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"datafeedwatch-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"datafeedwatch-crawler\",\n \"patterns\": [\n \"Datafeedwatch\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"dataforseo-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"dataforseo-crawler\",\n \"patterns\": [\n \"DataForSeoBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"datagnion-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"datagnion-crawler\",\n \"patterns\": [\n \"datagnionbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"datanyze-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"datanyze-crawler\",\n \"patterns\": [\n \"Datanyze\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"dataprovider-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"dataprovider-crawler\",\n \"patterns\": [\n \"Dataprovider\\\\.com\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"datenbutler-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"datenbutler-crawler\",\n \"patterns\": [\n \"mindUpBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"daum-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"daum-crawler\",\n \"patterns\": [\n \"Daum\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"deepnoc-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"deepnoc-crawler\",\n \"patterns\": [\n \"deepnoc\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"deusu-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"deusu-crawler\",\n \"patterns\": [\n \"DeuSu\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"digincore-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"digincore-crawler\",\n \"patterns\": [\n \"Digincore bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"digitaldragon-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"digitaldragon-crawler\",\n \"patterns\": [\n \"CrawlyProjectCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"discoveryengine-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"discoveryengine-crawler\",\n \"patterns\": [\n \"discobot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"dnyz-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"dnyz-crawler\",\n \"patterns\": [\n \"DnyzBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"domaincrawler-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"domaincrawler-crawler\",\n \"patterns\": [\n \"domaincrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"domainreanimator-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"domainreanimator-crawler\",\n \"patterns\": [\n \"Domain Re-Animator Bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"domainsbot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"domainsbot-crawler\",\n \"patterns\": [\n \"Pandalytics\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"domainstats-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"domainstats-crawler\",\n \"patterns\": [\n \"DomainStatsBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"domaintools-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"domaintools-crawler\",\n \"patterns\": [\n \"SurveyBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"dotnetdotcom-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"dotnetdotcom-crawler\",\n \"patterns\": [\n \"ezooms\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"dragonmetrics-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"dragonmetrics-crawler\",\n \"patterns\": [\n \"Dragonbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"driftnet-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"driftnet-crawler\",\n \"patterns\": [\n \"InternetMeasurement\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"duedil-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"duedil-crawler\",\n \"patterns\": [\n \"electricmonk\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ec2linkfinder\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ec2linkfinder\",\n \"patterns\": [\n \"ec2linkfinder\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"edister-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"edister-crawler\",\n \"patterns\": [\n \"edisterbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"elisabot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"elisabot\",\n \"patterns\": [\n \"elisabot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"epictions-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"epictions-crawler\",\n \"patterns\": [\n \"epicbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"eright-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"eright-crawler\",\n \"patterns\": [\n \"eright\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"europarchive-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"europarchive-crawler\",\n \"patterns\": [\n \"europarchive\\\\.org\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"eventures-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"eventures-crawler\",\n \"patterns\": [\n \"e\\\\.ventures Investment Crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"eventures-crawler-batch\",\n \"category\": \"UNKNOWN\",\n \"name\": \"eventures-crawler-batch\",\n \"patterns\": [\n \"evc-batch\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"exensa-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"exensa-crawler\",\n \"patterns\": [\n \"Bark[rR]owler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"experibot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"experibot-crawler\",\n \"patterns\": [\n \"Experibot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"extlinks-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"extlinks-crawler\",\n \"patterns\": [\n \"ExtLinksBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"eyeota-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"eyeota-crawler\",\n \"patterns\": [\n \"Eyeotabot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"fast-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"fast-crawler\",\n \"patterns\": [\n \"FAST-WebCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"fast-crawler-enterprise\",\n \"category\": \"UNKNOWN\",\n \"name\": \"fast-crawler-enterprise\",\n \"patterns\": [\n \"FAST Enterprise Crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"fedoraplanet-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"fedoraplanet-crawler\",\n \"patterns\": [\n \"fedoraplanet\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"feedafever-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"feedafever-crawler\",\n \"patterns\": [\n \"Fever\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"femtosearch-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"femtosearch-crawler\",\n \"patterns\": [\n \"FemtosearchBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"findthatfile-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"findthatfile-crawler\",\n \"patterns\": [\n \"findthatfile\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"flamingosearch-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"flamingosearch-crawler\",\n \"patterns\": [\n \"Flamingo_SearchEngine\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"fluffy\",\n \"category\": \"UNKNOWN\",\n \"name\": \"fluffy\",\n \"patterns\": [\n \"fluffy\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"fr-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"fr-crawler\",\n \"patterns\": [\n \"fr-crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"fuelbot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"fuelbot\",\n \"patterns\": [\n \"fuelbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"fyrebot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"fyrebot\",\n \"patterns\": [\n \"Fyrebot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"g00g1e-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"g00g1e-crawler\",\n \"patterns\": [\n \"g00g1e\\\\.net\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"g2webservices-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"g2webservices-crawler\",\n \"patterns\": [\n \"G2 Web Services\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"garlik-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"garlik-crawler\",\n \"patterns\": [\n \"GarlikCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"genieo-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"genieo-crawler\",\n \"patterns\": [\n \"Genieo\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"gigablast-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"gigablast-crawler\",\n \"patterns\": [\n \"Gigabot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ginger-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ginger-crawler\",\n \"patterns\": [\n \"GingerCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"gnam-gnam-spider\",\n \"category\": \"UNKNOWN\",\n \"name\": \"gnam-gnam-spider\",\n \"patterns\": [\n \"gnam gnam spider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"gnowit-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"gnowit-crawler\",\n \"patterns\": [\n \"GnowitNewsbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"goo-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"goo-crawler\",\n \"patterns\": [\n \"ichiro\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"grapeshot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"grapeshot-crawler\",\n \"patterns\": [\n \"GrapeshotCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"grob-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"grob-crawler\",\n \"patterns\": [\n \"Grobbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"grouphigh-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"grouphigh-crawler\",\n \"patterns\": [\n \"GroupHigh\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"grub\",\n \"category\": \"UNKNOWN\",\n \"name\": \"grub\",\n \"patterns\": [\n \"grub\\\\.org\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"gslfbot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"gslfbot\",\n \"patterns\": [\n \"gslfbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"gwene-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"gwene-crawler\",\n \"patterns\": [\n \"Gwene\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"haosou-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"haosou-crawler\",\n \"patterns\": [\n \"360Spider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"hatena-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"hatena-crawler\",\n \"patterns\": [\n \"Hatena\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"headline-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"headline-crawler\",\n \"patterns\": [\n \"ev-crawler\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"hoyer-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"hoyer-crawler\",\n \"patterns\": [\n \"Friendica\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"httrack\",\n \"category\": \"UNKNOWN\",\n \"name\": \"httrack\",\n \"patterns\": [\n \"HTTrack\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"hypefactors-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"hypefactors-crawler\",\n \"patterns\": [\n \"Buck\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"hypestat-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"hypestat-crawler\",\n \"patterns\": [\n \"hypestat\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"hyscore-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"hyscore-crawler\",\n \"patterns\": [\n \"hyscore\\\\.io\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ia-archiver\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ia-archiver\",\n \"patterns\": [\n \"ia_archiver\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ideasandcode-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ideasandcode-crawler\",\n \"patterns\": [\n \"ICBot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"indeed-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"indeed-crawler\",\n \"patterns\": [\n \"IndeedBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"inetdex-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"inetdex-crawler\",\n \"patterns\": [\n \"INETDEX-BOT\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"infoo-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"infoo-crawler\",\n \"patterns\": [\n \"infoobot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"integromedb-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"integromedb-crawler\",\n \"patterns\": [\n \"integromedb\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"intelium-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"intelium-crawler\",\n \"patterns\": [\n \"intelium_bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ionos-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ionos-crawler\",\n \"patterns\": [\n \"IonCrawl\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ip-web-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ip-web-crawler\",\n \"patterns\": [\n \"ip-web-crawler\\\\.com\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"iskanie-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"iskanie-crawler\",\n \"patterns\": [\n \"iskanie\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"iss-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"iss-crawler\",\n \"patterns\": [\n \"filterdb\\\\.iss\\\\.net\\\\/crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"it2media-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"it2media-crawler\",\n \"patterns\": [\n \"it2media-domain-crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"itinfluentials-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"itinfluentials-crawler\",\n \"patterns\": [\n \"FindITAnswersbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"jamiembrown-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"jamiembrown-crawler\",\n \"patterns\": [\n \"Jamie's Spider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"jetslide-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"jetslide-crawler\",\n \"patterns\": [\n \"Jetslide\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"jobboerse-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"jobboerse-crawler\",\n \"patterns\": [\n \"JobboerseBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"jooble-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"jooble-crawler\",\n \"patterns\": [\n \"Jooblebot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"jusprog-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"jusprog-crawler\",\n \"patterns\": [\n \"Jugendschutzprogramm-Crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"jyxo-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"jyxo-crawler\",\n \"patterns\": [\n \"jyxobot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"k7computing-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"k7computing-crawler\",\n \"patterns\": [\n \"K7MLWCBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"kemvi-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"kemvi-crawler\",\n \"patterns\": [\n \"Kemvibot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"komodia-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"komodia-crawler\",\n \"patterns\": [\n \"KomodiaBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"kosmio-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"kosmio-crawler\",\n \"patterns\": [\n \"KosmioBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"landaumedia-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"landaumedia-crawler\",\n \"patterns\": [\n \"Landau-Media-Spider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"laserlike-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"laserlike-crawler\",\n \"patterns\": [\n \"Laserlikebot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"lb-spider\",\n \"category\": \"UNKNOWN\",\n \"name\": \"lb-spider\",\n \"patterns\": [\n \"lb-spider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"leiki-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"leiki-crawler\",\n \"patterns\": [\n \"Leikibot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"lightspeedsystems-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"lightspeedsystems-crawler\",\n \"patterns\": [\n \"LightspeedSystemsCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"line-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"line-crawler\",\n \"patterns\": [\n \"Linespider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"linkapedia-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"linkapedia-crawler\",\n \"patterns\": [\n \"linkapediabot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"linkdex-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"linkdex-crawler\",\n \"patterns\": [\n \"linkdex\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"linkfluence-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"linkfluence-crawler\",\n \"patterns\": [\n \"YaK\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"linkis-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"linkis-crawler\",\n \"patterns\": [\n \"LinkisBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"lipperhey-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"lipperhey-crawler\",\n \"patterns\": [\n \"lipperhey\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"livelap-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"livelap-crawler\",\n \"patterns\": [\n \"Livelap[bB]ot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"logly-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"logly-crawler\",\n \"patterns\": [\n \"zenback bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"loop-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"loop-crawler\",\n \"patterns\": [\n \"netresearchserver\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"lssbot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"lssbot\",\n \"patterns\": [\n \"lssbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"lssbot-rocket\",\n \"category\": \"UNKNOWN\",\n \"name\": \"lssbot-rocket\",\n \"patterns\": [\n \"lssrocketcrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ltx71-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ltx71-crawler\",\n \"patterns\": [\n \"ltx71\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"luminator-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"luminator-crawler\",\n \"patterns\": [\n \"Luminator-robots\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"mailru-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"MailRuBot\",\n \"patterns\": [\n \"Mail\\\\.RU_Bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"mappydata-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"mappydata-crawler\",\n \"patterns\": [\n \"mappydata\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"mauibot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"mauibot\",\n \"patterns\": [\n \"MauiBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"megaindex-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"megaindex-crawler\",\n \"patterns\": [\n \"MegaIndex\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"meltwater-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"meltwater-crawler\",\n \"patterns\": [\n \"MeltwaterNews\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"metadatalabs-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"metadatalabs-crawler\",\n \"patterns\": [\n \"mlbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"metajob-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"metajob-crawler\",\n \"patterns\": [\n \"MetaJobBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"metauri-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"metauri-crawler\",\n \"patterns\": [\n \"MetaURI\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"metricstools-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"metricstools-crawler\",\n \"patterns\": [\n \"MTRobot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"mignify-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"mignify-crawler\",\n \"patterns\": [\n \"memorybot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"mignify-imrbot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"mignify-imrbot\",\n \"patterns\": [\n \"imrbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"mixnode-cache\",\n \"category\": \"UNKNOWN\",\n \"name\": \"mixnode-cache\",\n \"patterns\": [\n \"MixnodeCache\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"moodle-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"moodle-crawler\",\n \"patterns\": [\n \"MoodleBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"moreover-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"moreover-crawler\",\n \"patterns\": [\n \"Moreover\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"moz-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"moz-crawler\",\n \"patterns\": [\n \"dotbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"muckrack-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"muckrack-crawler\",\n \"patterns\": [\n \"MuckRack\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"multiviewbot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"multiviewbot\",\n \"patterns\": [\n \"Multiviewbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"naver-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"naver-crawler\",\n \"patterns\": [\n \"Yeti\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"neeva-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"neeva-crawler\",\n \"patterns\": [\n \"Neevabot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"nerdbynature-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"nerdbynature-crawler\",\n \"patterns\": [\n \"NerdByNature\\\\.Bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"nerdybot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"nerdybot-crawler\",\n \"patterns\": [\n \"nerdybot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"netcraft-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"netcraft-crawler\",\n \"patterns\": [\n \"NetcraftSurveyAgent\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"netsystemsresearch-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"netsystemsresearch-crawler\",\n \"patterns\": [\n \"NetSystemsResearch\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"netvibes-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"netvibes-crawler\",\n \"patterns\": [\n \"Netvibes\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"newsharecounts-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"newsharecounts-crawler\",\n \"patterns\": [\n \"newsharecounts\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"newspaper\",\n \"category\": \"UNKNOWN\",\n \"name\": \"newspaper\",\n \"patterns\": [\n \"newspaper\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"nextcloud-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"NextCloudBot\",\n \"patterns\": [\n \"NextCloud\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"niki-bot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"niki-bot\",\n \"patterns\": [\n \"niki-bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ning-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ning-crawler\",\n \"patterns\": [\n \"NING\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ninjabot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ninjabot\",\n \"patterns\": [\n \"NINJA bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"nuzzel-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"nuzzel-crawler\",\n \"patterns\": [\n \"Nuzzel\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ocarinabot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ocarinabot\",\n \"patterns\": [\n \"Ocarinabot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"okru-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"okru-crawler\",\n \"patterns\": [\n \"OdklBot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"opengraphcheck-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"opengraphcheck-crawler\",\n \"patterns\": [\n \"OpenGraphCheck\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"openhose-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"openhose-crawler\",\n \"patterns\": [\n \"OpenHoseBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"openindex-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"openindex-crawler\",\n \"patterns\": [\n \"openindexspider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"orange-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"orange-crawler\",\n \"patterns\": [\n \"OrangeBot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"orange-ftgroup-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"orange-ftgroup-crawler\",\n \"patterns\": [\n \"voilabot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"outclicks-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"outclicks-crawler\",\n \"patterns\": [\n \"OutclicksBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"page-to-rss\",\n \"category\": \"UNKNOWN\",\n \"name\": \"page-to-rss\",\n \"patterns\": [\n \"page2rss\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"pagething-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"pagething-crawler\",\n \"patterns\": [\n \"PageThing\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"paloaltonetworks-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"paloaltonetworks-crawler\",\n \"patterns\": [\n \"Expanse\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"panscient-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"panscient-crawler\",\n \"patterns\": [\n \"panscient\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"paperli-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"paperli-crawler\",\n \"patterns\": [\n \"PaperLiBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"phxbot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"phxbot\",\n \"patterns\": [\n \"PhxBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"picsearch-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"picsearch-crawler\",\n \"patterns\": [\n \"psbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"postrank-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"postrank-crawler\",\n \"patterns\": [\n \"postrank\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"prcy-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"prcy-crawler\",\n \"patterns\": [\n \"PR-CY\\\\.RU\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"privacore-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"privacore-crawler\",\n \"patterns\": [\n \"findxbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"privacyaware-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"privacyaware-crawler\",\n \"patterns\": [\n \"PrivacyAwareBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"profound-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"profound-crawler\",\n \"patterns\": [\n \"urlappendbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"proximic-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"proximic-crawler\",\n \"patterns\": [\n \"proximic\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"pulsepoint-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"pulsepoint-crawler\",\n \"patterns\": [\n \"Pulsepoint\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"pure-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"pure-crawler\",\n \"patterns\": [\n \"purebot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"rankactive-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"rankactive-crawler\",\n \"patterns\": [\n \"RankActiveLinkBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"retrevo-page-analyzer\",\n \"category\": \"UNKNOWN\",\n \"name\": \"retrevo-page-analyzer\",\n \"patterns\": [\n \"RetrevoPageAnalyzer\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ridder-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ridder-crawler\",\n \"patterns\": [\n \"RidderBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"rivva-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"rivva-crawler\",\n \"patterns\": [\n \"Rivva\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ryte-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ryte-crawler\",\n \"patterns\": [\n \"RyteBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"scan-interfax-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"scan-interfax-crawler\",\n \"patterns\": [\n \"InterfaxScanBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"schmorp-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"schmorp-crawler\",\n \"patterns\": [\n \"AnyEvent\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"scoutjet-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"scoutjet-crawler\",\n \"patterns\": [\n \"ScoutJet\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"scribd-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"scribd-crawler\",\n \"patterns\": [\n \"scribdbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"scritch-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"scritch-crawler\",\n \"patterns\": [\n \"Fetch\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"seekbot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"seekbot-crawler\",\n \"patterns\": [\n \"seekbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"seewithkids-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"seewithkids-crawler\",\n \"patterns\": [\n \"seewithkids\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"semanticaudience-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"semanticaudience-crawler\",\n \"patterns\": [\n \"semanticbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"sempitech-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"sempitech-crawler\",\n \"patterns\": [\n \"sempi\\\\.tech\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"semrush-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"SemRushBot\",\n \"patterns\": [\n \"S[eE][mM]rushBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"senuto-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"senuto-crawler\",\n \"patterns\": [\n \"SenutoBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"seobility-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"seobility-crawler\",\n \"patterns\": [\n \"SeobilityBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"seokicks-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"seokicks-crawler\",\n \"patterns\": [\n \"SEOkicks\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"seolizer-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"seolizer-crawler\",\n \"patterns\": [\n \"SEOlizer\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"seoprofiler-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"seoprofiler-crawler\",\n \"patterns\": [\n \"spbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"seoscanners-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"seoscanners-crawler\",\n \"patterns\": [\n \"seoscanners\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"seostar-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"seostar-crawler\",\n \"patterns\": [\n \"seostar\\\\.co\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"seozoom-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ZoomBot\",\n \"patterns\": [\n \"ZoomBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"serpstatbot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"serpstatbot-crawler\",\n \"patterns\": [\n \"serpstatbot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"seznam-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"seznam-crawler\",\n \"patterns\": [\n \"SeznamBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"similartech-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"similartech-crawler\",\n \"patterns\": [\n \"smtbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"simple-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"simple-crawler\",\n \"patterns\": [\n \"SimpleCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"sistrix-007ac9-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"sistrix-007ac9-crawler\",\n \"patterns\": [\n \"007ac9 Crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"sitebot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"sitebot-crawler\",\n \"patterns\": [\n \"sitebot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"sitechecker-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"sitechecker-crawler\",\n \"patterns\": [\n \"SiteCheckerBotCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"siteexplorer-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"siteexplorer-crawler\",\n \"patterns\": [\n \"siteexplorer\\\\.info\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"siteimprove-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"siteimprove-crawler\",\n \"patterns\": [\n \"Siteimprove\\\\.com\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"socialrank-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"socialrank-crawler\",\n \"patterns\": [\n \"SocialRankIOBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"softbytelabs-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"softbytelabs-crawler\",\n \"patterns\": [\n \"SBL-BOT\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"sogou-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"sogou-crawler\",\n \"patterns\": [\n \"Sogou\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"stuttgart-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"stuttgart-crawler\",\n \"patterns\": [\n \"RegionStuttgartBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"summify-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"summify-crawler\",\n \"patterns\": [\n \"summify\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"swimgbot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"swimgbot\",\n \"patterns\": [\n \"SWIMGBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"sysomos-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"sysomos-crawler\",\n \"patterns\": [\n \"Sysomos\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"t3versions-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"t3versions-crawler\",\n \"patterns\": [\n \"t3versionsBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"taboola-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"taboola-crawler\",\n \"patterns\": [\n \"Taboolabot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"tagoo-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"tagoo-crawler\",\n \"patterns\": [\n \"tagoobot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"tangiblee-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"tangiblee-crawler\",\n \"patterns\": [\n \"TangibleeBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"thinklab-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"thinklab-crawler\",\n \"patterns\": [\n \"Thinklab\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"tiger-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"tiger-crawler\",\n \"patterns\": [\n \"tigerbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"tineye-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"tineye-crawler\",\n \"patterns\": [\n \"TinEye\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"tiscali-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"tiscali-crawler\",\n \"patterns\": [\n \"IstellaBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"tombascraper-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"tombascraper-crawler\",\n \"patterns\": [\n \"TombaPublicWebCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"toplist-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"toplist-crawler\",\n \"patterns\": [\n \"toplistbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"torus-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"torus-crawler\",\n \"patterns\": [\n \"ReverseEngineeringBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"toutiao-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"toutiao-crawler\",\n \"patterns\": [\n \"ToutiaoSpider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"traackr-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"traackr-crawler\",\n \"patterns\": [\n \"Traackr\\\\.com\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"tracemyfile-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"tracemyfile-crawler\",\n \"patterns\": [\n \"tracemyfile\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"trendiction-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"trendiction-crawler\",\n \"patterns\": [\n \"trendictionbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"trove-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"trove-crawler\",\n \"patterns\": [\n \"Trove\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"trovit-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"trovit-crawler\",\n \"patterns\": [\n \"trovitBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"tweetmemebot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"tweetmemebot\",\n \"patterns\": [\n \"TweetmemeBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"twenga-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"twenga-crawler\",\n \"patterns\": [\n \"twengabot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"twingly-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"twingly-crawler\",\n \"patterns\": [\n \"Twingly\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"twoip-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"twoip-crawler\",\n \"patterns\": [\n \"2ip bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"twoip-crawler-cms\",\n \"category\": \"UNKNOWN\",\n \"name\": \"twoip-crawler-cms\",\n \"patterns\": [\n \"2ip\\\\.ru\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"twurly-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"twurly-crawler\",\n \"patterns\": [\n \"Twurly\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ubermetrics-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ubermetrics-crawler\",\n \"patterns\": [\n \"um-LN\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ubt-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ubt-crawler\",\n \"patterns\": [\n \"Streamline3Bot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"upflow-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"upflow-crawler\",\n \"patterns\": [\n \"Upflow\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"urlclassification-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"urlclassification-crawler\",\n \"patterns\": [\n \"KStandBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"usine-nouvelle-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"usine-nouvelle-crawler\",\n \"patterns\": [\n \"UsineNouvelleCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"utorrent-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"utorrent-crawler\",\n \"patterns\": [\n \"BTWebClient\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"vebidoo-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"vebidoo-crawler\",\n \"patterns\": [\n \"vebidoobot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"veooz-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"veooz-crawler\",\n \"patterns\": [\n \"Veoozbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"verisign-ips-agent\",\n \"category\": \"UNKNOWN\",\n \"name\": \"verisign-ips-agent\",\n \"patterns\": [\n \"ips-agent\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"vigil-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"vigil-crawler\",\n \"patterns\": [\n \"Vigil\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"vipnytt-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"vipnytt-crawler\",\n \"patterns\": [\n \"jpg-newsbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"virustotal-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"virustotal-crawler\",\n \"patterns\": [\n \"virustotal\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"vkrobot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"vkrobot-crawler\",\n \"patterns\": [\n \"VKRobot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"vkshare-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"vkshare-crawler\",\n \"patterns\": [\n \"vkShare\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"vuhuv-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"vuhuv-crawler\",\n \"patterns\": [\n \"vuhuvBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"warebay-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"warebay-crawler\",\n \"patterns\": [\n \"wbsearchbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"webceo-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"webceo-crawler\",\n \"patterns\": [\n \"online-webceo-bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"webcompany-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"webcompany-crawler\",\n \"patterns\": [\n \"webcompanycrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"webdatastats-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"webdatastats-crawler\",\n \"patterns\": [\n \"WebDataStats\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"webeaver-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"webeaver-crawler\",\n \"patterns\": [\n \"BehloolBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"webmeup-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"webmeup-crawler\",\n \"patterns\": [\n \"BLEXBot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"webmon\",\n \"category\": \"UNKNOWN\",\n \"name\": \"webmon\",\n \"patterns\": [\n \"webmon \"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"wesee-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"wesee-crawler\",\n \"patterns\": [\n \"WeSEE:Search\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"wocodi-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"wocodi-crawler\",\n \"patterns\": [\n \"wocbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"woorank-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"woorank-crawler\",\n \"patterns\": [\n \"woobot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"woorank-crawler-review\",\n \"category\": \"UNKNOWN\",\n \"name\": \"woorank-crawler-review\",\n \"patterns\": [\n \"woorankreview\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"wordpress-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"WordPressBot\",\n \"patterns\": [\n \"WordPress\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"wordup-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"wordup-crawler\",\n \"patterns\": [\n \"WordupInfoSearch\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"worio-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"worio-crawler\",\n \"patterns\": [\n \"woriobot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"wotbox-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"wotbox-crawler\",\n \"patterns\": [\n \"wotbox\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"xovibot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"xovibot-crawler\",\n \"patterns\": [\n \"xovibot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"yanga-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"yanga-crawler\",\n \"patterns\": [\n \"yanga\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"yellowbp-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"yellowbp-crawler\",\n \"patterns\": [\n \"Yellowbrandprotectionbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"yisou-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"yisou-crawler\",\n \"patterns\": [\n \"YisouSpider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"yooz-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"yooz-crawler\",\n \"patterns\": [\n \"yoozBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"zoominfo-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"zoominfo-crawler\",\n \"patterns\": [\n \"ZoominfoBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"zum-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ZumBot\",\n \"patterns\": [\n \"ZumBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"zuperlist-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"zuperlist-crawler\",\n \"patterns\": [\n \"ZuperlistBot\\\\/\"\n ],\n \"forbidden\": []\n }\n]","/**\n * @module @arcis/node/middleware/bot-detection\n * Local-only bot detection using User-Agent and behavioral signals.\n *\n * Categorizes requests into bot types and allows/denies based on config.\n * No cloud calls — everything runs locally.\n *\n * @example\n * // Block automated tools, allow search engines\n * app.use(botProtection({\n * allow: ['SEARCH_ENGINE', 'SOCIAL', 'MONITORING'],\n * deny: ['AUTOMATED', 'SCRAPER'],\n * }));\n */\n\nimport type { Request, Response, NextFunction, RequestHandler } from 'express';\nimport BOT_PATTERN_DATA from '../data/bot-patterns.json';\n\n// =============================================================================\n// BOT CATEGORIES\n// =============================================================================\n\nexport type BotCategory =\n | 'SEARCH_ENGINE'\n | 'SOCIAL'\n | 'MONITORING'\n | 'AI_CRAWLER'\n | 'SCRAPER'\n | 'AUTOMATED'\n | 'UNKNOWN'\n | 'HUMAN';\n\nexport interface BotDetectionResult {\n /** Whether the request appears to be from a bot */\n isBot: boolean;\n /** Bot category */\n category: BotCategory;\n /** Matched bot name (e.g. 'Googlebot', 'curl') or null */\n name: string | null;\n /** Confidence score: 0-1 */\n confidence: number;\n /** Behavioral signals detected */\n signals: string[];\n}\n\nexport interface BotProtectionOptions {\n /** Categories to explicitly allow. Default: ['SEARCH_ENGINE', 'SOCIAL', 'MONITORING'] */\n allow?: BotCategory[];\n /** Categories to explicitly deny. Default: ['AUTOMATED'] */\n deny?: BotCategory[];\n /** Action for categories not in allow or deny. Default: 'allow' */\n defaultAction?: 'allow' | 'deny';\n /** HTTP status code for denied bots. Default: 403 */\n statusCode?: number;\n /** Error message for denied bots */\n message?: string;\n /** Enable behavioral signal detection. Default: true */\n detectBehavior?: boolean;\n /** Custom handler called on detection (instead of default deny response) */\n onDetected?: (req: Request, res: Response, result: BotDetectionResult) => void;\n}\n\n// =============================================================================\n// BOT DATABASE\n// =============================================================================\n\ninterface BotPattern {\n /** Compiled regex(es) to match against the User-Agent. ANY match counts. */\n patterns: RegExp[];\n /** Compiled forbidden patterns. If ANY matches, this entry is rejected. */\n forbidden: RegExp[];\n /** Bot name (e.g. 'Googlebot') */\n name: string;\n /** Category */\n category: BotCategory;\n /** Stable identifier from the source corpus */\n id: string;\n}\n\n/**\n * Source data for the bot corpus — `packages/core/bot-patterns.json`, derived\n * from arcjet/well-known-bots (MIT) plus a supplementary list of browser\n * automation tools the upstream doesn't separately track. Regenerate via\n * `python packages/core/generate-bot-patterns.py` after upgrading the source.\n */\ninterface BotPatternData {\n id: string;\n name: string;\n category: string;\n patterns: string[];\n forbidden: string[];\n}\n\nfunction compilePattern(source: string): RegExp {\n // Patterns from the corpus are JS-style regex bodies (no enclosing /.../ ).\n // Compile case-insensitive: matches Arcis's documented contract that bot\n // detection ignores UA case (`GPTBOT` and `gptbot` match the same entry).\n // This is additive on top of Arcjet's explicit character classes like\n // `[wW]get` — the `i` flag doesn't conflict with character ranges.\n return new RegExp(source, 'i');\n}\n\nconst BOT_PATTERNS: BotPattern[] = (BOT_PATTERN_DATA as BotPatternData[]).map((entry) => ({\n id: entry.id,\n name: entry.name,\n category: entry.category as BotCategory,\n patterns: entry.patterns.map(compilePattern),\n forbidden: entry.forbidden.map(compilePattern),\n}));\n\n\n// =============================================================================\n// DETECTION ENGINE\n// =============================================================================\n\n/**\n * Detect behavioral signals that suggest a bot.\n */\nfunction detectBehavioralSignals(req: Request): string[] {\n const signals: string[] = [];\n const headers = req.headers;\n\n // Missing User-Agent\n if (!headers['user-agent']) {\n signals.push('missing_user_agent');\n }\n\n // Missing Accept header (browsers always send this)\n if (!headers['accept']) {\n signals.push('missing_accept');\n }\n\n // Missing Accept-Language (browsers always send this)\n if (!headers['accept-language']) {\n signals.push('missing_accept_language');\n }\n\n // Missing Accept-Encoding (browsers always send this)\n if (!headers['accept-encoding']) {\n signals.push('missing_accept_encoding');\n }\n\n // Connection: close (browsers typically use keep-alive)\n if (headers['connection'] === 'close') {\n signals.push('connection_close');\n }\n\n return signals;\n}\n\n/**\n * Detect what kind of bot (if any) is making the request.\n *\n * @param req - HTTP request object\n * @returns Detection result with category, name, confidence, and signals\n *\n * @example\n * const result = detectBot(req);\n * if (result.isBot && result.category === 'AUTOMATED') {\n * // Block automated tools\n * }\n */\nexport function detectBot(req: Request): BotDetectionResult {\n const rawUa = req.headers['user-agent'] ?? '';\n // SECURITY: A UA longer than 2048 chars is either buggy client or attempt to hide\n // a bot signature past a truncation boundary. Flag as suspicious bot directly —\n // don't silently truncate and continue.\n if (rawUa.length > 2048) {\n return {\n isBot: true,\n category: 'UNKNOWN',\n name: null,\n confidence: 0.9,\n signals: detectBehavioralSignals(req),\n };\n }\n const ua = rawUa;\n const signals = detectBehavioralSignals(req);\n\n // No User-Agent at all\n if (!ua) {\n return {\n isBot: true,\n category: 'UNKNOWN',\n name: null,\n confidence: 0.8,\n signals,\n };\n }\n\n // Match against known bot patterns. An entry matches when ALL of its\n // accepted patterns match AND none of its forbidden patterns matches.\n // ALL-of semantics makes multi-pattern entries (e.g. iMessage-Preview which\n // expects both `facebookexternalhit` and `Twitterbot` in the same UA) only\n // fire on real iMessage traffic, not on bare `Twitterbot/1.0` requests.\n // Single-pattern entries (the common case) reduce trivially to that one\n // pattern matching.\n for (const bot of BOT_PATTERNS) {\n let allMatched = bot.patterns.length > 0;\n for (const pattern of bot.patterns) {\n if (!pattern.test(ua)) {\n allMatched = false;\n break;\n }\n }\n if (!allMatched) continue;\n\n let forbidden = false;\n for (const pattern of bot.forbidden) {\n if (pattern.test(ua)) {\n forbidden = true;\n break;\n }\n }\n if (forbidden) continue;\n\n return {\n isBot: true,\n category: bot.category,\n name: bot.name,\n confidence: 0.95,\n signals,\n };\n }\n\n // Behavioral analysis for unrecognized UAs\n const behaviorScore = signals.length;\n\n // 3+ missing standard headers = likely bot\n if (behaviorScore >= 3) {\n return {\n isBot: true,\n category: 'UNKNOWN',\n name: null,\n confidence: Math.min(1.0, 0.6 + (behaviorScore * 0.1)),\n signals,\n };\n }\n\n return {\n isBot: false,\n category: 'HUMAN',\n name: null,\n confidence: Math.max(0.0, 1.0 - (behaviorScore * 0.15)),\n signals,\n };\n}\n\n/**\n * Create Express middleware for bot protection.\n *\n * @example\n * // Block automated tools and scrapers\n * app.use(botProtection({\n * allow: ['SEARCH_ENGINE', 'SOCIAL', 'MONITORING'],\n * deny: ['AUTOMATED', 'SCRAPER'],\n * }));\n *\n * @example\n * // Block everything except search engines\n * app.use(botProtection({\n * allow: ['SEARCH_ENGINE'],\n * defaultAction: 'deny',\n * }));\n *\n * @example\n * // Custom handler\n * app.use(botProtection({\n * deny: ['AUTOMATED'],\n * onDetected: (req, res, result) => {\n * console.log(`Bot blocked: ${result.name} (${result.category})`);\n * res.status(403).json({ error: 'Bots not allowed' });\n * },\n * }));\n */\nexport function botProtection(options: BotProtectionOptions = {}): RequestHandler {\n const {\n allow = ['SEARCH_ENGINE', 'SOCIAL', 'MONITORING'],\n deny = ['AUTOMATED'],\n defaultAction = 'allow',\n statusCode = 403,\n message = 'Access denied.',\n onDetected,\n } = options;\n\n const allowSet = new Set(allow);\n const denySet = new Set(deny);\n\n return (req: Request, res: Response, next: NextFunction) => {\n const result = detectBot(req);\n\n // Attach result to request for downstream use\n (req as unknown as Record<string, unknown>).botDetection = result;\n\n // Humans always pass\n if (!result.isBot) {\n return next();\n }\n\n // Check explicit allow/deny lists\n if (allowSet.has(result.category)) {\n return next();\n }\n\n if (denySet.has(result.category)) {\n // Telemetry attribution: dashboard groups bot denials under vector=bot.\n req.__arcis = {\n vector: 'bot',\n rule: `bot/${result.category.toLowerCase()}`,\n severity: 'medium',\n reason: result.name ? `Bot detected: ${result.name}` : 'Bot detected',\n decision: 'deny',\n };\n if (onDetected) {\n return onDetected(req, res, result);\n }\n res.status(statusCode).json({ error: message });\n return;\n }\n\n // Default action for uncategorized bots\n if (defaultAction === 'deny') {\n req.__arcis = {\n vector: 'bot',\n rule: 'bot/uncategorized',\n severity: 'medium',\n reason: 'Uncategorized bot under defaultAction=deny',\n decision: 'deny',\n };\n if (onDetected) {\n return onDetected(req, res, result);\n }\n res.status(statusCode).json({ error: message });\n return;\n }\n\n next();\n };\n}\n","/**\n * @module @arcis/node/nuxt\n *\n * Nuxt (h3) adapter for Arcis. Drop into a server middleware file.\n *\n * **Scope:** rate-limit + bot detection + security headers. For\n * XSS/SQL/SSTI/etc. body-payload blocking, call `sanitizeObject` from\n * `@arcis/node/sanitizers` inside your route handler. v1 keeps the\n * middleware surface narrow.\n *\n * ```ts\n * // server/middleware/arcis.ts\n * import { defineEventHandler } from 'h3';\n * import { arcisHandler } from '@arcis/node/nuxt';\n * export default defineEventHandler(arcisHandler({ rateLimit: { max: 100 } }));\n * ```\n *\n * Or compose with other handlers — each Nuxt server middleware file runs in\n * the order Nitro discovers them (alphabetical by default).\n *\n * The adapter operates against h3's Node-compat layer (`event.node.req` /\n * `event.node.res`) so it works on the standard Nuxt server. There is no\n * runtime dependency on `h3` — its event shape is duck-typed.\n */\n\nimport type { Request as ExpressRequestLike } from 'express';\nimport { HEADERS, RATE_LIMIT } from '../core/constants';\nimport type {\n HeaderOptions,\n HstsOptions,\n RateLimitOptions,\n} from '../core/types';\nimport {\n detectBot,\n type BotProtectionOptions,\n type BotDetectionResult,\n} from './bot-detection';\n\n// ─── h3 / Nuxt duck-typed contracts ─────────────────────────────────────────\n\ninterface NodeIncomingMessageLike {\n headers: Record<string, string | string[] | undefined>;\n socket?: { remoteAddress?: string };\n method?: string;\n url?: string;\n}\n\ninterface NodeServerResponseLike {\n statusCode: number;\n writableEnded?: boolean;\n setHeader(name: string, value: string | number | string[]): void;\n removeHeader(name: string): void;\n end(body?: string): void;\n}\n\nexport interface H3EventLike {\n node: {\n req: NodeIncomingMessageLike;\n res: NodeServerResponseLike;\n };\n}\n\nexport type ArcisH3Handler = (event: H3EventLike) => Promise<void> | void;\n\n// ─── Adapter options ────────────────────────────────────────────────────────\n\nexport interface ArcisNuxtOptions {\n /** Security headers configuration. Default: enabled. Pass `false` to disable. */\n headers?: boolean | HeaderOptions;\n /** Rate limiter configuration. Default: 100 req/60s in-memory. Pass `false` to disable. */\n rateLimit?: boolean | RateLimitOptions;\n /** Bot protection. Default: disabled (opt-in). */\n bot?: boolean | BotProtectionOptions;\n}\n\n// ─── Helpers ────────────────────────────────────────────────────────────────\n\ninterface RateLimitEntry {\n count: number;\n resetTime: number;\n}\n\ninterface RateLimitDecision {\n allowed: boolean;\n count: number;\n max: number;\n remaining: number;\n resetSeconds: number;\n}\n\nfunction buildLimiter(opts: RateLimitOptions): (key: string) => RateLimitDecision {\n const max = opts.max ?? RATE_LIMIT.DEFAULT_MAX_REQUESTS;\n const windowMs = opts.windowMs ?? RATE_LIMIT.DEFAULT_WINDOW_MS;\n const store = Object.create(null) as Record<string, RateLimitEntry>;\n return (key: string): RateLimitDecision => {\n const now = Date.now();\n let entry = store[key];\n if (!entry || entry.resetTime < now) {\n entry = { count: 0, resetTime: now + windowMs };\n store[key] = entry;\n }\n entry.count += 1;\n const remaining = Math.max(0, max - entry.count);\n const resetSeconds = Math.ceil((entry.resetTime - now) / 1000);\n return { allowed: entry.count <= max, count: entry.count, max, remaining, resetSeconds };\n };\n}\n\nfunction botInputFor(req: NodeIncomingMessageLike): ExpressRequestLike {\n // Node's IncomingMessage already has the headers shape detectBot reads off\n // an Express request — pass it through with a type assertion.\n return { headers: req.headers } as unknown as ExpressRequestLike;\n}\n\nfunction clientIpFromReq(req: NodeIncomingMessageLike): string {\n // Trust X-Forwarded-For only when present and well-formed; fall back to\n // socket.remoteAddress; finally a stable 'unknown' bucket so a missing IP\n // doesn't share a counter with every other unresolvable client.\n const xff = req.headers['x-forwarded-for'];\n if (typeof xff === 'string' && xff.length > 0) {\n const first = xff.split(',')[0]?.trim();\n if (first) return first;\n }\n const remote = req.socket?.remoteAddress;\n if (remote) return remote;\n return 'unknown';\n}\n\nfunction isHttpsRequest(req: NodeIncomingMessageLike): boolean {\n const xfp = req.headers['x-forwarded-proto'];\n const value = (Array.isArray(xfp) ? xfp[0] : xfp)?.split(',')[0]?.trim()?.toLowerCase();\n return value === 'https';\n}\n\nfunction applySecurityHeaders(\n res: NodeServerResponseLike,\n req: NodeIncomingMessageLike,\n options: HeaderOptions,\n): void {\n const {\n contentSecurityPolicy = true,\n xssFilter = true,\n noSniff = true,\n frameOptions = HEADERS.FRAME_OPTIONS,\n hsts = true,\n referrerPolicy = HEADERS.REFERRER_POLICY,\n permissionsPolicy = HEADERS.PERMISSIONS_POLICY,\n cacheControl = true,\n crossOriginOpenerPolicy = 'same-origin',\n crossOriginResourcePolicy = 'same-origin',\n crossOriginEmbedderPolicy = 'require-corp',\n originAgentCluster = true,\n dnsPrefetchControl = true,\n } = options;\n\n if (contentSecurityPolicy) {\n res.setHeader(\n 'Content-Security-Policy',\n typeof contentSecurityPolicy === 'string' ? contentSecurityPolicy : HEADERS.DEFAULT_CSP,\n );\n }\n if (xssFilter) res.setHeader('X-XSS-Protection', '0');\n if (noSniff) res.setHeader('X-Content-Type-Options', HEADERS.CONTENT_TYPE_OPTIONS);\n if (frameOptions) res.setHeader('X-Frame-Options', frameOptions);\n\n if (hsts && isHttpsRequest(req)) {\n const o: HstsOptions = typeof hsts === 'object' ? hsts : {};\n const maxAge = o.maxAge ?? HEADERS.HSTS_MAX_AGE;\n const includeSub = o.includeSubDomains !== false;\n const preload = o.preload === true;\n let v = `max-age=${maxAge}`;\n if (includeSub) v += '; includeSubDomains';\n if (preload) v += '; preload';\n res.setHeader('Strict-Transport-Security', v);\n }\n\n if (referrerPolicy) res.setHeader('Referrer-Policy', referrerPolicy);\n if (permissionsPolicy) res.setHeader('Permissions-Policy', permissionsPolicy);\n if (crossOriginOpenerPolicy) res.setHeader('Cross-Origin-Opener-Policy', crossOriginOpenerPolicy);\n if (crossOriginResourcePolicy) res.setHeader('Cross-Origin-Resource-Policy', crossOriginResourcePolicy);\n if (crossOriginEmbedderPolicy) res.setHeader('Cross-Origin-Embedder-Policy', crossOriginEmbedderPolicy);\n if (originAgentCluster) res.setHeader('Origin-Agent-Cluster', '?1');\n if (dnsPrefetchControl) res.setHeader('X-DNS-Prefetch-Control', 'off');\n res.setHeader('X-Permitted-Cross-Domain-Policies', 'none');\n\n if (cacheControl) {\n res.setHeader(\n 'Cache-Control',\n typeof cacheControl === 'string' ? cacheControl : HEADERS.CACHE_CONTROL,\n );\n res.setHeader('Pragma', 'no-cache');\n res.setHeader('Expires', '0');\n }\n\n res.removeHeader('X-Powered-By');\n}\n\n// ─── Public API ─────────────────────────────────────────────────────────────\n\n/**\n * Build an h3 event handler that applies Arcis protections on each request.\n * Wrap it with `defineEventHandler` in your Nuxt server middleware. When a\n * request is rate-limited or denied, the handler writes the 429/403 response\n * directly via `event.node.res` and returns; otherwise it sets security\n * headers and falls through to the next handler.\n */\nexport function arcisHandler(options: ArcisNuxtOptions = {}): ArcisH3Handler {\n const headersCfg = options.headers ?? true;\n const rateLimitCfg = options.rateLimit ?? true;\n const botCfg = options.bot;\n\n const limiter = rateLimitCfg\n ? buildLimiter(typeof rateLimitCfg === 'object' ? rateLimitCfg : {})\n : null;\n\n const botEnabled = !!botCfg;\n const botOpts: BotProtectionOptions = typeof botCfg === 'object' ? botCfg : {};\n const botAllow = new Set(botOpts.allow ?? ['SEARCH_ENGINE', 'SOCIAL', 'MONITORING']);\n const botDeny = new Set(botOpts.deny ?? ['AUTOMATED']);\n const botDefault = botOpts.defaultAction ?? 'allow';\n const botStatusCode = botOpts.statusCode ?? 403;\n const botMessage = botOpts.message ?? 'Access denied.';\n\n return (event) => {\n const { req, res } = event.node;\n\n // 1. Rate limit\n if (limiter) {\n const decision = limiter(clientIpFromReq(req));\n if (!decision.allowed) {\n res.statusCode = 429;\n res.setHeader('Content-Type', 'application/json');\n res.setHeader('Retry-After', decision.resetSeconds.toString());\n res.setHeader('X-RateLimit-Limit', decision.max.toString());\n res.setHeader('X-RateLimit-Remaining', '0');\n res.setHeader('X-RateLimit-Reset', decision.resetSeconds.toString());\n res.end(\n JSON.stringify({\n error: 'Too many requests, please try again later.',\n retryAfter: decision.resetSeconds,\n }),\n );\n return;\n }\n }\n\n // 2. Bot detection\n if (botEnabled) {\n const result: BotDetectionResult = detectBot(botInputFor(req));\n if (result.isBot) {\n const denied =\n botDeny.has(result.category) ||\n (!botAllow.has(result.category) && botDefault === 'deny');\n if (denied) {\n res.statusCode = botStatusCode;\n res.setHeader('Content-Type', 'application/json');\n res.end(JSON.stringify({ error: botMessage }));\n return;\n }\n }\n }\n\n // 3. Security headers — set up-front so they're sent with the eventual\n // response from the downstream Nuxt route handler.\n if (headersCfg) {\n applySecurityHeaders(res, req, typeof headersCfg === 'object' ? headersCfg : {});\n }\n };\n}\n\nexport default arcisHandler;\n"]}
1
+ {"version":3,"sources":["../../src/core/constants.ts","../../src/data/bot-patterns.json","../../src/middleware/bot-detection.ts","../../src/middleware/nuxt.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * @module @arcis/node/core/constants\n * Named constants for Arcis - no magic numbers\n */\n\n// =============================================================================\n// INPUT LIMITS\n// =============================================================================\nexport const INPUT = {\n /** Default maximum input size (1MB) */\n DEFAULT_MAX_SIZE: 1_000_000,\n /** Maximum recursion depth for nested objects */\n MAX_RECURSION_DEPTH: 10,\n} as const;\n\n// =============================================================================\n// RATE LIMITING\n// =============================================================================\nexport const RATE_LIMIT = {\n /** Default window size (1 minute) */\n DEFAULT_WINDOW_MS: 60_000,\n /** Default max requests per window */\n DEFAULT_MAX_REQUESTS: 100,\n /** Default HTTP status code for rate limited responses */\n DEFAULT_STATUS_CODE: 429,\n /** Default error message */\n DEFAULT_MESSAGE: 'Too many requests, please try again later.',\n /** Minimum window size (1 second) */\n MIN_WINDOW_MS: 1_000,\n /** Maximum window size (24 hours) */\n MAX_WINDOW_MS: 86_400_000,\n} as const;\n\n// =============================================================================\n// SECURITY HEADERS\n// =============================================================================\nexport const HEADERS = {\n /** Default Content Security Policy */\n DEFAULT_CSP: [\n \"default-src 'self'\",\n \"script-src 'self'\",\n \"style-src 'self' 'unsafe-inline'\",\n \"img-src 'self' data: https:\",\n \"font-src 'self'\",\n \"object-src 'none'\",\n \"frame-ancestors 'none'\",\n ].join('; '),\n /** Default HSTS max age (1 year in seconds) */\n HSTS_MAX_AGE: 31_536_000,\n /** Default X-Frame-Options value */\n FRAME_OPTIONS: 'DENY' as const,\n /** Default X-Content-Type-Options value */\n CONTENT_TYPE_OPTIONS: 'nosniff',\n /** Default Referrer-Policy value */\n REFERRER_POLICY: 'strict-origin-when-cross-origin',\n /** Default Permissions-Policy value */\n PERMISSIONS_POLICY: 'geolocation=(), microphone=(), camera=()',\n /** Default Cache-Control value for security */\n CACHE_CONTROL: 'no-store, no-cache, must-revalidate, proxy-revalidate',\n} as const;\n\n// =============================================================================\n// XSS PATTERNS (ReDoS-safe)\n// =============================================================================\n\n/**\n * Detection patterns — used to flag whether a string contains XSS payloads.\n * Must stay in sync with XSS_REMOVE_PATTERNS below.\n */\nexport const XSS_PATTERNS = [\n /** Script tags (ReDoS-safe version) */\n /<script[^>]*>[\\s\\S]*?<\\/script>/gi,\n /** javascript: protocol (allow optional spaces before colon) */\n /javascript\\s*:/gi,\n /** vbscript: protocol */\n /vbscript\\s*:/gi,\n /** Event handlers (onclick, onerror, etc.) — any separator before attribute */\n /(?:[\\s/])on\\w+\\s*=/gi,\n /** iframe tags */\n /<iframe/gi,\n /** object tags */\n /<object/gi,\n /** embed tags */\n /<embed/gi,\n /** data: URIs (only dangerous ones, avoid false positives) */\n /(?:^|[\\s\"'=])data:/gi,\n /** URL-encoded script tags */\n /%3Cscript/gi,\n /** SVG with onload */\n /<svg[^>]*onload/gi,\n /** form tags — phishing/credential harvesting via action= redirection */\n /<form[\\s>]/gi,\n /** meta tags — http-equiv refresh redirects or CSP bypass */\n /<meta[\\s>]/gi,\n /** base href hijacking — redirects all relative URLs to attacker domain */\n /<base[\\s>]/gi,\n /** link tag injection — stylesheet or preload CSRF attacks */\n /<link[\\s>]/gi,\n /** style tag — CSS expression() / behavior: / IE-era attacks. Mirrors\n * Python's xss-style-tag from packages/core/patterns.json. */\n /<style[\\s>]/gi,\n] as const;\n\n/**\n * Removal patterns — used by sanitizeXss() to strip dangerous content.\n * More targeted than XSS_PATTERNS: each pattern captures the full dangerous\n * substring (tag, attribute + value, protocol) so it can be replaced safely.\n * Must stay in sync with XSS_PATTERNS above.\n */\nexport const XSS_REMOVE_PATTERNS = [\n /** Full script blocks (content + tags) */\n /<script[^>]*>[\\s\\S]*?<\\/script>/gi,\n /** Standalone/unclosed script tags */\n /<script[^>]*>/gi,\n /** style — CSS expression() and behavior: attacks (IE-era but still relevant) */\n /<style[^>]*>[\\s\\S]*?<\\/style>/gi,\n /<style[^>]*/gi,\n /** iframe — full block and partial/unclosed */\n /<iframe[^>]*>[\\s\\S]*?<\\/iframe>/gi,\n /<iframe[^>]*/gi,\n /** object — full block and partial/unclosed */\n /<object[^>]*>[\\s\\S]*?<\\/object>/gi,\n /<object[^>]*/gi,\n /** embed tags */\n /<embed[^>]*/gi,\n /** SVG with inline event handlers */\n /<svg[^>]*onload[^>]*>/gi,\n /** URL-encoded script tags */\n /%3Cscript/gi,\n /** Event handlers with quoted values: onclick=\"...\", onerror='...' */\n /(?:[\\s/])on\\w+\\s*=\\s*[\"'][^\"']*[\"']/gi,\n /** Event handlers with unquoted values: onload=value */\n /(?:[\\s/])on\\w+\\s*=\\s*[^\\s>]*/gi,\n /** javascript: and vbscript: protocols (allow optional spaces before colon) */\n /javascript\\s*:/gi,\n /vbscript\\s*:/gi,\n /** data: URIs with HTML or SVG content (SVG can run JS via inline event handlers) */\n /data\\s*:\\s*(?:text\\/html|image\\/svg)[^>\\s]*/gi,\n /** form tag injection — phishing via action= redirection */\n /<form[\\s>][^>]*/gi,\n /** meta tag injection — http-equiv refresh or CSP bypass */\n /<meta[\\s>][^>]*/gi,\n /** base href hijacking */\n /<base[\\s>][^>]*/gi,\n /** link tag injection — stylesheet or preload attacks */\n /<link[\\s>][^>]*/gi,\n] as const;\n\n// =============================================================================\n// SQL INJECTION PATTERNS\n// =============================================================================\nexport const SQL_PATTERNS = [\n /** SQL keywords */\n /(\\b(SELECT|INSERT|UPDATE|DELETE|DROP|UNION|ALTER|CREATE|TRUNCATE|EXEC|EXECUTE)\\b)/gi,\n /** SQL comments: ANSI (--), C-style (slash-star ... star-slash), MySQL (#) */\n /(--|\\/\\*|\\*\\/|#)/g,\n /** SQL statement separators */\n /(;|\\|\\||&&)/g,\n /** Boolean injection: OR 1=1 */\n /\\bOR\\s+\\d+\\s*=\\s*\\d+/gi,\n /** Boolean injection: OR 'a'='a' or OR \"a\"=\"a\" (including mixed quotes) */\n /\\bOR\\s+(['\"])[^'\"]*\\1\\s*=\\s*(['\"])[^'\"]*\\2/gi,\n /\\bOR\\s+('[^']*'|\"[^\"]*\")\\s*=\\s*('[^']*'|\"[^\"]*\")/gi,\n /** Boolean injection: AND 1=1 */\n /\\bAND\\s+\\d+\\s*=\\s*\\d+/gi,\n /** Boolean injection: AND 'a'='a' or AND \"a\"=\"a\" (including mixed quotes) */\n /\\bAND\\s+(['\"])[^'\"]*\\1\\s*=\\s*(['\"])[^'\"]*\\2/gi,\n /\\bAND\\s+('[^']*'|\"[^\"]*\")\\s*=\\s*('[^']*'|\"[^\"]*\")/gi,\n /** Time-based blind: SLEEP() */\n /\\bSLEEP\\s*\\(\\s*\\d+\\s*\\)/gi,\n /** Time-based blind: BENCHMARK() */\n /\\bBENCHMARK\\s*\\(/gi,\n /** Time-based blind: PostgreSQL pg_sleep() */\n /\\bpg_sleep\\s*\\(/gi,\n /** Time-based blind: MSSQL WAITFOR DELAY */\n /\\bWAITFOR\\s+DELAY\\b/gi,\n /**\n * Oracle DBMS_* stdlib packages used for time-based blind SQLi\n * (DBMS_LOCK.SLEEP, DBMS_PIPE.RECEIVE_MESSAGE) and other Oracle\n * abuse paths. No legitimate user input contains these. Mirrors\n * `sqli-oracle-dbms-packages` in packages/core/patterns.json —\n * improvements.md §1.1.e Q3. Must stay in sync until Node\n * migrates to patterns.json-at-runtime (planned v1.7).\n */\n /\\bDBMS_(?:LOCK|PIPE|UTILITY|XSLPROCESSOR|JAVA|OUTPUT|SCHEDULER)\\b/gi,\n] as const;\n\n// =============================================================================\n// PATH TRAVERSAL PATTERNS\n// =============================================================================\nexport const PATH_PATTERNS = [\n /** Unix path traversal */\n /\\.\\.\\//g,\n /** Windows path traversal */\n /\\.\\.\\\\/g,\n /** URL-encoded traversal (%2e%2e) */\n /%2e%2e/gi,\n /** Double URL-encoded traversal (%252e) */\n /%252e/gi,\n /** Mixed encoding: ..%2F */\n /\\.\\.%2F/gi,\n /** Mixed encoding: %2e./ and .%2e/ */\n /%2e\\.[\\\\/]/gi,\n /\\.%2e[\\\\/]/gi,\n /** Fully URL-encoded: %2e%2e%2f */\n /%2e%2e%2f/gi,\n /** Double URL-encoded forward slash: %252f */\n /%252f/gi,\n /** Dotdotslash bypass: ....// or ....\\\\ */\n /\\.{2,}[/\\\\]{2,}/g,\n /** Null byte injection in paths */\n /\\0/g,\n] as const;\n\n// =============================================================================\n// COMMAND INJECTION PATTERNS\n// =============================================================================\nexport const COMMAND_PATTERNS = [\n /**\n * Shell metacharacters that enable command chaining/substitution.\n * Bare ( and ) are excluded — they appear in common legitimate values\n * (function calls in code fields, math expressions, etc.).\n * Command substitution is caught by the $( combined pattern below.\n * NOTE: ';', '&', '|' may appear in legitimate URL query strings\n * and Markdown; consider disabling command checking (command: false)\n * for fields that intentionally allow those characters.\n */\n /[;&|`]/g,\n /** Command substitution: $( ... ) — matched as a pair to reduce false positives */\n /\\$\\(/g,\n /**\n * POSIX shell IFS-substitution: ${IFS} or ${IFS%??}.\n * Attackers use this to inject spaces past metacharacter filters\n * in payloads like `;cat${IFS}/etc/passwd`. Mirrors\n * `cmdi-ifs-bypass` in packages/core/patterns.json — improvements.md\n * §1.1.e Q5. Must stay in sync until Node migrates to\n * patterns.json-at-runtime (planned v1.7).\n */\n /\\$\\{IFS(?:%[^}]*)?\\}/g,\n /** URL-encoded control characters (%00-%0F): null, tab, vtab, formfeed, LF, CR */\n /%0[0-9a-f]/gi,\n] as const;\n\n// =============================================================================\n// DANGEROUS KEYS\n// =============================================================================\n\n/**\n * Prototype pollution keys to block.\n * Stored lowercase — always compare with key.toLowerCase().\n *\n * Includes:\n * - __proto__: direct prototype assignment\n * - constructor: access to constructor.prototype chain\n * - prototype: direct prototype property\n * - __defineGetter__/__defineSetter__: legacy property definition (can override getters/setters)\n * - __lookupGetter__/__lookupSetter__: legacy property introspection\n */\nexport const DANGEROUS_PROTO_KEYS = new Set([\n '__proto__',\n 'constructor',\n 'prototype',\n '__definegetter__',\n '__definesetter__',\n '__lookupgetter__',\n '__lookupsetter__',\n]);\n\n/** MongoDB operators to block */\nexport const NOSQL_DANGEROUS_KEYS = new Set([\n // Comparison\n '$gt', '$gte', '$lt', '$lte', '$ne', '$eq', '$in', '$nin',\n // Logical\n '$and', '$or', '$not', '$nor',\n // Element / evaluation\n '$exists', '$type', '$regex', '$where', '$expr', '$mod', '$text', '$jsonSchema',\n // Array\n '$elemMatch', '$all', '$size',\n // JavaScript execution (critical)\n '$function', '$accumulator',\n // Aggregation pipeline operators (injectable via $lookup etc.)\n '$lookup', '$match', '$project', '$group', '$sort', '$limit', '$skip',\n '$unwind', '$addFields', '$replaceRoot',\n]);\n\n// =============================================================================\n// REDACTION\n// =============================================================================\nexport const REDACTION = {\n /** Replacement text for redacted values */\n REPLACEMENT: '[REDACTED]',\n /** Truncation indicator */\n TRUNCATED: '[TRUNCATED]',\n /** Max depth indicator */\n MAX_DEPTH: '[MAX_DEPTH]',\n /** Default max message length */\n DEFAULT_MAX_LENGTH: 10_000,\n /** Default sensitive keys to redact */\n SENSITIVE_KEYS: new Set([\n 'password', 'passwd', 'pwd', 'secret', 'token', 'apikey',\n 'api_key', 'apiKey', 'auth', 'authorization', 'credit_card',\n 'creditcard', 'cc', 'ssn', 'social_security', 'private_key',\n 'privateKey', 'access_token', 'accessToken', 'refresh_token',\n 'refreshToken', 'bearer', 'jwt', 'session', 'cookie',\n 'credentials', 'x-api-key', 'x-auth-token',\n ]),\n} as const;\n\n// =============================================================================\n// VALIDATION PATTERNS\n// =============================================================================\nexport const VALIDATION = {\n /**\n * Email regex pattern.\n * Rejects consecutive dots in local part (e.g. test..foo@example.com),\n * leading/trailing dots, and other common invalid forms.\n */\n EMAIL: /^[^\\s@.][^\\s@]*(?:\\.[^\\s@.][^\\s@]*)*@[^\\s@]+\\.[^\\s@]+$/,\n /**\n * URL regex pattern.\n * Only allows http:// and https:// (case-insensitive scheme per\n * RFC 3986); explicitly rejects javascript:, data:, vbscript:, and\n * other dangerous URI schemes.\n */\n URL: /^https?:\\/\\/[^\\s/$.?#][^\\s]*$/i,\n /** UUID regex pattern (v4) */\n UUID: /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,\n} as const;\n\n// =============================================================================\n// ERROR MESSAGES\n// =============================================================================\nexport const ERRORS = {\n /** Generic error message (production) */\n INTERNAL_SERVER_ERROR: 'Internal Server Error',\n /** Input too large error */\n INPUT_TOO_LARGE: (maxSize: number) => `Input exceeds maximum size of ${maxSize} bytes`,\n /** Validation error messages */\n VALIDATION: {\n REQUIRED: (field: string) => `${field} is required`,\n INVALID_TYPE: (field: string, type: string) => `${field} must be a ${type}`,\n MIN_LENGTH: (field: string, min: number) => `${field} must be at least ${min} characters`,\n MAX_LENGTH: (field: string, max: number) => `${field} must be at most ${max} characters`,\n MIN_VALUE: (field: string, min: number) => `${field} must be at least ${min}`,\n MAX_VALUE: (field: string, max: number) => `${field} must be at most ${max}`,\n INVALID_FORMAT: (field: string) => `${field} format is invalid`,\n INVALID_EMAIL: (field: string) => `${field} must be a valid email`,\n INVALID_URL: (field: string) => `${field} must be a valid URL`,\n INVALID_UUID: (field: string) => `${field} must be a valid UUID`,\n INVALID_ENUM: (field: string, values: unknown[]) => `${field} must be one of: ${values.join(', ')}`,\n MIN_ITEMS: (field: string, min: number) => `${field} must have at least ${min} items`,\n MAX_ITEMS: (field: string, max: number) => `${field} must have at most ${max} items`,\n },\n} as const;\n\n// =============================================================================\n// BLOCKED TEXT (for sanitizer replacements)\n// =============================================================================\nexport const BLOCKED = '[BLOCKED]' as const;\n","[\n {\n \"id\": \"ai-search-bot\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"ai-search-bot\",\n \"patterns\": [\n \"AISearchBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ai2-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"ai2-crawler\",\n \"patterns\": [\n \"AI2Bot\\\\s\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ai2-crawler-dolma\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"ai2-crawler-dolma\",\n \"patterns\": [\n \"Ai2Bot-Dolma\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"aihit-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"aihit-crawler\",\n \"patterns\": [\n \"aiHitBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"anthropic-ai-token\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"Anthropic\",\n \"patterns\": [\n \"anthropic-ai\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"anthropic-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"ClaudeBot\",\n \"patterns\": [\n \"[cC]laude(?:[bB]ot|-[Ww]eb)\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"anthropic-crawler-search\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"ClaudeSearchBot\",\n \"patterns\": [\n \"Claude-SearchBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"anthropic-crawler-user\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"ClaudeUser\",\n \"patterns\": [\n \"Claude-User\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"botify-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"botify-crawler\",\n \"patterns\": [\n \"botify\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"bytedance-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"Bytespider\",\n \"patterns\": [\n \"Bytespider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ccbot-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"CCBot\",\n \"patterns\": [\n \"CCBot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cohere-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"cohere-crawler\",\n \"patterns\": [\n \"cohere-ai\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"diffbot-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"diffbot-crawler\",\n \"patterns\": [\n \"Diffbot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"friendlycrawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"friendlycrawler\",\n \"patterns\": [\n \"FriendlyCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"glutenfreepleasure-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"glutenfreepleasure-crawler\",\n \"patterns\": [\n \"Gluten Free Crawler\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"imagesift-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"imagesift-crawler\",\n \"patterns\": [\n \"ImagesiftBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"infegy-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"infegy-crawler\",\n \"patterns\": [\n \"collection@infegy\\\\.com\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"integralads-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"integralads-crawler\",\n \"patterns\": [\n \"IAS crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"leadcrunch-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"leadcrunch-crawler\",\n \"patterns\": [\n \"CrunchBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"mediatoolkit-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"mediatoolkit-crawler\",\n \"patterns\": [\n \"Mediatoolkitbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"meta-externalagent\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"Meta AI\",\n \"patterns\": [\n \"meta-externalagent\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ntent-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"ntent-crawler\",\n \"patterns\": [\n \"NTENTbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"omgili-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"omgili-crawler\",\n \"patterns\": [\n \"omgili\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"openai-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"GPTBot\",\n \"patterns\": [\n \"GPTBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"openai-crawler-user\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"ChatGPTUser\",\n \"patterns\": [\n \"ChatGPT-User\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"perplexity-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"PerplexityBot\",\n \"patterns\": [\n \"PerplexityBot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"perplexity-user\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"perplexity-user\",\n \"patterns\": [\n \"Perplexity-User\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"primal-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"primal-crawler\",\n \"patterns\": [\n \"Primalbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"sbintuitions-bot\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"sbintuitions-bot\",\n \"patterns\": [\n \"SBIntuitionsBot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"searchatlas-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"searchatlas-crawler\",\n \"patterns\": [\n \"SearchAtlas\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"sentione-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"sentione-crawler\",\n \"patterns\": [\n \"SentiBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"storygize-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"storygize-crawler\",\n \"patterns\": [\n \"StorygizeBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"timpi-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"timpi-crawler\",\n \"patterns\": [\n \"Timpibot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"velen-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"velen-crawler\",\n \"patterns\": [\n \"VelenPublicWebCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"webzio-crawler-ai\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"webzio-crawler-ai\",\n \"patterns\": [\n \"webzio-extended\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"you-crawler\",\n \"category\": \"AI_CRAWLER\",\n \"name\": \"you-crawler\",\n \"patterns\": [\n \"YouBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cypress\",\n \"category\": \"AUTOMATED\",\n \"name\": \"Cypress\",\n \"patterns\": [\n \"[Cc]ypress\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"fake-msie6\",\n \"category\": \"AUTOMATED\",\n \"name\": \"Fake IE6\",\n \"patterns\": [\n \"MSIE 6\\\\.0\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"headless-chrome\",\n \"category\": \"AUTOMATED\",\n \"name\": \"Headless Chrome\",\n \"patterns\": [\n \"HeadlessChrome\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"javascript-phantom\",\n \"category\": \"AUTOMATED\",\n \"name\": \"PhantomJS\",\n \"patterns\": [\n \"PhantomJS\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"playwright\",\n \"category\": \"AUTOMATED\",\n \"name\": \"Playwright\",\n \"patterns\": [\n \"[Pp]laywright\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"puppeteer\",\n \"category\": \"AUTOMATED\",\n \"name\": \"Puppeteer\",\n \"patterns\": [\n \"[Pp]uppeteer\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"selenium\",\n \"category\": \"AUTOMATED\",\n \"name\": \"Selenium\",\n \"patterns\": [\n \"[Ss]elenium\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"webdriver\",\n \"category\": \"AUTOMATED\",\n \"name\": \"WebDriver\",\n \"patterns\": [\n \"[Ww]ebdriver\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"amazon-route53-health-check\",\n \"category\": \"MONITORING\",\n \"name\": \"amazon-route53-health-check\",\n \"patterns\": [\n \"Amazon Route 53 Health Check Service\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"azure-app-insights\",\n \"category\": \"MONITORING\",\n \"name\": \"azure-app-insights\",\n \"patterns\": [\n \"AppInsights\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"betterstack-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"betterstack-monitor\",\n \"patterns\": [\n \"Better Stack\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"betteruptime-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"betteruptime-monitor\",\n \"patterns\": [\n \"Better Uptime Bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"brandverity-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"brandverity-crawler\",\n \"patterns\": [\n \"BrandVerity\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"censys-inspect\",\n \"category\": \"MONITORING\",\n \"name\": \"censys-inspect\",\n \"patterns\": [\n \"CensysInspect\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"changedetection-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"changedetection-crawler\",\n \"patterns\": [\n \"changedetection\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"checkly-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"checkly-monitor\",\n \"patterns\": [\n \"Checkly\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cloudflare-healthchecks\",\n \"category\": \"MONITORING\",\n \"name\": \"cloudflare-healthchecks\",\n \"patterns\": [\n \"Cloudflare-Healthchecks\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cloudflare-security-center\",\n \"category\": \"MONITORING\",\n \"name\": \"cloudflare-security-center\",\n \"patterns\": [\n \"https:\\\\/\\\\/developers\\\\.cloudflare\\\\.com\\\\/security-center\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cloudflare-ssl-detector\",\n \"category\": \"MONITORING\",\n \"name\": \"cloudflare-ssl-detector\",\n \"patterns\": [\n \"Cloudflare-SSLDetector\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cloudflare-traffic-manager\",\n \"category\": \"MONITORING\",\n \"name\": \"cloudflare-traffic-manager\",\n \"patterns\": [\n \"Cloudflare-Traffic-Manager\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"datadog-monitor-synthetics\",\n \"category\": \"MONITORING\",\n \"name\": \"Datadog\",\n \"patterns\": [\n \"Datadog\\\\/{0,1}Synthetics\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"deadlinkchecker\",\n \"category\": \"MONITORING\",\n \"name\": \"deadlinkchecker\",\n \"patterns\": [\n \"deadlinkchecker\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"disqus-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"disqus-crawler\",\n \"patterns\": [\n \"Disqus\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"dubbot-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"dubbot-crawler\",\n \"patterns\": [\n \"Dubbotbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"dynatrace-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"dynatrace-monitor\",\n \"patterns\": [\n \"RuxitSynthetic\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"freewebmonitoring-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"freewebmonitoring-monitor\",\n \"patterns\": [\n \"FreeWebMonitoring SiteChecker\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"freshworks-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"freshworks-monitor\",\n \"patterns\": [\n \"FreshpingBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-certificates-bridge\",\n \"category\": \"MONITORING\",\n \"name\": \"google-certificates-bridge\",\n \"patterns\": [\n \"Google-Certificates-Bridge\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-site-verification\",\n \"category\": \"MONITORING\",\n \"name\": \"google-site-verification\",\n \"patterns\": [\n \"Google-Site-Verification\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-structured-data-testing-tool\",\n \"category\": \"MONITORING\",\n \"name\": \"google-structured-data-testing-tool\",\n \"patterns\": [\n \"Google-Structured-Data-Testing-Tool\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"hubspot-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"HubSpotBot\",\n \"patterns\": [\n \"HubSpot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"hydrozen-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"hydrozen-monitor\",\n \"patterns\": [\n \"Hydrozen\\\\.io\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"kuma-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"kuma-monitor\",\n \"patterns\": [\n \"Uptime-Kuma\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"monitorbacklinks-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"monitorbacklinks-crawler\",\n \"patterns\": [\n \"MBCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"newrelic-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"newrelic-monitor\",\n \"patterns\": [\n \"NewRelicbot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"nixstats-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"nixstats-crawler\",\n \"patterns\": [\n \"NIXStatsbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"outbrain-link-checker\",\n \"category\": \"MONITORING\",\n \"name\": \"outbrain-link-checker\",\n \"patterns\": [\n \"outbrain\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"pingdom-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"Pingdom\",\n \"patterns\": [\n \"[pP]ingdom\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"safedns-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"safedns-crawler\",\n \"patterns\": [\n \"SafeDNSBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"sentry-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"sentry-crawler\",\n \"patterns\": [\n \"(^| )sentry\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"sentry-uptime-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"sentry-uptime-monitor\",\n \"patterns\": [\n \"SentryUptimeBot\\\\/1\\\\.0\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"statuscake-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"statuscake-monitor\",\n \"patterns\": [\n \"StatusCake\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"surly-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"surly-crawler\",\n \"patterns\": [\n \"SurdotlyBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"testomato-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"testomato-crawler\",\n \"patterns\": [\n \"minicrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"uptime-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"uptime-monitor\",\n \"patterns\": [\n \"www\\\\.uptime\\\\.com\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"uptimebot-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"uptimebot-monitor\",\n \"patterns\": [\n \"Uptimebot\\\\.org\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"uptimerobot-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"UptimeRobot\",\n \"patterns\": [\n \"UptimeRobot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"w3c-validator-css\",\n \"category\": \"MONITORING\",\n \"name\": \"w3c-validator-css\",\n \"patterns\": [\n \"W3C_CSS_Validator\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"w3c-validator-feed\",\n \"category\": \"MONITORING\",\n \"name\": \"w3c-validator-feed\",\n \"patterns\": [\n \"FeedValidator\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"w3c-validator-html\",\n \"category\": \"MONITORING\",\n \"name\": \"w3c-validator-html\",\n \"patterns\": [\n \"W3C_Validator\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"w3c-validator-html-nu\",\n \"category\": \"MONITORING\",\n \"name\": \"w3c-validator-html-nu\",\n \"patterns\": [\n \"Validator\\\\.nu\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"w3c-validator-i18n\",\n \"category\": \"MONITORING\",\n \"name\": \"w3c-validator-i18n\",\n \"patterns\": [\n \"W3C_I18n-Checker\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"w3c-validator-links\",\n \"category\": \"MONITORING\",\n \"name\": \"w3c-validator-links\",\n \"patterns\": [\n \"W3C-checklink\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"w3c-validator-mobile\",\n \"category\": \"MONITORING\",\n \"name\": \"w3c-validator-mobile\",\n \"patterns\": [\n \"W3C-mobileOK\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"w3c-validator-unified\",\n \"category\": \"MONITORING\",\n \"name\": \"w3c-validator-unified\",\n \"patterns\": [\n \"W3C_Unicorn\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"webpagetest-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"webpagetest-crawler\",\n \"patterns\": [\n \"(^| )PTST\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"xenu-crawler\",\n \"category\": \"MONITORING\",\n \"name\": \"xenu-crawler\",\n \"patterns\": [\n \"Xenu Link Sleuth\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"zabbix-monitor\",\n \"category\": \"MONITORING\",\n \"name\": \"zabbix-monitor\",\n \"patterns\": [\n \"Zabbix\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"academicbot-rtu\",\n \"category\": \"SCRAPER\",\n \"name\": \"academicbot-rtu\",\n \"patterns\": [\n \"AcademicBotRTU\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"adagio-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"adagio-crawler\",\n \"patterns\": [\n \"Adagiobot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ahrefs-site-audit\",\n \"category\": \"SCRAPER\",\n \"name\": \"ahrefs-site-audit\",\n \"patterns\": [\n \"AhrefsSiteAudit\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"blackboard-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"blackboard-crawler\",\n \"patterns\": [\n \"Blackboard\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cispa-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"cispa-crawler\",\n \"patterns\": [\n \"CISPA Webcrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cloudflare-prefetch\",\n \"category\": \"SCRAPER\",\n \"name\": \"cloudflare-prefetch\",\n \"patterns\": [\n \"CloudFlare-Prefetch\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"coda-server-fetcher\",\n \"category\": \"SCRAPER\",\n \"name\": \"coda-server-fetcher\",\n \"patterns\": [\n \"Coda-Server-Fetcher\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"conductor-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"conductor-crawler\",\n \"patterns\": [\n \"Caliperbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cookiehub-scan\",\n \"category\": \"SCRAPER\",\n \"name\": \"cookiehub-scan\",\n \"patterns\": [\n \"CookieHubScan\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"curl\",\n \"category\": \"SCRAPER\",\n \"name\": \"curl\",\n \"patterns\": [\n \"^curl\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"dareboost-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"dareboost-crawler\",\n \"patterns\": [\n \"DareBoost\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"dcrawl\",\n \"category\": \"SCRAPER\",\n \"name\": \"dcrawl\",\n \"patterns\": [\n \"dcrawl\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"domainsproject-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"domainsproject-crawler\",\n \"patterns\": [\n \"Domains Project\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"epfl-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"epfl-crawler\",\n \"patterns\": [\n \"A Patent Crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"gigablast-crawler-oss\",\n \"category\": \"SCRAPER\",\n \"name\": \"gigablast-crawler-oss\",\n \"patterns\": [\n \"Gigablast\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"go-http\",\n \"category\": \"SCRAPER\",\n \"name\": \"Go-http-client\",\n \"patterns\": [\n \"Go-http-client\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"got\",\n \"category\": \"SCRAPER\",\n \"name\": \"got\",\n \"patterns\": [\n \"sindresorhus\\\\/got\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"gowiki-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"gowiki-crawler\",\n \"patterns\": [\n \"Gowikibot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"http-get\",\n \"category\": \"SCRAPER\",\n \"name\": \"http-get\",\n \"patterns\": [\n \"http_get\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"httpie\",\n \"category\": \"SCRAPER\",\n \"name\": \"HTTPie\",\n \"patterns\": [\n \"^HTTPie\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"img2dataset\",\n \"category\": \"SCRAPER\",\n \"name\": \"img2dataset\",\n \"patterns\": [\n \"img2dataset\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"insomnia\",\n \"category\": \"SCRAPER\",\n \"name\": \"Insomnia\",\n \"patterns\": [\n \"^[iI]nsomnia\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ipip-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"ipip-crawler\",\n \"patterns\": [\n \"HTTP Banner Detection\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"java-apache-httpclient\",\n \"category\": \"SCRAPER\",\n \"name\": \"Apache HttpClient\",\n \"patterns\": [\n \"^Apache-HttpClient\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"java-asynchttpclient\",\n \"category\": \"SCRAPER\",\n \"name\": \"java-asynchttpclient\",\n \"patterns\": [\n \"AHC\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"java-crawler4j\",\n \"category\": \"SCRAPER\",\n \"name\": \"java-crawler4j\",\n \"patterns\": [\n \"crawler4j\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"java-httpunit\",\n \"category\": \"SCRAPER\",\n \"name\": \"java-httpunit\",\n \"patterns\": [\n \"httpunit\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"java-jersey\",\n \"category\": \"SCRAPER\",\n \"name\": \"java-jersey\",\n \"patterns\": [\n \"HttpUrlConnection\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"java-jetty\",\n \"category\": \"SCRAPER\",\n \"name\": \"java-jetty\",\n \"patterns\": [\n \"Jetty\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"java-okhttp\",\n \"category\": \"SCRAPER\",\n \"name\": \"OkHttp\",\n \"patterns\": [\n \"okhttp\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"java-snacktory\",\n \"category\": \"SCRAPER\",\n \"name\": \"java-snacktory\",\n \"patterns\": [\n \"Snacktory\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"java-stdlib\",\n \"category\": \"SCRAPER\",\n \"name\": \"Java HttpClient\",\n \"patterns\": [\n \"^Java\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"javascript-axios\",\n \"category\": \"SCRAPER\",\n \"name\": \"axios\",\n \"patterns\": [\n \"axios\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"javascript-node-fetch\",\n \"category\": \"SCRAPER\",\n \"name\": \"node-fetch\",\n \"patterns\": [\n \"node-fetch\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"l9explore\",\n \"category\": \"SCRAPER\",\n \"name\": \"l9explore\",\n \"patterns\": [\n \"l9explore\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"law-unimi-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"law-unimi-crawler\",\n \"patterns\": [\n \"BUbiNG\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"leipzig-findlinks\",\n \"category\": \"SCRAPER\",\n \"name\": \"leipzig-findlinks\",\n \"patterns\": [\n \"findlink\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"leipzig-lcc\",\n \"category\": \"SCRAPER\",\n \"name\": \"leipzig-lcc\",\n \"patterns\": [\n \"^LCC \"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"macocu-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"macocu-crawler\",\n \"patterns\": [\n \"MaCoCu\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"moat-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"moat-crawler\",\n \"patterns\": [\n \"moatbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"monsido-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"monsido-crawler\",\n \"patterns\": [\n \"Monsidobot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"moz-site-audit\",\n \"category\": \"SCRAPER\",\n \"name\": \"RogerBot\",\n \"patterns\": [\n \"rogerbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"nagios-check-http\",\n \"category\": \"SCRAPER\",\n \"name\": \"nagios-check-http\",\n \"patterns\": [\n \"check_http\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"nict-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"nict-crawler\",\n \"patterns\": [\n \"ICC-Crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"nmap\",\n \"category\": \"SCRAPER\",\n \"name\": \"nmap\",\n \"patterns\": [\n \"Nmap Scripting Engine\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"nutch\",\n \"category\": \"SCRAPER\",\n \"name\": \"nutch\",\n \"patterns\": [\n \"Nutch\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"oncrawl\",\n \"category\": \"SCRAPER\",\n \"name\": \"oncrawl\",\n \"patterns\": [\n \"OnCrawl\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"perl-libwww\",\n \"category\": \"SCRAPER\",\n \"name\": \"libwww-perl\",\n \"patterns\": [\n \"libwww-perl\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"perl-pcore\",\n \"category\": \"SCRAPER\",\n \"name\": \"perl-pcore\",\n \"patterns\": [\n \"Pcore-HTTP\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"php-curlclass\",\n \"category\": \"SCRAPER\",\n \"name\": \"php-curlclass\",\n \"patterns\": [\n \"^PHP-Curl-Class\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"php-phpcrawl\",\n \"category\": \"SCRAPER\",\n \"name\": \"php-phpcrawl\",\n \"patterns\": [\n \"phpcrawl\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"php-simple-scraper\",\n \"category\": \"SCRAPER\",\n \"name\": \"php-simple-scraper\",\n \"patterns\": [\n \"SimpleScraper\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"php-simplepie\",\n \"category\": \"SCRAPER\",\n \"name\": \"php-simplepie\",\n \"patterns\": [\n \"SimplePie\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"php-ua\",\n \"category\": \"SCRAPER\",\n \"name\": \"PHP\",\n \"patterns\": [\n \"^PHP\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"postman\",\n \"category\": \"SCRAPER\",\n \"name\": \"Postman\",\n \"patterns\": [\n \"PostmanRuntime\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"postman-loose\",\n \"category\": \"SCRAPER\",\n \"name\": \"Postman\",\n \"patterns\": [\n \"^Postman[ /]\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"python-aiohttp\",\n \"category\": \"SCRAPER\",\n \"name\": \"python-aiohttp\",\n \"patterns\": [\n \"aiohttp\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"python-bitbot\",\n \"category\": \"SCRAPER\",\n \"name\": \"python-bitbot\",\n \"patterns\": [\n \"BitBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"python-httpx\",\n \"category\": \"SCRAPER\",\n \"name\": \"python-httpx\",\n \"patterns\": [\n \"httpx\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"python-opengraph\",\n \"category\": \"SCRAPER\",\n \"name\": \"python-opengraph\",\n \"patterns\": [\n \"python-opengraph\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"python-requests\",\n \"category\": \"SCRAPER\",\n \"name\": \"python-requests\",\n \"patterns\": [\n \"python-requests\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"python-scrapy\",\n \"category\": \"SCRAPER\",\n \"name\": \"Scrapy\",\n \"patterns\": [\n \"Scrapy\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"python-urllib\",\n \"category\": \"SCRAPER\",\n \"name\": \"python-urllib\",\n \"patterns\": [\n \"Python-urllib\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"quantcast-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"quantcast-crawler\",\n \"patterns\": [\n \"Quantcastbot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ruby\",\n \"category\": \"SCRAPER\",\n \"name\": \"Ruby\",\n \"patterns\": [\n \"^Ruby\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ruby-metainspector\",\n \"category\": \"SCRAPER\",\n \"name\": \"ruby-metainspector\",\n \"patterns\": [\n \"MetaInspector\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"screamingfrog-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"screamingfrog-crawler\",\n \"patterns\": [\n \"Screaming Frog SEO Spider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"semanticscholar-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"SemanticScholarBot\",\n \"patterns\": [\n \"SemanticScholarBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"sistrix-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"sistrix-crawler\",\n \"patterns\": [\n \"(sistrix|SISTRIX) [cC]rawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"sitebulb\",\n \"category\": \"SCRAPER\",\n \"name\": \"sitebulb\",\n \"patterns\": [\n \"sitebulb\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"stripe-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"stripe-crawler\",\n \"patterns\": [\n \"Stripebot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"summaly-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"summaly-crawler\",\n \"patterns\": [\n \"SummalyBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"turnitin-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"turnitin-crawler\",\n \"patterns\": [\n \"Turnitin\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"utexas-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"utexas-crawler\",\n \"patterns\": [\n \"UT-Dorkbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"wget\",\n \"category\": \"SCRAPER\",\n \"name\": \"wget\",\n \"patterns\": [\n \"[wW]get\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"yamanalab-crawler\",\n \"category\": \"SCRAPER\",\n \"name\": \"yamanalab-crawler\",\n \"patterns\": [\n \"Sonic\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"yext-bot\",\n \"category\": \"SCRAPER\",\n \"name\": \"yext-bot\",\n \"patterns\": [\n \"YextBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"zgrab\",\n \"category\": \"SCRAPER\",\n \"name\": \"zgrab\",\n \"patterns\": [\n \"zgrab\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"addsearch-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"addsearch-crawler\",\n \"patterns\": [\n \"AddSearchBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ahrefs-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"AhrefsBot\",\n \"patterns\": [\n \"AhrefsBot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"alexandria-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"alexandria-crawler\",\n \"patterns\": [\n \"AlexandriaOrgBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"algolia-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"algolia-crawler\",\n \"patterns\": [\n \"Algolia Crawler\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"amazon-adbot\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"amazon-adbot\",\n \"patterns\": [\n \"AmazonAdBot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"amazon-alexa-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"amazon-alexa-crawler\",\n \"patterns\": [\n \"exabot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"amazon-cloudfront\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"amazon-cloudfront\",\n \"patterns\": [\n \"Amazon CloudFront\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"amazon-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"AmazonBot\",\n \"patterns\": [\n \"Amazonbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"apple-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"Applebot\",\n \"patterns\": [\n \"Applebot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"apple-feedfetcher\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"apple-feedfetcher\",\n \"patterns\": [\n \"i[Tt][Mm][Ss]\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"archiveorg-archiver\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"ArchiveOrgBot\",\n \"patterns\": [\n \"archive\\\\.org_bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ask-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"ask-crawler\",\n \"patterns\": [\n \"Teoma\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"avira-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"avira-crawler\",\n \"patterns\": [\n \"SafeSearch microdata crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"awario-crawler-rss\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"awario-crawler-rss\",\n \"patterns\": [\n \"AwarioRssBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"baidu-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"Baiduspider\",\n \"patterns\": [\n \"Baiduspider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"bazqux-feedfetcher\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"bazqux-feedfetcher\",\n \"patterns\": [\n \"BazQux\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"bing-ads\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"bing-ads\",\n \"patterns\": [\n \"Adidxbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"bing-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"Bingbot\",\n \"patterns\": [\n \"bingbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"bing-office-store\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"bing-office-store\",\n \"patterns\": [\n \"officestorebot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"blogtraffic-feedfetcher\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"blogtraffic-feedfetcher\",\n \"patterns\": [\n \"BlogTraffic\\\\/\\\\d\\\\.\\\\d+ Feed-Fetcher\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cloudflare-archiver\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"cloudflare-archiver\",\n \"patterns\": [\n \"CloudFlare-AlwaysOnline\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"commoncrawl-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"CommonCrawlBot\",\n \"patterns\": [\n \"CCBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"duckduckgo-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"DuckDuckBot\",\n \"patterns\": [\n \"DuckDuckBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"entireweb-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"entireweb-crawler\",\n \"patterns\": [\n \"speedy\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ezid-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"ezid-crawler\",\n \"patterns\": [\n \"EZID\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"feedbin-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"feedbin-crawler\",\n \"patterns\": [\n \"Feedbin\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"feedly-feedfetcher\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"feedly-feedfetcher\",\n \"patterns\": [\n \"Feedly\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"feedspot-feedfetcher\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"feedspot-feedfetcher\",\n \"patterns\": [\n \"Feedspot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"freshrss-feedfetcher\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"freshrss-feedfetcher\",\n \"patterns\": [\n \"FreshRSS\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"g2reader-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"g2reader-crawler\",\n \"patterns\": [\n \"g2reader-bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"geedo-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"geedo-crawler\",\n \"patterns\": [\n \"GeedoBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"geedo-crawler-products\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"geedo-crawler-products\",\n \"patterns\": [\n \"GeedoProductSearch\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-ads-conversions\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-ads-conversions\",\n \"patterns\": [\n \"Google-Ads-Conversions\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-adsbot\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"AdsBotGoogle\",\n \"patterns\": [\n \"AdsBot-Google([^-]|$)\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-adsbot-mobile\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"GoogleAdsBot\",\n \"patterns\": [\n \"AdsBot-Google-Mobile\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-adsense\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"MediapartnersGoogle\",\n \"patterns\": [\n \"Mediapartners-Google\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-adsense-googlebot\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-adsense-googlebot\",\n \"patterns\": [\n \"Mediapartners \\\\(Googlebot\\\\)\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-adwords\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-adwords\",\n \"patterns\": [\n \"Google-Adwords-Instant\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-appengine\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-appengine\",\n \"patterns\": [\n \"AppEngine-Google\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"Googlebot\",\n \"patterns\": [\n \"Googlebot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-crawler-cloudvertex\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-crawler-cloudvertex\",\n \"patterns\": [\n \"Google-CloudVertexBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-crawler-image\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"Googlebot-Image\",\n \"patterns\": [\n \"Googlebot-Image\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-crawler-mobile\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-crawler-mobile\",\n \"patterns\": [\n \"Googlebot-Mobile\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-crawler-news\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"Googlebot-News\",\n \"patterns\": [\n \"Googlebot-News\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-crawler-other\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-crawler-other\",\n \"patterns\": [\n \"GoogleOther\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-crawler-safety\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-crawler-safety\",\n \"patterns\": [\n \"Google-Safety\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-crawler-store\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"StorebotGoogle\",\n \"patterns\": [\n \"Storebot-Google\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-crawler-video\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"Googlebot-Video\",\n \"patterns\": [\n \"Googlebot-Video\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-feedfetcher\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-feedfetcher\",\n \"patterns\": [\n \"Feedfetcher-Google\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-inspection-tool\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-inspection-tool\",\n \"patterns\": [\n \"Google-InspectionTool\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-lighthouse\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-lighthouse\",\n \"patterns\": [\n \"Chrome-Lighthouse\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-physical-web\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-physical-web\",\n \"patterns\": [\n \"Google-PhysicalWeb\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-push-notifications\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"APIsGoogle\",\n \"patterns\": [\n \"APIs-Google\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-read-aloud\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-read-aloud\",\n \"patterns\": [\n \"Google-Read-Aloud\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-xrawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"google-xrawler\",\n \"patterns\": [\n \"google-xrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"iask-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"iask-crawler\",\n \"patterns\": [\n \"iaskspider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"inoreader-aggregator\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"inoreader-aggregator\",\n \"patterns\": [\n \"inoreader\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"internetarchive-crawler-oss\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"internetarchive-crawler-oss\",\n \"patterns\": [\n \"heritrix\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"linguee-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"linguee-crawler\",\n \"patterns\": [\n \"Linguee Bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"majestic-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"majestic-crawler\",\n \"patterns\": [\n \"MJ12bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"marginalia-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"marginalia-crawler\",\n \"patterns\": [\n \"search\\\\.marginalia\\\\.nu\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"meta-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"meta-crawler\",\n \"patterns\": [\n \"[Mm]eta-[Ee]xternal[Aa]gent\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"meta-externalads\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"meta-externalads\",\n \"patterns\": [\n \"meta-externalads\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"microsoft-research-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"microsoft-research-crawler\",\n \"patterns\": [\n \"msrbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"miniflux-feedfetcher\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"miniflux-feedfetcher\",\n \"patterns\": [\n \"Miniflux\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"mojeek-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"mojeek-crawler\",\n \"patterns\": [\n \"MojeekBot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"msn-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"MsnBot\",\n \"patterns\": [\n \"msnbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"naver-crawler-rss\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"naver-crawler-rss\",\n \"patterns\": [\n \"NAVER Blog Rssbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"netestate-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"netestate-crawler\",\n \"patterns\": [\n \"netEstate NE Crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"newsblur-aggregator\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"newsblur-aggregator\",\n \"patterns\": [\n \"NewsBlur\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"nicecrawler-archive\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"nicecrawler-archive\",\n \"patterns\": [\n \"Nicecrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"openai-crawler-search\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"OAISearchBot\",\n \"patterns\": [\n \"OAI-SearchBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"petalsearch-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"petalsearch-crawler\",\n \"patterns\": [\n \"PetalBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"pipl-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"pipl-crawler\",\n \"patterns\": [\n \"PiplBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"pocket-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"pocket-crawler\",\n \"patterns\": [\n \"PocketParser\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"qwant-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"qwant-crawler\",\n \"patterns\": [\n \"Qwantify\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"refind-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"refind-crawler\",\n \"patterns\": [\n \"Refindbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"rssbot-feedfetcher\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"rssbot-feedfetcher\",\n \"patterns\": [\n \"rssbot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"rssing-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"rssing-crawler\",\n \"patterns\": [\n \"RSSingBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"rssmicro-feedfetcher\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"rssmicro-feedfetcher\",\n \"patterns\": [\n \"Atom Feed Robot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"seekport-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"seekport-crawler\",\n \"patterns\": [\n \"Seekport\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"serendeputy-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"serendeputy-crawler\",\n \"patterns\": [\n \"SerendeputyBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"startme-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"startme-crawler\",\n \"patterns\": [\n \"startmebot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"stract-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"stract-crawler\",\n \"patterns\": [\n \"StractBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"superfeedr-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"superfeedr-crawler\",\n \"patterns\": [\n \"Superfeedr\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"theoldreader-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"theoldreader-crawler\",\n \"patterns\": [\n \"theoldreader\\\\.com\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ttrss-feedfetcher\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"ttrss-feedfetcher\",\n \"patterns\": [\n \"Tiny Tiny RSS\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"webarchive-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"webarchive-crawler\",\n \"patterns\": [\n \"web-archive-net\\\\.com\\\\.bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"webzio-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"webzio-crawler\",\n \"patterns\": [\n \"webzio\\\\s\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"wellknown-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"wellknown-crawler\",\n \"patterns\": [\n \"WellKnownBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"wordpress-crawler-rss\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"wordpress-crawler-rss\",\n \"patterns\": [\n \"feedbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"yacy-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"yacy-crawler\",\n \"patterns\": [\n \"yacybot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"yahoo-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"SlurpBot\",\n \"patterns\": [\n \"Slurp\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"yahoo-crawler-japan\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"yahoo-crawler-japan\",\n \"patterns\": [\n \"Y!J\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"yandex-crawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"YandexBot\",\n \"patterns\": [\n \"yandex\\\\.com\\\\/bots\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"yandex-crawler-javascript\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"yandex-crawler-javascript\",\n \"patterns\": [\n \"YandexRenderResourcesBot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"yandex-loose\",\n \"category\": \"SEARCH_ENGINE\",\n \"name\": \"YandexBot\",\n \"patterns\": [\n \"YandexBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"adyen-webhook\",\n \"category\": \"SOCIAL\",\n \"name\": \"adyen-webhook\",\n \"patterns\": [\n \"Adyen HttpClient\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"bing-preview\",\n \"category\": \"SOCIAL\",\n \"name\": \"BingPreviewBot\",\n \"patterns\": [\n \"BingPreview\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"bitly-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"bitly-crawler\",\n \"patterns\": [\n \"bitlybot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"digg-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"digg-crawler\",\n \"patterns\": [\n \"Digg Deeper\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"discord-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"Discordbot\",\n \"patterns\": [\n \"Discordbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"duckduckgo-crawler-favicons\",\n \"category\": \"SOCIAL\",\n \"name\": \"duckduckgo-crawler-favicons\",\n \"patterns\": [\n \"DuckDuckGo-Favicons-Bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"embedly-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"EmbedlyBot\",\n \"patterns\": [\n \"Embedly\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"everyonesocial-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"everyonesocial-crawler\",\n \"patterns\": [\n \"EveryoneSocialBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"facebook-catalog\",\n \"category\": \"SOCIAL\",\n \"name\": \"facebook-catalog\",\n \"patterns\": [\n \"facebookcatalog\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"facebook-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"FacebookBot\",\n \"patterns\": [\n \"Face(book){0,1}[Bb]ot\"\n ],\n \"forbidden\": [\n \"facebookexternalhit\",\n \"Twitterbot\"\n ]\n },\n {\n \"id\": \"facebook-share-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"Facebook\",\n \"patterns\": [\n \"facebookexternalhit\"\n ],\n \"forbidden\": [\n \"Twitterbot\",\n \"Facebot\"\n ]\n },\n {\n \"id\": \"flipboard-proxy\",\n \"category\": \"SOCIAL\",\n \"name\": \"flipboard-proxy\",\n \"patterns\": [\n \"FlipboardProxy\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-favicon\",\n \"category\": \"SOCIAL\",\n \"name\": \"google-favicon\",\n \"patterns\": [\n \"Google Favicon\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-preview\",\n \"category\": \"SOCIAL\",\n \"name\": \"google-preview\",\n \"patterns\": [\n \"Google Web Preview\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"google-web-snippet\",\n \"category\": \"SOCIAL\",\n \"name\": \"google-web-snippet\",\n \"patterns\": [\n \"developers\\\\.google\\\\.com\\\\/\\\\+\\\\/web\\\\/snippet\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"groupme-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"groupme-crawler\",\n \"patterns\": [\n \"GroupMeBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"iframely-preview\",\n \"category\": \"SOCIAL\",\n \"name\": \"iframely-preview\",\n \"patterns\": [\n \"Iframely\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"imessage-preview\",\n \"category\": \"SOCIAL\",\n \"name\": \"imessage-preview\",\n \"patterns\": [\n \"facebookexternalhit\",\n \"Twitterbot\",\n \"Facebot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"irc-archivebot\",\n \"category\": \"SOCIAL\",\n \"name\": \"ArchiveBot\",\n \"patterns\": [\n \"ArchiveBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"keybase-bot\",\n \"category\": \"SOCIAL\",\n \"name\": \"keybase-bot\",\n \"patterns\": [\n \"KeybaseBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"lemmy-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"lemmy-crawler\",\n \"patterns\": [\n \"Lemmy\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"linkarchiver\",\n \"category\": \"SOCIAL\",\n \"name\": \"linkarchiver\",\n \"patterns\": [\n \"LinkArchiver\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"linkedin-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"LinkedInBot\",\n \"patterns\": [\n \"LinkedInBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"mastodon-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"MastodonBot\",\n \"patterns\": [\n \"Mastodon\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"meta-crawler-user\",\n \"category\": \"SOCIAL\",\n \"name\": \"meta-crawler-user\",\n \"patterns\": [\n \"meta-externalfetcher\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"microsoft-preview\",\n \"category\": \"SOCIAL\",\n \"name\": \"microsoft-preview\",\n \"patterns\": [\n \"MicrosoftPreview\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"neticle-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"neticle-crawler\",\n \"patterns\": [\n \"Neticle Crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"pagepeeker-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"pagepeeker-crawler\",\n \"patterns\": [\n \"PagePeeker\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"pinterest-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"pinterest-crawler\",\n \"patterns\": [\n \"Pinterest(bot)?\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"pintrest-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"PinterestBot\",\n \"patterns\": [\n \"pinterest\\\\.com\\\\/bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"reddit-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"RedditBot\",\n \"patterns\": [\n \"redditbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"skype-preview\",\n \"category\": \"SOCIAL\",\n \"name\": \"skype-preview\",\n \"patterns\": [\n \"SkypeUriPreview\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"slack-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"Slackbot\",\n \"patterns\": [\n \"Slackbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"slack-image-proxy\",\n \"category\": \"SOCIAL\",\n \"name\": \"slack-image-proxy\",\n \"patterns\": [\n \"Slack-ImgProxy\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"snap-preview\",\n \"category\": \"SOCIAL\",\n \"name\": \"snap-preview\",\n \"patterns\": [\n \"Snap URL Preview Service\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"steam-preview\",\n \"category\": \"SOCIAL\",\n \"name\": \"ValveSteamBot\",\n \"patterns\": [\n \"Valve\\\\/Steam\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"stripe-webhook\",\n \"category\": \"SOCIAL\",\n \"name\": \"stripe-webhook\",\n \"patterns\": [\n \"Stripe\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"synapse-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"synapse-crawler\",\n \"patterns\": [\n \"Synapse\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"telegram-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"TelegramBot\",\n \"patterns\": [\n \"TelegramBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"tiktok-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"tiktok-crawler\",\n \"patterns\": [\n \"TikTokSpider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"trendsmap-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"trendsmap-crawler\",\n \"patterns\": [\n \"TrendsmapResolver\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"tweetedtimes-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"tweetedtimes-crawler\",\n \"patterns\": [\n \"tweetedtimes\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"twitter-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"Twitterbot\",\n \"patterns\": [\n \"Twitterbot\"\n ],\n \"forbidden\": [\n \"facebookexternalhit\",\n \"Facebot\"\n ]\n },\n {\n \"id\": \"vercel-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"vercel-crawler\",\n \"patterns\": [\n \"Vercelbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"vercel-monitor-preview\",\n \"category\": \"SOCIAL\",\n \"name\": \"vercel-monitor-preview\",\n \"patterns\": [\n \"vercel-screenshot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"viber-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"ViberBot\",\n \"patterns\": [\n \"Viber\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"whatsapp-crawler\",\n \"category\": \"SOCIAL\",\n \"name\": \"WhatsApp\",\n \"patterns\": [\n \"WhatsApp\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"yahoo-preview\",\n \"category\": \"SOCIAL\",\n \"name\": \"yahoo-preview\",\n \"patterns\": [\n \"Yahoo Link Preview\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"a6corp-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"a6corp-crawler\",\n \"patterns\": [\n \"A6-Indexer\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"aboundex-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"aboundex-crawler\",\n \"patterns\": [\n \"Aboundex\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"acapbot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"acapbot\",\n \"patterns\": [\n \"acapbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"acoon-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"acoon-crawler\",\n \"patterns\": [\n \"acoonbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"adbeat-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"adbeat-crawler\",\n \"patterns\": [\n \"adbeat_bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"addthis-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"addthis-crawler\",\n \"patterns\": [\n \"AddThis\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"admantx-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"admantx-crawler\",\n \"patterns\": [\n \"ADmantX\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"adscanner-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"adscanner-crawler\",\n \"patterns\": [\n \"adscanner\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"adstxtcrawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"adstxtcrawler\",\n \"patterns\": [\n \"AdsTxtCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"advbot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"advbot-crawler\",\n \"patterns\": [\n \"AdvBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"alphaseobot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"alphaseobot-crawler\",\n \"patterns\": [\n \"AlphaBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"anderspink-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"anderspink-crawler\",\n \"patterns\": [\n \"AndersPinkBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"antibot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"antibot\",\n \"patterns\": [\n \"antibot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"apercite-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"apercite-crawler\",\n \"patterns\": [\n \"Apercite\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ara-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ara-crawler\",\n \"patterns\": [\n \"arabot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"araturka-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"araturka-crawler\",\n \"patterns\": [\n \"Bot\\\\.AraTurka\\\\.com\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"arocom-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"arocom-crawler\",\n \"patterns\": [\n \"drupact\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"aspiegel-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"aspiegel-crawler\",\n \"patterns\": [\n \"AspiegelBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"audisto-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"audisto-crawler\",\n \"patterns\": [\n \"Audisto Crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"awario-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"awario-crawler\",\n \"patterns\": [\n \"AwarioBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"awario-crawler-smart\",\n \"category\": \"UNKNOWN\",\n \"name\": \"awario-crawler-smart\",\n \"patterns\": [\n \"AwarioSmartBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"awesomecrawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"awesomecrawler\",\n \"patterns\": [\n \"awesomecrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"b2bbot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"b2bbot\",\n \"patterns\": [\n \"B2B Bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"backlinktest-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"backlinktest-crawler\",\n \"patterns\": [\n \"backlinkcrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"baidu-cloud-watch\",\n \"category\": \"UNKNOWN\",\n \"name\": \"baidu-cloud-watch\",\n \"patterns\": [\n \"Baidu-YunGuanCe\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"betabot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"betabot\",\n \"patterns\": [\n \"betaBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"bidswitch-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"bidswitch-crawler\",\n \"patterns\": [\n \"bidswitchbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"bigdatacorp-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"bigdatacorp-crawler\",\n \"patterns\": [\n \"BDCbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"biglotron\",\n \"category\": \"UNKNOWN\",\n \"name\": \"biglotron\",\n \"patterns\": [\n \"BIGLOTRON\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"binlar\",\n \"category\": \"UNKNOWN\",\n \"name\": \"binlar\",\n \"patterns\": [\n \"binlar\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"bitsight-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"bitsight-crawler\",\n \"patterns\": [\n \"BitSightBot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"blogmura-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"blogmura-crawler\",\n \"patterns\": [\n \"blogmuraBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"blp-bbot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"blp-bbot\",\n \"patterns\": [\n \"BLP_bbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"bnf-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"bnf-crawler\",\n \"patterns\": [\n \"bnf\\\\.fr_bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"bombora-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"bombora-crawler\",\n \"patterns\": [\n \"BomboraBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"boxcar-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"boxcar-crawler\",\n \"patterns\": [\n \"BoxcarBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"brainobot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"brainobot\",\n \"patterns\": [\n \"brainobot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"brandonmedia-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"brandonmedia-crawler\",\n \"patterns\": [\n \"BrandONbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"brandwatch-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"brandwatch-crawler\",\n \"patterns\": [\n \"magpie-crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"brightedge-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"brightedge-crawler\",\n \"patterns\": [\n \"BrightEdge Crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"bublup-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"bublup-crawler\",\n \"patterns\": [\n \"BublupBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"builtwith-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"builtwith-crawler\",\n \"patterns\": [\n \"^BW\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"buzzstream-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"buzzstream-crawler\",\n \"patterns\": [\n \"buzzbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"capsulink-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"capsulink-crawler\",\n \"patterns\": [\n \"CapsuleChecker\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"careerx-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"careerx-crawler\",\n \"patterns\": [\n \"careerbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"centurybot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"centurybot\",\n \"patterns\": [\n \"centurybot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"checkmarknetwork-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"checkmarknetwork-crawler\",\n \"patterns\": [\n \"CheckMarkNetwork\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"chlooe-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"chlooe-crawler\",\n \"patterns\": [\n \"bot-pge\\\\.chlooe\\\\.com\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cincrawdata-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"cincrawdata-crawler\",\n \"patterns\": [\n \"Cincraw\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"citeseerx-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"citeseerx-crawler\",\n \"patterns\": [\n \"citeseerxbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"clickagy-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"clickagy-crawler\",\n \"patterns\": [\n \"Clickagy\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cliqz-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"cliqz-crawler\",\n \"patterns\": [\n \"Cliqzbot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cloudsystemnetworks-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"cloudsystemnetworks-crawler\",\n \"patterns\": [\n \"Nimbostratus-Bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"coccoc-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"coccoc-crawler\",\n \"patterns\": [\n \"coccoc\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cocolyze-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"cocolyze-crawler\",\n \"patterns\": [\n \"Cocolyzebot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"codewise-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"codewise-crawler\",\n \"patterns\": [\n \"VoluumDSP-content-bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cognitiveseo-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"cognitiveseo-crawler\",\n \"patterns\": [\n \"James BOT\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"companybook-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"companybook-crawler\",\n \"patterns\": [\n \"Companybook-Crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"content-crawler-spider\",\n \"category\": \"UNKNOWN\",\n \"name\": \"content-crawler-spider\",\n \"patterns\": [\n \"content crawler spider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"contextad-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"contextad-crawler\",\n \"patterns\": [\n \"ContextAd Bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"contxbot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"contxbot\",\n \"patterns\": [\n \"contxbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"convera-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"convera-crawler\",\n \"patterns\": [\n \"convera\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cookiebot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"cookiebot-crawler\",\n \"patterns\": [\n \"Cookiebot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"creativecommons-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"creativecommons-crawler\",\n \"patterns\": [\n \"CC Metadata Scaper\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"criteo-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"criteo-crawler\",\n \"patterns\": [\n \"CriteoBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"crystalsemantics-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"crystalsemantics-crawler\",\n \"patterns\": [\n \"CrystalSemanticsBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"curebot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"curebot-crawler\",\n \"patterns\": [\n \"[Cc]urebot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cutbot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"cutbot-crawler\",\n \"patterns\": [\n \"Cutbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cxense-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"cxense-crawler\",\n \"patterns\": [\n \"cXensebot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"cyberpatrol-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"cyberpatrol-crawler\",\n \"patterns\": [\n \"CyberPatrol\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"datafeedwatch-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"datafeedwatch-crawler\",\n \"patterns\": [\n \"Datafeedwatch\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"dataforseo-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"dataforseo-crawler\",\n \"patterns\": [\n \"DataForSeoBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"datagnion-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"datagnion-crawler\",\n \"patterns\": [\n \"datagnionbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"datanyze-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"datanyze-crawler\",\n \"patterns\": [\n \"Datanyze\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"dataprovider-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"dataprovider-crawler\",\n \"patterns\": [\n \"Dataprovider\\\\.com\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"datenbutler-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"datenbutler-crawler\",\n \"patterns\": [\n \"mindUpBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"daum-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"daum-crawler\",\n \"patterns\": [\n \"Daum\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"deepnoc-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"deepnoc-crawler\",\n \"patterns\": [\n \"deepnoc\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"deusu-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"deusu-crawler\",\n \"patterns\": [\n \"DeuSu\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"digincore-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"digincore-crawler\",\n \"patterns\": [\n \"Digincore bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"digitaldragon-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"digitaldragon-crawler\",\n \"patterns\": [\n \"CrawlyProjectCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"discoveryengine-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"discoveryengine-crawler\",\n \"patterns\": [\n \"discobot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"dnyz-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"dnyz-crawler\",\n \"patterns\": [\n \"DnyzBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"domaincrawler-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"domaincrawler-crawler\",\n \"patterns\": [\n \"domaincrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"domainreanimator-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"domainreanimator-crawler\",\n \"patterns\": [\n \"Domain Re-Animator Bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"domainsbot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"domainsbot-crawler\",\n \"patterns\": [\n \"Pandalytics\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"domainstats-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"domainstats-crawler\",\n \"patterns\": [\n \"DomainStatsBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"domaintools-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"domaintools-crawler\",\n \"patterns\": [\n \"SurveyBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"dotnetdotcom-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"dotnetdotcom-crawler\",\n \"patterns\": [\n \"ezooms\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"dragonmetrics-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"dragonmetrics-crawler\",\n \"patterns\": [\n \"Dragonbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"driftnet-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"driftnet-crawler\",\n \"patterns\": [\n \"InternetMeasurement\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"duedil-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"duedil-crawler\",\n \"patterns\": [\n \"electricmonk\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ec2linkfinder\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ec2linkfinder\",\n \"patterns\": [\n \"ec2linkfinder\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"edister-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"edister-crawler\",\n \"patterns\": [\n \"edisterbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"elisabot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"elisabot\",\n \"patterns\": [\n \"elisabot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"epictions-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"epictions-crawler\",\n \"patterns\": [\n \"epicbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"eright-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"eright-crawler\",\n \"patterns\": [\n \"eright\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"europarchive-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"europarchive-crawler\",\n \"patterns\": [\n \"europarchive\\\\.org\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"eventures-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"eventures-crawler\",\n \"patterns\": [\n \"e\\\\.ventures Investment Crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"eventures-crawler-batch\",\n \"category\": \"UNKNOWN\",\n \"name\": \"eventures-crawler-batch\",\n \"patterns\": [\n \"evc-batch\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"exensa-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"exensa-crawler\",\n \"patterns\": [\n \"Bark[rR]owler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"experibot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"experibot-crawler\",\n \"patterns\": [\n \"Experibot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"extlinks-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"extlinks-crawler\",\n \"patterns\": [\n \"ExtLinksBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"eyeota-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"eyeota-crawler\",\n \"patterns\": [\n \"Eyeotabot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"fast-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"fast-crawler\",\n \"patterns\": [\n \"FAST-WebCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"fast-crawler-enterprise\",\n \"category\": \"UNKNOWN\",\n \"name\": \"fast-crawler-enterprise\",\n \"patterns\": [\n \"FAST Enterprise Crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"fedoraplanet-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"fedoraplanet-crawler\",\n \"patterns\": [\n \"fedoraplanet\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"feedafever-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"feedafever-crawler\",\n \"patterns\": [\n \"Fever\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"femtosearch-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"femtosearch-crawler\",\n \"patterns\": [\n \"FemtosearchBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"findthatfile-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"findthatfile-crawler\",\n \"patterns\": [\n \"findthatfile\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"flamingosearch-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"flamingosearch-crawler\",\n \"patterns\": [\n \"Flamingo_SearchEngine\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"fluffy\",\n \"category\": \"UNKNOWN\",\n \"name\": \"fluffy\",\n \"patterns\": [\n \"fluffy\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"fr-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"fr-crawler\",\n \"patterns\": [\n \"fr-crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"fuelbot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"fuelbot\",\n \"patterns\": [\n \"fuelbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"fyrebot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"fyrebot\",\n \"patterns\": [\n \"Fyrebot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"g00g1e-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"g00g1e-crawler\",\n \"patterns\": [\n \"g00g1e\\\\.net\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"g2webservices-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"g2webservices-crawler\",\n \"patterns\": [\n \"G2 Web Services\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"garlik-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"garlik-crawler\",\n \"patterns\": [\n \"GarlikCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"genieo-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"genieo-crawler\",\n \"patterns\": [\n \"Genieo\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"gigablast-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"gigablast-crawler\",\n \"patterns\": [\n \"Gigabot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ginger-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ginger-crawler\",\n \"patterns\": [\n \"GingerCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"gnam-gnam-spider\",\n \"category\": \"UNKNOWN\",\n \"name\": \"gnam-gnam-spider\",\n \"patterns\": [\n \"gnam gnam spider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"gnowit-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"gnowit-crawler\",\n \"patterns\": [\n \"GnowitNewsbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"goo-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"goo-crawler\",\n \"patterns\": [\n \"ichiro\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"grapeshot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"grapeshot-crawler\",\n \"patterns\": [\n \"GrapeshotCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"grob-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"grob-crawler\",\n \"patterns\": [\n \"Grobbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"grouphigh-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"grouphigh-crawler\",\n \"patterns\": [\n \"GroupHigh\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"grub\",\n \"category\": \"UNKNOWN\",\n \"name\": \"grub\",\n \"patterns\": [\n \"grub\\\\.org\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"gslfbot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"gslfbot\",\n \"patterns\": [\n \"gslfbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"gwene-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"gwene-crawler\",\n \"patterns\": [\n \"Gwene\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"haosou-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"haosou-crawler\",\n \"patterns\": [\n \"360Spider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"hatena-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"hatena-crawler\",\n \"patterns\": [\n \"Hatena\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"headline-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"headline-crawler\",\n \"patterns\": [\n \"ev-crawler\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"hoyer-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"hoyer-crawler\",\n \"patterns\": [\n \"Friendica\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"httrack\",\n \"category\": \"UNKNOWN\",\n \"name\": \"httrack\",\n \"patterns\": [\n \"HTTrack\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"hypefactors-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"hypefactors-crawler\",\n \"patterns\": [\n \"Buck\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"hypestat-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"hypestat-crawler\",\n \"patterns\": [\n \"hypestat\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"hyscore-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"hyscore-crawler\",\n \"patterns\": [\n \"hyscore\\\\.io\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ia-archiver\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ia-archiver\",\n \"patterns\": [\n \"ia_archiver\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ideasandcode-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ideasandcode-crawler\",\n \"patterns\": [\n \"ICBot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"indeed-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"indeed-crawler\",\n \"patterns\": [\n \"IndeedBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"inetdex-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"inetdex-crawler\",\n \"patterns\": [\n \"INETDEX-BOT\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"infoo-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"infoo-crawler\",\n \"patterns\": [\n \"infoobot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"integromedb-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"integromedb-crawler\",\n \"patterns\": [\n \"integromedb\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"intelium-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"intelium-crawler\",\n \"patterns\": [\n \"intelium_bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ionos-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ionos-crawler\",\n \"patterns\": [\n \"IonCrawl\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ip-web-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ip-web-crawler\",\n \"patterns\": [\n \"ip-web-crawler\\\\.com\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"iskanie-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"iskanie-crawler\",\n \"patterns\": [\n \"iskanie\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"iss-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"iss-crawler\",\n \"patterns\": [\n \"filterdb\\\\.iss\\\\.net\\\\/crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"it2media-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"it2media-crawler\",\n \"patterns\": [\n \"it2media-domain-crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"itinfluentials-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"itinfluentials-crawler\",\n \"patterns\": [\n \"FindITAnswersbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"jamiembrown-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"jamiembrown-crawler\",\n \"patterns\": [\n \"Jamie's Spider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"jetslide-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"jetslide-crawler\",\n \"patterns\": [\n \"Jetslide\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"jobboerse-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"jobboerse-crawler\",\n \"patterns\": [\n \"JobboerseBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"jooble-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"jooble-crawler\",\n \"patterns\": [\n \"Jooblebot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"jusprog-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"jusprog-crawler\",\n \"patterns\": [\n \"Jugendschutzprogramm-Crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"jyxo-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"jyxo-crawler\",\n \"patterns\": [\n \"jyxobot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"k7computing-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"k7computing-crawler\",\n \"patterns\": [\n \"K7MLWCBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"kemvi-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"kemvi-crawler\",\n \"patterns\": [\n \"Kemvibot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"komodia-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"komodia-crawler\",\n \"patterns\": [\n \"KomodiaBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"kosmio-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"kosmio-crawler\",\n \"patterns\": [\n \"KosmioBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"landaumedia-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"landaumedia-crawler\",\n \"patterns\": [\n \"Landau-Media-Spider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"laserlike-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"laserlike-crawler\",\n \"patterns\": [\n \"Laserlikebot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"lb-spider\",\n \"category\": \"UNKNOWN\",\n \"name\": \"lb-spider\",\n \"patterns\": [\n \"lb-spider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"leiki-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"leiki-crawler\",\n \"patterns\": [\n \"Leikibot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"lightspeedsystems-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"lightspeedsystems-crawler\",\n \"patterns\": [\n \"LightspeedSystemsCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"line-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"line-crawler\",\n \"patterns\": [\n \"Linespider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"linkapedia-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"linkapedia-crawler\",\n \"patterns\": [\n \"linkapediabot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"linkdex-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"linkdex-crawler\",\n \"patterns\": [\n \"linkdex\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"linkfluence-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"linkfluence-crawler\",\n \"patterns\": [\n \"YaK\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"linkis-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"linkis-crawler\",\n \"patterns\": [\n \"LinkisBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"lipperhey-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"lipperhey-crawler\",\n \"patterns\": [\n \"lipperhey\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"livelap-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"livelap-crawler\",\n \"patterns\": [\n \"Livelap[bB]ot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"logly-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"logly-crawler\",\n \"patterns\": [\n \"zenback bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"loop-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"loop-crawler\",\n \"patterns\": [\n \"netresearchserver\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"lssbot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"lssbot\",\n \"patterns\": [\n \"lssbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"lssbot-rocket\",\n \"category\": \"UNKNOWN\",\n \"name\": \"lssbot-rocket\",\n \"patterns\": [\n \"lssrocketcrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ltx71-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ltx71-crawler\",\n \"patterns\": [\n \"ltx71\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"luminator-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"luminator-crawler\",\n \"patterns\": [\n \"Luminator-robots\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"mailru-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"MailRuBot\",\n \"patterns\": [\n \"Mail\\\\.RU_Bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"mappydata-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"mappydata-crawler\",\n \"patterns\": [\n \"mappydata\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"mauibot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"mauibot\",\n \"patterns\": [\n \"MauiBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"megaindex-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"megaindex-crawler\",\n \"patterns\": [\n \"MegaIndex\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"meltwater-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"meltwater-crawler\",\n \"patterns\": [\n \"MeltwaterNews\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"metadatalabs-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"metadatalabs-crawler\",\n \"patterns\": [\n \"mlbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"metajob-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"metajob-crawler\",\n \"patterns\": [\n \"MetaJobBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"metauri-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"metauri-crawler\",\n \"patterns\": [\n \"MetaURI\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"metricstools-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"metricstools-crawler\",\n \"patterns\": [\n \"MTRobot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"mignify-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"mignify-crawler\",\n \"patterns\": [\n \"memorybot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"mignify-imrbot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"mignify-imrbot\",\n \"patterns\": [\n \"imrbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"mixnode-cache\",\n \"category\": \"UNKNOWN\",\n \"name\": \"mixnode-cache\",\n \"patterns\": [\n \"MixnodeCache\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"moodle-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"moodle-crawler\",\n \"patterns\": [\n \"MoodleBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"moreover-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"moreover-crawler\",\n \"patterns\": [\n \"Moreover\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"moz-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"moz-crawler\",\n \"patterns\": [\n \"dotbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"muckrack-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"muckrack-crawler\",\n \"patterns\": [\n \"MuckRack\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"multiviewbot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"multiviewbot\",\n \"patterns\": [\n \"Multiviewbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"naver-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"naver-crawler\",\n \"patterns\": [\n \"Yeti\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"neeva-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"neeva-crawler\",\n \"patterns\": [\n \"Neevabot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"nerdbynature-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"nerdbynature-crawler\",\n \"patterns\": [\n \"NerdByNature\\\\.Bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"nerdybot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"nerdybot-crawler\",\n \"patterns\": [\n \"nerdybot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"netcraft-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"netcraft-crawler\",\n \"patterns\": [\n \"NetcraftSurveyAgent\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"netsystemsresearch-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"netsystemsresearch-crawler\",\n \"patterns\": [\n \"NetSystemsResearch\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"netvibes-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"netvibes-crawler\",\n \"patterns\": [\n \"Netvibes\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"newsharecounts-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"newsharecounts-crawler\",\n \"patterns\": [\n \"newsharecounts\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"newspaper\",\n \"category\": \"UNKNOWN\",\n \"name\": \"newspaper\",\n \"patterns\": [\n \"newspaper\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"nextcloud-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"NextCloudBot\",\n \"patterns\": [\n \"NextCloud\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"niki-bot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"niki-bot\",\n \"patterns\": [\n \"niki-bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ning-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ning-crawler\",\n \"patterns\": [\n \"NING\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ninjabot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ninjabot\",\n \"patterns\": [\n \"NINJA bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"nuzzel-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"nuzzel-crawler\",\n \"patterns\": [\n \"Nuzzel\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ocarinabot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ocarinabot\",\n \"patterns\": [\n \"Ocarinabot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"okru-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"okru-crawler\",\n \"patterns\": [\n \"OdklBot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"opengraphcheck-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"opengraphcheck-crawler\",\n \"patterns\": [\n \"OpenGraphCheck\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"openhose-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"openhose-crawler\",\n \"patterns\": [\n \"OpenHoseBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"openindex-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"openindex-crawler\",\n \"patterns\": [\n \"openindexspider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"orange-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"orange-crawler\",\n \"patterns\": [\n \"OrangeBot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"orange-ftgroup-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"orange-ftgroup-crawler\",\n \"patterns\": [\n \"voilabot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"outclicks-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"outclicks-crawler\",\n \"patterns\": [\n \"OutclicksBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"page-to-rss\",\n \"category\": \"UNKNOWN\",\n \"name\": \"page-to-rss\",\n \"patterns\": [\n \"page2rss\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"pagething-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"pagething-crawler\",\n \"patterns\": [\n \"PageThing\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"paloaltonetworks-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"paloaltonetworks-crawler\",\n \"patterns\": [\n \"Expanse\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"panscient-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"panscient-crawler\",\n \"patterns\": [\n \"panscient\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"paperli-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"paperli-crawler\",\n \"patterns\": [\n \"PaperLiBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"phxbot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"phxbot\",\n \"patterns\": [\n \"PhxBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"picsearch-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"picsearch-crawler\",\n \"patterns\": [\n \"psbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"postrank-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"postrank-crawler\",\n \"patterns\": [\n \"postrank\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"prcy-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"prcy-crawler\",\n \"patterns\": [\n \"PR-CY\\\\.RU\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"privacore-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"privacore-crawler\",\n \"patterns\": [\n \"findxbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"privacyaware-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"privacyaware-crawler\",\n \"patterns\": [\n \"PrivacyAwareBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"profound-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"profound-crawler\",\n \"patterns\": [\n \"urlappendbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"proximic-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"proximic-crawler\",\n \"patterns\": [\n \"proximic\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"pulsepoint-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"pulsepoint-crawler\",\n \"patterns\": [\n \"Pulsepoint\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"pure-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"pure-crawler\",\n \"patterns\": [\n \"purebot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"rankactive-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"rankactive-crawler\",\n \"patterns\": [\n \"RankActiveLinkBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"retrevo-page-analyzer\",\n \"category\": \"UNKNOWN\",\n \"name\": \"retrevo-page-analyzer\",\n \"patterns\": [\n \"RetrevoPageAnalyzer\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ridder-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ridder-crawler\",\n \"patterns\": [\n \"RidderBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"rivva-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"rivva-crawler\",\n \"patterns\": [\n \"Rivva\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ryte-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ryte-crawler\",\n \"patterns\": [\n \"RyteBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"scan-interfax-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"scan-interfax-crawler\",\n \"patterns\": [\n \"InterfaxScanBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"schmorp-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"schmorp-crawler\",\n \"patterns\": [\n \"AnyEvent\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"scoutjet-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"scoutjet-crawler\",\n \"patterns\": [\n \"ScoutJet\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"scribd-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"scribd-crawler\",\n \"patterns\": [\n \"scribdbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"scritch-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"scritch-crawler\",\n \"patterns\": [\n \"Fetch\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"seekbot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"seekbot-crawler\",\n \"patterns\": [\n \"seekbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"seewithkids-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"seewithkids-crawler\",\n \"patterns\": [\n \"seewithkids\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"semanticaudience-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"semanticaudience-crawler\",\n \"patterns\": [\n \"semanticbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"sempitech-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"sempitech-crawler\",\n \"patterns\": [\n \"sempi\\\\.tech\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"semrush-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"SemRushBot\",\n \"patterns\": [\n \"S[eE][mM]rushBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"senuto-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"senuto-crawler\",\n \"patterns\": [\n \"SenutoBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"seobility-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"seobility-crawler\",\n \"patterns\": [\n \"SeobilityBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"seokicks-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"seokicks-crawler\",\n \"patterns\": [\n \"SEOkicks\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"seolizer-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"seolizer-crawler\",\n \"patterns\": [\n \"SEOlizer\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"seoprofiler-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"seoprofiler-crawler\",\n \"patterns\": [\n \"spbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"seoscanners-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"seoscanners-crawler\",\n \"patterns\": [\n \"seoscanners\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"seostar-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"seostar-crawler\",\n \"patterns\": [\n \"seostar\\\\.co\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"seozoom-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ZoomBot\",\n \"patterns\": [\n \"ZoomBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"serpstatbot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"serpstatbot-crawler\",\n \"patterns\": [\n \"serpstatbot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"seznam-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"seznam-crawler\",\n \"patterns\": [\n \"SeznamBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"similartech-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"similartech-crawler\",\n \"patterns\": [\n \"smtbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"simple-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"simple-crawler\",\n \"patterns\": [\n \"SimpleCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"sistrix-007ac9-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"sistrix-007ac9-crawler\",\n \"patterns\": [\n \"007ac9 Crawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"sitebot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"sitebot-crawler\",\n \"patterns\": [\n \"sitebot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"sitechecker-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"sitechecker-crawler\",\n \"patterns\": [\n \"SiteCheckerBotCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"siteexplorer-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"siteexplorer-crawler\",\n \"patterns\": [\n \"siteexplorer\\\\.info\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"siteimprove-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"siteimprove-crawler\",\n \"patterns\": [\n \"Siteimprove\\\\.com\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"socialrank-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"socialrank-crawler\",\n \"patterns\": [\n \"SocialRankIOBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"softbytelabs-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"softbytelabs-crawler\",\n \"patterns\": [\n \"SBL-BOT\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"sogou-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"sogou-crawler\",\n \"patterns\": [\n \"Sogou\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"stuttgart-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"stuttgart-crawler\",\n \"patterns\": [\n \"RegionStuttgartBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"summify-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"summify-crawler\",\n \"patterns\": [\n \"summify\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"swimgbot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"swimgbot\",\n \"patterns\": [\n \"SWIMGBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"sysomos-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"sysomos-crawler\",\n \"patterns\": [\n \"Sysomos\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"t3versions-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"t3versions-crawler\",\n \"patterns\": [\n \"t3versionsBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"taboola-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"taboola-crawler\",\n \"patterns\": [\n \"Taboolabot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"tagoo-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"tagoo-crawler\",\n \"patterns\": [\n \"tagoobot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"tangiblee-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"tangiblee-crawler\",\n \"patterns\": [\n \"TangibleeBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"thinklab-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"thinklab-crawler\",\n \"patterns\": [\n \"Thinklab\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"tiger-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"tiger-crawler\",\n \"patterns\": [\n \"tigerbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"tineye-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"tineye-crawler\",\n \"patterns\": [\n \"TinEye\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"tiscali-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"tiscali-crawler\",\n \"patterns\": [\n \"IstellaBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"tombascraper-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"tombascraper-crawler\",\n \"patterns\": [\n \"TombaPublicWebCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"toplist-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"toplist-crawler\",\n \"patterns\": [\n \"toplistbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"torus-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"torus-crawler\",\n \"patterns\": [\n \"ReverseEngineeringBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"toutiao-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"toutiao-crawler\",\n \"patterns\": [\n \"ToutiaoSpider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"traackr-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"traackr-crawler\",\n \"patterns\": [\n \"Traackr\\\\.com\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"tracemyfile-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"tracemyfile-crawler\",\n \"patterns\": [\n \"tracemyfile\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"trendiction-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"trendiction-crawler\",\n \"patterns\": [\n \"trendictionbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"trove-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"trove-crawler\",\n \"patterns\": [\n \"Trove\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"trovit-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"trovit-crawler\",\n \"patterns\": [\n \"trovitBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"tweetmemebot\",\n \"category\": \"UNKNOWN\",\n \"name\": \"tweetmemebot\",\n \"patterns\": [\n \"TweetmemeBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"twenga-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"twenga-crawler\",\n \"patterns\": [\n \"twengabot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"twingly-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"twingly-crawler\",\n \"patterns\": [\n \"Twingly\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"twoip-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"twoip-crawler\",\n \"patterns\": [\n \"2ip bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"twoip-crawler-cms\",\n \"category\": \"UNKNOWN\",\n \"name\": \"twoip-crawler-cms\",\n \"patterns\": [\n \"2ip\\\\.ru\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"twurly-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"twurly-crawler\",\n \"patterns\": [\n \"Twurly\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ubermetrics-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ubermetrics-crawler\",\n \"patterns\": [\n \"um-LN\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ubt-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ubt-crawler\",\n \"patterns\": [\n \"Streamline3Bot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"upflow-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"upflow-crawler\",\n \"patterns\": [\n \"Upflow\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"urlclassification-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"urlclassification-crawler\",\n \"patterns\": [\n \"KStandBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"usine-nouvelle-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"usine-nouvelle-crawler\",\n \"patterns\": [\n \"UsineNouvelleCrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"utorrent-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"utorrent-crawler\",\n \"patterns\": [\n \"BTWebClient\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"vebidoo-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"vebidoo-crawler\",\n \"patterns\": [\n \"vebidoobot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"veooz-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"veooz-crawler\",\n \"patterns\": [\n \"Veoozbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"verisign-ips-agent\",\n \"category\": \"UNKNOWN\",\n \"name\": \"verisign-ips-agent\",\n \"patterns\": [\n \"ips-agent\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"vigil-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"vigil-crawler\",\n \"patterns\": [\n \"Vigil\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"vipnytt-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"vipnytt-crawler\",\n \"patterns\": [\n \"jpg-newsbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"virustotal-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"virustotal-crawler\",\n \"patterns\": [\n \"virustotal\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"vkrobot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"vkrobot-crawler\",\n \"patterns\": [\n \"VKRobot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"vkshare-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"vkshare-crawler\",\n \"patterns\": [\n \"vkShare\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"vuhuv-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"vuhuv-crawler\",\n \"patterns\": [\n \"vuhuvBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"warebay-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"warebay-crawler\",\n \"patterns\": [\n \"wbsearchbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"webceo-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"webceo-crawler\",\n \"patterns\": [\n \"online-webceo-bot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"webcompany-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"webcompany-crawler\",\n \"patterns\": [\n \"webcompanycrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"webdatastats-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"webdatastats-crawler\",\n \"patterns\": [\n \"WebDataStats\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"webeaver-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"webeaver-crawler\",\n \"patterns\": [\n \"BehloolBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"webmeup-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"webmeup-crawler\",\n \"patterns\": [\n \"BLEXBot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"webmon\",\n \"category\": \"UNKNOWN\",\n \"name\": \"webmon\",\n \"patterns\": [\n \"webmon \"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"wesee-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"wesee-crawler\",\n \"patterns\": [\n \"WeSEE:Search\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"wocodi-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"wocodi-crawler\",\n \"patterns\": [\n \"wocbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"woorank-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"woorank-crawler\",\n \"patterns\": [\n \"woobot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"woorank-crawler-review\",\n \"category\": \"UNKNOWN\",\n \"name\": \"woorank-crawler-review\",\n \"patterns\": [\n \"woorankreview\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"wordpress-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"WordPressBot\",\n \"patterns\": [\n \"WordPress\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"wordup-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"wordup-crawler\",\n \"patterns\": [\n \"WordupInfoSearch\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"worio-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"worio-crawler\",\n \"patterns\": [\n \"woriobot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"wotbox-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"wotbox-crawler\",\n \"patterns\": [\n \"wotbox\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"xovibot-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"xovibot-crawler\",\n \"patterns\": [\n \"xovibot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"yanga-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"yanga-crawler\",\n \"patterns\": [\n \"yanga\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"yellowbp-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"yellowbp-crawler\",\n \"patterns\": [\n \"Yellowbrandprotectionbot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"yisou-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"yisou-crawler\",\n \"patterns\": [\n \"YisouSpider\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"yooz-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"yooz-crawler\",\n \"patterns\": [\n \"yoozBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"zoominfo-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"zoominfo-crawler\",\n \"patterns\": [\n \"ZoominfoBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"zum-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"ZumBot\",\n \"patterns\": [\n \"ZumBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"zuperlist-crawler\",\n \"category\": \"UNKNOWN\",\n \"name\": \"zuperlist-crawler\",\n \"patterns\": [\n \"ZuperlistBot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-ahrefsbotsiteaudit\",\n \"name\": \"ahrefsbotsiteaudit\",\n \"category\": \"SEO\",\n \"patterns\": [\n \"Ahrefs(Bot|SiteAudit)\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-amazonproductdiscovery\",\n \"name\": \"amazonproductdiscovery\",\n \"category\": \"SEARCH_ENGINE\",\n \"patterns\": [\n \"AmazonProductDiscovery\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-amazonsellerinitiatedlisting\",\n \"name\": \"amazonsellerinitiatedlisting\",\n \"category\": \"SEARCH_ENGINE\",\n \"patterns\": [\n \"AmazonSellerInitiatedListing\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-cclaudebbot\",\n \"name\": \"cclaudebbot\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"[cC]laude[bB]ot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-meta-externalagent\",\n \"name\": \"meta-externalagent\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"meta-externalagent\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-meta-externalfetcher\",\n \"name\": \"meta-externalfetcher\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"meta-externalfetcher\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-hydrozenio\",\n \"name\": \"hydrozenio\",\n \"category\": \"MONITORING\",\n \"patterns\": [\n \"Hydrozen\\\\.io\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-yextbot\",\n \"name\": \"yextbot\",\n \"category\": \"SEO\",\n \"patterns\": [\n \"YextBot\\\\/\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-datadogsynthetics\",\n \"name\": \"datadogsynthetics\",\n \"category\": \"MONITORING\",\n \"patterns\": [\n \"DatadogSynthetics\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-observepoint\",\n \"name\": \"observepoint\",\n \"category\": \"MONITORING\",\n \"patterns\": [\n \"ObservePoint\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-checkly\",\n \"name\": \"checkly\",\n \"category\": \"MONITORING\",\n \"patterns\": [\n \"Checkly\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-alittleclient\",\n \"name\": \"alittleclient\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"ALittle Client\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-aliyunsecbot\",\n \"name\": \"aliyunsecbot\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"AliyunSecBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-claude-web\",\n \"name\": \"claude-web\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"Claude-Web\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-google-extended\",\n \"name\": \"google-extended\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"Google-Extended\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-serankingbacklinksbot\",\n \"name\": \"serankingbacklinksbot\",\n \"category\": \"SEO\",\n \"patterns\": [\n \"SERankingBacklinksBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-cmschecker\",\n \"name\": \"cmschecker\",\n \"category\": \"SEO\",\n \"patterns\": [\n \"CMSChecker\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-wayback\",\n \"name\": \"wayback\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"Wayback\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-playwright\",\n \"name\": \"playwright\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"Playwright\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-puppeteer\",\n \"name\": \"puppeteer\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"Puppeteer\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-selenium\",\n \"name\": \"selenium\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"Selenium\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-nikto\",\n \"name\": \"nikto\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"Nikto\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-sqlmap\",\n \"name\": \"sqlmap\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"sqlmap\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-zmeu\",\n \"name\": \"zmeu\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"ZmEu\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-masscan\",\n \"name\": \"masscan\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"masscan\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-wpscan\",\n \"name\": \"wpscan\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"WPScan\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-aacunetix\",\n \"name\": \"aacunetix\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"[aA]cunetix\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-nessus\",\n \"name\": \"nessus\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"Nessus\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-ddirbbuster\",\n \"name\": \"ddirbbuster\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"[dD]ir[Bb]uster\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-colly\",\n \"name\": \"colly\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"colly\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-mmechanize\",\n \"name\": \"mmechanize\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"[mM]echanize\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-airaiscanning\",\n \"name\": \"airaiscanning\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"air\\\\.ai\\\\/scanning\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-asnriskscorer\",\n \"name\": \"asnriskscorer\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"asnriskscorer\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-oicrawler\",\n \"name\": \"oicrawler\",\n \"category\": \"SEARCH_ENGINE\",\n \"patterns\": [\n \"OICrawler\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-l9scan\",\n \"name\": \"l9scan\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"l9scan\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-slaccalebot\",\n \"name\": \"slaccalebot\",\n \"category\": \"SEO\",\n \"patterns\": [\n \"SlaccaleBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-customasynchttpclient\",\n \"name\": \"customasynchttpclient\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"CustomAsyncHttpClient\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-gemini-deep-research\",\n \"name\": \"gemini-deep-research\",\n \"category\": \"SEARCH_ENGINE\",\n \"patterns\": [\n \"Gemini-Deep-Research\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-perplexity-user\",\n \"name\": \"perplexity-user\",\n \"category\": \"SEARCH_ENGINE\",\n \"patterns\": [\n \"Perplexity-User\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-perplexityuser\",\n \"name\": \"perplexityuser\",\n \"category\": \"SEARCH_ENGINE\",\n \"patterns\": [\n \"PerplexityUser\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-meta-webindexer\",\n \"name\": \"meta-webindexer\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"meta-webindexer\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-duckassistbot\",\n \"name\": \"duckassistbot\",\n \"category\": \"SEARCH_ENGINE\",\n \"patterns\": [\n \"DuckAssistBot\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-mistralai-user\",\n \"name\": \"mistralai-user\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"MistralAI-User\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-webzio\",\n \"name\": \"webzio\",\n \"category\": \"SEO\",\n \"patterns\": [\n \"webzio\"\n ],\n \"forbidden\": []\n },\n {\n \"id\": \"ext-newsai\",\n \"name\": \"newsai\",\n \"category\": \"GENERIC\",\n \"patterns\": [\n \"newsai\\\\/\"\n ],\n \"forbidden\": []\n }\n]","/**\n * @module @arcis/node/middleware/bot-detection\n * Local-only bot detection using User-Agent and behavioral signals.\n *\n * Categorizes requests into bot types and allows/denies based on config.\n * No cloud calls — everything runs locally.\n *\n * @example\n * // Block automated tools, allow search engines\n * app.use(botProtection({\n * allow: ['SEARCH_ENGINE', 'SOCIAL', 'MONITORING'],\n * deny: ['AUTOMATED', 'SCRAPER'],\n * }));\n */\n\nimport type { Request, Response, NextFunction, RequestHandler } from 'express';\nimport BOT_PATTERN_DATA from '../data/bot-patterns.json';\n\n// =============================================================================\n// BOT CATEGORIES\n// =============================================================================\n\nexport type BotCategory =\n | 'SEARCH_ENGINE'\n | 'SOCIAL'\n | 'MONITORING'\n | 'AI_CRAWLER'\n | 'SCRAPER'\n | 'AUTOMATED'\n | 'UNKNOWN'\n | 'HUMAN';\n\nexport interface BotDetectionResult {\n /** Whether the request appears to be from a bot */\n isBot: boolean;\n /** Bot category */\n category: BotCategory;\n /** Matched bot name (e.g. 'Googlebot', 'curl') or null */\n name: string | null;\n /** Confidence score: 0-1 */\n confidence: number;\n /** Behavioral signals detected */\n signals: string[];\n}\n\nexport interface BotProtectionOptions {\n /** Categories to explicitly allow. Default: ['SEARCH_ENGINE', 'SOCIAL', 'MONITORING'] */\n allow?: BotCategory[];\n /** Categories to explicitly deny. Default: ['AUTOMATED'] */\n deny?: BotCategory[];\n /** Action for categories not in allow or deny. Default: 'allow' */\n defaultAction?: 'allow' | 'deny';\n /** HTTP status code for denied bots. Default: 403 */\n statusCode?: number;\n /** Error message for denied bots */\n message?: string;\n /** Enable behavioral signal detection. Default: true */\n detectBehavior?: boolean;\n /** Custom handler called on detection (instead of default deny response) */\n onDetected?: (req: Request, res: Response, result: BotDetectionResult) => void;\n}\n\n// =============================================================================\n// BOT DATABASE\n// =============================================================================\n\ninterface BotPattern {\n /** Compiled regex(es) to match against the User-Agent. ANY match counts. */\n patterns: RegExp[];\n /** Compiled forbidden patterns. If ANY matches, this entry is rejected. */\n forbidden: RegExp[];\n /** Bot name (e.g. 'Googlebot') */\n name: string;\n /** Category */\n category: BotCategory;\n /** Stable identifier from the source corpus */\n id: string;\n}\n\n/**\n * Source data for the bot corpus — `packages/core/bot-patterns.json`, derived\n * from arcjet/well-known-bots (MIT) plus a supplementary list of browser\n * automation tools the upstream doesn't separately track. Regenerate via\n * `python packages/core/generate-bot-patterns.py` after upgrading the source.\n */\ninterface BotPatternData {\n id: string;\n name: string;\n category: string;\n patterns: string[];\n forbidden: string[];\n}\n\nfunction compilePattern(source: string): RegExp {\n // Patterns from the corpus are JS-style regex bodies (no enclosing /.../ ).\n // Compile case-insensitive: matches Arcis's documented contract that bot\n // detection ignores UA case (`GPTBOT` and `gptbot` match the same entry).\n // This is additive on top of Arcjet's explicit character classes like\n // `[wW]get` — the `i` flag doesn't conflict with character ranges.\n return new RegExp(source, 'i');\n}\n\nconst BOT_PATTERNS: BotPattern[] = (BOT_PATTERN_DATA as BotPatternData[]).map((entry) => ({\n id: entry.id,\n name: entry.name,\n category: entry.category as BotCategory,\n patterns: entry.patterns.map(compilePattern),\n forbidden: entry.forbidden.map(compilePattern),\n}));\n\n\n// =============================================================================\n// DETECTION ENGINE\n// =============================================================================\n\n/**\n * Detect behavioral signals that suggest a bot.\n */\nfunction detectBehavioralSignals(req: Request): string[] {\n const signals: string[] = [];\n const headers = req.headers;\n\n // Missing User-Agent\n if (!headers['user-agent']) {\n signals.push('missing_user_agent');\n }\n\n // Missing Accept header (browsers always send this)\n if (!headers['accept']) {\n signals.push('missing_accept');\n }\n\n // Missing Accept-Language (browsers always send this)\n if (!headers['accept-language']) {\n signals.push('missing_accept_language');\n }\n\n // Missing Accept-Encoding (browsers always send this)\n if (!headers['accept-encoding']) {\n signals.push('missing_accept_encoding');\n }\n\n // Connection: close (browsers typically use keep-alive)\n if (headers['connection'] === 'close') {\n signals.push('connection_close');\n }\n\n return signals;\n}\n\n/**\n * Detect what kind of bot (if any) is making the request.\n *\n * @param req - HTTP request object\n * @returns Detection result with category, name, confidence, and signals\n *\n * @example\n * const result = detectBot(req);\n * if (result.isBot && result.category === 'AUTOMATED') {\n * // Block automated tools\n * }\n */\nexport function detectBot(req: Request): BotDetectionResult {\n const rawUa = req.headers['user-agent'] ?? '';\n // SECURITY: A UA longer than 2048 chars is either buggy client or attempt to hide\n // a bot signature past a truncation boundary. Flag as suspicious bot directly —\n // don't silently truncate and continue.\n if (rawUa.length > 2048) {\n return {\n isBot: true,\n category: 'UNKNOWN',\n name: null,\n confidence: 0.9,\n signals: detectBehavioralSignals(req),\n };\n }\n const ua = rawUa;\n const signals = detectBehavioralSignals(req);\n\n // No User-Agent at all\n if (!ua) {\n return {\n isBot: true,\n category: 'UNKNOWN',\n name: null,\n confidence: 0.8,\n signals,\n };\n }\n\n // Match against known bot patterns. An entry matches when ALL of its\n // accepted patterns match AND none of its forbidden patterns matches.\n // ALL-of semantics makes multi-pattern entries (e.g. iMessage-Preview which\n // expects both `facebookexternalhit` and `Twitterbot` in the same UA) only\n // fire on real iMessage traffic, not on bare `Twitterbot/1.0` requests.\n // Single-pattern entries (the common case) reduce trivially to that one\n // pattern matching.\n for (const bot of BOT_PATTERNS) {\n let allMatched = bot.patterns.length > 0;\n for (const pattern of bot.patterns) {\n if (!pattern.test(ua)) {\n allMatched = false;\n break;\n }\n }\n if (!allMatched) continue;\n\n let forbidden = false;\n for (const pattern of bot.forbidden) {\n if (pattern.test(ua)) {\n forbidden = true;\n break;\n }\n }\n if (forbidden) continue;\n\n return {\n isBot: true,\n category: bot.category,\n name: bot.name,\n confidence: 0.95,\n signals,\n };\n }\n\n // Behavioral analysis for unrecognized UAs\n const behaviorScore = signals.length;\n\n // 3+ missing standard headers = likely bot\n if (behaviorScore >= 3) {\n return {\n isBot: true,\n category: 'UNKNOWN',\n name: null,\n confidence: Math.min(1.0, 0.6 + (behaviorScore * 0.1)),\n signals,\n };\n }\n\n return {\n isBot: false,\n category: 'HUMAN',\n name: null,\n confidence: Math.max(0.0, 1.0 - (behaviorScore * 0.15)),\n signals,\n };\n}\n\n/**\n * Create Express middleware for bot protection.\n *\n * @example\n * // Block automated tools and scrapers\n * app.use(botProtection({\n * allow: ['SEARCH_ENGINE', 'SOCIAL', 'MONITORING'],\n * deny: ['AUTOMATED', 'SCRAPER'],\n * }));\n *\n * @example\n * // Block everything except search engines\n * app.use(botProtection({\n * allow: ['SEARCH_ENGINE'],\n * defaultAction: 'deny',\n * }));\n *\n * @example\n * // Custom handler\n * app.use(botProtection({\n * deny: ['AUTOMATED'],\n * onDetected: (req, res, result) => {\n * console.log(`Bot blocked: ${result.name} (${result.category})`);\n * res.status(403).json({ error: 'Bots not allowed' });\n * },\n * }));\n */\nexport function botProtection(options: BotProtectionOptions = {}): RequestHandler {\n const {\n allow = ['SEARCH_ENGINE', 'SOCIAL', 'MONITORING'],\n deny = ['AUTOMATED'],\n defaultAction = 'allow',\n statusCode = 403,\n message = 'Access denied.',\n onDetected,\n } = options;\n\n const allowSet = new Set(allow);\n const denySet = new Set(deny);\n\n return (req: Request, res: Response, next: NextFunction) => {\n const result = detectBot(req);\n\n // Attach result to request for downstream use\n (req as unknown as Record<string, unknown>).botDetection = result;\n\n // Humans always pass\n if (!result.isBot) {\n return next();\n }\n\n // Check explicit allow/deny lists\n if (allowSet.has(result.category)) {\n return next();\n }\n\n if (denySet.has(result.category)) {\n // Telemetry attribution: dashboard groups bot denials under vector=bot.\n req.__arcis = {\n vector: 'bot',\n rule: `bot/${result.category.toLowerCase()}`,\n severity: 'medium',\n reason: result.name ? `Bot detected: ${result.name}` : 'Bot detected',\n decision: 'deny',\n };\n if (onDetected) {\n return onDetected(req, res, result);\n }\n res.status(statusCode).json({ error: message });\n return;\n }\n\n // Default action for uncategorized bots\n if (defaultAction === 'deny') {\n req.__arcis = {\n vector: 'bot',\n rule: 'bot/uncategorized',\n severity: 'medium',\n reason: 'Uncategorized bot under defaultAction=deny',\n decision: 'deny',\n };\n if (onDetected) {\n return onDetected(req, res, result);\n }\n res.status(statusCode).json({ error: message });\n return;\n }\n\n next();\n };\n}\n","/**\n * @module @arcis/node/nuxt\n *\n * Nuxt (h3) adapter for Arcis. Drop into a server middleware file.\n *\n * **Scope:** rate-limit + bot detection + security headers. For\n * XSS/SQL/SSTI/etc. body-payload blocking, call `sanitizeObject` from\n * `@arcis/node/sanitizers` inside your route handler. v1 keeps the\n * middleware surface narrow.\n *\n * ```ts\n * // server/middleware/arcis.ts\n * import { defineEventHandler } from 'h3';\n * import { arcisHandler } from '@arcis/node/nuxt';\n * export default defineEventHandler(arcisHandler({ rateLimit: { max: 100 } }));\n * ```\n *\n * Or compose with other handlers — each Nuxt server middleware file runs in\n * the order Nitro discovers them (alphabetical by default).\n *\n * The adapter operates against h3's Node-compat layer (`event.node.req` /\n * `event.node.res`) so it works on the standard Nuxt server. There is no\n * runtime dependency on `h3` — its event shape is duck-typed.\n */\n\nimport type { Request as ExpressRequestLike } from 'express';\nimport { HEADERS, RATE_LIMIT } from '../core/constants';\nimport type {\n HeaderOptions,\n HstsOptions,\n RateLimitOptions,\n} from '../core/types';\nimport {\n detectBot,\n type BotProtectionOptions,\n type BotDetectionResult,\n} from './bot-detection';\n\n// ─── h3 / Nuxt duck-typed contracts ─────────────────────────────────────────\n\ninterface NodeIncomingMessageLike {\n headers: Record<string, string | string[] | undefined>;\n socket?: { remoteAddress?: string };\n method?: string;\n url?: string;\n}\n\ninterface NodeServerResponseLike {\n statusCode: number;\n writableEnded?: boolean;\n setHeader(name: string, value: string | number | string[]): void;\n removeHeader(name: string): void;\n end(body?: string): void;\n}\n\nexport interface H3EventLike {\n node: {\n req: NodeIncomingMessageLike;\n res: NodeServerResponseLike;\n };\n}\n\nexport type ArcisH3Handler = (event: H3EventLike) => Promise<void> | void;\n\n// ─── Adapter options ────────────────────────────────────────────────────────\n\nexport interface ArcisNuxtOptions {\n /** Security headers configuration. Default: enabled. Pass `false` to disable. */\n headers?: boolean | HeaderOptions;\n /** Rate limiter configuration. Default: 100 req/60s in-memory. Pass `false` to disable. */\n rateLimit?: boolean | RateLimitOptions;\n /** Bot protection. Default: disabled (opt-in). */\n bot?: boolean | BotProtectionOptions;\n}\n\n// ─── Helpers ────────────────────────────────────────────────────────────────\n\ninterface RateLimitEntry {\n count: number;\n resetTime: number;\n}\n\ninterface RateLimitDecision {\n allowed: boolean;\n count: number;\n max: number;\n remaining: number;\n resetSeconds: number;\n}\n\nfunction buildLimiter(opts: RateLimitOptions): (key: string) => RateLimitDecision {\n const max = opts.max ?? RATE_LIMIT.DEFAULT_MAX_REQUESTS;\n const windowMs = opts.windowMs ?? RATE_LIMIT.DEFAULT_WINDOW_MS;\n const store = Object.create(null) as Record<string, RateLimitEntry>;\n return (key: string): RateLimitDecision => {\n const now = Date.now();\n let entry = store[key];\n if (!entry || entry.resetTime < now) {\n entry = { count: 0, resetTime: now + windowMs };\n store[key] = entry;\n }\n entry.count += 1;\n const remaining = Math.max(0, max - entry.count);\n const resetSeconds = Math.ceil((entry.resetTime - now) / 1000);\n return { allowed: entry.count <= max, count: entry.count, max, remaining, resetSeconds };\n };\n}\n\nfunction botInputFor(req: NodeIncomingMessageLike): ExpressRequestLike {\n // Node's IncomingMessage already has the headers shape detectBot reads off\n // an Express request — pass it through with a type assertion.\n return { headers: req.headers } as unknown as ExpressRequestLike;\n}\n\nfunction clientIpFromReq(req: NodeIncomingMessageLike): string {\n // Trust X-Forwarded-For only when present and well-formed; fall back to\n // socket.remoteAddress; finally a stable 'unknown' bucket so a missing IP\n // doesn't share a counter with every other unresolvable client.\n const xff = req.headers['x-forwarded-for'];\n if (typeof xff === 'string' && xff.length > 0) {\n const first = xff.split(',')[0]?.trim();\n if (first) return first;\n }\n const remote = req.socket?.remoteAddress;\n if (remote) return remote;\n return 'unknown';\n}\n\nfunction isHttpsRequest(req: NodeIncomingMessageLike): boolean {\n const xfp = req.headers['x-forwarded-proto'];\n const value = (Array.isArray(xfp) ? xfp[0] : xfp)?.split(',')[0]?.trim()?.toLowerCase();\n return value === 'https';\n}\n\nfunction applySecurityHeaders(\n res: NodeServerResponseLike,\n req: NodeIncomingMessageLike,\n options: HeaderOptions,\n): void {\n const {\n contentSecurityPolicy = true,\n xssFilter = true,\n noSniff = true,\n frameOptions = HEADERS.FRAME_OPTIONS,\n hsts = true,\n referrerPolicy = HEADERS.REFERRER_POLICY,\n permissionsPolicy = HEADERS.PERMISSIONS_POLICY,\n cacheControl = true,\n crossOriginOpenerPolicy = 'same-origin',\n crossOriginResourcePolicy = 'same-origin',\n crossOriginEmbedderPolicy = 'require-corp',\n originAgentCluster = true,\n dnsPrefetchControl = true,\n } = options;\n\n if (contentSecurityPolicy) {\n res.setHeader(\n 'Content-Security-Policy',\n typeof contentSecurityPolicy === 'string' ? contentSecurityPolicy : HEADERS.DEFAULT_CSP,\n );\n }\n if (xssFilter) res.setHeader('X-XSS-Protection', '0');\n if (noSniff) res.setHeader('X-Content-Type-Options', HEADERS.CONTENT_TYPE_OPTIONS);\n if (frameOptions) res.setHeader('X-Frame-Options', frameOptions);\n\n if (hsts && isHttpsRequest(req)) {\n const o: HstsOptions = typeof hsts === 'object' ? hsts : {};\n const maxAge = o.maxAge ?? HEADERS.HSTS_MAX_AGE;\n const includeSub = o.includeSubDomains !== false;\n const preload = o.preload === true;\n let v = `max-age=${maxAge}`;\n if (includeSub) v += '; includeSubDomains';\n if (preload) v += '; preload';\n res.setHeader('Strict-Transport-Security', v);\n }\n\n if (referrerPolicy) res.setHeader('Referrer-Policy', referrerPolicy);\n if (permissionsPolicy) res.setHeader('Permissions-Policy', permissionsPolicy);\n if (crossOriginOpenerPolicy) res.setHeader('Cross-Origin-Opener-Policy', crossOriginOpenerPolicy);\n if (crossOriginResourcePolicy) res.setHeader('Cross-Origin-Resource-Policy', crossOriginResourcePolicy);\n if (crossOriginEmbedderPolicy) res.setHeader('Cross-Origin-Embedder-Policy', crossOriginEmbedderPolicy);\n if (originAgentCluster) res.setHeader('Origin-Agent-Cluster', '?1');\n if (dnsPrefetchControl) res.setHeader('X-DNS-Prefetch-Control', 'off');\n res.setHeader('X-Permitted-Cross-Domain-Policies', 'none');\n\n if (cacheControl) {\n res.setHeader(\n 'Cache-Control',\n typeof cacheControl === 'string' ? cacheControl : HEADERS.CACHE_CONTROL,\n );\n res.setHeader('Pragma', 'no-cache');\n res.setHeader('Expires', '0');\n }\n\n res.removeHeader('X-Powered-By');\n}\n\n// ─── Public API ─────────────────────────────────────────────────────────────\n\n/**\n * Build an h3 event handler that applies Arcis protections on each request.\n * Wrap it with `defineEventHandler` in your Nuxt server middleware. When a\n * request is rate-limited or denied, the handler writes the 429/403 response\n * directly via `event.node.res` and returns; otherwise it sets security\n * headers and falls through to the next handler.\n */\nexport function arcisHandler(options: ArcisNuxtOptions = {}): ArcisH3Handler {\n const headersCfg = options.headers ?? true;\n const rateLimitCfg = options.rateLimit ?? true;\n const botCfg = options.bot;\n\n const limiter = rateLimitCfg\n ? buildLimiter(typeof rateLimitCfg === 'object' ? rateLimitCfg : {})\n : null;\n\n const botEnabled = !!botCfg;\n const botOpts: BotProtectionOptions = typeof botCfg === 'object' ? botCfg : {};\n const botAllow = new Set(botOpts.allow ?? ['SEARCH_ENGINE', 'SOCIAL', 'MONITORING']);\n const botDeny = new Set(botOpts.deny ?? ['AUTOMATED']);\n const botDefault = botOpts.defaultAction ?? 'allow';\n const botStatusCode = botOpts.statusCode ?? 403;\n const botMessage = botOpts.message ?? 'Access denied.';\n\n return (event) => {\n const { req, res } = event.node;\n\n // 1. Rate limit\n if (limiter) {\n const decision = limiter(clientIpFromReq(req));\n if (!decision.allowed) {\n res.statusCode = 429;\n res.setHeader('Content-Type', 'application/json');\n res.setHeader('Retry-After', decision.resetSeconds.toString());\n res.setHeader('X-RateLimit-Limit', decision.max.toString());\n res.setHeader('X-RateLimit-Remaining', '0');\n res.setHeader('X-RateLimit-Reset', decision.resetSeconds.toString());\n res.end(\n JSON.stringify({\n error: 'Too many requests, please try again later.',\n retryAfter: decision.resetSeconds,\n }),\n );\n return;\n }\n }\n\n // 2. Bot detection\n if (botEnabled) {\n const result: BotDetectionResult = detectBot(botInputFor(req));\n if (result.isBot) {\n const denied =\n botDeny.has(result.category) ||\n (!botAllow.has(result.category) && botDefault === 'deny');\n if (denied) {\n res.statusCode = botStatusCode;\n res.setHeader('Content-Type', 'application/json');\n res.end(JSON.stringify({ error: botMessage }));\n return;\n }\n }\n }\n\n // 3. Security headers — set up-front so they're sent with the eventual\n // response from the downstream Nuxt route handler.\n if (headersCfg) {\n applySecurityHeaders(res, req, typeof headersCfg === 'object' ? headersCfg : {});\n }\n };\n}\n\nexport default arcisHandler;\n"]}