@absolutejs/absolute 0.19.0-beta.1104 → 0.19.0-beta.1106

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/build.js CHANGED
@@ -2437,7 +2437,7 @@ var init_islandSsr = __esm(() => {
2437
2437
  });
2438
2438
 
2439
2439
  // src/build/maskLiterals.ts
2440
- var SENTINEL, isIdentChar = (c) => /[A-Za-z0-9_$]/.test(c), REGEX_OK_AFTER_CHAR, REGEX_OK_AFTER_WORD, maskLiterals = (src) => {
2440
+ var SENTINEL, RISKY_STRING_CONTENT, isIdentChar = (c) => /[A-Za-z0-9_$]/.test(c), REGEX_OK_AFTER_CHAR, REGEX_OK_AFTER_WORD, maskLiterals = (src) => {
2441
2441
  const n = src.length;
2442
2442
  const pieces = [];
2443
2443
  let out = "";
@@ -2445,7 +2445,6 @@ var SENTINEL, isIdentChar = (c) => /[A-Za-z0-9_$]/.test(c), REGEX_OK_AFTER_CHAR,
2445
2445
  let prevChar = "";
2446
2446
  let prevWord = "";
2447
2447
  let prevWasSpace = false;
2448
- let wordBeforeParen = "";
2449
2448
  const mask = (text) => {
2450
2449
  out += SENTINEL + pieces.length + SENTINEL;
2451
2450
  pieces.push(text);
@@ -2583,14 +2582,14 @@ var SENTINEL, isIdentChar = (c) => /[A-Za-z0-9_$]/.test(c), REGEX_OK_AFTER_CHAR,
2583
2582
  }
2584
2583
  if (c === '"' || c === "'") {
2585
2584
  const end = endOfString(i);
2586
- const isSpecifier = prevWord === "from" || prevWord === "import" || prevChar === "(" && (wordBeforeParen === "import" || wordBeforeParen === "require");
2587
- if (isSpecifier) {
2588
- out += src.slice(i, end);
2585
+ const text = src.slice(i, end);
2586
+ if (RISKY_STRING_CONTENT.test(text)) {
2587
+ mask(text);
2588
+ } else {
2589
+ out += text;
2589
2590
  prevChar = '"';
2590
2591
  prevWord = "";
2591
2592
  prevWasSpace = false;
2592
- } else {
2593
- mask(src.slice(i, end));
2594
2593
  }
2595
2594
  i = end;
2596
2595
  continue;
@@ -2617,8 +2616,6 @@ var SENTINEL, isIdentChar = (c) => /[A-Za-z0-9_$]/.test(c), REGEX_OK_AFTER_CHAR,
2617
2616
  const contiguous = isIdentChar(prevChar) && !prevWasSpace;
2618
2617
  prevWord = contiguous ? prevWord + c : c;
2619
2618
  } else {
2620
- if (c === "(")
2621
- wordBeforeParen = prevWord;
2622
2619
  prevWord = "";
2623
2620
  }
2624
2621
  prevChar = c;
@@ -2630,6 +2627,7 @@ var SENTINEL, isIdentChar = (c) => /[A-Za-z0-9_$]/.test(c), REGEX_OK_AFTER_CHAR,
2630
2627
  };
2631
2628
  var init_maskLiterals = __esm(() => {
2632
2629
  SENTINEL = String.fromCharCode(57344);
2630
+ RISKY_STRING_CONTENT = /\b(?:from|import|require)\s*\(?\s*["'`]/;
2633
2631
  REGEX_OK_AFTER_CHAR = new Set([
2634
2632
  "(",
2635
2633
  ",",
@@ -12070,21 +12068,29 @@ var escapeRegex2 = (str) => str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), rewriter
12070
12068
  const fromRegex = new RegExp(`(from\\s*["'])(${alt})(["'])`, "g");
12071
12069
  const sideEffectRegex = new RegExp(`(import\\s*["'])(${alt})(["']\\s*;?)`, "g");
12072
12070
  const dynamicRegex = new RegExp(`(import\\s*\\(\\s*["'])(${alt})(["']\\s*\\))`, "g");
12071
+ const ph = `${SENTINEL}\\d+${SENTINEL}`;
12072
+ const gap = `(?:\\s|${ph}|/\\*${ph}\\*/|//${ph})*`;
12073
+ const sweepFromRegex = new RegExp(`(\\bfrom${gap}["'])(${alt})(["'])`, "g");
12074
+ const sweepSideEffectRegex = new RegExp(`(\\bimport${gap}["'])(${alt})(["'])`, "g");
12075
+ const sweepDynamicRegex = new RegExp(`(\\b(?:import|require)${gap}\\(${gap}["'])(${alt})(["'])`, "g");
12073
12076
  const rewriter = {
12074
12077
  dynamicRegex,
12075
12078
  fromRegex,
12076
12079
  lookup,
12077
- sideEffectRegex
12080
+ sideEffectRegex,
12081
+ sweepDynamicRegex,
12082
+ sweepFromRegex,
12083
+ sweepSideEffectRegex
12078
12084
  };
12079
12085
  rewriterCache.set(key, rewriter);
12080
12086
  return rewriter;
12087
+ }, makeReplacer = (rewriter) => (_match, prefix, specifier, suffix) => {
12088
+ const webPath = rewriter.lookup.get(specifier);
12089
+ if (!webPath)
12090
+ return _match;
12091
+ return `${prefix}${webPath}${suffix}`;
12081
12092
  }, applyAllReplacements = (content, rewriter) => {
12082
- const replacer = (_match, prefix, specifier, suffix) => {
12083
- const webPath = rewriter.lookup.get(specifier);
12084
- if (!webPath)
12085
- return _match;
12086
- return `${prefix}${webPath}${suffix}`;
12087
- };
12093
+ const replacer = makeReplacer(rewriter);
12088
12094
  rewriter.fromRegex.lastIndex = 0;
12089
12095
  rewriter.sideEffectRegex.lastIndex = 0;
12090
12096
  rewriter.dynamicRegex.lastIndex = 0;
@@ -12093,6 +12099,16 @@ var escapeRegex2 = (str) => str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), rewriter
12093
12099
  result = result.replace(rewriter.sideEffectRegex, replacer);
12094
12100
  result = result.replace(rewriter.dynamicRegex, replacer);
12095
12101
  return result;
12102
+ }, applySweep = (content, rewriter) => {
12103
+ const replacer = makeReplacer(rewriter);
12104
+ rewriter.sweepFromRegex.lastIndex = 0;
12105
+ rewriter.sweepSideEffectRegex.lastIndex = 0;
12106
+ rewriter.sweepDynamicRegex.lastIndex = 0;
12107
+ let result = content;
12108
+ result = result.replace(rewriter.sweepFromRegex, replacer);
12109
+ result = result.replace(rewriter.sweepSideEffectRegex, replacer);
12110
+ result = result.replace(rewriter.sweepDynamicRegex, replacer);
12111
+ return result;
12096
12112
  }, REFRESH_STUBS, patchRefreshGlobals = async (outputPaths) => {
12097
12113
  const jsFiles = outputPaths.filter((path) => path.endsWith(".js"));
12098
12114
  await Promise.all(jsFiles.map(async (filePath) => {
@@ -12113,7 +12129,8 @@ var escapeRegex2 = (str) => str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), rewriter
12113
12129
  const original = await Bun.file(filePath).text();
12114
12130
  const { masked, restore } = maskLiterals(original);
12115
12131
  const native = nativeRewriteImports(masked, replacements);
12116
- const content = restore(native ?? applyAllReplacements(masked, rewriter));
12132
+ const rewritten = native ?? applyAllReplacements(masked, rewriter);
12133
+ const content = restore(applySweep(rewritten, rewriter));
12117
12134
  if (content !== original) {
12118
12135
  await Bun.write(filePath, content);
12119
12136
  }
@@ -29541,5 +29558,5 @@ export {
29541
29558
  build
29542
29559
  };
29543
29560
 
29544
- //# debugId=7C5E67F852AE207064756E2164756E21
29561
+ //# debugId=193C1DEAEB2BCF1664756E2164756E21
29545
29562
  //# sourceMappingURL=build.js.map