@absolutejs/absolute 0.19.0-beta.846 → 0.19.0-beta.848

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-0XSiIl/src/core/streamingSlotRegistrar.ts
4
+ // .angular-partial-tmp-hLHonn/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-0XSiIl/src/core/streamingSlotRegistrar.ts
4
+ // .angular-partial-tmp-hLHonn/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-0XSiIl/src/core/streamingSlotRegistry.ts
51
+ // .angular-partial-tmp-hLHonn/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";
@@ -1430,11 +1430,53 @@ ${contents}` : contents, normalizePostcssModule = (mod) => {
1430
1430
  code: await compileStyleSource(path, content, language, config)
1431
1431
  };
1432
1432
  }
1433
- }), compileStyleFileIfNeeded = async (filePath, config) => {
1434
- if (!isPreprocessableStylePath(filePath)) {
1435
- return runPostcss(await readFile(filePath, "utf-8"), filePath, config);
1433
+ }), CSS_IMPORT_PATTERN, resolveCssImportsAsync = async (content, baseDir, visited) => {
1434
+ const matches = Array.from(content.matchAll(CSS_IMPORT_PATTERN));
1435
+ if (matches.length === 0)
1436
+ return content;
1437
+ let cursor = 0;
1438
+ const parts = [];
1439
+ for (const match of matches) {
1440
+ const importPath = match[1];
1441
+ if (importPath === undefined)
1442
+ continue;
1443
+ const start = match.index ?? 0;
1444
+ const end = start + match[0].length;
1445
+ parts.push(content.slice(cursor, start));
1446
+ const fullPath = isAbsolute(importPath) ? importPath : resolve3(baseDir, importPath);
1447
+ if (visited.has(fullPath) || !existsSync3(fullPath)) {
1448
+ parts.push(visited.has(fullPath) ? "" : match[0]);
1449
+ cursor = end;
1450
+ continue;
1451
+ }
1452
+ const nextVisited = new Set(visited);
1453
+ nextVisited.add(fullPath);
1454
+ const imported = await readFile(fullPath, "utf-8");
1455
+ parts.push(await resolveCssImportsAsync(imported, dirname(fullPath), nextVisited));
1456
+ cursor = end;
1436
1457
  }
1437
- return compileStyleSource(filePath, undefined, undefined, config);
1458
+ parts.push(content.slice(cursor));
1459
+ return parts.join("");
1460
+ }, compileStyleFileIfNeeded = async (filePath, config) => {
1461
+ if (!isPreprocessableStylePath(filePath)) {
1462
+ const raw = await readFile(filePath, "utf-8");
1463
+ const processed = await runPostcss(raw, filePath, config);
1464
+ return resolveCssImportsAsync(processed, dirname(filePath), new Set([filePath]));
1465
+ }
1466
+ const compiled = await compileStyleSource(filePath, undefined, undefined, config);
1467
+ return resolveCssImportsAsync(compiled, dirname(filePath), new Set([filePath]));
1468
+ }, resolveCssImportsSync = (content, baseDir, visited) => {
1469
+ return content.replace(CSS_IMPORT_PATTERN, (match, importPath) => {
1470
+ const fullPath = isAbsolute(importPath) ? importPath : resolve3(baseDir, importPath);
1471
+ if (visited.has(fullPath))
1472
+ return "";
1473
+ if (!existsSync3(fullPath))
1474
+ return match;
1475
+ const nextVisited = new Set(visited);
1476
+ nextVisited.add(fullPath);
1477
+ const imported = readFileSync3(fullPath, "utf-8");
1478
+ return resolveCssImportsSync(imported, dirname(fullPath), nextVisited);
1479
+ });
1438
1480
  }, compileStyleFileIfNeededSync = (filePath, config) => {
1439
1481
  const rawContents = readFileSync3(filePath, "utf-8");
1440
1482
  const language = getStyleLanguage(filePath);
@@ -1452,7 +1494,7 @@ ${contents}` : contents, normalizePostcssModule = (mod) => {
1452
1494
  }
1453
1495
  const contents = withAdditionalData(rawContents, options.additionalData);
1454
1496
  const loadPaths = normalizeLoadPaths(filePath, options.loadPaths);
