@nativescript/vite 8.0.0-alpha.4 → 8.0.0-alpha.40

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 (410) hide show
  1. package/README.md +51 -11
  2. package/bin/cli.cjs +8 -14
  3. package/configuration/angular.d.ts +34 -1
  4. package/configuration/angular.js +376 -165
  5. package/configuration/angular.js.map +1 -1
  6. package/configuration/base.js +256 -30
  7. package/configuration/base.js.map +1 -1
  8. package/configuration/javascript.js +12 -90
  9. package/configuration/javascript.js.map +1 -1
  10. package/configuration/solid.js +33 -4
  11. package/configuration/solid.js.map +1 -1
  12. package/configuration/typescript.js +10 -90
  13. package/configuration/typescript.js.map +1 -1
  14. package/helpers/app-components.d.ts +2 -1
  15. package/helpers/app-components.js.map +1 -1
  16. package/helpers/app-css-state.d.ts +8 -0
  17. package/helpers/app-css-state.js +8 -0
  18. package/helpers/app-css-state.js.map +1 -0
  19. package/helpers/bundler-context.d.ts +11 -0
  20. package/helpers/bundler-context.js +71 -0
  21. package/helpers/bundler-context.js.map +1 -0
  22. package/helpers/config-as-json.js +10 -0
  23. package/helpers/config-as-json.js.map +1 -1
  24. package/helpers/css-platform-plugin.d.ts +14 -0
  25. package/helpers/css-platform-plugin.js +43 -25
  26. package/helpers/css-platform-plugin.js.map +1 -1
  27. package/helpers/dev-host.d.ts +360 -0
  28. package/helpers/dev-host.js +692 -0
  29. package/helpers/dev-host.js.map +1 -0
  30. package/helpers/dynamic-import-plugin.js +1 -1
  31. package/helpers/dynamic-import-plugin.js.map +1 -1
  32. package/helpers/esbuild-platform-resolver.js +4 -1
  33. package/helpers/esbuild-platform-resolver.js.map +1 -1
  34. package/helpers/external-configs.d.ts +10 -12
  35. package/helpers/external-configs.js +54 -35
  36. package/helpers/external-configs.js.map +1 -1
  37. package/helpers/global-defines.d.ts +128 -0
  38. package/helpers/global-defines.js +174 -11
  39. package/helpers/global-defines.js.map +1 -1
  40. package/helpers/hmr-scope.d.ts +26 -0
  41. package/helpers/hmr-scope.js +67 -0
  42. package/helpers/hmr-scope.js.map +1 -0
  43. package/helpers/init.js +0 -18
  44. package/helpers/init.js.map +1 -1
  45. package/helpers/logging.d.ts +1 -0
  46. package/helpers/logging.js +65 -4
  47. package/helpers/logging.js.map +1 -1
  48. package/helpers/main-entry.d.ts +3 -1
  49. package/helpers/main-entry.js +444 -50
  50. package/helpers/main-entry.js.map +1 -1
  51. package/helpers/nativeclass-esbuild-plugin.d.ts +2 -1
  52. package/helpers/nativeclass-esbuild-plugin.js.map +1 -1
  53. package/helpers/nativeclass-transform.js +5 -6
  54. package/helpers/nativeclass-transform.js.map +1 -1
  55. package/helpers/nativeclass-transformer-plugin.d.ts +9 -2
  56. package/helpers/nativeclass-transformer-plugin.js +157 -14
  57. package/helpers/nativeclass-transformer-plugin.js.map +1 -1
  58. package/helpers/nativescript-package-resolver.js +10 -62
  59. package/helpers/nativescript-package-resolver.js.map +1 -1
  60. package/helpers/normalize-id.d.ts +42 -0
  61. package/helpers/normalize-id.js +60 -0
  62. package/helpers/normalize-id.js.map +1 -0
  63. package/helpers/ns-core-url.d.ts +106 -0
  64. package/helpers/ns-core-url.js +225 -0
  65. package/helpers/ns-core-url.js.map +1 -0
  66. package/helpers/optimize-deps.d.ts +16 -0
  67. package/helpers/optimize-deps.js +17 -0
  68. package/helpers/optimize-deps.js.map +1 -0
  69. package/helpers/package-platform-aliases.js +34 -49
  70. package/helpers/package-platform-aliases.js.map +1 -1
  71. package/helpers/platform-types.d.ts +2 -0
  72. package/helpers/platform-types.js +2 -0
  73. package/helpers/platform-types.js.map +1 -0
  74. package/helpers/postcss-platform-config.d.ts +17 -1
  75. package/helpers/postcss-platform-config.js +20 -37
  76. package/helpers/postcss-platform-config.js.map +1 -1
  77. package/helpers/project.d.ts +35 -0
  78. package/helpers/project.js +120 -2
  79. package/helpers/project.js.map +1 -1
  80. package/helpers/resolve-main-field-platform.d.ts +20 -0
  81. package/helpers/resolve-main-field-platform.js +49 -0
  82. package/helpers/resolve-main-field-platform.js.map +1 -0
  83. package/helpers/resolver.js +17 -2
  84. package/helpers/resolver.js.map +1 -1
  85. package/helpers/theme-core-plugins.js +1 -1
  86. package/helpers/theme-core-plugins.js.map +1 -1
  87. package/helpers/ts-config-paths.d.ts +14 -0
  88. package/helpers/ts-config-paths.js +90 -9
  89. package/helpers/ts-config-paths.js.map +1 -1
  90. package/helpers/typescript-check.d.ts +2 -1
  91. package/helpers/typescript-check.js.map +1 -1
  92. package/helpers/ui-registration.d.ts +21 -0
  93. package/helpers/ui-registration.js +156 -0
  94. package/helpers/ui-registration.js.map +1 -0
  95. package/helpers/utils.js +1 -2
  96. package/helpers/utils.js.map +1 -1
  97. package/helpers/workers.d.ts +20 -19
  98. package/helpers/workers.js +624 -4
  99. package/helpers/workers.js.map +1 -1
  100. package/hmr/client/css-handler.d.ts +2 -1
  101. package/hmr/client/css-handler.js +50 -26
  102. package/hmr/client/css-handler.js.map +1 -1
  103. package/hmr/client/css-update-overlay.d.ts +18 -0
  104. package/hmr/client/css-update-overlay.js +27 -0
  105. package/hmr/client/css-update-overlay.js.map +1 -0
  106. package/hmr/client/framework-client-strategy.d.ts +79 -0
  107. package/hmr/client/framework-client-strategy.js +19 -0
  108. package/hmr/client/framework-client-strategy.js.map +1 -0
  109. package/hmr/client/hmr-pending-overlay.d.ts +13 -0
  110. package/hmr/client/hmr-pending-overlay.js +60 -0
  111. package/hmr/client/hmr-pending-overlay.js.map +1 -0
  112. package/hmr/client/index.js +787 -211
  113. package/hmr/client/index.js.map +1 -1
  114. package/hmr/client/utils.d.ts +7 -1
  115. package/hmr/client/utils.js +207 -29
  116. package/hmr/client/utils.js.map +1 -1
  117. package/hmr/entry-runtime.d.ts +2 -1
  118. package/hmr/entry-runtime.js +256 -69
  119. package/hmr/entry-runtime.js.map +1 -1
  120. package/hmr/frameworks/angular/build/angular-linker.d.ts +12 -0
  121. package/hmr/frameworks/angular/build/angular-linker.js +109 -0
  122. package/hmr/frameworks/angular/build/angular-linker.js.map +1 -0
  123. package/hmr/frameworks/angular/build/inject-component-hmr-registration.d.ts +112 -0
  124. package/hmr/frameworks/angular/build/inject-component-hmr-registration.js +291 -0
  125. package/hmr/frameworks/angular/build/inject-component-hmr-registration.js.map +1 -0
  126. package/hmr/frameworks/angular/build/inject-hmr-vite-ignore.d.ts +75 -0
  127. package/hmr/frameworks/angular/build/inject-hmr-vite-ignore.js +221 -0
  128. package/hmr/frameworks/angular/build/inject-hmr-vite-ignore.js.map +1 -0
  129. package/{helpers/angular → hmr/frameworks/angular/build}/inline-decorator-component-templates.js +1 -170
  130. package/hmr/frameworks/angular/build/inline-decorator-component-templates.js.map +1 -0
  131. package/hmr/frameworks/angular/build/js-lexer.d.ts +4 -0
  132. package/{helpers/angular/synthesize-decorator-ctor-parameters.js → hmr/frameworks/angular/build/js-lexer.js} +22 -96
  133. package/hmr/frameworks/angular/build/js-lexer.js.map +1 -0
  134. package/hmr/frameworks/angular/build/shared-linker.d.ts +39 -0
  135. package/hmr/frameworks/angular/build/shared-linker.js +128 -0
  136. package/hmr/frameworks/angular/build/shared-linker.js.map +1 -0
  137. package/hmr/frameworks/angular/build/synthesize-decorator-ctor-parameters.js +88 -0
  138. package/hmr/frameworks/angular/build/synthesize-decorator-ctor-parameters.js.map +1 -0
  139. package/{helpers/angular → hmr/frameworks/angular/build}/synthesize-injectable-factories.js +1 -174
  140. package/hmr/frameworks/angular/build/synthesize-injectable-factories.js.map +1 -0
  141. package/{helpers/angular → hmr/frameworks/angular/build}/util.d.ts +1 -0
  142. package/hmr/frameworks/angular/build/util.js +155 -0
  143. package/hmr/frameworks/angular/build/util.js.map +1 -0
  144. package/hmr/frameworks/angular/client/index.d.ts +1 -0
  145. package/hmr/frameworks/angular/client/index.js +803 -21
  146. package/hmr/frameworks/angular/client/index.js.map +1 -1
  147. package/hmr/frameworks/angular/client/strategy.d.ts +9 -0
  148. package/hmr/frameworks/angular/client/strategy.js +19 -0
  149. package/hmr/frameworks/angular/client/strategy.js.map +1 -0
  150. package/hmr/frameworks/angular/server/angular-root-component.d.ts +79 -0
  151. package/hmr/frameworks/angular/server/angular-root-component.js +149 -0
  152. package/hmr/frameworks/angular/server/angular-root-component.js.map +1 -0
  153. package/hmr/frameworks/angular/server/linker.js +1 -4
  154. package/hmr/frameworks/angular/server/linker.js.map +1 -1
  155. package/hmr/frameworks/angular/server/strategy.js +460 -12
  156. package/hmr/frameworks/angular/server/strategy.js.map +1 -1
  157. package/hmr/{server → frameworks/angular/server}/websocket-angular-entry.js +2 -2
  158. package/hmr/frameworks/angular/server/websocket-angular-entry.js.map +1 -0
  159. package/hmr/{server → frameworks/angular/server}/websocket-angular-hot-update.d.ts +17 -11
  160. package/hmr/frameworks/angular/server/websocket-angular-hot-update.js +336 -0
  161. package/hmr/frameworks/angular/server/websocket-angular-hot-update.js.map +1 -0
  162. package/hmr/frameworks/solid/build/solid-jsx-deps.d.ts +15 -0
  163. package/hmr/frameworks/solid/build/solid-jsx-deps.js +178 -0
  164. package/hmr/frameworks/solid/build/solid-jsx-deps.js.map +1 -0
  165. package/hmr/frameworks/solid/server/strategy.js +291 -16
  166. package/hmr/frameworks/solid/server/strategy.js.map +1 -1
  167. package/hmr/frameworks/typescript/server/strategy.js +38 -14
  168. package/hmr/frameworks/typescript/server/strategy.js.map +1 -1
  169. package/hmr/frameworks/vue/client/dep-propagation.d.ts +36 -0
  170. package/hmr/frameworks/vue/client/dep-propagation.js +101 -0
  171. package/hmr/frameworks/vue/client/dep-propagation.js.map +1 -0
  172. package/hmr/frameworks/vue/client/index.d.ts +8 -0
  173. package/hmr/frameworks/vue/client/index.js +56 -243
  174. package/hmr/frameworks/vue/client/index.js.map +1 -1
  175. package/hmr/frameworks/vue/client/strategy.d.ts +33 -0
  176. package/hmr/frameworks/vue/client/strategy.js +157 -0
  177. package/hmr/frameworks/vue/client/strategy.js.map +1 -0
  178. package/hmr/frameworks/vue/client/vue-sfc-update-overlay.d.ts +49 -0
  179. package/hmr/frameworks/vue/client/vue-sfc-update-overlay.js +142 -0
  180. package/hmr/frameworks/vue/client/vue-sfc-update-overlay.js.map +1 -0
  181. package/hmr/frameworks/vue/server/sfc-route-assemble.d.ts +7 -0
  182. package/hmr/frameworks/vue/server/sfc-route-assemble.js +747 -0
  183. package/hmr/frameworks/vue/server/sfc-route-assemble.js.map +1 -0
  184. package/hmr/frameworks/vue/server/sfc-route-meta.d.ts +7 -0
  185. package/hmr/frameworks/vue/server/sfc-route-meta.js +80 -0
  186. package/hmr/frameworks/vue/server/sfc-route-meta.js.map +1 -0
  187. package/hmr/frameworks/vue/server/sfc-route-serve.d.ts +8 -0
  188. package/hmr/frameworks/vue/server/sfc-route-serve.js +459 -0
  189. package/hmr/frameworks/vue/server/sfc-route-serve.js.map +1 -0
  190. package/hmr/frameworks/vue/server/sfc-route-shared.d.ts +38 -0
  191. package/hmr/frameworks/vue/server/sfc-route-shared.js +48 -0
  192. package/hmr/frameworks/vue/server/sfc-route-shared.js.map +1 -0
  193. package/hmr/frameworks/vue/server/strategy.d.ts +35 -0
  194. package/hmr/frameworks/vue/server/strategy.js +278 -1
  195. package/hmr/frameworks/vue/server/strategy.js.map +1 -1
  196. package/hmr/frameworks/vue/server/websocket-sfc.d.ts +15 -0
  197. package/hmr/frameworks/vue/server/websocket-sfc.js +20 -0
  198. package/hmr/frameworks/vue/server/websocket-sfc.js.map +1 -0
  199. package/hmr/helpers/ast-normalizer.d.ts +3 -1
  200. package/hmr/helpers/ast-normalizer.js +77 -10
  201. package/hmr/helpers/ast-normalizer.js.map +1 -1
  202. package/hmr/helpers/cjs-named-exports.d.ts +23 -0
  203. package/hmr/helpers/cjs-named-exports.js +152 -0
  204. package/hmr/helpers/cjs-named-exports.js.map +1 -0
  205. package/hmr/helpers/package-exports.d.ts +16 -0
  206. package/hmr/helpers/package-exports.js +396 -0
  207. package/hmr/helpers/package-exports.js.map +1 -0
  208. package/hmr/server/constants.js +20 -5
  209. package/hmr/server/constants.js.map +1 -1
  210. package/hmr/server/core-sanitize.d.ts +90 -7
  211. package/hmr/server/core-sanitize.js +211 -56
  212. package/hmr/server/core-sanitize.js.map +1 -1
  213. package/hmr/server/device-transform-helpers.d.ts +24 -0
  214. package/hmr/server/device-transform-helpers.js +369 -0
  215. package/hmr/server/device-transform-helpers.js.map +1 -0
  216. package/hmr/server/framework-strategy.d.ts +108 -11
  217. package/hmr/server/hmr-module-graph.d.ts +37 -0
  218. package/hmr/server/hmr-module-graph.js +214 -0
  219. package/hmr/server/hmr-module-graph.js.map +1 -0
  220. package/hmr/server/import-map.d.ts +11 -2
  221. package/hmr/server/import-map.js +95 -44
  222. package/hmr/server/import-map.js.map +1 -1
  223. package/hmr/server/index.js +7 -16
  224. package/hmr/server/index.js.map +1 -1
  225. package/hmr/server/ns-core-cjs-shape.d.ts +204 -0
  226. package/hmr/server/ns-core-cjs-shape.js +271 -0
  227. package/hmr/server/ns-core-cjs-shape.js.map +1 -0
  228. package/hmr/server/ns-rt-bridge.d.ts +51 -0
  229. package/hmr/server/ns-rt-bridge.js +131 -0
  230. package/hmr/server/ns-rt-bridge.js.map +1 -0
  231. package/hmr/server/ns-rt-route.d.ts +5 -0
  232. package/hmr/server/ns-rt-route.js +38 -0
  233. package/hmr/server/ns-rt-route.js.map +1 -0
  234. package/hmr/server/perf-instrumentation.d.ts +114 -0
  235. package/hmr/server/perf-instrumentation.js +197 -0
  236. package/hmr/server/perf-instrumentation.js.map +1 -0
  237. package/hmr/server/process-code-for-device.d.ts +14 -0
  238. package/hmr/server/process-code-for-device.js +702 -0
  239. package/hmr/server/process-code-for-device.js.map +1 -0
  240. package/hmr/server/require-guard.d.ts +1 -0
  241. package/hmr/server/require-guard.js +12 -0
  242. package/hmr/server/require-guard.js.map +1 -0
  243. package/hmr/server/rewrite-imports.d.ts +2 -0
  244. package/hmr/server/rewrite-imports.js +600 -0
  245. package/hmr/server/rewrite-imports.js.map +1 -0
  246. package/hmr/server/route-helpers.d.ts +7 -0
  247. package/hmr/server/route-helpers.js +13 -0
  248. package/hmr/server/route-helpers.js.map +1 -0
  249. package/hmr/server/server-origin.d.ts +2 -0
  250. package/hmr/server/server-origin.js +83 -0
  251. package/hmr/server/server-origin.js.map +1 -0
  252. package/hmr/server/shared-transform-request.js +13 -7
  253. package/hmr/server/shared-transform-request.js.map +1 -1
  254. package/hmr/server/transform-cache-invalidation.d.ts +37 -0
  255. package/hmr/server/transform-cache-invalidation.js +156 -0
  256. package/hmr/server/transform-cache-invalidation.js.map +1 -0
  257. package/hmr/server/vendor-bare-module-shims.d.ts +4 -0
  258. package/hmr/server/vendor-bare-module-shims.js +80 -0
  259. package/hmr/server/vendor-bare-module-shims.js.map +1 -0
  260. package/hmr/server/vite-plugin.js +72 -42
  261. package/hmr/server/vite-plugin.js.map +1 -1
  262. package/hmr/server/websocket-core-bridge.d.ts +45 -6
  263. package/hmr/server/websocket-core-bridge.js +81 -77
  264. package/hmr/server/websocket-core-bridge.js.map +1 -1
  265. package/hmr/server/websocket-css-hot-update.d.ts +33 -0
  266. package/hmr/server/websocket-css-hot-update.js +65 -0
  267. package/hmr/server/websocket-css-hot-update.js.map +1 -0
  268. package/hmr/server/websocket-device-transform.d.ts +3 -0
  269. package/hmr/server/websocket-device-transform.js +7 -0
  270. package/hmr/server/websocket-device-transform.js.map +1 -0
  271. package/hmr/server/websocket-graph-upsert.d.ts +15 -0
  272. package/hmr/server/websocket-graph-upsert.js +20 -0
  273. package/hmr/server/websocket-graph-upsert.js.map +1 -1
  274. package/hmr/server/websocket-hmr-pending.d.ts +37 -0
  275. package/hmr/server/websocket-hmr-pending.js +55 -0
  276. package/hmr/server/websocket-hmr-pending.js.map +1 -0
  277. package/hmr/server/websocket-hot-update.d.ts +77 -0
  278. package/hmr/server/websocket-hot-update.js +360 -0
  279. package/hmr/server/websocket-hot-update.js.map +1 -0
  280. package/hmr/server/websocket-import-map-route.d.ts +15 -0
  281. package/hmr/server/websocket-import-map-route.js +50 -0
  282. package/hmr/server/websocket-import-map-route.js.map +1 -0
  283. package/hmr/server/websocket-module-bindings.js +3 -3
  284. package/hmr/server/websocket-module-bindings.js.map +1 -1
  285. package/hmr/server/websocket-module-specifiers.d.ts +66 -2
  286. package/hmr/server/websocket-module-specifiers.js +203 -20
  287. package/hmr/server/websocket-module-specifiers.js.map +1 -1
  288. package/hmr/server/websocket-ns-core.d.ts +21 -0
  289. package/hmr/server/websocket-ns-core.js +311 -0
  290. package/hmr/server/websocket-ns-core.js.map +1 -0
  291. package/hmr/server/websocket-ns-entry.d.ts +21 -0
  292. package/hmr/server/websocket-ns-entry.js +164 -0
  293. package/hmr/server/websocket-ns-entry.js.map +1 -0
  294. package/hmr/server/websocket-ns-m-paths.d.ts +1 -1
  295. package/hmr/server/websocket-ns-m-paths.js +58 -13
  296. package/hmr/server/websocket-ns-m-paths.js.map +1 -1
  297. package/hmr/server/websocket-ns-m-request.d.ts +11 -1
  298. package/hmr/server/websocket-ns-m-request.js +18 -25
  299. package/hmr/server/websocket-ns-m-request.js.map +1 -1
  300. package/hmr/server/websocket-ns-m.d.ts +33 -0
  301. package/hmr/server/websocket-ns-m.js +752 -0
  302. package/hmr/server/websocket-ns-m.js.map +1 -0
  303. package/hmr/server/websocket-served-module-helpers.d.ts +82 -0
  304. package/hmr/server/websocket-served-module-helpers.js +879 -0
  305. package/hmr/server/websocket-served-module-helpers.js.map +1 -0
  306. package/hmr/server/websocket-txn.js +2 -8
  307. package/hmr/server/websocket-txn.js.map +1 -1
  308. package/hmr/server/websocket-vendor-unifier.d.ts +0 -1
  309. package/hmr/server/websocket-vendor-unifier.js +4 -9
  310. package/hmr/server/websocket-vendor-unifier.js.map +1 -1
  311. package/hmr/server/websocket.d.ts +8 -39
  312. package/hmr/server/websocket.js +514 -4030
  313. package/hmr/server/websocket.js.map +1 -1
  314. package/hmr/shared/ns-globals.d.ts +118 -0
  315. package/hmr/shared/ns-globals.js +29 -0
  316. package/hmr/shared/ns-globals.js.map +1 -0
  317. package/hmr/shared/protocol.d.ts +145 -0
  318. package/hmr/shared/protocol.js +28 -0
  319. package/hmr/shared/protocol.js.map +1 -0
  320. package/hmr/shared/runtime/boot-placeholder-ui.d.ts +69 -0
  321. package/hmr/shared/runtime/boot-placeholder-ui.js +101 -0
  322. package/hmr/shared/runtime/boot-placeholder-ui.js.map +1 -0
  323. package/hmr/shared/runtime/boot-progress.d.ts +44 -0
  324. package/hmr/shared/runtime/boot-progress.js +133 -0
  325. package/hmr/shared/runtime/boot-progress.js.map +1 -0
  326. package/hmr/shared/runtime/boot-timeline.d.ts +18 -0
  327. package/hmr/shared/runtime/boot-timeline.js +42 -0
  328. package/hmr/shared/runtime/boot-timeline.js.map +1 -0
  329. package/hmr/shared/runtime/browser-runtime-contract.js.map +1 -1
  330. package/hmr/shared/runtime/dev-overlay-snapshots.d.ts +31 -0
  331. package/hmr/shared/runtime/dev-overlay-snapshots.js +324 -0
  332. package/hmr/shared/runtime/dev-overlay-snapshots.js.map +1 -0
  333. package/hmr/shared/runtime/dev-overlay.d.ts +75 -26
  334. package/hmr/shared/runtime/dev-overlay.js +992 -261
  335. package/hmr/shared/runtime/dev-overlay.js.map +1 -1
  336. package/hmr/shared/runtime/global-scope.d.ts +18 -0
  337. package/hmr/shared/runtime/global-scope.js +21 -0
  338. package/hmr/shared/runtime/global-scope.js.map +1 -0
  339. package/hmr/shared/runtime/hooks.js +2 -1
  340. package/hmr/shared/runtime/hooks.js.map +1 -1
  341. package/hmr/shared/runtime/http-only-boot.js +7 -6
  342. package/hmr/shared/runtime/http-only-boot.js.map +1 -1
  343. package/hmr/shared/runtime/module-provenance.js +4 -6
  344. package/hmr/shared/runtime/module-provenance.js.map +1 -1
  345. package/hmr/shared/runtime/root-placeholder-view.d.ts +19 -0
  346. package/hmr/shared/runtime/root-placeholder-view.js +311 -0
  347. package/hmr/shared/runtime/root-placeholder-view.js.map +1 -0
  348. package/hmr/shared/runtime/root-placeholder.js +371 -197
  349. package/hmr/shared/runtime/root-placeholder.js.map +1 -1
  350. package/hmr/shared/runtime/session-bootstrap.js +168 -4
  351. package/hmr/shared/runtime/session-bootstrap.js.map +1 -1
  352. package/hmr/shared/runtime/vendor-bootstrap.js +3 -10
  353. package/hmr/shared/runtime/vendor-bootstrap.js.map +1 -1
  354. package/hmr/shared/vendor/manifest-collect.d.ts +4 -0
  355. package/hmr/shared/vendor/manifest-collect.js +512 -0
  356. package/hmr/shared/vendor/manifest-collect.js.map +1 -0
  357. package/hmr/shared/vendor/manifest-loader.d.ts +2 -1
  358. package/hmr/shared/vendor/manifest-loader.js +5 -3
  359. package/hmr/shared/vendor/manifest-loader.js.map +1 -1
  360. package/hmr/shared/vendor/manifest.d.ts +1 -7
  361. package/hmr/shared/vendor/manifest.js +102 -741
  362. package/hmr/shared/vendor/manifest.js.map +1 -1
  363. package/hmr/shared/vendor/vendor-device-shim.d.ts +1 -0
  364. package/hmr/shared/vendor/vendor-device-shim.js +208 -0
  365. package/hmr/shared/vendor/vendor-device-shim.js.map +1 -0
  366. package/hmr/shared/vendor/vendor-esbuild-plugins.d.ts +16 -0
  367. package/hmr/shared/vendor/vendor-esbuild-plugins.js +203 -0
  368. package/hmr/shared/vendor/vendor-esbuild-plugins.js.map +1 -0
  369. package/hmr/vendor-bootstrap.d.ts +1 -3
  370. package/hmr/vendor-bootstrap.js +4 -6
  371. package/hmr/vendor-bootstrap.js.map +1 -1
  372. package/index.d.ts +1 -0
  373. package/index.js +5 -0
  374. package/index.js.map +1 -1
  375. package/package.json +55 -11
  376. package/runtime/core-aliases-early.js +25 -55
  377. package/runtime/core-aliases-early.js.map +1 -1
  378. package/helpers/angular/angular-linker.d.ts +0 -13
  379. package/helpers/angular/angular-linker.js +0 -194
  380. package/helpers/angular/angular-linker.js.map +0 -1
  381. package/helpers/angular/inline-decorator-component-templates.js.map +0 -1
  382. package/helpers/angular/shared-linker.d.ts +0 -11
  383. package/helpers/angular/shared-linker.js +0 -75
  384. package/helpers/angular/shared-linker.js.map +0 -1
  385. package/helpers/angular/synthesize-decorator-ctor-parameters.js.map +0 -1
  386. package/helpers/angular/synthesize-injectable-factories.js.map +0 -1
  387. package/helpers/angular/util.js +0 -67
  388. package/helpers/angular/util.js.map +0 -1
  389. package/helpers/prelink-angular.d.ts +0 -2
  390. package/helpers/prelink-angular.js +0 -117
  391. package/helpers/prelink-angular.js.map +0 -1
  392. package/hmr/server/websocket-angular-entry.js.map +0 -1
  393. package/hmr/server/websocket-angular-hot-update.js +0 -239
  394. package/hmr/server/websocket-angular-hot-update.js.map +0 -1
  395. package/hmr/server/websocket-ns-m-finalize.d.ts +0 -32
  396. package/hmr/server/websocket-ns-m-finalize.js +0 -73
  397. package/hmr/server/websocket-ns-m-finalize.js.map +0 -1
  398. package/hmr/server/websocket-runtime-compat.d.ts +0 -19
  399. package/hmr/server/websocket-runtime-compat.js +0 -286
  400. package/hmr/server/websocket-runtime-compat.js.map +0 -1
  401. package/hmr/server/websocket-vue-sfc.d.ts +0 -35
  402. package/hmr/server/websocket-vue-sfc.js +0 -1116
  403. package/hmr/server/websocket-vue-sfc.js.map +0 -1
  404. package/transformers/NativeClass/index.d.ts +0 -2
  405. package/transformers/NativeClass/index.js +0 -222
  406. package/transformers/NativeClass/index.js.map +0 -1
  407. /package/{helpers/angular → hmr/frameworks/angular/build}/inline-decorator-component-templates.d.ts +0 -0
  408. /package/{helpers/angular → hmr/frameworks/angular/build}/synthesize-decorator-ctor-parameters.d.ts +0 -0
  409. /package/{helpers/angular → hmr/frameworks/angular/build}/synthesize-injectable-factories.d.ts +0 -0
  410. /package/hmr/{server → frameworks/angular/server}/websocket-angular-entry.d.ts +0 -0
