@nativescript/vite 8.0.0-alpha.7 → 8.0.0-alpha.71

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 (555) hide show
  1. package/README.md +54 -14
  2. package/bin/cli.cjs +8 -14
  3. package/configuration/angular.d.ts +34 -1
  4. package/configuration/angular.js +293 -172
  5. package/configuration/angular.js.map +1 -1
  6. package/configuration/base.js +177 -110
  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-refresh.d.ts +31 -0
  19. package/helpers/app-css-refresh.js +43 -0
  20. package/helpers/app-css-refresh.js.map +1 -0
  21. package/helpers/app-css-state.d.ts +17 -0
  22. package/helpers/app-css-state.js +51 -0
  23. package/helpers/app-css-state.js.map +1 -0
  24. package/helpers/bundler-context.d.ts +11 -0
  25. package/helpers/bundler-context.js +71 -0
  26. package/helpers/bundler-context.js.map +1 -0
  27. package/helpers/cli-flags.d.ts +12 -0
  28. package/helpers/cli-flags.js +34 -0
  29. package/helpers/cli-flags.js.map +1 -1
  30. package/helpers/css-platform-plugin.d.ts +14 -0
  31. package/helpers/css-platform-plugin.js +43 -25
  32. package/helpers/css-platform-plugin.js.map +1 -1
  33. package/helpers/dev-host.d.ts +360 -0
  34. package/helpers/dev-host.js +694 -0
  35. package/helpers/dev-host.js.map +1 -0
  36. package/helpers/dynamic-import-plugin.d.ts +2 -1
  37. package/helpers/dynamic-import-plugin.js +59 -53
  38. package/helpers/dynamic-import-plugin.js.map +1 -1
  39. package/helpers/esbuild-platform-resolver.js +4 -1
  40. package/helpers/esbuild-platform-resolver.js.map +1 -1
  41. package/helpers/external-configs.d.ts +10 -12
  42. package/helpers/external-configs.js +58 -35
  43. package/helpers/external-configs.js.map +1 -1
  44. package/helpers/flavor.d.ts +13 -0
  45. package/helpers/flavor.js +18 -1
  46. package/helpers/flavor.js.map +1 -1
  47. package/helpers/global-defines.d.ts +101 -33
  48. package/helpers/global-defines.js +187 -64
  49. package/helpers/global-defines.js.map +1 -1
  50. package/helpers/hmr-scope.d.ts +26 -0
  51. package/helpers/hmr-scope.js +67 -0
  52. package/helpers/hmr-scope.js.map +1 -0
  53. package/helpers/init.js +6 -20
  54. package/helpers/init.js.map +1 -1
  55. package/helpers/logging.js +29 -1
  56. package/helpers/logging.js.map +1 -1
  57. package/helpers/main-entry.d.ts +4 -1
  58. package/helpers/main-entry.js +366 -47
  59. package/helpers/main-entry.js.map +1 -1
  60. package/helpers/nativeclass-esbuild-plugin.d.ts +2 -1
  61. package/helpers/nativeclass-esbuild-plugin.js +6 -1
  62. package/helpers/nativeclass-esbuild-plugin.js.map +1 -1
  63. package/helpers/nativeclass-transform.d.ts +13 -0
  64. package/helpers/nativeclass-transform.js +37 -7
  65. package/helpers/nativeclass-transform.js.map +1 -1
  66. package/helpers/nativeclass-transformer-plugin.d.ts +9 -2
  67. package/helpers/nativeclass-transformer-plugin.js +163 -15
  68. package/helpers/nativeclass-transformer-plugin.js.map +1 -1
  69. package/helpers/nativescript-package-resolver.js +10 -62
  70. package/helpers/nativescript-package-resolver.js.map +1 -1
  71. package/helpers/normalize-id.d.ts +42 -0
  72. package/helpers/normalize-id.js +60 -0
  73. package/helpers/normalize-id.js.map +1 -0
  74. package/helpers/ns-core-external-urls.d.ts +32 -0
  75. package/helpers/ns-core-external-urls.js +107 -0
  76. package/helpers/ns-core-external-urls.js.map +1 -0
  77. package/helpers/ns-core-url.d.ts +26 -3
  78. package/helpers/ns-core-url.js +66 -8
  79. package/helpers/ns-core-url.js.map +1 -1
  80. package/helpers/optimize-deps.d.ts +16 -0
  81. package/helpers/optimize-deps.js +17 -0
  82. package/helpers/optimize-deps.js.map +1 -0
  83. package/helpers/package-platform-aliases.js +34 -49
  84. package/helpers/package-platform-aliases.js.map +1 -1
  85. package/helpers/platform-types.d.ts +2 -0
  86. package/helpers/platform-types.js +2 -0
  87. package/helpers/platform-types.js.map +1 -0
  88. package/helpers/postcss-platform-config.d.ts +17 -1
  89. package/helpers/postcss-platform-config.js +20 -37
  90. package/helpers/postcss-platform-config.js.map +1 -1
  91. package/helpers/project.d.ts +35 -0
  92. package/helpers/project.js +120 -2
  93. package/helpers/project.js.map +1 -1
  94. package/helpers/resolve-main-field-platform.d.ts +20 -0
  95. package/helpers/resolve-main-field-platform.js +49 -0
  96. package/helpers/resolve-main-field-platform.js.map +1 -0
  97. package/helpers/resolver.js +17 -2
  98. package/helpers/resolver.js.map +1 -1
  99. package/helpers/theme-core-plugins.js +1 -1
  100. package/helpers/theme-core-plugins.js.map +1 -1
  101. package/helpers/ts-config-paths.d.ts +32 -0
  102. package/helpers/ts-config-paths.js +156 -27
  103. package/helpers/ts-config-paths.js.map +1 -1
  104. package/helpers/typescript-check.d.ts +2 -1
  105. package/helpers/typescript-check.js +4 -4
  106. package/helpers/typescript-check.js.map +1 -1
  107. package/helpers/ui-registration.d.ts +21 -0
  108. package/helpers/ui-registration.js +156 -0
  109. package/helpers/ui-registration.js.map +1 -0
  110. package/helpers/utils.d.ts +9 -0
  111. package/helpers/utils.js +22 -2
  112. package/helpers/utils.js.map +1 -1
  113. package/helpers/vite-package-version.d.ts +7 -0
  114. package/helpers/vite-package-version.js +44 -0
  115. package/helpers/vite-package-version.js.map +1 -0
  116. package/helpers/workers.d.ts +40 -19
  117. package/helpers/workers.js +324 -13
  118. package/helpers/workers.js.map +1 -1
  119. package/hmr/client/css-handler.d.ts +2 -1
  120. package/hmr/client/css-handler.js +63 -32
  121. package/hmr/client/css-handler.js.map +1 -1
  122. package/hmr/client/css-update-overlay.d.ts +18 -0
  123. package/hmr/client/css-update-overlay.js +27 -0
  124. package/hmr/client/css-update-overlay.js.map +1 -0
  125. package/hmr/client/framework-client-strategy.d.ts +87 -0
  126. package/hmr/client/framework-client-strategy.js +18 -0
  127. package/hmr/client/framework-client-strategy.js.map +1 -0
  128. package/hmr/client/hmr-pending-overlay.d.ts +0 -14
  129. package/hmr/client/hmr-pending-overlay.js +2 -11
  130. package/hmr/client/hmr-pending-overlay.js.map +1 -1
  131. package/hmr/client/hot-context.d.ts +67 -0
  132. package/hmr/client/hot-context.js +307 -0
  133. package/hmr/client/hot-context.js.map +1 -0
  134. package/hmr/client/index.d.ts +9 -1
  135. package/hmr/client/index.js +70 -1970
  136. package/hmr/client/index.js.map +1 -1
  137. package/hmr/client/overlay-driver.d.ts +10 -0
  138. package/hmr/client/overlay-driver.js +33 -0
  139. package/hmr/client/overlay-driver.js.map +1 -0
  140. package/hmr/client/protocol-dispatch.d.ts +8 -0
  141. package/hmr/client/protocol-dispatch.js +308 -0
  142. package/hmr/client/protocol-dispatch.js.map +1 -0
  143. package/hmr/client/root-reset.d.ts +15 -0
  144. package/hmr/client/root-reset.js +358 -0
  145. package/hmr/client/root-reset.js.map +1 -0
  146. package/hmr/client/strategy-loader.d.ts +24 -0
  147. package/hmr/client/strategy-loader.js +83 -0
  148. package/hmr/client/strategy-loader.js.map +1 -0
  149. package/hmr/client/update-pipeline.d.ts +27 -0
  150. package/hmr/client/update-pipeline.js +464 -0
  151. package/hmr/client/update-pipeline.js.map +1 -0
  152. package/hmr/client/utils.d.ts +9 -1
  153. package/hmr/client/utils.js +117 -97
  154. package/hmr/client/utils.js.map +1 -1
  155. package/hmr/client/ws-transport.d.ts +21 -0
  156. package/hmr/client/ws-transport.js +323 -0
  157. package/hmr/client/ws-transport.js.map +1 -0
  158. package/hmr/entry-runtime.d.ts +2 -1
  159. package/hmr/entry-runtime.js +282 -71
  160. package/hmr/entry-runtime.js.map +1 -1
  161. package/hmr/frameworks/angular/build/angular-linker.d.ts +12 -0
  162. package/hmr/frameworks/angular/build/angular-linker.js +113 -0
  163. package/hmr/frameworks/angular/build/angular-linker.js.map +1 -0
  164. package/hmr/frameworks/angular/build/inject-component-hmr-registration.d.ts +112 -0
  165. package/hmr/frameworks/angular/build/inject-component-hmr-registration.js +291 -0
  166. package/hmr/frameworks/angular/build/inject-component-hmr-registration.js.map +1 -0
  167. package/hmr/frameworks/angular/build/inject-hmr-vite-ignore.d.ts +75 -0
  168. package/hmr/frameworks/angular/build/inject-hmr-vite-ignore.js +221 -0
  169. package/hmr/frameworks/angular/build/inject-hmr-vite-ignore.js.map +1 -0
  170. package/{helpers/angular → hmr/frameworks/angular/build}/inline-decorator-component-templates.js +1 -170
  171. package/hmr/frameworks/angular/build/inline-decorator-component-templates.js.map +1 -0
  172. package/hmr/frameworks/angular/build/js-lexer.d.ts +4 -0
  173. package/{helpers/angular/synthesize-decorator-ctor-parameters.js → hmr/frameworks/angular/build/js-lexer.js} +22 -96
  174. package/hmr/frameworks/angular/build/js-lexer.js.map +1 -0
  175. package/hmr/frameworks/angular/build/linker-stats.d.ts +18 -0
  176. package/hmr/frameworks/angular/build/linker-stats.js +29 -0
  177. package/hmr/frameworks/angular/build/linker-stats.js.map +1 -0
  178. package/hmr/frameworks/angular/build/shared-linker.d.ts +39 -0
  179. package/hmr/frameworks/angular/build/shared-linker.js +128 -0
  180. package/hmr/frameworks/angular/build/shared-linker.js.map +1 -0
  181. package/hmr/frameworks/angular/build/synthesize-decorator-ctor-parameters.js +88 -0
  182. package/hmr/frameworks/angular/build/synthesize-decorator-ctor-parameters.js.map +1 -0
  183. package/{helpers/angular → hmr/frameworks/angular/build}/synthesize-injectable-factories.js +1 -174
  184. package/hmr/frameworks/angular/build/synthesize-injectable-factories.js.map +1 -0
  185. package/hmr/frameworks/angular/build/ts-fallback-transform.d.ts +5 -0
  186. package/hmr/frameworks/angular/build/ts-fallback-transform.js +138 -0
  187. package/hmr/frameworks/angular/build/ts-fallback-transform.js.map +1 -0
  188. package/{helpers/angular → hmr/frameworks/angular/build}/util.d.ts +1 -0
  189. package/hmr/frameworks/angular/build/util.js +155 -0
  190. package/hmr/frameworks/angular/build/util.js.map +1 -0
  191. package/hmr/frameworks/angular/build/worker-url-preserve.d.ts +5 -0
  192. package/hmr/frameworks/angular/build/worker-url-preserve.js +140 -0
  193. package/hmr/frameworks/angular/build/worker-url-preserve.js.map +1 -0
  194. package/hmr/frameworks/angular/client/index.d.ts +0 -1
  195. package/hmr/frameworks/angular/client/index.js +459 -223
  196. package/hmr/frameworks/angular/client/index.js.map +1 -1
  197. package/hmr/frameworks/angular/client/strategy.d.ts +9 -0
  198. package/hmr/frameworks/angular/client/strategy.js +19 -0
  199. package/hmr/frameworks/angular/client/strategy.js.map +1 -0
  200. package/hmr/frameworks/angular/server/angular-root-component.d.ts +79 -0
  201. package/hmr/frameworks/angular/server/angular-root-component.js +149 -0
  202. package/hmr/frameworks/angular/server/angular-root-component.js.map +1 -0
  203. package/hmr/frameworks/angular/server/linker.js +1 -4
  204. package/hmr/frameworks/angular/server/linker.js.map +1 -1
  205. package/hmr/frameworks/angular/server/ng-component-route.d.ts +43 -0
  206. package/hmr/frameworks/angular/server/ng-component-route.js +113 -0
  207. package/hmr/frameworks/angular/server/ng-component-route.js.map +1 -0
  208. package/hmr/frameworks/angular/server/strategy.js +677 -13
  209. package/hmr/frameworks/angular/server/strategy.js.map +1 -1
  210. package/hmr/{server → frameworks/angular/server}/websocket-angular-entry.js +2 -2
  211. package/hmr/frameworks/angular/server/websocket-angular-entry.js.map +1 -0
  212. package/hmr/{server → frameworks/angular/server}/websocket-angular-hot-update.d.ts +28 -11
  213. package/hmr/{server → frameworks/angular/server}/websocket-angular-hot-update.js +191 -105
  214. package/hmr/frameworks/angular/server/websocket-angular-hot-update.js.map +1 -0
  215. package/hmr/frameworks/react/client/strategy.d.ts +12 -0
  216. package/hmr/frameworks/react/client/strategy.js +27 -0
  217. package/hmr/frameworks/react/client/strategy.js.map +1 -0
  218. package/hmr/frameworks/react/server/strategy.d.ts +2 -0
  219. package/hmr/frameworks/react/server/strategy.js +230 -0
  220. package/hmr/frameworks/react/server/strategy.js.map +1 -0
  221. package/hmr/frameworks/solid/build/solid-jsx-deps.d.ts +15 -0
  222. package/hmr/frameworks/solid/build/solid-jsx-deps.js +178 -0
  223. package/hmr/frameworks/solid/build/solid-jsx-deps.js.map +1 -0
  224. package/hmr/frameworks/solid/client/app-runtime.d.ts +68 -0
  225. package/hmr/frameworks/solid/client/app-runtime.js +252 -0
  226. package/hmr/frameworks/solid/client/app-runtime.js.map +1 -0
  227. package/hmr/frameworks/solid/client/strategy.d.ts +7 -0
  228. package/hmr/frameworks/solid/client/strategy.js +391 -0
  229. package/hmr/frameworks/solid/client/strategy.js.map +1 -0
  230. package/hmr/frameworks/solid/server/strategy.js +293 -16
  231. package/hmr/frameworks/solid/server/strategy.js.map +1 -1
  232. package/hmr/frameworks/typescript/client/strategy.d.ts +7 -0
  233. package/hmr/frameworks/typescript/client/strategy.js +418 -0
  234. package/hmr/frameworks/typescript/client/strategy.js.map +1 -0
  235. package/hmr/frameworks/typescript/server/strategy.js +40 -14
  236. package/hmr/frameworks/typescript/server/strategy.js.map +1 -1
  237. package/hmr/frameworks/vue/client/dep-propagation.d.ts +44 -0
  238. package/hmr/frameworks/vue/client/dep-propagation.js +148 -0
  239. package/hmr/frameworks/vue/client/dep-propagation.js.map +1 -0
  240. package/hmr/frameworks/vue/client/index.d.ts +10 -1
  241. package/hmr/frameworks/vue/client/index.js +287 -562
  242. package/hmr/frameworks/vue/client/index.js.map +1 -1
  243. package/hmr/frameworks/vue/client/navigate-app.d.ts +3 -0
  244. package/hmr/frameworks/vue/client/navigate-app.js +178 -0
  245. package/hmr/frameworks/vue/client/navigate-app.js.map +1 -0
  246. package/hmr/frameworks/vue/client/strategy.d.ts +33 -0
  247. package/hmr/frameworks/vue/client/strategy.js +152 -0
  248. package/hmr/frameworks/vue/client/strategy.js.map +1 -0
  249. package/hmr/frameworks/vue/client/vue-sfc-update-overlay.d.ts +49 -0
  250. package/hmr/frameworks/vue/client/vue-sfc-update-overlay.js +124 -0
  251. package/hmr/frameworks/vue/client/vue-sfc-update-overlay.js.map +1 -0
  252. package/hmr/frameworks/vue/server/compiler.d.ts +3 -1
  253. package/hmr/frameworks/vue/server/compiler.js +3 -1
  254. package/hmr/frameworks/vue/server/compiler.js.map +1 -1
  255. package/hmr/frameworks/vue/server/sfc-route-assemble.d.ts +7 -0
  256. package/hmr/frameworks/vue/server/sfc-route-assemble.js +823 -0
  257. package/hmr/frameworks/vue/server/sfc-route-assemble.js.map +1 -0
  258. package/hmr/frameworks/vue/server/sfc-route-meta.d.ts +7 -0
  259. package/hmr/frameworks/vue/server/sfc-route-meta.js +80 -0
  260. package/hmr/frameworks/vue/server/sfc-route-meta.js.map +1 -0
  261. package/hmr/frameworks/vue/server/sfc-route-serve.d.ts +8 -0
  262. package/hmr/frameworks/vue/server/sfc-route-serve.js +462 -0
  263. package/hmr/frameworks/vue/server/sfc-route-serve.js.map +1 -0
  264. package/hmr/frameworks/vue/server/sfc-route-shared.d.ts +45 -0
  265. package/hmr/frameworks/vue/server/sfc-route-shared.js +105 -0
  266. package/hmr/frameworks/vue/server/sfc-route-shared.js.map +1 -0
  267. package/hmr/frameworks/vue/server/strategy.d.ts +35 -0
  268. package/hmr/frameworks/vue/server/strategy.js +291 -7
  269. package/hmr/frameworks/vue/server/strategy.js.map +1 -1
  270. package/hmr/frameworks/vue/server/websocket-sfc.d.ts +15 -0
  271. package/hmr/frameworks/vue/server/websocket-sfc.js +20 -0
  272. package/hmr/frameworks/vue/server/websocket-sfc.js.map +1 -0
  273. package/hmr/helpers/ast-normalizer.d.ts +3 -1
  274. package/hmr/helpers/ast-normalizer.js +109 -14
  275. package/hmr/helpers/ast-normalizer.js.map +1 -1
  276. package/hmr/helpers/cjs-named-exports.d.ts +23 -0
  277. package/hmr/helpers/cjs-named-exports.js +152 -0
  278. package/hmr/helpers/cjs-named-exports.js.map +1 -0
  279. package/hmr/helpers/package-exports.d.ts +16 -0
  280. package/hmr/helpers/package-exports.js +396 -0
  281. package/hmr/helpers/package-exports.js.map +1 -0
  282. package/hmr/helpers/vendor-rewrite.d.ts +1 -1
  283. package/hmr/helpers/vendor-rewrite.js +5 -3
  284. package/hmr/helpers/vendor-rewrite.js.map +1 -1
  285. package/hmr/server/boot-recording.d.ts +51 -0
  286. package/hmr/server/boot-recording.js +214 -0
  287. package/hmr/server/boot-recording.js.map +1 -0
  288. package/hmr/server/constants.js +20 -5
  289. package/hmr/server/constants.js.map +1 -1
  290. package/hmr/server/content-css-update.d.ts +54 -0
  291. package/hmr/server/content-css-update.js +78 -0
  292. package/hmr/server/content-css-update.js.map +1 -0
  293. package/hmr/server/core-bundle.d.ts +140 -0
  294. package/hmr/server/core-bundle.js +614 -0
  295. package/hmr/server/core-bundle.js.map +1 -0
  296. package/hmr/server/core-sanitize.d.ts +86 -7
  297. package/hmr/server/core-sanitize.js +164 -39
  298. package/hmr/server/core-sanitize.js.map +1 -1
  299. package/hmr/server/css-connect-sync.d.ts +28 -0
  300. package/hmr/server/css-connect-sync.js +59 -0
  301. package/hmr/server/css-connect-sync.js.map +1 -0
  302. package/hmr/server/css-device-module.d.ts +28 -0
  303. package/hmr/server/css-device-module.js +44 -0
  304. package/hmr/server/css-device-module.js.map +1 -0
  305. package/hmr/server/css-update-message.d.ts +23 -0
  306. package/hmr/server/css-update-message.js +41 -0
  307. package/hmr/server/css-update-message.js.map +1 -0
  308. package/hmr/server/deps-bundle.d.ts +233 -0
  309. package/hmr/server/deps-bundle.js +1022 -0
  310. package/hmr/server/deps-bundle.js.map +1 -0
  311. package/hmr/server/device-transform-helpers.d.ts +24 -0
  312. package/hmr/server/device-transform-helpers.js +408 -0
  313. package/hmr/server/device-transform-helpers.js.map +1 -0
  314. package/hmr/server/framework-strategy.d.ts +182 -11
  315. package/hmr/server/hmr-module-graph.d.ts +37 -0
  316. package/hmr/server/hmr-module-graph.js +215 -0
  317. package/hmr/server/hmr-module-graph.js.map +1 -0
  318. package/hmr/server/import-map.d.ts +51 -19
  319. package/hmr/server/import-map.js +136 -66
  320. package/hmr/server/import-map.js.map +1 -1
  321. package/hmr/server/index.js +7 -16
  322. package/hmr/server/index.js.map +1 -1
  323. package/hmr/server/node-builtins-route.d.ts +12 -0
  324. package/hmr/server/node-builtins-route.js +86 -0
  325. package/hmr/server/node-builtins-route.js.map +1 -0
  326. package/hmr/server/ns-core-cjs-shape.js +1 -1
  327. package/hmr/server/ns-core-cjs-shape.js.map +1 -1
  328. package/hmr/server/ns-m-response-memo.d.ts +10 -0
  329. package/hmr/server/ns-m-response-memo.js +33 -0
  330. package/hmr/server/ns-m-response-memo.js.map +1 -0
  331. package/hmr/server/ns-rt-bridge.d.ts +51 -0
  332. package/hmr/server/ns-rt-bridge.js +131 -0
  333. package/hmr/server/ns-rt-bridge.js.map +1 -0
  334. package/hmr/server/ns-rt-route.d.ts +5 -0
  335. package/hmr/server/ns-rt-route.js +39 -0
  336. package/hmr/server/ns-rt-route.js.map +1 -0
  337. package/hmr/server/perf-instrumentation.d.ts +1 -1
  338. package/hmr/server/perf-instrumentation.js +3 -1
  339. package/hmr/server/perf-instrumentation.js.map +1 -1
  340. package/hmr/server/process-code-for-device.d.ts +44 -0
  341. package/hmr/server/process-code-for-device.js +834 -0
  342. package/hmr/server/process-code-for-device.js.map +1 -0
  343. package/hmr/server/require-guard.d.ts +1 -0
  344. package/hmr/server/require-guard.js +12 -0
  345. package/hmr/server/require-guard.js.map +1 -0
  346. package/hmr/server/rewrite-imports.d.ts +2 -0
  347. package/hmr/server/rewrite-imports.js +631 -0
  348. package/hmr/server/rewrite-imports.js.map +1 -0
  349. package/hmr/server/route-helpers.d.ts +7 -0
  350. package/hmr/server/route-helpers.js +13 -0
  351. package/hmr/server/route-helpers.js.map +1 -0
  352. package/hmr/server/runtime-graph-filter.js +8 -1
  353. package/hmr/server/runtime-graph-filter.js.map +1 -1
  354. package/hmr/server/server-origin.d.ts +2 -0
  355. package/hmr/server/server-origin.js +88 -0
  356. package/hmr/server/server-origin.js.map +1 -0
  357. package/hmr/server/shared-transform-request.js +1 -2
  358. package/hmr/server/shared-transform-request.js.map +1 -1
  359. package/hmr/server/socket-utils.d.ts +10 -0
  360. package/hmr/server/socket-utils.js +14 -0
  361. package/hmr/server/socket-utils.js.map +1 -0
  362. package/hmr/server/transform-cache-invalidation.d.ts +37 -0
  363. package/hmr/server/transform-cache-invalidation.js +156 -0
  364. package/hmr/server/transform-cache-invalidation.js.map +1 -0
  365. package/hmr/server/vendor-bare-module-shims.d.ts +4 -0
  366. package/hmr/server/vendor-bare-module-shims.js +80 -0
  367. package/hmr/server/vendor-bare-module-shims.js.map +1 -0
  368. package/hmr/server/vite-plugin.d.ts +1 -0
  369. package/hmr/server/vite-plugin.js +227 -53
  370. package/hmr/server/vite-plugin.js.map +1 -1
  371. package/hmr/server/websocket-core-bridge.d.ts +51 -4
  372. package/hmr/server/websocket-core-bridge.js +62 -49
  373. package/hmr/server/websocket-core-bridge.js.map +1 -1
  374. package/hmr/server/websocket-device-transform.d.ts +3 -0
  375. package/hmr/server/websocket-device-transform.js +7 -0
  376. package/hmr/server/websocket-device-transform.js.map +1 -0
  377. package/hmr/server/websocket-hmr-pending.d.ts +2 -16
  378. package/hmr/server/websocket-hmr-pending.js +0 -22
  379. package/hmr/server/websocket-hmr-pending.js.map +1 -1
  380. package/hmr/server/websocket-hot-update.d.ts +80 -0
  381. package/hmr/server/websocket-hot-update.js +295 -0
  382. package/hmr/server/websocket-hot-update.js.map +1 -0
  383. package/hmr/server/websocket-import-map-route.d.ts +15 -0
  384. package/hmr/server/websocket-import-map-route.js +51 -0
  385. package/hmr/server/websocket-import-map-route.js.map +1 -0
  386. package/hmr/server/websocket-module-bindings.d.ts +15 -0
  387. package/hmr/server/websocket-module-bindings.js +38 -5
  388. package/hmr/server/websocket-module-bindings.js.map +1 -1
  389. package/hmr/server/websocket-module-specifiers.d.ts +66 -7
  390. package/hmr/server/websocket-module-specifiers.js +219 -49
  391. package/hmr/server/websocket-module-specifiers.js.map +1 -1
  392. package/hmr/server/websocket-ns-core.d.ts +34 -0
  393. package/hmr/server/websocket-ns-core.js +414 -0
  394. package/hmr/server/websocket-ns-core.js.map +1 -0
  395. package/hmr/server/websocket-ns-entry.d.ts +21 -0
  396. package/hmr/server/websocket-ns-entry.js +164 -0
  397. package/hmr/server/websocket-ns-entry.js.map +1 -0
  398. package/hmr/server/websocket-ns-m-paths.d.ts +19 -3
  399. package/hmr/server/websocket-ns-m-paths.js +98 -75
  400. package/hmr/server/websocket-ns-m-paths.js.map +1 -1
  401. package/hmr/server/websocket-ns-m-request.d.ts +13 -2
  402. package/hmr/server/websocket-ns-m-request.js +20 -11
  403. package/hmr/server/websocket-ns-m-request.js.map +1 -1
  404. package/hmr/server/websocket-ns-m.d.ts +52 -0
  405. package/hmr/server/websocket-ns-m.js +590 -0
  406. package/hmr/server/websocket-ns-m.js.map +1 -0
  407. package/hmr/server/websocket-served-module-helpers.d.ts +57 -4
  408. package/hmr/server/websocket-served-module-helpers.js +462 -141
  409. package/hmr/server/websocket-served-module-helpers.js.map +1 -1
  410. package/hmr/server/websocket-txn.js +6 -9
  411. package/hmr/server/websocket-txn.js.map +1 -1
  412. package/hmr/server/websocket-vendor-unifier.d.ts +0 -1
  413. package/hmr/server/websocket-vendor-unifier.js +4 -9
  414. package/hmr/server/websocket-vendor-unifier.js.map +1 -1
  415. package/hmr/server/websocket.d.ts +7 -40
  416. package/hmr/server/websocket.js +653 -6734
  417. package/hmr/server/websocket.js.map +1 -1
  418. package/hmr/shared/ns-globals.d.ts +106 -0
  419. package/hmr/shared/ns-globals.js +29 -0
  420. package/hmr/shared/ns-globals.js.map +1 -0
  421. package/hmr/shared/protocol.d.ts +157 -0
  422. package/hmr/shared/protocol.js +28 -0
  423. package/hmr/shared/protocol.js.map +1 -0
  424. package/hmr/shared/runtime/boot-complete.d.ts +14 -0
  425. package/hmr/shared/runtime/boot-complete.js +32 -0
  426. package/hmr/shared/runtime/boot-complete.js.map +1 -0
  427. package/hmr/shared/runtime/boot-placeholder-ui.d.ts +69 -0
  428. package/hmr/shared/runtime/boot-placeholder-ui.js +101 -0
  429. package/hmr/shared/runtime/boot-placeholder-ui.js.map +1 -0
  430. package/hmr/shared/runtime/boot-progress.d.ts +44 -0
  431. package/hmr/shared/runtime/boot-progress.js +134 -0
  432. package/hmr/shared/runtime/boot-progress.js.map +1 -0
  433. package/hmr/shared/runtime/boot-timeline.d.ts +1 -1
  434. package/hmr/shared/runtime/boot-timeline.js +8 -19
  435. package/hmr/shared/runtime/boot-timeline.js.map +1 -1
  436. package/hmr/shared/runtime/browser-runtime-contract.d.ts +43 -24
  437. package/hmr/shared/runtime/browser-runtime-contract.js +21 -9
  438. package/hmr/shared/runtime/browser-runtime-contract.js.map +1 -1
  439. package/hmr/shared/runtime/dev-overlay-ios.d.ts +87 -0
  440. package/hmr/shared/runtime/dev-overlay-ios.js +521 -0
  441. package/hmr/shared/runtime/dev-overlay-ios.js.map +1 -0
  442. package/hmr/shared/runtime/dev-overlay-shared.d.ts +58 -0
  443. package/hmr/shared/runtime/dev-overlay-shared.js +116 -0
  444. package/hmr/shared/runtime/dev-overlay-shared.js.map +1 -0
  445. package/hmr/shared/runtime/dev-overlay-snapshots.d.ts +31 -0
  446. package/hmr/shared/runtime/dev-overlay-snapshots.js +324 -0
  447. package/hmr/shared/runtime/dev-overlay-snapshots.js.map +1 -0
  448. package/hmr/shared/runtime/dev-overlay-tree.d.ts +59 -0
  449. package/hmr/shared/runtime/dev-overlay-tree.js +712 -0
  450. package/hmr/shared/runtime/dev-overlay-tree.js.map +1 -0
  451. package/hmr/shared/runtime/dev-overlay.d.ts +23 -69
  452. package/hmr/shared/runtime/dev-overlay.js +67 -1023
  453. package/hmr/shared/runtime/dev-overlay.js.map +1 -1
  454. package/hmr/shared/runtime/global-scope.d.ts +18 -0
  455. package/hmr/shared/runtime/global-scope.js +21 -0
  456. package/hmr/shared/runtime/global-scope.js.map +1 -0
  457. package/hmr/shared/runtime/hooks.js +2 -1
  458. package/hmr/shared/runtime/hooks.js.map +1 -1
  459. package/hmr/shared/runtime/launch-bridge.d.ts +9 -0
  460. package/hmr/shared/runtime/launch-bridge.js +98 -0
  461. package/hmr/shared/runtime/launch-bridge.js.map +1 -0
  462. package/hmr/shared/runtime/module-provenance.js +4 -6
  463. package/hmr/shared/runtime/module-provenance.js.map +1 -1
  464. package/hmr/shared/runtime/ns-runtime-test-double.d.ts +21 -0
  465. package/hmr/shared/runtime/ns-runtime-test-double.js +20 -0
  466. package/hmr/shared/runtime/ns-runtime-test-double.js.map +1 -0
  467. package/hmr/shared/runtime/overlay-flag.d.ts +9 -0
  468. package/hmr/shared/runtime/overlay-flag.js +34 -0
  469. package/hmr/shared/runtime/overlay-flag.js.map +1 -0
  470. package/hmr/shared/runtime/root-placeholder-view.d.ts +19 -0
  471. package/hmr/shared/runtime/root-placeholder-view.js +311 -0
  472. package/hmr/shared/runtime/root-placeholder-view.js.map +1 -0
  473. package/hmr/shared/runtime/root-placeholder.js +401 -206
  474. package/hmr/shared/runtime/root-placeholder.js.map +1 -1
  475. package/hmr/shared/runtime/session-bootstrap.js +203 -58
  476. package/hmr/shared/runtime/session-bootstrap.js.map +1 -1
  477. package/hmr/shared/runtime/vendor-bootstrap.js +3 -10
  478. package/hmr/shared/runtime/vendor-bootstrap.js.map +1 -1
  479. package/hmr/shared/runtime/vendor-resolve.d.ts +22 -0
  480. package/hmr/shared/runtime/vendor-resolve.js +45 -0
  481. package/hmr/shared/runtime/vendor-resolve.js.map +1 -0
  482. package/hmr/shared/vendor/manifest-collect.d.ts +4 -0
  483. package/hmr/shared/vendor/manifest-collect.js +909 -0
  484. package/hmr/shared/vendor/manifest-collect.js.map +1 -0
  485. package/hmr/shared/vendor/manifest-loader.d.ts +2 -1
  486. package/hmr/shared/vendor/manifest-loader.js +5 -3
  487. package/hmr/shared/vendor/manifest-loader.js.map +1 -1
  488. package/hmr/shared/vendor/manifest.d.ts +12 -7
  489. package/hmr/shared/vendor/manifest.js +180 -826
  490. package/hmr/shared/vendor/manifest.js.map +1 -1
  491. package/hmr/shared/vendor/registry.d.ts +2 -0
  492. package/hmr/shared/vendor/registry.js +14 -0
  493. package/hmr/shared/vendor/registry.js.map +1 -1
  494. package/hmr/shared/vendor/vendor-device-shim.d.ts +1 -0
  495. package/hmr/shared/vendor/vendor-device-shim.js +208 -0
  496. package/hmr/shared/vendor/vendor-device-shim.js.map +1 -0
  497. package/hmr/shared/vendor/vendor-esbuild-plugins.d.ts +107 -0
  498. package/hmr/shared/vendor/vendor-esbuild-plugins.js +540 -0
  499. package/hmr/shared/vendor/vendor-esbuild-plugins.js.map +1 -0
  500. package/index.d.ts +1 -0
  501. package/index.js +5 -0
  502. package/index.js.map +1 -1
  503. package/package.json +65 -13
  504. package/runtime/core-aliases-early.js +28 -57
  505. package/runtime/core-aliases-early.js.map +1 -1
  506. package/shims/react-jsx-runtime.d.ts +4 -0
  507. package/shims/react-jsx-runtime.js +61 -0
  508. package/shims/react-jsx-runtime.js.map +1 -0
  509. package/helpers/angular/angular-linker.d.ts +0 -13
  510. package/helpers/angular/angular-linker.js +0 -194
  511. package/helpers/angular/angular-linker.js.map +0 -1
  512. package/helpers/angular/inline-decorator-component-templates.js.map +0 -1
  513. package/helpers/angular/shared-linker.d.ts +0 -11
  514. package/helpers/angular/shared-linker.js +0 -75
  515. package/helpers/angular/shared-linker.js.map +0 -1
  516. package/helpers/angular/synthesize-decorator-ctor-parameters.js.map +0 -1
  517. package/helpers/angular/synthesize-injectable-factories.js.map +0 -1
  518. package/helpers/angular/util.js +0 -67
  519. package/helpers/angular/util.js.map +0 -1
  520. package/helpers/module-runner-patch.d.ts +0 -3
  521. package/helpers/module-runner-patch.js +0 -63
  522. package/helpers/module-runner-patch.js.map +0 -1
  523. package/helpers/prelink-angular.d.ts +0 -2
  524. package/helpers/prelink-angular.js +0 -117
  525. package/helpers/prelink-angular.js.map +0 -1
  526. package/hmr/server/websocket-angular-entry.js.map +0 -1
  527. package/hmr/server/websocket-angular-hot-update.js.map +0 -1
  528. package/hmr/server/websocket-ns-m-finalize.d.ts +0 -22
  529. package/hmr/server/websocket-ns-m-finalize.js +0 -88
  530. package/hmr/server/websocket-ns-m-finalize.js.map +0 -1
  531. package/hmr/server/websocket-runtime-compat.d.ts +0 -19
  532. package/hmr/server/websocket-runtime-compat.js +0 -287
  533. package/hmr/server/websocket-runtime-compat.js.map +0 -1
  534. package/hmr/server/websocket-vue-sfc.d.ts +0 -27
  535. package/hmr/server/websocket-vue-sfc.js +0 -1114
  536. package/hmr/server/websocket-vue-sfc.js.map +0 -1
  537. package/hmr/shared/runtime/http-only-boot.d.ts +0 -2
  538. package/hmr/shared/runtime/http-only-boot.js +0 -171
  539. package/hmr/shared/runtime/http-only-boot.js.map +0 -1
  540. package/hmr/vendor-bootstrap.d.ts +0 -3
  541. package/hmr/vendor-bootstrap.js +0 -32
  542. package/hmr/vendor-bootstrap.js.map +0 -1
  543. package/shims/react-reconciler-constants.d.ts +0 -14
  544. package/shims/react-reconciler-constants.js +0 -21
  545. package/shims/react-reconciler-constants.js.map +0 -1
  546. package/shims/react-reconciler.d.ts +0 -8
  547. package/shims/react-reconciler.js +0 -15
  548. package/shims/react-reconciler.js.map +0 -1
  549. package/transformers/NativeClass/index.d.ts +0 -2
  550. package/transformers/NativeClass/index.js +0 -222
  551. package/transformers/NativeClass/index.js.map +0 -1
  552. /package/{helpers/angular → hmr/frameworks/angular/build}/inline-decorator-component-templates.d.ts +0 -0
  553. /package/{helpers/angular → hmr/frameworks/angular/build}/synthesize-decorator-ctor-parameters.d.ts +0 -0
  554. /package/{helpers/angular → hmr/frameworks/angular/build}/synthesize-injectable-factories.d.ts +0 -0
  555. /package/hmr/{server → frameworks/angular/server}/websocket-angular-entry.d.ts +0 -0
