@nativescript/vite 8.0.0-alpha.2 → 8.0.0-alpha.21

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 (209) hide show
  1. package/configuration/angular.d.ts +34 -1
  2. package/configuration/angular.js +380 -34
  3. package/configuration/angular.js.map +1 -1
  4. package/configuration/base.js +171 -7
  5. package/configuration/base.js.map +1 -1
  6. package/configuration/solid.js +27 -1
  7. package/configuration/solid.js.map +1 -1
  8. package/configuration/typescript.js +1 -1
  9. package/configuration/typescript.js.map +1 -1
  10. package/helpers/angular/angular-linker.js +3 -12
  11. package/helpers/angular/angular-linker.js.map +1 -1
  12. package/helpers/angular/inject-component-hmr-registration.d.ts +112 -0
  13. package/helpers/angular/inject-component-hmr-registration.js +359 -0
  14. package/helpers/angular/inject-component-hmr-registration.js.map +1 -0
  15. package/helpers/angular/inject-hmr-vite-ignore.d.ts +75 -0
  16. package/helpers/angular/inject-hmr-vite-ignore.js +288 -0
  17. package/helpers/angular/inject-hmr-vite-ignore.js.map +1 -0
  18. package/helpers/angular/util.d.ts +1 -0
  19. package/helpers/angular/util.js +88 -0
  20. package/helpers/angular/util.js.map +1 -1
  21. package/helpers/commonjs-plugins.d.ts +5 -2
  22. package/helpers/commonjs-plugins.js +126 -0
  23. package/helpers/commonjs-plugins.js.map +1 -1
  24. package/helpers/config-as-json.js +10 -0
  25. package/helpers/config-as-json.js.map +1 -1
  26. package/helpers/dev-host.d.ts +274 -0
  27. package/helpers/dev-host.js +491 -0
  28. package/helpers/dev-host.js.map +1 -0
  29. package/helpers/global-defines.d.ts +51 -0
  30. package/helpers/global-defines.js +77 -0
  31. package/helpers/global-defines.js.map +1 -1
  32. package/helpers/logging.d.ts +1 -0
  33. package/helpers/logging.js +63 -3
  34. package/helpers/logging.js.map +1 -1
  35. package/helpers/main-entry.d.ts +3 -1
  36. package/helpers/main-entry.js +450 -125
  37. package/helpers/main-entry.js.map +1 -1
  38. package/helpers/nativeclass-transformer-plugin.d.ts +9 -2
  39. package/helpers/nativeclass-transformer-plugin.js +157 -14
  40. package/helpers/nativeclass-transformer-plugin.js.map +1 -1
  41. package/helpers/ns-core-url.d.ts +88 -0
  42. package/helpers/ns-core-url.js +191 -0
  43. package/helpers/ns-core-url.js.map +1 -0
  44. package/helpers/prelink-angular.js +1 -4
  45. package/helpers/prelink-angular.js.map +1 -1
  46. package/helpers/project.d.ts +35 -0
  47. package/helpers/project.js +120 -2
  48. package/helpers/project.js.map +1 -1
  49. package/helpers/resolver.js +9 -1
  50. package/helpers/resolver.js.map +1 -1
  51. package/helpers/solid-jsx-deps.d.ts +15 -0
  52. package/helpers/solid-jsx-deps.js +178 -0
  53. package/helpers/solid-jsx-deps.js.map +1 -0
  54. package/helpers/ts-config-paths.js +50 -2
  55. package/helpers/ts-config-paths.js.map +1 -1
  56. package/helpers/workers.d.ts +20 -19
  57. package/helpers/workers.js +620 -3
  58. package/helpers/workers.js.map +1 -1
  59. package/hmr/client/css-handler.d.ts +1 -0
  60. package/hmr/client/css-handler.js +34 -5
  61. package/hmr/client/css-handler.js.map +1 -1
  62. package/hmr/client/css-update-overlay.d.ts +18 -0
  63. package/hmr/client/css-update-overlay.js +27 -0
  64. package/hmr/client/css-update-overlay.js.map +1 -0
  65. package/hmr/client/hmr-pending-overlay.d.ts +27 -0
  66. package/hmr/client/hmr-pending-overlay.js +50 -0
  67. package/hmr/client/hmr-pending-overlay.js.map +1 -0
  68. package/hmr/client/index.js +491 -34
  69. package/hmr/client/index.js.map +1 -1
  70. package/hmr/client/utils.d.ts +5 -0
  71. package/hmr/client/utils.js +283 -12
  72. package/hmr/client/utils.js.map +1 -1
  73. package/hmr/client/vue-sfc-update-overlay.d.ts +82 -0
  74. package/hmr/client/vue-sfc-update-overlay.js +133 -0
  75. package/hmr/client/vue-sfc-update-overlay.js.map +1 -0
  76. package/hmr/entry-runtime.d.ts +2 -1
  77. package/hmr/entry-runtime.js +253 -66
  78. package/hmr/entry-runtime.js.map +1 -1
  79. package/hmr/frameworks/angular/client/index.d.ts +3 -1
  80. package/hmr/frameworks/angular/client/index.js +802 -10
  81. package/hmr/frameworks/angular/client/index.js.map +1 -1
  82. package/hmr/frameworks/angular/server/linker.js +1 -4
  83. package/hmr/frameworks/angular/server/linker.js.map +1 -1
  84. package/hmr/frameworks/angular/server/strategy.js +30 -6
  85. package/hmr/frameworks/angular/server/strategy.js.map +1 -1
  86. package/hmr/frameworks/typescript/server/strategy.js +8 -2
  87. package/hmr/frameworks/typescript/server/strategy.js.map +1 -1
  88. package/hmr/frameworks/vue/client/index.js +30 -45
  89. package/hmr/frameworks/vue/client/index.js.map +1 -1
  90. package/hmr/helpers/ast-normalizer.js +52 -5
  91. package/hmr/helpers/ast-normalizer.js.map +1 -1
  92. package/hmr/helpers/cjs-named-exports.d.ts +23 -0
  93. package/hmr/helpers/cjs-named-exports.js +152 -0
  94. package/hmr/helpers/cjs-named-exports.js.map +1 -0
  95. package/hmr/helpers/package-exports.d.ts +16 -0
  96. package/hmr/helpers/package-exports.js +396 -0
  97. package/hmr/helpers/package-exports.js.map +1 -0
  98. package/hmr/server/constants.js +13 -4
  99. package/hmr/server/constants.js.map +1 -1
  100. package/hmr/server/core-sanitize.d.ts +93 -8
  101. package/hmr/server/core-sanitize.js +222 -49
  102. package/hmr/server/core-sanitize.js.map +1 -1
  103. package/hmr/server/import-map.js +80 -22
  104. package/hmr/server/import-map.js.map +1 -1
  105. package/hmr/server/index.d.ts +2 -1
  106. package/hmr/server/index.js.map +1 -1
  107. package/hmr/server/ns-core-cjs-shape.d.ts +204 -0
  108. package/hmr/server/ns-core-cjs-shape.js +271 -0
  109. package/hmr/server/ns-core-cjs-shape.js.map +1 -0
  110. package/hmr/server/ns-rt-bridge.d.ts +51 -0
  111. package/hmr/server/ns-rt-bridge.js +131 -0
  112. package/hmr/server/ns-rt-bridge.js.map +1 -0
  113. package/hmr/server/perf-instrumentation.d.ts +114 -0
  114. package/hmr/server/perf-instrumentation.js +195 -0
  115. package/hmr/server/perf-instrumentation.js.map +1 -0
  116. package/hmr/server/runtime-graph-filter.d.ts +5 -0
  117. package/hmr/server/runtime-graph-filter.js +21 -0
  118. package/hmr/server/runtime-graph-filter.js.map +1 -0
  119. package/hmr/server/shared-transform-request.d.ts +12 -0
  120. package/hmr/server/shared-transform-request.js +144 -0
  121. package/hmr/server/shared-transform-request.js.map +1 -0
  122. package/hmr/server/vite-plugin.d.ts +21 -1
  123. package/hmr/server/vite-plugin.js +497 -58
  124. package/hmr/server/vite-plugin.js.map +1 -1
  125. package/hmr/server/websocket-angular-entry.d.ts +2 -0
  126. package/hmr/server/websocket-angular-entry.js +68 -0
  127. package/hmr/server/websocket-angular-entry.js.map +1 -0
  128. package/hmr/server/websocket-angular-hot-update.d.ts +78 -0
  129. package/hmr/server/websocket-angular-hot-update.js +413 -0
  130. package/hmr/server/websocket-angular-hot-update.js.map +1 -0
  131. package/hmr/server/websocket-core-bridge.d.ts +58 -0
  132. package/hmr/server/websocket-core-bridge.js +368 -0
  133. package/hmr/server/websocket-core-bridge.js.map +1 -0
  134. package/hmr/server/websocket-css-hot-update.d.ts +33 -0
  135. package/hmr/server/websocket-css-hot-update.js +65 -0
  136. package/hmr/server/websocket-css-hot-update.js.map +1 -0
  137. package/hmr/server/websocket-graph-upsert.d.ts +21 -0
  138. package/hmr/server/websocket-graph-upsert.js +33 -0
  139. package/hmr/server/websocket-graph-upsert.js.map +1 -0
  140. package/hmr/server/websocket-hmr-pending.d.ts +43 -0
  141. package/hmr/server/websocket-hmr-pending.js +55 -0
  142. package/hmr/server/websocket-hmr-pending.js.map +1 -0
  143. package/hmr/server/websocket-module-bindings.d.ts +6 -0
  144. package/hmr/server/websocket-module-bindings.js +471 -0
  145. package/hmr/server/websocket-module-bindings.js.map +1 -0
  146. package/hmr/server/websocket-module-specifiers.d.ts +101 -0
  147. package/hmr/server/websocket-module-specifiers.js +820 -0
  148. package/hmr/server/websocket-module-specifiers.js.map +1 -0
  149. package/hmr/server/websocket-ns-m-finalize.d.ts +22 -0
  150. package/hmr/server/websocket-ns-m-finalize.js +88 -0
  151. package/hmr/server/websocket-ns-m-finalize.js.map +1 -0
  152. package/hmr/server/websocket-ns-m-paths.d.ts +3 -0
  153. package/hmr/server/websocket-ns-m-paths.js +92 -0
  154. package/hmr/server/websocket-ns-m-paths.js.map +1 -0
  155. package/hmr/server/websocket-ns-m-request.d.ts +45 -0
  156. package/hmr/server/websocket-ns-m-request.js +196 -0
  157. package/hmr/server/websocket-ns-m-request.js.map +1 -0
  158. package/hmr/server/websocket-served-module-helpers.d.ts +36 -0
  159. package/hmr/server/websocket-served-module-helpers.js +644 -0
  160. package/hmr/server/websocket-served-module-helpers.js.map +1 -0
  161. package/hmr/server/websocket-txn.d.ts +6 -0
  162. package/hmr/server/websocket-txn.js +45 -0
  163. package/hmr/server/websocket-txn.js.map +1 -0
  164. package/hmr/server/websocket-vendor-unifier.d.ts +10 -0
  165. package/hmr/server/websocket-vendor-unifier.js +51 -0
  166. package/hmr/server/websocket-vendor-unifier.js.map +1 -0
  167. package/hmr/server/websocket-vue-sfc.d.ts +26 -0
  168. package/hmr/server/websocket-vue-sfc.js +1053 -0
  169. package/hmr/server/websocket-vue-sfc.js.map +1 -0
  170. package/hmr/server/websocket.d.ts +58 -75
  171. package/hmr/server/websocket.js +2232 -1802
  172. package/hmr/server/websocket.js.map +1 -1
  173. package/hmr/shared/package-classifier.d.ts +9 -0
  174. package/hmr/shared/package-classifier.js +58 -0
  175. package/hmr/shared/package-classifier.js.map +1 -0
  176. package/hmr/shared/runtime/boot-placeholder-ui.d.ts +69 -0
  177. package/hmr/shared/runtime/boot-placeholder-ui.js +101 -0
  178. package/hmr/shared/runtime/boot-placeholder-ui.js.map +1 -0
  179. package/hmr/shared/runtime/boot-progress.d.ts +40 -0
  180. package/hmr/shared/runtime/boot-progress.js +128 -0
  181. package/hmr/shared/runtime/boot-progress.js.map +1 -0
  182. package/hmr/shared/runtime/boot-timeline.d.ts +18 -0
  183. package/hmr/shared/runtime/boot-timeline.js +52 -0
  184. package/hmr/shared/runtime/boot-timeline.js.map +1 -0
  185. package/hmr/shared/runtime/browser-runtime-contract.d.ts +64 -0
  186. package/hmr/shared/runtime/browser-runtime-contract.js +54 -0
  187. package/hmr/shared/runtime/browser-runtime-contract.js.map +1 -0
  188. package/hmr/shared/runtime/dev-overlay.d.ts +78 -3
  189. package/hmr/shared/runtime/dev-overlay.js +1094 -26
  190. package/hmr/shared/runtime/dev-overlay.js.map +1 -1
  191. package/hmr/shared/runtime/module-provenance.js +1 -4
  192. package/hmr/shared/runtime/module-provenance.js.map +1 -1
  193. package/hmr/shared/runtime/root-placeholder.d.ts +1 -0
  194. package/hmr/shared/runtime/root-placeholder.js +1019 -151
  195. package/hmr/shared/runtime/root-placeholder.js.map +1 -1
  196. package/hmr/shared/runtime/session-bootstrap.d.ts +1 -0
  197. package/hmr/shared/runtime/session-bootstrap.js +309 -0
  198. package/hmr/shared/runtime/session-bootstrap.js.map +1 -0
  199. package/hmr/shared/runtime/vendor-bootstrap.js +1 -9
  200. package/hmr/shared/runtime/vendor-bootstrap.js.map +1 -1
  201. package/hmr/shared/vendor/manifest.d.ts +32 -0
  202. package/hmr/shared/vendor/manifest.js +411 -46
  203. package/hmr/shared/vendor/manifest.js.map +1 -1
  204. package/index.d.ts +1 -0
  205. package/index.js +5 -0
  206. package/index.js.map +1 -1
  207. package/package.json +9 -1
  208. package/runtime/core-aliases-early.js +94 -67
  209. package/runtime/core-aliases-early.js.map +1 -1
