@absolutejs/absolute 0.19.0-beta.788 → 0.19.0-beta.789

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 (42) hide show
  1. package/dist/angular/index.js +4 -4
  2. package/dist/angular/server.js +4 -4
  3. package/dist/build.js +6 -6
  4. package/dist/{chunk-vqwjfp2e.js → chunk-0867j0r0.js} +2 -2
  5. package/dist/{chunk-r0dg9rk3.js → chunk-2j2cvn7e.js} +3 -3
  6. package/dist/{chunk-h5eee7jy.js → chunk-3qswe70c.js} +3 -3
  7. package/dist/{chunk-xrmjy8kk.js → chunk-5f67rsed.js} +16 -4
  8. package/dist/chunk-5f67rsed.js.map +10 -0
  9. package/dist/{chunk-4m75s5xf.js → chunk-8cyvzcmc.js} +2 -2
  10. package/dist/{chunk-6nyta6wa.js → chunk-9939da67.js} +7 -7
  11. package/dist/{chunk-dr9yqsdb.js → chunk-9ve9jq72.js} +2 -2
  12. package/dist/{chunk-kndkjsya.js → chunk-d7mwkzry.js} +2 -2
  13. package/dist/{chunk-pjzn557h.js → chunk-rmc1aqky.js} +25 -22
  14. package/dist/{chunk-pjzn557h.js.map → chunk-rmc1aqky.js.map} +3 -3
  15. package/dist/{chunk-yfqhr31t.js → chunk-tjr0kcev.js} +6 -4
  16. package/dist/{chunk-yfqhr31t.js.map → chunk-tjr0kcev.js.map} +1 -1
  17. package/dist/{chunk-smgj0epn.js → chunk-txhm2vb5.js} +3 -3
  18. package/dist/{chunk-xzvy9hr4.js → chunk-x09cskqd.js} +2 -2
  19. package/dist/{chunk-6fkgm9s5.js → chunk-xnt8c6h2.js} +10 -3
  20. package/dist/{chunk-6fkgm9s5.js.map → chunk-xnt8c6h2.js.map} +3 -3
  21. package/dist/{chunk-9a307ca6.js → chunk-ynb0qx79.js} +2 -2
  22. package/dist/{chunk-3c7mpj3m.js → chunk-zrg9d4zw.js} +2 -2
  23. package/dist/index.js +10 -10
  24. package/dist/islands/index.js +3 -3
  25. package/dist/react/index.js +3 -3
  26. package/dist/src/build/stylePreprocessor.d.ts +1 -0
  27. package/dist/svelte/index.js +4 -4
  28. package/dist/svelte/server.js +3 -3
  29. package/dist/vue/index.js +3 -3
  30. package/package.json +1 -1
  31. package/dist/chunk-xrmjy8kk.js.map +0 -10
  32. /package/dist/{chunk-vqwjfp2e.js.map → chunk-0867j0r0.js.map} +0 -0
  33. /package/dist/{chunk-r0dg9rk3.js.map → chunk-2j2cvn7e.js.map} +0 -0
  34. /package/dist/{chunk-h5eee7jy.js.map → chunk-3qswe70c.js.map} +0 -0
  35. /package/dist/{chunk-4m75s5xf.js.map → chunk-8cyvzcmc.js.map} +0 -0
  36. /package/dist/{chunk-6nyta6wa.js.map → chunk-9939da67.js.map} +0 -0
  37. /package/dist/{chunk-dr9yqsdb.js.map → chunk-9ve9jq72.js.map} +0 -0
  38. /package/dist/{chunk-kndkjsya.js.map → chunk-d7mwkzry.js.map} +0 -0
  39. /package/dist/{chunk-smgj0epn.js.map → chunk-txhm2vb5.js.map} +0 -0
  40. /package/dist/{chunk-xzvy9hr4.js.map → chunk-x09cskqd.js.map} +0 -0
  41. /package/dist/{chunk-9a307ca6.js.map → chunk-ynb0qx79.js.map} +0 -0
  42. /package/dist/{chunk-3c7mpj3m.js.map → chunk-zrg9d4zw.js.map} +0 -0
@@ -6,7 +6,7 @@ import {
6
6
  } from "../chunk-5fhp1jap.js";
7
7
  import {
8
8
  handleAngularPageRequest
9
- } from "../chunk-r0dg9rk3.js";
9
+ } from "../chunk-2j2cvn7e.js";
10
10
  import"../chunk-gd6wmknh.js";
11
11
  import"../chunk-mtgf69xn.js";
12
12
  import"../chunk-v5vmsxmy.js";
@@ -45,11 +45,11 @@ import {
45
45
  } from "../chunk-25v9t56f.js";
46
46
  import {
47
47
  renderIslandMarkup
48
- } from "../chunk-4m75s5xf.js";
49
- import"../chunk-dr9yqsdb.js";
48
+ } from "../chunk-8cyvzcmc.js";
49
+ import"../chunk-9ve9jq72.js";
50
50
  import"../chunk-7fw6x3js.js";
51
51
  import"../chunk-mbazhahf.js";
52
- import"../chunk-6fkgm9s5.js";
52
+ import"../chunk-xnt8c6h2.js";
53
53
  import"../chunk-qh75agse.js";
54
54
  import"../chunk-2f21eenc.js";
55
55
  import"../chunk-fygx2ymm.js";
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  handleAngularPageRequest
4
- } from "../chunk-r0dg9rk3.js";
4
+ } from "../chunk-2j2cvn7e.js";
5
5
  import"../chunk-gd6wmknh.js";
6
6
  import"../chunk-mtgf69xn.js";
7
7
  import"../chunk-v5vmsxmy.js";
@@ -34,11 +34,11 @@ import {
34
34
  RESPONSE_INIT,
35
35
  buildAbsoluteHttpTransferCacheOptions
36
36
  } from "../chunk-25v9t56f.js";
37
- import"../chunk-4m75s5xf.js";
38
- import"../chunk-dr9yqsdb.js";
37
+ import"../chunk-8cyvzcmc.js";
38
+ import"../chunk-9ve9jq72.js";
39
39
  import"../chunk-7fw6x3js.js";
40
40
  import"../chunk-mbazhahf.js";
41
- import"../chunk-6fkgm9s5.js";
41
+ import"../chunk-xnt8c6h2.js";
42
42
  import"../chunk-qh75agse.js";
43
43
  import"../chunk-2f21eenc.js";
44
44
  import"../chunk-8kcfffry.js";
package/dist/build.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  build,
4
4
  devBuild
5
- } from "./chunk-pjzn557h.js";
5
+ } from "./chunk-rmc1aqky.js";
6
6
  import"./chunk-vkrpm7kc.js";
7
7
  import"./chunk-cg95827x.js";
8
8
  import"./chunk-hcsmxw1v.js";
@@ -20,8 +20,8 @@ import"./chunk-1e9vsfyh.js";
20
20
  import"./chunk-hyjs4bqs.js";
21
21
  import"./chunk-t81a331y.js";
22
22
  import"./chunk-85n68sy6.js";
23
- import"./chunk-h5eee7jy.js";
24
- import"./chunk-kndkjsya.js";
23
+ import"./chunk-3qswe70c.js";
24
+ import"./chunk-d7mwkzry.js";
25
25
  import"./chunk-h5bbfn3n.js";
26
26
  import"./chunk-11zpfqz6.js";
27
27
  import"./chunk-a9mvyp04.js";
@@ -34,11 +34,11 @@ import"./chunk-gf0ygptk.js";
34
34
  import"./chunk-851whwc7.js";
35
35
  import"./chunk-s6defjk2.js";
36
36
  import"./chunk-p5504p14.js";
37
- import"./chunk-4m75s5xf.js";
38
- import"./chunk-dr9yqsdb.js";
37
+ import"./chunk-8cyvzcmc.js";
38
+ import"./chunk-9ve9jq72.js";
39
39
  import"./chunk-7fw6x3js.js";
40
40
  import"./chunk-mbazhahf.js";
41
- import"./chunk-6fkgm9s5.js";
41
+ import"./chunk-xnt8c6h2.js";
42
42
  import"./chunk-qh75agse.js";
43
43
  import"./chunk-2f21eenc.js";
44
44
  import"./chunk-8kcfffry.js";
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-d9c0am65.js";
19
19
  import {
20
20
  compileSvelteServerModule
21
- } from "./chunk-dr9yqsdb.js";
21
+ } from "./chunk-9ve9jq72.js";
22
22
  import {
23
23
  __require
24
24
  } from "./chunk-bmgqm774.js";