@@ -1,4 +1,4 @@
1
- import { transformNativeClassSource } from './nativeclass-transform.js';
1
+ import { isNativeESClassesEnabled, transformNativeClassSource } from './nativeclass-transform.js';
2
2
  /**
3
3
  * Esbuild plugin that applies the NativeClass transformer to TypeScript/JavaScript files.
4
4
  * This is needed for vendor bundle generation which uses esbuild directly instead of Vite's
@@ -9,6 +9,11 @@ export function createNativeClassEsbuildPlugin(platform) {
9
9
  return {
10
10
  name: 'ns-nativeclass-esbuild',
11
11
  setup(build) {
12
+ // Native ES class mode (Apple targets only): the runtime handles ES classes and
13
+ // the NativeClass decorator directly, so vendor bundles need no rewriting either.
14
+ if (isNativeESClassesEnabled(platform)) {
15
+ return;
16
+ }
12
17
  // We need to use onLoad to transform the file contents
13
18
  // Filter to only process .ts and .js files that might contain @NativeClass
14
19
  build.onLoad({ filter: /\.(ts|tsx|js|mjs|cjs)$/ }, async (args) => {
@@ -1 +1 @@
1
- {"version":3,"file":"nativeclass-esbuild-plugin.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/nativeclass-esbuild-plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAExE;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAAC,QAAwC;IACtF,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAEnD,OAAO;QACN,IAAI,EAAE,wBAAwB;QAC9B,KAAK,CAAC,KAAK;YACV,uDAAuD;YACvD,2EAA2E;YAC3E,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,wBAAwB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACjE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;gBACjD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBAEvB,4BAA4B;gBAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC1D,OAAO,SAAS,CAAC,CAAC,+BAA+B;gBAClD,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBACvF,OAAO,SAAS,CAAC,CAAC,+BAA+B;gBAClD,CAAC;gBAED,wBAAwB;gBACxB,IAAI,QAAgB,CAAC;gBACrB,IAAI,CAAC;oBACJ,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC1C,CAAC;gBAAC,MAAM,CAAC;oBACR,OAAO,SAAS,CAAC,CAAC,wBAAwB;gBAC3C,CAAC;gBAED,qDAAqD;gBACrD,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBAC7F,IAAI,CAAC,cAAc,EAAE,CAAC;oBACrB,OAAO,SAAS,CAAC,CAAC,2BAA2B;gBAC9C,CAAC;gBAED,IAAI,OAAO,EAAE,CAAC;oBACb,OAAO,CAAC,GAAG,CAAC,8DAA8D,IAAI,EAAE,CAAC,CAAC;gBACnF,CAAC;gBAED,uCAAuC;gBACvC,MAAM,MAAM,GAAG,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAE1D,IAAI,MAAM,EAAE,CAAC;oBACZ,IAAI,OAAO,EAAE,CAAC;wBACb,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;wBACrD,IAAI,QAAQ,EAAE,CAAC;4BACd,OAAO,CAAC,IAAI,CAAC,kFAAkF,IAAI,EAAE,CAAC,CAAC;wBACxG,CAAC;6BAAM,CAAC;4BACP,OAAO,CAAC,GAAG,CAAC,qDAAqD,IAAI,EAAE,CAAC,CAAC;wBAC1E,CAAC;oBACF,CAAC;oBAED,+CAA+C;oBAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,IAAI,CAAC;oBACzD,MAAM,MAAM,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;oBAElE,OAAO;wBACN,QAAQ,EAAE,MAAM,CAAC,IAAI;wBACrB,MAAM,EAAE,MAAM;qBACd,CAAC;gBACH,CAAC;gBAED,4DAA4D;gBAC5D,OAAO,SAAS,CAAC;YAClB,CAAC,CAAC,CAAC;QACJ,CAAC;KACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"nativeclass-esbuild-plugin.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/nativeclass-esbuild-plugin.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,16 @@
1
+ import type { Platform } from './platform-types.js';
2
+ /**
3
+ * Opt-in: skip the NativeClass ES5 downlevel entirely and let the iOS runtime handle plain
4
+ * ES `class X extends NativeBase {}` declarations natively (the runtime registers the
5
+ * Objective-C class lazily via new.target and also provides a global no-op `NativeClass`
6
+ * decorator, so decorated sources keep working without any build-time rewriting).
7
+ *
8
+ * Enabled via `--env.nativeESClasses` or the NS_NATIVE_ES_CLASSES environment variable
9
+ * (set NS_NATIVE_ES_CLASSES=0/false to force-disable). Android continues to require the
10
+ * ES5 downlevel (the Static Binding Generator relies on it), so this never applies to
11
+ * Android targets.
12
+ */
13
+ export declare function isNativeESClassesEnabled(platform?: Platform): boolean;
1
14
  /**
2
15
  * Apply the NativeClass transformer to a source string. Returns null if no change performed.
3
16
  */
