@sanity-labs/secret-scan 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/rules.ts","../src/entropy.ts","../src/index.ts"],"sourcesContent":["// Auto-generated by scripts/update-rules.ts — DO NOT EDIT\n// Source: https://raw.githubusercontent.com/gitleaks/gitleaks/master/config/gitleaks.toml\n// Generated: 2026-02-15T22:34:48.237Z\n// Rules: 221 compiled, 1 skipped (pkcs12-file)\n\nexport interface AllowlistRegex {\n regex: RegExp\n target?: 'match' | 'line'\n}\n\nexport interface RuleAllowlist {\n regexes?: AllowlistRegex[]\n stopwords?: string[]\n}\n\nexport interface Rule {\n id: string\n label: string\n regex: RegExp\n keywords: string[]\n entropy?: number\n secretGroup?: number\n allowlist?: RuleAllowlist\n}\n\nexport interface GlobalAllowlist {\n regexes: AllowlistRegex[]\n stopwords: string[]\n}\n\nexport const globalAllowlist: GlobalAllowlist = {\n regexes: [\n { regex: new RegExp(\"^true|false|null$\", 'i') },\n { regex: new RegExp(\"^(?:a+|b+|c+|d+|e+|f+|g+|h+|i+|j+|k+|l+|m+|n+|o+|p+|q+|r+|s+|t+|u+|v+|w+|x+|y+|z+|\\\\*+|\\\\.+)$\", 'i') },\n { regex: new RegExp(\"^\\\\$(?:\\\\d+|{\\\\d+})$\", '') },\n { regex: new RegExp(\"^\\\\$(?:[A-Z_]+|[a-z_]+)$\", '') },\n { regex: new RegExp(\"^\\\\${(?:[A-Z_]+|[a-z_]+)}$\", '') },\n { regex: new RegExp(\"^\\\\{\\\\{[ \\\\t]*[\\\\w ().|]+[ \\\\t]*}}$\", '') },\n { regex: new RegExp(\"^\\\\$\\\\{\\\\{[ \\\\t]*(?:(?:env|github|secrets|vars)(?:\\\\.[A-Za-z]\\\\w+)+[\\\\w \\\"'&./=|]*)[ \\\\t]*}}$\", '') },\n { regex: new RegExp(\"^%(?:[A-Z_]+|[a-z_]+)%$\", '') },\n { regex: new RegExp(\"^%[+\\\\-# 0]?[bcdeEfFgGoOpqstTUvxX]$\", '') },\n { regex: new RegExp(\"^\\\\{\\\\d{0,2}}$\", '') },\n { regex: new RegExp(\"^@(?:[A-Z_]+|[a-z_]+)@$\", '') },\n { regex: new RegExp(\"^/Users/[a-z0-9]+/[\\\\w .-/]+$\", 'i') },\n { regex: new RegExp(\"^/(?:bin|etc|home|opt|tmp|usr|var)/[\\\\w ./-]+$\", '') },\n ],\n stopwords: [\n '014df517-39d1-4453-b7b3-9930c563627c',\n 'abcdefghijklmnopqrstuvwxyz',\n ],\n}\n\nexport const rules: Rule[] = [\n {\n id: '1password-secret-key',\n label: '1password Secret Key',\n regex: new RegExp(\"\\\\bA3-[A-Z0-9]{6}-(?:(?:[A-Z0-9]{11})|(?:[A-Z0-9]{6}-[A-Z0-9]{5}))-[A-Z0-9]{5}-[A-Z0-9]{5}-[A-Z0-9]{5}\\\\b\", ''),\n keywords: ['a3-'],\n entropy: 3.8,\n },\n {\n id: '1password-service-account-token',\n label: '1password Service Account Token',\n regex: new RegExp(\"ops_eyJ[a-zA-Z0-9+/]{250,}={0,3}\", ''),\n keywords: ['ops_'],\n entropy: 4,\n },\n {\n id: 'adafruit-api-key',\n label: 'Adafruit API Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:adafruit)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9_-]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['adafruit'],\n },\n {\n id: 'adobe-client-id',\n label: 'Adobe Client ID',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:adobe)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-f0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['adobe'],\n entropy: 2,\n },\n {\n id: 'adobe-client-secret',\n label: 'Adobe Client Secret',\n regex: new RegExp(\"\\\\b(p8e-[a-z0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['p8e-'],\n entropy: 2,\n },\n {\n id: 'age-secret-key',\n label: 'Age Secret Key',\n regex: new RegExp(\"AGE-SECRET-KEY-1[QPZRY9X8GF2TVDW0S3JN54KHCE6MUA7L]{58}\", ''),\n keywords: ['age-secret-key-1'],\n },\n {\n id: 'airtable-api-key',\n label: 'Airtable API Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:airtable)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{17})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['airtable'],\n },\n {\n id: 'airtable-personnal-access-token',\n label: 'Airtable Personnal Access Token',\n regex: new RegExp(\"\\\\b(pat[[:alnum:]]{14}\\\\.[a-f0-9]{64})\\\\b\", ''),\n keywords: ['airtable'],\n },\n {\n id: 'algolia-api-key',\n label: 'Algolia API Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:algolia)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['algolia'],\n },\n {\n id: 'alibaba-access-key-id',\n label: 'Alibaba Access Key ID',\n regex: new RegExp(\"\\\\b(LTAI[a-z0-9]{20})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['ltai'],\n entropy: 2,\n },\n {\n id: 'alibaba-secret-key',\n label: 'Alibaba Secret Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:alibaba)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{30})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['alibaba'],\n entropy: 2,\n },\n {\n id: 'anthropic-admin-api-key',\n label: 'Anthropic Admin API Key',\n regex: new RegExp(\"\\\\b(sk-ant-admin01-[a-zA-Z0-9_\\\\-]{93}AA)(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['sk-ant-admin01'],\n },\n {\n id: 'anthropic-api-key',\n label: 'Anthropic API Key',\n regex: new RegExp(\"\\\\b(sk-ant-api03-[a-zA-Z0-9_\\\\-]{93}AA)(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['sk-ant-api03'],\n },\n {\n id: 'artifactory-api-key',\n label: 'Artifactory API Key',\n regex: new RegExp(\"\\\\bAKCp[A-Za-z0-9]{69}\\\\b\", ''),\n keywords: ['akcp'],\n entropy: 4.5,\n },\n {\n id: 'artifactory-reference-token',\n label: 'Artifactory Reference Token',\n regex: new RegExp(\"\\\\bcmVmd[A-Za-z0-9]{59}\\\\b\", ''),\n keywords: ['cmvmd'],\n entropy: 4.5,\n },\n {\n id: 'asana-client-id',\n label: 'Asana Client ID',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:asana)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([0-9]{16})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['asana'],\n },\n {\n id: 'asana-client-secret',\n label: 'Asana Client Secret',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:asana)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['asana'],\n },\n {\n id: 'atlassian-api-token',\n label: 'Atlassian API Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:(?:ATLASSIAN|[Aa]tlassian)|(?:CONFLUENCE|[Cc]onfluence)|(?:JIRA|[Jj]ira))(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{20}[a-f0-9]{4})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)|\\\\b(ATATT3[A-Za-z0-9_\\\\-=]{186})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['atlassian', 'confluence', 'jira', 'atatt3'],\n entropy: 3.5,\n },\n {\n id: 'authress-service-client-access-key',\n label: 'Authress Service Client Access Key',\n regex: new RegExp(\"\\\\b((?:sc|ext|scauth|authress)_[a-z0-9]{5,30}\\\\.[a-z0-9]{4,6}\\\\.(?:acc)[_-][a-z0-9-]{10,32}\\\\.[a-z0-9+/_=-]{30,120})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['sc_', 'ext_', 'scauth_', 'authress_'],\n entropy: 2,\n },\n {\n id: 'aws-access-token',\n label: 'AWS Access Token',\n regex: new RegExp(\"\\\\b((?:A3T[A-Z0-9]|AKIA|ASIA|ABIA|ACCA)[A-Z2-7]{16})\\\\b\", ''),\n keywords: ['a3t', 'akia', 'asia', 'abia', 'acca'],\n entropy: 3,\n allowlist: {\n regexes: [\n { regex: new RegExp(\".+EXAMPLE$\", '') },\n ],\n },\n },\n {\n id: 'aws-amazon-bedrock-api-key-long-lived',\n label: 'AWS Amazon Bedrock API Key Long Lived',\n regex: new RegExp(\"\\\\b(ABSK[A-Za-z0-9+/]{109,269}={0,2})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['absk'],\n entropy: 3,\n },\n {\n id: 'aws-amazon-bedrock-api-key-short-lived',\n label: 'AWS Amazon Bedrock API Key Short Lived',\n regex: new RegExp(\"bedrock-api-key-YmVkcm9jay5hbWF6b25hd3MuY29t\", ''),\n keywords: ['bedrock-api-key-'],\n entropy: 3,\n },\n {\n id: 'azure-ad-client-secret',\n label: 'Azure Ad Client Secret',\n regex: new RegExp(\"(?:^|[\\\\\\\\'\\\"\\\\x60\\\\s>=:(,)])([a-zA-Z0-9_~.]{3}\\\\dQ~[a-zA-Z0-9_~.-]{31,34})(?:$|[\\\\\\\\'\\\"\\\\x60\\\\s<),])\", ''),\n keywords: ['q~'],\n entropy: 3,\n },\n {\n id: 'beamer-api-token',\n label: 'Beamer API Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:beamer)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}(b_[a-z0-9=_\\\\-]{44})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['beamer'],\n },\n {\n id: 'bitbucket-client-id',\n label: 'Bitbucket Client ID',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:bitbucket)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['bitbucket'],\n },\n {\n id: 'bitbucket-client-secret',\n label: 'Bitbucket Client Secret',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:bitbucket)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9=_\\\\-]{64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['bitbucket'],\n },\n {\n id: 'bittrex-access-key',\n label: 'Bittrex Access Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:bittrex)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['bittrex'],\n },\n {\n id: 'bittrex-secret-key',\n label: 'Bittrex Secret Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:bittrex)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['bittrex'],\n },\n {\n id: 'cisco-meraki-api-key',\n label: 'Cisco Meraki API Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:[\\\\w.-]{0,50}?(?:(?:[Mm]eraki|MERAKI))(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3})(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([0-9a-f]{40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['meraki'],\n entropy: 3,\n },\n {\n id: 'clickhouse-cloud-api-secret-key',\n label: 'Clickhouse Cloud API Secret Key',\n regex: new RegExp(\"\\\\b(4b1d[A-Za-z0-9]{38})\\\\b\", ''),\n keywords: ['4b1d'],\n entropy: 3,\n },\n {\n id: 'clojars-api-token',\n label: 'Clojars API Token',\n regex: new RegExp(\"CLOJARS_[a-z0-9]{60}\", 'i'),\n keywords: ['clojars_'],\n entropy: 2,\n },\n {\n id: 'cloudflare-api-key',\n label: 'Cloudflare API Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:cloudflare)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9_-]{40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['cloudflare'],\n entropy: 2,\n },\n {\n id: 'cloudflare-global-api-key',\n label: 'Cloudflare Global API Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:cloudflare)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-f0-9]{37})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['cloudflare'],\n entropy: 2,\n },\n {\n id: 'cloudflare-origin-ca-key',\n label: 'Cloudflare Origin Ca Key',\n regex: new RegExp(\"\\\\b(v1\\\\.0-[a-f0-9]{24}-[a-f0-9]{146})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['cloudflare', 'v1.0-'],\n entropy: 2,\n },\n {\n id: 'codecov-access-token',\n label: 'Codecov Access Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:codecov)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['codecov'],\n },\n {\n id: 'cohere-api-token',\n label: 'Cohere API Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:[\\\\w.-]{0,50}?(?:cohere|CO_API_KEY)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3})(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-zA-Z0-9]{40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['cohere', 'co_api_key'],\n entropy: 4,\n },\n {\n id: 'coinbase-access-token',\n label: 'Coinbase Access Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:coinbase)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9_-]{64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['coinbase'],\n },\n {\n id: 'confluent-access-token',\n label: 'Confluent Access Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:confluent)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{16})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['confluent'],\n },\n {\n id: 'confluent-secret-key',\n label: 'Confluent Secret Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:confluent)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['confluent'],\n },\n {\n id: 'contentful-delivery-api-token',\n label: 'Contentful Delivery API Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:contentful)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9=_\\\\-]{43})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['contentful'],\n },\n {\n id: 'curl-auth-header',\n label: 'Curl Auth Header',\n regex: new RegExp(\"\\\\bcurl\\\\b(?:.*?|.*?(?:[\\\\r\\\\n]{1,2}.*?){1,5})[ \\\\t\\\\n\\\\r](?:-H|--header)(?:=|[ \\\\t]{0,5})(?:\\\"(?:Authorization:[ \\\\t]{0,5}(?:Basic[ \\\\t]([a-z0-9+/]{8,}={0,3})|(?:Bearer|(?:Api-)?Token)[ \\\\t]([\\\\w=~@.+/-]{8,})|([\\\\w=~@.+/-]{8,}))|(?:(?:X-(?:[a-z]+-)?)?(?:Api-?)?(?:Key|Token)):[ \\\\t]{0,5}([\\\\w=~@.+/-]{8,}))\\\"|'(?:Authorization:[ \\\\t]{0,5}(?:Basic[ \\\\t]([a-z0-9+/]{8,}={0,3})|(?:Bearer|(?:Api-)?Token)[ \\\\t]([\\\\w=~@.+/-]{8,})|([\\\\w=~@.+/-]{8,}))|(?:(?:X-(?:[a-z]+-)?)?(?:Api-?)?(?:Key|Token)):[ \\\\t]{0,5}([\\\\w=~@.+/-]{8,}))')(?:\\\\B|\\\\s|$)\", 'i'),\n keywords: ['curl'],\n entropy: 2.75,\n },\n {\n id: 'curl-auth-user',\n label: 'Curl Auth User',\n regex: new RegExp(\"\\\\bcurl\\\\b(?:.*|.*(?:[\\\\r\\\\n]{1,2}.*){1,5})[ \\\\t\\\\n\\\\r](?:-u|--user)(?:=|[ \\\\t]{0,5})(\\\"(:[^\\\"]{3,}|[^:\\\"]{3,}:|[^:\\\"]{3,}:[^\\\"]{3,})\\\"|'([^:']{3,}:[^']{3,})'|((?:\\\"[^\\\"]{3,}\\\"|'[^']{3,}'|[\\\\w$@.-]+):(?:\\\"[^\\\"]{3,}\\\"|'[^']{3,}'|[\\\\w${}@.-]+)))(?:\\\\s|$)\", ''),\n keywords: ['curl'],\n entropy: 2,\n allowlist: {\n regexes: [\n { regex: new RegExp(\"[^:]+:(?:change(?:it|me)|pass(?:word)?|pwd|test|token|\\\\*+|x+)\", '') },\n { regex: new RegExp(\"['\\\"]?<[^>]+>['\\\"]?:['\\\"]?<[^>]+>|<[^:]+:[^>]+>['\\\"]?\", '') },\n { regex: new RegExp(\"[^:]+:\\\\[[^]]+]\", '') },\n { regex: new RegExp(\"['\\\"]?[^:]+['\\\"]?:['\\\"]?\\\\$(?:\\\\d|\\\\w+|\\\\{(?:\\\\d|\\\\w+)})['\\\"]?\", '') },\n { regex: new RegExp(\"\\\\$\\\\([^)]+\\\\):\\\\$\\\\([^)]+\\\\)\", '') },\n { regex: new RegExp(\"['\\\"]?\\\\$?{{[^}]+}}['\\\"]?:['\\\"]?\\\\$?{{[^}]+}}['\\\"]?\", '') },\n ],\n },\n },\n {\n id: 'databricks-api-token',\n label: 'Databricks API Token',\n regex: new RegExp(\"\\\\b(dapi[a-f0-9]{32}(?:-\\\\d)?)(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['dapi'],\n entropy: 3,\n },\n {\n id: 'datadog-access-token',\n label: 'Datadog Access Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:datadog)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['datadog'],\n },\n {\n id: 'defined-networking-api-token',\n label: 'Defined Networking API Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:dnkey)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}(dnkey-[a-z0-9=_\\\\-]{26}-[a-z0-9=_\\\\-]{52})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['dnkey'],\n },\n {\n id: 'digitalocean-access-token',\n label: 'Digitalocean Access Token',\n regex: new RegExp(\"\\\\b(doo_v1_[a-f0-9]{64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['doo_v1_'],\n entropy: 3,\n },\n {\n id: 'digitalocean-pat',\n label: 'Digitalocean PAT',\n regex: new RegExp(\"\\\\b(dop_v1_[a-f0-9]{64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['dop_v1_'],\n entropy: 3,\n },\n {\n id: 'digitalocean-refresh-token',\n label: 'Digitalocean Refresh Token',\n regex: new RegExp(\"\\\\b(dor_v1_[a-f0-9]{64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['dor_v1_'],\n },\n {\n id: 'discord-api-token',\n label: 'Discord API Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:discord)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-f0-9]{64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['discord'],\n },\n {\n id: 'discord-client-id',\n label: 'Discord Client ID',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:discord)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([0-9]{18})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['discord'],\n entropy: 2,\n },\n {\n id: 'discord-client-secret',\n label: 'Discord Client Secret',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:discord)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9=_\\\\-]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['discord'],\n entropy: 2,\n },\n {\n id: 'doppler-api-token',\n label: 'Doppler API Token',\n regex: new RegExp(\"dp\\\\.pt\\\\.[a-z0-9]{43}\", 'i'),\n keywords: ['dp.pt.'],\n entropy: 2,\n },\n {\n id: 'droneci-access-token',\n label: 'Droneci Access Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:droneci)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['droneci'],\n },\n {\n id: 'dropbox-api-token',\n label: 'Dropbox API Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:dropbox)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{15})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['dropbox'],\n },\n {\n id: 'dropbox-long-lived-api-token',\n label: 'Dropbox Long Lived API Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:dropbox)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{11}(AAAAAAAAAA)[a-z0-9\\\\-_=]{43})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['dropbox'],\n },\n {\n id: 'dropbox-short-lived-api-token',\n label: 'Dropbox Short Lived API Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:dropbox)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}(sl\\\\.[a-z0-9\\\\-=_]{135})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['dropbox'],\n },\n {\n id: 'duffel-api-token',\n label: 'Duffel API Token',\n regex: new RegExp(\"duffel_(?:test|live)_[a-z0-9_\\\\-=]{43}\", 'i'),\n keywords: ['duffel_'],\n entropy: 2,\n },\n {\n id: 'dynatrace-api-token',\n label: 'Dynatrace API Token',\n regex: new RegExp(\"dt0c01\\\\.[a-z0-9]{24}\\\\.[a-z0-9]{64}\", 'i'),\n keywords: ['dt0c01.'],\n entropy: 4,\n },\n {\n id: 'easypost-api-token',\n label: 'Easypost API Token',\n regex: new RegExp(\"\\\\bEZAK[a-z0-9]{54}\\\\b\", 'i'),\n keywords: ['ezak'],\n entropy: 2,\n },\n {\n id: 'easypost-test-api-token',\n label: 'Easypost Test API Token',\n regex: new RegExp(\"\\\\bEZTK[a-z0-9]{54}\\\\b\", 'i'),\n keywords: ['eztk'],\n entropy: 2,\n },\n {\n id: 'etsy-access-token',\n label: 'Etsy Access Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:(?:ETSY|[Ee]tsy))(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{24})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['etsy'],\n entropy: 3,\n },\n {\n id: 'facebook-access-token',\n label: 'Facebook Access Token',\n regex: new RegExp(\"\\\\b(\\\\d{15,16}(\\\\||%)[0-9a-z\\\\-_]{27,40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['facebook'],\n entropy: 3,\n },\n {\n id: 'facebook-page-access-token',\n label: 'Facebook Page Access Token',\n regex: new RegExp(\"\\\\b(EAA[MC][a-z0-9]{100,})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['eaam', 'eaac'],\n entropy: 4,\n },\n {\n id: 'facebook-secret',\n label: 'Facebook Secret',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:facebook)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-f0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['facebook'],\n entropy: 3,\n },\n {\n id: 'fastly-api-token',\n label: 'Fastly API Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:fastly)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9=_\\\\-]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['fastly'],\n },\n {\n id: 'finicity-api-token',\n label: 'Finicity API Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:finicity)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-f0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['finicity'],\n },\n {\n id: 'finicity-client-secret',\n label: 'Finicity Client Secret',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:finicity)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{20})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['finicity'],\n },\n {\n id: 'finnhub-access-token',\n label: 'Finnhub Access Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:finnhub)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{20})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['finnhub'],\n },\n {\n id: 'flickr-access-token',\n label: 'Flickr Access Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:flickr)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['flickr'],\n },\n {\n id: 'flutterwave-encryption-key',\n label: 'Flutterwave Encryption Key',\n regex: new RegExp(\"FLWSECK_TEST-[a-h0-9]{12}\", 'i'),\n keywords: ['flwseck_test'],\n entropy: 2,\n },\n {\n id: 'flutterwave-public-key',\n label: 'Flutterwave Public Key',\n regex: new RegExp(\"FLWPUBK_TEST-[a-h0-9]{32}-X\", 'i'),\n keywords: ['flwpubk_test'],\n entropy: 2,\n },\n {\n id: 'flutterwave-secret-key',\n label: 'Flutterwave Secret Key',\n regex: new RegExp(\"FLWSECK_TEST-[a-h0-9]{32}-X\", 'i'),\n keywords: ['flwseck_test'],\n entropy: 2,\n },\n {\n id: 'flyio-access-token',\n label: 'Flyio Access Token',\n regex: new RegExp(\"\\\\b((?:fo1_[\\\\w-]{43}|fm1[ar]_[a-zA-Z0-9+\\\\/]{100,}={0,3}|fm2_[a-zA-Z0-9+\\\\/]{100,}={0,3}))(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['fo1_', 'fm1', 'fm2_'],\n entropy: 4,\n },\n {\n id: 'frameio-api-token',\n label: 'Frameio API Token',\n regex: new RegExp(\"fio-u-[a-z0-9\\\\-_=]{64}\", 'i'),\n keywords: ['fio-u-'],\n },\n {\n id: 'freemius-secret-key',\n label: 'Freemius Secret Key',\n regex: new RegExp(\"[\\\"']secret_key[\\\"']\\\\s*=>\\\\s*[\\\"'](sk_[\\\\S]{29})[\\\"']\", 'i'),\n keywords: ['secret_key'],\n },\n {\n id: 'freshbooks-access-token',\n label: 'Freshbooks Access Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:freshbooks)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['freshbooks'],\n },\n {\n id: 'gcp-api-key',\n label: 'GCP API Key',\n regex: new RegExp(\"\\\\b(AIza[\\\\w-]{35})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['aiza'],\n entropy: 4,\n allowlist: {\n regexes: [\n { regex: new RegExp(\"AIzaSyabcdefghijklmnopqrstuvwxyz1234567\", '') },\n { regex: new RegExp(\"AIzaSyAnLA7NfeLquW1tJFpx_eQCxoX-oo6YyIs\", '') },\n { regex: new RegExp(\"AIzaSyCkEhVjf3pduRDt6d1yKOMitrUEke8agEM\", '') },\n { regex: new RegExp(\"AIzaSyDMAScliyLx7F0NPDEJi1QmyCgHIAODrlU\", '') },\n { regex: new RegExp(\"AIzaSyD3asb-2pEZVqMkmL6M9N6nHZRR_znhrh0\", '') },\n { regex: new RegExp(\"AIzayDNSXIbFmlXbIE6mCzDLQAqITYefhixbX4A\", '') },\n { regex: new RegExp(\"AIzaSyAdOS2zB6NCsk1pCdZ4-P6GBdi_UUPwX7c\", '') },\n { regex: new RegExp(\"AIzaSyASWm6HmTMdYWpgMnjRBjxcQ9CKctWmLd4\", '') },\n { regex: new RegExp(\"AIzaSyANUvH9H9BsUccjsu2pCmEkOPjjaXeDQgY\", '') },\n { regex: new RegExp(\"AIzaSyA5_iVawFQ8ABuTZNUdcwERLJv_a_p4wtM\", '') },\n { regex: new RegExp(\"AIzaSyA4UrcGxgwQFTfaI3no3t7Lt1sjmdnP5sQ\", '') },\n { regex: new RegExp(\"AIzaSyDSb51JiIcB6OJpwwMicseKRhhrOq1cS7g\", '') },\n { regex: new RegExp(\"AIzaSyBF2RrAIm4a0mO64EShQfqfd2AFnzAvvuU\", '') },\n { regex: new RegExp(\"AIzaSyBcE-OOIbhjyR83gm4r2MFCu4MJmprNXsw\", '') },\n { regex: new RegExp(\"AIzaSyB8qGxt4ec15vitgn44duC5ucxaOi4FmqE\", '') },\n { regex: new RegExp(\"AIzaSyA8vmApnrHNFE0bApF4hoZ11srVL_n0nvY\", '') },\n ],\n },\n },\n {\n id: 'generic-api-key',\n label: 'Generic API Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:access|auth|(?:[Aa]pi|API)|credential|creds|key|passw(?:or)?d|secret|token)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([\\\\w.=-]{10,150}|[a-z0-9][a-z0-9+/]{11,}={0,3})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['access', 'api', 'auth', 'key', 'credential', 'creds', 'passwd', 'password', 'secret', 'token'],\n entropy: 3.5,\n allowlist: {\n regexes: [\n { regex: new RegExp(\"^[a-zA-Z_.-]+$\", '') },\n { regex: new RegExp(\"(?:access(?:ibility|or)|access[_.-]?id|random[_.-]?access|api[_.-]?(?:id|name|version)|rapid|capital|[a-z0-9-]*?api[a-z0-9-]*?:jar:|author|X-MS-Exchange-Organization-Auth|Authentication-Results|(?:credentials?[_.-]?id|withCredentials)|(?:bucket|foreign|hot|idx|natural|primary|pub(?:lic)?|schema|sequence)[_.-]?key|(?:turkey)|key[_.-]?(?:alias|board|code|frame|id|length|mesh|name|pair|press(?:ed)?|ring|selector|signature|size|stone|storetype|word|up|down|left|right)|key[_.-]?vault[_.-]?(?:id|name)|keyVaultToStoreSecrets|key(?:store|tab)[_.-]?(?:file|path)|issuerkeyhash|(?:[DdMm]onkey|[DM]ONKEY)|keying|(?:secret)[_.-]?(?:length|name|size)|UserSecretsId|(?:csrf)[_.-]?token|(?:io\\\\.jsonwebtoken[ \\\\t]?:[ \\\\t]?[\\\\w-]+)|(?:api|credentials|token)[_.-]?(?:endpoint|ur[il])|public[_.-]?token|(?:key|token)[_.-]?file|(?:(?:[A-Z_]+=\\\\n[A-Z_]+=|[a-z_]+=\\\\n[a-z_]+=)(?:\\\\n|$))|(?:(?:[A-Z.]+=\\\\n[A-Z.]+=|[a-z.]+=\\\\n[a-z.]+=)(?:\\\\n|$)))\", 'i') },\n { regex: new RegExp(\"--mount=type=secret,\", ''), target: 'line' as const },\n { regex: new RegExp(\"import[ \\\\t]+{[ \\\\t\\\\w,]+}[ \\\\t]+from[ \\\\t]+['\\\"][^'\\\"]+['\\\"]\", ''), target: 'line' as const },\n { regex: new RegExp(\"LICENSE[^=]*=\\\\s*\\\"[^\\\"]+\", ''), target: 'line' as const },\n { regex: new RegExp(\"LIC_FILES_CHKSUM[^=]*=\\\\s*\\\"[^\\\"]+\", ''), target: 'line' as const },\n { regex: new RegExp(\"SRC[^=]*=\\\\s*\\\"[a-zA-Z0-9]+\", ''), target: 'line' as const },\n ],\n stopwords: [\n '000000', '6fe4476ee5a1832882e326b506d14126', '_ec2_', 'aaaaaa', 'about', 'abstract', 'academy', 'acces', 'account', 'act-',\n 'act.', 'act_', 'action', 'active', 'actively', 'activity', 'adapter', 'add-', 'add-on', 'add.',\n 'add_', 'addon', 'addres', 'admin', 'adobe', 'advanced', 'adventure', 'agent', 'agile', 'air-',\n 'air.', 'air_', 'ajax', 'akka', 'alert', 'alfred', 'algorithm', 'all-', 'all.', 'all_',\n 'alloy', 'alpha', 'amazon', 'amqp', 'analysi', 'analytic', 'analyzer', 'android', 'angular', 'angularj',\n 'animate', 'animation', 'another', 'ansible', 'answer', 'ant-', 'ant.', 'ant_', 'any-', 'any.',\n 'any_', 'apache', 'app-', 'app.', 'app_', 'apple', 'arch', 'archive', 'archived', 'arduino',\n 'array', 'art-', 'art.', 'art_', 'article', 'asp-', 'asp.', 'asp_', 'asset', 'async',\n 'atom', 'attention', 'audio', 'audit', 'aura', 'auth', 'author', 'authorize', 'auto', 'automated',\n 'automatic', 'awesome', 'aws_', 'azure', 'back', 'backbone', 'backend', 'backup', 'bar-', 'bar.',\n 'bar_', 'base', 'based', 'bash', 'basic', 'batch', 'been', 'beer', 'behavior', 'being',\n 'benchmark', 'best', 'beta', 'better', 'big-', 'big.', 'big_', 'binary', 'binding', 'bit-',\n 'bit.', 'bit_', 'bitcoin', 'block', 'blog', 'board', 'book', 'bookmark', 'boost', 'boot',\n 'bootstrap', 'bosh', 'bot-', 'bot.', 'bot_', 'bower', 'box-', 'box.', 'box_', 'boxen',\n 'bracket', 'branch', 'bridge', 'browser', 'brunch', 'buffer', 'bug-', 'bug.', 'bug_', 'build',\n 'builder', 'building', 'buildout', 'buildpack', 'built', 'bundle', 'busines', 'but-', 'but.', 'but_',\n 'button', 'cache', 'caching', 'cakephp', 'calendar', 'call', 'camera', 'campfire', 'can-', 'can.',\n 'can_', 'canva', 'captcha', 'capture', 'card', 'carousel', 'case', 'cassandra', 'cat-', 'cat.',\n 'cat_', 'category', 'center', 'cento', 'challenge', 'change', 'changelog', 'channel', 'chart', 'chat',\n 'cheat', 'check', 'checker', 'chef', 'ches', 'chinese', 'chosen', 'chrome', 'ckeditor', 'clas',\n 'classe', 'classic', 'clean', 'cli-', 'cli.', 'cli_', 'client', 'clojure', 'clone', 'closure',\n 'cloud', 'club', 'cluster', 'cms-', 'cms_', 'coco', 'code', 'coding', 'coffee', 'color',\n 'combination', 'combo', 'command', 'commander', 'comment', 'commit', 'common', 'community', 'compas', 'compiler',\n 'complete', 'component', 'composer', 'computer', 'computing', 'con-', 'con.', 'con_', 'concept', 'conf',\n 'config', 'connect', 'connector', 'console', 'contact', 'container', 'contao', 'content', 'contest', 'context',\n 'control', 'convert', 'converter', 'conway\\'', 'cookbook', 'cookie', 'cool', 'copy', 'cordova', 'core',\n 'couchbase', 'couchdb', 'countdown', 'counter', 'course', 'craft', 'crawler', 'create', 'creating', 'creator',\n 'credential', 'crm-', 'crm.', 'crm_', 'cros', 'crud', 'csv-', 'csv.', 'csv_', 'cube',\n 'cucumber', 'cuda', 'current', 'currently', 'custom', 'daemon', 'dark', 'dart', 'dash', 'dashboard',\n 'data', 'database', 'date', 'day-', 'day.', 'day_', 'dead', 'debian', 'debug', 'debugger',\n 'deck', 'define', 'del-', 'del.', 'del_', 'delete', 'demo', 'deploy', 'design', 'designer',\n 'desktop', 'detection', 'detector', 'dev-', 'dev.', 'dev_', 'develop', 'developer', 'device', 'devise',\n 'diff', 'digital', 'directive', 'directory', 'discovery', 'display', 'django', 'dns-', 'dns_', 'doc-',\n 'doc.', 'doc_', 'docker', 'docpad', 'doctrine', 'document', 'doe-', 'doe.', 'doe_', 'dojo',\n 'dom-', 'dom.', 'dom_', 'domain', 'don\\'t', 'done', 'dot-', 'dot.', 'dot_', 'dotfile',\n 'download', 'draft', 'drag', 'drill', 'drive', 'driven', 'driver', 'drop', 'dropbox', 'drupal',\n 'dsl-', 'dsl.', 'dsl_', 'dynamic', 'easy', 'ecdsa', 'eclipse', 'edit', 'editing', 'edition',\n 'editor', 'element', 'emac', 'email', 'embed', 'embedded', 'ember', 'emitter', 'emulator', 'encoding',\n 'endpoint', 'engine', 'english', 'enhanced', 'entity', 'entry', 'env_', 'episode', 'erlang', 'error',\n 'espresso', 'event', 'evented', 'example', 'exchange', 'exercise', 'experiment', 'expire', 'exploit', 'explorer',\n 'export', 'exporter', 'expres', 'ext-', 'ext.', 'ext_', 'extended', 'extension', 'external', 'extra',\n 'extractor', 'fabric', 'facebook', 'factory', 'fake', 'fast', 'feature', 'feed', 'fewfwef', 'ffmpeg',\n 'field', 'file', 'filter', 'find', 'finder', 'firefox', 'firmware', 'first', 'fish', 'fix-',\n 'fix_', 'flash', 'flask', 'flat', 'flex', 'flexible', 'flickr', 'flow', 'fluent', 'fluentd',\n 'fluid', 'folder', 'font', 'force', 'foreman', 'fork', 'form', 'format', 'formatter', 'forum',\n 'foundry', 'framework', 'free', 'friend', 'friendly', 'front-end', 'frontend', 'ftp-', 'ftp.', 'ftp_',\n 'fuel', 'full', 'fun-', 'fun.', 'fun_', 'func', 'future', 'gaia', 'gallery', 'game',\n 'gateway', 'gem-', 'gem.', 'gem_', 'gen-', 'gen.', 'gen_', 'general', 'generator', 'generic',\n 'genetic', 'get-', 'get.', 'get_', 'getenv', 'getting', 'ghost', 'gist', 'git-', 'git.',\n 'git_', 'github', 'gitignore', 'gitlab', 'glas', 'gmail', 'gnome', 'gnu-', 'gnu.', 'gnu_',\n 'goal', 'golang', 'gollum', 'good', 'google', 'gpu-', 'gpu.', 'gpu_', 'gradle', 'grail',\n 'graph', 'graphic', 'great', 'grid', 'groovy', 'group', 'grunt', 'guard', 'gui-', 'gui.',\n 'gui_', 'guide', 'guideline', 'gulp', 'gwt-', 'gwt.', 'gwt_', 'hack', 'hackathon', 'hacker',\n 'hacking', 'hadoop', 'haml', 'handler', 'hardware', 'has-', 'has_', 'hash', 'haskell', 'have',\n 'haxe', 'hello', 'help', 'helper', 'here', 'hero', 'heroku', 'high', 'hipchat', 'history',\n 'home', 'homebrew', 'homepage', 'hook', 'host', 'hosting', 'hot-', 'hot.', 'hot_', 'house',\n 'how-', 'how.', 'how_', 'html', 'http', 'hub-', 'hub.', 'hub_', 'hubot', 'human',\n 'icon', 'ide-', 'ide.', 'ide_', 'idea', 'identity', 'idiomatic', 'image', 'impact', 'import',\n 'important', 'importer', 'impres', 'index', 'infinite', 'info', 'injection', 'inline', 'input', 'inside',\n 'inspector', 'instagram', 'install', 'installer', 'instant', 'intellij', 'interface', 'internet', 'interview', 'into',\n 'intro', 'ionic', 'iphone', 'ipython', 'irc-', 'irc_', 'iso-', 'iso.', 'iso_', 'issue',\n 'jade', 'jasmine', 'java', 'jbos', 'jekyll', 'jenkin', 'jetbrains', 'job-', 'job.', 'job_',\n 'joomla', 'jpa-', 'jpa.', 'jpa_', 'jquery', 'json', 'just', 'kafka', 'karma', 'kata',\n 'kernel', 'keyboard', 'kindle', 'kit-', 'kit.', 'kit_', 'kitchen', 'knife', 'koan', 'kohana',\n 'lab-', 'lab.', 'lab_', 'lambda', 'lamp', 'language', 'laravel', 'last', 'latest', 'latex',\n 'launcher', 'layer', 'layout', 'lazy', 'ldap', 'leaflet', 'league', 'learn', 'learning', 'led-',\n 'led.', 'led_', 'leetcode', 'les-', 'les.', 'les_', 'level', 'leveldb', 'lib-', 'lib.',\n 'lib_', 'librarie', 'library', 'license', 'life', 'liferay', 'light', 'lightbox', 'like', 'line',\n 'link', 'linked', 'linkedin', 'linux', 'lisp', 'list', 'lite', 'little', 'load', 'loader',\n 'local', 'location', 'lock', 'log-', 'log.', 'log_', 'logger', 'logging', 'logic', 'login',\n 'logstash', 'longer', 'look', 'love', 'lua-', 'lua.', 'lua_', 'mac-', 'mac.', 'mac_',\n 'machine', 'made', 'magento', 'magic', 'mail', 'make', 'maker', 'making', 'man-', 'man.',\n 'man_', 'manage', 'manager', 'manifest', 'manual', 'map-', 'map.', 'map_', 'mapper', 'mapping',\n 'markdown', 'markup', 'master', 'math', 'matrix', 'maven', 'md5', 'mean', 'media', 'mediawiki',\n 'meetup', 'memcached', 'memory', 'menu', 'merchant', 'message', 'messaging', 'meta', 'metadata', 'meteor',\n 'method', 'metric', 'micro', 'middleman', 'migration', 'minecraft', 'miner', 'mini', 'minimal', 'mirror',\n 'mit-', 'mit.', 'mit_', 'mobile', 'mocha', 'mock', 'mod-', 'mod.', 'mod_', 'mode',\n 'model', 'modern', 'modular', 'module', 'modx', 'money', 'mongo', 'mongodb', 'mongoid', 'mongoose',\n 'monitor', 'monkey', 'more', 'motion', 'moved', 'movie', 'mozilla', 'mqtt', 'mule', 'multi',\n 'multiple', 'music', 'mustache', 'mvc-', 'mvc.', 'mvc_', 'mysql', 'nagio', 'name', 'native',\n 'need', 'neo-', 'neo.', 'neo_', 'nest', 'nested', 'net-', 'net.', 'net_', 'nette',\n 'network', 'new-', 'new.', 'new_', 'next', 'nginx', 'ninja', 'nlp-', 'nlp.', 'nlp_',\n 'node', 'nodej', 'nosql', 'not-', 'not.', 'not_', 'note', 'notebook', 'notepad', 'notice',\n 'notifier', 'now-', 'now.', 'now_', 'number', 'oauth', 'object', 'objective', 'obsolete', 'ocaml',\n 'octopres', 'official', 'old-', 'old.', 'old_', 'onboard', 'online', 'only', 'open', 'opencv',\n 'opengl', 'openshift', 'openwrt', 'option', 'oracle', 'org-', 'org.', 'org_', 'origin', 'original',\n 'orm-', 'orm.', 'orm_', 'osx-', 'osx_', 'our-', 'our.', 'our_', 'out-', 'out.',\n 'out_', 'output', 'over', 'overview', 'own-', 'own.', 'own_', 'pack', 'package', 'packet',\n 'page', 'panel', 'paper', 'paperclip', 'para', 'parallax', 'parallel', 'parse', 'parser', 'parsing',\n 'particle', 'party', 'password', 'patch', 'path', 'pattern', 'payment', 'paypal', 'pdf-', 'pdf.',\n 'pdf_', 'pebble', 'people', 'perl', 'personal', 'phalcon', 'phoenix', 'phone', 'phonegap', 'photo',\n 'php-', 'php.', 'php_', 'physic', 'picker', 'pipeline', 'platform', 'play', 'player', 'please',\n 'plu-', 'plu.', 'plu_', 'plug-in', 'plugin', 'plupload', 'png-', 'png.', 'png_', 'poker',\n 'polyfill', 'polymer', 'pool', 'pop-', 'pop.', 'pop_', 'popcorn', 'popup', 'port', 'portable',\n 'portal', 'portfolio', 'post', 'power', 'powered', 'powerful', 'prelude', 'pretty', 'preview', 'principle',\n 'print', 'pro-', 'pro.', 'pro_', 'problem', 'proc', 'product', 'profile', 'profiler', 'program',\n 'progres', 'project', 'protocol', 'prototype', 'provider', 'proxy', 'public', 'pull', 'puppet', 'pure',\n 'purpose', 'push', 'pusher', 'pyramid', 'python', 'quality', 'query', 'queue', 'quick', 'rabbitmq',\n 'rack', 'radio', 'rail', 'railscast', 'random', 'range', 'raspberry', 'rdf-', 'rdf.', 'rdf_',\n 'react', 'reactive', 'read', 'reader', 'readme', 'ready', 'real', 'real-time', 'reality', 'realtime',\n 'recipe', 'recorder', 'red-', 'red.', 'red_', 'reddit', 'redi', 'redmine', 'reference', 'refinery',\n 'refresh', 'registry', 'related', 'release', 'remote', 'rendering', 'repo', 'report', 'request', 'require',\n 'required', 'requirej', 'research', 'resource', 'response', 'resque', 'rest', 'restful', 'resume', 'reveal',\n 'reverse', 'review', 'riak', 'rich', 'right', 'ring', 'robot', 'role', 'room', 'router',\n 'routing', 'rpc-', 'rpc.', 'rpc_', 'rpg-', 'rpg.', 'rpg_', 'rspec', 'ruby-', 'ruby.',\n 'ruby_', 'rule', 'run-', 'run.', 'run_', 'runner', 'running', 'runtime', 'rust', 'rvm-',\n 'rvm.', 'rvm_', 'salt', 'sample', 'sandbox', 'sas-', 'sas.', 'sas_', 'sbt-', 'sbt.',\n 'sbt_', 'scala', 'scalable', 'scanner', 'schema', 'scheme', 'school', 'science', 'scraper', 'scratch',\n 'screen', 'script', 'scroll', 'scs-', 'scs.', 'scs_', 'sdk-', 'sdk.', 'sdk_', 'sdl-',\n 'sdl.', 'sdl_', 'search', 'secure', 'security', 'see-', 'see.', 'see_', 'seed', 'select',\n 'selector', 'selenium', 'semantic', 'sencha', 'send', 'sentiment', 'serie', 'server', 'service', 'session',\n 'set-', 'set.', 'set_', 'setting', 'setup', 'sha1', 'sha2', 'sha256', 'share', 'shared',\n 'sharing', 'sheet', 'shell', 'shield', 'shipping', 'shop', 'shopify', 'shortener', 'should', 'show',\n 'showcase', 'side', 'silex', 'simple', 'simulator', 'single', 'site', 'skeleton', 'sketch', 'skin',\n 'slack', 'slide', 'slider', 'slim', 'small', 'smart', 'smtp', 'snake', 'snapshot', 'snippet',\n 'soap', 'social', 'socket', 'software', 'solarized', 'solr', 'solution', 'solver', 'some', 'soon',\n 'source', 'space', 'spark', 'spatial', 'spec', 'sphinx', 'spine', 'spotify', 'spree', 'spring',\n 'sprite', 'sql-', 'sql.', 'sql_', 'sqlite', 'ssh-', 'ssh.', 'ssh_', 'stack', 'staging',\n 'standard', 'stanford', 'start', 'started', 'starter', 'startup', 'stat', 'statamic', 'state', 'static',\n 'statistic', 'statsd', 'statu', 'steam', 'step', 'still', 'stm-', 'stm.', 'stm_', 'storage',\n 'store', 'storm', 'story', 'strategy', 'stream', 'streaming', 'string', 'stripe', 'structure', 'studio',\n 'study', 'stuff', 'style', 'sublime', 'sugar', 'suite', 'summary', 'super', 'support', 'supported',\n 'svg-', 'svg.', 'svg_', 'svn-', 'svn.', 'svn_', 'swagger', 'swift', 'switch', 'switcher',\n 'symfony', 'symphony', 'sync', 'synopsi', 'syntax', 'system', 'tab-', 'tab.', 'tab_', 'table',\n 'tag-', 'tag.', 'tag_', 'talk', 'target', 'task', 'tcp-', 'tcp.', 'tcp_', 'tdd-',\n 'tdd.', 'tdd_', 'team', 'tech', 'template', 'term', 'terminal', 'testing', 'tetri', 'text',\n 'textmate', 'theme', 'theory', 'three', 'thrift', 'time', 'timeline', 'timer', 'tiny', 'tinymce',\n 'tip-', 'tip.', 'tip_', 'title', 'todo', 'todomvc', 'token', 'tool', 'toolbox', 'toolkit',\n 'top-', 'top.', 'top_', 'tornado', 'touch', 'tower', 'tracker', 'tracking', 'traffic', 'training',\n 'transfer', 'translate', 'transport', 'tree', 'trello', 'try-', 'try.', 'try_', 'tumblr', 'tut-',\n 'tut.', 'tut_', 'tutorial', 'tweet', 'twig', 'twitter', 'type', 'typo', 'ubuntu', 'uiview',\n 'ultimate', 'under', 'unit', 'unity', 'universal', 'unix', 'update', 'updated', 'upgrade', 'upload',\n 'uploader', 'uri-', 'uri.', 'uri_', 'url-', 'url.', 'url_', 'usage', 'usb-', 'usb.',\n 'usb_', 'use-', 'use.', 'use_', 'used', 'useful', 'user', 'using', 'util', 'utilitie',\n 'utility', 'vagrant', 'validator', 'value', 'variou', 'varnish', 'version', 'via-', 'via.', 'via_',\n 'video', 'view', 'viewer', 'vim-', 'vim.', 'vim_', 'vimrc', 'virtual', 'vision', 'visual',\n 'vpn', 'want', 'warning', 'watch', 'watcher', 'wave', 'way-', 'way.', 'way_', 'weather',\n 'web-', 'web_', 'webapp', 'webgl', 'webhook', 'webkit', 'webrtc', 'website', 'websocket', 'welcome',\n 'what', 'what\\'', 'when', 'where', 'which', 'why-', 'why.', 'why_', 'widget', 'wifi',\n 'wiki', 'win-', 'win.', 'win_', 'window', 'wip-', 'wip.', 'wip_', 'within', 'without',\n 'wizard', 'word', 'wordpres', 'work', 'worker', 'workflow', 'working', 'workshop', 'world', 'wrapper',\n 'write', 'writer', 'writing', 'written', 'www-', 'www.', 'www_', 'xamarin', 'xcode', 'xml-',\n 'xml.', 'xml_', 'xmpp', 'xxxxxx', 'yahoo', 'yaml', 'yandex', 'yeoman', 'yet-', 'yet.',\n 'yet_', 'yii-', 'yii.', 'yii_', 'youtube', 'yui-', 'yui.', 'yui_', 'zend', 'zero',\n 'zip-', 'zip.', 'zip_', 'zsh-', 'zsh.', 'zsh_',\n ],\n },\n },\n {\n id: 'github-app-token',\n label: 'Github App Token',\n regex: new RegExp(\"(?:ghu|ghs)_[0-9a-zA-Z]{36}\", ''),\n keywords: ['ghu_', 'ghs_'],\n entropy: 3,\n },\n {\n id: 'github-fine-grained-pat',\n label: 'Github Fine Grained PAT',\n regex: new RegExp(\"github_pat_\\\\w{82}\", ''),\n keywords: ['github_pat_'],\n entropy: 3,\n },\n {\n id: 'github-oauth',\n label: 'Github OAUTH',\n regex: new RegExp(\"gho_[0-9a-zA-Z]{36}\", ''),\n keywords: ['gho_'],\n entropy: 3,\n },\n {\n id: 'github-pat',\n label: 'Github PAT',\n regex: new RegExp(\"ghp_[0-9a-zA-Z]{36}\", ''),\n keywords: ['ghp_'],\n entropy: 3,\n },\n {\n id: 'github-refresh-token',\n label: 'Github Refresh Token',\n regex: new RegExp(\"ghr_[0-9a-zA-Z]{36}\", ''),\n keywords: ['ghr_'],\n entropy: 3,\n },\n {\n id: 'gitlab-cicd-job-token',\n label: 'Gitlab Cicd Job Token',\n regex: new RegExp(\"glcbt-[0-9a-zA-Z]{1,5}_[0-9a-zA-Z_-]{20}\", ''),\n keywords: ['glcbt-'],\n entropy: 3,\n },\n {\n id: 'gitlab-deploy-token',\n label: 'Gitlab Deploy Token',\n regex: new RegExp(\"gldt-[0-9a-zA-Z_\\\\-]{20}\", ''),\n keywords: ['gldt-'],\n entropy: 3,\n },\n {\n id: 'gitlab-feature-flag-client-token',\n label: 'Gitlab Feature Flag Client Token',\n regex: new RegExp(\"glffct-[0-9a-zA-Z_\\\\-]{20}\", ''),\n keywords: ['glffct-'],\n entropy: 3,\n },\n {\n id: 'gitlab-feed-token',\n label: 'Gitlab Feed Token',\n regex: new RegExp(\"glft-[0-9a-zA-Z_\\\\-]{20}\", ''),\n keywords: ['glft-'],\n entropy: 3,\n },\n {\n id: 'gitlab-incoming-mail-token',\n label: 'Gitlab Incoming Mail Token',\n regex: new RegExp(\"glimt-[0-9a-zA-Z_\\\\-]{25}\", ''),\n keywords: ['glimt-'],\n entropy: 3,\n },\n {\n id: 'gitlab-kubernetes-agent-token',\n label: 'Gitlab Kubernetes Agent Token',\n regex: new RegExp(\"glagent-[0-9a-zA-Z_\\\\-]{50}\", ''),\n keywords: ['glagent-'],\n entropy: 3,\n },\n {\n id: 'gitlab-oauth-app-secret',\n label: 'Gitlab OAUTH App Secret',\n regex: new RegExp(\"gloas-[0-9a-zA-Z_\\\\-]{64}\", ''),\n keywords: ['gloas-'],\n entropy: 3,\n },\n {\n id: 'gitlab-pat',\n label: 'Gitlab PAT',\n regex: new RegExp(\"glpat-[\\\\w-]{20}\", ''),\n keywords: ['glpat-'],\n entropy: 3,\n },\n {\n id: 'gitlab-pat-routable',\n label: 'Gitlab PAT Routable',\n regex: new RegExp(\"\\\\bglpat-[0-9a-zA-Z_-]{27,300}\\\\.[0-9a-z]{2}[0-9a-z]{7}\\\\b\", ''),\n keywords: ['glpat-'],\n entropy: 4,\n },\n {\n id: 'gitlab-ptt',\n label: 'Gitlab Ptt',\n regex: new RegExp(\"glptt-[0-9a-f]{40}\", ''),\n keywords: ['glptt-'],\n entropy: 3,\n },\n {\n id: 'gitlab-rrt',\n label: 'Gitlab Rrt',\n regex: new RegExp(\"GR1348941[\\\\w-]{20}\", ''),\n keywords: ['gr1348941'],\n entropy: 3,\n },\n {\n id: 'gitlab-runner-authentication-token',\n label: 'Gitlab Runner Authentication Token',\n regex: new RegExp(\"glrt-[0-9a-zA-Z_\\\\-]{20}\", ''),\n keywords: ['glrt-'],\n entropy: 3,\n },\n {\n id: 'gitlab-runner-authentication-token-routable',\n label: 'Gitlab Runner Authentication Token Routable',\n regex: new RegExp(\"\\\\bglrt-t\\\\d_[0-9a-zA-Z_\\\\-]{27,300}\\\\.[0-9a-z]{2}[0-9a-z]{7}\\\\b\", ''),\n keywords: ['glrt-'],\n entropy: 4,\n },\n {\n id: 'gitlab-scim-token',\n label: 'Gitlab Scim Token',\n regex: new RegExp(\"glsoat-[0-9a-zA-Z_\\\\-]{20}\", ''),\n keywords: ['glsoat-'],\n entropy: 3,\n },\n {\n id: 'gitlab-session-cookie',\n label: 'Gitlab Session Cookie',\n regex: new RegExp(\"_gitlab_session=[0-9a-z]{32}\", ''),\n keywords: ['_gitlab_session='],\n entropy: 3,\n },\n {\n id: 'gitter-access-token',\n label: 'Gitter Access Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:gitter)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9_-]{40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['gitter'],\n },\n {\n id: 'gocardless-api-token',\n label: 'Gocardless API Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:gocardless)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}(live_[a-z0-9\\\\-_=]{40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['live_', 'gocardless'],\n },\n {\n id: 'grafana-api-key',\n label: 'Grafana API Key',\n regex: new RegExp(\"\\\\b(eyJrIjoi[A-Za-z0-9]{70,400}={0,3})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['eyjrijoi'],\n entropy: 3,\n },\n {\n id: 'grafana-cloud-api-token',\n label: 'Grafana Cloud API Token',\n regex: new RegExp(\"\\\\b(glc_[A-Za-z0-9+/]{32,400}={0,3})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['glc_'],\n entropy: 3,\n },\n {\n id: 'grafana-service-account-token',\n label: 'Grafana Service Account Token',\n regex: new RegExp(\"\\\\b(glsa_[A-Za-z0-9]{32}_[A-Fa-f0-9]{8})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['glsa_'],\n entropy: 3,\n },\n {\n id: 'harness-api-key',\n label: 'Harness API Key',\n regex: new RegExp(\"(?:pat|sat)\\\\.[a-zA-Z0-9_-]{22}\\\\.[a-zA-Z0-9]{24}\\\\.[a-zA-Z0-9]{20}\", ''),\n keywords: ['pat.', 'sat.'],\n },\n {\n id: 'hashicorp-tf-api-token',\n label: 'Hashicorp Tf API Token',\n regex: new RegExp(\"[a-z0-9]{14}\\\\.(?:atlasv1)\\\\.[a-z0-9\\\\-_=]{60,70}\", 'i'),\n keywords: ['atlasv1'],\n entropy: 3.5,\n },\n {\n id: 'hashicorp-tf-password',\n label: 'Hashicorp Tf Password',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:administrator_login_password|password)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}(\\\"[a-z0-9=_\\\\-]{8,20}\\\")(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['administrator_login_password', 'password'],\n entropy: 2,\n },\n {\n id: 'heroku-api-key',\n label: 'Heroku API Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:heroku)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['heroku'],\n },\n {\n id: 'heroku-api-key-v2',\n label: 'Heroku API Key V2',\n regex: new RegExp(\"\\\\b((HRKU-AA[0-9a-zA-Z_-]{58}))(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['hrku-aa'],\n entropy: 4,\n },\n {\n id: 'hubspot-api-key',\n label: 'Hubspot API Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:hubspot)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['hubspot'],\n },\n {\n id: 'huggingface-access-token',\n label: 'Huggingface Access Token',\n regex: new RegExp(\"\\\\b(hf_(?:[a-z]{34}))(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['hf_'],\n entropy: 2,\n },\n {\n id: 'huggingface-organization-api-token',\n label: 'Huggingface Organization API Token',\n regex: new RegExp(\"\\\\b(api_org_(?:[a-z]{34}))(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['api_org_'],\n entropy: 2,\n },\n {\n id: 'infracost-api-token',\n label: 'Infracost API Token',\n regex: new RegExp(\"\\\\b(ico-[a-zA-Z0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['ico-'],\n entropy: 3,\n },\n {\n id: 'intercom-api-key',\n label: 'Intercom API Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:intercom)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9=_\\\\-]{60})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['intercom'],\n },\n {\n id: 'intra42-client-secret',\n label: 'Intra42 Client Secret',\n regex: new RegExp(\"\\\\b(s-s4t2(?:ud|af)-[abcdef0123456789]{64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['intra', 's-s4t2ud-', 's-s4t2af-'],\n entropy: 3,\n },\n {\n id: 'jfrog-api-key',\n label: 'Jfrog API Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:jfrog|artifactory|bintray|xray)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{73})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['jfrog', 'artifactory', 'bintray', 'xray'],\n },\n {\n id: 'jfrog-identity-token',\n label: 'Jfrog Identity Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:jfrog|artifactory|bintray|xray)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['jfrog', 'artifactory', 'bintray', 'xray'],\n },\n {\n id: 'jwt',\n label: 'JWT',\n regex: new RegExp(\"\\\\b(ey[a-zA-Z0-9]{17,}\\\\.ey[a-zA-Z0-9\\\\/\\\\\\\\_-]{17,}\\\\.(?:[a-zA-Z0-9\\\\/\\\\\\\\_-]{10,}={0,2})?)(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['ey'],\n entropy: 3,\n },\n {\n id: 'jwt-base64',\n label: 'JWT Base64',\n regex: new RegExp(\"\\\\bZXlK(?:(?<alg>aGJHY2lPaU)|(?<apu>aGNIVWlPaU)|(?<apv>aGNIWWlPaU)|(?<aud>aGRXUWlPaU)|(?<b64>aU5qUWlP)|(?<crit>amNtbDBJanBi)|(?<cty>amRIa2lPaU)|(?<epk>bGNHc2lPbn)|(?<enc>bGJtTWlPaU)|(?<jku>cWEzVWlPaU)|(?<jwk>cWQyc2lPb)|(?<iss>cGMzTWlPaU)|(?<iv>cGRpSTZJ)|(?<kid>cmFXUWlP)|(?<key_ops>clpYbGZiM0J6SWpwY)|(?<kty>cmRIa2lPaUp)|(?<nonce>dWIyNWpaU0k2)|(?<p2c>d01tTWlP)|(?<p2s>d01uTWlPaU)|(?<ppt>d2NIUWlPaU)|(?<sub>emRXSWlPaU)|(?<svt>emRuUWlP)|(?<tag>MFlXY2lPaU)|(?<typ>MGVYQWlPaUp)|(?<url>MWNtd2l)|(?<use>MWMyVWlPaUp)|(?<ver>MlpYSWlPaU)|(?<version>MlpYSnphVzl1SWpv)|(?<x>NElqb2)|(?<x5c>NE5XTWlP)|(?<x5t>NE5YUWlPaU)|(?<x5ts256>NE5YUWpVekkxTmlJNkl)|(?<x5u>NE5YVWlPaU)|(?<zip>NmFYQWlPaU))[a-zA-Z0-9\\\\/\\\\\\\\_+\\\\-\\\\r\\\\n]{40,}={0,2}\", ''),\n keywords: ['zxlk'],\n entropy: 2,\n },\n {\n id: 'kraken-access-token',\n label: 'Kraken Access Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:kraken)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9\\\\/=_\\\\+\\\\-]{80,90})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['kraken'],\n },\n {\n id: 'kubernetes-secret-yaml',\n label: 'Kubernetes Secret YAML',\n regex: new RegExp(\"(?:\\\\bkind:[ \\\\t]*[\\\"']?\\\\bsecret\\\\b[\\\"']?[\\\\s\\\\S]{0,200}?\\\\bdata:[\\\\s\\\\S]{0,100}?\\\\s+([\\\\w.-]+:(?:[ \\\\t]*(?:\\\\||>[-+]?)\\\\s+)?[ \\\\t]*(?:[\\\"']?[a-z0-9+/]{10,}={0,3}[\\\"']?|\\\\{\\\\{[ \\\\t\\\\w\\\"|$:=,.-]+}}|\\\"\\\"|''))|\\\\bdata:[\\\\s\\\\S]{0,100}?\\\\s+([\\\\w.-]+:(?:[ \\\\t]*(?:\\\\||>[-+]?)\\\\s+)?[ \\\\t]*(?:[\\\"']?[a-z0-9+/]{10,}={0,3}[\\\"']?|\\\\{\\\\{[ \\\\t\\\\w\\\"|$:=,.-]+}}|\\\"\\\"|''))[\\\\s\\\\S]{0,200}?\\\\bkind:[ \\\\t]*[\\\"']?\\\\bsecret\\\\b[\\\"']?)\", 'i'),\n keywords: ['secret'],\n allowlist: {\n regexes: [\n { regex: new RegExp(\"[\\\\w.-]+:(?:[ \\\\t]*(?:\\\\||>[-+]?)\\\\s+)?[ \\\\t]*(?:\\\\{\\\\{[ \\\\t\\\\w\\\"|$:=,.-]+}}|\\\"\\\"|'')\", '') },\n { regex: new RegExp(\"(kind:[\\\\s\\\\S]+\\\\n---\\\\n[\\\\s\\\\S]+\\\\bdata:|data:[\\\\s\\\\S]+\\\\n---\\\\n[\\\\s\\\\S]+\\\\bkind:)\", '') },\n ],\n },\n },\n {\n id: 'kucoin-access-token',\n label: 'Kucoin Access Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:kucoin)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-f0-9]{24})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['kucoin'],\n },\n {\n id: 'kucoin-secret-key',\n label: 'Kucoin Secret Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:kucoin)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['kucoin'],\n },\n {\n id: 'launchdarkly-access-token',\n label: 'Launchdarkly Access Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:launchdarkly)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9=_\\\\-]{40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['launchdarkly'],\n },\n {\n id: 'linear-api-key',\n label: 'Linear API Key',\n regex: new RegExp(\"lin_api_[a-z0-9]{40}\", 'i'),\n keywords: ['lin_api_'],\n entropy: 2,\n },\n {\n id: 'linear-client-secret',\n label: 'Linear Client Secret',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:linear)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-f0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['linear'],\n entropy: 2,\n },\n {\n id: 'linkedin-client-id',\n label: 'Linkedin Client ID',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:linked[_-]?in)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{14})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['linkedin', 'linked_in', 'linked-in'],\n entropy: 2,\n },\n {\n id: 'linkedin-client-secret',\n label: 'Linkedin Client Secret',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:linked[_-]?in)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{16})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['linkedin', 'linked_in', 'linked-in'],\n entropy: 2,\n },\n {\n id: 'lob-api-key',\n label: 'Lob API Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:lob)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}((live|test)_[a-f0-9]{35})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['test_', 'live_'],\n },\n {\n id: 'lob-pub-api-key',\n label: 'Lob Pub API Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:lob)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}((test|live)_pub_[a-f0-9]{31})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['test_pub', 'live_pub', '_pub'],\n },\n {\n id: 'looker-client-id',\n label: 'Looker Client ID',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:looker)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{20})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['looker'],\n },\n {\n id: 'looker-client-secret',\n label: 'Looker Client Secret',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:looker)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{24})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['looker'],\n },\n {\n id: 'mailchimp-api-key',\n label: 'Mailchimp API Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:MailchimpSDK.initialize|mailchimp)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-f0-9]{32}-us\\\\d\\\\d)(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['mailchimp'],\n },\n {\n id: 'mailgun-private-api-token',\n label: 'Mailgun Private API Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:mailgun)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}(key-[a-f0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['mailgun'],\n },\n {\n id: 'mailgun-pub-key',\n label: 'Mailgun Pub Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:mailgun)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}(pubkey-[a-f0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['mailgun'],\n },\n {\n id: 'mailgun-signing-key',\n label: 'Mailgun Signing Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:mailgun)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-h0-9]{32}-[a-h0-9]{8}-[a-h0-9]{8})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['mailgun'],\n },\n {\n id: 'mapbox-api-token',\n label: 'Mapbox API Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:mapbox)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}(pk\\\\.[a-z0-9]{60}\\\\.[a-z0-9]{22})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['mapbox'],\n },\n {\n id: 'mattermost-access-token',\n label: 'Mattermost Access Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:mattermost)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{26})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['mattermost'],\n },\n {\n id: 'maxmind-license-key',\n label: 'Maxmind License Key',\n regex: new RegExp(\"\\\\b([A-Za-z0-9]{6}_[A-Za-z0-9]{29}_mmk)(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['_mmk'],\n entropy: 4,\n },\n {\n id: 'messagebird-api-token',\n label: 'Messagebird API Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:message[_-]?bird)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{25})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['messagebird', 'message-bird', 'message_bird'],\n },\n {\n id: 'messagebird-client-id',\n label: 'Messagebird Client ID',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:message[_-]?bird)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['messagebird', 'message-bird', 'message_bird'],\n },\n {\n id: 'microsoft-teams-webhook',\n label: 'Microsoft Teams Webhook',\n regex: new RegExp(\"https://[a-z0-9]+\\\\.webhook\\\\.office\\\\.com/webhookb2/[a-z0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}@[a-z0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}/IncomingWebhook/[a-z0-9]{32}/[a-z0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}\", ''),\n keywords: ['webhook.office.com', 'webhookb2', 'incomingwebhook'],\n },\n {\n id: 'netlify-access-token',\n label: 'Netlify Access Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:netlify)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9=_\\\\-]{40,46})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['netlify'],\n },\n {\n id: 'new-relic-browser-api-token',\n label: 'New Relic Browser API Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:new-relic|newrelic|new_relic)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}(NRJS-[a-f0-9]{19})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['nrjs-'],\n },\n {\n id: 'new-relic-insert-key',\n label: 'New Relic Insert Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:new-relic|newrelic|new_relic)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}(NRII-[a-z0-9-]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['nrii-'],\n },\n {\n id: 'new-relic-user-api-id',\n label: 'New Relic User API ID',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:new-relic|newrelic|new_relic)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['new-relic', 'newrelic', 'new_relic'],\n },\n {\n id: 'new-relic-user-api-key',\n label: 'New Relic User API Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:new-relic|newrelic|new_relic)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}(NRAK-[a-z0-9]{27})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['nrak'],\n },\n {\n id: 'notion-api-token',\n label: 'Notion API Token',\n regex: new RegExp(\"\\\\b(ntn_[0-9]{11}[A-Za-z0-9]{32}[A-Za-z0-9]{3})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['ntn_'],\n entropy: 4,\n },\n {\n id: 'npm-access-token',\n label: 'NPM Access Token',\n regex: new RegExp(\"\\\\b(npm_[a-z0-9]{36})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['npm_'],\n entropy: 2,\n },\n {\n id: 'nuget-config-password',\n label: 'Nuget Config Password',\n regex: new RegExp(\"<add key=\\\\\\\"(?:(?:ClearText)?Password)\\\\\\\"\\\\s*value=\\\\\\\"(.{8,})\\\\\\\"\\\\s*/>\", 'i'),\n keywords: ['<add key='],\n entropy: 1,\n allowlist: {\n regexes: [\n { regex: new RegExp(\"33f!!lloppa\", '') },\n { regex: new RegExp(\"hal\\\\+9ooo_da!sY\", '') },\n { regex: new RegExp(\"^\\\\%\\\\S.*\\\\%$\", '') },\n ],\n },\n },\n {\n id: 'nytimes-access-token',\n label: 'Nytimes Access Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:nytimes|new-york-times,|newyorktimes)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9=_\\\\-]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['nytimes', 'new-york-times', 'newyorktimes'],\n },\n {\n id: 'octopus-deploy-api-key',\n label: 'Octopus Deploy API Key',\n regex: new RegExp(\"\\\\b(API-[A-Z0-9]{26})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['api-'],\n entropy: 3,\n },\n {\n id: 'okta-access-token',\n label: 'Okta Access Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:[\\\\w.-]{0,50}?(?:(?:[Oo]kta|OKTA))(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3})(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}(00[\\\\w=\\\\-]{40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['okta'],\n entropy: 4,\n },\n {\n id: 'openai-api-key',\n label: 'Openai API Key',\n regex: new RegExp(\"\\\\b(sk-(?:proj|svcacct|admin)-(?:[A-Za-z0-9_-]{74}|[A-Za-z0-9_-]{58})T3BlbkFJ(?:[A-Za-z0-9_-]{74}|[A-Za-z0-9_-]{58})\\\\b|sk-[a-zA-Z0-9]{20}T3BlbkFJ[a-zA-Z0-9]{20})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['t3blbkfj'],\n entropy: 3,\n },\n {\n id: 'openshift-user-token',\n label: 'Openshift User Token',\n regex: new RegExp(\"\\\\b(sha256~[\\\\w-]{43})(?:[^\\\\w-]|$)\", ''),\n keywords: ['sha256~'],\n entropy: 3.5,\n },\n {\n id: 'perplexity-api-key',\n label: 'Perplexity API Key',\n regex: new RegExp(\"\\\\b(pplx-[a-zA-Z0-9]{48})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$|\\\\b)\", ''),\n keywords: ['pplx-'],\n entropy: 4,\n },\n {\n id: 'plaid-api-token',\n label: 'Plaid API Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:plaid)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}(access-(?:sandbox|development|production)-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['plaid'],\n },\n {\n id: 'plaid-client-id',\n label: 'Plaid Client ID',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:plaid)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{24})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['plaid'],\n entropy: 3.5,\n },\n {\n id: 'plaid-secret-key',\n label: 'Plaid Secret Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:plaid)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{30})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['plaid'],\n entropy: 3.5,\n },\n {\n id: 'planetscale-api-token',\n label: 'Planetscale API Token',\n regex: new RegExp(\"\\\\b(pscale_tkn_[\\\\w=\\\\.-]{32,64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['pscale_tkn_'],\n entropy: 3,\n },\n {\n id: 'planetscale-oauth-token',\n label: 'Planetscale OAUTH Token',\n regex: new RegExp(\"\\\\b(pscale_oauth_[\\\\w=\\\\.-]{32,64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['pscale_oauth_'],\n entropy: 3,\n },\n {\n id: 'planetscale-password',\n label: 'Planetscale Password',\n regex: new RegExp(\"\\\\b(pscale_pw_[\\\\w=\\\\.-]{32,64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['pscale_pw_'],\n entropy: 3,\n },\n {\n id: 'postman-api-token',\n label: 'Postman API Token',\n regex: new RegExp(\"\\\\b(PMAK-[a-f0-9]{24}\\\\-[a-f0-9]{34})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['pmak-'],\n entropy: 3,\n },\n {\n id: 'prefect-api-token',\n label: 'Prefect API Token',\n regex: new RegExp(\"\\\\b(pnu_[a-zA-Z0-9]{36})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['pnu_'],\n entropy: 2,\n },\n {\n id: 'private-key',\n label: 'Private Key',\n regex: new RegExp(\"-----BEGIN[ A-Z0-9_-]{0,100}PRIVATE KEY(?: BLOCK)?-----[\\\\s\\\\S-]{64,}?KEY(?: BLOCK)?-----\", 'i'),\n keywords: ['-----begin'],\n },\n {\n id: 'privateai-api-token',\n label: 'Privateai API Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:[\\\\w.-]{0,50}?(?:private[_-]?ai)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3})(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['privateai', 'private_ai', 'private-ai'],\n entropy: 3,\n },\n {\n id: 'pulumi-api-token',\n label: 'Pulumi API Token',\n regex: new RegExp(\"\\\\b(pul-[a-f0-9]{40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['pul-'],\n entropy: 2,\n },\n {\n id: 'pypi-upload-token',\n label: 'Pypi Upload Token',\n regex: new RegExp(\"pypi-AgEIcHlwaS5vcmc[\\\\w-]{50,1000}\", ''),\n keywords: ['pypi-ageichlwas5vcmc'],\n entropy: 3,\n },\n {\n id: 'rapidapi-access-token',\n label: 'Rapidapi Access Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:rapidapi)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9_-]{50})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['rapidapi'],\n },\n {\n id: 'readme-api-token',\n label: 'Readme API Token',\n regex: new RegExp(\"\\\\b(rdme_[a-z0-9]{70})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['rdme_'],\n entropy: 2,\n },\n {\n id: 'rubygems-api-token',\n label: 'Rubygems API Token',\n regex: new RegExp(\"\\\\b(rubygems_[a-f0-9]{48})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['rubygems_'],\n entropy: 2,\n },\n {\n id: 'scalingo-api-token',\n label: 'Scalingo API Token',\n regex: new RegExp(\"\\\\b(tk-us-[\\\\w-]{48})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['tk-us-'],\n entropy: 2,\n },\n {\n id: 'sendbird-access-id',\n label: 'Sendbird Access ID',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:sendbird)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['sendbird'],\n },\n {\n id: 'sendbird-access-token',\n label: 'Sendbird Access Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:sendbird)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-f0-9]{40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['sendbird'],\n },\n {\n id: 'sendgrid-api-token',\n label: 'Sendgrid API Token',\n regex: new RegExp(\"\\\\b(SG\\\\.[a-z0-9=_\\\\-\\\\.]{66})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['sg.'],\n entropy: 2,\n },\n {\n id: 'sendinblue-api-token',\n label: 'Sendinblue API Token',\n regex: new RegExp(\"\\\\b(xkeysib-[a-f0-9]{64}\\\\-[a-z0-9]{16})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['xkeysib-'],\n entropy: 2,\n },\n {\n id: 'sentry-access-token',\n label: 'Sentry Access Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:sentry)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-f0-9]{64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['sentry'],\n entropy: 3,\n },\n {\n id: 'sentry-org-token',\n label: 'Sentry Org Token',\n regex: new RegExp(\"\\\\bsntrys_eyJpYXQiO[a-zA-Z0-9+/]{10,200}(?:LCJyZWdpb25fdXJs|InJlZ2lvbl91cmwi|cmVnaW9uX3VybCI6)[a-zA-Z0-9+/]{10,200}={0,2}_[a-zA-Z0-9+/]{43}(?:[^a-zA-Z0-9+/]|$)\", ''),\n keywords: ['sntrys_eyjpyxqio'],\n entropy: 4.5,\n },\n {\n id: 'sentry-user-token',\n label: 'Sentry User Token',\n regex: new RegExp(\"\\\\b(sntryu_[a-f0-9]{64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['sntryu_'],\n entropy: 3.5,\n },\n {\n id: 'settlemint-application-access-token',\n label: 'Settlemint Application Access Token',\n regex: new RegExp(\"\\\\b(sm_aat_[a-zA-Z0-9]{16})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['sm_aat'],\n entropy: 3,\n },\n {\n id: 'settlemint-personal-access-token',\n label: 'Settlemint Personal Access Token',\n regex: new RegExp(\"\\\\b(sm_pat_[a-zA-Z0-9]{16})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['sm_pat'],\n entropy: 3,\n },\n {\n id: 'settlemint-service-access-token',\n label: 'Settlemint Service Access Token',\n regex: new RegExp(\"\\\\b(sm_sat_[a-zA-Z0-9]{16})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['sm_sat'],\n entropy: 3,\n },\n {\n id: 'shippo-api-token',\n label: 'Shippo API Token',\n regex: new RegExp(\"\\\\b(shippo_(?:live|test)_[a-fA-F0-9]{40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['shippo_'],\n entropy: 2,\n },\n {\n id: 'shopify-access-token',\n label: 'Shopify Access Token',\n regex: new RegExp(\"shpat_[a-fA-F0-9]{32}\", ''),\n keywords: ['shpat_'],\n entropy: 2,\n },\n {\n id: 'shopify-custom-access-token',\n label: 'Shopify Custom Access Token',\n regex: new RegExp(\"shpca_[a-fA-F0-9]{32}\", ''),\n keywords: ['shpca_'],\n entropy: 2,\n },\n {\n id: 'shopify-private-app-access-token',\n label: 'Shopify Private App Access Token',\n regex: new RegExp(\"shppa_[a-fA-F0-9]{32}\", ''),\n keywords: ['shppa_'],\n entropy: 2,\n },\n {\n id: 'shopify-shared-secret',\n label: 'Shopify Shared Secret',\n regex: new RegExp(\"shpss_[a-fA-F0-9]{32}\", ''),\n keywords: ['shpss_'],\n entropy: 2,\n },\n {\n id: 'sidekiq-secret',\n label: 'Sidekiq Secret',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:BUNDLE_ENTERPRISE__CONTRIBSYS__COM|BUNDLE_GEMS__CONTRIBSYS__COM)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-f0-9]{8}:[a-f0-9]{8})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['bundle_enterprise__contribsys__com', 'bundle_gems__contribsys__com'],\n },\n {\n id: 'sidekiq-sensitive-url',\n label: 'Sidekiq Sensitive URL',\n regex: new RegExp(\"\\\\bhttps?://([a-f0-9]{8}:[a-f0-9]{8})@(?:gems.contribsys.com|enterprise.contribsys.com)(?:[\\\\/|\\\\#|\\\\?|:]|$)\", 'i'),\n keywords: ['gems.contribsys.com', 'enterprise.contribsys.com'],\n },\n {\n id: 'slack-app-token',\n label: 'Slack App Token',\n regex: new RegExp(\"xapp-\\\\d-[A-Z0-9]+-\\\\d+-[a-z0-9]+\", 'i'),\n keywords: ['xapp'],\n entropy: 2,\n },\n {\n id: 'slack-bot-token',\n label: 'Slack Bot Token',\n regex: new RegExp(\"xoxb-[0-9]{10,13}-[0-9]{10,13}[a-zA-Z0-9-]*\", ''),\n keywords: ['xoxb'],\n entropy: 3,\n },\n {\n id: 'slack-config-access-token',\n label: 'Slack Config Access Token',\n regex: new RegExp(\"xoxe.xox[bp]-\\\\d-[A-Z0-9]{163,166}\", 'i'),\n keywords: ['xoxe.xoxb-', 'xoxe.xoxp-'],\n entropy: 2,\n },\n {\n id: 'slack-config-refresh-token',\n label: 'Slack Config Refresh Token',\n regex: new RegExp(\"xoxe-\\\\d-[A-Z0-9]{146}\", 'i'),\n keywords: ['xoxe-'],\n entropy: 2,\n },\n {\n id: 'slack-legacy-bot-token',\n label: 'Slack Legacy Bot Token',\n regex: new RegExp(\"xoxb-[0-9]{8,14}-[a-zA-Z0-9]{18,26}\", ''),\n keywords: ['xoxb'],\n entropy: 2,\n },\n {\n id: 'slack-legacy-token',\n label: 'Slack Legacy Token',\n regex: new RegExp(\"xox[os]-\\\\d+-\\\\d+-\\\\d+-[a-fA-F\\\\d]+\", ''),\n keywords: ['xoxo', 'xoxs'],\n entropy: 2,\n },\n {\n id: 'slack-legacy-workspace-token',\n label: 'Slack Legacy Workspace Token',\n regex: new RegExp(\"xox[ar]-(?:\\\\d-)?[0-9a-zA-Z]{8,48}\", ''),\n keywords: ['xoxa', 'xoxr'],\n entropy: 2,\n },\n {\n id: 'slack-user-token',\n label: 'Slack User Token',\n regex: new RegExp(\"xox[pe](?:-[0-9]{10,13}){3}-[a-zA-Z0-9-]{28,34}\", ''),\n keywords: ['xoxp-', 'xoxe-'],\n entropy: 2,\n },\n {\n id: 'slack-webhook-url',\n label: 'Slack Webhook URL',\n regex: new RegExp(\"(?:https?://)?hooks.slack.com/(?:services|workflows|triggers)/[A-Za-z0-9+/]{43,56}\", ''),\n keywords: ['hooks.slack.com'],\n },\n {\n id: 'snyk-api-token',\n label: 'Snyk API Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:snyk[_.-]?(?:(?:api|oauth)[_.-]?)?(?:key|token))(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['snyk'],\n },\n {\n id: 'sonar-api-token',\n label: 'Sonar API Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:sonar[_.-]?(login|token))(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}((?:squ_|sqp_|sqa_)?[a-z0-9=_\\\\-]{40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['sonar'],\n secretGroup: 2,\n },\n {\n id: 'sourcegraph-access-token',\n label: 'Sourcegraph Access Token',\n regex: new RegExp(\"\\\\b(\\\\b(sgp_(?:[a-fA-F0-9]{16}|local)_[a-fA-F0-9]{40}|sgp_[a-fA-F0-9]{40}|[a-fA-F0-9]{40})\\\\b)(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['sgp_', 'sourcegraph'],\n entropy: 3,\n },\n {\n id: 'square-access-token',\n label: 'Square Access Token',\n regex: new RegExp(\"\\\\b((?:EAAA|sq0atp-)[\\\\w-]{22,60})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['sq0atp-', 'eaaa'],\n entropy: 2,\n },\n {\n id: 'squarespace-access-token',\n label: 'Squarespace Access Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:squarespace)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['squarespace'],\n },\n {\n id: 'stripe-access-token',\n label: 'Stripe Access Token',\n regex: new RegExp(\"\\\\b((?:sk|rk)_(?:test|live|prod)_[a-zA-Z0-9]{10,99})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['sk_test', 'sk_live', 'sk_prod', 'rk_test', 'rk_live', 'rk_prod'],\n entropy: 2,\n },\n {\n id: 'sumologic-access-id',\n label: 'Sumologic Access ID',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:[\\\\w.-]{0,50}?(?:(?:[Ss]umo|SUMO))(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3})(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}(su[a-zA-Z0-9]{12})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['sumo'],\n entropy: 3,\n },\n {\n id: 'sumologic-access-token',\n label: 'Sumologic Access Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:(?:[Ss]umo|SUMO))(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['sumo'],\n entropy: 3,\n },\n {\n id: 'telegram-bot-api-token',\n label: 'Telegram Bot API Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:telegr)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([0-9]{5,16}:(?:A)[a-z0-9_\\\\-]{34})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['telegr'],\n },\n {\n id: 'travisci-access-token',\n label: 'Travisci Access Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:travis)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{22})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['travis'],\n },\n {\n id: 'twilio-api-key',\n label: 'Twilio API Key',\n regex: new RegExp(\"SK[0-9a-fA-F]{32}\", ''),\n keywords: ['sk'],\n entropy: 3,\n },\n {\n id: 'twitch-api-token',\n label: 'Twitch API Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:twitch)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{30})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['twitch'],\n },\n {\n id: 'twitter-access-secret',\n label: 'Twitter Access Secret',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:twitter)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{45})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['twitter'],\n },\n {\n id: 'twitter-access-token',\n label: 'Twitter Access Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:twitter)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([0-9]{15,25}-[a-zA-Z0-9]{20,40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['twitter'],\n },\n {\n id: 'twitter-api-key',\n label: 'Twitter API Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:twitter)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{25})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['twitter'],\n },\n {\n id: 'twitter-api-secret',\n label: 'Twitter API Secret',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:twitter)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{50})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['twitter'],\n },\n {\n id: 'twitter-bearer-token',\n label: 'Twitter Bearer Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:twitter)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}(A{22}[a-zA-Z0-9%]{80,100})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['twitter'],\n },\n {\n id: 'typeform-api-token',\n label: 'Typeform API Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:typeform)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}(tfp_[a-z0-9\\\\-_\\\\.=]{59})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['tfp_'],\n },\n {\n id: 'vault-batch-token',\n label: 'Vault Batch Token',\n regex: new RegExp(\"\\\\b(hvb\\\\.[\\\\w-]{138,300})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", ''),\n keywords: ['hvb.'],\n entropy: 4,\n },\n {\n id: 'vault-service-token',\n label: 'Vault Service Token',\n regex: new RegExp(\"\\\\b((?:hvs\\\\.[\\\\w-]{90,120}|s\\\\.(?:[a-z0-9]{24})))(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['hvs.', 's.'],\n entropy: 3.5,\n allowlist: {\n regexes: [\n { regex: new RegExp(\"s\\\\.[A-Za-z]{24}\", '') },\n ],\n },\n },\n {\n id: 'yandex-access-token',\n label: 'Yandex Access Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:yandex)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}(t1\\\\.[A-Z0-9a-z_-]+[=]{0,2}\\\\.[A-Z0-9a-z_-]{86}[=]{0,2})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['yandex'],\n },\n {\n id: 'yandex-api-key',\n label: 'Yandex API Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:yandex)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}(AQVN[A-Za-z0-9_\\\\-]{35,38})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['yandex'],\n },\n {\n id: 'yandex-aws-access-token',\n label: 'Yandex AWS Access Token',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:yandex)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}(YC[a-zA-Z0-9_\\\\-]{38})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['yandex'],\n },\n {\n id: 'zendesk-secret-key',\n label: 'Zendesk Secret Key',\n regex: new RegExp(\"[\\\\w.-]{0,50}?(?:zendesk)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\", 'i'),\n keywords: ['zendesk'],\n }\n]\n","/**\n * Shannon entropy calculation.\n *\n * Measures the randomness of a string. Higher entropy = more random = more\n * likely to be a real secret. Gitleaks uses entropy thresholds on many rules\n * to reduce false positives.\n *\n * Formula: H = -Σ p(x) * log2(p(x)) for each unique character x\n */\nexport function shannonEntropy(s: string): number {\n if (s.length === 0) return 0\n\n const freq = new Map<string, number>()\n for (const ch of s) {\n freq.set(ch, (freq.get(ch) ?? 0) + 1)\n }\n\n let entropy = 0\n const len = s.length\n for (const count of freq.values()) {\n const p = count / len\n entropy -= p * Math.log2(p)\n }\n\n return entropy\n}\n","/**\n * @sanity-labs/secret-scan\n *\n * Detect and redact secrets in strings. Works in browser and Node.js.\n * Zero runtime dependencies. Rules derived from gitleaks (MIT licensed).\n */\n\nimport { rules, globalAllowlist, type Rule } from './rules.js'\nimport { shannonEntropy } from './entropy.js'\n\n// --- Public types ---\n\nexport interface Secret {\n /** Gitleaks rule ID, e.g. 'openai-api-key' */\n rule: string\n /** Human-readable label, e.g. 'OpenAI API Key' */\n label: string\n /** The matched secret value */\n text: string\n /** Match confidence: 'high' for provider-specific patterns, 'medium' for generic/entropy-based */\n confidence: 'high' | 'medium'\n /** Start index of the secret in the input string */\n start: number\n /** End index (exclusive) of the secret in the input string */\n end: number\n}\n\n// --- Keyword index ---\n\n// Build a map from keyword → rules that use it, for fast pre-filtering.\n// Most rules have keywords; we only run a rule's regex if the input contains\n// one of its keywords (case-insensitive).\nconst keywordIndex = new Map<string, Rule[]>()\nconst rulesWithoutKeywords: Rule[] = []\n\nfor (const rule of rules) {\n if (rule.keywords.length === 0) {\n rulesWithoutKeywords.push(rule)\n } else {\n for (const kw of rule.keywords) {\n const lower = kw.toLowerCase()\n let list = keywordIndex.get(lower)\n if (!list) {\n list = []\n keywordIndex.set(lower, list)\n }\n list.push(rule)\n }\n }\n}\n\n// --- Global allowlist ---\n\nfunction isGlobalAllowlisted(secret: string): boolean {\n // Check global allowlist regexes against the secret value\n for (const { regex } of globalAllowlist.regexes) {\n if (regex.test(secret)) return true\n }\n\n // Check global stopwords\n const lower = secret.toLowerCase()\n for (const stopword of globalAllowlist.stopwords) {\n if (lower === stopword.toLowerCase()) return true\n }\n\n return false\n}\n\n// --- Rule allowlist ---\n\nfunction isRuleAllowlisted(rule: Rule, secret: string, fullMatch: string, line: string): boolean {\n if (!rule.allowlist) return false\n\n // Check rule-specific regexes\n if (rule.allowlist.regexes) {\n for (const { regex, target } of rule.allowlist.regexes) {\n const testStr = target === 'line' ? line : (target === 'match' ? fullMatch : secret)\n if (regex.test(testStr)) return true\n }\n }\n\n // Check rule-specific stopwords (matched against the secret value)\n if (rule.allowlist.stopwords) {\n const lower = secret.toLowerCase()\n for (const stopword of rule.allowlist.stopwords) {\n if (lower.includes(stopword.toLowerCase())) return true\n }\n }\n\n return false\n}\n\n// --- Core scanning ---\n\nfunction getCandidateRules(inputLower: string): Set<Rule> {\n const candidates = new Set<Rule>()\n\n // Always include rules without keywords\n for (const rule of rulesWithoutKeywords) {\n candidates.add(rule)\n }\n\n // Check which keywords appear in the input\n for (const [keyword, kwRules] of keywordIndex) {\n if (inputLower.includes(keyword)) {\n for (const rule of kwRules) {\n candidates.add(rule)\n }\n }\n }\n\n return candidates\n}\n\nfunction getLineForIndex(input: string, index: number): string {\n const lineStart = input.lastIndexOf('\\n', index - 1) + 1\n let lineEnd = input.indexOf('\\n', index)\n if (lineEnd === -1) lineEnd = input.length\n return input.slice(lineStart, lineEnd)\n}\n\nfunction extractSecret(match: RegExpExecArray, rule: Rule): string {\n // Use secretGroup if specified, otherwise use first capture group, otherwise full match\n const groupIndex = rule.secretGroup ?? 1\n // Try the specified group, fall back through groups, then full match\n if (match[groupIndex] !== undefined) return match[groupIndex]\n // If the specified group didn't match (e.g., alternation), try other groups\n for (let i = 1; i < match.length; i++) {\n if (match[i] !== undefined) return match[i]\n }\n return match[0]\n}\n\nconst GENERIC_RULE_IDS = new Set(['generic-api-key'])\n\n/**\n * Scan a string for secrets.\n *\n * Returns an array of every secret found in the input. Uses keyword\n * pre-filtering for performance — most of the 221 regexes are skipped\n * for any given input.\n */\nexport function scan(input: string): Secret[] {\n if (!input) return []\n\n const inputLower = input.toLowerCase()\n const candidates = getCandidateRules(inputLower)\n const secrets: Secret[] = []\n\n // Track matched ranges to avoid overlapping detections\n const matchedRanges: Array<{ start: number; end: number }> = []\n\n for (const rule of candidates) {\n // Reset regex lastIndex for global-like iteration\n const regex = new RegExp(rule.regex.source, rule.regex.flags.replace('g', '') + 'g')\n\n let match: RegExpExecArray | null\n while ((match = regex.exec(input)) !== null) {\n const secret = extractSecret(match, rule)\n if (!secret) continue\n\n // Find the secret's position in the input\n const secretStart = input.indexOf(secret, match.index)\n const start = secretStart >= 0 ? secretStart : match.index\n const end = start + secret.length\n\n // Skip if this range overlaps with an already-detected secret\n // (prefer the first/more specific match)\n const overlaps = matchedRanges.some(\n (r) => start < r.end && end > r.start\n )\n if (overlaps) continue\n\n // Check entropy threshold\n if (rule.entropy !== undefined) {\n const entropy = shannonEntropy(secret)\n if (entropy < rule.entropy) continue\n }\n\n // Check global allowlist\n if (isGlobalAllowlisted(secret)) continue\n\n // Check rule-specific allowlist\n const line = getLineForIndex(input, match.index)\n if (isRuleAllowlisted(rule, secret, match[0], line)) continue\n\n const confidence = GENERIC_RULE_IDS.has(rule.id) ? 'medium' : 'high'\n\n secrets.push({\n rule: rule.id,\n label: rule.label,\n text: secret,\n confidence,\n start,\n end,\n })\n\n matchedRanges.push({ start, end })\n\n // Prevent infinite loop on zero-length matches\n if (match[0].length === 0) regex.lastIndex++\n }\n }\n\n // Sort by position in input\n secrets.sort((a, b) => a.start - b.start)\n\n return secrets\n}\n\n/**\n * Find and replace secrets in a string.\n *\n * Calls `replacer` for each detected secret. The return value replaces\n * the secret in the output string. The caller owns all state — `redact`\n * just does string replacement.\n *\n * Replacements are applied from right to left to preserve string indices.\n */\nexport function redact(\n input: string,\n replacer: (secret: Secret) => string\n): string {\n const secrets = scan(input)\n if (secrets.length === 0) return input\n\n // Apply replacements right-to-left to preserve indices\n let result = input\n for (let i = secrets.length - 1; i >= 0; i--) {\n const secret = secrets[i]\n const replacement = replacer(secret)\n result = result.slice(0, secret.start) + replacement + result.slice(secret.end)\n }\n\n return result\n}\n\n// Re-export types and utilities\nexport { shannonEntropy } from './entropy.js'\nexport type { Rule } from './rules.js'\n"],"mappings":"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","names":[]}
package/package.json ADDED
@@ -0,0 +1,45 @@
1
+ {
2
+ "name": "@sanity-labs/secret-scan",
3
+ "version": "0.1.0",
4
+ "description": "Secret detection library based on gitleaks rules",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./dist/index.js",
10
+ "require": "./dist/index.cjs"
11
+ }
12
+ },
13
+ "main": "./dist/index.cjs",
14
+ "module": "./dist/index.js",
15
+ "types": "./dist/index.d.ts",
16
+ "files": [
17
+ "dist"
18
+ ],
19
+ "scripts": {
20
+ "build": "tsup",
21
+ "test": "vitest run",
22
+ "test:watch": "vitest",
23
+ "update-rules": "tsx scripts/update-rules.ts",
24
+ "prepublishOnly": "npm run build"
25
+ },
26
+ "devDependencies": {
27
+ "tsup": "^8.0.0",
28
+ "typescript": "^5.7.0",
29
+ "vitest": "^3.0.0",
30
+ "tsx": "^4.0.0",
31
+ "@iarna/toml": "^2.2.5"
32
+ },
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "https://github.com/sanity-labs/secret-scan.git"
36
+ },
37
+ "keywords": [
38
+ "secret",
39
+ "scan",
40
+ "detect",
41
+ "redact",
42
+ "gitleaks",
43
+ "security"
44
+ ]
45
+ }