@absolutejs/absolute 0.20.0-beta.170 → 0.20.0-beta.171

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.
Files changed (142) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README.md +33 -4
  3. package/changelog.json +112 -0
  4. package/dist/angular/browser.js +2 -2
  5. package/dist/angular/browser.js.map +3 -3
  6. package/dist/angular/components/constants.js +1 -0
  7. package/dist/angular/components/core/streamingSlotRegistrar.js +2 -2
  8. package/dist/angular/components/core/streamingSlotRegistry.js +3 -3
  9. package/dist/angular/index.js +184 -29
  10. package/dist/angular/index.js.map +15 -14
  11. package/dist/angular/server.js +184 -29
  12. package/dist/angular/server.js.map +15 -14
  13. package/dist/build.js +1241 -853
  14. package/dist/build.js.map +32 -30
  15. package/dist/cli/{add-6a7pjkn9.js → add-ae6mg79m.js} +10 -10
  16. package/dist/cli/{analyze-606fshwa.js → analyze-e57zz9x8.js} +3 -3
  17. package/dist/cli/{androidEmulatorController-68jjdxmx.js → androidEmulatorController-vqc5m2rp.js} +6 -6
  18. package/dist/cli/{androidNativeWatcher-x032x9yr.js → androidNativeWatcher-s03aczxv.js} +6 -6
  19. package/dist/cli/{api-mshjr4ah.js → api-8ppxw487.js} +8 -8
  20. package/dist/cli/{build-g81xqbb9.js → build-fz7qbdn3.js} +3 -3
  21. package/dist/cli/{buildDepVendor-29d8v9cx.js → buildDepVendor-qvsh6dsj.js} +7 -3
  22. package/dist/cli/{compile-9y1w9zpj.js → compile-ndc36zna.js} +10 -7
  23. package/dist/cli/config/server.js +36 -6
  24. package/dist/cli/{db-5b4s1kvx.js → db-qbzjw3en.js} +2 -2
  25. package/dist/cli/{dev-hyeb89hp.js → dev-x49583aj.js} +43 -15
  26. package/dist/cli/{doctor-h55y9hj1.js → doctor-repprx92.js} +42 -12
  27. package/dist/cli/{emulatorDoctor-p3yt7140.js → emulatorDoctor-s1z5tkp7.js} +5 -5
  28. package/dist/cli/{emulatorInstaller-4pm2kx9w.js → emulatorInstaller-pgkdswvq.js} +6 -6
  29. package/dist/cli/{env-snb0597q.js → env-5nz1qm8e.js} +3 -3
  30. package/dist/cli/{expoDevController-0vj8dvkh.js → expoDevController-018anvbm.js} +6 -6
  31. package/dist/cli/{generate-20x1pkf7.js → generate-brvjesd6.js} +8 -8
  32. package/dist/cli/{heapDiff-wqj8vrq8.js → heapDiff-kncvdtn8.js} +3 -3
  33. package/dist/cli/htmx/htmx.min.js +1 -1
  34. package/dist/cli/{htmx-6mz2h7k1.js → htmx-5twhjz7p.js} +7 -7
  35. package/dist/cli/{index-w09fzs9f.js → index-0z5fgb80.js} +1 -1
  36. package/dist/cli/{index-exfkpjja.js → index-125cfzvn.js} +2 -2
  37. package/dist/cli/{index-32ge2w1f.js → index-25e7k849.js} +16 -8
  38. package/dist/cli/{index-ys2rzqhg.js → index-2shf4aya.js} +1 -1
  39. package/dist/cli/{index-74m7kh8c.js → index-3ewt17wm.js} +1 -1
  40. package/dist/cli/{index-zd3cna19.js → index-3sfcmb49.js} +1 -1
  41. package/dist/cli/{index-14fbvz34.js → index-50ag35xg.js} +2 -2
  42. package/dist/cli/{index-h5qx5jpk.js → index-7854xf0m.js} +1 -1
  43. package/dist/cli/{index-3y57kd7x.js → index-8khbn8qr.js} +3 -3
  44. package/dist/cli/{index-xw1byvzp.js → index-9djrap79.js} +1 -1
  45. package/dist/cli/{index-ppphkyps.js → index-a6xx0p9e.js} +1 -1
  46. package/dist/cli/{index-g4ehq6ev.js → index-aemhvvwb.js} +1 -1
  47. package/dist/cli/{index-z6f43b20.js → index-b1wht4q5.js} +1 -1
  48. package/dist/cli/{index-s3xvccq3.js → index-btp4fyf1.js} +2 -2
  49. package/dist/cli/{index-066qhc6n.js → index-cgmp9d02.js} +1 -1
  50. package/dist/cli/{index-3wz3mktm.js → index-gyjxrnnz.js} +1 -1
  51. package/dist/cli/index-jwfambwe.js +13 -0
  52. package/dist/cli/{index-3wm8p7rg.js → index-n6faa3m3.js} +1 -1
  53. package/dist/cli/{index-kye08pjx.js → index-pr1skxen.js} +1 -1
  54. package/dist/cli/{index-t8cf0zj9.js → index-prza6tkp.js} +3 -3
  55. package/dist/cli/{index-qbrzvmh9.js → index-q3snnhyd.js} +1 -1
  56. package/dist/cli/{index-3vmc30gf.js → index-rz56x932.js} +1 -1
  57. package/dist/cli/{index-9sksd8c8.js → index-vh68jb0e.js} +2 -2
  58. package/dist/cli/index.js +32 -32
  59. package/dist/cli/{info-mn125212.js → info-k124sh7g.js} +4 -4
  60. package/dist/cli/{inspect-c7s117j0.js → inspect-n6pcfvfw.js} +5 -5
  61. package/dist/cli/{iosNativeWatcher-0nm6qad5.js → iosNativeWatcher-wdq2fvj1.js} +7 -7
  62. package/dist/cli/{iosSimulatorController-hza2c3rv.js → iosSimulatorController-n97dpa8p.js} +7 -7
  63. package/dist/cli/{islands-dc54e5y1.js → islands-p4vgx7a2.js} +3 -3
  64. package/dist/cli/{logs-ej1add2b.js → logs-shg23fbt.js} +3 -3
  65. package/dist/cli/{ls-b6zz24nt.js → ls-0hfx323m.js} +3 -3
  66. package/dist/cli/{mem-5q7n3ymb.js → mem-16sy1707.js} +5 -5
  67. package/dist/cli/{migrate-6nm4kdf6.js → migrate-k91k050s.js} +2 -2
  68. package/dist/cli/{mobile-ajnnvqtv.js → mobile-nqdkk3gd.js} +13 -13
  69. package/dist/cli/prerender-010z771p.js +10 -0
  70. package/dist/cli/{prettier-phdtvqef.js → prettier-dh5fh786.js} +1 -1
  71. package/dist/cli/{ps-ezmzyscn.js → ps-pk7ncjac.js} +6 -6
  72. package/dist/cli/{psTui-3x3ykjve.js → psTui-50wf0b72.js} +7 -7
  73. package/dist/cli/{remoteMacProtocol-g09myqt5.js → remoteMacProtocol-g10s408w.js} +7 -7
  74. package/dist/cli/{remove-t8x1mrxg.js → remove-abaf0w6k.js} +8 -8
  75. package/dist/cli/{routes-3xj256gx.js → routes-mc3ymp8t.js} +3 -3
  76. package/dist/cli/{start-d6p831ny.js → start-t3cq57wn.js} +5 -5
  77. package/dist/cli/{typecheck-stbt0qt5.js → typecheck-209bemxm.js} +17 -4
  78. package/dist/cli/{workspace-61hh6jq1.js → workspace-7sbyyc59.js} +5 -5
  79. package/dist/client/chunks/islands-s2ta5ajb.js.map +1 -1
  80. package/dist/client/navigation.js +2 -1
  81. package/dist/client/navigation.js.map +3 -3
  82. package/dist/dev/client/domTracker.ts +52 -19
  83. package/dist/dev/client/frameworkDetect.ts +11 -0
  84. package/dist/dev/client/handlers/html.ts +6 -1
  85. package/dist/dev/client/handlers/htmx.ts +6 -1
  86. package/dist/dev/client/hmrClient.ts +10 -0
  87. package/dist/dev/serverBootstrap.js +112 -6
  88. package/dist/index.js +1147 -757
  89. package/dist/index.js.map +32 -30
  90. package/dist/islands/index.js +16 -5
  91. package/dist/islands/index.js.map +6 -6
  92. package/dist/mobile/index.js +2 -2
  93. package/dist/mobile/index.js.map +3 -3
  94. package/dist/react/components/index.js +2 -2
  95. package/dist/react/components/index.js.map +3 -3
  96. package/dist/react/index.js +85 -18
  97. package/dist/react/index.js.map +11 -11
  98. package/dist/react/server.js +71 -15
  99. package/dist/react/server.js.map +8 -8
  100. package/dist/src/angular/baseHref.d.ts +2 -0
  101. package/dist/src/angular/components/constants.d.ts +1 -0
  102. package/dist/src/angular/ssrRender.d.ts +1 -1
  103. package/dist/src/build/compileAngular.d.ts +15 -0
  104. package/dist/src/build/resolveBuildMode.d.ts +6 -0
  105. package/dist/src/build/scanAngularHandlerCalls.d.ts +3 -1
  106. package/dist/src/build/verifyAngularCoreUniqueness.d.ts +3 -1
  107. package/dist/src/cli/htmx/install.d.ts +1 -1
  108. package/dist/src/cli/typeGraphCoherence.d.ts +9 -2
  109. package/dist/src/constants.d.ts +1 -0
  110. package/dist/src/core/appErrorHooks.d.ts +8 -0
  111. package/dist/src/core/islandPageContext.d.ts +5 -1
  112. package/dist/src/core/requestContext.d.ts +5 -0
  113. package/dist/src/core/serverOnlyStaticFiles.d.ts +7 -0
  114. package/dist/src/dev/editorTempFiles.d.ts +3 -0
  115. package/dist/src/dev/hot/analyze.d.ts +1 -1
  116. package/dist/src/dev/hot/runtime.d.ts +20 -0
  117. package/dist/src/dev/importCost/instrument.d.ts +1 -1
  118. package/dist/src/dev/rebuildTrigger.d.ts +1 -0
  119. package/dist/src/utils/cleanStaleOutputs.d.ts +4 -1
  120. package/dist/src/utils/logger.d.ts +3 -2
  121. package/dist/src/utils/resolveConvention.d.ts +1 -0
  122. package/dist/src/utils/ssrErrorPage.d.ts +3 -0
  123. package/dist/svelte/index.js +85 -18
  124. package/dist/svelte/index.js.map +11 -11
  125. package/dist/svelte/router/Route.svelte.d.ts +1 -2
  126. package/dist/svelte/router/Router.svelte +2 -4
  127. package/dist/svelte/server.js +73 -16
  128. package/dist/svelte/server.js.map +9 -9
  129. package/dist/types/globals.d.ts +3 -0
  130. package/dist/types/svelteRouter.ts +3 -12
  131. package/dist/vue/components/Image.js +2 -2
  132. package/dist/vue/components/Image.js.map +3 -3
  133. package/dist/vue/components/index.js +2 -2
  134. package/dist/vue/components/index.js.map +3 -3
  135. package/dist/vue/index.js +158 -91
  136. package/dist/vue/index.js.map +12 -12
  137. package/dist/vue/server.js +144 -88
  138. package/dist/vue/server.js.map +9 -9
  139. package/package.json +1 -1
  140. package/dist/cli/prerender-fqpp0m1j.js +0 -10
  141. /package/dist/cli/{index-vtp20gwf.js → index-2bxfhs32.js} +0 -0
  142. /package/dist/cli/{index-fgz435qn.js → index-t8jmj8w1.js} +0 -0
