@nativescript/vite 8.0.0-alpha.9 → 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 (544) hide show
  1. package/README.md +73 -14
  2. package/bin/cli.cjs +8 -14
  3. package/configuration/angular.d.ts +34 -1
  4. package/configuration/angular.js +196 -217
  5. package/configuration/angular.js.map +1 -1
  6. package/configuration/base.js +151 -103
  7. package/configuration/base.js.map +1 -1
  8. package/configuration/javascript.js +14 -93
  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 +51 -6
  13. package/configuration/solid.js.map +1 -1
  14. package/configuration/typescript.js +11 -92
  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/css-platform-plugin.d.ts +14 -0
  31. package/helpers/css-platform-plugin.js +43 -25
  32. package/helpers/css-platform-plugin.js.map +1 -1
  33. package/helpers/dev-host.d.ts +360 -0
  34. package/helpers/dev-host.js +694 -0
  35. package/helpers/dev-host.js.map +1 -0
  36. package/helpers/dynamic-import-plugin.d.ts +2 -1
  37. package/helpers/dynamic-import-plugin.js +59 -53
  38. package/helpers/dynamic-import-plugin.js.map +1 -1
  39. package/helpers/esbuild-platform-resolver.js +4 -1
  40. package/helpers/esbuild-platform-resolver.js.map +1 -1
  41. package/helpers/external-configs.d.ts +10 -12
  42. package/helpers/external-configs.js +58 -35
  43. package/helpers/external-configs.js.map +1 -1
  44. package/helpers/flavor.d.ts +13 -0
  45. package/helpers/flavor.js +18 -1
  46. package/helpers/flavor.js.map +1 -1
  47. package/helpers/global-defines.d.ts +99 -33
  48. package/helpers/global-defines.js +187 -66
  49. package/helpers/global-defines.js.map +1 -1
  50. package/helpers/hmr-scope.d.ts +26 -0
  51. package/helpers/hmr-scope.js +67 -0
  52. package/helpers/hmr-scope.js.map +1 -0
  53. package/helpers/init.js +6 -20
  54. package/helpers/init.js.map +1 -1
  55. package/helpers/logging.js +29 -1
  56. package/helpers/logging.js.map +1 -1
  57. package/helpers/main-entry.d.ts +4 -1
  58. package/helpers/main-entry.js +293 -40
  59. package/helpers/main-entry.js.map +1 -1
  60. package/helpers/nativeclass-esbuild-plugin.d.ts +2 -1
  61. package/helpers/nativeclass-esbuild-plugin.js +6 -1
  62. package/helpers/nativeclass-esbuild-plugin.js.map +1 -1
  63. package/helpers/nativeclass-transform.d.ts +13 -0
  64. package/helpers/nativeclass-transform.js +37 -7
  65. package/helpers/nativeclass-transform.js.map +1 -1
  66. package/helpers/nativeclass-transformer-plugin.js +8 -3
  67. package/helpers/nativeclass-transformer-plugin.js.map +1 -1
  68. package/helpers/nativescript-package-resolver.js +10 -62
  69. package/helpers/nativescript-package-resolver.js.map +1 -1
  70. package/helpers/normalize-id.d.ts +42 -0
  71. package/helpers/normalize-id.js +60 -0
  72. package/helpers/normalize-id.js.map +1 -0
  73. package/helpers/ns-core-external-urls.d.ts +32 -0
  74. package/helpers/ns-core-external-urls.js +107 -0
  75. package/helpers/ns-core-external-urls.js.map +1 -0
  76. package/helpers/ns-core-url.d.ts +26 -3
  77. package/helpers/ns-core-url.js +66 -8
  78. package/helpers/ns-core-url.js.map +1 -1
  79. package/helpers/optimize-deps.d.ts +16 -0
  80. package/helpers/optimize-deps.js +17 -0
  81. package/helpers/optimize-deps.js.map +1 -0
  82. package/helpers/package-platform-aliases.js +34 -49
  83. package/helpers/package-platform-aliases.js.map +1 -1
  84. package/helpers/platform-types.d.ts +2 -0
  85. package/helpers/platform-types.js +2 -0
  86. package/helpers/platform-types.js.map +1 -0
  87. package/helpers/postcss-platform-config.d.ts +17 -1
  88. package/helpers/postcss-platform-config.js +20 -37
  89. package/helpers/postcss-platform-config.js.map +1 -1
  90. package/helpers/resolve-main-field-platform.d.ts +20 -0
  91. package/helpers/resolve-main-field-platform.js +49 -0
  92. package/helpers/resolve-main-field-platform.js.map +1 -0
  93. package/helpers/resolver.js +17 -2
  94. package/helpers/resolver.js.map +1 -1
  95. package/helpers/theme-core-plugins.js +1 -1
  96. package/helpers/theme-core-plugins.js.map +1 -1
  97. package/helpers/ts-config-paths.d.ts +32 -0
  98. package/helpers/ts-config-paths.js +143 -62
  99. package/helpers/ts-config-paths.js.map +1 -1
  100. package/helpers/typescript-check.d.ts +2 -1
  101. package/helpers/typescript-check.js +4 -4
  102. package/helpers/typescript-check.js.map +1 -1
  103. package/helpers/ui-registration.d.ts +21 -0
  104. package/helpers/ui-registration.js +156 -0
  105. package/helpers/ui-registration.js.map +1 -0
  106. package/helpers/utils.d.ts +9 -0
  107. package/helpers/utils.js +22 -2
  108. package/helpers/utils.js.map +1 -1
  109. package/helpers/vite-package-version.d.ts +7 -0
  110. package/helpers/vite-package-version.js +44 -0
  111. package/helpers/vite-package-version.js.map +1 -0
  112. package/helpers/workers.d.ts +33 -0
  113. package/helpers/workers.js +237 -10
  114. package/helpers/workers.js.map +1 -1
  115. package/hmr/client/css-handler.d.ts +2 -1
  116. package/hmr/client/css-handler.js +63 -32
  117. package/hmr/client/css-handler.js.map +1 -1
  118. package/hmr/client/css-update-overlay.d.ts +18 -0
  119. package/hmr/client/css-update-overlay.js +27 -0
  120. package/hmr/client/css-update-overlay.js.map +1 -0
  121. package/hmr/client/framework-client-strategy.d.ts +87 -0
  122. package/hmr/client/framework-client-strategy.js +18 -0
  123. package/hmr/client/framework-client-strategy.js.map +1 -0
  124. package/hmr/client/hmr-pending-overlay.d.ts +0 -14
  125. package/hmr/client/hmr-pending-overlay.js +2 -11
  126. package/hmr/client/hmr-pending-overlay.js.map +1 -1
  127. package/hmr/client/hot-context.d.ts +67 -0
  128. package/hmr/client/hot-context.js +307 -0
  129. package/hmr/client/hot-context.js.map +1 -0
  130. package/hmr/client/index.d.ts +9 -1
  131. package/hmr/client/index.js +70 -1970
  132. package/hmr/client/index.js.map +1 -1
  133. package/hmr/client/overlay-driver.d.ts +10 -0
  134. package/hmr/client/overlay-driver.js +33 -0
  135. package/hmr/client/overlay-driver.js.map +1 -0
  136. package/hmr/client/protocol-dispatch.d.ts +8 -0
  137. package/hmr/client/protocol-dispatch.js +308 -0
  138. package/hmr/client/protocol-dispatch.js.map +1 -0
  139. package/hmr/client/root-reset.d.ts +15 -0
  140. package/hmr/client/root-reset.js +358 -0
  141. package/hmr/client/root-reset.js.map +1 -0
  142. package/hmr/client/strategy-loader.d.ts +24 -0
  143. package/hmr/client/strategy-loader.js +100 -0
  144. package/hmr/client/strategy-loader.js.map +1 -0
  145. package/hmr/client/update-pipeline.d.ts +27 -0
  146. package/hmr/client/update-pipeline.js +464 -0
  147. package/hmr/client/update-pipeline.js.map +1 -0
  148. package/hmr/client/utils.d.ts +9 -1
  149. package/hmr/client/utils.js +117 -97
  150. package/hmr/client/utils.js.map +1 -1
  151. package/hmr/client/ws-transport.d.ts +21 -0
  152. package/hmr/client/ws-transport.js +323 -0
  153. package/hmr/client/ws-transport.js.map +1 -0
  154. package/hmr/entry-runtime.d.ts +2 -1
  155. package/hmr/entry-runtime.js +279 -44
  156. package/hmr/entry-runtime.js.map +1 -1
  157. package/hmr/frameworks/angular/build/angular-linker.d.ts +12 -0
  158. package/hmr/frameworks/angular/build/angular-linker.js +113 -0
  159. package/hmr/frameworks/angular/build/angular-linker.js.map +1 -0
  160. package/{helpers/angular → hmr/frameworks/angular/build}/inject-component-hmr-registration.js +2 -70
  161. package/hmr/frameworks/angular/build/inject-component-hmr-registration.js.map +1 -0
  162. package/hmr/frameworks/angular/build/inject-hmr-vite-ignore.d.ts +75 -0
  163. package/hmr/frameworks/angular/build/inject-hmr-vite-ignore.js +221 -0
  164. package/hmr/frameworks/angular/build/inject-hmr-vite-ignore.js.map +1 -0
  165. package/{helpers/angular → hmr/frameworks/angular/build}/inline-decorator-component-templates.js +1 -170
  166. package/hmr/frameworks/angular/build/inline-decorator-component-templates.js.map +1 -0
  167. package/hmr/frameworks/angular/build/js-lexer.d.ts +4 -0
  168. package/{helpers/angular/synthesize-decorator-ctor-parameters.js → hmr/frameworks/angular/build/js-lexer.js} +22 -96
  169. package/hmr/frameworks/angular/build/js-lexer.js.map +1 -0
  170. package/hmr/frameworks/angular/build/linker-stats.d.ts +18 -0
  171. package/hmr/frameworks/angular/build/linker-stats.js +29 -0
  172. package/hmr/frameworks/angular/build/linker-stats.js.map +1 -0
  173. package/hmr/frameworks/angular/build/shared-linker.d.ts +39 -0
  174. package/hmr/frameworks/angular/build/shared-linker.js +128 -0
  175. package/hmr/frameworks/angular/build/shared-linker.js.map +1 -0
  176. package/hmr/frameworks/angular/build/synthesize-decorator-ctor-parameters.js +88 -0
  177. package/hmr/frameworks/angular/build/synthesize-decorator-ctor-parameters.js.map +1 -0
  178. package/{helpers/angular → hmr/frameworks/angular/build}/synthesize-injectable-factories.js +1 -174
  179. package/hmr/frameworks/angular/build/synthesize-injectable-factories.js.map +1 -0
  180. package/hmr/frameworks/angular/build/ts-fallback-transform.d.ts +5 -0
  181. package/hmr/frameworks/angular/build/ts-fallback-transform.js +138 -0
  182. package/hmr/frameworks/angular/build/ts-fallback-transform.js.map +1 -0
  183. package/hmr/frameworks/angular/build/util.js.map +1 -0
  184. package/hmr/frameworks/angular/build/worker-url-preserve.d.ts +5 -0
  185. package/hmr/frameworks/angular/build/worker-url-preserve.js +140 -0
  186. package/hmr/frameworks/angular/build/worker-url-preserve.js.map +1 -0
  187. package/hmr/frameworks/angular/client/index.d.ts +0 -1
  188. package/hmr/frameworks/angular/client/index.js +360 -194
  189. package/hmr/frameworks/angular/client/index.js.map +1 -1
  190. package/hmr/frameworks/angular/client/strategy.d.ts +9 -0
  191. package/hmr/frameworks/angular/client/strategy.js +19 -0
  192. package/hmr/frameworks/angular/client/strategy.js.map +1 -0
  193. package/hmr/frameworks/angular/server/angular-root-component.d.ts +79 -0
  194. package/hmr/frameworks/angular/server/angular-root-component.js +149 -0
  195. package/hmr/frameworks/angular/server/angular-root-component.js.map +1 -0
  196. package/hmr/frameworks/angular/server/ng-component-route.d.ts +43 -0
  197. package/hmr/frameworks/angular/server/ng-component-route.js +113 -0
  198. package/hmr/frameworks/angular/server/ng-component-route.js.map +1 -0
  199. package/hmr/frameworks/angular/server/strategy.js +668 -13
  200. package/hmr/frameworks/angular/server/strategy.js.map +1 -1
  201. package/hmr/{server → frameworks/angular/server}/websocket-angular-entry.js +2 -2
  202. package/hmr/frameworks/angular/server/websocket-angular-entry.js.map +1 -0
  203. package/hmr/{server → frameworks/angular/server}/websocket-angular-hot-update.d.ts +27 -11
  204. package/hmr/{server → frameworks/angular/server}/websocket-angular-hot-update.js +179 -107
  205. package/hmr/frameworks/angular/server/websocket-angular-hot-update.js.map +1 -0
  206. package/hmr/frameworks/react/client/strategy.d.ts +12 -0
  207. package/hmr/frameworks/react/client/strategy.js +27 -0
  208. package/hmr/frameworks/react/client/strategy.js.map +1 -0
  209. package/hmr/frameworks/react/server/strategy.d.ts +2 -0
  210. package/hmr/frameworks/react/server/strategy.js +230 -0
  211. package/hmr/frameworks/react/server/strategy.js.map +1 -0
  212. package/hmr/frameworks/solid/build/solid-jsx-deps.d.ts +15 -0
  213. package/hmr/frameworks/solid/build/solid-jsx-deps.js +178 -0
  214. package/hmr/frameworks/solid/build/solid-jsx-deps.js.map +1 -0
  215. package/hmr/frameworks/solid/client/app-runtime.d.ts +68 -0
  216. package/hmr/frameworks/solid/client/app-runtime.js +252 -0
  217. package/hmr/frameworks/solid/client/app-runtime.js.map +1 -0
  218. package/hmr/frameworks/solid/client/strategy.d.ts +7 -0
  219. package/hmr/frameworks/solid/client/strategy.js +391 -0
  220. package/hmr/frameworks/solid/client/strategy.js.map +1 -0
  221. package/hmr/frameworks/solid/server/strategy.js +293 -16
  222. package/hmr/frameworks/solid/server/strategy.js.map +1 -1
  223. package/hmr/frameworks/typescript/client/strategy.d.ts +7 -0
  224. package/hmr/frameworks/typescript/client/strategy.js +418 -0
  225. package/hmr/frameworks/typescript/client/strategy.js.map +1 -0
  226. package/hmr/frameworks/typescript/server/strategy.js +40 -14
  227. package/hmr/frameworks/typescript/server/strategy.js.map +1 -1
  228. package/hmr/frameworks/vue/client/dep-propagation.d.ts +44 -0
  229. package/hmr/frameworks/vue/client/dep-propagation.js +148 -0
  230. package/hmr/frameworks/vue/client/dep-propagation.js.map +1 -0
  231. package/hmr/frameworks/vue/client/index.d.ts +10 -1
  232. package/hmr/frameworks/vue/client/index.js +270 -521
  233. package/hmr/frameworks/vue/client/index.js.map +1 -1
  234. package/hmr/frameworks/vue/client/navigate-app.d.ts +3 -0
  235. package/hmr/frameworks/vue/client/navigate-app.js +178 -0
  236. package/hmr/frameworks/vue/client/navigate-app.js.map +1 -0
  237. package/hmr/frameworks/vue/client/strategy.d.ts +33 -0
  238. package/hmr/frameworks/vue/client/strategy.js +152 -0
  239. package/hmr/frameworks/vue/client/strategy.js.map +1 -0
  240. package/hmr/frameworks/vue/client/vue-sfc-update-overlay.d.ts +49 -0
  241. package/hmr/frameworks/vue/client/vue-sfc-update-overlay.js +124 -0
  242. package/hmr/frameworks/vue/client/vue-sfc-update-overlay.js.map +1 -0
  243. package/hmr/frameworks/vue/server/compiler.d.ts +3 -1
  244. package/hmr/frameworks/vue/server/compiler.js +3 -1
  245. package/hmr/frameworks/vue/server/compiler.js.map +1 -1
  246. package/hmr/frameworks/vue/server/sfc-route-assemble.d.ts +7 -0
  247. package/hmr/frameworks/vue/server/sfc-route-assemble.js +823 -0
  248. package/hmr/frameworks/vue/server/sfc-route-assemble.js.map +1 -0
  249. package/hmr/frameworks/vue/server/sfc-route-meta.d.ts +7 -0
  250. package/hmr/frameworks/vue/server/sfc-route-meta.js +80 -0
  251. package/hmr/frameworks/vue/server/sfc-route-meta.js.map +1 -0
  252. package/hmr/frameworks/vue/server/sfc-route-serve.d.ts +8 -0
  253. package/hmr/frameworks/vue/server/sfc-route-serve.js +462 -0
  254. package/hmr/frameworks/vue/server/sfc-route-serve.js.map +1 -0
  255. package/hmr/frameworks/vue/server/sfc-route-shared.d.ts +45 -0
  256. package/hmr/frameworks/vue/server/sfc-route-shared.js +105 -0
  257. package/hmr/frameworks/vue/server/sfc-route-shared.js.map +1 -0
  258. package/hmr/frameworks/vue/server/strategy.d.ts +35 -0
  259. package/hmr/frameworks/vue/server/strategy.js +291 -7
  260. package/hmr/frameworks/vue/server/strategy.js.map +1 -1
  261. package/hmr/frameworks/vue/server/websocket-sfc.d.ts +15 -0
  262. package/hmr/frameworks/vue/server/websocket-sfc.js +20 -0
  263. package/hmr/frameworks/vue/server/websocket-sfc.js.map +1 -0
  264. package/hmr/helpers/ast-normalizer.d.ts +3 -1
  265. package/hmr/helpers/ast-normalizer.js +109 -14
  266. package/hmr/helpers/ast-normalizer.js.map +1 -1
  267. package/hmr/helpers/package-exports.d.ts +16 -0
  268. package/hmr/helpers/package-exports.js +396 -0
  269. package/hmr/helpers/package-exports.js.map +1 -0
  270. package/hmr/helpers/vendor-rewrite.d.ts +1 -1
  271. package/hmr/helpers/vendor-rewrite.js +5 -3
  272. package/hmr/helpers/vendor-rewrite.js.map +1 -1
  273. package/hmr/server/boot-recording.d.ts +51 -0
  274. package/hmr/server/boot-recording.js +214 -0
  275. package/hmr/server/boot-recording.js.map +1 -0
  276. package/hmr/server/constants.js +7 -1
  277. package/hmr/server/constants.js.map +1 -1
  278. package/hmr/server/content-css-update.d.ts +54 -0
  279. package/hmr/server/content-css-update.js +78 -0
  280. package/hmr/server/content-css-update.js.map +1 -0
  281. package/hmr/server/core-bundle.d.ts +140 -0
  282. package/hmr/server/core-bundle.js +614 -0
  283. package/hmr/server/core-bundle.js.map +1 -0
  284. package/hmr/server/core-sanitize.d.ts +86 -7
  285. package/hmr/server/core-sanitize.js +155 -37
  286. package/hmr/server/core-sanitize.js.map +1 -1
  287. package/hmr/server/css-connect-sync.d.ts +28 -0
  288. package/hmr/server/css-connect-sync.js +59 -0
  289. package/hmr/server/css-connect-sync.js.map +1 -0
  290. package/hmr/server/css-device-module.d.ts +28 -0
  291. package/hmr/server/css-device-module.js +44 -0
  292. package/hmr/server/css-device-module.js.map +1 -0
  293. package/hmr/server/css-update-message.d.ts +23 -0
  294. package/hmr/server/css-update-message.js +41 -0
  295. package/hmr/server/css-update-message.js.map +1 -0
  296. package/hmr/server/deps-bundle.d.ts +233 -0
  297. package/hmr/server/deps-bundle.js +1022 -0
  298. package/hmr/server/deps-bundle.js.map +1 -0
  299. package/hmr/server/device-transform-helpers.d.ts +24 -0
  300. package/hmr/server/device-transform-helpers.js +408 -0
  301. package/hmr/server/device-transform-helpers.js.map +1 -0
  302. package/hmr/server/framework-strategy.d.ts +182 -11
  303. package/hmr/server/hmr-module-graph.d.ts +37 -0
  304. package/hmr/server/hmr-module-graph.js +215 -0
  305. package/hmr/server/hmr-module-graph.js.map +1 -0
  306. package/hmr/server/import-map.d.ts +57 -23
  307. package/hmr/server/import-map.js +142 -70
  308. package/hmr/server/import-map.js.map +1 -1
  309. package/hmr/server/index.js +7 -16
  310. package/hmr/server/index.js.map +1 -1
  311. package/hmr/server/node-builtins-route.d.ts +12 -0
  312. package/hmr/server/node-builtins-route.js +86 -0
  313. package/hmr/server/node-builtins-route.js.map +1 -0
  314. package/hmr/server/ns-m-response-memo.d.ts +10 -0
  315. package/hmr/server/ns-m-response-memo.js +33 -0
  316. package/hmr/server/ns-m-response-memo.js.map +1 -0
  317. package/hmr/server/ns-rt-bridge.d.ts +51 -0
  318. package/hmr/server/ns-rt-bridge.js +131 -0
  319. package/hmr/server/ns-rt-bridge.js.map +1 -0
  320. package/hmr/server/ns-rt-route.d.ts +5 -0
  321. package/hmr/server/ns-rt-route.js +39 -0
  322. package/hmr/server/ns-rt-route.js.map +1 -0
  323. package/hmr/server/perf-instrumentation.d.ts +1 -1
  324. package/hmr/server/perf-instrumentation.js +3 -1
  325. package/hmr/server/perf-instrumentation.js.map +1 -1
  326. package/hmr/server/process-code-for-device.d.ts +44 -0
  327. package/hmr/server/process-code-for-device.js +834 -0
  328. package/hmr/server/process-code-for-device.js.map +1 -0
  329. package/hmr/server/require-guard.d.ts +1 -0
  330. package/hmr/server/require-guard.js +12 -0
  331. package/hmr/server/require-guard.js.map +1 -0
  332. package/hmr/server/rewrite-imports.d.ts +2 -0
  333. package/hmr/server/rewrite-imports.js +631 -0
  334. package/hmr/server/rewrite-imports.js.map +1 -0
  335. package/hmr/server/route-helpers.d.ts +7 -0
  336. package/hmr/server/route-helpers.js +13 -0
  337. package/hmr/server/route-helpers.js.map +1 -0
  338. package/hmr/server/runtime-graph-filter.js +8 -1
  339. package/hmr/server/runtime-graph-filter.js.map +1 -1
  340. package/hmr/server/server-origin.d.ts +2 -0
  341. package/hmr/server/server-origin.js +88 -0
  342. package/hmr/server/server-origin.js.map +1 -0
  343. package/hmr/server/shared-transform-request.js +1 -2
  344. package/hmr/server/shared-transform-request.js.map +1 -1
  345. package/hmr/server/socket-utils.d.ts +10 -0
  346. package/hmr/server/socket-utils.js +14 -0
  347. package/hmr/server/socket-utils.js.map +1 -0
  348. package/hmr/server/transform-cache-invalidation.d.ts +37 -0
  349. package/hmr/server/transform-cache-invalidation.js +156 -0
  350. package/hmr/server/transform-cache-invalidation.js.map +1 -0
  351. package/hmr/server/vendor-bare-module-shims.d.ts +4 -0
  352. package/hmr/server/vendor-bare-module-shims.js +80 -0
  353. package/hmr/server/vendor-bare-module-shims.js.map +1 -0
  354. package/hmr/server/vite-plugin.d.ts +1 -0
  355. package/hmr/server/vite-plugin.js +211 -53
  356. package/hmr/server/vite-plugin.js.map +1 -1
  357. package/hmr/server/websocket-core-bridge.d.ts +51 -4
  358. package/hmr/server/websocket-core-bridge.js +62 -49
  359. package/hmr/server/websocket-core-bridge.js.map +1 -1
  360. package/hmr/server/websocket-device-transform.d.ts +3 -0
  361. package/hmr/server/websocket-device-transform.js +7 -0
  362. package/hmr/server/websocket-device-transform.js.map +1 -0
  363. package/hmr/server/websocket-hmr-pending.d.ts +2 -16
  364. package/hmr/server/websocket-hmr-pending.js +0 -22
  365. package/hmr/server/websocket-hmr-pending.js.map +1 -1
  366. package/hmr/server/websocket-hot-update.d.ts +80 -0
  367. package/hmr/server/websocket-hot-update.js +295 -0
  368. package/hmr/server/websocket-hot-update.js.map +1 -0
  369. package/hmr/server/websocket-import-map-route.d.ts +15 -0
  370. package/hmr/server/websocket-import-map-route.js +51 -0
  371. package/hmr/server/websocket-import-map-route.js.map +1 -0
  372. package/hmr/server/websocket-module-bindings.d.ts +15 -0
  373. package/hmr/server/websocket-module-bindings.js +36 -3
  374. package/hmr/server/websocket-module-bindings.js.map +1 -1
  375. package/hmr/server/websocket-module-specifiers.d.ts +0 -5
  376. package/hmr/server/websocket-module-specifiers.js +29 -30
  377. package/hmr/server/websocket-module-specifiers.js.map +1 -1
  378. package/hmr/server/websocket-ns-core.d.ts +34 -0
  379. package/hmr/server/websocket-ns-core.js +414 -0
  380. package/hmr/server/websocket-ns-core.js.map +1 -0
  381. package/hmr/server/websocket-ns-entry.d.ts +21 -0
  382. package/hmr/server/websocket-ns-entry.js +163 -0
  383. package/hmr/server/websocket-ns-entry.js.map +1 -0
  384. package/hmr/server/websocket-ns-m-paths.d.ts +19 -3
  385. package/hmr/server/websocket-ns-m-paths.js +98 -75
  386. package/hmr/server/websocket-ns-m-paths.js.map +1 -1
  387. package/hmr/server/websocket-ns-m-request.d.ts +2 -1
  388. package/hmr/server/websocket-ns-m-request.js +3 -2
  389. package/hmr/server/websocket-ns-m-request.js.map +1 -1
  390. package/hmr/server/websocket-ns-m.d.ts +52 -0
  391. package/hmr/server/websocket-ns-m.js +590 -0
  392. package/hmr/server/websocket-ns-m.js.map +1 -0
  393. package/hmr/server/websocket-served-module-helpers.d.ts +56 -3
  394. package/hmr/server/websocket-served-module-helpers.js +444 -140
  395. package/hmr/server/websocket-served-module-helpers.js.map +1 -1
  396. package/hmr/server/websocket-txn.js +6 -9
  397. package/hmr/server/websocket-txn.js.map +1 -1
  398. package/hmr/server/websocket-vendor-unifier.d.ts +0 -1
  399. package/hmr/server/websocket-vendor-unifier.js +4 -9
  400. package/hmr/server/websocket-vendor-unifier.js.map +1 -1
  401. package/hmr/server/websocket.d.ts +7 -40
  402. package/hmr/server/websocket.js +661 -6751
  403. package/hmr/server/websocket.js.map +1 -1
  404. package/hmr/shared/ns-globals.d.ts +107 -0
  405. package/hmr/shared/ns-globals.js +29 -0
  406. package/hmr/shared/ns-globals.js.map +1 -0
  407. package/hmr/shared/protocol.d.ts +157 -0
  408. package/hmr/shared/protocol.js +28 -0
  409. package/hmr/shared/protocol.js.map +1 -0
  410. package/hmr/shared/runtime/boot-complete.d.ts +14 -0
  411. package/hmr/shared/runtime/boot-complete.js +32 -0
  412. package/hmr/shared/runtime/boot-complete.js.map +1 -0
  413. package/hmr/shared/runtime/boot-placeholder-ui.d.ts +69 -0
  414. package/hmr/shared/runtime/boot-placeholder-ui.js +101 -0
  415. package/hmr/shared/runtime/boot-placeholder-ui.js.map +1 -0
  416. package/hmr/shared/runtime/boot-progress.d.ts +44 -0
  417. package/hmr/shared/runtime/boot-progress.js +134 -0
  418. package/hmr/shared/runtime/boot-progress.js.map +1 -0
  419. package/hmr/shared/runtime/boot-timeline.d.ts +1 -1
  420. package/hmr/shared/runtime/boot-timeline.js +8 -19
  421. package/hmr/shared/runtime/boot-timeline.js.map +1 -1
  422. package/hmr/shared/runtime/browser-runtime-contract.d.ts +58 -25
  423. package/hmr/shared/runtime/browser-runtime-contract.js +21 -9
  424. package/hmr/shared/runtime/browser-runtime-contract.js.map +1 -1
  425. package/hmr/shared/runtime/dev-overlay-ios.d.ts +87 -0
  426. package/hmr/shared/runtime/dev-overlay-ios.js +521 -0
  427. package/hmr/shared/runtime/dev-overlay-ios.js.map +1 -0
  428. package/hmr/shared/runtime/dev-overlay-shared.d.ts +58 -0
  429. package/hmr/shared/runtime/dev-overlay-shared.js +116 -0
  430. package/hmr/shared/runtime/dev-overlay-shared.js.map +1 -0
  431. package/hmr/shared/runtime/dev-overlay-snapshots.d.ts +31 -0
  432. package/hmr/shared/runtime/dev-overlay-snapshots.js +324 -0
  433. package/hmr/shared/runtime/dev-overlay-snapshots.js.map +1 -0
  434. package/hmr/shared/runtime/dev-overlay-tree.d.ts +59 -0
  435. package/hmr/shared/runtime/dev-overlay-tree.js +712 -0
  436. package/hmr/shared/runtime/dev-overlay-tree.js.map +1 -0
  437. package/hmr/shared/runtime/dev-overlay.d.ts +23 -69
  438. package/hmr/shared/runtime/dev-overlay.js +67 -1011
  439. package/hmr/shared/runtime/dev-overlay.js.map +1 -1
  440. package/hmr/shared/runtime/global-scope.d.ts +18 -0
  441. package/hmr/shared/runtime/global-scope.js +21 -0
  442. package/hmr/shared/runtime/global-scope.js.map +1 -0
  443. package/hmr/shared/runtime/hooks.js +2 -1
  444. package/hmr/shared/runtime/hooks.js.map +1 -1
  445. package/hmr/shared/runtime/launch-bridge.d.ts +9 -0
  446. package/hmr/shared/runtime/launch-bridge.js +98 -0
  447. package/hmr/shared/runtime/launch-bridge.js.map +1 -0
  448. package/hmr/shared/runtime/module-provenance.js +3 -2
  449. package/hmr/shared/runtime/module-provenance.js.map +1 -1
  450. package/hmr/shared/runtime/ns-runtime-test-double.d.ts +21 -0
  451. package/hmr/shared/runtime/ns-runtime-test-double.js +20 -0
  452. package/hmr/shared/runtime/ns-runtime-test-double.js.map +1 -0
  453. package/hmr/shared/runtime/overlay-flag.d.ts +9 -0
  454. package/hmr/shared/runtime/overlay-flag.js +34 -0
  455. package/hmr/shared/runtime/overlay-flag.js.map +1 -0
  456. package/hmr/shared/runtime/root-placeholder-view.d.ts +19 -0
  457. package/hmr/shared/runtime/root-placeholder-view.js +311 -0
  458. package/hmr/shared/runtime/root-placeholder-view.js.map +1 -0
  459. package/hmr/shared/runtime/root-placeholder.js +382 -157
  460. package/hmr/shared/runtime/root-placeholder.js.map +1 -1
  461. package/hmr/shared/runtime/session-bootstrap.js +209 -54
  462. package/hmr/shared/runtime/session-bootstrap.js.map +1 -1
  463. package/hmr/shared/runtime/vendor-bootstrap.js +2 -1
  464. package/hmr/shared/runtime/vendor-bootstrap.js.map +1 -1
  465. package/hmr/shared/runtime/vendor-resolve.d.ts +22 -0
  466. package/hmr/shared/runtime/vendor-resolve.js +45 -0
  467. package/hmr/shared/runtime/vendor-resolve.js.map +1 -0
  468. package/hmr/shared/runtime/worker-tracking.d.ts +28 -0
  469. package/hmr/shared/runtime/worker-tracking.js +114 -0
  470. package/hmr/shared/runtime/worker-tracking.js.map +1 -0
  471. package/hmr/shared/vendor/manifest-collect.d.ts +4 -0
  472. package/hmr/shared/vendor/manifest-collect.js +909 -0
  473. package/hmr/shared/vendor/manifest-collect.js.map +1 -0
  474. package/hmr/shared/vendor/manifest-loader.d.ts +2 -1
  475. package/hmr/shared/vendor/manifest-loader.js +5 -3
  476. package/hmr/shared/vendor/manifest-loader.js.map +1 -1
  477. package/hmr/shared/vendor/manifest.d.ts +10 -35
  478. package/hmr/shared/vendor/manifest.js +154 -978
  479. package/hmr/shared/vendor/manifest.js.map +1 -1
  480. package/hmr/shared/vendor/registry.d.ts +2 -0
  481. package/hmr/shared/vendor/registry.js +14 -0
  482. package/hmr/shared/vendor/registry.js.map +1 -1
  483. package/hmr/shared/vendor/vendor-device-shim.d.ts +1 -0
  484. package/hmr/shared/vendor/vendor-device-shim.js +208 -0
  485. package/hmr/shared/vendor/vendor-device-shim.js.map +1 -0
  486. package/hmr/shared/vendor/vendor-esbuild-plugins.d.ts +107 -0
  487. package/hmr/shared/vendor/vendor-esbuild-plugins.js +540 -0
  488. package/hmr/shared/vendor/vendor-esbuild-plugins.js.map +1 -0
  489. package/package.json +63 -13
  490. package/runtime/core-aliases-early.js +11 -16
  491. package/runtime/core-aliases-early.js.map +1 -1
  492. package/shims/react-jsx-runtime.d.ts +4 -0
  493. package/shims/react-jsx-runtime.js +61 -0
  494. package/shims/react-jsx-runtime.js.map +1 -0
  495. package/helpers/angular/angular-linker.d.ts +0 -13
  496. package/helpers/angular/angular-linker.js +0 -185
  497. package/helpers/angular/angular-linker.js.map +0 -1
  498. package/helpers/angular/inject-component-hmr-registration.js.map +0 -1
  499. package/helpers/angular/inline-decorator-component-templates.js.map +0 -1
  500. package/helpers/angular/shared-linker.d.ts +0 -11
  501. package/helpers/angular/shared-linker.js +0 -75
  502. package/helpers/angular/shared-linker.js.map +0 -1
  503. package/helpers/angular/synthesize-decorator-ctor-parameters.js.map +0 -1
  504. package/helpers/angular/synthesize-injectable-factories.js.map +0 -1
  505. package/helpers/angular/util.js.map +0 -1
  506. package/helpers/module-runner-patch.d.ts +0 -3
  507. package/helpers/module-runner-patch.js +0 -63
  508. package/helpers/module-runner-patch.js.map +0 -1
  509. package/helpers/prelink-angular.d.ts +0 -2
  510. package/helpers/prelink-angular.js +0 -114
  511. package/helpers/prelink-angular.js.map +0 -1
  512. package/hmr/server/websocket-angular-entry.js.map +0 -1
  513. package/hmr/server/websocket-angular-hot-update.js.map +0 -1
  514. package/hmr/server/websocket-ns-m-finalize.d.ts +0 -22
  515. package/hmr/server/websocket-ns-m-finalize.js +0 -88
  516. package/hmr/server/websocket-ns-m-finalize.js.map +0 -1
  517. package/hmr/server/websocket-runtime-compat.d.ts +0 -19
  518. package/hmr/server/websocket-runtime-compat.js +0 -287
  519. package/hmr/server/websocket-runtime-compat.js.map +0 -1
  520. package/hmr/server/websocket-vue-sfc.d.ts +0 -27
  521. package/hmr/server/websocket-vue-sfc.js +0 -1069
  522. package/hmr/server/websocket-vue-sfc.js.map +0 -1
  523. package/hmr/shared/runtime/http-only-boot.d.ts +0 -2
  524. package/hmr/shared/runtime/http-only-boot.js +0 -171
  525. package/hmr/shared/runtime/http-only-boot.js.map +0 -1
  526. package/hmr/vendor-bootstrap.d.ts +0 -3
  527. package/hmr/vendor-bootstrap.js +0 -32
  528. package/hmr/vendor-bootstrap.js.map +0 -1
  529. package/shims/react-reconciler-constants.d.ts +0 -14
  530. package/shims/react-reconciler-constants.js +0 -21
  531. package/shims/react-reconciler-constants.js.map +0 -1
  532. package/shims/react-reconciler.d.ts +0 -8
  533. package/shims/react-reconciler.js +0 -15
  534. package/shims/react-reconciler.js.map +0 -1
  535. package/transformers/NativeClass/index.d.ts +0 -2
  536. package/transformers/NativeClass/index.js +0 -222
  537. package/transformers/NativeClass/index.js.map +0 -1
  538. /package/{helpers/angular → hmr/frameworks/angular/build}/inject-component-hmr-registration.d.ts +0 -0
  539. /package/{helpers/angular → hmr/frameworks/angular/build}/inline-decorator-component-templates.d.ts +0 -0
  540. /package/{helpers/angular → hmr/frameworks/angular/build}/synthesize-decorator-ctor-parameters.d.ts +0 -0
  541. /package/{helpers/angular → hmr/frameworks/angular/build}/synthesize-injectable-factories.d.ts +0 -0
  542. /package/{helpers/angular → hmr/frameworks/angular/build}/util.d.ts +0 -0
  543. /package/{helpers/angular → hmr/frameworks/angular/build}/util.js +0 -0
  544. /package/hmr/{server → frameworks/angular/server}/websocket-angular-entry.d.ts +0 -0