1455
- return sass.compileString(contents, {
1497
+ const compiled = sass.compileString(contents, {
1456
1498
  importers: [
1457
1499
  createSassImporter(filePath, loadPaths, language, config)
1458
1500
  ],
@@ -1461,6 +1503,7 @@ ${contents}` : contents, normalizePostcssModule = (mod) => {
1461
1503
  syntax: language === "sass" ? "indented" : "scss",
1462
1504
  url: new URL(`file://${filePath}`)
1463
1505
  }).css;
1506
+ return resolveCssImportsSync(compiled, dirname(filePath), new Set([filePath]));
1464
1507
  }
1465
1508
  if (language === "less") {
1466
1509
  throw new Error(`Unable to compile ${filePath}: Less styleUrl preprocessing is async-only. Import the Less file from a bundled entrypoint or use SCSS/CSS for Angular styleUrl.`);
@@ -1468,7 +1511,7 @@ ${contents}` : contents, normalizePostcssModule = (mod) => {
1468
1511
  if (language === "stylus") {
1469
1512
  throw new Error(`Unable to compile ${filePath}: Stylus styleUrl preprocessing is async-only. Import the Stylus file from a bundled entrypoint or use SCSS/CSS for Angular styleUrl.`);
1470
1513
  }
1471
- return rawContents;
1514
+ return resolveCssImportsSync(rawContents, dirname(filePath), new Set([filePath]));
1472
1515
  }, getCssOutputExtension = (filePath) => isPreprocessableStylePath(filePath) ? ".css" : extname(filePath);
1473
1516
  var init_stylePreprocessor = __esm(() => {
1474
1517
  CSS_EXTENSION_PATTERN = /\.css$/i;
@@ -1481,6 +1524,7 @@ var init_stylePreprocessor = __esm(() => {
1481
1524
  styleDependencyGraph = new Map;
1482
1525
  styleOutputHashes = new Map;
1483
1526
  stylePreprocessorPlugin = createStylePreprocessorPlugin();
1527
+ CSS_IMPORT_PATTERN = /@import\s+["']([^"']+)["']\s*;?/g;
1484
1528
  });
1485
1529
 
1486
1530
  // src/core/svelteServerModule.ts
@@ -3306,6 +3350,16 @@ var init_lowerDeferSyntax = __esm(() => {
3306
3350
  init_constants();
3307
3351
  });
3308
3352
 
3353
+ // src/utils/generatedDir.ts
3354
+ var exports_generatedDir = {};
3355
+ __export(exports_generatedDir, {
3356
+ getGeneratedRoot: () => getGeneratedRoot,
3357
+ getFrameworkGeneratedDir: () => getFrameworkGeneratedDir
3358
+ });
3359
+ import { join as join5 } from "path";
3360
+ var GENERATED_DIR_NAME = "generated", ABSOLUTE_CACHE_DIR_NAME = ".absolutejs", getGeneratedRoot = (projectRoot = process.cwd()) => join5(projectRoot, ABSOLUTE_CACHE_DIR_NAME, GENERATED_DIR_NAME), getFrameworkGeneratedDir = (framework, projectRoot = process.cwd()) => join5(getGeneratedRoot(projectRoot), framework);
3361
+ var init_generatedDir = () => {};
3362
+
3309
3363
  // src/build/compileAngular.ts
3310
3364
  var exports_compileAngular = {};
3311
3365
  __export(exports_compileAngular, {
@@ -3315,7 +3369,7 @@ __export(exports_compileAngular, {
3315
3369
  compileAngular: () => compileAngular
3316
3370
  });
3317
3371
  import { existsSync as existsSync4, readFileSync as readFileSync4, promises as fs } from "fs";
3318
- import { join as join5, basename as basename3, sep, dirname as dirname3, resolve as resolve5, relative as relative3 } from "path";
3372
+ import { join as join6, basename as basename3, sep, dirname as dirname3, resolve as resolve5, relative as relative3 } from "path";
3319
3373
  import ts from "typescript";
3320
3374
  var traceAngularPhase = async (name, fn, metadata) => {
3321
3375
  const tracePhase = globalThis.__absoluteBuildTracePhase;
@@ -3357,10 +3411,10 @@ var traceAngularPhase = async (name, fn, metadata) => {
3357
3411
  `${candidate}.tsx`,
3358
3412
  `${candidate}.js`,
3359
3413
  `${candidate}.jsx`,
3360
- join5(candidate, "index.ts"),
3361
- join5(candidate, "index.tsx"),
3362
- join5(candidate, "index.js"),
3363
- join5(candidate, "index.jsx")
3414
+ join6(candidate, "index.ts"),
3415
+ join6(candidate, "index.tsx"),
3416
+ join6(candidate, "index.js"),
3417
+ join6(candidate, "index.jsx")
3364
3418
  ];
3365
3419
  return candidates.find((file) => existsSync4(file));
3366
3420
  }, createLegacyAngularAnimationUsageResolver = (rootDir) => {
@@ -3549,10 +3603,10 @@ ${registrations}
3549
3603
  `${basePath}.tsx`,
3550
3604
  `${basePath}.mts`,
3551
3605
  `${basePath}.cts`,
3552
- join5(basePath, "index.ts"),
3553
- join5(basePath, "index.tsx"),
3554
- join5(basePath, "index.mts"),
3555
- join5(basePath, "index.cts")
3606
+ join6(basePath, "index.ts"),
3607
+ join6(basePath, "index.tsx"),
3608
+ join6(basePath, "index.mts"),
3609
+ join6(basePath, "index.cts")
3556
3610
  ];
3557
3611
  return candidates.map((candidate) => resolve5(candidate)).find((candidate) => existsSync4(candidate) && !candidate.endsWith(".d.ts")) ?? null;
3558
3612
  }, readFileForAotTransform = async (fileName, readFile2) => {
@@ -3578,15 +3632,15 @@ ${registrations}
3578
3632
  const paths = [];
3579
3633
  const templateUrlMatch = findUncommentedMatch(source, /templateUrl\s*:\s*['"]([^'"]+)['"]/);
3580
3634
  if (templateUrlMatch?.[1])
3581
- paths.push(join5(fileDir, templateUrlMatch[1]));
3635
+ paths.push(join6(fileDir, templateUrlMatch[1]));
3582
3636
  const styleUrlMatch = findUncommentedMatch(source, /styleUrl\s*:\s*['"]([^'"]+)['"]/);
3583
3637
  if (styleUrlMatch?.[1])
3584
- paths.push(join5(fileDir, styleUrlMatch[1]));
3638
+ paths.push(join6(fileDir, styleUrlMatch[1]));
3585
3639
  const styleUrlsMatch = findUncommentedMatch(source, /styleUrls\s*:\s*\[([^\]]+)\]/);
3586
3640
  const urlMatches = styleUrlsMatch?.[1]?.match(/['"]([^'"]+)['"]/g);
3587
3641
  if (urlMatches) {
3588
3642
  for (const urlMatch of urlMatches) {
3589
- paths.push(join5(fileDir, urlMatch.replace(/['"]/g, "")));
3643
+ paths.push(join6(fileDir, urlMatch.replace(/['"]/g, "")));
3590
3644
  }
3591
3645
  }
3592
3646
  return paths.map((path) => resolve5(path));
@@ -3620,7 +3674,7 @@ ${registrations}
3620
3674
  safeStableStringify(stylePreprocessors ?? null)
3621
3675
  ].join("\x00");
3622
3676
  const cacheKey = Bun.hash(cacheInput).toString(BASE_36_RADIX);
3623
- return join5(process.cwd(), ".absolutejs", "cache", "angular-resources", `${cacheKey}.json`);
3677
+ return join6(process.cwd(), ".absolutejs", "cache", "angular-resources", `${cacheKey}.json`);
3624
3678
  }, precomputeAotResourceTransforms = async (inputPaths, readFile2, stylePreprocessors) => {
3625
3679
  const transformedSources = new Map;
3626
3680
  const visited = new Set;
@@ -3666,7 +3720,7 @@ ${registrations}
3666
3720
  return { stats, transformedSources };
3667
3721
  }, compileAngularFiles = async (inputPaths, outDir, stylePreprocessors) => {
3668
3722
  const islandMetadataByOutputPath = await traceAngularPhase("aot/island-metadata", () => new Map(inputPaths.map((inputPath) => {
3669
- const outputPath = resolve5(join5(outDir, relative3(process.cwd(), resolve5(inputPath)).replace(/\.[cm]?[tj]sx?$/, ".js")));
3723
+ const outputPath = resolve5(join6(outDir, relative3(process.cwd(), resolve5(inputPath)).replace(/\.[cm]?[tj]sx?$/, ".js")));
3670
3724
  return [
3671
3725
  outputPath,
3672
3726
  buildIslandMetadataExports(readFileSync4(inputPath, "utf-8"))
@@ -3713,7 +3767,7 @@ ${registrations}
3713
3767
  const originalGetSourceFile = host.getSourceFile;
3714
3768
  host.getSourceFile = (fileName, languageVersion, onError) => {
3715
3769
  if (fileName.startsWith("lib.") && fileName.endsWith(".d.ts") && tsLibDir) {
3716
- const resolvedPath = join5(tsLibDir, fileName);
3770
+ const resolvedPath = join6(tsLibDir, fileName);
3717
3771
  return originalGetSourceFile?.call(host, resolvedPath, languageVersion, onError);
3718
3772
  }
3719
3773
  return originalGetSourceFile?.call(host, fileName, languageVersion, onError);
@@ -3768,7 +3822,7 @@ ${registrations}
3768
3822
  const entries = await traceAngularPhase("aot/postprocess-emitted-js", () => {
3769
3823
  const rawEntries = Object.entries(emitted).filter(([fileName]) => fileName.endsWith(".js")).map(([fileName, content]) => ({
3770
3824
  content,
3771
- target: join5(outDir, fileName)
3825
+ target: join6(outDir, fileName)
3772
3826
  }));
3773
3827
  const outputFiles = new Set(rawEntries.map(({ target }) => resolve5(target)));
3774
3828
  return rawEntries.map(({ content, target }) => {
@@ -3943,7 +3997,7 @@ ${fields}
3943
3997
  }, inlineTemplateAndLowerDefer = async (source, fileDir) => {
3944
3998
  const templateUrlMatch = findUncommentedMatch(source, /templateUrl\s*:\s*['"]([^'"]+)['"]/);
3945
3999
  if (templateUrlMatch?.[1]) {
3946
- const templatePath = join5(fileDir, templateUrlMatch[1]);
4000
+ const templatePath = join6(fileDir, templateUrlMatch[1]);
3947
4001
  if (!existsSync4(templatePath)) {
3948
4002
  throw new Error(`Unable to inline Angular templateUrl "${templateUrlMatch[1]}": file not found at ${templatePath}`);
3949
4003
  }
@@ -3974,7 +4028,7 @@ ${fields}
3974
4028
  }, inlineTemplateAndLowerDeferSync = (source, fileDir) => {
3975
4029
  const templateUrlMatch = findUncommentedMatch(source, /templateUrl\s*:\s*['"]([^'"]+)['"]/);
3976
4030
  if (templateUrlMatch?.[1]) {
3977
- const templatePath = join5(fileDir, templateUrlMatch[1]);
4031
+ const templatePath = join6(fileDir, templateUrlMatch[1]);
3978
4032
  if (!existsSync4(templatePath)) {
3979
4033
  throw new Error(`Unable to inline Angular templateUrl "${templateUrlMatch[1]}": file not found at ${templatePath}`);
3980
4034
  }
@@ -4011,7 +4065,7 @@ ${fields}
4011
4065
  return source;
4012
4066
  const stylePromises = urlMatches.map((urlMatch) => {
4013
4067
  const styleUrl = urlMatch.replace(/['"]/g, "");
4014
- return readAndEscapeFile(join5(fileDir, styleUrl), stylePreprocessors);
4068
+ return readAndEscapeFile(join6(fileDir, styleUrl), stylePreprocessors);
4015
4069
  });
4016
4070
  const results = await Promise.all(stylePromises);
4017
4071
  const inlinedStyles = results.filter(Boolean).map((escaped) => `\`${escaped}\``);
@@ -4022,7 +4076,7 @@ ${fields}
4022
4076
  const styleUrlMatch = findUncommentedMatch(source, /styleUrl\s*:\s*['"]([^'"]+)['"]/);
4023
4077
  if (!styleUrlMatch?.[1])
4024
4078
  return source;
4025
- const escaped = await readAndEscapeFile(join5(fileDir, styleUrlMatch[1]), stylePreprocessors);
4079
+ const escaped = await readAndEscapeFile(join6(fileDir, styleUrlMatch[1]), stylePreprocessors);
4026
4080
  if (!escaped)
4027
4081
  return source;
4028
4082
  return source.slice(0, styleUrlMatch.index) + `styles: [\`${escaped}\`]` + source.slice(styleUrlMatch.index + styleUrlMatch[0].length);
@@ -4057,10 +4111,10 @@ ${fields}
4057
4111
  `${candidate}.tsx`,
4058
4112
  `${candidate}.js`,
4059
4113
  `${candidate}.jsx`,
4060
- join5(candidate, "index.ts"),
4061
- join5(candidate, "index.tsx"),
4062
- join5(candidate, "index.js"),
4063
- join5(candidate, "index.jsx")
4114
+ join6(candidate, "index.ts"),
4115
+ join6(candidate, "index.tsx"),
4116
+ join6(candidate, "index.js"),
4117
+ join6(candidate, "index.jsx")
4064
4118
  ];