@@ -133,4 +133,4 @@ var handleSveltePageRequest = async (input) => {
133
133
  export { handleSveltePageRequest };
134
134
 
135
135
  //# debugId=CE7F9382EA2F47FE64756E2164756E21
136
- //# sourceMappingURL=chunk-vqwjfp2e.js.map
136
+ //# sourceMappingURL=chunk-0867j0r0.js.map
@@ -39,7 +39,7 @@ import {
39
39
  } from "./chunk-pnscgw95.js";
40
40
  import {
41
41
  renderIslandMarkup
42
- } from "./chunk-4m75s5xf.js";
42
+ } from "./chunk-8cyvzcmc.js";
43
43
  import {
44
44
  BASE_36_RADIX,
45
45
  RANDOM_ID_END_INDEX
@@ -315,7 +315,7 @@ var resolveRuntimeAngularModulePath = async (pagePath) => {
315
315
  }
316
316
  const outDir = resolveAngularSsrOutDir();
317
317
  await ensureAngularSsrNodeModules(outDir);
318
- const { compileAngularFileJIT } = await import("./chunk-9a307ca6.js");
318
+ const { compileAngularFileJIT } = await import("./chunk-ynb0qx79.js");
319
319
  const outputs = await compileAngularFileJIT(pagePath, outDir, process.cwd());
320
320
  const expectedFileName = basename(pagePath).replace(/\.ts$/, ".js");
321
321
  return outputs.find((output) => output.endsWith(`/${expectedFileName}`)) ?? outputs.find((output) => output.endsWith(`\\${expectedFileName}`)) ?? outputs[0] ?? pagePath;
@@ -425,4 +425,4 @@ var handleAngularPageRequest = async (input) => {
425
425
  export { handleAngularPageRequest };
426
426
 
427
427
  //# debugId=87D8B92F7C4AD73964756E2164756E21
428
- //# sourceMappingURL=chunk-r0dg9rk3.js.map
428
+ //# sourceMappingURL=chunk-2j2cvn7e.js.map
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  incrementalTailwindBuild
4
- } from "./chunk-kndkjsya.js";
4
+ } from "./chunk-d7mwkzry.js";
5
5
  import {
6
6
  scanEntryPoints
7
7
  } from "./chunk-11zpfqz6.js";
@@ -19,7 +19,7 @@ import {
19
19
  } from "./chunk-gf0ygptk.js";
20
20
  import {
21
21
  renderIslandMarkup
22
- } from "./chunk-4m75s5xf.js";
22
+ } from "./chunk-8cyvzcmc.js";
23
23
  import {
24
24
  getIslandBuildReference
25
25
  } from "./chunk-8kcfffry.js";
@@ -669,4 +669,4 @@ var setCurrentPageIslandMetadata = (metadata) => {
669
669
  export { isTailwindCandidate, compileTailwind, compileTailwindConfig, collectIslandFrameworkSources, generateIslandEntryPoints, loadIslandRegistryBuildInfo, extractStaticStreamingTags, transformCurrentStaticPageHtml, transformStaticPagesWithIslands, getPagesUsingIslandSource, loadPageIslandMetadata, setCurrentPageIslandMetadata, logStartupTimingBlock };
670
670
 
671
671
  //# debugId=EA2793B90D7FF16C64756E2164756E21
672
- //# sourceMappingURL=chunk-h5eee7jy.js.map
672
+ //# sourceMappingURL=chunk-3qswe70c.js.map
@@ -9,9 +9,10 @@ import {
9
9
  resolvePackageImport
10
10
  } from "./chunk-mbazhahf.js";
11
11
  import {
12
+ addStyleImporter,
12
13
  compileStyleSource,
13
14
  isStylePath
14
- } from "./chunk-6fkgm9s5.js";
15
+ } from "./chunk-xnt8c6h2.js";
15
16
  import {
16
17
  BASE_36_RADIX
17
18
  } from "./chunk-qh75agse.js";