@@ -6,19 +6,19 @@ import {
6
6
  frameworks,
7
7
  configuredFrameworks,
8
8
  resolveProject
9
- } from "./index-qbrzvmh9.js";
9
+ } from "./index-q3snnhyd.js";
10
10
  import {
11
11
  applyAbsoluteConfigEdit
12
- } from "./index-z6f43b20.js";
12
+ } from "./index-b1wht4q5.js";
13
13
  import"./index-wk0pyxrg.js";
14
- import"./index-fgz435qn.js";
14
+ import"./index-t8jmj8w1.js";
15
15
  import {
16
16
  generatePage
17
- } from "./index-9sksd8c8.js";
18
- import"./index-3wz3mktm.js";
17
+ } from "./index-vh68jb0e.js";
18
+ import"./index-gyjxrnnz.js";
19
19
  import {
20
20
  colors
21
- } from "./index-xw1byvzp.js";
21
+ } from "./index-9djrap79.js";
22
22
  import {
23
23
  installFrameworkDependencies,
24
24
  installPackages
@@ -26,10 +26,10 @@ import {
26
26
  import {
27
27
  readVendoredHtmx,
28
28
  writeHtmx
29
- } from "./index-3wm8p7rg.js";
30
- import"./index-exfkpjja.js";
31
- import"./index-74m7kh8c.js";
32
- import"./index-kye08pjx.js";
29
+ } from "./index-n6faa3m3.js";
30
+ import"./index-125cfzvn.js";
31
+ import"./index-3ewt17wm.js";
32
+ import"./index-pr1skxen.js";
33
33
 
34
34
  // src/cli/scripts/add.ts
35
35
  import { dirname as dirname2, join as join4, relative as relative3 } from "path";
@@ -2,14 +2,14 @@
2
2
  import {
3
3
  loadConfig
4
4
  } from "./index-wk0pyxrg.js";
5
- import"./index-fgz435qn.js";
5
+ import"./index-t8jmj8w1.js";
6
6
  import {
7
7
  colors,
8
8
  padLine
9
- } from "./index-xw1byvzp.js";
9
+ } from "./index-9djrap79.js";
10
10
  import {
11
11
  formatBytes
12
- } from "./index-h5qx5jpk.js";
12
+ } from "./index-7854xf0m.js";
13
13
 
