@absolutejs/absolute 0.19.0-beta.982 → 0.19.0-beta.984

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.
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  var __require = import.meta.require;
3
3
 
4
- // .angular-partial-tmp-2Ztb8l/src/core/streamingSlotRegistrar.ts
4
+ // .angular-partial-tmp-WLpTnM/src/core/streamingSlotRegistrar.ts
5
5
  var STREAMING_SLOT_REGISTRAR_KEY = Symbol.for("absolutejs.streamingSlotRegistrar");
6
6
  var STREAMING_SLOT_WARNING_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotWarningController");
7
7
  var STREAMING_SLOT_COLLECTION_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotCollectionController");
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  var __require = import.meta.require;
3
3
 
4
- // .angular-partial-tmp-2Ztb8l/src/core/streamingSlotRegistrar.ts
4
+ // .angular-partial-tmp-WLpTnM/src/core/streamingSlotRegistrar.ts
5
5
  var STREAMING_SLOT_REGISTRAR_KEY = Symbol.for("absolutejs.streamingSlotRegistrar");
6
6
  var STREAMING_SLOT_WARNING_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotWarningController");
7
7
  var STREAMING_SLOT_COLLECTION_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotCollectionController");
@@ -48,7 +48,7 @@ var warnMissingStreamingSlotCollector = (primitiveName) => {
48
48
  getWarningController()?.maybeWarn(primitiveName);
49
49
  };
50
50
 
51
- // .angular-partial-tmp-2Ztb8l/src/core/streamingSlotRegistry.ts
51
+ // .angular-partial-tmp-WLpTnM/src/core/streamingSlotRegistry.ts
52
52
  var STREAMING_SLOT_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotAsyncLocalStorage");
53
53
  var isObjectRecord2 = (value) => Boolean(value) && typeof value === "object";
54
54
  var isAsyncLocalStorage = (value) => isObjectRecord2(value) && ("getStore" in value) && typeof value.getStore === "function" && ("run" in value) && typeof value.run === "function";
