@nativescript/vite 8.0.0-alpha.30 → 8.0.0-alpha.31

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 (162) hide show
  1. package/configuration/angular.js +8 -8
  2. package/configuration/angular.js.map +1 -1
  3. package/configuration/solid.js +2 -2
  4. package/configuration/solid.js.map +1 -1
  5. package/hmr/client/framework-client-strategy.d.ts +73 -0
  6. package/hmr/client/framework-client-strategy.js +19 -0
  7. package/hmr/client/framework-client-strategy.js.map +1 -0
  8. package/hmr/client/index.js +77 -186
  9. package/hmr/client/index.js.map +1 -1
  10. package/hmr/client/utils.js.map +1 -1
  11. package/hmr/entry-runtime.js.map +1 -1
  12. package/hmr/frameworks/angular/build/angular-linker.js.map +1 -0
  13. package/hmr/frameworks/angular/build/inject-component-hmr-registration.js.map +1 -0
  14. package/hmr/frameworks/angular/build/inject-hmr-vite-ignore.js.map +1 -0
  15. package/hmr/frameworks/angular/build/inline-decorator-component-templates.js.map +1 -0
  16. package/hmr/frameworks/angular/build/js-lexer.js.map +1 -0
  17. package/hmr/frameworks/angular/build/shared-linker.js.map +1 -0
  18. package/hmr/frameworks/angular/build/synthesize-decorator-ctor-parameters.js.map +1 -0
  19. package/hmr/frameworks/angular/build/synthesize-injectable-factories.js.map +1 -0
  20. package/hmr/frameworks/angular/build/util.js.map +1 -0
  21. package/hmr/frameworks/angular/client/index.js.map +1 -1
  22. package/hmr/frameworks/angular/client/strategy.d.ts +9 -0
  23. package/hmr/frameworks/angular/client/strategy.js +19 -0
  24. package/hmr/frameworks/angular/client/strategy.js.map +1 -0
  25. package/hmr/frameworks/angular/server/angular-root-component.js.map +1 -0
  26. package/hmr/frameworks/angular/server/strategy.js +440 -2
  27. package/hmr/frameworks/angular/server/strategy.js.map +1 -1
  28. package/hmr/{server → frameworks/angular/server}/websocket-angular-entry.js +2 -2
  29. package/hmr/frameworks/angular/server/websocket-angular-entry.js.map +1 -0
  30. package/hmr/{server → frameworks/angular/server}/websocket-angular-hot-update.d.ts +0 -11
  31. package/hmr/{server → frameworks/angular/server}/websocket-angular-hot-update.js +3 -80
  32. package/hmr/frameworks/angular/server/websocket-angular-hot-update.js.map +1 -0
  33. package/hmr/frameworks/solid/build/solid-jsx-deps.js.map +1 -0
  34. package/hmr/frameworks/solid/server/strategy.js +360 -1
  35. package/hmr/frameworks/solid/server/strategy.js.map +1 -1
  36. package/hmr/frameworks/typescript/server/strategy.js +27 -0
  37. package/hmr/frameworks/typescript/server/strategy.js.map +1 -1
  38. package/hmr/frameworks/vue/client/index.js.map +1 -1
  39. package/hmr/frameworks/vue/client/strategy.d.ts +7 -0
  40. package/hmr/frameworks/vue/client/strategy.js +83 -0
  41. package/hmr/frameworks/vue/client/strategy.js.map +1 -0
  42. package/hmr/frameworks/vue/client/vue-sfc-update-overlay.js.map +1 -0
  43. package/hmr/frameworks/vue/server/sfc-route-assemble.d.ts +7 -0
  44. package/hmr/{server/websocket-sfc.js → frameworks/vue/server/sfc-route-assemble.js} +19 -536
  45. package/hmr/frameworks/vue/server/sfc-route-assemble.js.map +1 -0
  46. package/hmr/frameworks/vue/server/sfc-route-meta.d.ts +7 -0
  47. package/hmr/frameworks/vue/server/sfc-route-meta.js +80 -0
  48. package/hmr/frameworks/vue/server/sfc-route-meta.js.map +1 -0
  49. package/hmr/frameworks/vue/server/sfc-route-serve.d.ts +8 -0
  50. package/hmr/frameworks/vue/server/sfc-route-serve.js +457 -0
  51. package/hmr/frameworks/vue/server/sfc-route-serve.js.map +1 -0
  52. package/hmr/frameworks/vue/server/sfc-route-shared.d.ts +19 -0
  53. package/hmr/frameworks/vue/server/sfc-route-shared.js +14 -0
  54. package/hmr/frameworks/vue/server/sfc-route-shared.js.map +1 -0
  55. package/hmr/frameworks/vue/server/strategy.js +244 -0
  56. package/hmr/frameworks/vue/server/strategy.js.map +1 -1
  57. package/hmr/frameworks/vue/server/websocket-sfc.d.ts +15 -0
  58. package/hmr/frameworks/vue/server/websocket-sfc.js +20 -0
  59. package/hmr/frameworks/vue/server/websocket-sfc.js.map +1 -0
  60. package/hmr/server/device-transform-helpers.d.ts +24 -0
  61. package/hmr/server/device-transform-helpers.js +327 -0
  62. package/hmr/server/device-transform-helpers.js.map +1 -0
  63. package/hmr/server/framework-strategy.d.ts +95 -1
  64. package/hmr/server/hmr-module-graph.js.map +1 -1
  65. package/hmr/server/import-map.d.ts +11 -2
  66. package/hmr/server/import-map.js +21 -54
  67. package/hmr/server/import-map.js.map +1 -1
  68. package/hmr/server/index.js +7 -17
  69. package/hmr/server/index.js.map +1 -1
  70. package/hmr/server/process-code-for-device.d.ts +15 -0
  71. package/hmr/server/process-code-for-device.js +654 -0
  72. package/hmr/server/process-code-for-device.js.map +1 -0
  73. package/hmr/server/rewrite-imports.d.ts +2 -0
  74. package/hmr/server/rewrite-imports.js +604 -0
  75. package/hmr/server/rewrite-imports.js.map +1 -0
  76. package/hmr/server/transform-cache-invalidation.d.ts +11 -0
  77. package/hmr/server/transform-cache-invalidation.js +84 -0
  78. package/hmr/server/transform-cache-invalidation.js.map +1 -0
  79. package/hmr/server/websocket-device-transform.d.ts +3 -21
  80. package/hmr/server/websocket-device-transform.js +6 -1569
  81. package/hmr/server/websocket-device-transform.js.map +1 -1
  82. package/hmr/server/websocket-hmr-pending.d.ts +2 -8
  83. package/hmr/server/websocket-hmr-pending.js.map +1 -1
  84. package/hmr/server/websocket-hot-update.d.ts +40 -14
  85. package/hmr/server/websocket-hot-update.js +24 -854
  86. package/hmr/server/websocket-hot-update.js.map +1 -1
  87. package/hmr/server/websocket-import-map-route.js +3 -1
  88. package/hmr/server/websocket-import-map-route.js.map +1 -1
  89. package/hmr/server/websocket-ns-core.d.ts +4 -4
  90. package/hmr/server/websocket-ns-core.js +3 -2
  91. package/hmr/server/websocket-ns-core.js.map +1 -1
  92. package/hmr/server/websocket-ns-entry.d.ts +0 -1
  93. package/hmr/server/websocket-ns-entry.js +1 -1
  94. package/hmr/server/websocket-ns-entry.js.map +1 -1
  95. package/hmr/server/websocket-ns-m.d.ts +0 -1
  96. package/hmr/server/websocket-ns-m.js +24 -129
  97. package/hmr/server/websocket-ns-m.js.map +1 -1
  98. package/hmr/server/websocket-vendor-unifier.d.ts +0 -1
  99. package/hmr/server/websocket-vendor-unifier.js +2 -1
  100. package/hmr/server/websocket-vendor-unifier.js.map +1 -1
  101. package/hmr/server/websocket.d.ts +11 -12
  102. package/hmr/server/websocket.js +25 -33
  103. package/hmr/server/websocket.js.map +1 -1
  104. package/hmr/shared/ns-globals.d.ts +118 -0
  105. package/hmr/shared/ns-globals.js +27 -0
  106. package/hmr/shared/ns-globals.js.map +1 -0
  107. package/hmr/shared/protocol.d.ts +136 -0
  108. package/hmr/shared/protocol.js +28 -0
  109. package/hmr/shared/protocol.js.map +1 -0
  110. package/hmr/shared/vendor/manifest-collect.d.ts +0 -28
  111. package/hmr/shared/vendor/manifest-collect.js +2 -2
  112. package/hmr/shared/vendor/manifest-collect.js.map +1 -1
  113. package/hmr/shared/vendor/manifest.d.ts +1 -3
  114. package/hmr/shared/vendor/manifest.js +1 -3
  115. package/hmr/shared/vendor/manifest.js.map +1 -1
  116. package/hmr/shared/vendor/vendor-esbuild-plugins.js +1 -1
  117. package/hmr/shared/vendor/vendor-esbuild-plugins.js.map +1 -1
  118. package/package.json +1 -1
  119. package/helpers/angular/angular-linker.js.map +0 -1
  120. package/helpers/angular/inject-component-hmr-registration.js.map +0 -1
  121. package/helpers/angular/inject-hmr-vite-ignore.js.map +0 -1
  122. package/helpers/angular/inline-decorator-component-templates.js.map +0 -1
  123. package/helpers/angular/js-lexer.js.map +0 -1
  124. package/helpers/angular/shared-linker.js.map +0 -1
  125. package/helpers/angular/synthesize-decorator-ctor-parameters.js.map +0 -1
  126. package/helpers/angular/synthesize-injectable-factories.js.map +0 -1
  127. package/helpers/angular/util.js.map +0 -1
  128. package/helpers/prelink-angular.d.ts +0 -2
  129. package/helpers/prelink-angular.js +0 -96
  130. package/helpers/prelink-angular.js.map +0 -1
  131. package/helpers/solid-jsx-deps.js.map +0 -1
  132. package/hmr/client/vue-sfc-update-overlay.js.map +0 -1
  133. package/hmr/server/angular-root-component.js.map +0 -1
  134. package/hmr/server/websocket-angular-entry.js.map +0 -1
  135. package/hmr/server/websocket-angular-hot-update.js.map +0 -1
  136. package/hmr/server/websocket-sfc.d.ts +0 -24
  137. package/hmr/server/websocket-sfc.js.map +0 -1
  138. /package/{helpers/angular → hmr/frameworks/angular/build}/angular-linker.d.ts +0 -0
  139. /package/{helpers/angular → hmr/frameworks/angular/build}/angular-linker.js +0 -0
  140. /package/{helpers/angular → hmr/frameworks/angular/build}/inject-component-hmr-registration.d.ts +0 -0
  141. /package/{helpers/angular → hmr/frameworks/angular/build}/inject-component-hmr-registration.js +0 -0
  142. /package/{helpers/angular → hmr/frameworks/angular/build}/inject-hmr-vite-ignore.d.ts +0 -0
  143. /package/{helpers/angular → hmr/frameworks/angular/build}/inject-hmr-vite-ignore.js +0 -0
  144. /package/{helpers/angular → hmr/frameworks/angular/build}/inline-decorator-component-templates.d.ts +0 -0
  145. /package/{helpers/angular → hmr/frameworks/angular/build}/inline-decorator-component-templates.js +0 -0
  146. /package/{helpers/angular → hmr/frameworks/angular/build}/js-lexer.d.ts +0 -0
  147. /package/{helpers/angular → hmr/frameworks/angular/build}/js-lexer.js +0 -0
  148. /package/{helpers/angular → hmr/frameworks/angular/build}/shared-linker.d.ts +0 -0
  149. /package/{helpers/angular → hmr/frameworks/angular/build}/shared-linker.js +0 -0
  150. /package/{helpers/angular → hmr/frameworks/angular/build}/synthesize-decorator-ctor-parameters.d.ts +0 -0
  151. /package/{helpers/angular → hmr/frameworks/angular/build}/synthesize-decorator-ctor-parameters.js +0 -0
  152. /package/{helpers/angular → hmr/frameworks/angular/build}/synthesize-injectable-factories.d.ts +0 -0
  153. /package/{helpers/angular → hmr/frameworks/angular/build}/synthesize-injectable-factories.js +0 -0
  154. /package/{helpers/angular → hmr/frameworks/angular/build}/util.d.ts +0 -0
  155. /package/{helpers/angular → hmr/frameworks/angular/build}/util.js +0 -0
  156. /package/hmr/{server → frameworks/angular/server}/angular-root-component.d.ts +0 -0
  157. /package/hmr/{server → frameworks/angular/server}/angular-root-component.js +0 -0
  158. /package/hmr/{server → frameworks/angular/server}/websocket-angular-entry.d.ts +0 -0
  159. /package/{helpers → hmr/frameworks/solid/build}/solid-jsx-deps.d.ts +0 -0
  160. /package/{helpers → hmr/frameworks/solid/build}/solid-jsx-deps.js +0 -0
  161. /package/hmr/{client → frameworks/vue/client}/vue-sfc-update-overlay.d.ts +0 -0
  162. /package/hmr/{client → frameworks/vue/client}/vue-sfc-update-overlay.js +0 -0