14
14
  // src/cli/scripts/analyze.ts
15
15
  import { existsSync, readFileSync, statSync, writeFileSync } from "fs";
@@ -6,12 +6,12 @@ import {
6
6
  buildAbsoluteAndroidGradleArtifact2,
7
7
  prepareAbsoluteAndroidDevProject2,
8
8
  startAbsoluteAndroidDevSession2
9
- } from "./index-s3xvccq3.js";
10
- import"./index-ppphkyps.js";
11
- import"./index-exfkpjja.js";
12
- import"./index-74m7kh8c.js";
13
- import"./index-kye08pjx.js";
14
- import"./index-fgz435qn.js";
9
+ } from "./index-btp4fyf1.js";
10
+ import"./index-a6xx0p9e.js";
11
+ import"./index-125cfzvn.js";
12
+ import"./index-3ewt17wm.js";
13
+ import"./index-pr1skxen.js";
14
+ import"./index-t8jmj8w1.js";
15
15
  export {
16
16
  buildAbsoluteAndroidGradleArtifact2 as buildAbsoluteAndroidGradleArtifact,
17
17
  fingerprintAbsoluteAndroidNativeProject2 as fingerprintAbsoluteAndroidNativeProject,
@@ -1,12 +1,12 @@
1
1
  // @bun
2
- import"./index-fgz435qn.js";
3
- import"./index-ppphkyps.js";
2
+ import"./index-t8jmj8w1.js";
3
+ import"./index-a6xx0p9e.js";
4
4
  import {
5
5
  fingerprintAbsoluteAndroidNativeProject2
6
- } from "./index-s3xvccq3.js";
7
- import"./index-exfkpjja.js";
8
- import"./index-74m7kh8c.js";
9
- import"./index-kye08pjx.js";
6
+ } from "./index-btp4fyf1.js";
7
+ import"./index-125cfzvn.js";
8
+ import"./index-3ewt17wm.js";
9
+ import"./index-pr1skxen.js";
10
10
 
11
11
  // src/mobile/androidNativeWatcher.ts
12
12
  import { watch } from "fs";
@@ -1,20 +1,20 @@
1
1
  // @bun
2
- import"./index-fgz435qn.js";
2
+ import"./index-t8jmj8w1.js";
3
3
  import"./index-71gchbzt.js";
4
4
  import {
5
5
  colors,
6
6
  padLine
7
- } from "./index-xw1byvzp.js";
7
+ } from "./index-9djrap79.js";
8
8
  import {
9
9
  findServer
10
- } from "./index-3y57kd7x.js";
11
- import"./index-g4ehq6ev.js";
12
- import"./index-h5qx5jpk.js";
10
+ } from "./index-8khbn8qr.js";
11
+ import"./index-aemhvvwb.js";
12
+ import"./index-7854xf0m.js";
13
13
  import {
14
14
  openUrlInBrowser
15
- } from "./index-exfkpjja.js";
16
- import"./index-74m7kh8c.js";
17
- import"./index-kye08pjx.js";
15
+ } from "./index-125cfzvn.js";
16
+ import"./index-3ewt17wm.js";
17
+ import"./index-pr1skxen.js";
18
18
 