@@ -22,7 +23,14 @@ import {
22
23
  // src/build/compileVue.ts
23
24
  import { existsSync } from "fs";
24
25
  import { mkdir } from "fs/promises";
25
- import { basename, dirname, join, relative, resolve } from "path";
26
+ import {
27
+ basename,
28
+ dirname,
29
+ isAbsolute,
30
+ join,
31
+ relative,
32
+ resolve
33
+ } from "path";
26
34
  var {file, write, Transpiler } = globalThis.Bun;
27
35
  var resolveDevClientDir = () => {
28
36
  const projectRoot = process.cwd();
@@ -156,6 +164,10 @@ var compileVueFile = async (sourceFilePath, outputDirs, cacheMap, isEntryPoint,
156
164
  const childComponentPaths = importPaths.filter((path) => path.startsWith(".") && path.endsWith(".vue"));
157
165
  const packageComponentPaths = Array.from(resolvedPackageVueImports.entries());
158
166
  const helperModulePaths = importPaths.filter((path) => path.startsWith(".") && !path.endsWith(".vue") && !isStylePath(path));
167
+ const stylePathsImported = importPaths.filter((path) => (path.startsWith(".") || isAbsolute(path)) && isStylePath(path)).map((path) => isAbsolute(path) ? path : resolve(dirname(sourceFilePath), path));
168
+ for (const stylePath of stylePathsImported) {
169
+ addStyleImporter(sourceFilePath, stylePath);
170
+ }
159
171
  const childBuildResults = await Promise.all([
160
172
  ...childComponentPaths.map((relativeChildPath) => compileVueFile(resolve(dirname(sourceFilePath), relativeChildPath), outputDirs, cacheMap, false, vueRootDir, compiler, stylePreprocessors)),
161
173
  ...packageComponentPaths.map(([, absolutePath]) => compileVueFile(absolutePath, outputDirs, cacheMap, false, vueRootDir, compiler, stylePreprocessors))
@@ -450,5 +462,5 @@ export {
450
462
  clearVueHmrCaches
451
463
  };
452
464
 
453
- //# debugId=12EDE19C68C85FED64756E2164756E21
454
- //# sourceMappingURL=chunk-xrmjy8kk.js.map
465
+ //# debugId=09DC66352653B6F864756E2164756E21
466
+ //# sourceMappingURL=chunk-5f67rsed.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/build/compileVue.ts"],
4
+ "sourcesContent": [
5
+ "import { BASE_36_RADIX } from '../constants';\nimport { existsSync } from 'node:fs';\nimport { mkdir } from 'node:fs/promises';\nimport {\n\tbasename,\n\tdirname,\n\tisAbsolute,\n\tjoin,\n\trelative,\n\tresolve\n} from 'node:path';\nimport type {\n\tSFCDescriptor,\n\tcompileScript as CompileScriptFn,\n\tcompileStyle as CompileStyleFn,\n\tcompileTemplate as CompileTemplateFn,\n\tparse as ParseFn\n} from '@vue/compiler-sfc';\nimport { file, write, Transpiler } from 'bun';\nimport { toKebab } from '../utils/stringModifiers';\nimport { resolvePackageImport } from './resolvePackageImport';\nimport { buildIslandMetadataExports } from '../islands/sourceMetadata';\nimport {\n\taddStyleImporter,\n\tcompileStyleSource,\n\tisStylePath\n} from './stylePreprocessor';\nimport type { StylePreprocessorConfig } from '../../types/build';\n\nconst resolveDevClientDir = () => {\n\tconst projectRoot = process.cwd();\n\tconst fromSource = resolve(import.meta.dir, '../dev/client');\n\n\tif (existsSync(fromSource) && fromSource.startsWith(projectRoot)) {\n\t\treturn fromSource;\n\t}\n\n\tconst fromNodeModules = resolve(\n\t\tprojectRoot,\n\t\t'node_modules/@absolutejs/absolute/dist/dev/client'\n\t);\n\tif (existsSync(fromNodeModules)) return fromNodeModules;\n\n\treturn resolve(import.meta.dir, './dev/client');\n};\n\nconst devClientDir = resolveDevClientDir();\n\nconst hmrClientPath = join(devClientDir, 'hmrClient.ts').replace(/\\\\/g, '/');\n\nconst transpiler = new Transpiler({ loader: 'ts', target: 'browser' });\n\ntype BuildResult = {\n\tclientPath: string;\n\tserverPath: string;\n\tcssPaths: string[];\n\tcssCodes: string[];\n\ttsHelperPaths: string[];\n\thmrId: string;\n};\n\n// HMR change type detection\nexport type VueChangeType = 'style-only' | 'template-only' | 'script' | 'full';\n\n// Descriptor caches for change detection\nconst scriptCache = new Map<string, string>();\nconst scriptSetupCache = new Map<string, string>();\nconst templateCache = new Map<string, string>();\nconst styleCache = new Map<string, string>();\n\n// Persistent build result cache across HMR cycles — avoids recompiling unchanged Vue components\nconst persistentBuildCache = new Map<string, BuildResult>();\n\n// Source content hash cache to detect unchanged files\nconst vueSourceHashCache = new Map<string, string>();\n\n// HMR metadata storage (exported for rebuildTrigger to access)\nexport const vueHmrMetadata = new Map<\n\tstring,\n\t{ hmrId: string; changeType: VueChangeType }\n>();\nexport const clearVueHmrCaches = () => {\n\tscriptCache.clear();\n\tscriptSetupCache.clear();\n\ttemplateCache.clear();\n\tstyleCache.clear();\n\tvueHmrMetadata.clear();\n\tpersistentBuildCache.clear();\n\tvueSourceHashCache.clear();\n};\nexport const detectVueChangeType = (\n\tfilePath: string,\n\tdescriptor: SFCDescriptor\n) => {\n\tconst prevScript = scriptCache.get(filePath);\n\tconst prevScriptSetup = scriptSetupCache.get(filePath);\n\tconst prevTemplate = templateCache.get(filePath);\n\tconst prevStyle = styleCache.get(filePath);\n\n\tconst currentScript = descriptor.script?.content ?? '';\n\tconst currentScriptSetup = descriptor.scriptSetup?.content ?? '';\n\tconst currentTemplate = descriptor.template?.content ?? '';\n\t// Serialize styles: include scoped flag and content for each style block\n\t// Uses ||| delimiter to detect changes to any block, additions, removals, or reordering\n\tconst currentStyle = descriptor.styles\n\t\t.map((s) => `${s.scoped ? 'scoped:' : ''}${s.content}`)\n\t\t.join('|||');\n\n\t// Update caches with current values\n\tscriptCache.set(filePath, currentScript);\n\tscriptSetupCache.set(filePath, currentScriptSetup);\n\ttemplateCache.set(filePath, currentTemplate);\n\tstyleCache.set(filePath, currentStyle);\n\n\t// First compile - no previous data\n\tif (prevScript === undefined && prevScriptSetup === undefined) {\n\t\treturn 'full';\n\t}\n\n\tconst scriptChanged = prevScript !== currentScript;\n\tconst scriptSetupChanged = prevScriptSetup !== currentScriptSetup;\n\tconst templateChanged = prevTemplate !== currentTemplate;\n\tconst styleChanged = prevStyle !== currentStyle;\n\n\t// Priority order:\n\t// 1. Script changes → 'script' (requires reload)\n\t// 2. Template-only (no script, no style) → 'template-only' (rerender)\n\t// 3. Style-only (no script, no template) → 'style-only' (CSS hot-swap, state preserved)\n\t// 4. Template + style → 'template-only' (CSS swapped alongside rerender)\n\n\t// Script change: script or scriptSetup changed (may also include template/style)\n\tif (scriptChanged || scriptSetupChanged) {\n\t\treturn 'script';\n\t}\n\n\t// Style-only change: only styles changed, no script or template\n\tif (styleChanged && !templateChanged) {\n\t\treturn 'style-only';\n\t}\n\n\t// Template-only change: template changed (with or without styles), script unchanged\n\tif (templateChanged) {\n\t\treturn 'template-only';\n\t}\n\n\t// No changes detected (shouldn't happen in practice)\n\treturn 'full';\n};\nexport const generateVueHmrId = (sourceFilePath: string, vueRootDir: string) =>\n\trelative(vueRootDir, sourceFilePath)\n\t\t.replace(/\\\\/g, '/')\n\t\t.replace(/\\.vue$/, '');\n\nconst extractImports = (sourceCode: string) =>\n\tArray.from(sourceCode.matchAll(/import\\s+[\\s\\S]+?['\"]([^'\"]+)['\"]/g))\n\t\t.map((match) => match[1])\n\t\t.filter((importPath): importPath is string => importPath !== undefined);\n\nconst toJs = (filePath: string, sourceDir?: string) => {\n\tif (filePath.endsWith('.vue')) return filePath.replace(/\\.vue$/, '.js');\n\tif (filePath.endsWith('.ts')) return filePath.replace(/\\.ts$/, '.js');\n\t// Style imports (.css / .module.scss / .less / .styl / etc.) keep their\n\t// original extension — the bun-side style preprocessor plugin loads them\n\t// directly. Appending `.js` would break the resolver and the build.\n\t//\n\t// We also rewrite relative style imports to absolute paths so they\n\t// resolve correctly: the compiled .js lives in `generated/{mode}/...`\n\t// (a different directory tree than the source), and a bare `./foo.scss`\n\t// would point to the wrong location once the bundler runs from the\n\t// output directory.\n\tif (isStylePath(filePath)) {\n\t\tif (\n\t\t\tsourceDir &&\n\t\t\t(filePath.startsWith('./') || filePath.startsWith('../'))\n\t\t) {\n\t\t\treturn resolve(sourceDir, filePath);\n\t\t}\n\n\t\treturn filePath;\n\t}\n\n\treturn `${filePath}.js`;\n};\n\nconst stripExports = (code: string) =>\n\tcode\n\t\t.replace(/export\\s+default/, 'const script =')\n\t\t.replace(/^export\\s+/gm, '');\n\nconst mergeVueImports = (code: string) => {\n\tconst lines = code.split('\\n');\n\tconst specifierSet = new Set<string>();\n\tconst vueImportRegex = /^import\\s+{([^}]+)}\\s+from\\s+['\"]vue['\"];?$/;\n\n\tlines.forEach((line) => {\n\t\tconst match = line.match(vueImportRegex);\n\t\tif (match?.[1])\n\t\t\tmatch[1]\n\t\t\t\t.split(',')\n\t\t\t\t.forEach((importSpecifier) =>\n\t\t\t\t\tspecifierSet.add(importSpecifier.trim())\n\t\t\t\t);\n\t});\n\n\tconst nonVueLines = lines.filter((line) => !vueImportRegex.test(line));\n\n\treturn specifierSet.size\n\t\t? [\n\t\t\t\t`import { ${[...specifierSet].join(', ')} } from \"vue\";`,\n\t\t\t\t...nonVueLines\n\t\t\t].join('\\n')\n\t\t: nonVueLines.join('\\n');\n};\n\ntype VueCompiler = {\n\tparse: typeof ParseFn;\n\tcompileScript: typeof CompileScriptFn;\n\tcompileTemplate: typeof CompileTemplateFn;\n\tcompileStyle: typeof CompileStyleFn;\n};\n\nconst compileVueFile = async (\n\tsourceFilePath: string,\n\toutputDirs: { client: string; server: string; css: string },\n\tcacheMap: Map<string, BuildResult>,\n\tisEntryPoint: boolean,\n\tvueRootDir: string,\n\tcompiler: VueCompiler,\n\tstylePreprocessors?: StylePreprocessorConfig\n) => {\n\tconst cachedResult = cacheMap.get(sourceFilePath);\n\tif (cachedResult) return cachedResult;\n\n\tconst relativeFilePath = relative(vueRootDir, sourceFilePath).replace(\n\t\t/\\\\/g,\n\t\t'/'\n\t);\n\tconst relativeWithoutExtension = relativeFilePath.replace(/\\.vue$/, '');\n\tconst fileBaseName = basename(sourceFilePath, '.vue');\n\tconst componentId = toKebab(fileBaseName);\n\n\tconst sourceContent = await file(sourceFilePath).text();\n\tconst islandMetadataExports = buildIslandMetadataExports(sourceContent);\n\n\t// Check persistent cache — skip recompilation if source unchanged\n\tconst contentHash = Bun.hash(sourceContent).toString(BASE_36_RADIX);\n\tconst prevHash = vueSourceHashCache.get(sourceFilePath);\n\tconst persistent = persistentBuildCache.get(sourceFilePath);\n\n\tif (prevHash === contentHash && persistent) {\n\t\tcacheMap.set(sourceFilePath, persistent);\n\n\t\treturn persistent;\n\t}\n\n\tvueSourceHashCache.set(sourceFilePath, contentHash);\n\tconst { descriptor } = compiler.parse(sourceContent, {\n\t\tfilename: sourceFilePath\n\t});\n\n\t// Generate HMR ID and detect change type\n\tconst hmrId = generateVueHmrId(sourceFilePath, vueRootDir);\n\tconst changeType = detectVueChangeType(sourceFilePath, descriptor);\n\n\t// Store HMR metadata for rebuildTrigger to access\n\tvueHmrMetadata.set(sourceFilePath, { changeType, hmrId });\n\n\tconst scriptSource =\n\t\tdescriptor.scriptSetup?.content ?? descriptor.script?.content ?? '';\n\n\tconst importPaths = extractImports(scriptSource);\n\n\t// Resolve bare module imports that point to .vue files\n\tconst resolvedPackageVueImports = new Map<string, string>();\n\tconst bareImports = importPaths.filter(\n\t\t(p) => !p.startsWith('.') && !p.startsWith('/')\n\t);\n\tfor (const importPath of bareImports) {\n\t\tconst resolved = resolvePackageImport(importPath);\n\t\tif (!resolved?.endsWith('.vue')) continue;\n\t\tresolvedPackageVueImports.set(importPath, resolved);\n\t}\n\n\tconst childComponentPaths = importPaths.filter(\n\t\t(path) => path.startsWith('.') && path.endsWith('.vue')\n\t);\n\tconst packageComponentPaths = Array.from(\n\t\tresolvedPackageVueImports.entries()\n\t);\n\t// Helper modules are TS/JS imports that need to be transpiled and copied\n\t// alongside the component (e.g. shared utilities). Style imports including\n\t// CSS modules (.module.scss / .module.less / .module.styl / .module.css)\n\t// are handled by the bun-side style preprocessor plugin and must not be\n\t// treated as TS helpers — otherwise we'd try to read the source as a `.ts`\n\t// file and crash at build time.\n\tconst helperModulePaths = importPaths.filter(\n\t\t(path) =>\n\t\t\tpath.startsWith('.') && !path.endsWith('.vue') && !isStylePath(path)\n\t);\n\n\t// Record JS → CSS-module imports for HMR dep tracking. When a Vue\n\t// component imports a `.module.scss`, an edit to that style file\n\t// has to invalidate the importing component's bundle so the new\n\t// hashed class names land in the served output.\n\tconst stylePathsImported = importPaths\n\t\t.filter(\n\t\t\t(path) =>\n\t\t\t\t(path.startsWith('.') || isAbsolute(path)) && isStylePath(path)\n\t\t)\n\t\t.map((path) =>\n\t\t\tisAbsolute(path) ? path : resolve(dirname(sourceFilePath), path)\n\t\t);\n\tfor (const stylePath of stylePathsImported) {\n\t\taddStyleImporter(sourceFilePath, stylePath);\n\t}\n\n\tconst childBuildResults: BuildResult[] = await Promise.all([\n\t\t...childComponentPaths.map((relativeChildPath) =>\n\t\t\tcompileVueFile(\n\t\t\t\tresolve(dirname(sourceFilePath), relativeChildPath),\n\t\t\t\toutputDirs,\n\t\t\t\tcacheMap,\n\t\t\t\tfalse,\n\t\t\t\tvueRootDir,\n\t\t\t\tcompiler,\n\t\t\t\tstylePreprocessors\n\t\t\t)\n\t\t),\n\t\t...packageComponentPaths.map(([, absolutePath]) =>\n\t\t\tcompileVueFile(\n\t\t\t\tabsolutePath,\n\t\t\t\toutputDirs,\n\t\t\t\tcacheMap,\n\t\t\t\tfalse,\n\t\t\t\tvueRootDir,\n\t\t\t\tcompiler,\n\t\t\t\tstylePreprocessors\n\t\t\t)\n\t\t)\n\t]);\n\n\tconst hasScript = descriptor.script || descriptor.scriptSetup;\n\tconst compiledScript = hasScript\n\t\t? compiler.compileScript(descriptor, {\n\t\t\t\tid: componentId,\n\t\t\t\tinlineTemplate: false\n\t\t\t})\n\t\t: { bindings: {}, content: 'export default {};' };\n\tconst strippedScript = stripExports(compiledScript.content);\n\tconst sourceDir = dirname(sourceFilePath);\n\tconst transpiledScript = transpiler\n\t\t.transformSync(strippedScript)\n\t\t.replace(\n\t\t\t/(['\"])(\\.{1,2}\\/[^'\"]+)(['\"])/g,\n\t\t\t(_, quoteStart, relativeImport, quoteEnd) =>\n\t\t\t\t`${quoteStart}${toJs(relativeImport, sourceDir)}${quoteEnd}`\n\t\t);\n\n\t// Build rewrite map for bare module .vue imports → compiled output paths\n\tconst packageImportRewrites = new Map<\n\t\tstring,\n\t\t{ client: string; server: string }\n\t>();\n\tfor (const [bareImport, absolutePath] of packageComponentPaths) {\n\t\tconst childResult = cacheMap.get(absolutePath);\n\t\tif (!childResult) continue;\n\n\t\tpackageImportRewrites.set(bareImport, {\n\t\t\tclient: childResult.clientPath,\n\t\t\tserver: childResult.serverPath\n\t\t});\n\t}\n\n\tconst generateRenderFunction = (ssr: boolean) =>\n\t\tcompiler\n\t\t\t.compileTemplate({\n\t\t\t\tcompilerOptions: {\n\t\t\t\t\tbindingMetadata: compiledScript.bindings,\n\t\t\t\t\tprefixIdentifiers: true\n\t\t\t\t},\n\t\t\t\tfilename: sourceFilePath,\n\t\t\t\tid: componentId,\n\t\t\t\tscoped: descriptor.styles.some(\n\t\t\t\t\t(styleBlock) => styleBlock.scoped\n\t\t\t\t),\n\t\t\t\tsource: descriptor.template?.content ?? '',\n\t\t\t\tssr,\n\t\t\t\tssrCssVars: descriptor.cssVars\n\t\t\t})\n\t\t\t.code.replace(\n\t\t\t\t/(['\"])(\\.{1,2}\\/[^'\"]+)(['\"])/g,\n\t\t\t\t(_, quoteStart, relativeImport, quoteEnd) =>\n\t\t\t\t\t`${quoteStart}${toJs(relativeImport, sourceDir)}${quoteEnd}`\n\t\t\t);\n\n\tconst localCss = await Promise.all(\n\t\tdescriptor.styles.map(\n\t\t\tasync (styleBlock) =>\n\t\t\t\tcompiler.compileStyle({\n\t\t\t\t\tfilename: sourceFilePath,\n\t\t\t\t\tid: componentId,\n\t\t\t\t\tscoped: styleBlock.scoped,\n\t\t\t\t\tsource: styleBlock.lang\n\t\t\t\t\t\t? await compileStyleSource(\n\t\t\t\t\t\t\t\tsourceFilePath,\n\t\t\t\t\t\t\t\tstyleBlock.content,\n\t\t\t\t\t\t\t\tstyleBlock.lang,\n\t\t\t\t\t\t\t\tstylePreprocessors\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t: styleBlock.content,\n\t\t\t\t\ttrim: true\n\t\t\t\t}).code\n\t\t)\n\t);\n\tconst allCss = [\n\t\t...localCss,\n\t\t...childBuildResults.flatMap((result) => result.cssCodes)\n\t];\n\n\tlet cssOutputPaths: string[] = [];\n\tif (isEntryPoint && allCss.length) {\n\t\tconst cssOutputFile = join(\n\t\t\toutputDirs.css,\n\t\t\t`${toKebab(fileBaseName)}-compiled.css`\n\t\t);\n\t\tawait mkdir(dirname(cssOutputFile), { recursive: true });\n\t\tawait write(cssOutputFile, allCss.join('\\n'));\n\t\tcssOutputPaths = [cssOutputFile];\n\t}\n\n\tconst assembleModule = (\n\t\trenderCode: string,\n\t\trenderFnName: 'render' | 'ssrRender',\n\t\tincludeHmr: boolean\n\t) => {\n\t\tconst hasScoped = descriptor.styles.some(\n\t\t\t(styleBlock) => styleBlock.scoped\n\t\t);\n\n\t\t// __scopeId is required for Vue runtime to add scoped style attributes to dynamic elements\n\t\t// Without this, scoped styles only work on static VNodes that have the attribute baked in\n\t\tconst scopeIdCode = hasScoped\n\t\t\t? `script.__scopeId = \"data-v-${componentId}\";`\n\t\t\t: '';\n\n\t\t// For client bundles, inject HMR registration code that uses Vue's native __VUE_HMR_RUNTIME__\n\t\t// This enables state-preserving hot updates via rerender() for template changes\n\t\t// and reload() for script changes\n\t\tconst hmrCode = includeHmr\n\t\t\t? `\n// Vue Native HMR Registration\nscript.__hmrId = ${JSON.stringify(hmrId)};\nif (typeof __VUE_HMR_RUNTIME__ !== 'undefined') {\n __VUE_HMR_RUNTIME__.createRecord(script.__hmrId, script);\n if (typeof window !== 'undefined') {\n window.__VUE_HMR_COMPONENTS__ = window.__VUE_HMR_COMPONENTS__ || {};\n window.__VUE_HMR_COMPONENTS__[script.__hmrId] = script;\n }\n}`\n\t\t\t: '';\n\n\t\treturn mergeVueImports(\n\t\t\t[\n\t\t\t\ttranspiledScript,\n\t\t\t\trenderCode,\n\t\t\t\t`script.${renderFnName} = ${renderFnName};`,\n\t\t\t\tscopeIdCode,\n\t\t\t\thmrCode,\n\t\t\t\t'export default script;'\n\t\t\t].join('\\n')\n\t\t);\n\t};\n\n\t// Client bundles include HMR registration code; server bundles do not\n\tconst clientCode =\n\t\tassembleModule(generateRenderFunction(false), 'render', true) +\n\t\tislandMetadataExports;\n\tconst serverCode =\n\t\tassembleModule(generateRenderFunction(true), 'ssrRender', false) +\n\t\tislandMetadataExports;\n\n\tconst clientOutputPath = join(\n\t\toutputDirs.client,\n\t\t`${relativeWithoutExtension}.js`\n\t);\n\tconst serverOutputPath = join(\n\t\toutputDirs.server,\n\t\t`${relativeWithoutExtension}.js`\n\t);\n\n\t// Rewrite relative imports that escape the framework root.\n\t// Source file is at vueRoot/<relDir>/file.vue, but compiled\n\t// output is at vueRoot/generated/{mode}/<relDir>/file.js —\n\t// 2 extra directory levels. Imports going above vueRoot need\n\t// ../../ prepended so they resolve to the same target.\n\tconst relDir = dirname(relativeFilePath);\n\tconst relDepth = relDir === '.' ? 0 : relDir.split('/').length;\n\tconst adjustImports = (code: string) =>\n\t\tcode.replace(/(from\\s+['\"])(\\.\\.\\/(?:\\.\\.\\/)*)/g, (_, prefix, dots) => {\n\t\t\tconst upCount = dots.split('/').length - 1;\n\t\t\tif (upCount <= relDepth) return `${prefix}${dots}`;\n\n\t\t\treturn `${prefix}../../${dots}`;\n\t\t});\n\n\t// Rewrite bare module imports to relative paths pointing at compiled output\n\tconst rewritePackageImports = (\n\t\tcode: string,\n\t\toutputPath: string,\n\t\tmode: 'client' | 'server'\n\t) => {\n\t\tlet result = code;\n\t\tfor (const [bareImport, paths] of packageImportRewrites) {\n\t\t\tconst targetPath = mode === 'server' ? paths.server : paths.client;\n\t\t\tlet rel = relative(dirname(outputPath), targetPath).replace(\n\t\t\t\t/\\\\/g,\n\t\t\t\t'/'\n\t\t\t);\n\t\t\tif (!rel.startsWith('.')) rel = `./${rel}`;\n\t\t\tresult = result.replaceAll(bareImport, rel);\n\t\t}\n\n\t\treturn result;\n\t};\n\n\tawait mkdir(dirname(clientOutputPath), { recursive: true });\n\tawait mkdir(dirname(serverOutputPath), { recursive: true });\n\tawait write(\n\t\tclientOutputPath,\n\t\trewritePackageImports(\n\t\t\tadjustImports(clientCode),\n\t\t\tclientOutputPath,\n\t\t\t'client'\n\t\t)\n\t);\n\tawait write(\n\t\tserverOutputPath,\n\t\trewritePackageImports(\n\t\t\tadjustImports(serverCode),\n\t\t\tserverOutputPath,\n\t\t\t'server'\n\t\t)\n\t);\n\n\tconst result: BuildResult = {\n\t\tclientPath: clientOutputPath,\n\t\tcssCodes: allCss,\n\t\tcssPaths: cssOutputPaths,\n\t\thmrId,\n\t\tserverPath: serverOutputPath,\n\t\ttsHelperPaths: [\n\t\t\t...helperModulePaths.map((helper) =>\n\t\t\t\tresolve(\n\t\t\t\t\tdirname(sourceFilePath),\n\t\t\t\t\thelper.endsWith('.ts') ? helper : `${helper}.ts`\n\t\t\t\t)\n\t\t\t),\n\t\t\t...childBuildResults.flatMap((child) => child.tsHelperPaths)\n\t\t]\n\t};\n\n\tcacheMap.set(sourceFilePath, result);\n\tpersistentBuildCache.set(sourceFilePath, result);\n\n\treturn result;\n};\n\nexport const compileVue = async (\n\tentryPoints: string[],\n\tvueRootDir: string,\n\tisDev = false,\n\tstylePreprocessors?: StylePreprocessorConfig\n) => {\n\tconst compiler: VueCompiler = await import('@vue/compiler-sfc');\n\n\tconst generatedDir = join(vueRootDir, 'generated');\n\tconst clientOutputDir = join(generatedDir, 'client');\n\tconst indexOutputDir = join(generatedDir, 'indexes');\n\tconst serverOutputDir = join(generatedDir, 'server');\n\tconst cssOutputDir = join(generatedDir, 'compiled');\n\n\tawait Promise.all([\n\t\tmkdir(clientOutputDir, { recursive: true }),\n\t\tmkdir(indexOutputDir, { recursive: true }),\n\t\tmkdir(serverOutputDir, { recursive: true }),\n\t\tmkdir(cssOutputDir, { recursive: true })\n\t]);\n\n\tconst buildCache = new Map<string, BuildResult>();\n\tconst allTsHelperPaths = new Set<string>();\n\n\tconst compiledPages = await Promise.all(\n\t\tentryPoints.map(async (entryPath) => {\n\t\t\tconst result = await compileVueFile(\n\t\t\t\tresolve(entryPath),\n\t\t\t\t{\n\t\t\t\t\tclient: clientOutputDir,\n\t\t\t\t\tcss: cssOutputDir,\n\t\t\t\t\tserver: serverOutputDir\n\t\t\t\t},\n\t\t\t\tbuildCache,\n\t\t\t\ttrue,\n\t\t\t\tvueRootDir,\n\t\t\t\tcompiler,\n\t\t\t\tstylePreprocessors\n\t\t\t);\n\n\t\t\tresult.tsHelperPaths.forEach((path) => allTsHelperPaths.add(path));\n\n\t\t\tconst entryBaseName = basename(entryPath, '.vue');\n\t\t\tconst indexOutputFile = join(indexOutputDir, `${entryBaseName}.js`);\n\t\t\tconst clientOutputFile = join(\n\t\t\t\tclientOutputDir,\n\t\t\t\trelative(vueRootDir, entryPath)\n\t\t\t\t\t.replace(/\\\\/g, '/')\n\t\t\t\t\t.replace(/\\.vue$/, '.js')\n\t\t\t);\n\n\t\t\tawait mkdir(dirname(indexOutputFile), { recursive: true });\n\t\t\tconst vueHmrImports = isDev\n\t\t\t\t? [\n\t\t\t\t\t\t`window.__HMR_FRAMEWORK__ = \"vue\";`,\n\t\t\t\t\t\t`import \"${hmrClientPath}\";`\n\t\t\t\t\t]\n\t\t\t\t: [];\n\t\t\tawait write(\n\t\t\t\tindexOutputFile,\n\t\t\t\t[\n\t\t\t\t\t...vueHmrImports,\n\t\t\t\t\t`import Comp from \"${relative(dirname(indexOutputFile), clientOutputFile).replace(/\\\\/g, '/')}\";`,\n\t\t\t\t\t'import { createSSRApp, createApp } from \"vue\";',\n\t\t\t\t\t'',\n\t\t\t\t\t'// HMR State Preservation: Check for preserved state from HMR',\n\t\t\t\t\t'let preservedState = (typeof window !== \"undefined\" && window.__HMR_PRESERVED_STATE__) ? window.__HMR_PRESERVED_STATE__ : {};',\n\t\t\t\t\t'',\n\t\t\t\t\t'// Fallback: check sessionStorage if window state is empty (only during active HMR, not full page refresh)',\n\t\t\t\t\t'if (typeof window !== \"undefined\" && Object.keys(preservedState).length === 0 && sessionStorage.getItem(\"__HMR_ACTIVE__\")) {',\n\t\t\t\t\t' try {',\n\t\t\t\t\t' const stored = sessionStorage.getItem(\"__VUE_HMR_STATE__\");',\n\t\t\t\t\t' if (stored) {',\n\t\t\t\t\t' preservedState = JSON.parse(stored);',\n\t\t\t\t\t' sessionStorage.removeItem(\"__VUE_HMR_STATE__\");',\n\t\t\t\t\t' }',\n\t\t\t\t\t' } catch (e) {}',\n\t\t\t\t\t'}',\n\t\t\t\t\t'// Clean up stale HMR state on full page refresh',\n\t\t\t\t\t'if (typeof window !== \"undefined\" && !sessionStorage.getItem(\"__HMR_ACTIVE__\")) {',\n\t\t\t\t\t' sessionStorage.removeItem(\"__VUE_HMR_STATE__\");',\n\t\t\t\t\t'}',\n\t\t\t\t\t'',\n\t\t\t\t\t'const initialProps = window.__INITIAL_PROPS__ ?? {};',\n\t\t\t\t\t'// Only merge preserved state keys that match declared props (avoids passing refs/components as attributes)',\n\t\t\t\t\t'const mergedProps = { ...initialProps };',\n\t\t\t\t\t'Object.keys(preservedState).forEach(function(key) {',\n\t\t\t\t\t' if (key in initialProps) {',\n\t\t\t\t\t' mergedProps[key] = preservedState[key];',\n\t\t\t\t\t' }',\n\t\t\t\t\t'});',\n\t\t\t\t\t'',\n\t\t\t\t\t'// During HMR or after SSR dirty, use createApp (fresh mount) to avoid hydration mismatch with stale DOM',\n\t\t\t\t\t'const isHMR = typeof window !== \"undefined\" && sessionStorage.getItem(\"__HMR_ACTIVE__\");',\n\t\t\t\t\t'const isSsrDirty = typeof window !== \"undefined\" && window.__SSR_DIRTY__;',\n\t\t\t\t\t'const shouldHydrate = typeof window === \"undefined\" ? false : !(isHMR || isSsrDirty);',\n\t\t\t\t\t'const app = shouldHydrate ? createSSRApp(Comp, mergedProps) : createApp(Comp, mergedProps);',\n\t\t\t\t\t'app.mount(\"#root\");',\n\t\t\t\t\t'',\n\t\t\t\t\t'// Store app instance for HMR - used for manual component updates',\n\t\t\t\t\t'if (typeof window !== \"undefined\") {',\n\t\t\t\t\t' window.__VUE_APP__ = app;',\n\t\t\t\t\t'}',\n\t\t\t\t\t'',\n\t\t\t\t\t'// Post-mount: Apply preserved state to reactive refs in component tree',\n\t\t\t\t\t'// This restores state that lives in refs (like count) rather than props',\n\t\t\t\t\t'if (typeof window !== \"undefined\" && Object.keys(preservedState).length > 0) {',\n\t\t\t\t\t' requestAnimationFrame(function() {',\n\t\t\t\t\t' if (window.__VUE_APP__ && window.__VUE_APP__._instance) {',\n\t\t\t\t\t' applyPreservedState(window.__VUE_APP__._instance, preservedState);',\n\t\t\t\t\t' }',\n\t\t\t\t\t' });',\n\t\t\t\t\t'}',\n\t\t\t\t\t'',\n\t\t\t\t\t'function applyPreservedState(instance, state) {',\n\t\t\t\t\t' // Apply to root component setupState',\n\t\t\t\t\t' if (instance.setupState) {',\n\t\t\t\t\t' Object.keys(state).forEach(function(key) {',\n\t\t\t\t\t' const ref = instance.setupState[key];',\n\t\t\t\t\t' if (ref && typeof ref === \"object\" && \"value\" in ref) {',\n\t\t\t\t\t' ref.value = state[key];',\n\t\t\t\t\t' }',\n\t\t\t\t\t' });',\n\t\t\t\t\t' }',\n\t\t\t\t\t' // Also apply to child components',\n\t\t\t\t\t' if (instance.subTree) {',\n\t\t\t\t\t' walkAndApply(instance.subTree, state);',\n\t\t\t\t\t' }',\n\t\t\t\t\t'}',\n\t\t\t\t\t'',\n\t\t\t\t\t'function walkAndApply(vnode, state) {',\n\t\t\t\t\t' if (!vnode) return;',\n\t\t\t\t\t' if (vnode.component && vnode.component.setupState) {',\n\t\t\t\t\t' Object.keys(state).forEach(function(key) {',\n\t\t\t\t\t' const ref = vnode.component.setupState[key];',\n\t\t\t\t\t' if (ref && typeof ref === \"object\" && \"value\" in ref) {',\n\t\t\t\t\t' ref.value = state[key];',\n\t\t\t\t\t' }',\n\t\t\t\t\t' });',\n\t\t\t\t\t' }',\n\t\t\t\t\t' if (vnode.children && Array.isArray(vnode.children)) {',\n\t\t\t\t\t' vnode.children.forEach(function(child) { walkAndApply(child, state); });',\n\t\t\t\t\t' }',\n\t\t\t\t\t' if (vnode.component && vnode.component.subTree) {',\n\t\t\t\t\t' walkAndApply(vnode.component.subTree, state);',\n\t\t\t\t\t' }',\n\t\t\t\t\t'}',\n\t\t\t\t\t'',\n\t\t\t\t\t'// Clear preserved state after applying',\n\t\t\t\t\t'if (typeof window !== \"undefined\") {',\n\t\t\t\t\t' window.__ABS_SLOT_HYDRATION_PENDING__ = shouldHydrate;',\n\t\t\t\t\t' var releaseStreamingSlots = function() {',\n\t\t\t\t\t' window.__ABS_SLOT_HYDRATION_PENDING__ = false;',\n\t\t\t\t\t' if (typeof window.__ABS_SLOT_FLUSH__ === \"function\") {',\n\t\t\t\t\t' window.__ABS_SLOT_FLUSH__();',\n\t\t\t\t\t' }',\n\t\t\t\t\t' };',\n\t\t\t\t\t' if (shouldHydrate && typeof requestAnimationFrame === \"function\") {',\n\t\t\t\t\t' requestAnimationFrame(function() {',\n\t\t\t\t\t' requestAnimationFrame(releaseStreamingSlots);',\n\t\t\t\t\t' });',\n\t\t\t\t\t' } else if (typeof window.__ABS_SLOT_FLUSH__ === \"function\") {',\n\t\t\t\t\t' window.__ABS_SLOT_FLUSH__();',\n\t\t\t\t\t' } else if (typeof setTimeout === \"function\") {',\n\t\t\t\t\t' setTimeout(releaseStreamingSlots, 0);',\n\t\t\t\t\t' }',\n\t\t\t\t\t'}',\n\t\t\t\t\t'if (typeof window !== \"undefined\") {',\n\t\t\t\t\t' window.__HMR_PRESERVED_STATE__ = undefined;',\n\t\t\t\t\t'}'\n\t\t\t\t].join('\\n')\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tclientPath: clientOutputFile,\n\t\t\t\tcssPaths: result.cssPaths,\n\t\t\t\tindexPath: indexOutputFile,\n\t\t\t\tserverPath: result.serverPath\n\t\t\t};\n\t\t})\n\t);\n\n\tawait Promise.all(\n\t\tArray.from(allTsHelperPaths).map(async (tsPath) => {\n\t\t\tconst sourceCode = await file(tsPath).text();\n\t\t\tconst transpiledCode = transpiler.transformSync(sourceCode);\n\t\t\tconst relativeJsPath = relative(vueRootDir, tsPath).replace(\n\t\t\t\t/\\.ts$/,\n\t\t\t\t'.js'\n\t\t\t);\n\t\t\tconst outClientPath = join(clientOutputDir, relativeJsPath);\n\t\t\tconst outServerPath = join(serverOutputDir, relativeJsPath);\n\t\t\tawait mkdir(dirname(outClientPath), { recursive: true });\n\t\t\tawait mkdir(dirname(outServerPath), { recursive: true });\n\t\t\tawait write(outClientPath, transpiledCode);\n\t\t\tawait write(outServerPath, transpiledCode);\n\t\t})\n\t);\n\n\treturn {\n\t\t// Export HMR metadata from vueHmrMetadata map (populated during compilation)\n\t\thmrMetadata: new Map(vueHmrMetadata),\n\t\tvueClientPaths: compiledPages.map((result) => result.clientPath),\n\t\tvueCssPaths: compiledPages.flatMap((result) => result.cssPaths),\n\t\tvueIndexPaths: compiledPages.map((result) => result.indexPath),\n\t\tvueServerPaths: compiledPages.map((result) => result.serverPath)\n\t};\n};\n"
6
+ ],
7
+ "mappings": "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",
8
+ "debugId": "09DC66352653B6F864756E2164756E21",
9
+ "names": []
10
+ }
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  compileSvelteServerModule
4
- } from "./chunk-dr9yqsdb.js";
4
+ } from "./chunk-9ve9jq72.js";
5
5
  import {
6
6
  getIslandMarkerAttributes,
7
7
  serializeIslandAttributes
@@ -181,4 +181,4 @@ var renderIslandResult = async (registry, props) => {
181
181
  export { renderIslandMarkup, renderIslandResult };
182
182
 
183
183
  //# debugId=422A05E95D6E1A7B64756E2164756E21
184
- //# sourceMappingURL=chunk-4m75s5xf.js.map
184
+ //# sourceMappingURL=chunk-8cyvzcmc.js.map
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  devBuild
4
- } from "./chunk-pjzn557h.js";
4
+ } from "./chunk-rmc1aqky.js";
5
5
  import"./chunk-vkrpm7kc.js";
6
6
  import"./chunk-cg95827x.js";
7
7
  import"./chunk-hcsmxw1v.js";
@@ -19,8 +19,8 @@ import"./chunk-1e9vsfyh.js";
19
19
  import"./chunk-hyjs4bqs.js";
20
20
  import"./chunk-t81a331y.js";
21
21
  import"./chunk-85n68sy6.js";
22
- import"./chunk-h5eee7jy.js";
23
- import"./chunk-kndkjsya.js";
22
+ import"./chunk-3qswe70c.js";
23
+ import"./chunk-d7mwkzry.js";
24
24
  import"./chunk-h5bbfn3n.js";
25
25
  import"./chunk-11zpfqz6.js";
26
26
  import"./chunk-a9mvyp04.js";
@@ -33,11 +33,11 @@ import"./chunk-gf0ygptk.js";
33
33
  import"./chunk-851whwc7.js";
34
34
  import"./chunk-s6defjk2.js";
35
35
  import"./chunk-p5504p14.js";
36
- import"./chunk-4m75s5xf.js";
37
- import"./chunk-dr9yqsdb.js";
36
+ import"./chunk-8cyvzcmc.js";
37
+ import"./chunk-9ve9jq72.js";
38
38
  import"./chunk-7fw6x3js.js";
39
39
  import"./chunk-mbazhahf.js";
40
- import"./chunk-6fkgm9s5.js";
40
+ import"./chunk-xnt8c6h2.js";
41
41
  import"./chunk-qh75agse.js";
42
42
  import"./chunk-2f21eenc.js";
43
43
  import"./chunk-8kcfffry.js";
@@ -48,4 +48,4 @@ export {
48
48
  };
49
49
 
50
50
  //# debugId=168CA101CFD7E28A64756E2164756E21
51
- //# sourceMappingURL=chunk-6nyta6wa.js.map
51
+ //# sourceMappingURL=chunk-9939da67.js.map
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-mbazhahf.js";
9
9
  import {
10
10
  createSvelteStylePreprocessor
11
- } from "./chunk-6fkgm9s5.js";
11
+ } from "./chunk-xnt8c6h2.js";
12
12
  import {
13
13
  __require
14
14
  } from "./chunk-bmgqm774.js";
@@ -200,4 +200,4 @@ var compileSvelteServerModule = async (sourcePath) => {
200
200
  export { compileSvelteServerModule };
201
201
 
202
202
  //# debugId=7E4C5416175915DB64756E2164756E21
203
- //# sourceMappingURL=chunk-dr9yqsdb.js.map
203
+ //# sourceMappingURL=chunk-9ve9jq72.js.map
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  compileStyleSource
4
- } from "./chunk-6fkgm9s5.js";
4
+ } from "./chunk-xnt8c6h2.js";
5
5
  import {
6
6
  __require
7
7
  } from "./chunk-bmgqm774.js";
