From ab4e8129d5c94ff96e6c85d0d2b66a04a052b4e5 Mon Sep 17 00:00:00 2001
From: HelenHuang <LinHuang@pollex.com.tw>
Date: 星期四, 09 六月 2022 15:26:15 +0800
Subject: [PATCH] TODO#139888 嚴選配對 - 文案修改

---
 PAMapp/node_modules/@babel/core/lib/transformation/file/merge-map.js |  240 ++++-------------------------------------------------------
 1 files changed, 19 insertions(+), 221 deletions(-)

diff --git a/PAMapp/node_modules/@babel/core/lib/transformation/file/merge-map.js b/PAMapp/node_modules/@babel/core/lib/transformation/file/merge-map.js
index 5cc789f..af1da89 100644
--- a/PAMapp/node_modules/@babel/core/lib/transformation/file/merge-map.js
+++ b/PAMapp/node_modules/@babel/core/lib/transformation/file/merge-map.js
@@ -5,241 +5,39 @@
 });
 exports.default = mergeSourceMap;
 
-function _sourceMap() {
-  const data = require("source-map");
+function _remapping() {
+  const data = require("@ampproject/remapping");
 
-  _sourceMap = function () {
+  _remapping = function () {
     return data;
   };
 
   return data;
 }
 
-function mergeSourceMap(inputMap, map) {
-  const input = buildMappingData(inputMap);
-  const output = buildMappingData(map);
-  const mergedGenerator = new (_sourceMap().SourceMapGenerator)();
+function mergeSourceMap(inputMap, map, sourceFileName) {
+  const source = sourceFileName.replace(/\\/g, "/");
+  let found = false;
 
-  for (const {
-    source
-  } of input.sources) {
-    if (typeof source.content === "string") {
-      mergedGenerator.setSourceContent(source.path, source.content);
+  const result = _remapping()(rootless(map), (s, ctx) => {
+    if (s === source && !found) {
+      found = true;
+      ctx.source = "";
+      return rootless(inputMap);
     }
-  }
 
-  if (output.sources.length === 1) {
-    const defaultSource = output.sources[0];
-    const insertedMappings = new Map();
-    eachInputGeneratedRange(input, (generated, original, source) => {
-      eachOverlappingGeneratedOutputRange(defaultSource, generated, item => {
-        const key = makeMappingKey(item);
-        if (insertedMappings.has(key)) return;
-        insertedMappings.set(key, item);
-        mergedGenerator.addMapping({
-          source: source.path,
-          original: {
-            line: original.line,
-            column: original.columnStart
-          },
-          generated: {
-            line: item.line,
-            column: item.columnStart
-          },
-          name: original.name
-        });
-      });
-    });
-
-    for (const item of insertedMappings.values()) {
-      if (item.columnEnd === Infinity) {
-        continue;
-      }
-
-      const clearItem = {
-        line: item.line,
-        columnStart: item.columnEnd
-      };
-      const key = makeMappingKey(clearItem);
-
-      if (insertedMappings.has(key)) {
-        continue;
-      }
-
-      mergedGenerator.addMapping({
-        generated: {
-          line: clearItem.line,
-          column: clearItem.columnStart
-        }
-      });
-    }
-  }
-
-  const result = mergedGenerator.toJSON();
-
-  if (typeof input.sourceRoot === "string") {
-    result.sourceRoot = input.sourceRoot;
-  }
-
-  return result;
-}
-
-function makeMappingKey(item) {
-  return `${item.line}/${item.columnStart}`;
-}
-
-function eachOverlappingGeneratedOutputRange(outputFile, inputGeneratedRange, callback) {
-  const overlappingOriginal = filterApplicableOriginalRanges(outputFile, inputGeneratedRange);
-
-  for (const {
-    generated
-  } of overlappingOriginal) {
-    for (const item of generated) {
-      callback(item);
-    }
-  }
-}
-
-function filterApplicableOriginalRanges({
-  mappings
-}, {
-  line,
-  columnStart,
-  columnEnd
-}) {
-  return filterSortedArray(mappings, ({
-    original: outOriginal
-  }) => {
-    if (line > outOriginal.line) return -1;
-    if (line < outOriginal.line) return 1;
-    if (columnStart >= outOriginal.columnEnd) return -1;
-    if (columnEnd <= outOriginal.columnStart) return 1;
-    return 0;
+    return null;
   });
-}
 
-function eachInputGeneratedRange(map, callback) {
-  for (const {
-    source,
-    mappings
-  } of map.sources) {
-    for (const {
-      original,
-      generated
-    } of mappings) {
-      for (const item of generated) {
-        callback(item, original, source);
-      }
-    }
+  if (typeof inputMap.sourceRoot === "string") {
+    result.sourceRoot = inputMap.sourceRoot;
   }
+
+  return Object.assign({}, result);
 }
 
-function buildMappingData(map) {
-  const consumer = new (_sourceMap().SourceMapConsumer)(Object.assign({}, map, {
+function rootless(map) {
+  return Object.assign({}, map, {
     sourceRoot: null
-  }));
-  const sources = new Map();
-  const mappings = new Map();
-  let last = null;
-  consumer.computeColumnSpans();
-  consumer.eachMapping(m => {
-    if (m.originalLine === null) return;
-    let source = sources.get(m.source);
-
-    if (!source) {
-      source = {
-        path: m.source,
-        content: consumer.sourceContentFor(m.source, true)
-      };
-      sources.set(m.source, source);
-    }
-
-    let sourceData = mappings.get(source);
-
-    if (!sourceData) {
-      sourceData = {
-        source,
-        mappings: []
-      };
-      mappings.set(source, sourceData);
-    }
-
-    const obj = {
-      line: m.originalLine,
-      columnStart: m.originalColumn,
-      columnEnd: Infinity,
-      name: m.name
-    };
-
-    if (last && last.source === source && last.mapping.line === m.originalLine) {
-      last.mapping.columnEnd = m.originalColumn;
-    }
-
-    last = {
-      source,
-      mapping: obj
-    };
-    sourceData.mappings.push({
-      original: obj,
-      generated: consumer.allGeneratedPositionsFor({
-        source: m.source,
-        line: m.originalLine,
-        column: m.originalColumn
-      }).map(item => ({
-        line: item.line,
-        columnStart: item.column,
-        columnEnd: item.lastColumn + 1
-      }))
-    });
-  }, null, _sourceMap().SourceMapConsumer.ORIGINAL_ORDER);
-  return {
-    file: map.file,
-    sourceRoot: map.sourceRoot,
-    sources: Array.from(mappings.values())
-  };
-}
-
-function findInsertionLocation(array, callback) {
-  let left = 0;
-  let right = array.length;
-
-  while (left < right) {
-    const mid = Math.floor((left + right) / 2);
-    const item = array[mid];
-    const result = callback(item);
-
-    if (result === 0) {
-      left = mid;
-      break;
-    }
-
-    if (result >= 0) {
-      right = mid;
-    } else {
-      left = mid + 1;
-    }
-  }
-
-  let i = left;
-
-  if (i < array.length) {
-    while (i >= 0 && callback(array[i]) >= 0) {
-      i--;
-    }
-
-    return i + 1;
-  }
-
-  return i;
-}
-
-function filterSortedArray(array, callback) {
-  const start = findInsertionLocation(array, callback);
-  const results = [];
-
-  for (let i = start; i < array.length && callback(array[i]) === 0; i++) {
-    results.push(array[i]);
-  }
-
-  return results;
+  });
 }
\ No newline at end of file

--
Gitblit v1.8.0