{"version":3,"file":"secret-scanner.cjs","sources":["../../src/secret-scanner/core/detection/literals.ts","../../src/secret-scanner/core/detection/placeholders.ts","../../src/secret-scanner/core/detection/position.ts","../../src/secret-scanner/rules/rules.generated.ts","../../src/secret-scanner/core/detection/ruleDetectors.ts","../../src/secret-scanner/core/detection/entropy.ts","../../src/secret-scanner/core/detection/embedded.ts","../../src/secret-scanner/core/detection/highEntropy.ts","../../src/secret-scanner/core/detection/nameDetector.ts","../../src/secret-scanner/core/memoizeLatest.ts","../../src/secret-scanner/core/scanCode.ts","../../src/secret-scanner/core/scanText.ts","../../src/secret-scanner/core/constants.ts","../../src/secret-scanner/core/k6Rewriter.ts","../../src/secret-scanner/core/secretScanner.utils.ts","../../src/secret-scanner/monaco/installSecretScanner.ts","../../src/secret-scanner/react/useLocalStorageList.ts","../../src/secret-scanner/react/useIgnoredSecrets.ts","../../src/secret-scanner/react/useSecretScanner.ts","../../src/secret-scanner/react/useMonacoSecretScanner.ts","../../src/secret-scanner/panel/SecretScannerPanel.tsx","../../src/secret-scanner/panel/SecretReferenceModal.tsx"],"sourcesContent":["import { Parser, type Options } from 'acorn';\nimport * as acornLoose from 'acorn-loose';\nimport { tsPlugin } from 'acorn-typescript';\n\n// acorn extended with a TypeScript-aware plugin\nconst TsParser = Parser.extend(tsPlugin() as unknown as Parameters<typeof Parser.extend>[0]);\n\nconst PARSE_OPTIONS: Options = { ecmaVersion: 'latest', sourceType: 'module' };\n\n/**\n * Parses the script into an offset-accurate AST, preferring fidelity but never\n * throwing.\n *\n * Three tiers, fastest first:\n *\n *  1. Plain acorn. It is ~5x faster than the TS-aware parser and succeeds on\n *     plain-JS scripts (the common case for k6). Crucially, plain JS has no\n *     type positions, so there is no type-position literal to mis-flag — a file\n *     acorn accepts is genuinely JS. Any TypeScript syntax makes it throw, which\n *     just falls through to tier 2.\n *  2. The TS-aware parser (`acorn` + `acorn-typescript`). Handles type\n *     annotations and distinguishes type-position literals (`type K = 'AKIA…'`,\n *     `x: 'live' | 'test'`) from runtime values, so it won't flag a\n *     secret-shaped string that only appears in a type. It rejects the whole\n *     file on a construct `acorn-typescript` doesn't implement (e.g.\n *     `satisfies`) or on a mid-edit syntax error.\n *  3. `acorn-loose`. Recovers around bad tokens and always returns a best-effort\n *     tree with source-accurate offsets, so one unsupported construct or a\n *     transient syntax error no longer blanks every finding in the file. The\n *     loose tree is not TS-aware, so a type-position literal in a recovered file\n *     may be flagged; a low-confidence false positive in an already-unusual file\n *     is preferable to missing a secret.\n *\n * Returns null only if even the loose parse throws, which it is not expected to.\n */\nfunction parseScript(script: string): AstNode | null {\n  try {\n    return Parser.parse(script, PARSE_OPTIONS) as unknown as AstNode;\n  } catch {\n    try {\n      return TsParser.parse(script, PARSE_OPTIONS) as unknown as AstNode;\n    } catch {\n      try {\n        return acornLoose.parse(script, PARSE_OPTIONS) as unknown as AstNode;\n      } catch {\n        return null;\n      }\n    }\n  }\n}\n\nexport interface StringLiteral {\n  body: string;\n  literalStart: number;\n  literalEnd: number;\n  contentStart: number;\n  contentEnd: number;\n  kind: 'string' | 'template';\n  name?: string;\n  embeddedOnly?: boolean;\n}\n\ninterface AstNode {\n  type: string;\n  start: number;\n  end: number;\n  [key: string]: unknown;\n}\n\nfunction isNode(value: unknown): value is AstNode {\n  return typeof value === 'object' && value !== null && typeof (value as AstNode).type === 'string';\n}\n\n/**\n * Depth-first walk that appends every string / template literal to `out`.\n *\n * A plain recursive function rather than a generator: on a large AST the\n * `yield*` delegation and per-node iterator allocation of a generator walk cost\n * more than the traversal itself. This visits the same nodes with none of that\n * overhead.\n */\nfunction collectStringLiterals(node: unknown, parent: AstNode | null, out: StringLiteral[]): void {\n  if (Array.isArray(node)) {\n    for (const item of node) {\n      collectStringLiterals(item, parent, out);\n    }\n    return;\n  }\n  if (!isNode(node)) {\n    return;\n  }\n\n  if (node.type === 'Literal' && typeof node.value === 'string') {\n    out.push({\n      body: node.value.trim(),\n      literalStart: node.start,\n      literalEnd: node.end,\n      contentStart: node.start + 1,\n      contentEnd: node.end - 1,\n      kind: 'string',\n      name: resolveAssignedName(node, parent),\n    });\n  } else if (node.type === 'TemplateLiteral' && Array.isArray(node.expressions)) {\n    const quasis = node.quasis as Array<{ start: number; end: number; value: { cooked?: string | null } }>;\n    if (node.expressions.length === 0) {\n      const cooked = quasis[0]?.value.cooked ?? '';\n      out.push({\n        body: cooked.trim(),\n        literalStart: node.start,\n        literalEnd: node.end,\n        contentStart: node.start + 1,\n        contentEnd: node.end - 1,\n        kind: 'template',\n        name: resolveAssignedName(node, parent),\n      });\n    } else {\n      for (const quasi of quasis) {\n        const cooked = quasi.value.cooked ?? '';\n        if (cooked.length === 0) {\n          continue;\n        }\n        out.push({\n          body: cooked.trim(),\n          literalStart: quasi.start,\n          literalEnd: quasi.end,\n          contentStart: quasi.start,\n          contentEnd: quasi.end,\n          kind: 'template',\n          embeddedOnly: true,\n        });\n      }\n    }\n  }\n\n  for (const key of Object.keys(node)) {\n    collectStringLiterals(node[key], node, out);\n  }\n}\n\nfunction identifierName(id: unknown): string | undefined {\n  return isNode(id) && id.type === 'Identifier' ? (id.name as string) : undefined;\n}\n\n/** Name of an object/class member key: `foo`, `'foo'` or `['foo']`. */\nfunction memberName(key: unknown): string | undefined {\n  if (!isNode(key)) {\n    return undefined;\n  }\n  if (key.type === 'Identifier') {\n    return key.name as string;\n  }\n  if (key.type === 'Literal' && typeof key.value === 'string') {\n    return key.value;\n  }\n  return undefined;\n}\n\n/** Name an assignment targets: `foo = …` or `obj.foo = …`. */\nfunction assignmentTargetName(target: unknown): string | undefined {\n  if (!isNode(target)) {\n    return undefined;\n  }\n  if (target.type === 'Identifier') {\n    return target.name as string;\n  }\n  if (target.type === 'MemberExpression') {\n    return memberName(target.property);\n  }\n  return undefined;\n}\n\nfunction resolveAssignedName(node: AstNode, parent: AstNode | null): string | undefined {\n  if (!parent) {\n    return undefined;\n  }\n  switch (parent.type) {\n    case 'VariableDeclarator':\n      return parent.init === node ? identifierName(parent.id) : undefined;\n    case 'Property':\n    case 'PropertyDefinition':\n      return parent.value === node ? memberName(parent.key) : undefined;\n    case 'AssignmentExpression':\n      return parent.right === node ? assignmentTargetName(parent.left) : undefined;\n    default:\n      return undefined;\n  }\n}\n\n/**\n * Every string / template literal in the script, in source order, with its\n * decoded body and original offsets. An interpolated template yields one entry\n * per static chunk (`embeddedOnly`) rather than a single whole-value entry.\n */\nexport function iterateStringLiterals(script: string): StringLiteral[] {\n  const ast = parseScript(script);\n  if (!ast) {\n    return [];\n  }\n\n  const literals: StringLiteral[] = [];\n  collectStringLiterals(ast, null, literals);\n  return literals;\n}\n","// cspell:ignore changeme\n\n// Values that look secret-shaped but are obviously placeholders. Skipping these\n// keeps the warning noise down so the real findings stand out.\nconst PLACEHOLDER_PATTERN =\n  /^(your|my|the|some|example|sample|changeme|placeholder|todo|xxx+|test|dummy|<.*>|\\{\\{.*\\}\\})/i;\n\nexport function isPlaceholder(value: string): boolean {\n  if (PLACEHOLDER_PATTERN.test(value)) {\n    return true;\n  }\n\n  // A single repeated character (aaaa…, xxxx…, 0000…) is never a real secret.\n  return /^(.)\\1+$/.test(value);\n}\n","/**\n * Converts a character offset into a 1-based {line, column}.\n */\nexport function offsetToPosition(text: string, offset: number) {\n  let line = 1;\n  let column = 1;\n  const end = Math.min(offset, text.length);\n\n  for (let i = 0; i < end; i++) {\n    if (text[i] === '\\n') {\n      line++;\n      column = 1;\n    } else {\n      column++;\n    }\n  }\n\n  return { line, column };\n}\n\n/**\n * Builds a reusable offset→{line, column} resolver for one document.\n */\nexport function createPositionResolver(text: string) {\n  // lineStarts[i] = offset where line (i + 1) begins. Line 1 starts at 0.\n  const lineStarts = [0];\n  for (let i = 0; i < text.length; i++) {\n    if (text[i] === '\\n') {\n      lineStarts.push(i + 1);\n    }\n  }\n\n  return function positionAt(offset: number) {\n    const target = Math.min(Math.max(offset, 0), text.length);\n    let lo = 0;\n    let hi = lineStarts.length - 1;\n    while (lo < hi) {\n      const mid = (lo + hi + 1) >> 1;\n      if (lineStarts[mid]! <= target) {\n        lo = mid;\n      } else {\n        hi = mid - 1;\n      }\n    }\n    return { line: lo + 1, column: target - lineStarts[lo]! + 1 };\n  };\n}\n","/* eslint-disable */\n// GENERATED FILE — DO NOT EDIT.\n// Produced by `yarn gen:secret-rules` from ./custom.toml and ./gitleaks.toml.\n//\n// GITLEAKS_RULES is derived from the gitleaks default configuration\n// (https://github.com/gitleaks/gitleaks), Copyright (c) 2019 Zachary Rice,\n// licensed under the MIT License. Full text: ./gitleaks-LICENSE\n\n/** A secret-detection rule in gitleaks rule format, narrowed to the fields we use. */\nexport interface SecretRule {\n  id: string;\n  description?: string;\n  regex?: string;\n  confidence?: 'high' | 'medium' | 'low';\n  entropy?: number;\n  keywords?: string[];\n}\n\n/** Grafana's tuned patterns. Authoritative over the gitleaks long tail. */\nexport const CUSTOM_RULES: SecretRule[] = [\n  {\n    \"id\": \"private-key\",\n    \"description\": \"Identified a private key, which may compromise cryptographic security and sensitive data encryption.\",\n    \"regex\": \"-----BEGIN (?:RSA |EC |OPENSSH |DSA |PGP )?PRIVATE KEY-----\",\n    \"confidence\": \"high\",\n    \"keywords\": [\n      \"-----begin\"\n    ]\n  },\n  {\n    \"id\": \"aws-access-key-id\",\n    \"description\": \"Identified an AWS access key ID, risking unauthorized access to cloud resources and data breaches on AWS platforms.\",\n    \"regex\": \"(?:AKIA|ASIA|AGPA|AIDA|AROA|ANPA)[A-Z0-9]{16}\",\n    \"confidence\": \"high\",\n    \"keywords\": [\n      \"akia\",\n      \"asia\",\n      \"agpa\",\n      \"aida\",\n      \"aroa\",\n      \"anpa\"\n    ]\n  },\n  {\n    \"id\": \"github-token\",\n    \"description\": \"Uncovered a GitHub token, potentially leading to unauthorized repository access and sensitive content exposure.\",\n    \"regex\": \"(?:ghp|gho|ghu|ghs|ghr|github_pat)_[A-Za-z0-9_]{20,}\",\n    \"confidence\": \"high\",\n    \"keywords\": [\n      \"ghp_\",\n      \"gho_\",\n      \"ghu_\",\n      \"ghs_\",\n      \"ghr_\",\n      \"github_pat\"\n    ]\n  },\n  {\n    \"id\": \"slack-token\",\n    \"description\": \"Identified a Slack token, which may compromise bot integrations and communication channel security.\",\n    \"regex\": \"xox[baprs]-[A-Za-z0-9-]{10,}\",\n    \"confidence\": \"high\",\n    \"keywords\": [\n      \"xox\"\n    ]\n  },\n  {\n    \"id\": \"google-api-key\",\n    \"description\": \"Uncovered a Google API key, which could lead to unauthorized access to Google Cloud services and data breaches.\",\n    \"regex\": \"AIza[0-9A-Za-z_-]{35}\",\n    \"confidence\": \"high\",\n    \"keywords\": [\n      \"aiza\"\n    ]\n  },\n  {\n    \"id\": \"grafana-token\",\n    \"description\": \"Discovered a Grafana token, posing a risk of compromised monitoring services and data integrity.\",\n    \"regex\": \"gl(?:sa_[A-Za-z0-9]{16,}_[A-Za-z0-9]{6,}|c_[A-Za-z0-9+/=_-]{32,}|api_[A-Za-z0-9]{16,})\",\n    \"confidence\": \"high\",\n    \"keywords\": [\n      \"glsa_\",\n      \"glc_\",\n      \"glapi_\"\n    ]\n  },\n  {\n    \"id\": \"stripe-key\",\n    \"description\": \"Found a Stripe key, posing a risk to payment processing services and sensitive financial data.\",\n    \"regex\": \"(?:sk|rk|pk)_(?:live|test)_[0-9A-Za-z]{16,}\",\n    \"confidence\": \"high\",\n    \"keywords\": [\n      \"sk_\",\n      \"rk_\",\n      \"pk_\"\n    ]\n  },\n  {\n    \"id\": \"jwt\",\n    \"description\": \"Uncovered a JSON Web Token, which may lead to unauthorized access to web applications and sensitive user data.\",\n    \"regex\": \"eyJ[A-Za-z0-9_/+-]{6,}={0,2}(?:\\\\.[A-Za-z0-9_/+-]{6,}={0,2}){2}\",\n    \"confidence\": \"high\",\n    \"keywords\": [\n      \"eyj\"\n    ]\n  },\n  {\n    \"id\": \"authorization-bearer\",\n    \"description\": \"Detected an Authorization Bearer token, which may grant unauthorized access to protected APIs and services.\",\n    \"regex\": \"(?i)bearer\\\\s+([a-z0-9._~+/=-]{20,})\",\n    \"confidence\": \"medium\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"bearer\"\n    ]\n  },\n  {\n    \"id\": \"basic-auth-url-credentials\",\n    \"description\": \"Detected credentials embedded in a URL (user:password@host), risking exposure of account passwords and unauthorized access.\",\n    \"regex\": \"://[^:@/\\\\s]+:([^@/\\\\s]{6,})@\",\n    \"confidence\": \"medium\",\n    \"keywords\": [\n      \"://\"\n    ]\n  }\n];\n\n/** The vendored gitleaks long tail. */\nexport const GITLEAKS_RULES: SecretRule[] = [\n  {\n    \"id\": \"1password-secret-key\",\n    \"description\": \"Uncovered a possible 1Password secret key, potentially compromising access to secrets in vaults.\",\n    \"regex\": \"\\\\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    \"entropy\": 3.8,\n    \"keywords\": [\n      \"a3-\"\n    ]\n  },\n  {\n    \"id\": \"1password-service-account-token\",\n    \"description\": \"Uncovered a possible 1Password service account token, potentially compromising access to secrets in vaults.\",\n    \"regex\": \"ops_eyJ[a-zA-Z0-9+/]{250,}={0,3}\",\n    \"entropy\": 4,\n    \"keywords\": [\n      \"ops_\"\n    ]\n  },\n  {\n    \"id\": \"adafruit-api-key\",\n    \"description\": \"Identified a potential Adafruit API Key, which could lead to unauthorized access to Adafruit services and sensitive data exposure.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:adafruit)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9_-]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"adafruit\"\n    ]\n  },\n  {\n    \"id\": \"adobe-client-id\",\n    \"description\": \"Detected a pattern that resembles an Adobe OAuth Web Client ID, posing a risk of compromised Adobe integrations and data breaches.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:adobe)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-f0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"adobe\"\n    ]\n  },\n  {\n    \"id\": \"adobe-client-secret\",\n    \"description\": \"Discovered a potential Adobe Client Secret, which, if exposed, could allow unauthorized Adobe service access and data manipulation.\",\n    \"regex\": \"\\\\b(p8e-(?i)[a-z0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"p8e-\"\n    ]\n  },\n  {\n    \"id\": \"age-secret-key\",\n    \"description\": \"Discovered a potential Age encryption tool secret key, risking data decryption and unauthorized access to sensitive information.\",\n    \"regex\": \"AGE-SECRET-KEY-1[QPZRY9X8GF2TVDW0S3JN54KHCE6MUA7L]{58}\",\n    \"keywords\": [\n      \"age-secret-key-1\"\n    ]\n  },\n  {\n    \"id\": \"airtable-api-key\",\n    \"description\": \"Uncovered a possible Airtable API Key, potentially compromising database access and leading to data leakage or alteration.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:airtable)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{17})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"airtable\"\n    ]\n  },\n  {\n    \"id\": \"airtable-personnal-access-token\",\n    \"description\": \"Uncovered a possible Airtable Personal AccessToken, potentially compromising database access and leading to data leakage or alteration.\",\n    \"regex\": \"\\\\b(pat[[:alnum:]]{14}\\\\.[a-f0-9]{64})\\\\b\",\n    \"keywords\": [\n      \"airtable\"\n    ]\n  },\n  {\n    \"id\": \"algolia-api-key\",\n    \"description\": \"Identified an Algolia API Key, which could result in unauthorized search operations and data exposure on Algolia-managed platforms.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:algolia)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"algolia\"\n    ]\n  },\n  {\n    \"id\": \"alibaba-access-key-id\",\n    \"description\": \"Detected an Alibaba Cloud AccessKey ID, posing a risk of unauthorized cloud resource access and potential data compromise.\",\n    \"regex\": \"\\\\b(LTAI(?i)[a-z0-9]{20})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"ltai\"\n    ]\n  },\n  {\n    \"id\": \"alibaba-secret-key\",\n    \"description\": \"Discovered a potential Alibaba Cloud Secret Key, potentially allowing unauthorized operations and data access within Alibaba Cloud.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:alibaba)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{30})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"alibaba\"\n    ]\n  },\n  {\n    \"id\": \"anthropic-admin-api-key\",\n    \"description\": \"Detected an Anthropic Admin API Key, risking unauthorized access to administrative functions and sensitive AI model configurations.\",\n    \"regex\": \"\\\\b(sk-ant-admin01-[a-zA-Z0-9_\\\\-]{93}AA)(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"sk-ant-admin01\"\n    ]\n  },\n  {\n    \"id\": \"anthropic-api-key\",\n    \"description\": \"Identified an Anthropic API Key, which may compromise AI assistant integrations and expose sensitive data to unauthorized access.\",\n    \"regex\": \"\\\\b(sk-ant-api03-[a-zA-Z0-9_\\\\-]{93}AA)(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"sk-ant-api03\"\n    ]\n  },\n  {\n    \"id\": \"artifactory-api-key\",\n    \"description\": \"Detected an Artifactory api key, posing a risk unauthorized access to the central repository.\",\n    \"regex\": \"\\\\bAKCp[A-Za-z0-9]{69}\\\\b\",\n    \"entropy\": 4.5,\n    \"keywords\": [\n      \"akcp\"\n    ]\n  },\n  {\n    \"id\": \"artifactory-reference-token\",\n    \"description\": \"Detected an Artifactory reference token, posing a risk of impersonation and unauthorized access to the central repository.\",\n    \"regex\": \"\\\\bcmVmd[A-Za-z0-9]{59}\\\\b\",\n    \"entropy\": 4.5,\n    \"keywords\": [\n      \"cmvmd\"\n    ]\n  },\n  {\n    \"id\": \"asana-client-id\",\n    \"description\": \"Discovered a potential Asana Client ID, risking unauthorized access to Asana projects and sensitive task information.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:asana)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([0-9]{16})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"asana\"\n    ]\n  },\n  {\n    \"id\": \"asana-client-secret\",\n    \"description\": \"Identified an Asana Client Secret, which could lead to compromised project management integrity and unauthorized access.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:asana)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"asana\"\n    ]\n  },\n  {\n    \"id\": \"atlassian-api-token\",\n    \"description\": \"Detected an Atlassian API token, posing a threat to project management and collaboration tool security and data confidentiality.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:(?-i:ATLASSIAN|[Aa]tlassian)|(?-i:CONFLUENCE|[Cc]onfluence)|(?-i: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]|$)\",\n    \"entropy\": 3.5,\n    \"keywords\": [\n      \"atlassian\",\n      \"confluence\",\n      \"jira\",\n      \"atatt3\"\n    ]\n  },\n  {\n    \"id\": \"authress-service-client-access-key\",\n    \"description\": \"Uncovered a possible Authress Service Client Access Key, which may compromise access control services and sensitive data.\",\n    \"regex\": \"\\\\b((?:sc|ext|scauth|authress)_(?i)[a-z0-9]{5,30}\\\\.[a-z0-9]{4,6}\\\\.(?-i:acc)[_-][a-z0-9-]{10,32}\\\\.[a-z0-9+/_=-]{30,120})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"sc_\",\n      \"ext_\",\n      \"scauth_\",\n      \"authress_\"\n    ]\n  },\n  {\n    \"id\": \"aws-access-token\",\n    \"description\": \"Identified a pattern that may indicate AWS credentials, risking unauthorized cloud resource access and data breaches on AWS platforms.\",\n    \"regex\": \"\\\\b((?:A3T[A-Z0-9]|AKIA|ASIA|ABIA|ACCA)[A-Z2-7]{16})\\\\b\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"a3t\",\n      \"akia\",\n      \"asia\",\n      \"abia\",\n      \"acca\"\n    ]\n  },\n  {\n    \"id\": \"aws-amazon-bedrock-api-key-long-lived\",\n    \"description\": \"Identified a pattern that may indicate long-lived Amazon Bedrock API keys, risking unauthorized Amazon Bedrock usage\",\n    \"regex\": \"\\\\b(ABSK[A-Za-z0-9+/]{109,269}={0,2})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"absk\"\n    ]\n  },\n  {\n    \"id\": \"aws-amazon-bedrock-api-key-short-lived\",\n    \"description\": \"Identified a pattern that may indicate short-lived Amazon Bedrock API keys, risking unauthorized Amazon Bedrock usage\",\n    \"regex\": \"bedrock-api-key-YmVkcm9jay5hbWF6b25hd3MuY29t\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"bedrock-api-key-\"\n    ]\n  },\n  {\n    \"id\": \"azure-ad-client-secret\",\n    \"description\": \"Azure AD Client Secret\",\n    \"regex\": \"(?:^|[\\\\\\\\'\\\"\\\\x60\\\\s>=:(,)])([a-zA-Z0-9_~.]{3}\\\\dQ~[a-zA-Z0-9_~.-]{31,34})(?:$|[\\\\\\\\'\\\"\\\\x60\\\\s<),])\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"q~\"\n    ]\n  },\n  {\n    \"id\": \"beamer-api-token\",\n    \"description\": \"Detected a Beamer API token, potentially compromising content management and exposing sensitive notifications and updates.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"beamer\"\n    ]\n  },\n  {\n    \"id\": \"bitbucket-client-id\",\n    \"description\": \"Discovered a potential Bitbucket Client ID, risking unauthorized repository access and potential codebase exposure.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:bitbucket)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"bitbucket\"\n    ]\n  },\n  {\n    \"id\": \"bitbucket-client-secret\",\n    \"description\": \"Discovered a potential Bitbucket Client Secret, posing a risk of compromised code repositories and unauthorized access.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:bitbucket)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9=_\\\\-]{64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"bitbucket\"\n    ]\n  },\n  {\n    \"id\": \"bittrex-access-key\",\n    \"description\": \"Identified a Bittrex Access Key, which could lead to unauthorized access to cryptocurrency trading accounts and financial loss.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:bittrex)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"bittrex\"\n    ]\n  },\n  {\n    \"id\": \"bittrex-secret-key\",\n    \"description\": \"Detected a Bittrex Secret Key, potentially compromising cryptocurrency transactions and financial security.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:bittrex)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"bittrex\"\n    ]\n  },\n  {\n    \"id\": \"cisco-meraki-api-key\",\n    \"description\": \"Cisco Meraki is a cloud-managed IT solution that provides networking, security, and device management through an easy-to-use interface.\",\n    \"regex\": \"[\\\\w.-]{0,50}?(?i:[\\\\w.-]{0,50}?(?:(?-i:[Mm]eraki|MERAKI))(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3})(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([0-9a-f]{40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"meraki\"\n    ]\n  },\n  {\n    \"id\": \"clickhouse-cloud-api-secret-key\",\n    \"description\": \"Identified a pattern that may indicate clickhouse cloud API secret key, risking unauthorized clickhouse cloud api access and data breaches on ClickHouse Cloud platforms.\",\n    \"regex\": \"\\\\b(4b1d[A-Za-z0-9]{38})\\\\b\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"4b1d\"\n    ]\n  },\n  {\n    \"id\": \"clojars-api-token\",\n    \"description\": \"Uncovered a possible Clojars API token, risking unauthorized access to Clojure libraries and potential code manipulation.\",\n    \"regex\": \"(?i)CLOJARS_[a-z0-9]{60}\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"clojars_\"\n    ]\n  },\n  {\n    \"id\": \"cloudflare-api-key\",\n    \"description\": \"Detected a Cloudflare API Key, potentially compromising cloud application deployments and operational security.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:cloudflare)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9_-]{40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"cloudflare\"\n    ]\n  },\n  {\n    \"id\": \"cloudflare-global-api-key\",\n    \"description\": \"Detected a Cloudflare Global API Key, potentially compromising cloud application deployments and operational security.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:cloudflare)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-f0-9]{37})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"cloudflare\"\n    ]\n  },\n  {\n    \"id\": \"cloudflare-origin-ca-key\",\n    \"description\": \"Detected a Cloudflare Origin CA Key, potentially compromising cloud application deployments and operational security.\",\n    \"regex\": \"\\\\b(v1\\\\.0-[a-f0-9]{24}-[a-f0-9]{146})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"cloudflare\",\n      \"v1.0-\"\n    ]\n  },\n  {\n    \"id\": \"codecov-access-token\",\n    \"description\": \"Found a pattern resembling a Codecov Access Token, posing a risk of unauthorized access to code coverage reports and sensitive data.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:codecov)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"codecov\"\n    ]\n  },\n  {\n    \"id\": \"cohere-api-token\",\n    \"description\": \"Identified a Cohere Token, posing a risk of unauthorized access to AI services and data manipulation.\",\n    \"regex\": \"[\\\\w.-]{0,50}?(?i:[\\\\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]|$)\",\n    \"entropy\": 4,\n    \"keywords\": [\n      \"cohere\",\n      \"co_api_key\"\n    ]\n  },\n  {\n    \"id\": \"coinbase-access-token\",\n    \"description\": \"Detected a Coinbase Access Token, posing a risk of unauthorized access to cryptocurrency accounts and financial transactions.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:coinbase)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9_-]{64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"coinbase\"\n    ]\n  },\n  {\n    \"id\": \"confluent-access-token\",\n    \"description\": \"Identified a Confluent Access Token, which could compromise access to streaming data platforms and sensitive data flow.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:confluent)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{16})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"confluent\"\n    ]\n  },\n  {\n    \"id\": \"confluent-secret-key\",\n    \"description\": \"Found a Confluent Secret Key, potentially risking unauthorized operations and data access within Confluent services.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:confluent)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"confluent\"\n    ]\n  },\n  {\n    \"id\": \"contentful-delivery-api-token\",\n    \"description\": \"Discovered a Contentful delivery API token, posing a risk to content management systems and data integrity.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:contentful)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9=_\\\\-]{43})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"contentful\"\n    ]\n  },\n  {\n    \"id\": \"curl-auth-header\",\n    \"description\": \"Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.\",\n    \"regex\": \"\\\\bcurl\\\\b(?:.*?|.*?(?:[\\\\r\\\\n]{1,2}.*?){1,5})[ \\\\t\\\\n\\\\r](?:-H|--header)(?:=|[ \\\\t]{0,5})(?:\\\"(?i)(?: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,}))\\\"|'(?i)(?: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|\\\\z)\",\n    \"entropy\": 2.75,\n    \"keywords\": [\n      \"curl\"\n    ]\n  },\n  {\n    \"id\": \"curl-auth-user\",\n    \"description\": \"Discovered a potential basic authorization token provided in a curl command, which could compromise the curl accessed resource.\",\n    \"regex\": \"\\\\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|\\\\z)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"curl\"\n    ]\n  },\n  {\n    \"id\": \"databricks-api-token\",\n    \"description\": \"Uncovered a Databricks API token, which may compromise big data analytics platforms and sensitive data processing.\",\n    \"regex\": \"\\\\b(dapi[a-f0-9]{32}(?:-\\\\d)?)(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"dapi\"\n    ]\n  },\n  {\n    \"id\": \"datadog-access-token\",\n    \"description\": \"Detected a Datadog Access Token, potentially risking monitoring and analytics data exposure and manipulation.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:datadog)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"datadog\"\n    ]\n  },\n  {\n    \"id\": \"defined-networking-api-token\",\n    \"description\": \"Identified a Defined Networking API token, which could lead to unauthorized network operations and data breaches.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"dnkey\"\n    ]\n  },\n  {\n    \"id\": \"digitalocean-access-token\",\n    \"description\": \"Found a DigitalOcean OAuth Access Token, risking unauthorized cloud resource access and data compromise.\",\n    \"regex\": \"\\\\b(doo_v1_[a-f0-9]{64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"doo_v1_\"\n    ]\n  },\n  {\n    \"id\": \"digitalocean-pat\",\n    \"description\": \"Discovered a DigitalOcean Personal Access Token, posing a threat to cloud infrastructure security and data privacy.\",\n    \"regex\": \"\\\\b(dop_v1_[a-f0-9]{64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"dop_v1_\"\n    ]\n  },\n  {\n    \"id\": \"digitalocean-refresh-token\",\n    \"description\": \"Uncovered a DigitalOcean OAuth Refresh Token, which could allow prolonged unauthorized access and resource manipulation.\",\n    \"regex\": \"(?i)\\\\b(dor_v1_[a-f0-9]{64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"dor_v1_\"\n    ]\n  },\n  {\n    \"id\": \"discord-api-token\",\n    \"description\": \"Detected a Discord API key, potentially compromising communication channels and user data privacy on Discord.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:discord)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-f0-9]{64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"discord\"\n    ]\n  },\n  {\n    \"id\": \"discord-client-id\",\n    \"description\": \"Identified a Discord client ID, which may lead to unauthorized integrations and data exposure in Discord applications.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:discord)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([0-9]{18})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"discord\"\n    ]\n  },\n  {\n    \"id\": \"discord-client-secret\",\n    \"description\": \"Discovered a potential Discord client secret, risking compromised Discord bot integrations and data leaks.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:discord)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9=_\\\\-]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"discord\"\n    ]\n  },\n  {\n    \"id\": \"doppler-api-token\",\n    \"description\": \"Discovered a Doppler API token, posing a risk to environment and secrets management security.\",\n    \"regex\": \"dp\\\\.pt\\\\.(?i)[a-z0-9]{43}\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"dp.pt.\"\n    ]\n  },\n  {\n    \"id\": \"droneci-access-token\",\n    \"description\": \"Detected a Droneci Access Token, potentially compromising continuous integration and deployment workflows.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:droneci)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"droneci\"\n    ]\n  },\n  {\n    \"id\": \"dropbox-api-token\",\n    \"description\": \"Identified a Dropbox API secret, which could lead to unauthorized file access and data breaches in Dropbox storage.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:dropbox)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{15})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"dropbox\"\n    ]\n  },\n  {\n    \"id\": \"dropbox-long-lived-api-token\",\n    \"description\": \"Found a Dropbox long-lived API token, risking prolonged unauthorized access to cloud storage and sensitive data.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"dropbox\"\n    ]\n  },\n  {\n    \"id\": \"dropbox-short-lived-api-token\",\n    \"description\": \"Discovered a Dropbox short-lived API token, posing a risk of temporary but potentially harmful data access and manipulation.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"dropbox\"\n    ]\n  },\n  {\n    \"id\": \"duffel-api-token\",\n    \"description\": \"Uncovered a Duffel API token, which may compromise travel platform integrations and sensitive customer data.\",\n    \"regex\": \"duffel_(?:test|live)_(?i)[a-z0-9_\\\\-=]{43}\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"duffel_\"\n    ]\n  },\n  {\n    \"id\": \"dynatrace-api-token\",\n    \"description\": \"Detected a Dynatrace API token, potentially risking application performance monitoring and data exposure.\",\n    \"regex\": \"dt0c01\\\\.(?i)[a-z0-9]{24}\\\\.[a-z0-9]{64}\",\n    \"entropy\": 4,\n    \"keywords\": [\n      \"dt0c01.\"\n    ]\n  },\n  {\n    \"id\": \"easypost-api-token\",\n    \"description\": \"Identified an EasyPost API token, which could lead to unauthorized postal and shipment service access and data exposure.\",\n    \"regex\": \"\\\\bEZAK(?i)[a-z0-9]{54}\\\\b\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"ezak\"\n    ]\n  },\n  {\n    \"id\": \"easypost-test-api-token\",\n    \"description\": \"Detected an EasyPost test API token, risking exposure of test environments and potentially sensitive shipment data.\",\n    \"regex\": \"\\\\bEZTK(?i)[a-z0-9]{54}\\\\b\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"eztk\"\n    ]\n  },\n  {\n    \"id\": \"etsy-access-token\",\n    \"description\": \"Found an Etsy Access Token, potentially compromising Etsy shop management and customer data.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:(?-i:ETSY|[Ee]tsy))(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{24})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"etsy\"\n    ]\n  },\n  {\n    \"id\": \"facebook-access-token\",\n    \"description\": \"Discovered a Facebook Access Token, posing a risk of unauthorized access to Facebook accounts and personal data exposure.\",\n    \"regex\": \"(?i)\\\\b(\\\\d{15,16}(\\\\||%)[0-9a-z\\\\-_]{27,40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"facebook\"\n    ]\n  },\n  {\n    \"id\": \"facebook-page-access-token\",\n    \"description\": \"Discovered a Facebook Page Access Token, posing a risk of unauthorized access to Facebook accounts and personal data exposure.\",\n    \"regex\": \"\\\\b(EAA[MC](?i)[a-z0-9]{100,})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 4,\n    \"keywords\": [\n      \"eaam\",\n      \"eaac\"\n    ]\n  },\n  {\n    \"id\": \"facebook-secret\",\n    \"description\": \"Discovered a Facebook Application secret, posing a risk of unauthorized access to Facebook accounts and personal data exposure.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:facebook)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-f0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"facebook\"\n    ]\n  },\n  {\n    \"id\": \"fastly-api-token\",\n    \"description\": \"Uncovered a Fastly API key, which may compromise CDN and edge cloud services, leading to content delivery and security issues.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:fastly)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9=_\\\\-]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"fastly\"\n    ]\n  },\n  {\n    \"id\": \"finicity-api-token\",\n    \"description\": \"Detected a Finicity API token, potentially risking financial data access and unauthorized financial operations.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:finicity)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-f0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"finicity\"\n    ]\n  },\n  {\n    \"id\": \"finicity-client-secret\",\n    \"description\": \"Identified a Finicity Client Secret, which could lead to compromised financial service integrations and data breaches.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:finicity)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{20})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"finicity\"\n    ]\n  },\n  {\n    \"id\": \"finnhub-access-token\",\n    \"description\": \"Found a Finnhub Access Token, risking unauthorized access to financial market data and analytics.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:finnhub)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{20})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"finnhub\"\n    ]\n  },\n  {\n    \"id\": \"flickr-access-token\",\n    \"description\": \"Discovered a Flickr Access Token, posing a risk of unauthorized photo management and potential data leakage.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:flickr)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"flickr\"\n    ]\n  },\n  {\n    \"id\": \"flutterwave-encryption-key\",\n    \"description\": \"Uncovered a Flutterwave Encryption Key, which may compromise payment processing and sensitive financial information.\",\n    \"regex\": \"FLWSECK_TEST-(?i)[a-h0-9]{12}\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"flwseck_test\"\n    ]\n  },\n  {\n    \"id\": \"flutterwave-public-key\",\n    \"description\": \"Detected a Finicity Public Key, potentially exposing public cryptographic operations and integrations.\",\n    \"regex\": \"FLWPUBK_TEST-(?i)[a-h0-9]{32}-X\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"flwpubk_test\"\n    ]\n  },\n  {\n    \"id\": \"flutterwave-secret-key\",\n    \"description\": \"Identified a Flutterwave Secret Key, risking unauthorized financial transactions and data breaches.\",\n    \"regex\": \"FLWSECK_TEST-(?i)[a-h0-9]{32}-X\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"flwseck_test\"\n    ]\n  },\n  {\n    \"id\": \"flyio-access-token\",\n    \"description\": \"Uncovered a Fly.io API key\",\n    \"regex\": \"\\\\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    \"entropy\": 4,\n    \"keywords\": [\n      \"fo1_\",\n      \"fm1\",\n      \"fm2_\"\n    ]\n  },\n  {\n    \"id\": \"frameio-api-token\",\n    \"description\": \"Found a Frame.io API token, potentially compromising video collaboration and project management.\",\n    \"regex\": \"fio-u-(?i)[a-z0-9\\\\-_=]{64}\",\n    \"keywords\": [\n      \"fio-u-\"\n    ]\n  },\n  {\n    \"id\": \"freemius-secret-key\",\n    \"description\": \"Detected a Freemius secret key, potentially exposing sensitive information.\",\n    \"regex\": \"(?i)[\\\"']secret_key[\\\"']\\\\s*=>\\\\s*[\\\"'](sk_[\\\\S]{29})[\\\"']\",\n    \"keywords\": [\n      \"secret_key\"\n    ]\n  },\n  {\n    \"id\": \"freshbooks-access-token\",\n    \"description\": \"Discovered a Freshbooks Access Token, posing a risk to accounting software access and sensitive financial data exposure.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:freshbooks)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"freshbooks\"\n    ]\n  },\n  {\n    \"id\": \"gcp-api-key\",\n    \"description\": \"Uncovered a GCP API key, which could lead to unauthorized access to Google Cloud services and data breaches.\",\n    \"regex\": \"\\\\b(AIza[\\\\w-]{35})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 4,\n    \"keywords\": [\n      \"aiza\"\n    ]\n  },\n  {\n    \"id\": \"generic-api-key\",\n    \"description\": \"Detected a Generic API Key, potentially exposing access to various services and sensitive operations.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:access|auth|(?-i:[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]|$)\",\n    \"entropy\": 3.5,\n    \"keywords\": [\n      \"access\",\n      \"api\",\n      \"auth\",\n      \"key\",\n      \"credential\",\n      \"creds\",\n      \"passwd\",\n      \"password\",\n      \"secret\",\n      \"token\"\n    ]\n  },\n  {\n    \"id\": \"github-app-token\",\n    \"description\": \"Identified a GitHub App Token, which may compromise GitHub application integrations and source code security.\",\n    \"regex\": \"(?:ghu|ghs)_[0-9a-zA-Z]{36}\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"ghu_\",\n      \"ghs_\"\n    ]\n  },\n  {\n    \"id\": \"github-fine-grained-pat\",\n    \"description\": \"Found a GitHub Fine-Grained Personal Access Token, risking unauthorized repository access and code manipulation.\",\n    \"regex\": \"github_pat_\\\\w{82}\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"github_pat_\"\n    ]\n  },\n  {\n    \"id\": \"github-oauth\",\n    \"description\": \"Discovered a GitHub OAuth Access Token, posing a risk of compromised GitHub account integrations and data leaks.\",\n    \"regex\": \"gho_[0-9a-zA-Z]{36}\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"gho_\"\n    ]\n  },\n  {\n    \"id\": \"github-pat\",\n    \"description\": \"Uncovered a GitHub Personal Access Token, potentially leading to unauthorized repository access and sensitive content exposure.\",\n    \"regex\": \"ghp_[0-9a-zA-Z]{36}\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"ghp_\"\n    ]\n  },\n  {\n    \"id\": \"github-refresh-token\",\n    \"description\": \"Detected a GitHub Refresh Token, which could allow prolonged unauthorized access to GitHub services.\",\n    \"regex\": \"ghr_[0-9a-zA-Z]{36}\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"ghr_\"\n    ]\n  },\n  {\n    \"id\": \"gitlab-cicd-job-token\",\n    \"description\": \"Identified a GitLab CI/CD Job Token, potential access to projects and some APIs on behalf of a user while the CI job is running.\",\n    \"regex\": \"glcbt-[0-9a-zA-Z]{1,5}_[0-9a-zA-Z_-]{20}\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"glcbt-\"\n    ]\n  },\n  {\n    \"id\": \"gitlab-deploy-token\",\n    \"description\": \"Identified a GitLab Deploy Token, risking access to repositories, packages and containers with write access.\",\n    \"regex\": \"gldt-[0-9a-zA-Z_\\\\-]{20}\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"gldt-\"\n    ]\n  },\n  {\n    \"id\": \"gitlab-feature-flag-client-token\",\n    \"description\": \"Identified a GitLab feature flag client token, risks exposing user lists and features flags used by an application.\",\n    \"regex\": \"glffct-[0-9a-zA-Z_\\\\-]{20}\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"glffct-\"\n    ]\n  },\n  {\n    \"id\": \"gitlab-feed-token\",\n    \"description\": \"Identified a GitLab feed token, risking exposure of user data.\",\n    \"regex\": \"glft-[0-9a-zA-Z_\\\\-]{20}\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"glft-\"\n    ]\n  },\n  {\n    \"id\": \"gitlab-incoming-mail-token\",\n    \"description\": \"Identified a GitLab incoming mail token, risking manipulation of data sent by mail.\",\n    \"regex\": \"glimt-[0-9a-zA-Z_\\\\-]{25}\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"glimt-\"\n    ]\n  },\n  {\n    \"id\": \"gitlab-kubernetes-agent-token\",\n    \"description\": \"Identified a GitLab Kubernetes Agent token, risking access to repos and registry of projects connected via agent.\",\n    \"regex\": \"glagent-[0-9a-zA-Z_\\\\-]{50}\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"glagent-\"\n    ]\n  },\n  {\n    \"id\": \"gitlab-oauth-app-secret\",\n    \"description\": \"Identified a GitLab OIDC Application Secret, risking access to apps using GitLab as authentication provider.\",\n    \"regex\": \"gloas-[0-9a-zA-Z_\\\\-]{64}\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"gloas-\"\n    ]\n  },\n  {\n    \"id\": \"gitlab-pat\",\n    \"description\": \"Identified a GitLab Personal Access Token, risking unauthorized access to GitLab repositories and codebase exposure.\",\n    \"regex\": \"glpat-[\\\\w-]{20}\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"glpat-\"\n    ]\n  },\n  {\n    \"id\": \"gitlab-pat-routable\",\n    \"description\": \"Identified a GitLab Personal Access Token (routable), risking unauthorized access to GitLab repositories and codebase exposure.\",\n    \"regex\": \"\\\\bglpat-[0-9a-zA-Z_-]{27,300}\\\\.[0-9a-z]{2}[0-9a-z]{7}\\\\b\",\n    \"entropy\": 4,\n    \"keywords\": [\n      \"glpat-\"\n    ]\n  },\n  {\n    \"id\": \"gitlab-ptt\",\n    \"description\": \"Found a GitLab Pipeline Trigger Token, potentially compromising continuous integration workflows and project security.\",\n    \"regex\": \"glptt-[0-9a-f]{40}\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"glptt-\"\n    ]\n  },\n  {\n    \"id\": \"gitlab-rrt\",\n    \"description\": \"Discovered a GitLab Runner Registration Token, posing a risk to CI/CD pipeline integrity and unauthorized access.\",\n    \"regex\": \"GR1348941[\\\\w-]{20}\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"gr1348941\"\n    ]\n  },\n  {\n    \"id\": \"gitlab-runner-authentication-token\",\n    \"description\": \"Discovered a GitLab Runner Authentication Token, posing a risk to CI/CD pipeline integrity and unauthorized access.\",\n    \"regex\": \"glrt-[0-9a-zA-Z_\\\\-]{20}\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"glrt-\"\n    ]\n  },\n  {\n    \"id\": \"gitlab-runner-authentication-token-routable\",\n    \"description\": \"Discovered a GitLab Runner Authentication Token (Routable), posing a risk to CI/CD pipeline integrity and unauthorized access.\",\n    \"regex\": \"\\\\bglrt-t\\\\d_[0-9a-zA-Z_\\\\-]{27,300}\\\\.[0-9a-z]{2}[0-9a-z]{7}\\\\b\",\n    \"entropy\": 4,\n    \"keywords\": [\n      \"glrt-\"\n    ]\n  },\n  {\n    \"id\": \"gitlab-scim-token\",\n    \"description\": \"Discovered a GitLab SCIM Token, posing a risk to unauthorized access for a organization or instance.\",\n    \"regex\": \"glsoat-[0-9a-zA-Z_\\\\-]{20}\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"glsoat-\"\n    ]\n  },\n  {\n    \"id\": \"gitlab-session-cookie\",\n    \"description\": \"Discovered a GitLab Session Cookie, posing a risk to unauthorized access to a user account.\",\n    \"regex\": \"_gitlab_session=[0-9a-z]{32}\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"_gitlab_session=\"\n    ]\n  },\n  {\n    \"id\": \"gitter-access-token\",\n    \"description\": \"Uncovered a Gitter Access Token, which may lead to unauthorized access to chat and communication services.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:gitter)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9_-]{40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"gitter\"\n    ]\n  },\n  {\n    \"id\": \"gocardless-api-token\",\n    \"description\": \"Detected a GoCardless API token, potentially risking unauthorized direct debit payment operations and financial data exposure.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:gocardless)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}(live_(?i)[a-z0-9\\\\-_=]{40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"live_\",\n      \"gocardless\"\n    ]\n  },\n  {\n    \"id\": \"grafana-api-key\",\n    \"description\": \"Identified a Grafana API key, which could compromise monitoring dashboards and sensitive data analytics.\",\n    \"regex\": \"(?i)\\\\b(eyJrIjoi[A-Za-z0-9]{70,400}={0,3})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"eyjrijoi\"\n    ]\n  },\n  {\n    \"id\": \"grafana-cloud-api-token\",\n    \"description\": \"Found a Grafana cloud API token, risking unauthorized access to cloud-based monitoring services and data exposure.\",\n    \"regex\": \"(?i)\\\\b(glc_[A-Za-z0-9+/]{32,400}={0,3})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"glc_\"\n    ]\n  },\n  {\n    \"id\": \"grafana-service-account-token\",\n    \"description\": \"Discovered a Grafana service account token, posing a risk of compromised monitoring services and data integrity.\",\n    \"regex\": \"(?i)\\\\b(glsa_[A-Za-z0-9]{32}_[A-Fa-f0-9]{8})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"glsa_\"\n    ]\n  },\n  {\n    \"id\": \"harness-api-key\",\n    \"description\": \"Identified a Harness Access Token (PAT or SAT), risking unauthorized access to a Harness account.\",\n    \"regex\": \"(?:pat|sat)\\\\.[a-zA-Z0-9_-]{22}\\\\.[a-zA-Z0-9]{24}\\\\.[a-zA-Z0-9]{20}\",\n    \"keywords\": [\n      \"pat.\",\n      \"sat.\"\n    ]\n  },\n  {\n    \"id\": \"hashicorp-tf-api-token\",\n    \"description\": \"Uncovered a HashiCorp Terraform user/org API token, which may lead to unauthorized infrastructure management and security breaches.\",\n    \"regex\": \"(?i)[a-z0-9]{14}\\\\.(?-i:atlasv1)\\\\.[a-z0-9\\\\-_=]{60,70}\",\n    \"entropy\": 3.5,\n    \"keywords\": [\n      \"atlasv1\"\n    ]\n  },\n  {\n    \"id\": \"hashicorp-tf-password\",\n    \"description\": \"Identified a HashiCorp Terraform password field, risking unauthorized infrastructure configuration and security breaches.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"administrator_login_password\",\n      \"password\"\n    ]\n  },\n  {\n    \"id\": \"heroku-api-key\",\n    \"description\": \"Detected a Heroku API Key, potentially compromising cloud application deployments and operational security.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"heroku\"\n    ]\n  },\n  {\n    \"id\": \"heroku-api-key-v2\",\n    \"description\": \"Detected a Heroku API Key, potentially compromising cloud application deployments and operational security.\",\n    \"regex\": \"\\\\b((HRKU-AA[0-9a-zA-Z_-]{58}))(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 4,\n    \"keywords\": [\n      \"hrku-aa\"\n    ]\n  },\n  {\n    \"id\": \"hubspot-api-key\",\n    \"description\": \"Found a HubSpot API Token, posing a risk to CRM data integrity and unauthorized marketing operations.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"hubspot\"\n    ]\n  },\n  {\n    \"id\": \"huggingface-access-token\",\n    \"description\": \"Discovered a Hugging Face Access token, which could lead to unauthorized access to AI models and sensitive data.\",\n    \"regex\": \"\\\\b(hf_(?i:[a-z]{34}))(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"hf_\"\n    ]\n  },\n  {\n    \"id\": \"huggingface-organization-api-token\",\n    \"description\": \"Uncovered a Hugging Face Organization API token, potentially compromising AI organization accounts and associated data.\",\n    \"regex\": \"\\\\b(api_org_(?i:[a-z]{34}))(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"api_org_\"\n    ]\n  },\n  {\n    \"id\": \"infracost-api-token\",\n    \"description\": \"Detected an Infracost API Token, risking unauthorized access to cloud cost estimation tools and financial data.\",\n    \"regex\": \"\\\\b(ico-[a-zA-Z0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"ico-\"\n    ]\n  },\n  {\n    \"id\": \"intercom-api-key\",\n    \"description\": \"Identified an Intercom API Token, which could compromise customer communication channels and data privacy.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:intercom)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9=_\\\\-]{60})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"intercom\"\n    ]\n  },\n  {\n    \"id\": \"intra42-client-secret\",\n    \"description\": \"Found a Intra42 client secret, which could lead to unauthorized access to the 42School API and sensitive data.\",\n    \"regex\": \"\\\\b(s-s4t2(?:ud|af)-(?i)[abcdef0123456789]{64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"intra\",\n      \"s-s4t2ud-\",\n      \"s-s4t2af-\"\n    ]\n  },\n  {\n    \"id\": \"jfrog-api-key\",\n    \"description\": \"Found a JFrog API Key, posing a risk of unauthorized access to software artifact repositories and build pipelines.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"jfrog\",\n      \"artifactory\",\n      \"bintray\",\n      \"xray\"\n    ]\n  },\n  {\n    \"id\": \"jfrog-identity-token\",\n    \"description\": \"Discovered a JFrog Identity Token, potentially compromising access to JFrog services and sensitive software artifacts.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"jfrog\",\n      \"artifactory\",\n      \"bintray\",\n      \"xray\"\n    ]\n  },\n  {\n    \"id\": \"jwt\",\n    \"description\": \"Uncovered a JSON Web Token, which may lead to unauthorized access to web applications and sensitive user data.\",\n    \"regex\": \"\\\\b(ey[a-zA-Z0-9]{17,}\\\\.ey[a-zA-Z0-9\\\\/\\\\\\\\_-]{17,}\\\\.(?:[a-zA-Z0-9\\\\/\\\\\\\\_-]{10,}={0,2})?)(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"ey\"\n    ]\n  },\n  {\n    \"id\": \"jwt-base64\",\n    \"description\": \"Detected a Base64-encoded JSON Web Token, posing a risk of exposing encoded authentication and data exchange information.\",\n    \"regex\": \"\\\\bZXlK(?:(?P<alg>aGJHY2lPaU)|(?P<apu>aGNIVWlPaU)|(?P<apv>aGNIWWlPaU)|(?P<aud>aGRXUWlPaU)|(?P<b64>aU5qUWlP)|(?P<crit>amNtbDBJanBi)|(?P<cty>amRIa2lPaU)|(?P<epk>bGNHc2lPbn)|(?P<enc>bGJtTWlPaU)|(?P<jku>cWEzVWlPaU)|(?P<jwk>cWQyc2lPb)|(?P<iss>cGMzTWlPaU)|(?P<iv>cGRpSTZJ)|(?P<kid>cmFXUWlP)|(?P<key_ops>clpYbGZiM0J6SWpwY)|(?P<kty>cmRIa2lPaUp)|(?P<nonce>dWIyNWpaU0k2)|(?P<p2c>d01tTWlP)|(?P<p2s>d01uTWlPaU)|(?P<ppt>d2NIUWlPaU)|(?P<sub>emRXSWlPaU)|(?P<svt>emRuUWlP)|(?P<tag>MFlXY2lPaU)|(?P<typ>MGVYQWlPaUp)|(?P<url>MWNtd2l)|(?P<use>MWMyVWlPaUp)|(?P<ver>MlpYSWlPaU)|(?P<version>MlpYSnphVzl1SWpv)|(?P<x>NElqb2)|(?P<x5c>NE5XTWlP)|(?P<x5t>NE5YUWlPaU)|(?P<x5ts256>NE5YUWpVekkxTmlJNkl)|(?P<x5u>NE5YVWlPaU)|(?P<zip>NmFYQWlPaU))[a-zA-Z0-9\\\\/\\\\\\\\_+\\\\-\\\\r\\\\n]{40,}={0,2}\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"zxlk\"\n    ]\n  },\n  {\n    \"id\": \"kraken-access-token\",\n    \"description\": \"Identified a Kraken Access Token, potentially compromising cryptocurrency trading accounts and financial security.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"kraken\"\n    ]\n  },\n  {\n    \"id\": \"kubernetes-secret-yaml\",\n    \"description\": \"Possible Kubernetes Secret detected, posing a risk of leaking credentials/tokens from your deployments\",\n    \"regex\": \"(?i)(?:\\\\bkind:[ \\\\t]*[\\\"']?\\\\bsecret\\\\b[\\\"']?(?s:.){0,200}?\\\\bdata:(?s:.){0,100}?\\\\s+([\\\\w.-]+:(?:[ \\\\t]*(?:\\\\||>[-+]?)\\\\s+)?[ \\\\t]*(?:[\\\"']?[a-z0-9+/]{10,}={0,3}[\\\"']?|\\\\{\\\\{[ \\\\t\\\\w\\\"|$:=,.-]+}}|\\\"\\\"|''))|\\\\bdata:(?s:.){0,100}?\\\\s+([\\\\w.-]+:(?:[ \\\\t]*(?:\\\\||>[-+]?)\\\\s+)?[ \\\\t]*(?:[\\\"']?[a-z0-9+/]{10,}={0,3}[\\\"']?|\\\\{\\\\{[ \\\\t\\\\w\\\"|$:=,.-]+}}|\\\"\\\"|''))(?s:.){0,200}?\\\\bkind:[ \\\\t]*[\\\"']?\\\\bsecret\\\\b[\\\"']?)\",\n    \"keywords\": [\n      \"secret\"\n    ]\n  },\n  {\n    \"id\": \"kucoin-access-token\",\n    \"description\": \"Found a Kucoin Access Token, risking unauthorized access to cryptocurrency exchange services and transactions.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:kucoin)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-f0-9]{24})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"kucoin\"\n    ]\n  },\n  {\n    \"id\": \"kucoin-secret-key\",\n    \"description\": \"Discovered a Kucoin Secret Key, which could lead to compromised cryptocurrency operations and financial data breaches.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"kucoin\"\n    ]\n  },\n  {\n    \"id\": \"launchdarkly-access-token\",\n    \"description\": \"Uncovered a Launchdarkly Access Token, potentially compromising feature flag management and application functionality.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:launchdarkly)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9=_\\\\-]{40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"launchdarkly\"\n    ]\n  },\n  {\n    \"id\": \"linear-api-key\",\n    \"description\": \"Detected a Linear API Token, posing a risk to project management tools and sensitive task data.\",\n    \"regex\": \"lin_api_(?i)[a-z0-9]{40}\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"lin_api_\"\n    ]\n  },\n  {\n    \"id\": \"linear-client-secret\",\n    \"description\": \"Identified a Linear Client Secret, which may compromise secure integrations and sensitive project management data.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:linear)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-f0-9]{32})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"linear\"\n    ]\n  },\n  {\n    \"id\": \"linkedin-client-id\",\n    \"description\": \"Found a LinkedIn Client ID, risking unauthorized access to LinkedIn integrations and professional data exposure.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"linkedin\",\n      \"linked_in\",\n      \"linked-in\"\n    ]\n  },\n  {\n    \"id\": \"linkedin-client-secret\",\n    \"description\": \"Discovered a LinkedIn Client secret, potentially compromising LinkedIn application integrations and user data.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"linkedin\",\n      \"linked_in\",\n      \"linked-in\"\n    ]\n  },\n  {\n    \"id\": \"lob-api-key\",\n    \"description\": \"Uncovered a Lob API Key, which could lead to unauthorized access to mailing and address verification services.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"test_\",\n      \"live_\"\n    ]\n  },\n  {\n    \"id\": \"lob-pub-api-key\",\n    \"description\": \"Detected a Lob Publishable API Key, posing a risk of exposing mail and print service integrations.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"test_pub\",\n      \"live_pub\",\n      \"_pub\"\n    ]\n  },\n  {\n    \"id\": \"looker-client-id\",\n    \"description\": \"Found a Looker Client ID, risking unauthorized access to a Looker account and exposing sensitive data.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:looker)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{20})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"looker\"\n    ]\n  },\n  {\n    \"id\": \"looker-client-secret\",\n    \"description\": \"Found a Looker Client Secret, risking unauthorized access to a Looker account and exposing sensitive data.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:looker)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{24})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"looker\"\n    ]\n  },\n  {\n    \"id\": \"mailchimp-api-key\",\n    \"description\": \"Identified a Mailchimp API key, potentially compromising email marketing campaigns and subscriber data.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"mailchimp\"\n    ]\n  },\n  {\n    \"id\": \"mailgun-private-api-token\",\n    \"description\": \"Found a Mailgun private API token, risking unauthorized email service operations and data breaches.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"mailgun\"\n    ]\n  },\n  {\n    \"id\": \"mailgun-pub-key\",\n    \"description\": \"Discovered a Mailgun public validation key, which could expose email verification processes and associated data.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"mailgun\"\n    ]\n  },\n  {\n    \"id\": \"mailgun-signing-key\",\n    \"description\": \"Uncovered a Mailgun webhook signing key, potentially compromising email automation and data integrity.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"mailgun\"\n    ]\n  },\n  {\n    \"id\": \"mapbox-api-token\",\n    \"description\": \"Detected a MapBox API token, posing a risk to geospatial services and sensitive location data exposure.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"mapbox\"\n    ]\n  },\n  {\n    \"id\": \"mattermost-access-token\",\n    \"description\": \"Identified a Mattermost Access Token, which may compromise team communication channels and data privacy.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:mattermost)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{26})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"mattermost\"\n    ]\n  },\n  {\n    \"id\": \"maxmind-license-key\",\n    \"description\": \"Discovered a potential MaxMind license key.\",\n    \"regex\": \"\\\\b([A-Za-z0-9]{6}_[A-Za-z0-9]{29}_mmk)(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 4,\n    \"keywords\": [\n      \"_mmk\"\n    ]\n  },\n  {\n    \"id\": \"messagebird-api-token\",\n    \"description\": \"Found a MessageBird API token, risking unauthorized access to communication platforms and message data.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"messagebird\",\n      \"message-bird\",\n      \"message_bird\"\n    ]\n  },\n  {\n    \"id\": \"messagebird-client-id\",\n    \"description\": \"Discovered a MessageBird client ID, potentially compromising API integrations and sensitive communication data.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"messagebird\",\n      \"message-bird\",\n      \"message_bird\"\n    ]\n  },\n  {\n    \"id\": \"microsoft-teams-webhook\",\n    \"description\": \"Uncovered a Microsoft Teams Webhook, which could lead to unauthorized access to team collaboration tools and data leaks.\",\n    \"regex\": \"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\": [\n      \"webhook.office.com\",\n      \"webhookb2\",\n      \"incomingwebhook\"\n    ]\n  },\n  {\n    \"id\": \"netlify-access-token\",\n    \"description\": \"Detected a Netlify Access Token, potentially compromising web hosting services and site management.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"netlify\"\n    ]\n  },\n  {\n    \"id\": \"new-relic-browser-api-token\",\n    \"description\": \"Identified a New Relic ingest browser API token, risking unauthorized access to application performance data and analytics.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"nrjs-\"\n    ]\n  },\n  {\n    \"id\": \"new-relic-insert-key\",\n    \"description\": \"Discovered a New Relic insight insert key, compromising data injection into the platform.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"nrii-\"\n    ]\n  },\n  {\n    \"id\": \"new-relic-user-api-id\",\n    \"description\": \"Found a New Relic user API ID, posing a risk to application monitoring services and data integrity.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"new-relic\",\n      \"newrelic\",\n      \"new_relic\"\n    ]\n  },\n  {\n    \"id\": \"new-relic-user-api-key\",\n    \"description\": \"Discovered a New Relic user API Key, which could lead to compromised application insights and performance monitoring.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"nrak\"\n    ]\n  },\n  {\n    \"id\": \"notion-api-token\",\n    \"description\": \"Notion API token\",\n    \"regex\": \"\\\\b(ntn_[0-9]{11}[A-Za-z0-9]{32}[A-Za-z0-9]{3})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 4,\n    \"keywords\": [\n      \"ntn_\"\n    ]\n  },\n  {\n    \"id\": \"npm-access-token\",\n    \"description\": \"Uncovered an npm access token, potentially compromising package management and code repository access.\",\n    \"regex\": \"(?i)\\\\b(npm_[a-z0-9]{36})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"npm_\"\n    ]\n  },\n  {\n    \"id\": \"nuget-config-password\",\n    \"description\": \"Identified a password within a Nuget config file, potentially compromising package management access.\",\n    \"regex\": \"(?i)<add key=\\\\\\\"(?:(?:ClearText)?Password)\\\\\\\"\\\\s*value=\\\\\\\"(.{8,})\\\\\\\"\\\\s*/>\",\n    \"entropy\": 1,\n    \"keywords\": [\n      \"<add key=\"\n    ]\n  },\n  {\n    \"id\": \"nytimes-access-token\",\n    \"description\": \"Detected a Nytimes Access Token, risking unauthorized access to New York Times APIs and content services.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"nytimes\",\n      \"new-york-times\",\n      \"newyorktimes\"\n    ]\n  },\n  {\n    \"id\": \"octopus-deploy-api-key\",\n    \"description\": \"Discovered a potential Octopus Deploy API key, risking application deployments and operational security.\",\n    \"regex\": \"\\\\b(API-[A-Z0-9]{26})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"api-\"\n    ]\n  },\n  {\n    \"id\": \"okta-access-token\",\n    \"description\": \"Identified an Okta Access Token, which may compromise identity management services and user authentication data.\",\n    \"regex\": \"[\\\\w.-]{0,50}?(?i:[\\\\w.-]{0,50}?(?:(?-i:[Oo]kta|OKTA))(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3})(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}(00[\\\\w=\\\\-]{40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 4,\n    \"keywords\": [\n      \"okta\"\n    ]\n  },\n  {\n    \"id\": \"openai-api-key\",\n    \"description\": \"Found an OpenAI API Key, posing a risk of unauthorized access to AI services and data manipulation.\",\n    \"regex\": \"\\\\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    \"entropy\": 3,\n    \"keywords\": [\n      \"t3blbkfj\"\n    ]\n  },\n  {\n    \"id\": \"openshift-user-token\",\n    \"description\": \"Found an OpenShift user token, potentially compromising an OpenShift/Kubernetes cluster.\",\n    \"regex\": \"\\\\b(sha256~[\\\\w-]{43})(?:[^\\\\w-]|\\\\z)\",\n    \"entropy\": 3.5,\n    \"keywords\": [\n      \"sha256~\"\n    ]\n  },\n  {\n    \"id\": \"perplexity-api-key\",\n    \"description\": \"Detected a Perplexity API key, which could lead to unauthorized access to Perplexity AI services and data exposure.\",\n    \"regex\": \"\\\\b(pplx-[a-zA-Z0-9]{48})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$|\\\\b)\",\n    \"entropy\": 4,\n    \"keywords\": [\n      \"pplx-\"\n    ]\n  },\n  {\n    \"id\": \"pkcs12-file\",\n    \"description\": \"Found a PKCS #12 file, which commonly contain bundled private keys.\"\n  },\n  {\n    \"id\": \"plaid-api-token\",\n    \"description\": \"Discovered a Plaid API Token, potentially compromising financial data aggregation and banking services.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"plaid\"\n    ]\n  },\n  {\n    \"id\": \"plaid-client-id\",\n    \"description\": \"Uncovered a Plaid Client ID, which could lead to unauthorized financial service integrations and data breaches.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:plaid)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{24})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3.5,\n    \"keywords\": [\n      \"plaid\"\n    ]\n  },\n  {\n    \"id\": \"plaid-secret-key\",\n    \"description\": \"Detected a Plaid Secret key, risking unauthorized access to financial accounts and sensitive transaction data.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:plaid)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{30})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3.5,\n    \"keywords\": [\n      \"plaid\"\n    ]\n  },\n  {\n    \"id\": \"planetscale-api-token\",\n    \"description\": \"Identified a PlanetScale API token, potentially compromising database management and operations.\",\n    \"regex\": \"\\\\b(pscale_tkn_(?i)[\\\\w=\\\\.-]{32,64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"pscale_tkn_\"\n    ]\n  },\n  {\n    \"id\": \"planetscale-oauth-token\",\n    \"description\": \"Found a PlanetScale OAuth token, posing a risk to database access control and sensitive data integrity.\",\n    \"regex\": \"\\\\b(pscale_oauth_[\\\\w=\\\\.-]{32,64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"pscale_oauth_\"\n    ]\n  },\n  {\n    \"id\": \"planetscale-password\",\n    \"description\": \"Discovered a PlanetScale password, which could lead to unauthorized database operations and data breaches.\",\n    \"regex\": \"(?i)\\\\b(pscale_pw_(?i)[\\\\w=\\\\.-]{32,64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"pscale_pw_\"\n    ]\n  },\n  {\n    \"id\": \"postman-api-token\",\n    \"description\": \"Uncovered a Postman API token, potentially compromising API testing and development workflows.\",\n    \"regex\": \"\\\\b(PMAK-(?i)[a-f0-9]{24}\\\\-[a-f0-9]{34})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"pmak-\"\n    ]\n  },\n  {\n    \"id\": \"prefect-api-token\",\n    \"description\": \"Detected a Prefect API token, risking unauthorized access to workflow management and automation services.\",\n    \"regex\": \"\\\\b(pnu_[a-zA-Z0-9]{36})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"pnu_\"\n    ]\n  },\n  {\n    \"id\": \"private-key\",\n    \"description\": \"Identified a Private Key, which may compromise cryptographic security and sensitive data encryption.\",\n    \"regex\": \"(?i)-----BEGIN[ A-Z0-9_-]{0,100}PRIVATE KEY(?: BLOCK)?-----[\\\\s\\\\S-]{64,}?KEY(?: BLOCK)?-----\",\n    \"keywords\": [\n      \"-----begin\"\n    ]\n  },\n  {\n    \"id\": \"privateai-api-token\",\n    \"description\": \"Identified a PrivateAI Token, posing a risk of unauthorized access to AI services and data manipulation.\",\n    \"regex\": \"[\\\\w.-]{0,50}?(?i:[\\\\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]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"privateai\",\n      \"private_ai\",\n      \"private-ai\"\n    ]\n  },\n  {\n    \"id\": \"pulumi-api-token\",\n    \"description\": \"Found a Pulumi API token, posing a risk to infrastructure as code services and cloud resource management.\",\n    \"regex\": \"\\\\b(pul-[a-f0-9]{40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"pul-\"\n    ]\n  },\n  {\n    \"id\": \"pypi-upload-token\",\n    \"description\": \"Discovered a PyPI upload token, potentially compromising Python package distribution and repository integrity.\",\n    \"regex\": \"pypi-AgEIcHlwaS5vcmc[\\\\w-]{50,1000}\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"pypi-ageichlwas5vcmc\"\n    ]\n  },\n  {\n    \"id\": \"rapidapi-access-token\",\n    \"description\": \"Uncovered a RapidAPI Access Token, which could lead to unauthorized access to various APIs and data services.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:rapidapi)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9_-]{50})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"rapidapi\"\n    ]\n  },\n  {\n    \"id\": \"readme-api-token\",\n    \"description\": \"Detected a Readme API token, risking unauthorized documentation management and content exposure.\",\n    \"regex\": \"\\\\b(rdme_[a-z0-9]{70})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"rdme_\"\n    ]\n  },\n  {\n    \"id\": \"rubygems-api-token\",\n    \"description\": \"Identified a Rubygem API token, potentially compromising Ruby library distribution and package management.\",\n    \"regex\": \"\\\\b(rubygems_[a-f0-9]{48})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"rubygems_\"\n    ]\n  },\n  {\n    \"id\": \"scalingo-api-token\",\n    \"description\": \"Found a Scalingo API token, posing a risk to cloud platform services and application deployment security.\",\n    \"regex\": \"\\\\b(tk-us-[\\\\w-]{48})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"tk-us-\"\n    ]\n  },\n  {\n    \"id\": \"sendbird-access-id\",\n    \"description\": \"Discovered a Sendbird Access ID, which could compromise chat and messaging platform integrations.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"sendbird\"\n    ]\n  },\n  {\n    \"id\": \"sendbird-access-token\",\n    \"description\": \"Uncovered a Sendbird Access Token, potentially risking unauthorized access to communication services and user data.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:sendbird)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-f0-9]{40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"sendbird\"\n    ]\n  },\n  {\n    \"id\": \"sendgrid-api-token\",\n    \"description\": \"Detected a SendGrid API token, posing a risk of unauthorized email service operations and data exposure.\",\n    \"regex\": \"\\\\b(SG\\\\.(?i)[a-z0-9=_\\\\-\\\\.]{66})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"sg.\"\n    ]\n  },\n  {\n    \"id\": \"sendinblue-api-token\",\n    \"description\": \"Identified a Sendinblue API token, which may compromise email marketing services and subscriber data privacy.\",\n    \"regex\": \"\\\\b(xkeysib-[a-f0-9]{64}\\\\-(?i)[a-z0-9]{16})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"xkeysib-\"\n    ]\n  },\n  {\n    \"id\": \"sentry-access-token\",\n    \"description\": \"Found a Sentry.io Access Token (old format), risking unauthorized access to error tracking services and sensitive application data.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:sentry)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-f0-9]{64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"sentry\"\n    ]\n  },\n  {\n    \"id\": \"sentry-org-token\",\n    \"description\": \"Found a Sentry.io Organization Token, risking unauthorized access to error tracking services and sensitive application data.\",\n    \"regex\": \"\\\\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+/]|\\\\z)\",\n    \"entropy\": 4.5,\n    \"keywords\": [\n      \"sntrys_eyjpyxqio\"\n    ]\n  },\n  {\n    \"id\": \"sentry-user-token\",\n    \"description\": \"Found a Sentry.io User Token, risking unauthorized access to error tracking services and sensitive application data.\",\n    \"regex\": \"\\\\b(sntryu_[a-f0-9]{64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3.5,\n    \"keywords\": [\n      \"sntryu_\"\n    ]\n  },\n  {\n    \"id\": \"settlemint-application-access-token\",\n    \"description\": \"Found a Settlemint Application Access Token.\",\n    \"regex\": \"\\\\b(sm_aat_[a-zA-Z0-9]{16})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"sm_aat\"\n    ]\n  },\n  {\n    \"id\": \"settlemint-personal-access-token\",\n    \"description\": \"Found a Settlemint Personal Access Token.\",\n    \"regex\": \"\\\\b(sm_pat_[a-zA-Z0-9]{16})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"sm_pat\"\n    ]\n  },\n  {\n    \"id\": \"settlemint-service-access-token\",\n    \"description\": \"Found a Settlemint Service Access Token.\",\n    \"regex\": \"\\\\b(sm_sat_[a-zA-Z0-9]{16})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"sm_sat\"\n    ]\n  },\n  {\n    \"id\": \"shippo-api-token\",\n    \"description\": \"Discovered a Shippo API token, potentially compromising shipping services and customer order data.\",\n    \"regex\": \"\\\\b(shippo_(?:live|test)_[a-fA-F0-9]{40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"shippo_\"\n    ]\n  },\n  {\n    \"id\": \"shopify-access-token\",\n    \"description\": \"Uncovered a Shopify access token, which could lead to unauthorized e-commerce platform access and data breaches.\",\n    \"regex\": \"shpat_[a-fA-F0-9]{32}\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"shpat_\"\n    ]\n  },\n  {\n    \"id\": \"shopify-custom-access-token\",\n    \"description\": \"Detected a Shopify custom access token, potentially compromising custom app integrations and e-commerce data security.\",\n    \"regex\": \"shpca_[a-fA-F0-9]{32}\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"shpca_\"\n    ]\n  },\n  {\n    \"id\": \"shopify-private-app-access-token\",\n    \"description\": \"Identified a Shopify private app access token, risking unauthorized access to private app data and store operations.\",\n    \"regex\": \"shppa_[a-fA-F0-9]{32}\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"shppa_\"\n    ]\n  },\n  {\n    \"id\": \"shopify-shared-secret\",\n    \"description\": \"Found a Shopify shared secret, posing a risk to application authentication and e-commerce platform security.\",\n    \"regex\": \"shpss_[a-fA-F0-9]{32}\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"shpss_\"\n    ]\n  },\n  {\n    \"id\": \"sidekiq-secret\",\n    \"description\": \"Discovered a Sidekiq Secret, which could lead to compromised background job processing and application data breaches.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"bundle_enterprise__contribsys__com\",\n      \"bundle_gems__contribsys__com\"\n    ]\n  },\n  {\n    \"id\": \"sidekiq-sensitive-url\",\n    \"description\": \"Uncovered a Sidekiq Sensitive URL, potentially exposing internal job queues and sensitive operation details.\",\n    \"regex\": \"(?i)\\\\bhttps?://([a-f0-9]{8}:[a-f0-9]{8})@(?:gems.contribsys.com|enterprise.contribsys.com)(?:[\\\\/|\\\\#|\\\\?|:]|$)\",\n    \"keywords\": [\n      \"gems.contribsys.com\",\n      \"enterprise.contribsys.com\"\n    ]\n  },\n  {\n    \"id\": \"slack-app-token\",\n    \"description\": \"Detected a Slack App-level token, risking unauthorized access to Slack applications and workspace data.\",\n    \"regex\": \"(?i)xapp-\\\\d-[A-Z0-9]+-\\\\d+-[a-z0-9]+\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"xapp\"\n    ]\n  },\n  {\n    \"id\": \"slack-bot-token\",\n    \"description\": \"Identified a Slack Bot token, which may compromise bot integrations and communication channel security.\",\n    \"regex\": \"xoxb-[0-9]{10,13}-[0-9]{10,13}[a-zA-Z0-9-]*\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"xoxb\"\n    ]\n  },\n  {\n    \"id\": \"slack-config-access-token\",\n    \"description\": \"Found a Slack Configuration access token, posing a risk to workspace configuration and sensitive data access.\",\n    \"regex\": \"(?i)xoxe.xox[bp]-\\\\d-[A-Z0-9]{163,166}\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"xoxe.xoxb-\",\n      \"xoxe.xoxp-\"\n    ]\n  },\n  {\n    \"id\": \"slack-config-refresh-token\",\n    \"description\": \"Discovered a Slack Configuration refresh token, potentially allowing prolonged unauthorized access to configuration settings.\",\n    \"regex\": \"(?i)xoxe-\\\\d-[A-Z0-9]{146}\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"xoxe-\"\n    ]\n  },\n  {\n    \"id\": \"slack-legacy-bot-token\",\n    \"description\": \"Uncovered a Slack Legacy bot token, which could lead to compromised legacy bot operations and data exposure.\",\n    \"regex\": \"xoxb-[0-9]{8,14}-[a-zA-Z0-9]{18,26}\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"xoxb\"\n    ]\n  },\n  {\n    \"id\": \"slack-legacy-token\",\n    \"description\": \"Detected a Slack Legacy token, risking unauthorized access to older Slack integrations and user data.\",\n    \"regex\": \"xox[os]-\\\\d+-\\\\d+-\\\\d+-[a-fA-F\\\\d]+\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"xoxo\",\n      \"xoxs\"\n    ]\n  },\n  {\n    \"id\": \"slack-legacy-workspace-token\",\n    \"description\": \"Identified a Slack Legacy Workspace token, potentially compromising access to workspace data and legacy features.\",\n    \"regex\": \"xox[ar]-(?:\\\\d-)?[0-9a-zA-Z]{8,48}\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"xoxa\",\n      \"xoxr\"\n    ]\n  },\n  {\n    \"id\": \"slack-user-token\",\n    \"description\": \"Found a Slack User token, posing a risk of unauthorized user impersonation and data access within Slack workspaces.\",\n    \"regex\": \"xox[pe](?:-[0-9]{10,13}){3}-[a-zA-Z0-9-]{28,34}\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"xoxp-\",\n      \"xoxe-\"\n    ]\n  },\n  {\n    \"id\": \"slack-webhook-url\",\n    \"description\": \"Discovered a Slack Webhook, which could lead to unauthorized message posting and data leakage in Slack channels.\",\n    \"regex\": \"(?:https?://)?hooks.slack.com/(?:services|workflows|triggers)/[A-Za-z0-9+/]{43,56}\",\n    \"keywords\": [\n      \"hooks.slack.com\"\n    ]\n  },\n  {\n    \"id\": \"snyk-api-token\",\n    \"description\": \"Uncovered a Snyk API token, potentially compromising software vulnerability scanning and code security.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"snyk\"\n    ]\n  },\n  {\n    \"id\": \"sonar-api-token\",\n    \"description\": \"Uncovered a Sonar API token, potentially compromising software vulnerability scanning and code security.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"sonar\"\n    ]\n  },\n  {\n    \"id\": \"sourcegraph-access-token\",\n    \"description\": \"Sourcegraph is a code search and navigation engine.\",\n    \"regex\": \"(?i)\\\\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]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"sgp_\",\n      \"sourcegraph\"\n    ]\n  },\n  {\n    \"id\": \"square-access-token\",\n    \"description\": \"Detected a Square Access Token, risking unauthorized payment processing and financial transaction exposure.\",\n    \"regex\": \"\\\\b((?:EAAA|sq0atp-)[\\\\w-]{22,60})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"sq0atp-\",\n      \"eaaa\"\n    ]\n  },\n  {\n    \"id\": \"squarespace-access-token\",\n    \"description\": \"Identified a Squarespace Access Token, which may compromise website management and content control on Squarespace.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"squarespace\"\n    ]\n  },\n  {\n    \"id\": \"stripe-access-token\",\n    \"description\": \"Found a Stripe Access Token, posing a risk to payment processing services and sensitive financial data.\",\n    \"regex\": \"\\\\b((?:sk|rk)_(?:test|live|prod)_[a-zA-Z0-9]{10,99})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 2,\n    \"keywords\": [\n      \"sk_test\",\n      \"sk_live\",\n      \"sk_prod\",\n      \"rk_test\",\n      \"rk_live\",\n      \"rk_prod\"\n    ]\n  },\n  {\n    \"id\": \"sumologic-access-id\",\n    \"description\": \"Discovered a SumoLogic Access ID, potentially compromising log management services and data analytics integrity.\",\n    \"regex\": \"[\\\\w.-]{0,50}?(?i:[\\\\w.-]{0,50}?(?:(?-i:[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]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"sumo\"\n    ]\n  },\n  {\n    \"id\": \"sumologic-access-token\",\n    \"description\": \"Uncovered a SumoLogic Access Token, which could lead to unauthorized access to log data and analytics insights.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:(?-i:[Ss]umo|SUMO))(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{64})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"sumo\"\n    ]\n  },\n  {\n    \"id\": \"telegram-bot-api-token\",\n    \"description\": \"Detected a Telegram Bot API Token, risking unauthorized bot operations and message interception on Telegram.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:telegr)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([0-9]{5,16}:(?-i:A)[a-z0-9_\\\\-]{34})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"telegr\"\n    ]\n  },\n  {\n    \"id\": \"travisci-access-token\",\n    \"description\": \"Identified a Travis CI Access Token, potentially compromising continuous integration services and codebase security.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:travis)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{22})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"travis\"\n    ]\n  },\n  {\n    \"id\": \"twilio-api-key\",\n    \"description\": \"Found a Twilio API Key, posing a risk to communication services and sensitive customer interaction data.\",\n    \"regex\": \"SK[0-9a-fA-F]{32}\",\n    \"entropy\": 3,\n    \"keywords\": [\n      \"sk\"\n    ]\n  },\n  {\n    \"id\": \"twitch-api-token\",\n    \"description\": \"Discovered a Twitch API token, which could compromise streaming services and account integrations.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:twitch)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{30})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"twitch\"\n    ]\n  },\n  {\n    \"id\": \"twitter-access-secret\",\n    \"description\": \"Uncovered a Twitter Access Secret, potentially risking unauthorized Twitter integrations and data breaches.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:twitter)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{45})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"twitter\"\n    ]\n  },\n  {\n    \"id\": \"twitter-access-token\",\n    \"description\": \"Detected a Twitter Access Token, posing a risk of unauthorized account operations and social media data exposure.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"twitter\"\n    ]\n  },\n  {\n    \"id\": \"twitter-api-key\",\n    \"description\": \"Identified a Twitter API Key, which may compromise Twitter application integrations and user data security.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:twitter)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{25})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"twitter\"\n    ]\n  },\n  {\n    \"id\": \"twitter-api-secret\",\n    \"description\": \"Found a Twitter API Secret, risking the security of Twitter app integrations and sensitive data access.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:twitter)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{50})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"twitter\"\n    ]\n  },\n  {\n    \"id\": \"twitter-bearer-token\",\n    \"description\": \"Discovered a Twitter Bearer Token, potentially compromising API access and data retrieval from Twitter.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"twitter\"\n    ]\n  },\n  {\n    \"id\": \"typeform-api-token\",\n    \"description\": \"Uncovered a Typeform API token, which could lead to unauthorized survey management and data collection.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"tfp_\"\n    ]\n  },\n  {\n    \"id\": \"vault-batch-token\",\n    \"description\": \"Detected a Vault Batch Token, risking unauthorized access to secret management services and sensitive data.\",\n    \"regex\": \"\\\\b(hvb\\\\.[\\\\w-]{138,300})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 4,\n    \"keywords\": [\n      \"hvb.\"\n    ]\n  },\n  {\n    \"id\": \"vault-service-token\",\n    \"description\": \"Identified a Vault Service Token, potentially compromising infrastructure security and access to sensitive credentials.\",\n    \"regex\": \"\\\\b((?:hvs\\\\.[\\\\w-]{90,120}|s\\\\.(?i:[a-z0-9]{24})))(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"entropy\": 3.5,\n    \"keywords\": [\n      \"hvs.\",\n      \"s.\"\n    ]\n  },\n  {\n    \"id\": \"yandex-access-token\",\n    \"description\": \"Found a Yandex Access Token, posing a risk to Yandex service integrations and user data privacy.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"yandex\"\n    ]\n  },\n  {\n    \"id\": \"yandex-api-key\",\n    \"description\": \"Discovered a Yandex API Key, which could lead to unauthorized access to Yandex services and data manipulation.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"yandex\"\n    ]\n  },\n  {\n    \"id\": \"yandex-aws-access-token\",\n    \"description\": \"Uncovered a Yandex AWS Access Token, potentially compromising cloud resource access and data security on Yandex Cloud.\",\n    \"regex\": \"(?i)[\\\\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]|$)\",\n    \"keywords\": [\n      \"yandex\"\n    ]\n  },\n  {\n    \"id\": \"zendesk-secret-key\",\n    \"description\": \"Detected a Zendesk Secret Key, risking unauthorized access to customer support services and sensitive ticketing data.\",\n    \"regex\": \"(?i)[\\\\w.-]{0,50}?(?:zendesk)(?:[ \\\\t\\\\w.-]{0,20})[\\\\s'\\\"]{0,3}(?:=|>|:{1,3}=|\\\\|\\\\||:|=>|\\\\?=|,)[\\\\x60'\\\"\\\\s=]{0,5}([a-z0-9]{40})(?:[\\\\x60'\\\"\\\\s;]|\\\\\\\\[nr]|$)\",\n    \"keywords\": [\n      \"zendesk\"\n    ]\n  }\n];\n","// Value-shape detectors built from data: tuned patterns in custom.toml plus the\n// vendored gitleaks file. Custom rules are authoritative — any gitleaks rule\n// whose keywords overlap a custom rule's is skipped, so the custom pattern wins\n// over gitleaks' file-oriented version of the same secret.\n//\n// The TOML is compiled ahead of time by `yarn gen:secret-rules`, so no TOML\n// parser is bundled. Edit the `.toml` files, then re-run the generator.\nimport { CUSTOM_RULES, GITLEAKS_RULES, type SecretRule } from '../../rules/rules.generated';\nimport type { SecretConfidence } from './types';\n\nexport interface RuleDetector {\n  type: string;\n  label: string;\n  confidence: SecretConfidence;\n  regex: RegExp;\n  entropy?: number;\n  keywords: string[];\n}\n\n/** Rewrites a gitleaks (Go/RE2) pattern into an equivalent the JS engine accepts. */\nfunction toJsRegex(source: string): RegExp | null {\n  let body = source;\n  let flags = 'gd';\n  if (/\\(\\?i\\)/.test(body)) {\n    body = body.replace(/\\(\\?i\\)/g, '');\n    flags += 'i';\n  }\n  body = body.replace(/\\(\\?P</g, '(?<');\n  try {\n    return new RegExp(body, flags);\n  } catch {\n    return null;\n  }\n}\n\nfunction normalizeLabelFromId(id: string): string {\n  return id.replace(/-/g, ' ').toUpperCase();\n}\n\nfunction compile(rule: SecretRule, defaultConfidence: SecretConfidence): RuleDetector | null {\n  if (typeof rule.regex !== 'string') {\n    return null;\n  }\n  const regex = toJsRegex(rule.regex);\n  if (regex === null) {\n    return null;\n  }\n  return {\n    type: rule.id,\n    label: normalizeLabelFromId(rule.id),\n    confidence: rule.confidence ?? defaultConfidence,\n    regex,\n    entropy: rule.entropy,\n    keywords: (rule.keywords ?? []).map((k) => k.toLowerCase()),\n  };\n}\n\nfunction build(): RuleDetector[] {\n  // custom detectors first — they rank ahead of the gitleaks file.\n  const custom = CUSTOM_RULES.map((r) => compile(r, 'high')).filter((d): d is RuleDetector => d !== null);\n\n  const covered = custom.flatMap((d) => d.keywords);\n  const isCovered = (keywords: string[]) =>\n    keywords.some((k) => covered.some((p) => k.startsWith(p) || p.startsWith(k)));\n\n  const supplemental: RuleDetector[] = [];\n  for (const rule of GITLEAKS_RULES) {\n    const keywords = (rule.keywords ?? []).map((k) => k.toLowerCase());\n    if (isCovered(keywords)) {\n      continue;\n    }\n    const detector = compile(rule, 'medium');\n    if (detector !== null) {\n      supplemental.push(detector);\n    }\n  }\n\n  return [...custom, ...supplemental];\n}\n\nexport const RULE_DETECTORS: RuleDetector[] = build();\n","/** Shannon entropy in bits per character — high for random tokens. */\nexport function shannonEntropy(value: string): number {\n  if (value.length === 0) {\n    return 0;\n  }\n\n  const counts = new Map<string, number>();\n  for (const char of value) {\n    counts.set(char, (counts.get(char) ?? 0) + 1);\n  }\n\n  let entropy = 0;\n  for (const count of counts.values()) {\n    const p = count / value.length;\n    entropy -= p * Math.log2(p);\n  }\n\n  return entropy;\n}\n","import { RULE_DETECTORS } from './ruleDetectors';\nimport { shannonEntropy } from './entropy';\nimport type { DetectionResult } from './types';\n\nexport interface EmbeddedMatch extends DetectionResult {\n  index: number;\n  length: number;\n}\n\nconst isTokenChar = (ch: string): boolean => ch !== '' && /[A-Za-z0-9]/.test(ch);\n\ninterface Candidate extends EmbeddedMatch {\n  rank: number;\n}\n\nfunction better(next: Candidate, best: Candidate | null): boolean {\n  if (best === null) {\n    return true;\n  }\n  return next.index < best.index || (next.index === best.index && next.rank < best.rank);\n}\n\n/**\n * Every value-shape match in `text`, unordered and possibly overlapping. Shared\n * by `detectEmbedded` and `findAllEmbedded` so the matching rules — group\n * selection, entropy guard, token-boundary guard — live in one place.\n */\nfunction* iterateEmbeddedMatches(text: string): Generator<Candidate> {\n  const lower = text.toLowerCase();\n\n  for (let i = 0; i < RULE_DETECTORS.length; i++) {\n    const rule = RULE_DETECTORS[i]!;\n    if (rule.keywords.length > 0 && !rule.keywords.some((k) => lower.includes(k))) {\n      continue;\n    }\n    const { regex } = rule;\n    regex.lastIndex = 0;\n    let m: RegExpExecArray | null;\n    while ((m = regex.exec(text)) !== null) {\n      const groupIndex = m.indices && m.indices[1] ? 1 : 0;\n      const span = m.indices?.[groupIndex];\n      const secret = m[groupIndex] ?? m[0];\n      if (!span || secret.length === 0) {\n        if (m.index === regex.lastIndex) {\n          regex.lastIndex += 1;\n        }\n        continue;\n      }\n      const [start, end] = span;\n      if (rule.entropy != null && shannonEntropy(secret) < rule.entropy) {\n        continue;\n      }\n      if (isTokenChar(text[start - 1] ?? '') || isTokenChar(text[end] ?? '')) {\n        continue;\n      }\n      yield {\n        type: rule.type,\n        label: rule.label,\n        confidence: rule.confidence,\n        secret,\n        index: start,\n        length: end - start,\n        rank: i,\n      };\n    }\n  }\n}\n\n/**\n * The leftmost secret in `text`, ties broken by detector priority (custom rules\n * first, then the gitleaks).\n */\nexport function detectEmbedded(text: string): EmbeddedMatch | null {\n  let best: Candidate | null = null;\n  for (const candidate of iterateEmbeddedMatches(text)) {\n    if (better(candidate, best)) {\n      best = candidate;\n    }\n  }\n\n  if (best === null) {\n    return null;\n  }\n  const { rank: _rank, ...match } = best;\n  return match;\n}\n\n/**\n * Every secret in `text`, non-overlapping and in source order.\n */\nexport function findAllEmbedded(text: string): EmbeddedMatch[] {\n  const candidates = [...iterateEmbeddedMatches(text)].sort((a, b) => a.index - b.index || a.rank - b.rank);\n\n  const accepted: EmbeddedMatch[] = [];\n  let lastEnd = -1;\n  for (const candidate of candidates) {\n    if (candidate.index < lastEnd) {\n      continue;\n    }\n    const { rank: _rank, ...match } = candidate;\n    accepted.push(match);\n    lastEnd = candidate.index + candidate.length;\n  }\n  return accepted;\n}\n","import { shannonEntropy } from './entropy';\nimport type { DetectionResult } from './types';\n\n// The prefix-shaped detectors live as data in ../../rules/*.toml. This heuristic\n// is algorithmic — an entropy threshold, not a fixed pattern — so it can't be\n// expressed as a rule regex and stays here.\n\nexport function detectHighEntropy(value: string): DetectionResult | null {\n  if (!/^[A-Za-z0-9+/=]{24,}$/.test(value)) {\n    return null;\n  }\n  const hasDigit = /\\d/.test(value);\n  const hasLetter = /[A-Za-z]/.test(value);\n  if (!hasDigit || !hasLetter) {\n    return null;\n  }\n  if (shannonEntropy(value) < 3.6) {\n    return null;\n  }\n  return {\n    type: 'high-entropy',\n    label: 'HIGH ENTROPY STRING',\n    confidence: 'low',\n    secret: value,\n  };\n}\n","// cspell:ignore apikey creds\nimport type { DetectionResult } from './types';\n\n// Variable / property names that, when assigned a string literal, suggest the\n// value is a credential even when the value itself looks unremarkable (e.g.\n// `const pass = 'hunter2'`). Matched per identifier *word* — split on\n// camelCase / snake / kebab boundaries — so `apiKey` matches but `keyboard`,\n// `author` and `monkey` do not.\nconst SENSITIVE_NAME_KEYWORDS = new Set([\n  'password',\n  'passwd',\n  'passphrase',\n  'pass',\n  'pwd',\n  'secret',\n  'token',\n  'apikey',\n  'key',\n  'auth',\n  'bearer',\n  'credential',\n  'credentials',\n  'cred',\n  'creds',\n  'session',\n  'signature',\n  'salt',\n  'certificate',\n  'cert',\n]);\n\nfunction splitIdentifierWords(name: string): string[] {\n  return name\n    .replace(/([a-z0-9])([A-Z])/g, '$1 $2')\n    .replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2')\n    .split(/[^A-Za-z0-9]+/)\n    .map((word) => word.toLowerCase())\n    .filter(Boolean);\n}\n\nfunction isSensitiveName(name: string): boolean {\n  return splitIdentifierWords(name).some((word) => SENSITIVE_NAME_KEYWORDS.has(word));\n}\n\n// A name-based hit is low signal, so only flag compact single-token values that\n// could plausibly be a credential — not sentences, URLs or empty strings.\nfunction isPlausibleNamedSecretValue(value: string): boolean {\n  return value.length >= 4 && value.length <= 200 && !/\\s/.test(value) && !value.includes('://');\n}\n\n/**\n * Fallback for values that look unremarkable on their own, so an obvious\n * mistake like `const pass = 'function'` is still surfaced.\n */\nexport function detectFromName(body: string, name: string | undefined): DetectionResult | null {\n  if (!isPlausibleNamedSecretValue(body)) {\n    return null;\n  }\n\n  if (!name || !isSensitiveName(name)) {\n    return null;\n  }\n\n  return {\n    type: 'named',\n    label: 'NAMED SECRET',\n    confidence: 'low',\n    secret: body,\n  };\n}\n","/**\n * Memoizes the latest input only — a scanner sees an evolving document, so anything older is not relevant.\n */\nexport function memoizeLatest<T>(compute: (input: string) => T[]): (input: string) => T[] {\n  let lastInput: string | null = null;\n  let lastResult: T[] = [];\n\n  return (input: string) => {\n    if (!input) {\n      return [];\n    }\n    if (input === lastInput) {\n      return lastResult;\n    }\n    lastInput = input;\n    lastResult = compute(input);\n    return lastResult;\n  };\n}\n","/**\n * Code-first scanner: flags likely hardcoded secrets in a script.\n *\n * String-literal aware (AST-based) rather than raw-text, so reported ranges line\n * up with what the user sees and a rewrite can edit the original text.\n *\n * For plain-text outside a literal, use `scanText`.\n *\n * Orchestration only; the detectors live in `./detection`.\n */\n\nimport { iterateStringLiterals } from './detection/literals';\nimport { isPlaceholder } from './detection/placeholders';\nimport { createPositionResolver } from './detection/position';\nimport { detectEmbedded } from './detection/embedded';\nimport { detectHighEntropy } from './detection/highEntropy';\nimport { detectFromName } from './detection/nameDetector';\nimport type { SecretFinding } from './detection/types';\nimport { memoizeLatest } from './memoizeLatest';\n\nfunction scan(script: string): SecretFinding[] {\n  const findings: SecretFinding[] = [];\n  const positionAt = createPositionResolver(script);\n\n  for (const {\n    body,\n    literalStart,\n    literalEnd,\n    contentStart,\n    contentEnd,\n    kind,\n    name,\n    embeddedOnly,\n  } of iterateStringLiterals(script)) {\n    const literal = { start: literalStart, end: literalEnd };\n\n    const embedded = detectEmbedded(script.slice(contentStart, contentEnd));\n    if (embedded) {\n      // A match covering the whole content means the literal *is* the secret\n      const spansWholeLiteral = !embeddedOnly && embedded.index === 0 && embedded.length === contentEnd - contentStart;\n      const secretStart = contentStart + embedded.index;\n      const range = { start: secretStart, end: secretStart + embedded.length };\n      const { line, column } = positionAt(range.start);\n\n      findings.push({\n        id: `${range.start}-${embedded.type}`,\n        type: embedded.type,\n        label: embedded.label,\n        confidence: embedded.confidence,\n        secret: embedded.secret,\n        range,\n        line,\n        column,\n        literal,\n        rewrite: spansWholeLiteral ? 'literal' : kind === 'template' ? 'template-interpolation' : 'none',\n      });\n      continue;\n    }\n\n    if (!embeddedOnly && body.length > 0 && !isPlaceholder(body)) {\n      const detected = detectHighEntropy(body) ?? detectFromName(body, name);\n      if (detected) {\n        const range = { start: contentStart, end: contentEnd };\n        const { line, column } = positionAt(range.start);\n        findings.push({\n          id: `${range.start}-${detected.type}`,\n          ...detected,\n          range,\n          line,\n          column,\n          literal,\n          rewrite: 'literal',\n        });\n      }\n    }\n  }\n\n  return findings;\n}\n\n/**\n * A code scanner with its own memo. Prefer this to the shared {@link scanCode}\n * when more than one surface scans independently — see `memoizeLatest`.\n */\nexport function createCodeScanner(): (script: string) => SecretFinding[] {\n  return memoizeLatest(scan);\n}\n\n/** Shared code scanner, for a host with a single scanning surface. */\nexport const scanCode = createCodeScanner();\n\nexport { offsetToPosition } from './detection/position';\nexport { shannonEntropy } from './detection/entropy';\nexport type { SecretFinding, SecretConfidence, SecretRange, SecretRewrite } from './detection/types';\n","/**\n * Text-first counterpart to {@link scanCode}: runs the same value-shape\n * detectors over raw text rather than over parsed string literals, which is what\n * a natural-language surface (a prompt, a description) needs — there the\n * credential is typed inline, not quoted as a JS string.\n *\n */\nimport { type EmbeddedMatch, findAllEmbedded } from './detection/embedded';\nimport { detectHighEntropy } from './detection/highEntropy';\nimport { isPlaceholder } from './detection/placeholders';\nimport { createPositionResolver } from './detection/position';\nimport type { SecretFinding } from './detection/types';\nimport { memoizeLatest } from './memoizeLatest';\n\n// A run of high-entropy-alphabet characters, long enough to be a secret blob.\n// The alphabet mirrors `detectHighEntropy` (no `-`/`_`, so kebab/snake config\n// and identifiers aren't split into candidates), and the quotes/whitespace/\n// punctuation around a token in prose delimit it.\nconst HIGH_ENTROPY_TOKEN = /[A-Za-z0-9+/=]{24,}/g;\n\nfunction highEntropyMatches(text: string): EmbeddedMatch[] {\n  const matches: EmbeddedMatch[] = [];\n  HIGH_ENTROPY_TOKEN.lastIndex = 0;\n  let m: RegExpExecArray | null;\n  while ((m = HIGH_ENTROPY_TOKEN.exec(text)) !== null) {\n    const token = m[0];\n    if (isPlaceholder(token)) {\n      continue;\n    }\n    const detected = detectHighEntropy(token);\n    if (detected) {\n      matches.push({ ...detected, index: m.index, length: token.length });\n    }\n  }\n  return matches;\n}\n\nfunction scan(text: string): SecretFinding[] {\n  const ruleMatches = findAllEmbedded(text);\n  const overlapsRuleMatch = (m: EmbeddedMatch) =>\n    ruleMatches.some((rule) => m.index < rule.index + rule.length && rule.index < m.index + m.length);\n\n  const matches = [...ruleMatches, ...highEntropyMatches(text).filter((m) => !overlapsRuleMatch(m))].sort(\n    (a, b) => a.index - b.index\n  );\n\n  const positionAt = createPositionResolver(text);\n  return matches.map((match): SecretFinding => {\n    const { line, column } = positionAt(match.index);\n    return {\n      id: `${match.index}-${match.type}`,\n      type: match.type,\n      label: match.label,\n      confidence: match.confidence,\n      secret: match.secret,\n      range: { start: match.index, end: match.index + match.length },\n      line,\n      column,\n    };\n  });\n}\n\n/**\n * A text scanner with its own memo. Prefer this to the shared {@link scanText}\n * when more than one surface scans independently — see `memoizeLatest`.\n */\nexport function createTextScanner(): (text: string) => SecretFinding[] {\n  return memoizeLatest(scan);\n}\n\n/** Shared text scanner, for a host with a single scanning surface. */\nexport const scanText = createTextScanner();\n","/**\n * How long to wait after the last edit before re-scanning. A scan runs every\n * detector over the whole document (and, for code scans, re-parses it), so\n * running it on every keystroke blocks typing. Debouncing coalesces a burst of\n * edits into one scan.\n */\nexport const DEFAULT_DEBOUNCE_MS = 1500;\n","/**\n * The k6 {@link SecretRewriter}: rewrites a detected hardcoded secret into a\n * reference to the managed Secrets store, matching the syntax documented in the\n * in-product Secrets guide:\n *\n *   import secrets from 'k6/secrets'\n *   const value = await secrets.get('my-secret')\n *\n * This is the only k6-specific piece of the library. Everything else — the\n * detectors, the finding shape, the hooks, the panel — is runtime-agnostic.\n */\nimport type { SecretFinding } from './detection/types';\nimport type { ApplyResult, SecretRewriter } from './rewrite';\n\nconst SECRETS_MODULE = 'k6/secrets';\n\nfunction findSecretsBinding(script: string): string | null {\n  const match = script.match(/import\\s+([A-Za-z_$][\\w$]*)\\s+from\\s+['\"]k6\\/secrets['\"]/);\n  return match?.[1] ?? null;\n}\n\nexport function buildSecretReference(secretName: string, binding = 'secrets'): string {\n  return `await ${binding}.get('${secretName}')`;\n}\n\nfunction ensureSecretsImport(script: string): {\n  script: string;\n  binding: string;\n  addedImport: boolean;\n} {\n  const existing = findSecretsBinding(script);\n  if (existing) {\n    return { script, binding: existing, addedImport: false };\n  }\n\n  const importLine = `import secrets from '${SECRETS_MODULE}'\\n`;\n  return {\n    script: `${importLine}${script}`,\n    binding: 'secrets',\n    addedImport: true,\n  };\n}\n\nexport function applySecretReference(script: string, finding: SecretFinding, secretName: string): ApplyResult {\n  if (finding.rewrite === undefined || finding.rewrite === 'none') {\n    return { text: script, addedImport: false, needsAsync: false, applied: false };\n  }\n\n  const target = finding.rewrite === 'literal' ? (finding.literal ?? finding.range) : finding.range;\n\n  // Guard against stale offsets. `finding` is a snapshot; if the script moved\n  // under it (auto-format, autosave, or a host migrating several findings from\n  // one captured array), the recorded range may no longer contain this secret.\n  if (!script.slice(target.start, target.end).includes(finding.secret)) {\n    return { text: script, addedImport: false, needsAsync: false, applied: false };\n  }\n\n  const binding = findSecretsBinding(script) ?? 'secrets';\n  const reference =\n    finding.rewrite === 'template-interpolation'\n      ? `\\${await ${binding}.get('${secretName}')}`\n      : buildSecretReference(secretName, binding);\n\n  const replaced = script.slice(0, target.start) + reference + script.slice(target.end);\n\n  const { script: withImport, addedImport } = ensureSecretsImport(replaced);\n\n  return { text: withImport, addedImport, needsAsync: true, applied: true };\n}\n\nexport const k6SecretRewriter: SecretRewriter = {\n  apply: applySecretReference,\n  reference: buildSecretReference,\n};\n","import type { SecretFinding } from './detection/types';\n\nconst MAX_NAME_LENGTH = 253;\n\n/**\n * Suggests a Secrets-store-compatible name for a finding. Secret names must be\n * lowercase and may only contain letters, numbers, dashes and periods (see\n * `secretSchema`), so we derive the suggestion from the detector type and\n * de-duplicate against existing names.\n */\nexport function suggestSecretName(finding: Pick<SecretFinding, 'type'>, existingNames: string[] = []): string {\n  const base = `${finding.type}-secret`\n    .toLowerCase()\n    .replace(/[^a-z0-9.-]+/g, '-')\n    .replace(/^[^a-z0-9]+/, '')\n    .replace(/-+$/, '')\n    .slice(0, MAX_NAME_LENGTH);\n\n  const taken = new Set(existingNames);\n  if (!taken.has(base)) {\n    return base;\n  }\n\n  let suffix = 2;\n  while (taken.has(`${base}-${suffix}`)) {\n    suffix++;\n  }\n  return `${base}-${suffix}`;\n}\n\nexport function maskSecret(secret: string): string {\n  if (secret.length <= 8) {\n    return '•'.repeat(secret.length);\n  }\n  return `${secret.slice(0, 3)}${'•'.repeat(4)}${secret.slice(-2)}`;\n}\n\n/**\n * Stable signature for remembering an \"ignore\" choice across edits and reloads.\n * Hashing (FNV-1a) keeps the plaintext out of local storage, and deriving it\n * from content rather than position keeps it stable when the secret moves —\n * unlike the finding `id`.\n */\nexport function getFindingSignature(finding: Pick<SecretFinding, 'type' | 'secret'>): string {\n  return `${finding.type}.${fnv1aHash(`${finding.type}:${finding.secret}`)}`;\n}\n\nfunction fnv1aHash(value: string): string {\n  let hash = 0x811c9dc5;\n  for (let i = 0; i < value.length; i++) {\n    hash ^= value.charCodeAt(i);\n    hash = Math.imul(hash, 0x01000193);\n  }\n  return (hash >>> 0).toString(16);\n}\n","import { createCodeScanner, DEFAULT_DEBOUNCE_MS, type SecretFinding } from '../core/index';\nimport type { IStandaloneCodeEditor, MonacoNamespace } from './types';\n\n/** Marker `code` identifying the scanner's diagnostics for the quick fix. */\nexport const SECRET_MARKER_CODE = 'hardcoded-secret';\n\nconst MARKER_OWNER = 'secret-scanner';\nconst DEFAULT_LANGUAGES = ['typescript', 'javascript'];\nconst DEFAULT_QUICK_FIX_TITLE = 'Move to Secrets Manager';\n\nexport interface InstallSecretScannerOptions {\n  languages?: string[];\n  enabled?: boolean;\n  markerMessage?: (finding: SecretFinding) => string;\n  quickFix?: { title?: string; run: (finding: SecretFinding) => void };\n  scan?: (code: string) => SecretFinding[];\n  debounceMs?: number;\n}\n\nexport interface SecretScannerInstallation {\n  refresh(): void;\n  dispose(): void;\n}\n\n/**\n * Gutter markers for detected secrets plus an optional \"Move to Secrets Manager\"\n * quick fix.\n */\nexport function installSecretScanner(\n  monaco: MonacoNamespace,\n  editor: IStandaloneCodeEditor,\n  options: InstallSecretScannerOptions = {}\n): SecretScannerInstallation {\n  const languages = options.languages ?? DEFAULT_LANGUAGES;\n  const scan = options.scan ?? createCodeScanner();\n  const debounceMs = options.debounceMs ?? DEFAULT_DEBOUNCE_MS;\n  const markerMessage =\n    options.markerMessage ??\n    ((finding: SecretFinding) =>\n      `Possible hardcoded secret (${finding.label}). Consider moving it to a managed secret.`);\n\n  const disposables: Array<{ dispose(): void }> = [];\n\n  const updateMarkers = () => {\n    const model = editor.getModel();\n    if (model === null) {\n      return;\n    }\n\n    if (options.enabled === false) {\n      monaco.editor.setModelMarkers(model, MARKER_OWNER, []);\n      return;\n    }\n\n    const script = model.getValue();\n    const markers = scan(script).map((finding) => {\n      const start = model.getPositionAt(finding.range.start);\n      const end = model.getPositionAt(finding.range.end);\n      return {\n        severity: monaco.MarkerSeverity.Warning,\n        message: markerMessage(finding),\n        code: SECRET_MARKER_CODE,\n        startLineNumber: start.lineNumber,\n        startColumn: start.column,\n        endLineNumber: end.lineNumber,\n        endColumn: end.column,\n      };\n    });\n\n    monaco.editor.setModelMarkers(model, MARKER_OWNER, markers);\n  };\n\n  let debounceTimer: ReturnType<typeof setTimeout> | undefined;\n  const cancelScheduled = () => {\n    if (debounceTimer !== undefined) {\n      clearTimeout(debounceTimer);\n      debounceTimer = undefined;\n    }\n  };\n  const scheduleUpdate = () => {\n    cancelScheduled();\n    debounceTimer = setTimeout(() => {\n      debounceTimer = undefined;\n      updateMarkers();\n    }, debounceMs);\n  };\n  const updateNow = () => {\n    cancelScheduled();\n    updateMarkers();\n  };\n\n  updateMarkers();\n  disposables.push(editor.onDidChangeModelContent(() => scheduleUpdate()));\n  disposables.push(editor.onDidChangeModel(() => updateNow()));\n  disposables.push({ dispose: cancelScheduled });\n\n  if (options.enabled !== false && options.quickFix) {\n    const runQuickFix = options.quickFix.run;\n    const title = options.quickFix.title ?? DEFAULT_QUICK_FIX_TITLE;\n\n    const commandId = editor.addCommand(0, (_accessor: unknown, finding: SecretFinding) => runQuickFix(finding));\n\n    if (commandId) {\n      for (const language of languages) {\n        disposables.push(\n          monaco.languages.registerCodeActionProvider(language, {\n            provideCodeActions(model, _range, context) {\n              const secretMarkers = context.markers.filter((marker) => marker.code === SECRET_MARKER_CODE);\n\n              if (secretMarkers.length === 0) {\n                return { actions: [], dispose() {} };\n              }\n\n              const findings = scan(model.getValue());\n              const actions = secretMarkers.flatMap((marker) => {\n                const markerOffset = model.getOffsetAt({\n                  lineNumber: marker.startLineNumber,\n                  column: marker.startColumn,\n                });\n                const finding = findings.find((candidate) => candidate.range.start === markerOffset);\n\n                if (finding === undefined) {\n                  return [];\n                }\n\n                return [\n                  {\n                    title,\n                    kind: 'quickfix',\n                    diagnostics: [marker],\n                    command: { id: commandId, title, arguments: [finding] },\n                  },\n                ];\n              });\n\n              return { actions, dispose() {} };\n            },\n          })\n        );\n      }\n    }\n  }\n\n  return {\n    refresh: updateNow,\n    dispose() {\n      disposables.forEach((disposable) => disposable.dispose());\n      const model = editor.getModel();\n      if (model !== null) {\n        monaco.editor.setModelMarkers(model, MARKER_OWNER, []);\n      }\n    },\n  };\n}\n","import { useCallback, useEffect, useRef, useState } from 'react';\n\nfunction read(key: string): string[] {\n  try {\n    const raw = localStorage.getItem(key);\n    const parsed = raw ? JSON.parse(raw) : [];\n    return Array.isArray(parsed) ? parsed : [];\n  } catch {\n    return [];\n  }\n}\n\ntype Updater = string[] | ((prev: string[]) => string[]);\n\nexport function useLocalStorageList(key: string): [string[], (updater: Updater) => void] {\n  const [value, setValue] = useState<string[]>(() => read(key));\n  const keyRef = useRef(key);\n\n  useEffect(() => {\n    if (keyRef.current !== key) {\n      keyRef.current = key;\n      setValue(read(key));\n    }\n  }, [key]);\n\n  const set = useCallback(\n    (updater: Updater) => {\n      setValue((prev) => {\n        const next = typeof updater === 'function' ? updater(prev) : updater;\n        try {\n          localStorage.setItem(key, JSON.stringify(next));\n        } catch {\n          // Ignore write failures (private mode, quota, …).\n        }\n        return next;\n      });\n    },\n    [key]\n  );\n\n  return [value, set];\n}\n","import { useCallback } from 'react';\n\nimport { getFindingSignature, type SecretFinding } from '../core/index';\nimport { useLocalStorageList } from './useLocalStorageList';\n\nconst DEFAULT_STORAGE_KEY = 'secretScanner.ignored';\n\ntype IgnorableFinding = Pick<SecretFinding, 'type' | 'secret'>;\n\n/**\n * Remembers which detected secrets the user chose to ignore, persisted in\n * localStorage under `storageKey` (namespace it per document). Tracked by a\n * content-derived signature, never the plaintext.\n */\nexport function useIgnoredSecrets(storageKey: string = DEFAULT_STORAGE_KEY) {\n  const [ignored, setIgnored] = useLocalStorageList(storageKey);\n\n  const isIgnored = useCallback(\n    (finding: IgnorableFinding) => ignored.includes(getFindingSignature(finding)),\n    [ignored]\n  );\n\n  const ignore = useCallback(\n    (finding: IgnorableFinding) => {\n      const signature = getFindingSignature(finding);\n      setIgnored((current) => (current.includes(signature) ? current : [...current, signature]));\n    },\n    [setIgnored]\n  );\n\n  return { isIgnored, ignore };\n}\n","import { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport {\n  createCodeScanner,\n  DEFAULT_DEBOUNCE_MS,\n  k6SecretRewriter,\n  type SecretFinding,\n  type SecretRewriter,\n} from '../core/index';\nimport { useIgnoredSecrets } from './useIgnoredSecrets';\n\nexport interface UseSecretScannerParams {\n  text: string;\n  scan?: (text: string) => SecretFinding[];\n  rewriter?: SecretRewriter;\n  onChange?: (text: string) => void;\n  enabled?: boolean;\n  ignoreStorageKey?: string;\n  debounceMs?: number;\n}\n\nexport interface SecretReference {\n  finding: SecretFinding;\n  secretName: string;\n  reference: string;\n}\n\nexport interface SecretMigration {\n  finding: SecretFinding | null;\n  request: (finding: SecretFinding) => void;\n  cancel: () => void;\n  apply: (finding: SecretFinding, secretName: string) => void;\n}\n\n/** The fallback flow for a secret that couldn't be inserted automatically. */\nexport interface SecretReferenceFallback {\n  pending: SecretReference | null;\n  dismiss: () => void;\n}\n\nexport interface SecretScanner {\n  /** Detected secrets, minus the ones the user ignored. */\n  findings: SecretFinding[];\n  ignore: (finding: SecretFinding) => void;\n  migration: SecretMigration;\n  reference: SecretReferenceFallback;\n}\n\n/**\n * Headless secret scanner over any string — a code editor's contents, a\n * textarea, a prompt field. Owns detection, debouncing, ignore state and the\n * rewrite.\n */\nexport function useSecretScanner(params: UseSecretScannerParams): SecretScanner {\n  const {\n    text,\n    scan,\n    rewriter = k6SecretRewriter,\n    onChange,\n    enabled = true,\n    ignoreStorageKey,\n    debounceMs = DEFAULT_DEBOUNCE_MS,\n  } = params;\n\n  const defaultScan = useMemo(() => createCodeScanner(), []);\n  const scanner = scan ?? defaultScan;\n\n  const { isIgnored, ignore } = useIgnoredSecrets(ignoreStorageKey);\n  const [activeFinding, setActiveFinding] = useState<SecretFinding | null>(null);\n  const [pendingReference, setPendingReference] = useState<SecretReference | null>(null);\n  const [findings, setFindings] = useState<SecretFinding[]>(() => (enabled ? scanner(text) : []));\n  useEffect(() => {\n    if (!enabled) {\n      setFindings([]);\n      return;\n    }\n    const handle = setTimeout(() => setFindings(scanner(text)), debounceMs);\n    return () => clearTimeout(handle);\n  }, [text, debounceMs, enabled, scanner]);\n\n  const visible = useMemo(() => findings.filter((finding) => !isIgnored(finding)), [findings, isIgnored]);\n\n  const request = useCallback((finding: SecretFinding) => setActiveFinding(finding), []);\n  const cancel = useCallback(() => setActiveFinding(null), []);\n  const dismiss = useCallback(() => setPendingReference(null), []);\n  const apply = useCallback(\n    (finding: SecretFinding, secretName: string) => {\n      const result = onChange ? rewriter.apply(text, finding, secretName) : undefined;\n      if (result?.applied) {\n        onChange!(result.text);\n      } else {\n        setPendingReference({ finding, secretName, reference: rewriter.reference(secretName) });\n      }\n      setActiveFinding(null);\n    },\n    [text, onChange, rewriter]\n  );\n\n  const migration = useMemo(\n    () => ({ finding: activeFinding, request, cancel, apply }),\n    [activeFinding, request, cancel, apply]\n  );\n  const reference = useMemo(() => ({ pending: pendingReference, dismiss }), [pendingReference, dismiss]);\n\n  return { findings: visible, ignore, migration, reference };\n}\n","import { useEffect } from 'react';\n\nimport { installSecretScanner, type IStandaloneCodeEditor, type MonacoNamespace } from '../monaco/index';\nimport { useSecretScanner, type SecretScanner, type UseSecretScannerParams } from './useSecretScanner';\n\nexport interface UseMonacoSecretScannerParams extends UseSecretScannerParams {\n  /** Monaco namespace + editor, injected from the host's editor mount. */\n  monaco?: MonacoNamespace;\n  editor?: IStandaloneCodeEditor;\n  /** Whether the \"Move to secret\" quick fix is offered. Default true. */\n  canMigrate?: boolean;\n  /** Languages to register the quick fix for. Default: ts + js. */\n  languages?: string[];\n}\n\n/**\n * Monaco adapter over {@link useSecretScanner}: adds gutter markers and a\n * \"Move to Secrets Manager\" quick fix on top of the headless scanner.\n *\n * The Monaco pieces are optional — until `monaco` and `editor` are both\n * provided, this behaves exactly like `useSecretScanner`, so a host can mount it\n * before its editor is ready.\n */\nexport function useMonacoSecretScanner(params: UseMonacoSecretScannerParams): SecretScanner {\n  const { monaco, editor, canMigrate = true, languages, ...headless } = params;\n  const { enabled = true, debounceMs, scan } = headless;\n\n  const scanner = useSecretScanner(headless);\n  const { request } = scanner.migration;\n\n  const languageKey = (languages ?? []).join(',');\n  useEffect(() => {\n    if (monaco === undefined || editor === undefined) {\n      return;\n    }\n\n    const installation = installSecretScanner(monaco, editor, {\n      enabled,\n      languages,\n      debounceMs,\n      scan,\n      quickFix: canMigrate ? { run: request } : undefined,\n    });\n\n    return () => installation.dispose();\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [monaco, editor, enabled, canMigrate, languageKey, debounceMs, scan, request]);\n\n  return scanner;\n}\n","import React from 'react';\nimport { Alert, Badge, Button, Stack, Text, useStyles2 } from '@grafana/ui';\nimport type { GrafanaTheme2 } from '@grafana/data';\nimport { css } from '@emotion/css';\n\nimport { maskSecret, type SecretConfidence, type SecretFinding } from '../core/index';\nimport type { SecretScanner } from '../react/index';\n\nexport interface SecretFindingSummary {\n  id: string;\n  label: string;\n  confidence: SecretConfidence;\n  secret: string;\n  line?: number;\n}\n\ninterface SecretFindingsPanelProps<T extends SecretFindingSummary> {\n  findings: T[];\n  onMove?: (finding: T) => void;\n  onIgnore?: (finding: T) => void;\n  hidden?: boolean;\n  showLine?: boolean;\n  description?: NonNullable<React.ReactNode>;\n  moveLabel?: React.ReactNode;\n  ignoreLabel?: React.ReactNode;\n}\n\ninterface SecretScannerPanelProps extends Omit<\n  SecretFindingsPanelProps<SecretFinding>,\n  'findings' | 'onMove' | 'onIgnore'\n> {\n  scanner: SecretScanner;\n  readOnly?: boolean;\n}\n\nconst DEFAULT_DESCRIPTION =\n  'Hardcoded secrets in test scripts are stored in plaintext. Move them to Secrets Manager and reference them at runtime instead.';\nconst DEFAULT_MOVE_LABEL = 'Move to secret';\nconst DEFAULT_IGNORE_LABEL = 'Ignore';\n\nconst CONFIDENCE_BADGE: Record<SecretConfidence, { text: string; color: 'red' | 'orange' | 'blue' }> = {\n  high: { text: 'high', color: 'red' },\n  medium: { text: 'medium', color: 'orange' },\n  low: { text: 'low', color: 'blue' },\n};\n\n/**\n * Presentational: takes findings and renders them. Accepts any finding shape\n * carrying the fields in `SecretFindingSummary`, so a host can pass its own.\n * For a panel driven by `useSecretScanner`, use `SecretScannerPanel`.\n */\nexport function SecretFindingsPanel<T extends SecretFindingSummary>({\n  findings,\n  onMove,\n  onIgnore,\n  hidden = false,\n  showLine = true,\n  description = DEFAULT_DESCRIPTION,\n  moveLabel = DEFAULT_MOVE_LABEL,\n  ignoreLabel = DEFAULT_IGNORE_LABEL,\n}: SecretFindingsPanelProps<T>) {\n  const styles = useStyles2(getStyles);\n\n  if (hidden || findings.length === 0) {\n    return null;\n  }\n\n  const title = findings.length === 1 ? '1 potential secret detected' : `${findings.length} potential secrets detected`;\n\n  return (\n    <Alert severity=\"warning\" title={title}>\n      <Text variant=\"bodySmall\">{description}</Text>\n\n      <div className={styles.list}>\n        {findings.map((finding) => (\n          <div key={finding.id} className={styles.row}>\n            <Stack alignItems=\"center\" gap={1} wrap=\"wrap\">\n              <Badge text={finding.label} color={CONFIDENCE_BADGE[finding.confidence].color} />\n              <code className={styles.value}>{maskSecret(finding.secret)}</code>\n              <Text variant=\"bodySmall\" color=\"secondary\">\n                {showLine && finding.line != null ? `line ${finding.line} · ` : ''}\n                {CONFIDENCE_BADGE[finding.confidence].text} confidence\n              </Text>\n            </Stack>\n\n            <Stack gap={1}>\n              {onMove && (\n                <Button size=\"sm\" variant=\"primary\" icon=\"shield\" onClick={() => onMove(finding)}>\n                  {moveLabel}\n                </Button>\n              )}\n              {onIgnore && (\n                <Button size=\"sm\" variant=\"secondary\" fill=\"outline\" onClick={() => onIgnore(finding)}>\n                  {ignoreLabel}\n                </Button>\n              )}\n            </Stack>\n          </div>\n        ))}\n      </div>\n    </Alert>\n  );\n}\n\n/**\n * \"Move to secret\" calls `scanner.migration.request(finding)`, which sets\n * `scanner.migration.finding`; render your own create-secret modal off that, and\n * call `scanner.migration.apply` once the secret exists.\n */\nexport function SecretScannerPanel({ scanner, readOnly = false, ...rest }: SecretScannerPanelProps) {\n  return (\n    <SecretFindingsPanel\n      findings={scanner.findings}\n      onMove={readOnly ? undefined : scanner.migration.request}\n      onIgnore={scanner.ignore}\n      {...rest}\n    />\n  );\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n  return {\n    list: css`\n      display: flex;\n      flex-direction: column;\n      gap: ${theme.spacing(1)};\n      margin-top: ${theme.spacing(1)};\n      /* Cap the list so a script with many findings can't grow the panel\n         unbounded and push the editor out of view; scroll past ~8 rows. */\n      max-height: ${theme.spacing(40)};\n      overflow-y: auto;\n    `,\n    row: css`\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      gap: ${theme.spacing(2)};\n      padding: ${theme.spacing(1)};\n      border: 1px solid ${theme.colors.border.weak};\n      border-radius: ${theme.shape.radius.default};\n      background: ${theme.colors.background.secondary};\n      flex-wrap: wrap;\n    `,\n    value: css`\n      font-family: ${theme.typography.fontFamilyMonospace};\n      font-size: ${theme.typography.bodySmall.fontSize};\n    `,\n  };\n}\n","import React from 'react';\nimport { ClipboardButton, Input, Modal, Stack, Text } from '@grafana/ui';\n\nimport type { SecretReference } from '../react/index';\n\ninterface SecretReferenceModalProps {\n  reference: SecretReference | null;\n  onDismiss: () => void;\n  snippet?: string;\n  title?: string;\n  description?: NonNullable<React.ReactNode>;\n}\n\nconst DEFAULT_TITLE = 'Reference your secret';\n\n/**\n * Shown after a secret is created for a finding that couldn't be rewritten in\n * place. Purely presentational — render it off `scanner.reference.pending`.\n */\nexport function SecretReferenceModal({\n  reference,\n  onDismiss,\n  snippet,\n  title = DEFAULT_TITLE,\n  description,\n}: SecretReferenceModalProps) {\n  if (reference === null) {\n    return null;\n  }\n\n  const text = snippet ?? reference.reference;\n  const defaultDescription = (\n    <Text variant=\"body\">\n      The secret <code>{reference.secretName}</code> was created, but this value could not be replaced automatically.\n      Copy the reference below and use it in place of the hardcoded value.\n    </Text>\n  );\n\n  return (\n    <Modal title={title} isOpen onDismiss={onDismiss}>\n      <Stack direction=\"column\" gap={2}>\n        {description ?? defaultDescription}\n\n        <Input readOnly value={text} />\n      </Stack>\n\n      <Modal.ButtonRow>\n        <ClipboardButton icon=\"copy\" variant=\"primary\" getText={() => text}>\n          Copy reference\n        </ClipboardButton>\n      </Modal.ButtonRow>\n    </Modal>\n  );\n}\n"],"names":["Parser","tsPlugin","e","acornLoose","scan","useState","useRef","useEffect","useCallback","useMemo","useStyles2","React","Alert","Text","Stack","Badge","Button","css","Modal","Input","ClipboardButton"],"mappings":"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"}