{"version":3,"sources":["webpack:////build/source/node_modules/fuzzaldrin-plus/lib/scorer.js","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/fuzzaldrin.js","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/query.js","webpack:///./lib/utils/secret_detection_patterns.js","webpack:///./lib/utils/secret_detection.js","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/pathScorer.js","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/matcher.js","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/filter.js"],"names":["AcronymResult","computeScore","emptyAcronymResult","isAcronymFullWord","isMatch","isSeparator","isWordEnd","isWordStart","scoreAcronyms","scoreCharacter","scoreConsecutives","scoreExact","scoreExactMatch","scorePattern","scorePosition","scoreSize","exports","score","string","query","options","preparedQuery","string_lw","allowErrors","core_lw","core_up","toLowerCase","Math","ceil","subject","query_lw","query_up","i","j","m","n","qj_lw","qj_up","si","length","charCodeAt","subject_lw","acro","acro_score","align","csc_diag","csc_row","csc_score","csc_should_rebuild","miss_budget","miss_left","pos","record_miss","score_diag","score_row","score_up","si_lw","start","sz","count","indexOf","Array","charCodes","max","curr_s","prev_s","len","next_s","c","sc","abs","quality","sameCase","end","bonus","posBonus","startOfWord","k","mi","nj","pos2","this","fullWord","sepCount","sumPos","nbAcronymInQuery","call","Query","defaultPathSeparator","filter","matcher","parseOptions","pathScorer","preparedQueryCache","scorer","process","platform","module","candidates","usePathScoring","match","_results","_i","_ref","push","apply","wrap","prepareQuery","useExtensionBonus","pathSeparator","optCharRegEx","coreChars","countDir","getCharCodes","getExtension","opt_char_re","truncatedUpperCase","_arg","_ref1","core","depth","ext","replace","str","upper","_len","toUpperCase","sensitiveDataPatterns","_window$gon","patPrefix","window","gon","pat_prefix","name","regex","CONTENT_TYPE","COMMENT","DESCRIPTION","defaultContentType","documentationHref","helpPagePath","i18n","title","n__","promptMessage","primaryBtnText","__","secondaryBtnText","helpString","formatMessage","findings","contentType","sprintf","map","patternName","matchedString","redactedString","inputString","prefix","substring","suffix","redactLength","min","repeat","redactString","_escape","join","detectAndConfirmSensitiveTokens","content","sensitiveTokens","message","rule","RegExp","matches","forEach","containsSensitiveToken","async","modalHtmlMessage","confirmed","confirmAction","primaryBtnVariant","hideCancel","InternalEvents","trackEvent","label","property","value","confirmSensitiveAction","Promise","resolve","getExtensionScore","scorePath","fullPathScore","alpha","basePathScore","basePos","extAdjust","fileLength","lastIndexOf","slice","path","substr","candidate","startPos","endPos","maxDepth","matched","basenameMatch","computeMatch","mergeMatches","baseMatches","matchIndex","matchPos","matchPositions","output","strPos","tagClass","tagClose","tagOpen","a","b","ai","bj","out","offset","backtrack","move","trace","reverse","pluckCandidates","sortCandidates","bKey","key","maxInners","maxResults","scoreProvider","scoredCandidates","spotLeft","sort"],"mappings":"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","file":"commons-pages.groups.roadmap.show-pages.groups.wikis-pages.groups.wikis.diff-pages.groups.wikis.git_-f86ba45d.f9e6ce47.chunk.js","sourcesContent":["(function() {\n  var AcronymResult, computeScore, emptyAcronymResult, isAcronymFullWord, isMatch, isSeparator, isWordEnd, isWordStart, miss_coeff, pos_bonus, scoreAcronyms, scoreCharacter, scoreConsecutives, scoreExact, scoreExactMatch, scorePattern, scorePosition, scoreSize, tau_size, wm;\n\n  wm = 150;\n\n  pos_bonus = 20;\n\n  tau_size = 150;\n\n  miss_coeff = 0.75;\n\n  exports.score = function(string, query, options) {\n    var allowErrors, preparedQuery, score, string_lw;\n    preparedQuery = options.preparedQuery, allowErrors = options.allowErrors;\n    if (!(allowErrors || isMatch(string, preparedQuery.core_lw, preparedQuery.core_up))) {\n      return 0;\n    }\n    string_lw = string.toLowerCase();\n    score = computeScore(string, string_lw, preparedQuery);\n    return Math.ceil(score);\n  };\n\n  exports.isMatch = isMatch = function(subject, query_lw, query_up) {\n    var i, j, m, n, qj_lw, qj_up, si;\n    m = subject.length;\n    n = query_lw.length;\n    if (!m || n > m) {\n      return false;\n    }\n    i = -1;\n    j = -1;\n    while (++j < n) {\n      qj_lw = query_lw.charCodeAt(j);\n      qj_up = query_up.charCodeAt(j);\n      while (++i < m) {\n        si = subject.charCodeAt(i);\n        if (si === qj_lw || si === qj_up) {\n          break;\n        }\n      }\n      if (i === m) {\n        return false;\n      }\n    }\n    return true;\n  };\n\n  exports.computeScore = computeScore = function(subject, subject_lw, preparedQuery) {\n    var acro, acro_score, align, csc_diag, csc_row, csc_score, csc_should_rebuild, i, j, m, miss_budget, miss_left, n, pos, query, query_lw, record_miss, score, score_diag, score_row, score_up, si_lw, start, sz;\n    query = preparedQuery.query;\n    query_lw = preparedQuery.query_lw;\n    m = subject.length;\n    n = query.length;\n    acro = scoreAcronyms(subject, subject_lw, query, query_lw);\n    acro_score = acro.score;\n    if (acro.count === n) {\n      return scoreExact(n, m, acro_score, acro.pos);\n    }\n    pos = subject_lw.indexOf(query_lw);\n    if (pos > -1) {\n      return scoreExactMatch(subject, subject_lw, query, query_lw, pos, n, m);\n    }\n    score_row = new Array(n);\n    csc_row = new Array(n);\n    sz = scoreSize(n, m);\n    miss_budget = Math.ceil(miss_coeff * n) + 5;\n    miss_left = miss_budget;\n    csc_should_rebuild = true;\n    j = -1;\n    while (++j < n) {\n      score_row[j] = 0;\n      csc_row[j] = 0;\n    }\n    i = -1;\n    while (++i < m) {\n      si_lw = subject_lw[i];\n      if (!si_lw.charCodeAt(0) in preparedQuery.charCodes) {\n        if (csc_should_rebuild) {\n          j = -1;\n          while (++j < n) {\n            csc_row[j] = 0;\n          }\n          csc_should_rebuild = false;\n        }\n        continue;\n      }\n      score = 0;\n      score_diag = 0;\n      csc_diag = 0;\n      record_miss = true;\n      csc_should_rebuild = true;\n      j = -1;\n      while (++j < n) {\n        score_up = score_row[j];\n        if (score_up > score) {\n          score = score_up;\n        }\n        csc_score = 0;\n        if (query_lw[j] === si_lw) {\n          start = isWordStart(i, subject, subject_lw);\n          csc_score = csc_diag > 0 ? csc_diag : scoreConsecutives(subject, subject_lw, query, query_lw, i, j, start);\n          align = score_diag + scoreCharacter(i, j, start, acro_score, csc_score);\n          if (align > score) {\n            score = align;\n            miss_left = miss_budget;\n          } else {\n            if (record_miss && --miss_left <= 0) {\n              return Math.max(score, score_row[n - 1]) * sz;\n            }\n            record_miss = false;\n          }\n        }\n        score_diag = score_up;\n        csc_diag = csc_row[j];\n        csc_row[j] = csc_score;\n        score_row[j] = score;\n      }\n    }\n    score = score_row[n - 1];\n    return score * sz;\n  };\n\n  exports.isWordStart = isWordStart = function(pos, subject, subject_lw) {\n    var curr_s, prev_s;\n    if (pos === 0) {\n      return true;\n    }\n    curr_s = subject[pos];\n    prev_s = subject[pos - 1];\n    return isSeparator(prev_s) || (curr_s !== subject_lw[pos] && prev_s === subject_lw[pos - 1]);\n  };\n\n  exports.isWordEnd = isWordEnd = function(pos, subject, subject_lw, len) {\n    var curr_s, next_s;\n    if (pos === len - 1) {\n      return true;\n    }\n    curr_s = subject[pos];\n    next_s = subject[pos + 1];\n    return isSeparator(next_s) || (curr_s === subject_lw[pos] && next_s !== subject_lw[pos + 1]);\n  };\n\n  isSeparator = function(c) {\n    return c === ' ' || c === '.' || c === '-' || c === '_' || c === '/' || c === '\\\\';\n  };\n\n  scorePosition = function(pos) {\n    var sc;\n    if (pos < pos_bonus) {\n      sc = pos_bonus - pos;\n      return 100 + sc * sc;\n    } else {\n      return Math.max(100 + pos_bonus - pos, 0);\n    }\n  };\n\n  exports.scoreSize = scoreSize = function(n, m) {\n    return tau_size / (tau_size + Math.abs(m - n));\n  };\n\n  scoreExact = function(n, m, quality, pos) {\n    return 2 * n * (wm * quality + scorePosition(pos)) * scoreSize(n, m);\n  };\n\n  exports.scorePattern = scorePattern = function(count, len, sameCase, start, end) {\n    var bonus, sz;\n    sz = count;\n    bonus = 6;\n    if (sameCase === count) {\n      bonus += 2;\n    }\n    if (start) {\n      bonus += 3;\n    }\n    if (end) {\n      bonus += 1;\n    }\n    if (count === len) {\n      if (start) {\n        if (sameCase === len) {\n          sz += 2;\n        } else {\n          sz += 1;\n        }\n      }\n      if (end) {\n        bonus += 1;\n      }\n    }\n    return sameCase + sz * (sz + bonus);\n  };\n\n  exports.scoreCharacter = scoreCharacter = function(i, j, start, acro_score, csc_score) {\n    var posBonus;\n    posBonus = scorePosition(i);\n    if (start) {\n      return posBonus + wm * ((acro_score > csc_score ? acro_score : csc_score) + 10);\n    }\n    return posBonus + wm * csc_score;\n  };\n\n  exports.scoreConsecutives = scoreConsecutives = function(subject, subject_lw, query, query_lw, i, j, startOfWord) {\n    var k, m, mi, n, nj, sameCase, sz;\n    m = subject.length;\n    n = query.length;\n    mi = m - i;\n    nj = n - j;\n    k = mi < nj ? mi : nj;\n    sameCase = 0;\n    sz = 0;\n    if (query[j] === subject[i]) {\n      sameCase++;\n    }\n    while (++sz < k && query_lw[++j] === subject_lw[++i]) {\n      if (query[j] === subject[i]) {\n        sameCase++;\n      }\n    }\n    if (sz < k) {\n      i--;\n    }\n    if (sz === 1) {\n      return 1 + 2 * sameCase;\n    }\n    return scorePattern(sz, n, sameCase, startOfWord, isWordEnd(i, subject, subject_lw, m));\n  };\n\n  exports.scoreExactMatch = scoreExactMatch = function(subject, subject_lw, query, query_lw, pos, n, m) {\n    var end, i, pos2, sameCase, start;\n    start = isWordStart(pos, subject, subject_lw);\n    if (!start) {\n      pos2 = subject_lw.indexOf(query_lw, pos + 1);\n      if (pos2 > -1) {\n        start = isWordStart(pos2, subject, subject_lw);\n        if (start) {\n          pos = pos2;\n        }\n      }\n    }\n    i = -1;\n    sameCase = 0;\n    while (++i < n) {\n      if (query[pos + i] === subject[i]) {\n        sameCase++;\n      }\n    }\n    end = isWordEnd(pos + n - 1, subject, subject_lw, m);\n    return scoreExact(n, m, scorePattern(n, n, sameCase, start, end), pos);\n  };\n\n  AcronymResult = (function() {\n    function AcronymResult(score, pos, count) {\n      this.score = score;\n      this.pos = pos;\n      this.count = count;\n    }\n\n    return AcronymResult;\n\n  })();\n\n  emptyAcronymResult = new AcronymResult(0, 0.1, 0);\n\n  exports.scoreAcronyms = scoreAcronyms = function(subject, subject_lw, query, query_lw) {\n    var count, fullWord, i, j, m, n, qj_lw, sameCase, score, sepCount, sumPos;\n    m = subject.length;\n    n = query.length;\n    if (!(m > 1 && n > 1)) {\n      return emptyAcronymResult;\n    }\n    count = 0;\n    sepCount = 0;\n    sumPos = 0;\n    sameCase = 0;\n    i = -1;\n    j = -1;\n    while (++j < n) {\n      qj_lw = query_lw[j];\n      if (isSeparator(qj_lw)) {\n        i = subject_lw.indexOf(qj_lw, i + 1);\n        if (i > -1) {\n          sepCount++;\n          continue;\n        } else {\n          break;\n        }\n      }\n      while (++i < m) {\n        if (qj_lw === subject_lw[i] && isWordStart(i, subject, subject_lw)) {\n          if (query[j] === subject[i]) {\n            sameCase++;\n          }\n          sumPos += i;\n          count++;\n          break;\n        }\n      }\n      if (i === m) {\n        break;\n      }\n    }\n    if (count < 2) {\n      return emptyAcronymResult;\n    }\n    fullWord = count === n ? isAcronymFullWord(subject, subject_lw, query, count) : false;\n    score = scorePattern(count, n, sameCase, true, fullWord);\n    return new AcronymResult(score, sumPos / count, count + sepCount);\n  };\n\n  isAcronymFullWord = function(subject, subject_lw, query, nbAcronymInQuery) {\n    var count, i, m, n;\n    m = subject.length;\n    n = query.length;\n    count = 0;\n    if (m > 12 * n) {\n      return false;\n    }\n    i = -1;\n    while (++i < m) {\n      if (isWordStart(i, subject, subject_lw) && ++count > nbAcronymInQuery) {\n        return false;\n      }\n    }\n    return true;\n  };\n\n}).call(this);\n","(function() {\n  var Query, defaultPathSeparator, filter, matcher, parseOptions, pathScorer, preparedQueryCache, scorer;\n\n  filter = require('./filter');\n\n  matcher = require('./matcher');\n\n  scorer = require('./scorer');\n\n  pathScorer = require('./pathScorer');\n\n  Query = require('./query');\n\n  preparedQueryCache = null;\n\n  defaultPathSeparator = (typeof process !== \"undefined\" && process !== null ? process.platform : void 0) === \"win32\" ? '\\\\' : '/';\n\n  module.exports = {\n    filter: function(candidates, query, options) {\n      if (options == null) {\n        options = {};\n      }\n      if (!((query != null ? query.length : void 0) && (candidates != null ? candidates.length : void 0))) {\n        return [];\n      }\n      options = parseOptions(options, query);\n      return filter(candidates, query, options);\n    },\n    score: function(string, query, options) {\n      if (options == null) {\n        options = {};\n      }\n      if (!((string != null ? string.length : void 0) && (query != null ? query.length : void 0))) {\n        return 0;\n      }\n      options = parseOptions(options, query);\n      if (options.usePathScoring) {\n        return pathScorer.score(string, query, options);\n      } else {\n        return scorer.score(string, query, options);\n      }\n    },\n    match: function(string, query, options) {\n      var _i, _ref, _results;\n      if (options == null) {\n        options = {};\n      }\n      if (!string) {\n        return [];\n      }\n      if (!query) {\n        return [];\n      }\n      if (string === query) {\n        return (function() {\n          _results = [];\n          for (var _i = 0, _ref = string.length; 0 <= _ref ? _i < _ref : _i > _ref; 0 <= _ref ? _i++ : _i--){ _results.push(_i); }\n          return _results;\n        }).apply(this);\n      }\n      options = parseOptions(options, query);\n      return matcher.match(string, query, options);\n    },\n    wrap: function(string, query, options) {\n      if (options == null) {\n        options = {};\n      }\n      if (!string) {\n        return [];\n      }\n      if (!query) {\n        return [];\n      }\n      options = parseOptions(options, query);\n      return matcher.wrap(string, query, options);\n    },\n    prepareQuery: function(query, options) {\n      if (options == null) {\n        options = {};\n      }\n      options = parseOptions(options, query);\n      return options.preparedQuery;\n    }\n  };\n\n  parseOptions = function(options, query) {\n    if (options.allowErrors == null) {\n      options.allowErrors = false;\n    }\n    if (options.usePathScoring == null) {\n      options.usePathScoring = true;\n    }\n    if (options.useExtensionBonus == null) {\n      options.useExtensionBonus = false;\n    }\n    if (options.pathSeparator == null) {\n      options.pathSeparator = defaultPathSeparator;\n    }\n    if (options.optCharRegEx == null) {\n      options.optCharRegEx = null;\n    }\n    if (options.wrap == null) {\n      options.wrap = null;\n    }\n    if (options.preparedQuery == null) {\n      options.preparedQuery = preparedQueryCache && preparedQueryCache.query === query ? preparedQueryCache : (preparedQueryCache = new Query(query, options));\n    }\n    return options;\n  };\n\n}).call(this);\n","(function() {\n  var Query, coreChars, countDir, getCharCodes, getExtension, opt_char_re, truncatedUpperCase, _ref;\n\n  _ref = require(\"./pathScorer\"), countDir = _ref.countDir, getExtension = _ref.getExtension;\n\n  module.exports = Query = (function() {\n    function Query(query, _arg) {\n      var optCharRegEx, pathSeparator, _ref1;\n      _ref1 = _arg != null ? _arg : {}, optCharRegEx = _ref1.optCharRegEx, pathSeparator = _ref1.pathSeparator;\n      if (!(query && query.length)) {\n        return null;\n      }\n      this.query = query;\n      this.query_lw = query.toLowerCase();\n      this.core = coreChars(query, optCharRegEx);\n      this.core_lw = this.core.toLowerCase();\n      this.core_up = truncatedUpperCase(this.core);\n      this.depth = countDir(query, query.length, pathSeparator);\n      this.ext = getExtension(this.query_lw);\n      this.charCodes = getCharCodes(this.query_lw);\n    }\n\n    return Query;\n\n  })();\n\n  opt_char_re = /[ _\\-:\\/\\\\]/g;\n\n  coreChars = function(query, optCharRegEx) {\n    if (optCharRegEx == null) {\n      optCharRegEx = opt_char_re;\n    }\n    return query.replace(optCharRegEx, '');\n  };\n\n  truncatedUpperCase = function(str) {\n    var char, upper, _i, _len;\n    upper = \"\";\n    for (_i = 0, _len = str.length; _i < _len; _i++) {\n      char = str[_i];\n      upper += char.toUpperCase()[0];\n    }\n    return upper;\n  };\n\n  getCharCodes = function(str) {\n    var charCodes, i, len;\n    len = str.length;\n    i = -1;\n    charCodes = [];\n    while (++i < len) {\n      charCodes[str.charCodeAt(i)] = true;\n    }\n    return charCodes;\n  };\n\n}).call(this);\n","/* eslint-disable @gitlab/require-i18n-strings */\nconst sensitiveDataPatterns = () => {\n  const patPrefix = window.gon?.pat_prefix || 'glpat-';\n\n  return [\n    {\n      name: 'GitLab personal access token',\n      regex: `${patPrefix}[0-9a-zA-Z_-]{20}`,\n    },\n    {\n      name: 'GitLab personal access token (routable)',\n      regex: `${patPrefix}(?<base64_payload>[0-9a-zA-Z_-]{27,300})\\\\.(?<base64_payload_length>[0-9a-z]{2})(?<crc32>[0-9a-z]{7})`,\n    },\n    {\n      name: 'Feed Token',\n      regex: 'feed_token=[0-9a-zA-Z_-]{20}|glft-[0-9a-zA-Z_-]{20}|glft-[a-h0-9]+-[0-9]+_',\n    },\n    {\n      name: 'GitLab OAuth Application Secret',\n      regex: `gloas-[0-9a-zA-Z_-]{64}`,\n    },\n    {\n      name: 'GitLab Deploy Token',\n      regex: `gldt-[0-9a-zA-Z_-]{20}`,\n    },\n    {\n      name: 'GitLab SCIM OAuth Access Token',\n      regex: `glsoat-[0-9a-zA-Z_-]{20}`,\n    },\n    {\n      name: 'GitLab CI Build (Job) Token',\n      regex: `glcbt-[0-9a-zA-Z]{1,5}_[0-9a-zA-Z_-]{20}`,\n    },\n    {\n      name: 'GitLab Feature Flags Client Token',\n      regex: `glffct-[0-9a-zA-Z_-]{20}`,\n    },\n    {\n      name: 'GitLab Runner Token',\n      regex: 'glrt-[0-9a-zA-Z_-]{20}',\n    },\n    {\n      name: 'GitLab Incoming Mail Token',\n      regex: 'glimt-[0-9a-zA-Z_-]{25}',\n    },\n    {\n      name: 'GitLab Agent for Kubernetes Token',\n      regex: 'glagent-[0-9a-zA-Z_-]{50}',\n    },\n    {\n      name: 'GitLab Pipeline Trigger Token',\n      regex: 'glptt-[0-9a-zA-Z_-]{40}',\n    },\n    {\n      name: 'Anthropic key',\n      regex: 'sk-ant-[a-z]{3}\\\\d{2}-[A-Za-z0-9-_]{86}-[A-Za-z0-9-_]{8}',\n    },\n  ];\n};\n\nexport default sensitiveDataPatterns;\n","import { escape } from 'lodash';\nimport { confirmAction } from '~/lib/utils/confirm_via_gl_modal/confirm_via_gl_modal';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport { __, n__, sprintf } from '~/locale';\nimport { InternalEvents } from '~/tracking';\nimport sensitiveDataPatterns from './secret_detection_patterns';\n\nconst CONTENT_TYPE = {\n  COMMENT: 'comment',\n  DESCRIPTION: 'description',\n};\n\nconst defaultContentType = CONTENT_TYPE.COMMENT;\n\nconst documentationHref = helpPagePath('user/application_security/secret_detection/client/index');\n\nexport const SHOW_CLIENT_SIDE_SECRET_DETECTION_WARNING =\n  'show_client_side_secret_detection_warning';\n\nconst i18n = {\n  title: (count) =>\n    n__(\n      'SecretDetection|Warning: Potential secret detected',\n      'SecretDetection|Warning: Potential secrets detected',\n      count,\n    ),\n  promptMessage: (count) =>\n    n__(\n      'SecretDetection|This %{contentType} appears to have the following secret in it. Are you sure you want to add this %{contentType}?',\n      'SecretDetection|This %{contentType} appears to have the following secrets in it. Are you sure you want to add this %{contentType}?',\n      count,\n    ),\n  primaryBtnText: __('Add %{contentType}'),\n  secondaryBtnText: __('Edit %{contentType}'),\n  helpString: __('Why am I seeing this warning?'),\n};\n\nconst redactString = (inputString) => {\n  if (inputString.length <= 9) return inputString;\n\n  const prefix = inputString.substring(0, 5); // Keep the first 5 characters\n  const suffix = inputString.substring(inputString.length - 4); // Keep the last 4 characters\n  const redactLength = Math.min(inputString.length - prefix.length - suffix.length, 22);\n\n  return `${prefix}${'*'.repeat(redactLength)}${suffix}`;\n};\n\nconst formatMessage = (findings, contentType) => {\n  const header = sprintf(i18n.promptMessage(findings.length), { contentType });\n\n  const matchedPatterns = findings.map(({ patternName, matchedString }) => {\n    const redactedString = redactString(matchedString);\n    return `<li>${escape(patternName)}: ${escape(redactedString)}</li>`;\n  });\n\n  const message = `\n    ${header}\n    <p><ul>\n      ${matchedPatterns.join('')}\n    </ul>\n    <a href=\"${documentationHref}\" target=\"_blank\" rel=\"noopener noreferrer\">\n      ${i18n.helpString}\n    </a>\n  `;\n\n  return message;\n};\n\nconst containsSensitiveToken = (message) => {\n  if (!message || typeof message !== 'string') {\n    return null;\n  }\n  const findings = [];\n\n  for (const rule of sensitiveDataPatterns()) {\n    const regex = new RegExp(rule.regex, 'gi');\n    const matches = message.match(regex);\n\n    if (matches) {\n      matches.forEach((match) => {\n        findings.push({\n          patternName: rule.name,\n          matchedString: match,\n        });\n      });\n    }\n  }\n\n  return findings.length > 0 ? findings : false;\n};\n\nconst confirmSensitiveAction = async (findings = [], contentType = defaultContentType) => {\n  const title = i18n.title(findings.length);\n  const modalHtmlMessage = formatMessage(findings, contentType);\n  const primaryBtnText = sprintf(i18n.primaryBtnText, { contentType });\n  const secondaryBtnText = sprintf(i18n.secondaryBtnText, { contentType });\n\n  const confirmed = await confirmAction('', {\n    title,\n    modalHtmlMessage,\n    primaryBtnVariant: 'danger',\n    primaryBtnText,\n    secondaryBtnText,\n    hideCancel: true,\n  });\n  InternalEvents.trackEvent(SHOW_CLIENT_SIDE_SECRET_DETECTION_WARNING, {\n    label: contentType,\n    property: findings[0].patternName,\n    value: confirmed ? 1 : 0,\n  });\n  return confirmed;\n};\n\n/**\n * Determines if the provided content contains sensitive patterns and confirms with the user when found.\n * @param {object} params - Parameters for detection and confirmation.\n * @param {string} params.content - The content to be checked for sensitive patterns.\n * @param {string} params.contentType - Type of content being checked.\n * @returns {Promise<boolean>} A Promise that resolves to:\n *   - true if no sensitive patterns are found.\n *   - true if sensitive patterns are found and the user chooses to proceed with them.\n *   - false if sensitive patterns are found and the user chooses to update the content.\n */\nconst detectAndConfirmSensitiveTokens = ({ content, contentType }) => {\n  const sensitiveTokens = containsSensitiveToken(content);\n  if (!sensitiveTokens) {\n    return Promise.resolve(true);\n  }\n  return confirmSensitiveAction(sensitiveTokens, contentType);\n};\n\nexport { detectAndConfirmSensitiveTokens, CONTENT_TYPE };\n","(function() {\n  var computeScore, countDir, file_coeff, getExtension, getExtensionScore, isMatch, scorePath, scoreSize, tau_depth, _ref;\n\n  _ref = require('./scorer'), isMatch = _ref.isMatch, computeScore = _ref.computeScore, scoreSize = _ref.scoreSize;\n\n  tau_depth = 20;\n\n  file_coeff = 2.5;\n\n  exports.score = function(string, query, options) {\n    var allowErrors, preparedQuery, score, string_lw;\n    preparedQuery = options.preparedQuery, allowErrors = options.allowErrors;\n    if (!(allowErrors || isMatch(string, preparedQuery.core_lw, preparedQuery.core_up))) {\n      return 0;\n    }\n    string_lw = string.toLowerCase();\n    score = computeScore(string, string_lw, preparedQuery);\n    score = scorePath(string, string_lw, score, options);\n    return Math.ceil(score);\n  };\n\n  scorePath = function(subject, subject_lw, fullPathScore, options) {\n    var alpha, basePathScore, basePos, depth, end, extAdjust, fileLength, pathSeparator, preparedQuery, useExtensionBonus;\n    if (fullPathScore === 0) {\n      return 0;\n    }\n    preparedQuery = options.preparedQuery, useExtensionBonus = options.useExtensionBonus, pathSeparator = options.pathSeparator;\n    end = subject.length - 1;\n    while (subject[end] === pathSeparator) {\n      end--;\n    }\n    basePos = subject.lastIndexOf(pathSeparator, end);\n    fileLength = end - basePos;\n    extAdjust = 1.0;\n    if (useExtensionBonus) {\n      extAdjust += getExtensionScore(subject_lw, preparedQuery.ext, basePos, end, 2);\n      fullPathScore *= extAdjust;\n    }\n    if (basePos === -1) {\n      return fullPathScore;\n    }\n    depth = preparedQuery.depth;\n    while (basePos > -1 && depth-- > 0) {\n      basePos = subject.lastIndexOf(pathSeparator, basePos - 1);\n    }\n    basePathScore = basePos === -1 ? fullPathScore : extAdjust * computeScore(subject.slice(basePos + 1, end + 1), subject_lw.slice(basePos + 1, end + 1), preparedQuery);\n    alpha = 0.5 * tau_depth / (tau_depth + countDir(subject, end + 1, pathSeparator));\n    return alpha * basePathScore + (1 - alpha) * fullPathScore * scoreSize(0, file_coeff * fileLength);\n  };\n\n  exports.countDir = countDir = function(path, end, pathSeparator) {\n    var count, i;\n    if (end < 1) {\n      return 0;\n    }\n    count = 0;\n    i = -1;\n    while (++i < end && path[i] === pathSeparator) {\n      continue;\n    }\n    while (++i < end) {\n      if (path[i] === pathSeparator) {\n        count++;\n        while (++i < end && path[i] === pathSeparator) {\n          continue;\n        }\n      }\n    }\n    return count;\n  };\n\n  exports.getExtension = getExtension = function(str) {\n    var pos;\n    pos = str.lastIndexOf(\".\");\n    if (pos < 0) {\n      return \"\";\n    } else {\n      return str.substr(pos + 1);\n    }\n  };\n\n  getExtensionScore = function(candidate, ext, startPos, endPos, maxDepth) {\n    var m, matched, n, pos;\n    if (!ext.length) {\n      return 0;\n    }\n    pos = candidate.lastIndexOf(\".\", endPos);\n    if (!(pos > startPos)) {\n      return 0;\n    }\n    n = ext.length;\n    m = endPos - pos;\n    if (m < n) {\n      n = m;\n      m = ext.length;\n    }\n    pos++;\n    matched = -1;\n    while (++matched < n) {\n      if (candidate[pos + matched] !== ext[matched]) {\n        break;\n      }\n    }\n    if (matched === 0 && maxDepth > 0) {\n      return 0.9 * getExtensionScore(candidate, ext, startPos, pos - 2, maxDepth - 1);\n    }\n    return matched / m;\n  };\n\n}).call(this);\n","(function() {\n  var basenameMatch, computeMatch, isMatch, isWordStart, match, mergeMatches, scoreAcronyms, scoreCharacter, scoreConsecutives, _ref;\n\n  _ref = require('./scorer'), isMatch = _ref.isMatch, isWordStart = _ref.isWordStart, scoreConsecutives = _ref.scoreConsecutives, scoreCharacter = _ref.scoreCharacter, scoreAcronyms = _ref.scoreAcronyms;\n\n  exports.match = match = function(string, query, options) {\n    var allowErrors, baseMatches, matches, pathSeparator, preparedQuery, string_lw;\n    allowErrors = options.allowErrors, preparedQuery = options.preparedQuery, pathSeparator = options.pathSeparator;\n    if (!(allowErrors || isMatch(string, preparedQuery.core_lw, preparedQuery.core_up))) {\n      return [];\n    }\n    string_lw = string.toLowerCase();\n    matches = computeMatch(string, string_lw, preparedQuery);\n    if (matches.length === 0) {\n      return matches;\n    }\n    if (string.indexOf(pathSeparator) > -1) {\n      baseMatches = basenameMatch(string, string_lw, preparedQuery, pathSeparator);\n      matches = mergeMatches(matches, baseMatches);\n    }\n    return matches;\n  };\n\n  exports.wrap = function(string, query, options) {\n    var matchIndex, matchPos, matchPositions, output, strPos, tagClass, tagClose, tagOpen, _ref1;\n    if ((options.wrap != null)) {\n      _ref1 = options.wrap, tagClass = _ref1.tagClass, tagOpen = _ref1.tagOpen, tagClose = _ref1.tagClose;\n    }\n    if (tagClass == null) {\n      tagClass = 'highlight';\n    }\n    if (tagOpen == null) {\n      tagOpen = '<strong class=\"' + tagClass + '\">';\n    }\n    if (tagClose == null) {\n      tagClose = '</strong>';\n    }\n    if (string === query) {\n      return tagOpen + string + tagClose;\n    }\n    matchPositions = match(string, query, options);\n    if (matchPositions.length === 0) {\n      return string;\n    }\n    output = '';\n    matchIndex = -1;\n    strPos = 0;\n    while (++matchIndex < matchPositions.length) {\n      matchPos = matchPositions[matchIndex];\n      if (matchPos > strPos) {\n        output += string.substring(strPos, matchPos);\n        strPos = matchPos;\n      }\n      while (++matchIndex < matchPositions.length) {\n        if (matchPositions[matchIndex] === matchPos + 1) {\n          matchPos++;\n        } else {\n          matchIndex--;\n          break;\n        }\n      }\n      matchPos++;\n      if (matchPos > strPos) {\n        output += tagOpen;\n        output += string.substring(strPos, matchPos);\n        output += tagClose;\n        strPos = matchPos;\n      }\n    }\n    if (strPos <= string.length - 1) {\n      output += string.substring(strPos);\n    }\n    return output;\n  };\n\n  basenameMatch = function(subject, subject_lw, preparedQuery, pathSeparator) {\n    var basePos, depth, end;\n    end = subject.length - 1;\n    while (subject[end] === pathSeparator) {\n      end--;\n    }\n    basePos = subject.lastIndexOf(pathSeparator, end);\n    if (basePos === -1) {\n      return [];\n    }\n    depth = preparedQuery.depth;\n    while (depth-- > 0) {\n      basePos = subject.lastIndexOf(pathSeparator, basePos - 1);\n      if (basePos === -1) {\n        return [];\n      }\n    }\n    basePos++;\n    end++;\n    return computeMatch(subject.slice(basePos, end), subject_lw.slice(basePos, end), preparedQuery, basePos);\n  };\n\n  mergeMatches = function(a, b) {\n    var ai, bj, i, j, m, n, out;\n    m = a.length;\n    n = b.length;\n    if (n === 0) {\n      return a.slice();\n    }\n    if (m === 0) {\n      return b.slice();\n    }\n    i = -1;\n    j = 0;\n    bj = b[j];\n    out = [];\n    while (++i < m) {\n      ai = a[i];\n      while (bj <= ai && ++j < n) {\n        if (bj < ai) {\n          out.push(bj);\n        }\n        bj = b[j];\n      }\n      out.push(ai);\n    }\n    while (j < n) {\n      out.push(b[j++]);\n    }\n    return out;\n  };\n\n  computeMatch = function(subject, subject_lw, preparedQuery, offset) {\n    var DIAGONAL, LEFT, STOP, UP, acro_score, align, backtrack, csc_diag, csc_row, csc_score, i, j, m, matches, move, n, pos, query, query_lw, score, score_diag, score_row, score_up, si_lw, start, trace;\n    if (offset == null) {\n      offset = 0;\n    }\n    query = preparedQuery.query;\n    query_lw = preparedQuery.query_lw;\n    m = subject.length;\n    n = query.length;\n    acro_score = scoreAcronyms(subject, subject_lw, query, query_lw).score;\n    score_row = new Array(n);\n    csc_row = new Array(n);\n    STOP = 0;\n    UP = 1;\n    LEFT = 2;\n    DIAGONAL = 3;\n    trace = new Array(m * n);\n    pos = -1;\n    j = -1;\n    while (++j < n) {\n      score_row[j] = 0;\n      csc_row[j] = 0;\n    }\n    i = -1;\n    while (++i < m) {\n      score = 0;\n      score_up = 0;\n      csc_diag = 0;\n      si_lw = subject_lw[i];\n      j = -1;\n      while (++j < n) {\n        csc_score = 0;\n        align = 0;\n        score_diag = score_up;\n        if (query_lw[j] === si_lw) {\n          start = isWordStart(i, subject, subject_lw);\n          csc_score = csc_diag > 0 ? csc_diag : scoreConsecutives(subject, subject_lw, query, query_lw, i, j, start);\n          align = score_diag + scoreCharacter(i, j, start, acro_score, csc_score);\n        }\n        score_up = score_row[j];\n        csc_diag = csc_row[j];\n        if (score > score_up) {\n          move = LEFT;\n        } else {\n          score = score_up;\n          move = UP;\n        }\n        if (align > score) {\n          score = align;\n          move = DIAGONAL;\n        } else {\n          csc_score = 0;\n        }\n        score_row[j] = score;\n        csc_row[j] = csc_score;\n        trace[++pos] = score > 0 ? move : STOP;\n      }\n    }\n    i = m - 1;\n    j = n - 1;\n    pos = i * n + j;\n    backtrack = true;\n    matches = [];\n    while (backtrack && i >= 0 && j >= 0) {\n      switch (trace[pos]) {\n        case UP:\n          i--;\n          pos -= n;\n          break;\n        case LEFT:\n          j--;\n          pos--;\n          break;\n        case DIAGONAL:\n          matches.push(i + offset);\n          j--;\n          i--;\n          pos -= n + 1;\n          break;\n        default:\n          backtrack = false;\n      }\n    }\n    matches.reverse();\n    return matches;\n  };\n\n}).call(this);\n","(function() {\n  var Query, pathScorer, pluckCandidates, scorer, sortCandidates;\n\n  scorer = require('./scorer');\n\n  pathScorer = require('./pathScorer');\n\n  Query = require('./query');\n\n  pluckCandidates = function(a) {\n    return a.candidate;\n  };\n\n  sortCandidates = function(a, b) {\n    return b.score - a.score;\n  };\n\n  module.exports = function(candidates, query, options) {\n    var bKey, candidate, key, maxInners, maxResults, score, scoreProvider, scoredCandidates, spotLeft, string, usePathScoring, _i, _len;\n    scoredCandidates = [];\n    key = options.key, maxResults = options.maxResults, maxInners = options.maxInners, usePathScoring = options.usePathScoring;\n    spotLeft = (maxInners != null) && maxInners > 0 ? maxInners : candidates.length + 1;\n    bKey = key != null;\n    scoreProvider = usePathScoring ? pathScorer : scorer;\n    for (_i = 0, _len = candidates.length; _i < _len; _i++) {\n      candidate = candidates[_i];\n      string = bKey ? candidate[key] : candidate;\n      if (!string) {\n        continue;\n      }\n      score = scoreProvider.score(string, query, options);\n      if (score > 0) {\n        scoredCandidates.push({\n          candidate: candidate,\n          score: score\n        });\n        if (!--spotLeft) {\n          break;\n        }\n      }\n    }\n    scoredCandidates.sort(sortCandidates);\n    candidates = scoredCandidates.map(pluckCandidates);\n    if (maxResults != null) {\n      candidates = candidates.slice(0, maxResults);\n    }\n    return candidates;\n  };\n\n}).call(this);\n"],"sourceRoot":""}