@@ -468,7 +468,6 @@ var initDominoAdapter = (platformServer) => {
468
468
  return {
469
469
  APP_BASE_HREF: common.APP_BASE_HREF,
470
470
  bootstrapApplication: platformBrowser.bootstrapApplication,
471
- clearResolutionOfComponentResourcesQueue: core.\u{275}clearResolutionOfComponentResourcesQueue,
472
471
  DomSanitizer: platformBrowser.DomSanitizer,
473
472
  ENVIRONMENT_INITIALIZER: core.ENVIRONMENT_INITIALIZER,
474
473
  inject: core.inject,
@@ -556,7 +555,6 @@ var routeContextCache, cacheRouteData = (pagePath, data) => {
556
555
  }
557
556
  return result;
558
557
  }, renderAngularApp = async (deps, PageComponent, providers, document2, url = "/") => {
559
- deps.clearResolutionOfComponentResourcesQueue();
560
558
  const bootstrap = (context) => deps.bootstrapApplication(PageComponent, { providers }, context);
561
559
  return withSuppressedAngularDevLogs(() => deps.renderApplication(bootstrap, {
562
560
  document: document2,
@@ -2962,16 +2960,6 @@ var init_logger = __esm(() => {
2962
2960
  };
2963
2961
  });
2964
2962
 
2965
- // src/utils/generatedDir.ts
2966
- var exports_generatedDir = {};
2967
- __export(exports_generatedDir, {
2968
- getGeneratedRoot: () => getGeneratedRoot,
2969
- getFrameworkGeneratedDir: () => getFrameworkGeneratedDir
2970
- });
2971
- import { join as join6 } from "path";
2972
- var GENERATED_DIR_NAME = "generated", ABSOLUTE_CACHE_DIR_NAME = ".absolutejs", getGeneratedRoot = (projectRoot = process.cwd()) => join6(projectRoot, ABSOLUTE_CACHE_DIR_NAME, GENERATED_DIR_NAME), getFrameworkGeneratedDir = (framework, projectRoot = process.cwd()) => join6(getGeneratedRoot(projectRoot), framework);
2973
- var init_generatedDir = () => {};
2974
-
2975
2963
  // src/islands/sourceMetadata.ts
2976
2964
  var islandFrameworks2, islandHydrationModes2, isIslandFramework2 = (value) => islandFrameworks2.some((framework) => framework === value), isIslandHydrate2 = (value) => islandHydrationModes2.some((hydrate) => hydrate === value), parseIslandTagAttributes = (attributeString) => {
2977
2965
  const frameworkMatch = attributeString.match(/\bframework\s*=\s*["']([^"']+)["']/);
@@ -3510,6 +3498,16 @@ var init_lowerDeferSyntax = __esm(() => {
3510
3498
  init_constants();
3511
3499
  });
3512
3500
 
3501
+ // src/utils/generatedDir.ts
3502
+ var exports_generatedDir = {};
3503
+ __export(exports_generatedDir, {
3504
+ getGeneratedRoot: () => getGeneratedRoot,
3505
+ getFrameworkGeneratedDir: () => getFrameworkGeneratedDir
3506
+ });
3507
+ import { join as join6 } from "path";
3508
+ var GENERATED_DIR_NAME = "generated", ABSOLUTE_CACHE_DIR_NAME = ".absolutejs", getGeneratedRoot = (projectRoot = process.cwd()) => join6(projectRoot, ABSOLUTE_CACHE_DIR_NAME, GENERATED_DIR_NAME), getFrameworkGeneratedDir = (framework, projectRoot = process.cwd()) => join6(getGeneratedRoot(projectRoot), framework);
3509
+ var init_generatedDir = () => {};
3510
+
3513
3511
  // src/build/compileAngular.ts
3514
3512
  var exports_compileAngular = {};
3515
3513
  __export(exports_compileAngular, {
@@ -3519,8 +3517,8 @@ __export(exports_compileAngular, {
3519
3517
  compileAngularFile: () => compileAngularFile,
3520
3518
  compileAngular: () => compileAngular
3521
3519
  });
3522
- import { existsSync as existsSync5, readFileSync as readFileSync4, promises as fs } from "fs";
3523
- import { join as join8, basename as basename3, sep, dirname as dirname4, resolve as resolve6, relative as relative4 } from "path";
3520
+ import { existsSync as existsSync4, readFileSync as readFileSync4, promises as fs } from "fs";
3521
+ import { join as join7, basename as basename3, sep, dirname as dirname4, resolve as resolve6, relative as relative4 } from "path";
3524
3522
  var {Glob } = globalThis.Bun;
3525
3523
  import ts from "typescript";
3526
3524
  var traceAngularPhase = async (name, fn, metadata) => {
@@ -3563,12 +3561,12 @@ var traceAngularPhase = async (name, fn, metadata) => {
3563
3561
  `${candidate}.tsx`,
3564
3562
  `${candidate}.js`,
3565
3563
  `${candidate}.jsx`,
3566
- join8(candidate, "index.ts"),
3567
- join8(candidate, "index.tsx"),
3568
- join8(candidate, "index.js"),
3569
- join8(candidate, "index.jsx")
3564
+ join7(candidate, "index.ts"),
3565
+ join7(candidate, "index.tsx"),
3566
+ join7(candidate, "index.js"),
3567
+ join7(candidate, "index.jsx")
3570
3568
  ];
3571
- return candidates.find((file) => existsSync5(file));
3569
+ return candidates.find((file) => existsSync4(file));
3572
3570
  }, createLegacyAngularAnimationUsageResolver = (rootDir) => {
3573
3571
  const baseDir = resolve6(rootDir);
3574
3572
  const tsconfigAliases = readTsconfigPathAliases();
@@ -3602,9 +3600,9 @@ var traceAngularPhase = async (name, fn, metadata) => {
3602
3600
  });
3603
3601
  }
3604
3602
  const resolved = resolve6(actualPath);
3605
- const cached2 = scanCache.get(resolved);
3606
- if (cached2)
3607
- return cached2;
3603
+ const cached = scanCache.get(resolved);
3604
+ if (cached)
3605
+ return cached;
3608
3606
  const promise = (async () => {
3609
3607
  let sourceCode;
3610
3608
  try {
@@ -3649,11 +3647,11 @@ var traceAngularPhase = async (name, fn, metadata) => {
3649
3647
  }, resolveDevClientDir = () => {
3650
3648
  const projectRoot = process.cwd();
3651
3649
  const fromSource = resolve6(import.meta.dir, "../dev/client");
3652
- if (existsSync5(fromSource) && fromSource.startsWith(projectRoot)) {
3650
+ if (existsSync4(fromSource) && fromSource.startsWith(projectRoot)) {
3653
3651
  return fromSource;
3654
3652
  }
3655
3653
  const fromNodeModules = resolve6(projectRoot, "node_modules/@absolutejs/absolute/dist/dev/client");
3656
- if (existsSync5(fromNodeModules))
3654
+ if (existsSync4(fromNodeModules))
3657
3655
  return fromNodeModules;
3658
3656
  return resolve6(import.meta.dir, "./dev/client");
3659
3657
  }, devClientDir, hmrClientPath, formatDiagnosticMessage = (diagnostic) => {
@@ -3699,11 +3697,11 @@ var traceAngularPhase = async (name, fn, metadata) => {
3699
3697
  return `${path}${query}`;
3700
3698
  const importerDir = dirname4(importerOutputPath);
3701
3699
  const fileCandidate = resolve6(importerDir, `${path}.js`);
3702
- if (outputFiles?.has(fileCandidate) || existsSync5(fileCandidate)) {
3700
+ if (outputFiles?.has(fileCandidate) || existsSync4(fileCandidate)) {
3703
3701
  return `${path}.js${query}`;
3704
3702
  }
3705
3703
  const indexCandidate = resolve6(importerDir, path, "index.js");
3706
- if (outputFiles?.has(indexCandidate) || existsSync5(indexCandidate)) {
3704
+ if (outputFiles?.has(indexCandidate) || existsSync4(indexCandidate)) {
3707
3705
  return `${path}/index.js${query}`;
3708
3706
  }
3709
3707
  return `${path}.js${query}`;
@@ -3736,12 +3734,12 @@ var traceAngularPhase = async (name, fn, metadata) => {
3736
3734
  `${basePath}.tsx`,
3737
3735
  `${basePath}.mts`,
3738
3736
  `${basePath}.cts`,
3739
- join8(basePath, "index.ts"),
3740
- join8(basePath, "index.tsx"),
3741
- join8(basePath, "index.mts"),
3742
- join8(basePath, "index.cts")
3737
+ join7(basePath, "index.ts"),
3738
+ join7(basePath, "index.tsx"),
3739
+ join7(basePath, "index.mts"),
3740
+ join7(basePath, "index.cts")
3743
3741
  ];
3744
- return candidates.map((candidate) => resolve6(candidate)).find((candidate) => existsSync5(candidate) && !candidate.endsWith(".d.ts")) ?? null;
3742
+ return candidates.map((candidate) => resolve6(candidate)).find((candidate) => existsSync4(candidate) && !candidate.endsWith(".d.ts")) ?? null;
3745
3743
  }, readFileForAotTransform = async (fileName, readFile2) => {
3746
3744
  const hostSource = readFile2?.(fileName);
3747
3745
  if (typeof hostSource === "string")
@@ -3765,15 +3763,15 @@ var traceAngularPhase = async (name, fn, metadata) => {
3765
3763
  const paths = [];
3766
3764
  const templateUrlMatch = findUncommentedMatch(source, /templateUrl\s*:\s*['"]([^'"]+)['"]/);
3767
3765
  if (templateUrlMatch?.[1])
3768
- paths.push(join8(fileDir, templateUrlMatch[1]));
3766
+ paths.push(join7(fileDir, templateUrlMatch[1]));
3769
3767
  const styleUrlMatch = findUncommentedMatch(source, /styleUrl\s*:\s*['"]([^'"]+)['"]/);
3770
3768
  if (styleUrlMatch?.[1])
3771
- paths.push(join8(fileDir, styleUrlMatch[1]));
3769
+ paths.push(join7(fileDir, styleUrlMatch[1]));
3772
3770
  const styleUrlsMatch = findUncommentedMatch(source, /styleUrls\s*:\s*\[([^\]]+)\]/);
3773
3771
  const urlMatches = styleUrlsMatch?.[1]?.match(/['"]([^'"]+)['"]/g);
3774
3772
  if (urlMatches) {
3775
3773
  for (const urlMatch of urlMatches) {
3776
- paths.push(join8(fileDir, urlMatch.replace(/['"]/g, "")));
3774
+ paths.push(join7(fileDir, urlMatch.replace(/['"]/g, "")));
3777
3775
  }
3778
3776
  }
3779
3777
  return paths.map((path) => resolve6(path));
@@ -3807,7 +3805,7 @@ var traceAngularPhase = async (name, fn, metadata) => {
3807
3805
  safeStableStringify(stylePreprocessors ?? null)
3808
3806
  ].join("\x00");
3809
3807
  const cacheKey = Bun.hash(cacheInput).toString(BASE_36_RADIX);
3810
- return join8(process.cwd(), ".absolutejs", "cache", "angular-resources", `${cacheKey}.json`);
3808
+ return join7(process.cwd(), ".absolutejs", "cache", "angular-resources", `${cacheKey}.json`);
3811
3809
  }, precomputeAotResourceTransforms = async (inputPaths, readFile2, stylePreprocessors) => {
3812
3810
  const transformedSources = new Map;
3813
3811
  const visited = new Set;
@@ -3822,16 +3820,16 @@ var traceAngularPhase = async (name, fn, metadata) => {
3822
3820
  if (visited.has(resolvedPath))
3823
3821
  return;
3824
3822
  visited.add(resolvedPath);
3825
- if (!existsSync5(resolvedPath) || resolvedPath.endsWith(".d.ts"))
3823
+ if (!existsSync4(resolvedPath) || resolvedPath.endsWith(".d.ts"))
3826
3824
  return;
3827
3825
  stats.filesVisited += 1;
3828
3826
  const source = await readFileForAotTransform(resolvedPath, readFile2);
3829
3827
  const cachePath = await resolveResourceTransformCachePath(resolvedPath, source, stylePreprocessors);
3830
- const cached2 = await readResourceCacheFile(cachePath);
3828
+ const cached = await readResourceCacheFile(cachePath);
3831
3829
  let transformedSource;
3832
- if (cached2) {
3830
+ if (cached) {
3833
3831
  stats.cacheHits += 1;
3834
- transformedSource = cached2.source;
3832
+ transformedSource = cached.source;
3835
3833
  } else {
3836
3834
  stats.cacheMisses += 1;
3837
3835
  const transformed = await inlineResources(source, dirname4(resolvedPath), stylePreprocessors);
@@ -3853,7 +3851,7 @@ var traceAngularPhase = async (name, fn, metadata) => {
3853
3851
  return { stats, transformedSources };
3854
3852
  }, compileAngularFiles = async (inputPaths, outDir, stylePreprocessors) => {
3855
3853
  const islandMetadataByOutputPath = await traceAngularPhase("aot/island-metadata", () => new Map(inputPaths.map((inputPath) => {
3856
- const outputPath = resolve6(join8(outDir, relative4(process.cwd(), resolve6(inputPath)).replace(/\.[cm]?[tj]sx?$/, ".js")));
3854
+ const outputPath = resolve6(join7(outDir, relative4(process.cwd(), resolve6(inputPath)).replace(/\.[cm]?[tj]sx?$/, ".js")));
3857
3855
  return [
3858
3856
  outputPath,
3859
3857
  buildIslandMetadataExports(readFileSync4(inputPath, "utf-8"))
@@ -3900,7 +3898,7 @@ var traceAngularPhase = async (name, fn, metadata) => {
3900
3898
  const originalGetSourceFile = host.getSourceFile;
3901
3899
  host.getSourceFile = (fileName, languageVersion, onError) => {
3902
3900
  if (fileName.startsWith("lib.") && fileName.endsWith(".d.ts") && tsLibDir) {
3903
- const resolvedPath = join8(tsLibDir, fileName);
3901
+ const resolvedPath = join7(tsLibDir, fileName);
3904
3902
  return originalGetSourceFile?.call(host, resolvedPath, languageVersion, onError);
3905
3903
  }
3906
3904
  return originalGetSourceFile?.call(host, fileName, languageVersion, onError);
@@ -3955,7 +3953,7 @@ var traceAngularPhase = async (name, fn, metadata) => {
3955
3953
  const entries = await traceAngularPhase("aot/postprocess-emitted-js", () => {
3956
3954
  const rawEntries = Object.entries(emitted).filter(([fileName]) => fileName.endsWith(".js")).map(([fileName, content]) => ({
3957
3955
  content,
3958
- target: join8(outDir, fileName)
3956
+ target: join7(outDir, fileName)
3959
3957
  }));
3960
3958
  const outputFiles = new Set(rawEntries.map(({ target }) => resolve6(target)));
3961
3959
  return rawEntries.map(({ content, target }) => {
@@ -3996,7 +3994,7 @@ var traceAngularPhase = async (name, fn, metadata) => {
3996
3994
  return null;
3997
3995
  }, resolveAngularDeferImportSpecifier = () => {
3998
3996
  const sourceEntry = resolve6(import.meta.dir, "../angular/components/index.ts");
3999
- if (existsSync5(sourceEntry)) {
3997
+ if (existsSync4(sourceEntry)) {
4000
3998
  return sourceEntry.replace(/\\/g, "/");
4001
3999
  }
4002
4000
  return "@absolutejs/absolute/angular/components";
@@ -4124,7 +4122,7 @@ ${slot.resolvedBindings.map((binding) => ` "${binding.key}": this.__absoluteDef
4124
4122
  ${fields}
4125
4123
  `);
4126
4124
  }, readAndEscapeFile = async (filePath, stylePreprocessors) => {
4127
- if (!existsSync5(filePath)) {
4125
+ if (!existsSync4(filePath)) {
4128
4126
  throw new Error(`Unable to inline Angular style resource: file not found at ${filePath}`);
4129
4127
  }
4130
4128
  const content = await compileStyleFileIfNeeded(filePath, stylePreprocessors);
@@ -4132,8 +4130,8 @@ ${fields}
4132
4130
  }, inlineTemplateAndLowerDefer = async (source, fileDir) => {
4133
4131
  const templateUrlMatch = findUncommentedMatch(source, /templateUrl\s*:\s*['"]([^'"]+)['"]/);
4134
4132
  if (templateUrlMatch?.[1]) {
4135
- const templatePath = join8(fileDir, templateUrlMatch[1]);
4136
- if (!existsSync5(templatePath)) {
4133
+ const templatePath = join7(fileDir, templateUrlMatch[1]);
4134
+ if (!existsSync4(templatePath)) {
4137
4135
  throw new Error(`Unable to inline Angular templateUrl "${templateUrlMatch[1]}": file not found at ${templatePath}`);
4138
4136
  }
4139
4137
  const templateRaw2 = await fs.readFile(templatePath, "utf-8");
@@ -4163,8 +4161,8 @@ ${fields}
4163
4161
  }, inlineTemplateAndLowerDeferSync = (source, fileDir) => {
4164
4162
  const templateUrlMatch = findUncommentedMatch(source, /templateUrl\s*:\s*['"]([^'"]+)['"]/);
4165
4163
  if (templateUrlMatch?.[1]) {
4166
- const templatePath = join8(fileDir, templateUrlMatch[1]);
4167
- if (!existsSync5(templatePath)) {
4164
+ const templatePath = join7(fileDir, templateUrlMatch[1]);
4165
+ if (!existsSync4(templatePath)) {
4168
4166
  throw new Error(`Unable to inline Angular templateUrl "${templateUrlMatch[1]}": file not found at ${templatePath}`);
4169
4167
  }
4170
4168
  const templateRaw2 = readFileSync4(templatePath, "utf-8");
@@ -4200,7 +4198,7 @@ ${fields}
4200
4198
  return source;
4201
4199
  const stylePromises = urlMatches.map((urlMatch) => {
4202
4200
  const styleUrl = urlMatch.replace(/['"]/g, "");
4203
- return readAndEscapeFile(join8(fileDir, styleUrl), stylePreprocessors);
4201
+ return readAndEscapeFile(join7(fileDir, styleUrl), stylePreprocessors);
4204
4202
  });
4205
4203
  const results = await Promise.all(stylePromises);
4206
4204
  const inlinedStyles = results.filter(Boolean).map((escaped) => `\`${escaped}\``);
@@ -4211,7 +4209,7 @@ ${fields}
4211
4209
  const styleUrlMatch = findUncommentedMatch(source, /styleUrl\s*:\s*['"]([^'"]+)['"]/);
4212
4210
  if (!styleUrlMatch?.[1])
4213
4211
  return source;
4214
- const escaped = await readAndEscapeFile(join8(fileDir, styleUrlMatch[1]), stylePreprocessors);
4212
+ const escaped = await readAndEscapeFile(join7(fileDir, styleUrlMatch[1]), stylePreprocessors);
4215
4213
  if (!escaped)
4216
4214
  return source;
4217
4215
  return source.slice(0, styleUrlMatch.index) + `styles: [\`${escaped}\`]` + source.slice(styleUrlMatch.index + styleUrlMatch[0].length);
@@ -4247,12 +4245,12 @@ ${fields}
4247
4245
  `${candidate}.js`,
4248
4246
  `${candidate}.jsx`,
4249
4247
  `${candidate}.json`,
4250
- join8(candidate, "index.ts"),
4251
- join8(candidate, "index.tsx"),
4252
- join8(candidate, "index.js"),
4253
- join8(candidate, "index.jsx")
4248
+ join7(candidate, "index.ts"),
4249
+ join7(candidate, "index.tsx"),
4250
+ join7(candidate, "index.js"),
4251
+ join7(candidate, "index.jsx")
4254
4252
  ];
4255
- return candidates.find((file) => existsSync5(file));
4253
+ return candidates.find((file) => existsSync4(file));
4256
4254
  };
4257
4255
  const resolveLocalImport = (specifier, fromDir) => {
4258
4256
  if (specifier.startsWith(".") || specifier.startsWith("/")) {
@@ -4277,10 +4275,10 @@ ${fields}
4277
4275
  const inputDir = dirname4(sourcePath);
4278
4276
  const fileBase = basename3(sourcePath).replace(/\.[cm]?[tj]sx?$/, ".js");
4279
4277
  if (inputDir === outDir || inputDir.startsWith(`${outDir}${sep}`)) {
4280
- return join8(inputDir, fileBase);
4278
+ return join7(inputDir, fileBase);
4281
4279
  }
4282
4280
  const relativeDir = inputDir.startsWith(baseDir) ? inputDir.substring(baseDir.length + 1) : inputDir;
4283
- return join8(outDir, relativeDir, fileBase);
4281
+ return join7(outDir, relativeDir, fileBase);
4284
4282
  };
4285
4283
  const withCacheBuster = (specifier) => {
4286
4284
  if (!cacheBuster)
@@ -4327,11 +4325,11 @@ ${fields}
4327
4325
  if (visited.has(resolved))
4328
4326
  return;
4329
4327
  visited.add(resolved);
4330
- if (resolved.endsWith(".json") && existsSync5(resolved)) {
4328
+ if (resolved.endsWith(".json") && existsSync4(resolved)) {
4331
4329
  const inputDir2 = dirname4(resolved);
4332
4330
  const relativeDir2 = inputDir2.startsWith(baseDir) ? inputDir2.substring(baseDir.length + 1) : inputDir2;
4333
- const targetDir2 = join8(outDir, relativeDir2);
4334
- const targetPath2 = join8(targetDir2, basename3(resolved));
4331
+ const targetDir2 = join7(outDir, relativeDir2);
4332
+ const targetPath2 = join7(targetDir2, basename3(resolved));
4335
4333
  await fs.mkdir(targetDir2, { recursive: true });
4336
4334
  await fs.copyFile(resolved, targetPath2);
4337
4335
  allOutputs.push(targetPath2);
@@ -4340,7 +4338,7 @@ ${fields}
4340
4338
  let actualPath = resolved;
4341
4339
  if (!actualPath.endsWith(".ts"))
4342
4340
  actualPath += ".ts";
4343
- if (!existsSync5(actualPath))
4341
+ if (!existsSync4(actualPath))
4344
4342
  return;
4345
4343
  let sourceCode = await fs.readFile(actualPath, "utf-8");
4346
4344
  const inlined = await inlineResources(sourceCode, dirname4(actualPath), stylePreprocessors);
@@ -4378,7 +4376,7 @@ ${fields}
4378
4376
  const isEntry = resolve6(actualPath) === resolve6(entryPath);
4379
4377
  const contentHash = Bun.hash(sourceCode).toString(BASE_36_RADIX);
4380
4378
  const cacheKey = actualPath;
4381
- const shouldWriteFile = cacheBuster && isEntry ? true : jitContentCache.get(cacheKey) !== contentHash || !existsSync5(targetPath);
4379
+ const shouldWriteFile = cacheBuster && isEntry ? true : jitContentCache.get(cacheKey) !== contentHash || !existsSync4(targetPath);
4382
4380
  if (shouldWriteFile) {
4383
4381
  const processedContent = transpileAndRewrite(sourceCode, relativeDir, actualPath, importRewrites);
4384
4382
  await fs.mkdir(targetDir, { recursive: true });
@@ -4390,7 +4388,7 @@ ${fields}
4390
4388
  };
4391
4389
  await transpileFile(inputPath);
4392
4390
  const entryOutputPath = toOutputPath(entryPath);
4393
- if (existsSync5(entryOutputPath)) {
4391
+ if (existsSync4(entryOutputPath)) {
4394
4392
  const entryOutput = await fs.readFile(entryOutputPath, "utf-8");
4395
4393
  const withoutLegacyFlag = entryOutput.replace(/\nexport const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;\n?/g, `
4396
4394
  `);
@@ -4409,23 +4407,23 @@ export const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;
4409
4407
  return { clientPaths: [...emptyPaths], serverPaths: [...emptyPaths] };
4410
4408
  }
4411
4409
  const compiledRoot = compiledParent;
4412
- const indexesDir = join8(compiledParent, "indexes");
4410
+ const indexesDir = join7(compiledParent, "indexes");
4413
4411
  await traceAngularPhase("setup/create-indexes-dir", () => fs.mkdir(indexesDir, { recursive: true }));
4414
4412
  const aotOutputs = hmr ? [] : await traceAngularPhase("aot/compile-files", () => compileAngularFiles(entryPoints.map((entry) => resolve6(entry)), compiledRoot, stylePreprocessors), { entries: entryPoints.length });
4415
4413
  if (!hmr) {
4416
4414
  await traceAngularPhase("aot/copy-json-resources", async () => {
4417
4415
  const cwd = process.cwd();
4418
4416
  const angularSrcDir = resolve6(outRoot);
4419
- if (!existsSync5(angularSrcDir))
4417
+ if (!existsSync4(angularSrcDir))
4420
4418
  return;
4421
4419
  const jsonGlob = new Glob("**/*.json");
4422
4420
  for (const rel of jsonGlob.scanSync({
4423
4421
  absolute: false,
4424
4422
  cwd: angularSrcDir
4425
4423
  })) {
4426
- const sourcePath = join8(angularSrcDir, rel);
4424
+ const sourcePath = join7(angularSrcDir, rel);
4427
4425
  const cwdRel = relative4(cwd, sourcePath);
4428
- const targetPath = join8(compiledRoot, cwdRel);
4426
+ const targetPath = join7(compiledRoot, cwdRel);
4429
4427
  await fs.mkdir(dirname4(targetPath), { recursive: true });
4430
4428
  await fs.copyFile(sourcePath, targetPath);
4431
4429
  }
@@ -4442,24 +4440,24 @@ export const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;
4442
4440
  const fileBase = basename3(resolvedEntry).replace(/\.[tj]s$/, "");
4443
4441
  const jsName = `${fileBase}.js`;
4444
4442
  const compiledFallbackPaths = [
4445
- join8(compiledRoot, relativeEntry),
4446
- join8(compiledRoot, "pages", jsName),
4447
- join8(compiledRoot, jsName)
4443
+ join7(compiledRoot, relativeEntry),
4444
+ join7(compiledRoot, "pages", jsName),
4445
+ join7(compiledRoot, jsName)
4448
4446
  ].map((file) => resolve6(file));
4449
4447
  const resolveRawServerFile = (candidatePaths) => {
4450
4448
  const normalizedCandidates = [
4451
4449
  ...candidatePaths.map((file) => resolve6(file)),
4452
4450
  ...compiledFallbackPaths
4453
4451
  ];
4454
- let candidate = normalizedCandidates.find((file) => existsSync5(file) && file.endsWith(`${sep}${relativeEntry}`));
4452
+ let candidate = normalizedCandidates.find((file) => existsSync4(file) && file.endsWith(`${sep}${relativeEntry}`));
4455
4453
  if (!candidate) {
4456
- candidate = normalizedCandidates.find((file) => existsSync5(file) && file.endsWith(`${sep}pages${sep}${jsName}`));
4454
+ candidate = normalizedCandidates.find((file) => existsSync4(file) && file.endsWith(`${sep}pages${sep}${jsName}`));
4457
4455
  }
4458
4456
  if (!candidate) {
4459
- candidate = normalizedCandidates.find((file) => existsSync5(file) && file.endsWith(`${sep}${jsName}`));
4457
+ candidate = normalizedCandidates.find((file) => existsSync4(file) && file.endsWith(`${sep}${jsName}`));
4460
4458
  }
4461
4459
  if (!candidate) {
4462
- candidate = normalizedCandidates.find((file) => existsSync5(file));
4460
+ candidate = normalizedCandidates.find((file) => existsSync4(file));
4463
4461
  }
4464
4462
  return candidate;
4465
4463
  };
@@ -4467,11 +4465,11 @@ export const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;
4467
4465
  if (!rawServerFile) {
4468
4466
  rawServerFile = await traceAngularPhase("wrapper/resolve-server-output-fallback", () => resolveRawServerFile([]), { entry: resolvedEntry });
4469
4467
  }
4470
- if (rawServerFile && !existsSync5(rawServerFile)) {
4468
+ if (rawServerFile && !existsSync4(rawServerFile)) {
4471
4469
  outputs = hmr ? await compileEntry() : aotOutputs;
4472
4470
  rawServerFile = await traceAngularPhase("wrapper/resolve-server-output-retry", () => resolveRawServerFile(outputs), { entry: resolvedEntry });
4473
4471
  }
4474
- if (!rawServerFile || !existsSync5(rawServerFile)) {
4472
+ if (!rawServerFile || !existsSync4(rawServerFile)) {
4475
4473
  throw new Error(`Compiled output not found for ${entry}. Looking for: ${jsName}. Available: ${[
4476
4474
  ...outputs,
4477
4475
  ...compiledFallbackPaths
@@ -4492,8 +4490,8 @@ export const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;
4492
4490
  const usesLegacyAnimations = await traceAngularPhase("wrapper/detect-legacy-animations", () => usesLegacyAngularAnimations(resolvedEntry), { entry: resolvedEntry });
4493
4491
  const serverContentHash = Bun.hash(original).toString(BASE_36_RADIX);
4494
4492
  const cachedWrapper = wrapperOutputCache.get(resolvedEntry);
4495
- const clientFile = join8(indexesDir, jsName);
4496
- if (hmr && cachedWrapper && cachedWrapper.serverHash === serverContentHash && existsSync5(clientFile) && (usesLegacyAnimations || !original.includes("__ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__")) && (!usesLegacyAnimations || original.includes("__ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__"))) {
4493
+ const clientFile = join7(indexesDir, jsName);
4494
+ if (hmr && cachedWrapper && cachedWrapper.serverHash === serverContentHash && existsSync4(clientFile) && (usesLegacyAnimations || !original.includes("__ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__")) && (!usesLegacyAnimations || original.includes("__ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__"))) {
4497
4495
  return {
4498
4496
  clientPath: clientFile,
4499
4497
  indexUnchanged: true,
@@ -4523,7 +4521,7 @@ export const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;
4523
4521
  const angularDirAbs = resolve6(outRoot);
4524
4522
  const appSourceAbs = resolve6(providersInjection.appProvidersSource);
4525
4523
  const rel = relative4(angularDirAbs, appSourceAbs).replace(/\\/g, "/");
4526
- return join8(compiledParent, rel).replace(/\.[cm]?[tj]sx?$/, ".js");
4524
+ return join7(compiledParent, rel).replace(/\.[cm]?[tj]sx?$/, ".js");
4527
4525
  })();
4528
4526
  const appProvidersSpec = (() => {
4529
4527
  const rel = relative4(dirname4(rawServerFile), compiledAppProvidersPath).replace(/\\/g, "/");
@@ -4550,7 +4548,6 @@ export const providers = [${fragments.join(", ")}];
4550
4548
  await traceAngularPhase("wrapper/write-server-output", () => fs.writeFile(rawServerFile, rewritten, "utf-8"), { entry: resolvedEntry });
4551
4549
  const relativePath = relative4(indexesDir, rawServerFile).replace(/\\/g, "/");
4552
4550
  const normalizedImportPath = relativePath.startsWith(".") ? relativePath : `./${relativePath}`;
4553
- const generatedProvidersImport = "var generatedProviders = null;";
4554
4551
  const hmrPreamble = hmr ? `window.__HMR_FRAMEWORK__ = "angular";
4555
4552
  import "${hmrClientPath}";
4556
4553
  ` : "";
@@ -4561,8 +4558,6 @@ import { provideClientHydration } from '@angular/platform-browser';
4561
4558
  import { withHttpTransferCacheOptions } from '@angular/platform-browser';
4562
4559
  import { provideZonelessChangeDetection, REQUEST_CONTEXT } from '@angular/core';
4563
4560
  import * as pageModule from '${normalizedImportPath}';
4564
- ${generatedProvidersImport}
4565
-
4566
4561
  var ${componentClassName} = pageModule.default;
4567
4562
  // REQUEST_CONTEXT is hydrated from the SSR-serialized payload so client-side
4568
4563
  // \`inject(REQUEST_CONTEXT)\` (or \`usePageContext<T>()\`) returns the same
@@ -4575,15 +4570,14 @@ var pageHasIslands = Boolean(pageModule.__ABSOLUTE_PAGE_HAS_ISLANDS__) || Boolea
4575
4570
  var pageHasRawStreamingSlots = Boolean(document.querySelector('[data-absolute-raw-slot="true"]'));
4576
4571
  var pageHasStreamingSlots = Boolean(document.querySelector('[data-absolute-slot="true"]'));
4577
4572
  var contextProviders = [{ provide: REQUEST_CONTEXT, useValue: requestContext }];
4578
- // Page-level providers come from the build-generated providers file
4579
- // (emitted by \`runAngularHandlerScan\` based on the page's
4580
- // \`handleAngularPageRequest({...})\` call). Falls back to the legacy
4581
- // \`export const providers\` on the page module for projects that
4582
- // haven't migrated yet.
4583
- var legacyPageProviders = Reflect.get(pageModule, 'providers');
4584
- var pageProviders = Array.isArray(generatedProviders)
4585
- ? generatedProviders
4586
- : (Array.isArray(legacyPageProviders) ? legacyPageProviders : []);
4573
+ // Page-level providers are injected directly into the page module's
4574
+ // server output by \`compileAngular\`'s providers-injection step
4575
+ // (\`...appProviders, provideRouter(routes), { APP_BASE_HREF }\`),
4576
+ // so the page module always exports its own ready-to-use \`providers\`
4577
+ // array. Same module, same \`@angular/core\` instance on both server
4578
+ // and client bundle.
4579
+ var pageProvidersExport = Reflect.get(pageModule, 'providers');
4580
+ var pageProviders = Array.isArray(pageProvidersExport) ? pageProvidersExport : [];
4587
4581
  var absoluteHttpTransferCacheOptions = {
4588
4582
  includePostRequests: false,
4589
4583
  includeRequestsWithAuthHeaders: false,
@@ -4660,8 +4654,6 @@ import { provideClientHydration } from '@angular/platform-browser';
4660
4654
  import { withHttpTransferCacheOptions } from '@angular/platform-browser';
4661
4655
  import { enableProdMode, provideZonelessChangeDetection, REQUEST_CONTEXT } from '@angular/core';
4662
4656
  import * as pageModule from '${normalizedImportPath}';
4663
- ${generatedProvidersImport}
4664
-
4665
4657
  var ${componentClassName} = pageModule.default;
4666
4658
  // REQUEST_CONTEXT is hydrated from the SSR-serialized payload so client-side
4667
4659
  // \`inject(REQUEST_CONTEXT)\` (or \`usePageContext<T>()\`) returns the same
@@ -4674,15 +4666,14 @@ var pageHasIslands = Boolean(pageModule.__ABSOLUTE_PAGE_HAS_ISLANDS__) || Boolea
4674
4666
  var pageHasRawStreamingSlots = Boolean(document.querySelector('[data-absolute-raw-slot="true"]'));
4675
4667
  var pageHasStreamingSlots = Boolean(document.querySelector('[data-absolute-slot="true"]'));
4676
4668
  var contextProviders = [{ provide: REQUEST_CONTEXT, useValue: requestContext }];
4677
- // Page-level providers come from the build-generated providers file
4678
- // (emitted by \`runAngularHandlerScan\` based on the page's
4679
- // \`handleAngularPageRequest({...})\` call). Falls back to the legacy
4680
- // \`export const providers\` on the page module for projects that
4681
- // haven't migrated yet.
4682
- var legacyPageProviders = Reflect.get(pageModule, 'providers');
4683
- var pageProviders = Array.isArray(generatedProviders)
4684
- ? generatedProviders
4685
- : (Array.isArray(legacyPageProviders) ? legacyPageProviders : []);
4669
+ // Page-level providers are injected directly into the page module's
4670
+ // server output by \`compileAngular\`'s providers-injection step
4671
+ // (\`...appProviders, provideRouter(routes), { APP_BASE_HREF }\`),
4672
+ // so the page module always exports its own ready-to-use \`providers\`
4673
+ // array. Same module, same \`@angular/core\` instance on both server
4674
+ // and client bundle.
4675
+ var pageProvidersExport = Reflect.get(pageModule, 'providers');
4676
+ var pageProviders = Array.isArray(pageProvidersExport) ? pageProvidersExport : [];
4686
4677
  var absoluteHttpTransferCacheOptions = {
4687
4678
  includePostRequests: false,
4688
4679
  includeRequestsWithAuthHeaders: false,
@@ -4751,7 +4742,7 @@ var init_compileAngular = __esm(() => {
4751
4742
  init_stylePreprocessor();
4752
4743
  init_generatedDir();
4753
4744
  devClientDir = resolveDevClientDir();
4754
- hmrClientPath = join8(devClientDir, "hmrClient.ts").replace(/\\/g, "/");
4745
+ hmrClientPath = join7(devClientDir, "hmrClient.ts").replace(/\\/g, "/");
4755
4746
  jitContentCache = new Map;
4756
4747
  wrapperOutputCache = new Map;
4757
4748
  });
@@ -13862,7 +13853,7 @@ init_constants();
13862
13853
  import { AsyncLocalStorage as AsyncLocalStorage3 } from "async_hooks";
13863
13854
  import { mkdir as mkdir3, symlink } from "fs/promises";
13864
13855
  import { tmpdir } from "os";
13865
- import { basename as basename4, dirname as dirname5, join as join9, resolve as resolve7 } from "path";
13856
+ import { basename as basename4, dirname as dirname5, join as join8, resolve as resolve7 } from "path";
13866
13857
  import { pathToFileURL as pathToFileURL2 } from "url";
13867
13858
 
13868
13859
  // src/core/islandPageContext.ts
@@ -14699,38 +14690,6 @@ var runWithStreamingSlotWarningScope = (task, metadata) => ensureWarningStorage(
14699
14690
 
14700
14691
  // src/angular/pageHandler.ts
14701
14692
  init_ssrRender();
14702
-
14703
- // src/angular/loadRouteMounts.ts
14704
- init_generatedDir();
14705
- import { existsSync as existsSync4 } from "fs";
14706
- import { join as join7 } from "path";
14707
- var cached = null;
14708
- var loadAngularRouteMounts = async () => {
14709
- if (cached)
14710
- return cached;
14711
- const filePath = join7(getFrameworkGeneratedDir("angular", process.cwd()), "route-mounts.ts");
14712
- if (!existsSync4(filePath)) {
14713
- cached = [];
14714
- return cached;
14715
- }
14716
- try {
14717
- const mod = await import(filePath);
14718
- cached = mod.routeMounts ?? [];
14719
- } catch (error) {
14720
- console.warn("[absolute/angular] failed to load route-mounts:", error);
14721
- cached = [];
14722
- }
14723
- return cached;
14724
- };
14725
- var matchAngularBasePath = (mounts, urlPath) => {
14726
- for (const mount of mounts) {
14727
- if (mount.pattern.test(urlPath))
14728
- return mount.basePath;
14729
- }
14730
- return "/";
14731
- };
14732
-
14733
- // src/angular/pageHandler.ts
14734
14693
  var lastSelector = "angular-page";
14735
14694
  var isRecord5 = (value) => typeof value === "object" && value !== null;
14736
14695
  var isAngularComponent2 = (value) => typeof value === "function";
@@ -14751,11 +14710,11 @@ var ensureAngularCompiler = () => {
14751
14710
  return compilerImportPromise;
14752
14711
  };
14753
14712
  var readAngularPageModule = (value) => isRecord5(value) ? value : null;
14754
- var resolveAngularSsrOutDir = () => process.env.ABSOLUTE_ANGULAR_SSR_OUTDIR ?? join9(tmpdir(), "absolutejs", "generated", "angular-ssr");
14713
+ var resolveAngularSsrOutDir = () => process.env.ABSOLUTE_ANGULAR_SSR_OUTDIR ?? join8(tmpdir(), "absolutejs", "generated", "angular-ssr");
14755
14714
  var createAngularRuntimeCacheBuster = () => `${Date.now().toString(BASE_36_RADIX)}.${Math.random().toString(BASE_36_RADIX).substring(2, RANDOM_ID_END_INDEX)}`;
14756
14715
  var ensureAngularSsrNodeModules = async (outDir) => {
14757
14716
  const outRoot = resolve7(dirname5(dirname5(outDir)));
14758
- const nodeModulesLink = join9(outRoot, "node_modules");
14717
+ const nodeModulesLink = join8(outRoot, "node_modules");
14759
14718
  if (process.env.ABSOLUTE_ANGULAR_SSR_OUTDIR) {
14760
14719
  return;
14761
14720
  }
@@ -14871,18 +14830,8 @@ var handleAngularPageRequest = async (input) => {
14871
14830
  const sanitizer = getSsrSanitizer(deps);
14872
14831
  const pageProvidersExport = Reflect.get(pageModule, "providers");
14873
14832
  const pageProviders = Array.isArray(pageProvidersExport) ? pageProvidersExport : [];
14874
- const routeMounts = await loadAngularRouteMounts();
14875
- const requestUrlPath = input.request ? new URL(input.request.url).pathname : "/";
14876
- const inferredBasePath = matchAngularBasePath(routeMounts, requestUrlPath);
14877
- const inferredBasePathProvider = inferredBasePath === "/" ? [] : [
14878
- {
14879
- provide: deps.APP_BASE_HREF,
14880
- useValue: inferredBasePath
14881
- }
14882
- ];
14883
14833
  const combinedProviders = [
14884
14834
  ...await buildRouterRedirectProviders(deps, responseInit),
14885
- ...inferredBasePathProvider,
14886
14835
  ...pageProviders,
14887
14836
  ...await buildServerAnimationProviders(usesLegacyAnimations)
14888
14837
  ];
@@ -15438,5 +15387,5 @@ export {
15438
15387
  ABSOLUTE_HTTP_TRANSFER_CACHE_SKIP_HEADER
15439
15388
  };
15440
15389
 
15441
- //# debugId=F34843F550663CE764756E2164756E21
15390
+ //# debugId=9C93C7CD63419DAF64756E2164756E21
15442
15391
  //# sourceMappingURL=index.js.map