19
19
  // src/cli/scripts/api.ts
20
20
  var METHOD_COLOR = {
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import"./index-fgz435qn.js";
2
+ import"./index-t8jmj8w1.js";
3
3
  import {
4
4
  loadConfig
5
5
  } from "./index-wk0pyxrg.js";
@@ -9,10 +9,10 @@ import {
9
9
  } from "./index-qyxd5n9a.js";
10
10
  import {
11
11
  formatTimestamp2
12
- } from "./index-74m7kh8c.js";
12
+ } from "./index-3ewt17wm.js";
13
13
  import {
14
14
  getDurationString
15
- } from "./index-kye08pjx.js";
15
+ } from "./index-pr1skxen.js";
16
16
 
17
17
  // src/cli/scripts/build.ts
18
18
  import { existsSync, readdirSync, readFileSync } from "fs";
@@ -3,11 +3,14 @@ import {
3
3
  isTestSourcePath,
4
4
  isWorkspacePackageSpecifier
5
5
  } from "./index-3ff5ztt3.js";
6
- import"./index-fgz435qn.js";
6
+ import"./index-t8jmj8w1.js";
7
7
  import {
8
8
  devProfileEnabled
9
- } from "./index-ys2rzqhg.js";
10
- import"./index-kye08pjx.js";
9
+ } from "./index-2shf4aya.js";
10
+ import {
11
+ resolveVueFeatureFlags
12
+ } from "./index-jwfambwe.js";
13
+ import"./index-pr1skxen.js";
11
14
 
12
15
  // src/build/buildDepVendor.ts
13
16
  import { isBuiltin } from "module";
@@ -199,6 +202,7 @@ var collectTransitiveImports = async (specs, alreadyVendored, alreadyScanned) =>
199
202
  }
200
203
  return newSpecs;
201
204
  };
205
+ var VUE_FEATURE_FLAGS = resolveVueFeatureFlags(true);
202
206
  var MAX_VENDOR_DISCOVERY_PASSES = 5;
203
207
  var computeDepVendorPaths = async (directories, files = []) => {
204
208
  const scanStartedAt = performance.now();
@@ -29,10 +29,10 @@ import {
29
29
  DEFAULT_WEBSOCKET_IDLE_TIMEOUT_SECONDS,
30
30
  DEFAULT_HTTP_IDLE_TIMEOUT_SECONDS,
31
31
  MAX_HTTP_IDLE_TIMEOUT_SECONDS
32
- } from "./index-fgz435qn.js";
32
+ } from "./index-t8jmj8w1.js";
33
33
  import {
34
34
  prerenderWithServer2
35
- } from "./index-vtp20gwf.js";
35
+ } from "./index-2bxfhs32.js";
36
36
  import {
37
37
  withBuildDirectoryLock
38
38
  } from "./index-420h9hq7.js";
@@ -49,16 +49,19 @@ import {
49
49
  import {
50
50
  sendTelemetryEvent
51
51
  } from "./index-qyxd5n9a.js";
52
+ import {
53
+ resolveProductionServerDefine
54
+ } from "./index-jwfambwe.js";
52
55
  import {
53
56
  findFreePort,
54
57
  killStaleProcesses
55
- } from "./index-exfkpjja.js";
58
+ } from "./index-125cfzvn.js";
56
59
  import {
57
60
  formatTimestamp2
58
- } from "./index-74m7kh8c.js";
61
+ } from "./index-3ewt17wm.js";
59
62
  import {
60
63
  getDurationString
61
- } from "./index-kye08pjx.js";
64
+ } from "./index-pr1skxen.js";
62
65
 
63
66
  // src/cli/scripts/compile.ts
64
67
  var {env } = globalThis.Bun;
@@ -1361,7 +1364,7 @@ export const server = serverModule.server ?? serverModule.app ?? serverModule.de
1361
1364
  export default server;
