{"version":3,"sources":["/home/mkabumattar/work/withrawi/rawi/dist/chunk-YWAJIV7E.cjs","../src/core/content-filter/patterns.ts"],"names":["EMAIL_PATTERN","PHONE_PATTERN","CREDIT_CARD_PATTERN","SSN_PATTERN","IP_PATTERN","URL_PATTERN","ADDRESS_PATTERN","DEFAULT_PATTERNS","getPatternByType","type","pattern","getAvailablePatternTypes","applyPattern","text","count","matches"],"mappings":"AAAA;ACOO,IAAMA,CAAAA,CAAmC,CAC9C,IAAA,CAAM,OAAA,CACN,OAAA,CAAS,qDAAA,CACT,WAAA,CAAa,SAAA,CACb,WAAA,CAAa,iBACf,CAAA,CAEaC,CAAAA,aAAmC,CAC9C,IAAA,CAAM,OAAA,CACN,OAAA,CAAS,0DAAA,CACT,WAAA,CAAa,SAAA,CACb,WAAA,CAAa,eACf,CAAA,CAEaC,CAAAA,aAAyC,CACpD,IAAA,CAAM,YAAA,CACN,OAAA,CAAS,8CAAA,CACT,WAAA,CAAa,eAAA,CACb,WAAA,CAAa,qBACf,CAAA,CAEaC,CAAAA,aAAiC,CAC5C,IAAA,CAAM,KAAA,CACN,OAAA,CAAS,kCAAA,CACT,WAAA,CAAa,OAAA,CACb,WAAA,CAAa,yBACf,CAAA,CAEaC,CAAAA,aAAgC,CAC3C,IAAA,CAAM,IAAA,CACN,OAAA,CACE,gGAAA,CACF,WAAA,CAAa,cAAA,CACb,WAAA,CAAa,cACf,CAAA,CAEaC,CAAAA,aAAiC,CAC5C,IAAA,CAAM,KAAA,CACN,OAAA,CACE,0GAAA,CACF,WAAA,CAAa,OAAA,CACb,WAAA,CAAa,MACf,CAAA,CAEaC,CAAAA,aAAqC,CAChD,IAAA,CAAM,SAAA,CACN,OAAA,CACE,2FAAA,CACF,WAAA,CAAa,WAAA,CACb,WAAA,CAAa,oBACf,CAAA,CAEaC,CAAAA,aAAwC,CACnDP,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACAC,CACF,CAAA,CAEO,SAASE,CAAAA,CAAiBC,CAAAA,CAA6C,CAC5E,OAAOF,CAAAA,CAAiB,IAAA,CAAMG,CAAAA,EAAYA,CAAAA,CAAQ,IAAA,GAASD,CAAI,CACjE,CAEO,SAASE,CAAAA,CAAAA,CAAqC,CACnD,OAAOJ,CAAAA,CAAiB,GAAA,CAAKG,CAAAA,EAAYA,CAAAA,CAAQ,IAAI,CACvD,CAEO,SAASE,CAAAA,CACdC,CAAAA,CACAH,CAAAA,CAIA,CACA,IAAII,CAAAA,CAAQ,CAAA,CACNC,CAAAA,CAAUF,CAAAA,CAAK,KAAA,CAAMH,CAAAA,CAAQ,OAAO,CAAA,CAC1C,OAAAI,CAAAA,CAAQC,CAAAA,CAAUA,CAAAA,CAAQ,MAAA,CAAS,CAAA,CAI5B,CACL,YAAA,CAHmBF,CAAAA,CAAK,OAAA,CAAQH,CAAAA,CAAQ,OAAA,CAASA,CAAAA,CAAQ,WAAW,CAAA,CAIpE,KAAA,CAAAI,CACF,CACF,CAAA,oKAAA;AD5FA","file":"/home/mkabumattar/work/withrawi/rawi/dist/chunk-YWAJIV7E.cjs","sourcesContent":[null,"export interface PatternDefinition {\n  type: string;\n  pattern: RegExp;\n  replacement: string;\n  description: string;\n}\n\nexport const EMAIL_PATTERN: PatternDefinition = {\n  type: 'email',\n  pattern: /\\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}\\b/g,\n  replacement: '[EMAIL]',\n  description: 'Email addresses',\n};\n\nexport const PHONE_PATTERN: PatternDefinition = {\n  type: 'phone',\n  pattern: /(\\+\\d{1,3}[\\s-]?)?\\(?\\d{3}\\)?[\\s.-]?\\d{3}[\\s.-]?\\d{3,4}/g,\n  replacement: '[PHONE]',\n  description: 'Phone numbers',\n};\n\nexport const CREDIT_CARD_PATTERN: PatternDefinition = {\n  type: 'creditcard',\n  pattern: /\\b(?:\\d{4}[ -]?\\d{4}[ -]?\\d{4}[ -]?\\d{4})\\b/g,\n  replacement: '[CREDIT_CARD]',\n  description: 'Credit card numbers',\n};\n\nexport const SSN_PATTERN: PatternDefinition = {\n  type: 'ssn',\n  pattern: /\\b(?:\\d{3}-\\d{2}-\\d{4}|\\d{9})\\b/g,\n  replacement: '[SSN]',\n  description: 'Social Security Numbers',\n};\n\nexport const IP_PATTERN: PatternDefinition = {\n  type: 'ip',\n  pattern:\n    /\\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  replacement: '[IP_ADDRESS]',\n  description: 'IP addresses',\n};\n\nexport const URL_PATTERN: PatternDefinition = {\n  type: 'url',\n  pattern:\n    /\\bhttps?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}(?:[-a-zA-Z0-9()@:%_+.~#?&//=]*)/g,\n  replacement: '[URL]',\n  description: 'URLs',\n};\n\nexport const ADDRESS_PATTERN: PatternDefinition = {\n  type: 'address',\n  pattern:\n    /\\b\\d+\\s+[A-Za-z\\s]+(?:Avenue|Lane|Road|Boulevard|Drive|Street|Ave|Dr|Rd|Blvd|Ln|St)\\.?\\b/g,\n  replacement: '[ADDRESS]',\n  description: 'Physical addresses',\n};\n\nexport const DEFAULT_PATTERNS: PatternDefinition[] = [\n  EMAIL_PATTERN,\n  PHONE_PATTERN,\n  CREDIT_CARD_PATTERN,\n  SSN_PATTERN,\n  IP_PATTERN,\n  URL_PATTERN,\n  ADDRESS_PATTERN,\n];\n\nexport function getPatternByType(type: string): PatternDefinition | undefined {\n  return DEFAULT_PATTERNS.find((pattern) => pattern.type === type);\n}\n\nexport function getAvailablePatternTypes(): string[] {\n  return DEFAULT_PATTERNS.map((pattern) => pattern.type);\n}\n\nexport function applyPattern(\n  text: string,\n  pattern: PatternDefinition,\n): {\n  filteredText: string;\n  count: number;\n} {\n  let count = 0;\n  const matches = text.match(pattern.pattern);\n  count = matches ? matches.length : 0;\n\n  const filteredText = text.replace(pattern.pattern, pattern.replacement);\n\n  return {\n    filteredText,\n    count,\n  };\n}\n"]}