@@ -0,0 +1,327 @@
1
+ // Pure helpers for the device code-transform subsystem: import-path
2
+ // normalization, node_modules/vendor specifier resolution, dependency
3
+ // collection support, and provenance preludes. Shared by
4
+ // process-code-for-device.ts and rewrite-imports.ts.
5
+ import * as path from 'path';
6
+ import * as PAT from './constants.js';
7
+ import { getProjectRootPath } from '../../helpers/project.js';
8
+ import { isLikelyNativeScriptRuntimePluginSpecifier, isNativeScriptCoreModule, isNativeScriptPluginModule, normalizeNativeScriptCoreSpecifier, normalizeNodeModulesSpecifier, resolveNodeModulesPackageBoundary, resolveVendorFromCandidate, viteDepsPathToBareSpecifier } from './websocket-module-specifiers.js';
9
+ import { collectTopLevelImportRecords } from './websocket-served-module-helpers.js';
10
+ // Bare specifiers and special skip patterns (virtual, data:, etc.)
11
+ const VENDOR_PACKAGES = /^[A-Za-z@][^:\/\s]*$/;
12
+ const SKIP_PATTERNS = /^(?:data:|blob:|node:|virtual:|vite:|\0|\/@@?id|\/__vite|__vite|__x00__)/;
13
+ function rewriteVitePrebundleImportsForDevice(code, preserveVendorImports) {
14
+ const imports = collectTopLevelImportRecords(code);
15
+ if (!imports.length) {
16
+ return code;
17
+ }
18
+ const edits = [];
19
+ for (const imp of imports) {
20
+ const source = imp.source;
21
+ const depMatch = source.match(/(?:^|\/)node_modules\/\.vite\/deps\/(.+)$/);
22
+ const depPath = depMatch?.[1] || (source.startsWith('.vite/deps/') ? source.slice('.vite/deps/'.length) : null);
23
+ if (!depPath) {
24
+ continue;
25
+ }
26
+ let replacement = '';
27
+ if (preserveVendorImports) {
28
+ const canonical = resolveVendorFromCandidate(`.vite/deps/${depPath}`);
29
+ const bareSpecifier = canonical || viteDepsPathToBareSpecifier(depPath);
30
+ if (bareSpecifier) {
31
+ replacement = imp.text.replace(source, bareSpecifier);
32
+ }
33
+ }
34
+ edits.push({
35
+ start: imp.start,
36
+ end: imp.end,
37
+ text: replacement,
38
+ });
39
+ }
40
+ if (!edits.length) {
41
+ return code;
42
+ }
43
+ let next = code;
44
+ for (const edit of edits.sort((left, right) => right.start - left.start)) {
45
+ next = next.slice(0, edit.start) + edit.text + next.slice(edit.end);
46
+ }
47
+ return next;
48
+ }
49
+ function buildNodeModuleProvenancePrelude(sourceId) {
50
+ if (!sourceId) {
51
+ return '';
52
+ }
53
+ const cleaned = sourceId.replace(PAT.QUERY_PATTERN, '');
54
+ let normalized = normalizeNodeModulesSpecifier(cleaned);
55
+ if (!normalized) {
56
+ const viteDepsMatch = cleaned.match(/(?:^|\/)node_modules\/\.vite\/deps\/([^?#]+)/);
57
+ if (viteDepsMatch?.[1]) {
58
+ normalized = `.vite/deps/${viteDepsMatch[1]}`;
59
+ }
60
+ }
61
+ if (!normalized) {
62
+ return '';
63
+ }
64
+ let packageSpecifier = normalized;
65
+ let via = 'node_modules';
66
+ if (normalized.startsWith('.vite/deps/')) {
67
+ via = 'vite-deps';
68
+ packageSpecifier = viteDepsPathToBareSpecifier(normalized.slice('.vite/deps/'.length)) || normalized;
69
+ }
70
+ const rootPackage = resolveNodeModulesPackageBoundary(packageSpecifier, getProjectRootPath()).packageName;
71
+ if (!rootPackage) {
72
+ return '';
73
+ }
74
+ return `try { const __nsRecord = globalThis.__NS_RECORD_MODULE_PROVENANCE__; if (typeof __nsRecord === 'function') { __nsRecord(${JSON.stringify(rootPackage)}, ${JSON.stringify({ kind: 'http-esm', specifier: packageSpecifier, url: sourceId, via })}); } } catch {}\n`;
75
+ }
76
+ function shouldRemapImport(spec) {
77
+ if (!spec || typeof spec !== 'string')
78
+ return false;
79
+ if (VENDOR_PACKAGES.test(spec))
80
+ return false;
81
+ if (isNativeScriptCoreModule(spec))
82
+ return false;
83
+ if (isNativeScriptPluginModule(spec))
84
+ return false;
85
+ if (resolveVendorFromCandidate(spec))
86
+ return false;
87
+ if (spec.startsWith('~/'))
88
+ return false;
89
+ if (SKIP_PATTERNS.test(spec))
90
+ return false;
91
+ if (!spec.startsWith('/') && !spec.startsWith('./') && !spec.startsWith('../')) {
92
+ return false;
93
+ }
94
+ return true;
95
+ }
96
+ function removeNamedImports(code, names) {
97
+ const regex = /^(\s*import\s*\{)([^}]*)(\}\s*from\s*['"][^'"]+['"];?)/gm;
98
+ return code.replace(regex, (_m, p1, specList, p3) => {
99
+ const srcMatch = /from\s*['"]\s*([^'"\s]+)\s*['"]/i.exec(_m);
100
+ const src = (srcMatch?.[1] || '').toLowerCase();
101
+ const isVueSource = /^(?:vue|nativescript-vue)(?:\b|\/)/i.test(src);
102
+ if (!isVueSource) {
103
+ return _m;
104
+ }
105
+ const remaining = specList
106
+ .split(',')
107
+ .map((s) => s.trim())
108
+ .filter(Boolean)
109
+ .filter((entry) => {
110
+ const base = entry.split(/\s+as\s+/i)[0].trim();
111
+ return !names.includes(base);
112
+ });
113
+ if (!remaining.length)
114
+ return '';
115
+ return `${p1} ${remaining.join(', ')} ${p3}`;
116
+ });
117
+ }
118
+ function normalizeImportPath(spec, importerDir) {
119
+ if (!spec)
120
+ return null;
121
+ let key;
122
+ if (spec.startsWith('/')) {
123
+ key = spec;
124
+ }
125
+ else if (spec.startsWith('./') || spec.startsWith('../')) {
126
+ key = path.posix.normalize(path.posix.join(importerDir, spec));
127
+ if (!key.startsWith('/')) {
128
+ key = `/${key}`;
129
+ }
130
+ }
131
+ else {
132
+ key = spec;
133
+ }
134
+ return key.replace(PAT.QUERY_PATTERN, '');
135
+ }
136
+ function findDependencyFileName(depFileMap, key) {
137
+ const variants = new Set();
138
+ const base = key.replace(PAT.QUERY_PATTERN, '');
139
+ variants.add(base);
140
+ const normalized = path.posix.normalize(base);
141
+ variants.add(normalized);
142
+ const withSlash = normalized.startsWith('/') ? normalized : `/${normalized}`;
143
+ variants.add(withSlash);
144
+ for (const variant of Array.from(variants)) {
145
+ if (variant.endsWith('.js')) {
146
+ variants.add(variant.replace(/\.js$/i, '.mjs'));
147
+ }
148
+ else if (variant.endsWith('.mjs')) {
149
+ variants.add(variant.replace(/\.mjs$/i, '.js'));
150
+ }
151
+ }
152
+ for (const variant of variants) {
153
+ const value = depFileMap.get(variant);
154
+ if (value) {
155
+ return value;
156
+ }
157
+ }
158
+ return undefined;
159
+ }
160
+ function isRuntimePluginRootEntrySpecifier(specifier, projectRoot) {
161
+ if (!specifier) {
162
+ return false;
163
+ }
164
+ const cleaned = specifier.replace(PAT.QUERY_PATTERN, '');
165
+ const normalized = normalizeNodeModulesSpecifier(cleaned) || cleaned.replace(/^\/+/, '');
166
+ if (!normalized) {
167
+ return false;
168
+ }
169
+ const { packageName, subpath } = resolveNodeModulesPackageBoundary(normalized, projectRoot);
170
+ if (!packageName || !isLikelyNativeScriptRuntimePluginSpecifier(packageName, projectRoot)) {
171
+ return false;
172
+ }
173
+ if (!subpath) {
174
+ return true;
175
+ }
176
+ if (subpath.includes('/')) {
177
+ return false;
178
+ }
179
+ const pkgBaseName = packageName.split('/').pop() || '';
180
+ const withoutExt = /(?:\.(?:ios|android|visionos))?\.(?:ts|tsx|js|jsx|mjs|mts|cts)$/i.test(subpath) ? subpath.replace(/\.[^.]+$/, '') : subpath;
181
+ const withoutPlatform = withoutExt.replace(/\.(ios|android|visionos)$/i, '');
182
+ return withoutPlatform === 'index' || withoutPlatform === pkgBaseName;
183
+ }
184
+ function collectMixedRuntimePluginHttpRootPackages(code, projectRoot) {
185
+ const nonRootSubpathPackages = new Set();
186
+ const rootEntryPackages = new Set();
187
+ const visitSpecifier = (rawSpecifier) => {
188
+ if (!rawSpecifier) {
189
+ return;
190
+ }
191
+ const specifier = normalizeNativeScriptCoreSpecifier(rawSpecifier).replace(PAT.QUERY_PATTERN, '');
192
+ if (!specifier) {
193
+ return;
194
+ }
195
+ if (/^https?:\/\//.test(specifier) || specifier.startsWith('/ns/')) {
196
+ return;
197
+ }
198
+ if (/^(?:\.|\/)/.test(specifier) && !specifier.includes('/node_modules/')) {
199
+ return;
200
+ }
201
+ const normalized = normalizeNodeModulesSpecifier(specifier) || specifier.replace(/^\/+/, '');
202
+ if (!normalized) {
203
+ return;
204
+ }
205
+ const { packageName } = resolveNodeModulesPackageBoundary(normalized, projectRoot);
206
+ if (!packageName || !isLikelyNativeScriptRuntimePluginSpecifier(packageName, projectRoot)) {
207
+ return;
208
+ }
209
+ if (isRuntimePluginRootEntrySpecifier(normalized, projectRoot)) {
210
+ rootEntryPackages.add(packageName);
211
+ return;
212
+ }
213
+ nonRootSubpathPackages.add(packageName);
214
+ };
215
+ for (const pattern of [PAT.IMPORT_PATTERN_1, PAT.IMPORT_PATTERN_2, PAT.IMPORT_PATTERN_3, PAT.IMPORT_PATTERN_SIDE_EFFECT]) {
216
+ pattern.lastIndex = 0;
217
+ let match;
218
+ while ((match = pattern.exec(code)) !== null) {
219
+ visitSpecifier(match[2]);
220
+ }
221
+ }
222
+ return new Set(Array.from(nonRootSubpathPackages).filter((packageName) => rootEntryPackages.has(packageName)));
223
+ }
224
+ // Application import helpers
225
+ /**
226
+ * Check if a path is an application module (not node_modules, not vendor, not relative)
227
+ * This is generic and works for ANY project structure.
228
+ *
229
+ * Examples of application imports: /core/v4/store.ts, /src/utils/helper.ts, /custom/module.ts
230
+ * Examples of NON-application imports: node_modules/..., ~/vendor.mjs, ./relative.ts, ../parent.ts
231
+ */
232
+ function isApplicationImport(importPath) {
233
+ if (!importPath.startsWith('/')) {
234
+ return false; // Relative paths (./..., ../...) are not application imports
235
+ }
236
+ // Exclude node_modules and special paths
237
+ if (importPath.includes('node_modules') || importPath.startsWith('/@') || importPath.startsWith('~/')) {
238
+ return false;
239
+ }
240
+ return true;
241
+ }
242
+ function stripToProjectRelative(importPath, projectRoot) {
243
+ if (!importPath) {
244
+ return '';
245
+ }
246
+ let normalized = importPath.replace(/\\/g, '/');
247
+ normalized = normalized.replace(/^\/?@fs\//, '/');
248
+ if (normalized.startsWith('file://')) {
249
+ normalized = normalized.replace(/^file:\/\//, '/');
250
+ }
251
+ const documentsMarker = '/Documents/';
252
+ const documentsIndex = normalized.indexOf(documentsMarker);
253
+ if (documentsIndex !== -1) {
254
+ return normalized.substring(documentsIndex + documentsMarker.length);
255
+ }
256
+ if (projectRoot) {
257
+ const normalizedRoot = projectRoot.replace(/\\/g, '/').replace(/\/+$/, '');
258
+ const rootIndex = normalized.indexOf(normalizedRoot);
259
+ if (rootIndex !== -1) {
260
+ const sliced = normalized.substring(rootIndex + normalizedRoot.length);
261
+ return sliced.replace(/^\/+/, '');
262
+ }
263
+ }
264
+ return normalized.replace(/^\/+/, '');
265
+ }
266
+ /**
267
+ * Convert absolute application import to relative .mjs path for Documents folder
268
+ * /core/v4/store.ts → ./core/v4/store.mjs
269
+ */
270
+ function getProjectRelativeImportPath(importPath, projectRoot) {
271
+ if (!importPath) {
272
+ return null;
273
+ }
274
+ let normalized = importPath.replace(PAT.QUERY_PATTERN, '');
275
+ normalized = normalized.replace(/\\/g, '/');
276
+ if (normalized.startsWith('file://')) {
277
+ normalized = normalized.replace(/^file:\/\//, '/');
278
+ }
279
+ const documentsMarker = '/Documents/';
280
+ const documentsIndex = normalized.indexOf(documentsMarker);
281
+ if (documentsIndex !== -1) {
282
+ normalized = normalized.substring(documentsIndex + documentsMarker.length);
283
+ }
284
+ else if (projectRoot) {
285
+ const normalizedRoot = projectRoot.replace(/\\/g, '/').replace(/\/+$/, '');
286
+ const rootIndex = normalized.indexOf(normalizedRoot);
287
+ if (rootIndex !== -1) {
288
+ normalized = normalized.substring(rootIndex + normalizedRoot.length);
289
+ }
290
+ }
291
+ normalized = normalized.replace(/^\/+/, '');
292
+ if (!normalized) {
293
+ return null;
294
+ }
295
+ if (normalized.startsWith('dep-')) {
296
+ return null;
297
+ }
298
+ if (normalized.startsWith('sfc-')) {
299
+ return null;
300
+ }
301
+ normalized = path.posix.normalize(normalized);
302
+ if (!normalized) {
303
+ return null;
304
+ }
305
+ normalized = normalized.replace(/\.(ts|js|tsx|jsx|mjs|mts|cts)$/i, '.mjs');
306
+ if (!normalized.endsWith('.mjs')) {
307
+ normalized = `${normalized}.mjs`;
308
+ }
309
+ return normalized.replace(/^\/+/, '');
310
+ }
311
+ function toAppModuleBaseId(importPath, projectRoot) {
312
+ const projectRelative = getProjectRelativeImportPath(importPath, projectRoot);
313
+ if (!projectRelative) {
314
+ return null;
315
+ }
316
+ const base = projectRelative.replace(/\.mjs$/i, '');
317
+ return `/${base}`;
318
+ }
319
+ function toNodeModulesHttpModuleId(importPath) {
320
+ const nodeModulesSpecifier = normalizeNodeModulesSpecifier(importPath);
321
+ if (!nodeModulesSpecifier) {
322
+ return null;
323
+ }
324
+ return `/ns/m/node_modules/${nodeModulesSpecifier}`;
325
+ }
326
+ export { rewriteVitePrebundleImportsForDevice, buildNodeModuleProvenancePrelude, shouldRemapImport, removeNamedImports, normalizeImportPath, findDependencyFileName, collectMixedRuntimePluginHttpRootPackages, isApplicationImport, stripToProjectRelative, getProjectRelativeImportPath, toAppModuleBaseId, toNodeModulesHttpModuleId };
327
+ //# sourceMappingURL=device-transform-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-transform-helpers.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/device-transform-helpers.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import type { ViteDevServer } from 'vite';
1
+ import type { HmrContext, ViteDevServer } from 'vite';
2
2
  import type { WebSocketServer } from 'ws';
3
+ import type { NsHotUpdateContext } from './websocket-hot-update.js';
3
4
  export interface FrameworkProcessFileContext {
4
5
  filePath: string;
5
6
  server: ViteDevServer;
@@ -39,6 +40,42 @@ export interface FrameworkRegistryContext {
39
40
  export interface FrameworkCleanContext {
40
41
  code: string;
41
42
  }
43
+ /**
44
+ * Inputs for {@link FrameworkServerStrategy.rewriteServedModule}, mirroring the
45
+ * arguments the `/ns/m` served-module pipeline passes to `rewriteImports` /
46
+ * `prepareAngularEntryForDevice` today (the angular/else fork in
47
+ * `websocket-ns-m.ts`).
48
+ */
49
+ export interface FrameworkServedModuleContext {
50
+ /** Resolved module specifier / URL being served (`resolvedCandidate || spec`). */
51
+ moduleId: string;
52
+ sfcFileMap: Map<string, string>;
53
+ depFileMap: Map<string, string>;
54
+ projectRoot: string;
55
+ serverOrigin: string;
56
+ verbose: boolean;
57
+ }
58
+ /**
59
+ * Inputs for {@link FrameworkServerStrategy.registerRoutes}. A framework that
60
+ * owns dev-only HTTP endpoints (e.g. Vue's `/ns/sfc*`) registers them here;
61
+ * frameworks without extra endpoints leave the hook undefined (no-op default).
62
+ *
63
+ * Carries everything Vue's `registerSfcHandlers` needs (its
64
+ * `RegisterSfcHandlersOptions` shape): the dev server, plugin state
65
+ * (`sfcFileMap`/`depFileMap`/`appVirtualWithSlash`), the live graph-version
66
+ * accessor, and the active strategy. `wss` is included for parity with the
67
+ * other route registrars (the SFC handlers don't consult it today).
68
+ */
69
+ export interface FrameworkRouteContext {
70
+ server: ViteDevServer;
71
+ wss: WebSocketServer | null;
72
+ sfcFileMap: Map<string, string>;
73
+ depFileMap: Map<string, string>;
74
+ verbose: boolean;
75
+ appVirtualWithSlash: string;
76
+ getGraphVersion(): number;
77
+ getStrategy(): FrameworkServerStrategy;
78
+ }
42
79
  export interface FrameworkServerStrategy {
43
80
  readonly flavor: string;
44
81
  matchesFile(id: string): boolean;
@@ -52,6 +89,63 @@ export interface FrameworkServerStrategy {
52
89
  ensureVersionedImports?(code: string, origin: string, version: number): string;
53
90
  /** Optional vendor rewrite hook (e.g. map framework helper imports to vendor). */
54
91
  rewriteVendorSpec?(code: string, origin: string, version: number): string;
92
+ /**
93
+ * Full per-framework `handleHotUpdate` implementation. Every flavor owns one:
94
+ * the WebSocket plugin's `handleHotUpdate` Vite hook calls it directly, and
95
+ * the implementation runs the shared {@link NsHotUpdateContext}-driven
96
+ * `runHotUpdatePrologue` followed by its own framework tail.
97
+ */
98
+ handleHotUpdate?(ctx: HmrContext, deps: NsHotUpdateContext): Promise<HmrContext['modules'] | void>;
99
+ /**
100
+ * When `true`, the per-module graph delta is NOT broadcast inline during a
101
+ * hot update (the framework drives its own re-fetch/patch instead — Angular
102
+ * & Solid). Defaults to `false` → delta is broadcast (today's TS/Vue path).
103
+ */
104
+ readonly deferDeltaBroadcast?: boolean;
105
+ /**
106
+ * When this returns `true` for the changed file, the shared prologue SKIPS
107
+ * its default module-graph delta upsert — the framework's own
108
+ * `handleHotUpdate` tail re-queries the graph and drives the update itself
109
+ * (Angular HTML templates: Analog's in-place swap or the NS reboot path).
110
+ * Defaults to no-skip (the prologue always upserts).
111
+ */
112
+ skipDefaultGraphUpdate?(file: string): boolean;
113
+ /**
114
+ * Override the `/ns/m` served-module import rewrite. Defaults to the shared
115
+ * `rewriteImports` (today's non-Angular path); Angular overrides with its
116
+ * entry-preparation pass. Returns the rewritten code.
117
+ */
118
+ rewriteServedModule?(code: string, ctx: FrameworkServedModuleContext): string;
119
+ /**
120
+ * Patch a served `node_modules` module before device delivery (e.g. Solid's
121
+ * inline `@solid-refresh` patch). Defaults to identity (code unchanged).
122
+ * `verbose` mirrors the `/ns/m` plugin's `verbose` option and gates the
123
+ * server-side diagnostics the inline patch emitted today (the device process
124
+ * sets `globalThis.__NS_ENV_VERBOSE__`, but the Node server never does).
125
+ */
126
+ transformNodeModule?(code: string, moduleId: string, verbose?: boolean): string;
127
+ /**
128
+ * Framework SFC post-processing (Vue). Defaults to identity. Mirrors the
129
+ * `processSfcCode` helper currently injected via the registry context.
130
+ */
131
+ processSfcCode?(code: string): string;
132
+ /**
133
+ * Register framework-owned dev HTTP endpoints (Vue: `/ns/sfc*`). Defaults to
134
+ * no-op for frameworks without extra routes.
135
+ */
136
+ registerRoutes?(ctx: FrameworkRouteContext): void;
137
+ /**
138
+ * Extra import-map entries for this framework (e.g. Vue → `vue` /
139
+ * `nativescript-vue`; Solid → `solid-js`). Defaults to none. Replaces the
140
+ * `addFrameworkEntries` switch in `import-map.ts`.
141
+ */
142
+ importMapEntries?(origin: string): Record<string, string>;
143
+ /**
144
+ * Extra volatile URL patterns the device runtime must always re-fetch (Vue →
145
+ * `/@ns/sfc/`, `/@ns/asm/`; Angular → `/@ns/asm/`). Defaults to none.
146
+ * Replaces the framework arm of `getVolatilePatterns`.
147
+ */
148
+ volatilePatterns?(): string[];
55
149
  processFile(ctx: FrameworkProcessFileContext): Promise<void>;
56
150
  buildRegistry(ctx: FrameworkRegistryContext): Promise<void>;
57
151
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hmr-module-graph.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/hmr-module-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hmr-module-graph.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/hmr-module-graph.ts"],"names":[],"mappings":"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"}
@@ -20,14 +20,23 @@
20
20
  * then looks them up in this map. This ensures ALL imports — regardless of
21
21
  * how Vite rewrites them — resolve through a single deterministic path.
22
22
  */
23
+ import type { FrameworkServerStrategy } from './framework-strategy.js';
23
24
  export interface ImportMap {
24
25
  imports: Record<string, string>;
25
26
  }
26
27
  export interface ImportMapOptions {
27
28
  /** Origin of the Vite dev server (e.g. "http://192.168.1.5:5173") */
28
29
  origin: string;
29
- /** Framework flavor (vue, angular, solid, typescript) */
30
+ /** Framework flavor (vue, angular, solid, typescript) — framework identity. */
30
31
  flavor: string;
32
+ /**
33
+ * Active framework strategy. Its `importMapEntries(origin)` +
34
+ * `volatilePatterns()` hooks supply the framework-specific pieces of the
35
+ * import map and volatile-pattern list.
36
+ * Optional: when omitted, the map/patterns carry only the shared
37
+ * vendor/core/HTTP entries (equivalent to the old `typescript` arm).
38
+ */
39
+ strategy?: FrameworkServerStrategy;
31
40
  /** Additional entries to add to the import map */
32
41
  extraEntries?: Record<string, string>;
33
42
  }
@@ -54,7 +63,7 @@ export declare function generateImportMap(options: ImportMapOptions): ImportMap;
54
63
  * These patterns tell the runtime to always re-fetch matching URLs
55
64
  * instead of using cached modules.
56
65
  */
57
- export declare function getVolatilePatterns(flavor: string): string[];
66
+ export declare function getVolatilePatterns(strategy?: FrameworkServerStrategy): string[];
58
67
  /**
59
68
  * Serialize the import map + volatile patterns into the config object
60
69
  * that __nsConfigureRuntime() expects.
@@ -60,7 +60,7 @@ function getDeviceImportMapExposure(name) {
60
60
  * Everything else falls through to the runtime's normal resolution.
61
61
  */
62
62
  export function generateImportMap(options) {
63
- const { origin, flavor, extraEntries } = options;
63
+ const { origin, strategy, extraEntries } = options;
64
64
  const manifest = getVendorManifest();
65
65
  const imports = {};
66
66
  if (manifest) {
@@ -116,8 +116,19 @@ export function generateImportMap(options) {
116
116
  // subpath imports resolve via `${origin}/ns/core/<sub>`.
117
117
  imports['@nativescript/core'] = buildCoreUrl(origin);
118
118
  imports['@nativescript/core/'] = `${buildCoreUrl(origin)}/`;
119
- // Add framework-specific entries
120
- addFrameworkEntries(imports, origin, flavor);
119
+ // Add framework-specific entries (owned by the active strategy). Merge
120
+ // CONDITIONALLY (existing entries win) so Vue's vendor entries (set above)
121
+ // take precedence over the hook's fallback `ns-vendor://` targets, while
122
+ // Solid's `solid-js` (externalized from vendor, so unset here) is added.
123
+ // Insertion order is significant for the generated map.
124
+ const frameworkEntries = strategy?.importMapEntries?.(origin);
125
+ if (frameworkEntries) {
126
+ for (const [specifier, target] of Object.entries(frameworkEntries)) {
127
+ if (!imports[specifier]) {
128
+ imports[specifier] = target;
129
+ }
130
+ }
131
+ }
121
132
  // Scan installed packages and add HTTP URL entries for ALL packages
122
133
  // (including vendor ones for their subpath imports).
123
134
  discoverInstalledPackages(imports, origin);
@@ -132,22 +143,16 @@ export function generateImportMap(options) {
132
143
  * These patterns tell the runtime to always re-fetch matching URLs
133
144
  * instead of using cached modules.
134
145
  */
135
- export function getVolatilePatterns(flavor) {
146
+ export function getVolatilePatterns(strategy) {
136
147
  const patterns = [];
137
148
  // Version query params (used by HMR for cache busting)
138
149
  patterns.push('?v=');
139
150
  patterns.push('&v=');
140
- // Framework-specific volatile patterns
141
- switch (flavor) {
142
- case 'vue':
143
- // Vue SFC endpoints are volatile (change on every edit)
144
- patterns.push('/@ns/sfc/');
145
- patterns.push('/@ns/asm/');
146
- break;
147
- case 'angular':
148
- // Angular template/style URLs may change on edit
149
- patterns.push('/@ns/asm/');
150
- break;
151
+ // Framework-specific volatile patterns (owned by the active strategy —
152
+ // Vue → /@ns/sfc/ + /@ns/asm/, Angular → /@ns/asm/).
153
+ const frameworkPatterns = strategy?.volatilePatterns?.();
154
+ if (frameworkPatterns) {
155
+ patterns.push(...frameworkPatterns);
151
156
  }
152
157
  return patterns;
153
158
  }
@@ -157,50 +162,12 @@ export function getVolatilePatterns(flavor) {
157
162
  */
158
163
  export function buildRuntimeConfig(options) {
159
164
  const importMap = generateImportMap(options);
160
- const volatilePatterns = getVolatilePatterns(options.flavor);
165
+ const volatilePatterns = getVolatilePatterns(options.strategy);
161
166
  return {
162
167
  importMap: JSON.stringify(importMap),
163
168
  volatilePatterns,
164
169
  };
165
170
  }
166
- function addFrameworkEntries(imports, origin, flavor) {
167
- switch (flavor) {
168
- case 'vue':
169
- // nativescript-vue should resolve from vendor if available
170
- if (!imports['nativescript-vue']) {
171
- imports['nativescript-vue'] = `ns-vendor://nativescript-vue`;
172
- }
173
- if (!imports['vue']) {
174
- imports['vue'] = `ns-vendor://vue`;
175
- }
176
- break;
177
- case 'solid':
178
- // Solid runtime root MUST resolve to the same HTTP URL that
179
- // Vite's solid-js alias produces for user code and the
180
- // HTTP-served `@solid-refresh` middleware. The vendor bundle
181
- // no longer ships `solid-js` for the Solid flavor — see
182
- // `manifest.ts`'s `nsSolidJsExternalPlugin` + the matching
183
- // `addCandidate` skip — so all three import sites (vendor's
184
- // externalized `import 'solid-js'`, user code's
185
- // alias-rewritten `/ns/m/node_modules/solid-js/...`, and
186
- // `@solid-refresh`'s own rewritten import) converge on the
187
- // dev.js URL below. V8's ESM loader dedupes by URL, so the
188
- // app sees one `Owner` module-local, one `$DEVCOMP`/`$PROXY`
189
- // symbol identity, and one reactive graph end-to-end. Without
190
- // this unification, `solid-refresh`'s `setComp` ticks a
191
- // signal whose subscribers live in a different solid-js
192
- // realm than the page tree's render effect → HMR appears to
193
- // fire (toast shows) but the screen never re-renders, and
194
- // boot logs the `computations created outside a createRoot`
195
- // warning because solid-refresh's HMRComp memo is created in
196
- // the HTTP-side solid-js whose `Owner` was never set by the
197
- // vendor-side `render()` createRoot.
198
- imports['solid-js'] = `${origin}/ns/m/node_modules/solid-js/dist/dev.js`;
199
- // No trailing-slash prefix — subpaths like solid-js/store,
200
- // solid-js/jsx-runtime resolve via HTTP from discoverInstalledPackages()
201
- break;
202
- }
203
- }
204
171
  /**
205
172
  * Scan the project's node_modules to discover ALL installed packages and
206
173
  * add import map entries. Vendor packages get only trailing-slash prefix