@@ -1,18 +1,44 @@
1
1
  import ts from 'typescript';
2
- // We retain the advanced transformer for future enhancement but perform a safer
3
- // localized textual + AST-assisted downlevel here to avoid edge corruption of
4
- // computed property names (e.g. ['frame-in']).
5
- // import nativeClassTransformer from '../transformers/NativeClass/index.js';
2
+ // This is the active NativeClass transform: a localized textual + AST-assisted
3
+ // downlevel that avoids edge corruption of computed property names (e.g.
4
+ // ['frame-in']). It is the single production implementation in this package.
6
5
  import { getCliFlags } from './cli-flags.js';
6
+ /**
7
+ * Opt-in: skip the NativeClass ES5 downlevel entirely and let the iOS runtime handle plain
8
+ * ES `class X extends NativeBase {}` declarations natively (the runtime registers the
9
+ * Objective-C class lazily via new.target and also provides a global no-op `NativeClass`
10
+ * decorator, so decorated sources keep working without any build-time rewriting).
11
+ *
12
+ * Enabled via `--env.nativeESClasses` or the NS_NATIVE_ES_CLASSES environment variable
13
+ * (set NS_NATIVE_ES_CLASSES=0/false to force-disable). Android continues to require the
14
+ * ES5 downlevel (the Static Binding Generator relies on it), so this never applies to
15
+ * Android targets.
16
+ */
17
+ export function isNativeESClassesEnabled(platform) {
18
+ if (platform === 'android')
19
+ return false;
20
+ const envValue = process.env.NS_NATIVE_ES_CLASSES;
21
+ if (envValue !== undefined) {
22
+ return envValue !== '0' && envValue.toLowerCase() !== 'false';
23
+ }
24
+ try {
25
+ const flags = getCliFlags();
26
+ return !!flags.nativeESClasses;
27
+ }
28
+ catch (e) {
29
+ return false;
30
+ }
31
+ }
7
32
  /**
8
33
  * Apply the NativeClass transformer to a source string. Returns null if no change performed.
9
34
  */