1362
1365
  `);
1363
1366
  const serverBundle = await Bun.build({
1364
- define: { "process.env.NODE_ENV": '"production"' },
1367
+ define: resolveProductionServerDefine(buildConfig),
1365
1368
  entrypoints: [serverBundleEntry],
1366
1369
  external: resolveServerBundleExternals(buildConfig),
1367
1370
  outdir: resolvedOutdir,
@@ -1456,7 +1459,7 @@ export default server;
1456
1459
  mkdirSync3(dirname3(resolvedOutfile), { recursive: true });
1457
1460
  const result = await Bun.build({
1458
1461
  compile: { outfile: resolvedOutfile },
1459
- define: { "process.env.NODE_ENV": '"production"' },
1462
+ define: resolveProductionServerDefine(buildConfig),
1460
1463
  entrypoints: [entrypointPath],
1461
1464
  plugins: [
1462
1465
  createStubPlugin({
@@ -46364,9 +46364,10 @@ var frameworkColors = {
46364
46364
  svelte: colors2.yellow,
46365
46365
  vue: colors2.green
46366
46366
  };
46367
+ var logTag = () => isDevelopmentRuntime() ? "[hmr]" : "[absolutejs]";
46367
46368
  var logWarn = (message) => {
46368
46369
  const timestamp = `${colors2.dim}${formatTimestamp()}${colors2.reset}`;
46369
- const tag = `${colors2.yellow}[hmr]${colors2.reset}`;
46370
+ const tag = `${colors2.yellow}${logTag()}${colors2.reset}`;
46370
46371
  console.log(`${timestamp} ${tag} ${colors2.yellow}warning ${message}${colors2.reset}`);
46371
46372
  };
46372
46373
 
@@ -46387,8 +46388,27 @@ var warnIfBootstrapMissing = (manifest) => {
46387
46388
  warnedMissingBootstrap = true;
46388
46389
  logWarn("A page contains islands, but the build manifest has no islands bootstrap, so they will render without hydrating. Set `islands.registry` in absolute.config.ts (a default bootstrap is generated from it) or point `islands.bootstrap` at a file that calls startIslands().");
46389
46390
  };
46391
+ var manifestBuildDir;
46392
+ var WINDOWS_ABSOLUTE_PATH = /^[A-Za-z]:[\\/]|^\\\\/;
46393
+ var isServerFilePath = (value) => {
46394
+ if (WINDOWS_ABSOLUTE_PATH.test(value))
46395
+ return true;
46396
+ if (!manifestBuildDir)
46397
+ return false;
46398
+ const root = manifestBuildDir.endsWith("/") ? manifestBuildDir : `${manifestBuildDir}/`;
46399
+ return value.startsWith(root);
46400
+ };
46401
+ var toBrowserManifest = (manifest) => {
46402
+ const browserManifest = {};
46403
+ for (const [key, value] of Object.entries(manifest)) {
46404
+ if (typeof value !== "string" || isServerFilePath(value))
46405
+ continue;
46406
+ browserManifest[key] = value;
46407
+ }
46408
+ return browserManifest;
46409
+ };
46390
46410
  var buildIslandsHeadMarkup = (manifest) => {
46391
- const manifestScript = `<script${nonceAttr()}>window.__ABSOLUTE_MANIFEST__ = ${escapeScriptContent(JSON.stringify(manifest))}</script>`;
46411
+ const manifestScript = `<script${nonceAttr()}>window.__ABSOLUTE_MANIFEST__ = ${escapeScriptContent(JSON.stringify(toBrowserManifest(manifest)))}</script>`;
46392
46412
  const islandStateScript = `<script${nonceAttr()}>window.__ABS_ISLAND_STATE__ = ${escapeScriptContent(JSON.stringify(globalThis.__ABS_ISLAND_STATE__ ?? {}))}</script>`;
46393
46413
  const bootstrapPath = getIslandBootstrapPath(manifest);
46394
46414
  const bootstrapScript = bootstrapPath ? `<script${nonceAttr()} type="module" src="${bootstrapPath}"></script>` : "";
@@ -46608,6 +46628,7 @@ import { AsyncLocalStorage } from "async_hooks";
46608
46628
  import { Elysia as Elysia2 } from "elysia";
46609
46629
 
46610
46630
  // src/utils/ssrErrorPage.ts
46631
+ var GENERIC_ERROR_MESSAGE = "Something went wrong while rendering this page.";
46611
46632
  var errorPageHtml = ({
46612
46633
  framework,
46613
46634
  hint,
@@ -46674,11 +46695,12 @@ var buildErrorPage = (framework, pageName, error) => errorPageHtml({
46674
46695
  ${error ?? "The dev-server terminal has the build output."}`,
46675
46696
  script: reloadOnRebuild()
46676
46697
  });
46698
+ var errorMessage = (error) => error instanceof Error ? error.message : String(error);
46677
46699
  var ssrErrorPage = (framework, error) => errorPageHtml({
46678
46700
  framework,
46679
46701
  hint: "A component threw during server-side rendering. Check the terminal for the full stack trace.",
46680
46702
  kind: "Server Render Error",
46681
- message: error instanceof Error ? error.message : String(error)
46703
+ message: isDevelopmentRuntime() ? errorMessage(error) : GENERIC_ERROR_MESSAGE
46682
46704
  });
46683
46705
 
46684
46706
  // src/core/requestContext.ts
@@ -46701,6 +46723,11 @@ var absoluteRequestContext = new Elysia2({
46701
46723
  name: "absolutejs-request-context"
46702
46724
  }).onRequest(({ request }) => {
46703
46725
  ensureRequestStorage().enterWith({ request });
46726
+ }).onBeforeHandle(({ request, route }) => {
46727
+ const store = getRequestStorage()?.getStore();
46728
+ if (store && store.request === request && typeof route === "string") {
46729
+ store.route = route;
46730
+ }
46704
46731
  }).as("global");
46705
46732
  var getCurrentAbsoluteRequest = () => getRequestStorage()?.getStore()?.request;
46706
46733
  var CSS_KEY_RE = /(?:CSS|Css)$/;
@@ -48106,14 +48133,17 @@ var resolveErrorConventionPath = (framework, pageName) => {
48106
48133
  var resolveNotFoundConventionPath = (framework) => getMap()[framework]?.defaults?.notFound;
48107
48134
  var isDev = () => isDevelopmentRuntime();
48108
48135
  var buildErrorProps = (error) => {
48136
+ const name = error instanceof Error ? error.name : "Error";
48137
+ if (!isDev())
48138
+ return { message: GENERIC_ERROR_MESSAGE, name };
48109
48139
  if (error instanceof Error) {
48110
48140
  return {
48111
48141
  message: error.message,
48112
- name: error.name,
48113
- ...isDev() && error.stack ? { stack: error.stack } : {}
48142
+ name,
48143
+ ...error.stack ? { stack: error.stack } : {}
48114
48144
  };
48115
48145
  }
48116
- return { message: String(error), name: "Error" };
48146
+ return { message: String(error), name };
48117
48147
  };
48118
48148
  var renderReactError = async (conventionPath, errorProps) => {
48119
48149
  const { createElement } = await Promise.resolve().then(() => __toESM(require_react()));
@@ -1,10 +1,10 @@
1
1
  // @bun
2
2
  import {
3
3
  UNFOUND_INDEX
4
- } from "./index-fgz435qn.js";
4
+ } from "./index-t8jmj8w1.js";
5
5
  import {
6
6
  colors
7
- } from "./index-xw1byvzp.js";
7
+ } from "./index-9djrap79.js";
8
8
 
9
9
  // src/cli/scripts/db.ts