@@ -1,6 +1,7 @@
1
1
  import * as path from 'path';
2
- import * as PAT from '../../../server/constants.js';
3
2
  import { getProjectAppVirtualPath } from '../../../../helpers/utils.js';
3
+ import { purgeTransformCachesForHotUpdate } from '../../../server/transform-cache-invalidation.js';
4
+ import { runHotUpdatePrologue } from '../../../server/websocket-hot-update.js';
4
5
  // Solid server strategy for NativeScript HMR.
5
6
  // For Solid we don't have .vue-style SFCs today; this strategy mainly
6
7
  // ensures Solid runtime imports can be rewritten to vendor when needed
@@ -13,23 +14,297 @@ export const solidServerStrategy = {
13
14
  // Treat app TS/TSX/JS/JSX under the configured app root as Solid candidates.
14
15
  return SOLID_FILE_PATTERN.test(id) && id.startsWith(SOLID_APP_PREFIX);
15
16
  },
16
- preClean(code) {
17
- // No Solid-specific pre-clean yet.
18
- return code;
19
- },
20
- rewriteFrameworkImports(code) {
21
- // Solid HMR primarily operates via Vite's own solid-refresh plugin;
22
- // @nativescript/vite vendor bridging handles NativeScript modules.
23
- // We keep this hook in case we need to remap solid-js imports later.
24
- return code;
17
+ // Suppress the prologue's common-block delta broadcast: Solid HMR depends on
18
+ // the client re-fetching the just-changed module to drive
19
+ // `solid-refresh.patchRegistry`, so the broadcast must come AFTER this
20
+ // handler purges the transform caches (see handleHotUpdate's tail). Otherwise
21
+ // the client's evict + re-import races the server's invalidation and serves
22
+ // the previous save's transform.
23
+ deferDeltaBroadcast: true,
24
+ // HMR: emit a graph delta for a changed app TSX/TS/JSX file, then bust the
25
+ // shared + Vite transform caches (file + transitive importers) so the
26
+ // client's re-import evaluates fresh code. Reached via the dispatcher's
27
+ // delegation seam after the shared prologue.
28
+ async handleHotUpdate(ctx, deps) {
29
+ const state = await runHotUpdatePrologue(ctx, deps);
30
+ if (!state)
31
+ return;
32
+ const { root, metrics, emitSummary } = state;
33
+ const { moduleGraph, verbose, sharedTransformRequest } = deps;
34
+ const { file, server } = ctx;
35
+ const isSolidFile = /\.(tsx?|jsx?)$/i.test(file);
36
+ if (!isSolidFile)
37
+ return;
38
+ metrics.tAfterFramework = Date.now();
39
+ try {
40
+ const rel = '/' + path.posix.normalize(path.relative(root, file)).split(path.sep).join('/');
41
+ if (verbose)
42
+ console.log('[hmr-ws][solid] app file hot update', { file, rel });
43
+ // The prologue's common graph-update block may have already emitted a
44
+ // delta if the file was in Vite's module graph. This forces emission
45
+ // for files it missed (e.g. new file, or moduleGraph mismatch).
46
+ const normalizedId = moduleGraph.normalizeGraphId(rel);
47
+ const existing = moduleGraph.get(normalizedId);
48
+ if (!existing) {
49
+ // Module not in graph yet — force upsert with timestamp-based
50
+ // hash so the client sees a change.
51
+ moduleGraph.upsert(rel, `/* solid-hmr ${Date.now()} */`, [], { emitDeltaOnInsert: true });
52
+ }
53
+ // Log what we're sending so devs can trace the flow on the server side.
54
+ if (verbose) {
55
+ const gm = moduleGraph.get(normalizedId);
56
+ console.log('[hmr-ws][solid] delta module', { id: gm?.id, hash: gm?.hash });
57
+ }
58
+ // Purge the shared transform-request cache AND Vite's own
59
+ // moduleGraph transformResult cache for the changed file
60
+ // AND every transitive importer.
61
+ //
62
+ // Why this matters for Solid HMR specifically:
63
+ // - The HMR client evicts V8's module cache for the
64
+ // canonical /ns/m/<path> URL and re-imports the module.
65
+ // - The dev server resolves /ns/m/* by calling
66
+ // `sharedTransformRequest(...)`, which has a 60s TTL on
67
+ // transform results to amortize cost across HMR
68
+ // cycles. The shared cache wraps `server.transformRequest`,
69
+ // which itself caches the compiled output on each
70
+ // `ModuleNode.transformResult`. Both layers must be
71
+ // invalidated, or the re-import resolves to whatever
72
+ // the previous save populated.
73
+ // - Without invalidation at *both* layers, the second
74
+ // save of a file within the cache window returns the
75
+ // FIRST save's transform — V8 evaluates stale code,
76
+ // `solid-refresh.patchRegistry` runs against an
77
+ // unchanged source body, and the visible page picks
78
+ // up the previous save's edit instead of the current
79
+ // one (the "one-save-behind" symptom users reported).
80
+ //
81
+ // Critically, transitive importers must also be invalidated
82
+ // because TanStack file-based routing (and similar frameworks)
83
+ // use route files that statically import their components.
84
+ // When `home.tsx` changes, `routes/index.tsx`'s transform
85
+ // output references the imported home module identity. Even
86
+ // though the route file's source bytes did not change, its
87
+ // *resolved* import target has — and its cached transform
88
+ // might still encode the previous resolution. Forcing a
89
+ // fresh transform of the importer guarantees the route
90
+ // file's `import Home from ...` re-resolves against the
91
+ // freshly evaluated home module on V8 side.
92
+ //
93
+ // The transitive walk is bounded (max depth 16, node_modules /
94
+ // virtual ids excluded) so vendor packages stay hot.
95
+ // Invalidate Vite's module graph for the changed file + its bounded
96
+ // transitive importers, then clear the shared transform-request cache.
97
+ // Transitive importers matter because TanStack file-based routing (and
98
+ // similar) statically import their components: when `home.tsx` changes,
99
+ // `routes/index.tsx`'s cached transform still encodes the previous
100
+ // resolution and must be re-run.
101
+ purgeTransformCachesForHotUpdate({ file, server, sharedTransformRequest, verbose, label: 'solid' });
102
+ // Re-run the transform AFTER all caches are invalidated, then
103
+ // re-upsert the graph so the broadcast hash matches the freshly-
104
+ // transformed content. The prologue's common upsert block ran
105
+ // `server.transformRequest` BEFORE invalidation — at that
106
+ // moment Vite's auto-invalidate hadn't fired yet (it runs after
107
+ // `plugin.handleHotUpdate`), so the result it cached was the
108
+ // previous save's. Without this re-transform, the broadcast
109
+ // carries a stale hash and iOS evaluates the previous save's
110
+ // bytes ("one save behind").
111
+ //
112
+ // We pre-populate the cache for every extension variant Vite's
113
+ // /ns/m/ handler might try, so the first request from iOS hits
114
+ // fresh data regardless of which candidate it resolves first.
115
+ try {
116
+ const ext = file.match(/\.(?:[mc]?[jt]sx?)$/i)?.[0] || '';
117
+ const baseSpec = '/' + path.posix.normalize(path.relative(root, file)).split(path.sep).join('/');
118
+ const baseNoExt = ext ? baseSpec.replace(/\.(?:[mc]?[jt]sx?)$/i, '') : baseSpec;
119
+ const candidates = Array.from(new Set([baseSpec, baseNoExt, baseNoExt + '.ts', baseNoExt + '.tsx', baseNoExt + '.js', baseNoExt + '.jsx', baseNoExt + '.mjs', baseNoExt + '.mts', baseNoExt + '.cts', file]));
120
+ let freshCode = '';
121
+ for (const cand of candidates) {
122
+ try {
123
+ const fresh = await sharedTransformRequest(cand, 30000);
124
+ if (fresh?.code && !freshCode)
125
+ freshCode = fresh.code;
126
+ }
127
+ catch { }
128
+ }
129
+ if (freshCode) {
130
+ const existingGm = moduleGraph.get(normalizedId);
131
+ const existingDeps = existingGm?.deps || [];
132
+ moduleGraph.upsert(normalizedId, freshCode, existingDeps, {
133
+ broadcastDelta: false,
134
+ });
135
+ }
136
+ }
137
+ catch (e) {
138
+ if (verbose)
139
+ console.warn('[hmr-ws][solid] post-invalidation re-transform failed', e);
140
+ }
141
+ // Broadcast the (now-fresh) delta here, AFTER cache invalidation. The
142
+ // prologue suppresses the common-block broadcast for this flavor (via
143
+ // `deferDeltaBroadcast`), so emitting it now ensures the client's
144
+ // eviction + re-import doesn't race the server's cache invalidation.
145
+ try {
146
+ const gm = moduleGraph.get(normalizedId);
147
+ if (gm) {
148
+ moduleGraph.emitDelta([gm], []);
149
+ if (verbose) {
150
+ console.log('[hmr-ws][solid] broadcast delta after cache invalidation', { id: gm.id, hash: gm.hash });
151
+ }
152
+ }
153
+ }
154
+ catch (e) {
155
+ if (verbose)
156
+ console.warn('[hmr-ws][solid] post-invalidation broadcast failed', e);
157
+ }
158
+ }
159
+ catch (e) {
160
+ if (verbose)
161
+ console.warn('[hmr-ws][solid] failed to handle hot update for', file, e);
162
+ }
163
+ emitSummary();
25
164
  },
26
- postClean(code) {
27
- // No extra Solid-specific cleanup for now.
28
- return code;
165
+ // preClean/rewriteFrameworkImports/postClean/ensureVersionedImports default to
166
+ // identity: Solid HMR runs through Vite's solid-refresh plugin + the generic
167
+ // vendor bridge, and has no dedicated HTTP endpoints to version.
168
+ //
169
+ // Solid HMR: patch @solid-refresh's $$refreshESM to do inline patching
170
+ // during module re-evaluation instead of deferring to hot.accept() callback.
171
+ // In NativeScript's HTTP ESM environment, accept callbacks are registered
172
+ // but not invoked by the HMR client. By adding a direct patchRegistry()
173
+ // call when hot.data already has a stored registry, component updates
174
+ // apply immediately when the module re-evaluates.
175
+ transformNodeModule(code, moduleId, verbose = false) {
176
+ if (!moduleId.includes('@solid-refresh')) {
177
+ return code;
178
+ }
179
+ const PATCH_SENTINEL = '/* __ns_solid_refresh_patched__ */';
180
+ const alreadyPatched = code.includes(PATCH_SENTINEL);
181
+ if (verbose) {
182
+ console.log('[hmr-ws][solid] @solid-refresh patch check:', { spec: moduleId, alreadyPatched, codeLen: code.length });
183
+ }
184
+ if (alreadyPatched) {
185
+ return code;
186
+ }
187
+ let patchedCode = code;
188
+ // Patch 1: Bypass shouldWarnAndDecline() — the vendor-bundled solid-js
189
+ // may not have the 'development' condition active, making DEV empty/undefined.
190
+ // In NativeScript HMR mode we are always in dev, so force it to return false.
191
+ const declineCheck = 'function shouldWarnAndDecline() {';
192
+ if (patchedCode.includes(declineCheck)) {
193
+ patchedCode = patchedCode.replace(declineCheck, `${PATCH_SENTINEL}\nfunction shouldWarnAndDecline() { return false; /* NS HMR: always allow refresh */ }\nfunction __original_shouldWarnAndDecline() {`);
194
+ if (verbose) {
195
+ console.log('[hmr-ws][solid] bypassed shouldWarnAndDecline() for NativeScript HMR');
196
+ }
197
+ }
198
+ // Patch 2: Force createMemo path in createProxy.
199
+ // Without the 'development' condition, $DEVCOMP is not set on components,
200
+ // so createProxy falls through to `return s(props)` — a direct call with
201
+ // no reactive subscription. When patchComponent fires update() (the signal
202
+ // setter), nobody is listening. By forcing the createMemo path, HMRComp
203
+ // subscribes to the signal and re-renders when the component changes.
204
+ const proxyCondition = 'if (!s || $DEVCOMP in s) {';
205
+ if (patchedCode.includes(proxyCondition)) {
206
+ patchedCode = patchedCode.replace(proxyCondition, 'if (true) { /* NS HMR: always use createMemo for reactive HMR updates */');
207
+ if (verbose) {
208
+ console.log('[hmr-ws][solid] forced createMemo path in createProxy for NativeScript HMR');
209
+ }
210
+ }
211
+ // Patch 2b (NS HMR escape hatch): expose `source` on the proxy
212
+ // itself via a non-enumerable, well-known symbol-ish key. This lets
213
+ // our HMR remount path bypass solid-refresh's proxy chain and call
214
+ // the freshly-patched underlying Home function directly. solid-refresh's
215
+ // proxy wraps everything in nested createMemo's, which under
216
+ // universal-renderer + nested-context (TanStack RouterContextProvider)
217
+ // causes accumulating zombie memos that all subscribe to M_initial.source
218
+ // — the visible symptom is "every other save applies".
219
+ //
220
+ // With this hatch we can do `proxy.__$$ns_resolve()` to obtain the
221
+ // current underlying component (e.g. M_initial.proxy after first save,
222
+ // or the actual Home function on the deepest hop) and then call
223
+ // untrack(() => extract until we reach the actual function), then mount
224
+ // against THAT function — no HMRComp memo proxy chain at the page level.
225
+ // NS HMR escape hatch: stash `source` on the HMRComp function
226
+ // itself AND short-circuit the Proxy's `get` handler so that
227
+ // `proxy.__$ns_resolveSource` returns our exposed function.
228
+ // Without the get-handler short-circuit, accessing the property
229
+ // on the Proxy goes through `return source()[property]` — which
230
+ // asks the *current source value* (which may itself be another
231
+ // solid-refresh proxy or the underlying user function) for the
232
+ // property. The user function doesn't have `__$ns_resolveSource`,
233
+ // and a chained proxy would re-enter its own get handler. Either
234
+ // way we end up with `undefined` at the page-level remount and
235
+ // can't unwrap.
236
+ //
237
+ // NOTE: `$$` in String.prototype.replace replacement is treated
238
+ // as a literal `$`. We use a single `$` to avoid that footgun.
239
+ // Match only the unique opening fragment to avoid getting tripped up
240
+ // by whitespace differences after the AST normalizer ran.
241
+ const newProxyMarker = `if (property === 'location' || property === 'name') {`;
242
+ if (patchedCode.includes(newProxyMarker)) {
243
+ // 1. Inject `__$ns_resolveSource` as a property on the HMRComp
244
+ // function itself (so its closure captures `source`).
245
+ // CRITICAL: assign at module-eval time (right after HMRComp
246
+ // is defined / before `return new Proxy(...)`), NOT inside
247
+ // the HMRComp body — the body only runs when the proxy is
248
+ // called, so before first call the property is undefined
249
+ // and the page-level remount unwrap finds nothing.
250
+ const setupMarker = `setComponentProperty(HMRComp, 'name', refreshName);`;
251
+ patchedCode = patchedCode.replace(setupMarker, `HMRComp.__$ns_resolveSource = function() { return source(); }; ${setupMarker}`);
252
+ // 2. Make the Proxy `get` handler short-circuit our property
253
+ // so callers can do `proxy.__$ns_resolveSource()` without
254
+ // going through `source()[property]` (which would unwrap one
255
+ // hop early or reach the user function which doesn't have it).
256
+ patchedCode = patchedCode.replace(newProxyMarker, `if (property === '__$ns_resolveSource') { return HMRComp.__$ns_resolveSource; } ${newProxyMarker}`);
257
+ if (verbose) {
258
+ console.log('[hmr-ws][solid] exposed __$ns_resolveSource on createProxy for NS HMR escape hatch');
259
+ }
260
+ }
261
+ // Patch 3: Inline patchRegistry call so updates apply immediately
262
+ // on module re-evaluation (accept callbacks are not invoked by the HMR client).
263
+ //
264
+ // The injected diagnostic logs are gated on
265
+ // `globalThis.__NS_ENV_VERBOSE__` so they're silent in
266
+ // normal use but resurface immediately when the user
267
+ // re-runs with verbose logging enabled. The flag is
268
+ // seeded by `mainEntryPlugin` from the same `verbose`
269
+ // option that drives this server-side log gating.
270
+ // Without these the visible HMR signal is just "did it
271
+ // apply" — with them, devs can answer "did `hot.data`
272
+ // persist", "did `patchRegistry` actually swap the
273
+ // proxy's signal source", and "did the registry
274
+ // component count change" without reaching for an
275
+ // inspector.
276
+ const marker = 'hot.data[SOLID_REFRESH] = hot.data[SOLID_REFRESH] || registry;';
277
+ if (patchedCode.includes(marker)) {
278
+ const patchCode = [
279
+ `var __nsRefreshVerbose = (typeof globalThis !== 'undefined') && !!globalThis.__NS_ENV_VERBOSE__;`,
280
+ `if (__nsRefreshVerbose) console.log('[ns-hmr][solid-refresh][$$refreshESM] hot.data has SOLID_REFRESH=', !!(hot.data && hot.data[SOLID_REFRESH]), 'registry components=', registry.components ? registry.components.size : 0);`,
281
+ `if (hot.data[SOLID_REFRESH]) {`,
282
+ ` var __nsOldComponents = hot.data[SOLID_REFRESH].components ? hot.data[SOLID_REFRESH].components.size : 0;`,
283
+ ` var __nsShouldInvalidate = patchRegistry(hot.data[SOLID_REFRESH], registry);`,
284
+ ` if (__nsRefreshVerbose) console.log('[ns-hmr][solid-refresh][$$refreshESM] patched: oldComponents=', __nsOldComponents, 'newComponents=', registry.components ? registry.components.size : 0, 'shouldInvalidate=', __nsShouldInvalidate);`,
285
+ `} else {`,
286
+ ` if (__nsRefreshVerbose) console.log('[ns-hmr][solid-refresh][$$refreshESM] first load — no prior registry to patch');`,
287
+ `}`,
288
+ ].join('\n ');
289
+ patchedCode = patchedCode.replace(marker, `${patchCode}\n ${marker}`);
290
+ if (verbose) {
291
+ console.log('[hmr-ws][solid] added inline patchRegistry (with diagnostics) for NativeScript HMR');
292
+ }
293
+ }
294
+ return patchedCode;
29
295
  },
30
- ensureVersionedImports(code, _origin, _version) {
31
- // Solid currently has no dedicated HTTP endpoints like /ns/sfc.
32
- return code;
296
+ // ── pin solid-js to the canonical HTTP dev.js URL ─────────────────────
297
+ // The vendor bundle
298
+ // externalizes `solid-js` for this flavor, so all three import sites
299
+ // (vendor's externalized `import 'solid-js'`, user code's alias-rewritten
300
+ // path, and `@solid-refresh`'s rewritten import) MUST converge on this one
301
+ // URL — V8's ESM loader dedupes by URL, giving a single reactive graph.
302
+ // No trailing-slash prefix: subpaths (solid-js/store, /web) resolve via
303
+ // HTTP from discoverInstalledPackages().
304
+ importMapEntries(origin) {
305
+ return {
306
+ 'solid-js': `${origin}/ns/m/node_modules/solid-js/dist/dev.js`,
307
+ };
33
308
  },
34
309
  async processFile(ctx) {
35
310
  // For now we rely on the generic pipeline; no per-file Solid SFC registry.
@@ -1 +1 @@
1
- {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../../../../../packages/vite/hmr/frameworks/solid/server/strategy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,GAAG,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAExE,8CAA8C;AAC9C,sEAAsE;AACtE,uEAAuE;AACvE,+CAA+C;AAE/C,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AAC7C,MAAM,gBAAgB,GAAG,GAAG,wBAAwB,EAAE,GAAG,CAAC;AAE1D,MAAM,CAAC,MAAM,mBAAmB,GAA4B;IAC3D,MAAM,EAAE,OAAO;IACf,WAAW,CAAC,EAAU;QACrB,6EAA6E;QAC7E,OAAO,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACvE,CAAC;IACD,QAAQ,CAAC,IAAY;QACpB,mCAAmC;QACnC,OAAO,IAAI,CAAC;IACb,CAAC;IACD,uBAAuB,CAAC,IAAY;QACnC,oEAAoE;QACpE,mEAAmE;QACnE,qEAAqE;QACrE,OAAO,IAAI,CAAC;IACb,CAAC;IACD,SAAS,CAAC,IAAY;QACrB,2CAA2C;QAC3C,OAAO,IAAI,CAAC;IACb,CAAC;IACD,sBAAsB,CAAC,IAAY,EAAE,OAAe,EAAE,QAAgB;QACrE,gEAAgE;QAChE,OAAO,IAAI,CAAC;IACb,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,GAAgC;QACjD,2EAA2E;QAC3E,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;QAC1C,IAAI,CAAC;YACJ,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAC5D,IAAI,CAAC,WAAW,EAAE,IAAI;gBAAE,OAAO;YAC/B,IAAI,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;YAClD,CAAC;QACF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,IAAI,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;YAClE,CAAC;QACF,CAAC;IACF,CAAC;IACD,KAAK,CAAC,aAAa,CAAC,IAA8B;QACjD,gFAAgF;QAChF,OAAO;IACR,CAAC;CACD,CAAC"}
1
+ {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../../../../../packages/vite/hmr/frameworks/solid/server/strategy.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { getProjectAppPath, getProjectAppVirtualPath } from '../../../../helpers/utils.js';
2
2
  import * as path from 'path';
3
3
  import { isRuntimeGraphExcludedPath, matchesRuntimeGraphModuleId, shouldIncludeRuntimeGraphFile, shouldSkipRuntimeGraphDirectoryName } from '../../../server/runtime-graph-filter.js';
4
+ import { runHotUpdatePrologue } from '../../../server/websocket-hot-update.js';
4
5
  // TypeScript server strategy for NativeScript HMR.
5
6
  // This is a lightweight strategy that treats app TS/JS files
6
7
  // as HTTP-loaded modules, relying on the shared HMR pipeline
@@ -13,21 +14,44 @@ export const typescriptServerStrategy = {
13
14
  // Treat any app TS/JS under the virtual app root as HMR-relevant.
14
15
  return matchesRuntimeGraphModuleId(id, TS_APP_PREFIX, TS_FILE_PATTERN);
15
16
  },
16
- preClean(code) {
17
- // No TS-specific pre-clean; generic sanitizers handle core/HMR noise.
18
- return code;
19
- },
20
- rewriteFrameworkImports(code) {
21
- // For plain TS apps we rely on vendor bridging and generic import rewriting.
22
- return code;
23
- },
24
- postClean(code) {
25
- return code;
26
- },
27
- ensureVersionedImports(code, _origin, _version) {
28
- // TypeScript flavor uses direct /ns/entry-rt and HTTP graph; no extra versioning.
29
- return code;
17
+ // HMR: reached via the dispatcher's delegation seam. Run the shared
18
+ // prologue (scope gate, pending overlay, common graph upsert, CSS), then —
19
+ // for an in-scope app file — emit a generic graph delta. We treat the changed
20
+ // file as a graph module with no deps so its hash/identity changes and the
21
+ // client sees a delta and can perform a TS root reset; the code body is not
22
+ // used for execution here.
23
+ async handleHotUpdate(ctx, deps) {
24
+ const state = await runHotUpdatePrologue(ctx, deps);
25
+ if (!state)
26
+ return;
27
+ const { root, metrics, emitSummary } = state;
28
+ const { moduleGraph, verbose, wss, isSocketClientOpen } = deps;
29
+ const { file } = ctx;
30
+ metrics.tAfterFramework = Date.now();
31
+ try {
32
+ const rel = '/' + path.posix.normalize(path.relative(root, file)).split(path.sep).join('/');
33
+ if (verbose)
34
+ console.log('[hmr-ws][ts] app file hot update', { file, rel });
35
+ moduleGraph.upsert(rel, '', [], { emitDeltaOnInsert: true });
36
+ // For this flavor the ns:hmr-delta broadcast IS the update delivery —
37
+ // count open sockets so the always-on summary line reflects reality
38
+ // instead of reporting recipients=0 for a delivered update.
39
+ try {
40
+ wss?.clients?.forEach((client) => {
41
+ if (isSocketClientOpen(client))
42
+ metrics.recipients += 1;
43
+ });
44
+ }
45
+ catch { }
46
+ }
47
+ catch (e) {
48
+ if (verbose)
49
+ console.warn('[hmr-ws][ts] failed to emit delta for', file, e);
50
+ }
51
+ emitSummary();
30
52
  },
53
+ // preClean/rewriteFrameworkImports/postClean/ensureVersionedImports default to
54
+ // identity: plain TS apps rely on the generic pipeline (vendor bridge, /ns/entry-rt).
31
55
  async processFile(ctx) {
32
56
  // Ensure that any TS app module requested by the HTTP realm is transformed once,
33
57
  // so that downstream helpers (rewriteImports, vendor bridge) see a stable shape.
@@ -1 +1 @@
1
- {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../../../../../packages/vite/hmr/frameworks/typescript/server/strategy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../../../../../packages/vite/hmr/frameworks/typescript/server/strategy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Reverse-import-graph propagation for non-SFC dependency edits (Vue flavor).
3
+ *
4
+ * Editing a `.vue` file flows through `ns:vue-sfc-registry-update` →
5
+ * `loadSfcComponent` → `performResetRoot`, so the screen always reflects the
6
+ * fresh artifact. Editing a plain `.ts`/`.js` module that an SFC imports does
7
+ * NOT produce a registry update — the shared queue only evicts and re-imports
8
+ * the changed module itself. The freshly-instantiated dep module is then
9
+ * sitting in V8's cache while the live component instance still holds bindings
10
+ * to the OLD module instance, so the visible UI never changes even though the
11
+ * overlay reports the update as applied.
12
+ *
13
+ * This walker finds the `.vue` boundaries that (transitively) import the
14
+ * changed modules so the Vue strategy can reload + remount them — the exact
15
+ * counterpart of the Solid flavor's `.tsx` boundary BFS in the shared queue.
16
+ *
17
+ * Pure function (graph in, boundaries out) so the propagation decision is unit
18
+ * testable without booting the device runtime.
19
+ */
20
+ export interface DepGraphModuleLike {
21
+ id: string;
22
+ deps: string[];
23
+ }
24
+ export declare function normalizeDepGraphKey(id: string): string;
25
+ /**
26
+ * BFS the reverse import graph from each changed non-`.vue` module up to the
27
+ * NEAREST `.vue` boundaries. SFC boundaries terminate the walk (remounting a
28
+ * boundary re-assembles its whole subtree, so walking past it would only
29
+ * produce redundant ancestors). Returns query-stripped `.vue` ids in BFS
30
+ * discovery order (nearest first), deduplicated.
31
+ *
32
+ * Changed ids that are themselves `.vue` files are ignored — those flow
33
+ * through the SFC registry-update path and never enter the shared re-import
34
+ * queue.
35
+ */
36
+ export declare function findNearestSfcBoundaries(changedIds: readonly string[], graph: ReadonlyMap<string, DepGraphModuleLike>): string[];
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Reverse-import-graph propagation for non-SFC dependency edits (Vue flavor).
3
+ *
4
+ * Editing a `.vue` file flows through `ns:vue-sfc-registry-update` →
5
+ * `loadSfcComponent` → `performResetRoot`, so the screen always reflects the
6
+ * fresh artifact. Editing a plain `.ts`/`.js` module that an SFC imports does
7
+ * NOT produce a registry update — the shared queue only evicts and re-imports
8
+ * the changed module itself. The freshly-instantiated dep module is then
9
+ * sitting in V8's cache while the live component instance still holds bindings
10
+ * to the OLD module instance, so the visible UI never changes even though the
11
+ * overlay reports the update as applied.
12
+ *
13
+ * This walker finds the `.vue` boundaries that (transitively) import the
14
+ * changed modules so the Vue strategy can reload + remount them — the exact
15
+ * counterpart of the Solid flavor's `.tsx` boundary BFS in the shared queue.
16
+ *
17
+ * Pure function (graph in, boundaries out) so the propagation decision is unit
18
+ * testable without booting the device runtime.
19
+ */
20
+ const VUE_SFC_ID_RE = /\.vue$/i;
21
+ // Keep in sync with the client utils' canonical-URL extension stripping: the
22
+ // graph may record a dep as `/src/test2.ts` while a changed id (or another
23
+ // importer's dep entry) appears as `/src/test2` — both must key identically.
24
+ const SCRIPT_EXT_RE = /\.(ts|tsx|js|jsx|mjs|mts|cts)$/i;
25
+ export function normalizeDepGraphKey(id) {
26
+ let key = String(id || '').split('?')[0];
27
+ if (!key)
28
+ return '';
29
+ if (!key.startsWith('/'))
30
+ key = '/' + key;
31
+ return key.replace(SCRIPT_EXT_RE, '');
32
+ }
33
+ /**
34
+ * BFS the reverse import graph from each changed non-`.vue` module up to the
35
+ * NEAREST `.vue` boundaries. SFC boundaries terminate the walk (remounting a
36
+ * boundary re-assembles its whole subtree, so walking past it would only
37
+ * produce redundant ancestors). Returns query-stripped `.vue` ids in BFS
38
+ * discovery order (nearest first), deduplicated.
39
+ *
40
+ * Changed ids that are themselves `.vue` files are ignored — those flow
41
+ * through the SFC registry-update path and never enter the shared re-import
42
+ * queue.
43
+ */
44
+ export function findNearestSfcBoundaries(changedIds, graph) {
45
+ if (!changedIds?.length || !graph?.size)
46
+ return [];
47
+ // Reverse index: normalized dep key → importer ids.
48
+ const reverseIndex = new Map();
49
+ for (const [id, mod] of graph) {
50
+ const deps = Array.isArray(mod?.deps) ? mod.deps : [];
51
+ for (const dep of deps) {
52
+ const key = normalizeDepGraphKey(dep);
53
+ if (!key)
54
+ continue;
55
+ let importers = reverseIndex.get(key);
56
+ if (!importers) {
57
+ importers = [];
58
+ reverseIndex.set(key, importers);
59
+ }
60
+ importers.push(id);
61
+ }
62
+ }
63
+ const boundaries = [];
64
+ const boundarySeen = new Set();
65
+ const visited = new Set();
66
+ const queue = [];
67
+ for (const raw of changedIds) {
68
+ if (!raw || typeof raw !== 'string')
69
+ continue;
70
+ if (VUE_SFC_ID_RE.test(raw.split('?')[0]))
71
+ continue;
72
+ const key = normalizeDepGraphKey(raw);
73
+ if (key && !visited.has(key)) {
74
+ visited.add(key);
75
+ queue.push(key);
76
+ }
77
+ }
78
+ while (queue.length) {
79
+ const key = queue.shift();
80
+ const importers = reverseIndex.get(key);
81
+ if (!importers)
82
+ continue;
83
+ for (const importer of importers) {
84
+ const importerBase = importer.split('?')[0];
85
+ if (VUE_SFC_ID_RE.test(importerBase)) {
86
+ if (!boundarySeen.has(importerBase)) {
87
+ boundarySeen.add(importerBase);
88
+ boundaries.push(importerBase);
89
+ }
90
+ continue;
91
+ }
92
+ const importerKey = normalizeDepGraphKey(importer);
93
+ if (importerKey && !visited.has(importerKey)) {
94
+ visited.add(importerKey);
95
+ queue.push(importerKey);
96
+ }
97
+ }
98
+ }
99
+ return boundaries;
100
+ }
101
+ //# sourceMappingURL=dep-propagation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dep-propagation.js","sourceRoot":"","sources":["../../../../../../../packages/vite/hmr/frameworks/vue/client/dep-propagation.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,14 @@ export declare function ensureNsVueBootstrap(): void;
7
7
  export declare function handleVueSfcRegistry(msg: any): void;
8
8
  export declare function handleVueSfcRegistryUpdate(msg: any, graphVersion: number): Promise<any>;
9
9
  export declare function recordVuePayloadChanges(changed: any[], graphVersion: number): void;
10
+ /**
11
+ * True when the delta for `version` included a `.vue` change. The dep-change
12
+ * propagation in `refreshAfterBatch` uses this to stand down for mixed batches:
13
+ * the SFC registry-update path will already remount with a freshly assembled
14
+ * artifact at this version, which links against the re-imported deps — a second
15
+ * resetRoot from propagation would just double the work (and the flash).
16
+ */
17
+ export declare function sfcChangedInVersion(version: number): boolean;
10
18
  export declare function addSfcMapping(originalPath: string, fileName: string): void;
11
19
  export declare function loadSfcComponent(targetVuePath: string, tag: string): Promise<any | null>;
12
20
  export declare function getRootForVue(newComponent: any, state: {