@absolutejs/absolute 0.19.0-beta.808 → 0.19.0-beta.809

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 (260) hide show
  1. package/dist/angular/browser.js +9801 -57
  2. package/dist/angular/browser.js.map +246 -4
  3. package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
  4. package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
  5. package/dist/angular/index.js +14877 -60
  6. package/dist/angular/index.js.map +281 -4
  7. package/dist/angular/server.js +5610 -45
  8. package/dist/angular/server.js.map +51 -3
  9. package/dist/build.js +18092 -45
  10. package/dist/build.js.map +99 -3
  11. package/dist/cli/index.js +317 -86
  12. package/dist/client/index.js +1100 -40
  13. package/dist/client/index.js.map +24 -4
  14. package/dist/core/streamingSlotRegistrar.js +108 -11
  15. package/dist/core/streamingSlotRegistrar.js.map +4 -3
  16. package/dist/core/streamingSlotRegistry.js +169 -7
  17. package/dist/core/streamingSlotRegistry.js.map +5 -3
  18. package/dist/index.js +19957 -547
  19. package/dist/index.js.map +116 -3
  20. package/dist/islands/browser.js +228 -9
  21. package/dist/islands/browser.js.map +9 -4
  22. package/dist/islands/index.js +1908 -17
  23. package/dist/islands/index.js.map +27 -3
  24. package/dist/react/browser.js +328 -12
  25. package/dist/react/browser.js.map +12 -4
  26. package/dist/react/components/index.js +167 -16
  27. package/dist/react/components/index.js.map +6 -3
  28. package/dist/react/hooks/index.js +183 -8
  29. package/dist/react/hooks/index.js.map +7 -3
  30. package/dist/react/index.js +3627 -36
  31. package/dist/react/index.js.map +45 -4
  32. package/dist/react/jsxDevRuntimeCompat.js +61 -2
  33. package/dist/react/jsxDevRuntimeCompat.js.map +2 -2
  34. package/dist/react/server.js +1789 -18
  35. package/dist/react/server.js.map +21 -3
  36. package/dist/src/angular/injectorPatch.d.ts +1 -0
  37. package/dist/src/index.d.ts +1 -0
  38. package/dist/svelte/browser.js +247 -12
  39. package/dist/svelte/browser.js.map +10 -3
  40. package/dist/svelte/index.js +3732 -37
  41. package/dist/svelte/index.js.map +47 -4
  42. package/dist/svelte/server.js +2794 -21
  43. package/dist/svelte/server.js.map +27 -3
  44. package/dist/vue/browser.js +348 -12
  45. package/dist/vue/browser.js.map +12 -4
  46. package/dist/vue/components/Image.js +240 -7
  47. package/dist/vue/components/Image.js.map +6 -3
  48. package/dist/vue/components/index.js +544 -11
  49. package/dist/vue/components/index.js.map +9 -3
  50. package/dist/vue/index.js +4212 -52
  51. package/dist/vue/index.js.map +50 -4
  52. package/dist/vue/server.js +1849 -18
  53. package/dist/vue/server.js.map +21 -3
  54. package/package.json +1 -1
  55. package/dist/chunk-0867j0r0.js +0 -136
  56. package/dist/chunk-0867j0r0.js.map +0 -10
  57. package/dist/chunk-0kdc6r16.js +0 -20
  58. package/dist/chunk-0kdc6r16.js.map +0 -10
  59. package/dist/chunk-102fp7xe.js +0 -63
  60. package/dist/chunk-102fp7xe.js.map +0 -10
  61. package/dist/chunk-11zpfqz6.js +0 -19
  62. package/dist/chunk-11zpfqz6.js.map +0 -10
  63. package/dist/chunk-1rfh7hw9.js +0 -319
  64. package/dist/chunk-1rfh7hw9.js.map +0 -11
  65. package/dist/chunk-25v9t56f.js +0 -29
  66. package/dist/chunk-25v9t56f.js.map +0 -11
  67. package/dist/chunk-2f21eenc.js +0 -21
  68. package/dist/chunk-2f21eenc.js.map +0 -10
  69. package/dist/chunk-2ga2znex.js +0 -13
  70. package/dist/chunk-2ga2znex.js.map +0 -9
  71. package/dist/chunk-30yrw0f6.js +0 -33
  72. package/dist/chunk-30yrw0f6.js.map +0 -10
  73. package/dist/chunk-38jwhqcw.js +0 -4410
  74. package/dist/chunk-38jwhqcw.js.map +0 -28
  75. package/dist/chunk-3g91wb4f.js +0 -358
  76. package/dist/chunk-3g91wb4f.js.map +0 -10
  77. package/dist/chunk-3yjzpcne.js +0 -34
  78. package/dist/chunk-3yjzpcne.js.map +0 -10
  79. package/dist/chunk-41bf6aqt.js +0 -17
  80. package/dist/chunk-41bf6aqt.js.map +0 -9
  81. package/dist/chunk-4d39r92n.js +0 -81
  82. package/dist/chunk-4d39r92n.js.map +0 -10
  83. package/dist/chunk-5003emhv.js +0 -17
  84. package/dist/chunk-5003emhv.js.map +0 -10
  85. package/dist/chunk-5f67rsed.js +0 -466
  86. package/dist/chunk-5f67rsed.js.map +0 -10
  87. package/dist/chunk-5fhp1jap.js +0 -9169
  88. package/dist/chunk-5fhp1jap.js.map +0 -236
  89. package/dist/chunk-6pdj08z3.js +0 -73
  90. package/dist/chunk-6pdj08z3.js.map +0 -12
  91. package/dist/chunk-6qjbrt0k.js +0 -13
  92. package/dist/chunk-6qjbrt0k.js.map +0 -9
  93. package/dist/chunk-6sccb4jr.js +0 -14
  94. package/dist/chunk-6sccb4jr.js.map +0 -9
  95. package/dist/chunk-798spvzv.js +0 -50
  96. package/dist/chunk-798spvzv.js.map +0 -10
  97. package/dist/chunk-7fw6x3js.js +0 -131
  98. package/dist/chunk-7fw6x3js.js.map +0 -11
  99. package/dist/chunk-7kjj42xm.js +0 -11
  100. package/dist/chunk-7kjj42xm.js.map +0 -10
  101. package/dist/chunk-7mtstdqn.js +0 -90
  102. package/dist/chunk-7mtstdqn.js.map +0 -10
  103. package/dist/chunk-851whwc7.js +0 -17
  104. package/dist/chunk-851whwc7.js.map +0 -10
  105. package/dist/chunk-85n68sy6.js +0 -103
  106. package/dist/chunk-85n68sy6.js.map +0 -10
  107. package/dist/chunk-8kcfffry.js +0 -35
  108. package/dist/chunk-8kcfffry.js.map +0 -10
  109. package/dist/chunk-8qqxc1h2.js +0 -426
  110. package/dist/chunk-8qqxc1h2.js.map +0 -14
  111. package/dist/chunk-92fsjfpp.js +0 -1731
  112. package/dist/chunk-92fsjfpp.js.map +0 -11
  113. package/dist/chunk-93sqk7be.js +0 -139
  114. package/dist/chunk-93sqk7be.js.map +0 -12
  115. package/dist/chunk-94gvx0hg.js +0 -28
  116. package/dist/chunk-94gvx0hg.js.map +0 -10
  117. package/dist/chunk-9c5tj4k3.js +0 -130
  118. package/dist/chunk-9c5tj4k3.js.map +0 -10
  119. package/dist/chunk-9ve9jq72.js +0 -203
  120. package/dist/chunk-9ve9jq72.js.map +0 -10
  121. package/dist/chunk-9xrsjeem.js +0 -12
  122. package/dist/chunk-9xrsjeem.js.map +0 -9
  123. package/dist/chunk-a9mvyp04.js +0 -87
  124. package/dist/chunk-a9mvyp04.js.map +0 -10
  125. package/dist/chunk-b3gbnrwe.js +0 -21
  126. package/dist/chunk-b3gbnrwe.js.map +0 -10
  127. package/dist/chunk-bmgqm774.js +0 -65
  128. package/dist/chunk-bmgqm774.js.map +0 -9
  129. package/dist/chunk-bxfghpma.js +0 -69
  130. package/dist/chunk-bxfghpma.js.map +0 -10
  131. package/dist/chunk-c1jfjnka.js +0 -74
  132. package/dist/chunk-c1jfjnka.js.map +0 -10
  133. package/dist/chunk-cbkrwmvh.js +0 -80
  134. package/dist/chunk-cbkrwmvh.js.map +0 -10
  135. package/dist/chunk-cdxd7sy2.js +0 -71
  136. package/dist/chunk-cdxd7sy2.js.map +0 -10
  137. package/dist/chunk-cg95827x.js +0 -21
  138. package/dist/chunk-cg95827x.js.map +0 -10
  139. package/dist/chunk-cm0g4q6w.js +0 -149
  140. package/dist/chunk-cm0g4q6w.js.map +0 -10
  141. package/dist/chunk-cwfy538a.js +0 -51
  142. package/dist/chunk-cwfy538a.js.map +0 -9
  143. package/dist/chunk-d7mwkzry.js +0 -261
  144. package/dist/chunk-d7mwkzry.js.map +0 -10
  145. package/dist/chunk-d8w0qm28.js +0 -184
  146. package/dist/chunk-d8w0qm28.js.map +0 -11
  147. package/dist/chunk-d9c0am65.js +0 -12
  148. package/dist/chunk-d9c0am65.js.map +0 -10
  149. package/dist/chunk-daqghmg8.js +0 -12
  150. package/dist/chunk-daqghmg8.js.map +0 -9
  151. package/dist/chunk-e3r9fxaa.js +0 -149
  152. package/dist/chunk-e3r9fxaa.js.map +0 -10
  153. package/dist/chunk-e8eecyrq.js +0 -244
  154. package/dist/chunk-e8eecyrq.js.map +0 -10
  155. package/dist/chunk-ex2hxe0v.js +0 -160
  156. package/dist/chunk-ex2hxe0v.js.map +0 -11
  157. package/dist/chunk-fak944et.js +0 -91
  158. package/dist/chunk-fak944et.js.map +0 -10
  159. package/dist/chunk-ff70rnhd.js +0 -672
  160. package/dist/chunk-ff70rnhd.js.map +0 -15
  161. package/dist/chunk-fygx2ymm.js +0 -118
  162. package/dist/chunk-fygx2ymm.js.map +0 -12
  163. package/dist/chunk-g15qj669.js +0 -271
  164. package/dist/chunk-g15qj669.js.map +0 -11
  165. package/dist/chunk-gd6wmknh.js +0 -121
  166. package/dist/chunk-gd6wmknh.js.map +0 -11
  167. package/dist/chunk-gf0ygptk.js +0 -85
  168. package/dist/chunk-gf0ygptk.js.map +0 -11
  169. package/dist/chunk-gytkmthr.js +0 -220
  170. package/dist/chunk-gytkmthr.js.map +0 -10
  171. package/dist/chunk-h5bbfn3n.js +0 -28
  172. package/dist/chunk-h5bbfn3n.js.map +0 -11
  173. package/dist/chunk-h6mye9r3.js +0 -93
  174. package/dist/chunk-h6mye9r3.js.map +0 -10
  175. package/dist/chunk-hcsmxw1v.js +0 -85
  176. package/dist/chunk-hcsmxw1v.js.map +0 -10
  177. package/dist/chunk-hyjs4bqs.js +0 -8
  178. package/dist/chunk-hyjs4bqs.js.map +0 -10
  179. package/dist/chunk-j88z31ep.js +0 -25
  180. package/dist/chunk-j88z31ep.js.map +0 -10
  181. package/dist/chunk-jn91vzkh.js +0 -66
  182. package/dist/chunk-jn91vzkh.js.map +0 -10
  183. package/dist/chunk-jpkjdgsk.js +0 -167
  184. package/dist/chunk-jpkjdgsk.js.map +0 -11
  185. package/dist/chunk-jwxt8gnp.js +0 -13
  186. package/dist/chunk-jwxt8gnp.js.map +0 -9
  187. package/dist/chunk-kk8w9rh5.js +0 -195
  188. package/dist/chunk-kk8w9rh5.js.map +0 -10
  189. package/dist/chunk-m97ze5hz.js +0 -46
  190. package/dist/chunk-m97ze5hz.js.map +0 -10
  191. package/dist/chunk-mbazhahf.js +0 -60
  192. package/dist/chunk-mbazhahf.js.map +0 -10
  193. package/dist/chunk-mgfwq18r.js +0 -15
  194. package/dist/chunk-mgfwq18r.js.map +0 -9
  195. package/dist/chunk-mtgf69xn.js +0 -88
  196. package/dist/chunk-mtgf69xn.js.map +0 -10
  197. package/dist/chunk-mtxzyxpg.js +0 -102
  198. package/dist/chunk-mtxzyxpg.js.map +0 -10
  199. package/dist/chunk-nehhtthw.js +0 -225
  200. package/dist/chunk-nehhtthw.js.map +0 -10
  201. package/dist/chunk-p5504p14.js +0 -16
  202. package/dist/chunk-p5504p14.js.map +0 -10
  203. package/dist/chunk-pnscgw95.js +0 -90
  204. package/dist/chunk-pnscgw95.js.map +0 -10
  205. package/dist/chunk-pvpp4pvs.js +0 -17
  206. package/dist/chunk-pvpp4pvs.js.map +0 -10
  207. package/dist/chunk-qh75agse.js +0 -95
  208. package/dist/chunk-qh75agse.js.map +0 -10
  209. package/dist/chunk-qxq2zcty.js +0 -52
  210. package/dist/chunk-qxq2zcty.js.map +0 -10
  211. package/dist/chunk-r6e8pytx.js +0 -22
  212. package/dist/chunk-r6e8pytx.js.map +0 -9
  213. package/dist/chunk-r7jmgqnw.js +0 -114
  214. package/dist/chunk-r7jmgqnw.js.map +0 -10
  215. package/dist/chunk-s6defjk2.js +0 -116
  216. package/dist/chunk-s6defjk2.js.map +0 -10
  217. package/dist/chunk-sd39p726.js +0 -619
  218. package/dist/chunk-sd39p726.js.map +0 -10
  219. package/dist/chunk-swrnzs4c.js +0 -63
  220. package/dist/chunk-swrnzs4c.js.map +0 -10
  221. package/dist/chunk-tfe3sb44.js +0 -33
  222. package/dist/chunk-tfe3sb44.js.map +0 -10
  223. package/dist/chunk-tjr0kcev.js +0 -41
  224. package/dist/chunk-tjr0kcev.js.map +0 -9
  225. package/dist/chunk-tx9edm1x.js +0 -34
  226. package/dist/chunk-tx9edm1x.js.map +0 -10
  227. package/dist/chunk-txhm2vb5.js +0 -18
  228. package/dist/chunk-txhm2vb5.js.map +0 -9
  229. package/dist/chunk-v5vmsxmy.js +0 -526
  230. package/dist/chunk-v5vmsxmy.js.map +0 -12
  231. package/dist/chunk-vjhxm8n2.js +0 -29
  232. package/dist/chunk-vjhxm8n2.js.map +0 -9
  233. package/dist/chunk-vkrpm7kc.js +0 -247
  234. package/dist/chunk-vkrpm7kc.js.map +0 -12
  235. package/dist/chunk-w3m4m5we.js +0 -4925
  236. package/dist/chunk-w3m4m5we.js.map +0 -12
  237. package/dist/chunk-wrxtn9ve.js +0 -18
  238. package/dist/chunk-wrxtn9ve.js.map +0 -10
  239. package/dist/chunk-wwzvp0zn.js +0 -192
  240. package/dist/chunk-wwzvp0zn.js.map +0 -10
  241. package/dist/chunk-x09cskqd.js +0 -377
  242. package/dist/chunk-x09cskqd.js.map +0 -10
  243. package/dist/chunk-xnt8c6h2.js +0 -576
  244. package/dist/chunk-xnt8c6h2.js.map +0 -10
  245. package/dist/chunk-xw0tx842.js +0 -13
  246. package/dist/chunk-xw0tx842.js.map +0 -9
  247. package/dist/chunk-xx5b6b9m.js +0 -69
  248. package/dist/chunk-xx5b6b9m.js.map +0 -10
  249. package/dist/chunk-xz1kdswj.js +0 -21
  250. package/dist/chunk-xz1kdswj.js.map +0 -9
  251. package/dist/chunk-y84qnsd3.js +0 -32
  252. package/dist/chunk-y84qnsd3.js.map +0 -10
  253. package/dist/chunk-ywjn0rad.js +0 -14
  254. package/dist/chunk-ywjn0rad.js.map +0 -9
  255. package/dist/chunk-z9nvhm6r.js +0 -13
  256. package/dist/chunk-z9nvhm6r.js.map +0 -9
  257. package/dist/chunk-zhmvdpk6.js +0 -15
  258. package/dist/chunk-zhmvdpk6.js.map +0 -9
  259. package/dist/chunk-zrg9d4zw.js +0 -784
  260. package/dist/chunk-zrg9d4zw.js.map +0 -10