@@ -0,0 +1,590 @@
1
+ import { parse as babelParse } from '@babel/parser';
2
+ import traverse from '@babel/traverse';
3
+ import { sanitizeStrayCoreReferences } from './core-sanitize.js';
4
+ import { getMonorepoWorkspaceRoot } from '../../helpers/project.js';
5
+ import { isRuntimeGraphExcludedPath } from './runtime-graph-filter.js';
6
+ import { buildPiniaVendorShim, buildVueVendorShim } from './vendor-bare-module-shims.js';
7
+ import { collapseLegacyNsMTags } from './websocket-ns-m-paths.js';
8
+ import { createNsMRequestContext, resolveNsMTransformedModule } from './websocket-ns-m-request.js';
9
+ import { setDeviceModuleHeaders } from './route-helpers.js';
10
+ import { CSS_MODULE_RE, buildCssRegisterSnippetFromVar, normalizeCssForDevice } from './css-device-module.js';
11
+ import { assertNoOptimizedArtifacts, buildBootProgressSnippet, canonicalizeRtImports, classifyServedModule, dedupeRtNamedImportsAgainstDestructures, deduplicateLinkerImports, ensureDestructureCoreImports, ensureGuardPlainDynamicImports, ensureVariableDynamicImportHelper, expandStarExports, hoistTopLevelStaticImports, MODULE_IMPORT_ANALYSIS_PLUGINS, wrapCommonJsModuleForDevice } from './websocket-served-module-helpers.js';
12
+ import { cleanCode, collectImportDependencies, isWorkerEntryModuleId, processCodeForDevice, rewriteImports } from './websocket-device-transform.js';
13
+ import { REQUIRE_GUARD_SNIPPET } from './require-guard.js';
14
+ import { getServerOrigin } from './server-origin.js';
15
+ import { createNsMResponseMemo } from './ns-m-response-memo.js';
16
+ import { getSharedDepsBundleService, registerDepsBundleRoute } from './deps-bundle.js';
17
+ const babelTraverse = traverse?.default || traverse;
18
+ /**
19
+ * Registers the `/ns/m/*` device module server: the HTTP endpoint every
20
+ * NativeScript device uses to fetch app/source modules (and AnalogJS Angular
21
+ * `/@ng/component` live-reload requests) as device-ready ESM. This is the
22
+ * single hottest route in the HMR server.
23
+ */
24
+ export function registerNsModuleServerRoute(server, options) {
25
+ // Final-response memo: repeat serves of an unchanged module (app restarts,
26
+ // concurrent graph-walk fetch waves) skip the whole post-processing
27
+ // pipeline. Keyed by a hash of Vite's transform output, so HMR edits
28
+ // invalidate implicitly. `NS_VITE_HMR_DISABLE_NSM_MEMO=1` opts out.
29
+ const memoDisabled = process.env.NS_VITE_HMR_DISABLE_NSM_MEMO === '1' || process.env.NS_VITE_HMR_DISABLE_NSM_MEMO === 'true';
30
+ const responseMemo = createNsMResponseMemo();
31
+ // Deps bundle (see deps-bundle.ts): once a boot recording exists, the
32
+ // recorded node_modules closure is served as ONE esbuild payload and the
33
+ // canonical /ns/m/node_modules/... URLs become thin registry shims.
34
+ const depsBundle = options.depsBundle !== undefined ? options.depsBundle : getSharedDepsBundleService(server);
35
+ if (depsBundle) {
36
+ registerDepsBundleRoute(server, depsBundle);
37
+ }
38
+ server.middlewares.use(async (req, res, next) => {
39
+ try {
40
+ const urlObj = new URL(req.url || '', 'http://localhost');
41
+ if (!urlObj.pathname.startsWith('/ns/m'))
42
+ return next();
43
+ // Closure deps injected by createHmrWebSocketPlugin (see websocket.ts).
44
+ const verbose = options.verbose;
45
+ const APP_VIRTUAL_WITH_SLASH = options.appVirtualWithSlash;
46
+ const sfcFileMap = options.sfcFileMap;
47
+ const depFileMap = options.depFileMap;
48
+ const sharedTransformRequest = options.sharedTransformRequest;
49
+ const ensureInitialGraphPopulationStarted = options.ensureInitialGraphPopulationStarted;
50
+ const strategy = options.getStrategy();
51
+ // Framework request interception, BEFORE spec resolution. Angular
52
+ // uses this to delegate AnalogJS `/@ng/component` live-reload
53
+ // fetches (with the boot-fetch gate and iOS empty-body guard —
54
+ // see frameworks/angular/server/ng-component-route.ts). Must run
55
+ // first: an intercepted request must not kick off graph
56
+ // population or the transform pipeline.
57
+ if (strategy?.interceptModuleRequest?.({
58
+ urlObj,
59
+ res,
60
+ next,
61
+ isLiveComponentUpdateFetch: options.isLiveAngularComponentUpdateFetch,
62
+ })) {
63
+ return;
64
+ }
65
+ // graphVersion starts at 1 and stays stable during cold boot (see
66
+ // `upsertGraphModule`'s bumpVersion option and the inline comment
67
+ // at the graphVersion declaration), so the initial population can
68
+ // run in the background without blocking the first response.
69
+ // `handleHotUpdate` awaits the same promise so the first HMR
70
+ // event still sees a fully populated graph.
71
+ ensureInitialGraphPopulationStarted(server);
72
+ // Cold-boot counting lives in the leading boot-trace middleware
73
+ // (see `configureServer` — it records the request and tracks
74
+ // finish() via res.on('close'/'finish')), not here: recording in
75
+ // this handler would miss the round-trip timing and per-route
76
+ // breakdowns.
77
+ setDeviceModuleHeaders(res);
78
+ // Inbound spec normalization is owned by createNsMRequestContext
79
+ // (websocket-ns-m-request.ts): query/path-style spec extraction,
80
+ // the anomalous-'@' and empty-spec stubs, legacy boot/HMR tag
81
+ // stripping, absolute-filesystem → project-relative mapping,
82
+ // `@/` aliasing, the blocked-device-import gate, and candidate
83
+ // expansion. Its specs pin all of it.
84
+ const serverRoot = (server.config?.root || process.cwd());
85
+ const monorepoWorkspaceRoot = getMonorepoWorkspaceRoot(serverRoot);
86
+ const contextResult = createNsMRequestContext(req.url || '', serverRoot, APP_VIRTUAL_WITH_SLASH, monorepoWorkspaceRoot);
87
+ if (contextResult.kind === 'next')
88
+ return next();
89
+ if (contextResult.kind === 'response') {
90
+ res.statusCode = contextResult.statusCode;
91
+ res.end(contextResult.code);
92
+ return;
93
+ }
94
+ const requestContext = contextResult.value;
95
+ const spec = requestContext.spec;
96
+ // Serve Vite virtual modules (/@id/ prefix) directly — these are
97
+ // internal virtual modules (e.g., \0nsvite:nsconfig-json for
98
+ // ~/package.json) that don't exist on disk and must NOT run
99
+ // through the device post-processing pipeline below.
100
+ if (spec.startsWith('/@id/')) {
101
+ try {
102
+ // First try Vite's transform pipeline directly
103
+ const vr = await sharedTransformRequest(spec);
104
+ if (vr?.code) {
105
+ res.statusCode = 200;
106
+ res.end(vr.code);
107
+ return;
108
+ }
109
+ }
110
+ catch { }
111
+ try {
112
+ // Fallback: decode the virtual module ID (__x00__ → \0) and
113
+ // load through the plugin container directly
114
+ const rawId = spec.slice('/@id/'.length).replace(/__x00__/g, '\0');
115
+ const loadResult = await server.pluginContainer.load(rawId);
116
+ if (loadResult) {
117
+ const code = typeof loadResult === 'string' ? loadResult : loadResult.code;
118
+ if (code) {
119
+ res.statusCode = 200;
120
+ res.end(code);
121
+ return;
122
+ }
123
+ }
124
+ }
125
+ catch { }
126
+ }
127
+ // Worker-realm serves must NOT take the deps-bundle bridge: the
128
+ // bundle evaluates the full dependency closure in the worker realm,
129
+ // where Angular's injectables reject the entry evaluation
130
+ // ("_PlatformLocation needs to be compiled using the JIT compiler").
131
+ // Per-module serving gives the worker just the graphs it imports.
132
+ // A request belongs to a worker realm when it carries `?ns_worker=1`
133
+ // (propagated onto every /ns/m child specifier of a worker serve
134
+ // below) OR when it IS a worker entry by filename — the runtime's
135
+ // `new Worker(...)` fetch has no way to carry the marker itself.
136
+ const isWorkerRealmRequest = urlObj.searchParams.get('ns_worker') === '1' || isWorkerEntryModuleId(spec);
137
+ // Deps-bundle shim short-circuit: a bundled node_modules module is
138
+ // served as a thin registry shim (see deps-bundle.ts) — the whole
139
+ // transform pipeline below is skipped. Non-bundled specs (no
140
+ // recording yet, CJS files, build failure) fall through unchanged.
141
+ if (depsBundle && !isWorkerRealmRequest && spec.includes('/node_modules/')) {
142
+ const shim = depsBundle.getShimForSpec(spec);
143
+ if (shim) {
144
+ res.statusCode = 200;
145
+ res.end(shim);
146
+ return;
147
+ }
148
+ }
149
+ // A JS/TS `import './x.css'` reaches the device as a module request;
150
+ // Vite's default CSS module needs a DOM, so it's a no-op on NativeScript.
151
+ // Compile via `?inline` (full postcss/sass/@import, no DOM side effect),
152
+ // register the result under the file's root-relative tag (matches the
153
+ // `.css` live-edit tag so edits replace, not stack), and re-export the
154
+ // string for `import css from './x.css'`. `app.css` has its own path.
155
+ if (CSS_MODULE_RE.test(spec)) {
156
+ try {
157
+ const inlineRes = await sharedTransformRequest(`${spec}?inline`);
158
+ const inlineCode = inlineRes?.code || '';
159
+ // `?inline` output is `export default "<compiled css>"`.
160
+ const m = inlineCode.match(/export\s+default\s+("(?:[^"\\]|\\.)*")\s*;?/s);
161
+ if (m) {
162
+ let css = '';
163
+ try {
164
+ css = JSON.parse(m[1]);
165
+ }
166
+ catch { }
167
+ css = normalizeCssForDevice(css);
168
+ const out = `// [ns:m][css] ${spec}\n` + `const __ns_css_text__ = ${JSON.stringify(css)};\n` + buildCssRegisterSnippetFromVar(spec, '__ns_css_text__') + `export default __ns_css_text__;\n`;
169
+ res.statusCode = 200;
170
+ res.end(out);
171
+ return;
172
+ }
173
+ if (verbose)
174
+ console.warn('[ns:m][css] unexpected ?inline output shape for', spec);
175
+ }
176
+ catch (cssErr) {
177
+ if (verbose)
178
+ console.warn('[ns:m][css] inline compile failed', spec, cssErr?.message);
179
+ }
180
+ // Fall through to default handling if inline compile produced nothing.
181
+ }
182
+ // Queue and dedupe transformRequest calls so heavy app graphs do not
183
+ // overwhelm Vite with concurrent work. Slow-transform warnings start only
184
+ // when the transform actually begins executing, and requests stay pending
185
+ // until Vite returns a real result.
186
+ const transformWithTimeout = async (url, timeoutMs = 120000) => {
187
+ const r = await sharedTransformRequest(url, timeoutMs);
188
+ // A type-only .ts module legitimately transforms to EMPTY code
189
+ // (e.g. a workspace lib's `interfaces.ts` holding only `export
190
+ // type ...`). Every candidate gate in the resolution pipeline
191
+ // tests `r?.code` truthiness, so '' would cascade through all
192
+ // fallbacks into a 404 "transform miss" — and one 404 in the
193
+ // entry graph fails the whole dev-session boot. Normalize to
194
+ // the canonical empty ESM module instead.
195
+ if (r && typeof r.code === 'string' && r.code.trim() === '') {
196
+ return { ...r, code: 'export {}\n' };
197
+ }
198
+ return r;
199
+ };
200
+ const resolvePluginContainerId = async (id) => {
201
+ try {
202
+ const resolved = await server.pluginContainer?.resolveId?.(id, undefined);
203
+ return typeof resolved === 'string' ? resolved : resolved?.id || null;
204
+ }
205
+ catch {
206
+ return null;
207
+ }
208
+ };
209
+ const loadVirtualId = (id) => server.pluginContainer.load(id);
210
+ // Canonical "spec → transformed module" resolution
211
+ // (websocket-ns-m-request.ts): raw explicit JS read → transform
212
+ // candidates → resolveId → bare node_modules specifier →
213
+ // /@fs project+workspace roots → ?import hint.
214
+ const resolution = await resolveNsMTransformedModule({
215
+ context: requestContext,
216
+ transformRequest: transformWithTimeout,
217
+ resolveId: resolvePluginContainerId,
218
+ loadVirtualId,
219
+ });
220
+ let transformed = resolution.transformed;
221
+ const resolvedCandidate = resolution.resolvedCandidate;
222
+ // Solid HMR: patch the served `@solid-refresh` runtime so $$refreshESM
223
+ // applies registry updates inline on module re-evaluation. The full
224
+ // patch (and its server-side diagnostics) lives in the Solid strategy's
225
+ // `transformNodeModule` hook; every other flavor leaves the hook
226
+ // undefined, so this is a no-op for them.
227
+ try {
228
+ if (transformed?.code && strategy?.transformNodeModule) {
229
+ const patched = strategy.transformNodeModule(transformed.code, resolvedCandidate || spec || '', verbose);
230
+ if (patched !== transformed.code) {
231
+ // Work on a copy to avoid mutating Vite's cached TransformResult
232
+ transformed = { ...transformed, code: patched };
233
+ }
234
+ }
235
+ }
236
+ catch { }
237
+ // NOTE: Path-based cache busting for /ns/m/* imports is applied in the
238
+ // finalize step below (after rewriteImports adds the /ns/m/ prefix).
239
+ // The block here only handles TypeScript-specific graph population.
240
+ try {
241
+ if (transformed?.code) {
242
+ const code = transformed.code;
243
+ // TypeScript-specific graph population: when TS flavor is active
244
+ // and this is an application module under the virtual app root,
245
+ // upsert it into the HMR graph so ns:hmr-full-graph is non-empty.
246
+ try {
247
+ if (strategy?.flavor === 'typescript' || strategy?.flavor === 'react') {
248
+ const id = (resolvedCandidate || spec).replace(/[?#].*$/, '');
249
+ // Only track app modules (under APP_VIRTUAL_WITH_SLASH) and ts/js/tsx/jsx/mjs.
250
+ const isApp = id.startsWith(APP_VIRTUAL_WITH_SLASH) || id.startsWith('/app/');
251
+ if (isApp && /\.(ts|tsx|js|jsx|mjs|mts|cts)$/i.test(id) && !isRuntimeGraphExcludedPath(id)) {
252
+ const deps = Array.from(collectImportDependencies(code, id));
253
+ if (verbose) {
254
+ console.log('[hmr-ws][ts-graph] candidate', { id, depsCount: deps.length });
255
+ }
256
+ // Serve-time warm-up: no live edit happened, so don't bump
257
+ // graphVersion.
258
+ options.upsertGraphModule(id, code, deps, { bumpVersion: false });
259
+ }
260
+ }
261
+ }
262
+ catch { }
263
+ }
264
+ }
265
+ catch { }
266
+ // If transformRequest failed, handle bare-module vendor shims for 'vue' and 'pinia'
267
+ if (!transformed?.code) {
268
+ const bare = spec.startsWith('/') ? spec.slice(1) : spec;
269
+ const isBare = bare && !bare.includes('/') && !/\.(ts|tsx|js|jsx|mjs|mts|cts|vue)$/i.test(bare);
270
+ if (isBare && (bare === 'vue' || bare === 'nativescript-vue' || bare === 'pinia')) {
271
+ const pkg = bare;
272
+ let code = '';
273
+ if (pkg === 'vue' || pkg === 'nativescript-vue') {
274
+ code = buildVueVendorShim(pkg);
275
+ }
276
+ else if (pkg === 'pinia') {
277
+ code = buildPiniaVendorShim();
278
+ }
279
+ res.statusCode = 200;
280
+ res.end(code || 'export {}\n');
281
+ return;
282
+ }
283
+ // (Bare specifiers already went through resolveId in the
284
+ // resolution pipeline above — reaching here means a true miss.)
285
+ // Emit a module that throws with context for easier on-device debugging
286
+ try {
287
+ const tried = Array.from(new Set(requestContext.transformCandidates.length > 0 ? requestContext.transformCandidates : requestContext.candidates)).slice(0, 12);
288
+ const out = `// [ns:m] transform miss path=${spec} tried=${tried.length}\n` + `throw new Error(${JSON.stringify(`[ns/m] transform failed for ${spec} (tried ${tried.length} candidates).`)});\nexport {};\n`;
289
+ res.statusCode = 404;
290
+ res.end(out);
291
+ return;
292
+ }
293
+ catch {
294
+ res.statusCode = 404;
295
+ res.end('export {}\n');
296
+ return;
297
+ }
298
+ }
299
+ // Final-response memo (see ns-m-response-memo.ts): identical
300
+ // (spec, transform output, context) → identical served body, so repeat
301
+ // serves skip the post-processing pipeline. The graph version in the
302
+ // context conservatively invalidates on any live edit — star-export
303
+ // expansion and the link-check read other modules, so this module's
304
+ // own transform hash is not sufficient.
305
+ // Worker-realm serves produce a DIFFERENT body (vendor imports as
306
+ // per-module HTTP + ns_worker marker propagation) — keep the two
307
+ // variants in separate memo slots.
308
+ const memoContext = `${strategy?.flavor || ''}|${getServerOrigin(server)}|${options.getGraphVersion()}|${resolvedCandidate || ''}|${isWorkerRealmRequest ? 'worker' : 'main'}`;
309
+ const memoKey = memoDisabled ? null : responseMemo.buildKey(spec, transformed.code, memoContext);
310
+ if (memoKey) {
311
+ const memoized = responseMemo.get(memoKey);
312
+ if (memoized !== undefined) {
313
+ res.statusCode = 200;
314
+ res.end(memoized);
315
+ return;
316
+ }
317
+ }
318
+ let code = transformed.code;
319
+ // Prepend guard to capture any URL-based require attempts
320
+ code = REQUIRE_GUARD_SNIPPET + code;
321
+ code = cleanCode(code, strategy);
322
+ // Library code (node_modules, monorepo core source, dist vite package)
323
+ // must skip the app-source passes inside processCodeForDevice (AST
324
+ // normalization, /ns/rt helper-alias injection). One classification
325
+ // point — see classifyServedModule for the full case list.
326
+ const isNodeMod = classifyServedModule(resolvedCandidate || spec) === 'library';
327
+ code = processCodeForDevice(code, false, true, isNodeMod, resolvedCandidate || spec, isWorkerRealmRequest ? { workerRealm: true } : undefined);
328
+ // import.meta.hot is JS-owned: cleanCode() strips Vite's browser
329
+ // __vite__createHotContext assignment and processCodeForDevice
330
+ // injects the NS hot-context prelude (globalThis.__NS_HOT_REGISTRY__,
331
+ // installed by the /__ns_dev__/client bootstrap) for app modules.
332
+ const projectRoot = server.config?.root || process.cwd();
333
+ const serverOrigin = getServerOrigin(server);
334
+ // Served-module import rewrite, routed through the active framework
335
+ // strategy. Angular overrides with its register-only entry pass
336
+ // (`rewriteServedModule`); every other flavor falls through to the shared
337
+ // `rewriteImports` default.
338
+ const servedModuleCtx = {
339
+ moduleId: resolvedCandidate || spec,
340
+ sfcFileMap,
341
+ depFileMap,
342
+ projectRoot,
343
+ serverOrigin,
344
+ verbose: !!verbose,
345
+ };
346
+ code = strategy?.rewriteServedModule ? strategy.rewriteServedModule(code, servedModuleCtx) : rewriteImports(code, servedModuleCtx.moduleId, sfcFileMap, depFileMap, projectRoot, !!verbose, undefined, serverOrigin, true);
347
+ // Expand `export * from "url"` into explicit named re-exports.
348
+ // NativeScript's HTTP ESM loader may not propagate star-re-exports across
349
+ // HTTP module boundaries (the namespace object gets direct exports but
350
+ // misses re-exported names). By expanding to `export { a, b } from "url"`,
351
+ // the engine sees explicit named exports and resolves them correctly.
352
+ try {
353
+ code = await expandStarExports(code, server, server.config?.root || process.cwd(), verbose, sharedTransformRequest, resolvedCandidate || spec);
354
+ }
355
+ catch (e) {
356
+ if (verbose)
357
+ console.warn('[ns/m] export* expansion failed:', e?.message);
358
+ }
359
+ // Dedupe any /ns/rt named imports that duplicate destructured bindings off default /ns/rt
360
+ try {
361
+ code = dedupeRtNamedImportsAgainstDestructures(code);
362
+ }
363
+ catch { }
364
+ code = ensureVariableDynamicImportHelper(code);
365
+ // Final safety: guard any plain dynamic import(...) occurrences to reroute anomalous '@' specs
366
+ try {
367
+ code = ensureGuardPlainDynamicImports(code);
368
+ }
369
+ catch { }
370
+ // Extra hardening before the fast-fail assertion: run the
371
+ // consolidated stray-core-reference safety net. If any
372
+ // rewrite occurred, leave a diagnostic marker so the
373
+ // pipeline review log explains why the served code carries
374
+ // it.
375
+ try {
376
+ const __before = code;
377
+ code = sanitizeStrayCoreReferences(code);
378
+ if (code !== __before) {
379
+ code = `// [hmr-sanitize] core-literal->bridge\n` + code;
380
+ }
381
+ }
382
+ catch { }
383
+ // Final pass: deduplicate/resolve any bare-specifier imports that slipped
384
+ // through the pipeline (e.g., extracted from JSDoc comments by import-splitting
385
+ // regexes, or injected by the Angular linker on already-resolved code).
386
+ try {
387
+ code = deduplicateLinkerImports(code);
388
+ }
389
+ catch { }
390
+ // CJS/UMD wrapping: if a module uses module.exports but has no ESM export default,
391
+ // wrap it with CJS shims so the device HTTP ESM loader can consume it.
392
+ // This handles npm packages that use CommonJS but aren't pre-bundled by Vite.
393
+ //
394
+ // Key constraints this must handle:
395
+ // - CJS modules often declare local vars with the same names as their exports
396
+ // (e.g. `function createLTTB() {...}; exports.createLTTB = createLTTB;`)
397
+ // so `export var { createLTTB }` would cause a duplicate declaration.
398
+ // - UMD modules reference `this` at top level (undefined in ESM) but
399
+ // typically fall back to `self` or `globalThis`.
400
+ // - `module`, `exports` must be shims since they don't exist in ESM.
401
+ try {
402
+ code = wrapCommonJsModuleForDevice(code, resolvedCandidate || null);
403
+ }
404
+ catch { }
405
+ try {
406
+ assertNoOptimizedArtifacts(code, `NS M ${resolvedCandidate || spec}`);
407
+ }
408
+ catch (e) {
409
+ res.statusCode = 500;
410
+ return void res.end(`throw new Error(${JSON.stringify(e?.message || String(e))});\nexport {};`);
411
+ }
412
+ // Framework export normalization (e.g. the Vue/Solid/TS `routes`
413
+ // default-export alias — see FrameworkServerStrategy.normalizeServedExports).
414
+ try {
415
+ code = strategy?.normalizeServedExports?.(code) ?? code;
416
+ }
417
+ catch { }
418
+ // Every emitted endpoint URL is CANONICAL (unversioned).
419
+ //
420
+ // Module identity is literally the URL — a versioned
421
+ // `/ns/rt/<ver>` / `/ns/core/<ver>` / `/ns/sfc/<ver>` would
422
+ // create a second module realm. `canonicalizeRtImports` and the
423
+ // strategy's `canonicalizeFrameworkImports` collapse any
424
+ // versioned form (stale cached device code) back to the single
425
+ // canonical URL.
426
+ try {
427
+ code = canonicalizeRtImports(code, getServerOrigin(server));
428
+ code = strategy.canonicalizeFrameworkImports?.(code, getServerOrigin(server)) ?? code;
429
+ }
430
+ catch { }
431
+ // `/ns/m` URL finalize step: collapse every emitted /ns/m URL form
432
+ // (static/side-effect/dynamic imports, new URL(...) shapes, SFC
433
+ // URLs) to the canonical stable form. Cache busting is driven by
434
+ // ns:module `invalidateModules` + the runtime's eviction nonce,
435
+ // not URL decoration — see websocket-ns-m-paths.ts.
436
+ try {
437
+ code = collapseLegacyNsMTags(code, 'outbound-served-code', getServerOrigin(server));
438
+ }
439
+ catch { }
440
+ // Final guard: eliminate any lingering named imports from /ns/core to avoid
441
+ // evaluation-time "does not provide an export named ..." in the device runtime.
442
+ try {
443
+ code = ensureDestructureCoreImports(code);
444
+ }
445
+ catch { }
446
+ // Boot-time module graph progress: while the app is still replacing
447
+ // the placeholder, emit lightweight progress updates as /ns/m app
448
+ // modules begin evaluating. The snippet is SELF-GATING (it no-ops
449
+ // once `__NS_HMR_BOOT_COMPLETE__` flips) so it is injected
450
+ // unconditionally — no boot-tagged URL needed. node_modules are
451
+ // deliberately skipped (the heartbeat's wall-clock axis covers
452
+ // vendor stretches; see startBootImportHeartbeat).
453
+ try {
454
+ if (!isNodeMod) {
455
+ const bootModuleLabel = String(spec || '').replace(/\\/g, '/');
456
+ const bootProgressSnippet = buildBootProgressSnippet(bootModuleLabel);
457
+ code = bootProgressSnippet + code;
458
+ code = hoistTopLevelStaticImports(code);
459
+ }
460
+ }
461
+ catch { }
462
+ // Dev-only: link-check static imports to surface missing bindings early
463
+ try {
464
+ const devCheck = process.env.NODE_ENV !== 'production';
465
+ if (devCheck) {
466
+ const ast = babelParse(code, {
467
+ sourceType: 'module',
468
+ plugins: MODULE_IMPORT_ANALYSIS_PLUGINS,
469
+ });
470
+ const imports = [];
471
+ babelTraverse(ast, {
472
+ ImportDeclaration(p) {
473
+ const src = p.node.source.value;
474
+ if (typeof src !== 'string')
475
+ return;
476
+ const wantsDefault = p.node.specifiers.some((s) => s.type === 'ImportDefaultSpecifier');
477
+ imports.push({ src, wantsDefault });
478
+ },
479
+ });
480
+ // Resolve and verify each static import that asks for default
481
+ for (const imp of imports) {
482
+ if (!imp.wantsDefault)
483
+ continue;
484
+ // Only check our served endpoints and app modules
485
+ if (/^https?:\/\/[^\s]+\/ns\//.test(imp.src) || /^https?:\/\/[^\s]+\/.+/.test(imp.src)) {
486
+ const u = new URL(imp.src, 'http://localhost');
487
+ // Fetch target module's sanitized code using server.transformRequest or by routing through our own endpoints heuristically
488
+ let targetCode = '';
489
+ try {
490
+ if (u.pathname.startsWith('/ns/asm')) {
491
+ // Reconstruct: call our own assembler handler to get code (preferred)
492
+ const target = await server.transformRequest(imp.src.replace(/^https?:\/\/[^/]+/, ''));
493
+ targetCode = target?.code || '';
494
+ }
495
+ else if (u.pathname.startsWith('/ns/sfc')) {
496
+ // Delegator re-exports default from /ns/asm — skip; assembler will be checked when imported by upstream
497
+ continue;
498
+ }
499
+ else if (u.pathname.startsWith('/ns/m')) {
500
+ // Resolve the import target through the SAME
501
+ // canonical pipeline the /ns/m route itself uses
502
+ // (websocket-ns-m-request.ts) instead of a third
503
+ // hand-rolled copy of candidate expansion.
504
+ try {
505
+ const targetContextResult = createNsMRequestContext(u.pathname, serverRoot, APP_VIRTUAL_WITH_SLASH, monorepoWorkspaceRoot);
506
+ if (targetContextResult.kind === 'context') {
507
+ const targetResolution = await resolveNsMTransformedModule({
508
+ context: targetContextResult.value,
509
+ transformRequest: async (url) => {
510
+ try {
511
+ return await server.transformRequest(url);
512
+ }
513
+ catch {
514
+ return null;
515
+ }
516
+ },
517
+ resolveId: resolvePluginContainerId,
518
+ loadVirtualId,
519
+ });
520
+ targetCode = targetResolution.transformed?.code || '';
521
+ }
522
+ }
523
+ catch { }
524
+ }
525
+ else if (u.pathname.startsWith('/ns/rt') || u.pathname.startsWith('/ns/core')) {
526
+ // Bridges export named/default as needed; skip default check
527
+ continue;
528
+ }
529
+ }
530
+ catch { }
531
+ if (!targetCode)
532
+ continue;
533
+ const hasDefault = /\bexport\s+default\b/.test(targetCode) || /export\s*\{\s*default\s*(?:as\s*default)?\s*\}/.test(targetCode);
534
+ if (!hasDefault) {
535
+ // CJS/UMD modules won't have `export default` — they get CJS-wrapped
536
+ // by the serving pipeline. Only warn, don't fatally block the importer.
537
+ const hasCjsPattern = /\bmodule\s*\.\s*exports\b/.test(targetCode) || /\bexports\s*\.\s*\w/.test(targetCode);
538
+ if (hasCjsPattern) {
539
+ if (verbose) {
540
+ console.warn(`[ns:m][link-check] CJS module without export default: ${u.pathname} (will be CJS-wrapped at serve time)`);
541
+ }
542
+ continue;
543
+ }
544
+ const msg = `[link-check] Missing default export in ${u.pathname}${u.search} (imported by ${resolvedCandidate || spec})`;
545
+ // Emit a module that throws to surface the exact offender
546
+ res.statusCode = 200;
547
+ res.end(`throw new Error(${JSON.stringify(msg)});\nexport {};`);
548
+ return;
549
+ }
550
+ }
551
+ }
552
+ }
553
+ }
554
+ catch (eLC) {
555
+ if (verbose) {
556
+ console.warn('[ns:m][link-check] failed', eLC?.message || eLC);
557
+ }
558
+ }
559
+ // Worker-realm marker propagation: every /ns/m child specifier in a
560
+ // `?ns_worker=1` response carries the marker too, so the ENTIRE
561
+ // worker module graph stays on per-module serving. Without this,
562
+ // a worker entry's transitive app modules (e.g. a utils barrel
563
+ // importing rxjs/@angular/core) resolve node_modules specs through
564
+ // the deps-bundle bridge, dragging the full dependency closure —
565
+ // Angular included — into the worker realm, where injectables
566
+ // reject the entry evaluation ("_PlatformLocation needs to be
567
+ // compiled using the JIT compiler").
568
+ if (isWorkerRealmRequest) {
569
+ code = code.replace(/((?:from\s*|import\s*\(?\s*|import\s+)["'])((?:https?:\/\/[^"']+)?\/ns\/m\/[^"']*?)(["'])/g, (full, pre, url, post) => {
570
+ if (/[?&]ns_worker=1/.test(url))
571
+ return full;
572
+ return `${pre}${url}${url.includes('?') ? '&' : '?'}ns_worker=1${post}`;
573
+ });
574
+ }
575
+ // Only fully successful serves are memoized — every early-return
576
+ // above (link-check throw module, 404 stubs, 500s) stays uncached.
577
+ if (memoKey) {
578
+ responseMemo.set(memoKey, code);
579
+ }
580
+ res.statusCode = 200;
581
+ res.end(code);
582
+ }
583
+ catch (e) {
584
+ console.warn('[sfc-asm] error serving', req.url, e && e.message ? e.message : e);
585
+ res.statusCode = 500;
586
+ res.end('export {}\n');
587
+ }
588
+ });
589
+ }
590
+ //# sourceMappingURL=websocket-ns-m.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-ns-m.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/websocket-ns-m.ts"],"names":[],"mappings":"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"}