@absolutejs/absolute 0.19.0-beta.1124 → 0.19.0-beta.1125

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-wjjANy/src/core/streamingSlotRegistrar.ts
4
+ // .angular-partial-tmp-76rQxw/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-wjjANy/src/core/streamingSlotRegistrar.ts
4
+ // .angular-partial-tmp-76rQxw/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-wjjANy/src/core/streamingSlotRegistry.ts
51
+ // .angular-partial-tmp-76rQxw/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";
@@ -14932,8 +14932,7 @@ var provideDeterministicEnv = (options = {}) => {
14932
14932
  // src/angular/pageHandler.ts
14933
14933
  init_constants();
14934
14934
  import { AsyncLocalStorage as AsyncLocalStorage3 } from "async_hooks";
14935
- import { mkdir as mkdir4, symlink } from "fs/promises";
14936
- import { tmpdir } from "os";
14935
+ import { lstat, mkdir as mkdir4, readlink, symlink } from "fs/promises";
14937
14936
  import { basename as basename5, dirname as dirname6, join as join10, resolve as resolve8 } from "path";
14938
14937
  import { pathToFileURL as pathToFileURL2 } from "url";
14939
14938
 
@@ -15539,27 +15538,48 @@ var ensureAngularCompiler = () => {
15539
15538
  return compilerImportPromise;
15540
15539
  };
15541
15540
  var readAngularPageModule = (value) => isRecord5(value) ? value : null;
15542
- var resolveAngularSsrOutDir = () => process.env.ABSOLUTE_ANGULAR_SSR_OUTDIR ?? join10(tmpdir(), "absolutejs", "generated", "angular-ssr");
15541
+ var resolveAngularSsrOutDir = (projectRoot = process.cwd(), configuredOutDir = process.env.ABSOLUTE_ANGULAR_SSR_OUTDIR) => configuredOutDir ?? join10(projectRoot, ".absolutejs", "runtime", "angular-ssr");
15543
15542
  var createAngularRuntimeCacheBuster = () => `${Date.now().toString(BASE_36_RADIX)}.${Math.random().toString(BASE_36_RADIX).substring(2, RANDOM_ID_END_INDEX)}`;
15544
- var ensureAngularSsrNodeModules = async (outDir) => {
15543
+ var existingNodeModulesLinkMatches = async (nodeModulesLink, expectedTarget) => {
15544
+ try {
15545
+ const stats = await lstat(nodeModulesLink);
15546
+ if (!stats.isSymbolicLink()) {
15547
+ throw new Error(`Refusing non-symlink Angular SSR dependency path: ${nodeModulesLink}`);
15548
+ }
15549
+ const target = resolve8(dirname6(nodeModulesLink), await readlink(nodeModulesLink));
15550
+ if (target !== expectedTarget) {
15551
+ throw new Error(`Refusing Angular SSR dependency link outside this project: ${target}`);
15552
+ }
15553
+ return true;
15554
+ } catch (error) {
15555
+ if (error instanceof Error && "code" in error && error.code === "ENOENT") {
15556
+ return false;
15557
+ }
15558
+ throw error;
15559
+ }
15560
+ };
15561
+ var ensureAngularSsrNodeModules = async (outDir, projectRoot = process.cwd(), hasConfiguredOutDir = Boolean(process.env.ABSOLUTE_ANGULAR_SSR_OUTDIR)) => {
15545
15562
  const outRoot = resolve8(dirname6(dirname6(outDir)));
15546
15563
  const nodeModulesLink = join10(outRoot, "node_modules");
15547
- if (process.env.ABSOLUTE_ANGULAR_SSR_OUTDIR) {
15564
+ if (hasConfiguredOutDir) {
15548
15565
  return;
15549
15566
  }
15550
- if (nodeModulesLink === resolve8(process.cwd(), "node_modules")) {
15567
+ const expectedTarget = resolve8(projectRoot, "node_modules");
15568
+ if (nodeModulesLink === expectedTarget) {
15551
15569
  return;
15552
15570
  }
15553
- if (await Bun.file(nodeModulesLink).exists()) {
15571
+ if (await existingNodeModulesLinkMatches(nodeModulesLink, expectedTarget)) {
15554
15572
  return;
15555
15573
  }
15556
15574
  await mkdir4(outRoot, { recursive: true });
15557
15575
  try {
15558
- await symlink(resolve8(process.cwd(), "node_modules"), nodeModulesLink, "dir");
15576
+ await symlink(expectedTarget, nodeModulesLink, "dir");
15559
15577
  } catch (error) {
15560
- if (!(error instanceof Error) || !("code" in error) || error.code !== "EEXIST") {
15578
+ if (!(error instanceof Error) || !("code" in error))
15561
15579
  throw error;
15562
- }
15580
+ if (error.code !== "EEXIST")
15581
+ throw error;
15582
+ await existingNodeModulesLinkMatches(nodeModulesLink, expectedTarget);
15563
15583
  }
15564
15584
  };
15565
15585
  var resolveRuntimeAngularModulePath = async (pagePath) => {
@@ -16233,5 +16253,5 @@ export {
16233
16253
  ABSOLUTE_HTTP_TRANSFER_CACHE_SKIP_HEADER
16234
16254
  };
16235
16255
 
16236
- //# debugId=69C42B412D420B9964756E2164756E21
16256
+ //# debugId=457113312242978764756E2164756E21
16237
16257
  //# sourceMappingURL=index.js.map