10
35
  export function transformNativeClassSource(code, fileName) {
11
36
  // Avoid transforming platform-specific sources for the non-target platform.
12
37
  // Example: don't run Android-specific transforms on iOS builds and vice versa.
38
+ let platform;
13
39
  try {
14
40
  const flags = getCliFlags();
15
- const platform = flags.android ? 'android' : 'ios';
41
+ platform = flags.android ? 'android' : 'ios';
16
42
  if (fileName.includes('.android.') && platform !== 'android')
17
43
  return null;
18
44
  if ((fileName.includes('.ios.') || fileName.includes('.visionos.')) && platform === 'android')
@@ -21,6 +47,10 @@ export function transformNativeClassSource(code, fileName) {
21
47
  catch (e) {
22
48
  // If cli flags cannot be read for any reason, fall back to original behavior.
23
49
  }
50
+ // Native ES class mode (Apple targets only): leave sources untouched - the runtime
51
+ // understands ES classes extending native types and the NativeClass decorator itself.
52
+ if (isNativeESClassesEnabled(platform))
53
+ return null;
24
54
  // If this is JS and we see a __decorate* call that references NativeClass, strip it safely.
25
55
  const isJS = /\.(js|mjs|cjs)$/.test(fileName);
26
56
  if (isJS && /__decorate[a-zA-Z$]*\s*\(/.test(code) && /\bNativeClass\b/.test(code)) {
@@ -74,7 +104,7 @@ export function transformNativeClassSource(code, fileName) {
74
104
  // Match @NativeClass (optionally with args, multi-line) not preceded by another decorator line capturing stacked sequences.
75
105
  // We'll place the marker right before the class declaration start to simplify slicing.
76
106
  const DECORATOR_BLOCK_RE = /(^|\n)((?:\s*@[\w$][^\n]*\n)*)\s*@NativeClass(?:\([\s\S]*?\))?\s*(?=\n(?:\s*@[\w$][^\n]*\n)*\s*(?:export\s+)?class\s)/g;
77
- let working = code.replace(DECORATOR_BLOCK_RE, (full, prefix, stacked) => {
107
+ const working = code.replace(DECORATOR_BLOCK_RE, (full, prefix, stacked) => {
78
108
  // Keep other decorators, inject marker after them.
79
109
  return `${prefix || '\n'}${stacked || ''}/*__NativeClass__*/`;
80
110
  });
@@ -108,7 +138,7 @@ export function transformNativeClassSource(code, fileName) {
108
138
  let cleaned = down.replace(/export \{\};?\s*$/m, '');
109
139
  if (hadExport) {
110
140
  const name = node.name?.text;
111
- if (name && !new RegExp(`export\s*{\s*${name}\s*}`, 'm').test(cleaned)) {
141
+ if (name && !new RegExp(`export\\s*\\{\\s*${name}\\s*\\}`, 'm').test(cleaned)) {
112
142
  cleaned += `\nexport { ${name} };\n`;
113
143
  }
114
144
  }
@@ -1 +1 @@
1
- {"version":3,"file":"nativeclass-transform.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/nativeclass-transform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nativeclass-transform.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/nativeclass-transform.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,15 @@
1
1
  import type { Plugin } from 'vite';
2
2
  /**
3
3
  * Post-phase cleanup for NativeClass decorators.
4
- * Strips __decorate([NativeClass()], X) and downlevels ES6 classes to ES5
5
- * so the NativeScript runtime can detect native class inheritance via __extends.
4
+ * Strips `NativeClass` from any `__decorate([...], X)` call (regardless of what
5
+ * other decorators / metadata appear in the array) and downlevels ES6 classes
6
+ * to ES5 so the NativeScript runtime can detect native class inheritance via
7
+ * `__extends`.
8
+ *
9
+ * The pre-phase plugin runs before Vite's TS pipeline and produces ES5 directly,
10
+ * but downstream plugins (notably the Angular plugin) re-compile from the
11
+ * original TypeScript source and overwrite the pre-phase output. This post-phase
12
+ * pass catches those survivors. It's the safety net, not the primary path.
6
13
  *
7
14
  * Exported separately for testability.
8
15
  */
@@ -1,9 +1,135 @@
1
1
  import ts from 'typescript';
2
- import { transformNativeClassSource } from './nativeclass-transform.js';
2
+ import { isNativeESClassesEnabled, transformNativeClassSource } from './nativeclass-transform.js';
3
+ import { resolvePlatform } from './cli-flags.js';
4
+ /**
5
+ * Look for `NativeClass` either as a bare identifier or as a `NativeClass(...)` call expression
6
+ * inside a `__decorate` array element. Returns true if the element is a NativeClass marker.
7
+ */
8
+ function isNativeClassDecoratorElement(el) {
9
+ if (ts.isIdentifier(el) && el.text === 'NativeClass')
10
+ return true;
11
+ if (ts.isCallExpression(el) && ts.isIdentifier(el.expression) && el.expression.text === 'NativeClass')
12
+ return true;
13
+ return false;
14
+ }
15
+ /**
16
+ * Walk the AST and collect every `__decorate([..., NativeClass(), ...], X)` (or
17
+ * `__decorate*` variants) where the array contains a NativeClass marker.
18
+ *
19
+ * For each such call we record the target class name (so it can be downleveled
20
+ * later) and produce a textual edit that strips ONLY the `NativeClass` element.
21
+ * If `NativeClass` was the only element, the whole `__decorate(...)` call is
22
+ * replaced with its target identifier so the surrounding assignment becomes a
23
+ * harmless self-assign (`X = X`) and `NativeClass` no longer appears in the
24
+ * served output.
25
+ *
26
+ * Using AST instead of regex lets us tolerate any number of additional
27
+ * decorators in the array (e.g. `__metadata("design:paramtypes", [])`), which
28
+ * Angular's compiler always emits when a class has a constructor.
29
+ */
30
+ function collectNativeClassDecorateEdits(code, sf) {
31
+ const edits = [];
32
+ const classNames = new Set();
33
+ const visit = (node) => {
34
+ if (ts.isCallExpression(node)) {
35
+ const callee = node.expression;
36
+ const calleeName = ts.isIdentifier(callee) ? callee.text : ts.isPropertyAccessExpression(callee) && ts.isIdentifier(callee.expression) && ts.isIdentifier(callee.name) ? `${callee.expression.text}.${callee.name.text}` : undefined;
37
+ if (calleeName && /^__decorate/.test(calleeName) && node.arguments.length >= 2) {
38
+ const firstArg = node.arguments[0];
39
+ const secondArg = node.arguments[1];
40
+ if (ts.isArrayLiteralExpression(firstArg) && ts.isIdentifier(secondArg)) {
41
+ const remaining = firstArg.elements.filter((el) => !isNativeClassDecoratorElement(el));
42
+ if (remaining.length !== firstArg.elements.length) {
43
+ classNames.add(secondArg.text);
44
+ const callStart = node.getStart(sf);
45
+ const callEnd = node.getEnd();
46
+ if (remaining.length === 0) {
47
+ // Replace `__decorate([NativeClass()], X)` with `X` so the surrounding
48
+ // assignment (`X = __decorate(...)`) becomes `X = X` — a no-op the runtime
49
+ // will skip without errors.
50
+ edits.push({ start: callStart, end: callEnd, text: secondArg.text });
51
+ }
52
+ else {
53
+ const remainingText = remaining.map((el) => code.slice(el.getStart(sf), el.getEnd())).join(', ');
54
+ const followingArgs = node.arguments.slice(1);
55
+ const argsText = `[${remainingText}]` + (followingArgs.length ? ', ' + followingArgs.map((a) => code.slice(a.getStart(sf), a.getEnd())).join(', ') : '');
56
+ edits.push({ start: callStart, end: callEnd, text: `${calleeName}(${argsText})` });
57
+ }
58
+ }
59
+ }
60
+ }
61
+ }
62
+ ts.forEachChild(node, visit);
63
+ };
64
+ visit(sf);
65
+ return { edits, classNames };
66
+ }
67
+ /**
68
+ * Strip `__extends` from any tslib named import that may already exist in the
69
+ * served file. The NativeScript iOS V8 runtime registers a NATIVE-aware
70
+ * `__extends` on `globalThis` (see ClassBuilder.mm `RegisterNativeTypeScriptExtendsFunction`)
71
+ * which performs ObjC class registration when the parent is a native wrapper
72
+ * (e.g. `NSObject`). Importing `__extends` from tslib shadows that global with
73
+ * tslib's plain implementation, which never registers the class as a native
74
+ * subclass — leading to `Cannot read properties of undefined (reading '__extended')`
75
+ * when `_super.call(this)` runs. We must let `__extends` fall through to the
76
+ * runtime global, so any pre-existing tslib `__extends` named import is removed
77
+ * from this file's `tslib` import.
78
+ */
79
+ function stripExtendsImportFromTslib(code) {
80
+ if (!/\b__extends\b/.test(code))
81
+ return code;
82
+ let sf;
83
+ try {
84
+ sf = ts.createSourceFile('extends-import-check.js', code, ts.ScriptTarget.Latest, true, ts.ScriptKind.JS);
85
+ }
86
+ catch {
87
+ return code;
88
+ }
89
+ const edits = [];
90
+ for (const stmt of sf.statements) {
91
+ if (!ts.isImportDeclaration(stmt))
92
+ continue;
93
+ const spec = stmt.moduleSpecifier;
94
+ if (!ts.isStringLiteral(spec))
95
+ continue;
96
+ // Match any tslib variant ("tslib", "tslib/...", or absolute paths to tslib).
97
+ if (!/(?:^|\/)tslib(?:\/|$)|(?:^|[/\\])tslib[/\\]/.test(spec.text))
98
+ continue;
99
+ const clause = stmt.importClause;
100
+ if (!clause || !clause.namedBindings || !ts.isNamedImports(clause.namedBindings))
101
+ continue;
102
+ const named = clause.namedBindings;
103
+ const remaining = named.elements.filter((el) => (el.propertyName?.text ?? el.name.text) !== '__extends');
104
+ if (remaining.length === named.elements.length)
105
+ continue;
106
+ if (remaining.length === 0 && !clause.name) {
107
+ // The whole import would become empty — drop the entire statement.
108
+ edits.push({ start: stmt.getFullStart(), end: stmt.getEnd(), text: '' });
109
+ continue;
110
+ }
111
+ const remainingText = remaining.map((el) => code.slice(el.getStart(sf), el.getEnd())).join(', ');
112
+ edits.push({ start: named.getStart(sf), end: named.getEnd(), text: `{ ${remainingText} }` });
113
+ }
114
+ if (!edits.length)
115
+ return code;
116
+ let output = code;
117
+ for (const e of edits.sort((a, b) => b.start - a.start)) {
118
+ output = output.slice(0, e.start) + e.text + output.slice(e.end);
119
+ }
120
+ return output;
121
+ }
3
122
  /**
4
123
  * Post-phase cleanup for NativeClass decorators.
5
- * Strips __decorate([NativeClass()], X) and downlevels ES6 classes to ES5
6
- * so the NativeScript runtime can detect native class inheritance via __extends.
124
+ * Strips `NativeClass` from any `__decorate([...], X)` call (regardless of what
125
+ * other decorators / metadata appear in the array) and downlevels ES6 classes
126
+ * to ES5 so the NativeScript runtime can detect native class inheritance via
127
+ * `__extends`.
128
+ *
129
+ * The pre-phase plugin runs before Vite's TS pipeline and produces ES5 directly,
130
+ * but downstream plugins (notably the Angular plugin) re-compile from the
131
+ * original TypeScript source and overwrite the pre-phase output. This post-phase
132
+ * pass catches those survivors. It's the safety net, not the primary path.
7
133
  *
8
134
  * Exported separately for testability.
9
135
  */
@@ -12,24 +138,29 @@ export function postCleanupNativeClass(code, bareId, verbose = false) {
12
138
  return null;
13
139
  if (!code.includes('__decorate') || !code.includes('NativeClass'))
14
140
  return null;
15
- // Collect class names that have NativeClass in their __decorate call
16
- const decorateRe = /(\w+)\s*=\s*(?:\w+\s*=\s*)?__decorate\(\s*\[\s*NativeClass\(\)\s*\]\s*,\s*(\w+)\s*\)/g;
17
- const classNamesToDownlevel = new Set();
18
- let m;
19
- while ((m = decorateRe.exec(code)) !== null) {
20
- classNamesToDownlevel.add(m[2]);
141
+ let sf;
142
+ try {
143
+ sf = ts.createSourceFile(bareId + '.js', code, ts.ScriptTarget.Latest, true, ts.ScriptKind.JS);
144
+ }
145
+ catch {
146
+ return null;
21
147
  }
148
+ const { edits: decorateEdits, classNames: classNamesToDownlevel } = collectNativeClassDecorateEdits(code, sf);
22
149
  if (!classNamesToDownlevel.size)
23
150
  return null;
24
- // Strip NativeClass from __decorate arrays: __decorate([NativeClass()], X) → X
25
- let output = code.replace(decorateRe, '$1 = $2');
26
- // Now downlevel any ES6 class expression that extends a native base.
27
- // Angular's re-compilation may have emitted:
151
+ // Apply decorator-stripping edits first so the AST we re-parse for the downlevel pass is consistent.
152
+ let output = code;
153
+ for (const e of decorateEdits.sort((a, b) => b.start - a.start)) {
154
+ output = output.slice(0, e.start) + e.text + output.slice(e.end);
155
+ }
156
+ // Downlevel any ES6 class expression that extends a native base.
157
+ // Angular's re-compilation typically emits:
28
158
  // var AppDelegate = class AppDelegate extends UIResponder { ... };
29
159
  // or with _1 alias:
30
160
  // var PDFViewDelegateImpl = PDFViewDelegateImpl_1 = class PDFViewDelegateImpl extends NSObject { ... };
31
- // We need to find these and downlevel them to ES5 with __extends so the
32
- // NativeScript runtime can detect native class inheritance.
161
+ // We rewrite each into ES5 with __extends so the NativeScript runtime can detect
162
+ // native class inheritance and register ObjC/Java classes.
163
+ let downleveledAtLeastOne = false;
33
164
  for (const className of Array.from(classNamesToDownlevel)) {
34
165
  try {
35
166
  // Use TypeScript AST to find and extract the class expression reliably
@@ -101,6 +232,7 @@ export function postCleanupNativeClass(code, bareId, verbose = false) {
101
232
  replacement = replacement.replace(`var ${className} =`, `var ${className} = ${aliasName} =`);
102
233
  }
103
234
  output = output.slice(0, varDeclStart) + replacement + output.slice(varDeclEnd);
235
+ downleveledAtLeastOne = true;
104
236
  if (verbose) {
105
237
  console.log(`[ns-nativeclass-post] Downleveled ES6 class "${className}" to ES5 with __extends in ${bareId}`);
106
238
  }
@@ -112,6 +244,18 @@ export function postCleanupNativeClass(code, bareId, verbose = false) {
112
244
  // If downleveling fails, the decorator is at least stripped
113
245
  }
114
246
  }
247
+ // If we downleveled at least one class, the output now references __extends.
248
+ // We MUST NOT import __extends from tslib here: the NativeScript iOS V8 runtime
249
+ // installs a native-aware `__extends` on `globalThis` that handles native class
250
+ // registration when the parent is a native wrapper (e.g. NSObject). Importing
251
+ // tslib's __extends would shadow that global with a plain implementation that
252
+ // never registers the class as a native subclass, leading to
253
+ // `Cannot read properties of undefined (reading '__extended')` when
254
+ // `_super.call(this)` runs. Let the bare `__extends(...)` reference fall
255
+ // through to the runtime global.
256
+ if (downleveledAtLeastOne) {
257
+ output = stripExtendsImportFromTslib(output);
258
+ }
115
259
  if (output !== code) {
116
260
  if (verbose) {
117
261
  console.log(`[ns-nativeclass-post] Cleaned __decorate NativeClass from ${bareId}`);
@@ -177,6 +321,10 @@ export function createNativeClassTransformerPlugin() {
177
321
  name: 'ns-nativeclass-post-cleanup',
178
322
  enforce: 'post',
179
323
  transform(code, id) {
324
+ // Native ES class mode (Apple targets only): the runtime handles ES classes and
325
+ // the NativeClass decorator directly, so no post-phase strip/downlevel either.
326
+ if (isNativeESClassesEnabled(resolvePlatform()))
327
+ return null;
180
328
  const bareId = id.split('?')[0];
181
329
  if (!/\.(ts|tsx|js|mjs)$/.test(bareId))
182
330
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"nativeclass-transformer-plugin.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/nativeclass-transformer-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nativeclass-transformer-plugin.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/nativeclass-transformer-plugin.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import path from 'path';
2
2
  import fs from 'fs';
3
3
  import { getProjectRootPath } from './project.js';
4
4
  import { findPackageInNodeModules } from './module-resolution.js';
5
+ import { resolveMainFieldPlatformVariant } from './resolve-main-field-platform.js';
5
6
  const projectRoot = getProjectRootPath();
6
7
  // Cache for package resolution results
7
8
  const packageCache = new Map();
@@ -53,66 +54,16 @@ export function nativescriptPackageResolver(platform) {
53
54
  if (fs.existsSync(packageJsonPath)) {
54
55
  try {
55
56
  const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
56
- const mainField = packageJson.main;
57
- if (mainField) {
58
- const mainFilePath = path.join(packagePath, mainField);
59
- // Case 1: Main field has no extension - try to add extensions
60
- if (!mainField.includes('.')) {
61
- // Try platform-specific file first
62
- const platformFile = path.join(packagePath, `${mainField}.${platform}.js`);
63
- if (fs.existsSync(platformFile)) {
64
- const result = {
65
- id: platformFile,
66
- resolvedBy: 'nativescript-package-resolver',
67
- };
68
- packageCache.set(packageName, result);
69
- // console.log(
70
- // `🔧 Package resolver: ${packageName} -> ${mainField}.${platform}.js (extensionless)`,
71
- // );
72
- return result;
73
- }
74
- // Fallback to .js
75
- const jsFile = path.join(packagePath, `${mainField}.js`);
76
- if (fs.existsSync(jsFile)) {
77
- const result = {
78
- id: jsFile,
79
- resolvedBy: 'nativescript-package-resolver',
80
- };
81
- packageCache.set(packageName, result);
82
- // console.log(
83
- // `🔧 Package resolver: ${packageName} -> ${mainField}.js (extensionless)`,
84
- // );
85
- return result;
86
- }
87
- }
88
- // Case 2: Main field has extension but file doesn't exist - look for platform variants
89
- else if (!fs.existsSync(mainFilePath)) {
90
- // Extract base name and extension
91
- const ext = path.extname(mainField);
92
- const baseName = mainField.slice(0, -ext.length);
93
- // Try platform-specific file first
94
- const platformFile = path.join(packagePath, `${baseName}.${platform}${ext}`);
95
- if (fs.existsSync(platformFile)) {
96
- const result = {
97
- id: platformFile,
98
- resolvedBy: 'nativescript-package-resolver',
99
- };
100
- packageCache.set(packageName, result);
101
- // console.log(
102
- // `🔧 Package resolver: ${packageName} -> ${baseName}.${platform}${ext} (missing main)`,
103
- // );
104
- return result;
105
- }
106
- // Cache as null - no platform variant found
107
- packageCache.set(packageName, null);
108
- return null;
109
- }
110
- else {
111
- // Main file exists - let normal resolution handle it
112
- packageCache.set(packageName, null);
113
- return null;
114
- }
57
+ // Shared main-field platform-variant rules (Case 1/2). Returns a
58
+ // normalizeModuleId-canonical id, or null when no rewrite applies.
59
+ const resolved = resolveMainFieldPlatformVariant(packagePath, packageJson.main, platform);
60
+ if (resolved) {
61
+ const result = { id: resolved, resolvedBy: 'nativescript-package-resolver' };
62
+ packageCache.set(packageName, result);
63
+ return result;
115
64
  }
65
+ packageCache.set(packageName, null);
66
+ return null;
116
67
  }
117
68
  catch (e) {
118
69
  // Cache as null on error
@@ -131,9 +82,6 @@ export function nativescriptPackageResolver(platform) {
131
82
  packageCache.set(packageName, null);
132
83
  return null;
133
84
  }
134
- // Cache as null and return null
135
- packageCache.set(packageName, null);
136
- return null;
137
85
  },
138
86
  };
139
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"nativescript-package-resolver.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/nativescript-package-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nativescript-package-resolver.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/nativescript-package-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Canonicalize a filesystem path so it can serve as a STABLE Rolldown module id
3
+ * that is identical regardless of the host operating system.
4
+ *
5
+ * Why this exists
6
+ * ---------------
7
+ * Rolldown keys its module graph on the raw `resolveId` string. It does NOT
8
+ * unify `C:\proj\node_modules\@nativescript\core\ui\index.js` with
9
+ * `C:/proj/node_modules/@nativescript/core/ui/index.js`, nor `c:/…` with
10
+ * `C:/…`. Any two ids that point at the same physical file but differ in
11
+ * separator style or drive-letter case become two distinct modules — so the
12
+ * file is evaluated twice.
13
+ *
14
+ * NativeScript ships several `enforce: 'pre'` resolver plugins
15
+ * (`NativeScriptPlugin`, `nativescriptPackageResolver`,
16
+ * `packagePlatformResolverPlugin`, the tsconfig-paths resolver). They all build
17
+ * ids with Node's `path.resolve`/`path.join`, which on Windows emit
18
+ * backslashes and inherit the drive-letter case of `process.cwd()`. Meanwhile
19
+ * Vite's alias replacement (`NS_CORE_ROOT`) and Vite's own resolver emit
20
+ * forward-slash ids whose drive case comes from `require.resolve()`/realpath.
21
+ *
22
+ * The result on Windows: `@nativescript/core`'s internal relative imports
23
+ * (resolved by our plugins → backslashes) and the same files reached via bare
24
+ * `@nativescript/core/*` specifiers (resolved by the alias → forward slashes)
25
+ * produce different ids, core is bundled twice, and the second
26
+ * `widthProperty.register(View)` crashes on a non-configurable property.
27
+ *
28
+ * macOS/Linux never hit this because POSIX paths from every code path are
29
+ * already byte-identical — which is exactly why this normalization is a no-op
30
+ * there.
31
+ *
32
+ * Canonical form
33
+ * --------------
34
+ * - forward slashes (the form Vite/Rolldown and our alias replacement use)
35
+ * - uppercase Windows drive letter, matching Node's `realpath()`/
36
+ * `require.resolve()` convention — the source that seeds `NS_CORE_ROOT`.
37
+ *
38
+ * Virtual ids (`\0…`, `virtual:…`), query suffixes (`?worker`), and bare
39
+ * specifiers are preserved as-is apart from separator/drive canonicalization,
40
+ * so it is safe to call on any string a `resolveId` hook might return.
41
+ */
42
+ export declare function normalizeModuleId(id: string): string;