4065
4119
  return candidates.find((file) => existsSync4(file));
4066
4120
  };
@@ -4087,7 +4141,7 @@ ${fields}
4087
4141
  const inputDir = dirname3(sourcePath);
4088
4142
  const relativeDir = inputDir.startsWith(baseDir) ? inputDir.substring(baseDir.length + 1) : inputDir;
4089
4143
  const fileBase = basename3(sourcePath).replace(/\.[cm]?[tj]sx?$/, ".js");
4090
- return join5(outDir, relativeDir, fileBase);
4144
+ return join6(outDir, relativeDir, fileBase);
4091
4145
  };
4092
4146
  const withCacheBuster = (specifier) => {
4093
4147
  if (!cacheBuster)
@@ -4145,7 +4199,7 @@ ${fields}
4145
4199
  const inputDir = dirname3(actualPath);
4146
4200
  const relativeDir = inputDir.startsWith(baseDir) ? inputDir.substring(baseDir.length + 1) : inputDir;
4147
4201
  const fileBase = basename3(actualPath).replace(/\.[cm]?[tj]sx?$/, ".js");
4148
- const targetDir = join5(outDir, relativeDir);
4202
+ const targetDir = join6(outDir, relativeDir);
4149
4203
  const targetPath = toOutputPath(actualPath);
4150
4204
  const localImports = [];
4151
4205
  const importRewrites = new Map;
@@ -4199,13 +4253,13 @@ export const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;
4199
4253
  }