@@ -1,10 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/build/compileSvelte.ts"],
4
- "sourcesContent": [
5
- "import { BASE_36_RADIX } from '../constants';\nimport { existsSync } from 'node:fs';\nimport { mkdir, stat } from 'node:fs/promises';\nimport {\n\tdirname,\n\tjoin,\n\tbasename,\n\textname,\n\tresolve,\n\trelative,\n\tsep\n} from 'node:path';\nimport { env } from 'node:process';\nimport { write, file, Transpiler } from 'bun';\nimport { resolvePackageImport } from './resolvePackageImport';\nimport { buildIslandMetadataExports } from '../islands/sourceMetadata';\nimport { createSvelteStylePreprocessor } from './stylePreprocessor';\nimport { lowerSvelteIslandSyntax } from '../svelte/lowerIslandSyntax';\nimport { lowerSvelteAwaitSlotSyntax } from '../svelte/lowerAwaitSlotSyntax';\nimport { SVELTE_PAGE_ROOT_ID } from '../svelte/renderToReadableStream';\nimport type { StylePreprocessorConfig } from '../../types/build';\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\ntype Built = { ssr: string; client: string; hasAwaitSlot: boolean };\ntype Cache = Map<string, Built>;\n\n// Persistent cache across HMR cycles — avoids recompiling unchanged Svelte components\nconst persistentCache: Cache = new Map();\n\n// Content hash cache to detect unchanged source files\nconst sourceHashCache = new Map<string, string>();\n\nexport const clearSvelteCompilerCache = () => {\n\tpersistentCache.clear();\n\tsourceHashCache.clear();\n};\n\nconst transpiler = new Transpiler({ loader: 'ts', target: 'browser' });\n\nconst removeUnusedRequireHelper = (code: string) => {\n\tconst helperStart = code.indexOf('var __require = /* @__PURE__ */');\n\tif (helperStart === -1) {\n\t\treturn code;\n\t}\n\n\tconst helperEndMarker =\n\t\t\"throw Error('Dynamic require of \\\"' + x + '\\\" is not supported');\";\n\tconst helperEnd = code.indexOf(helperEndMarker, helperStart);\n\tif (helperEnd === -1) {\n\t\treturn code;\n\t}\n\n\tconst statementEnd = code.indexOf('});', helperEnd);\n\tif (statementEnd === -1) {\n\t\treturn code;\n\t}\n\n\tconst stripped = `${code.slice(0, helperStart)}${code.slice(statementEnd + 3)}`;\n\n\treturn /\\b__require\\b/.test(stripped) ? code : stripped;\n};\n\nconst exists = async (path: string) => {\n\ttry {\n\t\tawait stat(path);\n\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nconst resolveRelativeModule = async (spec: string, from: string) => {\n\tif (!spec.startsWith('.')) return null;\n\n\tconst basePath = resolve(dirname(from), spec);\n\tconst candidates = [\n\t\tbasePath,\n\t\t`${basePath}.ts`,\n\t\t`${basePath}.js`,\n\t\t`${basePath}.mjs`,\n\t\t`${basePath}.cjs`,\n\t\t`${basePath}.json`,\n\t\t`${basePath}.svelte`,\n\t\t`${basePath}.svelte.ts`,\n\t\t`${basePath}.svelte.js`,\n\t\tjoin(basePath, 'index.ts'),\n\t\tjoin(basePath, 'index.js'),\n\t\tjoin(basePath, 'index.mjs'),\n\t\tjoin(basePath, 'index.cjs'),\n\t\tjoin(basePath, 'index.json'),\n\t\tjoin(basePath, 'index.svelte'),\n\t\tjoin(basePath, 'index.svelte.ts'),\n\t\tjoin(basePath, 'index.svelte.js')\n\t];\n\n\tconst checks = await Promise.all(candidates.map(exists));\n\n\treturn candidates.find((_, index) => checks[index]) ?? null;\n};\n\nconst resolveSvelte = async (spec: string, from: string) => {\n\t// Try bare module imports (e.g. \"@absolutejs/absolute/svelte/components/Image.svelte\")\n\tif (!spec.startsWith('.') && !spec.startsWith('/')) {\n\t\tconst resolved = resolvePackageImport(spec);\n\n\t\treturn resolved && /\\.svelte(\\.(?:ts|js))?$/.test(resolved)\n\t\t\t? resolved\n\t\t\t: null;\n\t}\n\n\tconst basePath = resolve(dirname(from), spec);\n\tconst explicit = /\\.(svelte|svelte\\.(?:ts|js))$/.test(basePath);\n\n\tif (!explicit) {\n\t\tconst extensions = ['.svelte', '.svelte.ts', '.svelte.js'];\n\t\tconst paths = extensions.map((ext) => `${basePath}${ext}`);\n\t\tconst checks = await Promise.all(paths.map(exists));\n\t\tconst match = paths.find((_, index) => checks[index]);\n\n\t\treturn match ?? null;\n\t}\n\n\tif (await exists(basePath)) return basePath;\n\tif (!basePath.endsWith('.svelte')) return null;\n\n\tconst tsPath = `${basePath}.ts`;\n\tif (await exists(tsPath)) return tsPath;\n\n\tconst jsPath = `${basePath}.js`;\n\tif (await exists(jsPath)) return jsPath;\n\n\treturn null;\n};\n\nconst addModuleRewrite = (\n\trewrites: Map<string, { server: string; client: string }>,\n\trawSpec: string,\n\tresolvedModule: string,\n\tssrOutputDir: string,\n\tclientOutputDir: string\n) => {\n\tconst toServer = relative(ssrOutputDir, resolvedModule).replace(/\\\\/g, '/');\n\tconst toClient = relative(clientOutputDir, resolvedModule).replace(\n\t\t/\\\\/g,\n\t\t'/'\n\t);\n\n\trewrites.set(rawSpec, {\n\t\tclient:\n\t\t\ttoClient.startsWith('.') || toClient.startsWith('/')\n\t\t\t\t? toClient\n\t\t\t\t: `./${toClient}`,\n\t\tserver: toServer.startsWith('.') ? toServer : `./${toServer}`\n\t});\n};\n\nexport const compileSvelte = async (\n\tentryPoints: string[],\n\tsvelteRoot: string,\n\tcache: Cache = new Map(),\n\tisDev = false,\n\tstylePreprocessors?: StylePreprocessorConfig\n) => {\n\tconst { compile, compileModule, preprocess } = await import(\n\t\t'svelte/compiler'\n\t);\n\n\tconst generatedDir = join(svelteRoot, 'generated');\n\tconst clientDir = join(generatedDir, 'client');\n\tconst indexDir = join(generatedDir, 'indexes');\n\tconst serverDir = join(generatedDir, 'server');\n\n\tawait Promise.all(\n\t\t[clientDir, indexDir, serverDir].map((dir) =>\n\t\t\tmkdir(dir, { recursive: true })\n\t\t)\n\t);\n\n\tconst dev = env.NODE_ENV !== 'production';\n\n\tconst build = async (src: string) => {\n\t\tconst memoized = cache.get(src);\n\t\tif (memoized) return memoized;\n\n\t\tconst raw = await file(src).text();\n\t\tconst islandMetadataExports = buildIslandMetadataExports(raw);\n\n\t\t// Check if source is unchanged since last compilation\n\t\tconst contentHash = Bun.hash(raw).toString(BASE_36_RADIX);\n\t\tconst prevHash = sourceHashCache.get(src);\n\t\tconst persistent = persistentCache.get(src);\n\n\t\tif (prevHash === contentHash && persistent) {\n\t\t\tcache.set(src, persistent);\n\n\t\t\treturn persistent;\n\t\t}\n\n\t\tsourceHashCache.set(src, contentHash);\n\t\tconst isModule =\n\t\t\tsrc.endsWith('.svelte.ts') || src.endsWith('.svelte.js');\n\t\tconst loweredAwaitServerSource = isModule\n\t\t\t? { code: raw, transformed: false }\n\t\t\t: lowerSvelteAwaitSlotSyntax(raw);\n\t\tconst loweredAwaitClientSource = isModule\n\t\t\t? loweredAwaitServerSource\n\t\t\t: lowerSvelteAwaitSlotSyntax(raw);\n\t\tconst loweredServerSource = isModule\n\t\t\t? loweredAwaitServerSource\n\t\t\t: lowerSvelteIslandSyntax(loweredAwaitServerSource.code, 'server');\n\t\tconst loweredClientSource = isModule\n\t\t\t? loweredAwaitClientSource\n\t\t\t: lowerSvelteIslandSyntax(loweredAwaitClientSource.code, 'client');\n\t\tconst transformedByLowering =\n\t\t\tloweredAwaitServerSource.transformed ||\n\t\t\tloweredAwaitClientSource.transformed ||\n\t\t\tloweredServerSource.transformed ||\n\t\t\tloweredClientSource.transformed;\n\t\tconst svelteStylePreprocessor =\n\t\t\tcreateSvelteStylePreprocessor(stylePreprocessors);\n\t\tconst preprocessedServer = isModule\n\t\t\t? loweredServerSource.code\n\t\t\t: (\n\t\t\t\t\tawait preprocess(\n\t\t\t\t\t\tloweredServerSource.code,\n\t\t\t\t\t\tsvelteStylePreprocessor\n\t\t\t\t\t)\n\t\t\t\t).code;\n\t\tconst preprocessedClient = isModule\n\t\t\t? loweredClientSource.code\n\t\t\t: (\n\t\t\t\t\tawait preprocess(\n\t\t\t\t\t\tloweredClientSource.code,\n\t\t\t\t\t\tsvelteStylePreprocessor\n\t\t\t\t\t)\n\t\t\t\t).code;\n\t\tconst transpiledServer =\n\t\t\tsrc.endsWith('.ts') || src.endsWith('.svelte.ts')\n\t\t\t\t? transpiler.transformSync(preprocessedServer)\n\t\t\t\t: preprocessedServer;\n\t\tconst transpiledClient =\n\t\t\tsrc.endsWith('.ts') || src.endsWith('.svelte.ts')\n\t\t\t\t? transpiler.transformSync(preprocessedClient)\n\t\t\t\t: preprocessedClient;\n\n\t\tconst rawRel = dirname(relative(svelteRoot, src)).replace(/\\\\/g, '/');\n\t\t// When a source file lives outside svelteRoot (e.g. src/svelte/components/Head.svelte\n\t\t// imported from example/svelte/pages/), the relative path starts with \"../\".\n\t\t// Use cwd-relative path so compiled output stays inside generated/.\n\t\tconst relDir = rawRel.startsWith('..')\n\t\t\t? `_ext/${relative(process.cwd(), dirname(src)).replace(/\\\\/g, '/')}`\n\t\t\t: rawRel;\n\t\tconst baseName = basename(src).replace(/\\.svelte(\\.(ts|js))?$/, '');\n\n\t\tconst importPaths = Array.from(\n\t\t\ttranspiledServer.matchAll(/from\\s+['\"]([^'\"]+)['\"]/g)\n\t\t)\n\t\t\t.map((match) => match[1])\n\t\t\t.filter((path): path is string => path !== undefined);\n\n\t\tconst resolvedModuleImports = await Promise.all(\n\t\t\timportPaths.map((importPath) =>\n\t\t\t\tresolveRelativeModule(importPath, src)\n\t\t\t)\n\t\t);\n\t\tconst resolvedImports = await Promise.all(\n\t\t\timportPaths.map((importPath) => resolveSvelte(importPath, src))\n\t\t);\n\t\tconst childSources = resolvedImports.filter(\n\t\t\t(path): path is string => path !== null\n\t\t);\n\t\tconst childBuilt = await Promise.all(\n\t\t\tchildSources.map((child) => build(child))\n\t\t);\n\t\tconst hasAwaitSlotFromChildren = childBuilt.some(\n\t\t\t(child) => child.hasAwaitSlot\n\t\t);\n\t\t// Build a map of original import specifiers to the correct path from the\n\t\t// generated output file. Svelte child components may point to compiled\n\t\t// siblings; plain TS/JS helpers should resolve back to their original\n\t\t// source modules because they are not separately compiled here.\n\t\tconst externalRewrites = new Map<\n\t\t\tstring,\n\t\t\t{ server: string; client: string }\n\t\t>();\n\t\tconst ssrOutputDir = dirname(join(serverDir, relDir, `${baseName}.js`));\n\t\tconst clientOutputDir = dirname(\n\t\t\tjoin(clientDir, relDir, `${baseName}.js`)\n\t\t);\n\n\t\tfor (let idx = 0; idx < importPaths.length; idx++) {\n\t\t\tconst rawSpec = importPaths[idx];\n\t\t\tif (!rawSpec) continue;\n\t\t\tconst resolved = resolvedImports[idx];\n\t\t\tconst resolvedModule = resolvedModuleImports[idx];\n\n\t\t\tif (!resolved && resolvedModule)\n\t\t\t\taddModuleRewrite(\n\t\t\t\t\texternalRewrites,\n\t\t\t\t\trawSpec,\n\t\t\t\t\tresolvedModule,\n\t\t\t\t\tssrOutputDir,\n\t\t\t\t\tclientOutputDir\n\t\t\t\t);\n\t\t\tif (!resolved) continue;\n\n\t\t\tconst childRel = relative(svelteRoot, resolved).replace(/\\\\/g, '/');\n\t\t\tif (!childRel.startsWith('..')) continue;\n\n\t\t\tconst childBuilt = cache.get(resolved);\n\t\t\tif (!childBuilt) continue;\n\n\t\t\tconst origSpec = rawSpec.replace(\n\t\t\t\t/\\.svelte(?:\\.(?:ts|js))?$/,\n\t\t\t\t'.js'\n\t\t\t);\n\t\t\tconst toServer = relative(ssrOutputDir, childBuilt.ssr).replace(\n\t\t\t\t/\\\\/g,\n\t\t\t\t'/'\n\t\t\t);\n\t\t\tconst toClient = relative(\n\t\t\t\tclientOutputDir,\n\t\t\t\tchildBuilt.client\n\t\t\t).replace(/\\\\/g, '/');\n\n\t\t\texternalRewrites.set(origSpec, {\n\t\t\t\tclient: toClient.startsWith('.') ? toClient : `./${toClient}`,\n\t\t\t\tserver: toServer.startsWith('.') ? toServer : `./${toServer}`\n\t\t\t});\n\t\t}\n\n\t\tconst rewriteExternalImports = (\n\t\t\tcode: string,\n\t\t\tmode: 'server' | 'client'\n\t\t) => {\n\t\t\tlet result = code;\n\n\t\t\tfor (const [origSpec, paths] of externalRewrites) {\n\t\t\t\tconst target = mode === 'server' ? paths.server : paths.client;\n\t\t\t\tresult = result.replace(origSpec, target);\n\t\t\t}\n\n\t\t\treturn result;\n\t\t};\n\n\t\tconst generate = (mode: 'server' | 'client') => {\n\t\t\tconst transpiled =\n\t\t\t\tmode === 'server' ? transpiledServer : transpiledClient;\n\t\t\tconst compiled = isModule\n\t\t\t\t? compileModule(transpiled, {\n\t\t\t\t\t\tdev: mode === 'client' && dev,\n\t\t\t\t\t\texperimental: {\n\t\t\t\t\t\t\tasync: transformedByLowering\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfilename: src\n\t\t\t\t\t}).js.code\n\t\t\t\t: compile(transpiled, {\n\t\t\t\t\t\tcss: 'injected',\n\t\t\t\t\t\tdev: mode === 'client' && dev,\n\t\t\t\t\t\texperimental: {\n\t\t\t\t\t\t\tasync: transformedByLowering\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfilename: src,\n\t\t\t\t\t\tgenerate: mode,\n\t\t\t\t\t\thmr: mode === 'client' && isDev\n\t\t\t\t\t}).js.code;\n\t\t\tlet code = compiled.replace(\n\t\t\t\t/\\.svelte(?:\\.(?:ts|js))?(['\"])/g,\n\t\t\t\t'.js$1'\n\t\t\t);\n\t\t\t// For client dev builds: replace import.meta.hot with our\n\t\t\t// accept registry so $.hmr() wrapper + accept callback are\n\t\t\t// both active. This enables component-level HMR swaps.\n\t\t\tif (mode === 'client' && isDev) {\n\t\t\t\tconst moduleKey = `/@src/${relative(process.cwd(), src).replace(\n\t\t\t\t\t/\\\\/g,\n\t\t\t\t\t'/'\n\t\t\t\t)}`;\n\t\t\t\tcode = code.replace(\n\t\t\t\t\t/if\\s*\\(import\\.meta\\.hot\\)\\s*\\{/,\n\t\t\t\t\t`if (typeof window !== \"undefined\") {\\n` +\n\t\t\t\t\t\t` if (!window.__SVELTE_HMR_ACCEPT__) window.__SVELTE_HMR_ACCEPT__ = {};\\n` +\n\t\t\t\t\t\t` var __hmr_accept = function(cb) { window.__SVELTE_HMR_ACCEPT__[${JSON.stringify(moduleKey)}] = cb; };`\n\t\t\t\t);\n\t\t\t\tcode = code.replace(\n\t\t\t\t\t/import\\.meta\\.hot\\.accept\\(/g,\n\t\t\t\t\t'__hmr_accept('\n\t\t\t\t);\n\n\t\t\t\t// State preservation is handled at runtime by the patched\n\t\t\t\t// $.hmr() function (collect_state/restore_state). No\n\t\t\t\t// State preservation handled by Svelte's $.hmr() runtime.\n\t\t\t}\n\n\t\t\tif (mode === 'client') {\n\t\t\t\tcode = removeUnusedRequireHelper(code);\n\t\t\t}\n\n\t\t\tcode += islandMetadataExports;\n\n\t\t\treturn code;\n\t\t};\n\n\t\tconst ssrPath = join(serverDir, relDir, `${baseName}.js`);\n\t\tconst clientPath = join(clientDir, relDir, `${baseName}.js`);\n\n\t\tawait Promise.all([\n\t\t\tmkdir(dirname(ssrPath), { recursive: true }),\n\t\t\tmkdir(dirname(clientPath), { recursive: true })\n\t\t]);\n\n\t\tif (isModule) {\n\t\t\tconst bundle = rewriteExternalImports(generate('client'), 'client');\n\t\t\tawait Promise.all([\n\t\t\t\twrite(ssrPath, bundle),\n\t\t\t\twrite(clientPath, bundle)\n\t\t\t]);\n\t\t} else {\n\t\t\tconst serverBundle = rewriteExternalImports(\n\t\t\t\tgenerate('server'),\n\t\t\t\t'server'\n\t\t\t);\n\t\t\tconst clientBundle = rewriteExternalImports(\n\t\t\t\tgenerate('client'),\n\t\t\t\t'client'\n\t\t\t);\n\t\t\tawait Promise.all([\n\t\t\t\twrite(ssrPath, serverBundle),\n\t\t\t\twrite(clientPath, clientBundle)\n\t\t\t]);\n\t\t}\n\n\t\tconst built: Built = {\n\t\t\tclient: clientPath,\n\t\t\thasAwaitSlot:\n\t\t\t\tloweredAwaitServerSource.transformed ||\n\t\t\t\tloweredAwaitClientSource.transformed ||\n\t\t\t\tloweredServerSource.transformed ||\n\t\t\t\tloweredClientSource.transformed ||\n\t\t\t\thasAwaitSlotFromChildren,\n\t\t\tssr: ssrPath\n\t\t};\n\t\tcache.set(src, built);\n\t\tpersistentCache.set(src, built);\n\n\t\treturn built;\n\t};\n\n\tconst roots = await Promise.all(entryPoints.map(build));\n\n\tawait Promise.all(\n\t\troots.map(async ({ client, hasAwaitSlot }) => {\n\t\t\tconst relClientDir = dirname(relative(clientDir, client));\n\t\t\tconst name = basename(client, extname(client));\n\t\t\tconst indexPath = join(indexDir, relClientDir, `${name}.js`);\n\t\t\tconst importRaw = relative(dirname(indexPath), client)\n\t\t\t\t.split(sep)\n\t\t\t\t.join('/');\n\t\t\tconst importPath =\n\t\t\t\timportRaw.startsWith('.') || importRaw.startsWith('/')\n\t\t\t\t\t? importRaw\n\t\t\t\t\t: `./${importRaw}`;\n\t\t\tconst hmrImports = isDev\n\t\t\t\t? `window.__HMR_FRAMEWORK__ = \"svelte\";\\nimport \"${hmrClientPath}\";\\n`\n\t\t\t\t: '';\n\t\t\tconst bootstrap = `${hmrImports}import Component from \"${importPath}\";\nimport { hydrate, mount, unmount } from \"svelte\";\n\nvar initialProps = (typeof window !== \"undefined\" && window.__INITIAL_PROPS__) ? window.__INITIAL_PROPS__ : {};\nvar isHMR = typeof window !== \"undefined\" && window.__SVELTE_COMPONENT__ !== undefined;\nvar isSsrDirty = typeof window !== \"undefined\" && window.__SSR_DIRTY__;\nvar hasIslandHtml = false;\nvar shouldHydrate = typeof window === \"undefined\" ? false : ${\n\t\t\t\thasAwaitSlot ? 'false' : 'true'\n\t\t\t};\nvar component;\nvar target = document.getElementById(${JSON.stringify(SVELTE_PAGE_ROOT_ID)}) || document.body;\n\nif (typeof window !== \"undefined\") {\n var islandSlots = document.querySelectorAll(\"[data-absolute-island-slot]\");\n var islandHtml = {};\n for (var index = 0; index < islandSlots.length; index += 1) {\n var slot = islandSlots[index];\n var slotId = slot.getAttribute(\"data-absolute-island-slot\");\n if (!slotId) continue;\n islandHtml[slotId] = slot.innerHTML;\n }\n window.__ABS_SVELTE_ISLAND_HTML__ = islandHtml;\n hasIslandHtml = Object.keys(islandHtml).length > 0;\n}\n\nif (isHMR) {\n var preservedState = window.__HMR_PRESERVED_STATE__;\n if (!preservedState) {\n try {\n var stored = sessionStorage.getItem(\"__SVELTE_HMR_STATE__\");\n if (stored) preservedState = JSON.parse(stored);\n } catch (err) { /* ignore */ }\n }\n var mergedProps = (preservedState && Object.keys(preservedState).length > 0) ? Object.assign({}, initialProps, preservedState) : initialProps;\n if (typeof window.__SVELTE_UNMOUNT__ === \"function\") {\n try { window.__SVELTE_UNMOUNT__(); } catch (err) { /* ignore */ }\n }\n component = mount(Component, { target, props: mergedProps });\n window.__HMR_PRESERVED_STATE__ = undefined;\n} else if (!shouldHydrate) {\n component = undefined;\n} else if (isSsrDirty || hasIslandHtml) {\n component = mount(Component, { target, props: initialProps });\n} else {\n component = hydrate(Component, { target, props: initialProps });\n}\n\nif (typeof window !== \"undefined\") {\n window.__SVELTE_COMPONENT__ = component;\n window.__SVELTE_UNMOUNT__ = function() { if (component) { unmount(component); } };\n window.__ABS_SLOT_HYDRATION_PENDING__ = shouldHydrate;\n var releaseStreamingSlots = function() {\n window.__ABS_SLOT_HYDRATION_PENDING__ = false;\n if (typeof window.__ABS_SLOT_FLUSH__ === \"function\") {\n window.__ABS_SLOT_FLUSH__();\n }\n };\n if (shouldHydrate && typeof requestAnimationFrame === \"function\") {\n requestAnimationFrame(function() {\n requestAnimationFrame(releaseStreamingSlots);\n });\n } else if (typeof window.__ABS_SLOT_FLUSH__ === \"function\") {\n window.__ABS_SLOT_FLUSH__();\n } else if (typeof setTimeout === \"function\") {\n setTimeout(releaseStreamingSlots, 0);\n }\n}`;\n\n\t\t\tawait mkdir(dirname(indexPath), { recursive: true });\n\n\t\t\treturn write(indexPath, bootstrap);\n\t\t})\n\t);\n\n\treturn {\n\t\t// Actual client component paths (for official HMR module imports)\n\t\tsvelteClientPaths: roots.map(({ client }) => client),\n\t\t// Index paths (entry points for hydration)\n\t\tsvelteIndexPaths: roots.map(({ client }) => {\n\t\t\tconst rel = dirname(relative(clientDir, client));\n\n\t\t\treturn join(indexDir, rel, basename(client));\n\t\t}),\n\t\tsvelteServerPaths: roots.map(({ ssr }) => ssr)\n\t};\n};\n"
6
- ],
7
- "mappings": "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",
8
- "debugId": "52767A2109196BB664756E2164756E21",
9
- "names": []
10
- }
@@ -1,576 +0,0 @@
1
- // @bun
2
- // src/build/stylePreprocessor.ts
3
- import { createHash } from "crypto";
4
- import { existsSync, readFileSync } from "fs";
5
- import { readFile } from "fs/promises";
6
- import { createRequire } from "module";
7
- import {
8
- dirname,
9
- extname,
10
- isAbsolute,
11
- join,
12
- relative,
13
- resolve
14
- } from "path";
15
- import { fileURLToPath } from "url";
16
- var CSS_EXTENSION_PATTERN = /\.css$/i;
17
- var STYLE_EXTENSION_PATTERN = /\.(s[ac]ss|less|styl(?:us)?)$/i;
18
- var STYLE_MODULE_EXTENSION_PATTERN = /\.module\.(s[ac]ss|less|styl(?:us)?)$/i;
19
- var STYLE_LANGUAGE_PATTERN = /^(s[ac]ss|less|styl(?:us)?)$/i;
20
- var importOptionalPeer = new Function("specifier", "return import(specifier)");
21
- var requireOptionalPeer = new Function("specifier", "return require(specifier)");
22
- var requireFromCwd = createRequire(join(process.cwd(), "package.json"));
23
- var isPreprocessableStylePath = (filePath) => STYLE_EXTENSION_PATTERN.test(filePath);
24
- var isStyleModulePath = (filePath) => STYLE_MODULE_EXTENSION_PATTERN.test(filePath);
25
- var isStylePath = (filePath) => /\.(css|s[ac]ss|less|styl(?:us)?)$/i.test(filePath);
26
- var getStyleBaseName = (filePath) => filePath.replace(/\.(css|s[ac]ss|less|styl(?:us)?)$/i, "");
27
- var getStyleLanguage = (filePathOrLanguage) => {
28
- const normalized = filePathOrLanguage.toLowerCase();
29
- if (normalized === "scss" || normalized.endsWith(".scss"))
30
- return "scss";
31
- if (normalized === "sass" || normalized.endsWith(".sass"))
32
- return "sass";
33
- if (normalized === "less" || normalized.endsWith(".less"))
34
- return "less";
35
- if (normalized === "styl" || normalized === "stylus" || normalized.endsWith(".styl") || normalized.endsWith(".stylus"))
36
- return "stylus";
37
- return null;
38
- };
39
- var missingDependencyError = (name, filePath) => new Error(`Unable to compile ${filePath}: install optional dependency "${name}" to use this stylesheet preprocessor.`);
40
- var throwPreprocessorError = (error, filePath, language) => {
41
- if (!(error instanceof Error)) {
42
- throw new Error(`${language} compile failed in ${filePath}: ${String(error)}`);
43
- }
44
- const detail = error;
45
- const sassLine = detail.span?.start?.line;
46
- const sassCol = detail.span?.start?.column;
47
- const line = detail.line ?? sassLine;
48
- const column = detail.column ?? sassCol;
49
- const location = typeof line === "number" ? `:${line}${typeof column === "number" ? `:${column}` : ""}` : "";
50
- const message = detail.formatted ?? detail.message;
51
- const wrapped = new Error(`${language} compile failed in ${filePath}${location}
52
- ${message}`);
53
- wrapped.cause = error;
54
- throw wrapped;
55
- };
56
- var requireOptionalPeerSync = (specifier) => {
57
- try {
58
- return requireFromCwd(specifier);
59
- } catch {
60
- return requireOptionalPeer(specifier);
61
- }
62
- };
63
- var normalizeLoadPaths = (filePath, paths = []) => [
64
- dirname(filePath),
65
- process.cwd(),
66
- ...paths.map((path) => resolve(process.cwd(), path))
67
- ];
68
- var tsconfigAliasCache;
69
- var stripJsonComments = (source) => source.replace(/\/\*[\s\S]*?\*\//g, "").replace(/(^|[^:])\/\/.*$/gm, "$1");
70
- var normalizeAliasEntries = (aliases) => Object.entries(aliases ?? {}).map(([pattern, value]) => ({
71
- pattern,
72
- replacements: Array.isArray(value) ? value : [value]
73
- }));
74
- var readTsconfigAliases = () => {
75
- const cwd = process.cwd();
76
- if (tsconfigAliasCache?.cwd === cwd)
77
- return tsconfigAliasCache;
78
- const tsconfigPath = resolve(cwd, "tsconfig.json");
79
- const empty = { aliases: [], baseUrl: cwd, cwd };
80
- if (!existsSync(tsconfigPath)) {
81
- tsconfigAliasCache = empty;
82
- return empty;
83
- }
84
- try {
85
- const parsed = JSON.parse(stripJsonComments(readFileSync(tsconfigPath, "utf-8")));
86
- const compilerOptions = parsed.compilerOptions ?? {};
87
- const baseUrl = resolve(cwd, compilerOptions.baseUrl ?? ".");
88
- tsconfigAliasCache = {
89
- aliases: normalizeAliasEntries(compilerOptions.paths),
90
- baseUrl,
91
- cwd
92
- };
93
- } catch {
94
- tsconfigAliasCache = empty;
95
- }
96
- return tsconfigAliasCache;
97
- };
98
- var getAliasEntries = (config) => {
99
- const tsconfig = readTsconfigAliases();
100
- return {
101
- aliases: [
102
- ...normalizeAliasEntries(config?.aliases),
103
- ...tsconfig.aliases
104
- ],
105
- baseUrl: tsconfig.baseUrl
106
- };
107
- };
108
- var aliasPatternToRegExp = (pattern) => new RegExp(`^${pattern.split("*").map((part) => part.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("(.+)")}$`);
109
- var resolveAliasTargets = (specifier, config) => {
110
- const { aliases, baseUrl } = getAliasEntries(config);
111
- const targets = [];
112
- for (const alias of aliases) {
113
- const match = specifier.match(aliasPatternToRegExp(alias.pattern));
114
- if (!match)
115
- continue;
116
- const wildcard = match[1] ?? "";
117
- for (const replacement of alias.replacements) {
118
- targets.push(resolve(baseUrl, replacement.replace("*", wildcard)));
119
- }
120
- }
121
- return targets;
122
- };
123
- var getLanguageExtensions = (language) => {
124
- if (language === "less")
125
- return [".less", ".css"];
126
- if (language === "stylus")
127
- return [".styl", ".stylus", ".css"];
128
- return [".scss", ".sass", ".css"];
129
- };
130
- var getCandidatePaths = (basePath, language) => {
131
- const ext = extname(basePath);
132
- const paths = ext ? [basePath] : getLanguageExtensions(language).flatMap((extension) => [
133
- `${basePath}${extension}`,
134
- join(basePath, `index${extension}`)
135
- ]);
136
- if (language === "scss" || language === "sass") {
137
- return paths.flatMap((path) => {
138
- const dir = dirname(path);
139
- const base = path.slice(dir.length + 1);
140
- return [path, join(dir, `_${base}`)];
141
- });
142
- }
143
- return paths;
144
- };
145
- var resolveImportPath = (specifier, fromDirectory, loadPaths, language, config) => {
146
- const rawCandidates = [
147
- ...resolveAliasTargets(specifier, config),
148
- isAbsolute(specifier) ? specifier : resolve(fromDirectory, specifier),
149
- ...loadPaths.map((path) => resolve(path, specifier))
150
- ];
151
- for (const candidate of rawCandidates.flatMap((path) => getCandidatePaths(path, language))) {
152
- if (existsSync(candidate))
153
- return candidate;
154
- }
155
- return null;
156
- };
157
- var isExternalCssUrl = (url) => /^(?:[a-z][a-z0-9+.-]*:|\/\/|#|\/)/i.test(url);
158
- var splitCssUrl = (url) => {
159
- const markerIndex = url.search(/[?#]/);
160
- if (markerIndex === -1)
161
- return { marker: "", path: url };
162
- return {
163
- marker: url.slice(markerIndex),
164
- path: url.slice(0, markerIndex)
165
- };
166
- };
167
- var rebaseCssUrls = (contents, sourceFile, entryFile) => {
168
- const sourceDir = dirname(sourceFile);
169
- const entryDir = dirname(entryFile);
170
- if (sourceDir === entryDir)
171
- return contents;
172
- return contents.replace(/url\(\s*(['"]?)([^'")]+)\1\s*\)/gi, (match, quote, rawUrl) => {
173
- const trimmedUrl = rawUrl.trim();
174
- if (!trimmedUrl || isExternalCssUrl(trimmedUrl))
175
- return match;
176
- const { marker, path } = splitCssUrl(trimmedUrl);
177
- const rebased = relative(entryDir, resolve(sourceDir, path)).replace(/\\/g, "/");
178
- const normalized = rebased.startsWith(".") ? rebased : `./${rebased}`;
179
- const nextQuote = quote || '"';
180
- return `url(${nextQuote}${normalized}${marker}${nextQuote})`;
181
- });
182
- };
183
- var rewriteAliasedStyleImports = (contents, sourceFile, loadPaths, language, config) => contents.replace(/(@(?:use|forward|import|require)\s+)(["'])([^"']+)\2/g, (match, prefix, quote, specifier) => {
184
- if (specifier.startsWith(".") || isAbsolute(specifier) || isExternalCssUrl(specifier))
185
- return match;
186
- const resolved = resolveImportPath(specifier, dirname(sourceFile), loadPaths, language, config);
187
- return resolved ? `${prefix}${quote}${resolved}${quote}` : match;
188
- });
189
- var preprocessLoadedStyle = (contents, sourceFile, entryFile, loadPaths = [], language, config) => {
190
- const rebased = rebaseCssUrls(contents, sourceFile, entryFile);
191
- return language ? rewriteAliasedStyleImports(rebased, sourceFile, loadPaths, language, config) : rebased;
192
- };
193
- var extractCssModuleExports = (css) => {
194
- const exports = {};
195
- const nextCss = css.replace(/:export\s*\{([^}]*)\}/g, (_, body) => {
196
- for (const declaration of body.split(";")) {
197
- const separator = declaration.indexOf(":");
198
- if (separator === -1)
199
- continue;
200
- const key = declaration.slice(0, separator).trim();
201
- const value = declaration.slice(separator + 1).trim();
202
- if (key && value)
203
- exports[key] = value;
204
- }
205
- return "";
206
- });
207
- return { css: nextCss, exports };
208
- };
209
- var getSassOptions = (config, language) => ({
210
- ...config?.sass ?? {},
211
- ...language === "scss" ? config?.scss ?? {} : {}
212
- });
213
- var getLessOptions = (config) => config?.less ?? {};
214
- var getStylusOptions = (config) => config?.stylus ?? {};
215
- var createStyleTransformConfig = (stylePreprocessors, postcss) => postcss === undefined ? stylePreprocessors : { ...stylePreprocessors ?? {}, postcss };
216
- var withAdditionalData = (contents, additionalData) => additionalData ? `${additionalData}
217
- ${contents}` : contents;
218
- var normalizePostcssModule = (mod) => {
219
- if (mod && typeof mod === "object" && "default" in mod) {
220
- return mod.default ?? mod;
221
- }
222
- return mod;
223
- };
224
- var loadPostcssConfigFile = async (configPath) => {
225
- const resolved = resolve(process.cwd(), configPath);
226
- const loaded = resolved.endsWith(".cjs") || resolved.endsWith(".cts") ? requireOptionalPeerSync(resolved) : await importOptionalPeer(`${new URL(`file://${resolved}`).href}?t=${Date.now()}`);
227
- const config = normalizePostcssModule(loaded);
228
- const value = typeof config === "function" ? await config({
229
- cwd: process.cwd(),
230
- env: "development"
231
- }) : config;
232
- return normalizePostcssModule(value) ?? {};
233
- };
234
- var normalizePostcssPlugins = (plugins) => {
235
- if (!plugins)
236
- return [];
237
- if (Array.isArray(plugins))
238
- return plugins.filter(Boolean);
239
- const resolved = [];
240
- for (const [specifier, options] of Object.entries(plugins)) {
241
- if (options === false)
242
- continue;
243
- const mod = normalizePostcssModule(requireOptionalPeerSync(specifier));
244
- const plugin = typeof mod === "function" ? mod(options === true ? undefined : options) : mod;
245
- if (plugin)
246
- resolved.push(plugin);
247
- }
248
- return resolved;
249
- };
250
- var resolvePostcssConfig = async (config) => {
251
- const inlineConfig = config?.postcss;
252
- if (!inlineConfig)
253
- return null;
254
- const fileConfig = inlineConfig.config ? await loadPostcssConfigFile(inlineConfig.config) : {};
255
- const plugins = [
256
- ...normalizePostcssPlugins(fileConfig.plugins),
257
- ...normalizePostcssPlugins(inlineConfig.plugins)
258
- ];
259
- if (plugins.length === 0)
260
- return null;
261
- return {
262
- options: {
263
- ...fileConfig.options ?? {},
264
- ...inlineConfig.options ?? {}
265
- },
266
- plugins
267
- };
268
- };
269
- var runPostcss = async (css, filePath, config) => {
270
- const postcssConfig = await resolvePostcssConfig(config);
271
- if (!postcssConfig)
272
- return css;
273
- let postcssModule;
274
- try {
275
- postcssModule = await importOptionalPeer("postcss");
276
- } catch {
277
- throw missingDependencyError("postcss", filePath);
278
- }
279
- const postcss = postcssModule.default ?? postcssModule;
280
- const result = await postcss(postcssConfig.plugins).process(css, {
281
- from: filePath,
282
- map: false,
283
- ...postcssConfig.options
284
- });
285
- return result.css;
286
- };
287
- var createSassImporter = (entryFile, loadPaths, language, config, deps) => ({
288
- canonicalize(specifier, options) {
289
- const fromDirectory = options.containingUrl ? dirname(fileURLToPath(options.containingUrl)) : dirname(entryFile);
290
- const resolved = resolveImportPath(specifier, fromDirectory, loadPaths, language, config);
291
- return resolved ? new URL(`file://${resolved}`) : null;
292
- },
293
- load(canonicalUrl) {
294
- const filePath = fileURLToPath(canonicalUrl);
295
- deps?.add(filePath);
296
- const fileLanguage = getStyleLanguage(filePath);
297
- if (fileLanguage !== "scss" && fileLanguage !== "sass" && fileLanguage !== null)
298
- return null;
299
- return {
300
- contents: preprocessLoadedStyle(readFileSync(filePath, "utf-8"), filePath, entryFile, loadPaths, language, config),
301
- syntax: filePath.endsWith(".sass") ? "indented" : "scss"
302
- };
303
- }
304
- });
305
- var createLessFileManager = (entryFile, loadPaths, config, deps) => ({
306
- install(less, pluginManager) {
307
- const baseManager = new less.FileManager;
308
- const manager = Object.create(baseManager);
309
- manager.supports = (filename, currentDirectory) => Boolean(resolveImportPath(filename, resolve(currentDirectory), loadPaths, "less", config));
310
- manager.loadFile = async (filename, currentDirectory) => {
311
- const resolved = resolveImportPath(filename, resolve(currentDirectory), loadPaths, "less", config);
312
- if (!resolved) {
313
- throw new Error(`Unable to resolve Less import "${filename}"`);
314
- }
315
- deps?.add(resolved);
316
- return {
317
- contents: preprocessLoadedStyle(await readFile(resolved, "utf-8"), resolved, entryFile, loadPaths, "less", config),
318
- filename: resolved
319
- };
320
- };
321
- pluginManager.addFileManager(manager);
322
- }
323
- });
324
- var renderStylus = async (contents, filePath, loadPaths, options, deps) => {
325
- let stylus;
326
- try {
327
- const stylusModule = await importOptionalPeer("stylus");
328
- stylus = stylusModule.default ?? stylusModule;
329
- } catch {
330
- throw missingDependencyError("stylus", filePath);
331
- }
332
- return new Promise((resolveCss, reject) => {
333
- const renderer = stylus(contents);
334
- renderer.set("filename", filePath);
335
- for (const [key, value] of Object.entries(options.options ?? {})) {
336
- renderer.set(key, value);
337
- }
338
- for (const path of loadPaths)
339
- renderer.include(path);
340
- renderer.render((error, css) => {
341
- if (error) {
342
- reject(error);
343
- return;
344
- }
345
- if (deps) {
346
- const stylusDeps = renderer.deps?.();
347
- if (Array.isArray(stylusDeps)) {
348
- for (const dep of stylusDeps)
349
- deps.add(resolve(dep));
350
- }
351
- }
352
- resolveCss(css ?? "");
353
- });
354
- });
355
- };
356
- var styleDependencyGraph = new Map;
357
- var styleOutputHashes = new Map;
358
- var recordStyleDeps = (entry, deps) => {
359
- const key = resolve(entry);
360
- const stripped = new Set;
361
- for (const dep of deps) {
362
- const resolved = resolve(dep);
363
- if (resolved !== key)
364
- stripped.add(resolved);
365
- }
366
- styleDependencyGraph.set(key, stripped);
367
- };
368
- var addStyleImporter = (importerPath, stylePath) => {
369
- const key = resolve(importerPath);
370
- const target = resolve(stylePath);
371
- const deps = styleDependencyGraph.get(key) ?? new Set;
372
- deps.add(target);
373
- styleDependencyGraph.set(key, deps);
374
- };
375
- var findStyleEntriesImporting = (changedPath) => {
376
- const target = resolve(changedPath);
377
- const importers = [];
378
- for (const [entry, deps] of styleDependencyGraph) {
379
- if (deps.has(target))
380
- importers.push(entry);
381
- }
382
- return importers;
383
- };
384
- var recordStyleOutput = (entry, css) => {
385
- const key = resolve(entry);
386
- const hash = createHash("sha1").update(css).digest("hex");
387
- const previous = styleOutputHashes.get(key);
388
- styleOutputHashes.set(key, hash);
389
- return previous !== hash;
390
- };
391
- var forgetStyleEntry = (entry) => {
392
- const key = resolve(entry);
393
- styleDependencyGraph.delete(key);
394
- styleOutputHashes.delete(key);
395
- };
396
- var compileStyleSource = async (filePath, source, languageHint, config) => {
397
- const language = getStyleLanguage(languageHint ?? filePath);
398
- const rawContents = source ?? await readFile(filePath, "utf-8");
399
- const deps = new Set;
400
- if (language === "scss" || language === "sass") {
401
- const options = getSassOptions(config, language);
402
- const packageName = options.implementation ?? "sass";
403
- let sass;
404
- try {
405
- sass = await importOptionalPeer(packageName);
406
- } catch {
407
- throw missingDependencyError(packageName, filePath);
408
- }
409
- const contents = withAdditionalData(rawContents, options.additionalData);
410
- const loadPaths = normalizeLoadPaths(filePath, options.loadPaths);
411
- try {
412
- const result = sass.compileString(contents, {
413
- importers: [
414
- createSassImporter(filePath, loadPaths, language, config, deps)
415
- ],
416
- loadPaths,
417
- style: "expanded",
418
- syntax: language === "sass" ? "indented" : "scss",
419
- url: new URL(`file://${filePath}`)
420
- });
421
- const css = await runPostcss(result.css, filePath, config);
422
- recordStyleDeps(filePath, deps);
423
- return css;
424
- } catch (error) {
425
- throwPreprocessorError(error, filePath, language);
426
- }
427
- }
428
- if (language === "less") {
429
- const options = getLessOptions(config);
430
- let lessModule;
431
- try {
432
- lessModule = await importOptionalPeer("less");
433
- } catch {
434
- throw missingDependencyError("less", filePath);
435
- }
436
- const less = lessModule.render ? lessModule : lessModule.default;
437
- const render = less?.render;
438
- if (!render)
439
- throw missingDependencyError("less", filePath);
440
- const contents = withAdditionalData(rawContents, options.additionalData);
441
- const loadPaths = normalizeLoadPaths(filePath, options.paths);
442
- try {
443
- const result = await render(contents, {
444
- ...options.options ?? {},
445
- filename: filePath,
446
- paths: loadPaths,
447
- plugins: [
448
- ...options.options?.plugins ?? [],
449
- createLessFileManager(filePath, loadPaths, config, deps)
450
- ]
451
- });
452
- const css = await runPostcss(result.css, filePath, config);
453
- recordStyleDeps(filePath, deps);
454
- return css;
455
- } catch (error) {
456
- throwPreprocessorError(error, filePath, "less");
457
- }
458
- }
459
- if (language === "stylus") {
460
- const options = getStylusOptions(config);
461
- const loadPaths = normalizeLoadPaths(filePath, options.paths);
462
- const contents = withAdditionalData(preprocessLoadedStyle(rawContents, filePath, filePath, loadPaths, "stylus", config), options.additionalData);
463
- try {
464
- const css = await runPostcss(await renderStylus(contents, filePath, loadPaths, options, deps), filePath, config);
465
- recordStyleDeps(filePath, deps);
466
- return css;
467
- } catch (error) {
468
- throwPreprocessorError(error, filePath, "stylus");
469
- }
470
- }
471
- return runPostcss(rawContents, filePath, config);
472
- };
473
- var createStylePreprocessorPlugin = (config) => ({
474
- name: "absolute-style-preprocessor",
475
- setup(build) {
476
- const cssModuleSources = new Map;
477
- build.onResolve({ filter: /^absolute-style-module:/ }, ({ path }) => ({
478
- namespace: "absolute-style-module",
479
- path: path.slice("absolute-style-module:".length)
480
- }));
481
- build.onLoad({ filter: /\.module\.css$/i, namespace: "absolute-style-module" }, async ({ path }) => {
482
- const source = cssModuleSources.get(path);
483
- if (!source) {
484
- throw new Error(`Unable to resolve CSS module source for ${path}`);
485
- }
486
- return {
487
- contents: source.css,
488
- loader: "css"
489
- };
490
- });
491
- build.onLoad({ filter: STYLE_EXTENSION_PATTERN }, async ({ path }) => {
492
- if (isStyleModulePath(path)) {
493
- const cssModulePath = path.replace(STYLE_EXTENSION_PATTERN, ".css");
494
- const compiled = await compileStyleSource(path, undefined, undefined, config);
495
- const { css, exports } = extractCssModuleExports(compiled);
496
- cssModuleSources.set(cssModulePath, { css, exports });
497
- const exportSource = Object.keys(exports).length > 0 ? `import styles from ${JSON.stringify(`absolute-style-module:${cssModulePath}`)}; export default Object.assign({}, styles, ${JSON.stringify(exports)});` : `export { default } from ${JSON.stringify(`absolute-style-module:${cssModulePath}`)};`;
498
- return {
499
- contents: exportSource,
500
- loader: "js"
501
- };
502
- }
503
- return {
504
- contents: await compileStyleSource(path, undefined, undefined, config),
505
- loader: "css"
506
- };
507
- });
508
- build.onLoad({ filter: CSS_EXTENSION_PATTERN }, async ({ path }) => ({
509
- contents: await compileStyleSource(path, undefined, undefined, config),
510
- loader: "css"
511
- }));
512
- }
513
- });
514
- var stylePreprocessorPlugin = createStylePreprocessorPlugin();
515
- var createSvelteStylePreprocessor = (config) => ({
516
- style: async ({
517
- attributes,
518
- content,
519
- filename
520
- }) => {
521
- const language = typeof attributes.lang === "string" ? attributes.lang : typeof attributes.type === "string" ? attributes.type.replace(/^text\//, "") : null;
522
- if (!language || !STYLE_LANGUAGE_PATTERN.test(language))
523
- return;
524
- const path = filename ?? `style.${language}`;
525
- return {
526
- code: await compileStyleSource(path, content, language, config)
527
- };
528
- }
529
- });
530
- var compileStyleFileIfNeeded = async (filePath, config) => {
531
- if (!isPreprocessableStylePath(filePath)) {
532
- return runPostcss(await readFile(filePath, "utf-8"), filePath, config);
533
- }
534
- return compileStyleSource(filePath, undefined, undefined, config);
535
- };
536
- var compileStyleFileIfNeededSync = (filePath, config) => {
537
- const rawContents = readFileSync(filePath, "utf-8");
538
- const language = getStyleLanguage(filePath);
539
- if (config?.postcss) {
540
- throw new Error(`Unable to compile ${filePath}: PostCSS preprocessing is async-only.`);
541
- }
542
- if (language === "scss" || language === "sass") {
543
- const options = getSassOptions(config, language);
544
- const packageName = options.implementation ?? "sass";
545
- let sass;
546
- try {
547
- sass = requireOptionalPeerSync(packageName);
548
- } catch {
549
- throw missingDependencyError(packageName, filePath);
550
- }
551
- const contents = withAdditionalData(rawContents, options.additionalData);
552
- const loadPaths = normalizeLoadPaths(filePath, options.loadPaths);
553
- return sass.compileString(contents, {
554
- importers: [
555
- createSassImporter(filePath, loadPaths, language, config)
556
- ],
557
- loadPaths,
558
- style: "expanded",
559
- syntax: language === "sass" ? "indented" : "scss",
560
- url: new URL(`file://${filePath}`)
561
- }).css;
562
- }
563
- if (language === "less") {
564
- throw new Error(`Unable to compile ${filePath}: Less styleUrl preprocessing is async-only. Import the Less file from a bundled entrypoint or use SCSS/CSS for Angular styleUrl.`);
565
- }
566
- if (language === "stylus") {
567
- throw new Error(`Unable to compile ${filePath}: Stylus styleUrl preprocessing is async-only. Import the Stylus file from a bundled entrypoint or use SCSS/CSS for Angular styleUrl.`);
568
- }
569
- return rawContents;
570
- };
571
- var getCssOutputExtension = (filePath) => isPreprocessableStylePath(filePath) ? ".css" : extname(filePath);
572
-
573
- export { isPreprocessableStylePath, isStyleModulePath, isStylePath, getStyleBaseName, createStyleTransformConfig, addStyleImporter, findStyleEntriesImporting, recordStyleOutput, forgetStyleEntry, compileStyleSource, createStylePreprocessorPlugin, stylePreprocessorPlugin, createSvelteStylePreprocessor, compileStyleFileIfNeeded, compileStyleFileIfNeededSync, getCssOutputExtension };
574
-
575
- //# debugId=634C187AA2D5975464756E2164756E21
576
- //# sourceMappingURL=chunk-xnt8c6h2.js.map