{"version":3,"sources":["../../../../../../../src/build/webpack/loaders/css-loader/src/plugins/postcss-url-parser.ts"],"sourcesContent":["import valueParser from 'next/dist/compiled/postcss-value-parser'\n\nimport {\n  resolveRequests,\n  normalizeUrl,\n  requestify,\n  isUrlRequestable,\n  isDataUrl,\n  // @ts-expect-error TODO: this export doesn't exist? Double check.\n  WEBPACK_IGNORE_COMMENT_REGEXP,\n} from '../utils'\n\nconst isUrlFunc = /url/i\nconst isImageSetFunc = /^(?:-webkit-)?image-set$/i\nconst needParseDeclaration = /(?:url|(?:-webkit-)?image-set)\\(/i\n\nfunction getNodeFromUrlFunc(node: any) {\n  return node.nodes && node.nodes[0]\n}\n\nfunction getWebpackIgnoreCommentValue(index: any, nodes: any, inBetween?: any) {\n  if (index === 0 && typeof inBetween !== 'undefined') {\n    return inBetween\n  }\n\n  let prevValueNode = nodes[index - 1]\n\n  if (!prevValueNode) {\n    // eslint-disable-next-line consistent-return\n    return\n  }\n\n  if (prevValueNode.type === 'space') {\n    if (!nodes[index - 2]) {\n      // eslint-disable-next-line consistent-return\n      return\n    }\n\n    prevValueNode = nodes[index - 2]\n  }\n\n  if (prevValueNode.type !== 'comment') {\n    // eslint-disable-next-line consistent-return\n    return\n  }\n\n  const matched = prevValueNode.value.match(WEBPACK_IGNORE_COMMENT_REGEXP)\n\n  return matched && matched[2] === 'true'\n}\n\nfunction shouldHandleURL(\n  url: any,\n  declaration: any,\n  result: any,\n  isSupportDataURLInNewURL: any\n) {\n  if (url.length === 0) {\n    result.warn(`Unable to find uri in '${declaration.toString()}'`, {\n      node: declaration,\n    })\n\n    return false\n  }\n\n  if (isDataUrl(url) && isSupportDataURLInNewURL) {\n    try {\n      decodeURIComponent(url)\n    } catch (ignoreError) {\n      return false\n    }\n\n    return true\n  }\n\n  if (!isUrlRequestable(url)) {\n    return false\n  }\n\n  return true\n}\n\nfunction parseDeclaration(\n  declaration: any,\n  key: any,\n  result: any,\n  isSupportDataURLInNewURL: any\n) {\n  if (!needParseDeclaration.test(declaration[key])) {\n    return\n  }\n\n  const parsed = valueParser(\n    declaration.raws && declaration.raws.value && declaration.raws.value.raw\n      ? declaration.raws.value.raw\n      : declaration[key]\n  )\n\n  let inBetween: any\n\n  if (declaration.raws && declaration.raws.between) {\n    const lastCommentIndex = declaration.raws.between.lastIndexOf('/*')\n\n    const matched = declaration.raws.between\n      .slice(lastCommentIndex)\n      .match(WEBPACK_IGNORE_COMMENT_REGEXP)\n\n    if (matched) {\n      inBetween = matched[2] === 'true'\n    }\n  }\n\n  let isIgnoreOnDeclaration = false\n\n  const prevNode = declaration.prev()\n\n  if (prevNode && prevNode.type === 'comment') {\n    const matched = prevNode.text.match(WEBPACK_IGNORE_COMMENT_REGEXP)\n\n    if (matched) {\n      isIgnoreOnDeclaration = matched[2] === 'true'\n    }\n  }\n\n  let needIgnore\n\n  const parsedURLs: any[] = []\n\n  parsed.walk((valueNode: any, index: any, valueNodes: any) => {\n    if (valueNode.type !== 'function') {\n      return\n    }\n\n    if (isUrlFunc.test(valueNode.value)) {\n      needIgnore = getWebpackIgnoreCommentValue(index, valueNodes, inBetween)\n\n      if (\n        (isIgnoreOnDeclaration && typeof needIgnore === 'undefined') ||\n        needIgnore\n      ) {\n        if (needIgnore) {\n          // eslint-disable-next-line no-undefined\n          needIgnore = undefined\n        }\n\n        return\n      }\n\n      const { nodes } = valueNode\n      const isStringValue = nodes.length !== 0 && nodes[0].type === 'string'\n      let url = isStringValue ? nodes[0].value : valueParser.stringify(nodes)\n      url = normalizeUrl(url, isStringValue)\n\n      // Do not traverse inside `url`\n      if (\n        !shouldHandleURL(url, declaration, result, isSupportDataURLInNewURL)\n      ) {\n        // eslint-disable-next-line consistent-return\n        return false\n      }\n\n      const queryParts = url.split('!')\n      let prefix\n\n      if (queryParts.length > 1) {\n        url = queryParts.pop()\n        prefix = queryParts.join('!')\n      }\n\n      parsedURLs.push({\n        declaration,\n        parsed,\n        node: getNodeFromUrlFunc(valueNode),\n        prefix,\n        url,\n        needQuotes: false,\n      })\n\n      // eslint-disable-next-line consistent-return\n      return false\n    } else if (isImageSetFunc.test(valueNode.value)) {\n      for (const [innerIndex, nNode] of valueNode.nodes.entries()) {\n        const { type, value } = nNode\n\n        if (type === 'function' && isUrlFunc.test(value)) {\n          needIgnore = getWebpackIgnoreCommentValue(innerIndex, valueNode.nodes)\n\n          if (\n            (isIgnoreOnDeclaration && typeof needIgnore === 'undefined') ||\n            needIgnore\n          ) {\n            if (needIgnore) {\n              // eslint-disable-next-line no-undefined\n              needIgnore = undefined\n            }\n\n            // eslint-disable-next-line no-continue\n            continue\n          }\n\n          const { nodes } = nNode\n          const isStringValue = nodes.length !== 0 && nodes[0].type === 'string'\n          let url = isStringValue\n            ? nodes[0].value\n            : valueParser.stringify(nodes)\n          url = normalizeUrl(url, isStringValue)\n\n          // Do not traverse inside `url`\n          if (\n            !shouldHandleURL(url, declaration, result, isSupportDataURLInNewURL)\n          ) {\n            // eslint-disable-next-line consistent-return\n            return false\n          }\n\n          const queryParts = url.split('!')\n          let prefix\n\n          if (queryParts.length > 1) {\n            url = queryParts.pop()\n            prefix = queryParts.join('!')\n          }\n\n          parsedURLs.push({\n            declaration,\n            parsed,\n            node: getNodeFromUrlFunc(nNode),\n            prefix,\n            url,\n            needQuotes: false,\n          })\n        } else if (type === 'string') {\n          needIgnore = getWebpackIgnoreCommentValue(innerIndex, valueNode.nodes)\n\n          if (\n            (isIgnoreOnDeclaration && typeof needIgnore === 'undefined') ||\n            needIgnore\n          ) {\n            if (needIgnore) {\n              // eslint-disable-next-line no-undefined\n              needIgnore = undefined\n            }\n\n            // eslint-disable-next-line no-continue\n            continue\n          }\n\n          let url = normalizeUrl(value, true)\n\n          // Do not traverse inside `url`\n          if (\n            !shouldHandleURL(url, declaration, result, isSupportDataURLInNewURL)\n          ) {\n            // eslint-disable-next-line consistent-return\n            return false\n          }\n\n          const queryParts = url.split('!')\n          let prefix\n\n          if (queryParts.length > 1) {\n            url = queryParts.pop()!\n            prefix = queryParts.join('!')\n          }\n\n          parsedURLs.push({\n            declaration,\n            parsed,\n            node: nNode,\n            prefix,\n            url,\n            needQuotes: true,\n          })\n        }\n      }\n\n      // Do not traverse inside `image-set`\n      // eslint-disable-next-line consistent-return\n      return false\n    }\n  })\n\n  // eslint-disable-next-line consistent-return\n  return parsedURLs\n}\n\nconst plugin = (options: any = {}) => {\n  return {\n    postcssPlugin: 'postcss-url-parser',\n    prepare(result: any) {\n      const parsedDeclarations: any[] = []\n\n      return {\n        Declaration(declaration: any) {\n          const { isSupportDataURLInNewURL } = options\n          const parsedURL = parseDeclaration(\n            declaration,\n            'value',\n            result,\n            isSupportDataURLInNewURL\n          )\n\n          if (!parsedURL) {\n            return\n          }\n\n          parsedDeclarations.push(...parsedURL)\n        },\n        async OnceExit() {\n          if (parsedDeclarations.length === 0) {\n            return\n          }\n\n          const resolvedDeclarations = await Promise.all(\n            parsedDeclarations.map(async (parsedDeclaration) => {\n              const { url } = parsedDeclaration\n\n              if (options.filter) {\n                const needKeep = await options.filter(url)\n\n                if (!needKeep) {\n                  // eslint-disable-next-line consistent-return\n                  return\n                }\n              }\n\n              if (isDataUrl(url)) {\n                // eslint-disable-next-line consistent-return\n                return parsedDeclaration\n              }\n\n              const [pathname, query, hashOrQuery] = url.split(/(\\?)?#/, 3)\n\n              let hash = query ? '?' : ''\n              hash += hashOrQuery ? `#${hashOrQuery}` : ''\n\n              const { needToResolveURL, rootContext } = options\n              const request = requestify(\n                pathname,\n                rootContext,\n                // @ts-expect-error TODO: only 2 arguments allowed.\n                needToResolveURL\n              )\n\n              if (!needToResolveURL) {\n                // eslint-disable-next-line consistent-return\n                return { ...parsedDeclaration, url: request, hash }\n              }\n\n              const { resolver, context } = options\n              const resolvedUrl = await resolveRequests(resolver, context, [\n                ...new Set([request, url]),\n              ])\n\n              if (!resolvedUrl) {\n                // eslint-disable-next-line consistent-return\n                return\n              }\n\n              // eslint-disable-next-line consistent-return\n              return { ...parsedDeclaration, url: resolvedUrl, hash }\n            })\n          )\n\n          const urlToNameMap = new Map()\n          const urlToReplacementMap = new Map()\n\n          let hasUrlImportHelper = false\n\n          for (\n            let index = 0;\n            index <= resolvedDeclarations.length - 1;\n            index++\n          ) {\n            const item = resolvedDeclarations[index]\n\n            if (!item) {\n              // eslint-disable-next-line no-continue\n              continue\n            }\n\n            if (!hasUrlImportHelper) {\n              options.imports.push({\n                type: 'get_url_import',\n                importName: '___CSS_LOADER_GET_URL_IMPORT___',\n                url: options.urlHandler(\n                  require.resolve('../runtime/getUrl.js')\n                ),\n                index: -1,\n              })\n\n              hasUrlImportHelper = true\n            }\n\n            const { url, prefix } = item\n            const newUrl = prefix ? `${prefix}!${url}` : url\n            let importName = urlToNameMap.get(newUrl)\n\n            if (!importName) {\n              importName = `___CSS_LOADER_URL_IMPORT_${urlToNameMap.size}___`\n              urlToNameMap.set(newUrl, importName)\n\n              options.imports.push({\n                type: 'url',\n                importName,\n                url: options.needToResolveURL\n                  ? options.urlHandler(newUrl)\n                  : JSON.stringify(newUrl),\n                index,\n              })\n            }\n\n            const { hash, needQuotes } = item\n            const replacementKey = JSON.stringify({ newUrl, hash, needQuotes })\n            let replacementName = urlToReplacementMap.get(replacementKey)\n\n            if (!replacementName) {\n              replacementName = `___CSS_LOADER_URL_REPLACEMENT_${urlToReplacementMap.size}___`\n              urlToReplacementMap.set(replacementKey, replacementName)\n\n              options.replacements.push({\n                replacementName,\n                importName,\n                hash,\n                needQuotes,\n              })\n            }\n\n            // eslint-disable-next-line no-param-reassign\n            item.node.type = 'word'\n            // eslint-disable-next-line no-param-reassign\n            item.node.value = replacementName\n            // eslint-disable-next-line no-param-reassign\n            item.declaration.value = item.parsed.toString()\n          }\n        },\n      }\n    },\n  }\n}\n\nplugin.postcss = true\n\nexport default plugin\n"],"names":["isUrlFunc","isImageSetFunc","needParseDeclaration","getNodeFromUrlFunc","node","nodes","getWebpackIgnoreCommentValue","index","inBetween","prevValueNode","type","matched","value","match","WEBPACK_IGNORE_COMMENT_REGEXP","shouldHandleURL","url","declaration","result","isSupportDataURLInNewURL","length","warn","toString","isDataUrl","decodeURIComponent","ignoreError","isUrlRequestable","parseDeclaration","key","test","parsed","valueParser","raws","raw","between","lastCommentIndex","lastIndexOf","slice","isIgnoreOnDeclaration","prevNode","prev","text","needIgnore","parsedURLs","walk","valueNode","valueNodes","undefined","isStringValue","stringify","normalizeUrl","queryParts","split","prefix","pop","join","push","needQuotes","innerIndex","nNode","entries","plugin","options","postcssPlugin","prepare","parsedDeclarations","Declaration","parsedURL","OnceExit","resolvedDeclarations","Promise","all","map","parsedDeclaration","filter","needKeep","pathname","query","hashOrQuery","hash","needToResolveURL","rootContext","request","requestify","resolver","context","resolvedUrl","resolveRequests","Set","urlToNameMap","Map","urlToReplacementMap","hasUrlImportHelper","item","imports","importName","urlHandler","require","resolve","newUrl","get","size","set","JSON","replacementKey","replacementName","replacements","postcss"],"mappings":"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","ignoreList":[0]}