@nativescript/vite 8.0.0-beta.0 → 8.0.0-rc.0

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 (577) hide show
  1. package/README.md +73 -14
  2. package/bin/cli.cjs +8 -14
  3. package/configuration/angular.d.ts +35 -2
  4. package/configuration/angular.js +541 -216
  5. package/configuration/angular.js.map +1 -1
  6. package/configuration/base.js +227 -77
  7. package/configuration/base.js.map +1 -1
  8. package/configuration/javascript.js +17 -96
  9. package/configuration/javascript.js.map +1 -1
  10. package/configuration/react.js +41 -73
  11. package/configuration/react.js.map +1 -1
  12. package/configuration/solid.js +58 -6
  13. package/configuration/solid.js.map +1 -1
  14. package/configuration/typescript.js +15 -96
  15. package/configuration/typescript.js.map +1 -1
  16. package/helpers/app-components.d.ts +2 -1
  17. package/helpers/app-components.js.map +1 -1
  18. package/helpers/app-css-refresh.d.ts +31 -0
  19. package/helpers/app-css-refresh.js +43 -0
  20. package/helpers/app-css-refresh.js.map +1 -0
  21. package/helpers/app-css-state.d.ts +17 -0
  22. package/helpers/app-css-state.js +51 -0
  23. package/helpers/app-css-state.js.map +1 -0
  24. package/helpers/bundler-context.d.ts +11 -0
  25. package/helpers/bundler-context.js +71 -0
  26. package/helpers/bundler-context.js.map +1 -0
  27. package/helpers/cli-flags.d.ts +12 -0
  28. package/helpers/cli-flags.js +34 -0
  29. package/helpers/cli-flags.js.map +1 -1
  30. package/helpers/commonjs-plugins.d.ts +5 -2
  31. package/helpers/commonjs-plugins.js +126 -0
  32. package/helpers/commonjs-plugins.js.map +1 -1
  33. package/helpers/config-as-json.js +10 -0
  34. package/helpers/config-as-json.js.map +1 -1
  35. package/helpers/css-platform-plugin.d.ts +14 -0
  36. package/helpers/css-platform-plugin.js +43 -25
  37. package/helpers/css-platform-plugin.js.map +1 -1
  38. package/helpers/dev-host.d.ts +360 -0
  39. package/helpers/dev-host.js +694 -0
  40. package/helpers/dev-host.js.map +1 -0
  41. package/helpers/dynamic-import-plugin.d.ts +2 -1
  42. package/helpers/dynamic-import-plugin.js +59 -53
  43. package/helpers/dynamic-import-plugin.js.map +1 -1
  44. package/helpers/esbuild-platform-resolver.js +9 -6
  45. package/helpers/esbuild-platform-resolver.js.map +1 -1
  46. package/helpers/external-configs.d.ts +10 -4
  47. package/helpers/external-configs.js +63 -15
  48. package/helpers/external-configs.js.map +1 -1
  49. package/helpers/flavor.d.ts +13 -0
  50. package/helpers/flavor.js +18 -1
  51. package/helpers/flavor.js.map +1 -1
  52. package/helpers/global-defines.d.ts +117 -0
  53. package/helpers/global-defines.js +209 -11
  54. package/helpers/global-defines.js.map +1 -1
  55. package/helpers/hmr-scope.d.ts +26 -0
  56. package/helpers/hmr-scope.js +67 -0
  57. package/helpers/hmr-scope.js.map +1 -0
  58. package/helpers/import-meta-path.d.ts +4 -0
  59. package/helpers/import-meta-path.js +5 -0
  60. package/helpers/import-meta-path.js.map +1 -0
  61. package/helpers/import-specifier.d.ts +1 -0
  62. package/helpers/import-specifier.js +18 -0
  63. package/helpers/import-specifier.js.map +1 -0
  64. package/helpers/init.js +6 -20
  65. package/helpers/init.js.map +1 -1
  66. package/helpers/logging.d.ts +1 -0
  67. package/helpers/logging.js +65 -4
  68. package/helpers/logging.js.map +1 -1
  69. package/helpers/main-entry.d.ts +8 -2
  70. package/helpers/main-entry.js +622 -120
  71. package/helpers/main-entry.js.map +1 -1
  72. package/helpers/nativeclass-esbuild-plugin.d.ts +2 -1
  73. package/helpers/nativeclass-esbuild-plugin.js +6 -1
  74. package/helpers/nativeclass-esbuild-plugin.js.map +1 -1
  75. package/helpers/nativeclass-transform.d.ts +13 -0
  76. package/helpers/nativeclass-transform.js +42 -131
  77. package/helpers/nativeclass-transform.js.map +1 -1
  78. package/helpers/nativeclass-transformer-plugin.d.ts +19 -1
  79. package/helpers/nativeclass-transformer-plugin.js +324 -37
  80. package/helpers/nativeclass-transformer-plugin.js.map +1 -1
  81. package/helpers/nativescript-package-resolver.js +10 -62
  82. package/helpers/nativescript-package-resolver.js.map +1 -1
  83. package/helpers/normalize-id.d.ts +42 -0
  84. package/helpers/normalize-id.js +60 -0
  85. package/helpers/normalize-id.js.map +1 -0
  86. package/helpers/ns-core-external-urls.d.ts +32 -0
  87. package/helpers/ns-core-external-urls.js +107 -0
  88. package/helpers/ns-core-external-urls.js.map +1 -0
  89. package/helpers/ns-core-url.d.ts +106 -0
  90. package/helpers/ns-core-url.js +225 -0
  91. package/helpers/ns-core-url.js.map +1 -0
  92. package/helpers/optimize-deps.d.ts +16 -0
  93. package/helpers/optimize-deps.js +17 -0
  94. package/helpers/optimize-deps.js.map +1 -0
  95. package/helpers/package-platform-aliases.js +34 -49
  96. package/helpers/package-platform-aliases.js.map +1 -1
  97. package/helpers/platform-types.d.ts +2 -0
  98. package/helpers/platform-types.js +2 -0
  99. package/helpers/platform-types.js.map +1 -0
  100. package/helpers/postcss-platform-config.d.ts +17 -1
  101. package/helpers/postcss-platform-config.js +20 -37
  102. package/helpers/postcss-platform-config.js.map +1 -1
  103. package/helpers/project.d.ts +35 -0
  104. package/helpers/project.js +120 -2
  105. package/helpers/project.js.map +1 -1
  106. package/helpers/resolve-main-field-platform.d.ts +20 -0
  107. package/helpers/resolve-main-field-platform.js +49 -0
  108. package/helpers/resolve-main-field-platform.js.map +1 -0
  109. package/helpers/resolver.js +17 -2
  110. package/helpers/resolver.js.map +1 -1
  111. package/helpers/theme-core-plugins.js +1 -1
  112. package/helpers/theme-core-plugins.js.map +1 -1
  113. package/helpers/ts-config-paths.d.ts +32 -0
  114. package/helpers/ts-config-paths.js +156 -27
  115. package/helpers/ts-config-paths.js.map +1 -1
  116. package/helpers/typescript-check.d.ts +2 -1
  117. package/helpers/typescript-check.js +4 -4
  118. package/helpers/typescript-check.js.map +1 -1
  119. package/helpers/ui-registration.d.ts +21 -0
  120. package/helpers/ui-registration.js +156 -0
  121. package/helpers/ui-registration.js.map +1 -0
  122. package/helpers/utils.d.ts +9 -0
  123. package/helpers/utils.js +22 -2
  124. package/helpers/utils.js.map +1 -1
  125. package/helpers/vite-package-version.d.ts +7 -0
  126. package/helpers/vite-package-version.js +44 -0
  127. package/helpers/vite-package-version.js.map +1 -0
  128. package/helpers/workers.d.ts +40 -19
  129. package/helpers/workers.js +312 -13
  130. package/helpers/workers.js.map +1 -1
  131. package/hmr/client/css-handler.d.ts +2 -1
  132. package/hmr/client/css-handler.js +95 -23
  133. package/hmr/client/css-handler.js.map +1 -1
  134. package/hmr/client/css-update-overlay.d.ts +18 -0
  135. package/hmr/client/css-update-overlay.js +27 -0
  136. package/hmr/client/css-update-overlay.js.map +1 -0
  137. package/hmr/client/framework-client-strategy.d.ts +87 -0
  138. package/hmr/client/framework-client-strategy.js +18 -0
  139. package/hmr/client/framework-client-strategy.js.map +1 -0
  140. package/hmr/client/hmr-pending-overlay.d.ts +13 -0
  141. package/hmr/client/hmr-pending-overlay.js +41 -0
  142. package/hmr/client/hmr-pending-overlay.js.map +1 -0
  143. package/hmr/client/hot-context.d.ts +67 -0
  144. package/hmr/client/hot-context.js +307 -0
  145. package/hmr/client/hot-context.js.map +1 -0
  146. package/hmr/client/index.d.ts +9 -1
  147. package/hmr/client/index.js +91 -1418
  148. package/hmr/client/index.js.map +1 -1
  149. package/hmr/client/overlay-driver.d.ts +10 -0
  150. package/hmr/client/overlay-driver.js +33 -0
  151. package/hmr/client/overlay-driver.js.map +1 -0
  152. package/hmr/client/protocol-dispatch.d.ts +8 -0
  153. package/hmr/client/protocol-dispatch.js +308 -0
  154. package/hmr/client/protocol-dispatch.js.map +1 -0
  155. package/hmr/client/root-reset.d.ts +15 -0
  156. package/hmr/client/root-reset.js +358 -0
  157. package/hmr/client/root-reset.js.map +1 -0
  158. package/hmr/client/strategy-loader.d.ts +24 -0
  159. package/hmr/client/strategy-loader.js +100 -0
  160. package/hmr/client/strategy-loader.js.map +1 -0
  161. package/hmr/client/update-pipeline.d.ts +27 -0
  162. package/hmr/client/update-pipeline.js +464 -0
  163. package/hmr/client/update-pipeline.js.map +1 -0
  164. package/hmr/client/utils.d.ts +14 -1
  165. package/hmr/client/utils.js +265 -54
  166. package/hmr/client/utils.js.map +1 -1
  167. package/hmr/client/ws-transport.d.ts +21 -0
  168. package/hmr/client/ws-transport.js +323 -0
  169. package/hmr/client/ws-transport.js.map +1 -0
  170. package/hmr/entry-runtime.d.ts +11 -0
  171. package/hmr/entry-runtime.js +566 -43
  172. package/hmr/entry-runtime.js.map +1 -1
  173. package/hmr/frameworks/angular/build/angular-linker.d.ts +12 -0
  174. package/hmr/frameworks/angular/build/angular-linker.js +113 -0
  175. package/hmr/frameworks/angular/build/angular-linker.js.map +1 -0
  176. package/hmr/frameworks/angular/build/inject-component-hmr-registration.d.ts +112 -0
  177. package/hmr/frameworks/angular/build/inject-component-hmr-registration.js +291 -0
  178. package/hmr/frameworks/angular/build/inject-component-hmr-registration.js.map +1 -0
  179. package/hmr/frameworks/angular/build/inject-hmr-vite-ignore.d.ts +75 -0
  180. package/hmr/frameworks/angular/build/inject-hmr-vite-ignore.js +221 -0
  181. package/hmr/frameworks/angular/build/inject-hmr-vite-ignore.js.map +1 -0
  182. package/hmr/frameworks/angular/build/inline-decorator-component-templates.d.ts +3 -0
  183. package/hmr/frameworks/angular/build/inline-decorator-component-templates.js +231 -0
  184. package/hmr/frameworks/angular/build/inline-decorator-component-templates.js.map +1 -0
  185. package/hmr/frameworks/angular/build/js-lexer.d.ts +4 -0
  186. package/hmr/frameworks/angular/build/js-lexer.js +182 -0
  187. package/hmr/frameworks/angular/build/js-lexer.js.map +1 -0
  188. package/hmr/frameworks/angular/build/linker-stats.d.ts +18 -0
  189. package/hmr/frameworks/angular/build/linker-stats.js +29 -0
  190. package/hmr/frameworks/angular/build/linker-stats.js.map +1 -0
  191. package/hmr/frameworks/angular/build/shared-linker.d.ts +39 -0
  192. package/hmr/frameworks/angular/build/shared-linker.js +128 -0
  193. package/hmr/frameworks/angular/build/shared-linker.js.map +1 -0
  194. package/hmr/frameworks/angular/build/synthesize-decorator-ctor-parameters.d.ts +1 -0
  195. package/hmr/frameworks/angular/build/synthesize-decorator-ctor-parameters.js +88 -0
  196. package/hmr/frameworks/angular/build/synthesize-decorator-ctor-parameters.js.map +1 -0
  197. package/hmr/frameworks/angular/build/synthesize-injectable-factories.d.ts +3 -0
  198. package/hmr/frameworks/angular/build/synthesize-injectable-factories.js +241 -0
  199. package/hmr/frameworks/angular/build/synthesize-injectable-factories.js.map +1 -0
  200. package/hmr/frameworks/angular/build/ts-fallback-transform.d.ts +5 -0
  201. package/hmr/frameworks/angular/build/ts-fallback-transform.js +138 -0
  202. package/hmr/frameworks/angular/build/ts-fallback-transform.js.map +1 -0
  203. package/{helpers/angular → hmr/frameworks/angular/build}/util.d.ts +1 -0
  204. package/hmr/frameworks/angular/build/util.js +155 -0
  205. package/hmr/frameworks/angular/build/util.js.map +1 -0
  206. package/hmr/frameworks/angular/build/worker-url-preserve.d.ts +5 -0
  207. package/hmr/frameworks/angular/build/worker-url-preserve.js +140 -0
  208. package/hmr/frameworks/angular/build/worker-url-preserve.js.map +1 -0
  209. package/hmr/frameworks/angular/client/index.d.ts +2 -1
  210. package/hmr/frameworks/angular/client/index.js +637 -23
  211. package/hmr/frameworks/angular/client/index.js.map +1 -1
  212. package/hmr/frameworks/angular/client/strategy.d.ts +9 -0
  213. package/hmr/frameworks/angular/client/strategy.js +19 -0
  214. package/hmr/frameworks/angular/client/strategy.js.map +1 -0
  215. package/hmr/frameworks/angular/server/angular-root-component.d.ts +79 -0
  216. package/hmr/frameworks/angular/server/angular-root-component.js +149 -0
  217. package/hmr/frameworks/angular/server/angular-root-component.js.map +1 -0
  218. package/hmr/frameworks/angular/server/linker.js +37 -6
  219. package/hmr/frameworks/angular/server/linker.js.map +1 -1
  220. package/hmr/frameworks/angular/server/ng-component-route.d.ts +43 -0
  221. package/hmr/frameworks/angular/server/ng-component-route.js +113 -0
  222. package/hmr/frameworks/angular/server/ng-component-route.js.map +1 -0
  223. package/hmr/frameworks/angular/server/strategy.js +697 -18
  224. package/hmr/frameworks/angular/server/strategy.js.map +1 -1
  225. package/hmr/frameworks/angular/server/websocket-angular-entry.d.ts +2 -0
  226. package/hmr/frameworks/angular/server/websocket-angular-entry.js +68 -0
  227. package/hmr/frameworks/angular/server/websocket-angular-entry.js.map +1 -0
  228. package/hmr/frameworks/angular/server/websocket-angular-hot-update.d.ts +94 -0
  229. package/hmr/frameworks/angular/server/websocket-angular-hot-update.js +485 -0
  230. package/hmr/frameworks/angular/server/websocket-angular-hot-update.js.map +1 -0
  231. package/hmr/frameworks/react/client/strategy.d.ts +12 -0
  232. package/hmr/frameworks/react/client/strategy.js +27 -0
  233. package/hmr/frameworks/react/client/strategy.js.map +1 -0
  234. package/hmr/frameworks/react/server/strategy.d.ts +2 -0
  235. package/hmr/frameworks/react/server/strategy.js +230 -0
  236. package/hmr/frameworks/react/server/strategy.js.map +1 -0
  237. package/hmr/frameworks/solid/build/solid-jsx-deps.d.ts +15 -0
  238. package/hmr/frameworks/solid/build/solid-jsx-deps.js +178 -0
  239. package/hmr/frameworks/solid/build/solid-jsx-deps.js.map +1 -0
  240. package/hmr/frameworks/solid/client/app-runtime.d.ts +68 -0
  241. package/hmr/frameworks/solid/client/app-runtime.js +252 -0
  242. package/hmr/frameworks/solid/client/app-runtime.js.map +1 -0
  243. package/hmr/frameworks/solid/client/strategy.d.ts +7 -0
  244. package/hmr/frameworks/solid/client/strategy.js +391 -0
  245. package/hmr/frameworks/solid/client/strategy.js.map +1 -0
  246. package/hmr/frameworks/solid/server/strategy.js +293 -16
  247. package/hmr/frameworks/solid/server/strategy.js.map +1 -1
  248. package/hmr/frameworks/typescript/client/strategy.d.ts +7 -0
  249. package/hmr/frameworks/typescript/client/strategy.js +418 -0
  250. package/hmr/frameworks/typescript/client/strategy.js.map +1 -0
  251. package/hmr/frameworks/typescript/server/strategy.js +48 -16
  252. package/hmr/frameworks/typescript/server/strategy.js.map +1 -1
  253. package/hmr/frameworks/vue/client/dep-propagation.d.ts +44 -0
  254. package/hmr/frameworks/vue/client/dep-propagation.js +148 -0
  255. package/hmr/frameworks/vue/client/dep-propagation.js.map +1 -0
  256. package/hmr/frameworks/vue/client/index.d.ts +10 -1
  257. package/hmr/frameworks/vue/client/index.js +287 -562
  258. package/hmr/frameworks/vue/client/index.js.map +1 -1
  259. package/hmr/frameworks/vue/client/navigate-app.d.ts +3 -0
  260. package/hmr/frameworks/vue/client/navigate-app.js +178 -0
  261. package/hmr/frameworks/vue/client/navigate-app.js.map +1 -0
  262. package/hmr/frameworks/vue/client/strategy.d.ts +33 -0
  263. package/hmr/frameworks/vue/client/strategy.js +152 -0
  264. package/hmr/frameworks/vue/client/strategy.js.map +1 -0
  265. package/hmr/frameworks/vue/client/vue-sfc-update-overlay.d.ts +49 -0
  266. package/hmr/frameworks/vue/client/vue-sfc-update-overlay.js +124 -0
  267. package/hmr/frameworks/vue/client/vue-sfc-update-overlay.js.map +1 -0
  268. package/hmr/frameworks/vue/server/compiler.d.ts +3 -1
  269. package/hmr/frameworks/vue/server/compiler.js +3 -1
  270. package/hmr/frameworks/vue/server/compiler.js.map +1 -1
  271. package/hmr/frameworks/vue/server/sfc-route-assemble.d.ts +7 -0
  272. package/hmr/frameworks/vue/server/sfc-route-assemble.js +823 -0
  273. package/hmr/frameworks/vue/server/sfc-route-assemble.js.map +1 -0
  274. package/hmr/frameworks/vue/server/sfc-route-meta.d.ts +7 -0
  275. package/hmr/frameworks/vue/server/sfc-route-meta.js +80 -0
  276. package/hmr/frameworks/vue/server/sfc-route-meta.js.map +1 -0
  277. package/hmr/frameworks/vue/server/sfc-route-serve.d.ts +8 -0
  278. package/hmr/frameworks/vue/server/sfc-route-serve.js +462 -0
  279. package/hmr/frameworks/vue/server/sfc-route-serve.js.map +1 -0
  280. package/hmr/frameworks/vue/server/sfc-route-shared.d.ts +45 -0
  281. package/hmr/frameworks/vue/server/sfc-route-shared.js +105 -0
  282. package/hmr/frameworks/vue/server/sfc-route-shared.js.map +1 -0
  283. package/hmr/frameworks/vue/server/strategy.d.ts +35 -0
  284. package/hmr/frameworks/vue/server/strategy.js +291 -7
  285. package/hmr/frameworks/vue/server/strategy.js.map +1 -1
  286. package/hmr/frameworks/vue/server/websocket-sfc.d.ts +15 -0
  287. package/hmr/frameworks/vue/server/websocket-sfc.js +20 -0
  288. package/hmr/frameworks/vue/server/websocket-sfc.js.map +1 -0
  289. package/hmr/helpers/ast-normalizer.d.ts +3 -1
  290. package/hmr/helpers/ast-normalizer.js +131 -24
  291. package/hmr/helpers/ast-normalizer.js.map +1 -1
  292. package/hmr/helpers/cjs-named-exports.d.ts +23 -0
  293. package/hmr/helpers/cjs-named-exports.js +152 -0
  294. package/hmr/helpers/cjs-named-exports.js.map +1 -0
  295. package/hmr/helpers/package-exports.d.ts +16 -0
  296. package/hmr/helpers/package-exports.js +396 -0
  297. package/hmr/helpers/package-exports.js.map +1 -0
  298. package/hmr/helpers/vendor-rewrite.d.ts +1 -1
  299. package/hmr/helpers/vendor-rewrite.js +5 -3
  300. package/hmr/helpers/vendor-rewrite.js.map +1 -1
  301. package/hmr/server/boot-recording.d.ts +51 -0
  302. package/hmr/server/boot-recording.js +214 -0
  303. package/hmr/server/boot-recording.js.map +1 -0
  304. package/hmr/server/constants.d.ts +1 -0
  305. package/hmr/server/constants.js +21 -4
  306. package/hmr/server/constants.js.map +1 -1
  307. package/hmr/server/content-css-update.d.ts +54 -0
  308. package/hmr/server/content-css-update.js +78 -0
  309. package/hmr/server/content-css-update.js.map +1 -0
  310. package/hmr/server/core-bundle.d.ts +140 -0
  311. package/hmr/server/core-bundle.js +614 -0
  312. package/hmr/server/core-bundle.js.map +1 -0
  313. package/hmr/server/core-sanitize.d.ts +130 -4
  314. package/hmr/server/core-sanitize.js +393 -32
  315. package/hmr/server/core-sanitize.js.map +1 -1
  316. package/hmr/server/css-connect-sync.d.ts +28 -0
  317. package/hmr/server/css-connect-sync.js +59 -0
  318. package/hmr/server/css-connect-sync.js.map +1 -0
  319. package/hmr/server/css-device-module.d.ts +28 -0
  320. package/hmr/server/css-device-module.js +44 -0
  321. package/hmr/server/css-device-module.js.map +1 -0
  322. package/hmr/server/css-update-message.d.ts +23 -0
  323. package/hmr/server/css-update-message.js +41 -0
  324. package/hmr/server/css-update-message.js.map +1 -0
  325. package/hmr/server/deps-bundle.d.ts +233 -0
  326. package/hmr/server/deps-bundle.js +1022 -0
  327. package/hmr/server/deps-bundle.js.map +1 -0
  328. package/hmr/server/device-transform-helpers.d.ts +24 -0
  329. package/hmr/server/device-transform-helpers.js +408 -0
  330. package/hmr/server/device-transform-helpers.js.map +1 -0
  331. package/hmr/server/framework-strategy.d.ts +182 -11
  332. package/hmr/server/hmr-module-graph.d.ts +37 -0
  333. package/hmr/server/hmr-module-graph.js +215 -0
  334. package/hmr/server/hmr-module-graph.js.map +1 -0
  335. package/hmr/server/import-map.d.ts +99 -0
  336. package/hmr/server/import-map.js +294 -0
  337. package/hmr/server/import-map.js.map +1 -0
  338. package/hmr/server/index.d.ts +2 -1
  339. package/hmr/server/index.js +7 -16
  340. package/hmr/server/index.js.map +1 -1
  341. package/hmr/server/node-builtins-route.d.ts +12 -0
  342. package/hmr/server/node-builtins-route.js +86 -0
  343. package/hmr/server/node-builtins-route.js.map +1 -0
  344. package/hmr/server/ns-core-cjs-shape.d.ts +204 -0
  345. package/hmr/server/ns-core-cjs-shape.js +271 -0
  346. package/hmr/server/ns-core-cjs-shape.js.map +1 -0
  347. package/hmr/server/ns-m-response-memo.d.ts +10 -0
  348. package/hmr/server/ns-m-response-memo.js +33 -0
  349. package/hmr/server/ns-m-response-memo.js.map +1 -0
  350. package/hmr/server/ns-rt-bridge.d.ts +51 -0
  351. package/hmr/server/ns-rt-bridge.js +131 -0
  352. package/hmr/server/ns-rt-bridge.js.map +1 -0
  353. package/hmr/server/ns-rt-route.d.ts +5 -0
  354. package/hmr/server/ns-rt-route.js +39 -0
  355. package/hmr/server/ns-rt-route.js.map +1 -0
  356. package/hmr/server/perf-instrumentation.d.ts +114 -0
  357. package/hmr/server/perf-instrumentation.js +197 -0
  358. package/hmr/server/perf-instrumentation.js.map +1 -0
  359. package/hmr/server/process-code-for-device.d.ts +44 -0
  360. package/hmr/server/process-code-for-device.js +834 -0
  361. package/hmr/server/process-code-for-device.js.map +1 -0
  362. package/hmr/server/require-guard.d.ts +1 -0
  363. package/hmr/server/require-guard.js +12 -0
  364. package/hmr/server/require-guard.js.map +1 -0
  365. package/hmr/server/rewrite-imports.d.ts +2 -0
  366. package/hmr/server/rewrite-imports.js +631 -0
  367. package/hmr/server/rewrite-imports.js.map +1 -0
  368. package/hmr/server/route-helpers.d.ts +7 -0
  369. package/hmr/server/route-helpers.js +13 -0
  370. package/hmr/server/route-helpers.js.map +1 -0
  371. package/hmr/server/runtime-graph-filter.d.ts +5 -0
  372. package/hmr/server/runtime-graph-filter.js +28 -0
  373. package/hmr/server/runtime-graph-filter.js.map +1 -0
  374. package/hmr/server/server-origin.d.ts +2 -0
  375. package/hmr/server/server-origin.js +88 -0
  376. package/hmr/server/server-origin.js.map +1 -0
  377. package/hmr/server/shared-transform-request.d.ts +12 -0
  378. package/hmr/server/shared-transform-request.js +143 -0
  379. package/hmr/server/shared-transform-request.js.map +1 -0
  380. package/hmr/server/socket-utils.d.ts +10 -0
  381. package/hmr/server/socket-utils.js +14 -0
  382. package/hmr/server/socket-utils.js.map +1 -0
  383. package/hmr/server/transform-cache-invalidation.d.ts +37 -0
  384. package/hmr/server/transform-cache-invalidation.js +156 -0
  385. package/hmr/server/transform-cache-invalidation.js.map +1 -0
  386. package/hmr/server/vendor-bare-module-shims.d.ts +4 -0
  387. package/hmr/server/vendor-bare-module-shims.js +80 -0
  388. package/hmr/server/vendor-bare-module-shims.js.map +1 -0
  389. package/hmr/server/vite-plugin.d.ts +22 -1
  390. package/hmr/server/vite-plugin.js +655 -58
  391. package/hmr/server/vite-plugin.js.map +1 -1
  392. package/hmr/server/websocket-core-bridge.d.ts +68 -0
  393. package/hmr/server/websocket-core-bridge.js +370 -0
  394. package/hmr/server/websocket-core-bridge.js.map +1 -0
  395. package/hmr/server/websocket-device-transform.d.ts +3 -0
  396. package/hmr/server/websocket-device-transform.js +7 -0
  397. package/hmr/server/websocket-device-transform.js.map +1 -0
  398. package/hmr/server/websocket-graph-upsert.d.ts +21 -0
  399. package/hmr/server/websocket-graph-upsert.js +33 -0
  400. package/hmr/server/websocket-graph-upsert.js.map +1 -0
  401. package/hmr/server/websocket-hmr-pending.d.ts +29 -0
  402. package/hmr/server/websocket-hmr-pending.js +33 -0
  403. package/hmr/server/websocket-hmr-pending.js.map +1 -0
  404. package/hmr/server/websocket-hot-update.d.ts +80 -0
  405. package/hmr/server/websocket-hot-update.js +295 -0
  406. package/hmr/server/websocket-hot-update.js.map +1 -0
  407. package/hmr/server/websocket-import-map-route.d.ts +15 -0
  408. package/hmr/server/websocket-import-map-route.js +51 -0
  409. package/hmr/server/websocket-import-map-route.js.map +1 -0
  410. package/hmr/server/websocket-module-bindings.d.ts +21 -0
  411. package/hmr/server/websocket-module-bindings.js +504 -0
  412. package/hmr/server/websocket-module-bindings.js.map +1 -0
  413. package/hmr/server/websocket-module-specifiers.d.ts +96 -0
  414. package/hmr/server/websocket-module-specifiers.js +819 -0
  415. package/hmr/server/websocket-module-specifiers.js.map +1 -0
  416. package/hmr/server/websocket-ns-core.d.ts +34 -0
  417. package/hmr/server/websocket-ns-core.js +414 -0
  418. package/hmr/server/websocket-ns-core.js.map +1 -0
  419. package/hmr/server/websocket-ns-entry.d.ts +21 -0
  420. package/hmr/server/websocket-ns-entry.js +163 -0
  421. package/hmr/server/websocket-ns-entry.js.map +1 -0
  422. package/hmr/server/websocket-ns-m-paths.d.ts +19 -0
  423. package/hmr/server/websocket-ns-m-paths.js +115 -0
  424. package/hmr/server/websocket-ns-m-paths.js.map +1 -0
  425. package/hmr/server/websocket-ns-m-request.d.ts +46 -0
  426. package/hmr/server/websocket-ns-m-request.js +197 -0
  427. package/hmr/server/websocket-ns-m-request.js.map +1 -0
  428. package/hmr/server/websocket-ns-m.d.ts +52 -0
  429. package/hmr/server/websocket-ns-m.js +590 -0
  430. package/hmr/server/websocket-ns-m.js.map +1 -0
  431. package/hmr/server/websocket-served-module-helpers.d.ts +89 -0
  432. package/hmr/server/websocket-served-module-helpers.js +935 -0
  433. package/hmr/server/websocket-served-module-helpers.js.map +1 -0
  434. package/hmr/server/websocket-txn.d.ts +6 -0
  435. package/hmr/server/websocket-txn.js +42 -0
  436. package/hmr/server/websocket-txn.js.map +1 -0
  437. package/hmr/server/websocket-vendor-unifier.d.ts +9 -0
  438. package/hmr/server/websocket-vendor-unifier.js +46 -0
  439. package/hmr/server/websocket-vendor-unifier.js.map +1 -0
  440. package/hmr/server/websocket.d.ts +7 -17
  441. package/hmr/server/websocket.js +723 -5376
  442. package/hmr/server/websocket.js.map +1 -1
  443. package/hmr/shared/ns-globals.d.ts +107 -0
  444. package/hmr/shared/ns-globals.js +29 -0
  445. package/hmr/shared/ns-globals.js.map +1 -0
  446. package/hmr/shared/package-classifier.d.ts +9 -0
  447. package/hmr/shared/package-classifier.js +58 -0
  448. package/hmr/shared/package-classifier.js.map +1 -0
  449. package/hmr/shared/protocol.d.ts +157 -0
  450. package/hmr/shared/protocol.js +28 -0
  451. package/hmr/shared/protocol.js.map +1 -0
  452. package/hmr/shared/runtime/boot-complete.d.ts +14 -0
  453. package/hmr/shared/runtime/boot-complete.js +32 -0
  454. package/hmr/shared/runtime/boot-complete.js.map +1 -0
  455. package/hmr/shared/runtime/boot-placeholder-ui.d.ts +69 -0
  456. package/hmr/shared/runtime/boot-placeholder-ui.js +101 -0
  457. package/hmr/shared/runtime/boot-placeholder-ui.js.map +1 -0
  458. package/hmr/shared/runtime/boot-progress.d.ts +44 -0
  459. package/hmr/shared/runtime/boot-progress.js +134 -0
  460. package/hmr/shared/runtime/boot-progress.js.map +1 -0
  461. package/hmr/shared/runtime/boot-timeline.d.ts +17 -0
  462. package/hmr/shared/runtime/boot-timeline.js +40 -0
  463. package/hmr/shared/runtime/boot-timeline.js.map +1 -0
  464. package/hmr/shared/runtime/browser-runtime-contract.d.ts +97 -0
  465. package/hmr/shared/runtime/browser-runtime-contract.js +66 -0
  466. package/hmr/shared/runtime/browser-runtime-contract.js.map +1 -0
  467. package/hmr/shared/runtime/dev-overlay-ios.d.ts +87 -0
  468. package/hmr/shared/runtime/dev-overlay-ios.js +521 -0
  469. package/hmr/shared/runtime/dev-overlay-ios.js.map +1 -0
  470. package/hmr/shared/runtime/dev-overlay-shared.d.ts +58 -0
  471. package/hmr/shared/runtime/dev-overlay-shared.js +116 -0
  472. package/hmr/shared/runtime/dev-overlay-shared.js.map +1 -0
  473. package/hmr/shared/runtime/dev-overlay-snapshots.d.ts +31 -0
  474. package/hmr/shared/runtime/dev-overlay-snapshots.js +324 -0
  475. package/hmr/shared/runtime/dev-overlay-snapshots.js.map +1 -0
  476. package/hmr/shared/runtime/dev-overlay-tree.d.ts +59 -0
  477. package/hmr/shared/runtime/dev-overlay-tree.js +712 -0
  478. package/hmr/shared/runtime/dev-overlay-tree.js.map +1 -0
  479. package/hmr/shared/runtime/dev-overlay.d.ts +39 -0
  480. package/hmr/shared/runtime/dev-overlay.js +292 -0
  481. package/hmr/shared/runtime/dev-overlay.js.map +1 -0
  482. package/hmr/shared/runtime/global-scope.d.ts +18 -0
  483. package/hmr/shared/runtime/global-scope.js +21 -0
  484. package/hmr/shared/runtime/global-scope.js.map +1 -0
  485. package/hmr/shared/runtime/hooks.js +2 -1
  486. package/hmr/shared/runtime/hooks.js.map +1 -1
  487. package/hmr/shared/runtime/launch-bridge.d.ts +9 -0
  488. package/hmr/shared/runtime/launch-bridge.js +98 -0
  489. package/hmr/shared/runtime/launch-bridge.js.map +1 -0
  490. package/hmr/shared/runtime/module-provenance.d.ts +1 -0
  491. package/hmr/shared/runtime/module-provenance.js +64 -0
  492. package/hmr/shared/runtime/module-provenance.js.map +1 -0
  493. package/hmr/shared/runtime/ns-runtime-test-double.d.ts +21 -0
  494. package/hmr/shared/runtime/ns-runtime-test-double.js +20 -0
  495. package/hmr/shared/runtime/ns-runtime-test-double.js.map +1 -0
  496. package/hmr/shared/runtime/overlay-flag.d.ts +9 -0
  497. package/hmr/shared/runtime/overlay-flag.js +34 -0
  498. package/hmr/shared/runtime/overlay-flag.js.map +1 -0
  499. package/hmr/shared/runtime/platform-polyfills.d.ts +26 -0
  500. package/hmr/shared/runtime/platform-polyfills.js +122 -0
  501. package/hmr/shared/runtime/platform-polyfills.js.map +1 -0
  502. package/hmr/shared/runtime/root-placeholder-view.d.ts +19 -0
  503. package/hmr/shared/runtime/root-placeholder-view.js +311 -0
  504. package/hmr/shared/runtime/root-placeholder-view.js.map +1 -0
  505. package/hmr/shared/runtime/root-placeholder.d.ts +1 -0
  506. package/hmr/shared/runtime/root-placeholder.js +778 -83
  507. package/hmr/shared/runtime/root-placeholder.js.map +1 -1
  508. package/hmr/shared/runtime/session-bootstrap.d.ts +1 -0
  509. package/hmr/shared/runtime/session-bootstrap.js +350 -0
  510. package/hmr/shared/runtime/session-bootstrap.js.map +1 -0
  511. package/hmr/shared/runtime/vendor-bootstrap.js +54 -16
  512. package/hmr/shared/runtime/vendor-bootstrap.js.map +1 -1
  513. package/hmr/shared/runtime/vendor-resolve.d.ts +22 -0
  514. package/hmr/shared/runtime/vendor-resolve.js +45 -0
  515. package/hmr/shared/runtime/vendor-resolve.js.map +1 -0
  516. package/hmr/shared/runtime/worker-tracking.d.ts +28 -0
  517. package/hmr/shared/runtime/worker-tracking.js +114 -0
  518. package/hmr/shared/runtime/worker-tracking.js.map +1 -0
  519. package/hmr/shared/vendor/manifest-collect.d.ts +4 -0
  520. package/hmr/shared/vendor/manifest-collect.js +909 -0
  521. package/hmr/shared/vendor/manifest-collect.js.map +1 -0
  522. package/hmr/shared/vendor/manifest-loader.d.ts +2 -1
  523. package/hmr/shared/vendor/manifest-loader.js +5 -3
  524. package/hmr/shared/vendor/manifest-loader.js.map +1 -1
  525. package/hmr/shared/vendor/manifest.d.ts +12 -0
  526. package/hmr/shared/vendor/manifest.js +341 -545
  527. package/hmr/shared/vendor/manifest.js.map +1 -1
  528. package/hmr/shared/vendor/registry.d.ts +2 -0
  529. package/hmr/shared/vendor/registry.js +118 -7
  530. package/hmr/shared/vendor/registry.js.map +1 -1
  531. package/hmr/shared/vendor/vendor-device-shim.d.ts +1 -0
  532. package/hmr/shared/vendor/vendor-device-shim.js +208 -0
  533. package/hmr/shared/vendor/vendor-device-shim.js.map +1 -0
  534. package/hmr/shared/vendor/vendor-esbuild-plugins.d.ts +107 -0
  535. package/hmr/shared/vendor/vendor-esbuild-plugins.js +540 -0
  536. package/hmr/shared/vendor/vendor-esbuild-plugins.js.map +1 -0
  537. package/index.d.ts +1 -0
  538. package/index.js +5 -0
  539. package/index.js.map +1 -1
  540. package/package.json +76 -14
  541. package/runtime/core-aliases-early.js +103 -81
  542. package/runtime/core-aliases-early.js.map +1 -1
  543. package/shims/react-jsx-runtime.d.ts +4 -0
  544. package/shims/react-jsx-runtime.js +61 -0
  545. package/shims/react-jsx-runtime.js.map +1 -0
  546. package/shims/solid-jsx-runtime.d.ts +7 -0
  547. package/shims/solid-jsx-runtime.js +17 -0
  548. package/shims/solid-jsx-runtime.js.map +1 -0
  549. package/helpers/angular/angular-linker.d.ts +0 -13
  550. package/helpers/angular/angular-linker.js +0 -189
  551. package/helpers/angular/angular-linker.js.map +0 -1
  552. package/helpers/angular/shared-linker.d.ts +0 -4
  553. package/helpers/angular/shared-linker.js +0 -39
  554. package/helpers/angular/shared-linker.js.map +0 -1
  555. package/helpers/angular/util.js +0 -67
  556. package/helpers/angular/util.js.map +0 -1
  557. package/helpers/module-runner-patch.d.ts +0 -3
  558. package/helpers/module-runner-patch.js +0 -63
  559. package/helpers/module-runner-patch.js.map +0 -1
  560. package/helpers/prelink-angular.d.ts +0 -2
  561. package/helpers/prelink-angular.js +0 -117
  562. package/helpers/prelink-angular.js.map +0 -1
  563. package/hmr/shared/runtime/http-only-boot.d.ts +0 -1
  564. package/hmr/shared/runtime/http-only-boot.js +0 -124
  565. package/hmr/shared/runtime/http-only-boot.js.map +0 -1
  566. package/hmr/vendor-bootstrap.d.ts +0 -3
  567. package/hmr/vendor-bootstrap.js +0 -32
  568. package/hmr/vendor-bootstrap.js.map +0 -1
  569. package/shims/react-reconciler-constants.d.ts +0 -14
  570. package/shims/react-reconciler-constants.js +0 -21
  571. package/shims/react-reconciler-constants.js.map +0 -1
  572. package/shims/react-reconciler.d.ts +0 -8
  573. package/shims/react-reconciler.js +0 -15
  574. package/shims/react-reconciler.js.map +0 -1
  575. package/transformers/NativeClass/index.d.ts +0 -2
  576. package/transformers/NativeClass/index.js +0 -222
  577. package/transformers/NativeClass/index.js.map +0 -1