@@ -258,4 +258,4 @@ var warmTailwindCompiler = async (tailwind) => {
258
258
  export { extractCandidates, disposeTailwindCompiler, incrementalTailwindBuild, warmTailwindCompiler };
259
259
 
260
260
  //# debugId=98DF22AA58613E2464756E2164756E21
261
- //# sourceMappingURL=chunk-kndkjsya.js.map
261
+ //# sourceMappingURL=chunk-d7mwkzry.js.map
@@ -75,11 +75,11 @@ import {
75
75
  logStartupTimingBlock,
76
76
  setCurrentPageIslandMetadata,
77
77
  transformStaticPagesWithIslands
78
- } from "./chunk-h5eee7jy.js";
78
+ } from "./chunk-3qswe70c.js";
79
79
  import {
80
80
  disposeTailwindCompiler,
81
81
  incrementalTailwindBuild
82
- } from "./chunk-kndkjsya.js";
82
+ } from "./chunk-d7mwkzry.js";
83
83
  import {
84
84
  scanEntryPoints
85
85
  } from "./chunk-11zpfqz6.js";
@@ -104,7 +104,7 @@ import {
104
104
  getStyleBaseName,
105
105
  isStyleModulePath,
106
106
  isStylePath
107
- } from "./chunk-6fkgm9s5.js";
107
+ } from "./chunk-xnt8c6h2.js";
108
108
  import {
109
109
  BUN_BUILD_WARNING_SUPPRESSION,
110
110
  DEFAULT_DEBOUNCE_MS,
@@ -1054,28 +1054,28 @@ var build = async ({
1054
1054
  { vueClientPaths: islandVueClientPaths },
1055
1055
  { clientPaths: islandAngularClientPaths }
1056
1056
  ] = await Promise.all([
1057
- shouldCompileSvelte ? tracePhase("compile/svelte", () => import("./chunk-xzvy9hr4.js").then((mod) => mod.compileSvelte(svelteEntries, svelteDir, new Map, hmr, styleTransformConfig))) : {
1057
+ shouldCompileSvelte ? tracePhase("compile/svelte", () => import("./chunk-x09cskqd.js").then((mod) => mod.compileSvelte(svelteEntries, svelteDir, new Map, hmr, styleTransformConfig))) : {
1058
1058
  svelteClientPaths: [...emptyStringArray],
1059
1059
  svelteIndexPaths: [...emptyStringArray],
1060
1060
  svelteServerPaths: [...emptyStringArray]
1061
1061
  },
1062
- shouldCompileVue ? tracePhase("compile/vue", () => import("./chunk-xrmjy8kk.js").then((mod) => mod.compileVue(vueEntries, vueDir, hmr, styleTransformConfig))) : {
1062
+ shouldCompileVue ? tracePhase("compile/vue", () => import("./chunk-5f67rsed.js").then((mod) => mod.compileVue(vueEntries, vueDir, hmr, styleTransformConfig))) : {
1063
1063
  vueClientPaths: [...emptyStringArray],
1064
1064
  vueCssPaths: [...emptyStringArray],
1065
1065
  vueIndexPaths: [...emptyStringArray],
1066
1066
  vueServerPaths: [...emptyStringArray]
1067
1067
  },
1068
- shouldCompileAngular ? tracePhase("compile/angular", () => import("./chunk-9a307ca6.js").then((mod) => mod.compileAngular(angularEntries, angularDir, hmr, styleTransformConfig))) : {
1068
+ shouldCompileAngular ? tracePhase("compile/angular", () => import("./chunk-ynb0qx79.js").then((mod) => mod.compileAngular(angularEntries, angularDir, hmr, styleTransformConfig))) : {
1069
1069
  clientPaths: [...emptyStringArray],
1070
1070
  serverPaths: [...emptyStringArray]
1071
1071
  },
1072
- shouldCompileIslandSvelte ? tracePhase("compile/island-svelte", () => import("./chunk-xzvy9hr4.js").then((mod) => mod.compileSvelte(islandSvelteSources, svelteDir, new Map, hmr, styleTransformConfig))) : {
1072
+ shouldCompileIslandSvelte ? tracePhase("compile/island-svelte", () => import("./chunk-x09cskqd.js").then((mod) => mod.compileSvelte(islandSvelteSources, svelteDir, new Map, hmr, styleTransformConfig))) : {
1073
1073
  svelteClientPaths: [...emptyStringArray]
1074
1074
  },
1075
- shouldCompileIslandVue ? tracePhase("compile/island-vue", () => import("./chunk-xrmjy8kk.js").then((mod) => mod.compileVue(islandVueSources, vueDir, hmr, styleTransformConfig))) : {
1075
+ shouldCompileIslandVue ? tracePhase("compile/island-vue", () => import("./chunk-5f67rsed.js").then((mod) => mod.compileVue(islandVueSources, vueDir, hmr, styleTransformConfig))) : {
1076
1076
  vueClientPaths: [...emptyStringArray]
1077
1077
  },
1078
- shouldCompileIslandAngular ? tracePhase("compile/island-angular", () => import("./chunk-9a307ca6.js").then((mod) => mod.compileAngular(islandAngularSources, angularDir, hmr, styleTransformConfig))) : {
1078
+ shouldCompileIslandAngular ? tracePhase("compile/island-angular", () => import("./chunk-ynb0qx79.js").then((mod) => mod.compileAngular(islandAngularSources, angularDir, hmr, styleTransformConfig))) : {
1079
1079
  clientPaths: [...emptyStringArray]
1080
1080
  }
1081
1081
  ]);
@@ -1151,9 +1151,9 @@ var build = async ({
1151
1151
  angularConvResult
1152
1152
  ] = await Promise.all([
1153
1153
  tracePhase("compile/convention-react", compileReactConventions),
1154
- svelteConventionSources.length > 0 && svelteDir ? tracePhase("compile/convention-svelte", () => import("./chunk-xzvy9hr4.js").then((mod) => mod.compileSvelte(svelteConventionSources, svelteDir, new Map, false, styleTransformConfig))) : { svelteServerPaths: emptyStringArray },
1155
- vueConventionSources.length > 0 && vueDir ? tracePhase("compile/convention-vue", () => import("./chunk-xrmjy8kk.js").then((mod) => mod.compileVue(vueConventionSources, vueDir, false, styleTransformConfig))) : { vueServerPaths: emptyStringArray },
1156
- angularConventionSources.length > 0 && angularDir ? tracePhase("compile/convention-angular", () => import("./chunk-9a307ca6.js").then((mod) => mod.compileAngular(angularConventionSources, angularDir, hmr, styleTransformConfig))) : { serverPaths: emptyStringArray }
1154
+ svelteConventionSources.length > 0 && svelteDir ? tracePhase("compile/convention-svelte", () => import("./chunk-x09cskqd.js").then((mod) => mod.compileSvelte(svelteConventionSources, svelteDir, new Map, false, styleTransformConfig))) : { svelteServerPaths: emptyStringArray },
1155
+ vueConventionSources.length > 0 && vueDir ? tracePhase("compile/convention-vue", () => import("./chunk-5f67rsed.js").then((mod) => mod.compileVue(vueConventionSources, vueDir, false, styleTransformConfig))) : { vueServerPaths: emptyStringArray },
1156
+ angularConventionSources.length > 0 && angularDir ? tracePhase("compile/convention-angular", () => import("./chunk-ynb0qx79.js").then((mod) => mod.compileAngular(angularConventionSources, angularDir, hmr, styleTransformConfig))) : { serverPaths: emptyStringArray }
1157
1157
  ]);
1158
1158
  const bundleConventionFiles = async (framework, compiledPaths) => {
1159
1159
  const destDir = join2(buildPath, "conventions", framework);
@@ -1366,7 +1366,10 @@ var build = async ({
1366
1366
  format: "esm",
1367
1367
  naming: `[dir]/[name].[hash].[ext]`,
1368
1368
  outdir: serverOutDir,
1369
- plugins: [stylePreprocessorPlugin],
1369
+ plugins: [
1370
+ stylePreprocessorPlugin,
1371
+ ...angularDir ? [createAngularLinkerPlugin(hmr)] : []
1372
+ ],
1370
1373
  root: serverRoot,
1371
1374
  target: "bun",
1372
1375
  throw: false,
@@ -2321,7 +2324,7 @@ var mapSourceFileToManifestKeys = (sourceFile, framework, resolvedPaths) => {
2321
2324
  };
2322
2325
 
2323
2326
  // src/dev/rebuildTrigger.ts
2324
- var moduleServerPromise = import("./chunk-3c7mpj3m.js");
2327
+ var moduleServerPromise = import("./chunk-zrg9d4zw.js");
2325
2328
  var getModuleServer = () => moduleServerPromise;
2326
2329
  var runSequentially = (items, action) => items.reduce((chain, item) => chain.then(() => action(item)), Promise.resolve());
2327
2330
  var getStyleTransformConfig = (config) => createStyleTransformConfig(config.stylePreprocessors, config.postcss);
@@ -2750,7 +2753,7 @@ var broadcastAngularPageUpdates = (state, pagesToUpdate, manifest, startTime) =>
2750
2753
  });
2751
2754
  };
2752
2755
  var compileAndBundleAngular = async (state, pageEntries, angularDir) => {
2753
- const { compileAngular } = await import("./chunk-9a307ca6.js");
2756
+ const { compileAngular } = await import("./chunk-ynb0qx79.js");
2754
2757
  const { clientPaths, serverPaths } = await compileAngular(pageEntries, angularDir, true, getStyleTransformConfig(state.config));
2755
2758
  serverPaths.forEach((serverPath) => {
2756
2759
  const fileBase = basename4(serverPath, ".js");
@@ -2881,7 +2884,7 @@ var bundleReactClient = async (state, reactEntries, reactIndexesPath, buildDir)
2881
2884
  await populateAssetStore(state.assetStore, clientManifest, buildDir);
2882
2885
  };
2883
2886
  var getModuleUrl = async (pageFile) => {
2884
- const { invalidateModule, warmCache, SRC_URL_PREFIX } = await import("./chunk-3c7mpj3m.js");
2887
+ const { invalidateModule, warmCache, SRC_URL_PREFIX } = await import("./chunk-zrg9d4zw.js");
2885
2888
  invalidateModule(pageFile);
2886
2889
  const rel = relative2(process.cwd(), pageFile).replace(/\\/g, "/");
2887
2890
  const url = `${SRC_URL_PREFIX}${rel}`;
@@ -3029,7 +3032,7 @@ var handleSvelteFastPath = async (state, config, filesToRebuild, startTime, onRe
3029
3032
  }
3030
3033
  const { buildDir } = state.resolvedPaths;
3031
3034
  if (svelteFiles.length > 0) {
3032
- const { compileSvelte } = await import("./chunk-xzvy9hr4.js");
3035
+ const { compileSvelte } = await import("./chunk-x09cskqd.js");
3033
3036
  const { build: bunBuild3 } = await Promise.resolve(globalThis.Bun);
3034
3037
  const clientRoot = await computeClientRoot(state.resolvedPaths);
3035
3038
  const { svelteServerPaths, svelteIndexPaths, svelteClientPaths } = await compileSvelte(svelteFiles, svelteDir, new Map, true, getStyleTransformConfig(state.config));
@@ -3409,7 +3412,7 @@ var broadcastVuePageChange = async (state, config, vuePagePath, manifest, durati
3409
3412
  const hmrId = vueRoot ? relative2(vueRoot, vuePagePath).replace(/\\/g, "/").replace(/\.vue$/, "") : baseName;
3410
3413
  const cssKey = `${pascalName}CSS`;
3411
3414
  const cssUrl = manifest[cssKey] || null;
3412
- const { vueHmrMetadata } = await import("./chunk-xrmjy8kk.js");
3415
+ const { vueHmrMetadata } = await import("./chunk-5f67rsed.js");
3413
3416
  const hmrMeta = vueHmrMetadata.get(resolve9(vuePagePath));
3414
3417
  const changeType = hmrMeta?.changeType ?? "full";
3415
3418
  if (changeType === "style-only") {
@@ -4308,7 +4311,7 @@ var devBuild = async (config) => {
4308
4311
  }
4309
4312
  recordStep("load vendor files", stepStartedAt);
4310
4313
  stepStartedAt = performance.now();
4311
- const { warmCompilers } = await import("./chunk-3c7mpj3m.js");
4314
+ const { warmCompilers } = await import("./chunk-zrg9d4zw.js");
4312
4315
  await warmCompilers({
4313
4316
  svelte: Boolean(config.svelteDirectory),
4314
4317
  vue: Boolean(config.vueDirectory)
@@ -4316,7 +4319,7 @@ var devBuild = async (config) => {
4316
4319
  recordStep("warm compilers", stepStartedAt);
4317
4320
  if (config.tailwind) {
4318
4321
  stepStartedAt = performance.now();
4319
- const { warmTailwindCompiler } = await import("./chunk-smgj0epn.js");
4322
+ const { warmTailwindCompiler } = await import("./chunk-txhm2vb5.js");
4320
4323
  await warmTailwindCompiler(config.tailwind);
4321
4324
  recordStep("warm tailwind compiler", stepStartedAt);
4322
4325
  }
@@ -4343,5 +4346,5 @@ var devBuild = async (config) => {
4343
4346
 
4344
4347
  export { build, devBuild };
4345
4348
 
4346
- //# debugId=5026BC8B88390C3464756E2164756E21
4347
- //# sourceMappingURL=chunk-pjzn557h.js.map
4349
+ //# debugId=EC404FA446B0D84F64756E2164756E21
4350
+ //# sourceMappingURL=chunk-rmc1aqky.js.map