@absolutejs/absolute 0.19.0-beta.1103 → 0.19.0-beta.1105

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
  }
@@ -16602,6 +16619,13 @@ ${fields}
16602
16619
  }
16603
16620
  result += source.slice(lastIndex);
16604
16621
  return result;
16622
+ }, PROVIDERS_INJECTION_BLOCK_RE, readPreservedInjection = async (targetPath) => {
16623
+ try {
16624
+ const existing = await fs5.readFile(targetPath, "utf-8");
16625
+ return PROVIDERS_INJECTION_BLOCK_RE.exec(existing)?.[0] ?? "";
16626
+ } catch {
16627
+ return "";
16628
+ }
16605
16629
  }, compileAngularFileJIT = async (inputPath, outDir, rootDir, stylePreprocessors, cacheBuster) => {
16606
16630
  const entryPath = resolve22(inputPath);
16607
16631
  const allOutputs = [];
@@ -16759,8 +16783,9 @@ ${fields}
16759
16783
  const shouldWriteFile = cacheBuster && isEntry ? true : jitContentCache.get(cacheKey2) !== contentHash || !existsSync23(targetPath);
16760
16784
  if (shouldWriteFile) {
16761
16785
  const processedContent = transpileAndRewrite(sourceCode, relativeDir, actualPath, importRewrites);
16786
+ const preservedInjection = await readPreservedInjection(targetPath);
16762
16787
  await fs5.mkdir(targetDir, { recursive: true });
16763
- await fs5.writeFile(targetPath, processedContent, "utf-8");
16788
+ await fs5.writeFile(targetPath, processedContent + preservedInjection, "utf-8");
16764
16789
  jitContentCache.set(cacheKey2, contentHash);
16765
16790
  }
16766
16791
  allOutputs.push(targetPath);
@@ -17146,6 +17171,7 @@ var init_compileAngular = __esm(() => {
17146
17171
  hmrClientPath5 = join30(devClientDir4, "hmrClient.ts").replace(/\\/g, "/");
17147
17172
  jitContentCache = new Map;
17148
17173
  wrapperOutputCache = new Map;
17174
+ PROVIDERS_INJECTION_BLOCK_RE = /\n\/\* __ABS_PROVIDERS_INJECTION_START \*\/[\s\S]*?\/\* __ABS_PROVIDERS_INJECTION_END \*\/\n?/;
17149
17175
  });
17150
17176
 
17151
17177
  // src/dev/angular/hmrImportGenerator.ts
@@ -29532,5 +29558,5 @@ export {
29532
29558
  build
29533
29559
  };
29534
29560
 
29535
- //# debugId=D5BC49AA2D61155364756E2164756E21
29561
+ //# debugId=193C1DEAEB2BCF1664756E2164756E21
29536
29562
  //# sourceMappingURL=build.js.map