4200
4254
  return allOutputs;
4201
4255
  }, compileAngular = async (entryPoints, outRoot, hmr = false, stylePreprocessors) => {
4202
- const compiledParent = join5(outRoot, "generated");
4256
+ const compiledParent = getFrameworkGeneratedDir("angular");
4203
4257
  if (entryPoints.length === 0) {
4204
4258
  const emptyPaths = [];
4205
4259
  return { clientPaths: [...emptyPaths], serverPaths: [...emptyPaths] };
4206
4260
  }
4207
4261
  const compiledRoot = compiledParent;
4208
- const indexesDir = join5(compiledParent, "indexes");
4262
+ const indexesDir = join6(compiledParent, "indexes");
4209
4263
  await traceAngularPhase("setup/create-indexes-dir", () => fs.mkdir(indexesDir, { recursive: true }));
4210
4264
  const aotOutputs = hmr ? [] : await traceAngularPhase("aot/compile-files", () => compileAngularFiles(entryPoints.map((entry) => resolve5(entry)), compiledRoot, stylePreprocessors), { entries: entryPoints.length });
4211
4265
  const usesLegacyAngularAnimations = await traceAngularPhase("setup/legacy-animation-resolver", () => createLegacyAngularAnimationUsageResolver(outRoot));
@@ -4219,9 +4273,9 @@ export const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;
4219
4273
  const fileBase = basename3(resolvedEntry).replace(/\.[tj]s$/, "");
4220
4274
  const jsName = `${fileBase}.js`;
4221
4275
  const compiledFallbackPaths = [
4222
- join5(compiledRoot, relativeEntry),
4223
- join5(compiledRoot, "pages", jsName),
4224
- join5(compiledRoot, jsName)
4276
+ join6(compiledRoot, relativeEntry),
4277
+ join6(compiledRoot, "pages", jsName),
4278
+ join6(compiledRoot, jsName)
4225
4279
  ].map((file) => resolve5(file));
4226
4280
  const resolveRawServerFile = (candidatePaths) => {
4227
4281
  const normalizedCandidates = [
@@ -4266,7 +4320,7 @@ export const __ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__ = true;
4266
4320
  const usesLegacyAnimations = await traceAngularPhase("wrapper/detect-legacy-animations", () => usesLegacyAngularAnimations(resolvedEntry), { entry: resolvedEntry });
4267
4321
  const serverContentHash = Bun.hash(original).toString(BASE_36_RADIX);
4268
4322
  const cachedWrapper = wrapperOutputCache.get(resolvedEntry);
4269
- const clientFile = join5(indexesDir, jsName);
4323
+ const clientFile = join6(indexesDir, jsName);
4270
4324
  if (hmr && cachedWrapper && cachedWrapper.serverHash === serverContentHash && existsSync4(clientFile) && (usesLegacyAnimations || !original.includes("__ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__")) && (!usesLegacyAnimations || original.includes("__ABSOLUTE_PAGE_USES_LEGACY_ANIMATIONS__"))) {
4271
4325
  return {
4272
4326
  clientPath: clientFile,
@@ -4501,9 +4555,10 @@ var init_compileAngular = __esm(() => {
4501
4555
  init_sourceMetadata();
4502
4556
  init_lowerDeferSyntax();
4503
4557
  init_stylePreprocessor();
4558
+ init_generatedDir();
4504
4559
  devClientDir = resolveDevClientDir();
4505
- hmrClientPath = join5(devClientDir, "hmrClient.ts").replace(/\\/g, "/");
4506
- hmrRuntimePath = join5(devClientDir, "handlers", "angularRuntime.ts").replace(/\\/g, "/");
4560
+ hmrClientPath = join6(devClientDir, "hmrClient.ts").replace(/\\/g, "/");
4561
+ hmrRuntimePath = join6(devClientDir, "handlers", "angularRuntime.ts").replace(/\\/g, "/");
4507
4562
  jitContentCache = new Map;
4508
4563
  wrapperOutputCache = new Map;
4509
4564
  });
@@ -13614,7 +13669,7 @@ init_constants();
13614
13669
  import { AsyncLocalStorage as AsyncLocalStorage3 } from "async_hooks";
13615
13670
  import { mkdir as mkdir2, symlink } from "fs/promises";
13616
13671
  import { tmpdir } from "os";
13617
- import { basename as basename4, dirname as dirname4, join as join6, resolve as resolve6 } from "path";
13672
+ import { basename as basename4, dirname as dirname4, join as join7, resolve as resolve6 } from "path";
13618
13673
  import { pathToFileURL } from "url";
13619
13674
 
13620
13675
  // src/core/islandPageContext.ts
@@ -14434,11 +14489,11 @@ var ensureAngularCompiler = () => {
14434
14489
  return compilerImportPromise;
14435
14490
  };
14436
14491
  var readAngularPageModule = (value) => isRecord5(value) ? value : null;
14437
- var resolveAngularSsrOutDir = () => process.env.ABSOLUTE_ANGULAR_SSR_OUTDIR ?? join6(tmpdir(), "absolutejs", "generated", "angular-ssr");
14492
+ var resolveAngularSsrOutDir = () => process.env.ABSOLUTE_ANGULAR_SSR_OUTDIR ?? join7(tmpdir(), "absolutejs", "generated", "angular-ssr");
14438
14493
  var createAngularRuntimeCacheBuster = () => `${Date.now().toString(BASE_36_RADIX)}.${Math.random().toString(BASE_36_RADIX).substring(2, RANDOM_ID_END_INDEX)}`;
14439
14494
  var ensureAngularSsrNodeModules = async (outDir) => {
14440
14495
  const outRoot = resolve6(dirname4(dirname4(outDir)));
14441
- const nodeModulesLink = join6(outRoot, "node_modules");
14496
+ const nodeModulesLink = join7(outRoot, "node_modules");
14442
14497
  if (process.env.ABSOLUTE_ANGULAR_SSR_OUTDIR) {
14443
14498
  return;
14444
14499
  }
@@ -14990,5 +15045,5 @@ export {
14990
15045
  ABSOLUTE_HTTP_TRANSFER_CACHE_SKIP_HEADER
14991
15046
  };
14992
15047
 
14993
- //# debugId=E5F22015FF64AAA164756E2164756E21
15048
+ //# debugId=BCDBB77EEE4BE49164756E2164756E21
14994
15049
  //# sourceMappingURL=index.js.map