@@ -1,36 +1,437 @@
1
1
  import { createRequire } from 'node:module';
2
+ import fs from 'node:fs';
2
3
  import path from 'path';
3
- import os from 'os';
4
4
  import { pathToFileURL } from 'url';
5
+ import { NS_DEFAULT_DEV_FEATURE_FLAGS, NS_DEFAULT_HOST_MODULES } from '../shared/runtime/browser-runtime-contract.js';
6
+ import { resolveDeviceReachableHost } from '../../helpers/dev-host.js';
5
7
  const require = createRequire(import.meta.url);
6
8
  const VIRTUAL_ID = 'virtual:ns-hmr-client';
7
9
  const RESOLVED_ID = '\0' + VIRTUAL_ID;
8
- export function nsHmrClientVitePlugin(opts) {
9
- let config;
10
- const guessLanHost = () => {
11
- try {
12
- const nets = os.networkInterfaces();
13
- for (const name of Object.keys(nets)) {
14
- const addrs = nets[name] || [];
15
- for (const a of addrs) {
16
- if (!a)
17
- continue;
18
- // Node typings vary across versions; keep checks defensive
19
- const family = a.family;
20
- const internal = !!a.internal;
21
- const address = String(a.address || '');
22
- if (internal)
23
- continue;
24
- if (family === 'IPv4' || family === 4) {
25
- if (address && address !== '127.0.0.1')
26
- return address;
27
- }
28
- }
10
+ export function computeClientImportSpecifier(options) {
11
+ const { projectRoot, clientFsPath } = options;
12
+ let clientImport = clientFsPath;
13
+ try {
14
+ const fsPosix = clientFsPath.replace(/\\/g, '/');
15
+ const rel = path.relative(projectRoot, clientFsPath);
16
+ const relPosix = rel.replace(/\\/g, '/');
17
+ if (path.isAbsolute(rel)) {
18
+ clientImport = pathToFileURL(clientFsPath).toString();
19
+ }
20
+ else {
21
+ // Prefer routing via the absolute fs path's `node_modules/...` tail. This
22
+ // covers monorepo / pnpm setups where node_modules is hoisted ABOVE the
23
+ // project root and `path.relative` would otherwise produce a
24
+ // "../../node_modules/..." specifier. That relative form is sent to the
25
+ // device's bootstrap as `__NS_BROWSER_RUNTIME_CLIENT_IMPORT__`, where the
26
+ // URL constructor resolves it against `${origin}/__ns_dev__/client` and
27
+ // collapses the leading `..` segments back to `${origin}/node_modules/...`.
28
+ // That URL bypasses the `/ns/m/` AST-normalizer pipeline (which strips
29
+ // browser-only `/@vite/client` imports), so the on-device HTTP loader
30
+ // eventually tries to fetch `/@vite/client` and fails with
31
+ // "HTTP import failed (status=0)" / "Instantiation failed (http-loader)".
32
+ const lastNm = fsPosix.lastIndexOf('/node_modules/');
33
+ if (lastNm !== -1) {
34
+ return `/ns/m${fsPosix.slice(lastNm)}`;
29
35
  }
36
+ const normalizedRel = (relPosix.startsWith('.') ? relPosix : `/${relPosix}`).replace(/\/+/g, '/');
37
+ clientImport = normalizedRel.startsWith('/node_modules/') ? `/ns/m${normalizedRel}` : normalizedRel;
30
38
  }
31
- catch { }
32
- return undefined;
39
+ }
40
+ catch {
41
+ clientImport = clientFsPath.replace(/\\/g, '/');
42
+ }
43
+ return clientImport;
44
+ }
45
+ export function resolveProjectMainEntryPath(projectRoot) {
46
+ try {
47
+ const packageJsonPath = path.join(projectRoot, 'package.json');
48
+ const raw = fs.readFileSync(packageJsonPath, 'utf-8');
49
+ const parsed = JSON.parse(raw);
50
+ const mainEntry = typeof parsed.main === 'string' && parsed.main ? parsed.main : 'src/app.ts';
51
+ const resolved = path.resolve(projectRoot, mainEntry);
52
+ const relative = path.relative(projectRoot, resolved).replace(/\\/g, '/');
53
+ return `/${relative}`.replace(/\/+/g, '/');
54
+ }
55
+ catch {
56
+ return '/src/app.ts';
57
+ }
58
+ }
59
+ export function createNsDevSessionDescriptor(options) {
60
+ const protocol = options.secure ? 'https' : 'http';
61
+ const wsProtocol = options.secure ? 'wss' : 'ws';
62
+ const origin = `${protocol}://${options.requestHost}`;
63
+ const entryPathname = options.mainEntryPathname || resolveProjectMainEntryPath(options.projectRoot);
64
+ const canonicalEntryPathname = entryPathname.startsWith('/ns/m/') ? entryPathname : `/ns/m${entryPathname.startsWith('/') ? entryPathname : `/${entryPathname}`}`;
65
+ // Wrap the entry pathname in the `__ns_boot__/b1` boot tag so the
66
+ // dev server injects the boot-progress snippet (see
67
+ // `buildBootProgressSnippet`). The runtime's `CanonicalizeHttpUrlKey`
68
+ // strips the tag before keying the V8 module registry, so it's a
69
+ // pure request-time hint — boot and steady-state HMR URLs share
70
+ // cache identity.
71
+ const bootTaggedEntryPathname = `/ns/m/__ns_boot__/b1${canonicalEntryPathname.slice('/ns/m'.length)}`;
72
+ return {
73
+ sessionId: options.sessionId,
74
+ origin,
75
+ entryUrl: `${origin}${bootTaggedEntryPathname}`,
76
+ clientUrl: `${origin}/__ns_dev__/client`,
77
+ wsUrl: `${wsProtocol}://${options.requestHost}/ns-hmr`,
78
+ platform: options.platform,
79
+ runtimeConfigUrl: `${origin}/ns/import-map.json`,
80
+ hostModules: [...NS_DEFAULT_HOST_MODULES],
81
+ features: { ...NS_DEFAULT_DEV_FEATURE_FLAGS },
33
82
  };
83
+ }
84
+ function resolveBootstrapImportUrl(origin, clientImport) {
85
+ const normalizedOrigin = origin.replace(/\/$/, '');
86
+ if (!clientImport) {
87
+ return clientImport;
88
+ }
89
+ if (/^(?:https?|file):\/\//i.test(clientImport)) {
90
+ return clientImport;
91
+ }
92
+ if (clientImport.startsWith('/')) {
93
+ return `${normalizedOrigin}${clientImport}`;
94
+ }
95
+ try {
96
+ return new URL(clientImport, `${normalizedOrigin}/__ns_dev__/client`).toString();
97
+ }
98
+ catch {
99
+ return clientImport;
100
+ }
101
+ }
102
+ export function createNsDevClientBootstrapCode(options) {
103
+ const normalizedOrigin = options.origin.replace(/\/$/, '');
104
+ const resolvedClientImport = resolveBootstrapImportUrl(normalizedOrigin, options.clientImport);
105
+ const vendorBundleUrl = `${normalizedOrigin}/@nativescript/vendor.mjs`;
106
+ const vendorBootstrapUrl = `${normalizedOrigin}/ns/m/node_modules/@nativescript/vite/hmr/shared/runtime/vendor-bootstrap.js`;
107
+ return `
108
+ import { installVendorBootstrap as __nsBrowserRuntimeInstallVendorBootstrap } from ${JSON.stringify(vendorBootstrapUrl)};
109
+ import { vendorManifest as __nsBrowserRuntimeVendorManifest, __nsVendorModuleMap as __nsBrowserRuntimeVendorModuleMap } from ${JSON.stringify(vendorBundleUrl)};
110
+
111
+ const __NS_BROWSER_RUNTIME_WS_URL__ = ${JSON.stringify(options.wsUrl)};
112
+ const __NS_BROWSER_RUNTIME_ORIGIN__ = ${JSON.stringify(options.origin)};
113
+ const __NS_BROWSER_RUNTIME_CLIENT_IMPORT__ = ${JSON.stringify(resolvedClientImport)};
114
+ const __NS_BROWSER_RUNTIME_VERBOSE__ = ${options.verbose ? 'true' : 'false'};
115
+ let __nsBrowserRuntimeHmrClientStartPromise;
116
+ let __nsBrowserRuntimeSocket;
117
+ let __nsBrowserRuntimeSocketReconnectTimer;
118
+ let __nsBrowserRuntimeDelegationTimer;
119
+ let __nsBrowserRuntimeDelegationWarningIssued = false;
120
+ let __nsBrowserRuntimeBootWaitWarningIssued = false;
121
+
122
+ function __nsBrowserRuntimeWithSocketRole(url, role) {
123
+ try {
124
+ const resolved = new URL(url);
125
+ resolved.searchParams.set('ns_hmr_role', role);
126
+ return resolved.toString();
127
+ } catch {
128
+ const sep = url.includes('?') ? '&' : '?';
129
+ return url + sep + 'ns_hmr_role=' + encodeURIComponent(role);
130
+ }
131
+ }
132
+
133
+ const __NS_BROWSER_RUNTIME_FALLBACK_WS_URL__ = __nsBrowserRuntimeWithSocketRole(__NS_BROWSER_RUNTIME_WS_URL__, 'bootstrap');
134
+ const __NS_BROWSER_RUNTIME_FULL_CLIENT_WS_URL__ = __nsBrowserRuntimeWithSocketRole(__NS_BROWSER_RUNTIME_WS_URL__, 'full');
135
+
136
+ function __nsBrowserRuntimeEnsureVendorBootstrap() {
137
+ __nsBrowserRuntimeInstallVendorBootstrap(__nsBrowserRuntimeVendorManifest, __nsBrowserRuntimeVendorModuleMap, __NS_BROWSER_RUNTIME_VERBOSE__);
138
+ const registry = globalThis.__nsVendorRegistry;
139
+ if (!(registry && typeof registry.get === 'function')) {
140
+ throw new Error('NativeScript vendor registry was not initialized');
141
+ }
142
+ }
143
+
144
+ async function __nsBrowserRuntimeReplaySeededCss() {
145
+ const cssText = globalThis.__NS_HMR_APP_CSS__;
146
+ if (typeof cssText !== 'string' || !cssText.length || globalThis.__NS_HMR_HTTP_APP_CSS_APPLIED__) {
147
+ return;
148
+ }
149
+ const apply = globalThis.__nsApplyStyleUpdate;
150
+ if (typeof apply !== 'function') {
151
+ if (__NS_BROWSER_RUNTIME_VERBOSE__) {
152
+ console.warn('[ns-browser-runtime-client] __nsApplyStyleUpdate is unavailable; skipping seeded app.css replay');
153
+ }
154
+ return;
155
+ }
156
+ const cssUrl = __NS_BROWSER_RUNTIME_ORIGIN__ + '/src/app.css?direct=1&t=' + String(Date.now());
157
+ apply({ url: cssUrl, cssText });
158
+ globalThis.__NS_HMR_HTTP_APP_CSS_APPLIED__ = true;
159
+ if (__NS_BROWSER_RUNTIME_VERBOSE__) {
160
+ console.info('[ns-entry] app.css applied in HTTP core realm');
161
+ }
162
+ }
163
+
164
+ async function __nsBrowserRuntimeFetchText(url) {
165
+ try {
166
+ if (typeof globalThis.fetch === 'function') {
167
+ const res = await globalThis.fetch(url);
168
+ return await res.text();
169
+ }
170
+ const Http = globalThis.Http;
171
+ if (Http && typeof Http.getString === 'function') {
172
+ return await Http.getString(url);
173
+ }
174
+ } catch (error) {
175
+ if (__NS_BROWSER_RUNTIME_VERBOSE__) {
176
+ console.warn('[ns-browser-runtime-client] failed to fetch text', url, error);
177
+ }
178
+ }
179
+ return '';
180
+ }
181
+
182
+ async function __nsBrowserRuntimeHandleCssUpdates(msg) {
183
+ const updates = Array.isArray(msg?.updates) ? msg.updates : [];
184
+ const apply = globalThis.__nsApplyStyleUpdate;
185
+ if (!updates.length || typeof apply !== 'function') {
186
+ return;
187
+ }
188
+ for (const update of updates) {
189
+ const cssPath = update?.path || update?.acceptedPath || '';
190
+ if (!cssPath) {
191
+ continue;
192
+ }
193
+ const timestamp = update?.timestamp || Date.now();
194
+ const sep = cssPath.includes('?') ? '&' : '?';
195
+ const url = __NS_BROWSER_RUNTIME_ORIGIN__ + cssPath + sep + 'direct=1&t=' + String(timestamp);
196
+ const cssText = await __nsBrowserRuntimeFetchText(url);
197
+ if (typeof cssText === 'string' && cssText.length) {
198
+ apply({ url, cssText });
199
+ }
200
+ }
201
+ }
202
+
203
+ function __nsBrowserRuntimeHandleAngularUpdate() {
204
+ const reboot = globalThis.__reboot_ng_modules__;
205
+ if (typeof reboot !== 'function') {
206
+ if (__NS_BROWSER_RUNTIME_VERBOSE__) {
207
+ console.warn('[ns-browser-runtime-client] Angular reboot hook unavailable');
208
+ }
209
+ return;
210
+ }
211
+ try {
212
+ globalThis.__NS_HMR_IMPORT_NONCE__ = (typeof globalThis.__NS_HMR_IMPORT_NONCE__ === 'number' ? globalThis.__NS_HMR_IMPORT_NONCE__ : 0) + 1;
213
+ } catch {}
214
+ try {
215
+ globalThis.__NS_DEV_RESET_IN_PROGRESS__ = true;
216
+ } catch {}
217
+ try {
218
+ reboot(false);
219
+ } finally {
220
+ try {
221
+ globalThis.__NS_DEV_RESET_IN_PROGRESS__ = false;
222
+ } catch {}
223
+ }
224
+ }
225
+
226
+ function __nsBrowserRuntimeHandleSocketMessage(msg) {
227
+ if (!msg || typeof msg.type !== 'string') {
228
+ return;
229
+ }
230
+ if (msg.type === 'ns:hmr-full-graph') {
231
+ globalThis.__NS_HMR_BROWSER_RUNTIME_GRAPH_VERSION__ = typeof msg.version === 'number' ? msg.version : 0;
232
+ return;
233
+ }
234
+ if (globalThis.__NS_HMR_BROWSER_RUNTIME_DELEGATED__) {
235
+ return;
236
+ }
237
+ if (msg.type === 'ns:angular-update') {
238
+ __nsBrowserRuntimeHandleAngularUpdate();
239
+ return;
240
+ }
241
+ if (msg.type === 'ns:css-updates') {
242
+ void __nsBrowserRuntimeHandleCssUpdates(msg);
243
+ }
244
+ }
245
+
246
+ function __nsBrowserRuntimeScheduleReconnect() {
247
+ if (__nsBrowserRuntimeSocketReconnectTimer) {
248
+ return;
249
+ }
250
+ __nsBrowserRuntimeSocketReconnectTimer = setTimeout(() => {
251
+ __nsBrowserRuntimeSocketReconnectTimer = null;
252
+ __nsBrowserRuntimeConnectSocket();
253
+ }, 1000);
254
+ }
255
+
256
+ function __nsBrowserRuntimeClearDelegationTimer() {
257
+ if (__nsBrowserRuntimeDelegationTimer) {
258
+ clearTimeout(__nsBrowserRuntimeDelegationTimer);
259
+ __nsBrowserRuntimeDelegationTimer = null;
260
+ }
261
+ }
262
+
263
+ function __nsBrowserRuntimeCloseFallbackSocket(reason) {
264
+ __nsBrowserRuntimeClearDelegationTimer();
265
+ const ws = __nsBrowserRuntimeSocket;
266
+ if (ws) {
267
+ try {
268
+ ws.onopen = null;
269
+ ws.onmessage = null;
270
+ ws.onerror = null;
271
+ ws.onclose = null;
272
+ } catch {}
273
+ try {
274
+ ws.close();
275
+ } catch {}
276
+ }
277
+ __nsBrowserRuntimeSocket = null;
278
+ globalThis.__NS_HMR_BROWSER_RUNTIME_SOCKET_READY__ = false;
279
+ if (__NS_BROWSER_RUNTIME_VERBOSE__) {
280
+ console.info('[ns-browser-runtime-client] delegated to full HMR client; closing bootstrap fallback socket', reason || 'delegated');
281
+ }
282
+ }
283
+
284
+ function __nsBrowserRuntimeWaitForDelegation(startedAt) {
285
+ if (globalThis.__NS_HMR_BROWSER_RUNTIME_DELEGATED__) {
286
+ __nsBrowserRuntimeClearDelegationTimer();
287
+ return;
288
+ }
289
+ if (globalThis.__NS_HMR_CLIENT_SOCKET_READY__) {
290
+ globalThis.__NS_HMR_BROWSER_RUNTIME_DELEGATED__ = true;
291
+ __nsBrowserRuntimeCloseFallbackSocket('full-client-ready');
292
+ return;
293
+ }
294
+ if (!__nsBrowserRuntimeDelegationWarningIssued && Date.now() - startedAt >= 10000) {
295
+ __nsBrowserRuntimeDelegationWarningIssued = true;
296
+ // Verbose-only: the 10s threshold trips on every real Angular
297
+ // cold boot. The bootstrap fallback keeps running; the message
298
+ // is diagnostic, not actionable.
299
+ if (__NS_BROWSER_RUNTIME_VERBOSE__) {
300
+ console.warn('[ns-browser-runtime-client] full HMR client did not confirm websocket readiness; keeping bootstrap fallback active');
301
+ }
302
+ __nsBrowserRuntimeClearDelegationTimer();
303
+ return;
304
+ }
305
+ __nsBrowserRuntimeDelegationTimer = setTimeout(() => {
306
+ __nsBrowserRuntimeDelegationTimer = null;
307
+ __nsBrowserRuntimeWaitForDelegation(startedAt);
308
+ }, 100);
309
+ }
310
+
311
+ function __nsBrowserRuntimeTrackDelegation() {
312
+ if (globalThis.__NS_HMR_BROWSER_RUNTIME_DELEGATED__) {
313
+ return;
314
+ }
315
+ __nsBrowserRuntimeDelegationWarningIssued = false;
316
+ __nsBrowserRuntimeClearDelegationTimer();
317
+ __nsBrowserRuntimeWaitForDelegation(Date.now());
318
+ }
319
+
320
+ function __nsBrowserRuntimeConnectSocket() {
321
+ const WebSocketCtor = globalThis.WebSocket;
322
+ if (typeof WebSocketCtor !== 'function') {
323
+ if (__NS_BROWSER_RUNTIME_VERBOSE__) {
324
+ console.warn('[ns-browser-runtime-client] WebSocket API unavailable');
325
+ }
326
+ __nsBrowserRuntimeScheduleReconnect();
327
+ return;
328
+ }
329
+ try {
330
+ if (__nsBrowserRuntimeSocket) {
331
+ const readyState = __nsBrowserRuntimeSocket.readyState;
332
+ const openState = typeof __nsBrowserRuntimeSocket.OPEN === 'number' ? __nsBrowserRuntimeSocket.OPEN : 1;
333
+ const connectingState = typeof WebSocketCtor.CONNECTING === 'number' ? WebSocketCtor.CONNECTING : 0;
334
+ if (readyState === openState || readyState === connectingState) {
335
+ return;
336
+ }
337
+ }
338
+ const ws = new WebSocketCtor(__NS_BROWSER_RUNTIME_FALLBACK_WS_URL__);
339
+ __nsBrowserRuntimeSocket = ws;
340
+ ws.onopen = () => {
341
+ globalThis.__NS_HMR_BROWSER_RUNTIME_SOCKET_READY__ = true;
342
+ if (__NS_BROWSER_RUNTIME_VERBOSE__) {
343
+ console.info('[ns-browser-runtime-client] connected', __NS_BROWSER_RUNTIME_FALLBACK_WS_URL__);
344
+ }
345
+ };
346
+ ws.onmessage = (event) => {
347
+ try {
348
+ const raw = typeof event?.data === 'string' ? event.data : String(event?.data || '');
349
+ if (!raw) {
350
+ return;
351
+ }
352
+ __nsBrowserRuntimeHandleSocketMessage(JSON.parse(raw));
353
+ } catch (error) {
354
+ if (__NS_BROWSER_RUNTIME_VERBOSE__) {
355
+ console.warn('[ns-browser-runtime-client] failed to process websocket message', error);
356
+ }
357
+ }
358
+ };
359
+ ws.onerror = (error) => {
360
+ if (__NS_BROWSER_RUNTIME_VERBOSE__) {
361
+ console.warn('[ns-browser-runtime-client] websocket error', error);
362
+ }
363
+ };
364
+ ws.onclose = () => {
365
+ if (__nsBrowserRuntimeSocket === ws) {
366
+ __nsBrowserRuntimeSocket = null;
367
+ }
368
+ globalThis.__NS_HMR_BROWSER_RUNTIME_SOCKET_READY__ = false;
369
+ __nsBrowserRuntimeScheduleReconnect();
370
+ };
371
+ } catch (error) {
372
+ console.warn('[ns-browser-runtime-client] failed to create websocket', error);
373
+ __nsBrowserRuntimeScheduleReconnect();
374
+ }
375
+ }
376
+
377
+ async function __nsBrowserRuntimeEnsureFullClientStarted() {
378
+ if (!__nsBrowserRuntimeHmrClientStartPromise) {
379
+ __nsBrowserRuntimeHmrClientStartPromise = import(__NS_BROWSER_RUNTIME_CLIENT_IMPORT__)
380
+ .then((mod) => {
381
+ const start = mod?.default;
382
+ if (typeof start !== 'function') {
383
+ throw new Error('NativeScript HMR client bootstrap is missing a default export');
384
+ }
385
+ start({ wsUrl: __NS_BROWSER_RUNTIME_FULL_CLIENT_WS_URL__ });
386
+ __nsBrowserRuntimeTrackDelegation();
387
+ })
388
+ .catch((error) => {
389
+ globalThis.__NS_HMR_BROWSER_RUNTIME_CLIENT_ACTIVE__ = false;
390
+ console.error('[ns-browser-runtime-client] failed to start full NativeScript HMR client', __NS_BROWSER_RUNTIME_CLIENT_IMPORT__, error);
391
+ throw error;
392
+ });
393
+ }
394
+ return __nsBrowserRuntimeHmrClientStartPromise;
395
+ }
396
+
397
+ __nsBrowserRuntimeEnsureVendorBootstrap();
398
+
399
+
400
+ if (!globalThis.__NS_HMR_BROWSER_RUNTIME_CLIENT_ACTIVE__) {
401
+ globalThis.__NS_HMR_BROWSER_RUNTIME_CLIENT_ACTIVE__ = true;
402
+ globalThis.__NS_HTTP_ORIGIN__ = __NS_BROWSER_RUNTIME_ORIGIN__;
403
+ __nsBrowserRuntimeConnectSocket();
404
+ const __nsBrowserRuntimeBootWaitStartedAt = Date.now();
405
+ const __nsBrowserRuntimeWaitForBoot = () => {
406
+ if (globalThis.__NS_HMR_BOOT_COMPLETE__) {
407
+ if (__NS_BROWSER_RUNTIME_VERBOSE__) {
408
+ console.info('[ns-browser-runtime-client] boot complete observed; starting full HMR client');
409
+ }
410
+ void __nsBrowserRuntimeReplaySeededCss();
411
+ void __nsBrowserRuntimeEnsureFullClientStarted();
412
+ } else {
413
+ if (!__nsBrowserRuntimeBootWaitWarningIssued && Date.now() - __nsBrowserRuntimeBootWaitStartedAt >= 10000) {
414
+ __nsBrowserRuntimeBootWaitWarningIssued = true;
415
+ // Verbose-only: real Angular cold boots routinely take
416
+ // 15-30s through importing-main. The poller keeps watching
417
+ // __NS_HMR_BOOT_COMPLETE__; until it flips this looks like
418
+ // an error to users but is purely informational.
419
+ // (No backticks: this script body is embedded in a template
420
+ // literal in vite-plugin.ts.)
421
+ if (__NS_BROWSER_RUNTIME_VERBOSE__) {
422
+ console.warn('[ns-browser-runtime-client] boot completion was not observed; full HMR client start is still pending');
423
+ }
424
+ }
425
+ setTimeout(__nsBrowserRuntimeWaitForBoot, 100);
426
+ }
427
+ };
428
+ __nsBrowserRuntimeWaitForBoot();
429
+ }
430
+ `;
431
+ }
432
+ export function nsHmrClientVitePlugin(opts) {
433
+ let config;
434
+ const sessionId = new Date().toISOString();
34
435
  return {
35
436
  name: 'ns-hmr-client',
36
437
  configResolved(c) {
@@ -41,6 +442,61 @@ export function nsHmrClientVitePlugin(opts) {
41
442
  return RESOLVED_ID;
42
443
  return null;
43
444
  },
445
+ configureServer(server) {
446
+ server.middlewares.use((req, res, next) => {
447
+ try {
448
+ const url = new URL(req.url || '', 'http://localhost');
449
+ if (url.pathname === '/__ns_dev__/client') {
450
+ const requestHost = String(req.headers.host || 'localhost:5173');
451
+ const secure = !!config?.server?.https;
452
+ const origin = `${secure ? 'https' : 'http'}://${requestHost}`;
453
+ const wsUrl = `${secure ? 'wss' : 'ws'}://${requestHost}/ns-hmr`;
454
+ const clientFsPath = require.resolve('@nativescript/vite/hmr/client/index.js');
455
+ const projectRoot = config?.root || process.cwd();
456
+ const clientImport = computeClientImportSpecifier({ projectRoot, clientFsPath });
457
+ const code = createNsDevClientBootstrapCode({
458
+ origin,
459
+ wsUrl,
460
+ clientImport,
461
+ verbose: opts.verbose,
462
+ });
463
+ res.setHeader('Access-Control-Allow-Origin', '*');
464
+ res.setHeader('Access-Control-Allow-Methods', 'GET, OPTIONS');
465
+ if (req.method === 'OPTIONS') {
466
+ res.statusCode = 204;
467
+ res.end();
468
+ return;
469
+ }
470
+ res.setHeader('Content-Type', 'application/javascript; charset=utf-8');
471
+ res.end(code);
472
+ return;
473
+ }
474
+ if (url.pathname !== '/__ns_dev__/session')
475
+ return next();
476
+ res.setHeader('Access-Control-Allow-Origin', '*');
477
+ res.setHeader('Access-Control-Allow-Methods', 'GET, OPTIONS');
478
+ if (req.method === 'OPTIONS') {
479
+ res.statusCode = 204;
480
+ res.end();
481
+ return;
482
+ }
483
+ const descriptor = createNsDevSessionDescriptor({
484
+ projectRoot: config?.root || process.cwd(),
485
+ requestHost: String(req.headers.host || 'localhost:5173'),
486
+ platform: opts.platform,
487
+ sessionId,
488
+ secure: !!config?.server?.https,
489
+ });
490
+ res.setHeader('Content-Type', 'application/json');
491
+ res.end(JSON.stringify(descriptor, null, 2));
492
+ }
493
+ catch (error) {
494
+ res.statusCode = 500;
495
+ res.setHeader('Content-Type', 'application/json');
496
+ res.end(JSON.stringify({ error: error?.message || 'Failed to build NativeScript dev session descriptor' }));
497
+ }
498
+ });
499
+ },
44
500
  load(id) {
45
501
  if (id !== RESOLVED_ID)
46
502
  return null;
@@ -53,41 +509,24 @@ export function nsHmrClientVitePlugin(opts) {
53
509
  const clientFsPath = require.resolve('@nativescript/vite/hmr/client/index.js');
54
510
  // Prefer project root when available; otherwise fall back to cwd.
55
511
  const projectRoot = config?.root || process.cwd();
56
- let clientImport = clientFsPath;
57
- try {
58
- // Compute a project-relative POSIX path when possible. When `path.relative`
59
- // returns an absolute path (this can occur on Windows if roots differ or
60
- // when path.relative returns a drive-letter-prefixed path), avoid creating
61
- // a specifier like `/D:/...` which later gets resolved to `D:\D:\...`.
62
- const rel = path.relative(projectRoot, clientFsPath);
63
- const relPosix = rel.replace(/\\/g, '/');
64
- // If `rel` is absolute (e.g. starts with a drive letter on Windows),
65
- // use a file:// URL for the import so Vite/Rollup do not prepend the
66
- // project root and cause duplicated drive prefixes.
67
- if (path.isAbsolute(rel)) {
68
- clientImport = pathToFileURL(clientFsPath).toString();
69
- }
70
- else {
71
- clientImport = (relPosix.startsWith('.') ? relPosix : `/${relPosix}`).replace(/\/+/g, '/');
72
- }
73
- }
74
- catch {
75
- // On any failure, keep the original path but normalize to POSIX
76
- clientImport = clientFsPath.replace(/\\/g, '/');
77
- }
78
- // Build ws url from Vite server info
79
- let host = process.env.NS_HMR_HOST || config?.server?.host;
80
- // If Vite is bound to all interfaces, prefer a LAN IP so physical devices work.
81
- // The HMR client will still try emulator/localhost fallbacks when needed.
82
- const hostStr = typeof host === 'string' ? host : '';
83
- const isWildcard = host === true || hostStr === '0.0.0.0' || hostStr === '::' || hostStr === '';
84
- if (isWildcard) {
85
- host = guessLanHost() || (opts.platform === 'android' ? '10.0.2.2' : 'localhost');
86
- }
87
- else if (!host) {
88
- host = opts.platform === 'android' ? guessLanHost() || '10.0.2.2' : 'localhost';
89
- }
512
+ const clientImport = computeClientImportSpecifier({ projectRoot, clientFsPath });
513
+ // Build ws url from Vite server info. Routes through the same
514
+ // canonical helper as `main-entry.ts` / `base.ts` so the
515
+ // websocket endpoint embedded in `bundle.mjs` and every other
516
+ // `/ns/*` URL share one origin string required by the iOS
517
+ // HTTP ESM cache identity rule, and necessary for Android
518
+ // emulators that can't reach `0.0.0.0` / `localhost`.
90
519
  const port = Number(config?.server?.port || 5173);
520
+ // Pass `port` through so the Android emulator path attempts
521
+ // `adb reverse tcp:<port> tcp:<port>` before falling back to
522
+ // `10.0.2.2`. The websocket URL and bundle.mjs URLs both
523
+ // flow from this same helper, so they stay byte-identical
524
+ // (required by the iOS HTTP ESM cache identity rule).
525
+ const { host } = resolveDeviceReachableHost({
526
+ host: config?.server?.host,
527
+ platform: opts.platform,
528
+ port,
529
+ });
91
530
  const secure = !!config?.server?.https;
92
531
  const protocol = secure ? 'wss' : 'ws';
93
532
  const wsUrl = `${protocol}://${host}:${port}/ns-hmr`;
@@ -1 +1 @@
1
- {"version":3,"file":"vite-plugin.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/vite-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vite-plugin.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/vite-plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function rewriteAngularEntryRegisterOnly(code: string, angularCoreImportSource?: string): string;
2
+ export declare function resolveAngularCoreHmrImportSource(code: string, httpOrigin?: string): string;