10
10
  import { existsSync as existsSync2, mkdirSync, readFileSync as readFileSync2, writeFileSync } from "fs";
@@ -8,7 +8,7 @@ import {
8
8
  SIGINT_EXIT_CODE,
9
9
  SIGTERM_EXIT_CODE,
10
10
  UNFOUND_INDEX
11
- } from "./index-fgz435qn.js";
11
+ } from "./index-t8jmj8w1.js";
12
12
  import {
13
13
  isTestSourcePath,
14
14
  isWorkspacePackageSpecifier,
@@ -17,7 +17,7 @@ import {
17
17
  import {
18
18
  bootTimelineChildEnv,
19
19
  markBoot
20
- } from "./index-ys2rzqhg.js";
20
+ } from "./index-2shf4aya.js";
21
21
  import {
22
22
  resolveDevBunExecutable2
23
23
  } from "./index-psvsmg0x.js";
@@ -69,11 +69,39 @@ import {
69
69
  readDbScripts,
70
70
  startDatabase,
71
71
  stopDatabase
72
- } from "./index-exfkpjja.js";
72
+ } from "./index-125cfzvn.js";
73
73
  import {
74
74
  formatTimestamp2
75
- } from "./index-74m7kh8c.js";
76
- import"./index-kye08pjx.js";
75
+ } from "./index-3ewt17wm.js";
76
+ import"./index-pr1skxen.js";
77
+
78
+ // src/dev/editorTempFiles.ts
79
+ var EDITOR_TEMP_FILE_PATTERNS = [
80
+ /\.tmp$/,
81
+ /\.tmp\./,
82
+ /~$/,
83
+ /^\.#/,
84
+ /^#.*#$/,
85
+ /^sed[A-Za-z0-9]{6,}$/,
86
+ /^\.![0-9]+!/,
87
+ /^4913$/,
88
+ /^\..+\.sw[a-px]$/,
89
+ /\.sw[opx]$/,
90
+ /___jb_(?:tmp|old|bak)___$/,
91
+ /\.crswap$/,
92
+ /\.kate-swp$/,
93
+ /^\.goutputstream-/
94
+ ];
95
+ var basenameOf = (path) => {
96
+ const normalized = path.replace(/\\/g, "/");
97
+ return normalized.slice(normalized.lastIndexOf("/") + 1);
98
+ };
99
+ var isEditorTempFile = (path) => {
100
+ const name = basenameOf(path);
101
+ if (name === "")
102
+ return false;
103
+ return EDITOR_TEMP_FILE_PATTERNS.some((pattern) => pattern.test(name));
104
+ };
77
105
 
78
106
  // src/dev/serverEntryCopies.ts
79
107
  var isAbsoluteServerEntryCopyPath = (path) => /(?:^|[/\\])\.absolutejs-hmr-/.test(path);
@@ -780,7 +808,7 @@ var serializeDependencies = (graph) => {
780
808
  return dependencies;
781
809
  };
782
810
  var computePayload = async (config, vendorSourceDirs) => {
783
- const { computeDepVendorPaths } = await import("./buildDepVendor-29d8v9cx.js");
811
+ const { computeDepVendorPaths } = await import("./buildDepVendor-qvsh6dsj.js");
784
812
  const vendors = computeDepVendorPaths(vendorSourceDirs);
785
813
  const graph = {
786
814
  dependencies: new Map,
@@ -1342,15 +1370,15 @@ var loadAbsoluteMobileDevModules = async () => {
1342
1370
  ] = await Promise.all([
1343
1371
  import("./config-hy5dkexz.js"),
1344
1372
  import("./expoProject-h404n2r8.js"),
1345
- import("./expoDevController-0vj8dvkh.js"),
1373
+ import("./expoDevController-018anvbm.js"),
1346
1374
  import("./nativeAuth-ysv0x5dy.js"),
1347
- import("./androidEmulatorController-68jjdxmx.js"),
1348
- import("./emulatorDoctor-p3yt7140.js"),
1349
- import("./emulatorInstaller-4pm2kx9w.js"),
1350
- import("./androidNativeWatcher-x032x9yr.js"),
1351
- import("./iosSimulatorController-hza2c3rv.js"),
1352
- import("./remoteMacProtocol-g09myqt5.js"),
1353
- import("./iosNativeWatcher-0nm6qad5.js"),
1375
+ import("./androidEmulatorController-vqc5m2rp.js"),
1376
+ import("./emulatorDoctor-s1z5tkp7.js"),
1377
+ import("./emulatorInstaller-pgkdswvq.js"),
1378
+ import("./androidNativeWatcher-s03aczxv.js"),
1379
+ import("./iosSimulatorController-n97dpa8p.js"),
1380
+ import("./remoteMacProtocol-g10s408w.js"),
1381
+ import("./iosNativeWatcher-wdq2fvj1.js"),
1354
1382
  import("./expoNativeWatcher-aakp7xvj.js")
1355
1383
  ]);
1356
1384
  return {
@@ -2665,7 +2693,7 @@ var dev = async (serverEntry, configPath, options = {}) => {
2665
2693
  "generated",
2666
2694
  "indexes"
2667
2695
  ]);
2668
- const isAtomicWriteTemp = (filename) => filename.endsWith(".log") || filename.endsWith(".tmp") || filename.includes(".tmp.") || filename.endsWith("~") || filename.startsWith(".#") || isAbsoluteServerEntryCopyPath(filename) || /^sed[A-Za-z0-9]{6,}$/.test(filename) || filename === "4913";
2696
+ const isAtomicWriteTemp = (filename) => filename.endsWith(".log") || isEditorTempFile(filename) || isAbsoluteServerEntryCopyPath(filename);
2669
2697
  const serverEntryBasename = absServerEntry.slice(absServerEntry.lastIndexOf("/") + 1);
2670
2698
  const configBasename = configPath ? configPath.slice(configPath.lastIndexOf("/") + 1) : "absolute.config.ts";
2671
2699
  const ATOMIC_RECOVERY_WINDOW_MS = 1000;
@@ -1,16 +1,16 @@
1
1
  // @bun
2
2
  import {
3
3
  DEFAULT_PORT
4
- } from "./index-fgz435qn.js";
4
+ } from "./index-t8jmj8w1.js";
5
5
  import {
6
6
  loadRawConfig
7
7
  } from "./index-wk0pyxrg.js";
8
8
  import {
9
9
  colors
10
- } from "./index-xw1byvzp.js";
10
+ } from "./index-9djrap79.js";
11
11
  import {
12
12
  collectEnvVars2
13
- } from "./index-14fbvz34.js";
13
+ } from "./index-50ag35xg.js";
14
14
  import {
15
15
  isRecord
16
16
  } from "./index-tx0kx9zx.js";
