@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,163 @@
1
+ import { createRequire } from 'node:module';
2
+ import { fileURLToPath } from 'node:url';
3
+ import { existsSync, readFileSync } from 'fs';
4
+ import * as path from 'path';
5
+ import babelCore from '@babel/core';
6
+ import { getPackageJson, getProjectFilePath } from '../../helpers/project.js';
7
+ import { REQUIRE_GUARD_SNIPPET } from './require-guard.js';
8
+ import { setDeviceModuleHeaders } from './route-helpers.js';
9
+ import { getServerOrigin } from './server-origin.js';
10
+ // Lazily loaded only for the source-tree fallback below (transform
11
+ // entry-runtime.ts on the fly when the built .js isn't present).
12
+ const pluginTransformTypescript = (() => {
13
+ const requireFromHere = createRequire(import.meta.url);
14
+ const loaded = requireFromHere('@babel/plugin-transform-typescript');
15
+ return loaded?.default || loaded;
16
+ })();
17
+ /**
18
+ * Registers the device bootstrap endpoints:
19
+ * - `GET /ns/entry-rt[?v=<ver>]` — serves the compiled entry runtime module
20
+ * (built `entry-runtime.js`, or a transformed `entry-runtime.ts` fallback), and
21
+ * - `GET /ns/entry[/<ver>]` — a script-safe wrapper that fetches the entry
22
+ * runtime and starts the app with `{ origin, main, ver }`.
23
+ */
24
+ export function registerNsEntryRoutes(server, options) {
25
+ const verbose = options.verbose;
26
+ const APP_ROOT_DIR = options.appRootDir;
27
+ const DEFAULT_MAIN_ENTRY = options.defaultMainEntry;
28
+ const DEFAULT_MAIN_ENTRY_VIRTUAL = options.defaultMainEntryVirtual;
29
+ const getGraphVersion = options.getGraphVersion;
30
+ // The compiled entry runtime is static for a dev-server session (a package
31
+ // rebuild restarts the server), so read/transform it once and reuse — avoids a
32
+ // `readFileSync` (and, in a source-tree checkout, a synchronous Babel
33
+ // transform) on every device boot.
34
+ let cachedEntryRtContent = null;
35
+ // 2.6a) Serve compiled entry runtime module: GET /ns/entry-rt[?v=<ver>]
36
+ server.middlewares.use(async (req, res, next) => {
37
+ try {
38
+ const urlObj = new URL(req.url || '', 'http://localhost');
39
+ if (!(urlObj.pathname === '/ns/entry-rt'))
40
+ return next();
41
+ if (verbose) {
42
+ const ra = req.socket?.remoteAddress;
43
+ const rp = req.socket?.remotePort;
44
+ console.log('[hmr-http] GET /ns/entry-rt from', ra + (rp ? ':' + rp : ''));
45
+ }
46
+ setDeviceModuleHeaders(res);
47
+ let content = cachedEntryRtContent || '';
48
+ if (!content) {
49
+ try {
50
+ const _req = createRequire(import.meta.url);
51
+ const entryRtPath = _req.resolve('@nativescript/vite/hmr/entry-runtime.js');
52
+ content = readFileSync(entryRtPath, 'utf-8');
53
+ }
54
+ catch (e) {
55
+ // .js not found (source tree without build) — transform .ts on the fly
56
+ try {
57
+ // fileURLToPath (not `new URL(...).pathname`) so the `/C:/…`
58
+ // leading-slash on Windows file URLs doesn't break the lookup.
59
+ const tsPath = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', 'entry-runtime.ts');
60
+ if (existsSync(tsPath)) {
61
+ const tsSource = readFileSync(tsPath, 'utf-8');
62
+ const result = babelCore.transformSync(tsSource, {
63
+ filename: tsPath,
64
+ plugins: [[pluginTransformTypescript, { isTSX: false, allowDeclareFields: true }]],
65
+ sourceType: 'module',
66
+ });
67
+ if (result?.code) {
68
+ content = result.code;
69
+ }
70
+ }
71
+ }
72
+ catch (e2) {
73
+ if (verbose)
74
+ console.warn('[hmr-http] entry-runtime.ts transform failed', e2);
75
+ }
76
+ }
77
+ // Cache only successful content; never cache the not-found fallback stub.
78
+ if (content) {
79
+ cachedEntryRtContent = content;
80
+ }
81
+ else {
82
+ content = 'export default async function start(){ console.error("[/ns/entry-rt] not found"); }\n';
83
+ }
84
+ }
85
+ if (verbose)
86
+ console.log('[hmr-http] /ns/entry-rt serving', content.length, 'bytes');
87
+ res.statusCode = 200;
88
+ res.end(content);
89
+ }
90
+ catch (e) {
91
+ console.warn('[hmr-http] /ns/entry-rt error', e);
92
+ next();
93
+ }
94
+ });
95
+ // 2.6b) HTTP-only app entry endpoint: GET /ns/entry[/<ver>]
96
+ // Thin wrapper that imports the compiled entry runtime and starts it with parameters.
97
+ server.middlewares.use(async (req, res, next) => {
98
+ try {
99
+ const urlObj = new URL(req.url || '', 'http://localhost');
100
+ if (!(urlObj.pathname === '/ns/entry' || /^\/ns\/entry\/[\d]+$/.test(urlObj.pathname)))
101
+ return next();
102
+ try {
103
+ if (verbose) {
104
+ const ra = req.socket?.remoteAddress;
105
+ const rp = req.socket?.remotePort;
106
+ console.log('[hmr-http] GET /ns/entry from', ra + (rp ? ':' + rp : ''));
107
+ }
108
+ }
109
+ catch { }
110
+ const verSeg = urlObj.pathname.replace(/^\/ns\/entry\/?/, '');
111
+ // A JavaScript MIME is required: the runtime refuses to evaluate a
112
+ // module response that carries none.
113
+ setDeviceModuleHeaders(res);
114
+ const ver = /^[0-9]+$/.test(verSeg) ? verSeg : String(getGraphVersion() || 0);
115
+ const origin = getServerOrigin(server) || `${urlObj.protocol}//${urlObj.host}`;
116
+ // Resolve app main entry to an absolute path-like key used by /ns/m
117
+ let mainEntry = '/';
118
+ try {
119
+ const pkg = getPackageJson();
120
+ const main = pkg?.main || DEFAULT_MAIN_ENTRY;
121
+ const abs = getProjectFilePath(main).replace(/\\/g, '/');
122
+ // Normalize to '/app/...'
123
+ const marker = `/${APP_ROOT_DIR}/`;
124
+ const idx = abs.indexOf(marker);
125
+ mainEntry = idx >= 0 ? abs.substring(idx) : DEFAULT_MAIN_ENTRY_VIRTUAL;
126
+ }
127
+ catch { }
128
+ // Build a tiny wrapper that imports the compiled entry runtime from the dev server
129
+ let code = REQUIRE_GUARD_SNIPPET +
130
+ `// [ns-entry][v${ver}] wrapper (script-safe) bytes will follow\n` +
131
+ `(async function(){\n` +
132
+ ` let origin = ${JSON.stringify(origin)}; const main = ${JSON.stringify(mainEntry)}; const __ns_graph_ver = ${JSON.stringify(ver)};\n` +
133
+ ` try { const __b = (globalThis && globalThis.__NS_ENTRY_BASE__) ? String(globalThis.__NS_ENTRY_BASE__) : ''; if (__b) { try { const __o = new URL(__b).origin; if (__o) origin = __o; } catch {} } } catch {}\n` +
134
+ ` const __VERBOSE__ = (typeof __NS_ENV_VERBOSE__ !== 'undefined' && __NS_ENV_VERBOSE__) || (globalThis && globalThis.process && globalThis.process.env && globalThis.process.env.verbose) || (globalThis && globalThis.__NS_ENV_VERBOSE__) || ${JSON.stringify(!!verbose)};\n` +
135
+ ` if (__VERBOSE__) console.info('[ns-entry][wrapper] start', { origin, main, ver: __ns_graph_ver });\n` +
136
+ ` async function __ns_import_entry_rt(u){\n` +
137
+ ` // Prefer fetch+eval script transformation to avoid module import limitations on device\n` +
138
+ ` try { const r = await fetch(u); const t = await r.text(); if (__VERBOSE__) console.info('[ns-entry][wrapper] entry-rt fetched bytes', (t&&t.length)||0);\n` +
139
+ ` // Transform 'export default function' or 'export default async function' into global assignment\n` +
140
+ ` let s = t.replace(/export\\s+default\\s+async\\s+function\\s+([A-Za-z0-9_$]+)?/,'globalThis.__NS_START_ENTRY__=async function $1')\n` +
141
+ ` .replace(/export\\s+default\\s+function\\s+([A-Za-z0-9_$]+)?/,'globalThis.__NS_START_ENTRY__=function $1');\n` +
142
+ ` // Fallback: if function-form replacements didn't run, handle expression default export too\n` +
143
+ ` if (String(s).indexOf('__NS_START_ENTRY__') === -1) { s = 'globalThis.__NS_START_ENTRY__=' + s.replace(/export\\s+default\\s*/,''); }\n` +
144
+ ` try { (0,eval)(s); } catch (ee) { console.error('[ns-entry][wrapper] eval entry-rt failed', ee && (ee.message||ee)); throw ee; }\n` +
145
+ ` const fn = globalThis.__NS_START_ENTRY__; if (!fn) { throw new Error('entry-rt missing __NS_START_ENTRY__'); }\n` +
146
+ ` return { default: fn };\n` +
147
+ ` } catch(e) { console.error('[ns-entry][wrapper] entry-rt fetch/eval failed', e && (e.message||e)); throw e; }\n` +
148
+ ` }\n` +
149
+ ` const __entryRtUrl = '/ns/entry-rt?v=' + String(__ns_graph_ver);\n` +
150
+ ` let __mod; try { __mod = await __ns_import_entry_rt(__entryRtUrl); if (__VERBOSE__) console.info('[ns-entry][wrapper] entry-rt ready'); } catch (e) { console.error('[ns-entry][wrapper] failed to prepare entry-rt', e && (e.message||e)); throw e; }\n` +
151
+ ` const startEntry = (__mod && (__mod.default || __mod));\n` +
152
+ ` try { await startEntry({ origin, main, ver: __ns_graph_ver, verbose: !!__VERBOSE__ }); if (__VERBOSE__) console.info('[ns-entry][wrapper] startEntry() resolved'); } catch (e) { console.error('[ns-entry][wrapper] startEntry() failed', e && (e.message||e)); throw e; }\n` +
153
+ `})();\n`;
154
+ code = code + `\n//# sourceURL=${origin}/ns/entry`;
155
+ res.statusCode = 200;
156
+ res.end(code);
157
+ }
158
+ catch (e) {
159
+ next();
160
+ }
161
+ });
162
+ }
163
+ //# sourceMappingURL=websocket-ns-entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-ns-entry.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/websocket-ns-entry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export declare function canonicalizeNsMImportPath(p: string): string;
2
+ export interface InboundLegacyNsMSpec {
3
+ cleanedSpec: string;
4
+ bootTaggedRequest: boolean;
5
+ forcedVer: string | null;
6
+ }
7
+ /**
8
+ * Single seam for BOTH directions of legacy `/ns/m` tag handling:
9
+ *
10
+ * - `'inbound-request-spec'`: strip `__ns_boot__`/`__ns_hmr__` decorations
11
+ * from a raw request spec, reporting what was stripped.
12
+ * - `'outbound-served-code'`: collapse every emitted `/ns/m` URL in served
13
+ * code to its canonical stable form (requires `origin`).
14
+ *
15
+ * Current servers never EMIT tags; both directions exist purely to tolerate
16
+ * stale cached device code.
17
+ */
18
+ export declare function collapseLegacyNsMTags(value: string, mode: 'inbound-request-spec'): InboundLegacyNsMSpec;
19
+ export declare function collapseLegacyNsMTags(value: string, mode: 'outbound-served-code', origin: string): string;
@@ -0,0 +1,115 @@
1
+ // Stable URL + explicit invalidation contract for `/ns/m/...` modules.
2
+ //
3
+ // Older versions emitted `/ns/m/__ns_hmr__/v<N>/<rel>` (and, for cold boot,
4
+ // `/ns/m/__ns_boot__/b1/<rel>`) URLs in served modules so that V8's HTTP
5
+ // module cache would see a fresh URL on each save and so that the server
6
+ // could detect boot-time requests. Both decorations are gone:
7
+ //
8
+ // - Freshness is driven by explicit eviction: the client calls
9
+ // ns:module `invalidateModules(urls)` with the server-computed eviction set,
10
+ // and the iOS runtime pairs that with an eviction-driven fetch nonce
11
+ // that defeats CFNetwork's HTTP cache. URLs stay STABLE across saves —
12
+ // module identity IS the canonical URL.
13
+ // - Boot-progress instrumentation is injected self-gating into every
14
+ // served /ns/m module (the snippet no-ops once
15
+ // `__NS_HMR_BOOT_COMPLETE__` flips), so no boot tag is needed.
16
+ //
17
+ // `canonicalizeNsMImportPath` collapses any tagged inbound URL shape
18
+ // (stale served code still cached on a device) back to the canonical
19
+ // stable form.
20
+ export function canonicalizeNsMImportPath(p) {
21
+ if (!p || !p.startsWith('/ns/m/')) {
22
+ return p;
23
+ }
24
+ // Collapse tagged boot+hmr, hmr-only, or boot-only prefixes back to the
25
+ // canonical `/ns/m/<rest>` form. Inputs we may still see from stale
26
+ // cached code include:
27
+ // * `/ns/m/__ns_boot__/b1/__ns_hmr__/v<N>/<rest>`
28
+ // * `/ns/m/__ns_hmr__/v<N>/<rest>` (any tag: `live`, `v<N>`, `n<N>`, …)
29
+ // * `/ns/m/__ns_boot__/b1/<rest>`
30
+ // * `/ns/m/<rest>` (canonical, passes through unchanged)
31
+ return p
32
+ .replace(/^\/ns\/m\/__ns_boot__\/b1\/__ns_hmr__\/[^/]+\//, '/ns/m/')
33
+ .replace(/^\/ns\/m\/__ns_hmr__\/[^/]+\//, '/ns/m/')
34
+ .replace(/^\/ns\/m\/__ns_boot__\/b1\//, '/ns/m/');
35
+ }
36
+ /**
37
+ * Inbound half of the legacy-tag contract: a raw `/ns/m` request spec (the
38
+ * path AFTER the `/ns/m` route prefix) may still carry `__ns_boot__/<tag>/`
39
+ * and/or `__ns_hmr__/<tag>/` decorations from stale cached device code.
40
+ * Strips them (repeatedly — the two can nest in either order) and reports
41
+ * what was seen.
42
+ */
43
+ function stripLegacyNsMRequestTags(spec) {
44
+ let cleanedSpec = spec || '';
45
+ let bootTaggedRequest = false;
46
+ let forcedVer = null;
47
+ try {
48
+ let changed = true;
49
+ while (changed) {
50
+ changed = false;
51
+ const bootMatch = cleanedSpec.match(/^\/?__ns_boot__\/[^\/]+(\/.*)?$/);
52
+ if (bootMatch) {
53
+ bootTaggedRequest = true;
54
+ cleanedSpec = bootMatch[1] || '/';
55
+ changed = true;
56
+ }
57
+ const hmrMatch = cleanedSpec.match(/^\/?__ns_hmr__\/([^\/]+)(\/.*)?$/);
58
+ if (hmrMatch) {
59
+ const tag = hmrMatch[1] || '';
60
+ if (tag) {
61
+ forcedVer = tag;
62
+ }
63
+ cleanedSpec = hmrMatch[2] || '/';
64
+ changed = true;
65
+ }
66
+ }
67
+ }
68
+ catch { }
69
+ return { cleanedSpec, bootTaggedRequest, forcedVer };
70
+ }
71
+ /**
72
+ * Outbound half of the legacy-tag contract: the `/ns/m` finalize step runs
73
+ * served code through this so every emitted `/ns/m/...` URL (in any import
74
+ * form) is the canonical stable shape from `canonicalizeNsMImportPath`, and
75
+ * `new URL(..., import.meta.url).href` forms are pinned to the absolute
76
+ * dev-server origin.
77
+ */
78
+ function collapseLegacyNsMTagsInServedCode(code, origin) {
79
+ const rewritePath = (p) => canonicalizeNsMImportPath(p);
80
+ // 1) Static imports: import ... from "/ns/m/..."
81
+ code = code.replace(/(from\s*["'])(\/ns\/m\/[^"'?]+)(["'])/g, (_m, a, p, b) => `${a}${rewritePath(p)}${b}`);
82
+ // 2) Side-effect imports: import "/ns/m/..."
83
+ code = code.replace(/(import\s*(?!\()\s*["'])(\/ns\/m\/[^"'?]+)(["'])/g, (_m, a, p, b) => `${a}${rewritePath(p)}${b}`);
84
+ // 3) Dynamic imports: import("/ns/m/...")
85
+ code = code.replace(/(import\(\s*["'])(\/ns\/m\/[^"'?]+)(["']\s*\))/g, (_m, a, p, b) => `${a}${rewritePath(p)}${b}`);
86
+ // 4) new URL("/ns/m/...", import.meta.url)
87
+ code = code.replace(/(new\s+URL\(\s*["'])(\/ns\/m\/[^"'?]+)(["']\s*,\s*import\.meta\.url\s*\))/g, (_m, a, p, b) => `${a}${rewritePath(p)}${b}`);
88
+ // 5) __ns_import(new URL('/ns/m/...', import.meta.url).href)
89
+ code = code.replace(/(new\s+URL\(\s*["'])(\/ns\/m\/[^"'?]+)(["']\s*,\s*import\.meta\.url\s*\)\.href)/g, (_m, a, p, b) => `${a}${rewritePath(p)}${b}`);
90
+ // 6) Force absolute HTTP for new URL('/ns/m/...', import.meta.url).href → canonical stable URL.
91
+ try {
92
+ code = code.replace(/new\s+URL\(\s*["'](\/ns\/m\/[^"'?]+)(?:\?[^"']*)?["']\s*,\s*import\.meta\.url\s*\)\.href/g, (_m, p1) => `${JSON.stringify(`${origin}${rewritePath(p1)}`)}`);
93
+ }
94
+ catch { }
95
+ // 7) SFC URLs (Vue) — canonical, like everything else. Freshness
96
+ // is driven by the Vue client evicting the SFC artifact URL set.
97
+ try {
98
+ code = code.replace(/new\s+URL\(\s*["']\/ns\/sfc(\/[^"'?]+)(?:\?[^"']*)?["']\s*,\s*import\.meta\.url\s*\)\.href/g, (_m, p1) => `${JSON.stringify(`${origin}/ns/sfc${p1}`)}`);
99
+ }
100
+ catch { }
101
+ return code;
102
+ }
103
+ export function collapseLegacyNsMTags(value, mode, origin) {
104
+ switch (mode) {
105
+ case 'inbound-request-spec':
106
+ return stripLegacyNsMRequestTags(value);
107
+ case 'outbound-served-code':
108
+ return collapseLegacyNsMTagsInServedCode(value, origin ?? '');
109
+ default: {
110
+ const exhaustive = mode;
111
+ throw new Error(`Unhandled collapseLegacyNsMTags mode: ${exhaustive}`);
112
+ }
113
+ }
114
+ }
115
+ //# sourceMappingURL=websocket-ns-m-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-ns-m-paths.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/websocket-ns-m-paths.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,EAAE;AACF,4EAA4E;AAC5E,yEAAyE;AACzE,yEAAyE;AACzE,8DAA8D;AAC9D,EAAE;AACF,iEAAiE;AACjE,iFAAiF;AACjF,yEAAyE;AACzE,2EAA2E;AAC3E,4CAA4C;AAC5C,uEAAuE;AACvE,mDAAmD;AACnD,mEAAmE;AACnE,EAAE;AACF,qEAAqE;AACrE,qEAAqE;AACrE,eAAe;AAEf,MAAM,UAAU,yBAAyB,CAAC,CAAS;IAClD,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,CAAC;IACV,CAAC;IAED,wEAAwE;IACxE,oEAAoE;IACpE,uBAAuB;IACvB,oDAAoD;IACpD,0EAA0E;IAC1E,oCAAoC;IACpC,2DAA2D;IAC3D,OAAO,CAAC;SACN,OAAO,CAAC,gDAAgD,EAAE,QAAQ,CAAC;SACnE,OAAO,CAAC,+BAA+B,EAAE,QAAQ,CAAC;SAClD,OAAO,CAAC,6BAA6B,EAAE,QAAQ,CAAC,CAAC;AACpD,CAAC;AAQD;;;;;;GAMG;AACH,SAAS,yBAAyB,CAAC,IAAY;IAC9C,IAAI,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,IAAI,SAAS,GAAkB,IAAI,CAAC;IAEpC,IAAI,CAAC;QACJ,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,OAAO,OAAO,EAAE,CAAC;YAChB,OAAO,GAAG,KAAK,CAAC;YAChB,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACvE,IAAI,SAAS,EAAE,CAAC;gBACf,iBAAiB,GAAG,IAAI,CAAC;gBACzB,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;gBAClC,OAAO,GAAG,IAAI,CAAC;YAChB,CAAC;YACD,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACvE,IAAI,QAAQ,EAAE,CAAC;gBACd,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC9B,IAAI,GAAG,EAAE,CAAC;oBACT,SAAS,GAAG,GAAG,CAAC;gBACjB,CAAC;gBACD,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;gBACjC,OAAO,GAAG,IAAI,CAAC;YAChB,CAAC;QACF,CAAC;IACF,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC;AACtD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iCAAiC,CAAC,IAAY,EAAE,MAAc;IACtE,MAAM,WAAW,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;IAChE,iDAAiD;IACjD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,wCAAwC,EAAE,CAAC,EAAU,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5I,6CAA6C;IAC7C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,mDAAmD,EAAE,CAAC,EAAU,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACvJ,0CAA0C;IAC1C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,iDAAiD,EAAE,CAAC,EAAU,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrJ,2CAA2C;IAC3C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,4EAA4E,EAAE,CAAC,EAAU,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChL,6DAA6D;IAC7D,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,kFAAkF,EAAE,CAAC,EAAU,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtL,gGAAgG;IAChG,IAAI,CAAC;QACJ,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,2FAA2F,EAAE,CAAC,EAAU,EAAE,EAAU,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClM,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,iEAAiE;IACjE,iEAAiE;IACjE,IAAI,CAAC;QACJ,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,6FAA6F,EAAE,CAAC,EAAU,EAAE,EAAU,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9L,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,IAAI,CAAC;AACb,CAAC;AAeD,MAAM,UAAU,qBAAqB,CAAC,KAAa,EAAE,IAAqD,EAAE,MAAe;IAC1H,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,sBAAsB;YAC1B,OAAO,yBAAyB,CAAC,KAAK,CAAC,CAAC;QACzC,KAAK,sBAAsB;YAC1B,OAAO,iCAAiC,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;QAC/D,OAAO,CAAC,CAAC,CAAC;YACT,MAAM,UAAU,GAAU,IAAI,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,yCAAyC,UAAU,EAAE,CAAC,CAAC;QACxE,CAAC;IACF,CAAC;AACF,CAAC"}
@@ -0,0 +1,46 @@
1
+ import type { TransformResult } from 'vite';
2
+ export interface NsMRequestContext {
3
+ requestUrl: string;
4
+ spec: string;
5
+ forcedVer: string | null;
6
+ bootTaggedRequest: boolean;
7
+ serverRoot: string;
8
+ /**
9
+ * Optional monorepo workspace root for the dev server. When the app
10
+ * lives under `apps/<name>/` inside a hoisted-`node_modules` workspace
11
+ * (Nx / Rush / Turborepo / pnpm / yarn workspaces / npm workspaces),
12
+ * `serverRoot` is the app dir but most packages live at the workspace
13
+ * root. Candidates that resolve there are routed through `/@fs/...`
14
+ * to bypass the package's `package.json#exports` gating which would
15
+ * otherwise refuse internal sub-paths like `css-tree/lib/syntax/...`.
16
+ */
17
+ workspaceRoot?: string | null;
18
+ candidates: string[];
19
+ transformCandidates: string[];
20
+ }
21
+ export type NsMRequestContextResult = {
22
+ kind: 'next';
23
+ } | {
24
+ kind: 'response';
25
+ statusCode: number;
26
+ code: string;
27
+ } | {
28
+ kind: 'context';
29
+ value: NsMRequestContext;
30
+ };
31
+ export interface ResolveNsMTransformedModuleOptions {
32
+ context: NsMRequestContext;
33
+ transformRequest: (url: string, timeoutMs?: number) => Promise<TransformResult | null>;
34
+ resolveId: (id: string) => Promise<string | null>;
35
+ /** Matches `pluginContainer.load`'s LoadResult (which includes `void`). */
36
+ loadVirtualId: (id: string) => Promise<string | {
37
+ code?: string;
38
+ } | TransformResult | null | void>;
39
+ timeoutMs?: number;
40
+ }
41
+ export interface NsMResolvedTransform {
42
+ transformed: TransformResult | null;
43
+ resolvedCandidate: string | null;
44
+ }
45
+ export declare function createNsMRequestContext(requestUrl: string, serverRoot: string, appVirtualWithSlash: string, workspaceRoot?: string | null): NsMRequestContextResult;
46
+ export declare function resolveNsMTransformedModule(options: ResolveNsMTransformedModuleOptions): Promise<NsMResolvedTransform>;
@@ -0,0 +1,197 @@
1
+ import * as path from 'path';
2
+ import { filterExistingNodeModulesTransformCandidates, getBlockedDeviceNodeModulesReason, resolveCandidateFilePath, tryReadRawExplicitJavaScriptModule } from './websocket-module-specifiers.js';
3
+ import { collapseLegacyNsMTags } from './websocket-ns-m-paths.js';
4
+ function normalizeAbsoluteFilesystemSpec(spec, serverRoot) {
5
+ const toPosix = (value) => value.replace(/\\/g, '/');
6
+ const rootPosix = toPosix(serverRoot);
7
+ const specPosix = toPosix(spec);
8
+ const isAbsoluteFilesystemPath = /^\//.test(specPosix) || /^[A-Za-z]:\//.test(spec);
9
+ if (!isAbsoluteFilesystemPath) {
10
+ return spec;
11
+ }
12
+ let relative = specPosix.startsWith(rootPosix) ? specPosix.slice(rootPosix.length) : path.posix.relative(rootPosix, specPosix);
13
+ if (relative.startsWith('..')) {
14
+ return spec;
15
+ }
16
+ if (!relative.startsWith('/')) {
17
+ relative = `/${relative}`;
18
+ }
19
+ return relative;
20
+ }
21
+ export function createNsMRequestContext(requestUrl, serverRoot, appVirtualWithSlash, workspaceRoot) {
22
+ try {
23
+ const urlObj = new URL(requestUrl || '', 'http://localhost');
24
+ if (!urlObj.pathname.startsWith('/ns/m')) {
25
+ return { kind: 'next' };
26
+ }
27
+ let spec = urlObj.searchParams.get('path') || '';
28
+ let forcedVer = urlObj.searchParams.get('v');
29
+ let bootTaggedRequest = false;
30
+ if (!spec) {
31
+ const base = '/ns/m';
32
+ const rest = urlObj.pathname.slice(base.length);
33
+ if (rest && rest !== '/') {
34
+ spec = rest;
35
+ }
36
+ }
37
+ if (spec === '/__invalid_at__.mjs' || spec === '__invalid_at__.mjs') {
38
+ return {
39
+ kind: 'response',
40
+ statusCode: 200,
41
+ code: "// invalid '@' import stub\nexport {}\n",
42
+ };
43
+ }
44
+ if (!spec) {
45
+ return {
46
+ kind: 'response',
47
+ statusCode: 200,
48
+ code: 'export {}\n',
49
+ };
50
+ }
51
+ spec = spec.replace(/[?#].*$/, '');
52
+ const decorated = collapseLegacyNsMTags(spec, 'inbound-request-spec');
53
+ spec = decorated.cleanedSpec;
54
+ bootTaggedRequest = decorated.bootTaggedRequest;
55
+ forcedVer || (forcedVer = decorated.forcedVer);
56
+ spec = normalizeAbsoluteFilesystemSpec(spec, serverRoot);
57
+ if (spec.startsWith('@/')) {
58
+ spec = appVirtualWithSlash + spec.slice(2);
59
+ }
60
+ if (spec.startsWith('./')) {
61
+ spec = spec.slice(1);
62
+ }
63
+ const blockedNodeModulesReason = getBlockedDeviceNodeModulesReason(spec);
64
+ if (blockedNodeModulesReason) {
65
+ return {
66
+ kind: 'response',
67
+ statusCode: 404,
68
+ code: `// [ns:m] blocked device import\nthrow new Error(${JSON.stringify(`[ns/m] ${blockedNodeModulesReason}`)});\nexport {};\n`,
69
+ };
70
+ }
71
+ if (!spec.startsWith('/')) {
72
+ spec = `/${spec}`;
73
+ }
74
+ const hasExt = /\.(ts|tsx|js|jsx|mjs|mts|cts|vue)$/i.test(spec);
75
+ const baseNoExt = hasExt ? spec.replace(/\.(ts|tsx|js|jsx|mjs|mts|cts)$/i, '') : spec;
76
+ const candidates = [...(hasExt ? [spec] : []), `${baseNoExt}.ts`, `${baseNoExt}.js`, `${baseNoExt}.tsx`, `${baseNoExt}.jsx`, `${baseNoExt}.mjs`, `${baseNoExt}.mts`, `${baseNoExt}.cts`, `${baseNoExt}.vue`, `${baseNoExt}/index.ts`, `${baseNoExt}/index.js`, `${baseNoExt}/index.tsx`, `${baseNoExt}/index.jsx`, `${baseNoExt}/index.mjs`];
77
+ const transformCandidates = filterExistingNodeModulesTransformCandidates(spec, candidates, serverRoot, workspaceRoot);
78
+ return {
79
+ kind: 'context',
80
+ value: {
81
+ requestUrl,
82
+ spec,
83
+ forcedVer,
84
+ bootTaggedRequest,
85
+ serverRoot,
86
+ workspaceRoot: workspaceRoot ?? null,
87
+ candidates,
88
+ transformCandidates,
89
+ },
90
+ };
91
+ }
92
+ catch {
93
+ return { kind: 'next' };
94
+ }
95
+ }
96
+ async function tryTransformRequest(transformRequest, url, timeoutMs) {
97
+ try {
98
+ return await transformRequest(url, timeoutMs);
99
+ }
100
+ catch {
101
+ return null;
102
+ }
103
+ }
104
+ function getLoadedCode(loadResult) {
105
+ if (!loadResult) {
106
+ return null;
107
+ }
108
+ if (typeof loadResult === 'string') {
109
+ return loadResult;
110
+ }
111
+ return typeof loadResult.code === 'string' ? loadResult.code : null;
112
+ }
113
+ export async function resolveNsMTransformedModule(options) {
114
+ const { context, transformRequest, resolveId, loadVirtualId, timeoutMs = 120000 } = options;
115
+ const { spec, serverRoot, workspaceRoot, transformCandidates } = context;
116
+ let transformed = null;
117
+ let resolvedCandidate = null;
118
+ if (spec.startsWith('/@id/')) {
119
+ transformed = await tryTransformRequest(transformRequest, spec, timeoutMs);
120
+ if (transformed?.code) {
121
+ return { transformed, resolvedCandidate };
122
+ }
123
+ try {
124
+ const rawId = spec.slice('/@id/'.length).replace(/__x00__/g, '\0');
125
+ const loadedCode = getLoadedCode(await loadVirtualId(rawId));
126
+ if (loadedCode) {
127
+ return {
128
+ transformed: { code: loadedCode },
129
+ resolvedCandidate: rawId,
130
+ };
131
+ }
132
+ }
133
+ catch { }
134
+ }
135
+ const rawExplicitModule = tryReadRawExplicitJavaScriptModule(spec, serverRoot);
136
+ if (rawExplicitModule) {
137
+ return {
138
+ transformed: { code: rawExplicitModule.code },
139
+ resolvedCandidate: rawExplicitModule.resolvedId,
140
+ };
141
+ }
142
+ for (const candidate of transformCandidates) {
143
+ transformed = await tryTransformRequest(transformRequest, candidate, timeoutMs);
144
+ if (transformed?.code) {
145
+ resolvedCandidate = candidate;
146
+ return { transformed, resolvedCandidate };
147
+ }
148
+ }
149
+ const resolvedId = await resolveId(spec);
150
+ if (resolvedId) {
151
+ transformed = await tryTransformRequest(transformRequest, resolvedId, timeoutMs);
152
+ if (transformed?.code) {
153
+ return { transformed, resolvedCandidate: resolvedId };
154
+ }
155
+ }
156
+ if (spec.includes('/node_modules/')) {
157
+ const nodeModulesIndex = spec.lastIndexOf('/node_modules/');
158
+ const bareSpecifier = spec.slice(nodeModulesIndex + '/node_modules/'.length);
159
+ if (bareSpecifier && !bareSpecifier.startsWith('.')) {
160
+ const resolvedBareId = await resolveId(bareSpecifier);
161
+ if (resolvedBareId) {
162
+ transformed = await tryTransformRequest(transformRequest, resolvedBareId, timeoutMs);
163
+ if (transformed?.code) {
164
+ return { transformed, resolvedCandidate: resolvedBareId };
165
+ }
166
+ }
167
+ }
168
+ }
169
+ const buildFsCandidate = (root) => {
170
+ const rootPosix = root.replace(/\\/g, '/').replace(/\/$/, '');
171
+ const absolutePosixPath = `${rootPosix}${spec.startsWith('/') ? '' : '/'}${spec}`;
172
+ return `/@fs${absolutePosixPath}`;
173
+ };
174
+ const fsRootsToTry = [serverRoot, ...(workspaceRoot && path.resolve(workspaceRoot) !== path.resolve(serverRoot) ? [workspaceRoot] : [])];
175
+ for (const root of fsRootsToTry) {
176
+ const fsId = buildFsCandidate(root);
177
+ if (resolveCandidateFilePath(fsId, serverRoot, workspaceRoot)) {
178
+ transformed = await tryTransformRequest(transformRequest, fsId, timeoutMs);
179
+ if (transformed?.code) {
180
+ return { transformed, resolvedCandidate: fsId };
181
+ }
182
+ }
183
+ }
184
+ for (const candidate of transformCandidates) {
185
+ const importHintCandidate = `${candidate}${candidate.includes('?') ? '&' : '?'}import`;
186
+ transformed = await tryTransformRequest(transformRequest, importHintCandidate, timeoutMs);
187
+ if (transformed?.code) {
188
+ resolvedCandidate = importHintCandidate;
189
+ return { transformed, resolvedCandidate };
190
+ }
191
+ }
192
+ return {
193
+ transformed: null,
194
+ resolvedCandidate,
195
+ };
196
+ }
197
+ //# sourceMappingURL=websocket-ns-m-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-ns-m-request.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/websocket-ns-m-request.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import type { TransformResult, ViteDevServer } from 'vite';
2
+ import { type DepsBundleService } from './deps-bundle.js';
3
+ import type { FrameworkServerStrategy } from './framework-strategy.js';
4
+ type SharedTransformRequestFn = (url: string, timeoutMs?: number) => Promise<TransformResult | null>;
5
+ type UpsertGraphModuleFn = (rawId: string, code: string, deps: string[], options?: {
6
+ bumpVersion?: boolean;
7
+ emitDeltaOnInsert?: boolean;
8
+ broadcastDelta?: boolean;
9
+ }) => void;
10
+ /**
11
+ * Plugin-closure dependencies the `/ns/m` device module server needs. The pure
12
+ * transform/codegen functions are imported directly from
13
+ * `websocket-device-transform.ts`; only genuine plugin state (graph version,
14
+ * strategy, shared transform runner, graph upsert) is injected here.
15
+ */
16
+ export interface RegisterNsModuleServerRouteOptions {
17
+ verbose: boolean;
18
+ appVirtualWithSlash: string;
19
+ sfcFileMap: Map<string, string>;
20
+ depFileMap: Map<string, string>;
21
+ getGraphVersion(): number;
22
+ getStrategy(): FrameworkServerStrategy;
23
+ sharedTransformRequest: SharedTransformRequestFn;
24
+ ensureInitialGraphPopulationStarted(server: ViteDevServer): void;
25
+ upsertGraphModule: UpsertGraphModuleFn;
26
+ /**
27
+ * Injectable deps-bundle service (testability seam). When omitted, the
28
+ * shared process-wide service is used — null when `NS_DEPS_PER_MODULE=1`
29
+ * forces per-module node_modules serving.
30
+ */
31
+ depsBundle?: DepsBundleService | null;
32
+ /**
33
+ * Live-broadcast gate for AnalogJS `/@ng/component` metadata fetches.
34
+ * When provided, only fetches whose `(c, t)` pair matches a recorded
35
+ * `angular:component-update` broadcast are delegated to Analog's
36
+ * middleware; everything else — most importantly the boot-time
37
+ * `<Class>_HmrLoad(Date.now())` fetch every compiled component issues on
38
+ * evaluation — is answered with the empty no-update stub. See the ledger
39
+ * in `websocket-angular-hot-update.ts` for the full failure mode this
40
+ * prevents (post-edit relaunch → boot-time `ɵɵreplaceMetadata` on the
41
+ * root component → white screen).
42
+ */
43
+ isLiveAngularComponentUpdateFetch?(componentId: string, timestamp: number): boolean;
44
+ }
45
+ /**
46
+ * Registers the `/ns/m/*` device module server: the HTTP endpoint every
47
+ * NativeScript device uses to fetch app/source modules (and AnalogJS Angular
48
+ * `/@ng/component` live-reload requests) as device-ready ESM. This is the
49
+ * single hottest route in the HMR server.
50
+ */
51
+ export declare function registerNsModuleServerRoute(server: ViteDevServer, options: RegisterNsModuleServerRouteOptions): void;
52
+ export {};