@nativescript/vite 8.0.0-alpha.6 → 8.0.0-alpha.61

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 (465) hide show
  1. package/README.md +51 -11
  2. package/bin/cli.cjs +8 -14
  3. package/configuration/angular.d.ts +34 -1
  4. package/configuration/angular.js +390 -165
  5. package/configuration/angular.js.map +1 -1
  6. package/configuration/base.js +244 -53
  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 +12 -93
  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-state.d.ts +8 -0
  19. package/helpers/app-css-state.js +8 -0
  20. package/helpers/app-css-state.js.map +1 -0
  21. package/helpers/bundler-context.d.ts +11 -0
  22. package/helpers/bundler-context.js +71 -0
  23. package/helpers/bundler-context.js.map +1 -0
  24. package/helpers/cli-flags.d.ts +12 -0
  25. package/helpers/cli-flags.js +34 -0
  26. package/helpers/cli-flags.js.map +1 -1
  27. package/helpers/css-platform-plugin.d.ts +14 -0
  28. package/helpers/css-platform-plugin.js +43 -25
  29. package/helpers/css-platform-plugin.js.map +1 -1
  30. package/helpers/dev-host.d.ts +360 -0
  31. package/helpers/dev-host.js +694 -0
  32. package/helpers/dev-host.js.map +1 -0
  33. package/helpers/dynamic-import-plugin.js +9 -4
  34. package/helpers/dynamic-import-plugin.js.map +1 -1
  35. package/helpers/esbuild-platform-resolver.js +4 -1
  36. package/helpers/esbuild-platform-resolver.js.map +1 -1
  37. package/helpers/external-configs.d.ts +10 -12
  38. package/helpers/external-configs.js +58 -35
  39. package/helpers/external-configs.js.map +1 -1
  40. package/helpers/global-defines.d.ts +100 -13
  41. package/helpers/global-defines.js +165 -28
  42. package/helpers/global-defines.js.map +1 -1
  43. package/helpers/hmr-scope.d.ts +26 -0
  44. package/helpers/hmr-scope.js +67 -0
  45. package/helpers/hmr-scope.js.map +1 -0
  46. package/helpers/init.js +0 -18
  47. package/helpers/init.js.map +1 -1
  48. package/helpers/logging.js +29 -1
  49. package/helpers/logging.js.map +1 -1
  50. package/helpers/main-entry.d.ts +4 -1
  51. package/helpers/main-entry.js +368 -53
  52. package/helpers/main-entry.js.map +1 -1
  53. package/helpers/nativeclass-esbuild-plugin.d.ts +2 -1
  54. package/helpers/nativeclass-esbuild-plugin.js +6 -1
  55. package/helpers/nativeclass-esbuild-plugin.js.map +1 -1
  56. package/helpers/nativeclass-transform.d.ts +13 -0
  57. package/helpers/nativeclass-transform.js +37 -7
  58. package/helpers/nativeclass-transform.js.map +1 -1
  59. package/helpers/nativeclass-transformer-plugin.d.ts +9 -2
  60. package/helpers/nativeclass-transformer-plugin.js +163 -15
  61. package/helpers/nativeclass-transformer-plugin.js.map +1 -1
  62. package/helpers/nativescript-package-resolver.js +10 -62
  63. package/helpers/nativescript-package-resolver.js.map +1 -1
  64. package/helpers/normalize-id.d.ts +42 -0
  65. package/helpers/normalize-id.js +60 -0
  66. package/helpers/normalize-id.js.map +1 -0
  67. package/helpers/ns-core-url.d.ts +29 -7
  68. package/helpers/ns-core-url.js +69 -12
  69. package/helpers/ns-core-url.js.map +1 -1
  70. package/helpers/optimize-deps.d.ts +16 -0
  71. package/helpers/optimize-deps.js +17 -0
  72. package/helpers/optimize-deps.js.map +1 -0
  73. package/helpers/package-platform-aliases.js +34 -49
  74. package/helpers/package-platform-aliases.js.map +1 -1
  75. package/helpers/platform-types.d.ts +2 -0
  76. package/helpers/platform-types.js +2 -0
  77. package/helpers/platform-types.js.map +1 -0
  78. package/helpers/postcss-platform-config.d.ts +17 -1
  79. package/helpers/postcss-platform-config.js +20 -37
  80. package/helpers/postcss-platform-config.js.map +1 -1
  81. package/helpers/project.d.ts +35 -0
  82. package/helpers/project.js +120 -2
  83. package/helpers/project.js.map +1 -1
  84. package/helpers/resolve-main-field-platform.d.ts +20 -0
  85. package/helpers/resolve-main-field-platform.js +49 -0
  86. package/helpers/resolve-main-field-platform.js.map +1 -0
  87. package/helpers/resolver.js +17 -2
  88. package/helpers/resolver.js.map +1 -1
  89. package/helpers/theme-core-plugins.js +1 -1
  90. package/helpers/theme-core-plugins.js.map +1 -1
  91. package/helpers/ts-config-paths.d.ts +32 -0
  92. package/helpers/ts-config-paths.js +156 -27
  93. package/helpers/ts-config-paths.js.map +1 -1
  94. package/helpers/typescript-check.d.ts +2 -1
  95. package/helpers/typescript-check.js +2 -2
  96. package/helpers/typescript-check.js.map +1 -1
  97. package/helpers/ui-registration.d.ts +21 -0
  98. package/helpers/ui-registration.js +156 -0
  99. package/helpers/ui-registration.js.map +1 -0
  100. package/helpers/utils.d.ts +9 -0
  101. package/helpers/utils.js +22 -2
  102. package/helpers/utils.js.map +1 -1
  103. package/helpers/vite-package-version.d.ts +7 -0
  104. package/helpers/vite-package-version.js +44 -0
  105. package/helpers/vite-package-version.js.map +1 -0
  106. package/helpers/workers.d.ts +48 -19
  107. package/helpers/workers.js +662 -13
  108. package/helpers/workers.js.map +1 -1
  109. package/hmr/client/css-handler.d.ts +2 -1
  110. package/hmr/client/css-handler.js +50 -26
  111. package/hmr/client/css-handler.js.map +1 -1
  112. package/hmr/client/css-update-overlay.d.ts +18 -0
  113. package/hmr/client/css-update-overlay.js +27 -0
  114. package/hmr/client/css-update-overlay.js.map +1 -0
  115. package/hmr/client/framework-client-strategy.d.ts +79 -0
  116. package/hmr/client/framework-client-strategy.js +19 -0
  117. package/hmr/client/framework-client-strategy.js.map +1 -0
  118. package/hmr/client/hmr-pending-overlay.d.ts +0 -14
  119. package/hmr/client/hmr-pending-overlay.js +14 -4
  120. package/hmr/client/hmr-pending-overlay.js.map +1 -1
  121. package/hmr/client/hot-context.d.ts +67 -0
  122. package/hmr/client/hot-context.js +284 -0
  123. package/hmr/client/hot-context.js.map +1 -0
  124. package/hmr/client/index.js +922 -273
  125. package/hmr/client/index.js.map +1 -1
  126. package/hmr/client/utils.d.ts +2 -1
  127. package/hmr/client/utils.js +111 -99
  128. package/hmr/client/utils.js.map +1 -1
  129. package/hmr/entry-runtime.d.ts +2 -1
  130. package/hmr/entry-runtime.js +279 -71
  131. package/hmr/entry-runtime.js.map +1 -1
  132. package/hmr/frameworks/angular/build/angular-linker.d.ts +12 -0
  133. package/hmr/frameworks/angular/build/angular-linker.js +109 -0
  134. package/hmr/frameworks/angular/build/angular-linker.js.map +1 -0
  135. package/hmr/frameworks/angular/build/inject-component-hmr-registration.d.ts +112 -0
  136. package/hmr/frameworks/angular/build/inject-component-hmr-registration.js +291 -0
  137. package/hmr/frameworks/angular/build/inject-component-hmr-registration.js.map +1 -0
  138. package/hmr/frameworks/angular/build/inject-hmr-vite-ignore.d.ts +75 -0
  139. package/hmr/frameworks/angular/build/inject-hmr-vite-ignore.js +221 -0
  140. package/hmr/frameworks/angular/build/inject-hmr-vite-ignore.js.map +1 -0
  141. package/{helpers/angular → hmr/frameworks/angular/build}/inline-decorator-component-templates.js +1 -170
  142. package/hmr/frameworks/angular/build/inline-decorator-component-templates.js.map +1 -0
  143. package/hmr/frameworks/angular/build/js-lexer.d.ts +4 -0
  144. package/{helpers/angular/synthesize-decorator-ctor-parameters.js → hmr/frameworks/angular/build/js-lexer.js} +22 -96
  145. package/hmr/frameworks/angular/build/js-lexer.js.map +1 -0
  146. package/hmr/frameworks/angular/build/shared-linker.d.ts +39 -0
  147. package/hmr/frameworks/angular/build/shared-linker.js +128 -0
  148. package/hmr/frameworks/angular/build/shared-linker.js.map +1 -0
  149. package/hmr/frameworks/angular/build/synthesize-decorator-ctor-parameters.js +88 -0
  150. package/hmr/frameworks/angular/build/synthesize-decorator-ctor-parameters.js.map +1 -0
  151. package/{helpers/angular → hmr/frameworks/angular/build}/synthesize-injectable-factories.js +1 -174
  152. package/hmr/frameworks/angular/build/synthesize-injectable-factories.js.map +1 -0
  153. package/{helpers/angular → hmr/frameworks/angular/build}/util.d.ts +1 -0
  154. package/hmr/frameworks/angular/build/util.js +155 -0
  155. package/hmr/frameworks/angular/build/util.js.map +1 -0
  156. package/hmr/frameworks/angular/client/index.js +542 -175
  157. package/hmr/frameworks/angular/client/index.js.map +1 -1
  158. package/hmr/frameworks/angular/client/strategy.d.ts +9 -0
  159. package/hmr/frameworks/angular/client/strategy.js +19 -0
  160. package/hmr/frameworks/angular/client/strategy.js.map +1 -0
  161. package/hmr/frameworks/angular/server/angular-root-component.d.ts +79 -0
  162. package/hmr/frameworks/angular/server/angular-root-component.js +149 -0
  163. package/hmr/frameworks/angular/server/angular-root-component.js.map +1 -0
  164. package/hmr/frameworks/angular/server/linker.js +1 -4
  165. package/hmr/frameworks/angular/server/linker.js.map +1 -1
  166. package/hmr/frameworks/angular/server/strategy.js +458 -12
  167. package/hmr/frameworks/angular/server/strategy.js.map +1 -1
  168. package/hmr/{server → frameworks/angular/server}/websocket-angular-entry.js +2 -2
  169. package/hmr/frameworks/angular/server/websocket-angular-entry.js.map +1 -0
  170. package/hmr/{server → frameworks/angular/server}/websocket-angular-hot-update.d.ts +14 -11
  171. package/hmr/{server → frameworks/angular/server}/websocket-angular-hot-update.js +108 -111
  172. package/hmr/frameworks/angular/server/websocket-angular-hot-update.js.map +1 -0
  173. package/hmr/frameworks/react/server/strategy.d.ts +2 -0
  174. package/hmr/frameworks/react/server/strategy.js +230 -0
  175. package/hmr/frameworks/react/server/strategy.js.map +1 -0
  176. package/hmr/frameworks/solid/build/solid-jsx-deps.d.ts +15 -0
  177. package/hmr/frameworks/solid/build/solid-jsx-deps.js +178 -0
  178. package/hmr/frameworks/solid/build/solid-jsx-deps.js.map +1 -0
  179. package/hmr/frameworks/solid/client/app-runtime.d.ts +68 -0
  180. package/hmr/frameworks/solid/client/app-runtime.js +246 -0
  181. package/hmr/frameworks/solid/client/app-runtime.js.map +1 -0
  182. package/hmr/frameworks/solid/server/strategy.js +291 -16
  183. package/hmr/frameworks/solid/server/strategy.js.map +1 -1
  184. package/hmr/frameworks/typescript/server/strategy.js +38 -14
  185. package/hmr/frameworks/typescript/server/strategy.js.map +1 -1
  186. package/hmr/frameworks/vue/client/dep-propagation.d.ts +44 -0
  187. package/hmr/frameworks/vue/client/dep-propagation.js +148 -0
  188. package/hmr/frameworks/vue/client/dep-propagation.js.map +1 -0
  189. package/hmr/frameworks/vue/client/index.d.ts +9 -0
  190. package/hmr/frameworks/vue/client/index.js +251 -247
  191. package/hmr/frameworks/vue/client/index.js.map +1 -1
  192. package/hmr/frameworks/vue/client/strategy.d.ts +33 -0
  193. package/hmr/frameworks/vue/client/strategy.js +157 -0
  194. package/hmr/frameworks/vue/client/strategy.js.map +1 -0
  195. package/hmr/frameworks/vue/client/vue-sfc-update-overlay.d.ts +49 -0
  196. package/hmr/frameworks/vue/client/vue-sfc-update-overlay.js +142 -0
  197. package/hmr/frameworks/vue/client/vue-sfc-update-overlay.js.map +1 -0
  198. package/hmr/frameworks/vue/server/compiler.d.ts +3 -1
  199. package/hmr/frameworks/vue/server/compiler.js +3 -1
  200. package/hmr/frameworks/vue/server/compiler.js.map +1 -1
  201. package/hmr/frameworks/vue/server/sfc-route-assemble.d.ts +7 -0
  202. package/hmr/frameworks/vue/server/sfc-route-assemble.js +823 -0
  203. package/hmr/frameworks/vue/server/sfc-route-assemble.js.map +1 -0
  204. package/hmr/frameworks/vue/server/sfc-route-meta.d.ts +7 -0
  205. package/hmr/frameworks/vue/server/sfc-route-meta.js +80 -0
  206. package/hmr/frameworks/vue/server/sfc-route-meta.js.map +1 -0
  207. package/hmr/frameworks/vue/server/sfc-route-serve.d.ts +8 -0
  208. package/hmr/frameworks/vue/server/sfc-route-serve.js +462 -0
  209. package/hmr/frameworks/vue/server/sfc-route-serve.js.map +1 -0
  210. package/hmr/frameworks/vue/server/sfc-route-shared.d.ts +45 -0
  211. package/hmr/frameworks/vue/server/sfc-route-shared.js +105 -0
  212. package/hmr/frameworks/vue/server/sfc-route-shared.js.map +1 -0
  213. package/hmr/frameworks/vue/server/strategy.d.ts +35 -0
  214. package/hmr/frameworks/vue/server/strategy.js +286 -7
  215. package/hmr/frameworks/vue/server/strategy.js.map +1 -1
  216. package/hmr/frameworks/vue/server/websocket-sfc.d.ts +15 -0
  217. package/hmr/frameworks/vue/server/websocket-sfc.js +20 -0
  218. package/hmr/frameworks/vue/server/websocket-sfc.js.map +1 -0
  219. package/hmr/helpers/ast-normalizer.d.ts +3 -1
  220. package/hmr/helpers/ast-normalizer.js +77 -10
  221. package/hmr/helpers/ast-normalizer.js.map +1 -1
  222. package/hmr/helpers/cjs-named-exports.d.ts +23 -0
  223. package/hmr/helpers/cjs-named-exports.js +152 -0
  224. package/hmr/helpers/cjs-named-exports.js.map +1 -0
  225. package/hmr/helpers/package-exports.d.ts +16 -0
  226. package/hmr/helpers/package-exports.js +396 -0
  227. package/hmr/helpers/package-exports.js.map +1 -0
  228. package/hmr/helpers/vendor-rewrite.d.ts +1 -1
  229. package/hmr/helpers/vendor-rewrite.js +5 -3
  230. package/hmr/helpers/vendor-rewrite.js.map +1 -1
  231. package/hmr/server/boot-archive-route.d.ts +40 -0
  232. package/hmr/server/boot-archive-route.js +154 -0
  233. package/hmr/server/boot-archive-route.js.map +1 -0
  234. package/hmr/server/boot-closure-route.d.ts +49 -0
  235. package/hmr/server/boot-closure-route.js +144 -0
  236. package/hmr/server/boot-closure-route.js.map +1 -0
  237. package/hmr/server/boot-recording.d.ts +58 -0
  238. package/hmr/server/boot-recording.js +228 -0
  239. package/hmr/server/boot-recording.js.map +1 -0
  240. package/hmr/server/constants.js +20 -5
  241. package/hmr/server/constants.js.map +1 -1
  242. package/hmr/server/core-bundle.d.ts +140 -0
  243. package/hmr/server/core-bundle.js +614 -0
  244. package/hmr/server/core-bundle.js.map +1 -0
  245. package/hmr/server/core-sanitize.d.ts +86 -7
  246. package/hmr/server/core-sanitize.js +170 -45
  247. package/hmr/server/core-sanitize.js.map +1 -1
  248. package/hmr/server/css-device-module.d.ts +28 -0
  249. package/hmr/server/css-device-module.js +44 -0
  250. package/hmr/server/css-device-module.js.map +1 -0
  251. package/hmr/server/deps-bundle.d.ts +218 -0
  252. package/hmr/server/deps-bundle.js +998 -0
  253. package/hmr/server/deps-bundle.js.map +1 -0
  254. package/hmr/server/device-transform-helpers.d.ts +24 -0
  255. package/hmr/server/device-transform-helpers.js +408 -0
  256. package/hmr/server/device-transform-helpers.js.map +1 -0
  257. package/hmr/server/framework-strategy.d.ts +113 -11
  258. package/hmr/server/hmr-module-graph.d.ts +37 -0
  259. package/hmr/server/hmr-module-graph.js +215 -0
  260. package/hmr/server/hmr-module-graph.js.map +1 -0
  261. package/hmr/server/import-map.d.ts +13 -4
  262. package/hmr/server/import-map.js +94 -47
  263. package/hmr/server/import-map.js.map +1 -1
  264. package/hmr/server/index.js +7 -16
  265. package/hmr/server/index.js.map +1 -1
  266. package/hmr/server/ns-core-cjs-shape.d.ts +2 -4
  267. package/hmr/server/ns-core-cjs-shape.js +4 -6
  268. package/hmr/server/ns-core-cjs-shape.js.map +1 -1
  269. package/hmr/server/ns-m-response-memo.d.ts +10 -0
  270. package/hmr/server/ns-m-response-memo.js +33 -0
  271. package/hmr/server/ns-m-response-memo.js.map +1 -0
  272. package/hmr/server/ns-rt-bridge.d.ts +51 -0
  273. package/hmr/server/ns-rt-bridge.js +131 -0
  274. package/hmr/server/ns-rt-bridge.js.map +1 -0
  275. package/hmr/server/ns-rt-route.d.ts +5 -0
  276. package/hmr/server/ns-rt-route.js +39 -0
  277. package/hmr/server/ns-rt-route.js.map +1 -0
  278. package/hmr/server/perf-instrumentation.d.ts +6 -10
  279. package/hmr/server/perf-instrumentation.js +5 -6
  280. package/hmr/server/perf-instrumentation.js.map +1 -1
  281. package/hmr/server/process-code-for-device.d.ts +30 -0
  282. package/hmr/server/process-code-for-device.js +791 -0
  283. package/hmr/server/process-code-for-device.js.map +1 -0
  284. package/hmr/server/require-guard.d.ts +1 -0
  285. package/hmr/server/require-guard.js +12 -0
  286. package/hmr/server/require-guard.js.map +1 -0
  287. package/hmr/server/rewrite-imports.d.ts +2 -0
  288. package/hmr/server/rewrite-imports.js +638 -0
  289. package/hmr/server/rewrite-imports.js.map +1 -0
  290. package/hmr/server/route-helpers.d.ts +7 -0
  291. package/hmr/server/route-helpers.js +13 -0
  292. package/hmr/server/route-helpers.js.map +1 -0
  293. package/hmr/server/server-origin.d.ts +2 -0
  294. package/hmr/server/server-origin.js +83 -0
  295. package/hmr/server/server-origin.js.map +1 -0
  296. package/hmr/server/shared-transform-request.js +1 -2
  297. package/hmr/server/shared-transform-request.js.map +1 -1
  298. package/hmr/server/transform-cache-invalidation.d.ts +37 -0
  299. package/hmr/server/transform-cache-invalidation.js +156 -0
  300. package/hmr/server/transform-cache-invalidation.js.map +1 -0
  301. package/hmr/server/vendor-bare-module-shims.d.ts +4 -0
  302. package/hmr/server/vendor-bare-module-shims.js +80 -0
  303. package/hmr/server/vendor-bare-module-shims.js.map +1 -0
  304. package/hmr/server/vite-plugin.d.ts +1 -0
  305. package/hmr/server/vite-plugin.js +180 -54
  306. package/hmr/server/vite-plugin.js.map +1 -1
  307. package/hmr/server/websocket-core-bridge.d.ts +51 -4
  308. package/hmr/server/websocket-core-bridge.js +62 -54
  309. package/hmr/server/websocket-core-bridge.js.map +1 -1
  310. package/hmr/server/websocket-css-hot-update.d.ts +33 -0
  311. package/hmr/server/websocket-css-hot-update.js +65 -0
  312. package/hmr/server/websocket-css-hot-update.js.map +1 -0
  313. package/hmr/server/websocket-device-transform.d.ts +3 -0
  314. package/hmr/server/websocket-device-transform.js +7 -0
  315. package/hmr/server/websocket-device-transform.js.map +1 -0
  316. package/hmr/server/websocket-hmr-pending.d.ts +3 -9
  317. package/hmr/server/websocket-hmr-pending.js +1 -1
  318. package/hmr/server/websocket-hmr-pending.js.map +1 -1
  319. package/hmr/server/websocket-hot-update.d.ts +77 -0
  320. package/hmr/server/websocket-hot-update.js +360 -0
  321. package/hmr/server/websocket-hot-update.js.map +1 -0
  322. package/hmr/server/websocket-import-map-route.d.ts +15 -0
  323. package/hmr/server/websocket-import-map-route.js +50 -0
  324. package/hmr/server/websocket-import-map-route.js.map +1 -0
  325. package/hmr/server/websocket-module-bindings.js +3 -3
  326. package/hmr/server/websocket-module-bindings.js.map +1 -1
  327. package/hmr/server/websocket-module-specifiers.d.ts +66 -2
  328. package/hmr/server/websocket-module-specifiers.js +191 -20
  329. package/hmr/server/websocket-module-specifiers.js.map +1 -1
  330. package/hmr/server/websocket-ns-core.d.ts +34 -0
  331. package/hmr/server/websocket-ns-core.js +414 -0
  332. package/hmr/server/websocket-ns-core.js.map +1 -0
  333. package/hmr/server/websocket-ns-entry.d.ts +21 -0
  334. package/hmr/server/websocket-ns-entry.js +164 -0
  335. package/hmr/server/websocket-ns-entry.js.map +1 -0
  336. package/hmr/server/websocket-ns-m-paths.d.ts +1 -3
  337. package/hmr/server/websocket-ns-m-paths.js +25 -82
  338. package/hmr/server/websocket-ns-m-paths.js.map +1 -1
  339. package/hmr/server/websocket-ns-m-request.d.ts +11 -1
  340. package/hmr/server/websocket-ns-m-request.js +17 -9
  341. package/hmr/server/websocket-ns-m-request.js.map +1 -1
  342. package/hmr/server/websocket-ns-m.d.ts +52 -0
  343. package/hmr/server/websocket-ns-m.js +835 -0
  344. package/hmr/server/websocket-ns-m.js.map +1 -0
  345. package/hmr/server/websocket-served-module-helpers.d.ts +50 -4
  346. package/hmr/server/websocket-served-module-helpers.js +384 -86
  347. package/hmr/server/websocket-served-module-helpers.js.map +1 -1
  348. package/hmr/server/websocket-txn.js +6 -9
  349. package/hmr/server/websocket-txn.js.map +1 -1
  350. package/hmr/server/websocket-vendor-unifier.d.ts +0 -1
  351. package/hmr/server/websocket-vendor-unifier.js +4 -9
  352. package/hmr/server/websocket-vendor-unifier.js.map +1 -1
  353. package/hmr/server/websocket.d.ts +7 -39
  354. package/hmr/server/websocket.js +643 -6716
  355. package/hmr/server/websocket.js.map +1 -1
  356. package/hmr/shared/ns-globals.d.ts +108 -0
  357. package/hmr/shared/ns-globals.js +28 -0
  358. package/hmr/shared/ns-globals.js.map +1 -0
  359. package/hmr/shared/protocol.d.ts +145 -0
  360. package/hmr/shared/protocol.js +28 -0
  361. package/hmr/shared/protocol.js.map +1 -0
  362. package/hmr/shared/runtime/boot-archive-format.d.ts +16 -0
  363. package/hmr/shared/runtime/boot-archive-format.js +31 -0
  364. package/hmr/shared/runtime/boot-archive-format.js.map +1 -0
  365. package/hmr/shared/runtime/boot-complete.d.ts +14 -0
  366. package/hmr/shared/runtime/boot-complete.js +32 -0
  367. package/hmr/shared/runtime/boot-complete.js.map +1 -0
  368. package/hmr/shared/runtime/boot-placeholder-ui.d.ts +69 -0
  369. package/hmr/shared/runtime/boot-placeholder-ui.js +101 -0
  370. package/hmr/shared/runtime/boot-placeholder-ui.js.map +1 -0
  371. package/hmr/shared/runtime/boot-progress.d.ts +44 -0
  372. package/hmr/shared/runtime/boot-progress.js +134 -0
  373. package/hmr/shared/runtime/boot-progress.js.map +1 -0
  374. package/hmr/shared/runtime/boot-timeline.d.ts +2 -1
  375. package/hmr/shared/runtime/boot-timeline.js +9 -22
  376. package/hmr/shared/runtime/boot-timeline.js.map +1 -1
  377. package/hmr/shared/runtime/browser-runtime-contract.d.ts +53 -22
  378. package/hmr/shared/runtime/browser-runtime-contract.js +6 -9
  379. package/hmr/shared/runtime/browser-runtime-contract.js.map +1 -1
  380. package/hmr/shared/runtime/dev-overlay-snapshots.d.ts +31 -0
  381. package/hmr/shared/runtime/dev-overlay-snapshots.js +324 -0
  382. package/hmr/shared/runtime/dev-overlay-snapshots.js.map +1 -0
  383. package/hmr/shared/runtime/dev-overlay.d.ts +76 -30
  384. package/hmr/shared/runtime/dev-overlay.js +767 -408
  385. package/hmr/shared/runtime/dev-overlay.js.map +1 -1
  386. package/hmr/shared/runtime/global-scope.d.ts +18 -0
  387. package/hmr/shared/runtime/global-scope.js +21 -0
  388. package/hmr/shared/runtime/global-scope.js.map +1 -0
  389. package/hmr/shared/runtime/hooks.js +2 -1
  390. package/hmr/shared/runtime/hooks.js.map +1 -1
  391. package/hmr/shared/runtime/http-only-boot.js +7 -6
  392. package/hmr/shared/runtime/http-only-boot.js.map +1 -1
  393. package/hmr/shared/runtime/module-provenance.js +4 -6
  394. package/hmr/shared/runtime/module-provenance.js.map +1 -1
  395. package/hmr/shared/runtime/root-placeholder-view.d.ts +19 -0
  396. package/hmr/shared/runtime/root-placeholder-view.js +311 -0
  397. package/hmr/shared/runtime/root-placeholder-view.js.map +1 -0
  398. package/hmr/shared/runtime/root-placeholder.js +398 -204
  399. package/hmr/shared/runtime/root-placeholder.js.map +1 -1
  400. package/hmr/shared/runtime/session-bootstrap.js +274 -55
  401. package/hmr/shared/runtime/session-bootstrap.js.map +1 -1
  402. package/hmr/shared/runtime/vendor-bootstrap.js +3 -10
  403. package/hmr/shared/runtime/vendor-bootstrap.js.map +1 -1
  404. package/hmr/shared/vendor/manifest-collect.d.ts +4 -0
  405. package/hmr/shared/vendor/manifest-collect.js +549 -0
  406. package/hmr/shared/vendor/manifest-collect.js.map +1 -0
  407. package/hmr/shared/vendor/manifest-loader.d.ts +2 -1
  408. package/hmr/shared/vendor/manifest-loader.js +5 -3
  409. package/hmr/shared/vendor/manifest-loader.js.map +1 -1
  410. package/hmr/shared/vendor/manifest.d.ts +1 -7
  411. package/hmr/shared/vendor/manifest.js +136 -825
  412. package/hmr/shared/vendor/manifest.js.map +1 -1
  413. package/hmr/shared/vendor/registry.d.ts +2 -0
  414. package/hmr/shared/vendor/registry.js +14 -0
  415. package/hmr/shared/vendor/registry.js.map +1 -1
  416. package/hmr/shared/vendor/vendor-device-shim.d.ts +1 -0
  417. package/hmr/shared/vendor/vendor-device-shim.js +208 -0
  418. package/hmr/shared/vendor/vendor-device-shim.js.map +1 -0
  419. package/hmr/shared/vendor/vendor-esbuild-plugins.d.ts +76 -0
  420. package/hmr/shared/vendor/vendor-esbuild-plugins.js +401 -0
  421. package/hmr/shared/vendor/vendor-esbuild-plugins.js.map +1 -0
  422. package/hmr/vendor-bootstrap.d.ts +1 -3
  423. package/hmr/vendor-bootstrap.js +4 -6
  424. package/hmr/vendor-bootstrap.js.map +1 -1
  425. package/index.d.ts +1 -0
  426. package/index.js +5 -0
  427. package/index.js.map +1 -1
  428. package/package.json +65 -11
  429. package/runtime/core-aliases-early.js +25 -55
  430. package/runtime/core-aliases-early.js.map +1 -1
  431. package/shims/react-jsx-runtime.d.ts +4 -0
  432. package/shims/react-jsx-runtime.js +61 -0
  433. package/shims/react-jsx-runtime.js.map +1 -0
  434. package/helpers/angular/angular-linker.d.ts +0 -13
  435. package/helpers/angular/angular-linker.js +0 -194
  436. package/helpers/angular/angular-linker.js.map +0 -1
  437. package/helpers/angular/inline-decorator-component-templates.js.map +0 -1
  438. package/helpers/angular/shared-linker.d.ts +0 -11
  439. package/helpers/angular/shared-linker.js +0 -75
  440. package/helpers/angular/shared-linker.js.map +0 -1
  441. package/helpers/angular/synthesize-decorator-ctor-parameters.js.map +0 -1
  442. package/helpers/angular/synthesize-injectable-factories.js.map +0 -1
  443. package/helpers/angular/util.js +0 -67
  444. package/helpers/angular/util.js.map +0 -1
  445. package/helpers/prelink-angular.d.ts +0 -2
  446. package/helpers/prelink-angular.js +0 -117
  447. package/helpers/prelink-angular.js.map +0 -1
  448. package/hmr/server/websocket-angular-entry.js.map +0 -1
  449. package/hmr/server/websocket-angular-hot-update.js.map +0 -1
  450. package/hmr/server/websocket-ns-m-finalize.d.ts +0 -22
  451. package/hmr/server/websocket-ns-m-finalize.js +0 -88
  452. package/hmr/server/websocket-ns-m-finalize.js.map +0 -1
  453. package/hmr/server/websocket-runtime-compat.d.ts +0 -19
  454. package/hmr/server/websocket-runtime-compat.js +0 -286
  455. package/hmr/server/websocket-runtime-compat.js.map +0 -1
  456. package/hmr/server/websocket-vue-sfc.d.ts +0 -27
  457. package/hmr/server/websocket-vue-sfc.js +0 -1114
  458. package/hmr/server/websocket-vue-sfc.js.map +0 -1
  459. package/transformers/NativeClass/index.d.ts +0 -2
  460. package/transformers/NativeClass/index.js +0 -222
  461. package/transformers/NativeClass/index.js.map +0 -1
  462. /package/{helpers/angular → hmr/frameworks/angular/build}/inline-decorator-component-templates.d.ts +0 -0
  463. /package/{helpers/angular → hmr/frameworks/angular/build}/synthesize-decorator-ctor-parameters.d.ts +0 -0
  464. /package/{helpers/angular → hmr/frameworks/angular/build}/synthesize-injectable-factories.d.ts +0 -0
  465. /package/hmr/{server → frameworks/angular/server}/websocket-angular-entry.d.ts +0 -0