@@ -39,7 +39,21 @@ var DEPENDENCY_FIELDS = [
39
39
  "optionalDependencies",
40
40
  "peerDependencies"
41
41
  ];
42
- var TYPE_GRAPH_PACKAGES = ["elysia", "typebox", "exact-mirror"];
42
+ var TYPE_GRAPH_PACKAGES = [
43
+ "elysia",
44
+ "typebox",
45
+ "exact-mirror"
46
+ ];
47
+ var ANGULAR_RUNTIME_PACKAGES = [
48
+ "@angular/core",
49
+ "@angular/common",
50
+ "@angular/compiler",
51
+ "@angular/platform-browser",
52
+ "@angular/platform-server",
53
+ "@angular/router",
54
+ "@angular/forms",
55
+ "@angular/animations"
56
+ ];
43
57
  var readManifest = (path) => {
44
58
  try {
45
59
  const parsed = JSON.parse(readFileSync(path, "utf-8"));
@@ -150,7 +164,7 @@ var collectInspection = (inspection, consumers, consumerPaths, identities, unres
150
164
  return;
151
165
  appendConsumer(consumers, consumerPaths, inspection.consumer.path, inspection.consumer.manifest);
152
166
  };
153
- var inspectTypeGraph = (cwd) => {
167
+ var inspectTypeGraph = (cwd, packages = TYPE_GRAPH_PACKAGES) => {
154
168
  const installRoot = findInstallRoot(cwd);
155
169
  const rootManifestPath = join(installRoot, "package.json");
156
170
  const rootManifest = readManifest(rootManifestPath) ?? {};
@@ -174,12 +188,12 @@ var inspectTypeGraph = (cwd) => {
174
188
  const unresolved = [];
175
189
  for (const consumer of consumers) {
176
190
  const consumerName = manifestName(consumer.manifest, "<workspace>");
177
- const inspections = TYPE_GRAPH_PACKAGES.map((target) => inspectTarget(consumer, consumerName, target));
191
+ const inspections = packages.map((target) => inspectTarget(consumer, consumerName, target));
178
192
  inspections.forEach((inspection) => collectInspection(inspection, consumers, consumerPaths, identities, unresolved));
179
193
  }
180
- return { identities, installRoot, unresolved };
194
+ return { identities, installRoot, packages, unresolved };
181
195
  };
182
- var duplicateTypeGraphPackages = (report) => TYPE_GRAPH_PACKAGES.flatMap((name) => {
196
+ var duplicateTypeGraphPackages = (report) => report.packages.flatMap((name) => {
183
197
  const identities = report.identities.filter((identity) => identity.packageName === name);
184
198
  const paths = [
185
199
  ...new Set(identities.map((identity) => identity.packagePath))
@@ -320,6 +334,15 @@ var typeGraphCheck = () => {
320
334
  const consumers = new Set(report.identities.map((entry) => entry.consumer));
321
335
  return check("ok", "Elysia type graph", `${consumers.size} consumer${consumers.size === 1 ? "" : "s"} share one package identity`);
322
336
  };
337
+ var usesAngular = (config) => config !== null && readString(config, "angularDirectory") !== undefined;
338
+ var angularRuntimeCheck = () => {
339
+ const report = typeGraphCoherence.inspectTypeGraph(process.cwd(), ANGULAR_RUNTIME_PACKAGES);
340
+ const duplicates = typeGraphCoherence.duplicateTypeGraphPackages(report);
341
+ if (duplicates.length > 0) {
342
+ return check("fail", "Angular runtime", `${duplicates.map((entry) => `${entry.name}: ${entry.paths.length} physical copies`).join(", ")} (run absolute doctor --fix)`);
343
+ }
344
+ return check("ok", "Angular runtime", "one copy of each @angular/* runtime package");
345
+ };
323
346
  var STATUS_MARK = {
324
347
  fail: `${colors.red}\u2717${colors.reset}`,
325
348
  ok: `${colors.green}\u2713${colors.reset}`,
@@ -349,6 +372,7 @@ var gatherChecks = async () => {
349
372
  checkBun(),
350
373
  checkAbsolute(),
351
374
  typeGraphCheck(),
375
+ ...usesAngular(config) ? [angularRuntimeCheck()] : [],
352
376
  configCheck,
353
377
  ...config === null ? [] : frameworkChecks(config),
354
378
  env,
@@ -392,10 +416,16 @@ var applyFixes = async () => {
392
416
  const envFix = await fixEnvExample(cwd);
393
417
  if (envFix)
394
418
  fixes.push(envFix);
395
- const report = typeGraphCoherence.inspectTypeGraph(cwd);
396
- const graphFixes = typeGraphCoherence.alignTypeGraphOverrides(report);
397
- const removedPackages = typeGraphCoherence.removeDuplicateTypeGraphPackages(report);
398
- if (graphFixes.length > 0 || removedPackages.length > 0) {
419
+ const reports = [
420
+ typeGraphCoherence.inspectTypeGraph(cwd),
421
+ ...usesAngular(config) ? [
422
+ typeGraphCoherence.inspectTypeGraph(cwd, ANGULAR_RUNTIME_PACKAGES)
423
+ ] : []
424
+ ];
425
+ const graphFixes = reports.flatMap((report) => typeGraphCoherence.alignTypeGraphOverrides(report));
426
+ const removedPackages = reports.flatMap((report) => typeGraphCoherence.removeDuplicateTypeGraphPackages(report));
427
+ const [report] = reports;
428
+ if (report && (graphFixes.length > 0 || removedPackages.length > 0)) {
399
429
  const install = Bun.spawnSync(["bun", "install", "--force"], {
400
430
  cwd: report.installRoot,
401
431
  stderr: "inherit",
@@ -4,11 +4,11 @@ import {
4
4
  absoluteManagedAndroidSdkRoot2,
5
5
  detectAbsoluteMobileHost2,
6
6
  inspectAbsoluteMobileToolchain2
7
- } from "./index-ppphkyps.js";
8
- import"./index-exfkpjja.js";
9
- import"./index-74m7kh8c.js";
10
- import"./index-kye08pjx.js";
11
- import"./index-fgz435qn.js";
7
+ } from "./index-a6xx0p9e.js";
8
+ import"./index-125cfzvn.js";
9
+ import"./index-3ewt17wm.js";
10
+ import"./index-pr1skxen.js";
11
+ import"./index-t8jmj8w1.js";
12
12
  export {
13
13
  ABSOLUTE_ANDROID_AVD_NAME2 as ABSOLUTE_ANDROID_AVD_NAME,
14
14
  absoluteManagedAndroidSdkRoot2 as absoluteManagedAndroidSdkRoot,
@@ -2,12 +2,12 @@
2
2
  import {
3
3
  planAbsoluteMobileEmulatorInstall2,
4
4
  fixAbsoluteMobileEmulatorToolchain2
5
- } from "./index-3vmc30gf.js";
6
- import"./index-ppphkyps.js";
7
- import"./index-exfkpjja.js";
8
- import"./index-74m7kh8c.js";
9
- import"./index-kye08pjx.js";
10
- import"./index-fgz435qn.js";
5
+ } from "./index-rz56x932.js";
6
+ import"./index-a6xx0p9e.js";
7
+ import"./index-125cfzvn.js";
8
+ import"./index-3ewt17wm.js";
9
+ import"./index-pr1skxen.js";
10
+ import"./index-t8jmj8w1.js";
11
11
  export {
12
12
  fixAbsoluteMobileEmulatorToolchain2 as fixAbsoluteMobileEmulatorToolchain,
13
13
  planAbsoluteMobileEmulatorInstall2 as planAbsoluteMobileEmulatorInstall
@@ -2,9 +2,9 @@
2
2
  import {
3
3
  collectEnvVars2,
4
4
  runEnv2
5
- } from "./index-14fbvz34.js";
6
- import"./index-xw1byvzp.js";
7
- import"./index-fgz435qn.js";
5
+ } from "./index-50ag35xg.js";
6
+ import"./index-9djrap79.js";
7
+ import"./index-t8jmj8w1.js";
8
8
  export {
9
9
  collectEnvVars2 as collectEnvVars,
10
10
  runEnv2 as runEnv
@@ -3,12 +3,12 @@ import {
3
3
  buildAbsoluteExpoAndroidWslBundle2,
4
4
  absoluteExpoExecutable2,
5
5
  startAbsoluteExpoDevSession2
6
- } from "./index-zd3cna19.js";
7
- import"./index-ppphkyps.js";
8
- import"./index-exfkpjja.js";
9
- import"./index-74m7kh8c.js";
10
- import"./index-kye08pjx.js";
11
- import"./index-fgz435qn.js";
6
+ } from "./index-3sfcmb49.js";
7
+ import"./index-a6xx0p9e.js";
8
+ import"./index-125cfzvn.js";
9
+ import"./index-3ewt17wm.js";
10
+ import"./index-pr1skxen.js";
11
+ import"./index-t8jmj8w1.js";
12
12
  export {
13
13
  absoluteExpoExecutable2 as absoluteExpoExecutable,
14
14
  buildAbsoluteExpoAndroidWslBundle2 as buildAbsoluteExpoAndroidWslBundle,
@@ -5,11 +5,11 @@ import {
5
5
  resolveProject,
6
6
  selectFramework,
7
7
  toModuleSpecifier
8
- } from "./index-qbrzvmh9.js";
9
- import"./index-fgz435qn.js";
8
+ } from "./index-q3snnhyd.js";
9
+ import"./index-t8jmj8w1.js";
10
10
  import {
11
11
  wirePluginUse
12
- } from "./index-3wz3mktm.js";
12
+ } from "./index-gyjxrnnz.js";
13
13
  import {
14
14
  isValidName,
15
15
  toCamelCase,
@@ -18,13 +18,13 @@ import {
18
18
  toTitleCase,
19
19
  emptyOutcome,
20
20
  generatePage
21
- } from "./index-9sksd8c8.js";
21
+ } from "./index-vh68jb0e.js";
22
22
  import {
23
23
  colors
24
- } from "./index-xw1byvzp.js";
25
- import"./index-exfkpjja.js";
26
- import"./index-74m7kh8c.js";
27
- import"./index-kye08pjx.js";
24
+ } from "./index-9djrap79.js";
25
+ import"./index-125cfzvn.js";
26
+ import"./index-3ewt17wm.js";
27
+ import"./index-pr1skxen.js";
28
28
 
29
29
  // src/cli/scripts/generate.ts
30
30
  import { relative } from "path";