@@ -0,0 +1,418 @@
1
+ import { ENV_VERBOSE as VERBOSE, getCore, normalizeSpec, resolveHmrHttpOrigin } from '../../../client/utils.js';
2
+ import { getGlobalScope } from '../../../shared/runtime/global-scope.js';
3
+ // Define substitution does not reach this raw-served file; prefer the
4
+ // globalThis seed from the entry's defines-seed module ('app/'-rooted
5
+ // projects would otherwise get the wrong '/src' default).
6
+ const APP_ROOT_VIRTUAL = (typeof __NS_APP_ROOT_VIRTUAL__ === 'string' && __NS_APP_ROOT_VIRTUAL__) || (typeof getGlobalScope().__NS_APP_ROOT_VIRTUAL__ === 'string' && getGlobalScope().__NS_APP_ROOT_VIRTUAL__) || '/src';
7
+ const APP_VIRTUAL_WITH_SLASH = APP_ROOT_VIRTUAL.endsWith('/') ? APP_ROOT_VIRTUAL : `${APP_ROOT_VIRTUAL}/`;
8
+ /**
9
+ * Map a served/graph module id (e.g. `/app/modal-page.xml`) to its app-root
10
+ * relative path (`modal-page.xml`). Single mapping point — the raw-asset
11
+ * re-registration, page-navigation targets, and modal matching all derive
12
+ * from this; keep them in sync by construction.
13
+ */
14
+ function toAppRelativePath(id) {
15
+ try {
16
+ const spec = normalizeSpec(id);
17
+ const appVirtual = APP_VIRTUAL_WITH_SLASH.replace(/^\//, '');
18
+ let relPath = spec.startsWith('/') ? spec.slice(1) : spec;
19
+ if (relPath.startsWith(appVirtual))
20
+ relPath = relPath.slice(appVirtual.length);
21
+ return relPath || null;
22
+ }
23
+ catch {
24
+ return null;
25
+ }
26
+ }
27
+ /** App-root relative module name (no extension) for page-shaped files, else null. */
28
+ function toAppModuleName(id) {
29
+ const relPath = toAppRelativePath(id);
30
+ if (!relPath || !/\.(xml|ts|js)$/i.test(relPath))
31
+ return null;
32
+ return relPath.replace(/\.(xml|ts|js)$/i, '');
33
+ }
34
+ const openModalRecords = [];
35
+ let modalTrackingInstalled = false;
36
+ function ensureModalTracking() {
37
+ if (modalTrackingInstalled)
38
+ return;
39
+ try {
40
+ const View = getCore('View') || getGlobalScope().View;
41
+ const proto = View?.prototype;
42
+ if (!proto || typeof proto.showModal !== 'function')
43
+ return;
44
+ const orig = proto.showModal;
45
+ if (orig.__nsHmrModalTracked) {
46
+ modalTrackingInstalled = true;
47
+ return;
48
+ }
49
+ const wrapped = function (...args) {
50
+ const result = orig.apply(this, args);
51
+ try {
52
+ if (typeof args[0] === 'string' && result) {
53
+ // Mirror core's getModalOptions arg shapes: (moduleName, options)
54
+ // or the deprecated positional form.
55
+ const options = args.length === 2 && args[1] && typeof args[1] === 'object' ? args[1] : { context: args[1], closeCallback: args[2], fullscreen: args[3], animated: args[4], stretched: args[5] };
56
+ const moduleName = String(args[0])
57
+ .replace(/^\.\//, '')
58
+ .replace(/\.(xml|ts|js)$/i, '');
59
+ openModalRecords.push({ moduleName, options, parent: this, modal: result });
60
+ if (VERBOSE)
61
+ console.log('[hmr][modal] tracked open modal', moduleName);
62
+ }
63
+ }
64
+ catch { }
65
+ return result;
66
+ };
67
+ wrapped.__nsHmrModalTracked = true;
68
+ proto.showModal = wrapped;
69
+ modalTrackingInstalled = true;
70
+ }
71
+ catch (e) {
72
+ if (VERBOSE)
73
+ console.warn('[hmr][modal] tracking install failed', e);
74
+ }
75
+ }
76
+ /**
77
+ * Enumerate the modals that are currently presented AND were opened by module
78
+ * name, with everything needed to re-present them.
79
+ *
80
+ * Source of truth is core's live modal stack (`_getRootModalViews()`):
81
+ * - `modal._moduleName` — set by the Builder on every createViewFromEntry
82
+ * view (longstanding, used by livesync), so available on any core.
83
+ * - `modal._modalOptions` — the original ShowModalOptions, stored by core's
84
+ * `_showNativeModalView` (newer cores). For older cores the showModal
85
+ * wrap's records (see ensureModalTracking) fill the gap.
86
+ * - `modal._modalParent` — the presenting view.
87
+ * Stale wrap records are pruned against the live stack while we're here.
88
+ */
89
+ function getOpenStringModuleModals() {
90
+ const out = [];
91
+ try {
92
+ const App = getCore('Application');
93
+ const root = App?.getRootView?.() || App?._rootView;
94
+ const stack = root?._getRootModalViews?.() || [];
95
+ // Prune wrap records whose modal is gone (keeps the fallback list small).
96
+ for (let i = openModalRecords.length - 1; i >= 0; i--) {
97
+ if (!stack.includes(openModalRecords[i].modal)) {
98
+ openModalRecords.splice(i, 1);
99
+ }
100
+ }
101
+ for (const modal of stack) {
102
+ const record = openModalRecords.find((r) => r.modal === modal);
103
+ const rawModuleName = typeof modal?._moduleName === 'string' && modal._moduleName ? modal._moduleName : record?.moduleName;
104
+ const parent = modal?._modalParent || record?.parent;
105
+ const options = modal?._modalOptions || record?.options;
106
+ if (!rawModuleName || !parent)
107
+ continue;
108
+ const moduleName = String(rawModuleName)
109
+ .replace(/^\.\//, '')
110
+ .replace(/\.(xml|ts|js)$/i, '');
111
+ out.push({ moduleName, options, parent, modal });
112
+ }
113
+ }
114
+ catch (e) {
115
+ if (VERBOSE)
116
+ console.warn('[hmr][modal] open-modal enumeration failed', e);
117
+ }
118
+ return out;
119
+ }
120
+ /**
121
+ * Close and re-present an open modal so it rebuilds from the freshly
122
+ * re-registered XML/code-behind. Core clears the modal stack synchronously on
123
+ * close but the NATIVE dismissal completes asynchronously; iOS refuses a
124
+ * present while a dismissal is in flight. Newer cores fire `closedModally` on
125
+ * the modal at exactly that completion point — preferred signal. Older cores
126
+ * fall back to polling `isLoaded` (flipped by `_tearDownUI` in the same
127
+ * completion callback).
128
+ */
129
+ async function reshowOpenModal(record) {
130
+ const { parent, modal, moduleName, options } = record;
131
+ await new Promise((resolve) => {
132
+ let settled = false;
133
+ const finish = () => {
134
+ if (!settled) {
135
+ settled = true;
136
+ resolve();
137
+ }
138
+ };
139
+ let eventArmed = false;
140
+ try {
141
+ if (typeof modal.once === 'function') {
142
+ modal.once('closedModally', finish);
143
+ eventArmed = true;
144
+ }
145
+ }
146
+ catch { }
147
+ // Poll fallback (also the safety net if the event never fires —
148
+ // e.g. an interactive-dismiss cancellation).
149
+ const deadline = Date.now() + 2000;
150
+ const poll = () => {
151
+ if (settled)
152
+ return;
153
+ let stillLoaded = false;
154
+ try {
155
+ stillLoaded = !!modal.isLoaded;
156
+ }
157
+ catch { }
158
+ if ((!eventArmed && !stillLoaded) || Date.now() > deadline) {
159
+ finish();
160
+ return;
161
+ }
162
+ setTimeout(poll, 50);
163
+ };
164
+ setTimeout(poll, 50);
165
+ try {
166
+ modal.closeModal();
167
+ }
168
+ catch (e) {
169
+ if (VERBOSE)
170
+ console.warn('[hmr][modal] close failed for', moduleName, e);
171
+ finish();
172
+ }
173
+ });
174
+ // One settle beat so the platform finishes releasing the presentation
175
+ // before the new present begins.
176
+ await new Promise((resolve) => setTimeout(resolve, 100));
177
+ try {
178
+ parent.showModal(moduleName, { ...(options || {}), animated: false });
179
+ if (VERBOSE)
180
+ console.log('[hmr][modal] re-presented', moduleName);
181
+ }
182
+ catch (e) {
183
+ console.warn('[hmr][modal] re-present failed for', moduleName, e);
184
+ }
185
+ }
186
+ /**
187
+ * Modal-aware UI refresh for the typescript (XML) flavor after a queue drain:
188
+ * re-fetch changed raw assets into the bundled module registry, then either
189
+ * navigate in-place to a changed page, re-present open modals whose files
190
+ * changed, or fall back to a full `resetRootView(app-root)`.
191
+ */
192
+ async function applyTypescriptRefresh(drained) {
193
+ try {
194
+ const g = getGlobalScope();
195
+ const App = getCore('Application') || g.Application;
196
+ if (!App || typeof App.resetRootView !== 'function') {
197
+ if (VERBOSE)
198
+ console.warn('[hmr][queue] TS flavor: Application.resetRootView unavailable; skipping UI refresh');
199
+ return;
200
+ }
201
+ // Re-fetch changed XML/CSS files and update the bundled module registry
202
+ // so Builder.createViewFromEntry picks up fresh content.
203
+ const rawAssetIds = drained.filter((id) => /\.(xml|css|scss|sass|less)$/i.test(id));
204
+ if (rawAssetIds.length && typeof g.registerModule === 'function') {
205
+ const origin = resolveHmrHttpOrigin();
206
+ if (origin) {
207
+ for (const id of rawAssetIds) {
208
+ try {
209
+ const spec = normalizeSpec(id);
210
+ // Fetch the raw file content directly from Vite's dev server.
211
+ // Use the project-relative path which Vite serves as static files.
212
+ const fetchUrl = origin + (spec.startsWith('/') ? spec : '/' + spec);
213
+ if (VERBOSE)
214
+ console.log('[hmr][queue] fetching raw asset', { id, fetchUrl });
215
+ const resp = await fetch(fetchUrl);
216
+ if (resp.ok) {
217
+ const rawContent = await resp.text();
218
+ // Register under all nickname variants the module registry uses.
219
+ // The bundler context registers XML as e.g., './main-page.xml' and 'main-page.xml'
220
+ const relPath = toAppRelativePath(id);
221
+ if (!relPath)
222
+ continue;
223
+ const nicknames = ['./' + relPath, relPath];
224
+ // Also add without extension for CSS
225
+ const extIdx = relPath.lastIndexOf('.');
226
+ if (extIdx > 0) {
227
+ const baseName = relPath.slice(0, extIdx);
228
+ if (!relPath.endsWith('.xml'))
229
+ nicknames.push(baseName, './' + baseName);
230
+ }
231
+ for (const name of nicknames) {
232
+ if (VERBOSE)
233
+ console.log('[hmr][queue] re-registering module', name);
234
+ g.registerModule(name, () => rawContent);
235
+ }
236
+ }
237
+ else if (VERBOSE) {
238
+ console.warn('[hmr][queue] raw asset fetch failed', id, resp.status);
239
+ }
240
+ }
241
+ catch (e) {
242
+ if (VERBOSE)
243
+ console.warn('[hmr][queue] raw asset refresh failed for', id, e);
244
+ }
245
+ }
246
+ }
247
+ }
248
+ // Modal-aware refresh: pages currently PRESENTED AS MODALS must be
249
+ // closed + re-presented in place — navigating the top frame to a
250
+ // modal's page would push it as a frame page, and resetRootView
251
+ // would dismiss the modal entirely. State comes from core's live
252
+ // modal stack (_moduleName/_modalOptions/_modalParent); the
253
+ // showModal wrap only backfills options on older cores.
254
+ ensureModalTracking();
255
+ const openModals = getOpenStringModuleModals();
256
+ const changedModuleNames = new Set(drained.map(toAppModuleName).filter(Boolean));
257
+ const modalsToReshow = openModals.filter((record) => changedModuleNames.has(record.moduleName));
258
+ const reshowModuleNames = new Set(modalsToReshow.map((record) => record.moduleName));
259
+ // Determine if we can navigate in-place to a changed page
260
+ // instead of resetting all the way back to app-root.
261
+ // This keeps the user on the page they're editing for faster iteration.
262
+ const changedXmlPages = drained
263
+ .filter((id) => /\.xml$/i.test(id))
264
+ .map((id) => toAppModuleName(id))
265
+ .filter((m) => m && m !== 'app-root' && !reshowModuleNames.has(m));
266
+ // Resolve the topmost Frame from the bundled realm.
267
+ // Frame.topmost() relies on an internal frameStack array, so we must
268
+ // call it on the bundled-realm class. Multiple strategies to find it:
269
+ const FrameClass = getCore('Frame') || g.Frame;
270
+ let topFrame = null;
271
+ // 1) Try the vendor-realm static topmost()
272
+ try {
273
+ topFrame = FrameClass?.topmost?.();
274
+ }
275
+ catch { }
276
+ // 2) Try getting the root view from Application — if it's a Frame, use it
277
+ if (!topFrame) {
278
+ try {
279
+ const rootView = App.getRootView?.() || App._rootView;
280
+ if (rootView) {
281
+ // rootView could be a Frame itself, or contain a Frame
282
+ const isFrame = rootView.constructor?.name === 'Frame' || rootView.navigate;
283
+ if (isFrame) {
284
+ topFrame = rootView;
285
+ }
286
+ else if (rootView.getChildAt) {
287
+ // Walk direct children looking for a Frame
288
+ for (let i = 0; i < (rootView.getChildrenCount?.() || 0); i++) {
289
+ const child = rootView.getChildAt(i);
290
+ if (child?.constructor?.name === 'Frame' || child?.navigate) {
291
+ topFrame = child;
292
+ break;
293
+ }
294
+ }
295
+ }
296
+ }
297
+ }
298
+ catch { }
299
+ }
300
+ if (VERBOSE)
301
+ console.log('[hmr][queue] TS: changedXmlPages=', changedXmlPages, 'topFrame=', !!topFrame, 'modalsToReshow=', modalsToReshow.length);
302
+ if (changedXmlPages.length > 0 && topFrame) {
303
+ // Navigate the current frame to the changed page directly.
304
+ // Use the last changed XML page (most specific).
305
+ const moduleName = changedXmlPages[changedXmlPages.length - 1];
306
+ if (VERBOSE)
307
+ console.log('[hmr][queue] TS: navigating in-place to', moduleName);
308
+ try {
309
+ topFrame.navigate({ moduleName, clearHistory: false, animated: false });
310
+ }
311
+ catch (navErr) {
312
+ console.warn('[hmr][queue] TS flavor: in-place navigate failed, falling back to resetRootView', navErr);
313
+ App.resetRootView({ moduleName: 'app-root' });
314
+ }
315
+ }
316
+ else if (modalsToReshow.length === 0) {
317
+ // No frame page to refresh and no open modal owns the change —
318
+ // fall back to a full root reset. (Skipped when an open modal is
319
+ // being re-presented below: resetRootView would dismiss it.)
320
+ if (VERBOSE)
321
+ console.log('[hmr][queue] TS flavor: resetRootView(app-root) after changes');
322
+ App.resetRootView({ moduleName: 'app-root' });
323
+ }
324
+ // Re-present any open modals whose XML/code-behind changed. The
325
+ // modules were already re-registered above (raw XML assets + fresh
326
+ // code-behind exports), so the re-presented modal rebuilds from
327
+ // the new content while the page beneath it stays put.
328
+ for (const record of modalsToReshow) {
329
+ await reshowOpenModal(record);
330
+ }
331
+ }
332
+ catch (e) {
333
+ console.warn('[hmr][queue] TS flavor: resetRootView(app-root) failed', e);
334
+ }
335
+ }
336
+ /**
337
+ * TypeScript (plain XML) flavor client strategy. React reuses everything here
338
+ * except `refreshAfterBatch` (see `frameworks/react/client/strategy.ts`) —
339
+ * mirroring the server's `{ ...typescriptServerStrategy, flavor: 'react' }`.
340
+ */
341
+ export const typescriptClientStrategy = {
342
+ flavor: 'typescript',
343
+ install() {
344
+ // Record string-module modals from the moment the client is up so an
345
+ // already-open modal can be re-presented when its files change.
346
+ // Installed at strategy resolve (not first-update time) because the wrap
347
+ // can only observe showModal calls made AFTER it lands. Retried briefly
348
+ // because getCore('View') may not resolve until the vendor realm
349
+ // finishes booting.
350
+ const tryInstallModalTracking = (attempts) => {
351
+ ensureModalTracking();
352
+ if (!modalTrackingInstalled && attempts > 0) {
353
+ setTimeout(() => tryInstallModalTracking(attempts - 1), 250);
354
+ }
355
+ };
356
+ tryInstallModalTracking(40);
357
+ },
358
+ createRoot(newComponent, state) {
359
+ // Treat the component as a factory or direct NS view.
360
+ let root = null;
361
+ try {
362
+ if (typeof newComponent === 'function') {
363
+ root = newComponent();
364
+ }
365
+ else {
366
+ root = newComponent;
367
+ }
368
+ }
369
+ catch (e) {
370
+ console.warn('[hmr-client][ts] root factory invocation failed', e);
371
+ }
372
+ // Heuristic: if the root "looks" like a Frame, prefer frame semantics
373
+ try {
374
+ const name = String(root?.constructor?.name || '').replace(/^_+/, '');
375
+ if (/^Frame(\$\d+)?$/.test(name)) {
376
+ state.setRootKind('frame');
377
+ }
378
+ }
379
+ catch { }
380
+ return root || {};
381
+ },
382
+ afterModuleReimport(id, mod) {
383
+ // Refresh the bundled module registry with the fresh exports so
384
+ // Builder.createViewFromEntry / loadModule('<page>') resolves the NEW
385
+ // code-behind (tap handlers, page events) instead of the stale module
386
+ // captured in the boot bundle. Without this, XML re-renders pick up new
387
+ // markup but keep old behavior.
388
+ if (!mod || !/\.(ts|js)$/i.test(id))
389
+ return;
390
+ try {
391
+ const g = getGlobalScope();
392
+ const moduleName = toAppModuleName(id);
393
+ if (moduleName && typeof g.registerModule === 'function') {
394
+ g.registerModule(moduleName, () => mod);
395
+ g.registerModule('./' + moduleName, () => mod);
396
+ if (VERBOSE)
397
+ console.log('[hmr][queue] re-registered code-behind', moduleName);
398
+ }
399
+ }
400
+ catch (e) {
401
+ if (VERBOSE)
402
+ console.warn('[hmr][queue] code-behind re-register failed for', id, e);
403
+ }
404
+ },
405
+ async refreshAfterBatch(drained, ctx) {
406
+ // Always reset back to the conventional app root (or navigate in place /
407
+ // re-present modals). This preserves the shell (Frame, ActionBar, etc.)
408
+ // that the app's own bootstrapping wires up via `Application.run`.
409
+ await applyTypescriptRefresh(drained);
410
+ // Tell the overlay the cycle is done — without this the applying overlay
411
+ // sticks at 'received' (5%) forever even though the in-place navigate /
412
+ // resetRootView already applied the update.
413
+ ctx.setUpdateOverlayStage('complete', {
414
+ detail: `Total ${Math.max(0, Date.now() - ctx.startedAt)}ms`,
415
+ });
416
+ },
417
+ };
418
+ //# sourceMappingURL=strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../../../../../packages/vite/hmr/frameworks/typescript/client/strategy.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
+ import { ensureRoutesDefaultExport } from '../../../server/websocket-served-module-helpers.js';
1
2
  import { getProjectAppPath, getProjectAppVirtualPath } from '../../../../helpers/utils.js';
2
3
  import * as path from 'path';
4
+ import { isRuntimeGraphExcludedPath, matchesRuntimeGraphModuleId, shouldIncludeRuntimeGraphFile, shouldSkipRuntimeGraphDirectoryName } from '../../../server/runtime-graph-filter.js';
5
+ import { runHotUpdatePrologue } from '../../../server/websocket-hot-update.js';
3
6
  // TypeScript server strategy for NativeScript HMR.
4
7
  // This is a lightweight strategy that treats app TS/JS files
5
8
  // as HTTP-loaded modules, relying on the shared HMR pipeline
@@ -10,27 +13,53 @@ export const typescriptServerStrategy = {
10
13
  flavor: 'typescript',
11
14
  matchesFile(id) {
12
15
  // Treat any app TS/JS under the virtual app root as HMR-relevant.
13
- return TS_FILE_PATTERN.test(id) && id.startsWith(TS_APP_PREFIX);
16
+ return matchesRuntimeGraphModuleId(id, TS_APP_PREFIX, TS_FILE_PATTERN);
14
17
  },
15
- preClean(code) {
16
- // No TS-specific pre-clean; generic sanitizers handle core/HMR noise.
17
- return code;
18
- },
19
- rewriteFrameworkImports(code) {
20
- // For plain TS apps we rely on vendor bridging and generic import rewriting.
21
- return code;
22
- },
23
- postClean(code) {
24
- return code;
25
- },
26
- ensureVersionedImports(code, _origin, _version) {
27
- // TypeScript flavor uses direct /ns/entry-rt and HTTP graph; no extra versioning.
28
- return code;
18
+ // HMR: reached via the dispatcher's delegation seam. Run the shared
19
+ // prologue (scope gate, pending overlay, common graph upsert, CSS), then —
20
+ // for an in-scope app file — emit a generic graph delta. We treat the changed
21
+ // file as a graph module with no deps so its hash/identity changes and the
22
+ // client sees a delta and can perform a TS root reset; the code body is not
23
+ // used for execution here.
24
+ async handleHotUpdate(ctx, deps) {
25
+ const state = await runHotUpdatePrologue(ctx, deps);
26
+ if (!state)
27
+ return;
28
+ const { root, metrics, emitSummary } = state;
29
+ const { moduleGraph, verbose, wss, isSocketClientOpen } = deps;
30
+ const { file } = ctx;
31
+ metrics.tAfterFramework = Date.now();
32
+ try {
33
+ const rel = '/' + path.posix.normalize(path.relative(root, file)).split(path.sep).join('/');
34
+ if (verbose)
35
+ console.log('[hmr-ws][ts] app file hot update', { file, rel });
36
+ moduleGraph.upsert(rel, '', [], { emitDeltaOnInsert: true });
37
+ // For this flavor the ns:hmr-delta broadcast IS the update delivery —
38
+ // count open sockets so the always-on summary line reflects reality
39
+ // instead of reporting recipients=0 for a delivered update.
40
+ try {
41
+ wss?.clients?.forEach((client) => {
42
+ if (isSocketClientOpen(client))
43
+ metrics.recipients += 1;
44
+ });
45
+ }
46
+ catch { }
47
+ }
48
+ catch (e) {
49
+ if (verbose)
50
+ console.warn('[hmr-ws][ts] failed to emit delta for', file, e);
51
+ }
52
+ emitSummary();
29
53
  },
54
+ // preClean/rewriteFrameworkImports/postClean/canonicalizeFrameworkImports default to
55
+ // identity: plain TS apps rely on the generic pipeline (vendor bridge, /ns/entry-rt).
56
+ normalizeServedExports: ensureRoutesDefaultExport,
30
57
  async processFile(ctx) {
31
58
  // Ensure that any TS app module requested by the HTTP realm is transformed once,
32
59
  // so that downstream helpers (rewriteImports, vendor bridge) see a stable shape.
33
60
  const { filePath, server, verbose } = ctx;
61
+ if (isRuntimeGraphExcludedPath(filePath))
62
+ return;
34
63
  try {
35
64
  const transformed = await server.transformRequest(filePath);
36
65
  if (!transformed?.code)
@@ -65,6 +94,9 @@ export const typescriptServerStrategy = {
65
94
  return;
66
95
  }
67
96
  for (const name of list) {
97
+ if (name === 'node_modules' || name.startsWith('.') || shouldSkipRuntimeGraphDirectoryName(name)) {
98
+ continue;
99
+ }
68
100
  const full = path.join(dir, name);
69
101
  let st;
70
102
  try {
@@ -76,7 +108,7 @@ export const typescriptServerStrategy = {
76
108
  if (st.isDirectory()) {
77
109
  walk(full);
78
110
  }
79
- else if (st.isFile() && TS_FILE_PATTERN.test(name)) {
111
+ else if (st.isFile() && shouldIncludeRuntimeGraphFile(full, TS_FILE_PATTERN)) {
80
112
  const rel = '/' + path.relative(root, full).split(path.sep).join('/');
81
113
  entries.push(rel);
82
114
  }
@@ -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,44 @@
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[];
37
+ /**
38
+ * Reverse-walk from a changed `.vue` file to its `.vue` importers (ancestors),
39
+ * nearest-first. Unlike {@link findNearestSfcBoundaries} this STARTS from a
40
+ * `.vue` and does not stop at the first boundary — it returns the full ancestor
41
+ * chain so the caller can remount the nearest one that's safely mountable as a
42
+ * root (a child SFC with required props is not). The changed file is excluded.
43
+ */
44
+ export declare function findSfcAncestors(changedVuePath: string, graph: ReadonlyMap<string, DepGraphModuleLike>, maxAncestors?: number): string[];