@@ -0,0 +1,396 @@
1
+ // Static export-surface enumerator for the single-realm HTTP-ESM bridge.
2
+ //
3
+ // The HMR runtime serves canonical bridge specifiers (e.g. `/ns/rt` for
4
+ // `nativescript-vue`) that fan out to the device's vendor registry so that
5
+ // app code, plugins, and the vendor bundle itself share one module record
6
+ // per package. The bridge module must therefore re-export every public
7
+ // symbol the underlying package offers — otherwise consumers fall back to
8
+ // `undefined` for any export the bridge author forgot to enumerate, and the
9
+ // failure only surfaces at the call site (often deep inside a UI event
10
+ // handler) as `TypeError: <name> is not a function`.
11
+ //
12
+ // Hand-curated re-export lists are the source of that bug class. This
13
+ // helper replaces them with a deterministic walk of the package's static
14
+ // ESM export graph:
15
+ //
16
+ // 1. Resolve the package's `main` entry from the project's `node_modules`.
17
+ // 2. Parse with Babel and collect every named export — both inline
18
+ // (`export const x = …`, `export function y() {}`, `export { z }`) and
19
+ // re-exported (`export { a, b as c } from './foo'`).
20
+ // 3. Recurse into `export * from <spec>`, following both relative paths
21
+ // and bare package specifiers (so `export * from '@vue/runtime-core'`
22
+ // contributes the full Vue runtime API too).
23
+ // 4. Cache the result by `${projectRoot}::${packageId}` — the walk
24
+ // touches dozens of files for `nativescript-vue` and we want one walk
25
+ // per dev session, not per request.
26
+ //
27
+ // The walker is intentionally permissive: parse errors and unresolvable
28
+ // specifiers are swallowed (continue with what we have). The caller decides
29
+ // what to do if the surface comes back empty (typically: fall back to a
30
+ // known-good baseline list rather than emit a stub bridge).
31
+ import { parse as babelParse } from '@babel/parser';
32
+ import { readFileSync, existsSync, realpathSync } from 'fs';
33
+ import path from 'path';
34
+ import { createRequire } from 'node:module';
35
+ const cache = new Map();
36
+ /**
37
+ * Clear the cache. Tests use this to assert determinism; production code
38
+ * never needs it (the cache is intentionally process-lifetime).
39
+ */
40
+ export function __clearPackageExportsCache() {
41
+ cache.clear();
42
+ }
43
+ export function enumeratePackageExports(packageId, projectRoot) {
44
+ const root = path.resolve(projectRoot || process.cwd());
45
+ const cacheKey = `${root}::${packageId}`;
46
+ const cached = cache.get(cacheKey);
47
+ if (cached)
48
+ return cached;
49
+ const result = {
50
+ names: new Set(),
51
+ hasDefault: false,
52
+ entry: '',
53
+ visitedFiles: [],
54
+ };
55
+ const rootRequire = createRequireFromDir(root);
56
+ const entry = resolvePackageEsmEntry(packageId, rootRequire);
57
+ if (!entry) {
58
+ cache.set(cacheKey, result);
59
+ return result;
60
+ }
61
+ result.entry = entry;
62
+ const visited = new Set();
63
+ const queue = [entry];
64
+ while (queue.length) {
65
+ const file = queue.shift();
66
+ const real = safeRealpath(file);
67
+ if (visited.has(real))
68
+ continue;
69
+ visited.add(real);
70
+ result.visitedFiles.push(real);
71
+ const source = readFileSafe(real);
72
+ if (source === null)
73
+ continue;
74
+ const program = parseModule(source);
75
+ if (!program)
76
+ continue;
77
+ const dir = path.dirname(real);
78
+ const localRequire = createRequireFromFile(real);
79
+ for (const node of program.body) {
80
+ collectExportsFromNode(node, result, (spec) => {
81
+ const next = resolveSpec(spec, dir, localRequire);
82
+ if (next)
83
+ queue.push(next);
84
+ });
85
+ }
86
+ }
87
+ cache.set(cacheKey, result);
88
+ return result;
89
+ }
90
+ function collectExportsFromNode(node, out, queueReExportSource) {
91
+ if (node.type === 'ExportNamedDeclaration') {
92
+ // `export const x = …`, `export function y() {}`, `export class Z {}`
93
+ const decl = node.declaration;
94
+ if (decl) {
95
+ if (decl.declarations) {
96
+ for (const d of decl.declarations) {
97
+ addId(out.names, d?.id);
98
+ }
99
+ }
100
+ else if (decl.id?.name) {
101
+ out.names.add(decl.id.name);
102
+ }
103
+ }
104
+ // `export { a, b as c }` and `export { a } from './foo'`
105
+ for (const spec of (node.specifiers || [])) {
106
+ const exportedName = spec?.exported?.name ?? spec?.exported?.value;
107
+ if (exportedName === 'default') {
108
+ out.hasDefault = true;
109
+ }
110
+ else if (exportedName) {
111
+ out.names.add(String(exportedName));
112
+ }
113
+ }
114
+ // `export … from <source>` — we already captured the explicit names above,
115
+ // but we still need to recurse if there's a `*` re-export hiding inside
116
+ // (Babel models that as `ExportAllDeclaration`, handled below). Nothing to do here.
117
+ }
118
+ else if (node.type === 'ExportAllDeclaration') {
119
+ // `export * from <source>` — recurse.
120
+ // `export * as ns from <source>` adds a named binding `ns` instead of fanning out.
121
+ const src = node.source?.value;
122
+ const asName = node.exported?.name;
123
+ if (asName) {
124
+ if (asName !== 'default')
125
+ out.names.add(String(asName));
126
+ }
127
+ else if (src) {
128
+ queueReExportSource(src);
129
+ }
130
+ }
131
+ else if (node.type === 'ExportDefaultDeclaration') {
132
+ out.hasDefault = true;
133
+ }
134
+ }
135
+ function addId(names, idNode) {
136
+ if (!idNode)
137
+ return;
138
+ if (idNode.type === 'Identifier' && idNode.name) {
139
+ names.add(idNode.name);
140
+ return;
141
+ }
142
+ if (idNode.type === 'ObjectPattern') {
143
+ for (const prop of idNode.properties || []) {
144
+ if (prop.type === 'ObjectProperty')
145
+ addId(names, prop.value);
146
+ else if (prop.type === 'RestElement')
147
+ addId(names, prop.argument);
148
+ }
149
+ return;
150
+ }
151
+ if (idNode.type === 'ArrayPattern') {
152
+ for (const el of idNode.elements || [])
153
+ addId(names, el);
154
+ return;
155
+ }
156
+ if (idNode.type === 'AssignmentPattern') {
157
+ addId(names, idNode.left);
158
+ }
159
+ }
160
+ function parseModule(source) {
161
+ try {
162
+ const ast = babelParse(source, {
163
+ sourceType: 'module',
164
+ plugins: ['typescript', 'jsx', 'importMeta', 'topLevelAwait', 'decorators-legacy', 'classProperties', 'classPrivateProperties', 'classPrivateMethods'],
165
+ errorRecovery: true,
166
+ allowReturnOutsideFunction: true,
167
+ allowUndeclaredExports: true,
168
+ });
169
+ return ast.program;
170
+ }
171
+ catch {
172
+ return null;
173
+ }
174
+ }
175
+ function resolveSpec(spec, dir, localRequire) {
176
+ if (!spec)
177
+ return null;
178
+ if (spec.startsWith('.')) {
179
+ return resolveRelative(dir, spec);
180
+ }
181
+ if (spec.startsWith('/')) {
182
+ return existsSync(spec) ? spec : null;
183
+ }
184
+ // Bare specifier (e.g. `@vue/runtime-core` from inside `nativescript-vue`).
185
+ // `createRequire.resolve()` is CJS-first and follows the package's `main`
186
+ // field, which for dual-format packages like `@vue/runtime-core` points at
187
+ // a CommonJS shim (`module.exports = require('./dist/…cjs.js')`) — parsing
188
+ // that as ESM yields zero exports and we silently drop the entire
189
+ // re-export chain. Use the ESM-aware resolver instead so we land on the
190
+ // actual `dist/…esm-bundler.js` advertised by `exports[".module"]` /
191
+ // `module`, where `export { ref, computed, … }` lives.
192
+ if (localRequire) {
193
+ return resolvePackageEsmEntry(spec, localRequire);
194
+ }
195
+ return null;
196
+ }
197
+ /**
198
+ * Resolve a bare specifier to its ESM entry file by consulting the package's
199
+ * own `package.json` ESM hints — in priority order:
200
+ *
201
+ * 1. `exports[<sub>].module` (Vue, modern dual-format packages)
202
+ * 2. `exports[<sub>].import`
203
+ * 3. `exports[<sub>]` shorthand (string form)
204
+ * 4. top-level `module` field (older dual-format convention)
205
+ * 5. top-level `main` (last resort; may be CJS — we'll parse what we get)
206
+ *
207
+ * `<sub>` is either `"."` (root entry) or `"./relative/subpath"`. Anything not
208
+ * declared in `exports` falls back to plain CJS resolution.
209
+ *
210
+ * Returns the absolute file path, or `null` if the package can't be located.
211
+ */
212
+ function resolvePackageEsmEntry(spec, localRequire) {
213
+ const { packageName, subpath } = splitBareSpec(spec);
214
+ if (!packageName)
215
+ return null;
216
+ // Locate the package's `package.json` from the calling file's vantage point.
217
+ // Node ≥ 18.6 has `require.resolve('<pkg>/package.json')` working for almost
218
+ // every layout (including pnpm hoisted/nested), provided the package
219
+ // declares `package.json` reachable (it is, by default). If the package
220
+ // opts out of exposing it via `exports`, fall back to walking up from any
221
+ // resolvable entry.
222
+ let pkgJsonPath = safeResolve(localRequire, `${packageName}/package.json`);
223
+ if (!pkgJsonPath) {
224
+ const someEntry = safeResolve(localRequire, spec);
225
+ if (someEntry)
226
+ pkgJsonPath = findPackageJsonUpward(someEntry, packageName);
227
+ }
228
+ if (!pkgJsonPath)
229
+ return null;
230
+ const pkgDir = path.dirname(pkgJsonPath);
231
+ const pkg = readJsonSafe(pkgJsonPath);
232
+ if (!pkg)
233
+ return null;
234
+ const subKey = subpath ? `./${subpath}` : '.';
235
+ const esmRelative = pickEsmEntryFromManifest(pkg, subKey);
236
+ if (esmRelative) {
237
+ const resolved = resolveRelativeInsidePackage(pkgDir, esmRelative);
238
+ if (resolved)
239
+ return resolved;
240
+ }
241
+ // Last-resort fallback: ordinary CJS resolution. Parsing may yield zero
242
+ // exports (the file is genuinely CJS) — that's acceptable; the caller
243
+ // treats an empty contribution as "this package adds nothing" rather than
244
+ // erroring out.
245
+ return safeResolve(localRequire, spec);
246
+ }
247
+ function splitBareSpec(spec) {
248
+ if (spec.startsWith('@')) {
249
+ const parts = spec.split('/');
250
+ if (parts.length < 2)
251
+ return { packageName: '', subpath: '' };
252
+ return { packageName: `${parts[0]}/${parts[1]}`, subpath: parts.slice(2).join('/') };
253
+ }
254
+ const slash = spec.indexOf('/');
255
+ if (slash === -1)
256
+ return { packageName: spec, subpath: '' };
257
+ return { packageName: spec.slice(0, slash), subpath: spec.slice(slash + 1) };
258
+ }
259
+ function readJsonSafe(file) {
260
+ try {
261
+ return JSON.parse(readFileSync(file, 'utf-8'));
262
+ }
263
+ catch {
264
+ return null;
265
+ }
266
+ }
267
+ function pickEsmEntryFromManifest(pkg, subKey) {
268
+ const exportsField = pkg?.exports;
269
+ if (exportsField && typeof exportsField === 'object') {
270
+ const entry = exportsField[subKey];
271
+ const fromConditional = pickEsmFromConditionalExports(entry);
272
+ if (fromConditional)
273
+ return fromConditional;
274
+ }
275
+ // `exports` as a bare string only applies to the `.` subpath.
276
+ if (typeof exportsField === 'string' && subKey === '.')
277
+ return exportsField;
278
+ if (subKey === '.') {
279
+ if (typeof pkg?.module === 'string')
280
+ return pkg.module;
281
+ if (typeof pkg?.main === 'string')
282
+ return pkg.main;
283
+ // CommonJS-only packages frequently omit `main`; Node defaults to `index.js`.
284
+ return 'index.js';
285
+ }
286
+ // Subpath without an `exports` mapping: caller falls through to CJS resolution.
287
+ return null;
288
+ }
289
+ function pickEsmFromConditionalExports(entry) {
290
+ if (!entry)
291
+ return null;
292
+ if (typeof entry === 'string')
293
+ return entry;
294
+ if (typeof entry !== 'object')
295
+ return null;
296
+ // Prefer `module` (the de-facto "ESM bundler" condition that Vue, lit,
297
+ // preact etc. ship), then `import`, then `default`. Skip `node`/`require`
298
+ // because those usually point at the CJS shim we're explicitly avoiding.
299
+ for (const key of ['module', 'import', 'default']) {
300
+ const value = entry[key];
301
+ if (typeof value === 'string')
302
+ return value;
303
+ if (value && typeof value === 'object') {
304
+ const nested = pickEsmFromConditionalExports(value);
305
+ if (nested)
306
+ return nested;
307
+ }
308
+ }
309
+ return null;
310
+ }
311
+ function resolveRelativeInsidePackage(pkgDir, rel) {
312
+ const trimmed = rel.replace(/^\.\//, '');
313
+ const candidates = [trimmed, `${trimmed}.js`, `${trimmed}.mjs`, `${trimmed}.cjs`, `${trimmed}/index.js`, `${trimmed}/index.mjs`];
314
+ for (const c of candidates) {
315
+ const p = path.join(pkgDir, c);
316
+ if (existsSync(p))
317
+ return safeRealpath(p);
318
+ }
319
+ return null;
320
+ }
321
+ function findPackageJsonUpward(startFile, expectedName) {
322
+ let dir = path.dirname(startFile);
323
+ const root = path.parse(dir).root;
324
+ while (dir && dir !== root) {
325
+ const candidate = path.join(dir, 'package.json');
326
+ if (existsSync(candidate)) {
327
+ const pkg = readJsonSafe(candidate);
328
+ if (pkg?.name === expectedName)
329
+ return candidate;
330
+ }
331
+ const next = path.dirname(dir);
332
+ if (next === dir)
333
+ break;
334
+ dir = next;
335
+ }
336
+ return null;
337
+ }
338
+ function resolveRelative(dir, spec) {
339
+ const base = path.resolve(dir, spec);
340
+ const candidates = ['', '.js', '.mjs', '.cjs', '/index.js', '/index.mjs', '/index.cjs'];
341
+ for (const ext of candidates) {
342
+ const p = base + ext;
343
+ try {
344
+ if (existsSync(p)) {
345
+ const real = safeRealpath(p);
346
+ // Skip directories returned by `existsSync` without an index file fallback.
347
+ try {
348
+ const stat = readFileSafe(real);
349
+ if (stat !== null)
350
+ return real;
351
+ }
352
+ catch { }
353
+ }
354
+ }
355
+ catch { }
356
+ }
357
+ return null;
358
+ }
359
+ function safeResolve(req, spec) {
360
+ try {
361
+ return req.resolve(spec);
362
+ }
363
+ catch {
364
+ return null;
365
+ }
366
+ }
367
+ function createRequireFromDir(dir) {
368
+ // `createRequire` wants a file path; we pass a synthetic file under the
369
+ // dir so resolution starts there.
370
+ return createRequire(path.join(dir, 'package.json'));
371
+ }
372
+ function createRequireFromFile(file) {
373
+ try {
374
+ return createRequire(file);
375
+ }
376
+ catch {
377
+ return null;
378
+ }
379
+ }
380
+ function safeRealpath(file) {
381
+ try {
382
+ return realpathSync(file);
383
+ }
384
+ catch {
385
+ return file;
386
+ }
387
+ }
388
+ function readFileSafe(file) {
389
+ try {
390
+ return readFileSync(file, 'utf-8');
391
+ }
392
+ catch {
393
+ return null;
394
+ }
395
+ }
396
+ //# sourceMappingURL=package-exports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-exports.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/helpers/package-exports.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export declare function rewriteVendorVueSpec(code: string, origin: string, ver: number): string;
1
+ export declare function rewriteVendorVueSpec(code: string, origin: string, _ver?: number): string;
@@ -1,12 +1,14 @@
1
1
  // Helper to rewrite vendor/bare imports of 'vue' or 'nativescript-vue' to the unified /ns/rt bridge
2
2
  // Ensures a single module realm for Vue/NativeScript-Vue across app and plugins during dev HTTP ESM.
3
- export function rewriteVendorVueSpec(code, origin, ver) {
3
+ // The bridge URL is CANONICAL (unversioned): module identity is the URL, and
4
+ // the bridge body doesn't change at HMR time.
5
+ export function rewriteVendorVueSpec(code, origin, _ver) {
4
6
  try {
5
- const rt = `${origin}/ns/rt/${ver}`;
7
+ const rt = `${origin}/ns/rt`;
6
8
  let out = code;
7
9
  // Helper: replace specifier if it ultimately references vue/nativescript-vue, including prebundled ids
8
10
  const replaceIfVue = (_m, p1, spec, p2) => {
9
- // Normalize any /ns/rt[/<num>] specifier to current graph version
11
+ // Normalize any versioned /ns/rt[/<num>] specifier to the canonical form
10
12
  if (/^\/?ns\/rt(?:\/[0-9]+)?(?:$|[?#])/.test(spec) || /\/ns\/rt(?:\/[0-9]+)?(?:$|[?#])/.test(spec)) {
11
13
  return `${p1}${rt}${p2}`;
12
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vendor-rewrite.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/helpers/vendor-rewrite.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,qGAAqG;AAErG,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,MAAc,EAAE,GAAW;IAC7E,IAAI,CAAC;QACJ,MAAM,EAAE,GAAG,GAAG,MAAM,UAAU,GAAG,EAAE,CAAC;QACpC,IAAI,GAAG,GAAG,IAAI,CAAC;QAEf,uGAAuG;QACvG,MAAM,YAAY,GAAG,CAAC,EAAU,EAAE,EAAU,EAAE,IAAY,EAAE,EAAU,EAAE,EAAE;YACzE,kEAAkE;YAClE,IAAI,mCAAmC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,iCAAiC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpG,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;YAC1B,CAAC;YACD,6EAA6E;YAC7E,kGAAkG;YAClG,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,4CAA4C,EAAE,EAAE,CAAC,CAAC;YACzE,MAAM,KAAK,GAAG,4DAA4D,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnF,IAAI,KAAK;gBAAE,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;YACpC,OAAO,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC;QAC5B,CAAC,CAAC;QAEF,gCAAgC;QAChC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,8BAA8B,EAAE,YAAmB,CAAC,CAAC;QAEvE,uCAAuC;QACvC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,yCAAyC,EAAE,YAAmB,CAAC,CAAC;QAElF,oCAAoC;QACpC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,uCAAuC,EAAE,YAAmB,CAAC,CAAC;QAEhF,gDAAgD;QAChD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,wCAAwC,EAAE,YAAmB,CAAC,CAAC;QAEjF,OAAO,GAAG,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"vendor-rewrite.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/helpers/vendor-rewrite.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,qGAAqG;AACrG,6EAA6E;AAC7E,8CAA8C;AAE9C,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,MAAc,EAAE,IAAa;IAC/E,IAAI,CAAC;QACJ,MAAM,EAAE,GAAG,GAAG,MAAM,QAAQ,CAAC;QAC7B,IAAI,GAAG,GAAG,IAAI,CAAC;QAEf,uGAAuG;QACvG,MAAM,YAAY,GAAG,CAAC,EAAU,EAAE,EAAU,EAAE,IAAY,EAAE,EAAU,EAAE,EAAE;YACzE,yEAAyE;YACzE,IAAI,mCAAmC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,iCAAiC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpG,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;YAC1B,CAAC;YACD,6EAA6E;YAC7E,kGAAkG;YAClG,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,4CAA4C,EAAE,EAAE,CAAC,CAAC;YACzE,MAAM,KAAK,GAAG,4DAA4D,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnF,IAAI,KAAK;gBAAE,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;YACpC,OAAO,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC;QAC5B,CAAC,CAAC;QAEF,gCAAgC;QAChC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,8BAA8B,EAAE,YAAmB,CAAC,CAAC;QAEvE,uCAAuC;QACvC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,yCAAyC,EAAE,YAAmB,CAAC,CAAC;QAElF,oCAAoC;QACpC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,uCAAuC,EAAE,YAAmB,CAAC,CAAC;QAEhF,gDAAgD;QAChD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,wCAAwC,EAAE,YAAmB,CAAC,CAAC;QAEjF,OAAO,GAAG,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC"}
@@ -0,0 +1,40 @@
1
+ import type { ViteDevServer } from 'vite';
2
+ import { type BootClosureGraphSource } from './boot-closure-route.js';
3
+ import { BOOT_ARCHIVE_PATH, type BootArchiveLine } from '../shared/runtime/boot-archive-format.js';
4
+ export { BOOT_ARCHIVE_PATH };
5
+ export type BootArchiveEntry = Extract<BootArchiveLine, {
6
+ kind: 'mod';
7
+ }>;
8
+ /**
9
+ * Marks loopback self-fetches so the boot-recording middleware can exclude
10
+ * them — archive-delivered bodies reach the recorder solely through
11
+ * `onArchiveServed`, keeping one writer per data source.
12
+ */
13
+ export declare const NS_INTERNAL_HEADER = "x-ns-internal";
14
+ type LocalFetchResult = {
15
+ status: number;
16
+ body: string;
17
+ };
18
+ type LocalFetcher = (pathWithSearch: string) => Promise<LocalFetchResult>;
19
+ /**
20
+ * Fetch every closure URL through the fetcher with bounded concurrency,
21
+ * invoking `onEntry` in completion order for each 2xx non-empty body.
22
+ * Returns the device-URL list of successfully archived entries.
23
+ */
24
+ export declare function buildBootArchive(urls: readonly string[], fetchLocal: LocalFetcher, onEntry: (entry: BootArchiveEntry) => void, maxConcurrent?: number): Promise<string[]>;
25
+ export interface RegisterBootArchiveRouteOptions {
26
+ /** Budget for the graph walk on a cold server (matches boot-closure). */
27
+ maxWaitMs?: number;
28
+ /** Per-body self-fetch timeout (default 120s — first-boot transforms can be slow). */
29
+ fetchTimeoutMs?: number;
30
+ maxConcurrent?: number;
31
+ verbose?: boolean;
32
+ /**
33
+ * Called with the device-URL paths that were successfully archived. This
34
+ * is the recorder's only source for archive-delivered bodies: the
35
+ * loopback self-fetches carry `NS_INTERNAL_HEADER` and are excluded from
36
+ * organic recording, and seeded devices issue no per-URL requests.
37
+ */
38
+ onArchiveServed?(paths: string[]): void;
39
+ }
40
+ export declare function registerBootArchiveRoute(server: ViteDevServer, source: BootClosureGraphSource, options?: RegisterBootArchiveRouteOptions): void;
@@ -0,0 +1,154 @@
1
+ import * as http from 'node:http';
2
+ import * as https from 'node:https';
3
+ import { resolveBootClosureUrls } from './boot-closure-route.js';
4
+ import { BOOT_ARCHIVE_PATH, serializeBootArchiveLine } from '../shared/runtime/boot-archive-format.js';
5
+ // `/__ns_dev__/boot-archive` — the batch cold-boot payload.
6
+ //
7
+ // Streams every boot-closure body as ONE NDJSON payload: each body is
8
+ // fetched server-side through the exact same middleware pipeline the device
9
+ // would hit (self-loopback requests, so `/ns/m` post-processing, shims, and
10
+ // headers are byte-identical), one `{"kind":"mod","url":...,"body":...}`
11
+ // line per module. The device bootstrap hands the parsed entries to
12
+ // `__NS_DEV__.seedModuleBodies(entries)`, which fills the prewarm cache
13
+ // consumed by V8's synchronous module walk.
14
+ //
15
+ // Failure model mirrors the kickstart: any body that fails to self-fetch is
16
+ // simply omitted (the device falls back to a per-URL network fetch for it),
17
+ // and a runtime without `seedModuleBodies` never calls this route.
18
+ export { BOOT_ARCHIVE_PATH };
19
+ /**
20
+ * Marks loopback self-fetches so the boot-recording middleware can exclude
21
+ * them — archive-delivered bodies reach the recorder solely through
22
+ * `onArchiveServed`, keeping one writer per data source.
23
+ */
24
+ export const NS_INTERNAL_HEADER = 'x-ns-internal';
25
+ function createSelfLoopbackFetcher(server, timeoutMs) {
26
+ const address = server.httpServer?.address();
27
+ if (!address || typeof address === 'string')
28
+ return null;
29
+ const port = address.port;
30
+ const secure = !!server.config?.server?.https;
31
+ const mod = secure ? https : http;
32
+ // Keep-alive agent so the archive build reuses a handful of sockets
33
+ // instead of opening one connection per module body.
34
+ const agent = secure ? new https.Agent({ keepAlive: true, maxSockets: 8, rejectUnauthorized: false }) : new http.Agent({ keepAlive: true, maxSockets: 8 });
35
+ return (pathWithSearch) => new Promise((resolve) => {
36
+ try {
37
+ const req = mod.request({
38
+ host: '127.0.0.1',
39
+ port,
40
+ path: pathWithSearch,
41
+ method: 'GET',
42
+ agent,
43
+ headers: { [NS_INTERNAL_HEADER]: 'boot-archive' },
44
+ // Dev-only loopback against our own (possibly self-signed) server.
45
+ ...(secure ? { rejectUnauthorized: false } : {}),
46
+ }, (res) => {
47
+ const chunks = [];
48
+ res.on('data', (chunk) => chunks.push(chunk));
49
+ res.on('end', () => resolve({ status: res.statusCode || 0, body: Buffer.concat(chunks).toString('utf8') }));
50
+ res.on('error', () => resolve({ status: 0, body: '' }));
51
+ });
52
+ req.setTimeout(timeoutMs, () => {
53
+ req.destroy();
54
+ resolve({ status: 0, body: '' });
55
+ });
56
+ req.on('error', () => resolve({ status: 0, body: '' }));
57
+ req.end();
58
+ }
59
+ catch {
60
+ resolve({ status: 0, body: '' });
61
+ }
62
+ });
63
+ }
64
+ /**
65
+ * Fetch every closure URL through the fetcher with bounded concurrency,
66
+ * invoking `onEntry` in completion order for each 2xx non-empty body.
67
+ * Returns the device-URL list of successfully archived entries.
68
+ */
69
+ export async function buildBootArchive(urls, fetchLocal, onEntry, maxConcurrent = 8) {
70
+ const served = [];
71
+ let next = 0;
72
+ const worker = async () => {
73
+ while (next < urls.length) {
74
+ const index = next++;
75
+ const url = urls[index];
76
+ let pathWithSearch;
77
+ try {
78
+ const parsed = new URL(url);
79
+ pathWithSearch = `${parsed.pathname}${parsed.search || ''}`;
80
+ }
81
+ catch {
82
+ continue;
83
+ }
84
+ const result = await fetchLocal(pathWithSearch);
85
+ if (result.status >= 200 && result.status < 300 && result.body) {
86
+ onEntry({ kind: 'mod', url, body: result.body });
87
+ served.push(url);
88
+ }
89
+ }
90
+ };
91
+ const workers = [];
92
+ for (let i = 0; i < Math.max(1, Math.min(maxConcurrent, urls.length)); i++) {
93
+ workers.push(worker());
94
+ }
95
+ await Promise.all(workers);
96
+ return served;
97
+ }
98
+ export function registerBootArchiveRoute(server, source, options) {
99
+ const maxWaitMs = options?.maxWaitMs ?? 3000;
100
+ const fetchTimeoutMs = options?.fetchTimeoutMs ?? 120000;
101
+ const maxConcurrent = options?.maxConcurrent ?? 8;
102
+ server.middlewares.use(async (req, res, next) => {
103
+ try {
104
+ const url = new URL(req.url || '', 'http://localhost');
105
+ if (url.pathname !== BOOT_ARCHIVE_PATH)
106
+ return next();
107
+ res.setHeader('Access-Control-Allow-Origin', '*');
108
+ res.setHeader('Access-Control-Allow-Methods', 'GET, OPTIONS');
109
+ if (req.method === 'OPTIONS') {
110
+ res.statusCode = 204;
111
+ res.end();
112
+ return;
113
+ }
114
+ const fetchLocal = createSelfLoopbackFetcher(server, fetchTimeoutMs);
115
+ if (!fetchLocal) {
116
+ res.statusCode = 503;
117
+ res.setHeader('Content-Type', 'application/json');
118
+ res.end(JSON.stringify({ error: 'boot archive unavailable (no bound http server address)' }));
119
+ return;
120
+ }
121
+ const t0 = Date.now();
122
+ const resolved = await resolveBootClosureUrls(server, source, maxWaitMs);
123
+ res.statusCode = 200;
124
+ res.setHeader('Content-Type', 'application/x-ndjson');
125
+ res.write(serializeBootArchiveLine({ kind: 'meta', version: 1, source: resolved.source, urls: resolved.urls.length }));
126
+ let bytes = 0;
127
+ const servedUrls = await buildBootArchive(resolved.urls, fetchLocal, (entry) => {
128
+ bytes += entry.body.length;
129
+ res.write(serializeBootArchiveLine(entry));
130
+ }, maxConcurrent);
131
+ res.end();
132
+ // Every URL in servedUrls already round-tripped through `new URL`
133
+ // inside buildBootArchive, so re-parsing cannot throw.
134
+ options?.onArchiveServed?.(servedUrls.map((u) => {
135
+ const parsed = new URL(u);
136
+ return `${parsed.pathname}${parsed.search || ''}`;
137
+ }));
138
+ if (options?.verbose) {
139
+ console.info(`[hmr-ws][boot-archive] served ${servedUrls.length}/${resolved.urls.length} bodies (${(bytes / 1024).toFixed(0)}kb) from ${resolved.source} closure in ${Date.now() - t0}ms`);
140
+ }
141
+ }
142
+ catch (error) {
143
+ if (!res.headersSent) {
144
+ res.statusCode = 500;
145
+ res.setHeader('Content-Type', 'application/json');
146
+ res.end(JSON.stringify({ error: error?.message || 'Failed to build NativeScript boot archive' }));
147
+ }
148
+ else {
149
+ res.end();
150
+ }
151
+ }
152
+ });
153
+ }
154
+ //# sourceMappingURL=boot-archive-route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boot-archive-route.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/boot-archive-route.ts"],"names":[],"mappings":"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"}