{"version":3,"file":"index.cjs","sources":["../src/regexes/pii.ts","../src/regexes/cryptographic.ts","../src/regexes/financial.ts","../src/regexes/ai-providers.ts","../src/regexes/authentication.ts","../src/regexes/cloud-providers.ts","../src/regexes/aws-keys.ts","../src/regexes/database.ts","../src/regexes/developer-tools.ts","../src/regexes/network-location.ts","../src/regexes/payment-providers.ts","../src/regexes/url-patterns.ts","../src/regexes/code-config.ts","../src/regexes/social-media.ts","../src/regexes/file-storage.ts","../src/regexes/communication-services.ts","../src/regexes/ecommerce-content.ts","../src/regexes/mapping-monitoring.ts","../src/regexes/analytics-modern.ts","../src/regexes/secret-detection-generic.ts","../src/regexes/github-tokens.ts","../src/regexes/slack.ts","../src/regexes/private-keys.ts","../src/regexes/secret-scanner-patterns.ts","../src/regexes/uuid.ts","../src/regexes/index.ts","../src/masking.ts","../src/sensitive-files.ts"],"sourcesContent":["import { SensitiveDataPattern } from '../types';\nexport const piiPatterns: SensitiveDataPattern[] = [\n  {\n    name: 'emailAddress',\n    description: 'Email address (basic validation)',\n    regex: /\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'socialSecurityNumberFormatted',\n    description: 'Social Security Number (with dashes)',\n    regex: /\\b(?!000|666|9\\d{2})\\d{3}-(?!00)\\d{2}-(?!0000)\\d{4}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'socialSecurityNumberSpaced',\n    description: 'Social Security Number (with spaces)',\n    regex: /\\b(?!000|666|9\\d{2})\\d{3}\\s(?!00)\\d{2}\\s(?!0000)\\d{4}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'phoneNumberE164',\n    description: 'Phone number (E.164 format)',\n    regex: /\\+[1-9]\\d{1,14}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'phoneNumberUS',\n    description: 'US phone number (formatted)',\n    regex: /\\b(?:\\+?1[-.\\s]?)?\\(?[2-9][0-8][0-9]\\)?[-.\\s]?[2-9][0-9]{2}[-.\\s]?[0-9]{4}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'phoneNumberInternational',\n    description: 'International phone number with country code',\n    regex: /\\+\\d{1,3}[-.\\s]?\\d{1,4}[-.\\s]?\\d{1,4}[-.\\s]?\\d{1,9}\\b/g,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'driversLicenseNumber',\n    description: 'Drivers license number (US format)',\n    regex: /\\b[A-Z]{1,2}\\d{7,8}\\b/g,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'tinEin',\n    description: 'Tax Identification Number/Employer Identification Number',\n    regex: /\\b\\d{2}-\\d{7}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'medicalRecordNumber',\n    description: 'Medical record number (with context)',\n    regex: /\\b(?:MRN|medical\\s+record|patient\\s+id)[:=\\s]*[A-Z0-9-]+\\b/gi,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'canadianSinFormatted',\n    description: 'Canadian Social Insurance Number (formatted)',\n    regex: /\\b\\d{3}[-\\s]\\d{3}[-\\s]\\d{3}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'ukNationalInsuranceNumber',\n    description: 'UK National Insurance Number',\n    regex: /\\b[A-CEGHJ-PR-TW-Z]{2}[0-9]{6}[A-D]\\b/g,\n    matchAccuracy: 'high'\n  }\n];\n","import { SensitiveDataPattern } from '../types';\nexport const cryptographicPatterns: SensitiveDataPattern[] = [\n  {\n    name: 'openVpnClientConfigPrivateKey',\n    description: 'OpenVPN client config private key',\n    regex: /<key>\\s*-----BEGIN[^<]*-----END[^<]*<\\/key>/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'firebaseServiceAccountPrivateKey',\n    description: 'Firebase service account private key (JSON embedded)',\n    regex: /\"private_key\":\\s*\"-----BEGIN PRIVATE KEY-----\\\\n[a-zA-Z0-9+/=\\\\n]+\\\\n-----END PRIVATE KEY-----\"/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'rsaPrivateKey',\n    description: 'RSA private key',\n    regex: /-----BEGIN (?:RSA )?PRIVATE KEY-----\\s*[\\s\\S]*?-----END (?:RSA )?PRIVATE KEY-----/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'sshPrivateKeyOpenSsh',\n    description: 'SSH private key (OpenSSH format)',\n    regex: /-----BEGIN OPENSSH PRIVATE KEY-----\\s*[\\s\\S]*?-----END OPENSSH PRIVATE KEY-----/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'sshPrivateKeyEc',\n    description: 'SSH private key (Elliptic Curve format)',\n    regex: /-----BEGIN EC PRIVATE KEY-----\\s*[\\s\\S]*?-----END EC PRIVATE KEY-----/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'pgpPrivateKeyBlock',\n    description: 'PGP private key block',\n    regex: /-----BEGIN PGP PRIVATE KEY BLOCK-----\\s*[\\s\\S]*?-----END PGP PRIVATE KEY BLOCK-----/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'pkcs8PrivateKey',\n    description: 'PKCS#8 private key (encrypted or unencrypted)',\n    regex: /-----BEGIN ENCRYPTED PRIVATE KEY-----\\s*[\\s\\S]*?-----END ENCRYPTED PRIVATE KEY-----|-----BEGIN PRIVATE KEY-----\\s*[\\s\\S]*?-----END PRIVATE KEY-----/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'x509Certificate',\n    description: 'X.509 certificate (PEM format)',\n    regex: /-----BEGIN CERTIFICATE-----\\s*[\\s\\S]*?-----END CERTIFICATE-----/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'sshPublicKey',\n    description: 'SSH public key (generic format)',\n    regex: /(?:ssh-rsa|ecdsa-sha2-nistp\\d+|ssh-ed25519)\\s+[A-Za-z0-9+/]{40,}={0,2}\\s+[^\\s]+/g,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'dsaPrivateKey',\n    description: 'DSA private key',\n    regex: /-----BEGIN DSA PRIVATE KEY-----\\s*[\\s\\S]*?-----END DSA PRIVATE KEY-----/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'puttyPrivateKey',\n    description: 'PuTTY private key file',\n    regex: /PuTTY-User-Key-File-[23]:\\s*[\\s\\S]*?Private-MAC:/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'pkcs12Certificate',\n    description: 'PKCS#12 certificate store file pattern',\n    regex: /\\.p12$|\\.pfx$|\\.pkcs12$/gi,\n    matchAccuracy: 'high',\n    fileContext: /\\.(p12|pfx|pkcs12)$/i\n  },\n  {\n    name: 'javaKeystore',\n    description: 'Java KeyStore file pattern',\n    regex: /\\.jks$|\\.keystore$/gi,\n    matchAccuracy: 'high',\n    fileContext: /\\.(jks|keystore)$/i\n  },\n  {\n    name: 'androidKeystore',\n    description: 'Android keystore file',\n    regex: /\\.keystore$|debug\\.keystore|release\\.keystore/gi,\n    matchAccuracy: 'high',\n    fileContext: /\\.keystore$/i\n  },\n  {\n    name: 'x509CertificateRequest',\n    description: 'X.509 Certificate Signing Request',\n    regex: /-----BEGIN (?:NEW )?CERTIFICATE REQUEST-----\\s*[\\s\\S]*?-----END (?:NEW )?CERTIFICATE REQUEST-----/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'dhParameters',\n    description: 'Diffie-Hellman parameters',\n    regex: /-----BEGIN DH PARAMETERS-----\\s*[\\s\\S]*?-----END DH PARAMETERS-----/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'sshHostKey',\n    description: 'SSH host key',\n    regex: /-----BEGIN SSH2 ENCRYPTED PRIVATE KEY-----[\\s\\S]*?-----END SSH2 ENCRYPTED PRIVATE KEY-----/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'ageSecretKey',\n    description: 'Age encryption tool secret key',\n    regex: /\\bAGE-SECRET-KEY-1[QPZRY9X8GF2TVDW0S3JN54KHCE6MUA7L]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'vaultBatchToken',\n    description: 'HashiCorp Vault batch token',\n    regex: /\\bhvb\\.[\\w-]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'opensslRandomState',\n    description: 'OpenSSL random state file',\n    regex: /\\.(rnd|dat)$/gi,\n    matchAccuracy: 'high',\n    fileContext: /\\.(rnd|dat)$/i\n  }\n];\n","import { SensitiveDataPattern } from '../types';\nexport const financialPatterns: SensitiveDataPattern[] = [\n  {\n    name: 'stripePublishableKey',\n    description: 'Stripe publishable key',\n    regex: /\\bpk_(?:test|live)_[a-zA-Z0-9]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'stripeSecretKey',\n    description: 'Stripe secret key',\n    regex: /\\bsk_(?:test|live)_[a-zA-Z0-9]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'stripeRestrictedApiKey',\n    description: 'Stripe restricted API key',\n    regex: /\\brk_(?:test|live)_[a-zA-Z0-9]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'paypalAccessToken',\n    description: 'PayPal access token',\n    regex: /\\bA21[a-zA-Z0-9._-]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'squareAccessToken',\n    description: 'Square access token',\n    regex: /\\bsq0[a-z]tp-[a-zA-Z0-9_-]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'squareApplicationId',\n    description: 'Square application ID',\n    regex: /\\bsq0ids-[a-zA-Z0-9_-]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'stripeWebhookSecret',\n    description: 'Stripe webhook endpoint secret',\n    regex: /\\bwhsec_[a-zA-Z0-9]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'stripeSecretKey',\n    description: 'Stripe secret key (live or test environment)',\n    regex: /\\bsk_(?:live|test)_[a-zA-Z0-9]{24}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'stripePublishableKey',\n    description: 'Stripe publishable key (live or test environment)',\n    regex: /\\bpk_(?:live|test)_[a-zA-Z0-9]{24}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'stripeApiKey',\n    description: 'Stripe API Key',\n    regex: /sk_live_[0-9a-zA-Z]{24,}/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'stripePublishableKey',\n    description: 'Stripe Publishable Key',\n    regex: /pk_live_[0-9a-zA-Z]{24,}/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'stripeTestKey',\n    description: 'Stripe Test Key',\n    regex: /sk_test_[0-9a-zA-Z]{24,}/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'stripeRestrictedKey',\n    description: 'Stripe Restricted Key',\n    regex: /rk_live_[0-9a-zA-Z]{24,}/g,\n    matchAccuracy: 'high'\n  }\n];\n","import { SensitiveDataPattern } from '../types';\nexport const aiProviderPatterns: SensitiveDataPattern[] = [\n  {\n    name: 'anthropicApiKey',\n    description: 'Anthropic API key',\n    regex: /\\bsk-ant-(?:admin01|api03)-[\\w-]+AA\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'claudeApiKey',\n    description: 'Anthropic Claude API key (alternative format)',\n    regex: /\\bsk-ant-api03-[a-zA-Z0-9]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'cohereApiKeyAlternative',\n    description: 'Cohere API key (alternative format)',\n    regex: /\\bco-[a-zA-Z0-9]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'googleAiApiKey',\n    description: 'Google AI API key',\n    regex: /\\bAIza[0-9A-Za-z_-]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'groqApiKey',\n    description: 'Groq API key',\n    regex: /\\bgsk_[a-zA-Z0-9]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'huggingFaceToken',\n    description: 'Hugging Face API key',\n    regex: /\\bhf_[a-zA-Z0-9]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'langfusePublicKey',\n    description: 'Langfuse public key',\n    regex: /\\bpk-lf-[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'langfuseSecretKey',\n    description: 'Langfuse secret key',\n    regex: /\\bsk-lf-[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'openaiApiKey',\n    description: 'OpenAI API key (project format)',\n    regex: /\\bsk-[a-zA-Z0-9]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'perplexityAiApiKey',\n    description: 'Perplexity AI API key',\n    regex: /\\bpplx-[a-zA-Z0-9]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'replicateApiToken',\n    description: 'Replicate API token',\n    regex: /\\br8_[a-zA-Z0-9]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'togetherAiApiKey',\n    description: 'Together AI API key',\n    regex: /\\b[a-f0-9]{16,32}_[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}\\b/g,\n    matchAccuracy: 'high'\n  }\n];\n","import { SensitiveDataPattern } from '../types';\nexport const authPatterns: SensitiveDataPattern[] = [\n  {\n    name: 'authorizationBearerToken',\n    description: 'Authorization Bearer Token',\n    regex: /Authorization:\\s*Bearer\\s+[a-zA-Z0-9\\-._~+/]+/gi,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'jwtToken',\n    description: 'JWT (JSON Web Token - 3-part)',\n    regex: /\\beyJ[a-zA-Z0-9\\-_]+\\.[a-zA-Z0-9\\-_]+\\.[a-zA-Z0-9\\-_]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'basicAuthCredentials',\n    description: 'Basic Auth Credentials',\n    regex: /Authorization:\\s*Basic\\s+([a-zA-Z0-9+/]+={0,2})\\b/gi,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'sessionIds',\n    description: 'Session IDs / Cookies',\n    regex: /(?:JSESSIONID|PHPSESSID|ASP\\.NET_SessionId|connect\\.sid|session_id)=([a-zA-Z0-9%:._-]+)/gi,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'oauthClientCredentials',\n    description: 'OAuth Client ID/Secret (Generic)',\n    regex: /(?:client_id|client_secret)\\s*[:=]\\s*[\"']([a-zA-Z0-9_-]+)[\"']/gi,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'googleOauthToken',\n    description: 'Google OAuth token',\n    regex: /\\bya29\\.[a-zA-Z0-9_-]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'apiKeyInHeader',\n    description: 'API key in header',\n    regex: /(?:X-API-Key|Api-Key|Authorization-Key):\\s*([a-zA-Z0-9_-]+)/gi,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'onePasswordSecretKey',\n    description: '1Password secret key',\n    regex: /\\bA3-[A-Z0-9]{6}-[A-Z0-9]{5}-[A-Z0-9]{5}-[A-Z0-9]{5}-[A-Z0-9]{5}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'onePasswordServiceAccountToken',\n    description: '1Password service account token',\n    regex: /\\bops_eyJ[a-zA-Z0-9+/]+={0,2}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'jsonWebTokenEnhanced',\n    description: 'JSON Web Token with enhanced detection',\n    regex: /\\bey[a-zA-Z0-9]+\\.ey[a-zA-Z0-9/_-]+\\.(?:[a-zA-Z0-9/_-]+={0,2})?\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'authressServiceClientAccessKey',\n    description: 'Authress service client access key',\n    regex: /\\b(?:sc|ext|scauth|authress)_[a-z0-9]+\\.[a-z0-9]+\\.acc[_-][a-z0-9-]+\\.[a-z0-9+/_=-]+\\b/gi,\n    matchAccuracy: 'high'\n  }\n];\n","import { SensitiveDataPattern } from '../types';\nexport const cloudProviderPatterns: SensitiveDataPattern[] = [\n  {\n    name: 'googleApiKey',\n    description: 'Google API key',\n    regex: /\\bAIza[a-zA-Z0-9_-]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'googleOAuth2ClientId',\n    description: 'Google OAuth2 client ID',\n    regex: /\\b[0-9]+-[a-z0-9]+\\.apps\\.googleusercontent\\.com\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'googleOauth',\n    description: 'Google OAuth Client Secret',\n    regex: /(\"client_secret\":\"[a-zA-Z0-9-_]{24}\")/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'googleServiceAccount',\n    description: 'Google Service Account',\n    regex: /\"type\": \"service_account\"/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'azureStorageAccountKey',\n    description: 'Azure storage account key',\n    regex: /DefaultEndpointsProtocol=https?;AccountName=[a-z0-9]+;AccountKey=[a-zA-Z0-9+/]+={0,2};EndpointSuffix=core\\.windows\\.net/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'azureSubscriptionId',\n    description: 'Azure subscription ID',\n    regex: /\\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\.onmicrosoft\\.com\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'azureCosmosDbKey',\n    description: 'Azure Cosmos DB key',\n    regex: /AccountEndpoint=https:\\/\\/[a-z0-9-]+\\.documents\\.azure\\.com:443\\/;AccountKey=[a-zA-Z0-9+/]+={0,2}/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'azureServiceBusConnectionString',\n    description: 'Azure Service Bus connection string',\n    regex: /Endpoint=sb:\\/\\/[a-z0-9-]+\\.servicebus\\.windows\\.net\\/;SharedAccessKeyName=[a-zA-Z0-9]+;SharedAccessKey=[a-zA-Z0-9+/]+={0,2}/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'dropboxAccessToken',\n    description: 'Dropbox access token',\n    regex: /\\bsl\\.[a-zA-Z0-9_-]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'dropboxAppKey',\n    description: 'Dropbox app key',\n    regex: /\\b[a-z0-9]{15}\\.(app|apps)\\.dropbox\\.com\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'planetScaleConnectionString',\n    description: 'PlanetScale connection string',\n    regex: /mysql:\\/\\/[a-zA-Z0-9_-]+:[a-zA-Z0-9_=-]+@[a-z0-9.-]+\\.psdb\\.cloud\\/[a-zA-Z0-9_-]+\\?sslaccept=strict/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'gcpServiceAccountEmail',\n    description: 'GCP service account email',\n    regex: /\\b[a-z0-9-]+@[a-z0-9-]+\\.iam\\.gserviceaccount\\.com\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'gcpProjectId',\n    description: 'GCP project ID',\n    regex: /\"project_id\":\\s*\"[a-z0-9-]+\"/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'cloudinaryUrl',\n    description: 'Cloudinary URL',\n    regex: /cloudinary:\\/\\/.*/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'firebaseUrl',\n    description: 'Firebase URL',\n    regex: /.*firebaseio\\.com/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'sendgridApiKeyV2',\n    description: 'SendGrid API Key (v2)',\n    regex: /\\bSG\\.[A-Za-z0-9_-]{22}\\.[A-Za-z0-9_-]{43}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'mailgunApiKey',\n    description: 'Mailgun API Key',\n    regex: /key-[0-9a-z]{32}/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'firebaseApiKey',\n    description: 'Firebase API Key',\n    regex: /AIza[0-9A-Za-z_-]{35}/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'discordBotToken',\n    description: 'Discord Bot Token',\n    regex: /[MN][A-Za-z\\d]{23}\\.[\\w-]{6}\\.[\\w-]{27}/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'discordWebhook',\n    description: 'Discord Webhook',\n    regex: /https:\\/\\/discord\\.com\\/api\\/webhooks\\/[0-9]{18}\\/[A-Za-z0-9_-]{68}/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'telegramBotToken',\n    description: 'Telegram Bot Token',\n    regex: /[0-9]{8,10}:[A-Za-z0-9_-]{35}/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'npmToken',\n    description: 'NPM Token',\n    regex: /npm_[a-zA-Z0-9]{36}/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'dockerHubToken',\n    description: 'Docker Hub Token',\n    regex: /dckr_pat_[a-zA-Z0-9_-]{36}/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'pypiApiToken',\n    description: 'PyPI API Token',\n    regex: /pypi-[a-zA-Z0-9_-]{84}/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'gitlabPersonalAccessToken',\n    description: 'GitLab Personal Access Token',\n    regex: /glpat-[a-zA-Z0-9_-]{20}/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'azureDevOpsToken',\n    description: 'Azure DevOps Personal Access Token',\n    regex: /[a-z0-9]{52}/g,\n    matchAccuracy: 'low'\n  },\n  {\n    name: 'basicAuthCredentials',\n    description: 'Basic Auth Credentials',\n    regex: /Basic [A-Za-z0-9+/]+=*/g,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'sendgridApiKey',\n    description: 'SendGrid API key',\n    regex: /\\bSG\\.[0-9A-Za-z_-]{20,}\\.[0-9A-Za-z_-]{40,}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'mailchimpApiKey',\n    description: 'MailChimp API key',\n    regex: /\\b[0-9a-f]{32}-us[0-9]{1,2}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'twilioApiKeyTruffleHog',\n    description: 'Twilio API Key (TruffleHog pattern)',\n    regex: /SK[a-z0-9]{32}/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'twilioAccountSid',\n    description: 'Twilio Account SID',\n    regex: /\\bAC[0-9a-fA-F]{32}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'squareAccessToken',\n    description: 'Square access token',\n    regex: /\\bsq0atp-[a-zA-Z0-9_-]{26}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'squareOauthSecret',\n    description: 'Square OAuth secret',\n    regex: /\\bsq0csp-[a-zA-Z0-9_-]{43}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'paypalBraintreeAccessToken',\n    description: 'PayPal/Braintree access token',\n    regex: /\\baccess_token\\$(?:sandbox|production)\\$[0-9a-z]{16}\\$[0-9a-f]{32}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'airtablePersonalAccessToken',\n    description: 'Airtable Personal Access Token',\n    regex: /\\bpat[a-zA-Z0-9]{14}\\.[a-zA-Z0-9]{64}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'typeformToken',\n    description: 'Typeform token',\n    regex: /\\btfp_[a-zA-Z0-9_-]{43}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'figmaToken',\n    description: 'Figma token',\n    regex: /\\bfigd_[a-zA-Z0-9_-]{43}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'planetScaleToken',\n    description: 'PlanetScale token',\n    regex: /\\bpscale_tkn_[a-zA-Z0-9_-]{43}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'renderToken',\n    description: 'Render token',\n    regex: /\\brnd_[a-zA-Z0-9_-]{43}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'intercomToken',\n    description: 'Intercom access token',\n    regex: /\\bdG9rOi[a-zA-Z0-9+/]{46,48}={0,2}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'shopifyPrivateAppPassword',\n    description: 'Shopify private app password',\n    regex: /\\bshppa_[a-fA-F0-9]{32}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'shopifyAccessToken',\n    description: 'Shopify access token',\n    regex: /\\bshpat_[a-fA-F0-9]{32}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'shopifyWebhookToken',\n    description: 'Shopify webhook token',\n    regex: /\\bshpwh_[a-fA-F0-9]{32}\\b/g,\n    matchAccuracy: 'high'\n  }\n];\n","import { SensitiveDataPattern } from '../types';\nexport const awsPatterns: SensitiveDataPattern[] = [\n  {\n    name: 'awsAccessKeyId',\n    description: 'AWS access key ID',\n    regex: /\\b(?:AKIA|ABIA|ACCA|ASCA|ASIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ANWA)[0-9A-Z]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'awsAccountId',\n    description: 'AWS Account ID',\n    regex: /\\b['\"]?(AWS|aws|Aws)?_?(?:ACCOUNT|account|Account)_?(?:ID|id|Id)?['\"]?\\s*(?::|=>|=)\\s*['\"]?[0-9]{4}-?[0-9]{4}-?[0-9]{4}['\"]?\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'awsAmiId',\n    description: 'AWS AMI ID',\n    regex: /\\bami-[a-f0-9]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'awsApiGatewayUrl',\n    description: 'AWS API Gateway endpoint URL',\n    regex: /\\b[0-9a-z]+\\.execute-api\\.[0-9a-z._-]+\\.amazonaws\\.com\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'awsAppSyncGraphqlKey',\n    description: 'AWS AppSync GraphQL API key',\n    regex: /\\bda2-[a-z0-9]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'awsEc2InstanceId',\n    description: 'AWS EC2 instance ID',\n    regex: /\\bi-[a-f0-9]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'awsEbsSnapshotId',\n    description: 'AWS EBS snapshot ID',\n    regex: /\\bsnap-[a-f0-9]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'awsEbsVolumeId',\n    description: 'AWS EBS volume ID',\n    regex: /\\bvol-[a-f0-9]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'awsIamRoleArn',\n    description: 'AWS IAM role ARN',\n    regex: /\\barn:aws:iam::[0-9]{12}:role\\/[a-zA-Z0-9_+=,.@-]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'awsLambdaFunctionArn',\n    description: 'AWS Lambda function ARN',\n    regex: /\\barn:aws:lambda:[a-z0-9-]+:[0-9]{12}:function:[a-zA-Z0-9_-]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'awsMwsToken',\n    description: 'AWS MWS token',\n    regex: /\\bamzn\\.mws\\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'awsRdsEndpoint',\n    description: 'AWS RDS database endpoint',\n    regex: /\\b[0-9a-z._-]+\\.rds\\.amazonaws\\.com\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'awsRegion',\n    description: 'AWS Region configuration',\n    regex: /\\b['\"]?(AWS|aws|Aws)?_?(?:REGION|region|Region)['\"]?\\s*(?::|=>|=)\\s*['\"]?(us|eu|ap|sa|ca|me|af|cn|gov)[-]?(east|west|north|south|central|southeast|northeast)?[-]?[0-9]?['\"]?\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'awsS3BucketArn',\n    description: 'AWS S3 bucket ARN',\n    regex: /\\barn:aws:s3:::[a-zA-Z0-9._-]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'awsS3BucketUrl',\n    description: 'AWS S3 bucket URL',\n    regex: /\\bs3:\\/\\/[0-9a-z._/-]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'awsSecretAccessKey',\n    description: 'AWS Secret Access Key',\n    regex: /\\b['\"]?(AWS|aws|Aws)?_?(?:SECRET|secret|Secret)_?(?:ACCESS|access|Access)_?(?:KEY|key|Key)['\"]?\\s*(?::|=>|=)\\s*['\"]?([A-Za-z0-9/+=]{40})['\"]?\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'awsSecurityGroupId',\n    description: 'AWS security group ID',\n    regex: /\\bsg-[a-f0-9]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'awsSessionToken',\n    description: 'AWS Session Token',\n    regex: /\\b['\"]?(AWS|aws|Aws)?_?(?:SESSION|session|Session)_?(?:TOKEN|token|Token)['\"]?\\s*(?::|=>|=)\\s*['\"]?[A-Za-z0-9/+=]{100,}['\"]?\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'awsSnsTopicArn',\n    description: 'AWS SNS topic ARN',\n    regex: /\\barn:aws:sns:[a-z0-9-]+:[0-9]{12}:[a-zA-Z0-9_-]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'awsSqsQueueUrl',\n    description: 'AWS SQS queue URL',\n    regex: /\\bhttps:\\/\\/sqs\\.[a-z0-9-]+\\.amazonaws\\.com\\/[0-9]{12}\\/[a-zA-Z0-9_-]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'awsSubnetId',\n    description: 'AWS subnet ID',\n    regex: /\\bsubnet-[a-f0-9]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'awsVpcId',\n    description: 'AWS VPC ID',\n    regex: /\\bvpc-[a-f0-9]+\\b/g,\n    matchAccuracy: 'high'\n  }\n];\n","import { SensitiveDataPattern } from '../types';\nexport const databasePatterns: SensitiveDataPattern[] = [\n  {\n    name: 'postgresqlConnectionString',\n    description: 'PostgreSQL database connection string with credentials',\n    regex: /postgresql:\\/\\/[^:]+:[^@]+@[^/]+\\/[^?\\s]+/gi,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'databaseUrlWithCredentials',\n    description: 'Generic database URL with embedded credentials',\n    regex: /(?:postgres|mysql|mongodb|redis):\\/\\/[^:]+:[^@]+@[^\\s/]+/gi,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'databasePasswordInUrl',\n    description: 'Database password in connection string parameters',\n    regex: /(?:password|pwd)=([^&\\s;]+)/gi,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'databaseUserInUrl',\n    description: 'Database username in connection string parameters',\n    regex: /(?:user|username|uid)=([^&\\s;]+)/gi,\n    matchAccuracy: 'low',\n    isGeneralId: true\n  },\n  {\n    name: 'elasticsearchAuthentication',\n    description: 'Elasticsearch username and password in connection strings',\n    regex: /https?:\\/\\/[^:]+:[^@]+@[^/]+:9200/gi,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'redisAuthPassword',\n    description: 'Redis AUTH password',\n    regex: /AUTH\\s+([a-zA-Z0-9_-]{8,})/gi,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'couchDbCredentials',\n    description: 'CouchDB credentials in URL',\n    regex: /http[s]?:\\/\\/[^:]+:[^@]+@[^/]+:5984/gi,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'influxDbToken',\n    description: 'InfluxDB token',\n    regex: /\\btoken=[a-zA-Z0-9_-]{80,100}\\b/g,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'neo4jCredentials',\n    description: 'Neo4j database credentials in URL',\n    regex: /bolt[s]?:\\/\\/[^:]+:[^@]+@[^/]+:7687/gi,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'faunaDbKey',\n    description: 'FaunaDB key',\n    regex: /\\bfn[a-zA-Z0-9]{40}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'cassandraConnectionString',\n    description: 'Cassandra connection string with credentials',\n    regex: /cassandra:\\/\\/[^:]+:[^@]+@[^/]+:9042/gi,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'timescaleDbConnectionString',\n    description: 'TimescaleDB connection string with credentials',\n    regex: /timescaledb:\\/\\/[^:]+:[^@]+@[^/]+\\/[^?\\s]+/gi,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'clickhouseConnectionString',\n    description: 'ClickHouse connection string with credentials',\n    regex: /clickhouse:\\/\\/[^:]+:[^@]+@[^/]+:8123/gi,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'mongodbConnectionString',\n    description: 'MongoDB connection string with credentials',\n    regex: /\\bmongodb:\\/\\/[a-zA-Z0-9._-]+:[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+:[0-9]+\\/[a-zA-Z0-9._-]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'redisConnectionString',\n    description: 'Redis connection string with credentials',\n    regex: /\\bredis:\\/\\/[a-zA-Z0-9._-]+:[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+:[0-9]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'databricksApiToken',\n    description: 'Databricks API token',\n    regex: /\\bdapi[a-f0-9]{32}(?:-\\d)?\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'pineconeEnvironment',\n    description: 'Pinecone environment and API key',\n    regex: /pinecone[\\s\\w]*(?:api|key|env)[\\s:=]*[\"']?([a-zA-Z0-9_-]{32})[\"']?/gi,\n    matchAccuracy: 'medium'\n  }\n];\n","import { SensitiveDataPattern } from '../types';\nexport const developerToolsPatterns: SensitiveDataPattern[] = [\n  {\n    name: 'gitlabPersonalAccessToken',\n    description: 'GitLab personal access token',\n    regex: /\\bglpat-[A-Za-z0-9_-]{20,50}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'gitlabDeployToken',\n    description: 'GitLab deploy token',\n    regex: /\\bgldt-[A-Za-z0-9_-]{20,50}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'gitlabRunnerToken',\n    description: 'GitLab runner token',\n    regex: /\\bglrt-[A-Za-z0-9_-]{20,50}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'gitlabCicdJobToken',\n    description: 'GitLab CI/CD Job Token',\n    regex: /\\bglcbt-[0-9a-zA-Z]{1,5}_[0-9a-zA-Z_-]{20}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'dockerHubAccessToken',\n    description: 'Docker Hub access token',\n    regex: /\\bdckr_pat_[a-zA-Z0-9]{22}_[a-zA-Z0-9]{18}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'artifactoryApiKey',\n    description: 'Artifactory API key',\n    regex: /\\bAKCp[A-Za-z0-9]{69}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'atlassianApiToken',\n    description: 'Atlassian API token for Jira/Confluence',\n    regex: /\\bATATT3[A-Za-z0-9_\\-=]{186}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'npmAccessToken',\n    description: 'NPM access token',\n    regex: /\\bnpm_[a-zA-Z0-9]{36}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'pypiApiToken',\n    description: 'PyPI API token',\n    regex: /\\bpypi-[A-Za-z0-9_-]{8,}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'terraformCloudToken',\n    description: 'Terraform Cloud API token',\n    regex: /\\b[a-zA-Z0-9]{14}\\.[a-zA-Z0-9]{6}\\.[a-zA-Z0-9]{16}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'jetBrainsToken',\n    description: 'JetBrains access token',\n    regex: /\\bperm:[a-zA-Z0-9_-]{10,}\\b/g,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'sourcegraphApiKey',\n    description: 'Sourcegraph API key',\n    regex: /\\bsgp_[a-zA-Z0-9]{32}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'nugetApiKey',\n    description: 'NuGet API key',\n    regex: /\\boy2[a-z0-9]{43}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'stackhawkApiKey',\n    description: 'StackHawk API key',\n    regex: /\\bhawk\\.[0-9A-Za-z\\-_]{20}\\.[0-9A-Za-z\\-_]{20}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'bitbucketAppPasswordSpecific',\n    description: 'Bitbucket app password (specific format)',\n    regex: /\\bATBB[a-zA-Z0-9]{24}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'openweatherApiKey',\n    description: 'OpenWeather API key',\n    regex: /\\bappid=[0-9a-f]{32}\\b/gi,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'herokuApiKey',\n    description: 'Heroku API Key',\n    regex: /[h|H][e|E][r|R][o|O][k|K][u|U].*[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'linearPersonalApiKey',\n    description: 'Linear Personal API key',\n    regex: /\\blin_pat_[a-zA-Z0-9_-]{40}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'notionInternalIntegration',\n    description: 'Notion internal integration token',\n    regex: /\\bntn_[a-zA-Z0-9_-]{43}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'pulumiAccessToken',\n    description: 'Pulumi access token',\n    regex: /\\bpul-[a-f0-9]{40}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'sentryAuthTokenSpecific',\n    description: 'Sentry auth token (with context)',\n    regex: /sentry[\\s\\w]*(?:auth|token)[\\s:=]*[\"']?([a-f0-9]{64})[\"']?/gi,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'bugsnagApiKeySpecific',\n    description: 'Bugsnag API key (with context)',\n    regex: /bugsnag[\\s\\w]*(?:api|key)[\\s:=]*[\"']?([a-f0-9]{32})[\"']?/gi,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'rollbarAccessTokenSpecific',\n    description: 'Rollbar access token (with context)',\n    regex: /rollbar[\\s\\w]*(?:access|token)[\\s:=]*[\"']?([a-f0-9]{32})[\"']?/gi,\n    matchAccuracy: 'medium'\n  }\n];\n","import { SensitiveDataPattern } from '../types';\nexport const networkLocationPatterns: SensitiveDataPattern[] = [\n  {\n    name: 'macAddress',\n    description: 'MAC address',\n    regex: /\\b([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'ipv4Address',\n    description: 'IPv4 address',\n    regex: /\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b/g,\n    matchAccuracy: 'low'\n  },\n  {\n    name: 'ipv6Address',\n    description: 'IPv6 address',\n    regex: /\\b(?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}\\b/g,\n    matchAccuracy: 'low'\n  },\n  {\n    name: 'privateNetworkRange',\n    description: 'Private network IP ranges',\n    regex: /\\b(?:10\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|172\\.(?:1[6-9]|2[0-9]|3[01])\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|192\\.168\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'sshHostFingerprint',\n    description: 'SSH host fingerprint',\n    regex: /\\b[0-9a-f]{2}(:[0-9a-f]{2}){15}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'wifiPassword',\n    description: 'WiFi password in config',\n    regex: /(?:password|psk)\\s*[=:]\\s*[\"']([^\"']{8,})[\"']/gi,\n    matchAccuracy: 'medium'\n  }\n];\n","import { SensitiveDataPattern } from '../types';\nexport const paymentProviderPatterns: SensitiveDataPattern[] = [\n  {\n    name: 'squareAccessToken',\n    description: 'Square access token',\n    regex: /\\bEAAAE[A-Za-z0-9_-]{100,}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'adyenApiKey',\n    description: 'Adyen API key',\n    regex: /\\bAQE[a-zA-Z0-9]{70,}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'applePayMerchantId',\n    description: 'Apple Pay merchant ID',\n    regex: /\\bmerchant\\.[a-zA-Z0-9.-]+\\b/g,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'razorpayApiKey',\n    description: 'Razorpay API key',\n    regex: /\\brzp_[a-zA-Z0-9]{32}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'paypalAccessToken',\n    description: 'PayPal access token',\n    regex: /\\bA21AA[a-zA-Z0-9_-]{50,}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'paypalBraintreeAccessToken',\n    description: 'PayPal/Braintree access token',\n    regex: /\\baccess_token\\$production\\$[0-9a-z]{16}\\$[0-9a-f]{32}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'squareAccessTokenSpecific',\n    description: 'Square access token (specific format)',\n    regex: /\\bsq0atp-[0-9A-Za-z\\-_]{22}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'squareOauthSecret',\n    description: 'Square OAuth secret',\n    regex: /\\bsq0csp-[0-9A-Za-z\\-_]{43}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'squareApiKey',\n    description: 'Square API key',\n    regex: /\\bsq0[a-z]{3}-[a-zA-Z0-9_-]{22,43}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'finicityApiToken',\n    description: 'Finicity API token',\n    regex: /finicity.{0,50}[a-f0-9]{32}/gi,\n    isGeneralId: true,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'finnhubAccessToken',\n    description: 'Finnhub access token',\n    regex: /finnhub.{0,50}[a-z0-9]{20}/gi,\n    isGeneralId: true,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'flutterwavePublicKey',\n    description: 'Flutterwave public key',\n    regex: /\\bFLWPUBK_TEST-[a-h0-9]{32}-X\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'flutterwaveSecretKey',\n    description: 'Flutterwave secret key',\n    regex: /\\bFLWSECK_TEST-[a-h0-9]{32}-X\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'flutterwaveEncryptionKey',\n    description: 'Flutterwave encryption key',\n    regex: /\\bFLWSECK_TEST-[a-h0-9]{12}\\b/g,\n    matchAccuracy: 'high'\n  }\n];\n","import { SensitiveDataPattern } from '../types';\nexport const urlPatterns: SensitiveDataPattern[] = [\n  {\n    name: 'urlWithQueryParams',\n    description: 'URL with Query Parameters',\n    regex: /(https?:\\/\\/[^\\s?]+)\\?.*$/gi,\n    matchAccuracy: 'medium'\n  }\n];\n","import { SensitiveDataPattern } from '../types';\nexport const codeConfigPatterns: SensitiveDataPattern[] = [\n  {\n    name: 'hardcodedSecretsInJsonYaml',\n    description: 'Hardcoded Secrets in JSON / YAML',\n    regex: /(?:\"(?:password|secret|api_key|private_key|token)\"\\s*:\\s*\"[^\"]{8,}\"|'(?:password|secret|api_key|private_key|token)'\\s*:\\s*'[^']{8,}')/gi,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'environmentVariables',\n    description: 'Environment Variables',\n    regex: /(?:process\\.env\\.|ENV\\[|getenv\\(|os\\.environ\\[)['\"]((?:API_KEY|SECRET|PASSWORD|TOKEN|PRIVATE_KEY|DB_PASS)[^'\"]*)['\"]/gi,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'configFilePasswords',\n    description: 'Config File Passwords',\n    regex: /(?:password|passwd|pwd)\\s*[:=]\\s*['\"]([^'\"]{6,})['\"]/gi,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'databaseCredentialsInConfig',\n    description: 'Database Credentials in Config',\n    regex: /(?:db_password|database_password|db_pass)\\s*[:=]\\s*['\"]([^'\"]{4,})['\"]/gi,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'apiKeysInComments',\n    description: 'API Keys in Comments',\n    regex: /\\/\\/.*(?:api.key|token|secret)[:=\\s]+([a-zA-Z0-9_-]{20,})/gi,\n    matchAccuracy: 'low'\n  },\n  {\n    name: 'hardcodedJwtSecrets',\n    description: 'Hardcoded JWT Secrets',\n    regex: /jwt[_-]?secret\\s*[:=]\\s*['\"]([^'\"]{16,})['\"]/gi,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'privateKeysInConfig',\n    description: 'Private Keys in Config',\n    regex: /(?:private[_-]?key|rsa[_-]?key)\\s*[:=]\\s*['\"]([^'\"]{50,})['\"]/gi,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'encryptionKeys',\n    description: 'Encryption Keys',\n    regex: /(?:encryption[_-]?key|cipher[_-]?key|secret[_-]?key)\\s*[:=]\\s*['\"]([^'\"]{16,})['\"]/gi,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'sessionSecrets',\n    description: 'Session Secrets',\n    regex: /session[_-]?secret\\s*[:=]\\s*['\"]([^'\"]{16,})['\"]/gi,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'cookieSecrets',\n    description: 'Cookie Secrets',\n    regex: /cookie[_-]?secret\\s*[:=]\\s*['\"]([^'\"]{16,})['\"]/gi,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'kubernetesSecretYaml',\n    description: 'Kubernetes Secret in YAML format',\n    regex: /\\bkind:\\s*[\"']?secret[\"']?[\\s\\S]*?\\bdata:\\s*[\\s\\S]*?([a-zA-Z0-9_-]+:\\s*[a-zA-Z0-9+/]{10,}={0,3})/gi,\n    matchAccuracy: 'high',\n    fileContext: /\\.ya?ml$/i\n  }\n];\n","import { SensitiveDataPattern } from '../types';\nexport const socialMediaPatterns: SensitiveDataPattern[] = [\n  {\n    name: 'twitterBearerToken',\n    description: 'Twitter Bearer token',\n    regex: /\\bAAAAAAAAAAAAAAAAAAAAA[a-zA-Z0-9%]{50,}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'facebookAccessToken',\n    description: 'Facebook access token',\n    regex: /\\bEAA[a-zA-Z0-9]{80,120}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'facebookOauth',\n    description: 'Facebook OAuth Token',\n    regex: /[f|F][a|A][c|C][e|E][b|B][o|O][o|O][k|K].*['|\"][0-9a-f]{32}['|\"]/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'twitterOauth',\n    description: 'Twitter OAuth Token',\n    regex: /[t|T][w|W][i|I][t|T][t|T][e|E][r|R].*['|\"][0-9a-zA-Z]{35,44}['|\"]/g,\n    matchAccuracy: 'high'\n  }\n];\n","import { SensitiveDataPattern } from '../types';\nexport const fileStoragePatterns: SensitiveDataPattern[] = [\n  {\n    name: 'dropboxAccessToken',\n    description: 'Dropbox access token',\n    regex: /\\bsl\\.[a-zA-Z0-9_-]{120,140}\\b/g,\n    matchAccuracy: 'high'\n  }\n];\n","import { SensitiveDataPattern } from '../types';\nexport const communicationServicePatterns: SensitiveDataPattern[] = [\n  {\n    name: 'sendGridApiKey',\n    description: 'SendGrid API key',\n    regex: /\\bSG\\.[a-zA-Z0-9_-]{22}\\.[a-zA-Z0-9_-]{43}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'mailgunApiKey',\n    description: 'Mailgun API key',\n    regex: /\\bkey-[0-9a-zA-Z]{32}\\b/g,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'telegramBotToken',\n    description: 'Telegram bot token',\n    regex: /\\b[0-9]{8,10}:[a-zA-Z0-9_-]{35}\\b/g,\n    matchAccuracy: 'high'\n  }\n];\n","import { SensitiveDataPattern } from '../types';\nexport const ecommerceContentPatterns: SensitiveDataPattern[] = [\n  {\n    name: 'shopifyStorefrontApiAccessToken',\n    description: 'Shopify storefront API access token',\n    regex: /\\bshpatf_[0-9a-f]{32}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'hubSpotApiKey',\n    description: 'HubSpot API key',\n    regex: /\\bpat-[a-zA-Z0-9-]{36}\\b/g,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'contentfulAccessToken',\n    description: 'Contentful access token',\n    regex: /\\bCFPAT-[0-9a-zA-Z]{20}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'sanityIoApiToken',\n    description: 'Sanity.io API token',\n    regex: /\\bsk\\.[a-zA-Z0-9]{60,}\\b/g,\n    isGeneralId: true,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'wooCommerceConsumerKey',\n    description: 'WooCommerce consumer key',\n    regex: /\\bck_[a-f0-9]{40}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'wooCommerceConsumerSecret',\n    description: 'WooCommerce consumer secret',\n    regex: /\\bcs_[a-f0-9]{40}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'mailchimpApiKeySpecific',\n    description: 'MailChimp API key (specific format)',\n    regex: /\\b[0-9a-f]{32}-[a-z]{2,3}[0-9]{1,2}\\b/g,\n    matchAccuracy: 'high'\n  }\n];\n","import { SensitiveDataPattern } from '../types';\nexport const mappingMonitoringPatterns: SensitiveDataPattern[] = [\n  {\n    name: 'mapboxAccessTokenPublic',\n    description: 'Mapbox public access token',\n    regex: /\\bpk\\.[a-zA-Z0-9]{60,}\\b/g,\n    matchAccuracy: 'high'\n  }, {\n    name: 'grafanaCloudApiKey',\n    description: 'Grafana Cloud API key',\n    regex: /\\bglc_[a-zA-Z0-9]{32}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'mailchimpApiKey',\n    description: 'Mailchimp API key',\n    regex: /\\b[0-9a-f]{32}-[a-z]{2}\\b/g,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'newRelicApiKey',\n    description: 'New Relic API key',\n    regex: /\\bNRAK-[A-Z0-9]{27}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'honeybadgerApiKey',\n    description: 'Honeybadger API key',\n    regex: /\\b[a-f0-9]{32}\\b/g,\n    matchAccuracy: 'medium'\n  }\n];\n","import { SensitiveDataPattern } from '../types';\nexport const analyticsModernPatterns: SensitiveDataPattern[] = [\n  {\n    name: 'posthogApiKey',\n    description: 'PostHog API key',\n    regex: /\\bphc_[a-zA-Z0-9_-]{43}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'posthogPersonalApiKey',\n    description: 'PostHog personal API key',\n    regex: /\\bphx_[a-zA-Z0-9_-]{43}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'googleAnalytics4MeasurementId',\n    description: 'Google Analytics 4 Measurement ID',\n    regex: /\\bG-[A-Z0-9]{10}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'datadogApiKeySpecific',\n    description: 'Datadog API key (with context)',\n    regex: /datadog[\\s\\w]*api[\\s\\w]*key[\\s:=]*[\"']?([a-f0-9]{32})[\"']?/gi,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'datadogApplicationKeySpecific',\n    description: 'Datadog application key (with context)',\n    regex: /datadog[\\s\\w]*app[\\s\\w]*key[\\s:=]*[\"']?([a-f0-9]{40})[\"']?/gi,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'honeycombApiKey',\n    description: 'Honeycomb API key',\n    regex: /\\bhcaik_[a-zA-Z0-9_-]{32}\\b/g,\n    matchAccuracy: 'high'\n  }\n];\n","import { SensitiveDataPattern } from '../types';\nexport const secretDetectionGenericPatterns: SensitiveDataPattern[] = [\n  {\n    name: 'genericPassword',\n    description: 'Generic password pattern in keys',\n    regex: /passw(or)?d/ig,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'genericPasswordShort',\n    description: 'Short password pattern',\n    regex: /^pw$/i,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'genericPass',\n    description: 'Generic pass pattern',\n    regex: /^pass$/i,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'genericSecret',\n    description: 'Generic secret pattern',\n    regex: /secret/i,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'genericSecretPattern',\n    description: 'Generic Secret Pattern',\n    regex: /[s|S][e|E][c|C][r|R][e|E][t|T].*['|\"][0-9a-zA-Z]{32,45}['|\"]/g,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'genericApiKeyPattern',\n    description: 'Generic API Key Pattern',\n    regex: /[a|A][p|P][i|I][_]?[k|K][e|E][y|Y].*['|\"][0-9a-zA-Z]{32,45}['|\"]/g,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'passwordInUrl',\n    description: 'Password in URL',\n    regex: /[a-zA-Z]{3,10}:\\/\\/[^\\\\/\\s:@]{3,20}:[^\\\\/\\s:@]{3,20}@.{1,100}[\"'\\s]/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'genericApiKey',\n    description: 'Generic API key pattern',\n    regex: /api[-._]?key/i,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'genericSessionId',\n    description: 'Generic session ID pattern',\n    regex: /session[-._]?id/i,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'connectSid',\n    description: 'Express session connect.sid',\n    regex: /^connect\\.sid$/,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'creditCardNumber',\n    description: 'Credit card number pattern',\n    regex: /^\\d{4}[- ]?\\d{4}[- ]?\\d{4}[- ]?\\d{4}$/,\n    matchAccuracy: 'high'\n  }\n];\n","import { SensitiveDataPattern } from '../types';\nexport const githubTokenPatterns: SensitiveDataPattern[] = [\n  {\n    name: 'githubPersonalAccessToken',\n    description: 'GitHub Personal Access Token',\n    regex: /\\bghp_[A-Za-z0-9_]{36}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'githubOAuthAccessToken',\n    description: 'GitHub OAuth Access Token',\n    regex: /\\bgho_[A-Za-z0-9_]{36}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'githubServerToServerToken',\n    description: 'GitHub Server-to-server Token',\n    regex: /\\bghs_[A-Za-z0-9_]{36}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'githubRefreshToken',\n    description: 'GitHub Refresh Token',\n    regex: /\\bghr_[A-Za-z0-9_]{36}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'githubFineGrainedPersonalAccessToken',\n    description: 'GitHub Fine-grained Personal Access Token',\n    regex: /\\bgithub_pat_[A-Za-z0-9_]{82}\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'githubPersonalAccessToken',\n    description: 'GitHub personal access token',\n    regex: /\\bghp_[A-Za-z0-9_]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'githubFineGrainedToken',\n    description: 'GitHub fine-grained token',\n    regex: /\\bgithub_pat_[0-9a-zA-Z]+_[0-9a-zA-Z]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'githubAppInstallationToken',\n    description: 'GitHub app installation token',\n    regex: /\\bghs_[0-9a-zA-Z]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'githubRefreshToken',\n    description: 'GitHub refresh token',\n    regex: /\\bghr_[A-Za-z0-9_]{76}\\b/g,\n    matchAccuracy: 'high'\n  }\n];\n","import { SensitiveDataPattern } from '../types';\nexport const slackEnhancedPatterns: SensitiveDataPattern[] = [\n  {\n    name: 'slackAppLevelToken',\n    description: 'Slack app-level token',\n    regex: /\\bxapp-[0-9]-[a-zA-Z0-9_-]+\\b/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'slackGenericToken',\n    description: 'Slack Generic Token Pattern',\n    regex: /\\b[s|S][l|L][a|A][c|C][k|K].*['|\"][0-9a-zA-Z]{35,44}['|\"]/g,\n    matchAccuracy: 'medium'\n  }, {\n    name: 'slackTokenGeneric',\n    description: 'Slack token (generic pattern)',\n    regex: /\\bxox(?:a|b|p|o|s|r)-(?:\\d+-)(?:\\d+|\\w+)(?:-\\d+)?/gi,\n    matchAccuracy: 'high'\n  }\n];\n","import { SensitiveDataPattern } from '../types';\nexport const privateKeyPatterns: SensitiveDataPattern[] = [\n  {\n    name: 'privateKeyGeneric',\n    description: 'Generic Private Key Block',\n    regex: /-----BEGIN\\s?((?:DSA|RSA|EC|PGP|OPENSSH|[A-Z]{2,16})?\\s?PRIVATE KEY(\\sBLOCK)?)-----[\\s\\S]{1,10000}?-----END\\s?\\1-----/gm,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'rsaPrivateKey',\n    description: 'RSA Private Key',\n    regex: /-----BEGIN RSA PRIVATE KEY-----/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'opensshPrivateKey',\n    description: 'OpenSSH Private Key',\n    regex: /-----BEGIN OPENSSH PRIVATE KEY-----/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'dsaPrivateKey',\n    description: 'DSA Private Key',\n    regex: /-----BEGIN DSA PRIVATE KEY-----/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'ecPrivateKey',\n    description: 'EC Private Key',\n    regex: /-----BEGIN EC PRIVATE KEY-----/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'pgpPrivateKey',\n    description: 'PGP Private Key Block',\n    regex: /-----BEGIN PGP PRIVATE KEY BLOCK-----/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'privateKeyPem',\n    description: 'Private Key in PEM format',\n    regex: /-----BEGIN PRIVATE KEY-----/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'encryptedPrivateKey',\n    description: 'Encrypted Private Key',\n    regex: /-----BEGIN ENCRYPTED PRIVATE KEY-----/g,\n    matchAccuracy: 'high'\n  },\n  {\n    name: 'sshPrivateKey',\n    description: 'SSH Private Key (generic)',\n    regex: /-----BEGIN [A-Z]+ PRIVATE KEY-----/g,\n    matchAccuracy: 'high'\n  }\n];\n","import { SensitiveDataPattern } from '../types';\nexport const secretScannerPatterns: SensitiveDataPattern[] = [\n  {\n    name: 'keywordApiKey',\n    description: 'Keyword-based API Key detection',\n    regex: /api_?key[\\s]*[:=][\\s]*['\"]?[a-zA-Z0-9_-]{16,}['\"]?/gi,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'keywordAuthKey',\n    description: 'Keyword-based Auth Key detection',\n    regex: /auth_?key[\\s]*[:=][\\s]*['\"]?[a-zA-Z0-9_-]{16,}['\"]?/gi,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'keywordSecret',\n    description: 'Keyword-based Secret detection',\n    regex: /secret[\\s]*[:=][\\s]*['\"]?[a-zA-Z0-9_-]{16,}['\"]?/gi,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'keywordPassword',\n    description: 'Keyword-based Password detection',\n    regex: /password[\\s]*[:=][\\s]*['\"]?[a-zA-Z0-9_\\-!@#$%^&*()]{8,}['\"]?/gi,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'keywordPrivateKey',\n    description: 'Keyword-based Private Key detection',\n    regex: /priv_?key[\\s]*[:=][\\s]*['\"]?[a-zA-Z0-9_-]{16,}['\"]?/gi,\n    matchAccuracy: 'medium'\n  },\n  {\n    name: 'keywordDbPassword',\n    description: 'Keyword-based Database Password detection',\n    regex: /db_?pass[\\s]*[:=][\\s]*['\"]?[a-zA-Z0-9_\\-!@#$%^&*()]{8,}['\"]?/gi,\n    matchAccuracy: 'medium'\n  }\n];\n","import { SensitiveDataPattern } from '../types';\nexport const uuidPatterns: SensitiveDataPattern[] = [\n  {\n    name: 'uuid',\n    description: 'Universally Unique Identifier (UUID, versions 1-5, case-insensitive)',\n    regex: /[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}/g,\n    matchAccuracy: 'high'\n  }\n];\n","import { piiPatterns } from './pii';\nimport { cryptographicPatterns } from './cryptographic';\nimport { financialPatterns } from './financial';\nimport { aiProviderPatterns } from './ai-providers';\nimport { authPatterns } from './authentication';\nimport { cloudProviderPatterns } from './cloud-providers';\nimport { awsPatterns } from './aws-keys';\nimport { databasePatterns } from './database';\nimport { developerToolsPatterns } from './developer-tools';\nimport { networkLocationPatterns } from './network-location';\nimport { paymentProviderPatterns } from './payment-providers';\nimport { urlPatterns } from './url-patterns';\nimport { codeConfigPatterns } from './code-config';\nimport { socialMediaPatterns } from './social-media';\nimport { fileStoragePatterns } from './file-storage';\nimport { communicationServicePatterns } from './communication-services';\nimport { ecommerceContentPatterns } from './ecommerce-content';\nimport { mappingMonitoringPatterns } from './mapping-monitoring';\nimport { analyticsModernPatterns } from './analytics-modern';\nimport { secretDetectionGenericPatterns } from './secret-detection-generic';\nimport { githubTokenPatterns } from './github-tokens';\nimport { slackEnhancedPatterns } from './slack';\nimport { privateKeyPatterns } from './private-keys';\nimport { secretScannerPatterns } from './secret-scanner-patterns';\nimport { uuidPatterns } from './uuid';\nexport const regexPatterns = {\n  all: [\n    ...piiPatterns,\n    ...cryptographicPatterns,\n    ...financialPatterns,\n    ...aiProviderPatterns,\n    ...authPatterns,\n    ...uuidPatterns,\n    ...cloudProviderPatterns,\n    ...awsPatterns,\n    ...databasePatterns,\n    ...developerToolsPatterns,\n    ...networkLocationPatterns,\n    ...paymentProviderPatterns,\n    ...urlPatterns,\n    ...codeConfigPatterns,\n    ...socialMediaPatterns,\n    ...fileStoragePatterns,\n    ...communicationServicePatterns,\n    ...ecommerceContentPatterns,\n    ...mappingMonitoringPatterns,\n    ...analyticsModernPatterns,\n    ...secretDetectionGenericPatterns,\n    ...githubTokenPatterns,\n    ...slackEnhancedPatterns,\n    ...privateKeyPatterns,\n    ...secretScannerPatterns\n  ]\n};\nexport type { SensitiveDataPattern } from '../types';\n","import { regexPatterns } from './regexes/index';\n\nconst sensitiveDataRegexes = regexPatterns.all;\n\n// Create a simple PatternName type based on available patterns\ntype PatternName = string;\n\nexport interface MaskResult {\n  output: string;\n  found: { [name: string]: number };\n  matches: string[]; // array of matched strings\n  masked: string[]; // array of masked strings\n}\n\nexport interface MaskingOptions {\n  maskChar?: string;\n  preserveLength?: boolean;\n  maskPercentage?: number;\n  excludePatterns?: PatternName[];\n  onlyPatterns?: PatternName[];\n  matchAccuracy?: 'high' | 'medium' | 'low';\n}\n\n\n\n// Simple regex cache - no over-engineering\nconst regexCache = new Map<string, RegExp>();\n\nfunction getGlobalRegex(pattern: { regex: RegExp }): RegExp {\n  const key = pattern.regex.source + pattern.regex.flags;\n  if (!regexCache.has(key)) {\n    // Use the original regex if it already has the global flag\n    if (pattern.regex.flags.includes('g')) {\n      regexCache.set(key, pattern.regex);\n    } else {\n      // Add global flag if it doesn't have it\n      regexCache.set(key, new RegExp(pattern.regex.source, pattern.regex.flags + 'g'));\n    }\n  }\n  return regexCache.get(key)!;\n}\n\n/**\n * Filter patterns based on match accuracy level\n */\nfunction filterPatternsByAccuracy(patterns: typeof sensitiveDataRegexes, accuracy?: 'high' | 'medium' | 'low') {\n  if (!accuracy) return patterns;\n\n  return patterns.filter(pattern => {\n    const patternAccuracy = pattern.matchAccuracy || 'medium'; // default to medium if not specified\n\n    switch (accuracy) {\n    case 'high':\n      return patternAccuracy === 'high';\n    case 'medium':\n      return patternAccuracy === 'high' || patternAccuracy === 'medium';\n    case 'low':\n      return true; // include all patterns\n    default:\n      return true;\n    }\n  });\n}\n\n/**\n * Masks sensitive content in a string\n */\nexport function mask(input: string, options: MaskingOptions = {}): MaskResult {\n  const {\n    maskChar = '*',\n    preserveLength = false,\n    excludePatterns = [],\n    onlyPatterns = [],\n    matchAccuracy\n  } = options;\n\n  if (typeof input !== 'string') {\n    return { output: String(input || ''), found: {}, matches: [], masked: [] };\n  }\n\n  let output = input;\n  const found: { [name: string]: number } = {};\n  const matches: string[] = [];\n  const masked: string[] = [];\n\n  // Filter patterns by accuracy first, then by include/exclude patterns\n  let patterns = filterPatternsByAccuracy(sensitiveDataRegexes, matchAccuracy);\n\n  // Apply pattern filtering\n  patterns = patterns.filter(pattern => {\n    const name = pattern.name as PatternName;\n    if (onlyPatterns.length > 0) return onlyPatterns.includes(name);\n    return !excludePatterns.includes(name);\n  });\n\n  // Single pass through patterns\n  for (const pattern of patterns) {\n    let matchCount = 0;\n    const regex = getGlobalRegex(pattern);\n\n    output = output.replace(regex, (match) => {\n      matchCount++;\n      matches.push(match);\n\n      if (preserveLength) {\n        masked.push(maskChar.repeat(match.length));\n        return maskChar.repeat(match.length);\n      }\n\n      // Cut sensitive parts in half and add 2 asterisks at beginning and end\n      const halfLength = Math.floor(match.length / 2);\n      const quarterLength = Math.floor(halfLength / 2);\n      const startIndex = quarterLength;\n      const endIndex = match.length - quarterLength;\n\n      let maskedVersion;\n      if (match.length <= 4) {\n        // For very short strings, just mask with asterisks\n        maskedVersion = maskChar.repeat(Math.min(4, match.length));\n      } else {\n        // Show the middle half with 2 asterisks at each end\n        const middlePart = match.substring(startIndex, endIndex);\n        maskedVersion = maskChar.repeat(2) + middlePart + maskChar.repeat(2);\n      }\n\n      masked.push(maskedVersion);\n\n      return maskedVersion;\n    });\n\n    if (matchCount > 0) {\n      found[pattern.name] = matchCount;\n    }\n  }\n\n  return { output, found, matches, masked };\n}\n\n/**\n * Check if input contains sensitive data\n */\nexport function hasSensitiveContent(input: string, options: {\n  matchAccuracy?: 'high' | 'medium' | 'low';\n  excludePatterns?: PatternName[];\n  onlyPatterns?: PatternName[];\n} = {}): boolean {\n  if (typeof input !== 'string') return false;\n\n  const { matchAccuracy, excludePatterns = [], onlyPatterns = [] } = options;\n\n  // Filter patterns by accuracy first, then by include/exclude patterns\n  let patterns = filterPatternsByAccuracy(sensitiveDataRegexes, matchAccuracy);\n\n  // Apply pattern filtering\n  patterns = patterns.filter(pattern => {\n    const name = pattern.name as PatternName;\n    if (onlyPatterns.length > 0) return onlyPatterns.includes(name);\n    return !excludePatterns.includes(name);\n  });\n\n  return patterns.some(pattern => pattern.regex.test(input));\n}\n\n/**\n * Get pattern matches with positions\n */\nexport function getPatternMatches(input: string, options: {\n  matchAccuracy?: 'high' | 'medium' | 'low';\n  excludePatterns?: PatternName[];\n  onlyPatterns?: PatternName[];\n} = {}): Array<{\n  pattern: string;\n  matches: Array<{ match: string; startIndex: number; endIndex: number }>;\n}> {\n  if (typeof input !== 'string') return [];\n\n  const { matchAccuracy, excludePatterns = [], onlyPatterns = [] } = options;\n\n  // Filter patterns by accuracy first, then by include/exclude patterns\n  let patterns = filterPatternsByAccuracy(sensitiveDataRegexes, matchAccuracy);\n\n  // Apply pattern filtering\n  patterns = patterns.filter(pattern => {\n    const name = pattern.name as PatternName;\n    if (onlyPatterns.length > 0) return onlyPatterns.includes(name);\n    return !excludePatterns.includes(name);\n  });\n\n  const results: Array<{\n    pattern: string;\n    matches: Array<{ match: string; startIndex: number; endIndex: number }>;\n  }> = [];\n\n  for (const pattern of patterns) {\n    const regex = getGlobalRegex(pattern);\n    // Reset the regex to start from the beginning\n    regex.lastIndex = 0;\n    const matches: Array<{ match: string; startIndex: number; endIndex: number }> = [];\n    let match;\n\n    while ((match = regex.exec(input)) !== null) {\n      matches.push({\n        match: match[0],\n        startIndex: match.index,\n        endIndex: match.index + match[0].length - 1\n      });\n    }\n\n    if (matches.length > 0) {\n      results.push({\n        pattern: pattern.name,\n        matches\n      });\n    }\n  }\n\n  return results;\n}\n","export const SENSITIVE_FILE_PATTERNS = [\n  '.env',\n  '.env.local',\n  '.env.production',\n  '.env.development',\n  '.env.test',\n  '.env.staging',\n  '.env.example',\n  '.env.sample',\n  '.env.template',\n  '.env.*.local',\n  'config.json',\n  'config.yaml',\n  'config.yml',\n  'config.xml',\n  'config.ini',\n  'config.toml',\n  'config.properties',\n  'settings.json',\n  'settings.yaml',\n  'settings.yml',\n  'settings.xml',\n  'settings.ini',\n  'appsettings.json',\n  'appsettings.*.json',\n  'application.properties',\n  'application.yml',\n  'application.yaml',\n  'application.xml',\n  'application.conf',\n  'web.config',\n  'app.config',\n  'hibernate.cfg.xml',\n  'struts.xml',\n  'spring.xml',\n  'context.xml',\n  'server.xml',\n  'datasource.xml',\n  '*.db',\n  '*.sqlite',\n  '*.sqlite3',\n  '*.mdb',\n  '*.accdb',\n  '*.dbf',\n  '*.fdb',\n  '*.gdb',\n  '*.nsf',\n  '*.sql',\n  '*.dump',\n  '*.backup',\n  'database.json',\n  'db.json',\n  'schema.sql',\n  'dump.sql',\n  'backup.sql',\n  '*.key',\n  '*.pem',\n  '*.p12',\n  '*.pfx',\n  '*.crt',\n  '*.cer',\n  '*.der',\n  '*.csr',\n  '*.pub',\n  '*.jks',\n  '*.keystore',\n  '*.truststore',\n  'private_key',\n  'public_key',\n  'id_rsa',\n  'id_dsa',\n  'id_ecdsa',\n  'id_ed25519',\n  'authorized_keys',\n  'known_hosts',\n  'ca-bundle.crt',\n  'ca-certificates.crt',\n  'server.key',\n  'server.crt',\n  'client.key',\n  'client.crt',\n  '.aws/credentials',\n  '.aws/config',\n  '.gcp/credentials.json',\n  'gcloud/application_default_credentials.json',\n  '.azure/credentials',\n  '.azure/config',\n  '.kube/config',\n  '.kubectl/config',\n  '.docker/config.json',\n  '.terraform/terraform.tfstate',\n  '.terraform/terraform.tfstate.backup',\n  '*.tfstate',\n  '*.tfstate.backup',\n  'terraform.tfvars',\n  'terraform.tfvars.json',\n  '*.auto.tfvars',\n  '*.auto.tfvars.json',\n  'pulumi.*.yaml',\n  'Pulumi.*.yaml',\n  'ansible.cfg',\n  'inventory',\n  'hosts',\n  'vault.yml',\n  'vault.yaml',\n  'docker-compose.yml',\n  'docker-compose.yaml',\n  'docker-compose.override.yml',\n  'docker-compose.override.yaml',\n  'docker-compose.prod.yml',\n  'docker-compose.production.yml',\n  'Dockerfile.prod',\n  'Dockerfile.production',\n  'Dockerfile.dev',\n  'Dockerfile.development',\n  '.dockerignore',\n  'podman-compose.yml',\n  'podman-compose.yaml',\n  '.git/config',\n  '.gitconfig',\n  '.git-credentials',\n  '.gitignore_global',\n  '.netrc',\n  '.hgrc',\n  '.svn/auth',\n  '.npmrc',\n  '.yarnrc',\n  '.yarnrc.yml',\n  'pip.conf',\n  'pip.ini',\n  'pyproject.toml',\n  'setup.cfg',\n  'requirements.txt',\n  '.vscode/settings.json',\n  '.vscode/launch.json',\n  '.vscode/tasks.json',\n  '.idea/workspace.xml',\n  '.idea/modules.xml'\n];\nexport const SENSITIVE_FILE_EXTENSIONS = [\n  '.env',\n  '.key',\n  '.pem',\n  '.p12',\n  '.pfx',\n  '.crt',\n  '.cer',\n  '.der',\n  '.csr',\n  '.pub',\n  '.jks',\n  '.keystore',\n  '.truststore',\n  '.db',\n  '.sqlite',\n  '.sqlite3',\n  '.mdb',\n  '.accdb',\n  '.dbf',\n  '.fdb',\n  '.gdb',\n  '.nsf',\n  '.sql',\n  '.dump',\n  '.backup',\n  '.tfstate',\n  '.tfvars'\n];\nexport const SENSITIVE_DIRECTORY_PATTERNS = [\n  '.git',\n  '.svn',\n  '.hg',\n  '.bzr',\n  '.aws',\n  '.azure',\n  '.gcp',\n  '.kube',\n  '.kubectl',\n  '.docker',\n  '.terraform',\n  '.pulumi',\n  '.ansible',\n  '.vagrant',\n  '.vscode',\n  '.idea',\n  '.vs',\n  '.sublime',\n  '.atom',\n  '.emacs.d',\n  '.vim',\n  '.nvim',\n  'secrets',\n  'private',\n  'credentials',\n  'keys',\n  'certs',\n  'certificates',\n  'ssl',\n  'tls',\n  'pki',\n  'ca',\n  'backup',\n  'backups',\n  'archive',\n  'archives',\n  'dumps',\n  'exports',\n  'imports',\n  'auth',\n  'authentication',\n  'authorization',\n  'oauth',\n  'saml',\n  'ldap',\n  'kerberos',\n  'security',\n  'vault',\n  'hashicorp',\n  'consul',\n  'nomad',\n  'vault',\n  'terraform',\n  'packer',\n  'vagrant',\n  'docker',\n  'kubernetes',\n  'k8s',\n  'helm',\n  'tiller',\n  'istio',\n  'linkerd',\n  'consul-connect',\n  'prometheus',\n  'grafana',\n  'jaeger',\n  'zipkin',\n  'otel',\n  'opentelemetry',\n  'fluentd',\n  'fluent-bit',\n  'logstash',\n  'kibana',\n  'elastic',\n  'beats',\n  'filebeat',\n  'metricbeat',\n  'heartbeat',\n  'auditbeat',\n  'winlogbeat',\n  'packetbeat',\n  'nginx',\n  'apache',\n  'apache2',\n  'httpd',\n  'lighttpd',\n  'caddy',\n  'traefik',\n  'haproxy',\n  'envoy'\n];\nimport { SensitiveDataPattern } from './types';\nexport const sensitiveFilePatterns: SensitiveDataPattern[] = [\n  {\n    name: 'sensitiveFilePatterns',\n    description: 'Common file patterns that might contain sensitive data',\n    regex: new RegExp('\\\\b(' + SENSITIVE_FILE_PATTERNS.map(p => p.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')).join('|') + ')\\\\b', 'gi'),\n    matchAccuracy: 'low',\n    isGeneralId: true\n  },\n  {\n    name: 'sensitiveDirectoryPatterns',\n    description: 'Directory patterns that might contain sensitive data',\n    regex: new RegExp('\\\\b(' + SENSITIVE_DIRECTORY_PATTERNS.map(p => p.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')).join('|') + ')\\\\b', 'gi'),\n    matchAccuracy: 'low',\n    isGeneralId: true\n  }\n];\n"],"names":[],"mappings":"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"}